From 50f8bbf02cf03358d31483ed9d29fb02db82a546 Mon Sep 17 00:00:00 2001 From: CCOSTAN Date: Tue, 17 Dec 2024 17:05:10 +0000 Subject: [PATCH] #1487 and a ton of other updates. --- config/automation/away.yaml | 17 +- config/automation/late_night_helper.yaml | 1 + config/group/Indoor_Outdoor.yaml | 3 +- config/packages/phynplus.yaml | 5 + config/script/interior_off.yaml | 3 +- config/script/notify_engine.yaml | 2 +- config/script/switch_turn_off_all.yaml | 13 - .../www/community/Bubble-Card/bubble-card.js | 1441 +++++++++++++++++ .../community/Bubble-Card/bubble-card.js.gz | Bin 0 -> 40863 bytes .../Bubble-Card/bubble-pop-up-fix.js | 1 + .../Bubble-Card/bubble-pop-up-fix.js.gz | Bin 0 -> 394 bytes .../frigate-hass-card/audio-cf3a75aa.js | 1 + .../frigate-hass-card/audio-cf3a75aa.js.gz | Bin 0 -> 126 bytes .../frigate-hass-card/card-09c4bade.js | 650 ++++++++ .../frigate-hass-card/card-09c4bade.js.gz | Bin 0 -> 142711 bytes .../frigate-hass-card/card-320adb66.js | 650 ++++++++ .../frigate-hass-card/card-320adb66.js.gz | Bin 0 -> 142734 bytes .../frigate-hass-card/card-45855f1f.js | 650 ++++++++ .../frigate-hass-card/card-45855f1f.js.gz | Bin 0 -> 142680 bytes .../frigate-hass-card/card-769e2b91.js | 650 ++++++++ .../frigate-hass-card/card-769e2b91.js.gz | Bin 0 -> 142699 bytes .../frigate-hass-card/card-7cd05290.js | 650 ++++++++ .../frigate-hass-card/card-7cd05290.js.gz | Bin 0 -> 142695 bytes .../frigate-hass-card/card-c642ee74.js | 650 ++++++++ .../frigate-hass-card/card-c642ee74.js.gz | Bin 0 -> 142679 bytes .../frigate-hass-card/date-picker-3dacab82.js | 15 + .../date-picker-3dacab82.js.gz | Bin 0 -> 1020 bytes .../frigate-hass-card/date-picker-40111fdc.js | 15 + .../date-picker-40111fdc.js.gz | Bin 0 -> 1023 bytes .../frigate-hass-card/date-picker-576d50a8.js | 15 + .../date-picker-576d50a8.js.gz | Bin 0 -> 1021 bytes .../frigate-hass-card/date-picker-8102261e.js | 15 + .../date-picker-8102261e.js.gz | Bin 0 -> 1023 bytes .../frigate-hass-card/date-picker-86e47001.js | 15 + .../date-picker-86e47001.js.gz | Bin 0 -> 1022 bytes .../frigate-hass-card/date-picker-cfd85f75.js | 15 + .../date-picker-cfd85f75.js.gz | Bin 0 -> 1022 bytes .../dispatch-live-error-c649b480.js | 33 + .../dispatch-live-error-c649b480.js.gz | Bin 0 -> 6281 bytes .../frigate-hass-card/editor-0c0425c2.js | 462 ++++++ .../frigate-hass-card/editor-0c0425c2.js.gz | Bin 0 -> 11530 bytes .../frigate-hass-card/editor-13524f00.js | 462 ++++++ .../frigate-hass-card/editor-13524f00.js.gz | Bin 0 -> 11530 bytes .../frigate-hass-card/editor-5368ad86.js | 462 ++++++ .../frigate-hass-card/editor-5368ad86.js.gz | Bin 0 -> 11532 bytes .../frigate-hass-card/editor-837da8b4.js | 462 ++++++ .../frigate-hass-card/editor-837da8b4.js.gz | Bin 0 -> 11529 bytes .../frigate-hass-card/editor-c3e576d8.js | 462 ++++++ .../frigate-hass-card/editor-c3e576d8.js.gz | Bin 0 -> 11531 bytes .../frigate-hass-card/editor-ce460dd0.js | 462 ++++++ .../frigate-hass-card/editor-ce460dd0.js.gz | Bin 0 -> 11531 bytes .../frigate-hass-card/endOfDay-086a6977.js | 1 + .../frigate-hass-card/endOfDay-086a6977.js.gz | Bin 0 -> 148 bytes .../frigate-hass-card/endOfDay-0c5086cb.js | 1 + .../frigate-hass-card/endOfDay-0c5086cb.js.gz | Bin 0 -> 146 bytes .../frigate-hass-card/endOfDay-24d35e3f.js | 1 + .../frigate-hass-card/endOfDay-24d35e3f.js.gz | Bin 0 -> 146 bytes .../frigate-hass-card/endOfDay-696ac7f4.js | 1 + .../frigate-hass-card/endOfDay-696ac7f4.js.gz | Bin 0 -> 147 bytes .../frigate-hass-card/endOfDay-8be4da1b.js | 1 + .../frigate-hass-card/endOfDay-8be4da1b.js.gz | Bin 0 -> 147 bytes .../frigate-hass-card/endOfDay-97ae2cc7.js | 1 + .../frigate-hass-card/endOfDay-97ae2cc7.js.gz | Bin 0 -> 147 bytes .../frigate-hass-card/endpoint-760ea36f.js | 1 + .../frigate-hass-card/endpoint-760ea36f.js.gz | Bin 0 -> 238 bytes .../frigate-hass-card/endpoint-9c79ab63.js | 1 + .../frigate-hass-card/endpoint-9c79ab63.js.gz | Bin 0 -> 239 bytes .../frigate-hass-card/endpoint-a6d38c7a.js | 1 + .../frigate-hass-card/endpoint-a6d38c7a.js.gz | Bin 0 -> 203 bytes .../frigate-hass-card/endpoint-cc3caf82.js | 1 + .../frigate-hass-card/endpoint-cc3caf82.js.gz | Bin 0 -> 238 bytes .../frigate-hass-card/endpoint-e9cb8034.js | 1 + .../frigate-hass-card/endpoint-e9cb8034.js.gz | Bin 0 -> 237 bytes .../frigate-hass-card/endpoint-f74ef6db.js | 1 + .../frigate-hass-card/endpoint-f74ef6db.js.gz | Bin 0 -> 238 bytes .../frigate-hass-card/engine-86b0096c.js | 1 + .../frigate-hass-card/engine-86b0096c.js.gz | Bin 0 -> 67 bytes .../engine-frigate-1cc4bb56.js | 3 + .../engine-frigate-1cc4bb56.js.gz | Bin 0 -> 8636 bytes .../engine-frigate-3f150159.js | 3 + .../engine-frigate-3f150159.js.gz | Bin 0 -> 8638 bytes .../engine-frigate-69a32a9e.js | 3 + .../engine-frigate-69a32a9e.js.gz | Bin 0 -> 8638 bytes .../engine-frigate-7cd5392b.js | 3 + .../engine-frigate-7cd5392b.js.gz | Bin 0 -> 8637 bytes .../engine-frigate-a6e3bd9e.js | 3 + .../engine-frigate-a6e3bd9e.js.gz | Bin 0 -> 8638 bytes .../engine-frigate-f675aa79.js | 3 + .../engine-frigate-f675aa79.js.gz | Bin 0 -> 8637 bytes .../engine-generic-31c14ad9.js | 1 + .../engine-generic-31c14ad9.js.gz | Bin 0 -> 1149 bytes .../engine-generic-39deaa91.js | 1 + .../engine-generic-39deaa91.js.gz | Bin 0 -> 1147 bytes .../engine-generic-458c9005.js | 1 + .../engine-generic-458c9005.js.gz | Bin 0 -> 1146 bytes .../engine-generic-96b32038.js | 1 + .../engine-generic-96b32038.js.gz | Bin 0 -> 1149 bytes .../engine-generic-97fdd47e.js | 1 + .../engine-generic-97fdd47e.js.gz | Bin 0 -> 1149 bytes .../engine-generic-bb62ddef.js | 1 + .../engine-generic-bb62ddef.js.gz | Bin 0 -> 1148 bytes .../engine-motioneye-205f9ce6.js | 1 + .../engine-motioneye-205f9ce6.js.gz | Bin 0 -> 1951 bytes .../engine-motioneye-3521f17f.js | 1 + .../engine-motioneye-3521f17f.js.gz | Bin 0 -> 1948 bytes .../engine-motioneye-381004ee.js | 1 + .../engine-motioneye-381004ee.js.gz | Bin 0 -> 1950 bytes .../engine-motioneye-7a5554b3.js | 1 + .../engine-motioneye-7a5554b3.js.gz | Bin 0 -> 1951 bytes .../engine-motioneye-d04d1919.js | 1 + .../engine-motioneye-d04d1919.js.gz | Bin 0 -> 1950 bytes .../engine-motioneye-fa799851.js | 1 + .../engine-motioneye-fa799851.js.gz | Bin 0 -> 1951 bytes .../engine-reolink-0f6e3569.js | 8 + .../engine-reolink-0f6e3569.js.gz | Bin 0 -> 2221 bytes .../engine-reolink-13b9bf20.js | 8 + .../engine-reolink-13b9bf20.js.gz | Bin 0 -> 2115 bytes .../engine-reolink-5d642010.js | 8 + .../engine-reolink-5d642010.js.gz | Bin 0 -> 2117 bytes .../engine-reolink-72a91bc6.js | 8 + .../engine-reolink-72a91bc6.js.gz | Bin 0 -> 2115 bytes .../engine-reolink-c0a1587c.js | 8 + .../engine-reolink-c0a1587c.js.gz | Bin 0 -> 2218 bytes .../engine-reolink-ec1b4246.js | 8 + .../engine-reolink-ec1b4246.js.gz | Bin 0 -> 2115 bytes .../frigate-hass-card/frigate-hass-card.js | 2 +- .../frigate-hass-card/frigate-hass-card.js.gz | Bin 69 -> 69 bytes .../frigate-hass-card/frigate-hass-card.zip | Bin 454105 -> 518992 bytes .../frigate-hass-card/gallery-149d4f41.js | 184 +++ .../frigate-hass-card/gallery-149d4f41.js.gz | Bin 0 -> 30834 bytes .../frigate-hass-card/gallery-15a600d2.js | 184 +++ .../frigate-hass-card/gallery-15a600d2.js.gz | Bin 0 -> 30839 bytes .../frigate-hass-card/gallery-1de615c4.js | 184 +++ .../frigate-hass-card/gallery-1de615c4.js.gz | Bin 0 -> 30833 bytes .../frigate-hass-card/gallery-9024cb87.js | 184 +++ .../frigate-hass-card/gallery-9024cb87.js.gz | Bin 0 -> 30833 bytes .../frigate-hass-card/gallery-bf3892f1.js | 184 +++ .../frigate-hass-card/gallery-bf3892f1.js.gz | Bin 0 -> 30838 bytes .../frigate-hass-card/gallery-c718155d.js | 184 +++ .../frigate-hass-card/gallery-c718155d.js.gz | Bin 0 -> 30838 bytes .../get-technology-for-video-rtc-778a0c05.js | 1 + ...et-technology-for-video-rtc-778a0c05.js.gz | Bin 0 -> 171 bytes .../frigate-hass-card/ha-1d1cb9a1.js | 61 + .../frigate-hass-card/ha-1d1cb9a1.js.gz | Bin 0 -> 1566 bytes .../frigate-hass-card/ha-31684cf1.js | 69 + .../frigate-hass-card/ha-31684cf1.js.gz | Bin 0 -> 1851 bytes .../frigate-hass-card/ha-378b7a69.js | 69 + .../frigate-hass-card/ha-378b7a69.js.gz | Bin 0 -> 1854 bytes .../frigate-hass-card/ha-4f7cd760.js | 68 + .../frigate-hass-card/ha-4f7cd760.js.gz | Bin 0 -> 1835 bytes .../frigate-hass-card/ha-9af0bc47.js | 61 + .../frigate-hass-card/ha-9af0bc47.js.gz | Bin 0 -> 1566 bytes .../frigate-hass-card/ha-a4f2c69e.js | 69 + .../frigate-hass-card/ha-a4f2c69e.js.gz | Bin 0 -> 1850 bytes .../ha-hls-player-2c0fea5b.js | 34 + .../ha-hls-player-2c0fea5b.js.gz | Bin 0 -> 1244 bytes .../ha-hls-player-717bfdfd.js | 34 + .../ha-hls-player-717bfdfd.js.gz | Bin 0 -> 1243 bytes .../ha-hls-player-abb86874.js | 34 + .../ha-hls-player-abb86874.js.gz | Bin 0 -> 1242 bytes .../ha-hls-player-ad38a2a0.js | 34 + .../ha-hls-player-ad38a2a0.js.gz | Bin 0 -> 1244 bytes .../ha-hls-player-b195eaa1.js | 34 + .../ha-hls-player-b195eaa1.js.gz | Bin 0 -> 1290 bytes .../ha-hls-player-ba5834a9.js | 34 + .../ha-hls-player-ba5834a9.js.gz | Bin 0 -> 1243 bytes .../frigate-hass-card/image-1c1ebdfa.js | 13 + .../frigate-hass-card/image-1c1ebdfa.js.gz | Bin 0 -> 22203 bytes .../frigate-hass-card/image-1e2a0a79.js | 13 + .../frigate-hass-card/image-1e2a0a79.js.gz | Bin 0 -> 22202 bytes .../frigate-hass-card/image-5371a090.js | 13 + .../frigate-hass-card/image-5371a090.js.gz | Bin 0 -> 22203 bytes .../frigate-hass-card/image-632882b9.js | 13 + .../frigate-hass-card/image-632882b9.js.gz | Bin 0 -> 22203 bytes .../frigate-hass-card/image-669f8abb.js | 9 + .../frigate-hass-card/image-669f8abb.js.gz | Bin 0 -> 554 bytes .../frigate-hass-card/image-678a8283.js | 9 + .../frigate-hass-card/image-678a8283.js.gz | Bin 0 -> 514 bytes .../frigate-hass-card/image-88fcb8ac.js | 13 + .../frigate-hass-card/image-88fcb8ac.js.gz | Bin 0 -> 22282 bytes .../frigate-hass-card/image-b5d57727.js | 9 + .../frigate-hass-card/image-b5d57727.js.gz | Bin 0 -> 555 bytes .../frigate-hass-card/image-c0a8dc12.js | 9 + .../frigate-hass-card/image-c0a8dc12.js.gz | Bin 0 -> 554 bytes .../frigate-hass-card/image-c6a10ba0.js | 9 + .../frigate-hass-card/image-c6a10ba0.js.gz | Bin 0 -> 553 bytes .../frigate-hass-card/image-cbfd7ccb.js | 13 + .../frigate-hass-card/image-cbfd7ccb.js.gz | Bin 0 -> 22203 bytes .../frigate-hass-card/image-cdeb2c7e.js | 9 + .../frigate-hass-card/image-cdeb2c7e.js.gz | Bin 0 -> 552 bytes .../frigate-hass-card/index-0197eb89.js | 131 ++ .../frigate-hass-card/index-0197eb89.js.gz | Bin 0 -> 6431 bytes .../frigate-hass-card/index-0a012f43.js | 162 ++ .../frigate-hass-card/index-0a012f43.js.gz | Bin 0 -> 6883 bytes .../frigate-hass-card/index-17f8eed5.js | 1 + .../frigate-hass-card/index-17f8eed5.js.gz | Bin 0 -> 4161 bytes .../frigate-hass-card/index-25c40d01.js | 131 ++ .../frigate-hass-card/index-25c40d01.js.gz | Bin 0 -> 6433 bytes .../frigate-hass-card/index-33db4eee.js | 154 ++ .../frigate-hass-card/index-33db4eee.js.gz | Bin 0 -> 6687 bytes .../frigate-hass-card/index-37750213.js | 131 ++ .../frigate-hass-card/index-37750213.js.gz | Bin 0 -> 6430 bytes .../frigate-hass-card/index-3c9b9749.js | 162 ++ .../frigate-hass-card/index-3c9b9749.js.gz | Bin 0 -> 6887 bytes .../frigate-hass-card/index-5de5f421.js | 122 ++ .../frigate-hass-card/index-5de5f421.js.gz | Bin 0 -> 6511 bytes .../frigate-hass-card/index-76cab2a3.js | 131 ++ .../frigate-hass-card/index-76cab2a3.js.gz | Bin 0 -> 6434 bytes .../frigate-hass-card/index-78f3984a.js | 1 + .../frigate-hass-card/index-78f3984a.js.gz | Bin 0 -> 4161 bytes .../frigate-hass-card/index-8355422b.js | 1 + .../frigate-hass-card/index-8355422b.js.gz | Bin 0 -> 4163 bytes .../frigate-hass-card/index-961f10b9.js | 131 ++ .../frigate-hass-card/index-961f10b9.js.gz | Bin 0 -> 6432 bytes .../frigate-hass-card/index-9b434861.js | 162 ++ .../frigate-hass-card/index-9b434861.js.gz | Bin 0 -> 6883 bytes .../frigate-hass-card/index-9bf80040.js | 162 ++ .../frigate-hass-card/index-9bf80040.js.gz | Bin 0 -> 6885 bytes .../frigate-hass-card/index-a3bb8676.js | 1 + .../frigate-hass-card/index-a3bb8676.js.gz | Bin 0 -> 4243 bytes .../frigate-hass-card/index-d3be62c7.js | 1 + .../frigate-hass-card/index-d3be62c7.js.gz | Bin 0 -> 4162 bytes .../frigate-hass-card/index-e0b66e9f.js | 1 + .../frigate-hass-card/index-e0b66e9f.js.gz | Bin 0 -> 4161 bytes .../frigate-hass-card/index-e610f971.js | 162 ++ .../frigate-hass-card/index-e610f971.js.gz | Bin 0 -> 6881 bytes .../frigate-hass-card/jsmpeg-05cdf58e.js | 12 + .../frigate-hass-card/jsmpeg-05cdf58e.js.gz | Bin 0 -> 42824 bytes .../frigate-hass-card/jsmpeg-45778f1d.js | 12 + .../frigate-hass-card/jsmpeg-45778f1d.js.gz | Bin 0 -> 42824 bytes .../frigate-hass-card/jsmpeg-50dde246.js | 12 + .../frigate-hass-card/jsmpeg-50dde246.js.gz | Bin 0 -> 42968 bytes .../frigate-hass-card/jsmpeg-66c8006d.js | 12 + .../frigate-hass-card/jsmpeg-66c8006d.js.gz | Bin 0 -> 42824 bytes .../frigate-hass-card/jsmpeg-ef28408a.js | 12 + .../frigate-hass-card/jsmpeg-ef28408a.js.gz | Bin 0 -> 42824 bytes .../frigate-hass-card/jsmpeg-fd152ef0.js | 12 + .../frigate-hass-card/jsmpeg-fd152ef0.js.gz | Bin 0 -> 42824 bytes .../frigate-hass-card/lang-ca-449daa4a.js | 1 + .../frigate-hass-card/lang-ca-449daa4a.js.gz | Bin 0 -> 6773 bytes .../frigate-hass-card/lang-fr-674e5de5.js | 1 + .../frigate-hass-card/lang-fr-674e5de5.js.gz | Bin 0 -> 6938 bytes .../frigate-hass-card/lang-fr-ea16daba.js | 1 + .../frigate-hass-card/lang-fr-ea16daba.js.gz | Bin 0 -> 7536 bytes .../frigate-hass-card/lang-it-2a20a319.js | 1 + .../frigate-hass-card/lang-it-2a20a319.js.gz | Bin 0 -> 6037 bytes .../frigate-hass-card/lang-pt-BR-83a703b9.js | 1 + .../lang-pt-BR-83a703b9.js.gz | Bin 0 -> 5948 bytes .../frigate-hass-card/lang-pt-PT-c4863423.js | 1 + .../lang-pt-PT-c4863423.js.gz | Bin 0 -> 5507 bytes .../frigate-hass-card/media-1a34ac2c.js | 33 + .../frigate-hass-card/media-1a34ac2c.js.gz | Bin 0 -> 6207 bytes .../frigate-hass-card/media-67c578aa.js | 33 + .../frigate-hass-card/media-67c578aa.js.gz | Bin 0 -> 6207 bytes .../frigate-hass-card/media-6eadcd60.js | 33 + .../frigate-hass-card/media-6eadcd60.js.gz | Bin 0 -> 6206 bytes .../frigate-hass-card/media-aef44451.js | 33 + .../frigate-hass-card/media-aef44451.js.gz | Bin 0 -> 6206 bytes .../frigate-hass-card/media-c9012082.js | 1 + .../frigate-hass-card/media-c9012082.js.gz | Bin 0 -> 345 bytes .../frigate-hass-card/media-d4c0d154.js | 33 + .../frigate-hass-card/media-d4c0d154.js.gz | Bin 0 -> 6208 bytes .../frigate-hass-card/media-grid-0f7352bc.js | 22 + .../media-grid-0f7352bc.js.gz | Bin 0 -> 8860 bytes .../frigate-hass-card/media-grid-110faed3.js | 22 + .../media-grid-110faed3.js.gz | Bin 0 -> 8860 bytes .../frigate-hass-card/media-grid-3082f0ad.js | 22 + .../media-grid-3082f0ad.js.gz | Bin 0 -> 8859 bytes .../frigate-hass-card/media-grid-adc03f7c.js | 22 + .../media-grid-adc03f7c.js.gz | Bin 0 -> 8859 bytes .../frigate-hass-card/media-grid-cff66b0b.js | 22 + .../media-grid-cff66b0b.js.gz | Bin 0 -> 8860 bytes .../frigate-hass-card/media-grid-ef47501a.js | 22 + .../media-grid-ef47501a.js.gz | Bin 0 -> 8858 bytes .../frigate-hass-card/parse-114e8d53.js | 1 + .../frigate-hass-card/parse-114e8d53.js.gz | Bin 0 -> 4021 bytes .../frigate-hass-card/parse-645a86cb.js | 1 + .../frigate-hass-card/parse-645a86cb.js.gz | Bin 0 -> 4020 bytes .../frigate-hass-card/parse-7dfc1897.js | 1 + .../frigate-hass-card/parse-7dfc1897.js.gz | Bin 0 -> 4021 bytes .../frigate-hass-card/parse-7f4a6e12.js | 1 + .../frigate-hass-card/parse-7f4a6e12.js.gz | Bin 0 -> 4019 bytes .../frigate-hass-card/parse-a53fb39b.js | 1 + .../frigate-hass-card/parse-a53fb39b.js.gz | Bin 0 -> 4020 bytes .../frigate-hass-card/parse-feacefaa.js | 1 + .../frigate-hass-card/parse-feacefaa.js.gz | Bin 0 -> 4020 bytes .../frigate-hass-card/startOfHour-1a5ce3ae.js | 1 + .../startOfHour-1a5ce3ae.js.gz | Bin 0 -> 166 bytes .../frigate-hass-card/startOfHour-4de961cf.js | 1 + .../startOfHour-4de961cf.js.gz | Bin 0 -> 166 bytes .../frigate-hass-card/startOfHour-5e3c525d.js | 1 + .../startOfHour-5e3c525d.js.gz | Bin 0 -> 166 bytes .../frigate-hass-card/startOfHour-7a3519fb.js | 1 + .../startOfHour-7a3519fb.js.gz | Bin 0 -> 166 bytes .../frigate-hass-card/startOfHour-b41e160a.js | 1 + .../startOfHour-b41e160a.js.gz | Bin 0 -> 167 bytes .../frigate-hass-card/startOfHour-f3ea02fd.js | 1 + .../startOfHour-f3ea02fd.js.gz | Bin 0 -> 166 bytes .../frigate-hass-card/timeline-116cbe0a.js | 13 + .../frigate-hass-card/timeline-116cbe0a.js.gz | Bin 0 -> 557 bytes .../frigate-hass-card/timeline-3c6e5e5d.js | 13 + .../frigate-hass-card/timeline-3c6e5e5d.js.gz | Bin 0 -> 556 bytes .../frigate-hass-card/timeline-62b72e11.js | 13 + .../frigate-hass-card/timeline-62b72e11.js.gz | Bin 0 -> 555 bytes .../frigate-hass-card/timeline-c30d9341.js | 13 + .../frigate-hass-card/timeline-c30d9341.js.gz | Bin 0 -> 555 bytes .../frigate-hass-card/timeline-c3ef17c4.js | 13 + .../frigate-hass-card/timeline-c3ef17c4.js.gz | Bin 0 -> 554 bytes .../timeline-core-744686a3.js | 143 ++ .../timeline-core-744686a3.js.gz | Bin 0 -> 165051 bytes .../timeline-core-91693473.js | 143 ++ .../timeline-core-91693473.js.gz | Bin 0 -> 165050 bytes .../timeline-core-99ac5d81.js | 143 ++ .../timeline-core-99ac5d81.js.gz | Bin 0 -> 165051 bytes .../timeline-core-9cf72087.js | 143 ++ .../timeline-core-9cf72087.js.gz | Bin 0 -> 165056 bytes .../timeline-core-b390cfa1.js | 143 ++ .../timeline-core-b390cfa1.js.gz | Bin 0 -> 165050 bytes .../timeline-core-fabd0153.js | 143 ++ .../timeline-core-fabd0153.js.gz | Bin 0 -> 165051 bytes .../frigate-hass-card/timeline-dfcd5e4d.js | 13 + .../frigate-hass-card/timeline-dfcd5e4d.js.gz | Bin 0 -> 556 bytes .../frigate-hass-card/webrtc-card-171319e4.js | 1 + .../webrtc-card-171319e4.js.gz | Bin 0 -> 1428 bytes .../frigate-hass-card/webrtc-card-74652e9d.js | 1 + .../webrtc-card-74652e9d.js.gz | Bin 0 -> 1426 bytes .../frigate-hass-card/webrtc-card-a69dcd1f.js | 1 + .../webrtc-card-a69dcd1f.js.gz | Bin 0 -> 1540 bytes .../frigate-hass-card/webrtc-card-a9018c5e.js | 1 + .../webrtc-card-a9018c5e.js.gz | Bin 0 -> 1427 bytes .../frigate-hass-card/webrtc-card-b8854548.js | 1 + .../webrtc-card-b8854548.js.gz | Bin 0 -> 1426 bytes .../frigate-hass-card/webrtc-card-ee41138a.js | 1 + .../webrtc-card-ee41138a.js.gz | Bin 0 -> 1428 bytes .../within-dates-2bb98b10.js | 1 + .../within-dates-2bb98b10.js.gz | Bin 0 -> 1097 bytes .../within-dates-a146acf5.js | 1 + .../within-dates-a146acf5.js.gz | Bin 0 -> 1096 bytes .../within-dates-a663657f.js | 1 + .../within-dates-a663657f.js.gz | Bin 0 -> 1097 bytes .../within-dates-c613e3cb.js | 1 + .../within-dates-c613e3cb.js.gz | Bin 0 -> 1096 bytes .../within-dates-cc65dfa5.js | 1 + .../within-dates-cc65dfa5.js.gz | Bin 0 -> 1094 bytes .../within-dates-cc9f8404.js | 1 + .../within-dates-cc9f8404.js.gz | Bin 0 -> 1094 bytes .../frigate-hass-card/zoomer-28db7d93.js | 27 + .../frigate-hass-card/zoomer-28db7d93.js.gz | Bin 0 -> 5587 bytes .../frigate-hass-card/zoomer-37e20bdd.js | 27 + .../frigate-hass-card/zoomer-37e20bdd.js.gz | Bin 0 -> 5586 bytes .../frigate-hass-card/zoomer-672d26af.js | 27 + .../frigate-hass-card/zoomer-672d26af.js.gz | Bin 0 -> 5587 bytes .../frigate-hass-card/zoomer-725f087c.js | 27 + .../frigate-hass-card/zoomer-725f087c.js.gz | Bin 0 -> 5587 bytes .../frigate-hass-card/zoomer-85596cd4.js | 27 + .../frigate-hass-card/zoomer-85596cd4.js.gz | Bin 0 -> 5586 bytes .../frigate-hass-card/zoomer-ddec5522.js | 27 + .../frigate-hass-card/zoomer-ddec5522.js.gz | Bin 0 -> 5588 bytes .../community/search-card/search-card.js.gz | Bin 2040 -> 2040 bytes 359 files changed, 13428 insertions(+), 30 deletions(-) delete mode 100755 config/script/switch_turn_off_all.yaml create mode 100644 config/www/community/Bubble-Card/bubble-card.js create mode 100644 config/www/community/Bubble-Card/bubble-card.js.gz create mode 100644 config/www/community/Bubble-Card/bubble-pop-up-fix.js create mode 100644 config/www/community/Bubble-Card/bubble-pop-up-fix.js.gz create mode 100644 config/www/community/frigate-hass-card/audio-cf3a75aa.js create mode 100644 config/www/community/frigate-hass-card/audio-cf3a75aa.js.gz create mode 100644 config/www/community/frigate-hass-card/card-09c4bade.js create mode 100644 config/www/community/frigate-hass-card/card-09c4bade.js.gz create mode 100644 config/www/community/frigate-hass-card/card-320adb66.js create mode 100644 config/www/community/frigate-hass-card/card-320adb66.js.gz create mode 100644 config/www/community/frigate-hass-card/card-45855f1f.js create mode 100644 config/www/community/frigate-hass-card/card-45855f1f.js.gz create mode 100644 config/www/community/frigate-hass-card/card-769e2b91.js create mode 100644 config/www/community/frigate-hass-card/card-769e2b91.js.gz create mode 100644 config/www/community/frigate-hass-card/card-7cd05290.js create mode 100644 config/www/community/frigate-hass-card/card-7cd05290.js.gz create mode 100644 config/www/community/frigate-hass-card/card-c642ee74.js create mode 100644 config/www/community/frigate-hass-card/card-c642ee74.js.gz create mode 100644 config/www/community/frigate-hass-card/date-picker-3dacab82.js create mode 100644 config/www/community/frigate-hass-card/date-picker-3dacab82.js.gz create mode 100644 config/www/community/frigate-hass-card/date-picker-40111fdc.js create mode 100644 config/www/community/frigate-hass-card/date-picker-40111fdc.js.gz create mode 100644 config/www/community/frigate-hass-card/date-picker-576d50a8.js create mode 100644 config/www/community/frigate-hass-card/date-picker-576d50a8.js.gz create mode 100644 config/www/community/frigate-hass-card/date-picker-8102261e.js create mode 100644 config/www/community/frigate-hass-card/date-picker-8102261e.js.gz create mode 100644 config/www/community/frigate-hass-card/date-picker-86e47001.js create mode 100644 config/www/community/frigate-hass-card/date-picker-86e47001.js.gz create mode 100644 config/www/community/frigate-hass-card/date-picker-cfd85f75.js create mode 100644 config/www/community/frigate-hass-card/date-picker-cfd85f75.js.gz create mode 100644 config/www/community/frigate-hass-card/dispatch-live-error-c649b480.js create mode 100644 config/www/community/frigate-hass-card/dispatch-live-error-c649b480.js.gz create mode 100644 config/www/community/frigate-hass-card/editor-0c0425c2.js create mode 100644 config/www/community/frigate-hass-card/editor-0c0425c2.js.gz create mode 100644 config/www/community/frigate-hass-card/editor-13524f00.js create mode 100644 config/www/community/frigate-hass-card/editor-13524f00.js.gz create mode 100644 config/www/community/frigate-hass-card/editor-5368ad86.js create mode 100644 config/www/community/frigate-hass-card/editor-5368ad86.js.gz create mode 100644 config/www/community/frigate-hass-card/editor-837da8b4.js create mode 100644 config/www/community/frigate-hass-card/editor-837da8b4.js.gz create mode 100644 config/www/community/frigate-hass-card/editor-c3e576d8.js create mode 100644 config/www/community/frigate-hass-card/editor-c3e576d8.js.gz create mode 100644 config/www/community/frigate-hass-card/editor-ce460dd0.js create mode 100644 config/www/community/frigate-hass-card/editor-ce460dd0.js.gz create mode 100644 config/www/community/frigate-hass-card/endOfDay-086a6977.js create mode 100644 config/www/community/frigate-hass-card/endOfDay-086a6977.js.gz create mode 100644 config/www/community/frigate-hass-card/endOfDay-0c5086cb.js create mode 100644 config/www/community/frigate-hass-card/endOfDay-0c5086cb.js.gz create mode 100644 config/www/community/frigate-hass-card/endOfDay-24d35e3f.js create mode 100644 config/www/community/frigate-hass-card/endOfDay-24d35e3f.js.gz create mode 100644 config/www/community/frigate-hass-card/endOfDay-696ac7f4.js create mode 100644 config/www/community/frigate-hass-card/endOfDay-696ac7f4.js.gz create mode 100644 config/www/community/frigate-hass-card/endOfDay-8be4da1b.js create mode 100644 config/www/community/frigate-hass-card/endOfDay-8be4da1b.js.gz create mode 100644 config/www/community/frigate-hass-card/endOfDay-97ae2cc7.js create mode 100644 config/www/community/frigate-hass-card/endOfDay-97ae2cc7.js.gz create mode 100644 config/www/community/frigate-hass-card/endpoint-760ea36f.js create mode 100644 config/www/community/frigate-hass-card/endpoint-760ea36f.js.gz create mode 100644 config/www/community/frigate-hass-card/endpoint-9c79ab63.js create mode 100644 config/www/community/frigate-hass-card/endpoint-9c79ab63.js.gz create mode 100644 config/www/community/frigate-hass-card/endpoint-a6d38c7a.js create mode 100644 config/www/community/frigate-hass-card/endpoint-a6d38c7a.js.gz create mode 100644 config/www/community/frigate-hass-card/endpoint-cc3caf82.js create mode 100644 config/www/community/frigate-hass-card/endpoint-cc3caf82.js.gz create mode 100644 config/www/community/frigate-hass-card/endpoint-e9cb8034.js create mode 100644 config/www/community/frigate-hass-card/endpoint-e9cb8034.js.gz create mode 100644 config/www/community/frigate-hass-card/endpoint-f74ef6db.js create mode 100644 config/www/community/frigate-hass-card/endpoint-f74ef6db.js.gz create mode 100644 config/www/community/frigate-hass-card/engine-86b0096c.js create mode 100644 config/www/community/frigate-hass-card/engine-86b0096c.js.gz create mode 100644 config/www/community/frigate-hass-card/engine-frigate-1cc4bb56.js create mode 100644 config/www/community/frigate-hass-card/engine-frigate-1cc4bb56.js.gz create mode 100644 config/www/community/frigate-hass-card/engine-frigate-3f150159.js create mode 100644 config/www/community/frigate-hass-card/engine-frigate-3f150159.js.gz create mode 100644 config/www/community/frigate-hass-card/engine-frigate-69a32a9e.js create mode 100644 config/www/community/frigate-hass-card/engine-frigate-69a32a9e.js.gz create mode 100644 config/www/community/frigate-hass-card/engine-frigate-7cd5392b.js create mode 100644 config/www/community/frigate-hass-card/engine-frigate-7cd5392b.js.gz create mode 100644 config/www/community/frigate-hass-card/engine-frigate-a6e3bd9e.js create mode 100644 config/www/community/frigate-hass-card/engine-frigate-a6e3bd9e.js.gz create mode 100644 config/www/community/frigate-hass-card/engine-frigate-f675aa79.js create mode 100644 config/www/community/frigate-hass-card/engine-frigate-f675aa79.js.gz create mode 100644 config/www/community/frigate-hass-card/engine-generic-31c14ad9.js create mode 100644 config/www/community/frigate-hass-card/engine-generic-31c14ad9.js.gz create mode 100644 config/www/community/frigate-hass-card/engine-generic-39deaa91.js create mode 100644 config/www/community/frigate-hass-card/engine-generic-39deaa91.js.gz create mode 100644 config/www/community/frigate-hass-card/engine-generic-458c9005.js create mode 100644 config/www/community/frigate-hass-card/engine-generic-458c9005.js.gz create mode 100644 config/www/community/frigate-hass-card/engine-generic-96b32038.js create mode 100644 config/www/community/frigate-hass-card/engine-generic-96b32038.js.gz create mode 100644 config/www/community/frigate-hass-card/engine-generic-97fdd47e.js create mode 100644 config/www/community/frigate-hass-card/engine-generic-97fdd47e.js.gz create mode 100644 config/www/community/frigate-hass-card/engine-generic-bb62ddef.js create mode 100644 config/www/community/frigate-hass-card/engine-generic-bb62ddef.js.gz create mode 100644 config/www/community/frigate-hass-card/engine-motioneye-205f9ce6.js create mode 100644 config/www/community/frigate-hass-card/engine-motioneye-205f9ce6.js.gz create mode 100644 config/www/community/frigate-hass-card/engine-motioneye-3521f17f.js create mode 100644 config/www/community/frigate-hass-card/engine-motioneye-3521f17f.js.gz create mode 100644 config/www/community/frigate-hass-card/engine-motioneye-381004ee.js create mode 100644 config/www/community/frigate-hass-card/engine-motioneye-381004ee.js.gz create mode 100644 config/www/community/frigate-hass-card/engine-motioneye-7a5554b3.js create mode 100644 config/www/community/frigate-hass-card/engine-motioneye-7a5554b3.js.gz create mode 100644 config/www/community/frigate-hass-card/engine-motioneye-d04d1919.js create mode 100644 config/www/community/frigate-hass-card/engine-motioneye-d04d1919.js.gz create mode 100644 config/www/community/frigate-hass-card/engine-motioneye-fa799851.js create mode 100644 config/www/community/frigate-hass-card/engine-motioneye-fa799851.js.gz create mode 100644 config/www/community/frigate-hass-card/engine-reolink-0f6e3569.js create mode 100644 config/www/community/frigate-hass-card/engine-reolink-0f6e3569.js.gz create mode 100644 config/www/community/frigate-hass-card/engine-reolink-13b9bf20.js create mode 100644 config/www/community/frigate-hass-card/engine-reolink-13b9bf20.js.gz create mode 100644 config/www/community/frigate-hass-card/engine-reolink-5d642010.js create mode 100644 config/www/community/frigate-hass-card/engine-reolink-5d642010.js.gz create mode 100644 config/www/community/frigate-hass-card/engine-reolink-72a91bc6.js create mode 100644 config/www/community/frigate-hass-card/engine-reolink-72a91bc6.js.gz create mode 100644 config/www/community/frigate-hass-card/engine-reolink-c0a1587c.js create mode 100644 config/www/community/frigate-hass-card/engine-reolink-c0a1587c.js.gz create mode 100644 config/www/community/frigate-hass-card/engine-reolink-ec1b4246.js create mode 100644 config/www/community/frigate-hass-card/engine-reolink-ec1b4246.js.gz create mode 100644 config/www/community/frigate-hass-card/gallery-149d4f41.js create mode 100644 config/www/community/frigate-hass-card/gallery-149d4f41.js.gz create mode 100644 config/www/community/frigate-hass-card/gallery-15a600d2.js create mode 100644 config/www/community/frigate-hass-card/gallery-15a600d2.js.gz create mode 100644 config/www/community/frigate-hass-card/gallery-1de615c4.js create mode 100644 config/www/community/frigate-hass-card/gallery-1de615c4.js.gz create mode 100644 config/www/community/frigate-hass-card/gallery-9024cb87.js create mode 100644 config/www/community/frigate-hass-card/gallery-9024cb87.js.gz create mode 100644 config/www/community/frigate-hass-card/gallery-bf3892f1.js create mode 100644 config/www/community/frigate-hass-card/gallery-bf3892f1.js.gz create mode 100644 config/www/community/frigate-hass-card/gallery-c718155d.js create mode 100644 config/www/community/frigate-hass-card/gallery-c718155d.js.gz create mode 100644 config/www/community/frigate-hass-card/get-technology-for-video-rtc-778a0c05.js create mode 100644 config/www/community/frigate-hass-card/get-technology-for-video-rtc-778a0c05.js.gz create mode 100644 config/www/community/frigate-hass-card/ha-1d1cb9a1.js create mode 100644 config/www/community/frigate-hass-card/ha-1d1cb9a1.js.gz create mode 100644 config/www/community/frigate-hass-card/ha-31684cf1.js create mode 100644 config/www/community/frigate-hass-card/ha-31684cf1.js.gz create mode 100644 config/www/community/frigate-hass-card/ha-378b7a69.js create mode 100644 config/www/community/frigate-hass-card/ha-378b7a69.js.gz create mode 100644 config/www/community/frigate-hass-card/ha-4f7cd760.js create mode 100644 config/www/community/frigate-hass-card/ha-4f7cd760.js.gz create mode 100644 config/www/community/frigate-hass-card/ha-9af0bc47.js create mode 100644 config/www/community/frigate-hass-card/ha-9af0bc47.js.gz create mode 100644 config/www/community/frigate-hass-card/ha-a4f2c69e.js create mode 100644 config/www/community/frigate-hass-card/ha-a4f2c69e.js.gz create mode 100644 config/www/community/frigate-hass-card/ha-hls-player-2c0fea5b.js create mode 100644 config/www/community/frigate-hass-card/ha-hls-player-2c0fea5b.js.gz create mode 100644 config/www/community/frigate-hass-card/ha-hls-player-717bfdfd.js create mode 100644 config/www/community/frigate-hass-card/ha-hls-player-717bfdfd.js.gz create mode 100644 config/www/community/frigate-hass-card/ha-hls-player-abb86874.js create mode 100644 config/www/community/frigate-hass-card/ha-hls-player-abb86874.js.gz create mode 100644 config/www/community/frigate-hass-card/ha-hls-player-ad38a2a0.js create mode 100644 config/www/community/frigate-hass-card/ha-hls-player-ad38a2a0.js.gz create mode 100644 config/www/community/frigate-hass-card/ha-hls-player-b195eaa1.js create mode 100644 config/www/community/frigate-hass-card/ha-hls-player-b195eaa1.js.gz create mode 100644 config/www/community/frigate-hass-card/ha-hls-player-ba5834a9.js create mode 100644 config/www/community/frigate-hass-card/ha-hls-player-ba5834a9.js.gz create mode 100644 config/www/community/frigate-hass-card/image-1c1ebdfa.js create mode 100644 config/www/community/frigate-hass-card/image-1c1ebdfa.js.gz create mode 100644 config/www/community/frigate-hass-card/image-1e2a0a79.js create mode 100644 config/www/community/frigate-hass-card/image-1e2a0a79.js.gz create mode 100644 config/www/community/frigate-hass-card/image-5371a090.js create mode 100644 config/www/community/frigate-hass-card/image-5371a090.js.gz create mode 100644 config/www/community/frigate-hass-card/image-632882b9.js create mode 100644 config/www/community/frigate-hass-card/image-632882b9.js.gz create mode 100644 config/www/community/frigate-hass-card/image-669f8abb.js create mode 100644 config/www/community/frigate-hass-card/image-669f8abb.js.gz create mode 100644 config/www/community/frigate-hass-card/image-678a8283.js create mode 100644 config/www/community/frigate-hass-card/image-678a8283.js.gz create mode 100644 config/www/community/frigate-hass-card/image-88fcb8ac.js create mode 100644 config/www/community/frigate-hass-card/image-88fcb8ac.js.gz create mode 100644 config/www/community/frigate-hass-card/image-b5d57727.js create mode 100644 config/www/community/frigate-hass-card/image-b5d57727.js.gz create mode 100644 config/www/community/frigate-hass-card/image-c0a8dc12.js create mode 100644 config/www/community/frigate-hass-card/image-c0a8dc12.js.gz create mode 100644 config/www/community/frigate-hass-card/image-c6a10ba0.js create mode 100644 config/www/community/frigate-hass-card/image-c6a10ba0.js.gz create mode 100644 config/www/community/frigate-hass-card/image-cbfd7ccb.js create mode 100644 config/www/community/frigate-hass-card/image-cbfd7ccb.js.gz create mode 100644 config/www/community/frigate-hass-card/image-cdeb2c7e.js create mode 100644 config/www/community/frigate-hass-card/image-cdeb2c7e.js.gz create mode 100644 config/www/community/frigate-hass-card/index-0197eb89.js create mode 100644 config/www/community/frigate-hass-card/index-0197eb89.js.gz create mode 100644 config/www/community/frigate-hass-card/index-0a012f43.js create mode 100644 config/www/community/frigate-hass-card/index-0a012f43.js.gz create mode 100644 config/www/community/frigate-hass-card/index-17f8eed5.js create mode 100644 config/www/community/frigate-hass-card/index-17f8eed5.js.gz create mode 100644 config/www/community/frigate-hass-card/index-25c40d01.js create mode 100644 config/www/community/frigate-hass-card/index-25c40d01.js.gz create mode 100644 config/www/community/frigate-hass-card/index-33db4eee.js create mode 100644 config/www/community/frigate-hass-card/index-33db4eee.js.gz create mode 100644 config/www/community/frigate-hass-card/index-37750213.js create mode 100644 config/www/community/frigate-hass-card/index-37750213.js.gz create mode 100644 config/www/community/frigate-hass-card/index-3c9b9749.js create mode 100644 config/www/community/frigate-hass-card/index-3c9b9749.js.gz create mode 100644 config/www/community/frigate-hass-card/index-5de5f421.js create mode 100644 config/www/community/frigate-hass-card/index-5de5f421.js.gz create mode 100644 config/www/community/frigate-hass-card/index-76cab2a3.js create mode 100644 config/www/community/frigate-hass-card/index-76cab2a3.js.gz create mode 100644 config/www/community/frigate-hass-card/index-78f3984a.js create mode 100644 config/www/community/frigate-hass-card/index-78f3984a.js.gz create mode 100644 config/www/community/frigate-hass-card/index-8355422b.js create mode 100644 config/www/community/frigate-hass-card/index-8355422b.js.gz create mode 100644 config/www/community/frigate-hass-card/index-961f10b9.js create mode 100644 config/www/community/frigate-hass-card/index-961f10b9.js.gz create mode 100644 config/www/community/frigate-hass-card/index-9b434861.js create mode 100644 config/www/community/frigate-hass-card/index-9b434861.js.gz create mode 100644 config/www/community/frigate-hass-card/index-9bf80040.js create mode 100644 config/www/community/frigate-hass-card/index-9bf80040.js.gz create mode 100644 config/www/community/frigate-hass-card/index-a3bb8676.js create mode 100644 config/www/community/frigate-hass-card/index-a3bb8676.js.gz create mode 100644 config/www/community/frigate-hass-card/index-d3be62c7.js create mode 100644 config/www/community/frigate-hass-card/index-d3be62c7.js.gz create mode 100644 config/www/community/frigate-hass-card/index-e0b66e9f.js create mode 100644 config/www/community/frigate-hass-card/index-e0b66e9f.js.gz create mode 100644 config/www/community/frigate-hass-card/index-e610f971.js create mode 100644 config/www/community/frigate-hass-card/index-e610f971.js.gz create mode 100644 config/www/community/frigate-hass-card/jsmpeg-05cdf58e.js create mode 100644 config/www/community/frigate-hass-card/jsmpeg-05cdf58e.js.gz create mode 100644 config/www/community/frigate-hass-card/jsmpeg-45778f1d.js create mode 100644 config/www/community/frigate-hass-card/jsmpeg-45778f1d.js.gz create mode 100644 config/www/community/frigate-hass-card/jsmpeg-50dde246.js create mode 100644 config/www/community/frigate-hass-card/jsmpeg-50dde246.js.gz create mode 100644 config/www/community/frigate-hass-card/jsmpeg-66c8006d.js create mode 100644 config/www/community/frigate-hass-card/jsmpeg-66c8006d.js.gz create mode 100644 config/www/community/frigate-hass-card/jsmpeg-ef28408a.js create mode 100644 config/www/community/frigate-hass-card/jsmpeg-ef28408a.js.gz create mode 100644 config/www/community/frigate-hass-card/jsmpeg-fd152ef0.js create mode 100644 config/www/community/frigate-hass-card/jsmpeg-fd152ef0.js.gz create mode 100644 config/www/community/frigate-hass-card/lang-ca-449daa4a.js create mode 100644 config/www/community/frigate-hass-card/lang-ca-449daa4a.js.gz create mode 100644 config/www/community/frigate-hass-card/lang-fr-674e5de5.js create mode 100644 config/www/community/frigate-hass-card/lang-fr-674e5de5.js.gz create mode 100644 config/www/community/frigate-hass-card/lang-fr-ea16daba.js create mode 100644 config/www/community/frigate-hass-card/lang-fr-ea16daba.js.gz create mode 100644 config/www/community/frigate-hass-card/lang-it-2a20a319.js create mode 100644 config/www/community/frigate-hass-card/lang-it-2a20a319.js.gz create mode 100644 config/www/community/frigate-hass-card/lang-pt-BR-83a703b9.js create mode 100644 config/www/community/frigate-hass-card/lang-pt-BR-83a703b9.js.gz create mode 100644 config/www/community/frigate-hass-card/lang-pt-PT-c4863423.js create mode 100644 config/www/community/frigate-hass-card/lang-pt-PT-c4863423.js.gz create mode 100644 config/www/community/frigate-hass-card/media-1a34ac2c.js create mode 100644 config/www/community/frigate-hass-card/media-1a34ac2c.js.gz create mode 100644 config/www/community/frigate-hass-card/media-67c578aa.js create mode 100644 config/www/community/frigate-hass-card/media-67c578aa.js.gz create mode 100644 config/www/community/frigate-hass-card/media-6eadcd60.js create mode 100644 config/www/community/frigate-hass-card/media-6eadcd60.js.gz create mode 100644 config/www/community/frigate-hass-card/media-aef44451.js create mode 100644 config/www/community/frigate-hass-card/media-aef44451.js.gz create mode 100644 config/www/community/frigate-hass-card/media-c9012082.js create mode 100644 config/www/community/frigate-hass-card/media-c9012082.js.gz create mode 100644 config/www/community/frigate-hass-card/media-d4c0d154.js create mode 100644 config/www/community/frigate-hass-card/media-d4c0d154.js.gz create mode 100644 config/www/community/frigate-hass-card/media-grid-0f7352bc.js create mode 100644 config/www/community/frigate-hass-card/media-grid-0f7352bc.js.gz create mode 100644 config/www/community/frigate-hass-card/media-grid-110faed3.js create mode 100644 config/www/community/frigate-hass-card/media-grid-110faed3.js.gz create mode 100644 config/www/community/frigate-hass-card/media-grid-3082f0ad.js create mode 100644 config/www/community/frigate-hass-card/media-grid-3082f0ad.js.gz create mode 100644 config/www/community/frigate-hass-card/media-grid-adc03f7c.js create mode 100644 config/www/community/frigate-hass-card/media-grid-adc03f7c.js.gz create mode 100644 config/www/community/frigate-hass-card/media-grid-cff66b0b.js create mode 100644 config/www/community/frigate-hass-card/media-grid-cff66b0b.js.gz create mode 100644 config/www/community/frigate-hass-card/media-grid-ef47501a.js create mode 100644 config/www/community/frigate-hass-card/media-grid-ef47501a.js.gz create mode 100644 config/www/community/frigate-hass-card/parse-114e8d53.js create mode 100644 config/www/community/frigate-hass-card/parse-114e8d53.js.gz create mode 100644 config/www/community/frigate-hass-card/parse-645a86cb.js create mode 100644 config/www/community/frigate-hass-card/parse-645a86cb.js.gz create mode 100644 config/www/community/frigate-hass-card/parse-7dfc1897.js create mode 100644 config/www/community/frigate-hass-card/parse-7dfc1897.js.gz create mode 100644 config/www/community/frigate-hass-card/parse-7f4a6e12.js create mode 100644 config/www/community/frigate-hass-card/parse-7f4a6e12.js.gz create mode 100644 config/www/community/frigate-hass-card/parse-a53fb39b.js create mode 100644 config/www/community/frigate-hass-card/parse-a53fb39b.js.gz create mode 100644 config/www/community/frigate-hass-card/parse-feacefaa.js create mode 100644 config/www/community/frigate-hass-card/parse-feacefaa.js.gz create mode 100644 config/www/community/frigate-hass-card/startOfHour-1a5ce3ae.js create mode 100644 config/www/community/frigate-hass-card/startOfHour-1a5ce3ae.js.gz create mode 100644 config/www/community/frigate-hass-card/startOfHour-4de961cf.js create mode 100644 config/www/community/frigate-hass-card/startOfHour-4de961cf.js.gz create mode 100644 config/www/community/frigate-hass-card/startOfHour-5e3c525d.js create mode 100644 config/www/community/frigate-hass-card/startOfHour-5e3c525d.js.gz create mode 100644 config/www/community/frigate-hass-card/startOfHour-7a3519fb.js create mode 100644 config/www/community/frigate-hass-card/startOfHour-7a3519fb.js.gz create mode 100644 config/www/community/frigate-hass-card/startOfHour-b41e160a.js create mode 100644 config/www/community/frigate-hass-card/startOfHour-b41e160a.js.gz create mode 100644 config/www/community/frigate-hass-card/startOfHour-f3ea02fd.js create mode 100644 config/www/community/frigate-hass-card/startOfHour-f3ea02fd.js.gz create mode 100644 config/www/community/frigate-hass-card/timeline-116cbe0a.js create mode 100644 config/www/community/frigate-hass-card/timeline-116cbe0a.js.gz create mode 100644 config/www/community/frigate-hass-card/timeline-3c6e5e5d.js create mode 100644 config/www/community/frigate-hass-card/timeline-3c6e5e5d.js.gz create mode 100644 config/www/community/frigate-hass-card/timeline-62b72e11.js create mode 100644 config/www/community/frigate-hass-card/timeline-62b72e11.js.gz create mode 100644 config/www/community/frigate-hass-card/timeline-c30d9341.js create mode 100644 config/www/community/frigate-hass-card/timeline-c30d9341.js.gz create mode 100644 config/www/community/frigate-hass-card/timeline-c3ef17c4.js create mode 100644 config/www/community/frigate-hass-card/timeline-c3ef17c4.js.gz create mode 100644 config/www/community/frigate-hass-card/timeline-core-744686a3.js create mode 100644 config/www/community/frigate-hass-card/timeline-core-744686a3.js.gz create mode 100644 config/www/community/frigate-hass-card/timeline-core-91693473.js create mode 100644 config/www/community/frigate-hass-card/timeline-core-91693473.js.gz create mode 100644 config/www/community/frigate-hass-card/timeline-core-99ac5d81.js create mode 100644 config/www/community/frigate-hass-card/timeline-core-99ac5d81.js.gz create mode 100644 config/www/community/frigate-hass-card/timeline-core-9cf72087.js create mode 100644 config/www/community/frigate-hass-card/timeline-core-9cf72087.js.gz create mode 100644 config/www/community/frigate-hass-card/timeline-core-b390cfa1.js create mode 100644 config/www/community/frigate-hass-card/timeline-core-b390cfa1.js.gz create mode 100644 config/www/community/frigate-hass-card/timeline-core-fabd0153.js create mode 100644 config/www/community/frigate-hass-card/timeline-core-fabd0153.js.gz create mode 100644 config/www/community/frigate-hass-card/timeline-dfcd5e4d.js create mode 100644 config/www/community/frigate-hass-card/timeline-dfcd5e4d.js.gz create mode 100644 config/www/community/frigate-hass-card/webrtc-card-171319e4.js create mode 100644 config/www/community/frigate-hass-card/webrtc-card-171319e4.js.gz create mode 100644 config/www/community/frigate-hass-card/webrtc-card-74652e9d.js create mode 100644 config/www/community/frigate-hass-card/webrtc-card-74652e9d.js.gz create mode 100644 config/www/community/frigate-hass-card/webrtc-card-a69dcd1f.js create mode 100644 config/www/community/frigate-hass-card/webrtc-card-a69dcd1f.js.gz create mode 100644 config/www/community/frigate-hass-card/webrtc-card-a9018c5e.js create mode 100644 config/www/community/frigate-hass-card/webrtc-card-a9018c5e.js.gz create mode 100644 config/www/community/frigate-hass-card/webrtc-card-b8854548.js create mode 100644 config/www/community/frigate-hass-card/webrtc-card-b8854548.js.gz create mode 100644 config/www/community/frigate-hass-card/webrtc-card-ee41138a.js create mode 100644 config/www/community/frigate-hass-card/webrtc-card-ee41138a.js.gz create mode 100644 config/www/community/frigate-hass-card/within-dates-2bb98b10.js create mode 100644 config/www/community/frigate-hass-card/within-dates-2bb98b10.js.gz create mode 100644 config/www/community/frigate-hass-card/within-dates-a146acf5.js create mode 100644 config/www/community/frigate-hass-card/within-dates-a146acf5.js.gz create mode 100644 config/www/community/frigate-hass-card/within-dates-a663657f.js create mode 100644 config/www/community/frigate-hass-card/within-dates-a663657f.js.gz create mode 100644 config/www/community/frigate-hass-card/within-dates-c613e3cb.js create mode 100644 config/www/community/frigate-hass-card/within-dates-c613e3cb.js.gz create mode 100644 config/www/community/frigate-hass-card/within-dates-cc65dfa5.js create mode 100644 config/www/community/frigate-hass-card/within-dates-cc65dfa5.js.gz create mode 100644 config/www/community/frigate-hass-card/within-dates-cc9f8404.js create mode 100644 config/www/community/frigate-hass-card/within-dates-cc9f8404.js.gz create mode 100644 config/www/community/frigate-hass-card/zoomer-28db7d93.js create mode 100644 config/www/community/frigate-hass-card/zoomer-28db7d93.js.gz create mode 100644 config/www/community/frigate-hass-card/zoomer-37e20bdd.js create mode 100644 config/www/community/frigate-hass-card/zoomer-37e20bdd.js.gz create mode 100644 config/www/community/frigate-hass-card/zoomer-672d26af.js create mode 100644 config/www/community/frigate-hass-card/zoomer-672d26af.js.gz create mode 100644 config/www/community/frigate-hass-card/zoomer-725f087c.js create mode 100644 config/www/community/frigate-hass-card/zoomer-725f087c.js.gz create mode 100644 config/www/community/frigate-hass-card/zoomer-85596cd4.js create mode 100644 config/www/community/frigate-hass-card/zoomer-85596cd4.js.gz create mode 100644 config/www/community/frigate-hass-card/zoomer-ddec5522.js create mode 100644 config/www/community/frigate-hass-card/zoomer-ddec5522.js.gz diff --git a/config/automation/away.yaml b/config/automation/away.yaml index 886e0d9c..f4f440f2 100755 --- a/config/automation/away.yaml +++ b/config/automation/away.yaml @@ -1,41 +1,32 @@ ###################################################################### ## Shut it all down. No one is here +# @CCOSTAN +# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig ###################################################################### # Define an alias for this automation - alias: 'Away Mode' - # Give the automation a unique ID id: 712e845a-9d72-4993-b8af-890b167c807b - # Set the mode to "single" mode: single - # Set the trigger for the automation trigger: - # The automation will also be triggered when the state of the "group.family" entity changes to "not_home" - platform: state entity_id: group.family to: 'not_home' - # Set the conditions for the automation to run condition: - # The automation will only run if the state of the "group.family" entity is "not_home" - condition: state entity_id: group.family state: 'not_home' - # The automation will also only run if the state of the "input_boolean.guest_mode" entity is "off" + - condition: state entity_id: input_boolean.guest_mode state: 'off' - # Set the actions to be performed by the automation action: - # Lock the front door - service: lock.lock entity_id: lock.front_door - - # Turn off all interior lights and devices - - service: script.interior_off - # Turn off the back landscaping lights + - service: script.interior_off - service: switch.turn_off entity_id: switch.back_landscaping diff --git a/config/automation/late_night_helper.yaml b/config/automation/late_night_helper.yaml index 5d30afa9..683e2897 100755 --- a/config/automation/late_night_helper.yaml +++ b/config/automation/late_night_helper.yaml @@ -38,6 +38,7 @@ entity_id: - group.kitchen_Accents - switch.front_office_lamp + - switch.living_room_outlet - delay: '00:05:00' - service: light.turn_off entity_id: diff --git a/config/group/Indoor_Outdoor.yaml b/config/group/Indoor_Outdoor.yaml index 2c4ca4f6..6a749c84 100755 --- a/config/group/Indoor_Outdoor.yaml +++ b/config/group/Indoor_Outdoor.yaml @@ -4,7 +4,8 @@ Interior_Lights: - group.kitchen_accents - light.bedroom - light.bedroom_lights - - light.den_lights + - light.den_2 + - light.den1 - light.dinette_lights - light.dining_room_lights - light.foyer_lights diff --git a/config/packages/phynplus.yaml b/config/packages/phynplus.yaml index cd2ca7e1..4f667627 100755 --- a/config/packages/phynplus.yaml +++ b/config/packages/phynplus.yaml @@ -19,6 +19,11 @@ automation: entity_id: switch.phyn_shutoff_valve to: 'off' + condition: + - condition: time + after: '05:00' + before: '04:00' + action: - service: script.notify_engine_two_button data: diff --git a/config/script/interior_off.yaml b/config/script/interior_off.yaml index c1169ffe..2f247cb6 100755 --- a/config/script/interior_off.yaml +++ b/config/script/interior_off.yaml @@ -10,7 +10,8 @@ interior_off: - service: homeassistant.turn_off entity_id: - group.interior_lights - - service: script.switch_turn_off_all + - group.interior_switches + - switch.lr_amp - service: script.paige_lights_off # C by GE Lights (https://amzn.to/30w3UWy) - service: script.garage_lights_off # C by GE Lights (https://amzn.to/30w3UWy) # - service: script.noon_lights_off # Noon Home Smart Lights (https://amzn.to/3fOIPx6) diff --git a/config/script/notify_engine.yaml b/config/script/notify_engine.yaml index eb188c1c..d34ef12c 100755 --- a/config/script/notify_engine.yaml +++ b/config/script/notify_engine.yaml @@ -56,7 +56,7 @@ notify_engine: group: "{{ group|default('information'),true }}" push: interuption_level: "{{ level|default('active'),true }}" - entity_id: "{{ camera_entity }}" + entity_id: "{{ camera_entity|default('', true) }}" notify_engine_two_button: sequence: diff --git a/config/script/switch_turn_off_all.yaml b/config/script/switch_turn_off_all.yaml deleted file mode 100755 index 6d95a7e4..00000000 --- a/config/script/switch_turn_off_all.yaml +++ /dev/null @@ -1,13 +0,0 @@ -###################################################################################################### -###Script to shut switches with a 30 second delay to not trample codes -### Sample Call -# action: -# - service: script.switch_turn_off_all -###################################################################################################### - -switch_turn_off_all: - sequence: - - service: switch.turn_off - entity_id: group.interior_switches - - service: switch.turn_off - entity_id: switch.lr_amp diff --git a/config/www/community/Bubble-Card/bubble-card.js b/config/www/community/Bubble-Card/bubble-card.js new file mode 100644 index 00000000..920c205d --- /dev/null +++ b/config/www/community/Bubble-Card/bubble-card.js @@ -0,0 +1,1441 @@ +(()=>{"use strict";var __webpack_modules__={946:(e,t,n)=>{function o(e,t=40){if(Array.isArray(e)&&3===e.length){for(let t=0;t<3;t++)if(e[t]<0||e[t]>255)return;return e.every((e=>Math.abs(e-255)<=t))}}let a;function i(e,t,n=1){if(e.startsWith("#"))if(4===e.length){let o=Math.min(255,parseInt(e.charAt(1).repeat(2),16)*n),i=Math.min(255,parseInt(e.charAt(2).repeat(2),16)*n),r=Math.min(255,parseInt(e.charAt(3).repeat(2),16)*n);a="rgba("+o+", "+i+", "+r+", "+t+")"}else{let o=Math.min(255,parseInt(e.slice(1,3),16)*n),i=Math.min(255,parseInt(e.slice(3,5),16)*n),r=Math.min(255,parseInt(e.slice(5,7),16)*n);a="rgba("+o+", "+i+", "+r+", "+t+")"}else if(e.startsWith("rgb")){let o=e.match(/\d+/g);a="rgba("+Math.min(255,o[0]*n)+", "+Math.min(255,o[1]*n)+", "+Math.min(255,o[2]*n)+", "+t+")"}else if(e.startsWith("var(--")){let o=e.slice(4,-1),r=window.getComputedStyle(document.documentElement).getPropertyValue(o);(r.startsWith("#")||r.startsWith("rgb"))&&(a=i(r,t,n))}return a}n.d(t,{_k:()=>i,wW:()=>o})},191:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{BX:()=>fireEvent,GP:()=>applyScrollingEffect,IL:()=>getAttribute,Jn:()=>tapFeedback,OC:()=>isEntityType,P2:()=>throttle,Vv:()=>isColorLight,X:()=>getWeatherIcon,az:()=>createElement,gJ:()=>getImage,jk:()=>forwardHaptic,jx:()=>setLayout,mk:()=>getIconColor,o0:()=>formatDateTime,oY:()=>getName,pr:()=>isStateOn,q7:()=>getIcon,y0:()=>getState});var _style_ts__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(946);function hasStateChanged(e,t,n){if(e.hasState=t.states[n],e.hasState)return e.newState=[e.hasState.state,e.hasState.attributes.rgb_color],e.oldState&&e.newState[0]===e.oldState[0]&&e.newState[1]===e.oldState[1]?e.stateChanged=!1:(e.oldState=e.newState,e.stateChanged=!0),e.stateChanged}function configChanged(e,t){return!(!t.classList.contains("editor")||e.config===e.previousConfig||(e.previousConfig=e.config,0))}const fireEvent=(e,t,n,o)=>{o=o||{},n=null==n?{}:n;const a=new Event(t,{bubbles:void 0===o.bubbles||o.bubbles,cancelable:Boolean(o.cancelable),composed:void 0===o.composed||o.composed});return a.detail=n,e.dispatchEvent(a),a},forwardHaptic=e=>{fireEvent(window,"haptic",e)},navigate=(e,t,n=!1)=>{n?history.replaceState(null,"",t):history.pushState(null,"",t),fireEvent(window,"location-changed",{replace:n})};function toggleEntity(e,t){e.callService("homeassistant","toggle",{entity_id:t})}function tapFeedback(e){void 0!==e&&(e.style.display="",e.style.animation="tap-feedback .3s",setTimeout((()=>{e.style.animation="none",e.style.display="none"}),500))}function getIcon(e,t=e.config.entity,n=e.config.icon){const o=t?.split(".")[0],a=getAttribute(e,"device_class",t),i=getAttribute(e,"icon",t),r=n,s=getState(e,t),l={alarm_control_panel:"mdi:shield",alert:"mdi:alert",automation:"mdi:playlist-play",binary_sensor:function(){const n="off"===s;switch(getAttribute(e,"device_class",t)){case"battery":return n?"mdi:battery":"mdi:battery-outline";case"battery_charging":return n?"mdi:battery":"mdi:battery-charging";case"cold":return n?"mdi:thermometer":"mdi:snowflake";case"connectivity":return n?"mdi:server-network-off":"mdi:server-network";case"door":return n?"mdi:door-closed":"mdi:door-open";case"garage_door":return n?"mdi:garage":"mdi:garage-open";case"heat":return n?"mdi:thermometer":"mdi:fire";case"light":return n?"mdi:brightness-5":"mdi:brightness-7";case"lock":return n?"mdi:lock":"mdi:lock-open";case"moisture":return n?"mdi:water-off":"mdi:water";case"motion":return n?"mdi:motion-sensor-off":"mdi:motion-sensor";case"occupancy":case"presence":return n?"mdi:home-outline":"mdi:home";case"opening":return n?"mdi:square":"mdi:square-outline";case"plug":case"power":return n?"mdi:power-plug-off":"mdi:power-plug";case"running":return n?"mdi:stop":"mdi:play";case"safety":case"tamper":return n?"mdi:check-circle":"mdi:alert-circle";case"smoke":return n?"mdi:check-circle":"mdi:smoke";case"sound":return n?"mdi:music-note-off":"mdi:music-note";case"update":return n?"mdi:package":"mdi:package-up";case"vibration":return n?"mdi:crop-portrait":"mdi:vibrate";case"window":return n?"mdi:window-closed":"mdi:window-open";default:return n?"mdi:radiobox-blank":"mdi:checkbox-marked-circle"}}(),calendar:"mdi:calendar",camera:"mdi:video",climate:"mdi:thermostat",configurator:"mdi:settings",conversation:"mdi:text-to-speech",cover:function(){const n="closed"!==s;switch(getAttribute(e,"device_class",t)){case"awning":return n?"mdi:awning-outline":"mdi:awning";case"blind":return n?"mdi:blinds-open":"mdi:blinds";case"curtain":return n?"mdi:curtains-open":"mdi:curtains";case"damper":case"shutter":default:return n?"mdi:window-shutter-open":"mdi:window-shutter";case"door":return n?"mdi:door-open":"mdi:door-closed";case"garage":return n?"mdi:garage-open":"mdi:garage";case"gate":return n?"mdi:gate-open":"mdi:gate";case"shade":return n?"mdi:roller-shade":"mdi:roller-shade-closed";case"window":return n?"mdi:window-open":"mdi:window-closed"}}(),device_tracker:"mdi:account",fan:"mdi:fan",group:"mdi:google-circles-communities",history_graph:"mdi:chart-line",homeassistant:"mdi:home-assistant",homekit:"mdi:home-automation",image_processing:"mdi:image-filter-frames",input_boolean:"mdi:drawing",input_datetime:"mdi:calendar-clock",input_number:"mdi:ray-vertex",input_select:"mdi:format-list-bulleted",input_text:"mdi:textbox",light:"mdi:lightbulb",lock:"mdi:lock",mailbox:"mdi:mailbox",media_player:"mdi:speaker",mower:"mdi:robot-mower",notify:"mdi:comment-alert",person:"mdi:account",plant:"mdi:flower",proximity:"mdi:apple-safari",remote:"mdi:remote",scene:"mdi:palette",script:"mdi:file-document",sensor:function(){switch(getAttribute(e,"device_class",t)){case"battery":return 100==s?"mdi:battery":s>=90?"mdi:battery-90":s>=80?"mdi:battery-80":s>=70?"mdi:battery-70":s>=60?"mdi:battery-60":s>=50?"mdi:battery-50":s>=40?"mdi:battery-40":s>=30?"mdi:battery-30":s>=20?"mdi:battery-20":s>=10?"mdi:battery-10":"mdi:battery-alert";case"humidity":return"mdi:water-percent";case"illuminance":return"mdi:brightness-5";case"temperature":return"mdi:thermometer";case"pressure":return"mdi:gauge";case"power":return"mdi:flash";case"signal_strength":return"mdi:wifi";case"energy":return"mdi:lightning-bolt";default:return"mdi:eye"}}(),simple_alarm:"mdi:bell",sun:"mdi:white-balance-sunny",switch:"mdi:flash",timer:"mdi:timer",updater:"mdi:cloud-upload",vacuum:"mdi:robot-vacuum",water_heater:"mdi:thermometer",weather:function(n=getState(e,t)){switch(n){case"cloudy":default:return"mdi:weather-cloudy";case"partlycloudy":return"mdi:weather-partly-cloudy";case"rainy":return"mdi:weather-rainy";case"snowy":return"mdi:weather-snowy";case"sunny":return"mdi:weather-sunny";case"clear-night":return"mdi:weather-night";case"fog":return"mdi:weather-fog";case"hail":return"mdi:weather-hail";case"lightning":return"mdi:weather-lightning";case"lightning-rainy":return"mdi:weather-lightning-rainy";case"pouring":return"mdi:weather-pouring";case"windy":return"mdi:weather-windy";case"windy-variant":return"mdi:weather-windy-variant";case"exceptional":return"mdi:alert-circle-outline"}}(),weblink:"mdi:open-in-new"};return r||i||(l[o]?l[o]:l[a]?l[a]:"")}function getWeatherIcon(e){switch(e){case"cloudy":default:return"mdi:weather-cloudy";case"partlycloudy":return"mdi:weather-partly-cloudy";case"rainy":return"mdi:weather-rainy";case"snowy":return"mdi:weather-snowy";case"sunny":return"mdi:weather-sunny";case"clear-night":return"mdi:weather-night";case"fog":return"mdi:weather-fog";case"hail":return"mdi:weather-hail";case"lightning":return"mdi:weather-lightning";case"lightning-rainy":return"mdi:weather-lightning-rainy";case"pouring":return"mdi:weather-pouring";case"windy":return"mdi:weather-windy";case"windy-variant":return"mdi:weather-windy-variant";case"exceptional":return"mdi:alert-circle-outline"}}let cachedColor=null,cachedResult=null;function resolveCssVariable(e){const t=getComputedStyle(document.body);let n=e;for(;n.startsWith("var(");){const e=n.match(/var\((--[^,]+),?\s*(.*)?\)/);if(!e)break;const o=t.getPropertyValue(e[1]).trim();if(o)n=o;else{if(!e[2])break;n=e[2].trim()}}return n}function isColorLight(e){const t=resolveCssVariable(e);if(!t)return!1;if(t===cachedColor)return cachedResult;cachedColor=t;const n=t.match(/^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i);let o,a,i;if(n)o=parseInt(n[1],16),a=parseInt(n[2],16),i=parseInt(n[3],16);else{const e=t.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)/i);if(!e)return cachedResult=!1,cachedResult;o=parseInt(e[1],10),a=parseInt(e[2],10),i=parseInt(e[3],10)}return cachedResult=(.2126*o+.7152*a+.0722*i)/255>.5,cachedResult}function getIconColor(e,t=e.config.entity,n=1){const o=e.config.card_type,a=e.config.use_accent_color,i="var(--bubble-accent-color, var(--accent-color))",r=getAttribute(e,"rgb_color",t),s=isColorLight("var(--bubble-button-icon-background-color, var(--bubble-icon-background-color, var(--bubble-secondary-background-color, var(--card-background-color, var(--ha-card-background)))))");if(n=s?n-.2:n,!t)return i;if(isEntityType(e,"light")&&!a?"button"===o?e.card.classList.add("is-light"):"pop-up"===o&&e.elements.headerContainer.classList.add("is-light"):"button"===o?e.card.classList.remove("is-light"):"pop-up"===o&&e.elements.headerContainer.classList.remove("is-light"),!1===t.startsWith("light.")||a)return i;const l=[225,225,210];if(!r)return`var(--bubble-light-color, rgba(${l.map((e=>Math.min(255,e*n))).join(", ")}))`;const c=r.map((e=>Math.min(255,e*n)));return(0,_style_ts__WEBPACK_IMPORTED_MODULE_0__.wW)(r)?`var(--bubble-light-color, rgba(${l.map((e=>Math.min(255,e*n))).join(", ")}))`:`var(--bubble-light-color, rgba(${c.join(", ")}))`}function getImage(e,t=e.config.entity){if(e.config.force_icon)return"";const n=e._hass.states[t],o=n.attributes.entity_picture_local||n.attributes.entity_picture;return o?e._hass.hassUrl(o):""}function getName(e){const t=e.config.name,n=getAttribute(e,"friendly_name");return e.name||t||n||""}function getState(e,t=e.config.entity){return e._hass.states[t]?.state??""}function getAttribute(context,attribute,entity=context.config.entity){return attribute?eval(`context._hass.states['${entity}']?.attributes.${attribute}`)??"":""}function isEntityType(e,t){return e.config.entity?.startsWith(t+".")??!1}function isStateOn(e,t=e.config.entity){const n=getState(e,t).toLowerCase(),o=Number(n);return!!(["on","open","opening","closing","cleaning","true","idle","home","playing","paused","locked","occupied","available","running","active","connected","online","mowing","starting","heat","cool","dry","heat_cool","fan_only","auto","alarm"].includes(n)||o>0)}function createElement(e,t=""){const n=document.createElement(e);return""!==t&&t.split(" ").forEach((e=>{n.classList.add(e)})),n}function debounce(e,t){let n;return function(...o){clearTimeout(n),n=setTimeout((()=>e.apply(this,o)),t)}}function applyScrollingEffect(e,t,n){const o=e.config.scrolling_effect??!0;if(!o)return void applyNonScrollingStyle(t,n);if(t.previousText===n)return;const a=t.className.split(" ").find((e=>e.startsWith("bubble-")));function i(){t.innerHTML=`
${n}
`,t.style="";const e=t.scrollWidth,i=t.parentNode?.offsetWidth||0;o&&e>i?(function(e,t,n){const o=' | ',a=`${t+o+t+o}`;e.innerHTML=`
${a}
`;const i=function(e){return`\n .${e} .scrolling-container {\n width: 100%;\n white-space: nowrap;\n mask-image: linear-gradient(to right, transparent, black calc(0% + 8px), black calc(100% - 8px), transparent);\n mask-image: linear-gradient(to left, transparent, black calc(0% + 8px), black calc(100% - 8px), transparent);\n }\n .${e} .scrolling-container span {\n display: inline-block;\n animation: scroll 14s linear infinite;\n }\n\n .bubble-scroll-separator {\n opacity: .3;\n margin: 0 6px 0 8px;\n }\n\n @keyframes scroll {\n from { transform: translateX(0%); }\n to { transform: translateX(-50%); }\n }\n `}(n);e.styleElement=document.createElement("style"),e.appendChild(e.styleElement),e.styleElement.innerHTML=i}(t,n,a),t.previousText=n):t.previousText=n}requestAnimationFrame(i),t.eventAdded||(window.addEventListener("resize",debounce(i,300)),t.eventAdded=!0)}function applyNonScrollingStyle(e,t){e.innerHTML=t,e.previousText=t,e.style.whiteSpace="normal",e.style.display="-webkit-box",e.style.webkitLineClamp="2",e.style.webkitBoxOrient="vertical",e.style.textOverflow="ellipsis"}function formatDateTime(e,t){if(!e)return"";const n=new Date(e),o=new Date;let a,i,r=Math.floor((o-n)/1e3);return isNaN(r)?"":(r<60?(a="second",i=r+1):r<3600?(a="minute",i=Math.floor(r/60)):r<86400?(a="hour",i=Math.floor(r/3600)):(a="day",i=Math.floor(r/86400)),new Intl.RelativeTimeFormat(t,{numeric:"auto"}).format(-i,a))}function setLayout(e){const t=e.config.card_layout,n="large"===t||"large-2-rows"===t,o="large-2-rows"===t;n!==e.content.classList.contains("large")&&e.content.classList.toggle("large",n),o!==e.content.classList.contains("rows-2")&&e.content.classList.toggle("rows-2",o)}function throttle(e,t=300){let n;return(...o)=>{void 0===n&&(e(...o),n=setTimeout((()=>{n=void 0}),t))}}}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](n,n.exports,__webpack_require__),n.exports}__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var __webpack_exports__={};(()=>{let e="v2.3.3";var t=__webpack_require__(946),n=__webpack_require__(191);function o(e,t,n){setTimeout((()=>{const o=new Event("hass-action",{bubbles:!0,composed:!0}),a={...t};!a.entity_id&&this?.config?.entity&&(a.entity_id=this.config.entity),"tap"===n||"double_tap"===n||"hold"===n?o.detail={config:a,action:n}:(e.modifiedConfig={...a,tap_action:{...a[n]}},delete e.modifiedConfig[n],o.detail={config:e.modifiedConfig,action:"tap"}),e.dispatchEvent(o)}),10)}function a(e,t,n,o){e.classList.add("bubble-action"),e.dataset.entity=t?.entity||n,e.dataset.tapAction=JSON.stringify(t?.tap_action||o?.tap_action||{action:"more-info"}),e.dataset.doubleTapAction=JSON.stringify(t?.double_tap_action||o?.double_tap_action||{action:"toggle"}),e.dataset.holdAction=JSON.stringify(t?.hold_action||o?.hold_action||{action:"toggle"});const a=JSON.parse(e.dataset.tapAction),i=JSON.parse(e.dataset.doubleTapAction),r=JSON.parse(e.dataset.holdAction);e.style.cursor="none"===a.action&&"none"===i.action&&"none"===r.action?"":"pointer"}window.isScrolling=!1,document.addEventListener("scroll",(function(){window.isScrolling=!0,setTimeout((()=>{window.isScrolling=!1}),150)}),{passive:!0}),document.body.addEventListener("pointerdown",(e=>{if(window.isScrolling)return;const t=e.composedPath();let n=null;for(const e of t)if(e.classList&&e.classList.contains("bubble-action")){n=e;break}if(n){const t={tap_action:JSON.parse(n.dataset.tapAction),double_tap_action:JSON.parse(n.dataset.doubleTapAction),hold_action:JSON.parse(n.dataset.holdAction),entity:n.dataset.entity};n.actionHandler||(n.actionHandler=new i(n,t,r)),n.actionHandler.handleStart(e),n.addEventListener("pointerup",n.actionHandler.handleEnd.bind(n.actionHandler),{once:!0}),document.addEventListener("scroll",n.actionHandler.handleScroll.bind(n.actionHandler),{once:!0})}}),{passive:!0});class i{constructor(e,t,n){this.element=e,this.config=t,this.sendActionEvent=n,this.tapTimeout=null,this.holdTimeout=null,this.startX=0,this.startY=0,this.holdFired=!1,this.pointerMoveListener=this.detectScrollLikeMove.bind(this)}handleStart(e){window.isScrolling||this.isDisconnected||(this.startX=e.clientX,this.startY=e.clientY,this.holdFired=!1,document.addEventListener("pointermove",this.pointerMoveListener),this.holdTimeout=setTimeout((()=>{"none"===(this.config.hold_action||{action:"none"}).action||window.isScrolling||(this.sendActionEvent(this.element,this.config,"hold"),this.holdFired=!0)}),400))}detectScrollLikeMove(e){const t=Math.abs(e.clientX-this.startX),n=Math.abs(e.clientY-this.startY);(t>5||n>5)&&(clearTimeout(this.holdTimeout),this.holdTimeout=null,document.removeEventListener("pointermove",this.pointerMoveListener))}handleEnd(e){if(window.isScrolling||this.isDisconnected)return;if(clearTimeout(this.holdTimeout),this.holdTimeout=null,document.removeEventListener("pointermove",this.pointerMoveListener),this.holdFired)return;const t=Date.now(),n=this.config.double_tap_action||{action:"none"},o=this.config.tap_action||{action:"none"};this.lastTap&&t-this.lastTap<200&&"none"!==n.action?(clearTimeout(this.tapTimeout),this.sendActionEvent(this.element,this.config,"double_tap")):"none"!==o.action&&(this.tapTimeout=setTimeout((()=>{this.sendActionEvent(this.element,this.config,"tap")}),200)),this.lastTap=t}handleScroll(){clearTimeout(this.holdTimeout),this.holdTimeout=null,document.removeEventListener("pointermove",this.pointerMoveListener)}}function r(e,t,n){const a=t.tap_action||{action:"more-info"},i=t.double_tap_action||{action:"toggle"},r=t.hold_action||{action:"toggle"},s=t.entity||this.config?.entity,l=e=>e.service&&"entity"===e.target?.entity_id&&s?{...e,target:{...e.target,entity_id:s}}:e,c=l(a),d=l(i),u=l(r);let b;switch(n){case"tap":default:b=c;break;case"double_tap":b=d;break;case"hold":b=u}o(e,{entity:s,tap_action:c,double_tap_action:d,hold_action:u},n)}function s(e,t){e.addEventListener("click",(()=>{(0,n.jk)("selection"),(0,n.Jn)(t)}))}let l=!1;function c(){!l&&location.hash&&setTimeout((()=>{const e=window.location.href.split("#")[0];history.replaceState(null,"",e),window.dispatchEvent(new Event("location-changed"))}),50)}function d(e){const t=e.startsWith("#")?window.location.href.split("#")[0]+e:e;history.pushState(null,"",t),window.dispatchEvent(new Event("location-changed"))}function u(e,t){e.editor||(e.hideContentTimeout=setTimeout((()=>{const{sectionRow:t,sectionRowContainer:n}=e;"hui-card"===t?.tagName.toLowerCase()&&(t.hidden=!0,t.style.display="none",n?.classList.contains("card")&&(n.style.display="none"))}),t))}function b(e,t){const{showBackdrop:n,hideBackdrop:o}=L(e);t?n():o()}function p(e,t){if(e.config.background_update)return;const n=t?"appendChild":"removeChild";requestAnimationFrame((()=>{e.verticalStack[n](e.popUp)}))}function h(e,t){requestAnimationFrame((()=>{e.classList.toggle("is-popup-opened",t),e.classList.toggle("is-popup-closed",!t)}))}function m(e,t){e.boundClickOutside||(e.boundClickOutside=t=>function(e,t){(t.config.close_by_clicking_outside??1)&&(e.composedPath().find((e=>e.classList?.contains("bubble-pop-up")||["HA-DIALOG","HA-MORE-INFO-DIALOG","HA-DIALOG-DATE-PICKER"].includes(e.nodeName)))||c())}(t,e)),t?(e.listenersAdded||(e.popUp.addEventListener("touchstart",e.resetCloseTimeout,{passive:!0}),e.listenersAdded=!0),window.clickOutsideListenerAdded||(window.addEventListener("click",e.boundClickOutside,{passive:!0}),window.clickOutsideListenerAdded=!0)):e.listenersAdded&&(e.popUp.removeEventListener("touchstart",e.resetCloseTimeout),e.listenersAdded=!1,!location.hash&&window.clickOutsideListenerAdded&&(window.removeEventListener("click",e.boundClickOutside),window.clickOutsideListenerAdded=!1))}function g(e){document.body.style.overflow=e}function f(e){["hideContentTimeout","removeDomTimeout","closeTimeout"].forEach((t=>clearTimeout(e[t])))}const _="\n .bubble-backdrop {\n position: fixed;\n background-color: var(--bubble-backdrop-background-color);\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 4;\n opacity: 0;\n transition: opacity 0.3s;\n transition-delay: .1s;\n display: flex;\n backdrop-filter: var(--custom-backdrop-filter);\n -webkit-backdrop-filter: var(--custom-backdrop-filter);\n transform: translate3d(0, 0, 0);\n }\n\n .bubble-backdrop.is-visible {\n opacity: 1;\n }\n\n .bubble-backdrop.is-hidden {\n opacity: 0;\n pointer-events: none;\n }\n";let y,v,w,x,k=!1;const C=window.matchMedia("(prefers-color-scheme: dark)"),$=(0,n.az)("style");function S(){x=getComputedStyle(document.body).getPropertyValue("--ha-card-background")||getComputedStyle(document.body).getPropertyValue("--card-background-color"),document.body.style.setProperty("--bubble-backdrop-background-color",(0,t._k)(x,.8,.6))}function L(e){const t=e.config.hide_backdrop??!1;if(y)return y;$.innerHTML=_,document.head.appendChild($);const o=(0,n.az)("style");document.head.appendChild(o);const a=(0,n.az)("div","bubble-backdrop backdrop is-hidden");return t&&(a.style.display="none",a.style.pointerEvents="none"),document.body.appendChild(a),a.style.setProperty("--custom-backdrop-filter",`blur(${e.config.backdrop_blur??0}px)`),y={hideBackdrop:function(){a.classList.add("is-hidden"),a.classList.remove("is-visible")},showBackdrop:function(){requestAnimationFrame((()=>{a.classList.add("is-visible"),a.classList.remove("is-hidden")}))},backdropElement:a,backdropCustomStyle:o},y}function T(e,t,n,o){let a;switch(n){case"hvac_modes":a=document.createElement("ha-icon"),a.slot="graphic",a.icon=function(e){switch(e){case"auto":return"mdi:thermostat-auto";case"cool":return"mdi:snowflake";case"heat":return"mdi:fire";case"heat_cool":return"mdi:sun-snowflake-variant";case"dry":return"mdi:water-percent";case"fan_only":default:return"mdi:fan";case"off":return"mdi:power"}}(o);break;case"fan_modes":if(!t.attributes.fan_modes)return null;a=document.createElement("ha-attribute-icon"),a.slot="graphic",a.attribute="fan_mode",a.attributeValue=o,a.hass=e._hass,a.stateObj=t;break;case"swing_modes":a=document.createElement("ha-attribute-icon"),a.slot="graphic",a.attribute="swing_mode",a.attributeValue=o,a.hass=e._hass,a.stateObj=t;break;case"preset_modes":a=document.createElement("ha-attribute-icon"),a.slot="graphic",a.attribute="preset_mode",a.attributeValue=o,a.hass=e._hass,a.stateObj=t;break;default:a=!1}return a}C.addEventListener("change",S),S();const O="\n * {\n -webkit-tap-highlight-color: transparent !important;\n }\n ha-card {\n margin-top: 0;\n background: none;\n opacity: 1;\n }\n mwc-list-item {\n border-radius: var(--bubble-select-list-border-radius, var(--bubble-border-radius, 24px));\n margin: 0 8px;\n }\n mwc-list-item[selected] {\n color: var(--primary-text-color) !important;\n background-color: var(--bubble-list-item-accent-color, var(--bubble-accent-color, var(--accent-color)));\n }\n ha-select {\n --mdc-shape-medium: var(--bubble-select-list-border-radius, var(--bubble-border-radius, 32px));\n --mdc-theme-surface: var(--bubble-select-list-background-color, var(--bubble-select-main-background-color, var(--bubble-main-background-color, var(--card-background-color, var(--secondary-background-color)))));\n --mdc-shape-large: 32px;\n --mdc-shape-small: 64px;\n --mdc-menu-max-width: min-content;\n --mdc-menu-min-width: var(--bubble-select-list-width, 200px);\n --mdc-select-max-width: min-content;\n --mdc-select-outlined-hover-border-color: transparent;\n --mdc-select-outlined-idle-border-color: transparent;\n --mdc-theme-primary: transparent;\n --right-value: calc(var(--mdc-menu-min-width) - 154px);\n }\n .mdc-select {\n color: transparent !important;\n width: 150px !important;\n position: absolute !important;\n pointer-events: none;\n right: var(--right-value, 46px);\n top: -28px;\n }\n .mdc-menu, mwc-list, .mdc-list-item {\n pointer-events: auto;\n }\n .mdc-select__dropdown-icon {\n display: none !important;\n }\n .mdc-select__selected-text {\n color: transparent !important;\n }\n .mdc-select__anchor {\n width: 100%;\n pointer-events: none;\n }\n .bubble-dropdown-container {\n display: flex !important;\n width: auto;\n height: 100%;\n align-items: center;\n }\n .bubble-dropdown-arrow {\n display: flex;\n position: absolute;\n background: var(--bubble-select-arrow-background-color, var(--bubble-icon-background-color, var(--bubble-secondary-background-color, var(--card-background-color, var(--ha-card-background)))));\n height: 36px;\n width: 36px;\n right: 6px;\n pointer-events: none;\n border-radius: var(--bubble-select-button-border-radius, var(--bubble-border-radius, 20px));\n align-items: center;\n justify-content: center;\n transition: background 0.2s, transform 0.2s;\n pointer-events: none;\n }\n .bubble-dropdown-select {\n position: relative;\n width: 42px;\n }\n .is-unavailable {\n opacity: 0.5;\n }\n .bubble-select-card-container {\n position: relative;\n width: 100%;\n height: 50px;\n background-color: var(--bubble-select-main-background-color, var(--bubble-main-background-color, var(--background-color-2, var(--secondary-background-color))));\n border-radius: var(--bubble-select-border-radius, var(--bubble-border-radius, 32px));\n box-shadow: var(--bubble-select-box-shadow, var(--bubble-box-shadow, none));\n touch-action: pan-y;\n box-sizing: border-box;\n border: solid 2px transparent;\n transition: all 0.15s;\n cursor: pointer;\n }\n .bubble-select-card,\n .bubble-select-background {\n display: flex;\n position: absolute;\n justify-content: space-between;\n align-items: center;\n height: 100%;\n width: 100%;\n transition: background-color 1.5s;\n }\n .bubble-select-background {\n background-color: var(--bubble-select-background-color);\n opacity: .5;\n overflow: hidden !important;\n border-radius: var(--bubble-select-border-radius, var(--bubble-border-radius, 32px));\n }\n .is-unavailable .bubble-select-card {\n cursor: not-allowed;\n }\n .bubble-icon-container {\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n justify-content: center;\n min-width: 38px;\n min-height: 38px;\n margin: 6px;\n border-radius: var(--bubble-select-icon-border-radius, var(--bubble-icon-border-radius, var(--bubble-border-radius, 50%)));\n background-color: var(--bubble-select-icon-background-color, var(--bubble-icon-background-color, var(--bubble-secondary-background-color, var(--card-background-color, var(--ha-card-background)))));\n overflow: hidden;\n position: relative;\n cursor: pointer;\n }\n .bubble-icon-container::after {\n content: '';\n background-color: currentColor;\n position: absolute;\n display: block;\n width: 100%;\n height: 100%;\n transition: all 1s;\n left: 0;\n right: 0;\n opacity: 0;\n pointer-events: none;\n }\n\n .bubble-icon {\n display: flex;\n opacity: 0.6;\n }\n\n .bubble-entity-picture {\n background-size: cover;\n background-position: center;\n height: 100%;\n width: 100%;\n position: absolute;\n }\n\n .bubble-name,\n .bubble-state {\n display: flex;\n position: relative;\n white-space: nowrap;\n }\n\n .bubble-name-container {\n display: flex;\n line-height: 18px;\n flex-direction: column;\n justify-content: center;\n flex-grow: 1;\n margin: 0 16px 0 4px;\n pointer-events: none;\n position: relative;\n overflow: hidden;\n }\n\n .bubble-name {\n font-weight: 600;\n }\n\n .bubble-state {\n font-size: 12px;\n font-weight: normal;\n opacity: 0.7;\n }\n\n .bubble-feedback-element {\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n width: 100%;\n height: 100%;\n background-color: rgb(0,0,0);\n pointer-events: none;\n }\n\n @keyframes tap-feedback {\n 0% {transform: translateX(-100%); opacity: 0;}\n 64% {transform: translateX(0); opacity: 0.1;}\n 100% {transform: translateX(100%); opacity: 0;}\n }\n\n .large .bubble-select-card-container {\n height: 56px;\n border-radius: var(--bubble-select-border-radius, var(--bubble-border-radius, 32px));\n }\n\n .large .bubble-icon-container {\n --mdc-icon-size: 24px;\n min-width: 42px !important;\n min-height: 42px !important;\n margin-left: 6px;\n }\n\n .rows-2 .bubble-sub-button-container {\n flex-direction: column;\n gap: 4px !important;\n display: grid !important;\n grid-template-columns: repeat(2, min-content);\n grid-template-rows: repeat(2, 1fr);\n grid-auto-flow: column;\n width: auto;\n }\n\n .rows-2 .bubble-sub-button {\n height: 20px !important;\n }\n";function z(e,t=e.elements,o){t.dropdownContainer=(0,n.az)("div","bubble-dropdown-container"),t.dropdownSelect=(0,n.az)("ha-select","bubble-dropdown-select"),t.dropdownSelect.setAttribute("outlined",""),t.dropdownArrow=(0,n.az)("ha-icon","bubble-dropdown-arrow"),t.dropdownArrow.setAttribute("icon","mdi:chevron-down"),t.dropdownContainer.appendChild(t.dropdownArrow),t.dropdownStyleElement=(0,n.az)("style"),t.dropdownCustomStyleElement=(0,n.az)("style"),t.dropdownStyleElement.textContent=O,t.dropdownSelect.updateComplete.then((()=>{!function(){if(t.dropdownSelect.shadowRoot)if(t!==e.elements){t.dropdownSelectStyleElement=(0,n.az)("style"),t.dropdownSelectStyleElement.textContent=O,t.dropdownSelect.shadowRoot.appendChild(t.dropdownSelectStyleElement),t.dropdownContainer.appendChild(t.dropdownStyleElement),o&&(t.dropdownContainer.style.width="24px"),t.dropdownArrow.style.height="20px",t.dropdownArrow.style.width="20px",t.mainContainer=t.parentElement.parentElement.parentElement;let e=t.dropdownSelect.shadowRoot.querySelector("mwc-menu");e&&(e.style.position="relative",e.style.right="138px")}else t.dropdownSelect.shadowRoot.appendChild(t.dropdownStyleElement),t.dropdownSelect.shadowRoot.appendChild(t.dropdownCustomStyleElement)}()})),t===e.elements?t.selectCard.appendChild(t.dropdownContainer):t.appendChild(t.dropdownContainer)}function E(e,t=e.elements,n=e.config.entity,o=e.config){const{dropdownArrow:a,dropdownSelect:i,selectCardContainer:r,selectBackground:s}=t,l=t===e.elements?r:t,c=t===e.elements?s:t;t!==e.elements&&(l.style.border="solid 2px rgba(0,0,0,0)");let d=!0;c.addEventListener("click",(e=>{if("mwc-list-item"===e.target.tagName.toLowerCase())return;const n=i.shadowRoot.querySelector("mwc-menu"),o=()=>{a.style.transform="rotate(180deg)",t.dropdownArrow.style.background="var(--accent-color)",l.style.border="var(--bubble-select-border, solid 2px var(--accent-color))",t.mainContainer&&(t.mainContainer.style.overflow="visible")};d?(d=!1,a.style.transition="none",n.setAttribute("open",""),requestAnimationFrame((()=>{n.removeAttribute("open"),setTimeout((()=>{a.style.transition="",o()}),140)}))):(n.hasAttribute("open")||(n.removeAttribute("mdc-menu-surface--is-open-below"),n.setAttribute("mdc-menu-surface--is-open-above",""),n.setAttribute("open","")),o())})),i.addEventListener("closed",(e=>{e.stopPropagation(),e.preventDefault(),a.style.transform="rotate(0deg)",l.style.border="solid 2px rgba(0,0,0,0)",t.dropdownArrow.style.background="",t.mainContainer&&(t.mainContainer.style.overflow="")})),t.dropdownSelect.addEventListener("click",(t=>{const a=t.target.value;!function(e,t,n,o){const a=t?.split(".")[0];switch(a){case"input_select":e._hass.callService("input_select","select_option",{entity_id:t,option:n});break;case"select":e._hass.callService("select","select_option",{entity_id:t,option:n});break;case"climate":switch(o.select_attribute){case"hvac_modes":e._hass.callService("climate","set_hvac_mode",{entity_id:t,hvac_mode:n});break;case"fan_modes":e._hass.callService("climate","set_fan_mode",{entity_id:t,fan_mode:n});break;case"swing_modes":e._hass.callService("climate","set_swing_mode",{entity_id:t,swing_mode:n});break;case"preset_modes":e._hass.callService("climate","set_preset_mode",{entity_id:t,preset_mode:n})}break;case"fan":"preset_modes"===o.select_attribute&&e._hass.callService("fan","set_preset_mode",{entity_id:t,preset_mode:n});break;case"light":"effect_list"===o.select_attribute&&e._hass.callService("light","turn_on",{entity_id:t,effect:n});break;case"media_player":switch(o.select_attribute){case"source_list":e._hass.callService("media_player","select_source",{entity_id:t,source:n});break;case"sound_mode_list":e._hass.callService("media_player","select_sound_mode",{entity_id:t,sound_mode:n})}break;default:console.warn(`Unsupported entity type: ${a}`)}}(e,n,a,o)}))}function B(e,t=e.elements,n=e.config.entity,o){if(t.currentState=e._hass.states[n]?.state,!t.currentState)return;if(t.currentList=n?.startsWith("input_select")||n?.startsWith("select")?e._hass.states[n].attributes.options:e._hass.states[n].attributes[o.select_attribute],t.previousList===t.currentList&&t.previousState===t.currentState)return;let a=t.currentList;for(t.currentState;t.dropdownSelect.firstChild;)t.dropdownSelect.removeChild(t.dropdownSelect.firstChild);a.forEach((a=>{const i=document.createElement("mwc-list-item");i.value=a;const r=T(e,e._hass.states[n],o.select_attribute,a);r&&(i.graphic="icon",i.appendChild(r));const s=function(e,t,n,o){switch(n){case"fan_modes":return e._hass.formatEntityAttributeValue(t,"fan_mode",o);case"hvac_modes":return e._hass.formatEntityState(t,o);case"swing_modes":return e._hass.formatEntityAttributeValue(t,"swing_mode",o);case"preset_modes":return e._hass.formatEntityAttributeValue(t,"preset_mode",o);default:return function(e){const t=e.replace(/_/g," ");return t.charAt(0).toUpperCase()+t.slice(1)}(o)}}(e,e._hass.states[n],o.select_attribute,a);i.appendChild(document.createTextNode(s)),a===function(e,t){switch(t){case"fan_modes":return e.attributes.fan_mode||null;case"swing_modes":return e.attributes.swing_mode||null;case"preset_modes":return e.attributes.preset_mode||null;case"effect_list":return e.attributes.effect||null;case"source_list":return e.attributes.source||null;case"sound_mode_list":return e.attributes.sound_mode||null;default:return e.state}}(e._hass.states[n],o.select_attribute)&&i.setAttribute("selected",""),t.dropdownSelect.appendChild(i),t.previousList=t.currentList,t.previousState=t.currentState})),t.dropdownContainer.appendChild(t.dropdownSelect)}function A(e,t){try{if(e.states[t])return e.states[t]?.state}catch{}}function I(e,t){const n=e.entity&&t.states[e.entity]?t.states[e.entity].state:"unavailable";let o=e.state??e.state_not;if(Array.isArray(o)){const e=o.map((e=>A(t,e))).filter((e=>void 0!==e));o=[...o,...e]}else if("string"==typeof o){const e=A(t,o);o=[o],e&&o.push(e)}return null!=e.state?V(o).includes(n):!V(o).includes(n)}function V(e){return void 0===e||Array.isArray(e)?e:[e]}function P(e,t){return e.every((e=>{if("condition"in e)switch(e.condition){case"screen":return!!(n=e).media_query&&matchMedia(n.media_query).matches;case"user":return function(e,t){return!(!e.users||!t.user?.id)&&e.users.includes(t.user.id)}(e,t);case"numeric_state":return function(e,t){const n=(e.entity?t.states[e.entity]:void 0)?.state;let o=e.above,a=e.below;"string"==typeof o&&(o=A(t,o)??o),"string"==typeof a&&(a=A(t,a)??a);const i=Number(n),r=Number(o),s=Number(a);return!isNaN(i)&&(null==e.above||isNaN(r)||ri)}(e,t);case"and":return function(e,t){return!e.conditions||P(e.conditions,t)}(e,t);case"or":return function(e,t){return!e.conditions||e.conditions.some((e=>P([e],t)))}(e,t);default:return I(e,t)}var n;return I(e,t)}))}function D(e){return null!=e.entity&&(null!=e.state||null!=e.state_not)}function U(e){return e.every((e=>{if("condition"in e)switch(e.condition){case"screen":return null!=e.media_query;case"user":return null!=e.users;case"numeric_state":return function(e){return null!=e.entity&&(null!=e.above||null!=e.below)}(e);case"and":case"or":return function(e){return null!=e.conditions}(e);default:return D(e)}return D(e)}))}function H(e){const t=e._hass.states[e.config.entity],o=(0,n.IL)(e,e.config.attribute,e.config.entity),a=t?.last_changed,i="state"===e.config.button_type,r=e.config.show_name??!0,s=e.config.show_icon??!0,l=e.config.show_state??i,c=e.config.show_attribute??i,d=e.config.show_last_changed??e.config.show_last_updated??!1,u=e.config.scrolling_effect??!0,b=e.previousConfig||{};if(e.previousState===t&&e.previousAttribute===o&&e.previousLastChanged===a&&b.showName===r&&b.showIcon===s&&b.showState===l&&b.showAttribute===c&&b.showLastChanged===d&&b.scrollingEffect===u)return;let p=t&&l?e._hass.formatEntityState(t):"",h="",m="",g="";var f;c&&o&&(h=t?e._hass.formatEntityAttributeValue(t,e.config.attribute)??o:""),d&&t&&(m=t?(f=(0,n.o0)(a,e._hass.locale.language)).charAt(0).toUpperCase()+f.slice(1):""),e.elements.stateStyles||(e.elements.stateStyles=(0,n.az)("style"),e.elements.stateStyles.innerText=M,e.content.appendChild(e.elements.stateStyles),"pop-up"===e.config.card_type&&e.elements.buttonContainer.appendChild(e.elements.stateStyles)),g=[p,h,m].filter((e=>e)).join(" • "),r?e.elements.name.classList.remove("hidden"):e.elements.name.classList.add("hidden"),s?(e.elements.iconContainer.classList.remove("hidden"),e.elements.nameContainer.classList.remove("name-without-icon")):(e.elements.iconContainer.classList.add("hidden"),e.elements.nameContainer.classList.add("name-without-icon")),(l||d||c)&&!r?e.elements.state.classList.add("state-without-name"):e.elements.state.classList.remove("state-without-name"),l||d||c?(e.elements.state.classList.add("display-state"),e.elements.state.classList.remove("hidden")):(e.elements.state.classList.remove("display-state"),e.elements.state.classList.add("hidden")),(0,n.GP)(e,e.elements.state,g),e.previousState=t,e.previousAttribute=o,e.previousConfig={showName:r,showIcon:s,showState:l,showAttribute:c,showLastChanged:d,scrollingEffect:u}}const M="\n .hidden {\n display: none !important;\n }\n\n .state-without-name {\n opacity: 1;\n font-size: 14px;\n }\n\n .name-without-icon {\n margin-left: 16px;\n }\n\n .display-state {\n display: flex;\n }\n";function N(e,t=e.content,o=t.firstChild.firstChild,i=!1){const r=e.config.sub_button;if(!r)return;e.previousValues=e.previousValues||{};let l=[...e.previousValues.subButtons||[]];e.elements=e.elements||{};const c=e.elements.subButtonContainer??(0,n.az)("div","bubble-sub-button-container");if(!e.elements.subButtonContainer&&e.config.sub_button){const t=(0,n.az)("style");t.innerText=j,c.appendChild(t),i?o.prepend(c):o.appendChild(c),e.elements.subButtonContainer=c}r.forEach(((t,o)=>{if(!t)return;const i=o+1,r=t.entity??e.config.entity,l=e._hass.states[r],d=t.name??(0,n.IL)(e,"friendly_name",r)??"",u=t.attribute??"",b=(0,n.IL)(e,u,r),p=(0,n.pr)(e,r);if("fan_modes"===u&&null==b)return void(e.elements[i]||(0,n.az)("div","bubble-sub-button bubble-sub-button-"+i)).classList.add("hidden");const h=t.show_name??!1,m=t.show_state??!1,g=t.show_attribute??!1,f=(t.show_last_changed||t.show_last_updated)??!1,_=t.show_icon??!0,y=t.show_background??!0,v=t.state_background??!0,w=t.light_background??!0,x=t.show_arrow??!0,k=r?.startsWith("input_select")||r?.startsWith("select")||t.select_attribute,C=(0,n.q7)(e,t.entity,t.icon??"");let $=e.elements[i]||(0,n.az)("div","bubble-sub-button bubble-sub-button-"+i);if(!e.elements[i]||k&&!$.contains($.dropdownContainer)){let o=Array.prototype.indexOf.call(c.children,$);k&&!$.contains($.dropdownContainer)&&c.contains($)&&(c.removeChild($),$=(0,n.az)("div","bubble-sub-button bubble-sub-button-"+i)),$.nameContainer=(0,n.az)("div","bubble-sub-button-name-container"),$.feedbackContainer=(0,n.az)("div","bubble-feedback-container"),$.feedback=(0,n.az)("div","bubble-feedback-element feedback-element"),$.appendChild($.feedbackContainer),$.feedbackContainer.appendChild($.feedback),k&&(z(e,$,x),$.dropdownContainer.style.display="none",E(e,$,r,t)),$.appendChild($.nameContainer),o>=0&&oe.hasAttribute("selected")))?.value;if(_&&C){let o=$.icon;if(o||(o=(0,n.az)("ha-icon","bubble-sub-button-icon"),o.classList.add("show-icon"),$.appendChild(o),$.icon=o),S){const n=T(e,l,t.select_attribute,S);n&&!t.icon?(o.tagName!==n.tagName||o.icon!==n.icon||o.attribute!==n.attribute||o.attributeValue!==n.attributeValue)&&($.replaceChild(n,o),$.icon=n,o=n):o.icon!==C&&o.setAttribute("icon",C)}else o.icon!==C&&o.setAttribute("icon",C);$.icon.classList.remove("hidden"),$.icon.classList.add("bubble-sub-button-icon","show-icon")}else $.icon&&($.icon.classList.remove("show-icon"),$.icon.classList.add("hidden"));if(y)if(p&&v){const t=(0,n.Vv)("var(--bubble-button-icon-background-color, var(--bubble-icon-background-color, var(--bubble-secondary-background-color, var(--card-background-color, var(--ha-card-background)))))");w&&$.style.setProperty("--bubble-sub-button-light-background-color",(0,n.mk)(e,r,t?1:.8)),$.classList.add("background-on"),$.classList.remove("background-off")}else $.classList.add("background-off"),$.classList.remove("background-on");else $.classList.remove("background-on"),$.classList.remove("background-off");"none"===t.tap_action?.action&&"none"===t.double_tap_action?.action&&"none"===t.hold_action?.action||$.actionAdded||(a($,k?"":t,r,{tap_action:{action:k?"none":"more-info"},double_tap_action:{action:"none"},hold_action:{action:"none"}}),s($,$.feedback),k&&($.style.pointerEvents="auto",$.style.cursor="pointer"),$.actionAdded=!0);let L="";const O=l&&m?e._hass.formatEntityState(l):"",A=l&&""!==b&&g?e._hass.formatEntityAttributeValue(l,u)??b:"",I=l&&f?(0,n.o0)(l.last_changed,e._hass.locale.language):"";h&&""!==d&&(L+=d),""!==O&&(L+=(L?" · ":"")+O),""!==I&&(L+=(L?" · ":"")+I),""!==A&&(L+=(L?" · ":"")+A),L=L.charAt(0).toUpperCase()+L.slice(1),L||_||k?($.classList.remove("hidden"),$.nameContainer.innerText!==L&&($.nameContainer.innerText=L),_&&$.icon&&(L?($.icon.classList.add("icon-with-state"),$.icon.classList.remove("icon-without-state")):($.icon.classList.add("icon-without-state"),$.icon.classList.remove("icon-with-state"))),L||_||!k?k&&($.dropdownContainer.classList.remove("no-icon-select-container"),$.dropdownArrow.classList.remove("no-icon-select-arrow")):($.dropdownContainer.classList.add("no-icon-select-container"),$.dropdownArrow.classList.add("no-icon-select-arrow"))):($.classList.add("hidden"),$.dropdownContainer&&($.dropdownContainer.classList.remove("no-icon-select-container"),$.dropdownArrow.classList.remove("no-icon-select-arrow")));const D=t.visibility;if(null!=D){const t=V(D);U(t)&&(P(t,e._hass)?$.classList.remove("hidden"):$.classList.add("hidden"))}})),e.previousValues.subButtons=r.slice();for(let t=l.length;t>0;t--)if(t>r.length){let n=e.elements[t];n&&(c.removeChild(n),delete e.elements[t])}}const j="\n .bubble-sub-button-container {\n position: relative;\n display: flex;\n justify-content: end;\n right: 8px;\n align-content: center;\n gap: 8px;\n align-items: center;\n }\n .bubble-sub-button {\n display: flex;\n flex-wrap: nowrap;\n flex-direction: row-reverse;\n align-items: center;\n justify-content: center;\n position: relative;\n right: 0;\n box-sizing: border-box;\n width: min-content;\n min-width: 36px;\n height: 36px;\n vertical-align: middle;\n font-size: 12px;\n border-radius: var(--bubble-sub-button-border-radius, var(--bubble-border-radius, 32px));\n padding: 0 8px;\n white-space: nowrap;\n transition: all 0.5s ease-in-out;\n color: var(--primary-text-color);\n }\n .bubble-feedback-container {\n display: flex;\n width: 100%;\n height: 100%;\n position: absolute;\n border-radius: var(--bubble-sub-button-border-radius, var(--bubble-border-radius, 32px));\n overflow: hidden;\n pointer-events: none;\n }\n .bubble-sub-button-name-container {\n display: flex;\n }\n .show-icon {\n display: flex;\n --mdc-icon-size: 16px;\n }\n .background-on {\n background-color: var(--bubble-sub-button-light-background-color, var(--accent-color));\n }\n .background-off {\n background-color: var(--bubble-sub-button-background-color, var(--bubble-icon-background-color, var(--bubble-secondary-background-color, var(--card-background-color, var(--ha-card-background)))));\n }\n .hidden {\n display: none;\n }\n .icon-with-state {\n margin-right: 4px;\n --mdc-icon-size: 16px;\n }\n .icon-without-state {\n margin-right: 0;\n --mdc-icon-size: 20px;\n }\n .no-icon-select-arrow {\n width: 28px !important;\n height: 28px !important;\n right: 2px !important; \n }\n .no-icon-select-container {\n width: 16px !important;\n }\n .bubble-dropdown-arrow {\n background: var(--bubble-select-arrow-background-color) !important;\n }\n";function q(e){Array.isArray(e.subButtonIcon)||(e.subButtonIcon=[]),"pop-up"===e.config.card_type?e.popUp.querySelectorAll(".bubble-sub-button-icon").forEach(((t,n)=>{e.subButtonIcon[n]=t})):e.content.querySelectorAll(".bubble-sub-button-icon").forEach(((t,n)=>{e.subButtonIcon[n]=t}))}function F(e){let t=e.config.button_type;return"custom"===t&&(console.error('Buttons "custom" have been removed. Use either "switch", "slider", "state" or "name"'),t=""),e.config.entity?t||"switch":t||"name"}function X(e,t){const o=e._hass.states[e.config.entity];if((0,n.OC)(e,"light"))e._hass.callService("light","turn_on",{entity_id:e.config.entity,brightness:Math.round(255*t/100)});else if((0,n.OC)(e,"media_player"))e._hass.callService("media_player","volume_set",{entity_id:e.config.entity,volume_level:(t/100).toFixed(2)});else if((0,n.OC)(e,"cover"))e._hass.callService("cover","set_cover_position",{entity_id:e.config.entity,position:Math.round(t)});else if((0,n.OC)(e,"input_number")){const a=o.attributes.min??0,i=o.attributes.max??100,r=(0,n.IL)(e,"step")??1;let s=(i-a)*t/100+a,l=Math.round(s/r)*r;e._hass.callService("input_number","set_value",{entity_id:e.config.entity,value:l})}else if((0,n.OC)(e,"fan")){const n=o.attributes.percentage_step??1;let a=Math.round(t/n)*n;e._hass.callService("fan","set_percentage",{entity_id:e.config.entity,percentage:a})}else if((0,n.OC)(e,"climate")){const n=o.attributes.min_temp??0,a=o.attributes.max_temp??1e4,i="°C"===e._hass.config.unit_system.temperature,r=o.attributes.target_temp_step?o.attributes.target_temp_step:i?.5:1;let s=(a-n)*t/100+n,l=Math.round(s/r)*r;l=parseFloat(l.toFixed(1)),e._hass.callService("climate","set_temperature",{entity_id:e.config.entity,temperature:l})}else if((0,n.OC)(e,"number")){const n=o.attributes.min??0,a=o.attributes.max??100,i=o.attributes.step??1;let r=(a-n)*t/100+n,s=Math.round(r/i)*i;e._hass.callService("number","set_value",{entity_id:e.config.entity,value:s})}}function W(e,t){const n=e.elements.rangeSlider.getBoundingClientRect(),o=100*(t-n.left)/n.width,a=Math.min(100,Math.max(0,o));return e.elements.rangeFill.style.transform=`translateX(${a}%)`,a}const R="\n * {\n -webkit-tap-highlight-color: transparent !important;\n -ms-overflow-style: none; /* for Internet Explorer, Edge */\n scrollbar-width: none; /* for Firefox */\n }\n *::-webkit-scrollbar {\n display: none; /* for Chrome, Safari, and Opera */\n }\n ha-card {\n margin-top: 0;\n background: none;\n opacity: 1;\n }\n .is-unavailable {\n opacity: 0.5;\n }\n\n .bubble-button-card-container {\n position: relative;\n width: 100%;\n height: 50px;\n background-color: var(--bubble-button-main-background-color, var(--bubble-main-background-color, var(--background-color-2, var(--secondary-background-color))));\n border-radius: var(--bubble-button-border-radius, var(--bubble-border-radius, 32px));\n box-shadow: var(--bubble-button-box-shadow, var(--bubble-box-shadow, none));\n overflow: scroll;\n touch-action: pan-y;\n }\n\n .bubble-button-card,\n .bubble-range-slider,\n .bubble-button-background {\n display: flex;\n position: absolute;\n justify-content: space-between;\n align-items: center;\n height: 100%;\n width: 100%;\n transition: background-color 1.5s;\n }\n .bubble-button-background {\n background-color: var(--bubble-button-background-color);\n opacity: .5;\n border-radius: var(--bubble-button-border-radius, var(--bubble-border-radius, 32px));\n }\n .bubble-range-fill {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n left: -100%;\n transition: all .3s;\n z-index: 0;\n }\n .is-dragging .bubble-range-fill {\n transition: none;\n }\n .is-light .bubble-range-fill {\n opacity: 0.5;\n }\n .is-unavailable .bubble-button-card,\n .is-unavailable .bubble-range-slider {\n cursor: not-allowed;\n }\n .bubble-range-slider {\n cursor: ew-resize;\n border-radius: var(--bubble-button-border-radius, var(--bubble-border-radius, 32px));\n overflow: hidden;\n mask-image: radial-gradient(white, black);\n -webkit-mask-image: -webkit-radial-gradient(white, black);\n }\n .bubble-icon-container {\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n justify-content: center;\n min-width: 38px;\n min-height: 38px;\n margin: 6px;\n border-radius: var(--bubble-button-icon-border-radius, var(--bubble-icon-border-radius, var(--bubble-border-radius, 50%)));\n background-color: var(--bubble-button-icon-background-color, var(--bubble-icon-background-color, var(--bubble-secondary-background-color, var(--card-background-color, var(--ha-card-background)))));\n overflow: hidden;\n position: relative;\n cursor: pointer;\n }\n\n .bubble-icon {\n display: flex;\n opacity: 0.6;\n }\n\n .is-on .bubble-icon {\n filter: brightness(1.1);\n opacity: 1;\n }\n\n .bubble-entity-picture {\n background-size: cover;\n background-position: center;\n height: 100%;\n width: 100%;\n position: absolute;\n }\n\n .bubble-name,\n .bubble-state {\n display: flex;\n position: relative;\n white-space: nowrap;\n }\n\n .bubble-name-container {\n display: flex;\n line-height: 18px;\n flex-direction: column;\n justify-content: center;\n flex-grow: 1;\n margin: 0 16px 0 4px;\n pointer-events: none;\n position: relative;\n overflow: hidden;\n }\n\n .bubble-name {\n font-size: 13px;\n font-weight: 600;\n }\n\n .bubble-state {\n font-size: 12px;\n font-weight: normal;\n opacity: 0.7;\n }\n\n .bubble-feedback-element {\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n width: 100%;\n height: 100%;\n background-color: rgb(0,0,0);\n pointer-events: none;\n }\n\n @keyframes tap-feedback {\n 0% {transform: translateX(-100%); opacity: 0;}\n 64% {transform: translateX(0); opacity: 0.1;}\n 100% {transform: translateX(100%); opacity: 0;}\n }\n\n .large .bubble-button-card-container {\n height: 56px;\n border-radius: var(--bubble-button-border-radius, var(--bubble-border-radius, 32px));\n }\n\n .large .bubble-icon-container {\n --mdc-icon-size: 24px;\n min-width: 42px !important;\n min-height: 42px !important;\n margin-left: 8px;\n }\n\n .rows-2 .bubble-sub-button-container {\n flex-direction: column;\n gap: 4px !important;\n display: grid !important;\n grid-template-columns: repeat(2, min-content);\n grid-template-rows: repeat(2, 1fr);\n grid-auto-flow: column;\n width: auto;\n padding-right: 14px;\n }\n\n .rows-2 .bubble-sub-button {\n height: 20px !important;\n }\n";function Y(e,t=e.content,o=t){const i=F(e);e.cardType!==`button-${i}`&&e.buttonType!==i&&(function(e,t=e.content,o=t){const a=F(e);e.dragging=!1,e.elements||(e.elements={}),e.elements.buttonCardContainer=(0,n.az)("div","bubble-button-card-container button-container"),e.elements.buttonCard=(0,n.az)("div","bubble-button-card switch-button"),e.elements.buttonBackground=(0,n.az)("div","bubble-button-background"),e.elements.nameContainer=(0,n.az)("div","bubble-name-container name-container"),e.elements.iconContainer=(0,n.az)("div","bubble-icon-container icon-container"),e.elements.name=(0,n.az)("div","bubble-name name"),e.elements.state=(0,n.az)("div","bubble-state state"),e.elements.feedback=(0,n.az)("div","bubble-feedback-element feedback-element"),e.elements.icon=(0,n.az)("ha-icon","bubble-icon icon"),e.elements.image=(0,n.az)("div","bubble-entity-picture entity-picture"),e.elements.style=(0,n.az)("style"),e.elements.customStyle=(0,n.az)("style"),e.elements.feedback.style.display="none",e.elements.style.innerText=R,e.elements.iconContainer.appendChild(e.elements.icon),e.elements.iconContainer.appendChild(e.elements.image),e.elements.nameContainer.appendChild(e.elements.name),"name"!==a&&e.elements.nameContainer.appendChild(e.elements.state),e.elements.buttonCard.appendChild(e.elements.buttonBackground),e.elements.buttonCard.appendChild(e.elements.iconContainer),e.elements.buttonCard.appendChild(e.elements.nameContainer),e.elements.buttonCard.appendChild(e.elements.feedback),e.elements.buttonCardContainer.appendChild(e.elements.buttonCard),t.innerHTML="",o===t&&t.appendChild(e.elements.buttonCardContainer),t.appendChild(e.elements.style),t.appendChild(e.elements.customStyle),o!==t?(o.innerHTML="",e.elements.buttonCardContainer.appendChild(t),o.appendChild(e.elements.buttonCardContainer),e.buttonType=a):e.cardType=`button-${a}`}(e,t,o),"switch"===i?function(e){a(e.elements.iconContainer,e.config),a(e.elements.buttonBackground,e.config.button_action,e.config.entity,{tap_action:{action:"toggle"},double_tap_action:{action:"toggle"},hold_action:{action:"more-info"}}),s(e.elements.buttonBackground,e.elements.feedback)}(e):"slider"===i?function(e){a(e.elements.iconContainer,e.config);let t=0,o=null;e.elements.rangeFill=(0,n.az)("div","bubble-range-fill range-fill"),e.elements.rangeSlider=(0,n.az)("div","bubble-range-slider range-slider"),e.elements.rangeSlider.appendChild(e.elements.rangeFill),e.elements.buttonCardContainer.appendChild(e.elements.rangeSlider),e.elements.buttonCardContainer.insertBefore(e.elements.rangeSlider,e.elements.buttonCard),e.elements.buttonCard.style.cursor="ew-resize",e.elements.buttonCardContainer.addEventListener("pointercancel",(function(){clearTimeout(o),e.dragging=!1,e.elements.buttonCardContainer.classList.remove("is-dragging"),e.elements.buttonCardContainer.removeEventListener("pointermove",r),window.removeEventListener("pointerup",s)})),e.elements.buttonCardContainer.addEventListener("pointerdown",(n=>{n.target.closest(".bubble-action")||(e.elements.buttonCardContainer.setPointerCapture(n.pointerId),e.card.classList.contains("is-unavailable")||(e.dragging=!0,t=n.pageX||(n.touches?n.touches[0].pageX:0),e.elements.buttonCardContainer.classList.add("is-dragging"),e.elements.buttonCardContainer.addEventListener("pointermove",r),window.addEventListener("pointerup",s)))}));const i=(0,n.P2)(X,200);function r(t){if(t.stopPropagation(),t.target.closest(".bubble-action"))return;const n=t.pageX||(t.touches?t.touches[0].pageX:0),o=W(e,n);e.config.slider_live_update&&i(e,o)}function s(t){t.stopPropagation(),clearTimeout(o),o=setTimeout((()=>{e.dragging=!1}),1400);const a=t.pageX||(t.touches?t.touches[0].pageX:0),i=W(e,a);e.config.slider_live_update||X(e,i),(0,n.jk)("selection"),e.elements.buttonCardContainer.classList.remove("is-dragging"),e.elements.buttonCardContainer.removeEventListener("pointermove",r),window.removeEventListener("pointerup",s)}}(e):"state"===i?function(e){a(e.elements.buttonCardContainer,e.config),a(e.elements.buttonBackground,e.config.button_action,e.config.entity,{tap_action:{action:"more-info"},double_tap_action:{action:"more-info"},hold_action:{action:"more-info"}}),s(e.elements.buttonBackground,e.elements.feedback)}(e):"name"===i&&function(e){const t={tap_action:{action:"none"},double_tap_action:{action:"none"},hold_action:{action:"none"}};a(e.elements.iconContainer,e.config,e.config.entity,t),a(e.elements.buttonBackground,e.config.button_action,e.config.entity,t),s(e.elements.buttonBackground,e.elements.feedback)}(e)),"name"!==i&&(function(e){const t=(0,n.y0)(e),o=e.config.card_type;"unavailable"===t?"button"===o?e.card.classList.add("is-unavailable"):"pop-up"===o&&e.elements.headerContainer.classList.add("is-unavailable"):"button"===o?e.card.classList.remove("is-unavailable"):"pop-up"===o&&e.elements.headerContainer.classList.remove("is-unavailable"),(0,n.pr)(e)?"button"===o?e.card.classList.add("is-on"):"pop-up"===o&&e.elements.headerContainer.classList.add("is-on"):"button"===o?e.card.classList.remove("is-on"):"pop-up"===o&&e.elements.headerContainer.classList.remove("is-on")}(e),function(e){const t=e.config.card_type,o=F(e),a=(0,n.OC)(e,"light"),i=(0,n.pr)(e),r=(0,n.mk)(e),s="button"===t?e.card.style.getPropertyValue("--bubble-button-background-color"):e.popUp.style.getPropertyValue("--bubble-button-background-color"),l=e.elements.buttonBackground.style.opacity;let c="",d="";"switch"===o&&i?r&&a?(c=(0,n.mk)(e),d=".5"):(c="var(--bubble-button-accent-color, var(--bubble-accent-color, var(--accent-color)))",d="1"):(c="rgba(0, 0, 0, 0)",d=".5"),s!==c&&("button"===t?e.card.style.setProperty("--bubble-button-background-color",c):"pop-up"===t&&e.popUp.style.setProperty("--bubble-button-background-color",c)),l!==d&&(e.elements.buttonBackground.style.opacity=d)}(e),function(e){if("slider"===F(e)){if(e.elements.rangeFill.style.backgroundColor=(0,n.mk)(e),e.dragging)return;let t=0;if((0,n.OC)(e,"light"))t=100*(0,n.IL)(e,"brightness")/255;else if((0,n.OC)(e,"media_player"))t=(0,n.pr)(e)?100*(0,n.IL)(e,"volume_level"):0;else if((0,n.OC)(e,"cover"))t=(0,n.IL)(e,"current_position");else if((0,n.OC)(e,"input_number")){const o=(0,n.IL)(e,"min"),a=(0,n.IL)(e,"max");t=100*((0,n.y0)(e)-o)/(a-o)}else if((0,n.OC)(e,"fan"))t=(0,n.pr)(e)?(0,n.IL)(e,"percentage"):0;else if((0,n.OC)(e,"climate")){const o=(0,n.IL)(e,"min_temp"),a=(0,n.IL)(e,"max_temp");t=100*((0,n.IL)(e,"temperature")-o)/(a-o)}else if((0,n.OC)(e,"number")){const o=(0,n.IL)(e,"min"),a=(0,n.IL)(e,"max");t=100*((0,n.y0)(e)-o)/(a-o)}e.elements.rangeFill.style.transform=`translateX(${t}%)`}}(e)),function(e){const t=F(e),o="name"!==t&&(0,n.pr)(e),a="name"!==t?(0,n.q7)(e):e.config.icon,i="name"!==t?(0,n.gJ)(e):"",r="name"!==t&&(0,n.OC)(e,"light"),s=e.elements.iconContainer.style.color,l=e.elements.image.style.backgroundImage,c=e.elements.icon.icon,d=e.elements.icon.style.display,u=e.elements.image.style.display;if(r&&o){const t=`var(--bubble-icon-background-color, ${(0,n.mk)(e)})`;s!==t&&(e.elements.iconContainer.style.color=t)}else""!==s&&(e.elements.iconContainer.style.color="");if(""!==i){const t="url("+i+")";l!==t&&(e.elements.image.style.backgroundImage=t),"none"!==d&&(e.elements.icon.style.display="none"),""!==u&&(e.elements.image.style.display="")}else if(""!==a){c!==a&&(e.elements.icon.icon=a);const i=o&&"state"!==t?(0,n.mk)(e):"inherit";e.elements.icon.style.color!==i&&(e.elements.icon.style.color=i),""!==d&&(e.elements.icon.style.display=""),"none"!==u&&(e.elements.image.style.display="none")}else"none"!==d&&(e.elements.icon.style.display="none"),"none"!==u&&(e.elements.image.style.display="none")}(e),H(e),N(e,t,e.elements.buttonCard),"pop-up"!==e.cardType&&function(e){if(q(e),(0,n.jx)(e),!e.config.styles)return;const t=(0,n.y0)(e);let o="";try{o=e.config.styles?Function("hass","entity","state","icon","subButtonIcon","getWeatherIcon","card","name",`return \`${e.config.styles}\`;`)(e._hass,e.config.entity,t,e.elements.icon,e.subButtonIcon,n.X,e.card,e.card.name):""}catch(e){throw new Error(`Error in generating button custom templates: ${e.message}`)}e.elements.customStyle&&(e.elements.customStyle.innerText=o)}(e),function(e){if(e.config.styles?.includes("card.querySelector('.bubble-name').innerText"))return;const t="name"!==F(e)?(0,n.oY)(e):e.config.name;t!==e.elements.previousName&&((0,n.GP)(e,e.elements.name,t),e.elements.previousName=t)}(e)}async function J(e){if("pop-up"!==e.cardType){if(e.getRootNode()instanceof ShadowRoot==0)return;!function(e){try{e.cardType="pop-up",e.verticalStack=e.getRootNode(),e.sectionRow=e.verticalStack.host.parentElement,e.sectionRowContainer=e.sectionRow?.parentElement,e.popUp=e.verticalStack.querySelector("#root"),e.popUp.classList.add("bubble-pop-up","pop-up","is-popup-closed"),e.editor||e.config.background_update||e.verticalStack.removeChild(e.popUp),e.elements={},L(e),e.cardTitle&&(e.cardTitle.style.display="none"),k=k||(e.config.hide_backdrop??!0),e.popUp.style.setProperty("--custom-height-offset-desktop",e.config.margin_top_desktop??"0px"),e.popUp.style.setProperty("--custom-height-offset-mobile",e.config.margin_top_mobile??"0px"),e.popUp.style.setProperty("--custom-margin",`-${e.config.margin??"7px"}`),e.popUp.style.setProperty("--custom-popup-filter",e.config.backdrop_blur&&"0"!==e.config.backdrop_blur?"none":`blur(${e.config.bg_blur??10}px)`),e.popUp.style.setProperty("--custom-shadow-opacity",(e.config.shadow_opacity??0)/100);const t=function(e){return()=>{e.config.hash===location.hash?(l=!0,setTimeout((()=>{l=!1}),100),function(e){e.popUp.classList.contains("is-popup-opened")||(f(e),p(e,!0),requestAnimationFrame((()=>{b(e,!0),h(e.popUp,!0),function(e){const{sectionRow:t,sectionRowContainer:n,popUp:o}=e;o.style.transform="","hui-card"===t?.tagName.toLowerCase()&&(t.hidden=!1,t.style.display="",n?.classList.contains("card")&&(n.style.display=""))}(e)})),m(e,!0),e.config.auto_close>0&&(e.closeTimeout=setTimeout(c,e.config.auto_close)),g("hidden"),e.config.open_action&&o(e.popUp,e.config,"open_action"))}(e)):function(e){e.popUp.classList.contains("is-popup-opened")&&(f(e),h(e.popUp,!1),b(e,!1),e.removeDomTimeout=setTimeout((()=>{p(e,!1),u(e,0)}),300),m(e,!1),g(""),e.config.close_action&&o(e,e.config,"close_action"))}(e)}}(e);window.addEventListener("location-changed",t),window.addEventListener("popstate",t)}catch(e){console.error(e)}}(e),function(e){e.elements={closeIcon:(0,n.az)("ha-icon","bubble-close-icon"),closeButton:(0,n.az)("button","bubble-close-button close-pop-up"),buttonContainer:(0,n.az)("div","bubble-button-container"),header:(0,n.az)("div","bubble-header")},e.elements.closeIcon.icon="mdi:close",e.elements.closeButton.appendChild(e.elements.closeIcon),e.elements.closeButton.addEventListener("click",(()=>{c(),(0,n.jk)("selection")}));const t=e.popUp.querySelector(".bubble-header-container");t?Object.assign(e.elements,{headerContainer:t,closeIcon:t.querySelector(".bubble-close-icon"),closeButton:t.querySelector(".bubble-close-button"),buttonContainer:t.querySelector(".bubble-button-container"),header:t.querySelector(".bubble-header")}):(e.elements.headerContainer=(0,n.az)("div","bubble-header-container"),e.elements.headerContainer.setAttribute("id","header-container"),e.elements.headerContainer.appendChild(e.elements.header),e.elements.headerContainer.appendChild(e.elements.closeButton),e.elements.header.appendChild(e.elements.buttonContainer)),e.popUp.addEventListener("touchstart",(e=>{v=e.touches[0].clientY}),{passive:!0}),e.elements.header.addEventListener("touchmove",(t=>{const n=t.touches[0].clientY-v;n>0&&(e.popUp.style.transform=`translateY(${n}px)`)}),{passive:!0}),e.elements.header.addEventListener("touchend",(t=>{t.changedTouches[0].clientY-v>50?c():e.popUp.style.transform=""}),{passive:!0})}(e),function(e){try{e.elements.style=(0,n.az)("style"),e.elements.style.innerText="\n .bubble-pop-up-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n margin-top: -50px;\n max-width: 100%;\n padding-top: 40px;\n padding-bottom: 80px;\n grid-gap: 14px;\n gap: 14px;\n column-gap: 14px;\n --grid-gap: 14px;\n --vertical-stack-card-gap: 14px;\n --horizontal-stack-card-gap: 14px;\n --stack-card-gap: 14px;\n -ms-overflow-style: none; /* for Internet Explorer, Edge */\n scrollbar-width: none; /* for Firefox */\n overflow-y: auto; \n overflow-x: hidden; \n grid-auto-rows: min-content;\n mask-image: linear-gradient(to bottom, transparent 0px, black 24px, black calc(100% - 40px), transparent 100%);\n -webkit-mask-image: linear-gradient(to bottom, transparent 0px, black 24px, black calc(100% - 40px), transparent 100%);\n padding: 18px 18px calc(140px + var(--custom-height-offset-mobile)) 18px;\n }\n .bubble-pop-up-container > * {\n flex-shrink: 0 !important;\n }\n .bubble-pop-up.card-content {\n width: 100% !important;\n padding: 0 !important;\n }\n .bubble-pop-up {\n transition: transform 0.3s ease;\n position: fixed;\n width: 100%;\n max-width: 100%;\n border-radius: var(--bubble-pop-up-border-radius, var(--bubble-border-radius, 42px)) var(--bubble-pop-up-border-radius, var(--bubble-border-radius, 42px)) 0 0;\n box-sizing: border-box;\n margin-left: var(--custom-margin);\n left: 7px;\n z-index: 5 !important;\n bottom: calc(-56px - var(--custom-height-offset-mobile));\n }\n .bubble-pop-up-background {\n width: 100%;\n height: 100%;\n display: flex;\n top: 0;\n left: 0;\n position: absolute;\n background-color: var(--bubble-pop-up-main-background-color, var(--bubble-pop-up-background-color, var(--bubble-secondary-background-color, var(--background-color, var(--secondary-background-color)))));\n border-radius: var(--bubble-pop-up-border-radius, var(--bubble-border-radius, 42px)) var(--bubble-pop-up-border-radius, var(--bubble-border-radius, 42px)) 0 0;\n backdrop-filter: var(--custom-popup-filter);\n -webkit-backdrop-filter: var(--custom-popup-filter);\n }\n .bubble-pop-up-container::-webkit-scrollbar {\n display: none; /* for Chrome, Safari, and Opera */\n }\n .is-popup-opened {\n box-shadow: 0px 0px 50px rgba(0, 0, 0, var(--custom-shadow-opacity));\n }\n .is-popup-closed { \n transform: translateY(100%);\n box-shadow: none !important;\n }\n\n @media only screen and (min-width: 600px) {\n .bubble-pop-up {\n margin-left: 0 !important;\n bottom: calc(-56px - var(--custom-height-offset-desktop));\n min-width: var(--desktop-width, 540px);\n max-width: var(--desktop-width, 540px);\n left: calc(50% - (var(--desktop-width, 540px) / 2));\n }\n .bubble-pop-up-container {\n padding: 18px 18px calc(140px + var(--custom-height-offset-desktop)) 18px;\n }\n }\n @media only screen and (min-width: 768px) {\n .bubble-pop-up {\n left: calc(var(--mdc-drawer-width, 0px) / 2 + 50% - (var(--desktop-width, 540px) / 2));\n }\n }\n .bubble-pop-up.editor {\n transition: none !important;\n position: relative !important;\n top: 0;\n left: 0;\n width: 100% !important;\n backdrop-filter: none !important;\n display: flex !important;\n transform: none !important;\n height: auto !important;\n min-width: auto;\n z-index: 0 !important;\n }\n .bubble-header-container {\n display: inline-flex;\n height: 50px;\n margin: 0;\n padding: 0;\n z-index: 3;\n padding: 18px 18px 22px;\n position: sticky;\n top: 0;\n background: none !important;\n overflow: visible;\n }\n .bubble-header {\n display: inline-flex;\n flex-grow: 1;\n margin-right: 14px;\n color: var(--primary-text-color);\n }\n .bubble-name {\n font-size: 14px;\n font-weight: heavy;\n }\n .bubble-close-button {\n height: 50px;\n width: 50px;\n border: none;\n border-radius: var(--bubble-pop-up-border-radius, var(--bubble-border-radius, 42px));\n z-index: 1;\n background: var(--bubble-pop-up-main-background-color, var(--bubble-secondary-background-color, var(--background-color, var(--secondary-background-color))));\n color: var(--primary-text-color);\n flex-shrink: 0;\n cursor: pointer;\n }\n .bubble-button-card-container {\n background: var(--bubble-pop-up-main-background-color, var(--bubble-secondary-background-color, var(--background-color, var(--secondary-background-color))));\n }\n .bubble-pop-up-container.editor-cropped {\n height: 122px !important;\n mask-image: linear-gradient(to bottom, transparent 0px, black 40px, black calc(100% - 40px), transparent 100%) !important;\n -webkit-mask-image: linear-gradient(to bottom, transparent 0px, black 40px, black calc(100% - 40px), transparent 100%) !important; \n }\n .bubble-pop-up.editor > .bubble-pop-up-container {\n padding-bottom: 18px !important;\n mask-image: none;\n -webkit-mask-image: none; \n overflow: hidden; \n }\n .editor .bubble-pop-up-background {\n width: 100%;\n height: 100%;\n left: 0px;\n top: 0px;\n z-index: -1;\n display: flex;\n position: absolute;\n background-color: var(--bubble-pop-up-main-background-color, var(--bubble-pop-up-background-color, var(--bubble-secondary-background-color, var(--background-color, var(--secondary-background-color)))));\n border-radius: var(--bubble-pop-up-border-radius, var(--bubble-border-radius, 42px)) var(--bubble-pop-up-border-radius, var(--bubble-border-radius, 42px)) !important;\n backdrop-filter: none;\n -webkit-backdrop-filter: none;\n }\n\n .no-header .bubble-header-container {\n visibility: hidden !important;\n height: 0px !important;\n }\n .no-header .bubble-pop-up-container {\n padding-top: 4px !important;\n mask-image: linear-gradient(to bottom, transparent 0px, black 24px, black calc(100% - 24px), transparent 100%) !important;\n -webkit-mask-image: linear-gradient(to bottom, transparent 0px, black 24px, black calc(100% - 24px), transparent 100%) !important;\n }\n\n .large .bubble-button-card-container {\n height: 56px;\n border-radius: var(--bubble-button-border-radius, var(--bubble-border-radius, 36px));\n }\n .large .bubble-pop-up-container {\n margin-top: -36px;\n }\n .large .bubble-icon-container {\n --mdc-icon-size: 24px;\n min-width: 42px !important;\n min-height: 42px !important;\n margin-left: 8px;\n }\n .large .bubble-close-button {\n height: 56px;\n width: 56px;\n border: none;\n border-radius: var(--bubble-pop-up-border-radius, var(--bubble-border-radius, 42px));\n z-index: 1;\n --mdc-icon-size: 28px !important;\n }\n\n .rows-2 .bubble-sub-button-container {\n flex-direction: column;\n gap: 4px !important;\n display: grid !important;\n grid-template-columns: repeat(2, min-content);\n grid-template-rows: repeat(2, 1fr);\n grid-auto-flow: column;\n width: auto;\n padding-right: 14px;\n }\n .rows-2 .bubble-sub-button {\n height: 20px !important;\n }\n";let o,a=e.popUp.querySelector("style");e.stylesAdded&&a?e.elements.customStyle=a:(e.elements.customStyle=(0,n.az)("style"),e.popUp.appendChild(e.elements.customStyle),e.popUp.appendChild(e.elements.style),e.stylesAdded=!0);const i=e.config.bg_opacity??88;function r(){o=getComputedStyle(document.body).getPropertyValue("--ha-card-background")||getComputedStyle(document.body).getPropertyValue("--card-background-color");const n=e.config.bg_color?e.config.bg_color:o,a=(0,t._k)(n,i/100,1.02);e.popUp.style.setProperty("--bubble-pop-up-background-color",a)}C.addEventListener("change",(()=>{r()}),{passive:!0}),r(),e.popUp.style.setProperty("--desktop-width",e.config.width_desktop??"540px"),e.config.close_on_click&&e.popUp.addEventListener("click",c,{passive:!0}),window.addEventListener("keydown",(t=>{"Escape"===t.key&&e.config.hash===location.hash&&c()}),{passive:!0});let s=e.config.slide_to_close_distance??400;e.popUp.addEventListener("touchmove",(e=>{e.touches[0].clientY-v>s&&e.touches[0].clientY>w&&c(),w=e.touches[0].clientY}),{passive:!0});const l=e.popUp.querySelector(".bubble-pop-up-container");if(null===l){e.elements.popUpContainer=(0,n.az)("div"),e.elements.popUpContainer.classList.add("bubble-pop-up-container");let d=e.popUp.firstChild;for(;d;)e.elements.popUpContainer.appendChild(d),d=e.popUp.firstChild}else e.elements.popUpContainer=l;e.popUpBackground=(0,n.az)("div","bubble-pop-up-background"),e.popUp.appendChild(e.popUpBackground),e.popUp.appendChild(e.elements.headerContainer),e.popUp.appendChild(e.elements.popUpContainer),e.config.hash!==location.hash&&u(e,0),window.dispatchEvent(new Event("location-changed"))}catch(b){console.error(b)}}(e)}else e.popUp&&e.elements&&(e.config.hash!==location.hash&&e.config===e.previousConfig||((e.config.entity||e.config.name)&&Y(e,e.elements.buttonContainer,e.elements.header),requestAnimationFrame((()=>{!function(e){q(e);const t=e.config.card_layout,o="large"===t||"large-2-rows"===t,a="large-2-rows"===t;o!==e.popUp.classList.contains("large")&&e.popUp.classList.toggle("large",o),a!==e.popUp.classList.contains("rows-2")&&e.popUp.classList.toggle("rows-2",a);const i=e.config.show_header??!0;if(e.popUp.classList.contains("no-header")===i&&e.popUp.classList.toggle("no-header",!i),!e.config.styles)return;const r=(0,n.y0)(e),{backdropCustomStyle:s}=L(e);let l="";try{l=e.config.styles?Function("hass","entity","state","icon","subButtonIcon","getWeatherIcon","card",`return \`${e.config.styles}\`;`)(e._hass,e.config.entity,r,e.elements.icon,e.subButtonIcon,n.X,e.popUp):""}catch(e){throw new Error(`Error in generating pop-up custom templates: ${e.message}`)}e.elements.customStyle&&(e.elements.customStyle.innerText=l),s.innerText=l}(e)})),e.previousConfig=e.config),e.editor||function(e){const t=e.config.trigger;if(t){const n=!e.hasPageLoaded;e.hasPageLoaded=!0;const o=V(t);if(U(o)){const t=P(o,e._hass);if(t===e.previousTrigger)return;e.config.hash===location.hash?t||n||c():t&&d(e.config.hash),e.previousTrigger=t}}else{let t=e.config.trigger_entity??"";if(""===t)return;let n=e.config.trigger_state??"",o=e.config.trigger_close??!1,a=e._hass.states[t]?.state;if(!t)return;if(!n)return;if(e.oldTriggerEntityState===a)return;const i=!e.hasPageLoaded;e.hasPageLoaded=!0,e.config.hash===location.hash?o&&n!==a&&(i||c()):a===n&&d(e.config.hash),e.oldTriggerEntityState=a}}(e),function(e){if(!e.verticalStack)return;const{host:t}=e.verticalStack,{popUp:n,sectionRow:o,sectionRowContainer:a,elements:i}=e,r=e._cachedDetectedEditor??=t?.closest("hui-card-preview")||t?.closest("hui-card[preview][class]")||t?.getRootNode().host?.closest("hui-section[preview][class]"),s=n?.classList.contains("is-popup-opened"),l="hui-card"===o?.tagName.toLowerCase();if(e.previousEditorState??=null,e.previousDetectedEditor??=null,!s&&l){const{editor:t,editorAccess:n}=e;t||!n||r||o?.hasAttribute("hidden")?a?.classList.contains("card")&&t&&"none"===a.style.display&&(a.style.display=""):(o.setAttribute("hidden",""),o.style.display="none")}const c=n?.classList;if(e.editor||r){c?.contains("editor")||(document.body.style.overflow="",c?.remove("is-popup-opened"),c?.add("is-popup-closed","editor")),e.editorAccess=!0;const t=null===r;i?.popUpContainer?.classList.contains("editor-cropped")!==t&&i.popUpContainer.classList.toggle("editor-cropped",t)}else c?.contains("editor")&&c.remove("editor"),i?.popUpContainer?.classList.remove("editor-cropped");e.editor===e.previousEditorState&&r===e.previousDetectedEditor||(function(e){const{hideBackdrop:t}=L(e),n=e.verticalStack.host,o=n?.closest("hui-card-preview");(e.editor||o)&&(t(),clearTimeout(e.removeDomTimeout),o||e.verticalStack.contains(e.popUp)||e.verticalStack.appendChild(e.popUp))}(e),e.previousEditorState=e.editor,e.previousDetectedEditor=r)}(e))}let G=!1;function K(e,t){const o=e.config[`${t}_name`]??"",a=e.config[`${t}_icon`]??"",i=e.config[`${t}_pir_sensor`],r=e.config[`${t}_link`],s=e.config[`${t}_entity`];G=G||location.hash===r;const l=(0,n.az)("ha-icon","bubble-icon icon");l.icon=a;const u=(0,n.az)("div","bubble-name name");u.innerText=o;const b=(0,n.az)("div","bubble-background-color background-color"),p=(0,n.az)("div","bubble-background background"),h=(0,n.az)("div",`bubble-button bubble-button-${t} button ${r.substring(1)}`);let m=localStorage.getItem(`bubbleButtonWidth-${r}`);return h.style.width=`${m}px`,h.appendChild(l),h.appendChild(u),h.appendChild(b),h.appendChild(p),h.addEventListener("click",(()=>{location.hash!==r&&(G=!1),G?c():d(r),G=!G,(0,n.jk)("light")})),h.icon=l,h.name=u,h.backgroundColor=b,h.background=p,h.pirSensor=i,h.lightEntity=s,h.link=r,h.index=t,window.addEventListener("location-changed",(function(){e.config.highlight_current_view&&(location.pathname===r||location.hash===r?h.classList.add("highlight"):h.classList.remove("highlight"))})),e.elements.buttons.push(h),h}const Z=1,Q=2,ee=8;function te(e,t){return function(e,t){return!(!e||void 0===e.supported_features)&&0!=(e.supported_features&t)}(e.attributes,t)}function ne(e,t){(0,n.OC)(e,"media_player")&&e._hass.callService("media_player","volume_set",{entity_id:e.config.entity,volume_level:(t/100).toFixed(2)})}function oe(e,t,n=!1){const o=e.elements.rangeSlider.getBoundingClientRect(),a=100*(t-o.left)/o.width,i=Math.round(Math.min(100,Math.max(0,a)));if(e.elements.rangeFill.style.transform=`translateX(${i}%)`,n){if(e.dragging)return;ne(e,i)}else ne(e,i)}(0,n.P2)(ne);const ae="\n * {\n -webkit-tap-highlight-color: transparent !important;\n }\n\n ha-card {\n margin-top: 0;\n background: none;\n opacity: 1;\n overflow: visible !important;\n }\n .is-unavailable {\n opacity: 0.5;\n }\n\n .bubble-media-player-container {\n position: relative;\n width: 100%;\n height: 50px;\n background-color: var(--bubble-media-player-main-background-color, var(--bubble-main-background-color, var(--background-color-2, var(--secondary-background-color))));\n touch-action: pan-y;\n border-radius: var(--bubble-media-player-border-radius, var(--bubble-border-radius, 32px));\n box-shadow: var(--bubble-media-player-box-shadow, var(--bubble-box-shadow, none));\n }\n\n .bubble-media-player {\n display: flex;\n position: absolute;\n justify-content: space-between;\n align-items: center;\n height: 100%;\n width: 100%;\n transition: background-color 1.5s;\n border-radius: var(--bubble-media-player-border-radius, var(--bubble-border-radius, 32px));\n background-color: rgba(0,0,0,0);\n }\n\n .bubble-button-container {\n display: inline-grid;\n grid-auto-flow: column;\n gap: 10px;\n align-self: center;\n margin-right: 8px;\n }\n\n .bubble-play-pause-button,\n .bubble-previous-button,\n .bubble-next-button,\n .bubble-volume-button,\n .bubble-power-button {\n background: none;\n border: none;\n cursor: pointer;\n border-radius: var(--bubble-media-player-buttons-border-radius, var(--bubble-border-radius, 32px));\n padding: 6px;\n height: 24px;\n width: 24px;\n transition: background 0.3s ease;\n align-self: center;\n }\n\n .bubble-play-pause-button {\n background-color: var(--bubble-accent-color, var(--accent-color));\n }\n\n .bubble-volume-slider {\n position: absolute;\n width: calc(100% - 150px);\n height: 38px;\n left: 50px;\n overflow: hidden;\n border-radius: var(--bubble-media-player-border-radius, var(--bubble-border-radius, 32px));\n z-index: 1;\n background-color: var(--bubble-media-player-slider-background-color, var(--bubble-icon-background-color, var(--bubble-secondary-background-color, var(--card-background-color, var(--ha-card-background)))));\n opacity: 1;\n transition: opacity .2s, transform .2s;\n transform: translateX(0);\n }\n\n .bubble-range-value {\n display: flex;\n justify-content: flex-end;\n height: 38px;\n align-items: center;\n padding-right: 14px;\n font-size: 12px;\n opacity: 0.8;\n }\n\n .bubble-mute-button {\n opacity: 1;\n transition: opacity .2s, transform .2s;\n transform: translateX(0);\n }\n\n .is-hidden {\n opacity: 0 !important;\n pointer-events: none;\n transform: translateX(14px);\n }\n\n .bubble-range-fill {\n z-index: -1;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n left: -100%;\n transition: all .3s;\n background-color: var(--accent-color);\n }\n\n .is-dragging .bubble-range-fill {\n transition: none;\n }\n\n .is-light .bubble-range-fill {\n opacity: 0.5;\n }\n\n .is-unavailable .bubble-button-card {\n cursor: not-allowed;\n }\n\n .bubble-range-slider {\n cursor: ew-resize;\n }\n .is-unavailable .bubble-range-slider {\n cursor: not-allowed;\n }\n\n .bubble-icon-container {\n display: flex;\n flex-wrap: wrap;\n width: 38px;\n height: 38px;\n min-width: 38px;\n min-height: 38px;\n align-items: center;\n justify-content: center;\n margin: 6px;\n border-radius: var(--bubble-media-player-icon-border-radius, var(--bubble-icon-border-radius, var(--bubble-border-radius, 50%)));\n background-color: var(--bubble-media-player-icon-background-color, var(--bubble-icon-background-color, var(--bubble-secondary-background-color, var(--card-background-color, var(--ha-card-background)))));;\n overflow: hidden;\n position: relative;\n cursor: pointer;\n pointer-events: auto;\n }\n\n .bubble-icon {\n opacity: 0.6;\n }\n\n .is-on .bubble-icon {\n filter: brightness(1.1);\n opacity: 1;\n }\n\n .bubble-icon,\n .bubble-mute-button {\n display: flex;\n position: absolute;\n height: 38px;\n width: 38px;\n justify-content: center;\n align-items: center;\n }\n\n .bubble-entity-picture {\n background-size: cover;\n background-position: center;\n height: 100%;\n width: 100%;\n position: absolute;\n }\n\n .bubble-media-info-container {\n display: flex;\n line-height: 14px;\n font-size: 12px;\n flex-direction: column;\n justify-content: center;\n flex-grow: 1;\n margin-left: 4px;\n pointer-events: none;\n position: relative;\n overflow: hidden;\n }\n\n .bubble-title,\n .bubble-name,\n .bubble-state,\n .bubble-artist {\n display: flex;\n margin: 2px 0;\n position: relative;\n white-space: nowrap;\n }\n\n .bubble-title {\n font-weight: 600;\n }\n\n .bubble-name-container {\n display: flex;\n line-height: 1em;\n flex-direction: column;\n justify-content: center;\n flex-grow: 1;\n font-weight: 600;\n margin-left: 4px;\n pointer-events: none;\n position: relative;\n overflow: hidden;\n }\n\n .bubble-name {\n font-size: 13px;\n margin: 2px 0;\n }\n\n .bubble-state {\n font-size: 12px;\n opacity: 0.7;\n margin: 2px 0;\n font-weight: normal;\n }\n\n .bubble-sub-button-container {\n right: 0 !important;\n }\n\n .bubble-background-container {\n display: flex;\n position: absolute;\n height: 100%;\n width: 100%;\n border-radius: inherit;\n overflow: hidden;\n }\n\n .bubble-cover-background {\n display: flex;\n position: absolute;\n height: 100%;\n width: 100%;\n background-size: cover;\n background-position: 50%;\n filter: blur(50px);\n opacity: 0.5;\n }\n\n @media screen and (max-width: 250px) {\n .bubble-previous-button {\n display: none;\n }\n }\n\n @media screen and (max-width: 206px) {\n .bubble-next-button {\n display: none;\n }\n }\n\n @media screen and (max-width: 160px) {\n .bubble-volume-button {\n display: none;\n }\n }\n\n @keyframes tap-feedback {\n 0% {transform: translateX(-100%); opacity: 0;}\n 64% {transform: translateX(0); opacity: 0.1;}\n 100% {transform: translateX(100%); opacity: 0;}\n }\n\n .large .bubble-media-player-container {\n height: 56px;\n border-radius: var(--bubble-media-player-border-radius, var(--bubble-border-radius, 32px));\n }\n\n .large .bubble-icon-container {\n --mdc-icon-size: 24px;\n min-width: 42px !important;\n min-height: 42px !important;\n margin-left: 8px;\n }\n \n .large .bubble-play-pause-button {\n display: flex;\n height: 42px;\n width: 42px;\n padding: 0;\n align-items: center;\n justify-content: center;\n }\n\n .large .bubble-volume-slider {\n height: 42px;\n border-radius: var(--bubble-media-player-border-radius, var(--bubble-border-radius, 32px));\n left: 60px;\n width: calc(100% - 168px);\n }\n\n .large .bubble-range-value {\n place-items: center;\n height: 42px;\n }\n\n .large .bubble-button-container {\n align-items: center;\n }\n\n .rows-2 .bubble-sub-button-container {\n flex-direction: column;\n gap: 4px !important;\n display: grid !important;\n grid-template-columns: repeat(2, 1fr);\n grid-template-rows: repeat(2, minmax(auto, max-content));\n grid-auto-flow: column;\n width: auto;\n }\n\n .rows-2 .bubble-sub-button {\n height: 20px !important;\n }\n";let ie;function re(e){"media-player"!==e.cardType&&function(e){e.dragging=!1,e.elements={},e.elements.mediaPlayerContainer=(0,n.az)("div","bubble-media-player-container"),e.elements.mediaPlayerCard=(0,n.az)("div","bubble-media-player"),e.elements.mediaInfoContainer=(0,n.az)("div","bubble-media-info-container"),e.elements.nameContainer=(0,n.az)("div","bubble-name-container"),e.elements.buttonContainer=(0,n.az)("div","bubble-button-container"),e.elements.iconContainer=(0,n.az)("div","bubble-icon-container"),e.elements.backgroundContainer=(0,n.az)("div","bubble-background-container"),e.elements.coverBackground=(0,n.az)("div","bubble-cover-background"),e.elements.playPauseButton=(0,n.az)("ha-icon","bubble-play-pause-button"),e.elements.previousButton=(0,n.az)("ha-icon","bubble-previous-button"),e.elements.previousButton.setAttribute("icon","mdi:skip-previous"),e.elements.nextButton=(0,n.az)("ha-icon","bubble-next-button"),e.elements.nextButton.setAttribute("icon","mdi:skip-next"),e.elements.volumeButton=(0,n.az)("ha-icon","bubble-volume-button"),e.elements.volumeButton.setAttribute("icon","mdi:volume-high"),e.elements.powerButton=(0,n.az)("ha-icon","bubble-power-button"),e.elements.powerButton.setAttribute("icon","mdi:power-standby"),e.elements.muteButton=(0,n.az)("ha-icon","bubble-mute-button is-hidden"),e.elements.muteButton.setAttribute("icon","mdi:volume-off"),e.elements.title=(0,n.az)("div","bubble-title"),e.elements.artist=(0,n.az)("div","bubble-artist"),e.elements.name=(0,n.az)("div","bubble-name"),e.elements.state=(0,n.az)("div","bubble-state"),e.elements.icon=(0,n.az)("ha-icon","bubble-icon"),e.elements.image=(0,n.az)("div","bubble-entity-picture"),e.elements.style=(0,n.az)("style"),e.elements.customStyle=(0,n.az)("style"),e.elements.style.innerText=ae,e.elements.iconContainer.appendChild(e.elements.icon),e.elements.iconContainer.appendChild(e.elements.image),e.elements.iconContainer.appendChild(e.elements.muteButton),e.elements.nameContainer.appendChild(e.elements.name),e.elements.nameContainer.appendChild(e.elements.state),e.elements.mediaInfoContainer.appendChild(e.elements.title),e.elements.mediaInfoContainer.appendChild(e.elements.artist),e.elements.buttonContainer.appendChild(e.elements.powerButton),e.elements.buttonContainer.appendChild(e.elements.previousButton),e.elements.buttonContainer.appendChild(e.elements.nextButton),e.elements.buttonContainer.appendChild(e.elements.volumeButton),e.elements.buttonContainer.appendChild(e.elements.playPauseButton),e.elements.mediaPlayerCard.appendChild(e.elements.iconContainer),e.elements.mediaPlayerCard.appendChild(e.elements.mediaInfoContainer),e.elements.mediaPlayerCard.appendChild(e.elements.nameContainer),e.elements.mediaPlayerCard.appendChild(e.elements.buttonContainer),e.elements.backgroundContainer.appendChild(e.elements.coverBackground),e.elements.mediaPlayerContainer.appendChild(e.elements.backgroundContainer),e.content.innerHTML="",e.content.appendChild(e.elements.mediaPlayerContainer),e.content.appendChild(e.elements.style),e.content.appendChild(e.elements.customStyle),e.elements.mediaPlayerContainer.appendChild(e.elements.mediaPlayerCard),a(e.elements.icon,e.config,e.config.entity),a(e.elements.image,e.config,e.config.entity),e.elements.volumeSliderContainer=(0,n.az)("div","bubble-volume-slider is-hidden"),function(e,t){let o=0;function a(t){t.stopPropagation();const n=t.pageX||(t.touches?t.touches[0].pageX:0);Math.abs(o-n)>10&&oe(e,n,!0);const a=e.elements.rangeSlider.getBoundingClientRect(),i=100*(n-a.left)/a.width,r=Math.min(100,Math.max(0,i));e.elements.rangeValue.innerText=Math.round(r)+"%"}function i(n){n.stopPropagation(),e.dragging=!1;const o=n.pageX||(n.touches?n.touches[0].pageX:0);oe(e,o),t.classList.remove("is-dragging"),t.removeEventListener("pointermove",a),t.removeEventListener("pointerup",i);const r=e.elements.rangeSlider.getBoundingClientRect(),s=100*(o-r.left)/r.width,l=Math.min(100,Math.max(0,s));e.elements.rangeValue.innerText=Math.round(l)+"%"}ie=Math.round(100*(0,n.IL)(e,"volume_level"))+"%",e.elements.rangeFill=(0,n.az)("div","bubble-range-fill range-fill"),e.elements.rangeSlider=(0,n.az)("div","bubble-range-slider range-slider"),e.elements.rangeValue=(0,n.az)("div","bubble-range-value"),e.elements.rangeSlider.appendChild(e.elements.rangeValue),e.elements.rangeSlider.appendChild(e.elements.rangeFill),t.appendChild(e.elements.rangeSlider),t.addEventListener("pointercancel",(function(){e.dragging=!1,t.classList.remove("is-dragging"),t.removeEventListener("pointermove",a),t.removeEventListener("pointerup",i)})),t.addEventListener("pointerdown",(n=>{t.setPointerCapture(n.pointerId),e.card.classList.contains("is-unavailable")||(e.dragging=!0,o=n.pageX||(n.touches?n.touches[0].pageX:0),t.classList.add("is-dragging"),t.addEventListener("pointermove",a),t.addEventListener("pointerup",i))})),e.elements.rangeValue.innerText=ie}(e,e.elements.volumeSliderContainer),e.elements.mediaPlayerCard.appendChild(e.elements.volumeSliderContainer),e.elements.volumeButton.addEventListener("click",(()=>{e.elements.volumeSliderContainer.classList.toggle("is-hidden"),e.elements.muteButton.classList.toggle("is-hidden"),e.elements.icon.classList.toggle("is-hidden"),e.elements.image.classList.toggle("is-hidden"),function(e){const t=e.elements.volumeButton.isHidden,n=t?"1":"0",o=t?"mdi:volume-high":"mdi:close";e.elements.volumeButton.setAttribute("icon",o),e.elements.mediaInfoContainer.style.opacity=n,e.elements.nameContainer.style.opacity=n,e.elements.subButtonContainer&&(e.elements.subButtonContainer.style.opacity=n),e.elements.previousButton.style.opacity=n,e.elements.nextButton.style.opacity=n,e.elements.powerButton.style.opacity=n,e.elements.volumeButton.isHidden=!t}(e),ie=Math.round(100*(0,n.IL)(e,"volume_level"))+"%"})),e.elements.powerButton.addEventListener("click",(()=>{const t=(0,n.pr)(e);e._hass.callService("media_player",t?"turn_off":"turn_on",{entity_id:e.config.entity})})),e.elements.muteButton.addEventListener("click",(()=>{const t=!0===(0,n.IL)(e,"is_volume_muted");e._hass.callService("media_player","volume_mute",{entity_id:e.config.entity,is_volume_muted:!t}),e.elements.muteButton.clicked=!0})),e.elements.previousButton.addEventListener("click",(()=>{e._hass.callService("media_player","media_previous_track",{entity_id:e.config.entity})})),e.elements.nextButton.addEventListener("click",(()=>{e._hass.callService("media_player","media_next_track",{entity_id:e.config.entity})})),e.elements.playPauseButton.addEventListener("click",(()=>{e._hass.callService("media_player","media_play_pause",{entity_id:e.config.entity}),e.elements.playPauseButton.clicked=!0})),e.elements.mediaPlayerContainer.addEventListener("click",(()=>(0,n.jk)("selection"))),e.cardType="media-player"}(e),function(e){"unavailable"===(0,n.y0)(e)?e.card.classList.add("is-unavailable"):e.card.classList.remove("is-unavailable"),(0,n.pr)(e)?e.card.classList.add("is-on"):e.card.classList.remove("is-on")}(e),function(e){if(e.config.styles?.includes("card.querySelector('.bubble-name').innerText"))return;const t=(0,n.oY)(e);t!==e.previousName&&(e.elements.name.innerText=t,e.previousName=t,(0,n.GP)(e,e.elements.name,t))}(e),function(e){const t=(0,n.IL)(e,"media_title"),o=(0,n.IL)(e,"media_artist"),a=t+o;a!==e.previousMediaState&&(e.elements.artist.style.display=""===o?"none":"flex",e.previousMediaState=a,(0,n.GP)(e,e.elements.title,t),(0,n.GP)(e,e.elements.artist,o))}(e),function(e){(0,n.IL)(e,"media_title");const t=""===(0,n.IL)(e,"media_artist");e.elements.mediaInfoContainer.style.display=t?"none":"",e.elements.nameContainer.style.display=t?"":"none"}(e),function(e){const t=(0,n.pr)(e),o=(0,n.q7)(e),a=(0,n.gJ)(e),i=e.elements.image.style.backgroundImage,r=e.elements.icon.icon,s=e.elements.icon.style.color;if(""!==a){const t="url("+a+")";i!==t&&(e.elements.image.style.backgroundImage=t),"none"!==e.elements.icon.style.display&&(e.elements.icon.style.display="none"),""!==e.elements.image.style.display&&(e.elements.image.style.display="")}else if(""!==o){r!==o&&(e.elements.icon.icon=o);const n=t?"var(--accent-color)":"inherit";s!==n&&(e.elements.icon.style.color=n),""!==e.elements.icon.style.display&&(e.elements.icon.style.display=""),"none"!==e.elements.image.style.display&&(e.elements.image.style.display="none")}else"none"!==e.elements.icon.style.display&&(e.elements.icon.style.display="none"),"none"!==e.elements.image.style.display&&(e.elements.image.style.display="none")}(e),function(e){const t=(0,n.pr)(e),o=(0,n.gJ)(e),a=e.config.cover_background,i=e.elements.coverBackground.style.backgroundImage;if(a&&t&&o){const t="url("+o+")";i!==t&&(e.elements.coverBackground.style.backgroundImage=t)}else""!==i&&(e.elements.coverBackground.style.backgroundImage="")}(e),H(e),function(e){if((0,n.OC)(e,"media_player")&&!1===e.dragging&&e.elements.rangeFill){const t=100*(0,n.IL)(e,"volume_level");e.elements.rangeFill.style.transform=`translateX(${t}%)`}}(e),function(e){const t="playing"===(0,n.y0)(e),o=e.elements.playPauseButton.clicked;t?e.elements.playPauseButton.setAttribute("icon",o?"mdi:play":"mdi:pause"):e.elements.playPauseButton.setAttribute("icon",o?"mdi:pause":"mdi:play"),e.elements.playPauseButton.clicked=!1}(e),function(e){const t=!0===(0,n.IL)(e,"is_volume_muted"),o=e.elements.muteButton.clicked;e.elements.muteButton.style.color=t?o?"":"var(--accent-color)":o?"var(--accent-color)":"",e.elements.muteButton.clicked=!1}(e),function(e){const t=(0,n.pr)(e);e.elements.powerButton.style.color=t?"var(--accent-color)":""}(e),N(e,e.content,e.elements.buttonContainer,!0),function(e){q(e),(0,n.jx)(e);const t=(0,n.y0)(e),o="off"!==t&&"unknown"!==t;if(e.config.hide?.power_button&&"none"!==e.elements.powerButton.style.display?e.elements.powerButton.style.display="none":e.config.hide?.power_button||"none"!==e.elements.powerButton.style.display||(e.elements.powerButton.style.display=""),!e.config.hide?.previous_button&&(e.editor||o)||"none"===e.elements.previousButton.style.display?e.config.hide?.previous_button||!e.editor&&!o||"none"!==e.elements.previousButton.style.display||(e.elements.previousButton.style.display=""):e.elements.previousButton.style.display="none",!e.config.hide?.next_button&&(e.editor||o)||"none"===e.elements.nextButton.style.display?e.config.hide?.next_button||!e.editor&&!o||"none"!==e.elements.nextButton.style.display||(e.elements.nextButton.style.display=""):e.elements.nextButton.style.display="none",!e.config.hide?.volume_button&&(e.editor||o)||"none"===e.elements.volumeButton.style.display?e.config.hide?.volume_button||!e.editor&&!o||"none"!==e.elements.volumeButton.style.display||(e.elements.volumeButton.style.display=""):e.elements.volumeButton.style.display="none",!e.config.hide?.play_pause_button&&(e.editor||o)||"none"===e.elements.playPauseButton.style.display?e.config.hide?.play_pause_button||!e.editor&&!o||"none"!==e.elements.playPauseButton.style.display||(e.elements.playPauseButton.style.display=""):e.elements.playPauseButton.style.display="none",!e.config.styles)return;let a="";try{a=e.config.styles?Function("hass","entity","state","icon","subButtonIcon","getWeatherIcon","card",`return \`${e.config.styles}\`;`)(e._hass,e.config.entity,t,e.elements.icon,e.subButtonIcon,n.X,e.card):""}catch(e){throw new Error(`Error in generating media player custom templates: ${e.message}`)}e.elements.customStyle&&(e.elements.customStyle.innerText=a)}(e)}function se(e){let t="";const n=e._hass.states[e.config.entity],o=(n.attributes.current_temperature,n.attributes.hvac_action),a=n.state,i="heating"===o||"heat"===a&&e.config.state_color,r="cooling"===o||"cool"===a&&e.config.state_color,s="off"!==a&&"unknown"!==a;switch(a){case"fan_only":t="var(--bubble-state-climate-fan-only-color, var(--state-climate-fan-only-color, var(--state-climate-active-color, var(--state-active-color))))";break;case"dry":t="var(--bubble-state-climate-dry-color, var(--state-climate-dry-color, var(--state-climate-active-color, var(--state-active-color))))";break;default:t=r?"var(--bubble-state-climate-cool-color, var(--state-climate-cool-color, var(--state-climate-active-color, var(--state-active-color))))":i?"var(--bubble-state-climate-heat-color, var(--state-climate-heat-color, var(--state-climate-active-color, var(--state-active-color))))":s&&e.config.state_color?"auto"===a?"var(--bubble-state-climate-auto-color, var(--state-climate-auto-color, var(--state-climate-active-color, var(--state-active-color))))":"heat_cool"===a?"var(--bubble-state-climate-heat-cool-color, var(--state-climate-heat-cool-color, var(--state-climate-active-color, var(--state-active-color))))":"var(--bubble-climate-accent-color, var(--bubble-accent-color, var(--accent-color)))":""}return t}let le,ce,de;class ue extends HTMLElement{editor=!1;isConnected=!1;connectedCallback(){this.isConnected=!0,this._hass&&this.updateBubbleCard()}disconnectedCallback(){this.isConnected=!1}set editMode(e){this.editor!==e&&(this.editor=e,this._hass&&this.updateBubbleCard())}set hass(e){!function(e){if(!e.content){let t=e.shadowRoot||e.attachShadow({mode:"open"}),n=document.createElement("ha-card");n.style.cssText="background: none; border: none; box-shadow: none; border-radius: 16px;";let o=document.createElement("div");o.className="card-content",o.style.padding="0",n.appendChild(o),t.appendChild(n),e.card=n,e.content=o}}(this),this._hass=e,this.editor||(this.isConnected||"pop-up"===this.config.card_type)&&this.updateBubbleCard()}updateBubbleCard(){switch(this.config.card_type){case"pop-up":J(this);break;case"button":Y(this);break;case"separator":"separator"!==(e=this).cardType&&function(e){e.elements={},e.elements.separatorCard=(0,n.az)("div","bubble-separator separator-container"),e.elements.icon=(0,n.az)("ha-icon","bubble-icon"),e.elements.name=(0,n.az)("h4","bubble-name"),e.elements.line=(0,n.az)("div","bubble-line"),e.elements.style=(0,n.az)("style"),e.elements.style.innerText="\n .bubble-separator {\n display: flex;\n width: 100%;\n \n align-items: center;\n z-index: 1;\n }\n .bubble-icon {\n display: inline-flex;\n height: auto;\n width: auto;\n margin: 0 22px 0 8px;\n }\n .bubble-name {\n margin: 0 30px 0 0;\n font-size: 16px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n .bubble-name:empty {\n display: none;\n }\n .bubble-line {\n border-radius: 6px;\n opacity: 0.5;\n flex-grow: 1;\n height: 6px;\n background-color: var(--bubble-line-background-color, var(--background-color, var(--secondary-background-color)));\n margin-right: 14px;\n }\n .bubble-sub-button-container {\n margin: 0 8px;\n right: 0 !important;\n }\n\n .large .bubble-separator {\n height: 56px;\n }\n\n .rows-2 .bubble-sub-button-container {\n flex-direction: column;\n gap: 4px !important;\n display: grid !important;\n grid-template-columns: repeat(2, min-content);\n grid-template-rows: repeat(2, 1fr);\n grid-auto-flow: column;\n width: auto;\n }\n\n .rows-2 .bubble-sub-button {\n height: 20px !important;\n }\n",e.elements.customStyle=(0,n.az)("style"),e.elements.separatorCard.appendChild(e.elements.icon),e.elements.separatorCard.appendChild(e.elements.name),e.elements.separatorCard.appendChild(e.elements.line),e.content.innerHTML="",e.content.appendChild(e.elements.separatorCard),e.content.appendChild(e.elements.style),e.content.appendChild(e.elements.customStyle),e.cardType="separator"}(e),function(e){e.elements.icon.icon=(0,n.q7)(e),""===e.elements.icon.icon&&""===e.elements.icon.style.margin?(e.elements.icon.style.margin="0px 8px",e.elements.icon.style.width="0px"):""!==e.elements.icon.icon&&"0px 8px"===e.elements.icon.style.margin&&(e.elements.icon.style.margin="",e.elements.icon.style.width="")}(e),function(e){if(e.config.styles?.includes("card.querySelector('.bubble-name').innerText"))return;const t=(0,n.oY)(e);t!==e.elements.name.innerText&&(e.elements.name.innerText=t)}(e),N(e,e.content,e.elements.separatorCard),function(e){q(e),(0,n.jx)(e);const t=(0,n.y0)(e);let o="";try{o=e.config.styles?Function("hass","entity","state","icon","subButtonIcon","getWeatherIcon","card",`return \`${e.config.styles}\`;`)(e._hass,e.config.entity,t,e.elements.icon,e.subButtonIcon,n.X,e.card):""}catch(e){throw new Error(`Error in generating separator custom templates: ${e.message}`)}e.elements.customStyle&&(e.elements.customStyle.innerText=o)}(e);break;case"cover":!function(e){"cover"!==e.cardType&&function(e){e.elements={},e.elements.coverCardContainer=(0,n.az)("div","bubble-cover-card-container cover-container"),e.elements.headerContainer=(0,n.az)("div","bubble-header header-container"),e.elements.buttonsContainer=(0,n.az)("div","bubble-buttons buttons-container"),e.elements.iconContainer=(0,n.az)("div","bubble-icon-container icon-container"),e.elements.icon=(0,n.az)("ha-icon","bubble-icon"),e.elements.nameContainer=(0,n.az)("div","bubble-name-container name-container"),e.elements.name=(0,n.az)("div","bubble-name name"),e.elements.state=(0,n.az)("div","bubble-state state"),e.elements.buttonOpen=(0,n.az)("div","bubble-button bubble-open button open"),e.elements.buttonStop=(0,n.az)("div","bubble-button bubble-stop button stop"),e.elements.buttonClose=(0,n.az)("div","bubble-button bubble-close button close"),e.elements.iconOpen=(0,n.az)("ha-icon","bubble-icon bubble-icon-open"),e.elements.iconStop=(0,n.az)("ha-icon","bubble-icon bubble-icon-stop"),e.elements.iconStop.icon="mdi:stop",e.elements.iconClose=(0,n.az)("ha-icon","bubble-icon bubble-icon-close"),e.elements.style=(0,n.az)("style"),e.elements.style.innerText="\n * {\n -webkit-tap-highlight-color: transparent !important;\n }\n ha-card {\n margin-top: 0 !important;\n background: none !important;\n }\n\n .bubble-cover-card-container {\n display: grid;\n gap: 10px;\n overflow: hidden;\n }\n\n .bubble-header {\n display: flex;\n align-items: center;\n }\n\n .bubble-icon-container {\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n justify-content: center;\n min-width: 38px;\n min-height: 38px;\n border-radius: var(--bubble-cover-icon-border-radius, var(--bubble-icon-border-radius, var(--bubble-border-radius, 50%)));\n background-color: var(--bubble-cover-icon-background-color, var(--bubble-icon-background-color, var(--bubble-secondary-background-color, var(--card-background-color, var(--ha-card-background)))));\n border: 6px solid var(--bubble-cover-main-background-color, var(--bubble-main-background-color, var(--background-color-2, var(--secondary-background-color))));\n cursor: pointer;\n }\n\n .bubble-name-container {\n display: flex;\n line-height: 1em;\n flex-direction: column;\n justify-content: center;\n flex-grow: 1;\n font-weight: 600;\n margin-left: 4px;\n margin-right: 16px;\n pointer-events: none;\n position: relative;\n overflow: hidden;\n }\n\n .bubble-name {\n font-size: 13px;\n margin: 2px 0;\n white-space: nowrap;\n display: flex;\n position: relative;\n overflow: hidden;\n }\n\n .bubble-state {\n font-size: 12px;\n opacity: 0.7;\n margin: 2px 0;\n font-weight: normal;\n white-space: nowrap;\n display: flex;\n position: relative;\n overflow: hidden;\n }\n\n .bubble-buttons {\n display: grid;\n align-self: center;\n grid-auto-flow: column;\n grid-gap: 18px;\n }\n\n .bubble-icon {\n display: flex; \n height: 24px; \n width: 24px; \n color: var(--primary-text-color);\n }\n\n .bubble-button.disabled {\n opacity: 0.3 !important;\n pointer-events: none !important;\n cursor: none !important;\n }\n\n .bubble-button {\n display: flex;\n background: var(--bubble-cover-main-background-color, var(--bubble-main-background-color, var(--background-color-2, var(--secondary-background-color))));\n height: 42px;\n border-radius: var(--bubble-cover-border-radius, var(--bubble-border-radius, 32px));\n box-shadow: var(--bubble-cover-box-shadow, var(--bubble-button-box-shadow, var(--bubble-box-shadow, none)));\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border: none;\n }\n\n .large .bubble-cover-card-container {\n height: 56px;\n display: flex;\n background: var(--bubble-cover-main-background-color, var(--bubble-main-background-color, var(--background-color-2, var(--secondary-background-color))));\n border-radius: var(--bubble-cover-border-radius, var(--bubble-border-radius, 32px));\n box-shadow: var(--bubble-cover-box-shadow, var(--bubble-button-box-shadow, var(--bubble-box-shadow, none)));\n }\n\n .large .bubble-buttons .bubble-icon {\n color: var(--primary-text-color) !important;\n opacity: 1;\n }\n\n .large .bubble-header-container {\n height: 56px;\n }\n\n .large .bubble-header {\n width: 100%;\n }\n\n .large .bubble-icon-container {\n --mdc-icon-size: 24px;\n min-width: 42px !important;\n min-height: 42px !important;\n align-content: center;\n border: none;\n margin: 8px 6px 8px 8px;\n }\n\n .large .bubble-icon {\n align-items: center;\n }\n\n .large .bubble-buttons {\n display: flex;\n position: relative;\n right: 18px;\n align-self: center;\n grid-gap: 18px;\n }\n\n .large .bubble-button,\n .large .bubble-sub-button {\n box-shadow: none;\n }\n\n .large .bubble-sub-button-container {\n margin-right: 14px;\n }\n\n .rows-2 .bubble-sub-button-container {\n flex-direction: column;\n gap: 4px !important;\n display: grid !important;\n grid-template-columns: repeat(2, min-content);\n grid-template-rows: repeat(2, 1fr);\n grid-auto-flow: column;\n width: auto;\n padding-right: 14px;\n }\n\n .rows-2 .bubble-sub-button {\n height: 20px !important;\n }\n",e.elements.customStyle=(0,n.az)("style"),e.elements.iconContainer.appendChild(e.elements.icon),e.elements.headerContainer.appendChild(e.elements.iconContainer),e.elements.headerContainer.appendChild(e.elements.nameContainer),e.elements.nameContainer.appendChild(e.elements.name),e.elements.nameContainer.appendChild(e.elements.state),e.elements.buttonsContainer.appendChild(e.elements.buttonOpen),e.elements.buttonsContainer.appendChild(e.elements.buttonStop),e.elements.buttonsContainer.appendChild(e.elements.buttonClose),e.elements.buttonOpen.appendChild(e.elements.iconOpen),e.elements.buttonOpen.addEventListener("click",(()=>{const t=e.config.open_service??"cover.open_cover",[n,o]=t.split(".");e._hass.callService(n,o,{entity_id:e.config.entity})})),e.elements.buttonStop.appendChild(e.elements.iconStop),e.elements.buttonStop.addEventListener("click",(()=>{const t=e.config.stop_service??"cover.stop_cover",[n,o]=t.split(".");e._hass.callService(n,o,{entity_id:e.config.entity})})),e.elements.buttonClose.appendChild(e.elements.iconClose),e.elements.buttonClose.addEventListener("click",(()=>{const t=e.config.close_service??"cover.close_cover",[n,o]=t.split(".");e._hass.callService(n,o,{entity_id:e.config.entity})})),a(e.elements.iconContainer,e.config),e.content.innerHTML="",e.content.appendChild(e.elements.coverCardContainer),e.content.appendChild(e.elements.style),e.content.appendChild(e.elements.customStyle),e.elements.coverCardContainer.appendChild(e.elements.headerContainer),e.elements.coverCardContainer.appendChild(e.elements.buttonsContainer),e.elements.coverCardContainer.addEventListener("click",(()=>(0,n.jk)("selection"))),e.cardType="cover"}(e),function(e){const t=e._hass.states[e.config.entity],{current_position:o,assumed_state:a}=t.attributes,i=te(t,Z),r=te(t,Q),s=te(t,ee),l=function(e){return void 0!==e.attributes.current_position?100===e.attributes.current_position:"open"===e.state}(t),c=function(e){return void 0!==e.attributes.current_position?0===e.attributes.current_position:"closed"===e.state}(t),d="curtain"===(0,n.IL)(e,"device_class");e.elements.icon.icon=l?(0,n.q7)(e,e.config.entity,e.config.icon_open):(0,n.q7)(e,e.config.entity,e.config.icon_close),e.elements.iconOpen.icon=e.config.icon_up||(d?"mdi:arrow-expand-horizontal":"mdi:arrow-up"),e.elements.iconClose.icon=e.config.icon_down||(d?"mdi:arrow-collapse-horizontal":"mdi:arrow-down"),void 0!==o?(l?e.elements.buttonOpen.classList.add("disabled"):i&&e.elements.buttonOpen.classList.remove("disabled"),c?e.elements.buttonClose.classList.add("disabled"):r&&e.elements.buttonClose.classList.remove("disabled")):(e.elements.buttonOpen.classList.remove("disabled"),e.elements.buttonClose.classList.remove("disabled")),e.elements.buttonStop.style.display=s?"":"none"}(e),function(e){if(e.config.styles?.includes("card.querySelector('.bubble-name').innerText"))return;const t=(0,n.oY)(e);t!==e.elements.previousName&&(e.elements.name.innerText=t,(0,n.GP)(e,e.elements.name,t),e.elements.previousName=t)}(e),H(e),N(e,e.content,e.elements.headerContainer),function(e){if(q(e),(0,n.jx)(e),!e.config.styles)return;const t=(0,n.y0)(e);let o="";try{o=e.config.styles?Function("hass","entity","state","icon","subButtonIcon","getWeatherIcon","card",`return \`${e.config.styles}\`;`)(e._hass,e.config.entity,t,e.elements.icon,e.subButtonIcon,n.X,e.card):""}catch(e){throw new Error(`Error in generating cover custom templates: ${e.message}`)}e.elements.customStyle&&(e.elements.customStyle.innerText=o)}(e)}(this);break;case"empty-column":!function(e){"empty-column"!==e.cardType&&function(e){e.elements={},e.elements.emptyColumnCard=(0,n.az)("div","bubble-empty-column empty-column"),e.elements.style=(0,n.az)("style"),e.elements.style.innerText="\n .empty-column {\n display: flex;\n width: 100%;\n }\n",e.elements.customStyle=(0,n.az)("style"),e.content.innerHTML="",e.content.appendChild(e.elements.emptyColumnCard),e.content.appendChild(e.elements.style),e.content.appendChild(e.elements.customStyle),e.cardType="empty-column"}(e)}(this);break;case"horizontal-buttons-stack":!function(e){"horizontal-buttons-stack"!==e.cardType&&function(e){e.elements={},e.elements.buttons=[],e.elements.cardContainer=(0,n.az)("div","bubble-horizontal-buttons-stack-card-container horizontal-buttons-stack-container");let t=1;for(;e.config[t+"_link"];)e.elements.cardContainer.appendChild(K(e,t)),t++;e.elements.style=(0,n.az)("style"),e.elements.style.innerText="\n @keyframes from-bottom {\n 0% { transform: translate(-50%, 100px); }\n 26% { transform: translate(-50%, -8px); }\n 46% { transform: translate(-50%, 1px); }\n 62% { transform: translate(-50%, -2px); }\n 70% { transform: translate(-50%, 0); }\n 100% { transform: translate(-50%, 0); }\n }\n @keyframes pulse {\n 0% { filter: brightness(0.7); }\n 100% { filter: brightness(1.3); }\n }\n ha-card {\n border-radius: 0;\n }\n .horizontal-buttons-stack-card {\n bottom: 16px;\n height: 51px;\n margin-top: 0;\n position: fixed;\n width: calc(100% - var(--mdc-drawer-width, 0px) - 8px);\n left: calc(var(--mdc-drawer-width, 0px) + 4px);\n z-index: 6; /* Higher value hide the more-info panel */\n }\n @media only screen and (max-width: 870px) {\n .horizontal-buttons-stack-card {\n width: calc(100% - 16px);\n left: 8px;\n }\n\n .horizontal-buttons-stack-card::before {\n left: -10px;\n }\n }\n .horizontal-buttons-stack-card::before {\n content: '';\n position: absolute;\n top: -32px;\n display: none;\n background: linear-gradient(0deg, var(--background-color, var(--primary-background-color)) 50%, rgba(79, 69, 87, 0));\n width: 200%;\n height: 100px;\n pointer-events: none;\n }\n .has-gradient.horizontal-buttons-stack-card::before {\n display: block;\n }\n\n .card-content {\n width: calc(100% + 36px);\n padding: 0 !important;\n max-width: calc(var(--desktop-width) - 8px);\n box-sizing: border-box;\n overflow: scroll;\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n -ms-overflow-style: none;\n scrollbar-width: none;\n -webkit-mask-image: linear-gradient(\n 90deg,\n #000000 0%,\n #000000 calc(0% + 28px),\n #000000 calc(100% - 28px),\n transparent 100%\n );\n }\n .is-scrollable.card-content {\n padding: 0 !important;\n width: 100%;\n }\n .is-scrolled.card-content {\n padding: 0 !important;\n width: 100%;\n -webkit-mask-image: linear-gradient(\n 90deg,\n transparent 0%,\n #000000 calc(0% + 28px),\n #000000 calc(100% - 28px),\n transparent 100%\n );\n }\n .is-maxed-scroll.card-content {\n -webkit-mask-image: linear-gradient(\n 90deg,\n transparent 0%,\n #000000 calc(0% + 28px),\n #000000 calc(100% - 28px),\n #000000 100%\n );\n }\n .card-content::-webkit-scrollbar {\n display: none;\n }\n\n .bubble-horizontal-buttons-stack-card-container {\n height: 51px;\n position: relative;\n margin: auto;\n }\n\n .bubble-button {\n align-items: center;\n border-radius: var(--bubble-horizontal-buttons-stack-border-radius, var(--bubble-border-radius, 32px));\n color: var(--primary-text-color);\n cursor: pointer;\n display: inline-flex;\n height: 50px;\n left: 0;\n padding: 0 16px;\n position: absolute;\n white-space: nowrap;\n z-index: 1;\n transition: transform 1s;\n box-sizing: border-box;\n }\n .bubble-button.highlight {\n animation: pulse 1.4s infinite alternate;\n }\n .bubble-background-color {\n border: 1px solid var(--primary-text-color);\n border-radius: var(--bubble-horizontal-buttons-stack-border-radius, var(--bubble-border-radius, 32px));\n box-sizing: border-box;\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n transition: background-color 1s;\n width: 100%;\n z-index: -1;\n }\n .bubble-background {\n opacity: 0.8;\n border-radius: var(--bubble-horizontal-buttons-stack-border-radius, var(--bubble-border-radius, 32px));\n width: 100%;\n height: 100%;\n box-sizing: border-box !important;\n position: absolute;\n left: 0;\n z-index: -2;\n background-color: var(--background-color,var(--primary-background-color));\n }\n .bubble-icon {\n height: 24px;\n width: 24px;\n }\n .bubble-icon + .bubble-name {\n margin-left: 8px;\n }\n\n\n .horizontal-buttons-stack-card.editor {\n position: relative;\n width: 100%;\n left: 0;\n bottom: 0;\n }\n .horizontal-buttons-stack-card.editor::before {\n background: none;\n }\n\n",e.elements.customStyle=(0,n.az)("style"),e.card.classList.add("horizontal-buttons-stack-card"),e.card.style.marginLeft=e.config.margin??"",e.config.hide_gradient||e.card.classList.add("has-gradient"),e.card.style.setProperty("--desktop-width",e.config.width_desktop??"500px"),e.elements.cardContainer.appendChild(e.elements.style),e.elements.cardContainer.appendChild(e.elements.customStyle),e.content.appendChild(e.elements.cardContainer),e.content.addEventListener("scroll",(()=>{e.content.scrollLeft>0?e.content.classList.add("is-scrolled"):e.content.classList.remove("is-scrolled"),e.content.scrollWidth-12{e.content.style.animation="none"}),1500));let o=e.card.parentNode.host;o&&!e.editor&&"hui-card"!==o.parentElement.tagName.toLowerCase()?o.style.padding="0 0 80px":o.parentElement&&!e.editor&&"hui-card"===o.parentElement.tagName.toLowerCase()&&(o.parentElement.style.padding="0 0 80px"),e.cardType="horizontal-buttons-stack"}(e),function(e){if(!e.config.styles)return;let t="";try{t=e.config.styles?Function("hass","card",`return \`${e.config.styles}\`;`)(e._hass,e.card):""}catch(e){throw new Error(`Error in generating horizontal buttons stack custom templates: ${e.message}`)}e.elements.customStyle&&(e.elements.customStyle.innerText=t)}(e),function(e){if(!e.config.auto_order)return;const t=e._hass.states;e.elements.buttons.sort(((e,n)=>{if(!t[e.pirSensor])return 1;if(!t[e.pirSensor])return-1;const o=t[e.pirSensor]?.last_updated,a=t[n.pirSensor]?.last_updated;return"on"===t[e.pirSensor]?.state&&"on"===t[n.pirSensor]?.state?o>a?-1:o===a?0:1:"on"===t[e.pirSensor]?.state?-1:"on"===t[n.pirSensor]?.state?1:o>a?-1:o===a?0:1}))}(e),function(e){e.elements.buttons.forEach((t=>{const n=t.index,o=e.config[`${n}_name`]??"",a=e.config[`${n}_icon`]??"",i=e.config[`${n}_pir_sensor`],r=e.config[`${n}_link`],s=e.config[`${n}_entity`];t.pirSensor=i,t.lightEntity=s,t.link=r,o?(t.name.innerText=o,t.name.style.display=""):t.name.style.display="none",a?(t.icon.icon=a,t.icon.style.display=""):t.icon.style.display="none",void 0===r&&(t.remove(),e.elements.buttons=e.elements.buttons.filter((e=>e!==t)),e.elements.buttons.forEach(((e,t)=>{e.index=t+1})))}));let t=e.elements.buttons.length+1;for(;void 0!==e.config[`${t}_link`];){if(!e.elements.buttons.find((e=>e.index===t))){const n=K(e,t);e.elements.buttons.push(n)}t++}}(e),function(e){const t=e.shadowRoot.host.closest("hui-card-preview, hui-card-options");e.editor||null!==t?(e.elements.cardContainer.classList.add("editor"),e.card.classList.add("editor")):(e.elements.cardContainer.classList.remove("editor"),e.card.classList.remove("editor"))}(e),function(e){let t=0;for(let n=0;n0&&(o=a,localStorage.setItem(`bubbleButtonWidth-${e.elements.buttons[n].link}`,`${a}`)),null!==o&&(e.elements.buttons[n].style.transform=`translateX(${t}px)`,e.elements.buttons[n].style.width="",t+=+o+12)}e.elements.cardContainer.style.width=`${t}px`}(e),function(e){e.elements.buttons.forEach((n=>{const o=e._hass.states[n.lightEntity],a=o?.attributes.rgb_color,i=o?.state;if(a){const e=(0,t.wW)(a)?"rgba(255, 220, 200, 0.5)":`rgba(${a}, 0.5)`;n.backgroundColor.style.backgroundColor=e,n.backgroundColor.style.borderColor="rgba(0, 0, 0, 0)"}else"on"==i?(n.backgroundColor.style.backgroundColor="rgba(255, 255, 255, 0.5)",n.backgroundColor.style.borderColor="rgba(0, 0, 0, 0)"):(n.backgroundColor.style.backgroundColor="rgba(0, 0, 0, 0)",n.backgroundColor.style.borderColor="var(--primary-text-color)")}))}(e),function(e){e.content.scrollWidth>=e.content.offsetWidth?e.content.classList.add("is-scrollable"):e.content.classList.remove("is-scrollable")}(e)}(this);break;case"media-player":re(this);break;case"select":!function(e){e.cardType,"select"!==e.cardType&&(function(e){e.elements||(e.elements={});let t=e.content;e.elements.selectCardContainer=(0,n.az)("div","bubble-select-card-container"),e.elements.selectCard=(0,n.az)("div","bubble-select-card"),e.elements.selectBackground=(0,n.az)("div","bubble-select-background"),e.elements.nameContainer=(0,n.az)("div","bubble-name-container"),e.elements.iconContainer=(0,n.az)("div","bubble-icon-container"),e.elements.name=(0,n.az)("div","bubble-name"),e.elements.state=(0,n.az)("div","bubble-state"),e.elements.feedback=(0,n.az)("div","bubble-feedback-element"),e.elements.icon=(0,n.az)("ha-icon","bubble-icon"),e.elements.image=(0,n.az)("div","bubble-entity-picture"),e.elements.style=(0,n.az)("style"),e.elements.customStyle=(0,n.az)("style"),e.elements.feedback.style.display="none",e.elements.style.innerText=O,s(e.elements.selectBackground,e.elements.feedback),a(e.elements.iconContainer,e.config,e.config.entity),e.elements.iconContainer.appendChild(e.elements.icon),e.elements.iconContainer.appendChild(e.elements.image),e.elements.nameContainer.appendChild(e.elements.name),e.elements.nameContainer.appendChild(e.elements.state),e.elements.selectCard.appendChild(e.elements.selectBackground),e.elements.selectCard.appendChild(e.elements.iconContainer),e.elements.selectCard.appendChild(e.elements.nameContainer),e.elements.selectCardContainer.appendChild(e.elements.selectCard),e.elements.selectBackground.appendChild(e.elements.feedback),t.innerHTML="",t.appendChild(e.elements.selectCardContainer),t.appendChild(e.elements.style),t.appendChild(e.elements.customStyle),e.cardType="select"}(e),z(e),E(e)),B(e,e.elements,e.config.entity,e.config),function(e){"unavailable"===(0,n.y0)(e)?e.card.classList.add("is-unavailable"):e.card.classList.remove("is-unavailable")}(e),function(e){const t=(0,n.q7)(e),o=(0,n.gJ)(e);""!==o?(e.elements.image.style.backgroundImage="url("+o+")",e.elements.icon.style.display="none",e.elements.image.style.display=""):""!==t?(e.elements.icon.icon=t,e.elements.icon.style.color="inherit",e.elements.icon.style.display="",e.elements.image.style.display="none"):(e.elements.icon.style.display="none",e.elements.image.style.display="none")}(e),function(e){if(e.config.styles?.includes("card.querySelector('.bubble-name').innerText"))return;const t=(0,n.oY)(e);t!==e.elements.previousName&&((0,n.GP)(e,e.elements.name,t),e.elements.previousName=t)}(e),H(e),N(e,e.content,e.elements.dropdownContainer,!0),function(e){q(e),(0,n.jx)(e);const t=(0,n.y0)(e);let o="";try{o=e.config.styles?Function("hass","entity","state","icon","subButtonIcon","getWeatherIcon","card",`return \`${e.config.styles}\`;`)(e._hass,e.config.entity,t,e.elements.icon,e.subButtonIcon,n.X,e.card):""}catch(e){throw new Error(`Error in generating select custom templates: ${e.message}`)}e.elements.customStyle&&(e.elements.customStyle.innerText=o,e.elements.dropdownCustomStyleElement.innerText=o)}(e)}(this);break;case"climate":!function(e){"climate"!==e.cardType&&function(e){e.dragging=!1,e.elements={};const t=e.config.entity,o=e._hass.states[t],i="°C"===e._hass.config.unit_system.temperature,r=o.attributes.target_temp_step?o.attributes.target_temp_step:i?.5:1;function l(t,o,a){const i=(0,n.az)("div","bubble-climate-minus-button"),r=(0,n.az)("div","bubble-climate-plus-button"),l=(0,n.az)("ha-icon","bubble-climate-minus-button-icon");l.setAttribute("icon","mdi:minus"),i.appendChild(l),s(i);const c=(0,n.az)("ha-icon","bubble-climate-plus-button-icon");let d,u;c.setAttribute("icon","mdi:plus"),r.appendChild(c),s(r),"temperature"===o?(e.elements.tempDisplay=(0,n.az)("div","bubble-temperature-display"),d=e.elements.tempDisplay):"target_temp_low"===o?(e.elements.lowTempDisplay=(0,n.az)("div","bubble-low-temperature-display"),d=e.elements.lowTempDisplay):"target_temp_high"===o&&(e.elements.highTempDisplay=(0,n.az)("div","bubble-high-temperature-display"),d=e.elements.highTempDisplay),t.appendChild(i),t.appendChild(d),t.appendChild(r);let b=parseFloat((0,n.IL)(e,o))||0,p=b;function h(t){"temperature"===o?e.elements.tempDisplay.innerText=t.toFixed(1):"target_temp_low"===o?e.elements.lowTempDisplay.innerText=t.toFixed(1):"target_temp_high"===o&&(e.elements.highTempDisplay.innerText=t.toFixed(1))}function m(){const t=parseFloat((0,n.IL)(e,o))||0;t!==p&&(b=t,p=t)}function g(){m();const t={entity_id:e.config.entity};"target_temp_low"===o?(t.target_temp_low=b,t.target_temp_high=(0,n.IL)(e,"target_temp_high")):"target_temp_high"===o?(t.target_temp_high=b,t.target_temp_low=(0,n.IL)(e,"target_temp_low")):t[o]=b,e._hass.callService("climate","set_temperature",t)}i.addEventListener("click",(()=>{m(),b=parseFloat((b-a).toFixed(1)),h(b),clearTimeout(u),u=setTimeout(g,700)})),r.addEventListener("click",(()=>{m(),b=parseFloat((b+a).toFixed(1)),h(b),clearTimeout(u),u=setTimeout(g,700)}))}e.elements.climateContainer=(0,n.az)("div","bubble-climate-container"),e.elements.climateCard=(0,n.az)("div","bubble-climate"),e.elements.buttonContainer=(0,n.az)("div","bubble-button-container"),e.elements.nameContainer=(0,n.az)("div","bubble-name-container"),e.elements.iconContainer=(0,n.az)("div","bubble-icon-container"),e.elements.name=(0,n.az)("div","bubble-name"),e.elements.state=(0,n.az)("div","bubble-state"),e.elements.icon=(0,n.az)("ha-icon","bubble-icon"),e.elements.image=(0,n.az)("div","bubble-entity-picture entity-picture"),e.elements.colorBackground=(0,n.az)("div","bubble-color-background"),e.elements.style=(0,n.az)("style"),e.elements.customStyle=(0,n.az)("style"),e.elements.style.innerText="\n * {\n -webkit-tap-highlight-color: transparent !important;\n }\n\n ha-card {\n margin-top: 0;\n background: none;\n opacity: 1;\n }\n .is-unavailable {\n opacity: 0.5;\n }\n\n .bubble-climate-container {\n position: relative;\n width: 100%;\n height: 50px;\n background-color: var(--bubble-climate-main-background-color, var(--bubble-main-background-color, var(--background-color-2, var(--secondary-background-color))));\n border-radius: var(--bubble-climate-border-radius, var(--bubble-border-radius, 32px));\n box-shadow: var(--bubble-climate-box-shadow, var(--bubble-box-shadow, none));\n overflow: visible;\n touch-action: pan-y;\n }\n\n .bubble-climate {\n display: flex;\n position: absolute;\n justify-content: space-between;\n align-items: center;\n height: 100%;\n width: 100%;\n transition: background-color 1.5s;\n background-color: rgba(0,0,0,0);\n }\n\n .bubble-button-container {\n display: inline-grid;\n grid-auto-flow: column;\n gap: 10px;\n align-self: center;\n align-items: center;\n margin-right: 8px;\n }\n\n .bubble-temperature-container, .bubble-low-temp-container, .bubble-high-temp-container {\n display: inline-flex;\n position: relative;\n font-size: 12px;\n white-space: nowrap;\n justify-content: center;\n align-items: center;\n width: auto;\n height: 100%;\n border-radius: var(--bubble-sub-button-border-radius, var(--bubble-border-radius, 32px));\n background-color: var(--bubble-climate-button-background-color, var(--bubble-secondary-background-color, var(--card-background-color, var(--ha-card-background))));\n }\n\n .bubble-low-temp-container {\n color: var(--state-climate-heat-color, var(--state-climate-active-color, var(--state-active-color)));\n }\n\n .bubble-high-temp-container {\n color: var(--state-climate-cool-color, var(--state-climate-active-color, var(--state-active-color)));\n }\n\n .bubble-target-temperature-container {\n display: flex;\n gap: 10px;\n }\n\n .bubble-climate-minus-button,\n .bubble-climate-plus-button {\n display: flex;\n position: relative;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 36px;\n height: 36px;\n vertical-align: middle;\n font-size: 18px;\n color: var(--primary-text-color);\n cursor: pointer;\n }\n\n .bubble-climate-minus-button-icon,\n .bubble-climate-plus-button-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n --mdc-icon-size: 16px;\n }\n\n .bubble-feedback-container {\n display: flex;\n width: 100%;\n height: 100%;\n position: absolute;\n border-radius: var(--bubble-sub-button-border-radius, var(--bubble-border-radius, 32px));\n overflow: hidden;\n pointer-events: none;\n }\n\n .bubble-feedback-element {\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n width: 100%;\n height: 100%;\n background-color: rgb(0,0,0);\n pointer-events: none;\n }\n\n .bubble-color-background {\n display: flex;\n width: 100%;\n height: 100%;\n position: absolute;\n border-radius: var(--bubble-climate-border-radius, var(--bubble-border-radius, 32px));\n opacity: 0.7;\n transition: background-color 2s ease;\n }\n\n .is-unavailable .bubble-climate {\n cursor: not-allowed;\n }\n\n .bubble-icon-container {\n display: flex;\n flex-wrap: wrap;\n width: 38px;\n height: 38px;\n min-width: 38px;\n min-height: 38px;\n align-items: center;\n justify-content: center;\n margin: 6px;\n border-radius: var(--bubble-climate-icon-border-radius, var(--bubble-icon-border-radius, var(--bubble-border-radius, 50%)));\n background-color: var(--bubble-climate-icon-background-color, var(--bubble-icon-background-color, var(--bubble-secondary-background-color, var(--card-background-color, var(--ha-card-background)))));\n overflow: hidden;\n position: relative;\n cursor: pointer;\n pointer-events: auto;\n }\n\n .bubble-icon {\n opacity: 0.6;\n }\n\n .is-on .bubble-icon {\n filter: brightness(1.1);\n opacity: 1;\n }\n\n .bubble-icon {\n display: flex;\n position: absolute;\n height: 38px;\n width: 38px;\n justify-content: center;\n align-items: center;\n transition: all 2s;\n }\n\n .bubble-entity-picture {\n background-size: cover;\n background-position: center;\n height: 100%;\n width: 100%;\n position: absolute;\n }\n\n .bubble-name,\n .bubble-state {\n display: flex;\n margin: 2px 0;\n position: relative;\n white-space: nowrap;\n }\n\n .bubble-name-container {\n display: flex;\n line-height: 1em;\n flex-direction: column;\n justify-content: center;\n flex-grow: 1;\n font-weight: 600;\n margin-left: 4px;\n pointer-events: none;\n position: relative;\n overflow: hidden;\n }\n\n .bubble-name {\n font-size: 13px;\n margin: 2px 0;\n }\n\n .bubble-state {\n font-size: 12px;\n opacity: 0.7;\n margin: 2px 0;\n font-weight: normal;\n }\n\n .bubble-sub-button-container {\n right: 0 !important;\n }\n\n .hidden {\n display: none !important;\n }\n\n @keyframes tap-feedback {\n 0% {transform: translateX(-100%); opacity: 0;}\n 64% {transform: translateX(0); opacity: 0.1;}\n 100% {transform: translateX(100%); opacity: 0;}\n }\n\n .large .bubble-climate-container {\n height: 56px;\n border-radius: var(--bubble-climate-border-radius, var(--bubble-border-radius, 32px));\n }\n\n .large .bubble-icon-container {\n --mdc-icon-size: 24px;\n min-width: 42px !important;\n min-height: 42px !important;\n margin-left: 8px;\n }\n\n .rows-2 .bubble-sub-button-container {\n flex-direction: column;\n gap: 4px !important;\n display: grid !important;\n grid-template-columns: repeat(2, min-content);\n grid-template-rows: repeat(2, 1fr);\n grid-auto-flow: column;\n width: auto;\n }\n\n .rows-2 .bubble-sub-button {\n height: 20px !important;\n }\n",e.elements.iconContainer.appendChild(e.elements.icon),e.elements.iconContainer.appendChild(e.elements.image),e.elements.nameContainer.appendChild(e.elements.name),e.elements.nameContainer.appendChild(e.elements.state);const c=void 0!==o?.attributes?.target_temp_low,d=void 0!==o?.attributes?.target_temp_high;void 0!==o?.attributes?.temperature&&(e.elements.temperatureContainer=(0,n.az)("div","bubble-temperature-container"),l(e.elements.temperatureContainer,"temperature",r),e.elements.buttonContainer.appendChild(e.elements.temperatureContainer)),(c||d)&&(e.elements.targetTemperatureContainer=(0,n.az)("div","bubble-target-temperature-container"),c&&(e.elements.lowTempContainer=(0,n.az)("div","bubble-low-temp-container"),l(e.elements.lowTempContainer,"target_temp_low",r),e.elements.targetTemperatureContainer.appendChild(e.elements.lowTempContainer)),d&&(e.elements.highTempContainer=(0,n.az)("div","bubble-high-temp-container"),l(e.elements.highTempContainer,"target_temp_high",r),e.elements.targetTemperatureContainer.appendChild(e.elements.highTempContainer)),e.elements.buttonContainer.appendChild(e.elements.targetTemperatureContainer)),e.elements.climateCard.appendChild(e.elements.iconContainer),e.elements.climateCard.appendChild(e.elements.nameContainer),e.elements.climateCard.appendChild(e.elements.buttonContainer),e.elements.climateContainer.appendChild(e.elements.colorBackground),e.elements.climateContainer.appendChild(e.elements.climateCard),e.content.innerHTML="",e.content.appendChild(e.elements.climateContainer),e.content.appendChild(e.elements.style),e.content.appendChild(e.elements.customStyle),a(e.elements.iconContainer,e.config),e.cardType="climate"}(e),function(e){"unavailable"===(0,n.y0)(e)?e.card.classList.add("is-unavailable"):e.card.classList.remove("is-unavailable"),(0,n.pr)(e)?e.card.classList.add("is-on"):e.card.classList.remove("is-on")}(e),function(e){if(e.config.styles?.includes("card.querySelector('.bubble-name').innerText"))return;const t=(0,n.oY)(e);t!==e.previousName&&e.elements.name&&(e.elements.name.innerText=t,e.previousName=t,(0,n.GP)(e,e.elements.name,t))}(e),function(e){const t=(0,n.pr)(e),o=(0,n.q7)(e),a=(0,n.gJ)(e),i=e.elements.image.style.backgroundImage,r=e.elements.icon.icon,s=e.elements.icon.style.color;if(""!==a){const t="url("+a+")";i!==t&&(e.elements.image.style.backgroundImage=t),"none"!==e.elements.icon.style.display&&(e.elements.icon.style.display="none"),""!==e.elements.image.style.display&&(e.elements.image.style.display="")}else if(""!==o){r!==o&&(e.elements.icon.icon=o);const n=t?`var(--bubble-icon-background-color, ${se(e)})`:"inherit";s!==n&&(e.elements.icon.style.color=n),""!==e.elements.icon.style.display&&(e.elements.icon.style.display=""),"none"!==e.elements.image.style.display&&(e.elements.image.style.display="none")}else"none"!==e.elements.icon.style.display&&(e.elements.icon.style.display="none"),"none"!==e.elements.image.style.display&&(e.elements.image.style.display="none")}(e),H(e),function(e){const t=(0,n.IL)(e,"temperature");""===t?e.elements.temperatureContainer?.classList.add("hidden"):e.elements.temperatureContainer?.classList.remove("hidden"),t!==e.previousTemp&&(e.previousTemp=t,e.elements.tempDisplay&&(e.elements.tempDisplay.innerText=parseFloat(t).toFixed(1)))}(e),function(e){const t=(0,n.IL)(e,"target_temp_low"),o=e.config.hide_target_temp_low;""===t?e.elements.targetTemperatureContainer?.classList.add("hidden"):e.elements.targetTemperatureContainer?.classList.remove("hidden"),o?e.elements.lowTempContainer?.classList.add("hidden"):e.elements.lowTempContainer?.classList.remove("hidden"),t!==e.previousTargetTempLow&&(e.previousTargetTempLow=t,e.elements.lowTempDisplay&&(e.elements.lowTempDisplay.innerText=parseFloat(t).toFixed(1)))}(e),function(e){const t=(0,n.IL)(e,"target_temp_high");e.config.hide_target_temp_high?e.elements.highTempContainer?.classList.add("hidden"):e.elements.highTempContainer?.classList.remove("hidden"),t!==e.previousTargetTempHigh&&(e.previousTargetTempHigh=t,e.elements.highTempDisplay&&(e.elements.highTempDisplay.innerText=parseFloat(t).toFixed(1)))}(e),N(e,e.content,e.elements.buttonContainer,!0),function(e){q(e),(0,n.jx)(e);const t=(0,n.y0)(e);if(e.previousState!==t&&(e.previousState=t,e.elements.colorBackground.style.backgroundColor=`var(--bubble-climate-background-color, ${se(e)})`),e.config.card_layout,e.elements.hvacModeDropdown,!e.config.styles)return;let o="";try{o=e.config.styles?Function("hass","entity","state","icon","subButtonIcon","getWeatherIcon","card",`return \`${e.config.styles}\`;`)(e._hass,e.config.entity,t,e.elements.icon,e.subButtonIcon,n.X,e.card):""}catch(e){throw new Error(`Error in generating climate custom templates: ${e.message}`)}e.elements.customStyle&&(e.elements.customStyle.innerText=o)}(e)}(this)}var e}setConfig(e){if(e.error)throw new Error(e.error);if("pop-up"===e.card_type){if(!e.hash)throw new Error("You need to define an hash. Please note that this card must be placed inside a vertical_stack to work as a pop-up.")}else if("horizontal-buttons-stack"===e.card_type){var t={};for(var n in e)if(n.match(/^\d+_icon$/)){var o=n.replace("_icon","_link");if(void 0===e[o])throw new Error("You need to define "+o);if(t[e[o]])throw new Error("You can't use "+e[o]+" twice");t[e[o]]=!0}}else if(["button","cover","climate","select","media-player"].includes(e.card_type)&&!e.entity&&"name"!==e.button_type)throw new Error("You need to define an entity");if("select"===e.card_type&&e.entity&&!e.select_attribute&&!e.entity?.startsWith("input_select")&&!e.entity?.startsWith("select"))throw new Error('"Select menu (from attributes)" missing');if(window.entityError)throw new Error("You need to define a valid entity");if("button"===e.card_type){const t={...e},n=t.button_type||"switch";t.tap_action=t.tap_action??{action:"more-info"},t.double_tap_action=t.double_tap_action??{action:"state"===n?"more-info":"toggle"},t.hold_action=t.hold_action??{action:"state"===n?"more-info":"toggle"},this.config=t}else this.config=e;this._hass&&this.updateBubbleCard()}getCardSize(){switch(this.config.card_type){case"pop-up":return-1e5;case"button":case"separator":case"empty-column":case"media-player":case"select":case"climate":return 1;case"cover":return 2;case"horizontal-buttons-stack":return 0}}static getConfigElement(){return function(){if(!le)try{le=Object.getPrototypeOf(customElements.get("ha-panel-lovelace")),ce=le.prototype?.html,de=le.prototype?.css}catch(e){return void console.error(e.message)}customElements.get("bubble-card-editor")||customElements.define("bubble-card-editor",class extends le{setConfig(e){this._config={...e}}static get properties(){return{hass:{},_config:{}}}get _card_type(){return this._config?.card_type||""}get _button_type(){return this._config?.button_type||("pop-up"===this._config?.card_type?"":"switch")}get _entity(){return this._config?.entity||""}get _name(){return this._config?.name||""}get _icon(){return this._config?.icon||""}get _state(){return this._config?.state||""}get _text(){return this._config?.text||""}get _hash(){return this._config?.hash||"#pop-up-name"}get _trigger_entity(){return this._config?.trigger_entity||""}get _trigger_state(){return this._config?.trigger_state||""}get _trigger_close(){return this._config?.trigger_close||!1}get _margin(){return this._config?.margin||"7px"}get _margin_top_mobile(){return this._config?.margin_top_mobile||"0px"}get _margin_top_desktop(){return this._config?.margin_top_desktop||"0px"}get _width_desktop(){return this._config?.width_desktop||"540px"}get _bg_color(){return this._config?.bg_color||""}get _bg_opacity(){return void 0!==this._config?.bg_opacity?this._config?.bg_opacity:"88"}get _bg_blur(){return void 0!==this._config?.bg_blur?this._config?.bg_blur:"10"}get _backdrop_blur(){return void 0!==this._config?.backdrop_blur?this._config?.backdrop_blur:"0"}get _shadow_opacity(){return void 0!==this._config?.shadow_opacity?this._config?.shadow_opacity:"0"}get _rise_animation(){return void 0===this._config?.rise_animation||this._config?.rise_animation}get _auto_close(){return this._config?.auto_close||""}get _close_on_click(){return this._config?.close_on_click||!1}get _close_by_clicking_outside(){return this._config?.close_by_clicking_outside??!0}get _background_update(){return this._config?.background_update||!1}get _icon_open(){return this._config?.icon_open||""}get _icon_close(){return this._config?.icon_close||""}get _icon_down(){return this._config?.icon_down||""}get _icon_up(){return this._config?.icon_up||""}get _open_service(){return this._config?.open_service||"cover.open_cover"}get _close_service(){return this._config?.close_service||"cover.close_cover"}get _stop_service(){return this._config?.stop_service||"cover.stop_cover"}get _auto_order(){return this._config?.auto_order||!1}get _highlight_current_view(){return this._config?.highlight_current_view||!1}get _show_state(){const e="state"===this._config?.card_type;return this._config?.show_state||e}get _show_attribute(){const e="state"===this._config.card_type;return this._config.show_attribute||e}get _show_last_changed(){const e="state"===this._config.card_type;return this._config.show_last_changed||this._config.show_last_updated||e}get _attribute(){return this._config.attribute||!1}get _hide_backdrop(){return this._config.hide_backdrop??!1}get _hide_gradient(){return this._config.hide_gradient||!1}get _hide_play_pause_button(){return this._config.hide?.play_pause_button||!1}get _hide_next_button(){return this._config.hide?.next_button||!1}get _hide_previous_button(){return this._config.hide?.previous_button||!1}get _hide_volume_button(){return this._config.hide?.volume_button||!1}get _hide_power_button(){return this._config.hide?.power_button||!1}get _sub_button(){return this._config.sub_button||""}get _button_action(){return this._config.button_action||""}get _open_action(){return this._config.open_action||""}get _close_action(){return this._config.close_action||""}get _show_header(){return this._config.show_header??!0}get _slide_to_close_distance(){return this._config.slide_to_close_distance??400}get _slider_live_update(){return this._config.slider_live_update??!1}get _cover_background(){return this._config.cover_background??!1}get _tap_action(){return{action:this._config.tap_action?.action||"more-info",navigation_path:this._config.tap_action?.navigation_path||"",url_path:this._config.tap_action?.url_path||"",service:this._config.tap_action?.service||"",target_entity:this._config.tap_action?.target?.entity_id||"",data:this._config.tap_action?.data||""}}get _double_tap_action(){return{action:this._config.double_tap_action?.action||"toggle",navigation_path:this._config.double_tap_action?.navigation_path||"",url_path:this._config.double_tap_action?.url_path||"",service:this._config.double_tap_action?.service||"",target_entity:this._config.double_tap_action?.target?.entity_id||"",data:this._config.double_tap_action?.data||""}}get _hold_action(){return{action:this._config.hold_action?.action||"toggle",navigation_path:this._config.hold_action?.navigation_path||"",url_path:this._config.hold_action?.url_path||"",service:this._config.hold_action?.service||"",target_entity:this._config.hold_action?.target?.entity_id||"",data:this._config.hold_action?.data||""}}get _selectable_attributes(){return["source_list","sound_mode_list","hvac_modes","fan_modes","swing_modes","preset_modes","effect_list"]}render(){if(!this.hass)return ce``;const t=document.querySelector("body > home-assistant").shadowRoot.querySelector("hui-dialog-edit-card").shadowRoot.querySelector("ha-dialog > div.content > div.element-preview");if("sticky"!==t.style.position&&(t.style.position="sticky",t.style.top="0"),!this.listsUpdated){const s=e=>({label:e,value:e});this.allEntitiesList=Object.keys(this.hass.states).map(s),this.lightList=Object.keys(this.hass.states).filter((e=>"light"===e.substr(0,e.indexOf(".")))).map(s),this.sensorList=Object.keys(this.hass.states).filter((e=>"sensor"===e.substr(0,e.indexOf(".")))).map(s),this.binarySensorList=Object.keys(this.hass.states).filter((e=>"binary_sensor"===e.substr(0,e.indexOf(".")))).map(s),this.coverList=Object.keys(this.hass.states).filter((e=>"cover"===e.substr(0,e.indexOf(".")))).map(s),this.mediaPlayerList=Object.keys(this.hass.states).filter((e=>"media_player"===e.substr(0,e.indexOf(".")))).map(s),this.climateList=Object.keys(this.hass.states).filter((e=>"climate"===e.substr(0,e.indexOf(".")))).map(s),this.inputSelectList=Object.keys(this.hass.states).filter((e=>{const t=this.hass.states[e],n=e.substr(0,e.indexOf(".")),o="input_select"===n||"select"===n,a=this._selectable_attributes.some((e=>t.attributes?.[e]));return o||a})).map(s),this.attributeList=Object.keys(this.hass.states[this._entity]?.attributes||{}).map((e=>{let t=this.hass.states[this._entity];return{label:this.hass.formatEntityAttributeName(t,e),value:e}})),this.cardTypeList=[{label:"Button (Switch, slider, ...)",value:"button"},{label:"Cover",value:"cover"},{label:"Climate",value:"climate"},{label:"Empty column",value:"empty-column"},{label:"Horizontal buttons stack",value:"horizontal-buttons-stack"},{label:"Media player",value:"media-player"},{label:"Pop-up",value:"pop-up"},{label:"Select",value:"select"},{label:"Separator",value:"separator"}],this.buttonTypeList=[{label:"Switch",value:"switch"},{label:"Slider",value:"slider"},{label:"State",value:"state"},{label:"Name / Text",value:"name"}],this.tapActionTypeList=[{label:"More info",value:"more-info"},{label:"Toggle",value:"toggle"},{label:"Navigate",value:"navigate"},{label:"URL",value:"url"},{label:"Call service",value:"call-service"},{label:"Assist",value:"assist"},{label:"No action",value:"none"}],this.listsUpdated=!0}const n=this.allEntitiesList,o=(this.lightList,this.sensorList,this.coverList),a=this.cardTypeList,i=this.buttonTypeList,r="name"===this._config?.button_type;if("pop-up"===this._config?.card_type){const l=this._config?.trigger??[];return ce` +
+ ${this.makeDropdown("Card type","card_type",a)} + + +

+ + Header settings +

+
+ + +
+ +
+
+ You can completely hide the pop-up header, including the close button. To close it when hidden, either make a long swipe within the pop-up or click outside of it. +
+
+ ${this.makeDropdown("Button type","button_type",i)} + ${this.makeDropdown("Optional - Entity","entity",n,r)} + + ${this.makeDropdown("Optional - Icon","icon")} + ${this.makeShowState()} +
+ +

+ + Tap action on icon +

+
+ ${this.makeTapActionPanel("Tap action")} + ${this.makeTapActionPanel("Double tap action")} + ${this.makeTapActionPanel("Hold action")} +
+
+ +

+ + Tap action on button +

+
+ ${this.makeTapActionPanel("Tap action",this._button_action,"name"!==this._config.button_type?"state"===this._config.button_type?"more-info":"toggle":"none","button_action")} + ${this.makeTapActionPanel("Double tap action",this._button_action,"name"!==this._config.button_type?"state"===this._config.button_type?"more-info":"toggle":"none","button_action")} + ${this.makeTapActionPanel("Hold action",this._button_action,"name"!==this._config.button_type?"more-info":"none","button_action")} +
+
+ ${this.makeSubButtonPanel()} +
+
+
+ +

+ + Pop-up settings +

+
+ + + + +
+ +
+
+ + +
+ +
+
+ + +
+ +
+
+ Background updates are only recommended if you encounter issues with certain cards within your pop-up. +
+
+ +

+ + Pop-up trigger +

+
+ this._conditionChanged(e)} + > + + + The pop-up will be opened when ALL conditions are fulfilled. For example you can open a "Security" pop-up with a camera when a person is in front of your house. You can also create a toggle helper (input_boolean) and trigger its opening/closing in an automation. + +
+
+ +

+ + Pop-up open/close action +

+
+ ${this.makeTapActionPanel("Open action",this._config,"none")} + ${this.makeTapActionPanel("Close action",this._config,"none")} + This allows you to trigger an action on pop-up open/close. +
+
+ +

+ + Styling options +

+
+ ${this.makeLayoutOptions()} + +

+ + Pop-up styling +

+
+ + + + + + + + + + + +
+ +
+
+ Set this toggle to true on the first pop-up of your main dashboard to hide the darker backdrop behind all pop-ups. You can add a blurred effect to it by changing Optional - Backdrop blur just below, but be aware that this can slow down your dashboard when opening pop-ups. It is now set to 0 for that reason. +
+
+ ${this.makeStyleEditor()} +
+
+ + This card allows you to convert any vertical stack into a pop-up. Each pop-up is hidden by default and can be opened by targeting its link (e.g., '#pop-up-name'), with any card that supports the navigate action, or with the horizontal buttons stack that is included. +

Important: This card must be placed within a vertical stack card at the topmost position to function properly. To avoid misalignment with your view, place vertical stacks/pop-ups after all other dashboard cards. It should be called from the same view to work. +

You can also watch this video that explains how to create your first pop-up. +
+ Since v1.7.0, the optimized mode has been removed to ensure stability and to simplify updates for everyone. However, if your pop-up content still appears on the screen during page loading, you can install this similar fix. + ${this.makeVersion()} +
+ `}if("button"===this._config?.card_type)return ce` +
+ ${this.makeDropdown("Card type","card_type",a)} + ${this.makeDropdown("Button type","button_type",i)} + ${this.makeDropdown("slider"!==this._button_type?"Entity (toggle)":"Entity (light, media_player, cover or input_number)","entity",n,r)} + +

+ + Button settings +

+
+ + ${this.makeDropdown("Optional - Icon","icon")} + ${this.makeShowState()} + + +
+ +
+
+ By default, sliders are updated only on release. You can toggle this option to enable live updates while sliding. +
+
+ +

+ + Tap action on icon +

+
+ ${this.makeTapActionPanel("Tap action")} + ${this.makeTapActionPanel("Double tap action")} + ${this.makeTapActionPanel("Hold action")} +
+
+ +

+ + Tap action on button +

+
+ ${this.makeTapActionPanel("Tap action",this._button_action,"name"!==this._config.button_type?"state"===this._config.button_type?"more-info":"toggle":"none","button_action")} + ${this.makeTapActionPanel("Double tap action",this._button_action,"name"!==this._config.button_type?"state"===this._config.button_type?"more-info":"toggle":"none","button_action")} + ${this.makeTapActionPanel("Hold action",this._button_action,"name"!==this._config.button_type?"more-info":"none","button_action")} +
+
+ +

+ + Styling options +

+
+ ${this.makeLayoutOptions()} + ${this.makeStyleEditor()} +
+
+ ${this.makeSubButtonPanel()} + This card allows you to control your entities. ${"slider"===this._config.button_type?"Supported entities: Light (brightness), media player (volume), cover (position), fan (percentage), climate (temperature), input number and number (value). To access color / control of an entity, simply tap on the icon.":""} + ${this.makeVersion()} +
+ `;if("separator"===this._config?.card_type)return ce` +
+ ${this.makeDropdown("Card type","card_type",a)} + + ${this.makeDropdown("Icon","icon")} + +

+ + Styling options +

+
+ ${this.makeLayoutOptions()} + ${this.makeStyleEditor()} +
+
+ ${this.makeSubButtonPanel()} + This card is a simple separator for dividing your pop-up into categories / sections. e.g. Lights, Devices, Covers, Settings, Automations... + ${this.makeVersion()} +
+ `;if("horizontal-buttons-stack"===this._config?.card_type){if(!this.buttonAdded)for(this.buttonAdded=!0,this.buttonIndex=0;this._config[this.buttonIndex+1+"_link"];)this.buttonIndex++;function c(){this.buttonIndex++,this.requestUpdate()}return ce` +
+ ${this.makeDropdown("Card type","card_type",a)} +
+ ${this.makeButton()} +
+ + + +
+ +
+
+ +

+ + Styling options +

+
+ +

+ + Horizontal buttons stack styling +

+
+ + + + +
+ +
+
+ + +
+ +
+
+ + +
+ +
+
+
+
+ ${this.makeStyleEditor()} +
+
+ This card is the companion to the pop-up card, allowing you to open the corresponding pop-ups. It also allows you to open any page of your dashboard. In addition, you can add your motion sensors so that the order of the buttons adapts according to the room you just entered. This card is scrollable, remains visible and acts as a footer. + ${this.makeVersion()} +
+ `}if("cover"===this._config?.card_type)return ce` +
+ ${this.makeDropdown("Card type","card_type",a)} + ${this.makeDropdown("Entity","entity",o)} + +

+ + Cover settings +

+
+ + ${this.makeDropdown("Optional - Open icon","icon_open")} + ${this.makeDropdown("Optional - Closed icon","icon_close")} + ${this.makeShowState()} +
+
+ +

+ + Custom services +

+
+ + + +
+
+ +

+ + Tap action on icon +

+
+ ${this.makeTapActionPanel("Tap action")} + ${this.makeTapActionPanel("Double tap action")} + ${this.makeTapActionPanel("Hold action")} +
+
+ +

+ + Styling options +

+
+ ${this.makeLayoutOptions()} + +

+ + Cover styling +

+
+ ${this.makeDropdown("Optional - Arrow down icon","icon_down")} + ${this.makeDropdown("Optional - Arrow up icon","icon_up")} +
+
+ ${this.makeStyleEditor()} +
+
+ ${this.makeSubButtonPanel()} + This card allows you to control your covers. + ${this.makeVersion()} +
+ `;if("media-player"===this._config?.card_type)return ce` +
+ ${this.makeDropdown("Card type","card_type",a)} + ${this.makeDropdown("Entity","entity",this.mediaPlayerList)} + +

+ + Media player settings +

+
+ + ${this.makeDropdown("Optional - Icon","icon")} + ${this.makeShowState()} +
+
+ +

+ + Display/hide buttons +

+
+ + +
+ +
+
+ + +
+ +
+
+ + +
+ +
+
+ + +
+ +
+
+ + +
+ +
+
+
+
+ +

+ + Tap action on icon +

+
+ ${this.makeTapActionPanel("Tap action")} + ${this.makeTapActionPanel("Double tap action")} + ${this.makeTapActionPanel("Hold action")} +
+
+ +

+ + Styling options +

+
+ ${this.makeLayoutOptions()} + +

+ + Media player styling +

+
+ + +
+ +
+
+
+
+ ${this.makeStyleEditor()} +
+
+ ${this.makeSubButtonPanel()} + This card allows you to control a media player. You can tap on the icon to get more control. + ${this.makeVersion()} +
+ `;if("empty-column"===this._config?.card_type)return ce` +
+ ${this.makeDropdown("Card type","card_type",a)} + +

+ + Styling options +

+
+ ${this.makeLayoutOptions()} +
+
+ Just an empty card to fill any empty column. + ${this.makeVersion()} +
+ `;if("select"===this._config?.card_type){const d=this._config.entity,u=(d?.startsWith("input_select")||d?.startsWith("select")||this._config.select_attribute,this.hass.states[d]?.attributes),b=this._selectable_attributes.some((e=>u?.[e])),p=Object.keys(this.hass.states[d]?.attributes||{}).map((e=>{let t=this.hass.states[d];return{label:this.hass.formatEntityAttributeName(t,e),value:e}})).filter((e=>this._selectable_attributes.includes(e.value)));return ce` +
+ ${this.makeDropdown("Card type","card_type",a)} + ${this.makeDropdown("Entity","entity",this.inputSelectList)} + ${b?ce` +
+ +
+ `:""} + +

+ + Button settings +

+
+ + ${this.makeDropdown("Optional - Icon","icon")} + ${this.makeShowState()} +
+
+ +

+ + Tap action on icon +

+
+ ${this.makeTapActionPanel("Tap action")} + ${this.makeTapActionPanel("Double tap action")} + ${this.makeTapActionPanel("Hold action")} +
+
+ +

+ + Styling options +

+
+ ${this.makeLayoutOptions()} + ${this.makeStyleEditor()} +
+
+ ${this.makeSubButtonPanel()} + + This card allows you to have a select menu for your + input_select, select entities, and + any other entities that have attribute lists like + source_list, sound_mode_list, + hvac_modes, fan_modes, + swing_modes, preset_modes, or + effect_list. + + ${this.makeVersion()} +
+ `}if("climate"===this._config?.card_type){if("climate"===this._config.card_type&&!this.climateSubButtonsAdded&&this._config.entity){const h=this.hass.states[this._config.entity]?.attributes?.hvac_modes;this._config.sub_button&&0!==this._config.sub_button.length||(this._config.sub_button=[h?{name:"HVAC modes menu",select_attribute:"hvac_modes",state_background:!1,show_arrow:!1}:null].filter(Boolean)),this.climateSubButtonsAdded=!0}return ce` +
+ ${this.makeDropdown("Card type","card_type",a)} + ${this.makeDropdown("Entity","entity",this.climateList)} + +

+ + Climate settings +

+
+ + ${this.makeDropdown("Optional - Icon","icon")} + ${this.makeShowState()} + ${this.hass.states[this._config.entity]?.attributes?.target_temp_low?ce` + + +
+ +
+
+ `:""} + ${this.hass.states[this._config.entity]?.attributes?.target_temp_high?ce` + + +
+ +
+
+ `:""} + + +
+ +
+
+
+
+ +

+ + Tap action on icon +

+
+ ${this.makeTapActionPanel("Tap action")} + ${this.makeTapActionPanel("Double tap action")} + ${this.makeTapActionPanel("Hold action")} +
+
+ +

+ + Styling options +

+
+ ${this.makeLayoutOptions()} + ${this.makeStyleEditor()} +
+
+ ${this.makeSubButtonPanel()} + This card allows you to control your climate entities. You can also add a sub-button that display a select menu for your climate modes (check if you have "Select menu" available when you create a new sub-button). + ${this.makeVersion()} +
+ `}return this._config?.card_type?void 0:ce` +
+ ${this.makeDropdown("Card type","card_type",a)} + You need to add a card type first. Please note that in some cases, a page refresh might be needed after exiting the editor. + +

The Bubble Card ${e} changelog is available here.

+
+

If you have an issue or a question you can find more details in the GitHub documentation. You can also find useful resources and help in these links.

+
+ + + + +
+
+

I dedicate most of my spare time to making this project the best it can be. So if you appreciate my work, any donation would be a great way to show your support.

+
+ + +
+

Looking for more advanced examples? Check out my Patreon for exclusive custom styles and templates!

+ +

Thank you! 🍻

+ ${this.makeVersion()} +
+ `}makeLayoutOptions(){return ce` + + +

+ + Layout options for sections +

+
+ + +
+
+ `}makeShowState(e=this._config,t="",n=!1,o){const a=e?.entity??this._config.entity??"",i="name"===this._config.button_type,r=a?.startsWith("input_select")||a?.startsWith("select")||e.select_attribute,s=Object.keys(this.hass.states[a]?.attributes||{}).map((e=>{let t=this.hass.states[a];return{label:this.hass.formatEntityAttributeName(t,e),value:e}}));return ce` + ${"sub_button"!==n?ce` + + +
+ +
+
+ `:""} + ${"sub_button"===n?ce` + + +
+ +
+
+ `:""} + ${"sub_button"===n&&(e?.show_background??1)?ce` + + +
+ +
+
+ `:""} + ${"sub_button"===n&&(e?.state_background??1)&&a.startsWith("light")?ce` + + +
+ +
+
+ `:""} + ${"sub_button"!==n&&a.startsWith("light")?ce` + + +
+ +
+
+ `:""} + + +
+ +
+
+ ${"sub_button"!==n?ce` + + +
+ +
+
+ `:""} + + +
+ +
+
+ + +
+ +
+
+ + +
+ +
+
+ + +
+ +
+
+ ${e?.show_attribute?ce` +
+ +
+ `:""} + ${"sub_button"===n&&r?ce` + + +
+ +
+
+ `:""} + `}makeDropdown(e,t,n,o){return e.includes("icon")||e.includes("Icon")?ce` +
+ +
+ `:ce` +
+ +
+ `}makeTapActionPanel(e,t=this._config,n,o,a=this._config){this.hass;const i="Tap action"===e?"mdi:gesture-tap":"Double tap action"===e?"mdi:gesture-double-tap":"Hold action"===e?"mdi:gesture-tap-hold":"mdi:gesture-tap",r="Tap action"===e?t.tap_action:"Double tap action"===e?t.double_tap_action:"Hold action"===e?t.hold_action:"Open action"===e?t.open_action:t.close_action,s="Tap action"===e?"tap_action":"Double tap action"===e?"double_tap_action":"Hold action"===e?"hold_action":"Open action"===e?"open_action":"close_action",l=t===this._config;return n||(n=l&&"Tap action"===e?"name"!==this._config.button_type?"more-info":"none":l?"name"!==this._config.button_type?"toggle":"none":""),ce` + +

+ + ${e} +

+
+
+ +
+ ${"navigate"===r?.action?ce` +
+ +
+ `:""} + ${"url"===r?.action?ce` +
+ +
+ `:""} + ${"call-service"===r?.action?ce` +
+ +
+
+ {this._tapActionValueChange(a,{[s]:{target:{entity_id:e.detail.value}}},o)}:""}" + > +
+ + +
+ +
+
+ `:""} + ${"call-service"===r?.action&&r?.service?ce` + For now, you still need to switch to the YAML editor if you want to add data: to your service. + `:""} +
+
+ `}makeSubButtonPanel(){const e=this._config?.sub_button?.map(((e,t)=>{if(!e)return;const n="sub_button."+t+".",o=e.entity??this._config.entity,a=o?.startsWith("input_select")||o?.startsWith("select")||e.select_attribute,i=this.hass.states[o]?.attributes,r=this._selectable_attributes.some((e=>i?.[e])),s=Object.keys(this.hass.states[o]?.attributes||{}).map((e=>{let t=this.hass.states[o];return{label:this.hass.formatEntityAttributeName(t,e),value:e}})).filter((e=>this._selectable_attributes.includes(e.value))),l=e.visibility??[];return ce` + +

+ + ${this._config.sub_button[t]?"Button "+(t+1)+(e.name?" - "+e.name:""):"New button"} + + ${t>0?ce``:""} + ${t + + `:""} +

+
+ +

+ + Button settings +

+
+
+ +
+ ${r?ce` +
+ +
+ `:""} +
+ +
+
+ +
+ ${this.makeShowState(e,n,"sub_button",t)} +
+
+ +

+ + Tap action on button +

+
+ ${this.makeTapActionPanel("Tap action",e,"more-info","sub_button",t)} + ${this.makeTapActionPanel("Double tap action",e,"none","sub_button",t)} + ${this.makeTapActionPanel("Hold action",e,"none","sub_button",t)} +
+
+ +

+ + Visibility +

+
+ this._conditionChanged(e,t,"sub_button")} + > + + + The sub-button will be shown when ALL conditions are fulfilled. If no conditions are set, the sub-button will always be shown. + +
+
+
+
+ `}));return ce` + +

+ + Sub-buttons editor +

+
+ ${e} + + + Add new customized buttons fixed to the right. + These buttons can also display a select menu for your + input_select, select entities, and + any other entities that have attribute lists like + source_list, sound_mode_list, + hvac_modes, fan_modes, + swing_modes, preset_modes, or + effect_list. + +
+
+ `}makeButton(){let e=[];for(let t=1;t<=this.buttonIndex;t++)e.push(ce` +
+ +

+ + Button ${t} ${this._config[t+"_name"]?"- "+this._config[t+"_name"]:""} + +

+
+ + + + + + In fact you can also get the auto order with any entity type, for example you can add light groups to these fields and the order will change based on the last changed states. +
+
+
+ `);return e}makeVersion(){return ce` +

+ Bubble Card + + ${e} + +

+ `}removeButton(e){delete this._config[e+"_name"],delete this._config[e+"_icon"],delete this._config[e+"_link"],delete this._config[e+"_entity"],delete this._config[e+"_pir_sensor"];for(let t=e;t +

+ + Custom styles / Templates +

+
+
+ +
+ + For advanced users, you can edit the CSS style of this card in this editor. More information here. You don't need to add styles: |, it will be added automatically. You can also add templates. +

Looking for more advanced examples? Check out my Patreon for exclusive custom styles and advanced templates, this is also the best way to show your support to my project! +
+
+ + `}_valueChanged(e){const t=e.target,o=e.detail;let a;if("HA-SWITCH"===t.tagName?a=t.checked:void 0!==t.value&&(a="string"==typeof t.value?t.value.replace(",","."):t.value),"string"==typeof a&&(a.endsWith(".")||"-"===a))return;const{configValue:i,checked:r}=t;if(i){const n=i.split(".");let r=this._config;for(let e=0;ethis._arrayValueChange(e,t,o)),10);this._config[o]=this._config[o]||[];let a=[...this._config[o]];a[e]=a[e]||{},a[e]={...a[e],...t},this._config[o]=a,(0,n.BX)(this,"config-changed",{config:this._config}),this.requestUpdate()}_tapActionValueChange(e,t,o){if(void 0===o)for(let e in t)this._config[e]={...this._config[e],...t[e]};else{this._config[o]=this._config[o]||(o?{}:[]);let n=Array.isArray(this._config[o])?[...this._config[o]]:{...this._config[o]};if(Array.isArray(n)){n[e]=n[e]||{};let o={...n[e]};for(let e in t)o[e]=e in o?{...o[e],...t[e]}:t[e];n[e]=o}else for(let e in t)n.hasOwnProperty(e)?n[e]={...n[e],...t[e]}:n[e]=t[e];this._config[o]=n}(0,n.BX)(this,"config-changed",{config:this._config}),this.requestUpdate()}_conditionChanged(e,t,o){if(e.stopPropagation(),o){this._config[o]=this._config[o]||[];let n=[...this._config[o]];n[t]=n[t]||{};const a=e.detail.value;n[t]={...n[t],visibility:a},this._config[o]=n}else if("pop-up"===this._config.card_type){const t=e.detail.value;this._config={...this._config,trigger:t}}(0,n.BX)(this,"config-changed",{config:this._config}),this.requestUpdate()}static get styles(){return de` + div { + display: grid; + grid-gap: 12px; + } + + ha-combo-box[label="Card type"]::after { + content: ""; + position: relative; + background-color: var(--background-color, var(--secondary-background-color)); + display: block; + width: 100%; + height: 1px; + top: 12px; + margin-bottom: 12px !important; + opacity: 0.6; + } + + #add-button { + margin: 0 0 14px 0; + color: var(--text-primary-color); + width: 100%; + height: 32px; + border-radius: 16px; + border: none; + background-color: var(--accent-color); + cursor: pointer; + } + + p { + margin-bottom: 4px; + } + + ha-icon, a, p, button, h4 { + color: var(--primary-text-color) !important; + } + + hr { + display: inline-block; + width: 100%; + border: 1px solid var(--background-color, var(--secondary-background-color)); + opacity: 0.6; + margin: 8px 0 0 0; + } + + code { + background: var(--accent-color); + background-blend-mode: darken; + padding: 2px 4px; + border-radius: 6px; + } + + .button-header { + height: auto; + width: 100%; + display: inline-flex; + align-items: center; + margin: 0 8px; + } + + .button-number { + display: inline-flex; + width: auto; + } + + .remove-button { + display: inline-flex; + border-radius: 50%; + width: 24px; + height: 24px; + text-align: center; + line-height: 24px; + vertical-align: middle; + cursor: pointer; + } + + .content { + margin: 12px 4px 14px 4px; + } + + h4 > ha-icon { + margin: 8px; + } + + ha-textfield { + width: 100%; + } + + h3 { + margin: 4px 0; + } + + .code-editor { + overflow: scroll; + } + + .icon-button { + background: var(--accent-color); + border: none; + cursor: pointer; + padding: 8px; + margin: 0; + border-radius: 32px; + font-weight: bold; + } + + .icon-button.header { + background: none; + float: right; + padding: 0; + margin: 0 8px; + } + + ha-card-conditions-editor { + margin-top: -12px; + } + `}})}(),document.createElement("bubble-card-editor")}getLayoutOptions(){let e=1;"pop-up"===this.config.card_type?e=0:"horizontal-buttons-stack"===this.config.card_type?e=1:["cover"].includes(this.config.card_type)&&(e=2);let t=4;return"pop-up"===this.config.card_type?t=0:"horizontal-buttons-stack"===this.config.card_type&&(t=4),{grid_columns:this.config.columns??t,grid_rows:this.config.rows??e}}}customElements.define("bubble-card",ue),window.customCards=window.customCards||[],window.customCards.push({type:"bubble-card",name:"Bubble Card",preview:!1,description:"A minimalist card collection with a nice pop-up touch.",documentationURL:"https://github.com/Clooos/Bubble-Card/"}),console.info(`%c Bubble Card %c ${e} `,"background-color: #555;color: #fff;padding: 3px 2px 3px 3px;border-radius: 14px 0 0 14px;font-family: DejaVu Sans,Verdana,Geneva,sans-serif;text-shadow: 0 1px 0 rgba(1, 1, 1, 0.3)","background-color: #506eac;color: #fff;padding: 3px 3px 3px 2px;border-radius: 0 14px 14px 0;font-family: DejaVu Sans,Verdana,Geneva,sans-serif;text-shadow: 0 1px 0 rgba(1, 1, 1, 0.3)")})()})(); \ No newline at end of file diff --git a/config/www/community/Bubble-Card/bubble-card.js.gz b/config/www/community/Bubble-Card/bubble-card.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..2479876744e75f5f3224d7abe922e121153d9391 GIT binary patch literal 40863 zcmV(#K;*w4iwFpIdR%7$|6+AwVr*qCV_|Y+E^2cC?7i)J+%~cxd@C&;k3vT5cDHOf zneNcNiQ`N%#~EkGnaN~5I&G?(k{D5B56QNyk@|V|TJ{R|-~KnOi=-6(kc zeOR84!jr;{hFI{6p!B@$7GZ|7s!uWNXE32oMWdn&^RoCUF3(-(-y9E{e5mvb>t_MM zzKl~BAp7euFQV_#5~?rH!~DzAop_@>T1R2&9(w-dk@sop`EggJLqny!tI~sJrCAs_ z`PoV6ItST-;}4vJnElDwpYp)*oNbg8QO974Bwj}D#DCCZ46N(}|ENdTS=l51v)y|< zXiO5+gK6R;iAI-Uxjc98|9y3E|4fFf^d);aK89u)a4lzI%{i=d+ByWQ!W|CfKC$sW z^oJ9~%2k}Mva8WqR6fZr*PAk0y(q7f$X#X2&1IC9Bk|*D65$^Yi~f*j>nJa;{~9Kn z$j!W&o9m={dz%{&v%l|#LG0$V7`-iDCgC<6t=!VTSzJtUUB~{_PxK?(dRu?;`^nT@ zEH)`D_La82{d&PiZ`K*Kwpd7MdGwD>oJWfVE__2Wv}yuy^VQ#|`BNzL^fe6H|HBWI z5U$tB^^0YmB}tr~Jv}{*mZksQGs*+Bd|3i3IsqK|e@rQ@4Ad|>S3i9D z&5razy8a!r;9N#ZNp@_z{kCsRi1~e;V0)|dKRrXgJ*10OxJ(__C*_A2(AMpvxh%Q}};k&2H(F|Wl4$at|t93i|cSy6%g{TdRiWn$1G55AS` ziIzP%p7R#@K!QCW_qsq(*Y)*+V^2%kR@i|FIE~LF+;}%^(0lG)Ia(%RQ9O$a_?4w) z7^j8nM60;Wa$LC4h}EW!uJh=1oNa(2G3oZ!)sq5I+#kb=hMz?_s1{DZrp3>20cJsV zdwa8m?JeCTNf4y-o9#56u_|Ez!yHg0O{|90#D0;ZOCv$8Uhl(fj9*(8m%J0ND`!g+f`hwk%O~tg`OX7 zePuZX5lR$dv@T<&zH?5QjvoR0O2gOj8BQeM+V>`ii*$Yt=+E+N+%J=G8PN>8h#22- zV7jIvf4wQr^-RCnWRfjIocZCB&AH>>aLCgXxM;m@%Ixeci5L@NgaH#6CdrE^e~lZ1 zbDmvBKpxP1n3j(3unGV#qB@IsH7x;R4X|c%AUNGHOz#2h0JBH(gyl|%Ov38`dM}c~ zG`^%B2M$0Oo^lX_(SySAfjuG10siE=B@Ql-T3*SldPnFZy11W@DBbw-W{E7=bNnau+*XB8pV7PO*hYT`x_gh^RB5LFQf zhDgZwli(&y!u)c9D-kx9#X3x*Wa?b5;%RXnM+wYin80SslISO-Y|4z`fhFV66PU3f z{&4)0I1TgbMG>V%mQMu^Trn^}UUquwz-lOF#Z`kXW zd@=a=NzRcE6y`FjDB0P;sG2Ak| zTsK=?o<}e@%Q#;qqW8onL=p#dnO#IZs^6=x^eo8d_kreXyUt}yX3%rByqz}j}}f}jBiPgh~iOY$!V(l4Vt6#ZRA86+jR zg+)_oF{2Cz8MFm$U`$yqcu-jap%jz{+^CRPei^+fhh;V_)={)P#}ZJ$$m{vw_jYIZ z;gyL_S*o_Wcu~&lA)`SylvpsdPo)&Wq&GQAqK%1X$x1zuCYUl`6pUieHzjdK^ThJG z=cQzzYEBowmnzEqU*`8_Rxj7&xS@Yg!83>Ym*%U*Ny)QRuT*eWQ9G7+% zXL-0j7t1XK7DgoID>7-#&WDnmir*Kpl358!jvwQRc(Km2C2V;>sH_;J4o~9*Y2h@7 zwF+H{)AgoYoUro*pW-~cLh9yu$k<8{Pu0ba7=qoBmq|C5CjvEjcs+#02`g6Q7EuBM z2}cv1vWFzToq&iB8~aL>!$n>%ci=saPdhx{lJO^0Ie}DYy56T9{}PTcP@MB-_5rDI z$O{*^xrnX-_W(Hw7}X_iQi5bovT{fXjt?9?KE386g&6~pdB}xOSagNpM%C;Ca4|!t z2?GIGe-mGV?8S?&*FXiZt%Z5)_<01|JjW#a4buNIN+YpD06th+9S_#U&M~i&I%xoC~HHpQT~4D9W6!$JH^!r!g-E)Rmv9Bc!E7 z+uBK%l)6|zMWSoI*B9|6Q1F6|Z5)wNk^miU_+q#^kAZKWKmkC`5Ry|klQEi{N`3Z` zhwwE=KOLV5O+t!Dvds!)qa+J~A-oQko6V)XLRpIA)9ftps8B(Z5bIyDd&7Etr0Nm0 zS}rMH57h3pzJs!nF<3)hgwF}^>Ev3}GL&Wo)Jh=7rRLHshfgS+^1Qx1@k&hyk&`1mEDnbd6?^`Hw4C53I+*i(4 z+{Wd%xAE<*o4m}9=lGv#@-oC<;qlaQ)Y~2DdK|BzI88^t(e!UL{lRD&pV*cmoD)~{ zjzag`K1=v>Q~=#kN_`g#yIq#Nj-C|7U$NPfBqD;PgIgKc-{elR)wMUn*3uxF;oI~q zZM^z9-b}!Xf>b<3LeAe^cQ}0cAO7)y=gatS__tiYPwFf8Dsvg;t3`>gq+y-7DM0R8q7=$r;h^vQg_}JI4O!-pWe!-DoaT9O zO2P#7P5o-s42X2)M`#>ByEXRq_xHlN!$yd&1KB*HX^`Fv!_~@l;$p~a zOo30Y@%j!+<2z@>-lB^Uh@-10f5M&@qr447YlCy@Qn@uSG-URBG3fH8p5k7&2 zHM$sKCc(?Y!y}*mos5rZ6$)Y}AJ85!z+fqcxo=A)gHvZ=?c>?Hd4F_}f zb3WHV)qTO&#^_DyS6J{F%z$TDTB?fAqt{{Lz7nOC_CLADpNhAiKu;t*-@BC6d<_CO3O(>!JQhJJK4D@Kf6rvKQg%b?TxRTw(jnxqpY(i)<+B9-tnzD~w%{qJ zVY&bSn2eXD_y;dFoa0fPE|bkFDq#G#x7p*dbkSo?Gu^UOh`3?VE!pfE3izq zN0=ngR_ZlB!oq?rO7Of&Pll`SAnQ?Z2*(#fpsN4JS+j$ChNNcd-IOrLut|RVk zS6{5+*8>6@IMq0YORoxfretBd~|V8cT}*XSAS0j(m%l2qU~U0064f&OX5FQ zh=?g(GyiU8$fe6e==(C74$|x@57&lLmtk=+r00w202x4-56|$?lGLZN0o}p+gE9}( zg3W|KI7v{w26n%tJO16^VDS0+ji;nyhXzBQE>-n*Z$F7n-&^zB-nb_+GE4y16`BrW zVxGejCoFF_sIggW-t5)`W^;=r;@fKOD9|C7rIcw@o^^`5@ znnp$WrI`0`5Or>hbtBZa`*O8Hy+N*Yhr1Ig;o(+=ZwjuHM@9Tk*o~_#D)t|s9-0CG z6*sj#rnw(*&AfUbr5~x?Ei2tOVi_-xW1#w5eieNGSO>GQV?bhW1v=vKq^&j<3WS2NfM^Yodynw zZ)XvnjNvH3K8A+y_ErrSF@f7Ai|Nh<`U}z)EgW@&nOtyY+P&q6J-R zp&^l^MQhSeN99-87|Or~;blY@2bG3wbtwbfff*l=ihSAzAh_X0r#IW`nZ#iB1V!D{ zPX%D3QAC}+H5x~d$}-tZ0bNtiVAmUzo~dv~672r|o;fq3%;zV+fM7gYMX+^7;!YX! zP`MbF1F3TFjeR(pP0N?*G1`9^0gA41h-)B<3@;1utp5Be6|hOOnTl%WVU@85&MG4X zq$6OUuMbBLMh}=dS!uOH@Ka;fl+aNn3>ef2%4xXTg;gYGVRQm6Li%N%m z52-W^Zh)A}?QAa`RSMZ~oPzVqob!Y^&p>0Fx=esYw4<<(s@KQ_@YZ3KZBFnasZKdZ zZCm_3&xBU|4FfO@eb&`!x-IL4a-s1r zsZQ|67tjARLi@w?EIx%p1P+$r|Hl^K^$f{v7*eaI zxbD8v4$i8z3Cxs%E8k79)uEIi(KCW;Koq_)7)xklMiqHuxw_Al+&Efp@*>N*!aq=H zIAYz~->;J5W>U_R=<;cu#VP7YY`H)e7nKx-uPK#C+7$GdH0}7Vq;+HhGH#kO7~4X+ zJsKnV-mFon?RCVKyYl2`=m#GG00gc<*C(*SG+R*b5SaMDxXKS8xwzsjk-bg=v*+jf zL3Rr4o?XR?wL@FBVN2ImlXrtplk^I>rN^>Lbh(lEf;8EwiEJ9QZLZNEBZ+LyH6()K zH=ol~TmIWw%4y}>FkK~44uZdyLi{_1eYW&-6!_F!*o*M*3%rd%sW!FG-)8MtYCla^ zqZ7Q^(XxS1GB{vpRAMJoOW!EBvw^KnmouV(LChvK-z-b^wuhS??KAvMCV;eh+W`TT zz6v472PS$q*;35E>J_O|K-8dmP@Ey0P4uj8V+l?6JHJBiB$4^V$oIxA9tHgvjW zI{8rWHOsLM&TFEs!G$V@=*n_|ncZ`fs*%Vr;lVY{tSi%kObI@dExg9yi3QT}X=|Ds z`3O`S)C&X;CA6c2)+q6_RN`lE=9Z6-U~7MTgm%fwU9pZo&q9pVOtA;XJ581#Gg#?3 zJR|=$(wSiDP~%tYyf%UQK7&X2QJP)3I2|&fwFxbZ+~BM#S7<3YqjJEIO4tEF6duao zUmT9dV*7_9mtb;p1IlXtUoWsB{08u`m0LF3^S{E0n(1AlTRah=RG)mxm^ zN=NY|SkAaE7PCdEXbiGeauzXDNZf4k$jM({r-gh1TN-4kl_Do?wlF=?wUfAlY;Hop zOwq=G(XBfM+2WTA4@3|{*8=tXRQ|1Ab)WX>XA`8fj3O3J&){&C8Vs>J2=hf#k{+d2hlW| zwVHO{rI%IzHe%A4H9wi_pU11{3A`f`B84)L4zCrId$#!iLR9ah_d$6)rDU zdA6RWJ`TV7%(lTZe2XsUaA2Eet^{LU-A-3`tF>0uf+^;!+Z*g?b4PlVfCDAtmF#O~ zeoYYe?BX^Z2w-{fGCfAe3fcNEYg#Y0mkXf?(FUq{a~c;z0Jd3^9T(~e&=W~ZId0vB ziegIpmx7@1J!AC*7yk22SpZInwi>BH89bKXb-f$6(j}ob7AMyW;ve`>p0P^v`NSh< z0qUVte$uYGK5rg5xjLA4d;8M)_RHbd-+lS)`5zn~e}Dh{&rgTn{pp+MN-Fz3{QAou zpALWc?#aJD{j;p`fC9@ZLX!48fC-Gs!#AV|x7j)5CY%oz;x&j*oPkl6*=Bi8Oak9b z&{Vm6f=J+tPdn@Dpvl1pX9r6O#{z!mYZT|xhH27T?rH>k;!XAb(Uh^F8)bx!(VGT5 z@%OY1p{r}q30}n52RjP-jC!JYkU-wA-p4TRl!+IxNP76f!Y`dB??sIs>gdBGQkQiM13Gv-xpRu+MSkE-H@`Gj*h@x}{FDQ2(Nr}3L;#ovl`Rnn=dkSc&Q zR8GY+d5u6&ubYvR0In{t43EDta>=Jmd-0qqhJXs#^AzJ9BR2@l+|nLT`HTN#UHFdBpTrVSt?cQeiBl`QDiAj5u!5pleXa6t^XE!+)?`wM zo)5UE8FY{$Itqf!fEtsAb2_)qvlod*mmmd>{RjAm6crf`CGN2drFTJ~0XO zbmVvZ7oHE>DCgSGnG`q}d@3vV2>}LutDS=oCfR08W$ntrUVMqF5J3H0OyG)oe7BWh zG6lq;A_1x*r6g2n8jTYb`sLMYY3kQY)?lKi4I}b(GVSiY%bponjai$Xl4zSC>suoO@2xm&GweM4CSckC7k@binf+% zHK(&%I56EQ(eA!jQHQIbA7ZR<6BVpBYb3!Hwu#cxSL(nPY{88S~ ztuW8CD{Gfp$$8Uh!;Q#ykzvN#=4vMd z{O1=q^u?#wf~Olw$d_z2vIgVPVd2*oSoHmN%c99qYeLJpVtjKR9v(KB794puX=NEH z1FUblMn~q}aJ&;~7}sf^K50u)5E3%{{(|1Sl4JDr;bA`^W=BGO3-J##x?MzviYqfxX>aWoL8P(b z=Mc?HrvuH%l#z&i@95rLq%+C`)l3m{sx4T{;>U7zx9u?{Os;5|m(BuO9vU#JysQ^h ze%wxBS{B2s=SJ9z>#3ADorb5SN{|)VeDX;vilH^+%H)ctFB`0gUAO6N-@{uN8*=}N z%=*g?zUN)1UjpYy|E9w@l`S@uP~yrIO4ghIFGpe0+hbFOm||f1Oleys=iZI z?=&aOI{e`-XO>oMS-6D}RWgE3VGP47j)+I&v8`TXPN^cJ$BBBWrhsIo&gQl7nXNGq zXJp8=YR!iL17~U6dN=uianbL@c$!QwKRa>9KK#$yk&#HI|4MunX}sg#4Q?zZ{MavV zCXYz6-+%PbT5+sY8cpPCo0jL;9| z^(u)^cn~(psE=XSO&Ge|!Mn~-kbG$FNX078ayWGv z3SjyW-9#fb3>oACnGuU6=*t(>o~0HJMy@hB&9$O<#WrM|OzV8}4z351n$&h^y!$2f zn(Ed4pWG>x@LGq@@8w8bmsGm8HdTz~bt78QRP|pF8B3L`Cm;g|p3$t2+7`91Fh^Y7 z0|=$?mw4%?w#8x{ImS!KW?iivUYW<*c%7q$7aBIo^=j{avZ9CvR~eD)WTc@MBSWqg zCHfSX3z8!YuICp#Z=#cF52KnA+CGoU^C;z-AA6F92zh_fCxY%l{+wlGhFOwh1wlD7 z-LT^QJKreYHH5k&7Q{C}?lNs^y^Peyn{~Nk5?ri-gB;UDQdEYmNGJp=(y^2gaCi~C zZmXA{@L(m-)ABWAo&(xY_K!`JU$f*acO86n!S@%(o5@kqg!~aWLJF&0t>kPx6Ff6J z9t-w)he@(bPv82@HR5eu^3PTVGHK3{g&@c$=*`mtOW+zE@pKibwU(ah{4;Ghl&zhz z37Y_A`lq3)lAs5op2N(8Q15!SY%##$_TG-7wIG`;nT<1aGlsYqsRCNLvKn{(BLq1h*Nm)K zCZCU2(V1skZ?$kMoc1cp3y!a2$1b4x(gm*B$*;DaiJ>Sdy7IPD>+sE1bC;CSm7&IR z*uhlaBAHJ}z*3u@U&{6O^om~7OMt0q$4845&!0R*Gg{8U8tjN);wN>@D$z*hs?6;Dl%xnOwF;{m$?#WV<2vb_I35 zX6jL{=i4cd(_P=?)q_CqLO~AWggRHXuivsVaAWq6v}EZqf3~N3M?@*HDyc=K6ndK> zSE`gl3^`Nb99D_(sTA?K<=!G&bMG@!q)(qEVh~Y9-LDP$TfpVP(VQtCQ^xm^MWt6~ zP);>=LO{Y^l#8mk){81#?}((4*#ms7L8(9&$qnqu%91_6%Q}!s19gVpgsSk^qYXum zQE5cVp;)pime7rg+!n>y)h7*|h8TK45yEzBT^=J3cIhyGs|(x#cWR#1_Z{2}7Yzbs zQ1v$D5L(?-T4Wn^T}?eRPl5ukS~0AiKG~Gmpe3?TMD*OL8D6*96wi=mTqXe1Bh_gim&NZ z_`3G@)Pj<8gen6WaF8nQqg74_JExW{GUknTWfg74%Zh1Rp_fe}IhK4Y*~25Vupqs3MoYgJnH zW-;6Hf{+WOd4QG)4P5$71p1*j!;Lu}aoy~I-yy`xfdT|V4!Q`M+p1>uATfT;y*l&H z$b6K4si=9or7tPbqdkqjMYVup7T{%7P1ziF>VmvY2x#g)uoF0iCj&e!qNZ%tQJXYz z<9ql1;{KVBj;Sm2pb-Xi{IYb%=xhBiFg^S^+b zkqT&4)D6W_jThooHR6ca)Zt|Im`ZPdKh};BLi1CItt$aY27!(ba*XvMT(?m(1uL&G6B-j?yaErKpsZ z1uxOBs*kQuj@gYAUPdr~f*^>Y7?7O~vKsi8jLkvC?AQmXEF%{f=;2>7ZQ84P{a5Ij z9Eo7Mr>E2?{A=x;eNZ`n1>#gk8o@?BeF?p->iwWant&r`e(hE_E2xM;r*9Ax29YPs z*G5&k5cGiML{;$Oy*(FZ(Hk+Ti*8i*_ay_`RL=33X>C;SxY>mi;9KQb9Jsp|VIZWu zxV;6T2Y<~+@rr!uQgV$TmW!EN<^+{m;EsnEgk(!of)rgrWd^#NGCX^ntSgeE%K?ho zL>CLQCPl!OopEBA&oj?&lnBw5luCq9BJ?U({8dyAKNr6W{Qu49i56BJ%G?65&NwwVk!Hn zc4)%zNA&RX-7}BmD4r|D`O$p<(}fcH4qI@KLKswyp)CmNLm7MXWD(hNDeB32c16*Q zFx-h>Xc;JtQ%0g?@NFsfms&<0VF)r;TBh7f+|wF)?4fOiHuV0cJv57d64Va$nS0^e z+neo-cJaok3z@4(tfUkXfUJ@|LOc>t@6aFZ{{9Jd4KLu)^Q`#BXn62lh;PwIA`;{V zmLgFFzM^C`G7The*U8*3D zJf;l8i>SFEbGJZ27QXju2lZmqeZGOEBQ@3YdCPOR zt5vQ}!xZNXRNOKhDn4zccW6LCJ@@t(*qnS&d_Nbyyc z^U!JGSL}0|_zLHoE`5z@PFKFhFQ=O=cck>aFrgo*E_C`?E%K_(IW^iSO=f0A$A<>} ztOkV|tnrz4*TkgWrA%X&>Z+=x^rt#>9`ZhP#wuO;Nk2hY*sH>~%5uTxWWiXR5-W37 z&n#^nMW83pCd~Xrz9grbYBmD?ir_-Ym&eDmn#`ozWC9`rY088sDpyQlKDQ`ZnUvui z9)7nCAP;Gx;-D7anvQu&X}kHwU#b@mo*&OML;Ua7L356sgBS%5GhgFKI>$J7lDs;6(G;z%1g>U)j!&f z6zbnoWtwhCngs*8XB!D+@J=w5w!FE1XEmW@uO|=`#dTS;PsWZ~DtSK4jEkzZ_xv|l z(WX17IVO8bHFCT|X>>@zv*%}zgE1V6zNiUeltk%Sc|KnP#S~FqeiZ?yjof>FUF2nU z>`j-NlQv%=)!^RtV(xxbb;N%&e*gkB$cwCBHXZ!^lKH2i@H6$s}0UVJH8Bv`5Wl;jZ^@&`TEaeOcp zT~9Gg9||PA(IZd@>z< zPE1yxx4I(7cXK}EGN-5YJhp(sVx6#1vTJ~{6ztWpSrt`9j&3k-MxipqH87Tv{PWMN z@GJNDFX8_=ge~U+<5`t}X*s%*h=Kr_1X7Kz(2NJ5N8pg7188|$&j()b>pSp0v!hQI zT>PFExJyLeBJNm^2%SxneE6)6F#Q}aM=x8hG84MW{1S^%gz=O8{j)wdmx;dtar*=- ze}|P%=hX#eqF##IZY!bc?3}lX-l(4)1S`*{&*$vZeKvOn|M~w0813FWc+NAwGi83q zGru%te(Cwof@jvt(P!1=sQ>Ktb^#*r+`ZS%NY(4H>KFO zu9-~|6T|z9>L$s`bE~3w)xk@X@X`ubD%=Bf1y^8b?_z$T$XczplNqwk?VECb z{^Fvn=>9;D60~H!dD}9WT2X;v&*Ur1#syT6^CjnzvK{iQGD!HbU{*dJ&&uJD?6w}~ zJe7y5l~2CqG0Jw@DG_7ei9nfBNl)BZ{!-mo_OjjVu<*8-vNx>JL4s}iJy1>DyPSuR zov5iw52t1(+sj@KP81t|lQAoLFGF*KyolbRldV>y8@xtzx-V*V*C;z(QGKXbe4dFA zBtse}f?chWXx7INztxnwCdIe$AH@%u(?+CwyY~jO=cc1#5WyA+at}J8ob~tQY9_+w zok$;I+{q0$vfgWrZhz4{`;Iwp(syEvWdI_;R9 z@wT*ndV06!KX&Ir+kVezx=SooKr=jYab9WipW8m=O-a!XecT57aNK}x5?BnLMbZDN z+1ps;7AL5dX1)-RL9bw;+!Jmt+SWl^@2W?!bqLAj-%NJ2g2eSoiZz`jA`FbUJ7 zlEu~g92OVDVJb_mu+)iQLUQ*LF18Ltslj>pIvSiruu_@qxf%`rQh>-AV;F{k!<6(K zAATkA3Jr$_Trq5r<%0n!P&l8U?KjiLQ63EEgD_B9w01nmq068maN}Xw@(835l^<>)-+Z$TlDH%du1>@N=SGHGYta}-4EsNmiJTd z({$El5?MiNpQWnUG_>?r7<$_J4AZheH##^sVPkH1)+Bm}ilP7cf1fZm%lppyvPt7| zQC!1_FGpBB%0qND2Q#WbV;0T?kYT4acN)(}N7HKh!(l3>KQ&H&5>S-)Z;~u5-K1JG z6FS6q+P_NOZpF7$&PpKqGDwZfAhaw4ZF$IKlxt`xWHjXWWAD@0OjdWI|6(gg@cpS_ zq$2cAa=amZL0bfd+xiN711Gm96m$E}upheUJOX5+4QvZ?x*Z!(dR1zaDq<2 zeD)E(0d!_wWjv-g_D!554QBwaB!6OPeEK`@l^^o^l0U!WASqP)vKWe!(vUjCrQ5;% zPvPjC55B{bQVP@d^vxPTqT7n6tFvhE>HQiA(@8rCb8&Q6AYf4K)9g)EgNtaNPN$;l zReig#Er2~a&$G+OAG`=p!#wr}VY(VTM_Sgwzu(X=J3I1L#Zqy}_3OLx<~{k?U3tHQ z`v9ve?+W%^TzS{G42+0-dHHUm2hCR~af%@mU43Jv|DOK0TL<5d=6CnM{T?ZFYnt{` z*dgxj+w&xY9$j|%`!vrAD>v+LDO|@hRf3|9o4j(BhiAZh&pHMuH(KzB^ojs_(y%hhEdr<%UHxKH&cu=o2 zIK=y^(Zul`dsqLtX}9QA4$1HhZ5GkX;E&g9RC#~JC+pr#ynTh1d+eL%#{2uO?3}|4 zHxzKiK@B~}%BF~td0KF@RV?Uan0GMKkywPzUU>jwhJ_)sB!mz|~B+ z#T?rPLz5&L=1Vqva2q_0fvBI&{$z%8|P(`Ks`7VXOhE9!S)K&9cK%~*v5Wp2ad>+{F;KIalHRDKll*5ZVc1+NU?Fe!T8Ok3Cj*vh zSjh9)BlsRU2iX+@k&$J2+v@1+cE{=pLUydHna}N1w>Bzh=aucl#-ixkjcDZCAHRP_ z9<-TiMA=U@ju4FvXkBO!?O&c?oE^F(bD&v$MVcVhb`&0SD3du%o zRfq4oLZvo3K`7R>W*EL@@te7hYKBzZ8h5Y7h9h@=j9iB4GD;lZm7=*UlPJuEPyYW2WQ6JxBBxv!VxxgW586{oB0sfrSIP~1V`G@1N zSD%-1^nXh}vYQbY%FYSX1BsLs2FnVAr4fT!fa)YE9mlw{6k5oOBz_%nM;QD2F_g(9 zCCCDMYwD`L*s`DzP(xXNEQrQfASm3S=P~s>Z0-5&EowK$+#S*{7oM;_kIe_Gk9qO) zjZgRkY}xk=o%tZbK~JMrx!8LY5lF%h=<>kiA^WDq-uCS*a%Vk+kOo4_cQi5OT@fao ziPY;B&6xgr?71jI8x*`}isxgL@8=G`#6S;?^Tw_qxU#Y#OeH1qOgWvMMrhz~L^38tebs_=E!D~7{3=C@Iek?hj z@`N5TIWIux!qTuxF)SuSp4HwFm_51Er71)H0hv9*-9eBuF6&woaf#SV03AD)c+$kE zMll#&CwZ&JYuyx%hlwR{(S%vx#yFLijVldDFuas^KQtc~z_ z0bJq0&9fSLulgt%-Mf+a$JTo_D>x?l3_2(ob&=DOqHiUK`O&0Gaot^KlP9io5Fa?6 zGfND;u;Uc^;WIh7$&#C>%d*z9MI?W@P z{*>iwMx`*czws+FaZ^UGQosdSNE*aid5*@uX>>JsN=Bov=+7Wd2WNOY5SFNk%wOo) z>&8In4-^>l4MQ~)1xzo-elx#>sI(wuNUwRBQBcz7ppJAxNYrB2ej+Peed5*7^^2>r z-U7a<_VVm!btAzNT0q~*GYq=lgHf5CUz2uTsa)I0^#Y0u;%&p?I$c%)BnE#JvZ0C4 zIWmBfFk~;qxbk8c30^~Ir-K(&G~XZ?i=pnxxI~hc9)m<9&`04D!@AaTJn=X3J#c^B}P*-4y4 zX6P($C*Z6$Fv6k409hiy`3&FyXXyorO*B&rmbxd;!|AN^sSrDjaVSS z6fvqPRxu_HrhFJa&&MvZh1vpa{&%E=1MG5J!$YJwdGSYf9fNJsAy5j zqC&#WEPXIhO{&AMzO*Vr`l1iMv%zGjp8uyE3V)IU9J_9{RbaUwm@DdBVu0+p<6N%d zDWy4$QfyFG1sMUzvsSc5Pba!sx|UbA`uP*DgAE>F>gP;0L?z5aIe&ig3k8}iiuf#* zy6oR**VDkP>iI5hZCGc!qei8Tsn4&qo_&VPb_5{Kl<+XxK!a8avFTLmm-(9CXFU1r z2Eal|tk_*@O0!|8-l1?+M-!+-fF{M#J2FL2z)c^h_H_`+kIPH)l<+ff#hWz}-0Nt% zH{KdMV}{M%b=|UxzKn12%?5_AXDQ!=WNF28IrlS&J1LWG?%plH8}AiG|3&8eqoGre zkH&LY$5UIc;C!lep}~FGfo2ztR9%0R{6mbCgM&$j-)zm)q1kV=RgqmP3>D7>Gs(^Hj)at)Cq?3O>5Gf8uwj0+~Ri9|Dn_1aK$IJCeR4l5s$MM*vpQ9a#M?mWxm zesNw*(qE3qBR_Jsj}`ZGj4?L zD~?EDUb)FH*}I6}Fab-l02&O5Fg&#uvkj_nXfQJVfX!EaJ<;Zm{fE`Znu7yj%xXVs zdR}cVxNTjvk7ai+v_^~bJWemr{7*9^F#sA>wib$&o3t`bhB%Vj((Wc|sIvKf#rX!~ z(F5kZv<6>U*qx$xqnV*soqVLtii_iL2P>|JWX1K4po}HUzYcG>ifxucG%Tm4I9B8{ ziH%hL7LH6)D7Yw*s!ThfYN(H|VqCaqSf_lmw%*ifjaN3`|3 zEj0)C2ZvHGw`P=?JqWy&%ur!S^)axmsHw+1fA;9}p7Si>g!KSNK)AmNjg(h;copRW z9|9ZD?Yp7PB&x7C46`_44qR$-W?(ASvC(u$Lk+%V>x{C?8T(PMY#R)*eWKWHv-mdI zDc9bYT17Vfn!>;{Y0}EXILCJt@!ps4w%a5(k8gE-gZCk2COh0*eDp|amE<_zAA%USUdsYk zb&@!=dbW6*!~etaZijzU58ll+#M|_QyU=ghPapS?PxQOD$>-e|SNMVn5lr|VG+D8@ zXOeo(`}!`=oP3vG>*r0=5qdc3II8}37X3KRqJ71)?!#wQiXW9Q_5>FNx`m}Wh?k(| zHd)T#^JQykvU`cLi}Uxv5N)@inEqiI;@kE_Oz95Jq71I0-m#;oN0qFzHFVBC@yZ)Z z75&Nt!|Z0N&B;`!i>Yo0Q%3hvrrvdkqmK;Y=%bHK9BtzAbK}~k;qTyAtM%>8?o+G7 zqt;#gY4!G|)#^*Dc|x`M(b~47N?)FbW?t$rO=mx}sY&q1(;3%UEGSAVnvGff`-D?> z2hTtJ&Af;Il#a56C?)lhV#x|kd|7+1(zN^hbJ-Z)yUBvHsC<%Lu0c#$QN!*kTW+w4 z(Mh(t_KXI5P4B9xB6k-^MklV0H><-g)PtbBc_U?-G0UBDw7Brx)Q?e@(4UOPhd77b zHg6VD%JD;Q`^2P=LofS6AqSAyP#DPF4h2c&?n~0uq;E+_l`h4anqpbHAf=$%rq8N1 zwA8w0)dRbTuDSCH)L(F(7RzwWqcTGlw$!3~xxc?`qJal8QT+xigreU97!oOP&*u-v z<5`C?30L@tND0)W=<&F~E;e%>Us2!ut6mx?oa~Y=4Jv&HW(Gd!<_0k%E5|W7Hk~3> zOI|72s^YD*jA&j}JwA=|q9kTPL0V_4nP+c9W-TkvH$h>BK=uJ8V(PlRX zJ9(j|`P5ln9fP#KkeK%x#LbjA#oEE06!j#DPF*q`p@nq?y?? z9VC!!gYG0968MO}+}^T};UUQol!lg$jl@|-n(KBwUIx>v*nS9FKX^u(w(l_4nc~Bd=WXCvhXrwohtFV_Iy3 zXTkz35f)&{d$$0)yXjZn)AWnksqAj=#oxK!qrF$+`Gx!`wCVMw9MleFYQvpY4-h3t z&1X@L`H{6M zNUz;c16F)`dy5*7<^KLkWppwMIMATn5}(w=LGqCKjV5H8uPBCC+S0i?|;M6g&x zcCaEcNj!liJE0?j5~i^{p0l6W(q7dHex%YzG|G|{@BLHi-3xM?iiWhx;*9%DjNgvU zY=1xHwz)B3)tiP;C^e$i+^=wJvOe6?jKGwx-=Ou|wA|{3YamaN%}Od+w19waGH(fe zu}G#d!12*gZm|qOL|c6wl~5sCJtc~t&(XG}^2#M_UWP;`(G?y&O!+T){_#s&79DU8=n7DSq?0a;ZRTOS84xU1W*>%htXc#C?S)Mn zp{bi`>hHWMAFW?9i$OG78A}D#3{8UnhsldE2oTL8hSLf&&GL_8}sDaeVIQn|qdU?-9J-riU-`*+#aS=M_(^{@L{?aR%Q~>+Z?}<;Z%jS9qmd z^bgc)f5e+`AaL&{M>(|sewd!Q6Axral29&bO9$G@a&!~{JJfd|bh;ca6Kj9Mt091v zVcOUC~3hOK7njs5Y+}Td=We*$OHv_rx!tv zu<k z8gI*^)#5ZFw@L*t((zv4nzHuElYJ@e5RT4t*| zh4&3bc;AeN_sw{C-&l@NY>V_8;tP7a(=(d`shGn2rraZj?);399&>p>d{oYG)9P9# zjNWm4;3~k$dy1uN)Xy_^;~j+DB?=re3jCF0?kZjR7$Wc5Bh_}ju_{A(FVT6m7Iux% z+e!!jr32=ExT!NmD+^h;vN~XyHRf?^xIM0di*L#1n) znu27B=ML!Ba2;+cO$IGyp*RVcb5qm_HRiCb&H@v!78;5Zt-RK#EMW_Cxf`W0dF8Dr zrcwY`1EN-M{AxHuz6`Wf^D;0P8@9}R_w4QvRl3`2tgTf(_sy8Vt-Ob$MOKfR9BK9~ zmUy&GS4Z2lT0*CO5H@1aw%KhbW%&Eo2vchkg=C861qP$T!k0{G;Zv_*ioIx|GZro7 zHEL<}+4&lq8!0Kld9s_p+P6DG+(QcyeE!ew>1xxy?ow4A5#hCA;EzxTq zywfSyvTDrBtb4WCSKEJ?VD@Z5VHlpb2`ArIE_&aA=DBYFhYvDeqLW#_8F=0|M2^?e z!n}-&vJcJ$^G4%_ao-VKodf+2>9z-lF6~(6K{Vpp3)9_4niM120!Py4`ex@3?+~$u=@2ERa zS+BjK7emz~BpylN4l_;6-)JrRL56Xsz351RQ3(O)q*=elX**SL&mW4@kJ=5&;gRax z#d=Yxx+>8<=+t@J-I^aivNSK>n$FG4{9Rn%T^)`=gGL8E;6TgUiT*K*N}AuBGd!VdIvL>ri$*wexB>Tz;H60z9cH08@*dk_Qa1BXQguwkk z&^ldJn|ZTpb|%Ave)R!m0Pr0gV0(5)J?pBlP!8_|qn>t*5rVrw7@UUNLV4Lhs5^<) z3rUl$t0xB0S_MWTVz+gjF4$_ug)nhH;5Ndv3EMO@8(WTJ4Cd1VkSaH}fzjQhGdSpG zzqp9k6(o&VKrrm?g(N=Os&}-WQVb=zD%;k&+g9X9I|zIG8~`d~>Bgd0Kos3mAn5~G z0oa>o)zMCOb#kq(dMMl7zI?Y>y>!_Cb)q3VJyq+{g^6uJP^Ma*UG>;1u-qm?YU4w? zlXcYgwiIVpat%h)r7W%0pzwc|7SuaXga7w-7x7)L3#`86!^p}#Z5Ft(9s{FaEgb#s z)oK#6Z#K5NWG=gNEt>0&UD8&U==P3v840)Th<20ciXYsmy28%y0-wKF z-5=W|q&AXPY|3{9(46MGKvC%PE&%jMA02{?)t8AXws>7KthGDMCb_{r%KwZDef#70 z&(OT9PHsc7*09%It@5?fQBL#Ua;NcXv*h`q+q8D((V;Xgc)cuz-?bNREFY%y-YK%G zhkAKiSB(r_Hcs1p;F}40>CfVwF~tQw{nQ=Elwe zpu6PEMV|x^|y z&4<0#t{Wq|dQ~`eidnBbz%=~zII_?nmH~76HE&28LKIL0jcKEpBvC0PeTf&?f#VQb zVN%pugWnzJ#laU6|xtHYo5ks8EE%W9BL zm;4}Af#OuFec~9=i>dm@XY>`aud_eWR~$5CG}c&sk@X#2%qZvNSOk|Qrz>hQt4=EK z%)=SF`>H$UZ1Ti)4#ES+b7nDfBjon$LjbeMhE0TJYPR<9)S55cH~EeZN^0E7;Vz`-ilj9#lH|Px|lkSk_j=|surkCpsIwEcm?>Qn-UG zM9jOMw0GUd9TpK^HlgGx6mO0fHL0pgO1oD!6E?1skX)8!jfIlg7D_M30e81W)DhnW zfWz_gtzqwL^OmwVAs;Q`{4TqTm9AZ?(YBuoW_R#CQljsXt#xi4>?&R?sN#pOI9IVq zQL}R1Qpk9eWXDo0%Fm-ro4R=a~PhPh*@H=gWnSS36MkDqLz zgMfUI;uRf!&SWtYozTtM2o|he;pk9hh|Mu_t~c*fh_l9NOS8APJ2gu;gMAuyWFNu2 zS#drT16G{piH-znM@$zXH456`-`?&C_`t_9%RpP;Yh!IGNscFbm!)nrutUey9Wc|l z__1I`g4+utHn=J_Y^8Ke*vpx*z?sz!cu?>E+AyKO?u83GY!w^!aymZRN}4fJUmNVS zZuCv4b>Zku^jkV@O=xSUt!QKMv=`Q~r1~Gn=igAc6AwRPcj9GFcjDO29lVJ%+Y|0a z>OJ}t4@s=7AD0VKKW0v|VHWC$DvC>M4H?HMmZy?azmf2Kh+W1ZZSu%h3Y@Wmy~-I1oF_EK8&s_}NyYsCM{J-QmMoaTVhv z;W;@3!R|D~3+M!7ML>pXd|r}vdV*06q9K$UVmU1u-p*wZAFm@*2{{MN)ScN$9)%Y( z>gFo%>>(6sYq%qO_kOLS({PiN(5rmj)-Rl^wwAl{cj(zPZtV%uSzAk8`MdO_FjMB- zK|2E?-PW#>xk6i4y7G7EDy_dowWRu>uzkjQ722tXN{?y?O>bGf9ci(%2HzS=a<803 z{xb4c(Tr}T2b*XB+%rm7#Q@dFo-!uOeW|1NO^mS^QgYVJm2ud|lQ2o}Z13Ve5W~(P zmmB+(Myz&!pMG!Fs}PS`*mHc*cD*g^r2W86ws3SEV4uE6zx5F>!#atw0Q$SGQ-Y{Z z^Bw`kA_#D=>Hc5X*i?}hnBPQnpN~GVVGjtG=PxMDy}5*rO&xTm?rhPCcjbzG32dZ{ zI9^G~nR%3-RY%35pbgAvc&SsJ(CerqB3g$a4`ewkvHCXda(q@NL6&h5(+RS)%)2`RF{m&n^Df^=f1zRsMZ)g2`U9H~H?D?ya_b^#Eo1gdf zW7Kf4w{3T5qdVc$IwNf7B-=Z)MV{>WU_78$-s7gBtj%ddUGu@1YK|>FQB>zkb_X3D zo`WcCdz~L8NxUxN!rs{_h|uM=5pk*~F}WflRB>mcvb;w&ZxTn{{y4@2MtI zLZ^ihvt_SNWo*yniDp?}ivVi_%!&=zpLQPtMNcOJ#X$Hue|O#l25rs-?slx%(W}Cs z&B;QSQS{(0meB))eKf=DbJ&pD=Rm|93n4A5Sb*}5MzG|Lju@VC*^1S-Mz z14sJu0v=PIZ_KMURCDw!nPi%y#AI!Z-C&x-6JQv*F=q%^s6p8p0=nBW4E^qh<98Ro zrcd-5vwW>zTlH|LXJl|U7OB1?T18*acbxb2xIEaw?drSq-prb{dzI|rUHL99o!k6Q zv3dH{y)Mh$_!o#-AZ~5pbUY}s1kR;~(R>WijLhzx|9iPt)vjC~{fqft?Y_b5_Uic- zo&PmFz5dEW7GiIY?W#49Qg>)3EWmcWmM}}!yJ#Bwz!EcPU=A82B`bV*oyV8RPw2|m z5<)^j4=Tx^wam)m_x(Ztz#it3b%cdp0!M%U?y@xVk+N;0`^Y{U`FjaFCqUcc&9S@R z9pce>?=ap(R~Ro#3={PZyj@x~I(Rix*GErV?~{Z+JOQ=)7cDF-w2SeX_)$yX3AJhc z=B4+miV2Kdx%uGvQMv$bKjRo<@d*I|_CS)TKWG2;80Bt$W6dutfHp;=fG&>^LY#u$<%4bw(Cn6;Nsy2MRU*+6HRDFRQlWK=F>aF;GhU z00X6&Ze4m7Qs5PL94lR9HwMd6-~DJqD<7#|Bk!&?(0rQv0A3NBjoKh+%<+y;bhgn6 z=B<5pFePkh{TOyI*G@I*jQ-*I@P`nx2DX9dwl8>c3Qs`nPpU&tJYpqdl6W^|sO*T>!>92T1%zz)?a;N(FKm!oAxfgY;Yj4)v%V;(wp_|t-E3d z%3%&N(J*?m4&mf_p5^gBkx&zEvdnTfhDSWc+YG?bVVw>hq_-qo7m=+2a&qVS)$C<+ zH<_EaNX;XRxDRu@X{?y88>9vsZx2~kS{?@sgVa>ydU>+$Z4QR>~{(fD^hk~c=+8b~qg4j*;Y z8Gf!;dDvBDqSttI*wx6PUgfi{v5eL7EcRZ{3fl%k*Bf+;rK8di7kWJU%-FCog!F?( zlLk#F?QLYNS!T47wh9Nyp`mI}-TqHZ>IqE$%J`Ih8o!BFO%^FfbYpKBc)h>MLkwxd z{EH7L?&EOqxf(;0X-QE1)`|ysE9;rerXI}(_dgwc3j>0+%woi$dxrt+`-96Yk0=J# z03`V+8GL$QoonVU0PV|d@hU(6tP!uWH}b6^@6?ghXi#;fstelgR;SaG2namVTW4U0 zniAV~2Vycou3l6=`J`{)RwAk41N9Br7SvOIxkTljFdv@bN?CwQ`@KJS1pj{i8FB%yNz;d_IiD1Iwy)Msh2XHL2CzG}D=eKP+47=sc`uvO z8s6w?!aEo|&t$G649Oc`lQz}0_j@8$HSOQV z^bc$#mJGr(P1YfzwXGEACZ=+-`Yjf#b3KhTW1v17IUbX(wA4i?MnPGHAFbXY^mjKQ zGNwMJNr9yotvKqei2IjAfhgBLe0jLjsTgFnKzo?cwpHLkz8eLj7 z!`gL@+Eiq$!+IOVtDcH@?b=Q~E!2(V;z>)<1aF_l z4^Cp8@_{62{jQxpIwj7rWsVzYRHoXz;Z%e(oOI2NMGy7!UlZ--L0NEZo+FzYZKupO zHlp#ck4=Uy;&(~-{d{OB>d9v9WILRL4yPEVnDf;}(7G9MM>UFY)VAfA=d_7)aSO21 zH3IL9=}6M>9VCr&xBF2;ID^(s)wN`U?`JUL`q_Y+tk1<&t8nB5mP5~@VMWdJ$s-iCG>+Sr6*d0y|zo;{^(^Hrl$~Z7}tF=?Il-=Di zwKS@U)DMDrTttg%YoE_29=*p@{UI8v@&iY{s~tTm2C%}eU^WWJhtd2PUq;!cbQ{Rl zp|FQa&z}I9dEy<7lP#0z|CFsFSms4J%l7vr=cdm2CT0r?AC`Gx?zL-FhG+OPI4ZMe z=;-)KSVXQjZ+hxNk1t5xQw@NnrJ!d^fH}RKt!4EQ!}{=GddqF|q*{u{$g=w}@(yo` zcY7VIM<wBy zv`vP39?Cg9FV^#*!;6A?{OXwEswlbm8V2cwp3Yv-UmefNdc;BOmm@kLJ*C{Bpzrh| z$o*{Ymb!*R=JTYcA7yg}^O+nXs9N7B^h-6MUpKTTdx9v}_io--5fAsdyGC_RHskUvpMI$!lXlwy8nVjUYg znyy$kdDGNcuOcV*fN5IK>rHX)rrx$ZIM}vm;ni*}Xsv{Rxhe^8}l zYlOo!$ha@Zbdw~A$+=ac(Kmcn(<*n0Y*i)622scbcA$ER<`QO8Ii?B2-zoe~zpzg2 z?BF03fu56W8740PE{26Ui^}hS`@65$v4p9kFj?uIfls_lk7<>`)-W^Ys?L&3A)cke zk_6TR98h7nUB7wdhmXg&(Zh07#!}pMEIvVg1q+K)h8Dl5(I0!{6*xJ+^7~-MFAsu) z>|k=J?y(BVXoE-SuXbYQX~oPlU5Pc7x#uyk@oX;ZZ{}ww+;?}3IaG;)^@#OIhq7{X z^^*r_bBEr=4v&uf!QtW9#|JPUeH(ht^c7_xf?3L|S*pZ}hc+4kcqlbM|K*mFBsZ{9 ztZ8hH{oiv~+#lK|;^D{-P)Eb_iNL7Nk?Z41F0C!M2`dGiKxek ztd2+6eI{dNE!sg!$i!(LnS9uyVx*=mRLk$aD4?kcx#oqUL|O=Lw)M`)N22K05aeF& zuvk&;Z9w;8D4_KKVyaq)t?B?!lh0c_nR;tKS-ZKV+SMbKTK+VORycNB6_G#WHQv@~ z7d@U?6%&cQ4%hJ#<1y^4jo8~5P7KN{f3~QCJ@*T@g~m*6^fGbL^0ZBDI2*s7 zy8erfog<;ksD`yxPUus87)aeUUW;N_Ta9Ae933}5x1|Mv+qE93^d ztj;El%SCZr00u{LOsqV}U5Q)znO~iXW2>iJ z9wg^7PB#UAVsOy+Uv^S5n5D`l2OKcssc}JQ!78hNnZp{3eb6*P@rTRn8s2wyqHA8{bDo=Ql zT{Rnp#2>rcMP<<*ZL7ev=1~QR+E>>!Cimz87VFam4V*4I#d^X@PsrIcp9JeLFQRXf zEG%8gjyLnX+uO0f4o>PtbMBVFBpP#To)q~>X;fz4pcR2Tu}zf~xxK*jL%9W%6w>d~ zt>v&bw9ux#hQ>}n=2_!*TY)$O5CEp)g)MFeW)`X~M_PJt;;U&mFvaM)feg=vAssw{ z(&1y9Ht^U_fL^}Lj-j5(+d{RC;Ps9Y*bt5j-Zt)X1Oe#tRkA!8hMqiQ{<(YN`O72< zbMbJ#@%&97J*1!cpN+@#VxQlky@R{Ar)=;H5#9dSs~CR9ix&Z=<@QOS+-r&Q-0nuZ z?bheN^1ai0y*V1RT_n-5sQX@!dD^pG3%<+SsQ2yzyq_2FS*O;S%_W{trI$|H7QM_P ztLJciDZZsu z==NdTjy7`?L8}tEomWUs8sCat^y8eOrC-5Szm2Y%gri#6N`rY%0hO)hQtf2h(zSOM zp4hq=>F8lzlYN-7&P1#mzI^@Sn~O*{CA;khhUNUWj;A|KYDAn4vljp@8TQIDhBMrd zx-}hK#;a9g<36g%`dgci^_me9!@H-Y!(08kLx01W@#K-6#Hy$3ohWxF>z!8F;{$Nz zmN2gE*76oi@iU28`0iu+)wGDIrT;sdNSS0LR}qkQ9k715`*;ZBU5NIUkQ}XY>0vR5 z!lH>V?O4|$pVy%qO5kTel$HCE_ZnWw92m(G6zNWpl-`zU33KH~{lhwNBKY+qG$|eV z7l_f+$`D)R0=tQ|&Q{ut&h>3jT8NKKD+@}Ss~X)IO}svV33|nk>B*=p3&OmD-uA>J zvnSvmz>#cY(=Pjr=8{}KAV+^@dap$>OK%5$~b3;#jFP zn#>x`=FIi1?ODSQ*{{5fv4`HL)c8>bm1(o_|1BIzdpMH!7;@ylmO65!vLiYFmQQxf2_GZ?C^{tw!IU!|qKHVCx=1}RW3!thd#cM`ZC(TG$kHJ-6)-ep*@tGso8AQAY-LuS>GrwXygb$i)PQBs zSb6IqH5&2mL{QdtJ)2I(?mGWHD%+L*dsNoOYOLPrS47oLxEqYRt8WoIMQiMR`Nr-W z0H%&U!gX#Ms^cHhj)3WBuk&``sKU|;6AS#xD)6f2yS5ZM!XQMN{(E~|gbw2ihD>36 z!A&tj*%X63B=j-DAZH0pO9{USS}Y~dUYG1F!n$MJm?K1Ej#-R07%E2E3_(iIXGRXH zr9snTLIY{Dr~q&}sHRs?W>K2g_Kc@XaZG+a4BwQrJCotv_AQ{z}tFD(__(hg>1)4-LS zyD(2@S_u;}t)fjol=iCLK&(l(d$)$$Ds|0c)#qo~l{%qvjykid0=iMif3Ne)6u4*h z>BR!`Hp#aaT3c)N#w$AEw;&d?RLp7$`F*wZJ8)~YaMQ%#yV7lW{XJl4CBEZ156^XWrCq?Bkxh@O$~BgJWoJOGl8E@?vV|Ht1~2jr*h-hGeN z$buAD74^||7MvhicpgGn<-sd@nH~4SjdPGu&GIEyvD8_H=_lo2Q($o{cHj)kt9Xer z46hgLjkgsRUOL_SPw`Vjxi9q#z`%7fi1_kU!@08?J5cRPkw?tzV8-*#=nuLaEkBlWH^G3mr`7 z5~Qh9W@l$fL?F+zWK{!`zIFlwjDWM@pk#zBCq*;*B7VKUPrsRG#jj{9!wVnR+rmzO zzh1=uj9l-AA<31%C^$y5WX|5E!qsDR#LSiXyiB=IA&>_`^shEG1hO+YCQ>{Rspij> zze$!%i&G>Xc7;IWFapkV}S16wqjxKrfNuVSvkJ6rht-QFT5#FE0~+rKc{7qTUqc2(d`n zS;Ds%x7zKzt*Hk>OhLsL;oJZm_5btDXWG{Jf?-SiKIbBQ0rLEoIfqyRij0g%;(^ z!DFp3eq(Fk|8MVG*W0$0MgR9H5VrM_K2wyPrk5pK)=JZMr~6CWd`;SQ_VMS>r6kDW z3Poy@lpQTwkFcNNJji*e^9W~V0A9rlNXgeIZ7wE(0f-q426Gi}<2fORFKUbL;+A;! z6}7~7aZB3!MNR2t+!pWkNsazHs91_Kb! zBW#PiwoDCONYUAb@w}os5E`TE5zGQIFpU)o6&9#8dI%u9P<9rUn0&J%=p z5z1fCDcJ^klH4R73K1%auL@A9MiDIWGzrW{URD7s*(L%-50jAM1m>lrOD$p~N3qW5 zqlJe7&gYo0xbVcwZ5>1Nr?6|oV=GL|8cXE`;>1z@S4XgJZg>KGbY-d>qI?7+4J|zg zB~>3yP3MA-w=zx=V44vn-pefR(NvP3ng=;C`52#L9`X8uZmBlFGm>4SYHKB3}{ zlW3UOTZ>_N=eWU|@NbUN=Vhv2s!fJrmUc|E$ex9z{gO=*@;h#WDK`rln2~4^pLD)W zW(0XApN}orqD~PnH40h}1}_eh@Vs-|y5yxtr?K8J-b%!m6NhloLS&l70AeLcd@Gbn zjueE1GR24%G}e6Rj(KTakbDDsEtnQ}&NM`{=nK!T=oPl0=JJFpZXF+Cnl9}=;_6e} zMKlX9kmuHzI>Ta{#eMKCk(F4=HMLXuimq#^;)RuJr1DkG0ieFPIi0K5IH!~1Qs?wk zUGbc*nT1cN=*pKosmrUm*r~4S%be;~y}+sFic6d7qq?Z6PMPHtnm+W7isgb>XLPFh z?!p^!;72}c-F*`2XYM$9f(A5tfJU#0=|unbukZ>H{sbo>X15A|F);M-Y3rgFVcBRsW?s&;g*wmfz4)i4k9BA!iF^x{s?O~j;bs3saEwrIwThHZ0L3gI1_UO8QYhY_5lI zKp5}CEw!zSRl()*{}9q#C_Vap-alzw+vbqlJ+4!E_a0xhh058qZK{1>aWYhg3e*pL z>9?YVmU$-I#>||z{I)K~0(o4aPoi#%Mty`m0Hg*#@LC7DtdjB@EQXT}sS{AX_T;6H;z=LQGK`MFx25z^* zo1A-dW3Dpa8a1x`(o-?KVEbpuAcdQo>y>~?iy#UQiDFpRb)frJLDl^*tbCG5WPwNyvM zZ$oQv_&)S3j#~VPMlKm`6E#a&zT&p83#!IN{fdj`MKFHBoy6o$3j3wZYH{1Q!VD6& zl2(!U{X1#lmhZ!i?TPoHK`(9+K3Sbfc1QDE$A-W{+)@0PfKAwm--{m;?}OyJ3#~=` z7Kwv(8F?^=ZG`ngP79>Emn4O(&+Hd0peimG;qoOczhSHQQh1Y1BKvDR0}|DEVtDx= zZu7_QZ=%;Aqb2DI!h*}AeBRLb734tq~3YDTf)7MUNbbg3D zb#o4FbgfPw$=S0rbKJB;29?~By4BAi4c+St6s@Vz62`lXFHM2EEfh%Xey&w$FgOia z4N7#Mv7BGWAV@JXd-k=kybQq5PI6o0uP=lhbY^~tJh)mKTG1I!NqSSAi+`K#RUw>X z5bn@IH?g=qE^I~N(}>@`_S*EPti_EBgMI!1cM*5mT4_gv=%BC3DU%6sRnbL!|DRz; z^euz!THfg&bb7_((6FzBim;^X$#FNi1}CLU#Xrt5=-+jOk)64V0K>{ldWoJdfd9KN zH=%9O%A1R!C?Ntlv{NE&kpDkm;!91;7hhCCc};`C#tzVd%`cx~clx5@Ba$>KZUB|v zA-)6;R9ah%)+HkPjjHy+!P8;yrtTF}T$UK5VBkv4DUpK*2U7Xi%CHO|`Oyd9ULl<& z)M%?3P%;#rfKo;1DWVrT@P01QD?t(TBo|YPNP?jU+DSfs zj=S{wgsIK23sY1e&Tf)A)ri@&xfd|{vlCE!7ai3n(%%ncuh|@=Pi`+U{{p&0ap~|V zzeH!kWe3SWvS7CD2p96Be5l~h`UBOqGU?d!3wTGQM^P72oYm`j}2 znr^jM&EY2K?#IxDIrL?Abg#Y208!>uYR7BNQJa_%N|-fRROZA*L1(2k=S@PEt-+L< zoy3h!irGHw*DeTK^`R;ro6*skq1eqy zJv?%vqXh*caTm|}2qYN)KwL2~q(gf;n?-!!Bi}CKf}S>;>rp^LF+%hGLQ+j~{L!VZ zA(9I2V9!3W4@@$Srk|Fa_omam6ONQTTpuW_E9e#aqaL`thY{jL~SB>r1{RT1=rF}v zV?Hq#c7U&5JP}%IMo9%OWlhPd0Ng{Su~L2ME25i(wr99xq2GF1;lo-c^Z3N${*+lh z1vc_=`_7fD8&9~oX136=e*-;jAZe>0J_^r?5*97T4Pg6^+}RA>An)O5sx`Uh8)hvg zY=b?s25Yx%8X)t*TNC4yKun<72O5S`)3KMy4`J4XE!_p<&IsBfm#}<)0gcfp$VLFw zgq09WBJG6G+zT_Xs9FS{kOBj+Zr9gfNLQYFQ(%NXL1S{4_GP97wF?pYG=@7K|GiSa zN6FEkv#r+YAH+~PGAs}Jp)Y8tClt^mx4|?=)t4u=EtkJIo9#cP&wU>s(N~sjV;Uq3 z;eu^Rmiw1)-mrLDw0|cHdjc)_*kC`wDb7Ed=qx~67<~t@H#3>`j*k`|8lGeDu$@h4 z12=Y4KsVW(dp^=Oal45J1cg#H?eD3(@VUW4p9ItPT{iMK@<)>iT{4?;8z8XO@yH$X z6XE$gbX}X9&T*HXwL#_>hqMpkx=#}XDZY!68%pyqFoItMt_b=z)G+pGv7BaxA<21g z#k)dRB(&%E!h=dI2EP%_rYr_RX3@hepPN8`mH6_e;LG;;drV|T#lL*og@GH1^hf(b&qomG#dWVgx!= z&1o;{OZX95SPeUT6Bns`?fNg2&xW-o)<;>PiKx$E7@C4t>KXUjq0Q#2`NtZ!x;$02 zNT0K+2_$=^6Hv68V7B06)kr~o8)$p)&Smi&#FfZsB(c=Nl0x#D<4F%n6nTVOUCC3H)olx_=E%a^971AqOfW3ggXF~eV!{B*G? z7Q-ZOn<6lTv%?+XP9}3>tph9_$UOX>nwYBZKCr19K@)d^sE_%PJXAKOM!9lZphpR5 zN0CI4n7?pGjWj$G5-BK%e0c2Q%hwTE1DzDOnKTs44~ z%|wudSC=M8;6aLP45Hu;`JKxsRd#- zCTkHue1jbiqsVh}4DU$#@%WgDL~{tw3djQ!DGasY!rogXI7!nl`q;GMDiz)7vOzVqlx`! zj;0~WMr!w@t`A)VkP>3&2Y4y+Gm?iu;4`eVB=o*I`&+WQ!{6GvaBVm?!^lt4@bs7{ zc!uX>XYN@u(_4xfXKjs5foJr!X%Ni)UblMz-4{dP(zEU>+jU*PD@x0BFc;3}(!oMI zA?HbWa@;jf1iAT(IhKw0X{U)j5#~$^_kav}LuDAvl3L!%Z7bN~K{^A%mIao3?e~V46ySNn%!*tx^}? znb`z>S8}Y-^%gj;OX)Xa21ibH#L@hzy8xMNh`xvD+ry|56;9O0ykIy?SpUpms`yE{ z?p$F_9>H`sLj#(>7eh`&NI(ad{cmT#{rTB>~Ukt0uE)v`2_pkrEicv zM6`U#(~P)wIkT%^=T#@Gg+Wr6hsL+Yflh0SE(J3(8ewWxEK~;=0M;ZbQqn=n9e)8Q z7NB%!*?0jXcP5wl7BB^CvW#3S@eJZX0!!E727B#Z;SYLbb(HKcOnd4F=mvAHdD~#!jkC?qKN8LD78pL z!&*X~Y-_#f38lo-Su&HU&L|Ncqso=&%_r0a?Q9;KClOjKQE;1~#q{P*fcO3?~U9REUI_v^u$X zKD(NtyBPw9lf>9Ls4JepHB)=tgKK)dv|Zay)wP}UTz5uhx1DPe=_df=(CcEKc%IGE%C7!n#~I;)JI$~Q0so@)#J8J9Wz4b?N{ozTsr6-##Qu{Wsj zV6CBte>>dw+fw@>t52|&s1?`_)gY}zVWP@@qRY!MI=R5=w6YKT&km9`jDE)2T>XQiB;eER`~Aax?HtYP z+SyTi?dASaWECB?+Slvv#dse7?*&|}{*c94R}c3%z>%$SUkg_sx339YtBMaLCh)zi z_**hc#l91Rhbw^mOHzZz{z3Vfkm--Aufyw%(O&q=3x>Z%-}p4 zY721^X@I*x2}MC|LrQq?(GwLhOczsfY-1w~VsHZdv?=S75A6d8TPmB~HX@ZI{BsHa z906}7WGN5uZc8%N*rgJ@KlTkb=Ip{V$5#CUP`4Bp7|mu&p?@K~ZH4|t^V@Bo8livT zsy*24@+pUqrF8jJlGdF8IO#H%NJNiqbYbb0YJF@#S!+c%V2}PBQ{HBR{wRtiZ6Ox9 zZk?qNVZvz0D82@|QA7bfAHv|HB|@;4i5N!_HtCWe6e_NKHw;YVQq2Vr@rO{UV2;gs z;G^vpUQ_8^@nxRt&ImdMJkm8Bv-75w#2mwaUBh6Ny(KBi8MPD?EZwg_|2q`xL_!C`qyvTj$S_`_=SE z%LPpNk;f^}qJ-Kl1w}j|2Q)asU^zSf6ix{4b!u*BI4$7d@VQ4u>c_jEi8AG9uoj&r z1`_AFaH5LUn(b!0o?uD%O?Q40#*?lMi0b4FE__Tnx+Po?tPOFIgz=PdArjALkRb|I zZ3!C!*oNpx0eOh{*oDdL!epAldx&8&pQ=Z~uFQhMFL}v(h@J~o7m1gi7iMxwUMBEC zoqFwR!=M{zVvxmLb%>{~rMsW_3=(L3;|{|TC~%`A0ymzp@=CP9Z+%Oj`o{8uC!){# zB^i3NQ)_*iYOOoS!tsOzJHF%{cQUE5$)xi~moh?1OUC`}F@^NAIN7MHstpO5a%@ch<+9_3_bLA9uz_ zgwg+N0gYn_Yjrp8Ezi7LQv0RkXwjc$%5PkuP911 zmH6HTw0tV2ax;}~Fp+3Fo#GF>T=0Nls?V_RU7FVUY#vZKk;Tk;v`PPV^3UDKKX(>l z_MaGCh3PSoI>j!-qD@pt$61DtiD->GO^<2wQBaz{4IaVN$LVaPGRx< zp=oh%=;Y3LtHt{#i-B><&)RK$-v4d*FKB6e;7h+%0siLZdew%tofC{}8%y=|bNUVSlI6|(78mXp?RNX< zDfk8vxxAxKuJ8@|;(9nJ`qaEnhAlL5XG6C$bU$ip>cFUd9UmGoc{m!K1#3~^vjmwo zbd1m66sit3R={UILYp^^amb9U?4Cm((h+j8 zg0gpxXFJvLPIbIf9q+DAPhAaCGW8-2$<(~$m;*c^3S#PhHK%AIP=6Ut>Fda)SusP=X4KlA>1+<9r@yTy8HmdKtt#l`%Y)4hb^`drh zv%Ni$m0dQB_Kr`v*!T8wuKS@bV7h)6&S{;xQ4fq5-ACzL&SEIN2=?|4vbBTamxj%q zi(qum61cii#rpv==o!d!OlP@oeBNenP@F(0g{M`yeHqn;5GF zKdpMs!nV)CyZZO8Yje|SxAl?*>_0nLJ%tOp{JJL;xbsRDzS&jI-Cdn-v2w2LSC2^s zrgs6S6_#W=2LYo};iYU?CdVWJogs7v(6xGb6dTx)%lz81lc|~AdCg=@i%MQ@nMGV} zmNz;NWbO3PTd^EBvl?&BVyx`{mceX&191)Ga9zW2xjJxbdlwVV-s0v(@DFGA(rj*L z`y%LV?_ZkkZUZZBU|g+7xPvSA)GNHnm`;%JWRV38ucq8#zx{gW-rm(SYU2I<>>zss z6xSVsyh(lf7|PE3TNQ)%9>uxS>F;#NW#?sw zh{w96-|%x{Q^JO^lo5wtW5Au;X5Xb*v1+N!FHg-pg z85UZ{UKuVzeE}Jhg$=|b%xXRv^rqaNOF%vv=bR6I#W&&Jl4K&;P!9m$!Pptv?&!l& zRr%6dIDi!=x=hj+JTUwz%ALMpx!s{TzTjQ43Y{O4s{j*P@BvVP+ZTgqgtU6oySlnE z@Gx5pInD7OBb=n`E6)rt@g6#Nep!C``~V3Pj+Bna$6{g@s6l>(FxqeXxjbe;P2mj`xF29$joFgmV(JDG5?6=^4`Z^R$)D|zSp1)`TQZ^G{(hvRI?Q9=`l zhG9C0>W&ymV4BsR?%Z6098VLa_2u0G9Eh+4AeQ{{`=8(c`S-VP-v9l7zkRdkxaWYD zg@>g``v-gIN=t^a{%h;Y=dbpE{_^>^vwguE_W{BCB%Qh5zB}0$yLKP9t+D?en9GNK zK+`^Knth2WfVn^8`@rn?XUqLLQZSqk`@og47(7-TEuAFxv)>xPFdd!D!i`pm=2tQxq^^A5JwR%ZpD)6jdr(p$g20;h)JCP!sM!81w<8$sxy zrY5y`pVd>>)Kk-_2b;*<^NIq){Bk{e(Jl~uE0pv(5z}JGs($Nx;3eEnL()UXshErp zyD!2Qhw;>!zQ@I4O|zIV$<)iScb)d zU4etCGL*&sa9+(LL{S&SnZAtUck?ODI?6nb1#T7%zXQa(}T5Jg$x z`&+@l6|BAmmfrl)K2x;l0{KLJ&qd$C;Mu{d7FP)NwJeY-9ub;up|>-L!c|SrGnaqH zTe0Qp*ICFtE}dh-uUP3$yVqbBS6O`)u`~4~>WI z=7jux*5hJmVp&Lxm&McQ)(E?5+&W~P2}9T-U1tLv9v@*>tn))6>oqhUw)ghTlqhDS z8Be+z}ROn$Zq;}eI{KMlUtKXQz-r8X43cxx5A{==uB>h zG6lqj^p+Z-n(nk%7N9Ojc7aS1!IQRyl~$Yj1fa5xDaN|Dm!u`KT&#tcYBby&neECTH}>i8qPUdnDdCedVoCZVbK-*~ZyC zYtyV!I?lTz*f^Wc>BX&?FN(Sq!rRauOlhxJO9rMzDdb$oUbb)7 zLR>m>T?;V*Yvvgdb>E^-M4V9UNhknv@I{f2gsVHg`U@wlC|Z!~f$pHgm2@8BarShX z^$A^|;%Af)s;$bE5khBf0pe8LQe{gO&P-8lHJk!ZwR3GhIIGKmE7~K^?FbGzH-l+k zD_1i|UFai}yKKd$FR{KgIccsZd%eR~?ch~HZC$k1L1}!3I;ujWTP7kl$6K|VcpkRI z*3P6NfDN8@vxMEQo2f_bID^xX@Vm77$n=(A#9T0oi$ zXrbV64BBwG*0WW*1@6U#&7(e=*4B%nWbP^gf&^fd;0I(%+lX>tN&-lYavb$aaVVdj zX;$mO9fn9`FmO~lMtqcrAqW}LdmsbMjj8}*op(k8V+1ZKG@APLsejhHmRmG)_gH~| zQ!%J|{6cw*ALaYJv@WEkI9|D$D4Xi*rcn;I29&WRwLBLwuv zubt^s4YQe%;){VYieoe@CP>|=S_%-t!m}Sf4gB%@o2JNz@4IcRheJFDbdOBi?)coh zv__9$@4u51t&ev3iMNP#Il==#`UWR+{nI&L^C(k|*T<7syD)z0+#1)eiAAUas{THA|9~{p5Pgaj$erAL9pDIW){+CNPHo!lX0*_41cD zGTm61ZRQHIlFDRfqP)r249s3wSq9#Sj51=HN=eF!S7g&*+Dyhj88^!_^-f~5$3TRl zqFSg8yU&`mo`uzYrS1o=#feHH+J3OF8Jh0)d08N?ZuZ^s09&_4fUUJ2AnT@rYIRSo zqNx>DG_45PbsL22y7ybrRJQ>mmzHl0Et{}%dUjNid*m+jN~H4bDXLfsiq)J3X9G#B7CgMI)_Pe5@0+|Ir#pVk45o~Rp|kfgSs)0pkfl&h^75rW5RyF#3EL8ux0#OTjxtPdp?=lfR06Ig{nu0>G*cs_ zl>O`41l9_#37FRzbB4*Hb#=-U#L5P@POoif7b;8yYd$4`E-!~`UP(!hptj=ZwX_C` zcPqh!J@q;`n^9DAs>)YVZK1Gxj_X|0s_ylj;x;6%wVH|BAhSlKR)gFWi^DY6O*hj| z=M$KE>Aoxt$(W&9g;&<~)p=M?NBwNfP->LzQ>}K=#2c%rXI44>ey((LD#9O*Ujuh* z4pu@d18`HBCKuC}mE<+^}C5j_}xL z2gcV&Z0=ehvUweT3DSVyW9W!-q>-uMan#@ui~WGB@aSAmxChmvkcv^(-KcOd@+I2p zI7t_*h9f+ol0JN?Ue4#wNE>-C6iV`}ESoa6C^2nEX!h0YT&TP4C#qSll*|3f(V(-v zYGNHtoDmVUP&0uJ+UfJ4+A^h91}%TB)YiGk?xOVdSOFzb8t4kGGeb^MHIB%__VUde z7SD`f^?=F3ot`Ld zp};6|Sc5+`=e*6tJC@P4RY$gz#BjtaY%=r)V=m&SbIPg}gLw+?j2`2K&jX>z(I8ip)I z)1@XeHKBSYg1iE6cBL`r*Hq=L&(tjjwb{zc@tEp-iNXey(LE%riS=;dTEZRho6BpF`dlwvMF6*+S@!Za}UrG zWL~+Y3ola4CcnV=Or5jmu;428D-7^Lz1)hd6=z34B`skxK0FGJh22;X*w4TrKOP19 z`)w|Eu}TybhOC5V|HIYF*EjcO^z-NJcqx zFGC!I)UPDqY-UnbH?7{bEZxYh^o`|wU|sgw^vT6Wlrdo~Zd@4b^AG5G!<}|rXT~+e zW5GA=?B+&UtG6BoCScTbU#%5**Ic{TbnzSMOG}nn?61w1*-@UzeJpcb<>n@e&60(t zAkYmL+ESj#CMwcR)T0{)vTma3+=3tW8%m(rm49QBS>S6wQHt4g&e_e`oAh4YkRWO~ z`QDDt_XhZ_V_w|?cHg4J>5Moa__xt$0TR?`3BteQ1A+yXg|L9tWElxNo1=MddFNt? zO;MeIqy{32VgBO!S?Z#R-*-;mxB4^)r|8Q0v%@AP-29fwg0vT0l&XxWK-3w-o0`l* zM&)K?={>6G7ej#isvR>AU*1oBETfDS@6vdl6rI&y zkv@vAQkC_}>*Bo#jW)SsO+akz_;A7RvBT%{kL;N>!wQk66CCBXCobG$pHC)}{04~> z=ghkpnymw!{xc5S`5oqfJGiU%*mp4e;WzV-1#r_vroVcg*RVkPPS%6YUvVGMQMyjq zwK^!8XTcgAK8N4m!S8l)w`e5*IIc#?0O`dzd|uXA7IO4N$?ncKWo;+6YeFMxTii+# z!POKPRDLV1QMfl^Ay-%XBCDHCT^@P+T3iBC#onN?jBToU@3=ZEo!6-c{zJ><6*-1qW&$j>hnq4N4fYf^e5=k-i2R^Ezc zm#iGUIju{uozuDm`8lmiX(6Y5@@w_%`%b5s23mxzAQ$_QwExv5Q|~ft0TqXxp=XY` znilI-s;F+4y$?(3-mVXBsx{157*do{MMSMDr6bh7_O+!sQ@9$UKs0ej3ty=vh-h=9 zz)q;wuGb4uQr)G2Jy*)=*+>*Zu0ro@F-g%;tDo*7SN>H>UlCzvX7-8->WupkB1e<$B#%Mm|_nH%gEER2mKVi*;AzN}TCz5tam;1(g4#9jndEz+9Ubl zTrhBPDWFAn0s>TTf>GgZ?Iijq&9f{@VCbEQ-zr7Ku?BdV%$YKLQj~eehcLUj=VEx?v(K6u&;78%1 zN7i2R$eOgY*DpKo{`vF!SFfq?C^Wr5o$J8tN4W}nm##Ht2bdH|aF)Hjme~ik;30Lw zQ`lO#5yZ=Z{M+z2Eaix|G#&mkw02LvXzOcTO@wH0XDp*C4GgH%IyfVhw$y_nKD%ygfTI0fBw|gHTF8T|+zkhmP%6dUgPFn;r`J!Ta$_i=76TciRzt z(z%kpugFV~T`~13crCRRbdesYkKb-zcTzA9r>F-vid3%tzp1te!hb!EO zX;@CXeT`eE@5q&xL8sW;p&4hs*2Tv3Zu$5GflbA2B;VyW@S5Z2JOLe(e)QI5Ri(UTf4*?f(HbvP6*F1XhVR@+>9)GS&f zQhACKKfbArb8c#QCArQynx!jEk6n1yI8PCS&pQ|9yhuf~`fTk{Qpqs@zrRlXgo$Pa6KKD72vFR<> zTC{UjZPA(yZFlq`uf>%$4yLH$JNPp1^^^-m+F`yP4Yp0OLQbmUhAtdEGbN2{!pZ&{ zCH#F3GIQvCaa}kCfCv8_zJT!$jy@~Y@QEcxyKiUiSuYkL`l4X7B|a`h4q-}s zVkuqajqa7R7|TJ$P^amx3DE|-hWV}y62*46b@@Jt$sUaiNcsm#i-LF7++|5>_!a3Z z@f~nkg+EaT)MN0CAGnjtFGF(xa)}p8o8}uuQj^NYj!@&}eqp#>@p|3>-&wku*gW?G zOxwC}I%MeVFOIJs^`3sGgbjcv=@VXuWTPGu4i$;O?c zt4LaNxN5K9&N+5Riy4rJG4eQEoqn`A{?yWjLgPzQkOrFe3a(Rc%%!^sgzu3bd5#|* zWv_?X+u?xs4|>|v^{jsbDuI8=u!RoX)J7l5x*hgT;VKCGMLUaAiRCtK@9njC|GCg? z1pOD%o1=1SL8Ga`U@%5ozs5TtR_9*K9KV-pDxM7nflh5a_bS~09}EVV^;2l4nkJA)4c@(eJN6LM=f~OX0SEjdSm%A&UfL2`3IspL_h$;#a+A zhdQkH$g}36yueF1aU76^F;qbqK;SDeG{mBiHFPIpjy2+;^K{@YMpHwJ=!|q7fBgQY zr)F*FYH-6xy@G3FA(x5U`s>S4%H0HhM283Vm#(efOg{hm>#vWJ9yQS}{R+4_o?~B$ z-$&WY(F-ZY;y;dv`%KK4WrINR1OJ!#=YqX69bf;Gdt=iv_5a`wzch8+FJgs55D2%sCeSx@8|0imv>Hi@w~-}w^!{J{XY8t LbN(h^D#8N*07t7J literal 0 HcmV?d00001 diff --git a/config/www/community/Bubble-Card/bubble-pop-up-fix.js b/config/www/community/Bubble-Card/bubble-pop-up-fix.js new file mode 100644 index 00000000..93bed4f8 --- /dev/null +++ b/config/www/community/Bubble-Card/bubble-pop-up-fix.js @@ -0,0 +1 @@ +!function(){const e=document.querySelector("body");let a=customElements.get("bubble-card");const t=setInterval((function(){a=customElements.get("bubble-card"),a?(clearInterval(t),e.style.transition="opacity 0.5s",e.style.opacity="1"):e.style.opacity="0"}),0);setTimeout((function(){clearInterval(t),e.style.transition="opacity 0.5s",e.style.opacity="1"}),1500)}(),console.info("%c Bubble Card %c Pop-up fix","background-color: #555;color: #fff;padding: 3px 2px 3px 3px;border-radius: 14px 0 0 14px;font-family: DejaVu Sans,Verdana,Geneva,sans-serif;text-shadow: 0 1px 0 rgba(1, 1, 1, 0.3)","background-color: #506eac;color: #fff;padding: 3px 3px 3px 2px;border-radius: 0 14px 14px 0;font-family: DejaVu Sans,Verdana,Geneva,sans-serif;text-shadow: 0 1px 0 rgba(1, 1, 1, 0.3)"); \ No newline at end of file diff --git a/config/www/community/Bubble-Card/bubble-pop-up-fix.js.gz b/config/www/community/Bubble-Card/bubble-pop-up-fix.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..1117c29dc8591b862b15df7b10094cbecb18ac0a GIT binary patch literal 394 zcmV;50d@W#iwFpIdR%7$|6+AwVr*qCaBpxeb#N_aX?QMba{#rFL2KMF5QYDWs#35( zHr{O9gN+HKEhV=?LhfT}v{kE>Txpc93Hk4pvq?w@fgW0<0qN=S<{P~;*(B1An8*o+itleK^NI0vMLx@iSBqTP87KaT*@X4-WBM&nuOABk8F7YSFgF5mJ7yT=- z<#$51Vkmr9c8?*`3%q~Rx3t)FZ7c37A=eKH<=J`@D*i#S^ZQxZr!p%m*Kc92^URDr zaLFf7KX)-?uWJ=th&_AXb=~lIHpUDyXl?zjXWRL}PD*W$HB2FDjCBNUbL!dVwCHVF z>tQg#Q*B^x-O{tq_yevpyDSsQYm6E^$gk+}24pH)oiJK65FV&b-$94p{Tg#07k3j> o8_ABlZMNbK>h>dodK>()PF{l_i68j?C%72?0PWgTGzbF#0H5f&5C8xG literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/audio-cf3a75aa.js b/config/www/community/frigate-hass-card/audio-cf3a75aa.js new file mode 100644 index 00000000..268044d1 --- /dev/null +++ b/config/www/community/frigate-hass-card/audio-cf3a75aa.js @@ -0,0 +1 @@ +const o=o=>void 0!==o.mozHasAudio?o.mozHasAudio:void 0===o.audioTracks||Boolean(o.audioTracks?.length);export{o as m}; diff --git a/config/www/community/frigate-hass-card/audio-cf3a75aa.js.gz b/config/www/community/frigate-hass-card/audio-cf3a75aa.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..892aa7da693bd5f7df58952a80fe00e321a80f2f GIT binary patch literal 126 zcmV-^0D=D>iwFoDf?;O@|6z4xX>ToKW;0=0;s--)(i=e[s])&&(o=(r<3?i(o):r>3?i(t,n,o):i(t,n))||o);return r>3&&o&&Object.defineProperty(t,n,o),o}"function"==typeof SuppressedError&&SuppressedError; +/** + * @license + * Copyright 2019 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const t=globalThis,n=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,a=Symbol(),i=new WeakMap;let r=class{constructor(e,t,n){if(this._$cssResult$=!0,n!==a)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(n&&void 0===e){const n=void 0!==t&&1===t.length;n&&(e=i.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),n&&i.set(t,e))}return e}toString(){return this.cssText}};const o=e=>new r("string"==typeof e?e:e+"",void 0,a),s=(e,...t)=>{const n=1===e.length?e[0]:t.reduce(((t,n,a)=>t+(e=>{if(!0===e._$cssResult$)return e.cssText;if("number"==typeof e)return e;throw Error("Value passed to 'css' function must be a 'css' function result: "+e+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(n)+e[a+1]),e[0]);return new r(n,e,a)},c=(e,a)=>{if(n)e.adoptedStyleSheets=a.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet));else for(const n of a){const a=document.createElement("style"),i=t.litNonce;void 0!==i&&a.setAttribute("nonce",i),a.textContent=n.cssText,e.appendChild(a)}},l=n?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const n of e.cssRules)t+=n.cssText;return o(t)})(e):e +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */,{is:d,defineProperty:u,getOwnPropertyDescriptor:h,getOwnPropertyNames:p,getOwnPropertySymbols:m,getPrototypeOf:g}=Object,f=globalThis,_=f.trustedTypes,v=_?_.emptyScript:"",y=f.reactiveElementPolyfillSupport,b=(e,t)=>e,w={toAttribute(e,t){switch(t){case Boolean:e=e?v:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let n=e;switch(t){case Boolean:n=null!==e;break;case Number:n=null===e?null:Number(e);break;case Object:case Array:try{n=JSON.parse(e)}catch(e){n=null}}return n}},x=(e,t)=>!d(e,t),C={attribute:!0,type:String,converter:w,reflect:!1,hasChanged:x};Symbol.metadata??=Symbol("metadata"),f.litPropertyMetadata??=new WeakMap;class M extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=C){if(t.state&&(t.attribute=!1),this._$Ei(),this.elementProperties.set(e,t),!t.noAccessor){const n=Symbol(),a=this.getPropertyDescriptor(e,n,t);void 0!==a&&u(this.prototype,e,a)}}static getPropertyDescriptor(e,t,n){const{get:a,set:i}=h(this.prototype,e)??{get(){return this[t]},set(e){this[t]=e}};return{get(){return a?.call(this)},set(t){const r=a?.call(this);i.call(this,t),this.requestUpdate(e,r,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??C}static _$Ei(){if(this.hasOwnProperty(b("elementProperties")))return;const e=g(this);e.finalize(),void 0!==e.l&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(b("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(b("properties"))){const e=this.properties,t=[...p(e),...m(e)];for(const n of t)this.createProperty(n,e[n])}const e=this[Symbol.metadata];if(null!==e){const t=litPropertyMetadata.get(e);if(void 0!==t)for(const[e,n]of t)this.elementProperties.set(e,n)}this._$Eh=new Map;for(const[e,t]of this.elementProperties){const n=this._$Eu(e,t);void 0!==n&&this._$Eh.set(n,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const n=new Set(e.flat(1/0).reverse());for(const e of n)t.unshift(l(e))}else void 0!==e&&t.push(l(e));return t}static _$Eu(e,t){const n=t.attribute;return!1===n?void 0:"string"==typeof n?n:"string"==typeof e?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((e=>this.enableUpdating=e)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((e=>e(this)))}addController(e){(this._$EO??=new Set).add(e),void 0!==this.renderRoot&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){const e=new Map,t=this.constructor.elementProperties;for(const n of t.keys())this.hasOwnProperty(n)&&(e.set(n,this[n]),delete this[n]);e.size>0&&(this._$Ep=e)}createRenderRoot(){const e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return c(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((e=>e.hostConnected?.()))}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach((e=>e.hostDisconnected?.()))}attributeChangedCallback(e,t,n){this._$AK(e,n)}_$EC(e,t){const n=this.constructor.elementProperties.get(e),a=this.constructor._$Eu(e,n);if(void 0!==a&&!0===n.reflect){const i=(void 0!==n.converter?.toAttribute?n.converter:w).toAttribute(t,n.type);this._$Em=e,null==i?this.removeAttribute(a):this.setAttribute(a,i),this._$Em=null}}_$AK(e,t){const n=this.constructor,a=n._$Eh.get(e);if(void 0!==a&&this._$Em!==a){const e=n.getPropertyOptions(a),i="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==e.converter?.fromAttribute?e.converter:w;this._$Em=a,this[a]=i.fromAttribute(t,e.type),this._$Em=null}}requestUpdate(e,t,n){if(void 0!==e){if(n??=this.constructor.getPropertyOptions(e),!(n.hasChanged??x)(this[e],t))return;this.P(e,t,n)}!1===this.isUpdatePending&&(this._$ES=this._$ET())}P(e,t,n){this._$AL.has(e)||this._$AL.set(e,t),!0===n.reflect&&this._$Em!==e&&(this._$Ej??=new Set).add(e)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[e,t]of this._$Ep)this[e]=t;this._$Ep=void 0}const e=this.constructor.elementProperties;if(e.size>0)for(const[t,n]of e)!0!==n.wrapped||this._$AL.has(t)||void 0===this[t]||this.P(t,this[t],n)}let e=!1;const t=this._$AL;try{e=this.shouldUpdate(t),e?(this.willUpdate(t),this._$EO?.forEach((e=>e.hostUpdate?.())),this.update(t)):this._$EU()}catch(t){throw e=!1,this._$EU(),t}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach((e=>e.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Ej&&=this._$Ej.forEach((e=>this._$EC(e,this[e]))),this._$EU()}updated(e){}firstUpdated(e){}}M.elementStyles=[],M.shadowRootOptions={mode:"open"},M[b("elementProperties")]=new Map,M[b("finalized")]=new Map,y?.({ReactiveElement:M}),(f.reactiveElementVersions??=[]).push("2.0.4"); +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const k=globalThis,S=k.trustedTypes,E=S?S.createPolicy("lit-html",{createHTML:e=>e}):void 0,$="$lit$",A=`lit$${(Math.random()+"").slice(9)}$`,z="?"+A,I=`<${z}>`,T=document,j=()=>T.createComment(""),O=e=>null===e||"object"!=typeof e&&"function"!=typeof e,D=Array.isArray,R="[ \t\n\f\r]",P=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,L=/-->/g,N=/>/g,F=RegExp(`>|${R}(?:([^\\s"'>=/]+)(${R}*=${R}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),V=/'/g,H=/"/g,B=/^(?:script|style|textarea|title)$/i,q=(e=>(t,...n)=>({_$litType$:e,strings:t,values:n}))(1),U=Symbol.for("lit-noChange"),W=Symbol.for("lit-nothing"),Z=new WeakMap,Q=T.createTreeWalker(T,129);function G(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==E?E.createHTML(t):t}const Y=(e,t)=>{const n=e.length-1,a=[];let i,r=2===t?"":"",o=P;for(let t=0;t"===c[0]?(o=i??P,l=-1):void 0===c[1]?l=-2:(l=o.lastIndex-c[2].length,s=c[1],o=void 0===c[3]?F:'"'===c[3]?H:V):o===H||o===V?o=F:o===L||o===N?o=P:(o=F,i=void 0);const u=o===F&&e[t+1].startsWith("/>")?" ":"";r+=o===P?n+I:l>=0?(a.push(s),n.slice(0,l)+$+n.slice(l)+A+u):n+A+(-2===l?t:u)}return[G(e,r+(e[n]||"")+(2===t?"":"")),a]};class K{constructor({strings:e,_$litType$:t},n){let a;this.parts=[];let i=0,r=0;const o=e.length-1,s=this.parts,[c,l]=Y(e,t);if(this.el=K.createElement(c,n),Q.currentNode=this.el.content,2===t){const e=this.el.content.firstChild;e.replaceWith(...e.childNodes)}for(;null!==(a=Q.nextNode())&&s.length0){a.textContent=S?S.emptyScript:"";for(let n=0;nD(e)||"function"==typeof e?.[Symbol.iterator])(e)?this.k(e):this._(e)}S(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.S(e))}_(e){this._$AH!==W&&O(this._$AH)?this._$AA.nextSibling.data=e:this.T(T.createTextNode(e)),this._$AH=e}$(e){const{values:t,_$litType$:n}=e,a="number"==typeof n?this._$AC(e):(void 0===n.el&&(n.el=K.createElement(G(n.h,n.h[0]),this.options)),n);if(this._$AH?._$AD===a)this._$AH.p(t);else{const e=new J(a,this),n=e.u(this.options);e.p(t),this.T(n),this._$AH=e}}_$AC(e){let t=Z.get(e.strings);return void 0===t&&Z.set(e.strings,t=new K(e)),t}k(e){D(this._$AH)||(this._$AH=[],this._$AR());const t=this._$AH;let n,a=0;for(const i of e)a===t.length?t.push(n=new ee(this.S(j()),this.S(j()),this,this.options)):n=t[a],n._$AI(i),a++;a2||""!==n[0]||""!==n[1]?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=W}_$AI(e,t=this,n,a){const i=this.strings;let r=!1;if(void 0===i)e=X(this,e,t,0),r=!O(e)||e!==this._$AH&&e!==U,r&&(this._$AH=e);else{const a=e;let o,s;for(e=i[0],o=0;o{const a=n?.renderBefore??t;let i=a._$litPart$;if(void 0===i){const e=n?.renderBefore??null;a._$litPart$=i=new ee(t.insertBefore(j(),e),e,void 0,n??{})}return i._$AI(e),i})(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return U}};se._$litElement$=!0,se.finalized=!0,globalThis.litElementHydrateSupport?.({LitElement:se});const ce=globalThis.litElementPolyfillSupport;ce?.({LitElement:se}),(globalThis.litElementVersions??=[]).push("4.0.4"); +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const le=e=>(t,n)=>{void 0!==n?n.addInitializer((()=>{customElements.define(e,t)})):customElements.define(e,t)} +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */,de={attribute:!0,type:String,converter:w,reflect:!1,hasChanged:x},ue=(e=de,t,n)=>{const{kind:a,metadata:i}=n;let r=globalThis.litPropertyMetadata.get(i);if(void 0===r&&globalThis.litPropertyMetadata.set(i,r=new Map),r.set(n.name,e),"accessor"===a){const{name:a}=n;return{set(n){const i=t.get.call(this);t.set.call(this,n),this.requestUpdate(a,i,e)},init(t){return void 0!==t&&this.P(a,void 0,e),t}}}if("setter"===a){const{name:a}=n;return function(n){const i=this[a];t.call(this,n),this.requestUpdate(a,i,e)}}throw Error("Unsupported decorator location: "+a)};function he(e){return(t,n)=>"object"==typeof n?ue(e,t,n):((e,t,n)=>{const a=t.hasOwnProperty(n);return t.constructor.createProperty(n,a?{...e,wrapped:!0}:e),a?Object.getOwnPropertyDescriptor(t,n):void 0})(e,t,n) +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */}function pe(e){return he({...e,state:!0,attribute:!1})} +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const me={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},ge=e=>(...t)=>({_$litDirective$:e,values:t});let fe=class{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,n){this._$Ct=e,this._$AM=t,this._$Ci=n}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}}; +/** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const _e=ge(class extends fe{constructor(e){if(super(e),e.type!==me.ATTRIBUTE||"class"!==e.name||e.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(e){return" "+Object.keys(e).filter((t=>e[t])).join(" ")+" "}update(e,[t]){if(void 0===this.st){this.st=new Set,void 0!==e.strings&&(this.nt=new Set(e.strings.join(" ").split(/\s/).filter((e=>""!==e))));for(const e in t)t[e]&&!this.nt?.has(e)&&this.st.add(e);return this.render(t)}const n=e.element.classList;for(const e of this.st)e in t||(n.remove(e),this.st.delete(e));for(const e in t){const a=!!t[e];a===this.st.has(e)||this.nt?.has(e)||(a?(n.add(e),this.st.add(e)):(n.remove(e),this.st.delete(e)))}return U}}),ve=e=>e??W +/** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */,ye=e=>null===e||"object"!=typeof e&&"function"!=typeof e,be=e=>void 0===e.strings,we={},xe=(e,t=we)=>e._$AH=t +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */,Ce=(e,t)=>{const n=e._$AN;if(void 0===n)return!1;for(const e of n)e._$AO?.(t,!1),Ce(e,t);return!0},Me=e=>{let t,n;do{if(void 0===(t=e._$AM))break;n=t._$AN,n.delete(e),e=t}while(0===n?.size)},ke=e=>{for(let t;t=e._$AM;e=t){let n=t._$AN;if(void 0===n)t._$AN=n=new Set;else if(n.has(e))break;n.add(e),$e(t)}}; +/** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */function Se(e){void 0!==this._$AN?(Me(this),this._$AM=e,ke(this)):this._$AM=e}function Ee(e,t=!1,n=0){const a=this._$AH,i=this._$AN;if(void 0!==i&&0!==i.size)if(t)if(Array.isArray(a))for(let e=n;e{e.type==me.CHILD&&(e._$AP??=Ee,e._$AQ??=Se)};class Ae extends fe{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,t,n){super._$AT(e,t,n),ke(this),this.isConnected=e._$AU}_$AO(e,t=!0){e!==this.isConnected&&(this.isConnected=e,e?this.reconnected?.():this.disconnected?.()),t&&(Ce(this,e),Me(this))}setValue(e){if(be(this._$Ct))this._$Ct._$AI(e,this);else{const t=[...this._$Ct._$AH];t[this._$Ci]=e,this._$Ct._$AI(t,this,0)}}disconnected(){}reconnected(){}} +/** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const ze=()=>new Ie;let Ie=class{};const Te=new WeakMap,je=ge(class extends Ae{render(e){return W}update(e,[t]){const n=t!==this.Y;return n&&void 0!==this.Y&&this.rt(void 0),(n||this.lt!==this.ct)&&(this.Y=t,this.ht=e.options?.host,this.rt(this.ct=e.element)),W}rt(e){if("function"==typeof this.Y){const t=this.ht??globalThis;let n=Te.get(t);void 0===n&&(n=new WeakMap,Te.set(t,n)),void 0!==n.get(this.Y)&&this.Y.call(this.ht,void 0),n.set(this.Y,e),void 0!==e&&this.Y.call(this.ht,e)}else this.Y.value=e}get lt(){return"function"==typeof this.Y?Te.get(this.ht??globalThis)?.get(this.Y):this.Y?.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}}),Oe="important",De=" !"+Oe,Re=ge(class extends fe{constructor(e){if(super(e),e.type!==me.ATTRIBUTE||"style"!==e.name||e.strings?.length>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(e){return Object.keys(e).reduce(((t,n)=>{const a=e[n];return null==a?t:t+`${n=n.includes("-")?n:n.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${a};`}),"")}update(e,[t]){const{style:n}=e.element;if(void 0===this.ft)return this.ft=new Set(Object.keys(t)),this.render(t);for(const e of this.ft)null==t[e]&&(this.ft.delete(e),e.includes("-")?n.removeProperty(e):n[e]=null);for(const e in t){const a=t[e];if(null!=a){this.ft.add(e);const t="string"==typeof a&&a.endsWith(De);e.includes("-")||t?n.setProperty(e,t?a.slice(0,-11):a,t?Oe:""):n[e]=a}}return U}}); +/** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */function Pe(e,t,n,a=20,i=0){let r=[];if(i>=a)return r;const o=e=>{const r=e.assignedNodes().filter((e=>1===e.nodeType));return r.length>0?Pe(r[0].parentElement,t,n,a,i+1):[]},s=Array.from(e.children||[]);for(const e of s)t(e)||(n(e)&&r.push(e),null!=e.shadowRoot?r.push(...Pe(e.shadowRoot,t,n,a,i+1)):"SLOT"===e.tagName?r.push(...o(e)):r.push(...Pe(e,t,n,a,i+1)));return r}function Le(e){return e.hasAttribute("hidden")||e.hasAttribute("aria-hidden")&&"false"!==e.getAttribute("aria-hidden")||"none"===e.style.display||"0"===e.style.opacity||"hidden"===e.style.visibility||"collapse"===e.style.visibility}function Ne(e){return"-1"!==e.getAttribute("tabindex")&&!Le(e)&&!function(e){return e.hasAttribute("disabled")||e.hasAttribute("aria-disabled")&&"false"!==e.getAttribute("aria-disabled")}(e)&&(e.hasAttribute("tabindex")||(e instanceof HTMLAnchorElement||e instanceof HTMLAreaElement)&&e.hasAttribute("href")||e instanceof HTMLButtonElement||e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement||e instanceof HTMLIFrameElement)}const Fe=new Map;const Ve=document.createElement("template");Ve.innerHTML='\n\t
\n\t
\n\t\n\t
\n';class He extends HTMLElement{constructor(){super(),this.debounceId=Math.random().toString(),this._focused=!1;const e=this.attachShadow({mode:"open"});e.appendChild(Ve.content.cloneNode(!0)),this.$backup=e.querySelector("#backup"),this.$start=e.querySelector("#start"),this.$end=e.querySelector("#end"),this.focusLastElement=this.focusLastElement.bind(this),this.focusFirstElement=this.focusFirstElement.bind(this),this.onFocusIn=this.onFocusIn.bind(this),this.onFocusOut=this.onFocusOut.bind(this)}static get observedAttributes(){return["inactive"]}get inactive(){return this.hasAttribute("inactive")}set inactive(e){e?this.setAttribute("inactive",""):this.removeAttribute("inactive")}get focused(){return this._focused}connectedCallback(){this.$start.addEventListener("focus",this.focusLastElement),this.$end.addEventListener("focus",this.focusFirstElement),this.addEventListener("focusin",this.onFocusIn),this.addEventListener("focusout",this.onFocusOut),this.render()}disconnectedCallback(){this.$start.removeEventListener("focus",this.focusLastElement),this.$end.removeEventListener("focus",this.focusFirstElement),this.removeEventListener("focusin",this.onFocusIn),this.removeEventListener("focusout",this.onFocusOut)}attributeChangedCallback(){this.render()}focusFirstElement(){this.trapFocus()}focusLastElement(){this.trapFocus(!0)}getFocusableElements(){return Pe(this,Le,Ne)}trapFocus(e){if(this.inactive)return;let t=this.getFocusableElements();t.length>0?(e?t[t.length-1].focus():t[0].focus(),this.$backup.setAttribute("tabindex","-1")):(this.$backup.setAttribute("tabindex","0"),this.$backup.focus())}onFocusIn(){this.updateFocused(!0)}onFocusOut(){this.updateFocused(!1)}updateFocused(e){!function(e,t,n){const a=Fe.get(n);null!=a&&window.clearTimeout(a),Fe.set(n,window.setTimeout((()=>{e(),Fe.delete(n)}),t))}((()=>{this.focused!==e&&(this._focused=e,this.render())}),0,this.debounceId)}render(){this.$start.setAttribute("tabindex",!this.focused||this.inactive?"-1":"0"),this.$end.setAttribute("tabindex",!this.focused||this.inactive?"-1":"0"),this.focused?this.setAttribute("focused",""):this.removeAttribute("focused")}}function Be(e){return Number(e.getAttribute("data-dialog-count"))||0}function qe(e,t){e.setAttribute("data-dialog-count",t.toString())}function Ue(e=document.activeElement){return null!=e&&null!=e.shadowRoot&&null!=e.shadowRoot.activeElement?Ue(e.shadowRoot.activeElement):e}window.customElements.define("focus-trap",He);const We=document.createElement("template");We.innerHTML='\n \n
\n \n \n \n';class Ze extends HTMLElement{constructor(){super(),this.$scrollContainer=document.documentElement,this.$previousActiveElement=null;const e=this.attachShadow({mode:"open"});e.appendChild(We.content.cloneNode(!0)),this.$dialog=e.querySelector("#dialog"),this.$backdrop=e.querySelector("#backdrop"),this.onBackdropClick=this.onBackdropClick.bind(this),this.onKeyDown=this.onKeyDown.bind(this),this.setAttribute("aria-modal","true"),this.$dialog.setAttribute("role","alertdialog")}static get observedAttributes(){return["open","center"]}get open(){return this.hasAttribute("open")}set open(e){e?this.setAttribute("open",""):this.removeAttribute("open")}get center(){return this.hasAttribute("center")}set center(e){e?this.setAttribute("center",""):this.removeAttribute("center")}connectedCallback(){this.$backdrop.addEventListener("click",this.onBackdropClick)}disconnectedCallback(){this.$backdrop.removeEventListener("click",this.onBackdropClick),this.open&&this.didClose()}show(){this.open=!0}close(e){this.result=e,this.open=!1}onBackdropClick(){this.assertClosing()&&this.close()}onKeyDown(e){if("Escape"===e.code)this.assertClosing()&&(this.close(),e.stopImmediatePropagation())}assertClosing(){return this.dispatchEvent(new CustomEvent("closing",{cancelable:!0}))}didOpen(){this.$previousActiveElement=Ue(document.activeElement),requestAnimationFrame((()=>{this.$dialog.focusFirstElement()})),this.tabIndex=0,this.$scrollContainer.style.overflow="hidden",this.addEventListener("keydown",this.onKeyDown,{capture:!0,passive:!0}),qe(this.$scrollContainer,Be(this.$scrollContainer)+1),this.dispatchEvent(new CustomEvent("open"))}didClose(){this.removeEventListener("keydown",this.onKeyDown,{capture:!0}),qe(this.$scrollContainer,Math.max(0,Be(this.$scrollContainer)-1)),Be(this.$scrollContainer)<=0&&(this.$scrollContainer.style.overflow=""),this.tabIndex=-1,null!=this.$previousActiveElement&&(this.$previousActiveElement.focus(),this.$previousActiveElement=null),this.dispatchEvent(new CustomEvent("close",{detail:this.result}))}attributeChangedCallback(e,t,n){if("open"===e)this.open?this.didOpen():this.didClose()}}var Qe,Ge;function Ye(e){return e.substr(0,e.indexOf("."))}customElements.define("web-dialog",Ze),function(e){e.language="language",e.system="system",e.comma_decimal="comma_decimal",e.decimal_comma="decimal_comma",e.space_comma="space_comma",e.none="none"}(Qe||(Qe={})),function(e){e.language="language",e.system="system",e.am_pm="12",e.twenty_four="24"}(Ge||(Ge={}));var Ke,Xe,Je=["closed","locked","off"],et=function(e,t,n,a){a=a||{},n=null==n?{}:n;var i=new Event(t,{bubbles:void 0===a.bubbles||a.bubbles,cancelable:Boolean(a.cancelable),composed:void 0===a.composed||a.composed});return i.detail=n,e.dispatchEvent(i),i},tt=function(e){et(window,"haptic",e)},nt=function(e,t){return function(e,t,n){void 0===n&&(n=!0);var a,i=Ye(t),r="group"===i?"homeassistant":i;switch(i){case"lock":a=n?"unlock":"lock";break;case"cover":a=n?"open_cover":"close_cover";break;default:a=n?"turn_on":"turn_off"}return e.callService(r,a,{entity_id:t})}(e,t,Je.includes(e.states[t].state))},at=function(e,t,n,a){if(a||(a={action:"more-info"}),!a.confirmation||a.confirmation.exemptions&&a.confirmation.exemptions.some((function(e){return e.user===t.user.id}))||(tt("warning"),confirm(a.confirmation.text||"Are you sure you want to "+a.action+"?")))switch(a.action){case"more-info":(n.entity||n.camera_image)&&et(e,"hass-more-info",{entityId:n.entity?n.entity:n.camera_image});break;case"navigate":a.navigation_path&&function(e,t,n){void 0===n&&(n=!1),n?history.replaceState(null,"",t):history.pushState(null,"",t),et(window,"location-changed",{replace:n})}(0,a.navigation_path);break;case"url":a.url_path&&window.open(a.url_path);break;case"toggle":n.entity&&(nt(t,n.entity),tt("success"));break;case"perform-action":if(!a.perform_action)return void tt("failure");var i=a.perform_action.split(".",2);t.callService(i[0],i[1],a.data,a.target),tt("success");break;case"call-service":if(!a.service)return void tt("failure");var r=a.service.split(".",2);t.callService(r[0],r[1],a.data,a.target),tt("success");break;case"fire-dom-event":et(e,"ll-custom",a)}};!function(e){e.assertEqual=e=>e,e.assertIs=function(e){},e.assertNever=function(e){throw new Error},e.arrayToEnum=e=>{const t={};for(const n of e)t[n]=n;return t},e.getValidEnumValues=t=>{const n=e.objectKeys(t).filter((e=>"number"!=typeof t[t[e]])),a={};for(const e of n)a[e]=t[e];return e.objectValues(a)},e.objectValues=t=>e.objectKeys(t).map((function(e){return t[e]})),e.objectKeys="function"==typeof Object.keys?e=>Object.keys(e):e=>{const t=[];for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(const n of e)if(t(n))return n},e.isInteger="function"==typeof Number.isInteger?e=>Number.isInteger(e):e=>"number"==typeof e&&isFinite(e)&&Math.floor(e)===e,e.joinValues=function(e,t=" | "){return e.map((e=>"string"==typeof e?`'${e}'`:e)).join(t)},e.jsonStringifyReplacer=(e,t)=>"bigint"==typeof t?t.toString():t}(Ke||(Ke={})),function(e){e.mergeShapes=(e,t)=>({...e,...t})}(Xe||(Xe={}));const it=Ke.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),rt=e=>{switch(typeof e){case"undefined":return it.undefined;case"string":return it.string;case"number":return isNaN(e)?it.nan:it.number;case"boolean":return it.boolean;case"function":return it.function;case"bigint":return it.bigint;case"symbol":return it.symbol;case"object":return Array.isArray(e)?it.array:null===e?it.null:e.then&&"function"==typeof e.then&&e.catch&&"function"==typeof e.catch?it.promise:"undefined"!=typeof Map&&e instanceof Map?it.map:"undefined"!=typeof Set&&e instanceof Set?it.set:"undefined"!=typeof Date&&e instanceof Date?it.date:it.object;default:return it.unknown}},ot=Ke.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class st extends Error{constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}get errors(){return this.issues}format(e){const t=e||function(e){return e.message},n={_errors:[]},a=e=>{for(const i of e.issues)if("invalid_union"===i.code)i.unionErrors.map(a);else if("invalid_return_type"===i.code)a(i.returnTypeError);else if("invalid_arguments"===i.code)a(i.argumentsError);else if(0===i.path.length)n._errors.push(t(i));else{let e=n,a=0;for(;ae.message)){const t={},n=[];for(const a of this.issues)a.path.length>0?(t[a.path[0]]=t[a.path[0]]||[],t[a.path[0]].push(e(a))):n.push(e(a));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}st.create=e=>new st(e);const ct=(e,t)=>{let n;switch(e.code){case ot.invalid_type:n=e.received===it.undefined?"Required":`Expected ${e.expected}, received ${e.received}`;break;case ot.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,Ke.jsonStringifyReplacer)}`;break;case ot.unrecognized_keys:n=`Unrecognized key(s) in object: ${Ke.joinValues(e.keys,", ")}`;break;case ot.invalid_union:n="Invalid input";break;case ot.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Ke.joinValues(e.options)}`;break;case ot.invalid_enum_value:n=`Invalid enum value. Expected ${Ke.joinValues(e.options)}, received '${e.received}'`;break;case ot.invalid_arguments:n="Invalid function arguments";break;case ot.invalid_return_type:n="Invalid function return type";break;case ot.invalid_date:n="Invalid date";break;case ot.invalid_string:"object"==typeof e.validation?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,"number"==typeof e.validation.position&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:Ke.assertNever(e.validation):n="regex"!==e.validation?`Invalid ${e.validation}`:"Invalid";break;case ot.too_small:n="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:"date"===e.type?`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:"Invalid input";break;case ot.too_big:n="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"bigint"===e.type?`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"date"===e.type?`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:"Invalid input";break;case ot.custom:n="Invalid input";break;case ot.invalid_intersection_types:n="Intersection results could not be merged";break;case ot.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case ot.not_finite:n="Number must be finite";break;default:n=t.defaultError,Ke.assertNever(e)}return{message:n}};let lt=ct;function dt(){return lt}const ut=e=>{const{data:t,path:n,errorMaps:a,issueData:i}=e,r=[...n,...i.path||[]],o={...i,path:r};if(void 0!==i.message)return{...i,path:r,message:i.message};let s="";const c=a.filter((e=>!!e)).slice().reverse();for(const e of c)s=e(o,{data:t,defaultError:s}).message;return{...i,path:r,message:s}};function ht(e,t){const n=dt(),a=ut({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===ct?void 0:ct].filter((e=>!!e))});e.common.issues.push(a)}class pt{constructor(){this.value="valid"}dirty(){"valid"===this.value&&(this.value="dirty")}abort(){"aborted"!==this.value&&(this.value="aborted")}static mergeArray(e,t){const n=[];for(const a of t){if("aborted"===a.status)return mt;"dirty"===a.status&&e.dirty(),n.push(a.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,t){const n=[];for(const e of t){const t=await e.key,a=await e.value;n.push({key:t,value:a})}return pt.mergeObjectSync(e,n)}static mergeObjectSync(e,t){const n={};for(const a of t){const{key:t,value:i}=a;if("aborted"===t.status)return mt;if("aborted"===i.status)return mt;"dirty"===t.status&&e.dirty(),"dirty"===i.status&&e.dirty(),"__proto__"===t.value||void 0===i.value&&!a.alwaysSet||(n[t.value]=i.value)}return{status:e.value,value:n}}}const mt=Object.freeze({status:"aborted"}),gt=e=>({status:"dirty",value:e}),ft=e=>({status:"valid",value:e}),_t=e=>"aborted"===e.status,vt=e=>"dirty"===e.status,yt=e=>"valid"===e.status,bt=e=>"undefined"!=typeof Promise&&e instanceof Promise;function wt(e,t,n,a){if("a"===n&&!a)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?a:"a"===n?a.call(e):a?a.value:t.get(e)}function xt(e,t,n,a,i){if("m"===a)throw new TypeError("Private method is not writable");if("a"===a&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===a?i.call(e,n):i?i.value=n:t.set(e,n),n}var Ct,Mt,kt;"function"==typeof SuppressedError&&SuppressedError,function(e){e.errToObj=e=>"string"==typeof e?{message:e}:e||{},e.toString=e=>"string"==typeof e?e:null==e?void 0:e.message}(Ct||(Ct={}));class St{constructor(e,t,n,a){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=a}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const Et=(e,t)=>{if(yt(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new st(e.common.issues);return this._error=t,this._error}}};function $t(e){if(!e)return{};const{errorMap:t,invalid_type_error:n,required_error:a,description:i}=e;if(t&&(n||a))throw new Error('Can\'t use "invalid_type_error" or "required_error" in conjunction with custom error map.');if(t)return{errorMap:t,description:i};return{errorMap:(t,i)=>{var r,o;const{message:s}=e;return"invalid_enum_value"===t.code?{message:null!=s?s:i.defaultError}:void 0===i.data?{message:null!==(r=null!=s?s:a)&&void 0!==r?r:i.defaultError}:"invalid_type"!==t.code?{message:i.defaultError}:{message:null!==(o=null!=s?s:n)&&void 0!==o?o:i.defaultError}},description:i}}class At{constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(e){return rt(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:rt(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new pt,ctx:{common:e.parent.common,data:e.data,parsedType:rt(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(bt(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){var n;const a={common:{issues:[],async:null!==(n=null==t?void 0:t.async)&&void 0!==n&&n,contextualErrorMap:null==t?void 0:t.errorMap},path:(null==t?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:rt(e)},i=this._parseSync({data:e,path:a.path,parent:a});return Et(a,i)}async parseAsync(e,t){const n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){const n={common:{issues:[],contextualErrorMap:null==t?void 0:t.errorMap,async:!0},path:(null==t?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:rt(e)},a=this._parse({data:e,path:n.path,parent:n}),i=await(bt(a)?a:Promise.resolve(a));return Et(n,i)}refine(e,t){const n=e=>"string"==typeof t||void 0===t?{message:t}:"function"==typeof t?t(e):t;return this._refinement(((t,a)=>{const i=e(t),r=()=>a.addIssue({code:ot.custom,...n(t)});return"undefined"!=typeof Promise&&i instanceof Promise?i.then((e=>!!e||(r(),!1))):!!i||(r(),!1)}))}refinement(e,t){return this._refinement(((n,a)=>!!e(n)||(a.addIssue("function"==typeof t?t(n,a):t),!1)))}_refinement(e){return new kn({schema:this,typeName:Pn.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return Sn.create(this,this._def)}nullable(){return En.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return on.create(this,this._def)}promise(){return Mn.create(this,this._def)}or(e){return ln.create([this,e],this._def)}and(e){return pn.create(this,e,this._def)}transform(e){return new kn({...$t(this._def),schema:this,typeName:Pn.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t="function"==typeof e?e:()=>e;return new $n({...$t(this._def),innerType:this,defaultValue:t,typeName:Pn.ZodDefault})}brand(){return new Tn({typeName:Pn.ZodBranded,type:this,...$t(this._def)})}catch(e){const t="function"==typeof e?e:()=>e;return new An({...$t(this._def),innerType:this,catchValue:t,typeName:Pn.ZodCatch})}describe(e){return new(0,this.constructor)({...this._def,description:e})}pipe(e){return jn.create(this,e)}readonly(){return On.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const zt=/^c[^\s-]{8,}$/i,It=/^[0-9a-z]+$/,Tt=/^[0-9A-HJKMNP-TV-Z]{26}$/,jt=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Ot=/^[a-z0-9_-]{21}$/i,Dt=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Rt=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;let Pt;const Lt=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Nt=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,Ft=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Vt="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Ht=new RegExp(`^${Vt}$`);function Bt(e){let t="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return e.precision?t=`${t}\\.\\d{${e.precision}}`:null==e.precision&&(t=`${t}(\\.\\d+)?`),t}function qt(e){let t=`${Vt}T${Bt(e)}`;const n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function Ut(e,t){return!("v4"!==t&&t||!Lt.test(e))||!("v6"!==t&&t||!Nt.test(e))}class Wt extends At{_parse(e){this._def.coerce&&(e.data=String(e.data));if(this._getType(e)!==it.string){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.string,received:t.parsedType}),mt}const t=new pt;let n;for(const a of this._def.checks)if("min"===a.kind)e.data.lengtha.value&&(n=this._getOrReturnCtx(e,n),ht(n,{code:ot.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),t.dirty());else if("length"===a.kind){const i=e.data.length>a.value,r=e.data.lengthe.test(t)),{validation:t,code:ot.invalid_string,...Ct.errToObj(n)})}_addCheck(e){return new Wt({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...Ct.errToObj(e)})}url(e){return this._addCheck({kind:"url",...Ct.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...Ct.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...Ct.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...Ct.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...Ct.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...Ct.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...Ct.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...Ct.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...Ct.errToObj(e)})}datetime(e){var t,n;return"string"==typeof e?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:void 0===(null==e?void 0:e.precision)?null:null==e?void 0:e.precision,offset:null!==(t=null==e?void 0:e.offset)&&void 0!==t&&t,local:null!==(n=null==e?void 0:e.local)&&void 0!==n&&n,...Ct.errToObj(null==e?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return"string"==typeof e?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:void 0===(null==e?void 0:e.precision)?null:null==e?void 0:e.precision,...Ct.errToObj(null==e?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...Ct.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...Ct.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:null==t?void 0:t.position,...Ct.errToObj(null==t?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...Ct.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...Ct.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...Ct.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...Ct.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...Ct.errToObj(t)})}nonempty(e){return this.min(1,Ct.errToObj(e))}trim(){return new Wt({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Wt({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Wt({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((e=>"datetime"===e.kind))}get isDate(){return!!this._def.checks.find((e=>"date"===e.kind))}get isTime(){return!!this._def.checks.find((e=>"time"===e.kind))}get isDuration(){return!!this._def.checks.find((e=>"duration"===e.kind))}get isEmail(){return!!this._def.checks.find((e=>"email"===e.kind))}get isURL(){return!!this._def.checks.find((e=>"url"===e.kind))}get isEmoji(){return!!this._def.checks.find((e=>"emoji"===e.kind))}get isUUID(){return!!this._def.checks.find((e=>"uuid"===e.kind))}get isNANOID(){return!!this._def.checks.find((e=>"nanoid"===e.kind))}get isCUID(){return!!this._def.checks.find((e=>"cuid"===e.kind))}get isCUID2(){return!!this._def.checks.find((e=>"cuid2"===e.kind))}get isULID(){return!!this._def.checks.find((e=>"ulid"===e.kind))}get isIP(){return!!this._def.checks.find((e=>"ip"===e.kind))}get isBase64(){return!!this._def.checks.find((e=>"base64"===e.kind))}get minLength(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.valuea?n:a;return parseInt(e.toFixed(i).replace(".",""))%parseInt(t.toFixed(i).replace(".",""))/Math.pow(10,i)}Wt.create=e=>{var t;return new Wt({checks:[],typeName:Pn.ZodString,coerce:null!==(t=null==e?void 0:e.coerce)&&void 0!==t&&t,...$t(e)})};class Qt extends At{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){this._def.coerce&&(e.data=Number(e.data));if(this._getType(e)!==it.number){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.number,received:t.parsedType}),mt}let t;const n=new pt;for(const a of this._def.checks)if("int"===a.kind)Ke.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.invalid_type,expected:"integer",received:"float",message:a.message}),n.dirty());else if("min"===a.kind){(a.inclusive?e.dataa.value:e.data>=a.value)&&(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),n.dirty())}else"multipleOf"===a.kind?0!==Zt(e.data,a.value)&&(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.not_multiple_of,multipleOf:a.value,message:a.message}),n.dirty()):"finite"===a.kind?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.not_finite,message:a.message}),n.dirty()):Ke.assertNever(a);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,Ct.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Ct.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Ct.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Ct.toString(t))}setLimit(e,t,n,a){return new Qt({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Ct.toString(a)}]})}_addCheck(e){return new Qt({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:Ct.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:Ct.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:Ct.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:Ct.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:Ct.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Ct.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:Ct.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Ct.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Ct.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value"int"===e.kind||"multipleOf"===e.kind&&Ke.isInteger(e.value)))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if("finite"===n.kind||"int"===n.kind||"multipleOf"===n.kind)return!0;"min"===n.kind?(null===t||n.value>t)&&(t=n.value):"max"===n.kind&&(null===e||n.valuenew Qt({checks:[],typeName:Pn.ZodNumber,coerce:(null==e?void 0:e.coerce)||!1,...$t(e)});class Gt extends At{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){this._def.coerce&&(e.data=BigInt(e.data));if(this._getType(e)!==it.bigint){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.bigint,received:t.parsedType}),mt}let t;const n=new pt;for(const a of this._def.checks)if("min"===a.kind){(a.inclusive?e.dataa.value:e.data>=a.value)&&(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),n.dirty())}else"multipleOf"===a.kind?e.data%a.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.not_multiple_of,multipleOf:a.value,message:a.message}),n.dirty()):Ke.assertNever(a);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,Ct.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Ct.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Ct.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Ct.toString(t))}setLimit(e,t,n,a){return new Gt({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Ct.toString(a)}]})}_addCheck(e){return new Gt({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:Ct.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:Ct.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:Ct.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:Ct.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Ct.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value{var t;return new Gt({checks:[],typeName:Pn.ZodBigInt,coerce:null!==(t=null==e?void 0:e.coerce)&&void 0!==t&&t,...$t(e)})};class Yt extends At{_parse(e){this._def.coerce&&(e.data=Boolean(e.data));if(this._getType(e)!==it.boolean){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.boolean,received:t.parsedType}),mt}return ft(e.data)}}Yt.create=e=>new Yt({typeName:Pn.ZodBoolean,coerce:(null==e?void 0:e.coerce)||!1,...$t(e)});class Kt extends At{_parse(e){this._def.coerce&&(e.data=new Date(e.data));if(this._getType(e)!==it.date){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.date,received:t.parsedType}),mt}if(isNaN(e.data.getTime())){return ht(this._getOrReturnCtx(e),{code:ot.invalid_date}),mt}const t=new pt;let n;for(const a of this._def.checks)"min"===a.kind?e.data.getTime()a.value&&(n=this._getOrReturnCtx(e,n),ht(n,{code:ot.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),t.dirty()):Ke.assertNever(a);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Kt({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:Ct.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:Ct.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return null!=e?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.valuenew Kt({checks:[],coerce:(null==e?void 0:e.coerce)||!1,typeName:Pn.ZodDate,...$t(e)});class Xt extends At{_parse(e){if(this._getType(e)!==it.symbol){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.symbol,received:t.parsedType}),mt}return ft(e.data)}}Xt.create=e=>new Xt({typeName:Pn.ZodSymbol,...$t(e)});class Jt extends At{_parse(e){if(this._getType(e)!==it.undefined){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.undefined,received:t.parsedType}),mt}return ft(e.data)}}Jt.create=e=>new Jt({typeName:Pn.ZodUndefined,...$t(e)});class en extends At{_parse(e){if(this._getType(e)!==it.null){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.null,received:t.parsedType}),mt}return ft(e.data)}}en.create=e=>new en({typeName:Pn.ZodNull,...$t(e)});class tn extends At{constructor(){super(...arguments),this._any=!0}_parse(e){return ft(e.data)}}tn.create=e=>new tn({typeName:Pn.ZodAny,...$t(e)});class nn extends At{constructor(){super(...arguments),this._unknown=!0}_parse(e){return ft(e.data)}}nn.create=e=>new nn({typeName:Pn.ZodUnknown,...$t(e)});class an extends At{_parse(e){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.never,received:t.parsedType}),mt}}an.create=e=>new an({typeName:Pn.ZodNever,...$t(e)});class rn extends At{_parse(e){if(this._getType(e)!==it.undefined){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.void,received:t.parsedType}),mt}return ft(e.data)}}rn.create=e=>new rn({typeName:Pn.ZodVoid,...$t(e)});class on extends At{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),a=this._def;if(t.parsedType!==it.array)return ht(t,{code:ot.invalid_type,expected:it.array,received:t.parsedType}),mt;if(null!==a.exactLength){const e=t.data.length>a.exactLength.value,i=t.data.lengtha.maxLength.value&&(ht(t,{code:ot.too_big,maximum:a.maxLength.value,type:"array",inclusive:!0,exact:!1,message:a.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map(((e,n)=>a.type._parseAsync(new St(t,e,t.path,n))))).then((e=>pt.mergeArray(n,e)));const i=[...t.data].map(((e,n)=>a.type._parseSync(new St(t,e,t.path,n))));return pt.mergeArray(n,i)}get element(){return this._def.type}min(e,t){return new on({...this._def,minLength:{value:e,message:Ct.toString(t)}})}max(e,t){return new on({...this._def,maxLength:{value:e,message:Ct.toString(t)}})}length(e,t){return new on({...this._def,exactLength:{value:e,message:Ct.toString(t)}})}nonempty(e){return this.min(1,e)}}function sn(e){if(e instanceof cn){const t={};for(const n in e.shape){const a=e.shape[n];t[n]=Sn.create(sn(a))}return new cn({...e._def,shape:()=>t})}return e instanceof on?new on({...e._def,type:sn(e.element)}):e instanceof Sn?Sn.create(sn(e.unwrap())):e instanceof En?En.create(sn(e.unwrap())):e instanceof mn?mn.create(e.items.map((e=>sn(e)))):e}on.create=(e,t)=>new on({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Pn.ZodArray,...$t(t)});class cn extends At{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(null!==this._cached)return this._cached;const e=this._def.shape(),t=Ke.objectKeys(e);return this._cached={shape:e,keys:t}}_parse(e){if(this._getType(e)!==it.object){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.object,received:t.parsedType}),mt}const{status:t,ctx:n}=this._processInputParams(e),{shape:a,keys:i}=this._getCached(),r=[];if(!(this._def.catchall instanceof an&&"strip"===this._def.unknownKeys))for(const e in n.data)i.includes(e)||r.push(e);const o=[];for(const e of i){const t=a[e],i=n.data[e];o.push({key:{status:"valid",value:e},value:t._parse(new St(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof an){const e=this._def.unknownKeys;if("passthrough"===e)for(const e of r)o.push({key:{status:"valid",value:e},value:{status:"valid",value:n.data[e]}});else if("strict"===e)r.length>0&&(ht(n,{code:ot.unrecognized_keys,keys:r}),t.dirty());else if("strip"!==e)throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const e=this._def.catchall;for(const t of r){const a=n.data[t];o.push({key:{status:"valid",value:t},value:e._parse(new St(n,a,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then((async()=>{const e=[];for(const t of o){const n=await t.key,a=await t.value;e.push({key:n,value:a,alwaysSet:t.alwaysSet})}return e})).then((e=>pt.mergeObjectSync(t,e))):pt.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(e){return Ct.errToObj,new cn({...this._def,unknownKeys:"strict",...void 0!==e?{errorMap:(t,n)=>{var a,i,r,o;const s=null!==(r=null===(i=(a=this._def).errorMap)||void 0===i?void 0:i.call(a,t,n).message)&&void 0!==r?r:n.defaultError;return"unrecognized_keys"===t.code?{message:null!==(o=Ct.errToObj(e).message)&&void 0!==o?o:s}:{message:s}}}:{}})}strip(){return new cn({...this._def,unknownKeys:"strip"})}passthrough(){return new cn({...this._def,unknownKeys:"passthrough"})}extend(e){return new cn({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new cn({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Pn.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new cn({...this._def,catchall:e})}pick(e){const t={};return Ke.objectKeys(e).forEach((n=>{e[n]&&this.shape[n]&&(t[n]=this.shape[n])})),new cn({...this._def,shape:()=>t})}omit(e){const t={};return Ke.objectKeys(this.shape).forEach((n=>{e[n]||(t[n]=this.shape[n])})),new cn({...this._def,shape:()=>t})}deepPartial(){return sn(this)}partial(e){const t={};return Ke.objectKeys(this.shape).forEach((n=>{const a=this.shape[n];e&&!e[n]?t[n]=a:t[n]=a.optional()})),new cn({...this._def,shape:()=>t})}required(e){const t={};return Ke.objectKeys(this.shape).forEach((n=>{if(e&&!e[n])t[n]=this.shape[n];else{let e=this.shape[n];for(;e instanceof Sn;)e=e._def.innerType;t[n]=e}})),new cn({...this._def,shape:()=>t})}keyof(){return wn(Ke.objectKeys(this.shape))}}cn.create=(e,t)=>new cn({shape:()=>e,unknownKeys:"strip",catchall:an.create(),typeName:Pn.ZodObject,...$t(t)}),cn.strictCreate=(e,t)=>new cn({shape:()=>e,unknownKeys:"strict",catchall:an.create(),typeName:Pn.ZodObject,...$t(t)}),cn.lazycreate=(e,t)=>new cn({shape:e,unknownKeys:"strip",catchall:an.create(),typeName:Pn.ZodObject,...$t(t)});class ln extends At{_parse(e){const{ctx:t}=this._processInputParams(e),n=this._def.options;if(t.common.async)return Promise.all(n.map((async e=>{const n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}}))).then((function(e){for(const t of e)if("valid"===t.result.status)return t.result;for(const n of e)if("dirty"===n.result.status)return t.common.issues.push(...n.ctx.common.issues),n.result;const n=e.map((e=>new st(e.ctx.common.issues)));return ht(t,{code:ot.invalid_union,unionErrors:n}),mt}));{let e;const a=[];for(const i of n){const n={...t,common:{...t.common,issues:[]},parent:null},r=i._parseSync({data:t.data,path:t.path,parent:n});if("valid"===r.status)return r;"dirty"!==r.status||e||(e={result:r,ctx:n}),n.common.issues.length&&a.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;const i=a.map((e=>new st(e)));return ht(t,{code:ot.invalid_union,unionErrors:i}),mt}}get options(){return this._def.options}}ln.create=(e,t)=>new ln({options:e,typeName:Pn.ZodUnion,...$t(t)});const dn=e=>e instanceof yn?dn(e.schema):e instanceof kn?dn(e.innerType()):e instanceof bn?[e.value]:e instanceof xn?e.options:e instanceof Cn?Ke.objectValues(e.enum):e instanceof $n?dn(e._def.innerType):e instanceof Jt?[void 0]:e instanceof en?[null]:e instanceof Sn?[void 0,...dn(e.unwrap())]:e instanceof En?[null,...dn(e.unwrap())]:e instanceof Tn||e instanceof On?dn(e.unwrap()):e instanceof An?dn(e._def.innerType):[];class un extends At{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==it.object)return ht(t,{code:ot.invalid_type,expected:it.object,received:t.parsedType}),mt;const n=this.discriminator,a=t.data[n],i=this.optionsMap.get(a);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(ht(t,{code:ot.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),mt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,n){const a=new Map;for(const n of t){const t=dn(n.shape[e]);if(!t.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(const i of t){if(a.has(i))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(i)}`);a.set(i,n)}}return new un({typeName:Pn.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:a,...$t(n)})}}function hn(e,t){const n=rt(e),a=rt(t);if(e===t)return{valid:!0,data:e};if(n===it.object&&a===it.object){const n=Ke.objectKeys(t),a=Ke.objectKeys(e).filter((e=>-1!==n.indexOf(e))),i={...e,...t};for(const n of a){const a=hn(e[n],t[n]);if(!a.valid)return{valid:!1};i[n]=a.data}return{valid:!0,data:i}}if(n===it.array&&a===it.array){if(e.length!==t.length)return{valid:!1};const n=[];for(let a=0;a{if(_t(e)||_t(a))return mt;const i=hn(e.value,a.value);return i.valid?((vt(e)||vt(a))&&t.dirty(),{status:t.value,value:i.data}):(ht(n,{code:ot.invalid_intersection_types}),mt)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then((([e,t])=>a(e,t))):a(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}pn.create=(e,t,n)=>new pn({left:e,right:t,typeName:Pn.ZodIntersection,...$t(n)});class mn extends At{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==it.array)return ht(n,{code:ot.invalid_type,expected:it.array,received:n.parsedType}),mt;if(n.data.lengththis._def.items.length&&(ht(n,{code:ot.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const a=[...n.data].map(((e,t)=>{const a=this._def.items[t]||this._def.rest;return a?a._parse(new St(n,e,n.path,t)):null})).filter((e=>!!e));return n.common.async?Promise.all(a).then((e=>pt.mergeArray(t,e))):pt.mergeArray(t,a)}get items(){return this._def.items}rest(e){return new mn({...this._def,rest:e})}}mn.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new mn({items:e,typeName:Pn.ZodTuple,rest:null,...$t(t)})};class gn extends At{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==it.object)return ht(n,{code:ot.invalid_type,expected:it.object,received:n.parsedType}),mt;const a=[],i=this._def.keyType,r=this._def.valueType;for(const e in n.data)a.push({key:i._parse(new St(n,e,n.path,e)),value:r._parse(new St(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?pt.mergeObjectAsync(t,a):pt.mergeObjectSync(t,a)}get element(){return this._def.valueType}static create(e,t,n){return new gn(t instanceof At?{keyType:e,valueType:t,typeName:Pn.ZodRecord,...$t(n)}:{keyType:Wt.create(),valueType:e,typeName:Pn.ZodRecord,...$t(t)})}}class fn extends At{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==it.map)return ht(n,{code:ot.invalid_type,expected:it.map,received:n.parsedType}),mt;const a=this._def.keyType,i=this._def.valueType,r=[...n.data.entries()].map((([e,t],r)=>({key:a._parse(new St(n,e,n.path,[r,"key"])),value:i._parse(new St(n,t,n.path,[r,"value"]))})));if(n.common.async){const e=new Map;return Promise.resolve().then((async()=>{for(const n of r){const a=await n.key,i=await n.value;if("aborted"===a.status||"aborted"===i.status)return mt;"dirty"!==a.status&&"dirty"!==i.status||t.dirty(),e.set(a.value,i.value)}return{status:t.value,value:e}}))}{const e=new Map;for(const n of r){const a=n.key,i=n.value;if("aborted"===a.status||"aborted"===i.status)return mt;"dirty"!==a.status&&"dirty"!==i.status||t.dirty(),e.set(a.value,i.value)}return{status:t.value,value:e}}}}fn.create=(e,t,n)=>new fn({valueType:t,keyType:e,typeName:Pn.ZodMap,...$t(n)});class _n extends At{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==it.set)return ht(n,{code:ot.invalid_type,expected:it.set,received:n.parsedType}),mt;const a=this._def;null!==a.minSize&&n.data.sizea.maxSize.value&&(ht(n,{code:ot.too_big,maximum:a.maxSize.value,type:"set",inclusive:!0,exact:!1,message:a.maxSize.message}),t.dirty());const i=this._def.valueType;function r(e){const n=new Set;for(const a of e){if("aborted"===a.status)return mt;"dirty"===a.status&&t.dirty(),n.add(a.value)}return{status:t.value,value:n}}const o=[...n.data.values()].map(((e,t)=>i._parse(new St(n,e,n.path,t))));return n.common.async?Promise.all(o).then((e=>r(e))):r(o)}min(e,t){return new _n({...this._def,minSize:{value:e,message:Ct.toString(t)}})}max(e,t){return new _n({...this._def,maxSize:{value:e,message:Ct.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}_n.create=(e,t)=>new _n({valueType:e,minSize:null,maxSize:null,typeName:Pn.ZodSet,...$t(t)});class vn extends At{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==it.function)return ht(t,{code:ot.invalid_type,expected:it.function,received:t.parsedType}),mt;function n(e,n){return ut({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,dt(),ct].filter((e=>!!e)),issueData:{code:ot.invalid_arguments,argumentsError:n}})}function a(e,n){return ut({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,dt(),ct].filter((e=>!!e)),issueData:{code:ot.invalid_return_type,returnTypeError:n}})}const i={errorMap:t.common.contextualErrorMap},r=t.data;if(this._def.returns instanceof Mn){const e=this;return ft((async function(...t){const o=new st([]),s=await e._def.args.parseAsync(t,i).catch((e=>{throw o.addIssue(n(t,e)),o})),c=await Reflect.apply(r,this,s),l=await e._def.returns._def.type.parseAsync(c,i).catch((e=>{throw o.addIssue(a(c,e)),o}));return l}))}{const e=this;return ft((function(...t){const o=e._def.args.safeParse(t,i);if(!o.success)throw new st([n(t,o.error)]);const s=Reflect.apply(r,this,o.data),c=e._def.returns.safeParse(s,i);if(!c.success)throw new st([a(s,c.error)]);return c.data}))}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new vn({...this._def,args:mn.create(e).rest(nn.create())})}returns(e){return new vn({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,n){return new vn({args:e||mn.create([]).rest(nn.create()),returns:t||nn.create(),typeName:Pn.ZodFunction,...$t(n)})}}class yn extends At{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}yn.create=(e,t)=>new yn({getter:e,typeName:Pn.ZodLazy,...$t(t)});class bn extends At{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return ht(t,{received:t.data,code:ot.invalid_literal,expected:this._def.value}),mt}return{status:"valid",value:e.data}}get value(){return this._def.value}}function wn(e,t){return new xn({values:e,typeName:Pn.ZodEnum,...$t(t)})}bn.create=(e,t)=>new bn({value:e,typeName:Pn.ZodLiteral,...$t(t)});class xn extends At{constructor(){super(...arguments),Mt.set(this,void 0)}_parse(e){if("string"!=typeof e.data){const t=this._getOrReturnCtx(e),n=this._def.values;return ht(t,{expected:Ke.joinValues(n),received:t.parsedType,code:ot.invalid_type}),mt}if(wt(this,Mt,"f")||xt(this,Mt,new Set(this._def.values),"f"),!wt(this,Mt,"f").has(e.data)){const t=this._getOrReturnCtx(e),n=this._def.values;return ht(t,{received:t.data,code:ot.invalid_enum_value,options:n}),mt}return ft(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return xn.create(e,{...this._def,...t})}exclude(e,t=this._def){return xn.create(this.options.filter((t=>!e.includes(t))),{...this._def,...t})}}Mt=new WeakMap,xn.create=wn;class Cn extends At{constructor(){super(...arguments),kt.set(this,void 0)}_parse(e){const t=Ke.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==it.string&&n.parsedType!==it.number){const e=Ke.objectValues(t);return ht(n,{expected:Ke.joinValues(e),received:n.parsedType,code:ot.invalid_type}),mt}if(wt(this,kt,"f")||xt(this,kt,new Set(Ke.getValidEnumValues(this._def.values)),"f"),!wt(this,kt,"f").has(e.data)){const e=Ke.objectValues(t);return ht(n,{received:n.data,code:ot.invalid_enum_value,options:e}),mt}return ft(e.data)}get enum(){return this._def.values}}kt=new WeakMap,Cn.create=(e,t)=>new Cn({values:e,typeName:Pn.ZodNativeEnum,...$t(t)});class Mn extends At{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==it.promise&&!1===t.common.async)return ht(t,{code:ot.invalid_type,expected:it.promise,received:t.parsedType}),mt;const n=t.parsedType===it.promise?t.data:Promise.resolve(t.data);return ft(n.then((e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap}))))}}Mn.create=(e,t)=>new Mn({type:e,typeName:Pn.ZodPromise,...$t(t)});class kn extends At{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Pn.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:n}=this._processInputParams(e),a=this._def.effect||null,i={addIssue:e=>{ht(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),"preprocess"===a.type){const e=a.transform(n.data,i);if(n.common.async)return Promise.resolve(e).then((async e=>{if("aborted"===t.value)return mt;const a=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return"aborted"===a.status?mt:"dirty"===a.status||"dirty"===t.value?gt(a.value):a}));{if("aborted"===t.value)return mt;const a=this._def.schema._parseSync({data:e,path:n.path,parent:n});return"aborted"===a.status?mt:"dirty"===a.status||"dirty"===t.value?gt(a.value):a}}if("refinement"===a.type){const e=e=>{const t=a.refinement(e,i);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return e};if(!1===n.common.async){const a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return"aborted"===a.status?mt:("dirty"===a.status&&t.dirty(),e(a.value),{status:t.value,value:a.value})}return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then((n=>"aborted"===n.status?mt:("dirty"===n.status&&t.dirty(),e(n.value).then((()=>({status:t.value,value:n.value}))))))}if("transform"===a.type){if(!1===n.common.async){const e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!yt(e))return e;const r=a.transform(e.value,i);if(r instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:r}}return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then((e=>yt(e)?Promise.resolve(a.transform(e.value,i)).then((e=>({status:t.value,value:e}))):e))}Ke.assertNever(a)}}kn.create=(e,t,n)=>new kn({schema:e,typeName:Pn.ZodEffects,effect:t,...$t(n)}),kn.createWithPreprocess=(e,t,n)=>new kn({schema:t,effect:{type:"preprocess",transform:e},typeName:Pn.ZodEffects,...$t(n)});class Sn extends At{_parse(e){return this._getType(e)===it.undefined?ft(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Sn.create=(e,t)=>new Sn({innerType:e,typeName:Pn.ZodOptional,...$t(t)});class En extends At{_parse(e){return this._getType(e)===it.null?ft(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}En.create=(e,t)=>new En({innerType:e,typeName:Pn.ZodNullable,...$t(t)});class $n extends At{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===it.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}$n.create=(e,t)=>new $n({innerType:e,typeName:Pn.ZodDefault,defaultValue:"function"==typeof t.default?t.default:()=>t.default,...$t(t)});class An extends At{_parse(e){const{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},a=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return bt(a)?a.then((e=>({status:"valid",value:"valid"===e.status?e.value:this._def.catchValue({get error(){return new st(n.common.issues)},input:n.data})}))):{status:"valid",value:"valid"===a.status?a.value:this._def.catchValue({get error(){return new st(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}An.create=(e,t)=>new An({innerType:e,typeName:Pn.ZodCatch,catchValue:"function"==typeof t.catch?t.catch:()=>t.catch,...$t(t)});class zn extends At{_parse(e){if(this._getType(e)!==it.nan){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.nan,received:t.parsedType}),mt}return{status:"valid",value:e.data}}}zn.create=e=>new zn({typeName:Pn.ZodNaN,...$t(e)});const In=Symbol("zod_brand");class Tn extends At{_parse(e){const{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}class jn extends At{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async){return(async()=>{const e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return"aborted"===e.status?mt:"dirty"===e.status?(t.dirty(),gt(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})()}{const e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return"aborted"===e.status?mt:"dirty"===e.status?(t.dirty(),{status:"dirty",value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(e,t){return new jn({in:e,out:t,typeName:Pn.ZodPipeline})}}class On extends At{_parse(e){const t=this._def.innerType._parse(e),n=e=>(yt(e)&&(e.value=Object.freeze(e.value)),e);return bt(t)?t.then((e=>n(e))):n(t)}unwrap(){return this._def.innerType}}function Dn(e,t={},n){return e?tn.create().superRefine(((a,i)=>{var r,o;if(!e(a)){const e="function"==typeof t?t(a):"string"==typeof t?{message:t}:t,s=null===(o=null!==(r=e.fatal)&&void 0!==r?r:n)||void 0===o||o,c="string"==typeof e?{message:e}:e;i.addIssue({code:"custom",...c,fatal:s})}})):tn.create()}On.create=(e,t)=>new On({innerType:e,typeName:Pn.ZodReadonly,...$t(t)});const Rn={object:cn.lazycreate};var Pn;!function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"}(Pn||(Pn={}));const Ln=Wt.create,Nn=Qt.create,Fn=zn.create,Vn=Gt.create,Hn=Yt.create,Bn=Kt.create,qn=Xt.create,Un=Jt.create,Wn=en.create,Zn=tn.create,Qn=nn.create,Gn=an.create,Yn=rn.create,Kn=on.create,Xn=cn.create,Jn=cn.strictCreate,ea=ln.create,ta=un.create,na=pn.create,aa=mn.create,ia=gn.create,ra=fn.create,oa=_n.create,sa=vn.create,ca=yn.create,la=bn.create,da=xn.create,ua=Cn.create,ha=Mn.create,pa=kn.create,ma=Sn.create,ga=En.create,fa=kn.createWithPreprocess,_a=jn.create,va={string:e=>Wt.create({...e,coerce:!0}),number:e=>Qt.create({...e,coerce:!0}),boolean:e=>Yt.create({...e,coerce:!0}),bigint:e=>Gt.create({...e,coerce:!0}),date:e=>Kt.create({...e,coerce:!0})},ya=mt;var ba=Object.freeze({__proto__:null,defaultErrorMap:ct,setErrorMap:function(e){lt=e},getErrorMap:dt,makeIssue:ut,EMPTY_PATH:[],addIssueToContext:ht,ParseStatus:pt,INVALID:mt,DIRTY:gt,OK:ft,isAborted:_t,isDirty:vt,isValid:yt,isAsync:bt,get util(){return Ke},get objectUtil(){return Xe},ZodParsedType:it,getParsedType:rt,ZodType:At,datetimeRegex:qt,ZodString:Wt,ZodNumber:Qt,ZodBigInt:Gt,ZodBoolean:Yt,ZodDate:Kt,ZodSymbol:Xt,ZodUndefined:Jt,ZodNull:en,ZodAny:tn,ZodUnknown:nn,ZodNever:an,ZodVoid:rn,ZodArray:on,ZodObject:cn,ZodUnion:ln,ZodDiscriminatedUnion:un,ZodIntersection:pn,ZodTuple:mn,ZodRecord:gn,ZodMap:fn,ZodSet:_n,ZodFunction:vn,ZodLazy:yn,ZodLiteral:bn,ZodEnum:xn,ZodNativeEnum:Cn,ZodPromise:Mn,ZodEffects:kn,ZodTransformer:kn,ZodOptional:Sn,ZodNullable:En,ZodDefault:$n,ZodCatch:An,ZodNaN:zn,BRAND:In,ZodBranded:Tn,ZodPipeline:jn,ZodReadonly:On,custom:Dn,Schema:At,ZodSchema:At,late:Rn,get ZodFirstPartyTypeKind(){return Pn},coerce:va,any:Zn,array:Kn,bigint:Vn,boolean:Hn,date:Bn,discriminatedUnion:ta,effect:pa,enum:da,function:sa,instanceof:(e,t={message:`Input not instance of ${e.name}`})=>Dn((t=>t instanceof e),t),intersection:na,lazy:ca,literal:la,map:ra,nan:Fn,nativeEnum:ua,never:Gn,null:Wn,nullable:ga,number:Nn,object:Xn,oboolean:()=>Hn().optional(),onumber:()=>Nn().optional(),optional:ma,ostring:()=>Ln().optional(),pipeline:_a,preprocess:fa,promise:ha,record:ia,set:oa,strictObject:Jn,string:Ln,symbol:qn,transformer:pa,tuple:aa,undefined:Un,union:ea,unknown:Qn,void:Yn,NEVER:ya,ZodIssueCode:ot,quotelessJson:e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),ZodError:st});const wa="https://github.com/dermotduffy/frigate-hass-card",xa=`${wa}#troubleshooting`,Ca="cameras",Ma=`${Ca}.#.camera_entity`,ka=`${Ca}.#.frigate.camera_name`,Sa=`${Ca}.#.capabilities.disable`,Ea=`${Ca}.#.capabilities.disable_except`,$a=`${Ca}.#.cast.method`,Aa=`${Ca}.#.cast.dashboard.dashboard_path`,za=`${Ca}.#.cast.dashboard.view_path`,Ia=`${Ca}.#.dimensions.aspect_ratio`,Ta=`${Ca}.#.frigate.client_id`,ja=`${Ca}.#.frigate.labels`,Oa=`${Ca}.#.frigate.url`,Da=`${Ca}.#.frigate.zones`,Ra=`${Ca}.#.go2rtc.modes`,Pa=`${Ca}.#.go2rtc.stream`,La=`${Ca}.#.icon`,Na=`${Ca}.#.id`,Fa=`${Ca}.#.image.entity`,Va=`${Ca}.#.image.entity_parameters`,Ha=`${Ca}.#.image.mode`,Ba=`${Ca}.#.image.refresh_seconds`,qa=`${Ca}.#.image.url`,Ua=`${Ca}.#.motioneye.images.directory_pattern`,Wa=`${Ca}.#.motioneye.images.file_pattern`,Za=`${Ca}.#.motioneye.movies.directory_pattern`,Qa=`${Ca}.#.motioneye.movies.file_pattern`,Ga=`${Ca}.#.motioneye.url`,Ya=`${Ca}.#.title`,Ka=`${Ca}.#.webrtc_card.entity`,Xa=`${Ca}.#.webrtc_card.url`,Ja=`${Ca}.#.live_provider`,ei=`${Ca}.#.dependencies.cameras`,ti=`${Ca}.#.dependencies.all_cameras`,ni=`${Ca}.#.dimensions.layout.fit`,ai=`${Ca}.#.dimensions.layout.pan.x`,ii=`${Ca}.#.dimensions.layout.pan.y`,ri=`${Ca}.#.dimensions.layout.position.x`,oi=`${Ca}.#.dimensions.layout.position.y`,si=`${Ca}.#.dimensions.layout.view_box.top`,ci=`${Ca}.#.dimensions.layout.view_box.bottom`,li=`${Ca}.#.dimensions.layout.view_box.left`,di=`${Ca}.#.dimensions.layout.view_box.right`,ui=`${Ca}.#.dimensions.layout.zoom`,hi=`${Ca}.#.proxy.dynamic`,pi=`${Ca}.#.proxy.media`,mi=`${Ca}.#.proxy.ssl_ciphers`,gi=`${Ca}.#.proxy.ssl_verification`,fi=`${Ca}.#.reolink.media_resolution`,_i=`${Ca}.#.reolink.url`,vi=`${Ca}.#.triggers.motion`,yi=`${Ca}.#.triggers.occupancy`,bi=`${Ca}.#.triggers.entities`,wi=`${Ca}.#.triggers.events`,xi="cameras_global",Ci=`${xi}.image`,Mi=`${xi}.live_provider`,ki=`${xi}.jsmpeg`,Si=`${xi}.webrtc_card`,Ei=`${xi}.triggers.occupancy`,$i=`${xi}.image.refresh_seconds`,Ai=`${xi}.dimensions.layout`,zi=`${xi}.ptz`,Ii="elements",Ti="view",ji=`${Ti}.camera_select`,Oi=`${Ti}.dark_mode`,Di=`${Ti}.default`,Ri=`${Ti}.interaction_seconds`,Pi=`${Ti}.keyboard_shortcuts`,Li=`${Ti}.keyboard_shortcuts.enabled`,Ni=`${Pi}.ptz_left`,Fi=`${Pi}.ptz_right`,Vi=`${Pi}.ptz_up`,Hi=`${Pi}.ptz_down`,Bi=`${Pi}.ptz_zoom_in`,qi=`${Pi}.ptz_zoom_out`,Ui=`${Pi}.ptz_home`,Wi=`${Ti}.default_cycle_camera`,Zi=`${Ti}.default_reset`,Qi=`${Zi}.interaction_mode`,Gi=`${Zi}.every_seconds`,Yi=`${Zi}.entities`,Ki=`${Zi}.after_interaction`,Xi=`${Ti}.triggers`,Ji=`${Xi}.show_trigger_status`,er=`${Xi}.filter_selected_camera`,tr=`${Xi}.untrigger_seconds`,nr=`${Xi}.actions`,ar=`${nr}.trigger`,ir=`${nr}.untrigger`,rr=`${nr}.interaction_mode`,or="media_gallery",sr=`${or}.controls.filter.mode`,cr=`${or}.controls.thumbnails.show_details`,lr=`${or}.controls.thumbnails.show_download_control`,dr=`${or}.controls.thumbnails.show_favorite_control`,ur=`${or}.controls.thumbnails.show_timeline_control`,hr=`${or}.controls.thumbnails.size`,pr="media_viewer",mr=`${pr}.auto_play`,gr=`${pr}.auto_pause`,fr=`${pr}.auto_mute`,_r=`${pr}.auto_unmute`,vr=`${pr}.display.mode`,yr=`${pr}.display.grid_columns`,br=`${pr}.display.grid_max_columns`,wr=`${pr}.display.grid_selected_width_factor`,xr=`${pr}.draggable`,Cr=`${pr}.lazy_load`,Mr=`${pr}.snapshot_click_plays_clip`,kr=`${pr}.transition_effect`,Sr=`${pr}.controls.builtin`,Er=`${pr}.controls.next_previous.style`,$r=`${pr}.controls.next_previous.size`,Ar=`${pr}.controls.thumbnails.mode`,zr=`${pr}.controls.thumbnails.show_details`,Ir=`${pr}.controls.thumbnails.show_download_control`,Tr=`${pr}.controls.thumbnails.show_favorite_control`,jr=`${pr}.controls.thumbnails.show_timeline_control`,Or=`${pr}.controls.thumbnails.size`,Dr=`${pr}.controls.timeline.clustering_threshold`,Rr=`${pr}.controls.timeline.events_media_type`,Pr=`${pr}.controls.timeline.mode`,Lr=`${pr}.controls.timeline.pan_mode`,Nr=`${pr}.controls.timeline.show_recordings`,Fr=`${pr}.controls.timeline.style`,Vr=`${pr}.controls.timeline.window_seconds`,Hr=`${pr}.zoomable`,Br="live",qr=`${Br}.auto_play`,Ur=`${Br}.auto_pause`,Wr=`${Br}.auto_mute`,Zr=`${Br}.auto_unmute`,Qr=`${Br}.controls.builtin`,Gr=`${Br}.controls.next_previous.style`,Yr=`${Br}.controls.next_previous.size`,Kr=`${Br}.controls.ptz.hide_home`,Xr=`${Br}.controls.ptz.hide_pan_tilt`,Jr=`${Br}.controls.ptz.hide_zoom`,eo=`${Br}.controls.ptz.mode`,to=`${Br}.controls.ptz.orientation`,no=`${Br}.controls.ptz.position`,ao=`${Br}.controls.thumbnails.media_type`,io=`${Br}.controls.thumbnails.events_media_type`,ro=`${Br}.controls.thumbnails.mode`,oo=`${Br}.controls.thumbnails.size`,so=`${Br}.controls.thumbnails.show_details`,co=`${Br}.controls.thumbnails.show_download_control`,lo=`${Br}.controls.thumbnails.show_favorite_control`,uo=`${Br}.controls.thumbnails.show_timeline_control`,ho=`${Br}.controls.timeline.clustering_threshold`,po=`${Br}.controls.timeline.events_media_type`,mo=`${Br}.controls.timeline.mode`,go=`${Br}.controls.timeline.pan_mode`,fo=`${Br}.controls.timeline.show_recordings`,_o=`${Br}.controls.timeline.style`,vo=`${Br}.controls.timeline.window_seconds`,yo=`${Br}.display.mode`,bo=`${Br}.display.grid_columns`,wo=`${Br}.display.grid_max_columns`,xo=`${Br}.display.grid_selected_width_factor`,Co=`${Br}.draggable`,Mo=`${Br}.lazy_load`,ko=`${Br}.lazy_unload`,So=`${Br}.preload`,Eo=`${Br}.transition_effect`,$o=`${Br}.show_image_during_load`,Ao=`${Br}.microphone.disconnect_seconds`,zo=`${Br}.microphone.mute_after_microphone_mute_seconds`,Io=`${Br}.microphone.always_connected`,To=`${Br}.zoomable`,jo="image",Oo=`${jo}.entity`,Do=`${jo}.entity_parameters`,Ro=`${jo}.mode`,Po=`${jo}.refresh_seconds`,Lo=`${jo}.url`,No="timeline",Fo=`${No}.window_seconds`,Vo=`${No}.clustering_threshold`,Ho=`${No}.events_media_type`,Bo=`${No}.show_recordings`,qo=`${No}.style`,Uo=`${No}.controls.thumbnails.mode`,Wo=`${No}.controls.thumbnails.size`,Zo=`${No}.controls.thumbnails.show_details`,Qo=`${No}.controls.thumbnails.show_download_control`,Go=`${No}.controls.thumbnails.show_favorite_control`,Yo=`${No}.controls.thumbnails.show_timeline_control`,Ko="menu",Xo=`${Ko}.alignment`,Jo=`${Ko}.position`,es=`${Ko}.style`,ts=`${Ko}.button_size`,ns=`${Ko}.buttons`,as=`${ns}.frigate`,is=`${ns}.camera_ui`,rs=`${ns}.fullscreen`,os=`${ns}.play`,ss=`${ns}.mute`,cs=`${ns}.media_player`,ls=`${ns}.timeline`,ds="status_bar",us=`${ds}.position`,hs=`${ds}.style`,ps=`${ds}.popup_seconds`,ms=`${ds}.height`,gs=`${ds}.items`,fs="dimensions",_s=`${fs}.aspect_ratio`,vs=`${fs}.aspect_ratio_mode`,ys=`${fs}.height`,bs="overrides",ws="performance",xs=`${ws}.features.animated_progress_indicator`,Cs=`${ws}.features.media_chunk_size`,Ms=`${ws}.features.max_simultaneous_engine_requests`,ks=`${ws}.profile`,Ss=`${ws}.style.box_shadow`,Es=`${ws}.style.border_radius`,$s="profiles",As=1e3;class zs extends Error{constructor(e,t){super(e),this.context=t}}const Is={info:10,error:20,connection:30,diagnostics:40},Ts=["clips","favorite-events","favorite-recordings","live","menu","ptz","recordings","seek","snapshots","substream"],js=ba.object({url:ba.string(),mime_type:ba.string()}),Os=ba.object({path:ba.string()});function Ds(e){if(e instanceof ba.ZodDefault)return Ds(e.removeDefault());if(e instanceof ba.ZodObject){const t={};for(const n in e.shape){const a=e.shape[n];t[n]=ba.ZodOptional.create(Ds(a))}return new ba.ZodObject({...e._def,shape:()=>t})}return e instanceof ba.ZodArray?ba.ZodArray.create(Ds(e.element)).min(e._def.minLength?.value,e._def.minLength?.message).max(e._def.maxLength?.value,e._def.maxLength?.message).length(e._def.exactLength?.value,e._def.exactLength?.message):e instanceof ba.ZodOptional?ba.ZodOptional.create(Ds(e.unwrap())):e instanceof ba.ZodNullable?ba.ZodNullable.create(Ds(e.unwrap())):e instanceof ba.ZodTuple?ba.ZodTuple.create(e.items.map((e=>Ds(e)))):e}function Rs(e){const t=e.format();return Object.keys(t).filter((e=>!e.startsWith("_")))}const Ps=e=>{const t=new Set;if(e.issues.length)for(const n of e.issues)if("invalid_union"===n.code){const e=n.unionErrors;for(const n of e)Ps(n).forEach(t.add,t)}else t.add(Ls(n.path));return t},Ls=e=>{let t="";for(let n=0;n"fire-dom-event")).or(ba.literal("fire-dom-event")),card_id:ba.string().regex(tc,"card_id parameter can only contain [a-z][A-Z][0-9_]-").optional()}),_c=fc.extend({frigate_card_action:ba.enum(Zs)}),vc=fc.extend({frigate_card_action:ba.enum(["camera_ui","default","download","expand","fullscreen","live_substream_off","live_substream_on","menu_toggle","microphone_connect","microphone_disconnect","microphone_mute","microphone_unmute","mute","pause","play","screenshot","unmute"])}),yc=fc.extend({frigate_card_action:ba.literal("camera_select"),camera:ba.string().optional(),triggered:ba.boolean().optional()}),bc=fc.extend({frigate_card_action:ba.literal("live_substream_select"),camera:ba.string()}),wc=fc.extend({frigate_card_action:ba.literal("media_player"),media_player:ba.string(),media_player_action:ba.enum(["play","stop"])}),xc=fc.extend({frigate_card_action:ba.literal("display_mode_select"),display_mode:ic}),Cc=fc.extend({frigate_card_action:ba.literal("ptz"),camera:ba.string().optional(),ptz_action:ba.enum(Hs).optional(),ptz_phase:ba.enum(Js).optional(),ptz_preset:ba.string().optional()}),Mc=fc.extend({frigate_card_action:ba.literal("ptz_digital"),target_id:ba.string().optional(),absolute:ba.object({zoom:ac.optional(),pan:nc.optional()}).optional(),ptz_action:ba.enum(Hs).optional(),ptz_phase:ba.enum(Js).optional()}),kc=fc.extend({frigate_card_action:ba.literal("ptz_multi"),target_id:ba.string().optional(),ptz_action:ba.enum(Hs).optional(),ptz_phase:ba.enum(Js).optional(),ptz_preset:ba.string().optional()}),Sc=fc.extend({frigate_card_action:ba.literal("ptz_controls"),enabled:ba.boolean()}),Ec=ba.object({ms:ba.number().optional(),s:ba.number().optional(),m:ba.number().optional(),h:ba.number().optional()}),$c=fc.extend({frigate_card_action:ba.literal("sleep"),duration:Ec.optional().default({s:1})}),Ac=fc.extend({frigate_card_action:ba.literal("status_bar"),status_bar_action:ba.enum(["add","remove","reset"]),items:ba.lazy((()=>ol)).array().optional()}),zc=fc.extend({frigate_card_action:ba.literal("log"),message:ba.string(),level:ba.enum(["debug","info","warn","error"]).default("info")}),Ic=ba.union([yc,vc,bc,zc,wc,Cc,Mc,kc,Sc,_c,xc,$c,Ac]),Tc=ba.union([sc,dc,lc,uc,hc,pc,gc,mc,Ic]),jc=ba.object({tap_action:Tc.or(Tc.array()).optional(),hold_action:Tc.or(Tc.array()).optional(),double_tap_action:Tc.or(Tc.array()).optional(),start_tap_action:Tc.or(Tc.array()).optional(),end_tap_action:Tc.or(Tc.array()).optional()}).passthrough(),Oc=ba.object({actions:jc.optional()}),Dc=jc.extend({style:ba.record(ba.string().nullable().or(ba.undefined()).or(ba.number())).optional(),title:ba.string().nullable().optional()}),Rc=Dc.extend({type:ba.literal("state-badge"),entity:ba.string()}),Pc=Dc.extend({type:ba.literal("state-icon"),entity:ba.string(),icon:ba.string().optional(),state_color:ba.boolean().default(!0)}),Lc=Dc.extend({type:ba.literal("state-label"),entity:ba.string(),attribute:ba.string().optional(),prefix:ba.string().optional(),suffix:ba.string().optional()}),Nc=Dc.extend({type:ba.literal("service-button"),title:ba.string(),service:ba.string(),service_data:ba.object({}).passthrough().optional()}),Fc=Dc.extend({type:ba.literal("icon"),icon:ba.string(),entity:ba.string().optional()}),Vc=Dc.extend({type:ba.literal("image"),entity:ba.string().optional(),image:ba.string().optional(),camera_image:ba.string().optional(),camera_view:ba.string().optional(),state_image:ba.object({}).passthrough().optional(),filter:ba.string().optional(),state_filter:ba.object({}).passthrough().optional(),aspect_ratio:ba.string().optional()}),Hc=ba.object({condition:ba.literal("state").optional(),entity:ba.string(),state:ba.string().or(ba.string().array()).optional(),state_not:ba.string().or(ba.string().array()).optional()}),Bc=ba.object({condition:ba.literal("numeric_state"),entity:ba.string(),above:ba.number().optional(),below:ba.number().optional()}),qc=ba.object({condition:ba.literal("screen"),media_query:ba.string()}),Uc=ba.object({condition:ba.literal("user"),users:ba.string().array().min(1)}),Wc=ba.discriminatedUnion("condition",[Hc,Bc,qc,Uc]),Zc=ba.object({type:ba.literal("conditional"),conditions:Wc.array(),elements:ba.lazy((()=>yl))}),Qc=ba.object({type:ba.string().superRefine(((e,t)=>{e.match(/^custom:(?!frigate-card).+/)||t.addIssue({code:ba.ZodIssueCode.custom,message:"Frigate-card custom elements must match specific schemas",fatal:!0})}))}).passthrough(),Gc=ba.object({enabled:ba.boolean().default(!0).optional(),priority:ba.number().min(0).max(Us).default(50).optional(),alignment:ba.enum(["matching","opposing"]).default("matching").optional(),icon:ba.string().optional(),permanent:ba.boolean().default(!1).optional()}),Yc=Gc.merge(Fc).extend({type:ba.literal("custom:frigate-card-menu-icon")}),Kc=Gc.merge(Pc).extend({type:ba.literal("custom:frigate-card-menu-state-icon")}).merge(Gc),Xc=Dc.extend({entity:ba.string().optional(),icon:ba.string().optional(),state_color:ba.boolean().default(!0),selected:ba.boolean().default(!1),subtitle:ba.string().optional(),enabled:ba.boolean().default(!0)}),Jc=Gc.merge(Fc).extend({type:ba.literal("custom:frigate-card-menu-submenu"),items:Xc.array()}),el=Gc.merge(Pc).extend({type:ba.literal("custom:frigate-card-menu-submenu-select"),options:ba.record(Xc.deepPartial()).optional()}),tl=ba.object({enabled:ba.boolean().default(!0).optional(),priority:ba.number().min(0).max(100).default(50).optional()}),nl=tl.extend({sufficient:ba.boolean().default(!1).optional(),exclusive:ba.boolean().default(!1).optional(),expand:ba.boolean().default(!1).optional(),actions:jc.optional()}),al=nl.extend({type:ba.literal("custom:frigate-card-status-bar-icon"),icon:ba.string()}),il=nl.extend({type:ba.literal("custom:frigate-card-status-bar-image"),image:ba.string()}),rl=nl.extend({type:ba.literal("custom:frigate-card-status-bar-string"),string:ba.string()}),ol=ba.union([al,il,rl]),sl=ba.object({condition:ba.literal("view"),views:ba.string().array()}),cl=ba.object({condition:ba.literal("fullscreen"),fullscreen:ba.boolean()}),ll=ba.object({condition:ba.literal("expand"),expand:ba.boolean()}),dl=ba.object({condition:ba.literal("camera"),cameras:ba.string().array()}),ul=ba.object({condition:ba.literal("media_loaded"),media_loaded:ba.boolean()}),hl=ba.object({condition:ba.literal("display_mode"),display_mode:ic}),pl=ba.object({condition:ba.literal("triggered"),triggered:ba.string().array()}),ml=ba.object({condition:ba.literal("interaction"),interaction:ba.boolean()}),gl=ba.object({condition:ba.literal("microphone"),connected:ba.boolean().optional(),muted:ba.boolean().optional()}),fl=ba.object({condition:ba.literal("key"),key:ba.string(),state:ba.enum(["down","up"]).optional(),ctrl:ba.boolean().optional(),shift:ba.boolean().optional(),alt:ba.boolean().optional(),meta:ba.boolean().optional()}),_l=ba.discriminatedUnion("condition",[Hc,Bc,qc,Uc,sl,cl,ll,dl,ul,hl,pl,ml,gl,fl]),vl=ba.object({type:ba.literal("custom:frigate-card-conditional"),conditions:_l.array(),elements:ba.lazy((()=>yl))}),yl=ba.union([Zc,Qc,vl,Fc,Vc,Yc,Kc,Jc,el,Nc,Rc,Pc,Lc,al,il,rl]).array().optional(),bl=ba.object({fit:ba.enum(["contain","cover","fill"]).optional(),position:ba.object({x:ba.number().min(0).max(100).optional(),y:ba.number().min(0).max(100).optional()}).optional(),view_box:ba.object({bottom:ba.number().min(0).max(100).optional().default(0),left:ba.number().min(0).max(100).optional().default(0),right:ba.number().min(0).max(100).optional().default(0),top:ba.number().min(0).max(100).optional().default(0)}).optional(),pan:nc.optional(),zoom:ac.optional()}),wl=ba.number().array().length(2).or(ba.string().regex(/^\s*\d+\.?\d*\s*[:/]\s*\d+\.?\d*\s*$/).transform((e=>e.split(/[:\/]/).map((e=>Number(e)))))),xl={r2c_delay_between_calls_seconds:.5,c2r_delay_between_calls_seconds:.2},Cl=function(e){return t=>{if(!t||"object"!=typeof t||!t.service)return t;const n={...t};return Object.keys(t).forEach((a=>{const i=a.match(/^data_(.+)$/),r=i?.[1];r&&!(`${e}${r}`in t)&&(n[`${e}${r}`]={action:"perform-action",perform_action:t.service,data:t[a]},delete n[a],delete n.service)})),n}},Ml=ba.preprocess(Cl("actions_"),ba.object({actions_left:lc.optional(),actions_left_start:lc.optional(),actions_left_stop:lc.optional(),actions_right:lc.optional(),actions_right_start:lc.optional(),actions_right_stop:lc.optional(),actions_up:lc.optional(),actions_up_start:lc.optional(),actions_up_stop:lc.optional(),actions_down:lc.optional(),actions_down_start:lc.optional(),actions_down_stop:lc.optional(),actions_zoom_in:lc.optional(),actions_zoom_in_start:lc.optional(),actions_zoom_in_stop:lc.optional(),actions_zoom_out:lc.optional(),actions_zoom_out_start:lc.optional(),actions_zoom_out_stop:lc.optional(),r2c_delay_between_calls_seconds:ba.number().default(xl.r2c_delay_between_calls_seconds),c2r_delay_between_calls_seconds:ba.number().default(xl.c2r_delay_between_calls_seconds),presets:ba.preprocess(Cl(""),ba.union([ba.record(lc),ba.object({service:ba.string().optional()})])).optional(),service:ba.string().optional()}).passthrough()),kl={orientation:"horizontal",mode:"auto",hide_pan_tilt:!1,hide_zoom:!1,hide_home:!1,position:"bottom-right"},Sl=ba.object({mode:ba.enum(["off","auto","on"]).default(kl.mode),position:ba.enum(["top-left","top-right","bottom-left","bottom-right"]).default(kl.position),orientation:ba.enum(["vertical","horizontal"]).default(kl.orientation),hide_pan_tilt:ba.boolean().default(kl.hide_pan_tilt),hide_zoom:ba.boolean().default(kl.hide_zoom),hide_home:ba.boolean().default(kl.hide_home),style:ba.object({}).passthrough().optional()}),El={mode:"auto",refresh_seconds:1},$l=ba.object({mode:ba.enum(["auto","camera","entity","screensaver","url"]).default(El.mode),refresh_seconds:ba.number().min(0).default(El.refresh_seconds),url:ba.string().optional(),entity:ba.string().optional(),entity_parameters:ba.string().optional()}),Al=$l.merge(Oc).default(El),zl=75,Il=300,Tl={size:100,show_details:!0,show_favorite_control:!0,show_timeline_control:!0,show_download_control:!0},jl=ba.object({size:ba.number().min(75).max(300).default(Tl.size),show_details:ba.boolean().default(Tl.show_details),show_favorite_control:ba.boolean().default(Tl.show_favorite_control),show_timeline_control:ba.boolean().default(Tl.show_timeline_control),show_download_control:ba.boolean().default(Tl.show_download_control)}),Ol={...Tl,mode:"right"},Dl=jl.extend({mode:ba.enum(["none","above","below","left","right"]).default(Ol.mode)}),Rl=ba.enum(["all","clips","snapshots"]),Pl={clustering_threshold:3,events_media_type:"all",window_seconds:3600,show_recordings:!0,style:"stack",pan_mode:"pan"},Ll=ba.enum(["pan","seek","seek-in-media","seek-in-camera"]),Nl=ba.object({clustering_threshold:ba.number().optional().default(Pl.clustering_threshold),events_media_type:Rl.optional().default(Pl.events_media_type),window_seconds:ba.number().min(60).max(86400).optional().default(Pl.window_seconds),show_recordings:ba.boolean().optional().default(Pl.show_recordings),style:ba.enum(["stack","ribbon"]).optional().default(Pl.style),pan_mode:Ll.optional().default(Pl.pan_mode)}),Fl={...Pl,mode:"none",style:"ribbon"},Vl=Nl.extend({mode:ba.enum(["none","above","below"]).default(Fl.mode),style:Nl.shape.style.default(Fl.style)}),Hl={...Pl,controls:{thumbnails:Ol}},Bl=Nl.extend({controls:ba.object({thumbnails:Dl.default(Hl.controls.thumbnails)}).default(Hl.controls)}).default(Hl),ql=ba.object({style:ba.enum(["none","chevrons","icons","thumbnails"]),size:ba.number().min(20)}),Ul=ba.enum(["none","slide"]),Wl={always_connected:!1,disconnect_seconds:90,mute_after_microphone_mute_seconds:60},Zl=ba.object({always_connected:ba.boolean().default(Wl.always_connected),disconnect_seconds:ba.number().min(0).default(Wl.disconnect_seconds),mute_after_microphone_mute_seconds:ba.number().min(0).default(Wl.mute_after_microphone_mute_seconds)}).default(Wl),Ql=ba.object({url:ba.string().transform((e=>e.replace(/\/+$/,""))).optional(),host:ba.string().optional(),modes:ba.enum(["webrtc","mse","mp4","mjpeg"]).array().optional(),stream:ba.string().optional()}),Gl=ba.object({entity:ba.string().optional(),url:ba.string().optional()}).passthrough(),Yl=ba.object({options:ba.object({audio:ba.boolean().optional(),video:ba.boolean().optional(),pauseWhenHidden:ba.boolean().optional(),disableGl:ba.boolean().optional(),disableWebAssembly:ba.boolean().optional(),preserveDrawingBuffer:ba.boolean().optional(),progressive:ba.boolean().optional(),throttled:ba.boolean().optional(),chunkSize:ba.number().optional(),maxAudioLag:ba.number().optional(),videoBufferSize:ba.number().optional(),audioBufferSize:ba.number().optional()}).optional()}),Kl={...Ol,media_type:"events",events_media_type:"all"},Xl={auto_play:[...Ys],auto_pause:[],auto_mute:[...Xs],auto_unmute:["microphone"],preload:!1,lazy_load:!0,lazy_unload:[],draggable:!0,zoomable:!0,transition_effect:"slide",show_image_during_load:!0,mode:"single",controls:{builtin:!0,next_previous:{size:48,style:"chevrons"},ptz:kl,thumbnails:Kl,timeline:Fl},microphone:{...Wl}},Jl=Dl.extend({media_type:ba.enum(["events","recordings"]).default(Xl.controls.thumbnails.media_type),events_media_type:Rl.default(Xl.controls.thumbnails.events_media_type)}),ed=ba.object({auto_pause:ba.enum(Gs).array().default(Xl.auto_pause),auto_play:ba.enum(Ys).array().default(Xl.auto_play),auto_mute:ba.enum(Xs).array().default(Xl.auto_mute),auto_unmute:ba.enum(Ks).array().default(Xl.auto_unmute),controls:ba.object({builtin:ba.boolean().default(Xl.controls.builtin),next_previous:ql.extend({style:ba.enum(["none","chevrons","icons"]).default(Xl.controls.next_previous.style),size:ql.shape.size.default(Xl.controls.next_previous.size)}).default(Xl.controls.next_previous),ptz:Sl.default(Xl.controls.ptz),thumbnails:Jl.default(Xl.controls.thumbnails),timeline:Vl.default(Xl.controls.timeline)}).default(Xl.controls),display:rc,draggable:ba.boolean().default(Xl.draggable),lazy_load:ba.boolean().default(Xl.lazy_load),lazy_unload:ba.enum(Gs).array().default(Xl.lazy_unload),microphone:Zl.default(Xl.microphone),preload:ba.boolean().default(Xl.preload),show_image_during_load:ba.boolean().default(Xl.show_image_during_load),transition_effect:Ul.default(Xl.transition_effect),zoomable:ba.boolean().default(Xl.zoomable)}).merge(Oc).default(Xl),td=ba.object({live:ed}),nd=ba.object({method:ba.enum(["standard","dashboard"]).default("standard").optional(),dashboard:ba.object({dashboard_path:ba.string().optional(),view_path:ba.string().optional()}).optional()}),ad={dependencies:{all_cameras:!1,cameras:[]},engine:"auto",frigate:{client_id:"frigate"},live_provider:"auto",motioneye:{images:{directory_pattern:"%Y-%m-%d",file_pattern:"%H-%M-%S"},movies:{directory_pattern:"%Y-%m-%d",file_pattern:"%H-%M-%S"}},reolink:{media_resolution:"low"},ptz:xl,triggers:{motion:!1,occupancy:!1,events:[...ec],entities:[]},proxy:{media:"auto",dynamic:!0,ssl_verification:"auto",ssl_ciphers:"auto"}},id=ba.object({media:ba.boolean().or(ba.literal("auto")).default(ad.proxy.media),dynamic:ba.boolean().default(ad.proxy.dynamic),ssl_verification:ba.boolean().or(ba.literal("auto")).default(ad.proxy.ssl_verification),ssl_ciphers:ba.enum(["default","insecure","intermediate","modern"]).or(ba.literal("auto")).default(ad.proxy.ssl_ciphers)}),rd=ba.object({camera_entity:ba.string().optional(),icon:ba.string().optional(),title:ba.string().optional(),capabilities:ba.object({disable:ba.enum(Ts).array().optional(),disable_except:ba.enum(Ts).array().optional()}).optional(),id:ba.string().optional(),dependencies:ba.object({all_cameras:ba.boolean().default(ad.dependencies.all_cameras),cameras:ba.string().array().default(ad.dependencies.cameras)}).default(ad.dependencies),triggers:ba.object({motion:ba.boolean().default(ad.triggers.motion),occupancy:ba.boolean().default(ad.triggers.occupancy),entities:ba.string().array().default(ad.triggers.entities),events:ba.enum(ec).array().default(ad.triggers.events)}).default(ad.triggers),engine:ba.enum(["auto","frigate","generic","motioneye","reolink"]).default("auto"),frigate:ba.object({url:ba.string().optional(),client_id:ba.string().default(ad.frigate.client_id),camera_name:ba.string().optional(),labels:ba.string().array().optional(),zones:ba.string().array().optional()}).default(ad.frigate),motioneye:ba.object({url:ba.string().optional(),images:ba.object({directory_pattern:ba.string().includes("%").default(ad.motioneye.images.directory_pattern),file_pattern:ba.string().includes("%").default(ad.motioneye.images.file_pattern)}).default(ad.motioneye.images),movies:ba.object({directory_pattern:ba.string().includes("%").default(ad.motioneye.movies.directory_pattern),file_pattern:ba.string().includes("%").default(ad.motioneye.movies.file_pattern)}).default(ad.motioneye.movies)}).default(ad.motioneye),reolink:ba.object({url:ba.string().optional(),media_resolution:ba.enum(["high","low"]).default(ad.reolink.media_resolution)}).default(ad.reolink),live_provider:ba.enum(["auto","image","ha","jsmpeg","go2rtc","webrtc-card"]).default(ad.live_provider),go2rtc:Ql.optional(),image:$l.optional().default(El),jsmpeg:Yl.optional(),webrtc_card:Gl.optional(),cast:nd.optional(),ptz:Ml.default(ad.ptz),dimensions:ba.object({aspect_ratio:wl.optional(),layout:bl.optional()}).optional(),proxy:id.default(ad.proxy)}).default(ad),od=rd.array().min(1),sd={default:Qs,camera_select:"current",interaction_seconds:300,default_reset:{every_seconds:0,after_interaction:!1,entities:[],interaction_mode:"inactive"},default_cycle_camera:!1,dark_mode:"off",triggers:{show_trigger_status:!1,filter_selected_camera:!0,actions:{trigger:"update",untrigger:"none"},untrigger_seconds:0},keyboard_shortcuts:Fs},cd=ba.enum(["all","inactive","active"]).default("inactive"),ld=ba.object({actions:ba.object({interaction_mode:cd,trigger:ba.enum(["default","live","media","none","update"]).default(sd.triggers.actions.trigger),untrigger:ba.enum(["default","none"]).default(sd.triggers.actions.untrigger)}).default(sd.triggers.actions),filter_selected_camera:ba.boolean().default(sd.triggers.filter_selected_camera),show_trigger_status:ba.boolean().default(sd.triggers.show_trigger_status),untrigger_seconds:ba.number().default(sd.triggers.untrigger_seconds)}),dd=ba.object({default:ba.enum(Zs).default(sd.default),camera_select:ba.enum([...Zs,"current"]).default(sd.camera_select),interaction_seconds:ba.number().default(sd.interaction_seconds),default_cycle_camera:ba.boolean().default(sd.default_cycle_camera),default_reset:ba.object({after_interaction:ba.boolean().default(sd.default_reset.after_interaction),every_seconds:ba.number().default(sd.default_reset.every_seconds),entities:ba.string().array().default(sd.default_reset.entities),interaction_mode:cd.default(sd.default_reset.interaction_mode)}).default(sd.default_reset),render_entities:ba.string().array().optional(),dark_mode:ba.enum(["on","off","auto"]).optional(),triggers:ld.default(sd.triggers),keyboard_shortcuts:Vs.default(sd.keyboard_shortcuts)}).merge(Oc).default(sd),ud=["left","right","top","bottom"],hd=ud,pd={priority:50,enabled:!0},md={priority:50,enabled:!1},gd={alignment:"left",button_size:40,buttons:{camera_ui:pd,cameras:pd,clips:pd,ptz_home:md,display_mode:pd,download:pd,expand:md,frigate:pd,fullscreen:pd,image:md,live:pd,media_player:pd,microphone:{...md,type:"momentary"},mute:md,play:md,ptz_controls:md,recordings:md,screenshot:md,snapshots:pd,substreams:pd,timeline:pd},position:"top",style:"hidden"},fd=Gc.extend({enabled:Gc.shape.enabled.default(pd.enabled),priority:Gc.shape.priority.default(pd.priority)}),_d=Gc.extend({enabled:Gc.shape.enabled.default(md.enabled),priority:Gc.shape.priority.default(md.priority)}),vd=ba.object({style:ba.enum(["none","hidden","overlay","hover","hover-card","outside"]).default(gd.style),position:ba.enum(ud).default(gd.position),alignment:ba.enum(hd).default(gd.alignment),buttons:ba.object({camera_ui:fd.default(gd.buttons.camera_ui),cameras:fd.default(gd.buttons.cameras),clips:fd.default(gd.buttons.clips),ptz_home:_d.default(gd.buttons.ptz_home),display_mode:fd.default(gd.buttons.display_mode),download:fd.default(gd.buttons.download),expand:_d.default(gd.buttons.expand),frigate:fd.default(gd.buttons.frigate),fullscreen:fd.default(gd.buttons.fullscreen),image:_d.default(gd.buttons.image),live:fd.default(gd.buttons.live),media_player:fd.default(gd.buttons.media_player),microphone:_d.extend({type:ba.enum(["momentary","toggle"]).default(gd.buttons.microphone.type)}).default(gd.buttons.microphone),mute:_d.default(gd.buttons.mute),play:_d.default(gd.buttons.play),ptz_controls:_d.default(gd.buttons.ptz_controls),recordings:_d.default(gd.buttons.recordings),screenshot:_d.default(gd.buttons.screenshot),snapshots:fd.default(gd.buttons.snapshots),substreams:fd.default(gd.buttons.substreams),timeline:fd.default(gd.buttons.timeline)}).default(gd.buttons),button_size:ba.number().min(20).default(gd.button_size)}).default(gd),yd={priority:50,enabled:!0},bd={height:46,items:{engine:yd,resolution:yd,technology:yd,title:yd},position:"bottom",style:"popup",popup_seconds:3},wd=ba.object({position:ba.enum(["top","bottom"]).default(bd.position),style:ba.enum(["none","overlay","hover","hover-card","outside","popup"]).default(bd.style),popup_seconds:ba.number().min(0).max(60).default(bd.popup_seconds),height:ba.number().min(20).default(bd.height),items:ba.object({engine:tl.default(bd.items.engine),technology:tl.default(bd.items.technology),resolution:tl.default(bd.items.resolution),title:tl.default(bd.items.title)}).default(bd.items)}).default(bd),xd={auto_play:[...Ys],auto_pause:[...Gs],auto_mute:[...Gs],auto_unmute:[],lazy_load:!0,draggable:!0,zoomable:!0,transition_effect:"slide",snapshot_click_plays_clip:!0,display_mode:"single",controls:{builtin:!0,next_previous:{size:48,style:"thumbnails"},thumbnails:Ol,timeline:Fl,ptz:{...kl,mode:"off"}}},Cd=ql.extend({style:ba.enum(["none","thumbnails","chevrons"]).default(xd.controls.next_previous.style),size:ql.shape.size.default(xd.controls.next_previous.size)}),Md=ba.object({auto_play:ba.enum(Ys).array().default(xd.auto_play),auto_pause:ba.enum(Gs).array().default(xd.auto_pause),auto_mute:ba.enum(Gs).array().default(xd.auto_mute),auto_unmute:ba.enum(Ys).array().default(xd.auto_unmute),lazy_load:ba.boolean().default(xd.lazy_load),draggable:ba.boolean().default(xd.draggable),zoomable:ba.boolean().default(xd.zoomable),transition_effect:Ul.default(xd.transition_effect),snapshot_click_plays_clip:ba.boolean().default(xd.snapshot_click_plays_clip),display:rc,controls:ba.object({builtin:ba.boolean().default(xd.controls.builtin),next_previous:Cd.default(xd.controls.next_previous),ptz:Sl.extend({mode:ba.enum(["off","on"]).default(xd.controls.ptz.mode)}).default(xd.controls.ptz),thumbnails:Dl.default(xd.controls.thumbnails),timeline:Vl.default(xd.controls.timeline)}).default(xd.controls)}).merge(Oc).default(xd),kd={...Ol,show_details:!1},Sd={controls:{thumbnails:kd,filter:{mode:"right"}}},Ed=Dl.extend({show_details:ba.boolean().default(kd.show_details)}),$d=ba.object({controls:ba.object({thumbnails:Ed.default(Sd.controls.thumbnails),filter:ba.object({mode:ba.enum(["none","left","right"]).default(Sd.controls.filter.mode)}).default(Sd.controls.filter)}).default(Sd.controls)}).merge(Oc).default(Sd),Ad={aspect_ratio_mode:"dynamic",aspect_ratio:[16,9],height:"auto"},zd=ba.object({aspect_ratio_mode:ba.enum(["dynamic","static","unconstrained"]).default(Ad.aspect_ratio_mode),aspect_ratio:wl.default(Ad.aspect_ratio),height:ba.string().default(Ad.height)}).default(Ad),Id=ba.object({conditions:_l.array(),merge:ba.object({}).passthrough().optional(),set:ba.object({}).passthrough().optional(),delete:ba.string().array().optional()}).array().optional(),Td=Tc.array(),jd=ba.object({conditions:_l.array(),actions:Td.optional(),actions_not:Td.optional()}).refine((e=>e.actions?.length||e.actions_not?.length),"Automations must include at least one action").array(),Od={features:{animated_progress_indicator:!0,media_chunk_size:50},style:{border_radius:!0,box_shadow:!0}},Dd=ba.object({features:ba.object({animated_progress_indicator:ba.boolean().default(Od.features.animated_progress_indicator),media_chunk_size:ba.number().min(0).max(1e3).default(Od.features.media_chunk_size),max_simultaneous_engine_requests:ba.number().min(1).optional()}).default(Od.features),style:ba.object({border_radius:ba.boolean().default(Od.style.border_radius),box_shadow:ba.boolean().default(Od.style.box_shadow)}).default(Od.style)}).default(Od),Rd={logging:!1},Pd=ba.object({logging:ba.boolean().default(Rd.logging)}).default(Rd),Ld=ba.enum(["casting","low-performance","scrubbing"]).array().optional(),Nd=ba.object({cameras:Ds(od),cameras_global:rd,view:dd,menu:vd,status_bar:wd,live:ed,media_gallery:$d,media_viewer:Md,image:Al,elements:yl,dimensions:zd,timeline:Bl,performance:Dd,debug:Pd,automations:jd.optional(),profiles:Ld,overrides:Id,card_mod:ba.unknown(),card_id:ba.string().regex(tc).optional(),type:ba.string()}),Fd={cameras:ad,view:sd,menu:gd,status_bar:bd,live:Xl,media_gallery:Sd,media_viewer:xd,image:El,timeline:Hl,performance:Od,debug:Rd};function Vd(e){const t=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===t?new e.constructor(+e):"number"==typeof e||"[object Number]"===t||"string"==typeof e||"[object String]"===t?new Date(e):new Date(NaN)}function Hd(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function Bd(e,t){const n=Vd(e);return isNaN(t)?Hd(e,NaN):t?(n.setDate(n.getDate()+t),n):n}function qd(e,t){const n=Vd(e);if(isNaN(t))return Hd(e,NaN);if(!t)return n;const a=n.getDate(),i=Hd(e,n.getTime());i.setMonth(n.getMonth()+t+1,0);return a>=i.getDate()?i:(n.setFullYear(i.getFullYear(),i.getMonth(),a),n)}function Ud(e,t){const{years:n=0,months:a=0,weeks:i=0,days:r=0,hours:o=0,minutes:s=0,seconds:c=0}=t,l=Vd(e),d=a||n?qd(l,a+12*n):l,u=1e3*(c+60*(s+60*o));return Hd(e,(r||i?Bd(d,r+7*i):d).getTime()+u)}const Wd=6048e5,Zd=864e5,Qd=6e4,Gd=36e5,Yd=1e3;let Kd={};function Xd(){return Kd}function Jd(e,t){const n=Xd(),a=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=Vd(e),r=i.getDay(),o=(r=i.getTime()?n+1:t.getTime()>=o.getTime()?n:n-1}function nu(e){const t=Vd(e);return t.setHours(0,0,0,0),t}function au(e){const t=Vd(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function iu(e){if(!(t=e,t instanceof Date||"object"==typeof t&&"[object Date]"===Object.prototype.toString.call(t)||"number"==typeof e))return!1;var t;const n=Vd(e);return!isNaN(Number(n))}function ru(e){return t=>{const n=(e?Math[e]:Math.trunc)(t);return 0===n?0:n}}function ou(e,t){return+Vd(e)-+Vd(t)}function su(e,t,n){const a=ou(e,t)/1e3;return ru(n?.roundingMethod)(a)}const cu={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function lu(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const du={date:lu({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:lu({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:lu({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},uu={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function hu(e){return(t,n)=>{let a;if("formatting"===(n?.context?String(n.context):"standalone")&&e.formattingValues){const t=e.defaultFormattingWidth||e.defaultWidth,i=n?.width?String(n.width):t;a=e.formattingValues[i]||e.formattingValues[t]}else{const t=e.defaultWidth,i=n?.width?String(n.width):e.defaultWidth;a=e.values[i]||e.values[t]}return a[e.argumentCallback?e.argumentCallback(t):t]}}function pu(e){return(t,n={})=>{const a=n.width,i=a&&e.matchPatterns[a]||e.matchPatterns[e.defaultMatchWidth],r=t.match(i);if(!r)return null;const o=r[0],s=a&&e.parsePatterns[a]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(s)?function(e,t){for(let n=0;ne.test(o))):function(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n;return}(s,(e=>e.test(o)));let l;l=e.valueCallback?e.valueCallback(c):c,l=n.valueCallback?n.valueCallback(l):l;return{value:l,rest:t.slice(o.length)}}}var mu;const gu={code:"en-US",formatDistance:(e,t,n)=>{let a;const i=cu[e];return a="string"==typeof i?i:1===t?i.one:i.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+a:a+" ago":a},formatLong:du,formatRelative:(e,t,n,a)=>uu[e],localize:{ordinalNumber:(e,t)=>{const n=Number(e),a=n%100;if(a>20||a<10)switch(a%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:hu({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:hu({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:e=>e-1}),month:hu({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:hu({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:hu({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(mu={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)},(e,t={})=>{const n=e.match(mu.matchPattern);if(!n)return null;const a=n[0],i=e.match(mu.parsePattern);if(!i)return null;let r=mu.valueCallback?mu.valueCallback(i[0]):i[0];return r=t.valueCallback?t.valueCallback(r):r,{value:r,rest:e.slice(a.length)}}),era:pu({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:pu({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:e=>e+1}),month:pu({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:pu({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:pu({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function fu(e){const t=Vd(e),n=function(e,t){const n=nu(e),a=nu(t),i=+n-au(n),r=+a-au(a);return Math.round((i-r)/Zd)}(t,function(e){const t=Vd(e),n=Hd(e,0);return n.setFullYear(t.getFullYear(),0,1),n.setHours(0,0,0,0),n}(t));return n+1}function _u(e){const t=Vd(e),n=+eu(t)-+function(e){const t=tu(e),n=Hd(e,0);return n.setFullYear(t,0,4),n.setHours(0,0,0,0),eu(n)}(t);return Math.round(n/Wd)+1}function vu(e,t){const n=Vd(e),a=n.getFullYear(),i=Xd(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,o=Hd(e,0);o.setFullYear(a+1,0,r),o.setHours(0,0,0,0);const s=Jd(o,t),c=Hd(e,0);c.setFullYear(a,0,r),c.setHours(0,0,0,0);const l=Jd(c,t);return n.getTime()>=s.getTime()?a+1:n.getTime()>=l.getTime()?a:a-1}function yu(e,t){const n=Vd(e),a=+Jd(n,t)-+function(e,t){const n=Xd(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,i=vu(e,t),r=Hd(e,0);return r.setFullYear(i,0,a),r.setHours(0,0,0,0),Jd(r,t)}(n,t);return Math.round(a/Wd)+1}function bu(e,t){return(e<0?"-":"")+Math.abs(e).toString().padStart(t,"0")}const wu={y(e,t){const n=e.getFullYear(),a=n>0?n:1-n;return bu("yy"===t?a%100:a,t.length)},M(e,t){const n=e.getMonth();return"M"===t?String(n+1):bu(n+1,2)},d:(e,t)=>bu(e.getDate(),t.length),a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];default:return"am"===n?"a.m.":"p.m."}},h:(e,t)=>bu(e.getHours()%12||12,t.length),H:(e,t)=>bu(e.getHours(),t.length),m:(e,t)=>bu(e.getMinutes(),t.length),s:(e,t)=>bu(e.getSeconds(),t.length),S(e,t){const n=t.length,a=e.getMilliseconds();return bu(Math.trunc(a*Math.pow(10,n-3)),t.length)}},xu="midnight",Cu="noon",Mu="morning",ku="afternoon",Su="evening",Eu="night",$u={G:function(e,t,n){const a=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(a,{width:"abbreviated"});case"GGGGG":return n.era(a,{width:"narrow"});default:return n.era(a,{width:"wide"})}},y:function(e,t,n){if("yo"===t){const t=e.getFullYear(),a=t>0?t:1-t;return n.ordinalNumber(a,{unit:"year"})}return wu.y(e,t)},Y:function(e,t,n,a){const i=vu(e,a),r=i>0?i:1-i;if("YY"===t){return bu(r%100,2)}return"Yo"===t?n.ordinalNumber(r,{unit:"year"}):bu(r,t.length)},R:function(e,t){return bu(tu(e),t.length)},u:function(e,t){return bu(e.getFullYear(),t.length)},Q:function(e,t,n){const a=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(a);case"QQ":return bu(a,2);case"Qo":return n.ordinalNumber(a,{unit:"quarter"});case"QQQ":return n.quarter(a,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(a,{width:"narrow",context:"formatting"});default:return n.quarter(a,{width:"wide",context:"formatting"})}},q:function(e,t,n){const a=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(a);case"qq":return bu(a,2);case"qo":return n.ordinalNumber(a,{unit:"quarter"});case"qqq":return n.quarter(a,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(a,{width:"narrow",context:"standalone"});default:return n.quarter(a,{width:"wide",context:"standalone"})}},M:function(e,t,n){const a=e.getMonth();switch(t){case"M":case"MM":return wu.M(e,t);case"Mo":return n.ordinalNumber(a+1,{unit:"month"});case"MMM":return n.month(a,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(a,{width:"narrow",context:"formatting"});default:return n.month(a,{width:"wide",context:"formatting"})}},L:function(e,t,n){const a=e.getMonth();switch(t){case"L":return String(a+1);case"LL":return bu(a+1,2);case"Lo":return n.ordinalNumber(a+1,{unit:"month"});case"LLL":return n.month(a,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(a,{width:"narrow",context:"standalone"});default:return n.month(a,{width:"wide",context:"standalone"})}},w:function(e,t,n,a){const i=yu(e,a);return"wo"===t?n.ordinalNumber(i,{unit:"week"}):bu(i,t.length)},I:function(e,t,n){const a=_u(e);return"Io"===t?n.ordinalNumber(a,{unit:"week"}):bu(a,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getDate(),{unit:"date"}):wu.d(e,t)},D:function(e,t,n){const a=fu(e);return"Do"===t?n.ordinalNumber(a,{unit:"dayOfYear"}):bu(a,t.length)},E:function(e,t,n){const a=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(a,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(a,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},e:function(e,t,n,a){const i=e.getDay(),r=(i-a.weekStartsOn+8)%7||7;switch(t){case"e":return String(r);case"ee":return bu(r,2);case"eo":return n.ordinalNumber(r,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(e,t,n,a){const i=e.getDay(),r=(i-a.weekStartsOn+8)%7||7;switch(t){case"c":return String(r);case"cc":return bu(r,t.length);case"co":return n.ordinalNumber(r,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(e,t,n){const a=e.getDay(),i=0===a?7:a;switch(t){case"i":return String(i);case"ii":return bu(i,t.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(a,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(a,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},a:function(e,t,n){const a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(e,t,n){const a=e.getHours();let i;switch(i=12===a?Cu:0===a?xu:a/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(i,{width:"narrow",context:"formatting"});default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},B:function(e,t,n){const a=e.getHours();let i;switch(i=a>=17?Su:a>=12?ku:a>=4?Mu:Eu,t){case"B":case"BB":case"BBB":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(i,{width:"narrow",context:"formatting"});default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){let t=e.getHours()%12;return 0===t&&(t=12),n.ordinalNumber(t,{unit:"hour"})}return wu.h(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getHours(),{unit:"hour"}):wu.H(e,t)},K:function(e,t,n){const a=e.getHours()%12;return"Ko"===t?n.ordinalNumber(a,{unit:"hour"}):bu(a,t.length)},k:function(e,t,n){let a=e.getHours();return 0===a&&(a=24),"ko"===t?n.ordinalNumber(a,{unit:"hour"}):bu(a,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):wu.m(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getSeconds(),{unit:"second"}):wu.s(e,t)},S:function(e,t){return wu.S(e,t)},X:function(e,t,n){const a=e.getTimezoneOffset();if(0===a)return"Z";switch(t){case"X":return zu(a);case"XXXX":case"XX":return Iu(a);default:return Iu(a,":")}},x:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"x":return zu(a);case"xxxx":case"xx":return Iu(a);default:return Iu(a,":")}},O:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+Au(a,":");default:return"GMT"+Iu(a,":")}},z:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+Au(a,":");default:return"GMT"+Iu(a,":")}},t:function(e,t,n){return bu(Math.trunc(e.getTime()/1e3),t.length)},T:function(e,t,n){return bu(e.getTime(),t.length)}};function Au(e,t=""){const n=e>0?"-":"+",a=Math.abs(e),i=Math.trunc(a/60),r=a%60;return 0===r?n+String(i):n+String(i)+t+bu(r,2)}function zu(e,t){if(e%60==0){return(e>0?"-":"+")+bu(Math.abs(e)/60,2)}return Iu(e,t)}function Iu(e,t=""){const n=e>0?"-":"+",a=Math.abs(e);return n+bu(Math.trunc(a/60),2)+t+bu(a%60,2)}const Tu=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},ju=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},Ou={p:ju,P:(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],a=n[1],i=n[2];if(!i)return Tu(e,t);let r;switch(a){case"P":r=t.dateTime({width:"short"});break;case"PP":r=t.dateTime({width:"medium"});break;case"PPP":r=t.dateTime({width:"long"});break;default:r=t.dateTime({width:"full"})}return r.replace("{{date}}",Tu(a,t)).replace("{{time}}",ju(i,t))}},Du=/^D+$/,Ru=/^Y+$/,Pu=["D","DD","YY","YYYY"];function Lu(e){return Du.test(e)}function Nu(e){return Ru.test(e)}function Fu(e,t,n){const a=function(e,t,n){const a="Y"===e[0]?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${a} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}(e,t,n);if(console.warn(a),Pu.includes(e))throw new RangeError(a)}const Vu=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Hu=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Bu=/^'([^]*?)'?$/,qu=/''/g,Uu=/[a-zA-Z]/;function Wu(e,t,n){const a=Xd(),i=n?.locale??a.locale??gu,r=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,o=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??a.weekStartsOn??a.locale?.options?.weekStartsOn??0,s=Vd(e);if(!iu(s))throw new RangeError("Invalid time value");let c=t.match(Hu).map((e=>{const t=e[0];if("p"===t||"P"===t){return(0,Ou[t])(e,i.formatLong)}return e})).join("").match(Vu).map((e=>{if("''"===e)return{isToken:!1,value:"'"};const t=e[0];if("'"===t)return{isToken:!1,value:Zu(e)};if($u[t])return{isToken:!0,value:e};if(t.match(Uu))throw new RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return{isToken:!1,value:e}}));i.localize.preprocessor&&(c=i.localize.preprocessor(s,c));const l={firstWeekContainsDate:r,weekStartsOn:o,locale:i};return c.map((a=>{if(!a.isToken)return a.value;const r=a.value;(!n?.useAdditionalWeekYearTokens&&Nu(r)||!n?.useAdditionalDayOfYearTokens&&Lu(r))&&Fu(r,t,String(e));return(0,$u[r[0]])(s,r,i.localize,l)})).join("")}function Zu(e){const t=e.match(Bu);return t?t[1].replace(qu,"'"):e}function Qu(e,t){const{years:n=0,months:a=0,weeks:i=0,days:r=0,hours:o=0,minutes:s=0,seconds:c=0}=t,l=function(e,t){return qd(e,-t)}(e,a+12*n),d=function(e,t){return Bd(e,-t)}(l,r+7*i),u=1e3*(c+60*(s+60*o));return Hd(e,d.getTime()-u)}function Gu(e,t){return e===t||e!=e&&t!=t}function Yu(e,t){for(var n=e.length;n--;)if(Gu(e[n][0],t))return n;return-1}var Ku=Array.prototype.splice;function Xu(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1},Xu.prototype.set=function(e,t){var n=this.__data__,a=Yu(n,e);return a<0?(++this.size,n.push([e,t])):n[a][1]=t,this};var Ju="object"==typeof global&&global&&global.Object===Object&&global,eh="object"==typeof self&&self&&self.Object===Object&&self,th=Ju||eh||Function("return this")(),nh=th.Symbol,ah=Object.prototype,ih=ah.hasOwnProperty,rh=ah.toString,oh=nh?nh.toStringTag:void 0;var sh=Object.prototype.toString;var ch="[object Null]",lh="[object Undefined]",dh=nh?nh.toStringTag:void 0;function uh(e){return null==e?void 0===e?lh:ch:dh&&dh in Object(e)?function(e){var t=ih.call(e,oh),n=e[oh];try{e[oh]=void 0;var a=!0}catch(e){}var i=rh.call(e);return a&&(t?e[oh]=n:delete e[oh]),i}(e):function(e){return sh.call(e)}(e)}function hh(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}var ph="[object AsyncFunction]",mh="[object Function]",gh="[object GeneratorFunction]",fh="[object Proxy]";function _h(e){if(!hh(e))return!1;var t=uh(e);return t==mh||t==gh||t==ph||t==fh}var vh,yh=th["__core-js_shared__"],bh=(vh=/[^.]+$/.exec(yh&&yh.keys&&yh.keys.IE_PROTO||""))?"Symbol(src)_1."+vh:"";var wh=Function.prototype.toString;function xh(e){if(null!=e){try{return wh.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var Ch=/^\[object .+?Constructor\]$/,Mh=Function.prototype,kh=Object.prototype,Sh=Mh.toString,Eh=kh.hasOwnProperty,$h=RegExp("^"+Sh.call(Eh).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ah(e){return!(!hh(e)||(t=e,bh&&bh in t))&&(_h(e)?$h:Ch).test(xh(e));var t}function zh(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return Ah(n)?n:void 0}var Ih=zh(th,"Map"),Th=zh(Object,"create");var jh=Object.prototype.hasOwnProperty;var Oh=Object.prototype.hasOwnProperty;function Dh(e){var t=-1,n=null==e?0:e.length;for(this.clear();++ts))return!1;var l=r.get(e),d=r.get(t);if(l&&d)return l==t&&d==e;var u=-1,h=!0,p=n&Bh?new Nh:void 0;for(r.set(e,t),r.set(t,e);++u-1&&e%1==0&&e-1&&e%1==0&&e<=Ap}var Ip={};function Tp(e){return function(t){return e(t)}}Ip["[object Float32Array]"]=Ip["[object Float64Array]"]=Ip["[object Int8Array]"]=Ip["[object Int16Array]"]=Ip["[object Int32Array]"]=Ip["[object Uint8Array]"]=Ip["[object Uint8ClampedArray]"]=Ip["[object Uint16Array]"]=Ip["[object Uint32Array]"]=!0,Ip["[object Arguments]"]=Ip["[object Array]"]=Ip["[object ArrayBuffer]"]=Ip["[object Boolean]"]=Ip["[object DataView]"]=Ip["[object Date]"]=Ip["[object Error]"]=Ip["[object Function]"]=Ip["[object Map]"]=Ip["[object Number]"]=Ip["[object Object]"]=Ip["[object RegExp]"]=Ip["[object Set]"]=Ip["[object String]"]=Ip["[object WeakMap]"]=!1;var jp="object"==typeof exports&&exports&&!exports.nodeType&&exports,Op=jp&&"object"==typeof module&&module&&!module.nodeType&&module,Dp=Op&&Op.exports===jp&&Ju.process,Rp=function(){try{var e=Op&&Op.require&&Op.require("util").types;return e||Dp&&Dp.binding&&Dp.binding("util")}catch(e){}}(),Pp=Rp,Lp=Pp&&Pp.isTypedArray,Np=Lp?Tp(Lp):function(e){return fp(e)&&zp(e.length)&&!!Ip[uh(e)]},Fp=Object.prototype.hasOwnProperty;function Vp(e,t){var n=dp(e),a=!n&&wp(e),i=!n&&!a&&kp(e),r=!n&&!a&&!i&&Np(e),o=n||a||i||r,s=o?function(e,t){for(var n=-1,a=Array(e);++n0){if(++og>=800)return arguments[0]}else og=0;return rg.apply(void 0,arguments)});function lg(e,t){return cg(function(e,t,n){return t=tg(void 0===t?e.length-1:t,0),function(){for(var a=arguments,i=-1,r=tg(a.length-t,0),o=Array(r);++i1?n[i-1]:void 0,o=i>2?n[2]:void 0;for(r=e.length>3&&"function"==typeof r?(i--,r):void 0,o&&dg(n[0],n[1],o)&&(r=i<3?void 0:r,i=1),t=Object(t);++a-1}function Ng(e,t,n){for(var a=-1,i=null==e?0:e.length;++a=Vg){var l=t?null:Fg(e);if(l)return Zh(l);o=!1,i=Vh,c=new Nh}else c=t?[]:s;e:for(;++ae[0].toUpperCase()+e.substring(1))).join(" ")}function Ug(e,t,n){const a=e[t];return e.splice(t,1),e.splice(n,0,a),e}const Wg=e=>Array.isArray(e)?e:[e],Zg=e=>e instanceof Set?e:new Set(Wg(e));function Qg(e,t,n){return!function(e,t,n){var a=(n="function"==typeof n?n:void 0)?n(e,t):void 0;return void 0===a?bm(e,t,void 0,n):!!a}(e,t,n)}function Gg(e,t=console.warn){e instanceof zs&&e.context?t(e,e.context):t("object"==typeof e&&"message"in e?e.message:e)}const Yg=()=>window.matchMedia("(hover: hover) and (pointer: fine)").matches,Kg=(e,t)=>Wu(e,"yyyy-MM-dd HH:mm"+(t?":ss":"")),Xg=e=>Wu(e,"yyyy-MM-dd"),Jg=(e,t)=>{window.requestIdleCallback?window.requestIdleCallback(e,{...t&&{timeout:t}}):e()};function ef(e,t){const n=function(e,t,n){const a=ou(e,t)/Gd;return ru(n?.roundingMethod)(a)}(t,e),a=function(e,t,n){const a=ou(e,t)/Qd;return ru(n?.roundingMethod)(a)}(t,e)-60*n;let i="";return n&&(i+=`${n}h `),a&&(i+=`${a}m `),i+=`${su(t,e)-60*n*60-60*a}s`,i}const tf=async(e,t)=>await Promise.all(Array.from(e).map((e=>t(e)))),nf=e=>new Date(`${e}T00:00:00`),af=async e=>{await new Promise((t=>setTimeout(t,1e3*e)))},rf=e=>!isNaN(e.getTime()),of=(e,t,n,a)=>{t?e.setAttribute(n,a??""):e.removeAttribute(n)},sf=e=>!!e,cf=e=>e instanceof HTMLElement,lf=e=>(e instanceof HTMLSlotElement?e.assignedElements({flatten:!0}):[...e.children]).filter(cf),df=e=>e?.ratio&&2===e.ratio.length?`${e.ratio[0]} / ${e.ratio[1]}`:e?.defaultStatic?"16 / 9":"auto",uf=e=>({"aspect-ratio":df(e)}),hf=e=>{if(Array.isArray(e))return e.filter((e=>void 0!==e)).map((e=>hf(e)));if("object"==typeof e&&null!==e){const t={};for(const n in e)t[n]=hf(e[n]);return t}return e},pf=(e,t,n)=>Rg(e,n)===Rg(t,n);function mf(e){if(!e)return null;const t=Ic.safeParse(e);return t.success?t.data:null}function gf(e,t){return{action:"fire-dom-event",frigate_card_action:e,...t?.cardID&&{card_id:t.cardID}}}function ff(e,t,n){return{action:"fire-dom-event",frigate_card_action:e,camera:t,...n?.cardID&&{card_id:n.cardID}}}function _f(e,t,n){return{action:"fire-dom-event",frigate_card_action:"media_player",media_player:e,media_player_action:t,...n?.cardID&&{card_id:n.cardID}}}function vf(e){return{action:"fire-dom-event",frigate_card_action:"ptz_multi",...e?.cardID&&{card_id:e.cardID},...e?.ptzAction&&{ptz_action:e.ptzAction},...e?.ptzPhase&&{ptz_phase:e.ptzPhase},...e?.ptzPreset&&{ptz_preset:e.ptzPreset},...e?.targetID&&{target_id:e.targetID}}}function yf(e,t){return e&&t?"tap"===e&&t.tap_action?t.tap_action:"hold"===e&&t.hold_action?t.hold_action:"double_tap"===e&&t.double_tap_action?t.double_tap_action:"end_tap"===e&&t.end_tap_action?t.end_tap_action:"start_tap"===e&&t.start_tap_action?t.start_tap_action:null:null}const bf=e=>Wg(e).some((e=>function(e){return void 0!==e&&"none"!==e.action}(e))),wf=e=>{e.stopPropagation()};class xf{constructor(){this._timer=null,this._repeated=!1}stop(){this._timer&&(this._repeated?window.clearInterval(this._timer):window.clearTimeout(this._timer),this._timer=null)}isRunning(){return null!==this._timer}start(e,t){this.stop(),this._timer=window.setTimeout((()=>{this._timer=null,t()}),1e3*e),this._repeated=!1}startRepeated(e,t){this.stop(),this._timer=window.setInterval((()=>{t()}),1e3*e),this._repeated=!0}}class Cf extends HTMLElement{constructor(){super(...arguments),this.holdTime=.4,this.holdTimer=new xf,this.doubleClickTimer=new xf,this.held=!1,this.started=!1}connectedCallback(){["touchcancel","mouseout","mouseup","touchmove","mousewheel","wheel","scroll"].forEach((e=>{document.addEventListener(e,(()=>{this.holdTimer.stop()}),{passive:!0})}))}bind(e,t){if(e.actionHandlerOptions)return void(e.actionHandlerOptions=t);e.actionHandlerOptions=t,e.addEventListener("contextmenu",(e=>{const t=e||window.event;return t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation(),t.cancelBubble=!0,t.returnValue=!1,!1}));const n=()=>{this.held=!1,this.holdTimer.start(this.holdTime,(()=>{this.held=!0})),this.started||(this.started=!0,et(e,"action",{action:"start_tap"}))},a=t=>{this.holdTimer.stop(),this.started&&(this.started=!1,et(e,"action",{action:"end_tap"}))},i=t=>{const n=e.actionHandlerOptions;n?.allowPropagation||wf(t),["touchend","touchcancel"].includes(t.type)&&!this.held||(a(),n?.hasHold&&this.held?et(e,"action",{action:"hold"}):n?.hasDoubleClick?"click"===t.type&&t.detail<2||!this.doubleClickTimer.isRunning()?this.doubleClickTimer.start(.25,(()=>et(e,"action",{action:"tap"}))):(this.doubleClickTimer.stop(),et(e,"action",{action:"double_tap"})):et(e,"action",{action:"tap"}))};e.addEventListener("touchstart",n,{passive:!0}),e.addEventListener("touchend",i),e.addEventListener("touchcancel",i),e.addEventListener("mousedown",n,{passive:!0}),e.addEventListener("click",i),e.addEventListener("keyup",(e=>{"Enter"===e.key&&i(e)})),e.addEventListener("mouseleave",a)}}customElements.define("action-handler-frigate-card",Cf);const Mf=(e,t)=>{const n=(()=>{const e=document.body;if(e.querySelector("action-handler-frigate-card"))return e.querySelector("action-handler-frigate-card");const t=document.createElement("action-handler-frigate-card");return e.appendChild(t),t})();n&&n.bind(e,t)},kf=ge(class extends fe{update(e,[t]){return Mf(e.element,t),U}render(e){}});var Sf=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)lp(t,gp(e)),e=Pm(e);return t}:hp;function Ef(e){return up(e,Km,Sf)}var $f=Object.prototype.hasOwnProperty;var Af=/\w*$/;var zf=nh?nh.prototype:void 0,If=zf?zf.valueOf:void 0;var Tf="[object Boolean]",jf="[object Date]",Of="[object Map]",Df="[object Number]",Rf="[object RegExp]",Pf="[object Set]",Lf="[object String]",Nf="[object Symbol]",Ff="[object ArrayBuffer]",Vf="[object DataView]",Hf="[object Float32Array]",Bf="[object Float64Array]",qf="[object Int8Array]",Uf="[object Int16Array]",Wf="[object Int32Array]",Zf="[object Uint8Array]",Qf="[object Uint8ClampedArray]",Gf="[object Uint16Array]",Yf="[object Uint32Array]";function Kf(e,t,n){var a,i,r,o=e.constructor;switch(t){case Ff:return Tm(e);case Tf:case jf:return new o(+e);case Vf:return function(e,t){var n=t?Tm(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case Hf:case Bf:case qf:case Uf:case Wf:case Zf:case Qf:case Gf:case Yf:return jm(e,n);case Of:return new o;case Df:case Lf:return new o(e);case Rf:return(r=new(i=e).constructor(i.source,Af.exec(i))).lastIndex=i.lastIndex,r;case Pf:return new o;case Nf:return a=e,If?Object(If.call(a)):{}}}var Xf=Pp&&Pp.isMap,Jf=Xf?Tp(Xf):function(e){return fp(e)&&"[object Map]"==pm(e)};var e_=Pp&&Pp.isSet,t_=e_?Tp(e_):function(e){return fp(e)&&"[object Set]"==pm(e)},n_=1,a_=2,i_=4,r_="[object Arguments]",o_="[object Function]",s_="[object GeneratorFunction]",c_="[object Object]",l_={};function d_(e,t,n,a,i,r){var o,s=t&n_,c=t&a_,l=t&i_;if(n&&(o=i?n(e,a,i,r):n(e)),void 0!==o)return o;if(!hh(e))return e;var d=dp(e);if(d){if(o=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&$f.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!s)return Om(e,o)}else{var u=pm(e),h=u==o_||u==s_;if(kp(e))return Im(e,s);if(u==c_||u==r_||h&&!i){if(o=c||h?{}:Lm(e),!s)return c?function(e,t){return Qm(e,Sf(e),t)}(e,function(e,t){return e&&Qm(t,Km(t),e)}(o,e)):function(e,t){return Qm(e,gp(e),t)}(e,function(e,t){return e&&Qm(t,Qp(t),e)}(o,e))}else{if(!l_[u])return i?e:{};o=Kf(e,u,s)}}r||(r=new Lh);var p=r.get(e);if(p)return p;r.set(e,o),t_(e)?e.forEach((function(a){o.add(d_(a,t,n,a,e,r))})):Jf(e)&&e.forEach((function(a,i){o.set(i,d_(a,t,n,i,e,r))}));var m=d?void 0:(l?c?Ef:Gp:c?Km:Qp)(e);return function(e,t){for(var n=-1,a=null==e?0:e.length;++nvoid 0===globalThis.DOMException?new __(e):new DOMException(e),y_=e=>{const t=void 0===e.reason?v_("This operation was aborted."):e.reason;return t instanceof Error?t:v_(t)};class b_{#e=[];enqueue(e,t){const n={priority:(t={priority:0,...t}).priority,run:e};if(this.size&&this.#e[this.size-1].priority>=t.priority)return void this.#e.push(n);const a=function(e,t,n){let a=0,i=e.length;for(;i>0;){const r=Math.trunc(i/2);let o=a+r;n(e[o],t)<=0?(a=++o,i-=r+1):i=r}return a}(this.#e,n,((e,t)=>t.priority-e.priority));this.#e.splice(a,0,n)}dequeue(){const e=this.#e.shift();return e?.run}filter(e){return this.#e.filter((t=>t.priority===e.priority)).map((e=>e.run))}get size(){return this.#e.length}}class w_ extends g_{#t;#n;#a=0;#i;#r;#o=0;#s;#c;#e;#l;#d=0;#u;#h;#p;timeout;constructor(e){if(super(),!("number"==typeof(e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:b_,...e}).intervalCap&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${typeof e.intervalCap})`);if(void 0===e.interval||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??""}\` (${typeof e.interval})`);this.#t=e.carryoverConcurrencyCount,this.#n=e.intervalCap===Number.POSITIVE_INFINITY||0===e.interval,this.#i=e.intervalCap,this.#r=e.interval,this.#e=new e.queueClass,this.#l=e.queueClass,this.concurrency=e.concurrency,this.timeout=e.timeout,this.#p=!0===e.throwOnTimeout,this.#h=!1===e.autoStart}get#m(){return this.#n||this.#a{this.#v()}),t)),!0;this.#a=this.#t?this.#d:0}return!1}#_(){if(0===this.#e.size)return this.#s&&clearInterval(this.#s),this.#s=void 0,this.emit("empty"),0===this.#d&&this.emit("idle"),!1;if(!this.#h){const e=!this.#w;if(this.#m&&this.#g){const t=this.#e.dequeue();return!!t&&(this.emit("active"),t(),e&&this.#b(),!0)}}return!1}#b(){this.#n||void 0!==this.#s||(this.#s=setInterval((()=>{this.#y()}),this.#r),this.#o=Date.now()+this.#r)}#y(){0===this.#a&&0===this.#d&&this.#s&&(clearInterval(this.#s),this.#s=void 0),this.#a=this.#t?this.#d:0,this.#x()}#x(){for(;this.#_(););}get concurrency(){return this.#u}set concurrency(e){if(!("number"==typeof e&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#u=e,this.#x()}async#C(e){return new Promise(((t,n)=>{e.addEventListener("abort",(()=>{n(e.reason)}),{once:!0})}))}async add(e,t={}){return t={timeout:this.timeout,throwOnTimeout:this.#p,...t},new Promise(((n,a)=>{this.#e.enqueue((async()=>{this.#d++,this.#a++;try{t.signal?.throwIfAborted();let a=e({signal:t.signal});t.timeout&&(a=function(e,t){const{milliseconds:n,fallback:a,message:i,customTimers:r={setTimeout:setTimeout,clearTimeout:clearTimeout}}=t;let o;const s=new Promise(((s,c)=>{if("number"!=typeof n||1!==Math.sign(n))throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${n}\``);if(t.signal){const{signal:e}=t;e.aborted&&c(y_(e)),e.addEventListener("abort",(()=>{c(y_(e))}))}if(n===Number.POSITIVE_INFINITY)return void e.then(s,c);const l=new f_;o=r.setTimeout.call(void 0,(()=>{if(a)try{s(a())}catch(e){c(e)}else"function"==typeof e.cancel&&e.cancel(),!1===i?s():i instanceof Error?c(i):(l.message=i??`Promise timed out after ${n} milliseconds`,c(l))}),n),(async()=>{try{s(await e)}catch(e){c(e)}})()})),c=s.finally((()=>{c.clear()}));return c.clear=()=>{r.clearTimeout.call(void 0,o),o=void 0},c}(Promise.resolve(a),{milliseconds:t.timeout})),t.signal&&(a=Promise.race([a,this.#C(t.signal)]));const i=await a;n(i),this.emit("completed",i)}catch(e){if(e instanceof f_&&!t.throwOnTimeout)return void n();a(e),this.emit("error",e)}finally{this.#f()}}),t),this.emit("add"),this.#_()}))}async addAll(e,t){return Promise.all(e.map((async e=>this.add(e,t))))}start(){return this.#h?(this.#h=!1,this.#x(),this):this}pause(){this.#h=!0}clear(){this.#e=new this.#l}async onEmpty(){0!==this.#e.size&&await this.#M("empty")}async onSizeLessThan(e){this.#e.sizethis.#e.size{const a=()=>{t&&!t()||(this.off(e,a),n())};this.on(e,a)}))}get size(){return this.#e.size}sizeBy(e){return this.#e.filter(e).length}get pending(){return this.#d}get isPaused(){return this.#h}}var x_={frigate_card:"Frigate card",frigate_card_description:"A Lovelace card for use with Frigate",live:"Live",no_media:"No media to display",recordings:"Recordings",version:"Version"},C_={cameras:{camera_entity:"Camera Entity",capabilities:{capabilities:{clips:"Clips","favorite-events":"Favorite Events","favorite-recordings":"Favorite Recordings",live:"Live",menu:"Menu",ptz:"PTZ",recordings:"Recordings",seek:"Seeking",snapshots:"Snapshots",substream:"Substream"},disable:"Disable",disable_except:"Disable except",editor_label:"Camera capabilities"},cast:{dashboard:{dashboard_path:"Dashboard path",view_path:"View path"},editor_label:"Cast options",method:"Cast method",methods:{dashboard:"Dashboard",standard:"Standard"}},dependencies:{all_cameras:"Show events for all cameras with this camera",cameras:"Show events for specific cameras with this camera",editor_label:"Dependency options"},dimensions:{aspect_ratio:"Static aspect ratio",editor_label:"Camera dimensions",layout:{editor_label:"Camera Layout",fit:"Layout fit",fits:{contain:"Media is contained/letterboxed",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",y:"Vertical placement percentage"},view_box:{bottom:"Bottom inset percentage",editor_label:"Layout View Box",left:"Left inset percentage",right:"Right inset percentage",top:"Top inset percentage"},zoom:"Zoom factor"}},engines:{editor_label:"Camera engine options"},frigate:{camera_name:"Frigate camera name (Autodetected from entity)",client_id:"Frigate client id (For >1 Frigate server)",editor_label:"Frigate options",labels:"Frigate labels/object filters",url:"Frigate server URL",zones:"Frigate zones"},go2rtc:{editor_label:"go2rtc Options",modes:{editor_label:"go2rtc Modes",mjpeg:"Motion JPEG (MJPEG)",mp4:"MPEG-4 (MP4)",mse:"Media Source Extensions (MSE)",webrtc:"Web Real-Time Communication (WebRTC)"},stream:"go2rtc stream name"},icon:"Icon for this camera (Autodetected from entity)",id:"Unique id for this camera in this card",image:{editor_label:"Image Options",refresh_seconds:"Number of seconds after which to refresh live image (0=never)",url:"Image URL to use instead of camera entity snapshot"},live_provider:"Live view provider for this camera",live_provider_options:{editor_label:"Live provider options"},live_providers:{auto:"Automatic",go2rtc:"go2rtc",ha:"Home Assistant video stream (i.e. HLS, LL-HLS, WebRTC via HA)",image:"Home Assistant images",jsmpeg:"JSMpeg","webrtc-card":"WebRTC Card (i.e. AlexxIT's WebRTC Card)"},motioneye:{editor_label:"MotionEye options",images:{directory_pattern:"Images directory pattern",file_pattern:"Images file pattern"},movies:{directory_pattern:"Movies directory pattern",file_pattern:"Movies file pattern"},url:"MotionEye UI URL"},proxy:{dynamic:"Dynamic proxying",editor_label:"Camera proxying",media:{auto:"Media proxying automatically configured",editor_label:"Media proxying",false:"Media proxying disabled",true:"Media proxying enabled"},ssl_ciphers:{auto:"SSL ciphers automatically configured",default:"Default SSL ciphers",editor_label:"SSL ciphers",insecure:"Insecure SSL ciphers",intermediate:"Intermediate SSL ciphers",modern:"Modern SSL ciphers"},ssl_verification:{auto:"SSL verification automatically configured",editor_label:"SSL verification",false:"SSL verification disabled",true:"SSL verification enabled"}},reolink:{editor_label:"Reolink options",media_resolution:{editor_label:"Media Resolution",high:"High Resolution",low:"Low Resolution"},url:"Reolink UI URL"},title:"Title for this camera (Autodetected from entity)",triggers:{editor_label:"Trigger options",entities:"Trigger from other entities",events:{clips:"Events with new clips",editor_label:"Trigger Events",events:"All events",snapshots:"Events with new snapshots"},motion:"Trigger by auto-detecting the motion sensor",occupancy:"Trigger by auto-detecting the occupancy sensor"},webrtc_card:{editor_label:"WebRTC Card Options",entity:"WebRTC Card Camera Entity (Not a Frigate camera)",url:"WebRTC Card Camera URL"}},common:{controls:{builtin:"Built-in video controls",filter:{editor_label:"Media Filter",mode:"Filter mode",modes:{left:"Media filter in a drawer to the left",none:"No media filter",right:"Media filter in a drawer to the right"}},next_previous:{editor_label:"Next & Previous",size:"Next & previous control size in pixels",style:"Next & previous control style",styles:{chevrons:"Chevrons",icons:"Icons",none:"None",thumbnails:"Thumbnails"}},thumbnails:{editor_label:"Thumbnails",events_media_type:"Whether to show event thumbnails of clips or snapshots",events_media_types:{clips:"Clip thumbnails",snapshots:"Snapshot thumbnails"},media_type:"Whether to show thumnails of events or recordings",media_types:{events:"Events",recordings:"Recordings"},mode:"Thumbnails mode",modes:{above:"Thumbnails above",below:"Thumbnails below",left:"Thumbnails in a drawer to the left",none:"No thumbnails",right:"Thumbnails in a drawer to the right"},show_details:"Show details with thumbnails",show_download_control:"Show download control on thumbnails",show_favorite_control:"Show favorite control on thumbnails",show_timeline_control:"Show timeline control on thumbnails",size:"Thumbnails size in pixels"},timeline:{editor_label:"Mini Timeline",mode:"Mode",modes:{above:"Above",below:"Below",none:"None"},pan_mode:"Default pan mode",pan_modes:{pan:"Pan",seek:"Pan seeks across all media","seek-in-camera":"Pan seeks within selected camera only","seek-in-media":"Pan seeks within selected media item only"}}},display:{editor_label:"Display",grid_columns:"Exact number of grid columns",grid_max_columns:"Maximum number of grid columns",grid_selected_width_factor:"Increase selected media width by this factor",mode:"Mode"},image:{entity:"Entity for use with entity mode",entity_parameters:"Query parameters added to the entity-based picture URLs (e.g. width=1920&height=1080)",mode:"Image mode",modes:{camera:"Home Assistant camera snapshot of camera entity",entity:"Entity with entity_picture attribute",screensaver:"Embedded Frigate logo",url:"Arbitrary image specified by URL"},refresh_seconds:"Number of seconds after which to refresh (0=never)",url:"Static image URL"},media_action_conditions:{all:"All opportunities",hidden:"On browser/tab hiding",microphone_mute:"On microphone mute",microphone_unmute:"On microphone unmute",never:"Never",selected:"On selection",unselected:"On unselection",visible:"On browser/tab visibility"},timeline:{clustering_threshold:"The count of events at which they are clustered (0=no clustering)",events_media_type:"The events media the timeline displays",events_media_types:{all:"All event media types",clips:"Clips",snapshots:"Snapshots"},show_recordings:"Show recordings",style:"Timeline style",styles:{ribbon:"Events on a single ribbon",stack:"Stacked & clustered events"},window_seconds:"The default length of the timeline view in seconds"}},dimensions:{aspect_ratio:"Default aspect ratio (e.g. '16:9')",aspect_ratio_mode:"Aspect ratio mode",aspect_ratio_modes:{dynamic:"Aspect ratio adjusts to media",static:"Static aspect ratio",unconstrained:"Unconstrained aspect ratio"},height:"Card height in CSS units (e.g. '500px')"},live:{auto_mute:"Automatically mute live cameras",auto_pause:"Automatically pause live cameras",auto_play:"Automatically play live cameras",auto_unmute:"Automatically unmute live cameras",controls:{editor_label:"Live Controls",ptz:{editor_label:"PTZ",hide_home:"Hide home control",hide_pan_tilt:"Hide pan & tilt control",hide_zoom:"Hide zoom control",mode:"Mode",modes:{off:"Off",on:"On"},orientation:"Orientation",orientations:{horizontal:"Horizontal",vertical:"Vertical"},position:"Position",positions:{"bottom-left":"Bottom left","bottom-right":"Bottom right","top-left":"Top left","top-right":"Top right"}}},draggable:"Live cameras view can be dragged/swiped",lazy_load:"Live cameras are lazily loaded",lazy_unload:"Live cameras are lazily unloaded",microphone:{always_connected:"Always keep the microphone connected",disconnect_seconds:"Seconds after which to disconnect microphone (0=never)",editor_label:"Microphone",enabled:"Microphone enabled",mute_after_microphone_mute_seconds:"Seconds after microphone mute to mute inbound audio"},preload:"Preload live view in the background",show_image_during_load:"Show still image while the live stream is loading",transition_effect:"Live camera transition effect",zoomable:"Live cameras can be zoomed/panned"},media_viewer:{auto_mute:"Automatically mute media",auto_pause:"Automatically pause media",auto_play:"Automatically play media",auto_unmute:"Automatically unmute media",controls:{editor_label:"Media Viewer Controls"},draggable:"Media Viewer can be dragged/swiped",lazy_load:"Media Viewer media is lazily loaded in carousel",snapshot_click_plays_clip:"Clicking on a snapshot plays a related clip",transition_effect:"Media Viewer transition effect",transition_effects:{none:"No transition",slide:"Slide transition"},zoomable:"Media Viewer can be zoomed/panned"},menu:{alignment:"Menu alignment",alignments:{bottom:"Aligned to the bottom",left:"Aligned to the left",right:"Aligned to the right",top:"Aligned to the top"},button_size:"Menu button size in pixels",buttons:{alignment:"Button alignment",alignments:{matching:"Matching the menu alignment",opposing:"Opposing the menu alignment"},camera_ui:"Camera user interface",cameras:"Cameras",clips:"Clips",display_mode:"Display mode",download:"Download",enabled:"Button enabled",expand:"Expand",frigate:"Frigate menu / Default view",fullscreen:"Fullscreen",icon:"Icon",image:"Image",live:"Live",media_player:"Send to media player",microphone:"Microphone",mute:"Mute / Unmute",permanent:"Show when the menu is hidden",play:"Play / Pause",priority:"Priority",ptz_controls:"Show PTZ controls",ptz_home:"PTZ Home",recordings:"Recordings",screenshot:"Screenshot",snapshots:"Snapshots",substreams:"Substream(s)",timeline:"Timeline",type:"Button type",types:{momentary:"Momentary",toggle:"Toggle"}},position:"Menu position",positions:{bottom:"Positioned on the bottom",left:"Positioned on the left",right:"Positioned on the right",top:"Positioned on the top"},style:"Menu style",styles:{hidden:"Hidden menu",hover:"Hover menu","hover-card":"Hover menu (card-wide)",none:"No menu",outside:"Outside menu",overlay:"Overlay menu"}},overrides:{info:"This card configuration has manually specified overrides configured which may override values shown in the visual editor, please consult the code editor to view/modify these overrides"},performance:{features:{animated_progress_indicator:"Animated Progress Indicator",editor_label:"Feature Options",max_simultaneous_engine_requests:"Max simultaneous camera engine requests",media_chunk_size:"Media chunk size"},style:{border_radius:"Curves",box_shadow:"Shadows",editor_label:"Style Options"},warning:"This card is in low profile mode so defaults have changed to optimize performance"},profiles:{casting:"Casting",editor_label:"Configuration profiles","low-performance":"Low performance",scrubbing:"Video scrubbing"},status_bar:{height:"Status bar height in pixels",items:{enabled:"Item enabled",engine:"Camera engine",live_provider:"Live provider",priority:"Item priority",resolution:"Resolution",technology:"Technology",title:"Title"},popup_seconds:"Status bar popup seconds",position:"Status bar position",positions:{bottom:"Positioned on the bottom",top:"Positioned on the top"},style:"Status bar style",styles:{hover:"Hover status bar","hover-card":"Hover status bar (card-wide)",none:"No status bar",outside:"Outside status bar",overlay:"Overlay status bar",popup:"Popup status bar"}},view:{camera_select:"View for newly selected cameras",dark_mode:"Dark mode",dark_modes:{auto:"Auto",off:"Off",on:"On"},default:"Default view",default_cycle_camera:"Cycle through cameras when default view updates",default_reset:{after_interaction:"Reset to the default view after user interaction ends",editor_label:"Default view reset behavior",entities:"Reset to the default view on entity state change",every_seconds:"Reset to default view every X seconds (0=never)",interaction_mode:"How default reset behaves when the card has human interaction",interaction_modes:{active:"Only allow reset when card has active human interaction",all:"Reset regardless of human interaction",inactive:"Only reset when card has no human interaction"}},interaction_seconds:"Seconds after user action to remain interacted with (0=never)",keyboard_shortcuts:{editor_label:"Keyboard shortcuts",enabled:"Keyboard shortcuts enabled",ptz_down:"PTZ Down",ptz_home:"PTZ Home",ptz_left:"PTZ Left",ptz_right:"PTZ Right",ptz_up:"PTZ Up",ptz_zoom_in:"PTZ Zoom In",ptz_zoom_out:"PTZ Zoom Out"},triggers:{actions:{editor_label:"Trigger actions",interaction_mode:"How to handle actions when the card has human interaction",interaction_modes:{active:"Only trigger actions when card has human interaction",all:"Trigger actions regardless of human interaction",inactive:"Only trigger actions when card has no human interaction"},trigger:"Trigger action",triggers:{default:"Change to or update default view",live:"Change to or update live view",media:"Change to the relevant media view for new media",none:"No action"},untrigger:"Untrigger action",untriggers:{default:"Change to default view/camera",none:"No action"}},editor_label:"Trigger behavior",filter_selected_camera:"Only trigger on selected camera",show_trigger_status:"Show pulsing border when triggered",untrigger_seconds:"Seconds after inactive state change to untrigger"},views:{clip:"Most recent clip",clips:"Clips gallery",current:"Current view",image:"Static image",live:"Live view",recording:"Most recent recording",recordings:"Recordings gallery",snapshot:"Most recent snapshot",snapshots:"Snapshots gallery",timeline:"Timeline view"}}},M_={grid:"Show media viewer for each camera in a grid",single:"Show single media viewer"},k_={add_new_camera:"Add new camera",button:"Button",camera:"Camera",cameras:"Cameras",cameras_secondary:"What cameras to render on this card",delete:"Delete",dimensions:"Card dimensions",dimensions_secondary:"Card dimensions & shape options",image:"Image",image_secondary:"Static image view options",live:"Live",live_secondary:"Live camera view options",media_gallery:"Media gallery",media_gallery_secondary:"Media gallery options",media_viewer:"Media viewer",media_viewer_secondary:"Viewer for static media (clips, snapshots or recordings)",menu:"Menu",menu_secondary:"Menu look & feel options",move_down:"Move down",move_up:"Move up",overrides:"Overrides are active",overrides_secondary:"Dynamic configuration overrides detected",performance:"Performance",performance_secondary:"Card performance options",profiles:"Configuration profiles",profiles_secondary:"Choose pre-configured sets of defaults",status_bar:"Status bar",status_bar_secondary:"Status bar look & feel options",timeline:"Timeline",timeline_secondary:"Event timeline options",upgrade:"Upgrade",upgrade_available:"An automatic card configuration upgrade is available",view:"View",view_secondary:"What the card should show and how to show it"},S_={ptz:{down:"Down",home:"Home",left:"Left",right:"Right",up:"Up",zoom_in:"Zoom In",zoom_out:"Zoom Out"}},E_={awaiting_live:"Waiting for live stream to load ...",awaiting_media:"Waiting for media to load",camera_initialization:"Camera initialization failed",camera_initialization_reolink:"Could not initialize Reolink camera",could_not_render_elements:"Could not render picture elements",could_not_resolve:"Could not resolve media URL",diagnostics:"Card diagnostics. Please review for confidential information prior to sharing",download_no_media:"No media to download",download_sign_failed:"Could not sign media URL for download",duplicate_camera_id:"Duplicate Frigate camera id for the following camera, use the 'id' parameter to uniquely identify cameras",empty_response:"Received empty response from Home Assistant for request",failed_response:"Failed to receive response from Home Assistant for request",failed_retain:"Could not retain event",failed_sign:"Could not sign Home Assistant URL",image_load_error:"The image could not be loaded",invalid_configuration:"Invalid configuration",invalid_configuration_no_hint:"No location hint available (bad or missing type?)",invalid_configuration_override:"Invalid override configuration",invalid_elements_config:"Invalid picture elements configuration",invalid_response:"Received invalid response from Home Assistant for request",jsmpeg_no_player:"Could not start JSMPEG player",live_camera_no_endpoint:"Could not get camera endpoint for this live provider (incomplete configuration?)",live_camera_not_found:"The configured camera_entity was not found",live_camera_unavailable:"Camera unavailable",no_camera_engine:"Could not determine suitable engine for camera",no_camera_entity:"Could not find camera entity",no_camera_entity_for_triggers:"A camera entity is required in order to autodetect triggers",no_camera_id:"Could not determine camera id for the following camera, may need to set 'id' parameter manually",no_camera_name:"Could not determine a Frigate camera name for camera (or one of its dependents), please specify either 'camera_entity' or 'camera_name'",no_dashboard_or_view:"Both 'dashboard_path' and 'view_path' parameters are required for the 'dashboard' cast method",no_live_camera:"The camera_entity parameter must be set and valid for this live provider",no_supported_camera:"The selected camera does not support this view",no_supported_cameras:"No cameras support this view",reconnecting:"Reconnecting",too_many_automations:"Too many nested automation calls, please check your configuration for loops",troubleshooting:"Check troubleshooting",unknown:"Unknown error",upgrade_available:"An automated card configuration upgrade is available, please visit the visual card editor",webrtc_card_reported_error:"WebRTC Card reported an error",webrtc_card_waiting:"Waiting for WebRTC Card to load ..."},$_={camera:"Camera",duration:"Duration",in_progress:"In Progress",score:"Score",seek:"Seek",start:"Start",tag:"Tag",what:"What",where:"Where"},A_={assign:"Assign",assigning:"Assigning",modifiers:{alt:"Alt",ctrl:"Ctrl",meta:"Meta",shift:"Shift"},unassign:"Unassign"},z_={all:"All",camera:"Camera",favorite:"Favorite",media_type:"Media Type",media_types:{clips:"Clips",recordings:"Recordings",snapshots:"Snapshots"},not_favorite:"Not Favorite",select_camera:"Select camera...",select_favorite:"Select favorite...",select_media_type:"Select media type...",select_tag:"Select tag...",select_what:"Select what...",select_when:"Select when...",select_where:"Select where...",tag:"Tag",what:"What",when:"When",whens:{custom:"Custom",past_month:"Past Month",past_week:"Past Week",today:"Today",yesterday:"Yesterday"},where:"Where"},I_={unseekable:"Seek time not found in media"},T_={camera:"Camera",duration:"Duration",events:"Events",in_progress:"In Progress",seek:"Seek",start:"Start"},j_={download:"Download media",no_thumbnail:"No thumbnail available",retain_indefinitely:"Media will be indefinitely retained",timeline:"See media in timeline"},O_={select_date:"Choose date"},D_={common:x_,config:C_,display_modes:M_,editor:k_,elements:S_,error:E_,event:$_,key_assigner:A_,media_filter:z_,media_viewer:I_,recording:T_,thumbnail:j_,timeline:O_},R_=Object.freeze({__proto__:null,common:x_,config:C_,default:D_,display_modes:M_,editor:k_,elements:S_,error:E_,event:$_,key_assigner:A_,media_filter:z_,media_viewer:I_,recording:T_,thumbnail:j_,timeline:O_});const P_="en",L_={[P_]:R_};let N_;function F_(e){const t=e=>e.replace("-","_"),n=e?.language??e?.selectedLanguage;if(n)return t(n);const a=localStorage.getItem("selectedLanguage");if(a){const e=JSON.parse(a);if(e)return t(e)}for(const e of navigator.languages){const n=t(e);if(n&&n in L_)return n}return P_}function V_(e,t="",n=""){let a="";try{a=e.split(".").reduce(((e,t)=>e[t]),L_[N_??P_])}catch(e){}return a||(a=e.split(".").reduce(((e,t)=>e[t]),L_[P_])),""!==t&&""!==n&&(a=a.replace(t,n)),a}function H_(e){return"string"==typeof e?.id&&e.id||"string"==typeof e?.camera_entity&&e.camera_entity||"object"==typeof e?.webrtc_card&&e.webrtc_card&&("string"==typeof e.webrtc_card.entity&&e.webrtc_card.entity||"string"==typeof e.webrtc_card.url&&e.webrtc_card.url)||"object"==typeof e?.go2rtc&&e.go2rtc&&"string"==typeof e.go2rtc.url&&"string"==typeof e.go2rtc.stream&&`${e.go2rtc.url}#${e.go2rtc.stream}`||"object"==typeof e?.frigate&&e.frigate&&"string"==typeof e?.frigate.camera_name&&e.frigate.camera_name||""}const B_=(e,...t)=>{e?.debug?.logging&&console.debug(...t)},q_=(e,t,n)=>"preset"===t?(n?.preset?e.ptz.presets?.[n.preset]:null)??null:n?.phase?e.ptz[`actions_${t}_${n.phase}`]??null:e.ptz[`actions_${t}`]??null,U_=(e,t,n)=>!!q_(e,t,n),W_=(e,t)=>{const n=U_(e,t,{phase:"start"})&&U_(e,t,{phase:"stop"}),a=U_(e,t);return n||a?[...n?["continuous"]:[],...a?["relative"]:[]]:null},Z_=e=>{const t=W_(e,"left"),n=W_(e,"right"),a=W_(e,"up"),i=W_(e,"down"),r=W_(e,"zoom_in"),o=W_(e,"zoom_out"),s=e.ptz.presets?Object.keys(e.ptz.presets):void 0;return t?.length||n?.length||a?.length||i?.length||r?.length||o?.length||s?.length?{...t?{left:t}:{},...n?{right:n}:{},...a?{up:a}:{},...i?{down:i}:{},...r?{zoomIn:r}:{},...o?{zoomOut:o}:{},...s?{presets:s}:{}}:null};class Q_{constructor(e,t){this._capabilities=e;for(const e of t?.disable??[])this._disable(e);for(const e of Ts)t?.disableExcept?.length&&!t.disableExcept.includes(e)&&this._disable(e)}_disable(e){delete this._capabilities[e]}matches(e){let t=!0;return"string"==typeof e&&(t&&=this.has(e)),"object"==typeof e&&e.allCapabilities&&(t&&=e.allCapabilities.every((e=>this.has(e)))),"object"==typeof e&&e.anyCapabilities&&(t&&=e.anyCapabilities.some((e=>this.has(e)))),t}has(e){return!!this._capabilities[e]}getPTZCapabilities(){return this._capabilities.ptz??null}hasPTZCapability(){return!!(this._capabilities.ptz?.down?.length||this._capabilities.ptz?.up?.length||this._capabilities.ptz?.left?.length||this._capabilities.ptz?.right?.length||this._capabilities.ptz?.zoomIn?.length||this._capabilities.ptz?.zoomOut?.length||this._capabilities.ptz?.presets?.length)}getRawCapabilities(){return this._capabilities}}function G_(e,t,n){var a=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var r=Array(i);++at||r&&o&&c&&!s&&!l||a&&o&&c||!n&&c||!i)return 1;if(!a&&!r&&!l&&e=s?c:c*("desc"==n[a]?-1:1)}return e.index-t.index}(e,t,n)}))}function Ev(e,t,n,a){return null==e?[]:(dp(t)||(t=null==t?[]:[t]),dp(n=a?void 0:n)||(n=null==n?[]:[n]),Sv(e,t,n))}async function $v(e,t,n,a=!1){let i;try{i=await e.callWS(n)}catch(e){if(!(e instanceof Error))throw new zs(V_("error.failed_response"),{request:n,response:e});throw e}if(!i)throw new zs(V_("error.empty_response"),{request:n});const r=a?t.safeParse(JSON.parse(i)):t.safeParse(i);if(!r.success)throw new zs(V_("error.invalid_response"),{request:n,response:i,invalid_keys:Rs(r.error)});return r.data}const Av=ba.lazy((()=>ba.object({title:ba.string(),media_class:ba.string(),media_content_type:ba.string(),media_content_id:ba.string(),can_play:ba.boolean(),can_expand:ba.boolean(),children_media_class:ba.string().nullable().optional(),thumbnail:ba.string().nullable(),children:ba.array(Av).nullable().optional()}))),zv="video",Iv="image",Tv=60,jv=e=>Ev(e,(e=>e._metadata?.startDate),"desc");class Ov{async walkBrowseMedias(e,t,n){return t&&t.length?(await tf(t,(async t=>await this._walkBrowseMedia(e,t,n)))).flat():[]}async _walkBrowseMedia(e,t,n){let a=[];for(const i of function(e,t,n){t=(n?dg(e,t,n):void 0===t)?1:K_(Sg(t),0);var a=null==e?0:e.length;if(!a||t<1)return[];for(var i=0,r=0,o=Array(Y_(a/t));iawait this._browseMedia(e,a,{cache:n?.cache,metadataGenerator:t.metadataGenerator})));for(const e of r)for(const n of e.children??[])t.matcher(n)&&a.push(n);if(t.sorter&&(a=t.sorter(a)),t.earlyExit&&t.earlyExit(a))break}const i=t.advance?t.advance(a):null;return i?.length?await this.walkBrowseMedias(e,i,n):a}async _browseMedia(e,t,n){const a="object"==typeof t?t.media_content_id:t,i=n?.cache?n.cache.get(a):null;if(i)return i;const r={type:"media_source/browse_media",media_content_id:a},o=await $v(e,Av,r);if(n?.metadataGenerator)for(const e of o.children??[])e._metadata=n.metadataGenerator(e,"object"==typeof t?t:void 0)??void 0;return n?.cache&&n.cache.set(a,o,Ud(new Date,{seconds:60})),o}}function Dv(e,t){return bm(e,t)}function Rv(e,t){return e&&e.length?function(e,t){for(var n=-1,a=e.length,i=0,r=[];++nNv(t,e)))}add(e){this._ranges.push(e),this._ranges=Vv(this._ranges)}clear(){this._ranges=[]}}class Lv{constructor(e){this._ranges=e??[]}hasCoverage(e){const t=new Date;return this._ranges.some((n=>tet.start>=e.start&&t.end<=e.end,Fv=(e,t)=>e.start>=t.start&&e.start<=t.end||e.end>=t.start&&e.end<=t.end||e.start<=t.start&&e.end>=t.end,Vv=(e,t=0)=>{const n=[];e=Ev(e,(e=>e.start),"asc");let a=null;for(const i of e){const e=i.start instanceof Date?i.start.getTime():i.start;if(!a){a={...i};continue}(a.end instanceof Date?a.end.getTime():a.end)+1e3*t>=e?i.end>a.end&&(a.end=i.end):(n.push(a),a={...i})}return a&&n.push(a),n};class Hv{constructor(){this._data=[]}get(e){const t=new Date;for(const n of this._data)if((!n.expires||t<=n.expires)&&this._contains(e,n.request))return n.response;return null}clear(){this._data=[]}has(e){return!!this.get(e)}set(e,t,n){this._data.push({request:e,response:t,expires:n}),this._expireOldRequests()}_contains(e,t){return Dv(e,t)}_expireOldRequests(){const e=new Date;this._data=this._data.filter((t=>!t.expires||e=e.start.getTime()){if(a>e.end.getTime())break;t.push(n)}}return t}getSize(){return this._data.length}expireMatches(e){this._data=this._data.filter((t=>!e(t)))}}class Uv{constructor(){this._segments=new Map}add(e,t,n){let a=this._segments.get(e);a||(a=new qv((e=>1e3*e.start_time),(e=>e.id)),this._segments.set(e,a)),a.add(t,n)}clear(){this._segments.clear()}hasCoverage(e,t){return!!this._segments.get(e)?.hasCoverage(t)}get(e,t){return this._segments.get(e)?.get(t)??null}getSize(e){return this._segments.get(e)?.getSize()??null}getCameraIDs(){return[...this._segments.keys()]}expireMatches(e,t){this._segments.get(e)?.expireMatches(t)}}class Wv extends zs{}class Zv extends zs{}var Qv,Gv,Yv;!function(e){e.Event="event-query",e.Recording="recording-query",e.RecordingSegments="recording-segments-query",e.MediaMetadata="media-metadata"}(Qv||(Qv={})),function(e){e.Event="event-results",e.Recording="recording-results",e.RecordingSegments="recording-segments-results",e.MediaMetadata="media-metadata-results"}(Gv||(Gv={})),function(e){e.Frigate="frigate",e.Generic="generic",e.MotionEye="motioneye",e.Reolink="reolink"}(Yv||(Yv={}));const Kv=e=>e.camera_entity??e.webrtc_card?.entity??null;class Xv{constructor(e){this._entityRegistryManager=e}async createEngine(e,t){let n;switch(e){case Yv.Generic:const{GenericCameraManagerEngine:e}=await import("./engine-generic-458c9005.js").then((function(e){return e.e}));n=new e(t.stateWatcher,t.eventCallback);break;case Yv.Frigate:const{FrigateCameraManagerEngine:a}=await import("./engine-frigate-7cd5392b.js");n=new a(this._entityRegistryManager,t.stateWatcher,new Uv,new Bv,t.eventCallback);break;case Yv.MotionEye:const{MotionEyeCameraManagerEngine:i}=await import("./engine-motioneye-3521f17f.js");n=new i(this._entityRegistryManager,t.stateWatcher,new Ov,t.resolvedMediaCache,new Bv,t.eventCallback);break;case Yv.Reolink:const{ReolinkCameraManagerEngine:r}=await import("./engine-reolink-c0a1587c.js");n=new r(this._entityRegistryManager,t.stateWatcher,new Ov,t.resolvedMediaCache,new Bv,t.eventCallback)}return n}async getEngineForCamera(e,t){let n=null;if("frigate"===t.engine)n=Yv.Frigate;else if("motioneye"===t.engine)n=Yv.MotionEye;else if("generic"===t.engine)n=Yv.Generic;else if("reolink"===t.engine)n=Yv.Reolink;else{const a=Kv(t);if(a){const i=await this._entityRegistryManager.getEntity(e,a);if(!i){if(e.states[a])return Yv.Generic;throw new Wv(V_("error.no_camera_entity"),t)}switch(i?.platform){case"frigate":n=Yv.Frigate;break;case"motioneye":n=Yv.MotionEye;break;case"reolink":n=Yv.Reolink;break;default:n=Yv.Generic}}else t.frigate.camera_name?n=Yv.Frigate:(t.webrtc_card?.url||t.go2rtc?.url&&t.go2rtc?.stream)&&(n=Yv.Generic)}return n}}class Jv{constructor(){this._cameras=new Map,this._enginesByType=new Map}addCamera(e){this._cameras.set(e.getID(),e),this._enginesByType.set(e.getEngine().getEngineType(),e.getEngine())}async setCameras(e){for(const t of e){const e=this._cameras.get(t.getID());e!==t&&(this.addCamera(t),await(e?.destroy()))}for(const t of this._cameras.values())e.includes(t)||(await t.destroy(),this._cameras.delete(t.getID()))}async reset(){await tf(this._cameras.values(),(e=>e.destroy())),this._cameras.clear(),this._enginesByType.clear()}getCamera(e){return this._cameras.get(e)??null}getCameras(){return this._cameras}getCameraConfig(e){return this._cameras.get(e)?.getConfig()??null}hasCameraID(e){return this._cameras.has(e)}getCameraCount(){return this._cameras.size}getDefaultCameraID(){return this._cameras.keys().next().value??null}*getCameraConfigs(e){for(const[t,n]of this.getCameraConfigEntries(e))yield n}*getCameraConfigEntries(e){for(const t of e??this._cameras.keys()){const e=this.getCameraConfig(t);e&&(yield[t,e])}}getCameraIDs(){return new Set(this._cameras.keys())}getCameraIDsWithCapability(e){const t=new Set;for(const n of this._cameras.values())n.getCapabilities()?.matches(e)&&t.add(n.getID());return t}getCameraConfigForMedia(e){return this.getCameraConfig(e.getCameraID())}getEngineOfType(e){return this._enginesByType.get(e)??null}getEngineForCameraID(e){return this._cameras.get(e)?.getEngine()??null}getEnginesForCameraIDs(e){const t=new Map;for(const n of e){const e=this.getEngineForCameraID(n);e&&(t.has(e)||t.set(e,new Set),t.get(e)?.add(n))}return t.size?t:null}getEngineForMedia(e){return this.getEngineForCameraID(e.getCameraID())}getAllDependentCameras(e,t){const n=new Set,a=new Set,i=e=>{n.add(e);const r=this.getCamera(e),o=r?.getConfig();if(r&&o){t&&!r.getCapabilities()?.matches(t)||a.add(e);const s=new Set;o.dependencies.cameras.forEach((e=>s.add(e))),o.dependencies.all_cameras&&this.getCameraIDs().forEach((e=>s.add(e)));for(const e of s)n.has(e)||i(e)}};return i(e),a}}const ey=e=>{return Ev((n=e=>e.getID()??e,(t=e)&&t.length?Hg(t,xv(n)):[]),(e=>e.getStartTime()??e.getID()),"asc");var t,n};class ty{static isEventQuery(e){return e.type===Qv.Event}static isRecordingQuery(e){return e.type===Qv.Recording}static isRecordingSegmentsQuery(e){return e.type===Qv.RecordingSegments}static isMediaMetadataQuery(e){return e.type===Qv.MediaMetadata}}class ny{static isEventQueryResult(e){return e.type===Gv.Event}static isRecordingQueryResult(e){return e.type===Gv.Recording}static isRecordingSegmentsQueryResult(e){return e.type===Gv.RecordingSegments}static isMediaMetadataQueryResult(e){return e.type===Gv.MediaMetadata}}class ay{constructor(e,t){this._requestLimit=new w_,this._api=e,this._engineFactory=t?.factory??new Xv(this._api.getEntityRegistryManager()),this._store=t?.store??new Jv}async initializeCamerasFromConfig(){const e=this._api.getConfigManager().getConfig(),t=this._api.getHASSManager().getHASS();if(!e||!t)return!1;this._requestLimit.concurrency=e.performance.features.max_simultaneous_engine_requests??1/0;const n=e.cameras.map((t=>{return n={},a=u_(e?.cameras_global),hg(n,a,t,((e,t)=>Array.isArray(t)?t:void 0));var n,a}));try{await this._initializeCameras(n)}catch(e){return this._api.getMessageManager().setErrorIfHigherPriority(e,V_("error.camera_initialization")),!1}return!0}async reset(){await this._store.reset()}async _getEnginesForCameras(e){const t=new Map,n=new Map,a=this._api.getHASSManager().getHASS(); +/* istanbul ignore if: the if path cannot be reached -- @preserve */ +if(!a)return t;const i=await(async e=>await tf(e,(e=>this._engineFactory.getEngineForCamera(a,e))))(e);for(const[a,r]of e.entries()){const e=i[a],o=e?n.get(e)??await this._engineFactory.createEngine(e,{eventCallback:e=>this._api.getTriggersManager().handleCameraEvent(e),stateWatcher:this._api.getHASSManager().getStateWatcher(),resolvedMediaCache:this._api.getResolvedMediaCache()}):null;if(!o||!e)throw new Wv(V_("error.no_camera_engine"),u_(r));n.set(e,o),t.set(r,o)}return t}async _initializeCameras(e){const t=new Date,n=this._api.getHASSManager().getHASS(); +/* istanbul ignore if: the if path cannot be reached -- @preserve */ +if(!n)return;e.some((e=>(e=>e.triggers.motion||e.triggers.occupancy)(e)))&&await this._api.getEntityRegistryManager().fetchEntityList(n);const a=await this._getEnginesForCameras(e),i=await tf(a.entries(),(async([e,t])=>await t.createCamera(n,e))),r=async()=>{i.forEach((e=>e.destroy()))},o=new Set;for(const e of i){const t=H_(e.getConfig());if(!t)throw await r(),new Wv(V_("error.no_camera_id"),e.getConfig());if(o.has(t))throw await r(),new Wv(V_("error.duplicate_camera_id"),e.getConfig());e.setID(t),o.add(t)}await this._store.setCameras(i),B_(this._api.getConfigManager().getCardWideConfig(),"Frigate Card CameraManager initialized (Cameras: ",this._store.getCameras(),`, Duration: ${((new Date).getTime()-t.getTime())/1e3}s,`,")")}isInitialized(){return this._store.getCameraCount()>0}getStore(){return this._store}generateDefaultEventQueries(e,t){return this._generateDefaultQueries(e,{type:Qv.Event,...t})}generateDefaultRecordingQueries(e,t){return this._generateDefaultQueries(e,{type:Qv.Recording,...t})}generateDefaultRecordingSegmentsQueries(e,t){return this._generateDefaultQueries(e,{type:Qv.RecordingSegments,...t})}_generateDefaultQueries(e,t){const n=[],a=Zg(e),i=this._store.getEnginesForCameraIDs(a);if(!i)return null;for(const[e,a]of i){let i=null; +/* istanbul ignore else: the else path cannot be reached -- @preserve */ty.isEventQuery(t)?i=e.generateDefaultEventQuery(this._store,a,t):ty.isRecordingQuery(t)?i=e.generateDefaultRecordingQuery(this._store,a,t):ty.isRecordingSegmentsQuery(t)&&(i=e.generateDefaultRecordingSegmentsQuery(this._store,a,t));for(const e of i??[])n.push(e)}return n.length?n:null}async getMediaMetadata(){const e=new Set,t=new Set,n=new Set,a=new Set,i={type:Qv.MediaMetadata,cameraIDs:this._store.getCameraIDs()},r=await this._handleQuery(i);for(const i of r.values())i.metadata.tags&&i.metadata.tags.forEach(e.add,e),i.metadata.what&&i.metadata.what.forEach(t.add,t),i.metadata.where&&i.metadata.where.forEach(n.add,n),i.metadata.days&&i.metadata.days.forEach(a.add,a);return t.size||n.size||a.size||e.size?{...e.size&&{tags:e},...t.size&&{what:t},...n.size&&{where:n},...a.size&&{days:a}}:null}async getEvents(e,t){return await this._handleQuery(e,t)}async getRecordings(e,t){return await this._handleQuery(e,t)}async getRecordingSegments(e,t){return await this._handleQuery(e,t)}async executeMediaQueries(e,t){return this._convertQueryResultsToMedia(await this._handleQuery(e,t))}async extendMediaQueries(e,t,n,a){if(!this._api.getHASSManager().getHASS())return null;const i=e=>{let n=null;for(const a of t){const t=a.getStartTime();t&&(!n||"earliest"===e&&tn)&&(n=t)}return n},r=this._api.getConfigManager().getCardWideConfig()?.performance?.features.media_chunk_size??50,o=[],s=[];for(const t of e){const e={...t}; +/* istanbul ignore else: the else path cannot be reached -- @preserve */if("later"===n){const t=i("latest");t&&(e.start=t,delete e.end)}else if("earlier"===n){const t=i("earliest");t&&(e.end=t,delete e.start)}e.limit=r,s.push({...t,limit:(t.limit??0)+r}),o.push(e)}const c=this._convertQueryResultsToMedia(await this._handleQuery(o,a));if(!c.length)return null;const l=ey(t.concat(c));return l.length===t.length?null:{queries:s,results:l}}async getMediaDownloadPath(e){const t=this._store.getCameraConfigForMedia(e),n=this._store.getEngineForMedia(e),a=this._api.getHASSManager().getHASS();return t&&n&&a?await n.getMediaDownloadPath(a,t,e):null}getMediaCapabilities(e){const t=this._store.getEngineForMedia(e);return t?t.getMediaCapabilities(e):null}async favoriteMedia(e,t){const n=this._store.getCameraConfigForMedia(e),a=this._store.getEngineForMedia(e),i=this._api.getHASSManager().getHASS();if(!n||!a||!i)return;const r=new Date;await this._requestLimit.add((()=>a.favoriteMedia(i,n,e,t))),B_(this._api.getConfigManager().getCardWideConfig(),"Frigate Card CameraManager favorite request (",`Duration: ${((new Date).getTime()-r.getTime())/1e3}s,`,"Media:",e.getID(),", Favorite:",t,")")}areMediaQueriesResultsFresh(e,t){const n=new Date;for(const a of e){const e=this._store.getEnginesForCameraIDs(a.cameraIDs);for(const[i,r]of e??[]){const e=i.getQueryResultMaxAge({...a,cameraIDs:r});if(null!==e&&Ud(t,{seconds:e})a?null:await this._requestLimit.add((()=>i.getMediaSeekTime(r,this._store,e,t)))??null}async _handleQuery(e,t){const n=Wg(e),a=new Map,i=new Date,r=this._api.getHASSManager().getHASS();if(!r)return a;const o=async(e,n)=>{let i=null; +/* istanbul ignore else: the else path cannot be reached -- @preserve */ty.isEventQuery(n)?i=await e.getEvents(r,this._store,n,t):ty.isRecordingQuery(n)?i=await e.getRecordings(r,this._store,n,t):ty.isRecordingSegmentsQuery(n)?i=await e.getRecordingSegments(r,this._store,n,t):ty.isMediaMetadataQuery(n)&&(i=await e.getMediaMetadata(r,this._store,n,t)),i?.forEach(((e,t)=>a.set(t,e)))},s=async e=>{const t=this._store.getEnginesForCameraIDs(e.cameraIDs);t&&await Promise.all(Array.from(t.keys()).map((n=>this._requestLimit.add((()=>o(n,{...e,cameraIDs:t.get(n)}))))))};await Promise.all(n.map((e=>s(e))));const c=(l=Array.from(a.values()).map((e=>Number(e.cached??0))))&&l.length?function(e,t){for(var n,a=-1,i=e.length;++athis._store.getCamera(e))).filter(sf);return new Q_({live:t.some((e=>e.getCapabilities()?.has("live"))),clips:t.some((e=>e.getCapabilities()?.has("clips"))),recordings:t.some((e=>e.getCapabilities()?.has("recordings"))),snapshots:t.some((e=>e.getCapabilities()?.has("snapshots"))),"favorite-events":t.some((e=>e.getCapabilities()?.has("favorite-events"))),"favorite-recordings":t.some((e=>e.getCapabilities()?.has("favorite-recordings"))),seek:t.some((e=>e.getCapabilities()?.has("seek"))),menu:t.some((e=>e.getCapabilities()?.has("menu")))})}async executePTZAction(e,t,n){const a=this._store.getCameraConfig(e);if(!a)return;const i=q_(a,t,n);if(i)return await this._api.getActionsManager().executeActions(i);const r=this._api.getHASSManager().getHASS(),o=this._store.getEngineForCameraID(e);return o&&r?await this._requestLimit.add((()=>o.executePTZAction(r,a,t,n))):void 0}}class iy{constructor(e){this._cache=new Map,this._keyCallback=e}has(e){return this._cache.has(e)}getMatches(e){return[...this._cache.values()].filter(e)}get(e){return this._cache.get(e)??null}add(e){const t=e=>this._cache.set(this._keyCallback(e),e);Array.isArray(e)?e.forEach(t):t(e)}}const ry=ba.object({id:ba.string(),model:ba.string().nullable(),config_entries:ba.string().array(),manufacturer:ba.string().nullable()}).array();class oy{constructor(e){this._fetchedDeviceList=!1,this._cache=e}async getDevice(e,t){return this._cache.has(t)?this._cache.get(t):(await this._fetchDeviceList(e),this._cache.get(t)??null)}async getMatchingDevices(e,t){return await this._fetchDeviceList(e),this._cache.getMatches(t)}async _fetchDeviceList(e){if(this._fetchedDeviceList)return;let t=null;try{t=await $v(e,ry,{type:"config/device_registry/list"})}catch(e){return void Gg(e)}this._cache.add(t),this._fetchedDeviceList=!0}}const sy=ba.object({config_entry_id:ba.string().nullable(),device_id:ba.string().nullable(),disabled_by:ba.string().nullable(),entity_id:ba.string(),hidden_by:ba.string().nullable(),platform:ba.string(),translation_key:ba.string().nullable(),unique_id:ba.string().or(ba.number()).optional()}),cy=sy.array();class ly{constructor(e){this._fetchedEntityList=!1,this._cache=e}async getEntity(e,t){const n=this._cache.get(t);if(n)return n;let a=null;try{a=await $v(e,sy,{type:"config/entity_registry/get",entity_id:t})}catch(e){return Gg(e),null}return this._cache.add(a),a}async getMatchingEntities(e,t){return await this.fetchEntityList(e),this._cache.getMatches(t)}async getEntities(e,t){const n=new Map;return await Promise.all(t.map((async t=>{const a=await this.getEntity(e,t);a&&n.set(t,a)}))),n}async fetchEntityList(e){if(this._fetchedEntityList)return;let t=null;try{t=await $v(e,cy,{type:"config/entity_registry/list"})}catch(e){return void Gg(e)}this._cache.add(t),this._fetchedEntityList=!0}}class dy extends Map{constructor(e={}){if(super(),!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof e.maxAge&&0===e.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=e.maxSize,this.maxAge=e.maxAge||Number.POSITIVE_INFINITY,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(e){if("function"==typeof this.onEviction)for(const[t,n]of e)this.onEviction(t,n.value)}_deleteIfExpired(e,t){return"number"==typeof t.expiry&&t.expiry<=Date.now()&&("function"==typeof this.onEviction&&this.onEviction(e,t.value),this.delete(e))}_getOrDeleteIfExpired(e,t){if(!1===this._deleteIfExpired(e,t))return t.value}_getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.value}_peek(e,t){const n=t.get(e);return this._getItemValue(e,n)}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}*_entriesAscending(){for(const e of this.oldCache){const[t,n]=e;if(!this.cache.has(t)){!1===this._deleteIfExpired(t,n)&&(yield e)}}for(const e of this.cache){const[t,n]=e;!1===this._deleteIfExpired(t,n)&&(yield e)}}get(e){if(this.cache.has(e)){const t=this.cache.get(e);return this._getItemValue(e,t)}if(this.oldCache.has(e)){const t=this.oldCache.get(e);if(!1===this._deleteIfExpired(e,t))return this._moveToRecent(e,t),t.value}}set(e,t,{maxAge:n=this.maxAge}={}){const a="number"==typeof n&&n!==Number.POSITIVE_INFINITY?Date.now()+n:void 0;return this.cache.has(e)?this.cache.set(e,{value:t,expiry:a}):this._set(e,{value:t,expiry:a}),this}has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.get(e)):!!this.oldCache.has(e)&&!this._deleteIfExpired(e,this.oldCache.get(e))}peek(e){return this.cache.has(e)?this._peek(e,this.cache):this.oldCache.has(e)?this._peek(e,this.oldCache):void 0}delete(e){const t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");const t=[...this._entriesAscending()],n=t.length-e;n<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(n>0&&this._emitEvictions(t.slice(0,n)),this.oldCache=new Map(t.slice(n)),this.cache=new Map,this._size=0),this.maxSize=e}*keys(){for(const[e]of this)yield e}*values(){for(const[,e]of this)yield e}*[Symbol.iterator](){for(const e of this.cache){const[t,n]=e;!1===this._deleteIfExpired(t,n)&&(yield[t,n.value])}for(const e of this.oldCache){const[t,n]=e;if(!this.cache.has(t)){!1===this._deleteIfExpired(t,n)&&(yield[t,n.value])}}}*entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;--t){const n=e[t],[a,i]=n;!1===this._deleteIfExpired(a,i)&&(yield[a,i.value])}e=[...this.oldCache];for(let t=e.length-1;t>=0;--t){const n=e[t],[a,i]=n;if(!this.cache.has(a)){!1===this._deleteIfExpired(a,i)&&(yield[a,i.value])}}}*entriesAscending(){for(const[e,t]of this._entriesAscending())yield[e,t.value]}get size(){if(!this._size)return this.oldCache.size;let e=0;for(const t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}entries(){return this.entriesAscending()}forEach(e,t=this){for(const[n,a]of this.entriesAscending())e.call(t,a,n,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}}class uy{constructor(){this._cache=new dy({maxSize:1e3})}has(e){return this._cache.has(e)}get(e){return this._cache.get(e)}set(e,t){this._cache.set(e,t)}}const hy=async(e,t,n)=>{const a=n?n.get(t):void 0;if(a)return a;const i={type:"media_source/resolve_media",media_content_id:t};let r=null;try{r=await $v(e,js,i)}catch(e){Gg(e)}return n&&r&&n.set(t,r),r};class py{constructor(e,t,n){this._context=e,this._action=t,this._config=n}async execute(e){}async stop(){}}class my extends py{}class gy extends my{async execute(e){const t=this._action.camera??(this._action.triggered?e.getTriggersManager().getMostRecentlyTriggeredCameraID():null),n=e.getViewManager().getView(),a=e.getConfigManager().getConfig();if(t&&n){const i=a?.view.camera_select??"current",r="current"===i?n.view:i;await e.getViewManager().setViewByParametersWithNewQuery({params:{view:r,camera:t},failSafe:!0})}}}class fy extends my{async execute(e){e.getCameraURLManager().openURL()}}class _y extends my{async execute(e){e.getViewManager().setViewDefault()}}class vy extends my{async execute(e){await e.getViewManager().setViewByParametersWithNewQuery({params:{displayMode:this._action.display_mode}})}}class yy extends my{async execute(e){await e.getDownloadManager().downloadViewerMedia()}}class by extends my{async execute(e){e.getExpandManager().toggleExpanded()}}class wy extends my{async execute(e){e.getFullscreenManager().toggleFullscreen()}}class xy extends py{async execute(e){const t=e.getHASSManager().getHASS();t&&at(e.getCardElementManager().getElement(),t,this._config??{},this._action)}}class Cy extends my{async execute(e){console[this._action.level](this._action.message)}}const My=(e,t)=>e.context?.live?.overrides?.get(t??e.camera)??t??e.camera,ky=e=>My(e)!==e.camera,Sy=(e,t)=>{const n=e.context?.live?.overrides??new Map;n.set(e.camera,t),e.mergeInContext({live:{overrides:n}})};class Ey extends my{async execute(e){const t=this._action.media_player,n=e.getMediaPlayerManager(),a=e.getViewManager().getView(),i=a?.queryResults?.getSelectedResult()??null;"stop"===this._action.media_player_action?await n.stop(t):a?.is("live")?await n.playLive(t,My(a)):a?.isViewerView()&&i&&await n.playMedia(t,i)}}class $y extends my{async execute(e){e.getCardElementManager().toggleMenu()}}class Ay extends my{async execute(e){await e.getMicrophoneManager().connect()}}class zy extends my{async execute(e){e.getMicrophoneManager().disconnect()}}class Iy extends my{async execute(e){e.getMicrophoneManager().mute()}}class Ty extends my{async execute(e){await e.getMicrophoneManager().unmute()}}class jy extends my{async execute(e){await(e.getMediaLoadedInfoManager().get()?.player?.mute())}}class Oy extends my{async execute(e){await(e.getMediaLoadedInfoManager().get()?.player?.pause())}}class Dy extends my{async execute(e){await(e.getMediaLoadedInfoManager().get()?.player?.play())}}const Ry=(e,t)=>{if(e.isViewerView()){const n=e.queryResults?.getSelectedResult()?.getID()??null;return"ptz"!==t?.type&&n?{targetID:n,type:"digital"}:null}if(e.is("live")){const n=My(e);let a="digital";return"digital"!==t?.type&&t?.cameraManager&&(Py(t.cameraManager,n)&&(a="ptz"),"ptz"!==a&&"ptz"===t?.type)?null:{targetID:n,type:a}}return null},Py=(e,t)=>!!e.getStore().getCamera(t)?.getCapabilities()?.hasPTZCapability();var Ly=ug((function(e,t,n){Jm(e,t,n)}));const Ny=(e,t)=>{t?.[e]?.inProgressAction?.stop()},Fy=(e,t,n,a)=>{Ly(t,{[n]:{[e]:{inProgressAction:a}}})};class Vy extends my{constructor(){super(...arguments),this._timer=new xf}async stop(){this._timer.stop()}async execute(e){const t=e.getViewManager().getView();if(!t)return;const n=this._action.camera??Ry(t,{type:"ptz",cameraManager:e.getCameraManager()})?.targetID??null,a=n?e.getCameraManager().getCameraCapabilities(n)?.getPTZCapabilities():null,i=n?e.getCameraManager().getStore().getCameraConfig(n)?.ptz:null;if(!n||!a||!i)return;if(!this._action.ptz_action)return void(a.presets&&a.presets.length>=1&&await e.getCameraManager().executePTZAction(n,"preset",{phase:this._action.ptz_phase,preset:a.presets[0]}));const r=(e=>{switch(e){case"left":case"right":case"up":case"down":return e;case"zoom_in":return"zoomIn";case"zoom_out":return"zoomOut"}return null})(this._action.ptz_action);if(r&&a[r]?.includes(this._action.ptz_phase?"continuous":"relative")||"preset"===this._action.ptz_action)return await e.getCameraManager().executePTZAction(n,this._action.ptz_action,{phase:this._action.ptz_phase,preset:this._action.ptz_preset});if("start"===this._action.ptz_phase){Ny(n,this._context.ptz),Fy(n,this._context,"ptz",this);const t=async()=>{this._action.ptz_action&&await e.getCameraManager().executePTZAction(n,this._action.ptz_action,{preset:this._action.ptz_preset}),this._timer.start(i.r2c_delay_between_calls_seconds,t)};await t()}else"stop"===this._action.ptz_phase?Ny(n,this._context.ptz):(await e.getCameraManager().executePTZAction(n,this._action.ptz_action,{preset:this._action.ptz_preset,phase:"start"}),this._timer.start(i.c2r_delay_between_calls_seconds,(async()=>{this._action.ptz_action&&await e.getCameraManager().executePTZAction(n,this._action.ptz_action,{preset:this._action.ptz_preset,phase:"stop"})})))}}class Hy extends my{async execute(e){e.getViewManager().setViewWithMergedContext({ptzControls:{enabled:this._action.enabled}})}}function By(e,t,n){return void 0===n&&(n=t,t=void 0),void 0!==n&&(n=(n=Cg(n))==n?n:0),void 0!==t&&(t=(t=Cg(t))==t?t:0),function(e,t,n){return e==e&&(void 0!==n&&(e=e<=n?e:n),void 0!==t&&(e=e>=t?e:t)),e}(Cg(e),t,n)}const qy=50,Uy=50,Wy=1,Zy=4,Qy=e=>void 0===e?.pan?.x&&void 0===e?.pan?.y&&void 0===e?.zoom;class Gy{constructor(e){this._context=e}modify(e){e.mergeInContext(this._context)}}const Yy=(e,t)=>({zoom:{[e]:{observed:t?.observed??void 0,requested:t?.requested??null}}}),Ky=(e,t,n)=>{t&&n&&t.setViewByParameters({modifiers:[new Gy(Yy(n,{observed:e.detail}))]})};class Xy extends my{constructor(){super(...arguments),this._timer=new xf}async _stepChange(e,t){e.getViewManager().setViewWithMergedContext(Yy(t,{requested:this._convertActionToZoomSettings(e.getViewManager().getView()?.context?.zoom?.[t]?.observed)}))}async stop(){this._timer.stop()}async execute(e){const t=e.getViewManager().getView();if(!t)return;const n=this._action.target_id??Ry(t,{type:"digital",cameraManager:e.getCameraManager()})?.targetID;return n?this._action.absolute||!this._action.ptz_phase?await this._stepChange(e,n): +/* istanbul ignore else: the else path cannot be reached -- @preserve */ +void("start"===this._action.ptz_phase?(Ny(n,this._context.ptzDigital),Fy(n,this._context,"ptzDigital",this),await this._stepChange(e,n),this._timer.startRepeated(.1,(()=>this._stepChange(e,n)))):"stop"===this._action.ptz_phase&&(Ny(n,this._context.ptzDigital),delete this._context.ptzDigital?.[n])):void 0}_convertActionToZoomSettings(e){if(!this._action.absolute&&!this._action.ptz_action)return{};if(this._action.absolute)return this._action.absolute;const t=e?.zoom??1,n=e?.pan?.x??50,a=e?.pan?.y??50,i="zoom_in"===this._action.ptz_action?.1:"zoom_out"===this._action.ptz_action?-.1:0,r="left"===this._action.ptz_action?-5:"right"===this._action.ptz_action?5:0,o="up"===this._action.ptz_action?-5:"down"===this._action.ptz_action?5:0;return{zoom:By(t+i,1,10),pan:{x:By(n+r,0,100),y:By(a+o,0,100)}}}}class Jy extends my{async execute(e){const t=e.getViewManager().getView();let n=null,a=null;if(this._action.target_id)n=this._action.target_id,a=Py(e.getCameraManager(),n)?"ptz":"digital";else if(t){const i=Ry(t,{cameraManager:e.getCameraManager()});n=i?.targetID??null,a=i?.type??null}n&&null!==a&&("ptz"===a?this._toPTZAction(n):this._toPTZDigitalAction(n)).execute(e)}_toPTZAction(e){return new Vy(this._context,(t={cardID:this._action.card_id,cameraID:e,ptzAction:this._action.ptz_action,ptzPhase:this._action.ptz_phase,ptzPreset:this._action.ptz_preset},{action:"fire-dom-event",frigate_card_action:"ptz",...t?.cardID&&{card_id:t.cardID},...t?.ptzAction&&{ptz_action:t.ptzAction},...t?.ptzPhase&&{ptz_phase:t.ptzPhase},...t?.ptzPreset&&{ptz_preset:t.ptzPreset},...t?.cameraID&&{camera:t.cameraID}}),this._config);var t}_toPTZDigitalAction(e){return new Xy(this._context,(t={cardID:this._action.card_id,ptzPhase:this._action.ptz_phase,ptzAction:this._action.ptz_action,targetID:e},{action:"fire-dom-event",frigate_card_action:"ptz_digital",...t?.cardID&&{card_id:t.cardID},...t?.ptzAction&&{ptz_action:t.ptzAction},...t?.ptzPhase&&{ptz_phase:t.ptzPhase},...t?.absolute&&{absolute:t.absolute},...t?.targetID&&{target_id:t.targetID}}),this._config);var t}}class eb extends my{async execute(e){await e.getDownloadManager().downloadScreenshot()}}class tb extends my{async execute(e){var t;await af((t=this._action.duration,3600*(t.h??0)+60*(t.m??0)+(t.s??0)+(t.ms??0)/1e3))}}class nb extends my{async execute(e){switch(this._action.status_bar_action){case"reset":e.getStatusBarItemManager().removeAllDynamicStatusBarItems();break;case"add":this._action.items?.forEach((t=>e.getStatusBarItemManager().addDynamicStatusBarItem(t)));break;case"remove":this._action.items?.forEach((t=>e.getStatusBarItemManager().removeDynamicStatusBarItem(t)))}}}class ab{modify(e){(e=>{const t=e.context?.live?.overrides;t&&t.has(e.camera)&&e.context?.live?.overrides?.delete(e.camera)})(e)}}class ib extends my{async execute(e){e.getViewManager().setViewByParameters({modifiers:[new ab]})}}class rb{constructor(e){this._api=e}modify(e){const t=[...this._api.getCameraManager().getStore().getAllDependentCameras(e.camera,"substream")];if(t.length<=1)return;const n=My(e),a=t.indexOf(n),i=a<0?0:(a+1)%t.length;Sy(e,t[i])}}class ob extends my{async execute(e){e.getViewManager().setViewByParameters({modifiers:[new rb(e)]})}}class sb{constructor(e){this._substreamID=e}modify(e){Sy(e,this._substreamID)}}class cb extends my{async execute(e){e.getViewManager().setViewByParameters({modifiers:[new sb(this._action.camera)]})}}class lb extends my{async execute(e){await(e.getMediaLoadedInfoManager().get()?.player?.unmute())}}class db extends my{async execute(e){e.getViewManager().setViewByParametersWithNewQuery({params:{view:this._action.frigate_card_action}})}}class ub{createAction(e,t,n){const a=mf(t);if("fire-dom-event"!==t.action||!a)return new xy(e,t,n?.config);if(a.card_id&&a.card_id!==n?.cardID)return null;switch(a.frigate_card_action){case"default":return new _y(e,a,n?.config);case"clip":case"clips":case"image":case"live":case"recording":case"recordings":case"snapshot":case"snapshots":case"timeline":case"diagnostics":return new db(e,a,n?.config);case"sleep":return new tb(e,a,n?.config);case"download":return new yy(e,a,n?.config);case"camera_ui":return new fy(e,a,n?.config);case"expand":return new by(e,a,n?.config);case"fullscreen":return new wy(e,a,n?.config);case"menu_toggle":return new $y(e,a,n?.config);case"camera_select":return new gy(e,a,n?.config);case"live_substream_select":return new cb(e,a,n?.config);case"live_substream_off":return new ib(e,a,n?.config);case"live_substream_on":return new ob(e,a,n?.config);case"media_player":return new Ey(e,a,n?.config);case"microphone_connect":return new Ay(e,a,n?.config);case"microphone_disconnect":return new zy(e,a,n?.config);case"microphone_mute":return new Iy(e,a,n?.config);case"microphone_unmute":return new Ty(e,a,n?.config);case"mute":return new jy(e,a,n?.config);case"unmute":return new lb(e,a,n?.config);case"play":return new Dy(e,a,n?.config);case"pause":return new Oy(e,a,n?.config);case"screenshot":return new eb(e,a,n?.config);case"display_mode_select":return new vy(e,a,n?.config);case"ptz":return new Vy(e,a,n?.config);case"ptz_digital":return new Xy(e,a,n?.config);case"ptz_multi":return new Jy(e,a,n?.config);case"ptz_controls":return new Hy(e,a,n?.config);case"log":return new Cy(e,a,n?.config);case"status_bar":return new nb(e,a,n?.config)} +/* istanbul ignore next: this path cannot be reached -- @preserve */ +/* istanbul ignore next: this path cannot be reached -- @preserve */ +return console.warn(`Frigate card received unknown card action: ${a.frigate_card_action}`),null}}class hb{constructor(e,t,n){this._actions=[],this._factory=new ub,this._stopped=!1,this._context=e;for(const a of Wg(t)){const t=this._factory.createAction(e,a,n);t&&this._actions.push(t)}}async execute(e){for(const t of this._actions){if(this._stopped)break;await t.execute(e)}}async stop(){this._stopped=!0}}const pb=ba.object({action:ba.enum(["tap","double_tap","hold","start_tap","end_tap"])}),mb=ba.object({detail:pb});class gb{constructor(e){this._actionsInFlight=[],this._actionContext={},this.handleInteractionEvent=e=>{const t=mb.safeParse(e);if(!t.success)return;const n=t.data.detail.action,a=this.getMergedActions(),i=yf(n,a);a&&n&&i&&this.executeActions(i,a)},this.handleCustomActionEvent=e=>{"detail"in e&&this.executeActions(e.detail)},this.handleActionExecutionRequestEvent=async e=>{await this.executeActions(e.detail.action,e.detail.config)},this._api=e}getMergedActions(){const e=this._api.getViewManager().getView();if(this._api.getMessageManager().hasMessage())return{};const t=this._api.getConfigManager().getConfig();let n;if(e?.is("live"))n=t?.live.actions;else if(e?.isGalleryView())n=t?.media_gallery?.actions;else if(e?.isViewerView())n=t?.media_viewer.actions;else{if(!e?.is("image"))return{};n=t?.image?.actions}return{...t?.view.actions,...n}}uninitialize(){this._actionsInFlight.forEach((e=>e.stop()))}async executeActions(e,t){const n=new hb(this._actionContext,e,{config:t,cardID:this._api.getConfigManager().getConfig()?.card_id});this._actionsInFlight.push(n),await n.execute(this._api),this._actionsInFlight=this._actionsInFlight.filter((e=>e!==n))}}class fb{constructor(e){this._automations=[],this._priorEvaluations=new Map,this._nestedAutomationExecutions=0,this._api=e}deleteAutomations(e){this._automations=this._automations.filter((t=>t.tag!==e))}addAutomations(e){this._automations.push(...e)}execute(){if(!this._api.getHASSManager().hasHASS()||!this._api.getInitializationManager().isInitializedMandatory()||this._api.getMessageManager().hasErrorMessage())return;const e=[];for(const t of this._automations){const n=this._api.getConditionsManager().evaluateConditions(t.conditions),a=n?t.actions:t.actions_not,i=this._priorEvaluations.get(t);this._priorEvaluations.set(t,n),n!==i&&a&&e.push(...a)}if(!e.length)return;(async e=>{++this._nestedAutomationExecutions,this._nestedAutomationExecutions>10?this._api.getMessageManager().setMessageIfHigherPriority({type:"error",message:V_("error.too_many_automations")}):(await this._api.getActionsManager().executeActions(e),--this._nestedAutomationExecutions)})(e)}}class _b{constructor(e){this._api=e}openURL(){const e=this.getCameraURL();e&&window.open(e)}hasCameraURL(){return!!this.getCameraURL()}getCameraURL(){const e=this._api.getViewManager().getView(),t=e?.queryResults?.getSelectedResult()??null,n=e?.camera?this._api.getCameraManager().getCameraEndpoints(e.camera,{view:e.view,...t&&{media:t}})??null:null;return n?.ui?.endpoint??null}}const vb=()=>!!navigator.userAgent.match(/CrKey\//),yb=(e,t)=>!!((e.attributes.supported_features??0)&t),bb=e=>(e=>yb(e,4)&&"number"==typeof e.attributes.in_progress)(e)||!!e.attributes.in_progress,wb=e=>{switch(e){case"armed_away":return"mdi:shield-lock";case"armed_vacation":return"mdi:shield-airplane";case"armed_home":return"mdi:shield-home";case"armed_night":return"mdi:shield-moon";case"armed_custom_bypass":return"mdi:security";case"pending":case"arming":return"mdi:shield-sync";case"triggered":return"mdi:bell-ring";case"disarmed":return"mdi:shield-off";default:return"mdi:shield"}},xb=(e,t)=>{const n="off"===e;switch(t?.attributes.device_class){case"battery":return n?"mdi:battery":"mdi:battery-outline";case"battery_charging":return n?"mdi:battery":"mdi:battery-charging";case"cold":return n?"mdi:thermometer":"mdi:snowflake";case"connectivity":return n?"mdi:close-network-outline":"mdi:check-network-outline";case"door":return n?"mdi:door-closed":"mdi:door-open";case"garage_door":return n?"mdi:garage":"mdi:garage-open";case"power":case"plug":return n?"mdi:power-plug-off":"mdi:power-plug";case"gas":case"problem":case"safety":case"tamper":return n?"mdi:check-circle":"mdi:alert-circle";case"smoke":return n?"mdi:check-circle":"mdi:smoke";case"heat":return n?"mdi:thermometer":"mdi:fire";case"light":return n?"mdi:brightness5":"mdi:brightness-7";case"lock":return n?"mdi:lock":"mdi:lock-open";case"moisture":return n?"mdi:water-off":"mdi:water";case"motion":return n?"mdi:motion-sensor-off":"mdi:motion-sensor";case"occupancy":case"presence":return n?"mdi:home-outline":"mdi:home";case"opening":return n?"mdi:square":"mdi:square-outline";case"running":return n?"mdi:stop":"mdi:play";case"sound":return n?"mdi:music-note-off":"mdi:music-note";case"update":return n?"mdi:package":"mdi:package-up";case"vibration":return n?"mdi:crop-portrait":"mdi:vibrate";case"window":return n?"mdi:window-closed":"mdi:window-open";default:return n?"mdi:radiobox-blank":"mdi:checkbox-marked-circle"}},Cb=(e,t)=>{const n="closed"!==e;switch(t?.attributes.device_class){case"garage":switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:garage";default:return"mdi:garage-open"}case"gate":switch(e){case"opening":case"closing":return"mdi:gate-arrow-right";case"closed":return"mdi:gate";default:return"mdi:gate-open"}case"door":return n?"mdi:door-open":"mdi:door-closed";case"damper":return n?"md:circle":"mdi:circle-slice-8";case"shutter":switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:window-shutter";default:return"mdi:window-shutter-open"}case"curtain":switch(e){case"opening":return"mdi:arrow-split-vertical";case"closing":return"mdi:arrow-collapse-horizontal";case"closed":return"mdi:curtains-closed";default:return"mdi:curtains"}case"blind":case"shade":switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:blinds";default:return"mdi:blinds-open"}case"window":switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:window-closed";default:return"mdi:window-open"}}switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:window-closed";default:return"mdi:window-open"}},Mb={apparent_power:"mdi:flash",aqi:"mdi:air-filter",carbon_dioxide:"mdi:molecule-co2",carbon_monoxide:"mdi:molecule-co",current:"mdi:current-ac",date:"mdi:calendar",energy:"mdi:lightning-bolt",frequency:"mdi:sine-wave",gas:"mdi:gas-cylinder",humidity:"mdi:water-percent",illuminance:"mdi:brightness-5",monetary:"mdi:cash",nitrogen_dioxide:"mdi:molecule",nitrogen_monoxide:"mdi:molecule",nitrous_oxide:"mdi:molecule",ozone:"mdi:molecule",pm1:"mdi:molecule",pm10:"mdi:molecule",pm25:"mdi:molecule",power:"mdi:flash",power_factor:"mdi:angle-acute",pressure:"mdi:gauge",reactive_power:"mdi:flash",signal_strength:"mdi:wifi",sulphur_dioxide:"mdi:molecule",temperature:"mdi:thermometer",timestamp:"mdi:clock",volatile_organic_compounds:"mdi:molecule",voltage:"mdi:sine-wave"},kb={10:"mdi:battery-10",20:"mdi:battery-20",30:"mdi:battery-30",40:"mdi:battery-40",50:"mdi:battery-50",60:"mdi:battery-60",70:"mdi:battery-70",80:"mdi:battery-80",90:"mdi:battery-90",100:"mdi:battery"},Sb={10:"mdi:battery-charging-10",20:"mdi:battery-charging-20",30:"mdi:battery-charging-30",40:"mdi:battery-charging-40",50:"mdi:battery-charging-50",60:"mdi:battery-charging-60",70:"mdi:battery-charging-70",80:"mdi:battery-charging-80",90:"mdi:battery-charging-90",100:"mdi:battery-charging"},Eb=(e,t)=>{const n=Number(e);if(isNaN(n))return"off"===e?"mdi:battery":"on"===e?"mdi:battery-alert":"mdi:battery-unknown";const a=10*Math.round(n/10);return t&&n>=10?Sb[a]:t?"mdi:battery-charging-outline":n<=5?"mdi:battery-alert-variant-outline":kb[a]},$b=e=>{const t=e?.attributes.device_class;if(t&&t in Mb)return Mb[t];if("battery"===t)return e?((e,t)=>{const n=e.state;return Eb(n,"on"===t?.state)})(e):"mdi:battery";const n=e?.attributes.unit_of_measurement;return"°C"===n||"°F"===n?"mdi:thermometer":void 0},Ab="mdi:bookmark",zb={alert:"mdi:alert",air_quality:"mdi:air-filter",automation:"mdi:robot",calendar:"mdi:calendar",camera:"mdi:video",climate:"mdi:thermostat",configurator:"mdi:cog",conversation:"mdi:text-to-speech",counter:"mdi:counter",fan:"mdi:fan",google_assistant:"mdi:google-assistant",group:"mdi:google-circles-communities",homeassistant:"mdi:home-assistant",homekit:"mdi:home-automation",image_processing:"mdi:image-filter-frames",input_button:"mdi:gesture-tap-button",input_datetime:"mdi:calendar-clock",input_number:"mdi:ray-vertex",input_select:"mdi:format-list-bulleted",input_text:"mdi:form-textbox",light:"mdi:lightbulb",mailbox:"mdi:mailbox",notify:"mdi:comment-alert",number:"mdi:ray-vertex",persistent_notification:"mdi:bell",person:"mdi:account",plant:"mdi:flower",proximity:"mdi:apple-safari",remote:"mdi:remote",scene:"mdi:palette",script:"mdi:script-text",select:"mdi:format-list-bulleted",sensor:"mdi:eye",siren:"mdi:bullhorn",simple_alarm:"mdi:bell",sun:"mdi:white-balance-sunny",timer:"mdi:timer-outline",updater:"mdi:cloud-upload",vacuum:"mdi:robot-vacuum",water_heater:"mdi:thermometer",weather:"mdi:weather-cloudy",zone:"mdi:map-marker-radius"};function Ib(e,t,n,a){switch(e){case"alarm_control_panel":return wb(n);case"binary_sensor":return xb(n,t);case"button":switch(t?.attributes.device_class){case"restart":return"mdi:restart";case"update":return"mdi:package-up";default:return"mdi:gesture-tap-button"}case"cover":return Cb(n,t);case"device_tracker":return"router"===t?.attributes.source_type?"home"===n?"mdi:lan-connect":"mdi:lan-disconnect":["bluetooth","bluetooth_le"].includes(t?.attributes.source_type)?"home"===n?"mdi:bluetooth-connect":"mdi:bluetooth":"not_home"===n?"mdi:account-arrow-right":"mdi:account";case"humidifier":return n&&"off"===n?"mdi:air-humidifier-off":"mdi:air-humidifier";case"input_boolean":return"on"===n?"mdi:check-circle-outline":"mdi:close-circle-outline";case"lock":switch(n){case"unlocked":return"mdi:lock-open";case"jammed":return"mdi:lock-alert";case"locking":case"unlocking":return"mdi:lock-clock";default:return"mdi:lock"}case"media_player":switch(t?.attributes.device_class){case"speaker":switch(n){case"playing":return"mdi:speaker-play";case"paused":return"mdi:speaker-pause";case"off":return"mdi:speaker-off";default:return"mdi:speaker"}case"tv":switch(n){case"playing":return"mdi:television-play";case"paused":return"mdi:television-pause";case"off":return"mdi:television-off";default:return"mdi:television"}default:switch(n){case"playing":case"paused":return"mdi:cast-connected";case"off":return"mdi:cast-off";default:return"mdi:cast"}}case"switch":switch(t?.attributes.device_class){case"outlet":return"on"===n?"mdi:power-plug":"mdi:power-plug-off";case"switch":return"on"===n?"mdi:toggle-switch":"mdi:toggle-switch-off";default:return"mdi:flash"}case"zwave":switch(n){case"dead":return"mdi:emoticon-dead";case"sleeping":return"mdi:sleep";case"initializing":return"mdi:timer-sand";default:return"mdi:z-wave"}case"sensor":{const e=$b(t);if(e)return e;break}case"input_datetime":if(!t?.attributes.has_date)return"mdi:clock";if(!t.attributes.has_time)return"mdi:calendar";break;case"sun":return"above_horizon"===t?.state?zb[e]:"mdi:weather-night";case"update":return"on"===t?.state?bb(t)?"mdi:package-down":"mdi:package-up":"mdi:package"}return e in zb?zb[e]:a??Ab}async function Tb(e,t,n){const a={type:"auth/sign_path",path:t,expires:n},i=await $v(e,Os,a);return i?e.hassUrl(i.path):null}function jb(e,t,n,a){if(!e||!n||!n.length)return[];const i=[];for(const r of n){const n=t?.states[r],o=e.states[r];if((a?.stateOnly&&n?.state!==o?.state||!a?.stateOnly&&n!==o)&&(i.push({entityID:r,oldState:n,newState:o}),a?.firstOnly))break}return i}function Ob(e,t,n,a){return!!jb(e,t,n,{...a,firstOnly:!0}).length}function Db(e){if("off"===e.state||!e.attributes.brightness)return"";return`brightness(${(e.attributes.brightness+245)/5}%)`}function Rb(e){return"off"===e.state?"":e.attributes.rgb_color?`rgb(${e.attributes.rgb_color.join(",")})`:""}function Pb(e){return{color:Rb(e),filter:Db(e)}}function Lb(e,t){if(!t.entity)return t;const n=e.states[t.entity];n&&t.state_color&&(t.style={...Pb(n),...t.style}),t.title=t.title??(n?.attributes?.friendly_name||t.entity),t.icon=t.icon??Fb(e,t.entity);const a=n?function(e){return Ye(e.entity_id)}(n):void 0;return t.data_domain=t.state_color||"light"===a&&!1!==t.state_color?a:void 0,n&&(t.data_state=(e=>{const t=e.entity_id.split(".")[0];let n=e.state;return"climate"===t&&(n=e.attributes.hvac_action),n})(n)),t}function Nb(e,t){return t?e?.states[t]?.attributes?.friendly_name:void 0}function Fb(e,t,n){const a=e.states[t];return a&&a.attributes.icon?a.attributes.icon:Ib(Ye(t),a,a?.state,n)}const Vb=async()=>{if(["ha-button-menu","ha-button","ha-camera-stream","ha-card","ha-circular-progress","ha-hls-player","ha-icon-button","ha-icon","ha-menu-button","ha-selector","ha-web-rtc-player"].every((e=>customElements.get(e))))return!0;const e=await window.loadCardHelpers();await e.createCardElement({type:"picture-glance",entities:[],camera_image:"dummy-to-load-editor-components"}),await customElements.whenDefined("hui-picture-glance-card");const t=customElements.get("hui-picture-glance-card");if(!t)return!1;const n=new t;return await n.constructor.getConfigElement(),!0},Hb=e=>!!e&&["on","open"].includes(e),Bb=(e,t)=>{if(!e)return[];const n=Object.keys(e.states).filter((e=>!t||e.substr(0,e.indexOf("."))===t));return n.sort(),n};function qb(e){return!!e?.startsWith("/")}function Ub(e,t){return qb(t)?e.hassUrl(t):t??null}class Wb{constructor(){this._initialized=new Set}async initializeMultipleIfNecessary(e){return(await tf(Object.entries(e),(async([e,t])=>await this.initializeIfNecessary(e,t)))).every(Boolean)}async initializeIfNecessary(e,t){return!!this._initialized.has(e)||(t?!!await t()&&(this._initialized.add(e),!0):(this._initialized.add(e),!0))}uninitialize(e){this._initialized.delete(e)}isInitialized(e){return this._initialized.has(e)}isInitializedMultiple(e){return e.every((e=>this.isInitialized(e)))}}var Zb;!function(e){e.LANGUAGES="languages",e.SIDE_LOAD_ELEMENTS="side-load-elements",e.CAMERAS="cameras",e.MICROPHONE_CONNECT="microphone-connect",e.VIEW="view"}(Zb||(Zb={}));class Qb{constructor(e,t){this._initializationQueue=new w_({concurrency:1}),this._everInitialized=!1,this._api=e,this._initializer=t??new Wb}wasEverInitialized(){return this._everInitialized}isInitializedMandatory(){return!!this._api.getConfigManager().getConfig()&&this._initializer.isInitializedMultiple([Zb.LANGUAGES,Zb.SIDE_LOAD_ELEMENTS,Zb.CAMERAS,...this._api.getMicrophoneManager().shouldConnectOnInitialization()?[Zb.MICROPHONE_CONNECT]:[],Zb.VIEW])}async initializeMandatory(){await this._initializationQueue.add((()=>this._initializeMandatory()))}async _initializeMandatory(){const e=this._api.getHASSManager().getHASS();if(!e||this.isInitializedMandatory())return;if(!await this._initializer.initializeMultipleIfNecessary({[Zb.LANGUAGES]:async()=>await(async e=>{const t=F_(e);return"ca"===t?L_[t]=await import("./lang-ca-449daa4a.js"):"it"===t?L_[t]=await import("./lang-it-2a20a319.js"):"pt"===t?L_[t]=await import("./lang-pt-PT-c4863423.js"):"pt_BR"===t?L_[t]=await import("./lang-pt-BR-83a703b9.js"):"fr"===t&&(L_[t]=await import("./lang-fr-674e5de5.js")),t&&(N_=t),!0})(e),[Zb.SIDE_LOAD_ELEMENTS]:async()=>await Vb()}))return;this._api.getConfigManager().getConfig()&&await this._initializer.initializeMultipleIfNecessary({[Zb.CAMERAS]:async()=>await this._api.getCameraManager().initializeCamerasFromConfig(),...this._api.getMicrophoneManager().shouldConnectOnInitialization()&&{[Zb.MICROPHONE_CONNECT]:async()=>await this._api.getMicrophoneManager().connect()}})&&!this._api.getMessageManager().hasMessage()&&await this._initializer.initializeIfNecessary(Zb.VIEW,this._api.getViewManager().initialize)&&(this._everInitialized=!0,this._api.getCardElementManager().update())}uninitialize(e){this._initializer.uninitialize(e)}}class Gb{constructor(e,t,n,a){this.update=()=>{this._element.requestUpdate()},this._api=e,this._element=t,this._scrollCallback=n,this._menuToggleCallback=a}getElement(){return this._element}scrollReset(){this._scrollCallback()}toggleMenu(){this._menuToggleCallback()}hasUpdated(){return this._element.hasUpdated}elementConnected(){this._api.getInteractionManager().initialize(),this._api.getFullscreenManager().initialize(),this._api.getExpandManager().initialize(),this._api.getMediaLoadedInfoManager().initialize(),this._api.getMicrophoneManager().initialize(),this._api.getKeyboardStateManager().initialize(),this._api.getDefaultManager().initialize(),this._api.getMediaPlayerManager().initialize(),this._api.getHASSManager().getStateWatcher()?.subscribe(this.update,[...this._api.getConfigManager().getConfig()?.view.render_entities??[],...this._api.getMediaPlayerManager().getMediaPlayers()??[]]),of(this._element,(e=>{const t=e.getRootNode();return!!(t&&t instanceof ShadowRoot&&"HUI-PANEL-VIEW"===t.host.tagName)})(this._element),"panel"),of(this._element,vb(),"casted"),this._api.getFullscreenManager().connect(),this._element.addEventListener("mousemove",this._api.getInteractionManager().reportInteraction),this._element.addEventListener("wheel",this._api.getInteractionManager().reportInteraction),this._element.addEventListener("ll-custom",this._api.getActionsManager().handleCustomActionEvent),this._element.addEventListener("action",this._api.getActionsManager().handleInteractionEvent),this._element.addEventListener("action",this._api.getInteractionManager().reportInteraction),this._element.addEventListener("frigate-card:action:execution-request",this._api.getActionsManager().handleActionExecutionRequestEvent),window.addEventListener("location-changed",this._api.getQueryStringManager().requestExecution),window.addEventListener("popstate",this._api.getQueryStringManager().requestExecution),this._api.getQueryStringManager().requestExecution(),this._element.requestUpdate()}elementDisconnected(){of(this._element,!1,"panel"),of(this._element,!1,"tabindex"),of(this._element,!1,"casted"),this._api.getMediaLoadedInfoManager().clear(),this._api.getFullscreenManager().disconnect(),this._api.getKeyboardStateManager().uninitialize(),this._api.getActionsManager().uninitialize(),this._api.getDefaultManager().uninitialize(),this._api.getHASSManager().getStateWatcher()?.unsubscribe(this.update),this._api.getInitializationManager().uninitialize(Zb.CAMERAS),this._api.getCameraManager().reset(),this._element.removeEventListener("mousemove",this._api.getInteractionManager().reportInteraction),this._element.removeEventListener("wheel",this._api.getInteractionManager().reportInteraction),this._element.removeEventListener("ll-custom",this._api.getActionsManager().handleCustomActionEvent),this._element.removeEventListener("action",this._api.getActionsManager().handleInteractionEvent),this._element.removeEventListener("action",this._api.getInteractionManager().reportInteraction),this._element.removeEventListener("frigate-card:action:execution-request",this._api.getActionsManager().handleActionExecutionRequestEvent),window.removeEventListener("location-changed",this._api.getQueryStringManager().requestExecution),window.removeEventListener("popstate",this._api.getQueryStringManager().requestExecution)}}function Yb(e,t,n){return null==e?e:function(e,t,n,a){if(!hh(e))return e;for(var i=-1,r=(t=sv(t,e)).length,o=r-1,s=e;null!=s&&++i{Yb(e,t,n)},Jb=(e,t,n)=>fv(e,t,n),ew=(e,t)=>{!function(e,t){null==e||Kb(e,t)}(e,t)},tw=e=>u_(e),nw=(e,t)=>e.replace("#",`[${t.toString()}]`),aw=function(e){let t=!1;for(let n=0;n{const i=Jb(e,t);if(void 0===i)return!1;const r=a?.transform?a.transform(i):i;return!(t===n&&Dv(i,r)||(null===r?a?.keepOriginal||(ew(e,t),0):void 0===r||(a?.keepOriginal||ew(e,t),Xb(e,n,r),0)))})(a,e,t,n)}},ow=function(e,t,n){return function(a){let i=rw(e,t,n)(a);return i=lw(bs,rw(e,t,n),(e=>e.overrides))(a)||i,i}},sw=function(e,t){return ow(e,e,{transform:t})},cw=function(e){return ow(e,e,{transform:e=>null})},lw=function(e,t,n){return function(a){let i=!1;const r=Jb(a,e);return Array.isArray(r)&&r.forEach((e=>{const a=n?n(e):e;a&&"object"==typeof a&&(i=t(a)||i)})),i}},dw=(e,t)=>{const n=a=>{let i=!1;if(a&&"object"==typeof a){const r=t?t(a):a;r&&(i=e(r)||i),Array.isArray(a)?a.forEach((e=>{i=n(e)||i})):Object.keys(a).forEach((e=>{i=n(a[e])||i}))}return i};return n},uw=e=>!("object"!=typeof e||!e||void 0===e.mediaLoaded)&&(e.media_loaded=e.mediaLoaded,delete e.mediaLoaded,!0),hw=e=>{if("object"!=typeof e||!e||"object"!=typeof e.conditions||!e.conditions)return!1;const t=e.conditions,n=[];if(void 0!==t.view&&n.push({condition:"view",views:t.view}),void 0!==t.fullscreen&&n.push({condition:"fullscreen",fullscreen:t.fullscreen}),void 0!==t.expand&&n.push({condition:"expand",expand:t.expand}),void 0!==t.camera&&n.push({condition:"camera",cameras:t.camera}),void 0!==t.media_loaded&&n.push({condition:"media_loaded",media_loaded:t.media_loaded}),void 0!==t.state&&Array.isArray(t.state))for(const e of t.state)"object"!=typeof e||!e||void 0===e.state&&void 0===e.state_not&&void 0===e.entity||n.push({condition:"state",...e.state&&{state:e.state},...e.state_not&&{state_not:e.state_not},...e.entity&&{entity:e.entity}});return void 0!==t.media_query&&n.push({condition:"screen",media_query:t.media_query}),!!n.length&&(e.conditions=n,!0)},pw=e=>!("object"!=typeof e||!e||"call-service"!==e.action||"string"!=typeof e.service)&&(e.action="perform-action",e.perform_action=e.service,delete e.service,!0),mw=e=>!("object"!=typeof e||!e||"call-service"!==e.action||void 0===e.service||void 0===e.service_data||void 0!==e.data)&&(e.data=e.service_data,delete e.service_data,!0),gw=e=>!("object"!=typeof e||!e||"custom:frigate-card-action"!==e.action||"frigate_ui"!==e.frigate_card_action)&&(e.frigate_card_action="camera_ui",!0),fw=[lw(bs,uw,(e=>e.conditions)),e=>dw(uw,(e=>e.conditions))("object"==typeof e&&e?e[Ii]:{}),ow("event_gallery",or),ow("menu.buttons.frigate_ui",is),e=>dw(gw)("object"==typeof e&&e?e:{}),lw(Ca,sw("live_provider",(e=>"frigate-jsmpeg"===e?"jsmpeg":e))),ow("live.jsmpeg",ki),ow("live.image",Ci),ow("live.webrtc_card",Si),lw(Ca,ow("frigate.zone","frigate.zones",{transform:e=>Wg(e)})),lw(Ca,ow("frigate.label","frigate.labels",{transform:e=>Wg(e)})),e=>dw(mw)("object"==typeof e&&e?e:{}),function(e){if("object"!=typeof e||!e||!(Ii in e)||!Array.isArray(e[Ii]))return!1;let t=!1;const n=n=>{if(!t){if(!fv(e,"live.controls.ptz")){const{type:t,...a}=n;Yb(e,"live.controls.ptz",a)}t=!0}},a=e=>{const t=[];for(const i of e)if("custom:frigate-card-ptz"===i.type)n(i);else if("conditional"!==i.type&&"custom:frigate-card-conditional"!==i.type||!Array.isArray(i.elements))t.push(i);else{const e=a(i.elements);e.length&&(i.elements=e,t.push(i))}return t},i=a(e[Ii]);return t&&(i.length?e[Ii]=i:delete e[Ii]),t},ow("view.timeout_seconds",Ri),sw("live.lazy_unload",(e=>"all"===e?["unselected","hidden"]:"never"===e?null:Wg(e))),sw("live.auto_play",(e=>"all"===e?null:"never"===e?[]:Wg(e))),sw("live.auto_pause",(e=>"all"===e?["unselected","hidden"]:"never"===e?null:Wg(e))),sw("live.auto_mute",(e=>"all"===e?null:"never"===e?[]:Wg(e))),sw("live.auto_unmute",(e=>"all"===e?["selected","visible","microphone"]:"never"===e?null:Wg(e))),sw("media_viewer.auto_play",(e=>"all"===e?null:"never"===e?[]:Wg(e))),sw("media_viewer.auto_pause",(e=>"all"===e?null:"never"===e?[]:Wg(e))),sw("media_viewer.auto_mute",(e=>"all"===e?null:"never"===e?[]:Wg(e))),sw("media_viewer.auto_unmute",(e=>"all"===e?["selected","visible"]:"never"===e?null:Wg(e))),ow("live.controls.thumbnails.media",io),ow("timeline.media",Ho),ow("live.controls.timeline.media",po),ow("media_viewer.controls.timeline.media",Rr),ow("view.scan",Xi),ow("view.triggers.enabled",ar,{transform:e=>!0===e?"live":null,keepOriginal:!0}),ow("view.triggers.enabled",er,{transform:e=>!0!==e&&null}),ow("view.triggers.untrigger_reset",ir,{transform:e=>e?"default":null}),ow("live.layout",Ai),cw("media_viewer.layout"),cw("image.layout"),lw(bs,hw),e=>dw(hw)("object"==typeof e&&e?e[Ii]:{}),e=>dw(hw)("object"==typeof e&&e?e.automations:{}),lw(Ca,ow("hide","capabilities",{transform:e=>!0===e?{disable_except:["substream"]}:null})),ow("performance.profile",$s,{transform:e=>"low"===e?["low-performance"]:null}),lw(bs,rw("overrides","merge")),ow("live.controls.ptz",zi,{transform:e=>{if("object"!=typeof e||!e)return;const t=["data_left","data_right","data_up","data_down","data_zoom_in","data_zoom_out","service"],n=["actions_left","actions_right","actions_up","actions_down","actions_zoom_in","actions_zoom_out"],a=[...t,...n,"data_home","actions_home"];if(!Object.keys(e).some((e=>a.includes(e))))return;const i={};t.filter((t=>t in e)).reduce(((t,n)=>(t[n]=e[n],t)),i),n.filter((t=>t in e)).reduce(((t,n)=>("object"==typeof e[n]&&"tap_action"in e[n]&&(t[n]=e[n].tap_action),t)),i);const r=()=>{i.presets="presets"in e&&"object"==typeof e.presets&&e.presets?e.presets:{}};return"actions_home"in e&&"object"==typeof e.actions_home&&e.actions_home&&"tap_action"in e.actions_home?(r(),i.presets.home=e.actions_home.tap_action):"data_home"in e&&"object"==typeof e.data_home&&e.data_home&&"string"==typeof e.service&&(r(),i.presets.service=e.service,i.presets.data_home=e.data_home),i},keepOriginal:!0}),sw("live.controls.ptz",(e=>{if("object"!=typeof e||!e)return e;const t=["mode","position","orientation","hide_pan_tilt","hide_zoom","hide_home","style"],n=Object.keys(e);return n.some((e=>!t.includes(e)))?n.filter((e=>t.includes(e))).reduce(((t,n)=>(t[n]=e[n],t)),{}):void 0})),ow("view.update_cycle_camera",Wi),ow("view.update_force",Qi,{transform:e=>!0===e?"all":null}),ow("view.update_seconds",Gi),ow("view.update_entities",Yi),rw("live.controls.title",ds,{transform:e=>"object"==typeof e&&e&&"string"==typeof e.mode?"none"===e.mode?{style:"none"}:e.mode.includes("bottom")?{position:"bottom"}:e.mode.includes("top")?{position:"top"}:null:null}),cw("live.controls.title"),cw("media_viewer.controls.title"),e=>dw(pw)("object"==typeof e&&e?e:{}),ow("dimensions.max_height",ys),cw("dimensions.min_height")];class _w extends zs{}class vw extends Event{constructor(e,t){super("frigate-card:conditions:evaluate",t),this.conditions=e}}function yw(e,t,n){let a=tw(t),i=!1;if(n?.configOverrides)for(const t of n.configOverrides)e.evaluateConditions(t.conditions,n?.stateOverrides)&&(t.delete?.forEach((e=>{ew(a,e)})),Object.keys(t.set??{}).forEach((e=>{Xb(a,e,t.set?.[e])})),Object.keys(t.merge??{}).forEach((e=>{Xb(a,e,Ly({},Jb(a,e),t.merge?.[e]))})),i=!0);if(!i)return t;if(n?.configOverrides?.some((e=>e.delete?.length))&&(a=hf(a)),n?.schema){const e=n.schema.safeParse(a);if(!e.success)throw new _w(V_("error.invalid_configuration_override"),[e.error.errors,a]);return e.data}return a}class bw{constructor(e,t){this._state={},this._epoch=this._createEpoch(),this._hasHAStateConditions=!1,this._mediaQueries=[],this._mediaQueryTrigger=()=>this._triggerChange(),this._api=e,this._listeners=[()=>this._api.getConfigManager().computeOverrideConfig(),()=>this._api.getAutomationsManager().execute(),...t?[t]:[]]}removeConditions(){this._mediaQueries.forEach((e=>e.removeEventListener("change",this._mediaQueryTrigger))),this._mediaQueries=[]}setConditionsFromConfig(){this.removeConditions();const e=(()=>{const e=this._api.getConfigManager().getConfig(),t=[];e?.overrides?.forEach((e=>t.push(...e.conditions))),e?.automations?.forEach((e=>t.push(...e.conditions)));const n=e=>{const a=vl.safeParse(e);a.success?(t.push(...a.data.conditions),a.data.elements?.forEach(n)):e&&"object"==typeof e&&Object.keys(e).forEach((t=>n(e[t])))};return e?.elements?.forEach(n),t})();this._hasHAStateConditions=e.some((e=>!e.condition||["state","numeric_state","user"].includes(e.condition))),e.forEach((e=>{if("screen"===e.condition){const t=window.matchMedia(e.media_query);t.addEventListener("change",this._mediaQueryTrigger),this._mediaQueries.push(t)}}))}setState(e){Object.keys(e).every((t=>Dv(e[t],this._state[t])))||(this._state={...this._state,...e},this._triggerChange())}getState(){return this._state}hasHAStateConditions(){return this._hasHAStateConditions}getEpoch(){return this._epoch}evaluateConditions(e,t){return e.every((e=>this._evaluateCondition(e,t)))}_evaluateCondition(e,t){const n={...this._state,...t};switch(e.condition){case void 0:case"state":return!!n.state&&(!e.state&&!e.state_not||e.entity in n.state&&(!e.state||(Array.isArray(e.state)?e.state.includes(n.state[e.entity].state):e.state===n.state[e.entity].state))&&(!e.state_not||(Array.isArray(e.state_not)?!e.state_not.includes(n.state[e.entity].state):e.state_not!==n.state[e.entity].state)));case"view":return!!n?.view&&e.views.includes(n.view);case"fullscreen":return void 0!==n.fullscreen&&e.fullscreen===n.fullscreen;case"expand":return void 0!==n.expand&&e.expand===n.expand;case"camera":return!!n.camera&&e.cameras.includes(n.camera);case"numeric_state":return!!n.state&&e.entity in n.state&&void 0!==n.state[e.entity].state&&(void 0===e.above||Number(n.state[e.entity].state)>e.above)&&(void 0===e.below||Number(n.state[e.entity].state)n.triggered?.has(e)));case"interaction":return void 0!==n.interaction&&e.interaction===n.interaction;case"microphone":return!(void 0!==e.connected&&n.microphone?.connected!==e.connected||void 0!==e.muted&&n.microphone?.muted!==e.muted);case"key":return!(!n.keys||!(e.key in n.keys)||(e.state??"down")!==n.keys[e.key].state||void 0!==e.ctrl&&e.ctrl!==!!n.keys[e.key].ctrl||void 0!==e.alt&&e.alt!==!!n.keys[e.key].alt||void 0!==e.meta&&e.meta!==!!n.keys[e.key].meta||void 0!==e.shift&&e.shift!==!!n.keys[e.key].shift)}}_createEpoch(){return{manager:this}}_triggerChange(){this._epoch=this._createEpoch(),this._listeners.forEach((e=>e()))}}const ww={casting:{[Qr]:!1,[Sr]:!1,[es]:"none",[`${os}.enabled`]:!0,[`${ss}.enabled`]:!0,[`${rs}.enabled`]:!1,[`${cs}.enabled`]:!1,[Zr]:["selected","visible"],[vs]:"static",[_s]:"16:9",[$i]:1,[$o]:!0},"low-performance":{[ro]:"none",[Ar]:"none",[Uo]:"none",[fo]:!1,[Nr]:!1,[Bo]:!1,[Wr]:[],[mr]:[],[gr]:[],[fr]:[],[ko]:["unselected","hidden"],[Co]:!1,[xr]:!1,[Eo]:"none",[kr]:"none",[$o]:!1,[Er]:"chevrons",[hs]:"none",[es]:"outside",[`${as}.enabled`]:!1,[`${ls}.enabled`]:!1,[`${ls}.enabled`]:!1,[`${cs}.enabled`]:!1,[lr]:!1,[dr]:!1,[ur]:!1,[cr]:!1,[co]:!1,[lo]:!1,[uo]:!1,[so]:!1,[Ir]:!1,[Tr]:!1,[jr]:!1,[zr]:!1,[Qo]:!1,[Go]:!1,[Yo]:!1,[Zo]:!1,[xs]:!1,[Cs]:10,[Es]:!1,[Ss]:!1,[Mr]:!1,[Ei]:!1,[Mi]:"image",[$i]:10,[ar]:"none",[Ms]:1},scrubbing:{[mo]:"below",[_o]:"ribbon",[go]:"seek",[Pr]:"below",[Fr]:"ribbon",[Lr]:"seek"}},xw=(e,t,n)=>{const a=Ds(Nd).safeParse(e);if(!a.success)return t;const i=a.data;for(const e of n??[])e in ww&&Object.entries(ww[e]).forEach((([e,n])=>{return r=n,void(void 0===Jb(i,a=e)&&Xb(t,a,r));var a,r}));return t},Cw=e=>{switch(e){case"ptz_left":return"left";case"ptz_right":return"right";case"ptz_up":return"up";case"ptz_down":return"down";case"ptz_zoom_in":return"zoom_in";case"ptz_zoom_out":return"zoom_out"} +/* istanbul ignore next: No (current) way to reach this code -- @preserve */return null},Mw=(e,t)=>{if(!t.enabled)return[];const n=[];for(const a of["ptz_down","ptz_left","ptz_right","ptz_up","ptz_zoom_in","ptz_zoom_out"]){const i=t[a],r=Cw(a);i&&r&&(n.push({conditions:[{condition:"key",key:i.key,state:"down",shift:i.shift,ctrl:i.ctrl,alt:i.alt,meta:i.meta}],actions:[vf({ptzAction:r,ptzPhase:"start"})],tag:e}),n.push({conditions:[{condition:"key",key:i.key,state:"up"}],actions:[vf({ptzAction:r,ptzPhase:"stop"})],tag:e}))}const a=t.ptz_home;return a&&n.push({conditions:[{condition:"key",key:a.key,state:"down",shift:a.shift,ctrl:a.ctrl,alt:a.alt,meta:a.meta}],actions:[vf()],tag:e}),n};class kw{constructor(e){this._config=null,this._overriddenConfig=null,this._rawConfig=null,this._cardWideConfig=null,this._api=e}hasConfig(){return!!this.getConfig()}getConfig(){return this._overriddenConfig??this._config}getCardWideConfig(){return this._cardWideConfig}getNonOverriddenConfig(){return this._config}getRawConfig(){return this._rawConfig}setConfig(e){if(!e)throw new Error(V_("error.invalid_configuration"));const t=Nd.safeParse(e);if(!t.success){const n=iw(e),a=Ps(t.error);let i="";throw n&&(i=`${V_("error.upgrade_available")}. `),new Error(i+`${V_("error.invalid_configuration")}: `+(a&&a.size?JSON.stringify([...a],null," "):V_("error.invalid_configuration_no_hint")))}const n=xw(e,t.data,t.data.profiles);var a;(this._rawConfig=e,Dv(this._config,n))||(this._config=n,this._cardWideConfig={performance:n.performance,debug:n.debug},this._api.getConditionsManager().setConditionsFromConfig(),this._api.getConditionsManager().setState({view:void 0,displayMode:void 0,camera:void 0}),this._api.getMediaLoadedInfoManager().clear(),this._api.getInitializationManager().uninitialize(Zb.VIEW),this._api.getViewManager().reset(),this._api.getMessageManager().reset(),this._api.getStyleManager().setPerformance(),this._api.getStatusBarItemManager().removeAllDynamicStatusBarItems(),((e,t)=>{e.getAutomationsManager().deleteAutomations(t);const n=e.getConfigManager().getConfig()?.view.keyboard_shortcuts;if(!n)return;const a=Mw(t,n);a.length&&e.getAutomationsManager().addAutomations(a)})(this._api,this),(a=this._api).getAutomationsManager().deleteAutomations(),a.getAutomationsManager().addAutomations(a.getConfigManager().getNonOverriddenConfig()?.automations??[]),this.computeOverrideConfig(),this._api.getCardElementManager().update())}computeOverrideConfig(){const e=this._api.getConditionsManager();if(!this._config)return;let t=null;try{t=yw(e,this._config,{configOverrides:this._config.overrides,schema:Nd})}catch(e){return void this._api.getMessageManager().setErrorIfHigherPriority(e)}if(Dv(t,this._overriddenConfig))return;const n=this._overriddenConfig;this._overriddenConfig=t,this._api.getStyleManager().setMinMaxHeight(),!n||Dv(n?.cameras,this._overriddenConfig?.cameras)&&Dv(n?.cameras_global,this._overriddenConfig?.cameras_global)||this._api.getInitializationManager().uninitialize(Zb.CAMERAS),n&&n?.live.microphone.always_connected!==this._overriddenConfig?.live.microphone.always_connected&&this._api.getInitializationManager().uninitialize(Zb.MICROPHONE_CONNECT),this._initializeBackground(n)}async _initializeBackground(e){await this._api.getDefaultManager().initializeIfNecessary(e),await this._api.getMediaPlayerManager().initializeIfNecessary(e),this._api.getCardElementManager().update()}}class Sw{constructor(e){this._timer=new xf,this._stateChangeHandler=()=>{this._setToDefaultIfAllowed()},this._api=e}async initializeIfNecessary(e){Dv(e?.view.default_reset,this._api.getConfigManager().getConfig()?.view.default_reset)||await this.initialize()}async initialize(){this.uninitialize();const e=this._api.getConfigManager().getConfig()?.view.default_reset;e?.entities.length&&this._api.getHASSManager().getStateWatcher().subscribe(this._stateChangeHandler,e.entities);const t=this._api.getConfigManager().getConfig()?.view.default_reset.every_seconds;return t&&this._timer.startRepeated(t,(()=>this._setToDefaultIfAllowed())),this._api.getConfigManager().getConfig()?.view.default_reset.after_interaction&&this._api.getAutomationsManager().addAutomations([{actions:[gf("default")],conditions:[{condition:"interaction",interaction:!1}],tag:this}]),!0}uninitialize(){this._timer.stop(),this._api.getHASSManager().getStateWatcher().unsubscribe(this._stateChangeHandler),this._api.getAutomationsManager().deleteAutomations(this)}_setToDefaultIfAllowed(){this._isAutomatedUpdateAllowed()&&this._api.getViewManager().setViewDefault()}_isAutomatedUpdateAllowed(){const e=this._api.getConfigManager().getConfig()?.view.default_reset.interaction_mode;return!!e&&((e,t)=>{switch(e){case"all":return!0;case"active":return t;case"inactive":return!t}})(e,this._api.getInteractionManager().hasInteraction())}}const Ew=(e,t="download")=>{const n=new URL(e).origin===window.location.origin,a=e.startsWith("data:");if(navigator.userAgent.startsWith("Home Assistant/")||navigator.userAgent.startsWith("HomeAssistant/")||!n&&!a)window.open(e,"_blank");else{const n=document.createElement("a");n.setAttribute("download",t),n.href=e,n.click(),n.remove()}},$w=async(e,t,n)=>{const a=await t.getMediaDownloadPath(n);if(!a)throw new zs(V_("error.download_no_media"));let i=a.endpoint;if(a.sign){let t;try{t=await Tb(e,a.endpoint)}catch(e){Gg(e)}if(!t)throw new zs(V_("error.download_sign_failed"));i=t}Ew(i)},Aw=e=>{const t=document.createElement("canvas");t.width=e.videoWidth,t.height=e.videoHeight;const n=t.getContext("2d");return n?(n.drawImage(e,0,0,t.width,t.height),t.toDataURL("image/jpeg")):null};class zw{constructor(e){this._api=e}async downloadViewerMedia(){const e=this._api.getViewManager().getView()?.queryResults?.getSelectedResult(),t=this._api.getHASSManager().getHASS();if(!e||!t)return!1;try{await $w(t,this._api.getCameraManager(),e)}catch(e){return this._api.getMessageManager().setErrorIfHigherPriority(e),!1}return!0}async downloadScreenshot(){const e=await(this._api.getMediaLoadedInfoManager().get()?.player?.getScreenshotURL());e&&Ew(e,(e=>{if(e?.is("live")||e?.is("image"))return`${e.view}-${e.camera}-${Wu(new Date,"yyyy-MM-dd-HH-mm-ss")}.jpg`;if(e?.isViewerView()){const t=e.queryResults?.getSelectedResult(),n=t?.getID()??null;return`${e.view}-${e.camera}${n?`-${n}`:""}.jpg`}return"screenshot.jpg"})(this._api.getViewManager().getView()))}}class Iw{constructor(e){this._expanded=!1,this._api=e}initialize(){this._setConditionState()}isExpanded(){return this._expanded}toggleExpanded(){this.setExpanded(!this._expanded)}setExpanded(e){e&&this._api.getFullscreenManager().isInFullscreen()&&this._api.getFullscreenManager().stopFullscreen(),this._expanded=e,this._setConditionState(),this._api.getCardElementManager().update()}_setConditionState(){this._api.getConditionsManager()?.setState({expand:this._expanded})}}const Tw=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],jw=(()=>{if("undefined"==typeof document)return!1;const e=Tw[0],t={};for(const n of Tw){const a=n?.[1];if(a in document){for(const[a,i]of n.entries())t[e[a]]=i;return t}}return!1})(),Ow={change:jw.fullscreenchange,error:jw.fullscreenerror};let Dw={request:(e=document.documentElement,t)=>new Promise(((n,a)=>{const i=()=>{Dw.off("change",i),n()};Dw.on("change",i);const r=e[jw.requestFullscreen](t);r instanceof Promise&&r.then(i).catch(a)})),exit:()=>new Promise(((e,t)=>{if(!Dw.isFullscreen)return void e();const n=()=>{Dw.off("change",n),e()};Dw.on("change",n);const a=document[jw.exitFullscreen]();a instanceof Promise&&a.then(n).catch(t)})),toggle:(e,t)=>Dw.isFullscreen?Dw.exit():Dw.request(e,t),onchange(e){Dw.on("change",e)},onerror(e){Dw.on("error",e)},on(e,t){const n=Ow[e];n&&document.addEventListener(n,t,!1)},off(e,t){const n=Ow[e];n&&document.removeEventListener(n,t,!1)},raw:jw};Object.defineProperties(Dw,{isFullscreen:{get:()=>Boolean(document[jw.fullscreenElement])},element:{enumerable:!0,get:()=>document[jw.fullscreenElement]??void 0},isEnabled:{enumerable:!0,get:()=>Boolean(document[jw.fullscreenEnabled])}}),jw||(Dw={isEnabled:!1});var Rw=Dw;class Pw{constructor(e){this._fullscreenHandler=()=>{this._api.getExpandManager().setExpanded(!1),this._setConditionState(),this._api.getCardElementManager().update()},this._api=e}initialize(){this._setConditionState()}connect(){Rw.isEnabled&&Rw.on("change",this._fullscreenHandler)}disconnect(){Rw.isEnabled&&Rw.off("change",this._fullscreenHandler)}isInFullscreen(){return Rw.isEnabled&&Rw.isFullscreen}toggleFullscreen(){Rw.toggle(this._api.getCardElementManager().getElement())}stopFullscreen(){Rw.exit()}_setConditionState(){this._api.getConditionsManager()?.setState({fullscreen:this.isInFullscreen()})}}class Lw{constructor(){this._watcherCallbacks=new Map}setHASS(e,t){if(e)for(const[n,a]of this._watcherCallbacks.entries()){const i=jb(t,e,a,{stateOnly:!0,firstOnly:!0});i.length&&n(i[0])}}subscribe(e,t){return!!t.length&&(this._watcherCallbacks.has(e)?this._watcherCallbacks.get(e)?.push(...t):this._watcherCallbacks.set(e,t),!0)}unsubscribe(e){this._watcherCallbacks.delete(e)}}class Nw{constructor(e){this._hass=null,this._stateWatcher=new Lw,this._api=e}getHASS(){return this._hass}hasHASS(){return!!this._hass}getStateWatcher(){return this._stateWatcher}setHASS(e){if(((e,t)=>e?.connected!==t?.connected)(this._hass,e)&&(e?.connected?this._api.getMessageManager().resetType("connection"):this._api.getMessageManager().setMessageIfHigherPriority({message:V_("error.reconnecting"),icon:"mdi:lan-disconnect",type:"connection",dotdotdot:!0})),!e)return;const t=this._hass;this._hass=e,this._api.getConditionsManager().hasHAStateConditions()&&this._api.getConditionsManager().setState({state:this._hass.states,user:this._hass.user}),this._api.getStyleManager().setLightOrDarkMode(),this._stateWatcher.setHASS(t,e)}}var Fw=function(){return th.Date.now()},Vw="Expected a function",Hw=Math.max,Bw=Math.min;function qw(e,t,n){var a,i,r,o,s,c,l=0,d=!1,u=!1,h=!0;if("function"!=typeof e)throw new TypeError(Vw);function p(t){var n=a,r=i;return a=i=void 0,l=t,o=e.apply(r,n)}function m(e){var n=e-c;return void 0===c||n>=t||n<0||u&&e-l>=r}function g(){var e=Fw();if(m(e))return f(e);s=setTimeout(g,function(e){var n=t-(e-c);return u?Bw(n,r-(e-l)):n}(e))}function f(e){return s=void 0,h&&a?p(e):(a=i=void 0,o)}function _(){var e=Fw(),n=m(e);if(a=arguments,i=this,c=e,n){if(void 0===s)return function(e){return l=e,s=setTimeout(g,t),d?p(e):o}(c);if(u)return clearTimeout(s),s=setTimeout(g,t),p(c)}return void 0===s&&(s=setTimeout(g,t)),o}return t=Cg(t)||0,hh(n)&&(d=!!n.leading,r=(u="maxWait"in n)?Hw(Cg(n.maxWait)||0,t):r,h="trailing"in n?!!n.trailing:h),_.cancel=function(){void 0!==s&&clearTimeout(s),l=0,a=c=i=s=void 0},_.flush=function(){return void 0===s?o:f(Fw())},_}function Uw(e,t,n){var a=!0,i=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return hh(n)&&(a="leading"in n?!!n.leading:a,i="trailing"in n?!!n.trailing:i),qw(e,t,{leading:a,maxWait:t,trailing:i})}class Ww{constructor(e){this._timer=new xf,this.reportInteraction=Uw((()=>{this._reportInteraction()}),1e3),this._api=e}initialize(){this._api.getConditionsManager().setState({interaction:!1})}hasInteraction(){return this._timer.isRunning()}_reportInteraction(){this._timer.stop();const e=this._api.getConfigManager().getConfig()?.view.interaction_seconds;e&&(this._api.getConditionsManager().setState({interaction:!0}),this._timer.start(e,(()=>{this._api.getConditionsManager().setState({interaction:!1}),this._api.getStyleManager().setLightOrDarkMode()})))}}class Zw{constructor(e){this._state={},this._handleKeydown=e=>{const t={state:"down",ctrl:e.ctrlKey,alt:e.altKey,meta:e.metaKey,shift:e.shiftKey};Dv(this._state[e.key],t)||(this._state[e.key]=t,this._processStateChange())},this._handleKeyup=e=>{e.key in this._state&&"down"===this._state[e.key].state&&(this._state[e.key].state="up",this._processStateChange())},this._handleBlur=()=>{Object.keys(this._state).length&&(this._state={},this._processStateChange())},this._api=e}initialize(){const e=this._api.getCardElementManager().getElement();e.addEventListener("keydown",this._handleKeydown),e.addEventListener("keyup",this._handleKeyup),e.addEventListener("blur",this._handleBlur)}uninitialize(){const e=this._api.getCardElementManager().getElement();e.removeEventListener("keydown",this._handleKeydown),e.removeEventListener("keyup",this._handleKeyup),e.removeEventListener("blur",this._handleBlur)}_processStateChange(){this._api.getConditionsManager().setState({keys:this._state})}}function Qw(e,t){let n;return n=e instanceof Event?e.composedPath()[0]:e,n instanceof HTMLImageElement?{width:n.naturalWidth,height:n.naturalHeight,...t}:n instanceof HTMLVideoElement?{width:n.videoWidth,height:n.videoHeight,...t}:n instanceof HTMLCanvasElement?{width:n.width,height:n.height,player:t?.player,...t}:null}function Gw(e,t,n){const a=Qw(t,n);a&&Yw(e,a)}function Yw(e,t){Bg(e,"media:loaded",t)}function Kw(e){Bg(e,"media:unloaded")}function Xw(e){Bg(e,"media:volumechange")}function Jw(e){Bg(e,"media:play")}function ex(e){Bg(e,"media:pause")}class tx{constructor(e){this._current=null,this._lastKnown=null,this._api=e}initialize(){this.clear()}set(e){var t;(t=e).height>=50&&t.width>=50&&(B_(this._api.getConfigManager().getCardWideConfig(),"Frigate Card media load: ",e),this._current=e,this._lastKnown=e,this._api.getConditionsManager().setState({media_loaded:!0}),this._api.getStyleManager().setExpandedMode(),this._api.getCardElementManager().update())}get(){return this._current}getLastKnown(){return this._lastKnown}clear(){this._current=null,this._api.getConditionsManager().setState({media_loaded:!1})}has(){return!!this._current}}class nx{static isEvent(e){return this.isClip(e)||this.isSnapshot(e)}static isRecording(e){return"recording"===e.getMediaType()}static isClip(e){return"clip"===e.getMediaType()}static isSnapshot(e){return"snapshot"===e.getMediaType()}static isVideo(e){return this.isClip(e)||this.isRecording(e)}}class ax{constructor(e){this._mediaPlayers=[],this._api=e}getMediaPlayers(){return this._mediaPlayers}hasMediaPlayers(){return this._mediaPlayers.length>0}async initializeIfNecessary(e){e?.menu.buttons.media_player.enabled!==this._api.getConfigManager().getConfig()?.menu.buttons.media_player.enabled&&await this.initialize()}async initialize(){const e=this._api.getHASSManager().getHASS();if(!e||!this._api.getConfigManager().getConfig()?.menu.buttons.media_player.enabled)return!1;const t=Object.keys(e.states).filter((t=>{if(t.startsWith("media_player.")){const n=e.states[t];if(n&&"unavailable"!==n.state&&yb(n,131072))return!0}return!1}));let n=null;try{n=await this._api.getEntityRegistryManager().getEntities(e,t)}catch(e){Gg(e)}return this._mediaPlayers=t.filter((e=>{const t=n?.get(e);return!t||!t.hidden_by})),!0}async stop(e){const t=this._api.getHASSManager().getHASS(),n=t?.states[e];if(!n)return;let a;if(yb(n,4096))a="media_stop";else{if(!yb(n,256))return;a="turn_off"}await t.callService("media_player",a,{entity_id:e})}async playLive(e,t){const n=this._api.getCameraManager().getStore().getCameraConfig(t);n&&("dashboard"===n.cast?.method?await this._playLiveDashboard(e,n):await this._playLiveStandard(e,t,n))}async _playLiveStandard(e,t,n){const a=this._api.getHASSManager().getHASS(),i=n?.camera_entity??null;if(!a||!i)return;const r=this._api.getCameraManager().getCameraMetadata(t)?.title??null,o=a.states[i]?.attributes?.entity_picture??null;await a.callService("media_player","play_media",{entity_id:e,media_content_id:`media-source://camera/${i}`,media_content_type:"application/vnd.apple.mpegurl",extra:{...r&&{title:r},...o&&{thumb:o}}})}async _playLiveDashboard(e,t){const n=this._api.getHASSManager().getHASS();if(!n)return;const a=t.cast?.dashboard;a?.dashboard_path&&a?.view_path?await n.callService("cast","show_lovelace_view",{entity_id:e,dashboard_path:a.dashboard_path,view_path:a.view_path}):this._api.getMessageManager().setMessageIfHigherPriority({type:"error",icon:"mdi:cast",message:V_("error.no_dashboard_or_view")})}async playMedia(e,t){const n=this._api.getHASSManager().getHASS();if(!n||!t)return;const a=t.getTitle(),i=t.getThumbnail();await n.callService("media_player","play_media",{entity_id:e,media_content_id:t.getContentID(),media_content_type:nx.isVideo(t)?"video":"image",extra:{...a&&{title:a},...i&&{thumb:i}}})}}class ix{constructor(e){this._message=null,this._api=e}getMessage(){return this._message}hasMessage(){return!!this._message}hasErrorMessage(){return"error"===this._message?.type}reset(){const e=this.hasMessage();this._message=null,e&&this._api.getCardElementManager().update()}resetType(e){this._message?.type===e&&this.reset()}setErrorIfHigherPriority(e,t){e&&"object"==typeof e&&"message"in e&&(Gg(e),this.setMessageIfHigherPriority({message:t?`${t}: ${e.message}`:e.message,type:"error",...e instanceof zs&&{context:e.context}}))}setMessageIfHigherPriority(e){const t=this._message?Is[this._message.type]:0,n=Is[e.type];return!(this._message&&ne.stop())),this._stream=void 0,this._setConditionState(),this._api.getCardElementManager().update()}getStream(){return this._stream??void 0}mute(){const e=this.isMuted();this._mute=!0,this._setMute(),this._setConditionState(),e||this._callListeners("muted")}async unmute(){if(!this.isSupported())return;const e=!this.isMuted(),t=()=>{this._mute=!1,this._setMute()};this.isConnected()||this.isForbidden()?this.isConnected()&&t():(t(),await this.connect()),this._setConditionState(),e||this._callListeners("unmuted")}isConnected(){return!!this._stream}isForbidden(){return null===this._stream}isMuted(){return!this._stream||this._stream.getTracks().every((e=>!e.enabled))}addListener(e){this._listeners.push(e)}removeListener(e){this._listeners=this._listeners.filter((t=>t!==e))}_callListeners(e){this._listeners.forEach((t=>t(e)))}_setMute(){this._stream?.getTracks().forEach((e=>{e.enabled=!this._mute})),this._startTimer(),this._api.getCardElementManager().update()}_startTimer(){const e=this._api.getConfigManager().getConfig()?.live.microphone;if(e?.always_connected)return;const t=e?.disconnect_seconds??0;t&&this._timer.start(t,(()=>{this.disconnect()}))}_setConditionState(){this._api.getConditionsManager().setState({microphone:{muted:this.isMuted(),connected:this.isConnected()}})}}class ox{constructor(e){this._shouldRun=!0,this.requestExecution=()=>{this._shouldRun=!0,this._api.getCardElementManager().update()},this.executeIfNecessary=async()=>{this._shouldRun&&(this._shouldRun=!1,await this._executeViewRelated(this._calculateIntent()),await this._executeNonViewRelated(this._calculateIntent()))},this._isViewAction=e=>{switch(e.frigate_card_action){case"clip":case"clips":case"diagnostics":case"image":case"live":case"recording":case"recordings":case"snapshot":case"snapshots":case"timeline":return!0}return!1},this._api=e}hasViewRelatedActionsToRun(){return!!this._calculateIntent().view&&this._shouldRun}async _executeViewRelated(e){e.view&&(e.view.default?await this._api.getViewManager().setViewDefaultWithNewQuery({params:{camera:e.view.camera},...e.view.substream&&{modifiers:[new sb(e.view.substream)]}}):await this._api.getViewManager().setViewByParametersWithNewQuery({params:{...e.view.view&&{view:e.view.view},...e.view.camera&&{camera:e.view.camera}},...e.view.substream&&{modifiers:[new sb(e.view.substream)]}}))}async _executeNonViewRelated(e){e.other&&await this._api.getActionsManager().executeActions(e.other)}_calculateIntent(){const e={};for(const t of this._getActions())this._isViewAction(t)?((e.view??={}).view=t.frigate_card_action,(e.view??={}).default=void 0):"default"===t.frigate_card_action?((e.view??={}).default=!0,(e.view??={}).view=void 0):"camera_select"===t.frigate_card_action?(e.view??={}).camera=t.camera:"live_substream_select"===t.frigate_card_action?(e.view??={}).substream=t.camera:(e.other??=[]).push(t);return e}_getActions(){const e=new URLSearchParams(window.location.search),t=[],n=new RegExp(/^frigate-card-action([.:](?\w+))?[.:](?\w+)/);for(const[a,i]of e.entries()){const e=a.match(n);if(!e||!e.groups)continue;const r=e.groups.cardID,o=e.groups.action;let s=null;switch(o){case"camera_select":case"live_substream_select":i&&(s=ff(o,i,{cardID:r}));break;case"camera_ui":case"clip":case"clips":case"default":case"diagnostics":case"download":case"expand":case"image":case"live":case"menu_toggle":case"recording":case"recordings":case"snapshot":case"snapshots":case"timeline":s=gf(o,{cardID:r});break;default:console.warn(`Frigate card received unknown card action in query string: ${o}`)}s&&t.push(s)}return t}}class sx{constructor(e){this._items=[],this._dynamicItems=[],this._api=e}addDynamicStatusBarItem(e){this._dynamicItems.includes(e)||this._dynamicItems.push(e),this._api.getCardElementManager().update()}removeDynamicStatusBarItem(e){this._dynamicItems=this._dynamicItems.filter((t=>!Dv(t,e))),this._api.getCardElementManager().update()}removeAllDynamicStatusBarItems(){this._dynamicItems=[],this._api.getCardElementManager().update()}calculateItems(e){const t=e?.view?e?.cameraManager?.getCameraMetadata(e?.view?.camera):null,n=t?.engineLogo??null,a=e?.view?.is("live")?t?.title??null:e?.view?.isViewerView()?e?.view.queryResults?.getSelectedResult()?.getTitle()??null:null,i=e?.mediaLoadedInfo?this._calculateResolution(e?.mediaLoadedInfo):null,r=e?.mediaLoadedInfo?.technology?.length?e?.mediaLoadedInfo.technology[0]:null;return[...a?[{type:"custom:frigate-card-status-bar-string",string:a,expand:!0,sufficient:!0,...e?.statusConfig?.items.title}]:[],...i?[{type:"custom:frigate-card-status-bar-string",string:i,...e?.statusConfig?.items.resolution}]:[],...r&&"webrtc"===r?[{type:"custom:frigate-card-status-bar-icon",icon:"mdi:webrtc",...e?.statusConfig?.items.technology}]:r?[{type:"custom:frigate-card-status-bar-string",string:r.toUpperCase(),...e?.statusConfig?.items.technology}]:[],...n?[{type:"custom:frigate-card-status-bar-image",image:n,...e?.statusConfig?.items.engine}]:[],...this._dynamicItems]}_matchesWidthHeight(e,t,n){const a=.99*t,i=1.01*t,r=.99*n,o=1.01*n,s=(e,t,n)=>e>=t&&e<=n;return!!e&&(s(e.width,a,i)&&s(e.height,r,o)||s(e.height,a,i)&&s(e.width,r,o))}_calculateResolution(e){return this._matchesWidthHeight(e,1920,1080)?"1080p":this._matchesWidthHeight(e,1280,720)?"720p":this._matchesWidthHeight(e,640,480)?"VGA":this._matchesWidthHeight(e,3840,2160)?"4K":this._matchesWidthHeight(e,720,480)?"480p":this._matchesWidthHeight(e,720,576)?"576p":this._matchesWidthHeight(e,7680,4320)?"8K":`${e.width}x${e.height}`}}class cx{constructor(e){this.setLightOrDarkMode=()=>{const e=this._api.getConfigManager().getConfig(),t="on"===e?.view.dark_mode||"auto"===e?.view.dark_mode&&(!this._api.getInteractionManager().hasInteraction()||!!this._api.getHASSManager().getHASS()?.themes.darkMode);of(this._api.getCardElementManager().getElement(),t,"dark")},this._api=e}setExpandedMode(){const e=this._api.getCardElementManager().getElement(),t=this._api.getViewManager().getView(),n=this._api.getMediaLoadedInfoManager().getLastKnown();e.style.setProperty("--frigate-card-expand-aspect-ratio",t?.isAnyMediaView()&&n?`${n.width} / ${n.height}`:"unset");const a=t?.isGrid();e.style.setProperty("--frigate-card-expand-width",!a&&t?.isAnyMediaView()?"none":"var(--frigate-card-expand-max-width)"),e.style.setProperty("--frigate-card-expand-height",!a&&t?.isAnyMediaView()?"none":"var(--frigate-card-expand-max-height)")}setMinMaxHeight(){const e=this._api.getConfigManager().getConfig();if(e){this._api.getCardElementManager().getElement().style.setProperty("--frigate-card-height",e.dimensions.height)}}setPerformance(){const e={box_shadow:"none",border_radius:"0px"},t=this._api.getCardElementManager().getElement(),n=this._api.getConfigManager().getCardWideConfig()?.performance,a=n?.style??{};for(const n of Object.keys(a)){const i=`--frigate-card-css-${n.replaceAll("_","-")}`;!1===a[n]?t.style.setProperty(i,e[n]):t.style.removeProperty(i)}}_isAspectRatioEnforced(e,t){const n=e.dimensions.aspect_ratio_mode;return!(this._api.getFullscreenManager().isInFullscreen()||this._api.getExpandManager().isExpanded()||"unconstrained"===n||"dynamic"===n&&(!t||t?.isAnyMediaView()||t?.is("timeline")||t?.is("diagnostics")))}getAspectRatioStyle(){const e=this._api.getConfigManager().getConfig(),t=this._api.getViewManager().getView();if(e){if(!this._isAspectRatioEnforced(e,t))return uf();const n=e.dimensions.aspect_ratio_mode,a=this._api.getMediaLoadedInfoManager().getLastKnown();return uf(a&&"dynamic"===n?{ratio:[a.width,a.height]}:{ratio:e.dimensions.aspect_ratio})}return uf({defaultStatic:!0})}}class lx{constructor(e){this._triggeredCameras=new Map,this._triggeredCameraTimers=new Map,this._throttledTriggerAction=Uw(this._triggerAction.bind(this),1e3,{trailing:!0}),this._api=e}getTriggeredCameraIDs(){return new Set(this._triggeredCameras.keys())}isTriggered(){return!!this._triggeredCameras.size}getMostRecentlyTriggeredCameraID(){const e=Ev([...this._triggeredCameras.entries()],(e=>e[1].getTime()),"desc");return e.length?e[0][0]:null}async handleCameraEvent(e){const t=this._api.getConfigManager().getConfig()?.view.triggers,n=this._api.getViewManager().getView()?.camera;if(!t||!n)return;const a=this._api.getCameraManager().getStore().getAllDependentCameras(n);t.filter_selected_camera&&!a.has(e.cameraID)||("end"!==e.type?(this._triggeredCameras.set(e.cameraID,new Date),this._setConditionStateIfNecessary(),await this._throttledTriggerAction(e)):this._startUntriggerTimer(e.cameraID))}_hasAllowableInteractionStateForAction(){const e=this._api.getConfigManager().getConfig()?.view.triggers,t=this._api.getInteractionManager().hasInteraction();return!!e&&("all"===e.actions.interaction_mode||"active"===e.actions.interaction_mode&&t||"inactive"===e.actions.interaction_mode&&!t)}async _triggerAction(e){const t=this._api.getConfigManager().getConfig()?.view.triggers.actions.trigger,n=this._api.getConfigManager().getConfig()?.view.default;("high"!==e.fidelity||e.snapshot||e.clip||"live"===t||"default"===t&&"live"===n)&&(this._hasAllowableInteractionStateForAction()&&("update"===t?await this._api.getViewManager().setViewByParametersWithNewQuery({queryExecutorOptions:{useCache:!1}}):"live"===t?await this._api.getViewManager().setViewByParametersWithNewQuery({params:{view:"live",camera:e.cameraID}}):"default"===t?await this._api.getViewManager().setViewDefaultWithNewQuery({params:{camera:e.cameraID}}):"high"===e.fidelity&&"media"===t&&await this._api.getViewManager().setViewByParametersWithNewQuery({params:{view:e.clip?"clip":"snapshot",camera:e.cameraID}})),this._api.getCardElementManager().update())}_setConditionStateIfNecessary(){const e=new Set(this._triggeredCameras.keys()),t=e.size?e:void 0;Dv(t,this._api.getConditionsManager().getState().triggered)||this._api.getConditionsManager().setState({triggered:t})}async _untriggerAction(e){const t=this._api.getConfigManager().getConfig()?.view.triggers.actions.untrigger;"default"===t&&this._hasAllowableInteractionStateForAction()&&await this._api.getViewManager().setViewDefaultWithNewQuery(),this._triggeredCameras.delete(e),this._deleteTimer(e),this._setConditionStateIfNecessary(),this._api.getCardElementManager().update()}_startUntriggerTimer(e){this._deleteTimer(e);const t=new xf;this._triggeredCameraTimers.set(e,t),t.start( +/* istanbul ignore next: the case of config being null here cannot be + reached, as there's no way to have the untrigger call happen without + a config. -- @preserve */ +this._api.getConfigManager().getConfig()?.view.triggers.untrigger_seconds??0,(async()=>{await this._untriggerAction(e)}))}_deleteTimer(e){this._triggeredCameraTimers.get(e)?.stop(),this._triggeredCameraTimers.delete(e)}}function dx(e,t){return t="function"==typeof t?t:void 0,e&&e.length?Hg(e,void 0,t):[]}class ux{constructor(e){this._queries=null,e&&(this._queries=e)}clone(){return u_(this)}getQueries(){return this._queries}setQueries(e){return this._queries=e,this}getQueryCameraIDs(){if(!this._queries)return null;const e=new Set;return this._queries.forEach((t=>[...t.cameraIDs].forEach((t=>e.add(t))))),e}setQueryCameraIDs(e){if(!this._queries)return this;const t=[];return this._queries.forEach((n=>t.push({...n,cameraIDs:Zg(e)}))),this._queries=dx(t,Dv),this}hasQueriesForCameraIDs(e){for(const t of e)if(!this._queries?.some((e=>e.cameraIDs.has(t))))return!1;return!0}}class hx extends ux{convertToClipsQueries(){for(const e of this._queries??[])delete e.hasSnapshot,e.hasClip=!0;return this}}class px extends ux{}class mx{static areEventQueries(e){return e instanceof hx}static areRecordingQueries(e){return e instanceof px}static areClipsQueries(e){return this.areEventQueries(e)&&!!e?.getQueries()?.every((e=>e.hasClip))}static areSnapshotQueries(e){return this.areEventQueries(e)&&!!e?.getQueries()?.every((e=>e.hasSnapshot))}static getQueriesType(e){return this.areEventQueries(e)?"event":this.areRecordingQueries(e)?"recording":null}static getMediaType(e){return this.areClipsQueries(e)?"clips":this.areSnapshotQueries(e)?"snapshots":this.areRecordingQueries(e)?"recordings":null}}const gx=(e,t,n)=>{const a={anyCapabilities:["clips","snapshots","recordings"]};switch(t){case"image":case"diagnostics":return e.getStore().getCameraIDs();case"live":case"clip":case"clips":case"snapshot":case"snapshots":case"recording":case"recordings":const i="clip"===t?"clips":"snapshot"===t?"snapshots":"recording"===t?"recordings":t;return n?e.getStore().getAllDependentCameras(n,i):e.getStore().getCameraIDsWithCapability(i);case"timeline":return e.getStore().getCameraIDsWithCapability(a);case"media":return n?e.getStore().getAllDependentCameras(n,a):e.getStore().getCameraIDsWithCapability(a)}},fx=(e,t)=>Ly({},e,t);class _x{constructor(e){this.view=e.view,this.camera=e.camera,this.query=e.query??null,this.queryResults=e.queryResults??null,this.context=e.context??null,this.displayMode=e.displayMode??null}clone(){return new _x({view:this.view,camera:this.camera,query:this.query?.clone()??null,queryResults:this.queryResults?.clone()??null,context:this.context,displayMode:this.displayMode})}evolve(e){return new _x({view:void 0!==e.view?e.view:this.view,camera:void 0!==e.camera?e.camera:this.camera,query:void 0!==e.query?e.query:this.query?.clone()??null,queryResults:void 0!==e.queryResults?e.queryResults:this.queryResults?.clone()??null,context:void 0!==e.context?e.context:this.context,displayMode:void 0!==e.displayMode?e.displayMode:this.displayMode})}mergeInContext(e){return this.context=fx(this.context,e),this}removeContext(e){return this.context&&delete this.context[e],this}removeContextProperty(e,t){const n=this.context?.[e];return n&&delete n[t],this}is(e){return this.view==e}isGalleryView(){return["clips","snapshots","recordings"].includes(this.view)}isAnyMediaView(){return this.isViewerView()||this.is("live")||this.is("image")}isViewerView(){return["media","clip","snapshot","recording"].includes(this.view)}supportsMultipleDisplayModes(){return this.isViewerView()||this.is("live")}getDefaultMediaType(){return["clip","clips"].includes(this.view)?"clips":["snapshot","snapshots"].includes(this.view)?"snapshots":["recording","recordings"].includes(this.view)?"recordings":null}isGrid(){return"grid"===this.displayMode}}const vx=(e,t)=>{t?.forEach((t=>t.modify(e)))};class yx extends zs{}class bx extends zs{}class wx{constructor(e){this._api=e}getViewDefault(e){const t=this._api.getConfigManager().getConfig();if(!t)return null;let n=null;const a=e?.params?.view??t.view.default;if(e?.params?.camera)n=e.params.camera;else{const i=[...gx(this._api.getCameraManager(),a)];if(!i.length)return null;if(e?.baseView?.camera&&t.view.default_cycle_camera){const t=i.indexOf(e.baseView.camera);n=i[t+1>=i.length?0:t+1]}else n=i[0]}return this.getViewByParameters({params:{...e?.params,view:a,camera:n},baseView:e?.baseView})}getViewByParameters(e){const t=this._api.getConfigManager().getConfig();if(!t)return null;let n=e?.params?.camera??e?.baseView?.camera??null,a=e?.params?.view??e?.baseView?.view??t.view.default;const i=this._api.getCameraManager().getStore().getCameraIDs();if(!n||!i.has(n)){n=gx(this._api.getCameraManager(),a).keys().next().value??null}if(!n){const e=[...this._api.getCameraManager().getStore().getCameras()].reduce(((e,[t,n])=>{const a=n.getCapabilities()?.getRawCapabilities();return a&&(e[t]=a),e}),{});throw new yx(V_("error.no_supported_cameras"),{view:a,cameras_capabilities:e})}if(!this.isViewSupportedByCamera(n,a)){if(!e?.failSafe||!this.isViewSupportedByCamera(n,Qs)){const e=this._api.getCameraManager().getStore().getCamera(n)?.getCapabilities()?.getRawCapabilities();throw new bx(V_("error.no_supported_camera"),{view:a,camera:n,...e&&{camera_capabilities:e}})}a=Qs}const r=e?.params?.displayMode??e?.baseView?.displayMode??this._getDefaultDisplayModeForView(a,t),o={...e?.params,view:a,camera:n,displayMode:r},s=e?.baseView?e.baseView.evolve(o):new _x(o);return vx(s,e?.modifiers),s}isViewSupportedByCamera(e,t){return!!gx(this._api.getCameraManager(),t,e).size}_getDefaultDisplayModeForView(e,t){let n=null;switch(e){case"media":case"clip":case"recording":case"snapshot":n=t.media_viewer.display?.mode??null;break;case"live":n=t.live.display?.mode??null}return n??"single"}}class xx{constructor(e,t){this._key=e,this._property=t}modify(e){e.removeContextProperty(this._key,this._property)}}class Cx{constructor(e){this._query=e?.query,this._queryResults=e?.queryResults}modify(e){void 0!==this._query&&(e.query=this._query),void 0!==this._queryResults&&(e.queryResults=this._queryResults)}}const Mx=(e,t,n)=>{let a;for(const[i,r]of e.entries()){const e=r.getStartTime(),o=r.getUsableEndTime();if(r.includesTime(t)&&e&&o){const t=o.getTime()-e.getTime();(!a||n&&a.cameraID!==n&&r.getCameraID()===n||t>a.duration&&(!n||a.cameraID!==n||r.getCameraID()===n))&&(a={index:i,duration:t,cameraID:r.getCameraID()})}}return a?a.index:null};class kx{constructor(e){this._results=e?.results??[],this._selectedIndex=this._getInitialSelectedIndex(e)}_getInitialSelectedIndex(e){return null!=e?.selectedIndex?e.selectedIndex:e?.results&&e.results.length?e?.selectApproach&&"last"!==e?.selectApproach?0:e.results.length-1:null}clone(){return new kx({results:this._results,selectedIndex:this._selectedIndex})}getResults(){return this._results}getSelectedIndex(){return this._selectedIndex}getResultsCount(){return this.getResults().length}hasResults(){return 0!==this.getResultsCount()}getResult(e){return void 0===e?null:this._results[e]}getSelectedResult(){const e=this.getSelectedIndex();return null!==e?this.getResult(e):null}hasSelectedResult(){return null!==this.getSelectedResult()}resetSelectedResult(){this._selectedIndex=null}selectIndex(e){(null===e||e>=0&&ee.getID()))),n=new Set(e._main.getResults()?.map((e=>e.getID())));return!(!t.size||!n.size||t.has(null)||n.has(null))&&((e,t)=>{for(const n of t)if(!e.has(n))return!1;return!0})(t,n)}getCameraIDs(){return new Set(this._cameras.keys())}getSlice(e){return e?this._cameras.get(e)??null:this._main}getResults(e){return this.getSlice(e)?.getResults()??null}getResultsCount(e){return this.getSlice(e)?.getResultsCount()??0}hasResults(e){return 0!==this.getSlice(e)?.getResultsCount()}getResult(e,t){return this.getSlice(t)?.getResult(e)??null}getSelectedIndex(e){return this.getSlice(e)?.getSelectedIndex()??null}getSelectedResult(e){return this.getSlice(e)?.getSelectedResult()??null}getMultipleSelectedResults(e){const t=[];if(!e||e.main){const e=this.getSelectedResult();e&&t.push(e)}const n=this._getCameraIDsFromCriteria(e);for(const e of n??[]){const n=this.getSelectedResult(e);n&&t.push(n)}return t}hasSelectedResult(e){return this.getSlice(e)?.hasSelectedResult()??!1}resetSelectedResult(e){return this.getSlice(e)?.resetSelectedResult(),this}getResultsTimestamp(){return this._resultsTimestamp}selectIndex(e,t){return this.getSlice(t)?.selectIndex(e),t||this.demoteMainSelectionToCameraSelection(),this}demoteMainSelectionToCameraSelection(){const e=this.getSelectedResult();if(e){const t=e.getCameraID();this.resetSelectedResult(t),this.selectResultIfFound((t=>t===e),{cameraID:t})}return this}promoteCameraSelectionToMainSelection(e){const t=this.getSelectedResult(e);return this.resetSelectedResult(),this.selectResultIfFound((e=>e===t)),this}_getCameraIDsFromCriteria(e){return e?.allCameras?this.getCameraIDs():e?.cameraID?new Set([e.cameraID]):null}selectResultIfFound(e,t){t&&!t?.main||(this._main.selectResultIfFound(e),this.demoteMainSelectionToCameraSelection());const n=this._getCameraIDsFromCriteria(t);for(const t of n??[])this.getSlice(t)?.selectResultIfFound(e);return this}selectBestResult(e,t){t&&!t.main||(this._main.selectBestResult(e),this.demoteMainSelectionToCameraSelection());const n=this._getCameraIDsFromCriteria(t);for(const t of n??[])this.getSlice(t)?.selectBestResult(e);return this}}class Ex{constructor(e){this._api=e}async executeDefaultEventQuery(e){const t=e?.eventsMediaType&&"all"!==e?.eventsMediaType?e.eventsMediaType:{anyCapabilities:["clips","snapshots"]},n=this._api.getCameraManager(),a=e?.cameraID?n.getStore().getAllDependentCameras(e.cameraID,t):n.getStore().getCameraIDsWithCapability(t);if(!a.size)return null;const i=n.generateDefaultEventQueries(a,{limit:this._getChunkLimit(),..."clips"===e?.eventsMediaType&&{hasClip:!0},..."snapshots"===e?.eventsMediaType&&{hasSnapshot:!0}});if(!i)return null;const r=new hx(i),o=await this.execute(r,e?.executorOptions);return o?{query:r,queryResults:o}:null}async executeDefaultRecordingQuery(e){const t=this._api.getCameraManager(),n=e?.cameraID?t.getStore().getAllDependentCameras(e.cameraID,"recordings"):t.getStore().getCameraIDsWithCapability("recordings");if(!n.size)return null;const a=t.generateDefaultRecordingQueries(n,{limit:this._getChunkLimit()});if(!a)return null;const i=new px(a),r=await this.execute(i,e?.executorOptions);return r?{query:i,queryResults:r}:null}async execute(e,t){const n=e.getQueries();if(!n)return null;const a=await this._api.getCameraManager().executeMediaQueries(n,{useCache:t?.useCache});if(!a)return null;const i=new Sx({results:a});return t?.rejectResults?.(i)?null:(t?.selectResult?.id?i.selectBestResult((e=>e.findIndex((e=>e.getID()===t.selectResult?.id)))):t?.selectResult?.func?i.selectResultIfFound(t.selectResult.func):t?.selectResult?.time&&i.selectBestResult((e=>Mx(e,t.selectResult?.time?.time,t.selectResult?.time?.favorCameraID))),i)}_getChunkLimit(){const e=this._api.getConfigManager().getCardWideConfig();return e?.performance?.features.media_chunk_size??50}}class $x{constructor(e,t){this._api=e,this._executor=t??new Ex(e)}async getExistingQueryModifiers(e,t){return e.query?[new Cx({queryResults:await this._executor.execute(e.query,t)})]:[]}async getNewQueryModifiers(e,t){return await this._executeNewQuery(e,{useCache:!1,...t})}async _executeNewQuery(e,t){const n=this._api.getConfigManager().getConfig();if(!n)return null;const a=e?.getDefaultMediaType(),i=[],r=async n=>{ +/* istanbul ignore if: this path cannot be reached -- @preserve */ +if(!n)return[];const a="recordings"===n?await this._executor.executeDefaultRecordingQuery({...!e.isGrid()&&{cameraID:e.camera},executorOptions:t}):"clips"===n||"snapshots"===n||"all"===n?await this._executor.executeDefaultEventQuery({...!e.isGrid()&&{cameraID:e.camera},eventsMediaType:n,executorOptions:t}):/* istanbul ignore next -- @preserve */ +null;return a?[new Cx(a)]:[]};switch(e.view){case"live":"none"!==n.live.controls.thumbnails.mode&&i.push(...await r("recordings"===n.live.controls.thumbnails.media_type?"recordings":n.live.controls.thumbnails.events_media_type));break;case"media":i.push(...await r("clips"));break;case"clips":case"snapshots":case"recordings":i.push(...await r(a));break;case"clip":case"snapshot":case"recording":"none"!==n.media_viewer.controls.thumbnails.mode&&i.push(...await r(a))}return i.push(...this._getTimelineWindowViewModifier(e)),i.push(...this._getSeekTimeModifier(t?.selectResult?.time?.time)),i}_getTimelineWindowViewModifier(e){if(e.is("live")){const e=new Date,t=this._api.getConfigManager().getConfig()?.live; +/* istanbul ignore if: this if branch cannot be reached as if the config is + empty this function is never called -- @preserve */ +return t?[new Gy({timeline:{window:{start:Qu(e,{seconds:t.controls.timeline.window_seconds}),end:e}}})]:[]}return[new xx("timeline","window")]}_getSeekTimeModifier(e){return e?[new Gy({mediaViewer:{seek:e}})]:[new xx("mediaViewer","seek")]}}class Ax{constructor(e,t){this._view=null,this._epoch=this._createEpoch(),this._loadingIndex=1,this.setViewDefault=e=>this._setViewGeneric(this._viewFactory.getViewDefault.bind(this._viewFactory),e),this.setViewByParameters=e=>this._setViewGeneric(this._viewFactory.getViewByParameters.bind(this._viewFactory),e),this.setViewDefaultWithNewQuery=async e=>await this._setViewThenModifyAsync(this._viewFactory.getViewDefault.bind(this._viewFactory),this._viewQueryExecutor.getNewQueryModifiers.bind(this._viewQueryExecutor),e),this.setViewByParametersWithNewQuery=async e=>await this._setViewThenModifyAsync(this._viewFactory.getViewByParameters.bind(this._viewFactory),this._viewQueryExecutor.getNewQueryModifiers.bind(this._viewQueryExecutor),e),this.setViewByParametersWithExistingQuery=async e=>await this._setViewThenModifyAsync(this._viewFactory.getViewByParameters.bind(this._viewFactory),this._viewQueryExecutor.getExistingQueryModifiers.bind(this._viewQueryExecutor),e),this.initialize=async()=>(this._api.getQueryStringManager().hasViewRelatedActionsToRun()||this.setViewDefaultWithNewQuery({failSafe:!0}),!0),this._api=e,this._viewFactory=t?.viewFactory??new wx(e),this._viewQueryExecutor=t?.viewQueryExecutor??new $x(e)}getEpoch(){return this._epoch}_createEpoch(e){return{manager:this,...e&&{oldView:e}}}getView(){return this._view}hasView(){return!!this.getView()}reset(){this._view&&this._setView(null)}_setViewGeneric(e,t){let n=null;try{n=e({baseView:this._view,...t})}catch(e){this._api.getMessageManager().setErrorIfHigherPriority(e)}n&&this._setView(n)}_markViewLoadingQuery(e,t){return e.mergeInContext({loading:{query:t}})}_markViewAsNotLoadingQuery(e){return e.removeContextProperty("loading","query")}async _setViewThenModifyAsync(e,t,n){let a=null;try{a=e({baseView:this._view,...n,params:{query:null,queryResults:null,...n?.params}})}catch(e){this._api.getMessageManager().setErrorIfHigherPriority(e)}if(!a)return;if(this._view&&this._shouldAdoptQueryAndResults(a))return a.query=this._view.query,a.queryResults=this._view.queryResults,this._markViewAsNotLoadingQuery(a),void this._setView(a);const i=this._loadingIndex++;this._markViewLoadingQuery(a,i),this._setView(a);let r=null,o=null;try{r=await t(a,n?.queryExecutorOptions)}catch(e){o=e}if(this._view&&this.hasMajorMediaChange(this._view,a))return void(this._view.context?.loading?.query===i&&this._setView(this._markViewAsNotLoadingQuery(this._view.clone())));if(o)return void this._api.getMessageManager().setErrorIfHigherPriority(o); +/* istanbul ignore if: the if path cannot be reached as the view is set + above -- @preserve */if(!this._view)return;const s=this._view.clone();this._view.context?.loading?.query===i&&this._markViewAsNotLoadingQuery(s),vx(s,r),this._setView(s)}_shouldAdoptQueryAndResults(e){const t=this._view?.isViewerView()&&e?.isGalleryView(),n=e?.getDefaultMediaType(),a=mx.getMediaType(this._view?.query)===n;return!!t&&a}setViewWithMergedContext(e){if(this._view)return this._setView(this._view?.clone().mergeInContext(e))}isViewSupportedByCamera(e,t){return!!gx(this._api.getCameraManager(),t,e).size}hasMajorMediaChange(e,t){const n=t??this._view;return!!e!=!!n||e?.view!==n?.view||e?.camera!==n?.camera||"live"===n?.view&&e&&My(e)!==My(n)||"live"!==n?.view&&e?.queryResults!==n?.queryResults}_setView(e){const t=this._view;B_(this._api.getConfigManager().getCardWideConfig(),"Frigate Card view change: ",e),this._view=e,this._epoch=this._createEpoch(t),this.hasMajorMediaChange(t)&&this._api.getMediaLoadedInfoManager().clear(),t?.view!==e?.view&&this._api.getCardElementManager().scrollReset(),this._api.getMessageManager().reset(),this._api.getStyleManager().setExpandedMode(),this._api.getConditionsManager()?.setState({view:e?.view,camera:e?.camera,displayMode:e?.displayMode??void 0}),this._api.getCardElementManager().update()}}class zx{constructor(e,t,n,a){this._deviceRegistryManager=new oy(new iy((e=>e.id))),this._entityRegistryManager=new ly(new iy((e=>e.entity_id))),this._resolvedMediaCache=new uy,this._actionsManager=new gb(this),this._automationsManager=new fb(this),this._cameraManager=new ay(this),this._cameraURLManager=new _b(this),this._configManager=new kw(this),this._defaultManager=new Sw(this),this._downloadManager=new zw(this),this._expandManager=new Iw(this),this._fullscreenManager=new Pw(this),this._hassManager=new Nw(this),this._initializationManager=new Qb(this),this._interactionManager=new Ww(this),this._keyboardStateManager=new Zw(this),this._mediaLoadedInfoManager=new tx(this),this._mediaPlayerManager=new ax(this),this._messageManager=new ix(this),this._microphoneManager=new rx(this),this._queryStringManager=new ox(this),this._statusBarItemManager=new sx(this),this._styleManager=new cx(this),this._triggersManager=new lx(this),this._viewManager=new Ax(this),e.addController(this),this._conditionsManager=new bw(this,a),this._cardElementManager=new Gb(this,e,t,n)}getActionsManager(){return this._actionsManager}getAutomationsManager(){return this._automationsManager}getCameraManager(){return this._cameraManager}getCameraURLManager(){return this._cameraURLManager}getCardElementManager(){return this._cardElementManager}getConditionsManager(){return this._conditionsManager}static async getConfigElement(){return await import("./editor-837da8b4.js"),document.createElement("frigate-card-editor")}getConfigManager(){return this._configManager}getDefaultManager(){return this._defaultManager}getDeviceRegistryManager(){return this._deviceRegistryManager}getDownloadManager(){return this._downloadManager}getEntityRegistryManager(){return this._entityRegistryManager}getExpandManager(){return this._expandManager}getFullscreenManager(){return this._fullscreenManager}getHASSManager(){return this._hassManager}getInitializationManager(){return this._initializationManager}getInteractionManager(){return this._interactionManager}getKeyboardStateManager(){return this._keyboardStateManager}getMediaLoadedInfoManager(){return this._mediaLoadedInfoManager}getMediaPlayerManager(){return this._mediaPlayerManager}getMessageManager(){return this._messageManager}getMicrophoneManager(){return this._microphoneManager}getQueryStringManager(){return this._queryStringManager}getResolvedMediaCache(){return this._resolvedMediaCache}getStatusBarItemManager(){return this._statusBarItemManager}static getStubConfig(e){return{cameras:[{camera_entity:e.find((e=>e.startsWith("camera.")))??"camera.demo"}]}}getStyleManager(){return this._styleManager}getTriggersManager(){return this._triggersManager}getViewManager(){return this._viewManager}hostConnected(){this.getCardElementManager().elementConnected()}hostDisconnected(){this.getCardElementManager().elementDisconnected()}}class Ix{constructor(){this._dynamicMenuButtons=[]}addDynamicMenuButton(e){this._dynamicMenuButtons.includes(e)||this._dynamicMenuButtons.push(e)}removeDynamicMenuButton(e){this._dynamicMenuButtons=this._dynamicMenuButtons.filter((t=>t!=e))}calculateButtons(e,t,n,a){return[this._getDefaultButton(t),this._getCamerasButton(t,n,a?.view),this._getSubstreamsButton(t,n,a?.view),this._getLiveButton(t,a?.view,a?.viewManager),this._getClipsButton(t,a?.view,a?.viewManager),this._getSnapshotsButton(t,a?.view,a?.viewManager),this._getRecordingsButton(t,a?.view,a?.viewManager),this._getImageButton(t,a?.view,a?.viewManager),this._getTimelineButton(t,a?.view,a?.viewManager),this._getDownloadButton(t,n,a?.view),this._getCameraUIButton(t,a?.showCameraUIButton),this._getMicrophoneButton(t,a?.microphoneManager,a?.currentMediaLoadedInfo),this._getExpandButton(t,a?.inExpandedMode),this._getFullscreenButton(t,a?.inFullscreenMode),this._getCastButton(e,t,n,a?.view,a?.mediaPlayerController),this._getPlayPauseButton(t,a?.currentMediaLoadedInfo),this._getMuteUnmuteButton(t,a?.currentMediaLoadedInfo),this._getScreenshotButton(t,a?.currentMediaLoadedInfo),this._getDisplayModeButton(t,n,a?.view),this._getPTZControlsButton(t,n,a?.view),this._getPTZHomeButton(t,n,a?.view),...this._dynamicMenuButtons.map((e=>({style:this._getStyleFromActions(t,e,a),...e})))].filter(sf)}_getDefaultButton(e){return{icon:"frigate",...e.menu.buttons.frigate,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.frigate"),permanent:!0,tap_action:"hidden"===e.menu?.style?gf("menu_toggle"):gf("default"),hold_action:gf("diagnostics")}}_getCamerasButton(e,t,n){const a=t.getStore().getCameraIDsWithCapability("menu");if(a.size>1){const i=Array.from(t.getStore().getCameraConfigEntries(a),(([e,a])=>{const i=ff("camera_select",e),r=t.getCameraMetadata(e);return{enabled:!0,icon:r?.icon,entity:a.camera_entity,state_color:!0,title:r?.title,selected:n?.camera===e,...i&&{tap_action:i}}}));return{icon:"mdi:video-switch",...e.menu.buttons.cameras,type:"custom:frigate-card-menu-submenu",title:V_("config.menu.buttons.cameras"),items:i}}return null}_getSubstreamsButton(e,t,n){if(!n)return null;const a=t.getStore().getAllDependentCameras(n.camera,"substream");if(a.size&&n.is("live")){const i=[...a].filter((e=>e!==n.camera)),r=[n.camera,...i],o=My(n);if(2===r.length)return{icon:"mdi:video-input-component",style:o!==n.camera?this._getEmphasizedStyle():{},title:V_("config.menu.buttons.substreams"),...e.menu.buttons.substreams,type:"custom:frigate-card-menu-icon",tap_action:gf(ky(n)?"live_substream_off":"live_substream_on")};if(r.length>2){const a=Array.from(r,(e=>{const n=ff("live_substream_select",e),a=t.getCameraMetadata(e)??void 0,i=t.getStore().getCameraConfig(e);return{enabled:!0,icon:a?.icon,entity:i?.camera_entity,state_color:!0,title:a?.title,selected:o===e,...n&&{tap_action:n}}}));return{icon:"mdi:video-input-component",title:V_("config.menu.buttons.substreams"),style:o!==n.camera?this._getEmphasizedStyle():{},...e.menu.buttons.substreams,type:"custom:frigate-card-menu-submenu",items:a}}}return null}_getLiveButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"live")?{icon:"mdi:cctv",...e.menu.buttons.live,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.live"),style:t.is("live")?this._getEmphasizedStyle():{},tap_action:gf("live")}:null}_getClipsButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"clips")?{icon:"mdi:filmstrip",...e.menu.buttons.clips,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.clips"),style:t?.is("clips")?this._getEmphasizedStyle():{},tap_action:gf("clips"),hold_action:gf("clip")}:null}_getSnapshotsButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"snapshots")?{icon:"mdi:camera",...e.menu.buttons.snapshots,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.snapshots"),style:t?.is("snapshots")?this._getEmphasizedStyle():{},tap_action:gf("snapshots"),hold_action:gf("snapshot")}:null}_getRecordingsButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"recordings")?{icon:"mdi:album",...e.menu.buttons.recordings,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.recordings"),style:t.is("recordings")?this._getEmphasizedStyle():{},tap_action:gf("recordings"),hold_action:gf("recording")}:null}_getImageButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"image")?{icon:"mdi:image",...e.menu.buttons.image,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.image"),style:t?.is("image")?this._getEmphasizedStyle():{},tap_action:gf("image")}:null}_getTimelineButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"timeline")?{icon:"mdi:chart-gantt",...e.menu.buttons.timeline,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.timeline"),style:t.is("timeline")?this._getEmphasizedStyle():{},tap_action:gf("timeline")}:null}_getDownloadButton(e,t,n){const a=n?.queryResults?.getSelectedResult(),i=a?t?.getMediaCapabilities(a):null;return n?.isViewerView()&&i?.canDownload&&!vb()?{icon:"mdi:download",...e.menu.buttons.download,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.download"),tap_action:gf("download")}:null}_getCameraUIButton(e,t){return t?{icon:"mdi:web",...e.menu.buttons.camera_ui,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.camera_ui"),tap_action:gf("camera_ui")}:null}_getMicrophoneButton(e,t,n){if(t&&n?.capabilities?.supports2WayAudio){const n=t.isForbidden()||!t.isSupported(),a=t.isMuted(),i=e.menu.buttons.microphone.type;return{icon:n?"mdi:microphone-message-off":a?"mdi:microphone-off":"mdi:microphone",...e.menu.buttons.microphone,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.microphone"),style:n||a?{}:this._getEmphasizedStyle(!0),...!n&&"momentary"===i&&{start_tap_action:gf("microphone_unmute"),end_tap_action:gf("microphone_mute")},...!n&&"toggle"===i&&{tap_action:gf(a?"microphone_unmute":"microphone_mute")}}}return null}_getExpandButton(e,t){return{icon:t?"mdi:arrow-collapse-all":"mdi:arrow-expand-all",...e.menu.buttons.expand,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.expand"),tap_action:gf("expand"),style:t?this._getEmphasizedStyle():{}}}_getFullscreenButton(e,t){return vb()?null:{icon:t?"mdi:fullscreen-exit":"mdi:fullscreen",...e.menu.buttons.fullscreen,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.fullscreen"),tap_action:gf("fullscreen"),style:t?this._getEmphasizedStyle():{}}}_getCastButton(e,t,n,a,i){if(!a)return null;const r=n.getStore().getCameraConfig(a.camera);if(i?.hasMediaPlayers()&&(a.isViewerView()||a.is("live")&&r?.camera_entity)){const n=i.getMediaPlayers().map((t=>{const n=Nb(e,t)||t,a=e.states[t],i=_f(t,"play"),r=_f(t,"stop"),o=!a||"unavailable"===a.state;return{enabled:!0,selected:!1,icon:Fb(e,t),entity:t,state_color:!1,title:n,disabled:o,...!o&&i&&{tap_action:i},...!o&&r&&{hold_action:r}}}));return{icon:"mdi:cast",...t.menu.buttons.media_player,type:"custom:frigate-card-menu-submenu",title:V_("config.menu.buttons.media_player"),items:n}}return null}_getPlayPauseButton(e,t){if(t&&t.player&&t.capabilities?.supportsPause){const n=t.player.isPaused();return{icon:n?"mdi:play":"mdi:pause",...e.menu.buttons.play,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.play"),tap_action:gf(n?"play":"pause")}}return null}_getMuteUnmuteButton(e,t){if(t&&t.player&&t?.capabilities?.hasAudio){const n=t.player.isMuted();return{icon:n?"mdi:volume-off":"mdi:volume-high",...e.menu.buttons.mute,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.mute"),tap_action:gf(n?"unmute":"mute")}}return null}_getScreenshotButton(e,t){return t&&t.player?{icon:"mdi:monitor-screenshot",...e.menu.buttons.screenshot,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.screenshot"),tap_action:gf("screenshot")}:null}_getDisplayModeButton(e,t,n){const a=n?gx(t,n.view):null;if(n?.supportsMultipleDisplayModes()&&a&&a.size>1){const t=n.isGrid();return{icon:t?"mdi:grid-off":"mdi:grid",...e.menu.buttons.display_mode,style:t?this._getEmphasizedStyle():{},type:"custom:frigate-card-menu-icon",title:V_(t?"display_modes.single":"display_modes.grid"),tap_action:(i=t?"single":"grid",{action:"fire-dom-event",frigate_card_action:"display_mode_select",display_mode:i,...r?.cardID&&{card_id:r.cardID}})}}var i,r;return null}_getPTZControlsButton(e,t,n){const a=n?.is("live")?e.live.controls.ptz:n?.isViewerView()?e.media_viewer.controls.ptz:null;if(!n||!a||"off"===a.mode)return null;const i=Ry(n,{cameraManager:t,..."auto"===a.mode&&{type:"ptz"}});if(i){const t=!1!==n.context?.ptzControls?.enabled&&("on"===a.mode||"auto"===a.mode&&"ptz"===i.type);return{icon:"mdi:pan",...e.menu.buttons.ptz_controls,style:t?this._getEmphasizedStyle():{},type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.ptz_controls"),tap_action:(r=!t,{action:"fire-dom-event",frigate_card_action:"ptz_controls",enabled:r,...o?.cardID&&{card_id:o.cardID}})}}var r,o;return null}_getPTZHomeButton(e,t,n){const a=n?Ry(n,{cameraManager:t}):null;return!a||(("digital"===a.type&&n?.context?.zoom?.[a.targetID]?.observed?.isDefault)??1)?null:{icon:"mdi:home",...e.menu.buttons.ptz_home,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.ptz_home"),tap_action:vf({targetID:a.targetID})}}_getEmphasizedStyle(e){return e?{animation:"pulse 3s infinite",color:"var(--error-color, white)"}:{color:"var(--primary-color, white)"}}_getStyleFromActions(e,t,n){for(const a of[t.tap_action,t.double_tap_action,t.hold_action,t.start_tap_action,t.end_tap_action]){const t=Array.isArray(a)?a:[a];for(const a of t){if(!a||"fire-dom-event"!==a.action||!("frigate_card_action"in a))continue;const t=a;if(Zs.some((e=>e===t.frigate_card_action&&n?.view?.is(t.frigate_card_action)))||"default"===t.frigate_card_action&&n?.view?.is(e.view.default)||"fullscreen"===t.frigate_card_action&&n?.inFullscreenMode||"camera_select"===t.frigate_card_action&&n?.view?.camera===t.camera)return this._getEmphasizedStyle()}}return{}}} +/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */ +function Tx(e){return null==e}var jx=function(e,t){var n,a="";for(n=0;ns&&(t=a-s+(r=" ... ").length),n-a>s&&(n=a+s-(o=" ...").length),{str:r+e.slice(t,n).replace(/\t/g,"→")+o,pos:a-t+r.length}}function Nx(e,t){return Ox.repeat(" ",t-e.length)+e}var Fx=function(e,t){if(t=Object.create(t||null),!e.buffer)return null;t.maxLength||(t.maxLength=79),"number"!=typeof t.indent&&(t.indent=1),"number"!=typeof t.linesBefore&&(t.linesBefore=3),"number"!=typeof t.linesAfter&&(t.linesAfter=2);for(var n,a=/\r?\n|\r|\0/g,i=[0],r=[],o=-1;n=a.exec(e.buffer);)r.push(n.index),i.push(n.index+n[0].length),e.position<=n.index&&o<0&&(o=i.length-2);o<0&&(o=i.length-1);var s,c,l="",d=Math.min(e.line+t.linesAfter,r.length).toString().length,u=t.maxLength-(t.indent+d+3);for(s=1;s<=t.linesBefore&&!(o-s<0);s++)c=Lx(e.buffer,i[o-s],r[o-s],e.position-(i[o]-i[o-s]),u),l=Ox.repeat(" ",t.indent)+Nx((e.line-s+1).toString(),d)+" | "+c.str+"\n"+l;for(c=Lx(e.buffer,i[o],r[o],e.position,u),l+=Ox.repeat(" ",t.indent)+Nx((e.line+1).toString(),d)+" | "+c.str+"\n",l+=Ox.repeat("-",t.indent+d+3+c.pos)+"^\n",s=1;s<=t.linesAfter&&!(o+s>=r.length);s++)c=Lx(e.buffer,i[o+s],r[o+s],e.position-(i[o]-i[o+s]),u),l+=Ox.repeat(" ",t.indent)+Nx((e.line+s+1).toString(),d)+" | "+c.str+"\n";return l.replace(/\n$/,"")},Vx=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],Hx=["scalar","sequence","mapping"];var Bx=function(e,t){if(t=t||{},Object.keys(t).forEach((function(t){if(-1===Vx.indexOf(t))throw new Px('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.options=t,this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.representName=t.representName||null,this.defaultStyle=t.defaultStyle||null,this.multi=t.multi||!1,this.styleAliases=function(e){var t={};return null!==e&&Object.keys(e).forEach((function(n){e[n].forEach((function(e){t[String(e)]=n}))})),t}(t.styleAliases||null),-1===Hx.indexOf(this.kind))throw new Px('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')};function qx(e,t){var n=[];return e[t].forEach((function(e){var t=n.length;n.forEach((function(n,a){n.tag===e.tag&&n.kind===e.kind&&n.multi===e.multi&&(t=a)})),n[t]=e})),n}function Ux(e){return this.extend(e)}Ux.prototype.extend=function(e){var t=[],n=[];if(e instanceof Bx)n.push(e);else if(Array.isArray(e))n=n.concat(e);else{if(!e||!Array.isArray(e.implicit)&&!Array.isArray(e.explicit))throw new Px("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");e.implicit&&(t=t.concat(e.implicit)),e.explicit&&(n=n.concat(e.explicit))}t.forEach((function(e){if(!(e instanceof Bx))throw new Px("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(e.loadKind&&"scalar"!==e.loadKind)throw new Px("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(e.multi)throw new Px("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")})),n.forEach((function(e){if(!(e instanceof Bx))throw new Px("Specified list of YAML types (or a single Type object) contains a non-Type object.")}));var a=Object.create(Ux.prototype);return a.implicit=(this.implicit||[]).concat(t),a.explicit=(this.explicit||[]).concat(n),a.compiledImplicit=qx(a,"implicit"),a.compiledExplicit=qx(a,"explicit"),a.compiledTypeMap=function(){var e,t,n={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function a(e){e.multi?(n.multi[e.kind].push(e),n.multi.fallback.push(e)):n[e.kind][e.tag]=n.fallback[e.tag]=e}for(e=0,t=arguments.length;e=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),aC=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var iC=/^[-+]?[0-9]+e/;var rC=new Bx("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!aC.test(e)||"_"===e[e.length-1])},construct:function(e){var t,n;return n="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:n*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||Ox.isNegativeZero(e))},represent:function(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(Ox.isNegativeZero(e))return"-0.0";return n=e.toString(10),iC.test(n)?n.replace("e",".e"):n},defaultStyle:"lowercase"}),oC=Yx.extend({implicit:[Kx,Xx,nC,rC]}),sC=oC,cC=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),lC=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");var dC=new Bx("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==cC.exec(e)||null!==lC.exec(e))},construct:function(e){var t,n,a,i,r,o,s,c,l=0,d=null;if(null===(t=cC.exec(e))&&(t=lC.exec(e)),null===t)throw new Error("Date resolve error");if(n=+t[1],a=+t[2]-1,i=+t[3],!t[4])return new Date(Date.UTC(n,a,i));if(r=+t[4],o=+t[5],s=+t[6],t[7]){for(l=t[7].slice(0,3);l.length<3;)l+="0";l=+l}return t[9]&&(d=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(d=-d)),c=new Date(Date.UTC(n,a,i,r,o,s,l)),d&&c.setTime(c.getTime()-d),c},instanceOf:Date,represent:function(e){return e.toISOString()}});var uC=new Bx("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}}),hC="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";var pC=new Bx("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,a=0,i=e.length,r=hC;for(n=0;n64)){if(t<0)return!1;a+=6}return a%8==0},construct:function(e){var t,n,a=e.replace(/[\r\n=]/g,""),i=a.length,r=hC,o=0,s=[];for(t=0;t>16&255),s.push(o>>8&255),s.push(255&o)),o=o<<6|r.indexOf(a.charAt(t));return 0===(n=i%4*6)?(s.push(o>>16&255),s.push(o>>8&255),s.push(255&o)):18===n?(s.push(o>>10&255),s.push(o>>2&255)):12===n&&s.push(o>>4&255),new Uint8Array(s)},predicate:function(e){return"[object Uint8Array]"===Object.prototype.toString.call(e)},represent:function(e){var t,n,a="",i=0,r=e.length,o=hC;for(t=0;t>18&63],a+=o[i>>12&63],a+=o[i>>6&63],a+=o[63&i]),i=(i<<8)+e[t];return 0===(n=r%3)?(a+=o[i>>18&63],a+=o[i>>12&63],a+=o[i>>6&63],a+=o[63&i]):2===n?(a+=o[i>>10&63],a+=o[i>>4&63],a+=o[i<<2&63],a+=o[64]):1===n&&(a+=o[i>>2&63],a+=o[i<<4&63],a+=o[64],a+=o[64]),a}}),mC=Object.prototype.hasOwnProperty,gC=Object.prototype.toString;var fC=new Bx("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,n,a,i,r,o=[],s=e;for(t=0,n=s.length;t>10),56320+(e-65536&1023))}for(var UC=new Array(256),WC=new Array(256),ZC=0;ZC<256;ZC++)UC[ZC]=BC(ZC)?1:0,WC[ZC]=BC(ZC);function QC(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||wC,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function GC(e,t){var n={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return n.snippet=Fx(n),new Px(t,n)}function YC(e,t){throw GC(e,t)}function KC(e,t){e.onWarning&&e.onWarning.call(null,GC(e,t))}var XC={YAML:function(e,t,n){var a,i,r;null!==e.version&&YC(e,"duplication of %YAML directive"),1!==n.length&&YC(e,"YAML directive accepts exactly one argument"),null===(a=/^([0-9]+)\.([0-9]+)$/.exec(n[0]))&&YC(e,"ill-formed argument of the YAML directive"),i=parseInt(a[1],10),r=parseInt(a[2],10),1!==i&&YC(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=r<2,1!==r&&2!==r&&KC(e,"unsupported YAML version of the document")},TAG:function(e,t,n){var a,i;2!==n.length&&YC(e,"TAG directive accepts exactly two arguments"),a=n[0],i=n[1],jC.test(a)||YC(e,"ill-formed tag handle (first argument) of the TAG directive"),xC.call(e.tagMap,a)&&YC(e,'there is a previously declared suffix for "'+a+'" tag handle'),OC.test(i)||YC(e,"ill-formed tag prefix (second argument) of the TAG directive");try{i=decodeURIComponent(i)}catch(t){YC(e,"tag prefix is malformed: "+i)}e.tagMap[a]=i}};function JC(e,t,n,a){var i,r,o,s;if(t1&&(e.result+=Ox.repeat("\n",t-1))}function oM(e,t){var n,a,i=e.tag,r=e.anchor,o=[],s=!1;if(-1!==e.firstTabInLine)return!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=o),a=e.input.charCodeAt(e.position);0!==a&&(-1!==e.firstTabInLine&&(e.position=e.firstTabInLine,YC(e,"tab characters must not be used in indentation")),45===a)&&LC(e.input.charCodeAt(e.position+1));)if(s=!0,e.position++,aM(e,!0,-1)&&e.lineIndent<=t)o.push(null),a=e.input.charCodeAt(e.position);else if(n=e.line,lM(e,t,kC,!1,!0),o.push(e.result),aM(e,!0,-1),a=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&0!==a)YC(e,"bad indentation of a sequence entry");else if(e.lineIndentt?m=1:e.lineIndent===t?m=0:e.lineIndentt?m=1:e.lineIndent===t?m=0:e.lineIndentt)&&(_&&(o=e.line,s=e.lineStart,c=e.position),lM(e,t,SC,!0,i)&&(_?g=e.result:f=e.result),_||(tM(e,h,p,m,g,f,o,s,c),m=g=f=null),aM(e,!0,-1),l=e.input.charCodeAt(e.position)),(e.line===r||e.lineIndent>t)&&0!==l)YC(e,"bad indentation of a mapping entry");else if(e.lineIndent=0))break;0===i?YC(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):c?YC(e,"repeat of an indentation width identifier"):(l=t+i-1,c=!0)}if(PC(r)){do{r=e.input.charCodeAt(++e.position)}while(PC(r));if(35===r)do{r=e.input.charCodeAt(++e.position)}while(!RC(r)&&0!==r)}for(;0!==r;){for(nM(e),e.lineIndent=0,r=e.input.charCodeAt(e.position);(!c||e.lineIndentl&&(l=e.lineIndent),RC(r))d++;else{if(e.lineIndent0){for(i=o,r=0;i>0;i--)(o=FC(s=e.input.charCodeAt(++e.position)))>=0?r=(r<<4)+o:YC(e,"expected hexadecimal character");e.result+=qC(r),e.position++}else YC(e,"unknown escape sequence");n=a=e.position}else RC(s)?(JC(e,n,a,!0),rM(e,aM(e,!1,t)),n=a=e.position):e.position===e.lineStart&&iM(e)?YC(e,"unexpected end of the document within a double quoted scalar"):(e.position++,a=e.position)}YC(e,"unexpected end of the stream within a double quoted scalar")}(e,h)?f=!0:!function(e){var t,n,a;if(42!==(a=e.input.charCodeAt(e.position)))return!1;for(a=e.input.charCodeAt(++e.position),t=e.position;0!==a&&!LC(a)&&!NC(a);)a=e.input.charCodeAt(++e.position);return e.position===t&&YC(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),xC.call(e.anchorMap,n)||YC(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],aM(e,!0,-1),!0}(e)?function(e,t,n){var a,i,r,o,s,c,l,d,u=e.kind,h=e.result;if(LC(d=e.input.charCodeAt(e.position))||NC(d)||35===d||38===d||42===d||33===d||124===d||62===d||39===d||34===d||37===d||64===d||96===d)return!1;if((63===d||45===d)&&(LC(a=e.input.charCodeAt(e.position+1))||n&&NC(a)))return!1;for(e.kind="scalar",e.result="",i=r=e.position,o=!1;0!==d;){if(58===d){if(LC(a=e.input.charCodeAt(e.position+1))||n&&NC(a))break}else if(35===d){if(LC(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&iM(e)||n&&NC(d))break;if(RC(d)){if(s=e.line,c=e.lineStart,l=e.lineIndent,aM(e,!1,-1),e.lineIndent>=t){o=!0,d=e.input.charCodeAt(e.position);continue}e.position=r,e.line=s,e.lineStart=c,e.lineIndent=l;break}}o&&(JC(e,i,r,!1),rM(e,e.line-s),i=r=e.position,o=!1),PC(d)||(r=e.position+1),d=e.input.charCodeAt(++e.position)}return JC(e,i,r,!1),!!e.result||(e.kind=u,e.result=h,!1)}(e,h,CC===n)&&(f=!0,null===e.tag&&(e.tag="?")):(f=!0,null===e.tag&&null===e.anchor||YC(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===m&&(f=s&&oM(e,p))),null===e.tag)null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);else if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&YC(e,'unacceptable node kind for ! tag; it should be "scalar", not "'+e.kind+'"'),c=0,l=e.implicitTypes.length;c"),null!==e.result&&u.kind!==e.kind&&YC(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+u.kind+'", not "'+e.kind+'"'),u.resolve(e.result,e.tag)?(e.result=u.construct(e.result,e.tag),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):YC(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||f}function dM(e){var t,n,a,i,r=e.position,o=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);0!==(i=e.input.charCodeAt(e.position))&&(aM(e,!0,-1),i=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==i));){for(o=!0,i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!LC(i);)i=e.input.charCodeAt(++e.position);for(a=[],(n=e.input.slice(t,e.position)).length<1&&YC(e,"directive name must not be less than one character in length");0!==i;){for(;PC(i);)i=e.input.charCodeAt(++e.position);if(35===i){do{i=e.input.charCodeAt(++e.position)}while(0!==i&&!RC(i));break}if(RC(i))break;for(t=e.position;0!==i&&!LC(i);)i=e.input.charCodeAt(++e.position);a.push(e.input.slice(t,e.position))}0!==i&&nM(e),xC.call(XC,n)?XC[n](e,n,a):KC(e,'unknown document directive "'+n+'"')}aM(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,aM(e,!0,-1)):o&&YC(e,"directives end mark is expected"),lM(e,e.lineIndent-1,SC,!1,!0),aM(e,!0,-1),e.checkLineBreaks&&IC.test(e.input.slice(r,e.position))&&KC(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&iM(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,aM(e,!0,-1)):e.position=55296&&a<=56319&&t+1=56320&&n<=57343?1024*(a-55296)+n-56320+65536:a}function ek(e){return/^\n* /.test(e)}var tk=1,nk=2,ak=3,ik=4,rk=5;function ok(e,t,n,a,i,r,o,s){var c,l=0,d=null,u=!1,h=!1,p=-1!==a,m=-1,g=function(e){return YM(e)&&e!==gM&&!GM(e)&&e!==$M&&e!==TM&&e!==AM&&e!==EM&&e!==OM&&e!==DM&&e!==PM&&e!==NM&&e!==xM&&e!==MM&&e!==SM&&e!==bM&&e!==LM&&e!==zM&&e!==IM&&e!==kM&&e!==wM&&e!==CM&&e!==jM&&e!==RM}(JM(e,0))&&function(e){return!GM(e)&&e!==AM}(JM(e,e.length-1));if(t||o)for(c=0;c=65536?c+=2:c++){if(!YM(l=JM(e,c)))return rk;g=g&&XM(l,d,s),d=l}else{for(c=0;c=65536?c+=2:c++){if((l=JM(e,c))===_M)u=!0,p&&(h=h||c-m-1>a&&" "!==e[m+1],m=c);else if(!YM(l))return rk;g=g&&XM(l,d,s),d=l}h=h||p&&c-m-1>a&&" "!==e[m+1]}return u||h?n>9&&ek(e)?rk:o?r===UM?rk:nk:h?ik:ak:!g||o||i(e)?r===UM?rk:nk:tk}function sk(e,t,n,a,i){e.dump=function(){if(0===t.length)return e.quotingType===UM?'""':"''";if(!e.noCompatMode&&(-1!==VM.indexOf(t)||HM.test(t)))return e.quotingType===UM?'"'+t+'"':"'"+t+"'";var r=e.indent*Math.max(1,n),o=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-r),s=a||e.flowLevel>-1&&n>=e.flowLevel;switch(ok(t,s,e.indent,o,(function(t){return function(e,t){var n,a;for(n=0,a=e.implicitTypes.length;n"+ck(t,e.indent)+lk(ZM(function(e,t){var n,a,i=/(\n+)([^\n]*)/g,r=(s=e.indexOf("\n"),s=-1!==s?s:e.length,i.lastIndex=s,dk(e.slice(0,s),t)),o="\n"===e[0]||" "===e[0];var s;for(;a=i.exec(e);){var c=a[1],l=a[2];n=" "===l[0],r+=c+(o||n||""===l?"":"\n")+dk(l,t),o=n}return r}(t,o),r));case rk:return'"'+function(e){for(var t,n="",a=0,i=0;i=65536?i+=2:i++)a=JM(e,i),!(t=FM[a])&&YM(a)?(n+=e[i],a>=65536&&(n+=e[i+1])):n+=t||BM(a);return n}(t)+'"';default:throw new Px("impossible error: invalid scalar style")}}()}function ck(e,t){var n=ek(e)?String(t):"",a="\n"===e[e.length-1];return n+(a&&("\n"===e[e.length-2]||"\n"===e)?"+":a?"":"-")+"\n"}function lk(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function dk(e,t){if(""===e||" "===e[0])return e;for(var n,a,i=/ [^ ]/g,r=0,o=0,s=0,c="";n=i.exec(e);)(s=n.index)-r>t&&(a=o>r?o:s,c+="\n"+e.slice(r,a),r=a+1),o=s;return c+="\n",e.length-r>t&&o>r?c+=e.slice(r,o)+"\n"+e.slice(o+1):c+=e.slice(r),c.slice(1)}function uk(e,t,n,a){var i,r,o,s="",c=e.tag;for(i=0,r=n.length;i tag resolver accepts not "'+c+'" style');a=s.represent[c](t,c)}e.dump=a}return!0}return!1}function pk(e,t,n,a,i,r,o){e.tag=null,e.dump=n,hk(e,n,!1)||hk(e,n,!0);var s,c=pM.call(e.dump),l=a;a&&(a=e.flowLevel<0||e.flowLevel>t);var d,u,h="[object Object]"===c||"[object Array]"===c;if(h&&(u=-1!==(d=e.duplicates.indexOf(n))),(null!==e.tag&&"?"!==e.tag||u||2!==e.indent&&t>0)&&(i=!1),u&&e.usedDuplicates[d])e.dump="*ref_"+d;else{if(h&&u&&!e.usedDuplicates[d]&&(e.usedDuplicates[d]=!0),"[object Object]"===c)a&&0!==Object.keys(e.dump).length?(!function(e,t,n,a){var i,r,o,s,c,l,d="",u=e.tag,h=Object.keys(n);if(!0===e.sortKeys)h.sort();else if("function"==typeof e.sortKeys)h.sort(e.sortKeys);else if(e.sortKeys)throw new Px("sortKeys must be a boolean or a function");for(i=0,r=h.length;i1024)&&(e.dump&&_M===e.dump.charCodeAt(0)?l+="?":l+="? "),l+=e.dump,c&&(l+=QM(e,t)),pk(e,t+1,s,!0,c)&&(e.dump&&_M===e.dump.charCodeAt(0)?l+=":":l+=": ",d+=l+=e.dump));e.tag=u,e.dump=d||"{}"}(e,t,e.dump,i),u&&(e.dump="&ref_"+d+e.dump)):(!function(e,t,n){var a,i,r,o,s,c="",l=e.tag,d=Object.keys(n);for(a=0,i=d.length;a1024&&(s+="? "),s+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),pk(e,t,o,!1,!1)&&(c+=s+=e.dump));e.tag=l,e.dump="{"+c+"}"}(e,t,e.dump),u&&(e.dump="&ref_"+d+" "+e.dump));else if("[object Array]"===c)a&&0!==e.dump.length?(e.noArrayIndent&&!o&&t>0?uk(e,t-1,e.dump,i):uk(e,t,e.dump,i),u&&(e.dump="&ref_"+d+e.dump)):(!function(e,t,n){var a,i,r,o="",s=e.tag;for(a=0,i=n.length;a",e.dump=s+" "+e.dump)}return!0}function mk(e,t){var n,a,i=[],r=[];for(gk(e,i,r),n=0,a=r.length;nq`
${_k.dump(e)}
`;return q`
+
+
+ +
+
+ + ${this.message?q`${this.message}${this.context&&"string"==typeof this.context?": "+this.context:""}`:""} + + ${this.context&&Array.isArray(this.context)?this.context.map((e=>n(e))):"object"==typeof this.context?n(this.context):""} +
+
+
`}static get styles(){return o(vk)}};e([he({attribute:!1})],yk.prototype,"message",void 0),e([he({attribute:!1})],yk.prototype,"context",void 0),e([he({attribute:!1})],yk.prototype,"icon",void 0),e([he({attribute:!0,type:Boolean})],yk.prototype,"dotdotdot",void 0),yk=e([le("frigate-card-message")],yk);let bk=class extends se{render(){if(this.message)return q` ${V_("error.troubleshooting")}.`} + .icon=${this.message.icon??"mdi:alert-circle"} + .context=${this.message.context} + .dotdotdot=${this.message.dotdotdot} + > + `}static get styles(){return o(vk)}};e([he({attribute:!1})],bk.prototype,"message",void 0),bk=e([le("frigate-card-error-message")],bk);let wk=class extends se{constructor(){super(...arguments),this.message="",this.animated=!1,this.size="large"}render(){return q`
+ ${this.animated?q` + `:q``} + ${this.message?q`${this.message}`:q``} +
`}static get styles(){return o(vk)}};function xk(e){return"error"===e?.type?q` `:e?q` `:q``}function Ck(e){return q` + + + `}function Mk(e,t,n,a){Bg(e,"message",{message:t,type:n,icon:a?.icon,context:a?.context})}function kk(e,t,n){Mk(e,t,"error",{context:n?.context})}function Sk(e,t){t instanceof Error&&kk(e,t.message,{...t instanceof zs&&{context:t.context}})}e([he({attribute:!1})],wk.prototype,"message",void 0),e([he({attribute:!1})],wk.prototype,"animated",void 0),e([he({attribute:!1})],wk.prototype,"size",void 0),wk=e([le("frigate-card-progress-indicator")],wk);let Ek=class extends se{constructor(){super(...arguments),this._root=null}createRenderRoot(){return this}_createRoot(){const e=customElements.get("hui-conditional-element");if(!e||!this.hass)throw new Error(V_("error.could_not_render_elements"));const t=new e;t.hass=this.hass;const n={type:"conditional",conditions:[],elements:this.elements};try{t.setConfig(n)}catch(e){throw Gg(e,console.error),new zs(V_("error.invalid_elements_config"))}return t}willUpdate(e){try{!this.elements||this._root&&!e.has("elements")||(this._root=this._createRoot())}catch(e){return Sk(this,e)}}render(){return q`${this._root||""}`}updated(){this.hass&&this._root&&(this._root.hass=this.hass)}};e([he({attribute:!1})],Ek.prototype,"elements",void 0),e([he({attribute:!1})],Ek.prototype,"conditionsManagerEpoch",void 0),e([he({attribute:!1})],Ek.prototype,"hass",void 0),Ek=e([le("frigate-card-elements-core")],Ek);let $k=class extends se{constructor(){super(...arguments),this._menuRemoveHandler=e=>{Bg(this,"menu:remove",e.detail)},this._statusBarRemoveHandler=e=>{Bg(this,"status-bar:remove",e.detail)},this._menuAddHandler=e=>{const t=e.composedPath();t.length&&this._addHandler(t[0],"frigate-card:menu:remove",this._menuRemoveHandler)},this._statusBarAddHandler=e=>{const t=e.composedPath();t.length&&this._addHandler(t[0],"frigate-card:status-bar:add",this._statusBarRemoveHandler)}}_addHandler(e,t,n){e.removeEventListener(t,n),e.addEventListener(t,n)}connectedCallback(){super.connectedCallback(),this.addEventListener("frigate-card:menu:add",this._menuAddHandler),this.addEventListener("frigate-card:status-bar:add",this._statusBarAddHandler)}disconnectedCallback(){this.removeEventListener("frigate-card:menu:add",this._menuAddHandler),this.addEventListener("frigate-card:status-bar:add",this._statusBarAddHandler),super.disconnectedCallback()}render(){return q` + `}static get styles(){return o(":host {\n position: absolute;\n inset: 0;\n overflow: hidden;\n pointer-events: none;\n}\n\n.element {\n position: absolute;\n transform: translate(-50%, -50%);\n pointer-events: auto;\n}\n\nhui-error-card.element {\n inset: 0px;\n transform: unset;\n}")}};e([he({attribute:!1})],$k.prototype,"hass",void 0),e([he({attribute:!1})],$k.prototype,"conditionsManagerEpoch",void 0),e([he({attribute:!1})],$k.prototype,"elements",void 0),$k=e([le("frigate-card-elements")],$k);let Ak=class extends se{setConfig(e){this._config=e}createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),this.className=""}render(){if(function(e,t){if(!t)return!0;const n=new vw(t,{bubbles:!0,composed:!0});return e.dispatchEvent(n),n.evaluation??!1}(this,this._config?.conditions))return q` + `}};e([he({attribute:!1,hasChanged:()=>!0})],Ak.prototype,"hass",void 0),Ak=e([le("frigate-card-conditional")],Ak);class zk extends se{constructor(e){super(),this._config=null,this._eventCategory=e}setConfig(e){this._config=e}connectedCallback(){super.connectedCallback(),this._config&&Bg(this,`${this._eventCategory}:add`,this._config)}disconnectedCallback(){this._config&&Bg(this,`${this._eventCategory}:remove`,this._config),super.disconnectedCallback()}}e([pe()],zk.prototype,"_config",void 0);class Ik extends zk{constructor(){super("menu")}}let Tk=class extends Ik{};Tk=e([le("frigate-card-menu-icon")],Tk);let jk=class extends Ik{};jk=e([le("frigate-card-menu-state-icon")],jk);let Ok=class extends Ik{};Ok=e([le("frigate-card-menu-submenu")],Ok);let Dk=class extends Ik{};Dk=e([le("frigate-card-menu-submenu-select")],Dk);class Rk extends zk{constructor(){super("status-bar")}}let Pk=class extends Rk{};Pk=e([le("frigate-card-status-bar-icon")],Pk);let Lk=class extends Rk{};Lk=e([le("frigate-card-status-bar-image")],Lk);let Nk=class extends Rk{};Nk=e([le("frigate-card-status-bar-string")],Nk);let Fk=class extends se{render(){return q` `}static get styles(){return o(":host {\n width: intrinsic;\n height: intrinsic;\n display: flex;\n justify-content: center;\n align-items: center;\n pointer-events: none;\n}\n\nimg {\n width: 10%;\n animation: rotate 8s linear infinite;\n}\n\n@keyframes rotate {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}")}};Fk=e([le("frigate-card-loading")],Fk);const Vk=(e,t)=>{Bg(e,"action:execution-request",t)};class Hk{constructor(e){this._config=null,this._buttons=[],this._expanded=!1,this._host=e}setMenuConfig(e){this._config=e,this._host.style.setProperty("--frigate-card-menu-button-size",`${e.button_size}px`),this._host.setAttribute("data-style",e.style),this._host.setAttribute("data-position",e.position),this._host.setAttribute("data-alignment",e.alignment),this._sortButtons(),this._host.requestUpdate()}getMenuConfig(){return this._config}isExpanded(){return this._expanded}setButtons(e){this._buttons=e,this._sortButtons(),this._host.requestUpdate()}getButtons(e){const t=e=>!this._isHidingMenu()||this._expanded||!!e.permanent;return this._buttons.filter((n=>(e=>!1!==e.enabled)(n)&&(t=>t.alignment===e||"matching"===e&&!t.alignment)(n)&&t(n)))}setExpanded(e){this._expanded=e,of(this._host,e,"expanded"),this._host.requestUpdate()}toggleExpanded(){this.setExpanded(!this._expanded)}actionHandler(e,t){if(e.stopPropagation(),e.detail.config&&(t=e.detail.config),!t)return;const n=e.detail.action,a=yf(n,t);if(!a)return;const i=Wg(a);let r=!1;const o=i.filter((e=>sf(e)&&!this._isUnknownActionMenuToggleAction(e)));if(o.length!=i.length&&(r=!0),o.length&&Vk(this._host,{action:i,config:t}),this._isHidingMenu())if(r)this.setExpanded(!this._expanded);else{const e=yf("hold",t),a=yf("double_tap",t),i=yf("tap",t),r=yf("end_tap",t);"end_tap"!==n&&("start_tap"!==n||e||a||i||r)&&("end_tap"===n||r)||this.setExpanded(!1)}}getFreshButtonState(e,t){const n={...t};return e&&"custom:frigate-card-menu-state-icon"===t.type?Lb(e,n):n}_sortButtons(){this._buttons=Ev(this._buttons,(e=>(e.priority??0)+(this._isHidingMenu()&&e.permanent?Us:0)),["desc"])}_isHidingMenu(){return"hidden"===this._config?.style}_isUnknownActionMenuToggleAction(e){const t=mf(e);return!!t&&"menu_toggle"==t.frigate_card_action}}var Bk="data:image/svg+xml,%3c%3fxml version='1.0' encoding='UTF-8' standalone='no'%3f%3e%3csvg width='24' height='24' viewBox='0 0 24 24' fill='none' version='1.1' id='svg54' sodipodi:docname='frigate.svg' inkscape:version='1.2.2 (b0a8486541%2c 2022-12-01)' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg'%3e %3cdefs id='defs58' /%3e %3csodipodi:namedview id='namedview56' pagecolor='%23da4040' bordercolor='%23666666' borderopacity='1.0' inkscape:pageshadow='2' inkscape:pageopacity='0' inkscape:pagecheckerboard='0' showgrid='false' width='24px' inkscape:zoom='45.254834' inkscape:cx='-0.03314563' inkscape:cy='9.9768347' inkscape:window-width='3840' inkscape:window-height='1527' inkscape:window-x='1080' inkscape:window-y='227' inkscape:window-maximized='1' inkscape:current-layer='svg54' showguides='true' inkscape:showpageshadow='2' inkscape:deskcolor='%23d1d1d1' /%3e %3cpath d='m 4.8759466%2c22.743573 c 0.0866%2c0.69274 0.811811%2c1.16359 0.37885%2c1.27183 -0.43297%2c0.10824 -2.32718%2c-3.43665 -2.7601492%2c-4.95202 -0.4329602%2c-1.51538 -0.6764993%2c-3.22017 -0.5682593%2c-4.19434 0.1082301%2c-0.97417 5.7097085%2c-2.48955 5.7097085%2c-2.89545 0%2c-0.4059 -1.81304%2c-0.0271 -1.89422%2c-0.35178 -0.0812%2c-0.32472 1.36925%2c-0.12989 1.75892%2c-0.64945 0.60885%2c-0.81181 1.3800713%2c-0.6765 1.8671505%2c-1.1094696 0.4870902%2c-0.4329599 1.0824089%2c-2.0836399 1.1906589%2c-2.7871996 0.108241%2c-0.70357 -1.0824084%2c-1.51538 -1.4071389%2c-2.05658 -0.3247195%2c-0.54121 0.7035702%2c-0.92005 3.1931099%2c-1.94834 2.48954%2c-1.02829 10.39114%2c-3.30134994 10.49938%2c-3.03074994 0.10824%2c0.27061 -2.59779%2c1.40713994 -4.492%2c2.11069994 -1.89422%2c0.70357 -4.97909%2c2.05658 -4.97909%2c2.43542 0%2c0.37885 0.16236%2c0.67651 0.0541%2c1.54244 -0.10824%2c0.86593 -0.12123%2c1.2702597 -0.32472%2c1.8400997 -0.1353%2c0.37884 -0.2706%2c1.27183 0%2c2.0836295 0.21648%2c0.64945 0.92005%2c1.13653 1.24477%2c1.24478 0.2706%2c0.018 1.01746%2c0.0433 1.8401%2c0 1.02829%2c-0.0541 2.48954%2c0.0541 2.48954%2c0.32472 0%2c0.2706 -2.21894%2c0.10824 -2.21894%2c0.48708 0%2c0.37885 2.27306%2c-0.0541 2.21894%2c0.32473 -0.0541%2c0.37884 -1.89422%2c0.21648 -2.86839%2c0.21648 -0.77933%2c0 -1.93031%2c-0.0361 -2.43542%2c-0.21648 l -0.10824%2c0.37884 c -0.18038%2c0 -0.55744%2c0.10824 -0.94711%2c0.10824 -0.48708%2c0 -0.51414%2c0.16236 -1.40713%2c0.16236 -0.892989%2c0 -0.622391%2c-0.0541 -1.4341894%2c-0.10824 -0.81181%2c-0.0541 -3.842561%2c2.27306 -4.383761%2c3.03075 -0.54121%2c0.75768 -0.21649%2c2.59778 -0.21649%2c3.43665 0%2c0.75379 -0.10824%2c2.43542 0%2c3.30135 z' fill='black' id='path330' style='fill:white%3bfill-opacity:1%3bstroke:none%3bstroke-width:0.1%3bstroke-miterlimit:4%3bstroke-dasharray:none%3bstroke-opacity:1' sodipodi:nodetypes='csccscccccsscscccccsscsccssccscc' /%3e%3c/svg%3e",qk="data:image/svg+xml,%3c%3fxml version='1.0' encoding='UTF-8' standalone='no'%3f%3e%3c!-- Created with Inkscape (http://www.inkscape.org/) --%3e%3csvg id='svg2' version='1.1' inkscape:version='1.2.2 (b0a8486541%2c 2022-12-01)' width='24' height='24' xml:space='preserve' sodipodi:docname='motioneye.svg' inkscape:export-filename='/home/ccrisan/projects/motioneye/static/img/motioneye-logo.png' inkscape:export-xdpi='960' inkscape:export-ydpi='960' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns%23' xmlns:cc='http://creativecommons.org/ns%23' xmlns:dc='http://purl.org/dc/elements/1.1/'%3e%3cmetadata id='metadata8'%3e%3crdf:RDF%3e%3ccc:Work rdf:about=''%3e%3cdc:format%3eimage/svg%2bxml%3c/dc:format%3e%3cdc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage' /%3e%3c/cc:Work%3e%3c/rdf:RDF%3e%3c/metadata%3e%3cdefs id='defs6'%3e%3clinearGradient inkscape:collect='always' id='linearGradient2058'%3e%3cstop style='stop-color:white%3bstop-opacity:1%3b' offset='0' id='stop2054' /%3e%3cstop style='stop-color:%23585858%3bstop-opacity:1' offset='1' id='stop2056' /%3e%3c/linearGradient%3e%3clinearGradient inkscape:collect='always' id='linearGradient2005'%3e%3cstop style='stop-color:white%3bstop-opacity:1%3b' offset='0' id='stop2001' /%3e%3cstop style='stop-color:grey%3bstop-opacity:1%3b' offset='1' id='stop2003' /%3e%3c/linearGradient%3e%3clinearGradient inkscape:collect='always' id='linearGradient4205'%3e%3cstop style='stop-color:%234aa3e0%3bstop-opacity:1' offset='0' id='stop4207' /%3e%3cstop style='stop-color:%233096db%3bstop-opacity:1' offset='1' id='stop4209' /%3e%3c/linearGradient%3e%3clinearGradient inkscape:collect='always' id='linearGradient4197'%3e%3cstop style='stop-color:white%3bstop-opacity:1%3b' offset='0' id='stop4199' /%3e%3cstop style='stop-color:%23585858%3bstop-opacity:1' offset='1' id='stop4201' /%3e%3c/linearGradient%3e%3clinearGradient inkscape:collect='always' xlink:href='%23linearGradient4205' id='linearGradient4211' x1='26.602072' y1='43.034946' x2='26.602072' y2='29.466328' gradientUnits='userSpaceOnUse' gradientTransform='matrix(0.96428571%2c0%2c0%2c0.96428571%2c0.91428571%2c0.91428571)' /%3e%3cfilter style='color-interpolation-filters:sRGB' inkscape:label='Drop Shadow' id='filter4285'%3e%3cfeFlood flood-opacity='0.588235' flood-color='rgb(0%2c0%2c0)' result='flood' id='feFlood4287' /%3e%3cfeComposite in='flood' in2='SourceGraphic' operator='in' result='composite1' id='feComposite4289' /%3e%3cfeGaussianBlur in='composite1' stdDeviation='0.6' result='blur' id='feGaussianBlur4291' /%3e%3cfeOffset dx='0' dy='-1' result='offset' id='feOffset4293' /%3e%3cfeComposite in='SourceGraphic' in2='offset' operator='over' result='composite2' id='feComposite4295' /%3e%3c/filter%3e%3clinearGradient inkscape:collect='always' xlink:href='%23linearGradient2005' id='linearGradient4309' gradientUnits='userSpaceOnUse' x1='26.445793' y1='47.517574' x2='26.445793' y2='3.8183768' /%3e%3clinearGradient inkscape:collect='always' xlink:href='%23linearGradient4197' id='linearGradient4311' gradientUnits='userSpaceOnUse' x1='26.445793' y1='47.517574' x2='26.445793' y2='3.8183768' /%3e%3clinearGradient inkscape:collect='always' xlink:href='%23linearGradient2058' id='linearGradient4313' gradientUnits='userSpaceOnUse' x1='26.445793' y1='47.517574' x2='26.445793' y2='3.8183768' /%3e%3cfilter style='color-interpolation-filters:sRGB' inkscape:label='Drop Shadow' id='filter4315' x='-0.03618178' y='-0.20783284' width='1.0723636' height='1.3304883'%3e%3cfeFlood flood-opacity='0.588235' flood-color='rgb(0%2c0%2c0)' result='flood' id='feFlood4317' /%3e%3cfeComposite in='flood' in2='SourceGraphic' operator='in' result='composite1' id='feComposite4319' /%3e%3cfeGaussianBlur in='composite1' stdDeviation='0.6' result='blur' id='feGaussianBlur4321' /%3e%3cfeOffset dx='0' dy='-1' result='offset' id='feOffset4323' /%3e%3cfeComposite in='SourceGraphic' in2='offset' operator='over' result='composite2' id='feComposite4325' /%3e%3c/filter%3e%3cfilter style='color-interpolation-filters:sRGB' inkscape:label='Drop Shadow' id='filter4327' x='-0.27857143' y='-0.4720238' width='1.5571429' height='1.7505952'%3e%3cfeFlood flood-opacity='0.588235' flood-color='rgb(0%2c0%2c0)' result='flood' id='feFlood4329' /%3e%3cfeComposite in='flood' in2='SourceGraphic' operator='in' result='composite1' id='feComposite4331' /%3e%3cfeGaussianBlur in='composite1' stdDeviation='0.6' result='blur' id='feGaussianBlur4333' /%3e%3cfeOffset dx='0' dy='-1' result='offset' id='feOffset4335' /%3e%3cfeComposite in='SourceGraphic' in2='offset' operator='over' result='composite2' id='feComposite4337' /%3e%3c/filter%3e%3cfilter style='color-interpolation-filters:sRGB' inkscape:label='Drop Shadow' id='filter4339' x='-0.0202507' y='-0.13980794' width='1.0405014' height='1.2082853'%3e%3cfeFlood flood-opacity='0.588235' flood-color='rgb(0%2c0%2c0)' result='flood' id='feFlood4341' /%3e%3cfeComposite in='flood' in2='SourceGraphic' operator='in' result='composite1' id='feComposite4343' /%3e%3cfeGaussianBlur in='composite1' stdDeviation='0.2' result='blur' id='feGaussianBlur4345' /%3e%3cfeOffset dx='0' dy='-0.5' result='offset' id='feOffset4347' /%3e%3cfeComposite in='SourceGraphic' in2='offset' operator='over' result='composite2' id='feComposite4349' /%3e%3c/filter%3e%3c/defs%3e%3csodipodi:namedview pagecolor='%23ff0d0d' bordercolor='%23666666' borderopacity='1' objecttolerance='10' gridtolerance='10' guidetolerance='10' inkscape:pageopacity='0' inkscape:pageshadow='2' inkscape:window-width='3840' inkscape:window-height='1527' id='namedview4' showgrid='false' inkscape:zoom='29.890116' inkscape:cx='19.973158' inkscape:cy='16.577386' inkscape:window-x='1080' inkscape:window-y='227' inkscape:window-maximized='1' inkscape:current-layer='g10' showguides='true' inkscape:guide-bbox='true' inkscape:showpageshadow='true' inkscape:pagecheckerboard='false' inkscape:deskcolor='%23d1d1d1' /%3e%3cg id='g10' inkscape:groupmode='layer' inkscape:label='ink_ext_XXXXXX' transform='matrix(1.25%2c0%2c0%2c-1.25%2c0%2c64)'%3e%3cg id='g4823' transform='matrix(1.0344694%2c0%2c0%2c1.0344694%2c-3.551886%2c-0.86695248)'%3e%3cpath id='path4244' d='M 8.9346154%2c40.515385 C 5.3647588%2c36.547307 3.2%2c31.357779 3.2%2c25.6 3.2%2c13.228821 13.228821%2c3.2 25.6%2c3.2 37.971179%2c3.2 48%2c13.228821 48%2c25.6 c 0%2c5.736682 -2.161128%2c10.952493 -5.707692%2c14.915385 -1.695935%2c-0.623286 -3.387833%2c-1.349065 -5.061539%2c-2.288462 3.2394%2c-0.937363 5.6%2c-3.937988 5.6%2c-7.457692 0%2c-4.260339 -3.469626%2c-7.753846 -7.753846%2c-7.753846 -3.633936%2c0 -6.690552%2c2.51055 -7.538461%2c5.869231 h -3.876924 c -0.840685%2c-3.360193 -3.903443%2c-5.869231 -7.538461%2c-5.869231 -4.284219%2c0 -7.7807693%2c3.493507 -7.7807693%2c7.753846 0%2c3.56112 2.4570323%2c6.5856 5.7615383%2c7.484616 -1.676267%2c0.912203 -3.404813%2c1.620556 -5.1692306%2c2.261538 z M 25.6%2c26.461538 c 0.532632%2c-1.981435 1.101793%2c-3.947553 3.446154%2c-5.16923 L 25.6%2c16.123077 22.153846%2c21.292308 c 2.053593%2c1.454966 3.000771%2c3.237758 3.446154%2c5.16923 z' style='fill:url(%23linearGradient4309)%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4327)' inkscape:connector-curvature='0' transform='matrix(0.38078533%2c0%2c0%2c0.38078533%2c2.9655495%2c31.335499)' /%3e%3cpath id='path4242' d='m 16.123077%2c33.353847 c -1.427443%2c0 -2.584616%2c-1.157173 -2.584616%2c-2.584616 0%2c-1.427444 1.157173%2c-2.584615 2.584616%2c-2.584615 1.427444%2c0 2.584615%2c1.157171 2.584615%2c2.584615 0%2c1.427443 -1.157171%2c2.584616 -2.584615%2c2.584616 z' style='fill:url(%23linearGradient4311)%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4327)' inkscape:connector-curvature='0' transform='matrix(0.38078533%2c0%2c0%2c0.38078533%2c2.9655495%2c31.335499)' /%3e%3cpath id='path4240' d='m 35.076923%2c33.353847 c -1.427443%2c0 -2.584615%2c-1.157173 -2.584615%2c-2.584616 0%2c-1.427444 1.157172%2c-2.584615 2.584615%2c-2.584615 1.427443%2c0 2.584616%2c1.157171 2.584616%2c2.584615 0%2c1.427443 -1.157173%2c2.584616 -2.584616%2c2.584616 z' style='fill:url(%23linearGradient4313)%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4327)' inkscape:connector-curvature='0' transform='matrix(0.38078533%2c0%2c0%2c0.38078533%2c2.9655495%2c31.335499)' /%3e%3cpath inkscape:connector-curvature='0' style='fill:%23d9d9d9%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4339)' d='m 25.6%2c47.2 c -4.373944%2c0 -8.437159%2c-1.399808 -11.838461%2c-3.634616 3.677605%2c-0.394237 7.305921%2c-1.342945 11.423077%2c-3.375 4.166157%2c2.122533 8.434154%2c3.008875 12.279808%2c3.452886 C 34.057131%2c45.890032 29.986674%2c47.2 25.6%2c47.2 Z' id='path4248' transform='matrix(0.39488848%2c0%2c0%2c0.39488848%2c2.6045087%2c30.974457)' /%3e%3cpath inkscape:connector-curvature='0' style='fill:url(%23linearGradient4211)%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4315)' d='M 39.723077%2c42.552884 C 35.394064%2c42.5242 29.479588%2c40.397223 25.184616%2c38.432418 20.668821%2c40.064102 16.035448%2c42.649343 10.801923%2c42.526924 10.453022%2c42.51873 10.118061%2c42.50105 9.7634616%2c42.475 L 5.6615384%2c42.1375 9.5557693%2c40.839424 c 5.3417977%2c-1.74056 10.0398397%2c-2.851302 14.1749997%2c-10.025963 0.959101%2c0 2.845924%2c-4.15e-4 3.738462%2c-4.15e-4 4.11884%2c7.134039 9.059296%2c8.324614 14.149039%2c10.026378 L 45.460577%2c42.085577 41.4625%2c42.475 c -0.544847%2c0.05181 -1.120992%2c0.08198 -1.739423%2c0.07788 z' id='path4246' sodipodi:nodetypes='cccccccccccc' transform='matrix(0.39488848%2c0%2c0%2c0.39488848%2c2.6045087%2c30.974457)' /%3e%3c/g%3e%3c/g%3e%3c/svg%3e",Uk="data:image/svg+xml,%3c%3fxml version='1.0' encoding='UTF-8' standalone='no'%3f%3e%3c!-- Created with Inkscape (http://www.inkscape.org/) --%3e%3csvg version='1.1' id='svg62' width='24' height='24' viewBox='0 0 24 24' sodipodi:docname='reolink.svg' inkscape:version='1.2.2 (b0a8486541%2c 2022-12-01)' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg'%3e %3cdefs id='defs66' /%3e %3csodipodi:namedview id='namedview64' pagecolor='%23505050' bordercolor='%23eeeeee' borderopacity='1' inkscape:showpageshadow='0' inkscape:pageopacity='0' inkscape:pagecheckerboard='0' inkscape:deskcolor='%23505050' showgrid='true' inkscape:zoom='36.417984' inkscape:cx='18.191562' inkscape:cy='8.6633022' inkscape:window-width='3840' inkscape:window-height='1527' inkscape:window-x='1080' inkscape:window-y='227' inkscape:window-maximized='1' inkscape:current-layer='g68'%3e %3cinkscape:grid type='xygrid' id='grid1175' dotted='false' snapvisiblegridlinesonly='true' /%3e %3c/sodipodi:namedview%3e %3cg inkscape:groupmode='layer' inkscape:label='Reolink Logo' id='g68'%3e %3cpath style='fill:white%3bstroke-width:0.0393282%3bfill-opacity:1' d='M 17.037254%2c23.964909 C 16.764634%2c23.917573 16.561708%2c23.83617 16.325735%2c23.67954 16.196719%2c23.593913 14.543544%2c21.952905 12.217956%2c19.602014 10.077426%2c17.438191 8.2198993%2c15.582673 8.0901166%2c15.478642 7.6038998%2c15.088895 7.0877741%2c14.869424 6.4986827%2c14.801908 6.3140805%2c14.780765 5.079061%2c14.763305 3.7541964%2c14.763126 l -2.408845%2c-4.78e-4 0.00713%2c-7.3937713 v -7.3935985 l 6.2040046%2c3.536e-5 c 3.9799342%2c1.969e-5 6.3590882%2c0.01465833 6.6366112%2c0.0408227 2.331195%2c0.21982024 4.364771%2c1.49885914 5.578726%2c3.50085534 0.686043%2c1.1313823 1.020901%2c2.2783695 1.067186%2c3.6554196 0.06335%2c1.8844953 -0.57426%2c3.6597378 -1.831469%2c5.0992438 -0.756457%2c0.866146 -1.861127%2c1.62991 -2.928729%2c2.024919 l -0.319718%2c0.118287 -1.951287%2c-1.979284 -1.951286%2c-1.979278 1.046741%2c-0.02346 c 0.575706%2c-0.01291 1.099833%2c-0.03689 1.164724%2c-0.0533 0.596068%2c-0.150649 0.949703%2c-0.313968 1.322206%2c-0.6106282 0.643573%2c-0.5125401 1.046169%2c-1.2439257 1.137985%2c-2.0673522 0.167852%2c-1.505317 -0.771478%2c-2.8704888 -2.263547%2c-3.2897068 L 13.950001%2c4.3234481 9.7981831%2c4.3106846 5.6392389%2c4.29801 v 3.0692702 3.0692648 l 1.4185165%2c7.9e-4 c 1.6275801%2c8.87e-4 1.7789152%2c0.01912 2.3105245%2c0.27984 0.3095679%2c0.15183 0.389559%2c0.219499 1.0817441%2c0.915083 3.027399%2c3.042274 12.19404%2c12.30837 12.204589%2c12.337002 0.0161%2c0.04373 -5.364393%2c0.03953 -5.617359%2c-0.0045 z' id='path1173' inkscape:label='R' /%3e %3c/g%3e%3c/svg%3e";const Wk=e=>{switch(e){case"frigate":return Bk;case"motioneye":return qk;case"reolink":return Uk;default:return null}};const Zk=(e,t,n)=>{const a=e.states[t],i=n?.state?n.state:a?a.state:null;if(!i)return null;const r=Ye(t),o=a?a.attributes:null;return n?.entity?.translation_key&&e.localize(`component.${n.entity.platform}.entity.${r}.${n.entity.translation_key}.state.${i}`)||o?.device_class&&e.localize(`component.${r}.state.${o.device_class}.${i}`)||e.localize(`component.${r}.state._.${i}`)||i};let Qk=class extends se{_renderItem(e){if(!this.hass)return;const t=Lb(this.hass,{...e});return q` + {t.detail.config=e}} + .actionHandler=${kf({hasHold:bf(e.hold_action),hasDoubleClick:bf(e.double_tap_action)})} + > + ${t.title||""} + ${e.subtitle?q`${e.subtitle}`:""} + ${(e=>{if(e.icon){const t=Wk(e.icon);return t?q``:q` + `}return q``})(t)} + + `}render(){if(!this.submenu)return q``;const e=this.submenu.items;return q` + e.stopPropagation()} + @click=${e=>wf(e)} + > + + + + ${e.map(this._renderItem.bind(this))} + + `}static get styles(){return o("ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n pointer-events: auto;\n}\n\nmwc-list-item {\n z-index: 20;\n}")}};e([he({attribute:!1})],Qk.prototype,"hass",void 0),e([he({attribute:!1})],Qk.prototype,"submenu",void 0),Qk=e([le("frigate-card-submenu")],Qk);let Gk=class extends se{shouldUpdate(e){const t=e.get("hass");return!e.has("hass")||!t||!this.submenuSelect||Ob(this.hass,t,[this.submenuSelect.entity])}async _refreshOptionTitles(){if(!this.hass||!this.submenuSelect)return;const e=this.submenuSelect.entity,t=this.hass.states[e],n=t?.attributes?.options,a=await(this.entityRegistryManager?.getEntity(this.hass,e))??null,i={};for(const t of n){const n=Zk(this.hass,e,{...a&&{entity:a},state:t});n&&(i[t]=n)}this._optionTitles=i}willUpdate(){if(!this.submenuSelect||!this.hass)return;this._optionTitles||this._refreshOptionTitles();const e=this.submenuSelect.entity,t=this.hass.states[e],n=t?.attributes?.options;if(!t||!n)return;const a={icon:Ib("select"),...Lb(this.hass,this.submenuSelect),...this.submenuSelect,type:"custom:frigate-card-menu-submenu",items:[]};delete a.options;const i=a.items;for(const a of n){const n=this._optionTitles?.[a]??a;i.push({state_color:!0,selected:t.state===a,enabled:!0,title:n||a,...(e.startsWith("select.")||e.startsWith("input_select."))&&{tap_action:{action:"perform-action",perform_action:e.startsWith("select.")?"select.select_option":"input_select.select_option",target:{entity_id:e},data:{option:a}}},...this.submenuSelect.options&&this.submenuSelect.options[a]})}this._generatedSubmenu=a}render(){return q` `}};e([he({attribute:!1})],Gk.prototype,"hass",void 0),e([he({attribute:!1})],Gk.prototype,"submenuSelect",void 0),e([he({attribute:!1})],Gk.prototype,"entityRegistryManager",void 0),e([pe()],Gk.prototype,"_optionTitles",void 0),Gk=e([le("frigate-card-submenu-select")],Gk);let Yk=class extends se{constructor(){super(...arguments),this._controller=new Hk(this)}set menuConfig(e){this._controller.setMenuConfig(e)}set buttons(e){this._controller.setButtons(e)}set expanded(e){this._controller.setExpanded(e)}toggleMenu(){this._controller.toggleExpanded()}_renderButton(e){if(!this.hass)return;if("custom:frigate-card-menu-submenu"===e.type)return q` this._controller.actionHandler(e)} + > + `;if("custom:frigate-card-menu-submenu-select"===e.type)return q` this._controller.actionHandler(e)} + > + `;const t=this._controller.getFreshButtonState(this.hass,e),n=Wk(t.icon);return q` this._controller.actionHandler(t,e)} + > + ${n?q``:q``} + `}render(){const e=this._controller.getMenuConfig(),t=e?.style;if(!e||"none"===t)return;const n=this._controller.getButtons("matching"),a=this._controller.getButtons("opposing");return q`
+ ${n.map((e=>this._renderButton(e)))} +
+
+ ${a.map((e=>this._renderButton(e)))} +
`}static get styles(){return o('ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n --frigate-card-menu-button-size: 40px;\n --mdc-icon-button-size: var(--frigate-card-menu-button-size);\n --mdc-icon-size: calc(var(--mdc-icon-button-size) / 2);\n pointer-events: auto;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n}\n\n/*******************************************************\n * Non-hover styles should not interact with the pointer\n *******************************************************/\n:host(:not([data-style*=hover])) {\n pointer-events: none;\n}\n\n/***********************************\n * Aligned divs: matching & opposing\n ***********************************/\ndiv.matching,\ndiv.opposing {\n display: flex;\n flex-wrap: wrap;\n flex-direction: row;\n align-items: flex-start;\n min-width: 0px;\n min-height: 0px;\n}\n\ndiv.matching {\n justify-content: flex-start;\n}\n\ndiv.opposing {\n justify-content: flex-end;\n}\n\n/********************\n * Outside menu style\n ********************/\n:host([data-style=outside]) {\n width: 100%;\n background: var(--secondary-background-color);\n}\n\n/********************************************************\n * Hack: Ensure host & div expand for column flex layouts\n ********************************************************/\n:host(:not([data-style=outside])[data-position=left]) {\n writing-mode: vertical-lr;\n}\n\n:host(:not([data-style=outside])[data-position=right]) {\n writing-mode: vertical-rl;\n}\n\n:host(:not([data-style=outside])[data-style=overlay][data-position=left]) div > *,\n:host(:not([data-style=outside])[data-style=overlay][data-position=right]) div > *,\n:host(:not([data-style=outside])[data-style*=hover][data-position=left]) div > *,\n:host(:not([data-style=outside])[data-style*=hover][data-position=right]) div > *,\n:host(:not([data-style=outside])[data-style=hidden][data-position=left]) div > *,\n:host(:not([data-style=outside])[data-style=hidden][data-position=right]) div > * {\n writing-mode: horizontal-tb;\n}\n\n/**********************\n * "Reverse" alignments\n **********************/\n:host(:not([data-style=outside])[data-position=left][data-alignment=bottom]),\n:host(:not([data-style=outside])[data-position=right][data-alignment=bottom]),\n:host([data-position=top][data-alignment=right]),\n:host([data-position=bottom][data-alignment=right]),\n:host(:not([data-style=outside])[data-position=left][data-alignment=bottom]) div,\n:host(:not([data-style=outside])[data-position=right][data-alignment=bottom]) div,\n:host([data-position=top][data-alignment=right]) div,\n:host([data-position=bottom][data-alignment=right]) div {\n flex-direction: row-reverse;\n}\n\n/****************************\n * Wrap upwards on the bottom\n ****************************/\n:host(:not([data-style=outside])[data-position=bottom]) div {\n flex-wrap: wrap-reverse;\n}\n\n/********************************************\n * Positioning for absolute based menu styles\n ********************************************/\n:host([data-style=overlay]),\n:host([data-style*=hover]),\n:host([data-style=hidden]) {\n overflow: hidden;\n width: calc(var(--frigate-card-menu-button-size) + 6px);\n height: calc(var(--frigate-card-menu-button-size) + 6px);\n}\n\n:host([data-style=overlay]),\n:host([data-style*=hover]),\n:host([data-style=hidden][expanded]) {\n overflow: visible;\n}\n\n:host([data-style=overlay][data-position=top]),\n:host([data-style=overlay][data-position=bottom]),\n:host([data-style*=hover][data-position=top]),\n:host([data-style*=hover][data-position=bottom]),\n:host([data-style=hidden][data-position=top]),\n:host([data-style=hidden][data-position=bottom]) {\n width: 100%;\n height: auto;\n}\n\n:host([data-style=overlay][data-position=top][data-alignment=left]),\n:host([data-style=overlay][data-position=bottom][data-alignment=left]),\n:host([data-style*=hover][data-position=top][data-alignment=left]),\n:host([data-style*=hover][data-position=bottom][data-alignment=left]),\n:host([data-style=hidden][data-position=top][data-alignment=left][expanded]),\n:host([data-style=hidden][data-position=bottom][data-alignment=left][expanded]) {\n background: linear-gradient(90deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}\n\n:host([data-style=overlay][data-position=top][data-alignment=right]),\n:host([data-style=overlay][data-position=bottom][data-alignment=right]),\n:host([data-style*=hover][data-position=top][data-alignment=right]),\n:host([data-style*=hover][data-position=bottom][data-alignment=right]),\n:host([data-style=hidden][data-position=top][data-alignment=right][expanded]),\n:host([data-style=hidden][data-position=bottom][data-alignment=right][expanded]) {\n background: linear-gradient(270deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}\n\n:host([data-style=overlay][data-position=left]),\n:host([data-style=overlay][data-position=right]),\n:host([data-style*=hover][data-position=left]),\n:host([data-style*=hover][data-position=right]),\n:host([data-style=hidden][data-position=left]),\n:host([data-style=hidden][data-position=right]) {\n width: auto;\n height: 100%;\n}\n\n:host([data-style=overlay][data-position=left][data-alignment=top]),\n:host([data-style=overlay][data-position=right][data-alignment=top]),\n:host([data-style*=hover][data-position=left][data-alignment=top]),\n:host([data-style*=hover][data-position=right][data-alignment=top]),\n:host([data-style=hidden][data-position=left][data-alignment=top][expanded]),\n:host([data-style=hidden][data-position=right][data-alignment=top][expanded]) {\n background: linear-gradient(180deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}\n\n:host([data-style=overlay][data-position=left][data-alignment=bottom]),\n:host([data-style=overlay][data-position=right][data-alignment=bottom]),\n:host([data-style*=hover][data-position=left][data-alignment=bottom]),\n:host([data-style*=hover][data-position=right][data-alignment=bottom]),\n:host([data-style=hidden][data-position=left][data-alignment=bottom][expanded]),\n:host([data-style=hidden][data-position=right][data-alignment=bottom][expanded]) {\n background: linear-gradient(0deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}')}};e([he({attribute:!1})],Yk.prototype,"entityRegistryManager",void 0),e([he({attribute:!1})],Yk.prototype,"hass",void 0),Yk=e([le("frigate-card-menu")],Yk);let Kk=class extends se{render(){return q` + + + + + `}static get styles(){return o("ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n position: absolute;\n width: 100%;\n height: 100%;\n pointer-events: none;\n}\n\nslot {\n position: absolute;\n display: flex;\n}\n\n/***************\n * Slot position\n ***************/\nslot[name=top] {\n top: 0px;\n}\n\nslot[name=bottom] {\n bottom: 0px;\n}\n\nslot[name=left] {\n left: 0px;\n}\n\nslot[name=right] {\n right: 0px;\n}\n\n/***********\n * Slot size\n ***********/\nslot[name=top],\nslot[name=bottom] {\n width: 100%;\n flex-direction: column;\n}\n\nslot[name=left],\nslot[name=right] {\n height: 100%;\n flex-direction: row;\n}\n\nslot[name=top],\nslot[name=left] {\n justify-content: flex-start;\n}\n\nslot[name=bottom],\nslot[name=right] {\n justify-content: flex-end;\n}\n\n/*******************************\n * Match rounded corners to card\n *******************************/\n::slotted([slot=top]:first-child),\n::slotted([slot=left]:first-child) {\n border-top-left-radius: var(--ha-card-border-radius, 4px);\n}\n\n::slotted([slot=top]:first-child),\n::slotted([slot=right]:first-child) {\n border-top-right-radius: var(--ha-card-border-radius, 4px);\n}\n\n::slotted([slot=bottom]:last-child),\n::slotted([slot=left]:last-child) {\n border-bottom-left-radius: var(--ha-card-border-radius, 4px);\n}\n\n::slotted([slot=bottom]:last-child),\n::slotted([slot=right]:last-child) {\n border-bottom-right-radius: var(--ha-card-border-radius, 4px);\n}")}};Kk=e([le("frigate-card-overlay")],Kk);class Xk{constructor(e){this._config=null,this._popupTimer=new xf,this._items=[],this._host=e}getRenderItems(){return this._items}setItems(e){const t=e.filter((e=>!!e.exclusive)),n=Ev(t.length?t:e,(e=>e.priority??50),"desc"),a=this._getSufficientValues(this._items),i=this._getSufficientValues(n);this._items=n,"popup"!==this._config?.style||Dv(a,i)||(this._show(),this._popupTimer.start(this._config.popup_seconds,(()=>this._hide()))),this._host.requestUpdate()}setConfig(e){this._config=e,this._host.style.setProperty("--frigate-card-status-bar-height",`${e.height}px`),this._host.setAttribute("data-style",e.style),this._host.setAttribute("data-position",e.position),"popup"!==this._config?.style&&this._show(),this._host.requestUpdate()}shouldRender(){return this._items.some((e=>!1!==e.enabled&&e.sufficient))}actionHandler(e,t){e.stopPropagation();const n=yf(e.detail.action,t);n&&Vk(this._host,{action:Wg(n),config:t})}_getSufficientValue(e){ +/* istanbul ignore else: cannot happen -- @preserve */ +return"custom:frigate-card-status-bar-icon"===e.type?e.icon:"custom:frigate-card-status-bar-string"===e.type?e.string:"custom:frigate-card-status-bar-image"===e.type?e.image:null}_getSufficientValues(e){return e.filter((e=>!1!==e.enabled&&e.sufficient)).map((e=>this._getSufficientValue(e)))}_show(){of(this._host,!1,"hide")}_hide(){of(this._host,!0,"hide")}}let Jk=class extends se{constructor(){super(...arguments),this._controller=new Xk(this)}willUpdate(e){e.has("config")&&this.config&&this._controller.setConfig(this.config),e.has("items")&&this._controller.setItems(this.items??[])}render(){if(this._controller.shouldRender())return q` +
+ ${this._controller.getRenderItems().map((e=>{if(!1===e.enabled)return;const t=_e({item:!0,expand:!!e.expand,action:!!Object.keys(e.actions??{}).length}),n=kf({hasHold:bf(e.actions?.hold_action),hasDoubleClick:bf(e.actions?.double_tap_action)});if("custom:frigate-card-status-bar-string"===e.type)return q`
this._controller.actionHandler(t,e.actions)} + > + ${e.string} +
`;if("custom:frigate-card-status-bar-icon"===e.type){const a=Wk(e.icon);return a?q`this._controller.actionHandler(t,e.actions)} + />`:q`this._controller.actionHandler(t,e.actions)} + >`}return"custom:frigate-card-status-bar-image"===e.type?q`this._controller.actionHandler(t,e.actions)} + />`:void 0}))} +
+ `}static get styles(){return o("ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n --mdc-icon-button-size: calc(var(--frigate-card-status-bar-height) - 6px);\n --mdc-icon-size: calc(var(--mdc-icon-button-size) / 2);\n display: block;\n width: 100%;\n pointer-events: auto;\n opacity: 1;\n transition: opacity 1s;\n}\n\n/*******************************************************\n * Non-hover styles should not interact with the pointer\n *******************************************************/\n:host(:not([data-style*=hover])) {\n pointer-events: none;\n}\n\n/***************\n * Outside style\n ***************/\n:host([data-style=outside]) {\n color: var(--primary-text-color);\n background: var(--secondary-background-color);\n}\n\n/*******************\n * Non-outside style\n *******************/\n:host(:not([data-style=outside])) {\n color: white;\n background: linear-gradient(90deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}\n\n:host([data-style=popup][hide]) {\n opacity: 0;\n}\n\n/*********************\n * Status bar contents\n *********************/\n.status {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n overflow: hidden;\n width: 100%;\n height: var(--frigate-card-status-bar-height);\n}\n\n.item {\n display: inline-block;\n margin: 3px;\n padding: 3px;\n align-content: center;\n opacity: 0.7;\n}\n\n.item:first-child {\n margin-left: 10px;\n}\n\n.item:last-child {\n margin-right: 10px;\n}\n\n.item.expand {\n flex: 1;\n}\n\n.item.action {\n cursor: pointer;\n}\n\nimg.item {\n width: var(--mdc-icon-size, 24px);\n height: var(--mdc-icon-size, 24px);\n}")}};e([he({attribute:!1})],Jk.prototype,"items",void 0),e([he({attribute:!1})],Jk.prototype,"config",void 0),Jk=e([le("frigate-card-status-bar")],Jk);function eS(e){return"number"==typeof e}function tS(e){return"string"==typeof e}function nS(e){return"boolean"==typeof e}function aS(e){return"[object Object]"===Object.prototype.toString.call(e)}function iS(e){return Math.abs(e)}function rS(e){return Math.sign(e)}function oS(e,t){return iS(e-t)}function sS(e){return hS(e).map(Number)}function cS(e){return e[lS(e)]}function lS(e){return Math.max(0,e.length-1)}function dS(e,t){return t===lS(e)}function uS(e,t=0){return Array.from(Array(e),((e,n)=>t+n))}function hS(e){return Object.keys(e)}function pS(e,t){return[e,t].reduce(((e,t)=>(hS(t).forEach((n=>{const a=e[n],i=t[n],r=aS(a)&&aS(i);e[n]=r?pS(a,i):i})),e)),{})}function mS(e,t){return void 0!==t.MouseEvent&&e instanceof t.MouseEvent}function gS(){let e=[];const t={add:function(n,a,i,r={passive:!0}){let o;if("addEventListener"in n)n.addEventListener(a,i,r),o=()=>n.removeEventListener(a,i,r);else{const e=n;e.addListener(i),o=()=>e.removeListener(i)}return e.push(o),t},clear:function(){e=e.filter((e=>e()))}};return t}function fS(e,t,n,a){const i=gS(),r=1e3/60;let o=null,s=0,c=0;function l(e){if(!c)return;o||(o=e);const i=e-o;for(o=e,s+=i;s>=r;)n(r),s-=r;a(s/r),c&&t.requestAnimationFrame(l)}function d(){t.cancelAnimationFrame(c),o=null,s=0,c=0}return{init:function(){i.add(e,"visibilitychange",(()=>{e.hidden&&(o=null,s=0)}))},destroy:function(){d(),i.clear()},start:function(){c||(c=t.requestAnimationFrame(l))},stop:d,update:()=>n(r),render:a}}function _S(e=0,t=0){const n=iS(e-t);function a(t){return tt}function r(e){return a(e)||i(e)}const o={length:n,max:t,min:e,constrain:function(n){return r(n)?a(n)?e:t:n},reachedAny:r,reachedMax:i,reachedMin:a,removeOffset:function(e){return n?e-n*Math.ceil((e-t)/n):e}};return o}function vS(e,t,n){const{constrain:a}=_S(0,e),i=e+1;let r=o(t);function o(e){return n?iS((i+e)%i):a(e)}function s(){return r}function c(){return vS(e,s(),n)}const l={get:s,set:function(e){return r=o(e),l},add:function(e){return c().set(s()+e)},clone:c};return l}function yS(e,t,n,a,i,r,o,s,c,l,d,u,h,p,m,g,f,_,v){const{cross:y,direction:b}=e,w=["INPUT","SELECT","TEXTAREA"],x={passive:!1},C=gS(),M=gS(),k=_S(50,225).constrain(p.measure(20)),S={mouse:300,touch:400},E={mouse:500,touch:600},$=m?43:25;let A=!1,z=0,I=0,T=!1,j=!1,O=!1,D=!1;function R(e){if(!mS(e,a)&&e.touches.length>=2)return P(e);const t=r.readPoint(e),n=r.readPoint(e,y),o=oS(t,z),c=oS(n,I);if(!j&&!D){if(!e.cancelable)return P(e);if(j=o>c,!j)return P(e)}const d=r.pointerMove(e);o>g&&(O=!0),l.useFriction(.3).useDuration(.75),s.start(),i.add(b(d)),e.preventDefault()}function P(e){const t=d.byDistance(0,!1).index!==u.get(),n=r.pointerUp(e)*(m?E:S)[D?"mouse":"touch"],a=function(e,t){const n=u.add(-1*rS(e)),a=d.byDistance(e,!m).distance;return m||iS(e)=2,s&&0!==e.button)return;if(function(e){const t=e.nodeName||"";return w.includes(t)}(e.target))return;T=!0,r.pointerDown(e),l.useFriction(0).useDuration(0),i.set(o),function(){const e=D?n:t;M.add(e,"touchmove",R,x).add(e,"touchend",P).add(e,"mousemove",R,x).add(e,"mouseup",P)}(),z=r.readPoint(e),I=r.readPoint(e,y),h.emit("pointerDown")}(s)}const c=t;C.add(c,"dragstart",(e=>e.preventDefault()),x).add(c,"touchmove",(()=>{}),x).add(c,"touchend",(()=>{})).add(c,"touchstart",s).add(c,"mousedown",s).add(c,"touchcancel",P).add(c,"contextmenu",P).add(c,"click",L,!0)},destroy:function(){C.clear(),M.clear()},pointerDown:function(){return T}}}function bS(e,t){let n,a;function i(e){return e.timeStamp}function r(n,a){const i="client"+("x"===(a||e.scroll)?"X":"Y");return(mS(n,t)?n:n.touches[0])[i]}return{pointerDown:function(e){return n=e,a=e,r(e)},pointerMove:function(e){const t=r(e)-r(a),o=i(e)-i(n)>170;return a=e,o&&(n=e),t},pointerUp:function(e){if(!n||!a)return 0;const t=r(a)-r(n),o=i(e)-i(n),s=i(e)-i(a)>170,c=t/o;return o&&!s&&iS(c)>.1?c:0},readPoint:r}}function wS(e,t,n,a,i,r,o){const s=[e].concat(a);let c,l,d=[],u=!1;function h(e){return i.measureSize(o.measure(e))}return{init:function(i){r&&(l=h(e),d=a.map(h),c=new ResizeObserver((n=>{(nS(r)||r(i,n))&&function(n){for(const r of n){if(u)return;const n=r.target===e,o=a.indexOf(r.target),s=n?l:d[o];if(iS(h(n?e:a[o])-s)>=.5){i.reInit(),t.emit("resize");break}}}(n)})),n.requestAnimationFrame((()=>{s.forEach((e=>c.observe(e)))})))},destroy:function(){u=!0,c&&c.disconnect()}}}function xS(e,t,n,a,i){const r=i.measure(10),o=i.measure(50),s=_S(.1,.99);let c=!1;function l(){return!c&&(!!e.reachedAny(n.get())&&!!e.reachedAny(t.get()))}return{shouldConstrain:l,constrain:function(i){if(!l())return;const c=e.reachedMin(t.get())?"min":"max",d=iS(e[c]-t.get()),u=n.get()-t.get(),h=s.constrain(d/o);n.subtract(u*h),!i&&iS(u)e.add(i)))}};return c}function MS(e,t,n,a,i){const{reachedAny:r,removeOffset:o,constrain:s}=a;function c(e){return e.concat().sort(((e,t)=>iS(e)-iS(t)))[0]}function l(t,a){const i=[t,t+n,t-n];if(!e)return t;if(!a)return c(i);const r=i.filter((e=>rS(e)===a));return r.length?c(r):cS(i)-n}return{byDistance:function(n,a){const c=i.get()+n,{index:d,distance:u}=function(n){const a=e?o(n):s(n),i=t.map(((e,t)=>({diff:l(e-a,0),index:t}))).sort(((e,t)=>iS(e.diff)-iS(t.diff))),{index:r}=i[0];return{index:r,distance:a}}(c),h=!e&&r(c);return!a||h?{index:d,distance:n}:{index:d,distance:n+l(t[d]-u,0)}},byIndex:function(e,n){return{index:e,distance:l(t[e]-i.get(),n)}},shortcut:l}}function kS(e,t,n,a,i,r,o,s){const c={passive:!0,capture:!0};let l=0;function d(e){"Tab"===e.code&&(l=(new Date).getTime())}return{init:function(u){s&&(r.add(document,"keydown",d,!1),t.forEach(((t,d)=>{r.add(t,"focus",(t=>{(nS(s)||s(u,t))&&function(t){if((new Date).getTime()-l>10)return;o.emit("slideFocusStart"),e.scrollLeft=0;const r=n.findIndex((e=>e.includes(t)));eS(r)&&(i.useDuration(0),a.index(r,0),o.emit("slideFocus"))}(d)}),c)})))}}}function SS(e){let t=e;function n(e){return eS(e)?e:e.get()}const a={get:function(){return t},set:function(e){t=n(e)},add:function(e){t+=n(e)},subtract:function(e){t-=n(e)}};return a}function ES(e,t){const n="x"===e.scroll?function(e){return`translate3d(${e}px,0px,0px)`}:function(e){return`translate3d(0px,${e}px,0px)`},a=t.style;let i=!1;return{clear:function(){i||(a.transform="",t.getAttribute("style")||t.removeAttribute("style"))},to:function(t){i||(a.transform=n(e.direction(t)))},toggleActive:function(e){i=!e}}}function $S(e,t,n,a,i,r,o,s,c){const l=.5,d=sS(i),u=sS(i).reverse(),h=function(){const e=o[0];return g(m(u,e),n,!1)}().concat(function(){const e=t-o[0]-1;return g(m(d,e),-n,!0)}());function p(e,t){return e.reduce(((e,t)=>e-i[t]),t)}function m(e,t){return e.reduce(((e,n)=>p(e,t)>0?e.concat([n]):e),[])}function g(i,o,d){const u=function(e){return r.map(((n,i)=>({start:n-a[i]+l+e,end:n+t-l+e})))}(o);return i.map((t=>{const a=d?0:-n,i=d?n:0,r=d?"end":"start",o=u[t][r];return{index:t,loopPoint:o,slideLocation:SS(-1),translate:ES(e,c[t]),target:()=>s.get()>o?a:i}}))}const f={canLoop:function(){return h.every((({index:e})=>{const n=d.filter((t=>t!==e));return p(n,t)<=.1}))},clear:function(){h.forEach((e=>e.translate.clear()))},loop:function(){h.forEach((e=>{const{target:t,translate:n,slideLocation:a}=e,i=t();i!==a.get()&&(n.to(i),a.set(i))}))},loopPoints:h};return f}function AS(e,t,n){let a,i=!1;return{init:function(r){n&&(a=new MutationObserver((e=>{i||(nS(n)||n(r,e))&&function(e){for(const n of e)if("childList"===n.type){r.reInit(),t.emit("slidesChanged");break}}(e)})),a.observe(e,{childList:!0}))},destroy:function(){a&&a.disconnect(),i=!0}}}function zS(e,t,n,a){const i={};let r,o=null,s=null,c=!1;return{init:function(){r=new IntersectionObserver((e=>{c||(e.forEach((e=>{const n=t.indexOf(e.target);i[n]=e})),o=null,s=null,n.emit("slidesInView"))}),{root:e.parentElement,threshold:a}),t.forEach((e=>r.observe(e)))},destroy:function(){r&&r.disconnect(),c=!0},get:function(e=!0){if(e&&o)return o;if(!e&&s)return s;const t=function(e){return hS(i).reduce(((t,n)=>{const a=parseInt(n),{isIntersecting:r}=i[a];return(e&&r||!e&&!r)&&t.push(a),t}),[])}(e);return e&&(o=t),e||(s=t),t}}}function IS(e,t,n,a,i,r,o,s,c){const{startEdge:l,endEdge:d,direction:u}=e,h=eS(n);const p={groupSlides:function(e){return h?function(e,t){return sS(e).filter((e=>e%t==0)).map((n=>e.slice(n,n+t)))}(e,n):function(e){return e.length?sS(e).reduce(((n,h,p)=>{const m=cS(n)||0,g=0===m,f=h===lS(e),_=i[l]-r[m][l],v=i[l]-r[h][d],y=!a&&g?u(o):0,b=iS(v-(!a&&f?u(s):0)-(_+y));return p&&b>t+c&&n.push(h),f&&n.push(e.length),n}),[]).map(((t,n,a)=>{const i=Math.max(a[n-1]||0);return e.slice(i,t)})):[]}(e)}};return p}function TS(e,t,n,a,i,r,o){const{align:s,axis:c,direction:l,startIndex:d,loop:u,duration:h,dragFree:p,dragThreshold:m,inViewThreshold:g,slidesToScroll:f,skipSnaps:_,containScroll:v,watchResize:y,watchSlides:b,watchDrag:w,watchFocus:x}=r,C={measure:function(e){const{offsetTop:t,offsetLeft:n,offsetWidth:a,offsetHeight:i}=e;return{top:t,right:n+a,bottom:t+i,left:n,width:a,height:i}}},M=C.measure(t),k=n.map(C.measure),S=function(e,t){const n="rtl"===t,a="y"===e,i=!a&&n?-1:1,r={scroll:a?"y":"x",cross:a?"x":"y",startEdge:a?"top":n?"right":"left",endEdge:a?"bottom":n?"left":"right",measureSize:function(e){const{height:t,width:n}=e;return a?t:n},direction:function(e){return e*i}};return r}(c,l),E=S.measureSize(M),$=function(e){const t={measure:function(t){return e*(t/100)}};return t}(E),A=function(e,t){const n={start:function(){return 0},center:function(e){return a(e)/2},end:a};function a(e){return t-e}const i={measure:function(a,i){return tS(e)?n[e](a):e(t,a,i)}};return i}(s,E),z=!u&&!!v,I=u||!!v,{slideSizes:T,slideSizesWithGaps:j,startGap:O,endGap:D}=function(e,t,n,a,i,r){const{measureSize:o,startEdge:s,endEdge:c}=e,l=n[0]&&i,d=function(){if(!l)return 0;const e=n[0];return iS(t[s]-e[s])}(),u=function(){if(!l)return 0;const e=r.getComputedStyle(cS(a));return parseFloat(e.getPropertyValue(`margin-${c}`))}(),h=n.map(o),p=n.map(((e,t,n)=>{const a=!t,i=dS(n,t);return a?h[t]+d:i?h[t]+u:n[t+1][s]-e[s]})).map(iS);return{slideSizes:h,slideSizesWithGaps:p,startGap:d,endGap:u}}(S,M,k,n,I,i),R=IS(S,E,f,u,M,k,O,D,2),{snaps:P,snapsAligned:L}=function(e,t,n,a,i){const{startEdge:r,endEdge:o}=e,{groupSlides:s}=i,c=s(a).map((e=>cS(e)[o]-e[0][r])).map(iS).map(t.measure),l=a.map((e=>n[r]-e[r])).map((e=>-iS(e))),d=s(l).map((e=>e[0])).map(((e,t)=>e+c[t]));return{snaps:l,snapsAligned:d}}(S,A,M,k,R),N=-cS(P)+cS(j),{snapsContained:F,scrollContainLimit:V}=function(e,t,n,a,i){const r=_S(-t+e,0),o=n.map(((e,t)=>{const{min:a,max:i}=r,o=r.constrain(e),s=!t,l=dS(n,t);return s?i:l||c(a,o)?a:c(i,o)?i:o})).map((e=>parseFloat(e.toFixed(3)))),s=function(){const e=o[0],t=cS(o);return _S(o.lastIndexOf(e),o.indexOf(t)+1)}();function c(e,t){return oS(e,t)<1}return{snapsContained:function(){if(t<=e+i)return[r.max];if("keepSnaps"===a)return o;const{min:n,max:c}=s;return o.slice(n,c)}(),scrollContainLimit:s}}(E,N,L,v,2),H=z?F:L,{limit:B}=function(e,t,n){const a=t[0];return{limit:_S(n?a-e:cS(t),a)}}(N,H,u),q=vS(lS(H),d,u),U=q.clone(),W=sS(n),Z=fS(a,i,(e=>(({dragHandler:e,scrollBody:t,scrollBounds:n,options:{loop:a}},i)=>{a||n.constrain(e.pointerDown()),t.seek(i)})(se,e)),(e=>(({scrollBody:e,translate:t,location:n,offsetLocation:a,scrollLooper:i,slideLooper:r,dragHandler:o,animation:s,eventHandler:c,scrollBounds:l,options:{loop:d}},u)=>{const h=e.settled(),p=!l.shouldConstrain(),m=d?h:h&&p;m&&!o.pointerDown()&&(s.stop(),c.emit("settle")),m||c.emit("scroll");const g=n.get()*u+Y.get()*(1-u);a.set(g),d&&(i.loop(e.direction()),r.loop()),t.to(a.get())})(se,e))),Q=H[q.get()],G=SS(Q),Y=SS(Q),K=SS(Q),X=SS(Q),J=function(e,t,n,a,i,r){let o=0,s=0,c=i,l=r,d=e.get(),u=0;function h(e){return c=e,m}function p(e){return l=e,m}const m={direction:function(){return s},duration:function(){return c},velocity:function(){return o},seek:function(t){const i=t/1e3,r=c*i,h=a.get()-e.get();let p=0;return c?(n.set(e),o+=h/r,o*=l,d+=o,e.add(o*i),p=d-u):(o=0,n.set(a),e.set(a),p=h),s=rS(p),u=d,m},settled:function(){return iS(a.get()-t.get())<.001},useBaseFriction:function(){return p(r)},useBaseDuration:function(){return h(i)},useFriction:p,useDuration:h};return m}(G,K,Y,X,h,.68),ee=MS(u,H,N,B,X),te=function(e,t,n,a,i,r,o){function s(i){const s=i.distance,c=i.index!==t.get();r.add(s),s&&(a.duration()?e.start():(e.update(),e.render(1),e.update())),c&&(n.set(t.get()),t.set(i.index),o.emit("select"))}const c={distance:function(e,t){s(i.byDistance(e,t))},index:function(e,n){const a=t.clone().set(e);s(i.byIndex(a.get(),n))}};return c}(Z,q,U,J,ee,X,o),ne=function(e){const{max:t,length:n}=e,a={get:function(e){return n?(e-t)/-n:0}};return a}(B),ae=gS(),ie=zS(t,n,o,g),{slideRegistry:re}=function(e,t,n,a,i,r){const{groupSlides:o}=i,{min:s,max:c}=a;return{slideRegistry:function(){const a=o(r),i=!e||"keepSnaps"===t;return 1===n.length?[r]:i?a:a.slice(s,c).map(((e,t,n)=>{const a=!t,i=dS(n,t);return a?uS(cS(n[0])+1):i?uS(lS(r)-cS(n)[0]+1,cS(n)[0]):e}))}()}}(z,v,H,V,R,W),oe=kS(e,n,re,te,J,ae,o,x),se={ownerDocument:a,ownerWindow:i,eventHandler:o,containerRect:M,slideRects:k,animation:Z,axis:S,dragHandler:yS(S,e,a,i,X,bS(S,i),G,Z,te,J,ee,q,o,$,p,m,_,.68,w),eventStore:ae,percentOfView:$,index:q,indexPrevious:U,limit:B,location:G,offsetLocation:K,previousLocation:Y,options:r,resizeHandler:wS(t,o,i,n,S,y,C),scrollBody:J,scrollBounds:xS(B,K,X,J,$),scrollLooper:CS(N,B,K,[G,K,Y,X]),scrollProgress:ne,scrollSnapList:H.map(ne.get),scrollSnaps:H,scrollTarget:ee,scrollTo:te,slideLooper:$S(S,E,N,T,j,P,H,K,n),slideFocus:oe,slidesHandler:AS(t,o,b),slidesInView:ie,slideIndexes:W,slideRegistry:re,slidesToScroll:R,target:X,translate:ES(S,t)};return se}const jS={align:"center",axis:"x",container:null,slides:null,containScroll:"trimSnaps",direction:"ltr",slidesToScroll:1,inViewThreshold:0,breakpoints:{},dragFree:!1,dragThreshold:10,loop:!1,skipSnaps:!1,duration:25,startIndex:0,active:!0,watchDrag:!0,watchResize:!0,watchSlides:!0,watchFocus:!0};function OS(e){function t(e,t){return pS(e,t||{})}const n={mergeOptions:t,optionsAtMedia:function(n){const a=n.breakpoints||{},i=hS(a).filter((t=>e.matchMedia(t).matches)).map((e=>a[e])).reduce(((e,n)=>t(e,n)),{});return t(n,i)},optionsMediaQueries:function(t){return t.map((e=>hS(e.breakpoints||{}))).reduce(((e,t)=>e.concat(t)),[]).map(e.matchMedia)}};return n}function DS(e,t,n){const a=e.ownerDocument,i=a.defaultView,r=OS(i),o=function(e){let t=[];const n={init:function(n,a){return t=a.filter((({options:t})=>!1!==e.optionsAtMedia(t).active)),t.forEach((t=>t.init(n,e))),a.reduce(((e,t)=>Object.assign(e,{[t.name]:t})),{})},destroy:function(){t=t.filter((e=>e.destroy()))}};return n}(r),s=gS(),c=function(){let e,t={};function n(e){return t[e]||[]}const a={init:function(t){e=t},emit:function(t){return n(t).forEach((n=>n(e,t))),a},off:function(e,i){return t[e]=n(e).filter((e=>e!==i)),a},on:function(e,i){return t[e]=n(e).concat([i]),a},clear:function(){t={}}};return a}(),{mergeOptions:l,optionsAtMedia:d,optionsMediaQueries:u}=r,{on:h,off:p,emit:m}=c,g=S;let f,_,v,y,b=!1,w=l(jS,DS.globalOptions),x=l(w),C=[];function M(t){const n=TS(e,v,y,a,i,t,c);if(t.loop&&!n.slideLooper.canLoop()){return M(Object.assign({},t,{loop:!1}))}return n}function k(t,n){b||(w=l(w,t),x=d(w),C=n||C,function(){const{container:t,slides:n}=x,a=tS(t)?e.querySelector(t):t;v=a||e.children[0];const i=tS(n)?v.querySelectorAll(n):n;y=[].slice.call(i||v.children)}(),f=M(x),u([w,...C.map((({options:e})=>e))]).forEach((e=>s.add(e,"change",S))),x.active&&(f.translate.to(f.location.get()),f.animation.init(),f.slidesInView.init(),f.slideFocus.init(z),f.eventHandler.init(z),f.resizeHandler.init(z),f.slidesHandler.init(z),f.options.loop&&f.slideLooper.loop(),v.offsetParent&&y.length&&f.dragHandler.init(z),_=o.init(z,C)))}function S(e,t){const n=A();E(),k(l({startIndex:n},e),t),c.emit("reInit")}function E(){f.dragHandler.destroy(),f.eventStore.clear(),f.translate.clear(),f.slideLooper.clear(),f.resizeHandler.destroy(),f.slidesHandler.destroy(),f.slidesInView.destroy(),f.animation.destroy(),o.destroy(),s.clear()}function $(e,t,n){x.active&&!b&&(f.scrollBody.useBaseFriction().useDuration(!0===t?0:x.duration),f.scrollTo.index(e,n||0))}function A(){return f.index.get()}const z={canScrollNext:function(){return f.index.add(1).get()!==A()},canScrollPrev:function(){return f.index.add(-1).get()!==A()},containerNode:function(){return v},internalEngine:function(){return f},destroy:function(){b||(b=!0,s.clear(),E(),c.emit("destroy"),c.clear())},off:p,on:h,emit:m,plugins:function(){return _},previousScrollSnap:function(){return f.indexPrevious.get()},reInit:g,rootNode:function(){return e},scrollNext:function(e){$(f.index.add(1).get(),e,-1)},scrollPrev:function(e){$(f.index.add(-1).get(),e,1)},scrollProgress:function(){return f.scrollProgress.get(f.location.get())},scrollSnapList:function(){return f.scrollSnapList},scrollTo:$,selectedScrollSnap:A,slideNodes:function(){return y},slidesInView:function(){return f.slidesInView.get()},slidesNotInView:function(){return f.slidesInView.get(!1)}};return k(t,n),setTimeout((()=>c.emit("init")),0),z}function RS(){return RS=Object.assign||function(e){for(var t=1;t=e;case"y":return Math.abs(i)>=e;case"z":return Math.abs(r)>=e;default:return!1}}(r,a)&&e.preventDefault(),l.isStarted?l.isMomentum&&r>Math.max(2,2*l.lastAbsDelta)&&(M(!0),x()):x(),0===r&&Object.is&&Object.is(e.deltaX,-0)?d=!0:(t=e,l.axisMovement=LS(l.axisMovement,a),l.lastAbsDelta=r,l.scrollPointsToMerge.push({axisDelta:a,timeStamp:i}),g(),p({axisDelta:a,isStart:!l.isStartPublished}),l.isStartPublished=!0,C())},g=function(){var e;l.scrollPointsToMerge.length===WS?(l.scrollPoints.unshift({axisDeltaSum:l.scrollPointsToMerge.map((function(e){return e.axisDelta})).reduce(LS),timeStamp:(e=l.scrollPointsToMerge.map((function(e){return e.timeStamp})),e.reduce((function(e,t){return e+t}))/e.length)}),_(),l.scrollPointsToMerge.length=0,l.scrollPoints.length=1,l.isMomentum||b()):l.isStartPublished||f()},f=function(){var e;l.axisVelocity=(e=l.scrollPointsToMerge,e[e.length-1]).axisDelta.map((function(e){return e/l.willEndTimeout}))},_=function(){var e=l.scrollPoints,t=e[0],n=e[1];if(n&&t){var a=t.timeStamp-n.timeStamp;if(!(a<=0)){var i=t.axisDeltaSum.map((function(e){return e/a})),r=i.map((function(e,t){return e/(l.axisVelocity[t]||1)}));l.axisVelocity=i,l.accelerationFactors.push(r),v(a)}}},v=function(e){var t=10*Math.ceil(e/10)*1.2;l.isMomentum||(t=Math.max(100,2*t)),l.willEndTimeout=Math.min(1e3,Math.round(t))},y=function(e){return 0===e||e<=US&&e>=qS},b=function(){if(l.accelerationFactors.length>=ZS){if(d&&(d=!1,NS(l.axisVelocity)>=.2))return void w();var e=l.accelerationFactors.slice(-1*ZS);e.every((function(e){var t=!!e.reduce((function(e,t){return e&&e<1&&e===t?1:0})),n=e.filter(y).length===e.length;return t||n}))&&w(),l.accelerationFactors=e}},w=function(){l.isMomentum=!0},x=function(){(l=YS()).isStarted=!0,l.startTime=Date.now(),n=void 0,d=!1},C=function(){clearTimeout(a),a=setTimeout(M,l.willEndTimeout)},M=function(e){void 0===e&&(e=!1),l.isStarted&&(l.isMomentum&&e?p({isEnding:!0,isMomentumCancel:!0}):p({isEnding:!0}),l.isMomentum=!1,l.isStarted=!1)},k=function(e){var t=[],n=function(n){n.removeEventListener("wheel",e),t=t.filter((function(e){return e!==n}))};return FS({observe:function(a){return a.addEventListener("wheel",e,{passive:!1}),t.push(a),function(){return n(a)}},unobserve:n,disconnect:function(){t.forEach(n)}})}(u),S=k.observe,E=k.unobserve,$=k.disconnect;return h(e),FS({on:r,off:o,observe:S,unobserve:E,disconnect:$,feedWheel:u,updateOptions:h})}var XS={active:!0,breakpoints:{},wheelDraggingClass:"is-wheel-dragging",forceWheelAxis:void 0,target:void 0};function JS(e){var t;void 0===e&&(e={});var n=function(){};var a={name:"wheelGestures",options:e,init:function(a,i){var r,o,s=i.mergeOptions,c=i.optionsAtMedia,l=s(XS,JS.globalOptions),d=s(l,e);t=c(d);var u,h=a.internalEngine(),p=null!=(r=t.target)?r:a.containerNode().parentNode,m=null!=(o=t.forceWheelAxis)?o:h.options.axis,g=KS({preventWheelAction:m,reverseSign:[!0,!0,!1]}),f=g.observe(p),_=g.on("wheel",(function(e){var a=e.axisDelta,i=a[0],r=a[1],o="x"===m?i:r,s="x"===m?r:i,c=e.isMomentum&&e.previous&&!e.previous.isMomentum,l=e.isEnding&&!e.isMomentum||c;Math.abs(o)>Math.abs(s)&&!v&&!e.isMomentum&&function(e){try{x(u=new MouseEvent("mousedown",e.event))}catch(e){return n()}v=!0,document.documentElement.addEventListener("mousemove",b,!0),document.documentElement.addEventListener("mouseup",b,!0),void document.documentElement.addEventListener("mousedown",b,!0),t.wheelDraggingClass&&p.classList.add(t.wheelDraggingClass)}(e);if(!v)return;l?function(e){v=!1,x(w("mouseup",e)),y(),t.wheelDraggingClass&&p.classList.remove(t.wheelDraggingClass)}(e):x(w("mousemove",e))})),v=!1;function y(){document.documentElement.removeEventListener("mousemove",b,!0),document.documentElement.removeEventListener("mouseup",b,!0),document.documentElement.removeEventListener("mousedown",b,!0)}function b(e){v&&e.isTrusted&&e.stopImmediatePropagation()}function w(e,t){var n,a;if(m===h.options.axis){var i=t.axisMovement;n=i[0],a=i[1]}else{var r=t.axisMovement;a=r[0],n=r[1]}if(!h.options.skipSnaps&&!h.options.dragFree){var o=h.containerRect.width,s=h.containerRect.height;n=n<0?Math.max(n,-o):Math.min(n,o),a=a<0?Math.max(a,-s):Math.min(a,s)}return new MouseEvent(e,{clientX:u.clientX+n,clientY:u.clientY+a,screenX:u.screenX+n,screenY:u.screenY+a,movementX:n,movementY:a,button:0,bubbles:!0,cancelable:!0,composed:!0})}function x(e){a.containerNode().dispatchEvent(e)}n=function(){f(),_(),y()}},destroy:function(){return n()}};return a}JS.globalOptions=void 0;class eE{constructor(e,t,n){this._mutationObserver=new MutationObserver(((e,t)=>this._refreshCarouselContents())),this._refreshCarouselContents=()=>{const e=lf(this._parent);!Dv(this._carousel.slideNodes(),e)&&(this._carousel.destroy(),this._carousel=this._createCarousel(e))},this._root=e,this._parent=t,this._direction=n?.direction??"horizontal",this._transitionEffect=n?.transitionEffect??"slide",this._startIndex=n?.startIndex??0,this._dragFree=n?.dragFree??!1,this._loop=n?.loop??!1,this._draggable=n?.dragEnabled??!0,this._plugins=n?.plugins??[],this._carousel=this._createCarousel(lf(this._parent)),t instanceof HTMLSlotElement&&t.addEventListener("slotchange",this._refreshCarouselContents),this._mutationObserver.observe(this._parent,{childList:!0})}destroy(){this._parent instanceof HTMLSlotElement&&this._parent.removeEventListener("slotchange",this._refreshCarouselContents),this._mutationObserver.disconnect(),this._carousel.destroy()}getSlide(e){return this._carousel.slideNodes()[e]??null}getSelectedSlide(){return this.getSlide(this.getSelectedIndex())}getSelectedIndex(){return this._carousel.selectedScrollSnap()}selectSlide(e){this._carousel.scrollTo(e,"none"===this._transitionEffect);const t=this.getSlide(e);t&&Bg(this._parent,"carousel:force-select",{index:e,element:t})}_createCarousel(e){const t=DS(this._root,{slides:e,axis:"horizontal"===this._direction?"x":"y",duration:20,startIndex:this._startIndex,dragFree:this._dragFree,loop:this._loop,containScroll:"trimSnaps",watchSlides:!1,watchResize:!0,watchDrag:this._draggable},[...this._plugins,...e.length>1?[JS({forceWheelAxis:"y"})]:[]]),n=()=>{const e=(()=>{const e=t.selectedScrollSnap(),n=t.slideNodes()[e]??null;return n?{index:e,element:n}:null})();e&&Bg(this._parent,"carousel:select",e)};return t.on("select",(()=>n())),t}}let tE=class extends se{constructor(){super(...arguments),this.direction="horizontal",this.dragEnabled=!0,this.selected=0,this._refParent=ze(),this._refRoot=ze(),this._carousel=null}connectedCallback(){super.connectedCallback(),this.requestUpdate()}disconnectedCallback(){this._carousel?.destroy(),this._carousel=null,super.disconnectedCallback()}willUpdate(e){e.has("direction")&&this.setAttribute("direction",this.direction);["direction","dragEnabled","dragFree","loop","plugins","transitionEffect"].some((t=>e.has(t)))&&(this._carousel?.destroy(),this._carousel=null)}render(){return q`
+ +
+
+ +
+
+ +
`}updated(e){!this._carousel&&this._refRoot.value&&this._refParent.value?this._carousel=new eE(this._refRoot.value,this._refParent.value,{direction:this.direction,dragEnabled:this.dragEnabled,dragFree:this.dragFree,startIndex:this.selected,transitionEffect:this.transitionEffect,loop:this.loop,plugins:this.plugins}):e.has("selected")&&this._carousel?.selectSlide(this.selected)}static get styles(){return o(":host {\n display: block;\n height: 100%;\n width: 100%;\n position: relative;\n}\n\n.embla {\n width: 100%;\n height: 100%;\n margin-left: auto;\n margin-right: auto;\n}\n\n.embla__container {\n display: flex;\n width: 100%;\n height: 100%;\n user-select: none;\n -webkit-touch-callout: none;\n -khtml-user-select: none;\n -webkit-tap-highlight-color: transparent;\n}\n\n:host([direction=vertical]) .embla__container {\n flex-direction: column;\n}\n\n:host([direction=horizontal]) .embla__container {\n flex-direction: row;\n}\n\n.embla__viewport {\n width: 100%;\n height: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n.embla__viewport.is-draggable {\n cursor: move;\n cursor: grab;\n}\n\n.embla__viewport.is-dragging {\n cursor: grabbing;\n}\n\n:host([direction=vertical]) ::slotted(.embla__slide) {\n margin-bottom: 5px;\n}\n\n:host([direction=horizontal]) ::slotted(.embla__slide) {\n margin-right: 5px;\n}")}};e([he({attribute:!0,reflect:!0})],tE.prototype,"direction",void 0),e([he({attribute:!0})],tE.prototype,"transitionEffect",void 0),e([he({attribute:!1})],tE.prototype,"loop",void 0),e([he({attribute:!1})],tE.prototype,"dragFree",void 0),e([he({attribute:!1})],tE.prototype,"dragEnabled",void 0),e([he({attribute:!1})],tE.prototype,"plugins",void 0),e([he({attribute:!1})],tE.prototype,"selected",void 0),tE=e([le("frigate-card-carousel")],tE); +/** + * @license + * Copyright 2019 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const nE=window,aE=nE.ShadowRoot&&(void 0===nE.ShadyCSS||nE.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,iE=Symbol(),rE=new WeakMap;let oE=class{constructor(e,t,n){if(this._$cssResult$=!0,n!==iE)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(aE&&void 0===e){const n=void 0!==t&&1===t.length;n&&(e=rE.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),n&&rE.set(t,e))}return e}toString(){return this.cssText}};const sE=(e,t)=>{aE?e.adoptedStyleSheets=t.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet)):t.forEach((t=>{const n=document.createElement("style"),a=nE.litNonce;void 0!==a&&n.setAttribute("nonce",a),n.textContent=t.cssText,e.appendChild(n)}))},cE=aE?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const n of e.cssRules)t+=n.cssText;return(e=>new oE("string"==typeof e?e:e+"",void 0,iE))(t)})(e):e +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */;var lE;const dE=window,uE=dE.trustedTypes,hE=uE?uE.emptyScript:"",pE=dE.reactiveElementPolyfillSupport,mE={toAttribute(e,t){switch(t){case Boolean:e=e?hE:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let n=e;switch(t){case Boolean:n=null!==e;break;case Number:n=null===e?null:Number(e);break;case Object:case Array:try{n=JSON.parse(e)}catch(e){n=null}}return n}},gE=(e,t)=>t!==e&&(t==t||e==e),fE={attribute:!0,type:String,converter:mE,reflect:!1,hasChanged:gE},_E="finalized";class vE extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(e){var t;this.finalize(),(null!==(t=this.h)&&void 0!==t?t:this.h=[]).push(e)}static get observedAttributes(){this.finalize();const e=[];return this.elementProperties.forEach(((t,n)=>{const a=this._$Ep(n,t);void 0!==a&&(this._$Ev.set(a,n),e.push(a))})),e}static createProperty(e,t=fE){if(t.state&&(t.attribute=!1),this.finalize(),this.elementProperties.set(e,t),!t.noAccessor&&!this.prototype.hasOwnProperty(e)){const n="symbol"==typeof e?Symbol():"__"+e,a=this.getPropertyDescriptor(e,n,t);void 0!==a&&Object.defineProperty(this.prototype,e,a)}}static getPropertyDescriptor(e,t,n){return{get(){return this[t]},set(a){const i=this[e];this[t]=a,this.requestUpdate(e,i,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)||fE}static finalize(){if(this.hasOwnProperty(_E))return!1;this[_E]=!0;const e=Object.getPrototypeOf(this);if(e.finalize(),void 0!==e.h&&(this.h=[...e.h]),this.elementProperties=new Map(e.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){const e=this.properties,t=[...Object.getOwnPropertyNames(e),...Object.getOwnPropertySymbols(e)];for(const n of t)this.createProperty(n,e[n])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const n=new Set(e.flat(1/0).reverse());for(const e of n)t.unshift(cE(e))}else void 0!==e&&t.push(cE(e));return t}static _$Ep(e,t){const n=t.attribute;return!1===n?void 0:"string"==typeof n?n:"string"==typeof e?e.toLowerCase():void 0}_$Eu(){var e;this._$E_=new Promise((e=>this.enableUpdating=e)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(e=this.constructor.h)||void 0===e||e.forEach((e=>e(this)))}addController(e){var t,n;(null!==(t=this._$ES)&&void 0!==t?t:this._$ES=[]).push(e),void 0!==this.renderRoot&&this.isConnected&&(null===(n=e.hostConnected)||void 0===n||n.call(e))}removeController(e){var t;null===(t=this._$ES)||void 0===t||t.splice(this._$ES.indexOf(e)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((e,t)=>{this.hasOwnProperty(t)&&(this._$Ei.set(t,this[t]),delete this[t])}))}createRenderRoot(){var e;const t=null!==(e=this.shadowRoot)&&void 0!==e?e:this.attachShadow(this.constructor.shadowRootOptions);return sE(t,this.constructor.elementStyles),t}connectedCallback(){var e;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostConnected)||void 0===t?void 0:t.call(e)}))}enableUpdating(e){}disconnectedCallback(){var e;null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostDisconnected)||void 0===t?void 0:t.call(e)}))}attributeChangedCallback(e,t,n){this._$AK(e,n)}_$EO(e,t,n=fE){var a;const i=this.constructor._$Ep(e,n);if(void 0!==i&&!0===n.reflect){const r=(void 0!==(null===(a=n.converter)||void 0===a?void 0:a.toAttribute)?n.converter:mE).toAttribute(t,n.type);this._$El=e,null==r?this.removeAttribute(i):this.setAttribute(i,r),this._$El=null}}_$AK(e,t){var n;const a=this.constructor,i=a._$Ev.get(e);if(void 0!==i&&this._$El!==i){const e=a.getPropertyOptions(i),r="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==(null===(n=e.converter)||void 0===n?void 0:n.fromAttribute)?e.converter:mE;this._$El=i,this[i]=r.fromAttribute(t,e.type),this._$El=null}}requestUpdate(e,t,n){let a=!0;void 0!==e&&(((n=n||this.constructor.getPropertyOptions(e)).hasChanged||gE)(this[e],t)?(this._$AL.has(e)||this._$AL.set(e,t),!0===n.reflect&&this._$El!==e&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(e,n))):a=!1),!this.isUpdatePending&&a&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(e){Promise.reject(e)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var e;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((e,t)=>this[t]=e)),this._$Ei=void 0);let t=!1;const n=this._$AL;try{t=this.shouldUpdate(n),t?(this.willUpdate(n),null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostUpdate)||void 0===t?void 0:t.call(e)})),this.update(n)):this._$Ek()}catch(e){throw t=!1,this._$Ek(),e}t&&this._$AE(n)}willUpdate(e){}_$AE(e){var t;null===(t=this._$ES)||void 0===t||t.forEach((e=>{var t;return null===(t=e.hostUpdated)||void 0===t?void 0:t.call(e)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(e){return!0}update(e){void 0!==this._$EC&&(this._$EC.forEach(((e,t)=>this._$EO(t,this[t],e))),this._$EC=void 0),this._$Ek()}updated(e){}firstUpdated(e){}}vE[_E]=!0,vE.elementProperties=new Map,vE.elementStyles=[],vE.shadowRootOptions={mode:"open"},null==pE||pE({ReactiveElement:vE}),(null!==(lE=dE.reactiveElementVersions)&&void 0!==lE?lE:dE.reactiveElementVersions=[]).push("1.6.3"); +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const yE=0,bE=Symbol();class wE{constructor(e,t,n){this.o=0,this.status=0,this.autoRun=!0,this.i=e,this.i.addController(this);const a="object"==typeof t?t:{task:t,args:n};this.t=a.task,this.h=a.args,void 0!==a.autoRun&&(this.autoRun=a.autoRun),this.taskComplete=new Promise(((e,t)=>{this.l=e,this.u=t}))}hostUpdated(){this.performTask()}async performTask(){var e;const t=null===(e=this.h)||void 0===e?void 0:e.call(this);this.shouldRun(t)&&this.run(t)}shouldRun(e){return this.autoRun&&this.v(e)}async run(e){var t;let n,a;null!=e||(e=null===(t=this.h)||void 0===t?void 0:t.call(this)),2!==this.status&&3!==this.status||(this.taskComplete=new Promise(((e,t)=>{this.l=e,this.u=t}))),this.status=1,this._=void 0,this.m=void 0,this.i.requestUpdate();const i=++this.o;try{n=await this.t(e)}catch(e){a=e}this.o===i&&(n===bE?this.status=0:(void 0===a?(this.status=2,this.l(n)):(this.status=3,this.u(a)),this.m=n,this._=a),this.i.requestUpdate())}get value(){return this.m}get error(){return this._}render(e){var t,n,a,i;switch(this.status){case 0:return null===(t=e.initial)||void 0===t?void 0:t.call(e);case 1:return null===(n=e.pending)||void 0===n?void 0:n.call(e);case 2:return null===(a=e.complete)||void 0===a?void 0:a.call(e,this.value);case 3:return null===(i=e.error)||void 0===i?void 0:i.call(e,this.error);default:this.status}}v(e){const t=this.T;return this.T=e,Array.isArray(e)&&Array.isArray(t)?e.length===t.length&&e.some(((e,n)=>gE(e,t[n]))):e!==t}}class xE{constructor(e){this._keys=e}modify(e){this._keys.forEach((t=>e.removeContext(t)))}}var CE=":host {\n display: flex;\n flex-direction: column;\n width: 100%;\n margin-left: 5px;\n padding: 5px;\n color: var(--primary-text-color);\n overflow: hidden;\n column-gap: 5%;\n}\n\ndiv.title {\n font-size: 1.2rem;\n font-weight: bold;\n}\n\ndiv.details {\n flex: 1;\n justify-content: center;\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n --mdc-icon-size: 16px;\n min-height: 0px;\n}";const ME=(e,t,n,a)=>{const i={...a?.cardWideConfig&&{cardWideConfig:a.cardWideConfig}};return q` ${t.render({initial:()=>a?.inProgressFunc?.()??Ck(i),pending:()=>a?.inProgressFunc?.()??Ck(i),error:t=>{Gg(t),Sk(e,t)},complete:n})}`},kE=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,SE=(e,t,n,a=!0)=>new wE(e,{args:()=>[!!t(),n()],task:async([e,n])=>{const a=t();return e&&a&&n?(async(e,t)=>e&&t?t.startsWith("data:")||t.match(kE)?t:new Promise(((n,a)=>{e?e.fetchWithAuth(t).then((e=>e.blob())).then((e=>{const t=new FileReader;t.onload=()=>{const e=t.result;n("string"==typeof e?e:null)},t.onerror=e=>a(e),t.readAsDataURL(e)})):a()})):null)(a,n):null},autoRun:a}),EE=300;let $E=class extends se{constructor(){super(),this._intersectionObserver=new IntersectionObserver(this._intersectionHandler.bind(this))}connectedCallback(){this._intersectionObserver.observe(this),super.connectedCallback()}disconnectedCallback(){super.disconnectedCallback(),this._intersectionObserver.disconnect()}willUpdate(e){e.has("thumbnail")&&(this._embedThumbnailTask=SE(this,(()=>this.hass),(()=>this.thumbnail),!1),this._intersectionObserver.unobserve(this),this._intersectionObserver.observe(this))}_intersectionHandler(e){this._embedThumbnailTask?.status===yE&&e.some((e=>e.isIntersecting))&&this._embedThumbnailTask?.run()}render(){const e=q` `;return this._embedThumbnailTask?q`${this.thumbnail?ME(this,this._embedThumbnailTask,(e=>e?q``:q``),{inProgressFunc:()=>e}):e} `:e}static get styles(){return o(":host {\n display: block;\n overflow: hidden;\n aspect-ratio: 1/1;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\nimg {\n display: block;\n}\n\nimg,\nha-icon {\n display: inline-block;\n vertical-align: top;\n margin: 0;\n border-radius: var(--frigate-card-css-border-radius, var(--ha-card-border-radius, 4px));\n width: var(--frigate-card-thumbnail-size);\n max-height: 100%;\n aspect-ratio: 1/1;\n object-fit: cover;\n}\n\nha-icon {\n --mdc-icon-size: 50%;\n color: var(--primary-text-color);\n display: flex;\n justify-content: center;\n align-items: center;\n border: 1px solid rgba(255, 255, 255, 0.3);\n box-sizing: border-box;\n opacity: 0.2;\n}")}};e([he({attribute:!1})],$E.prototype,"thumbnail",void 0),e([he({attribute:!1})],$E.prototype,"hass",void 0),$E=e([le("frigate-card-thumbnail-feature-thumbnail")],$E);let AE=class extends se{render(){if(this.date)return q` + ${this.cameraMetadata?.engineLogo?q``:""} +
+
${Wu(this.date,"HH:mm")}
+
${Wu(this.date,"MMM do")}
+ ${this.showCameraTitle&&this.cameraMetadata?.title?q`
${this.cameraMetadata.title}
`:q``} +
+ `}static get styles(){return o(":host {\n display: block;\n max-width: var(--frigate-card-thumbnail-size);\n max-height: var(--frigate-card-thumbnail-size);\n aspect-ratio: 1/1;\n border: 1px solid var(--secondary-color);\n background-color: var(--secondary-background-color);\n border-radius: var(--frigate-card-css-border-radius, var(--ha-card-border-radius, 4px));\n overflow: hidden;\n padding: 10px;\n box-sizing: border-box;\n position: relative;\n}\n\nimg.background {\n display: block;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n padding: 10%;\n box-sizing: border-box;\n pointer-events: none;\n opacity: 0.1;\n}\n\ndiv.content {\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n color: var(--primary-text-color);\n}\n\ndiv {\n text-align: center;\n}\n\ndiv.title {\n font-size: 1.5rem;\n}\n\ndiv.camera {\n font-size: 0.7em;\n}")}};e([he({attribute:!1})],AE.prototype,"date",void 0),e([he({attribute:!1})],AE.prototype,"cameraMetadata",void 0),e([he({attribute:!1})],AE.prototype,"showCameraTitle",void 0),AE=e([le("frigate-card-thumbnail-feature-text")],AE);let zE=class extends se{render(){if(!this.media)return;const e=this.media.getScore(),t=e?(100*e).toFixed(2)+"%":null,n=this.media.getStartTime(),a=n?Kg(n):null,i=this.media.getEndTime(),r=n&&i?ef(n,i):null,o=this.media.inProgress()?V_("event.in_progress"):null,s=qg(this.media.getWhat()?.join(", "))??null,c=qg(this.media.getWhere()?.join(", "))??null,l=qg(this.media.getTags()?.join(", "))??null,d=s||l?(s??"")+(s&&l?": ":"")+(l??""):null,u=this.seek?Wu(this.seek,"HH:mm:ss"):null;return q` + ${d?q`
+ ${d} + ${t?q`${t}`:""} +
`:""} +
+ ${a?q`
+ + ${a} +
+ ${r||o?q`
+ + ${r?q`${r}`:""} + ${o?q`${o}`:""} +
`:""}`:""} + ${this.cameraTitle?q`
+ + ${this.cameraTitle} +
`:""} + ${c?q`
+ + ${c} +
`:q``} + ${l?q`
+ + ${l} +
`:q``} + ${u?q`
+ + ${u} +
`:q``} +
+ `}static get styles(){return o(CE)}};e([he({attribute:!1})],zE.prototype,"media",void 0),e([he({attribute:!1})],zE.prototype,"seek",void 0),e([he({attribute:!1})],zE.prototype,"cameraTitle",void 0),zE=e([le("frigate-card-thumbnail-details-event")],zE);let IE=class extends se{render(){if(!this.media)return;const e=this.media.getStartTime(),t=e?Kg(e):null,n=this.media.getEndTime(),a=e&&n?ef(e,n):null,i=this.media.inProgress()?V_("recording.in_progress"):null,r=this.seek?Wu(this.seek,"HH:mm:ss"):null,o=this.media.getEventCount();return q` + ${this.cameraTitle?q`
+ ${this.cameraTitle} +
`:""} +
+ ${t?q`
+ + ${t} +
+ ${a||i?q`
+ + ${a?q`${a}`:""} + ${i?q`${i}`:""} +
`:""}`:""} + ${r?q`
+ + ${r} +
`:q``} + ${null!==o?q`
+ + ${o} +
`:""} +
+ `}static get styles(){return o(CE)}};e([he({attribute:!1})],IE.prototype,"media",void 0),e([he({attribute:!1})],IE.prototype,"seek",void 0),e([he({attribute:!1})],IE.prototype,"cameraTitle",void 0),IE=e([le("frigate-card-thumbnail-details-recording")],IE);let TE=class extends se{constructor(){super(...arguments),this.details=!1,this.show_favorite_control=!1,this.show_timeline_control=!1,this.show_download_control=!1}render(){if(!this.media||!this.cameraManager||!this.hass)return;const e=this.media.getThumbnail(),t=this.media.getTitle()??"",n={star:!0,starred:!!this.media?.isFavorite()},a=this.show_timeline_control&&(!nx.isRecording(this.media)||this.media.getStartTime()&&this.media.getEndTime()),i=this.cameraManager?.getMediaCapabilities(this.media),r=this.show_favorite_control&&this.media&&this.hass&&i?.canFavorite,o=this.show_download_control&&this.hass&&this.media.getID()&&i?.canDownload,s=this.cameraManager.getCameraMetadata(this.media.getCameraID());return q` + ${nx.isEvent(this.media)&&e?q``:nx.isEvent(this.media)||nx.isRecording(this.media)?q``:q``} + ${r?q` {if(wf(e),this.hass&&this.media){try{await(this.cameraManager?.favoriteMedia(this.media,!this.media?.isFavorite()))}catch(e){return void Gg(e)}this.requestUpdate()}}} + />`:""} + ${this.details&&nx.isEvent(this.media)?q``:this.details&&nx.isRecording(this.media)?q``:q``} + ${a?q`{wf(e),this.viewManagerEpoch&&this.media&&this.viewManagerEpoch.manager.setViewByParameters({params:{view:"timeline",queryResults:this.viewManagerEpoch?.manager.getView()?.queryResults?.clone().selectResultIfFound((e=>e===this.media))},modifiers:[new xE(["timeline"])]})}} + >`:""} + ${o?q` {if(wf(e),this.hass&&this.cameraManager&&this.media)try{await $w(this.hass,this.cameraManager,this.media)}catch(e){Sk(this,e)}}} + >`:""} + `}static get styles(){return o(":host {\n display: flex;\n flex-direction: row;\n box-sizing: border-box;\n position: relative;\n overflow: hidden;\n transition: transform 0.2s linear;\n}\n\n:host(:not([details])) {\n aspect-ratio: 1/1;\n}\n\n:host([details]) {\n border: 1px solid var(--primary-color);\n border-radius: var(--frigate-card-css-border-radius, var(--ha-card-border-radius, 4px));\n padding: 2px;\n background-color: var(--primary-background-color, black);\n}\n\n:host(:hover) {\n transform: scale(1.04);\n}\n\nha-icon {\n position: absolute;\n border-radius: 50%;\n opacity: 0.5;\n color: var(--primary-color);\n cursor: pointer;\n transition: opacity 0.2s ease-in-out, color 0.2s ease-in-out;\n}\n\nha-icon:hover {\n opacity: 1;\n}\n\nha-icon.star {\n top: 3px;\n left: 3px;\n}\n\nha-icon.star.starred {\n color: gold;\n}\n\nha-icon.timeline {\n top: 3px;\n right: 3px;\n}\n\nha-icon.download {\n right: 3px;\n bottom: 3px;\n}\n\nfrigate-card-thumbnail-details-event,\nfrigate-card-thumbnail-details-recording {\n flex: 1;\n}")}};e([he({attribute:!1})],TE.prototype,"cameraManager",void 0),e([he({attribute:!1})],TE.prototype,"media",void 0),e([he({attribute:!0,type:Boolean})],TE.prototype,"details",void 0),e([he({attribute:!0,type:Boolean})],TE.prototype,"show_favorite_control",void 0),e([he({attribute:!0,type:Boolean})],TE.prototype,"show_timeline_control",void 0),e([he({attribute:!0,type:Boolean})],TE.prototype,"show_download_control",void 0),e([he({attribute:!1})],TE.prototype,"seek",void 0),TE=e([le("frigate-card-thumbnail")],TE);let jE=class extends se{constructor(){super(...arguments),this.fadeThumbnails=!1,this._thumbnailSlides=[]}willUpdate(e){if(e.has("config")){this.config?.size&&this.style.setProperty("--frigate-card-thumbnail-size",`${this.config.size}px`);const e=this._getDirection();e?this.setAttribute("direction",e):this.removeAttribute("direction")}["cameraManager","config","transitionEffect","viewManagerEpoch"].some((t=>e.has(t)))&&(this._thumbnailSlides=this._renderSlides()),e.has("viewManagerEpoch")&&this.style.setProperty("--frigate-card-carousel-thumbnail-opacity",this.fadeThumbnails&&null!==this._getSelectedSlide()?"0.4":"1.0")}_getSelectedSlide(){return this.viewManagerEpoch?.manager.getView()?.queryResults?.getSelectedIndex()??null}_renderSlides(){const e=[],t=this.viewManagerEpoch?.manager.getView(),n=t?.context?.mediaViewer?.seek,a=this._getSelectedSlide();for(const i of t?.queryResults?.getResults()??[]){const t=e.length,r={embla__slide:!0,"slide-selected":a===t};e.push(q` {const n=this.viewManagerEpoch?.manager.getView();n&&n.queryResults&&Bg(this,"thumbnail-carousel:tap",{queryResults:n.queryResults.clone().selectIndex(t)}),wf(e)}} + > + `)}return e}_getDirection(){return"left"===this.config?.mode||"right"===this.config?.mode?"vertical":"above"===this.config?.mode||"below"===this.config?.mode?"horizontal":null}render(){const e=this._getDirection();if(this._thumbnailSlides.length&&this.config&&e)return q` + ${this._thumbnailSlides} + `}static get styles(){return o(":host {\n --frigate-card-thumbnail-size-max: 300px;\n --frigate-card-thumbnail-details-width: calc(\n var(--frigate-card-thumbnail-size) + 200px\n );\n}\n\n:host {\n display: block;\n width: 100%;\n height: 100%;\n --frigate-card-carousel-thumbnail-opacity: 1;\n}\n\n:host([direction=vertical]) {\n height: 100%;\n}\n\n:host([direction=horizontal]) {\n height: auto;\n}\n\n.embla__slide {\n flex: 0 0 auto;\n opacity: var(--frigate-card-carousel-thumbnail-opacity);\n}\n\n.embla__slide.slide-selected {\n opacity: 1;\n}\n\nfrigate-card-thumbnail {\n width: var(--frigate-card-thumbnail-size);\n height: var(--frigate-card-thumbnail-size);\n max-width: 100%;\n}\n\nfrigate-card-thumbnail[details] {\n width: var(--frigate-card-thumbnail-details-width);\n}")}};e([he({attribute:!1})],jE.prototype,"hass",void 0),e([he({attribute:!1})],jE.prototype,"viewManagerEpoch",void 0),e([he({attribute:!1})],jE.prototype,"cameraManager",void 0),e([he({attribute:!1})],jE.prototype,"config",void 0),e([he({attribute:!1})],jE.prototype,"fadeThumbnails",void 0),jE=e([le("frigate-card-thumbnail-carousel")],jE);var OE=":host {\n width: 100%;\n height: 100%;\n display: block;\n}";const DE=document.createElement("template");DE.innerHTML='\n
\n
\n';class RE extends HTMLElement{constructor(){super();const e=this.attachShadow({mode:"open"});e.appendChild(DE.content.cloneNode(!0)),this._freeSpaceDiv=e.getElementById("fs")}connectedCallback(){this._freeSpaceDiv&&this._freeSpaceDiv.addEventListener("click",this.handleFreeSpaceDivClick),this.upgradeProperty("open")}disconnectedCallback(){document.removeEventListener("keyup",this.handleKeyUp)}upgradeProperty(e){if(this.hasOwnProperty(e)){let t=this[e];delete this[e],this[e]=t}}handleKeyUp=e=>{if(!e.altKey&&"Escape"===e.key)e.preventDefault(),this.open=!1};get open(){return this.hasAttribute("open")}set open(e){e?this.hasAttribute("open")||this.setAttribute("open",""):this.hasAttribute("open")&&this.removeAttribute("open")}static get observedAttributes(){return["open"]}attributeChangedCallback(e,t,n){"open"===e&&(this.open?(this.setAttribute("tabindex","0"),this.setAttribute("aria-disabled","false"),this.focus({preventScroll:!0}),document.addEventListener("keyup",this.handleKeyUp),this.dispatchEvent(new CustomEvent("open",{bubbles:!0}))):(this.setAttribute("tabindex","-1"),this.setAttribute("aria-disabled","true"),document.removeEventListener("keyup",this.handleKeyUp),this.dispatchEvent(new CustomEvent("close",{bubbles:!0}))))}handleFreeSpaceDivClick=()=>{this.open=!1}}customElements.define("side-drawer",RE);let PE=class extends se{constructor(){super(...arguments),this.location="left",this.control=!0,this.open=!1,this.empty=!0,this._refDrawer=ze(),this._refSlot=ze(),this._resizeObserver=new ResizeObserver((()=>this._hideDrawerIfNecessary())),this._isHoverableDevice=Yg()}firstUpdated(e){super.firstUpdated(e);const t=document.createElement("style");t.innerHTML=":host {\n width: unset;\n}\n\n#fs {\n display: none;\n width: 100%;\n inset: 0;\n}\n\n#d,\n#fs {\n height: 100%;\n position: absolute;\n}\n\n#d {\n overflow: visible;\n max-width: 90%;\n z-index: 10;\n}\n\n:host([location=right]) #d {\n left: unset;\n right: 0;\n transform: translateX(100%);\n}\n\n:host([location=right][open]) #d {\n transform: none;\n box-shadow: var(--frigate-card-css-box-shadow, 0px 0px 25px 0px black);\n}\n\n#ifs {\n height: 100%;\n}",this._refDrawer.value?.shadowRoot?.appendChild(t)}_slotChanged(){const e=this._refSlot.value?lf(this._refSlot.value):[];this._resizeObserver.disconnect();for(const t of e)this._resizeObserver.observe(t);this._hideDrawerIfNecessary()}_hideDrawerIfNecessary(){if(!this._refDrawer.value)return;const e=this._refSlot.value?lf(this._refSlot.value):null;this.empty=!e||!e.length||e.every((e=>{const t=e.getBoundingClientRect();return!t.width||!t.height}))}render(){return q` + {this.open&&(this.open=!1)}} + > + ${this.control?q` +
{wf(e),this.open=!this.open}} + > + {this._isHoverableDevice&&!this.open&&(this.open=!0)}} + > + +
+ `:""} + this._slotChanged()}> +
+ `}static get styles(){return o("side-drawer {\n background-color: var(--card-background-color);\n}\n\ndiv.control-surround {\n position: absolute;\n bottom: 50%;\n transform: translateY(50%);\n z-index: 0;\n padding-top: 20px;\n padding-bottom: 20px;\n}\n\n:host([location=left]) div.control-surround {\n padding-right: 12px;\n left: 100%;\n}\n\n:host([location=right]) div.control-surround {\n padding-left: 12px;\n right: 100%;\n}\n\n:host([empty]),\n:host([empty]) > * {\n visibility: hidden;\n}\n\n:host(:not([empty])),\n:host(:not([empty])) > * {\n visibility: visible;\n}\n\nha-icon.control {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.7);\n opacity: 0.5;\n pointer-events: all;\n --mdc-icon-size: 20px;\n padding-top: 20px;\n padding-bottom: 20px;\n transition: opacity 0.5s ease;\n}\n\n:host([open]) ha-icon.control,\nha-icon.control:hover {\n opacity: 1;\n background-color: black;\n}\n\n:host([location=left]) ha-icon.control {\n border-top-right-radius: 20px;\n border-bottom-right-radius: 20px;\n}\n\n:host([location=right]) ha-icon.control {\n border-top-left-radius: 20px;\n border-bottom-left-radius: 20px;\n}")}};e([he({attribute:!0,reflect:!0})],PE.prototype,"location",void 0),e([he({attribute:!0,reflect:!0,type:Boolean})],PE.prototype,"control",void 0),e([he({type:Boolean,reflect:!0,attribute:!0})],PE.prototype,"open",void 0),e([he({attribute:!1})],PE.prototype,"icons",void 0),e([he({type:Boolean,reflect:!0,attribute:!0})],PE.prototype,"empty",void 0),PE=e([le("frigate-card-drawer")],PE);let LE=class extends se{constructor(){super(...arguments),this._refDrawerLeft=ze(),this._refDrawerRight=ze(),this._boundDrawerHandler=this._drawerHandler.bind(this)}connectedCallback(){super.connectedCallback(),this.addEventListener("frigate-card:drawer:open",this._boundDrawerHandler),this.addEventListener("frigate-card:drawer:close",this._boundDrawerHandler)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("frigate-card:drawer:open",this._boundDrawerHandler),this.removeEventListener("frigate-card:drawer:close",this._boundDrawerHandler)}_drawerHandler(e){const t=e.detail.drawer,n=e.type.endsWith(":open");"left"===t&&this._refDrawerLeft.value?this._refDrawerLeft.value.open=n:"right"===t&&this._refDrawerRight.value&&(this._refDrawerRight.value.open=n)}render(){return q` + + + + + + + + `}static get styles(){return o(":host {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n position: relative;\n overflow: hidden;\n}\n\n::slotted(:not([slot])) {\n flex: 1;\n min-height: 0px;\n}")}};e([he({attribute:!1})],LE.prototype,"drawerIcons",void 0),LE=e([le("frigate-card-surround-basic")],LE);let NE=class extends se{_hasDrawer(){return!!this.thumbnailConfig&&["left","right"].includes(this.thumbnailConfig.mode)}willUpdate(e){this.timelineConfig?.mode&&"none"!==this.timelineConfig.mode&&import("./timeline-core-b390cfa1.js");const t=this.viewManagerEpoch?.manager.getView();e.has("viewManagerEpoch")&&(this.viewManagerEpoch?.manager.hasMajorMediaChange(this.viewManagerEpoch?.oldView)||this.viewManagerEpoch?.oldView?.displayMode!==t?.displayMode)&&(this._cameraIDsForTimeline=this._getCameraIDsForTimeline()??void 0)}_getCameraIDsForTimeline(){const e=this.viewManagerEpoch?.manager.getView();if(!e||!this.cameraManager)return null;if(e.is("live")){const t={anyCapabilities:["clips","snapshots","recordings"]};return e.supportsMultipleDisplayModes()&&e.isGrid()?this.cameraManager.getStore().getCameraIDsWithCapability(t):this.cameraManager.getStore().getAllDependentCameras(e.camera,t)}return e.isViewerView()?e.query?.getQueryCameraIDs()??null:null}render(){const e=this.viewManagerEpoch?.manager.getView();if(!this.hass||!e)return;const t=(e,t)=>{this.thumbnailConfig&&this._hasDrawer()&&Bg(e.composedPath()[0],"drawer:"+t,{drawer:this.thumbnailConfig.mode})};return q` t(e,"open")} + @frigate-card:thumbnails:close=${e=>t(e,"close")} + > + ${this.thumbnailConfig&&"none"!==this.thumbnailConfig.mode?q` {const n=e.detail.queryResults.getSelectedResult();n&&(this.viewManagerEpoch?.manager.setViewByParameters({params:{view:"media",queryResults:e.detail.queryResults,...n.getCameraID()&&{camera:n.getCameraID()}},modifiers:[new xE(["timeline","mediaViewer"])]}),t(e,"close"))}} + > + `:""} + ${this.timelineConfig&&"none"!==this.timelineConfig.mode?q` + `:""} + + `}static get styles(){return o(OE)}};e([he({attribute:!1})],NE.prototype,"hass",void 0),e([he({attribute:!1})],NE.prototype,"viewManagerEpoch",void 0),e([he({attribute:!1,hasChanged:Qg})],NE.prototype,"thumbnailConfig",void 0),e([he({attribute:!1,hasChanged:Qg})],NE.prototype,"timelineConfig",void 0),e([he({attribute:!1})],NE.prototype,"cameraManager",void 0),e([he({attribute:!1})],NE.prototype,"cardWideConfig",void 0),NE=e([le("frigate-card-surround")],NE);var FE="Fri, 13 Dec 2024 16:12:40 GMT",VE="ed0bb99",HE="Fri, 13 Dec 2024 08:11:26 -0800";const BE=ba.object({domain:ba.string(),version:ba.string().optional()}).passthrough(),qE="hass_web_proxy",UE=(e,t)=>`/api/${qE}/v${t??0}/?url=${encodeURIComponent(e)}`,WE=(e,t,n="media")=>(e=>e.config.components.includes(qE))(e)&&!!t[n];async function ZE(e,t,n){await e.callService(qE,"create_proxied_url",{url_pattern:t,...n&&{url_id:n.urlID,ssl_verification:n.sslVerification,ssl_ciphers:n.sslCiphers,open_limit:n.openLimit,ttl:n.ttl,allow_unauthenticated:n.allowUnauthenticated}})}const QE=async(e,t)=>{let n=null;if(t)try{n=await(async(e,t)=>await $v(e,BE,{type:"manifest/get",integration:t}))(t,e)}catch(e){}return{detected:!!n,...n?.version&&{version:n.version}}};let GE=class extends se{constructor(){super(...arguments),this._diagnostics=null}async _fetchDiagnostics(){this._diagnostics=await(async(e,t,n)=>{const a=e&&t?await t.getMatchingDevices(e,(e=>"Frigate"===e.manufacturer)):[],i=new Map;return a?.forEach((e=>{e.config_entries.forEach((t=>{e.model&&i.set(t,e.model)}))})),{card_version:"6.0.6",browser:navigator.userAgent,date:new Date,lang:F_(),timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,git:{hash:VE,build_date:FE,commit_date:HE},...e&&{ha_version:e.config.version},integrations:{reolink:await QE("reolink",e),frigate:{...await QE("frigate",e),...i.size&&{devices:Object.fromEntries(i)}},hass_web_proxy:await QE(qE,e),motioneye:await QE("motioneye",e)},...n&&{config:n}}})(this.hass,this.deviceRegistryManager,this.rawConfig)}shouldUpdate(){return!!this._diagnostics||(this._fetchDiagnostics().then((()=>this.requestUpdate())),!1)}render(){return xk({message:V_("error.diagnostics"),type:"diagnostics",icon:"mdi:information",context:this._diagnostics})}static get styles(){return o(OE)}};e([he({attribute:!1})],GE.prototype,"hass",void 0),e([he({attribute:!1})],GE.prototype,"deviceRegistryManager",void 0),e([he({attribute:!1})],GE.prototype,"rawConfig",void 0),e([pe()],GE.prototype,"_diagnostics",void 0),GE=e([le("frigate-card-diagnostics")],GE);let YE=class extends se{willUpdate(e){if(e.has("viewManagerEpoch")||e.has("config")){const e=this.viewManagerEpoch?.manager.getView();(e?.is("live")||this._shouldLivePreload())&&import("./index-e610f971.js").then((function(e){return e.i})),e?.isGalleryView()?import("./gallery-9024cb87.js"):e?.isViewerView()?import("./index-76cab2a3.js"):e?.is("image")?import("./image-1c1ebdfa.js"):e?.is("timeline")&&import("./timeline-c3ef17c4.js")}e.has("hide")&&(this.hide?this.setAttribute("hidden",""):this.removeAttribute("hidden"))}shouldUpdate(e){return!0}_shouldLivePreload(){const e=this.viewManagerEpoch?.manager.getView();return!!this.overriddenConfig?.live.preload&&!e?.is("diagnostics")}render(){if(!(this.hass&&this.overriddenConfig&&this.nonOverriddenConfig&&this.cardWideConfig))return q``;const e=this.viewManagerEpoch?.manager.getView(),t={hidden:this._shouldLivePreload()&&!e?.is("live")},n={hidden:!!this.hide},a=e?.is("live")?this.overriddenConfig.live.controls.thumbnails:e?.isViewerView()?this.overriddenConfig.media_viewer.controls.thumbnails:e?.is("timeline")?this.overriddenConfig.timeline.controls.thumbnails:void 0,i=e?.is("live")?this.overriddenConfig.live.controls.timeline:e?.isViewerView()?this.overriddenConfig.media_viewer.controls.timeline:void 0,r=e?this.cameraManager?.getStore().getCameraConfig(e.camera)??null:null;return q` + ${!this.hide&&e?.is("image")&&r?q` + `:""} + ${!this.hide&&e?.isGalleryView()?q` + `:""} + ${!this.hide&&e?.isViewerView()?q` + + + `:""} + ${!this.hide&&e?.is("timeline")?q` + `:""} + ${!this.hide&&e?.is("diagnostics")?q` + `:""} + ${this._shouldLivePreload()||!this.hide&&e?.is("live")?q` + + + `:""} + `}static get styles(){return o(":host {\n width: 100%;\n height: 100%;\n display: block;\n}\n\n:host([hidden]),\n.hidden {\n display: none;\n}")}};e([he({attribute:!1})],YE.prototype,"hass",void 0),e([he({attribute:!1})],YE.prototype,"viewManagerEpoch",void 0),e([he({attribute:!1})],YE.prototype,"cameraManager",void 0),e([he({attribute:!1})],YE.prototype,"nonOverriddenConfig",void 0),e([he({attribute:!1})],YE.prototype,"overriddenConfig",void 0),e([he({attribute:!1})],YE.prototype,"cardWideConfig",void 0),e([he({attribute:!1})],YE.prototype,"rawConfig",void 0),e([he({attribute:!1})],YE.prototype,"resolvedMediaCache",void 0),e([he({attribute:!1})],YE.prototype,"conditionsManagerEpoch",void 0),e([he({attribute:!1})],YE.prototype,"hide",void 0),e([he({attribute:!1})],YE.prototype,"microphoneManager",void 0),e([he({attribute:!1})],YE.prototype,"triggeredCameraIDs",void 0),e([he({attribute:!1})],YE.prototype,"deviceRegistryManager",void 0),YE=e([le("frigate-card-views")],YE);console.info(`%c FRIGATE-HASS-CARD \n%c ${V_("common.version")} 6.0.6`,"color: pink; font-weight: bold; background: black","color: white; font-weight: bold; background: dimgray"),window.customCards=window.customCards||[],window.customCards.push({type:"frigate-card",name:V_("common.frigate_card"),description:V_("common.frigate_card_description"),preview:!0,documentationURL:wa});let KE=class extends se{constructor(){super(...arguments),this._controller=new zx(this,(()=>this._refMain.value?.scroll({top:0})),(()=>this._refMenu.value?.toggleMenu()),this._requestUpdateForComponentsThatUseConditions.bind(this)),this._menuButtonController=new Ix,this._refMenu=ze(),this._refOverlay=ze(),this._refMain=ze(),this._refElements=ze(),this._refViews=ze()}get _config(){return this._controller.getConfigManager().getConfig()}get _hass(){return this._controller.getHASSManager().getHASS()}set hass(e){this._controller.getHASSManager().setHASS(e),this._refMenu.value&&(this._refMenu.value.hass=e),this._refElements.value&&(this._refElements.value.hass=e),this._refViews.value&&(this._refViews.value.hass=e)}static async getConfigElement(){return await zx.getConfigElement()}static getStubConfig(e,t){return zx.getStubConfig(t)}_requestUpdateForComponentsThatUseConditions(){this._refViews.value&&(this._refViews.value.conditionsManagerEpoch=this._controller.getConditionsManager().getEpoch()??void 0),this._refElements.value&&(this._refElements.value.conditionsManagerEpoch=this._controller.getConditionsManager().getEpoch()??void 0)}setConfig(e){this._controller.getConfigManager().setConfig(e)}shouldUpdate(){return!!this.isConnected&&(this._controller.getMessageManager().hasMessage()||this._controller.getInitializationManager().isInitializedMandatory()||this._controller.getInitializationManager().initializeMandatory(),!0)}_renderMenuStatusContainer(e){if(!this._config)return;const t=this._config.menu.style,n=this._config.menu.position,a=this._config.status_bar.style,i=this._config.status_bar.position;if("none"===t&&"none"===a||"overlay"===e&&"outside"===t&&"outside"===a||"overlay"!==e&&("outside"!==t||n!==e)&&("outside"!==a||i!==e))return;const r=e=>{const r="none"!==t&&("outside"===t&&"outerlay"===e||"outside"!==t&&"overlay"===e),o="none"!==a&&("outside"===a&&"outerlay"===e||"outside"!==a&&"overlay"===e),s="left"===n||"right"===n||"bottom"===n&&"hidden"===t&&"popup"!==a||"top"===n&&("hidden"!==t||"popup"===a);return q` + ${r&&s?this._renderMenu(n):""} + ${o?this._renderStatusBar(i):""} + ${r&&!s?this._renderMenu(n):""} + `};return q` + ${"overlay"===e?q`${r("overlay")}`:q`
+ ${r("outerlay")} +
`} + `}_renderMenu(e){const t=this._controller.getViewManager().getView();if(this._hass&&this._config)return q` + + `}_renderStatusBar(e){if(this._config)return q` + + `}updated(){this._controller.getInitializationManager().isInitializedMandatory()&&this._controller.getQueryStringManager().executeIfNecessary()}_renderInDialogIfNecessary(e){return this._controller.getExpandManager().isExpanded()?q` {this._controller.getExpandManager().setExpanded(!1)}} + > + ${e} + `:e}render(){if(!this._hass)return;const e={main:!0,"curve-top":"outside"!==this._config?.menu.style||"top"!==this._config?.menu.position,"curve-bottom":"outside"!==this._config?.menu.style||"top"===this._config?.menu.position},t=this._controller.getActionsManager().getMergedActions(),n=this._controller.getCameraManager(),a=!1!==this._config?.performance?.features.animated_progress_indicator&&!this._controller.getInitializationManager().wasEverInitialized()&&!this._controller.getMessageManager().hasMessage();return this._renderInDialogIfNecessary(q` this._controller.getMessageManager().setMessageIfHigherPriority(e.detail)} + @frigate-card:media:loaded=${e=>this._controller.getMediaLoadedInfoManager().set(e.detail)} + @frigate-card:media:unloaded=${()=>this._controller.getMediaLoadedInfoManager().clear()} + @frigate-card:media:volumechange=${()=>this.requestUpdate()} + @frigate-card:media:play=${()=>this.requestUpdate()} + @frigate-card:media:pause=${()=>this.requestUpdate()} + @frigate-card:focus=${()=>this.focus()} + > + ${a?q``:""} + ${this._renderMenuStatusContainer("top")} + ${this._renderMenuStatusContainer("overlay")} +
+ + ${xk(this._controller.getMessageManager().getMessage())} +
+ ${this._renderMenuStatusContainer("bottom")} + ${this._config?.elements?q` {this._menuButtonController.addDynamicMenuButton(e.detail),this.requestUpdate()}} + @frigate-card:menu:remove=${e=>{this._menuButtonController.removeDynamicMenuButton(e.detail),this.requestUpdate()}} + @frigate-card:status-bar:add=${e=>{this._controller.getStatusBarItemManager().addDynamicStatusBarItem(e.detail)}} + @frigate-card:status-bar:remove=${e=>{this._controller.getStatusBarItemManager().removeDynamicStatusBarItem(e.detail)}} + @frigate-card:conditions:evaluate=${e=>{e.evaluation=this._controller.getConditionsManager()?.evaluateConditions(e.conditions)}} + > + `:""} +
`)}static get styles(){return o(':host {\n display: block;\n position: relative;\n background-color: var(--card-background-color);\n border-radius: var(--ha-card-border-radius, 4px);\n height: var(--frigate-card-height);\n min-height: 100px;\n pointer-events: all;\n --frigate-card-expand-max-height: calc((100vh - (2 * 56px)) * 0.85);\n --frigate-card-expand-max-width: 85vw;\n --frigate-card-expand-width: none;\n --frigate-card-expand-height: none;\n --frigate-card-expand-aspect-ratio: unset;\n --frigate-card-height: auto;\n}\n\nfrigate-card-loading {\n position: absolute;\n inset: 0;\n z-index: 1;\n}\n\n:host([dark]) {\n filter: brightness(75%);\n}\n\n:host([panel]:not([casted])) {\n height: calc(100vh - var(--header-height));\n}\n\n:host([panel][casted]) {\n height: 100%;\n}\n\ndiv.main {\n position: relative;\n overflow: auto;\n width: 100%;\n height: 100%;\n margin: auto;\n display: block;\n transform: translateZ(0);\n scrollbar-width: none;\n -ms-overflow-style: none;\n}\n\n/* Hide scrollbar for Chrome, Safari and Opera */\ndiv.main::-webkit-scrollbar {\n display: none;\n}\n\ndiv.main.curve-top {\n border-top-left-radius: var(--ha-card-border-radius, 4px);\n border-top-right-radius: var(--ha-card-border-radius, 4px);\n}\n\ndiv.main.curve-bottom {\n border-bottom-left-radius: var(--ha-card-border-radius, 4px);\n border-bottom-right-radius: var(--ha-card-border-radius, 4px);\n}\n\nha-card {\n display: flex;\n flex-direction: column;\n margin: auto;\n border: 0px;\n overflow: visible;\n width: 100%;\n height: 100%;\n position: static;\n color: var(--secondary-text-color, white);\n}\n\n/************\n * Fullscreen\n *************/\n:host(:fullscreen) #ha-card {\n border-radius: 0px;\n box-shadow: none;\n margin: 0;\n}\n\n:host(:-webkit-full-screen) #ha-card {\n border-radius: 0px;\n box-shadow: none;\n margin: 0;\n}\n\n:host(:fullscreen) div.main,\n:host(:fullscreen) frigate-card-menu {\n border-radius: 0px;\n}\n\n:host(:-webkit-full-screen) div.main,\n:host(:-webkit-full-screen) frigate-card-menu {\n border-radius: 0px;\n}\n\n/***************\n * Expanded mode\n ***************/\nweb-dialog {\n --dialog-padding: 0px;\n --dialog-container-padding: 0px;\n --dialog-max-height: var(--frigate-card-expand-max-height);\n --dialog-max-width: var(--frigate-card-expand-max-width);\n --dialog-width: var(--frigate-card-expand-width);\n --dialog-height: var(--frigate-card-expand-height);\n --dialog-overflow-x: visible;\n --dialog-overflow-y: visible;\n max-height: 100vh;\n}\n\nweb-dialog::part(dialog) {\n aspect-ratio: var(--frigate-card-expand-aspect-ratio);\n border-radius: 0px;\n background: transparent;\n}\n\n/*************************************\n * "Outside" style for menu/status bar\n *************************************/\n.outerlay[data-position=top] > *:first-child {\n border-top-left-radius: var(--ha-card-border-radius, 4px);\n border-top-right-radius: var(--ha-card-border-radius, 4px);\n}\n\n.outerlay[data-position=bottom] > *:last-child {\n border-bottom-left-radius: var(--ha-card-border-radius, 4px);\n border-bottom-right-radius: var(--ha-card-border-radius, 4px);\n}\n\n/*******************\n * Menu hover styles\n *******************/\nfrigate-card-menu {\n z-index: 2;\n}\n\nfrigate-card-menu[data-style*=hover] {\n transition: opacity 0.5s ease;\n opacity: 0;\n}\n\nfrigate-card-menu[data-style*=hover]:hover,\nha-card:hover > frigate-card-overlay > frigate-card-menu[data-style=hover-card] {\n opacity: 1;\n}\n\n/*************************\n * Status bar hover styles\n *************************/\nfrigate-card-status-bar {\n z-index: 1;\n}\n\nfrigate-card-status-bar[data-style*=hover] {\n transition: opacity 0.5s ease;\n opacity: 0;\n}\n\nfrigate-card-status-bar[data-style*=hover]:hover,\nha-card:hover > frigate-card-overlay > frigate-card-status-bar[data-style=hover-card] {\n opacity: 1;\n}')}getCardSize(){return 6}};KE=e([le("frigate-card")],KE);export{Il as $,tr as A,nr as B,Zi as C,ar as D,ir as E,rr as F,Pi as G,Li as H,Ni as I,Fi as J,Vi as K,Hi as L,Bi as M,qi as N,Ui as O,gs as P,Ws as Q,ns as R,Us as S,qo as T,Fo as U,Vo as V,Ho as W,Bo as X,Bs as Y,zl as Z,e as _,se as a,dr as a$,H_ as a0,nw as a1,et as a2,aw as a3,$s as a4,Di as a5,ji as a6,Oi as a7,Ri as a8,Wi as a9,Yr as aA,oo as aB,so as aC,lo as aD,uo as aE,co as aF,ao as aG,io as aH,ro as aI,mo as aJ,_o as aK,vo as aL,ho as aM,po as aN,fo as aO,go as aP,eo as aQ,no as aR,to as aS,Xr as aT,Jr as aU,Kr as aV,Ao as aW,Io as aX,zo as aY,hr as aZ,cr as a_,es as aa,Jo as ab,Xo as ac,ts as ad,hs as ae,us as af,ms as ag,qs as ah,ps as ai,So as aj,Co as ak,To as al,Mo as am,ko as an,qr as ao,Ur as ap,Wr as aq,Zr as ar,Eo as as,$o as at,yo as au,xo as av,bo as aw,wo as ax,Qr as ay,Gr as az,pe as b,ja as b$,ur as b0,lr as b1,sr as b2,mr as b3,gr as b4,fr as b5,_r as b6,xr as b7,Hr as b8,Cr as b9,Po as bA,Wo as bB,Zo as bC,Go as bD,Yo as bE,Qo as bF,Uo as bG,vs as bH,_s as bI,ys as bJ,xs as bK,Cs as bL,As as bM,Ms as bN,Es as bO,Ss as bP,ew as bQ,Xb as bR,Wk as bS,Ug as bT,Ma as bU,Ja as bV,Ya as bW,La as bX,Na as bY,ka as bZ,Oa as b_,kr as ba,Mr as bb,vr as bc,wr as bd,yr as be,br as bf,Sr as bg,Er as bh,$r as bi,Or as bj,zr as bk,Tr as bl,jr as bm,Ir as bn,Ar as bo,Pr as bp,Fr as bq,Vr as br,Dr as bs,Rr as bt,Nr as bu,Lr as bv,Ro as bw,Lo as bx,Oo as by,Do as bz,tw as c,wf as c$,Da as c0,Ta as c1,Ga as c2,Ua as c3,Wa as c4,Za as c5,Qa as c6,_i as c7,fi as c8,Ra as c9,ai as cA,ii as cB,Sa as cC,Ea as cD,pi as cE,hi as cF,gi as cG,mi as cH,Fd as cI,Ca as cJ,ks as cK,ge as cL,fe as cM,W as cN,xe as cO,Yw as cP,kk as cQ,ze as cR,Kw as cS,df as cT,xk as cU,je as cV,Qg as cW,yw as cX,td as cY,Sk as cZ,Ky as c_,Pa as ca,Ha as cb,qa as cc,Fa as cd,Va as ce,Ba as cf,Ka as cg,Xa as ch,ti as ci,ei as cj,yi as ck,vi as cl,bi as cm,wi as cn,$a as co,Aa as cp,za as cq,Ia as cr,ni as cs,ri as ct,oi as cu,si as cv,ci as cw,li as cx,di as cy,ui as cz,iw as d,ba as d$,My as d0,ve as d1,OE as d2,Vd as d3,nu as d4,c as d5,hx as d6,Qv as d7,px as d8,dx as d9,xx as dA,Mk as dB,U as dC,xf as dD,qw as dE,SE as dF,ME as dG,yf as dH,Vk as dI,vf as dJ,kf as dK,bf as dL,p_ as dM,h_ as dN,Pv as dO,Lv as dP,Ud as dQ,Vv as dR,Yg as dS,Kg as dT,Mx as dU,Gy as dV,fx as dW,su as dX,sf as dY,Fv as dZ,Hg as d_,mx as da,Gg as db,Ev as dc,Wu as dd,Xg as de,Qu as df,Bg as dg,Uw as dh,af as di,EE as dj,Sx as dk,Ck as dl,Aw as dm,nx as dn,hy as dp,qb as dq,Ub as dr,WE as ds,ZE as dt,Tb as du,UE as dv,Gw as dw,Xw as dx,Jw as dy,ex as dz,_e as e,nf as e0,$v as e1,zs as e2,Kv as e3,Wv as e4,Z_ as e5,Q_ as e6,Yv as e7,Jg as e8,tf as e9,Lu as eA,Hb as eB,Zv as eC,Fb as eD,lf as eE,qy as eF,Uy as eG,Wy as eH,pf as eI,Qy as eJ,Rg as eK,Zy as eL,s as eM,Ae as eN,ye as eO,Qw as eP,wE as eQ,me as eR,be as eS,Ob as eT,Gv as ea,Bk as eb,Hv as ec,rf as ed,Tv as ee,qk as ef,Iv as eg,zv as eh,jv as ei,Uk as ej,Xd as ek,Hd as el,Gd as em,Qd as en,Yd as eo,vu as ep,Jd as eq,eu as er,yu as es,_u as et,Bd as eu,au as ev,gu as ew,Ou as ex,Nu as ey,Fu as ez,xw as f,Vb as g,Jb as h,Dv as i,Nb as j,qg as k,V_ as l,Ki as m,he as n,Gi as o,Ld as p,Qi as q,o as r,of as s,le as t,Yi as u,Bb as v,Xi as w,q as x,er as y,Ji as z}; diff --git a/config/www/community/frigate-hass-card/card-09c4bade.js.gz b/config/www/community/frigate-hass-card/card-09c4bade.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..04e91a728f2817d325e67a80f1ae7f3f2969783d GIT binary patch literal 142711 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%0D#3`0@4tI=;h!iVx9dq!kv=PC&`l)oc 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 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/card-320adb66.js b/config/www/community/frigate-hass-card/card-320adb66.js new file mode 100644 index 00000000..28d66bb8 --- /dev/null +++ b/config/www/community/frigate-hass-card/card-320adb66.js @@ -0,0 +1,650 @@ +function e(e,t,n,a){var i,r=arguments.length,o=r<3?t:null===a?a=Object.getOwnPropertyDescriptor(t,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,a);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(r<3?i(o):r>3?i(t,n,o):i(t,n))||o);return r>3&&o&&Object.defineProperty(t,n,o),o}"function"==typeof SuppressedError&&SuppressedError; +/** + * @license + * Copyright 2019 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const t=globalThis,n=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,a=Symbol(),i=new WeakMap;let r=class{constructor(e,t,n){if(this._$cssResult$=!0,n!==a)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(n&&void 0===e){const n=void 0!==t&&1===t.length;n&&(e=i.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),n&&i.set(t,e))}return e}toString(){return this.cssText}};const o=e=>new r("string"==typeof e?e:e+"",void 0,a),s=(e,...t)=>{const n=1===e.length?e[0]:t.reduce(((t,n,a)=>t+(e=>{if(!0===e._$cssResult$)return e.cssText;if("number"==typeof e)return e;throw Error("Value passed to 'css' function must be a 'css' function result: "+e+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(n)+e[a+1]),e[0]);return new r(n,e,a)},c=(e,a)=>{if(n)e.adoptedStyleSheets=a.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet));else for(const n of a){const a=document.createElement("style"),i=t.litNonce;void 0!==i&&a.setAttribute("nonce",i),a.textContent=n.cssText,e.appendChild(a)}},l=n?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const n of e.cssRules)t+=n.cssText;return o(t)})(e):e +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */,{is:d,defineProperty:u,getOwnPropertyDescriptor:h,getOwnPropertyNames:p,getOwnPropertySymbols:m,getPrototypeOf:g}=Object,f=globalThis,_=f.trustedTypes,y=_?_.emptyScript:"",v=f.reactiveElementPolyfillSupport,b=(e,t)=>e,w={toAttribute(e,t){switch(t){case Boolean:e=e?y:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let n=e;switch(t){case Boolean:n=null!==e;break;case Number:n=null===e?null:Number(e);break;case Object:case Array:try{n=JSON.parse(e)}catch(e){n=null}}return n}},x=(e,t)=>!d(e,t),C={attribute:!0,type:String,converter:w,reflect:!1,hasChanged:x};Symbol.metadata??=Symbol("metadata"),f.litPropertyMetadata??=new WeakMap;class M extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=C){if(t.state&&(t.attribute=!1),this._$Ei(),this.elementProperties.set(e,t),!t.noAccessor){const n=Symbol(),a=this.getPropertyDescriptor(e,n,t);void 0!==a&&u(this.prototype,e,a)}}static getPropertyDescriptor(e,t,n){const{get:a,set:i}=h(this.prototype,e)??{get(){return this[t]},set(e){this[t]=e}};return{get(){return a?.call(this)},set(t){const r=a?.call(this);i.call(this,t),this.requestUpdate(e,r,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??C}static _$Ei(){if(this.hasOwnProperty(b("elementProperties")))return;const e=g(this);e.finalize(),void 0!==e.l&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(b("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(b("properties"))){const e=this.properties,t=[...p(e),...m(e)];for(const n of t)this.createProperty(n,e[n])}const e=this[Symbol.metadata];if(null!==e){const t=litPropertyMetadata.get(e);if(void 0!==t)for(const[e,n]of t)this.elementProperties.set(e,n)}this._$Eh=new Map;for(const[e,t]of this.elementProperties){const n=this._$Eu(e,t);void 0!==n&&this._$Eh.set(n,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const n=new Set(e.flat(1/0).reverse());for(const e of n)t.unshift(l(e))}else void 0!==e&&t.push(l(e));return t}static _$Eu(e,t){const n=t.attribute;return!1===n?void 0:"string"==typeof n?n:"string"==typeof e?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((e=>this.enableUpdating=e)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((e=>e(this)))}addController(e){(this._$EO??=new Set).add(e),void 0!==this.renderRoot&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){const e=new Map,t=this.constructor.elementProperties;for(const n of t.keys())this.hasOwnProperty(n)&&(e.set(n,this[n]),delete this[n]);e.size>0&&(this._$Ep=e)}createRenderRoot(){const e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return c(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((e=>e.hostConnected?.()))}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach((e=>e.hostDisconnected?.()))}attributeChangedCallback(e,t,n){this._$AK(e,n)}_$EC(e,t){const n=this.constructor.elementProperties.get(e),a=this.constructor._$Eu(e,n);if(void 0!==a&&!0===n.reflect){const i=(void 0!==n.converter?.toAttribute?n.converter:w).toAttribute(t,n.type);this._$Em=e,null==i?this.removeAttribute(a):this.setAttribute(a,i),this._$Em=null}}_$AK(e,t){const n=this.constructor,a=n._$Eh.get(e);if(void 0!==a&&this._$Em!==a){const e=n.getPropertyOptions(a),i="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==e.converter?.fromAttribute?e.converter:w;this._$Em=a,this[a]=i.fromAttribute(t,e.type),this._$Em=null}}requestUpdate(e,t,n){if(void 0!==e){if(n??=this.constructor.getPropertyOptions(e),!(n.hasChanged??x)(this[e],t))return;this.P(e,t,n)}!1===this.isUpdatePending&&(this._$ES=this._$ET())}P(e,t,n){this._$AL.has(e)||this._$AL.set(e,t),!0===n.reflect&&this._$Em!==e&&(this._$Ej??=new Set).add(e)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[e,t]of this._$Ep)this[e]=t;this._$Ep=void 0}const e=this.constructor.elementProperties;if(e.size>0)for(const[t,n]of e)!0!==n.wrapped||this._$AL.has(t)||void 0===this[t]||this.P(t,this[t],n)}let e=!1;const t=this._$AL;try{e=this.shouldUpdate(t),e?(this.willUpdate(t),this._$EO?.forEach((e=>e.hostUpdate?.())),this.update(t)):this._$EU()}catch(t){throw e=!1,this._$EU(),t}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach((e=>e.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Ej&&=this._$Ej.forEach((e=>this._$EC(e,this[e]))),this._$EU()}updated(e){}firstUpdated(e){}}M.elementStyles=[],M.shadowRootOptions={mode:"open"},M[b("elementProperties")]=new Map,M[b("finalized")]=new Map,v?.({ReactiveElement:M}),(f.reactiveElementVersions??=[]).push("2.0.4"); +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const k=globalThis,S=k.trustedTypes,E=S?S.createPolicy("lit-html",{createHTML:e=>e}):void 0,$="$lit$",A=`lit$${(Math.random()+"").slice(9)}$`,I="?"+A,z=`<${I}>`,T=document,j=()=>T.createComment(""),O=e=>null===e||"object"!=typeof e&&"function"!=typeof e,D=Array.isArray,R="[ \t\n\f\r]",P=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,L=/-->/g,N=/>/g,F=RegExp(`>|${R}(?:([^\\s"'>=/]+)(${R}*=${R}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),V=/'/g,H=/"/g,B=/^(?:script|style|textarea|title)$/i,q=(e=>(t,...n)=>({_$litType$:e,strings:t,values:n}))(1),U=Symbol.for("lit-noChange"),W=Symbol.for("lit-nothing"),Z=new WeakMap,Q=T.createTreeWalker(T,129);function G(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==E?E.createHTML(t):t}const Y=(e,t)=>{const n=e.length-1,a=[];let i,r=2===t?"":"",o=P;for(let t=0;t"===c[0]?(o=i??P,l=-1):void 0===c[1]?l=-2:(l=o.lastIndex-c[2].length,s=c[1],o=void 0===c[3]?F:'"'===c[3]?H:V):o===H||o===V?o=F:o===L||o===N?o=P:(o=F,i=void 0);const u=o===F&&e[t+1].startsWith("/>")?" ":"";r+=o===P?n+z:l>=0?(a.push(s),n.slice(0,l)+$+n.slice(l)+A+u):n+A+(-2===l?t:u)}return[G(e,r+(e[n]||"")+(2===t?"":"")),a]};class K{constructor({strings:e,_$litType$:t},n){let a;this.parts=[];let i=0,r=0;const o=e.length-1,s=this.parts,[c,l]=Y(e,t);if(this.el=K.createElement(c,n),Q.currentNode=this.el.content,2===t){const e=this.el.content.firstChild;e.replaceWith(...e.childNodes)}for(;null!==(a=Q.nextNode())&&s.length0){a.textContent=S?S.emptyScript:"";for(let n=0;nD(e)||"function"==typeof e?.[Symbol.iterator])(e)?this.k(e):this._(e)}S(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.S(e))}_(e){this._$AH!==W&&O(this._$AH)?this._$AA.nextSibling.data=e:this.T(T.createTextNode(e)),this._$AH=e}$(e){const{values:t,_$litType$:n}=e,a="number"==typeof n?this._$AC(e):(void 0===n.el&&(n.el=K.createElement(G(n.h,n.h[0]),this.options)),n);if(this._$AH?._$AD===a)this._$AH.p(t);else{const e=new J(a,this),n=e.u(this.options);e.p(t),this.T(n),this._$AH=e}}_$AC(e){let t=Z.get(e.strings);return void 0===t&&Z.set(e.strings,t=new K(e)),t}k(e){D(this._$AH)||(this._$AH=[],this._$AR());const t=this._$AH;let n,a=0;for(const i of e)a===t.length?t.push(n=new ee(this.S(j()),this.S(j()),this,this.options)):n=t[a],n._$AI(i),a++;a2||""!==n[0]||""!==n[1]?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=W}_$AI(e,t=this,n,a){const i=this.strings;let r=!1;if(void 0===i)e=X(this,e,t,0),r=!O(e)||e!==this._$AH&&e!==U,r&&(this._$AH=e);else{const a=e;let o,s;for(e=i[0],o=0;o{const a=n?.renderBefore??t;let i=a._$litPart$;if(void 0===i){const e=n?.renderBefore??null;a._$litPart$=i=new ee(t.insertBefore(j(),e),e,void 0,n??{})}return i._$AI(e),i})(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return U}};se._$litElement$=!0,se.finalized=!0,globalThis.litElementHydrateSupport?.({LitElement:se});const ce=globalThis.litElementPolyfillSupport;ce?.({LitElement:se}),(globalThis.litElementVersions??=[]).push("4.0.4"); +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const le=e=>(t,n)=>{void 0!==n?n.addInitializer((()=>{customElements.define(e,t)})):customElements.define(e,t)} +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */,de={attribute:!0,type:String,converter:w,reflect:!1,hasChanged:x},ue=(e=de,t,n)=>{const{kind:a,metadata:i}=n;let r=globalThis.litPropertyMetadata.get(i);if(void 0===r&&globalThis.litPropertyMetadata.set(i,r=new Map),r.set(n.name,e),"accessor"===a){const{name:a}=n;return{set(n){const i=t.get.call(this);t.set.call(this,n),this.requestUpdate(a,i,e)},init(t){return void 0!==t&&this.P(a,void 0,e),t}}}if("setter"===a){const{name:a}=n;return function(n){const i=this[a];t.call(this,n),this.requestUpdate(a,i,e)}}throw Error("Unsupported decorator location: "+a)};function he(e){return(t,n)=>"object"==typeof n?ue(e,t,n):((e,t,n)=>{const a=t.hasOwnProperty(n);return t.constructor.createProperty(n,a?{...e,wrapped:!0}:e),a?Object.getOwnPropertyDescriptor(t,n):void 0})(e,t,n) +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */}function pe(e){return he({...e,state:!0,attribute:!1})} +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const me={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},ge=e=>(...t)=>({_$litDirective$:e,values:t});let fe=class{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,n){this._$Ct=e,this._$AM=t,this._$Ci=n}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}}; +/** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const _e=ge(class extends fe{constructor(e){if(super(e),e.type!==me.ATTRIBUTE||"class"!==e.name||e.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(e){return" "+Object.keys(e).filter((t=>e[t])).join(" ")+" "}update(e,[t]){if(void 0===this.st){this.st=new Set,void 0!==e.strings&&(this.nt=new Set(e.strings.join(" ").split(/\s/).filter((e=>""!==e))));for(const e in t)t[e]&&!this.nt?.has(e)&&this.st.add(e);return this.render(t)}const n=e.element.classList;for(const e of this.st)e in t||(n.remove(e),this.st.delete(e));for(const e in t){const a=!!t[e];a===this.st.has(e)||this.nt?.has(e)||(a?(n.add(e),this.st.add(e)):(n.remove(e),this.st.delete(e)))}return U}}),ye=e=>e??W +/** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */,ve=e=>null===e||"object"!=typeof e&&"function"!=typeof e,be=e=>void 0===e.strings,we={},xe=(e,t=we)=>e._$AH=t +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */,Ce=(e,t)=>{const n=e._$AN;if(void 0===n)return!1;for(const e of n)e._$AO?.(t,!1),Ce(e,t);return!0},Me=e=>{let t,n;do{if(void 0===(t=e._$AM))break;n=t._$AN,n.delete(e),e=t}while(0===n?.size)},ke=e=>{for(let t;t=e._$AM;e=t){let n=t._$AN;if(void 0===n)t._$AN=n=new Set;else if(n.has(e))break;n.add(e),$e(t)}}; +/** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */function Se(e){void 0!==this._$AN?(Me(this),this._$AM=e,ke(this)):this._$AM=e}function Ee(e,t=!1,n=0){const a=this._$AH,i=this._$AN;if(void 0!==i&&0!==i.size)if(t)if(Array.isArray(a))for(let e=n;e{e.type==me.CHILD&&(e._$AP??=Ee,e._$AQ??=Se)};class Ae extends fe{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,t,n){super._$AT(e,t,n),ke(this),this.isConnected=e._$AU}_$AO(e,t=!0){e!==this.isConnected&&(this.isConnected=e,e?this.reconnected?.():this.disconnected?.()),t&&(Ce(this,e),Me(this))}setValue(e){if(be(this._$Ct))this._$Ct._$AI(e,this);else{const t=[...this._$Ct._$AH];t[this._$Ci]=e,this._$Ct._$AI(t,this,0)}}disconnected(){}reconnected(){}} +/** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const Ie=()=>new ze;let ze=class{};const Te=new WeakMap,je=ge(class extends Ae{render(e){return W}update(e,[t]){const n=t!==this.Y;return n&&void 0!==this.Y&&this.rt(void 0),(n||this.lt!==this.ct)&&(this.Y=t,this.ht=e.options?.host,this.rt(this.ct=e.element)),W}rt(e){if("function"==typeof this.Y){const t=this.ht??globalThis;let n=Te.get(t);void 0===n&&(n=new WeakMap,Te.set(t,n)),void 0!==n.get(this.Y)&&this.Y.call(this.ht,void 0),n.set(this.Y,e),void 0!==e&&this.Y.call(this.ht,e)}else this.Y.value=e}get lt(){return"function"==typeof this.Y?Te.get(this.ht??globalThis)?.get(this.Y):this.Y?.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}}),Oe="important",De=" !"+Oe,Re=ge(class extends fe{constructor(e){if(super(e),e.type!==me.ATTRIBUTE||"style"!==e.name||e.strings?.length>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(e){return Object.keys(e).reduce(((t,n)=>{const a=e[n];return null==a?t:t+`${n=n.includes("-")?n:n.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${a};`}),"")}update(e,[t]){const{style:n}=e.element;if(void 0===this.ft)return this.ft=new Set(Object.keys(t)),this.render(t);for(const e of this.ft)null==t[e]&&(this.ft.delete(e),e.includes("-")?n.removeProperty(e):n[e]=null);for(const e in t){const a=t[e];if(null!=a){this.ft.add(e);const t="string"==typeof a&&a.endsWith(De);e.includes("-")||t?n.setProperty(e,t?a.slice(0,-11):a,t?Oe:""):n[e]=a}}return U}}); +/** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */function Pe(e,t,n,a=20,i=0){let r=[];if(i>=a)return r;const o=e=>{const r=e.assignedNodes().filter((e=>1===e.nodeType));return r.length>0?Pe(r[0].parentElement,t,n,a,i+1):[]},s=Array.from(e.children||[]);for(const e of s)t(e)||(n(e)&&r.push(e),null!=e.shadowRoot?r.push(...Pe(e.shadowRoot,t,n,a,i+1)):"SLOT"===e.tagName?r.push(...o(e)):r.push(...Pe(e,t,n,a,i+1)));return r}function Le(e){return e.hasAttribute("hidden")||e.hasAttribute("aria-hidden")&&"false"!==e.getAttribute("aria-hidden")||"none"===e.style.display||"0"===e.style.opacity||"hidden"===e.style.visibility||"collapse"===e.style.visibility}function Ne(e){return"-1"!==e.getAttribute("tabindex")&&!Le(e)&&!function(e){return e.hasAttribute("disabled")||e.hasAttribute("aria-disabled")&&"false"!==e.getAttribute("aria-disabled")}(e)&&(e.hasAttribute("tabindex")||(e instanceof HTMLAnchorElement||e instanceof HTMLAreaElement)&&e.hasAttribute("href")||e instanceof HTMLButtonElement||e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement||e instanceof HTMLIFrameElement)}const Fe=new Map;const Ve=document.createElement("template");Ve.innerHTML='\n\t

\n\t
\n\t\n\t
\n';class He extends HTMLElement{constructor(){super(),this.debounceId=Math.random().toString(),this._focused=!1;const e=this.attachShadow({mode:"open"});e.appendChild(Ve.content.cloneNode(!0)),this.$backup=e.querySelector("#backup"),this.$start=e.querySelector("#start"),this.$end=e.querySelector("#end"),this.focusLastElement=this.focusLastElement.bind(this),this.focusFirstElement=this.focusFirstElement.bind(this),this.onFocusIn=this.onFocusIn.bind(this),this.onFocusOut=this.onFocusOut.bind(this)}static get observedAttributes(){return["inactive"]}get inactive(){return this.hasAttribute("inactive")}set inactive(e){e?this.setAttribute("inactive",""):this.removeAttribute("inactive")}get focused(){return this._focused}connectedCallback(){this.$start.addEventListener("focus",this.focusLastElement),this.$end.addEventListener("focus",this.focusFirstElement),this.addEventListener("focusin",this.onFocusIn),this.addEventListener("focusout",this.onFocusOut),this.render()}disconnectedCallback(){this.$start.removeEventListener("focus",this.focusLastElement),this.$end.removeEventListener("focus",this.focusFirstElement),this.removeEventListener("focusin",this.onFocusIn),this.removeEventListener("focusout",this.onFocusOut)}attributeChangedCallback(){this.render()}focusFirstElement(){this.trapFocus()}focusLastElement(){this.trapFocus(!0)}getFocusableElements(){return Pe(this,Le,Ne)}trapFocus(e){if(this.inactive)return;let t=this.getFocusableElements();t.length>0?(e?t[t.length-1].focus():t[0].focus(),this.$backup.setAttribute("tabindex","-1")):(this.$backup.setAttribute("tabindex","0"),this.$backup.focus())}onFocusIn(){this.updateFocused(!0)}onFocusOut(){this.updateFocused(!1)}updateFocused(e){!function(e,t,n){const a=Fe.get(n);null!=a&&window.clearTimeout(a),Fe.set(n,window.setTimeout((()=>{e(),Fe.delete(n)}),t))}((()=>{this.focused!==e&&(this._focused=e,this.render())}),0,this.debounceId)}render(){this.$start.setAttribute("tabindex",!this.focused||this.inactive?"-1":"0"),this.$end.setAttribute("tabindex",!this.focused||this.inactive?"-1":"0"),this.focused?this.setAttribute("focused",""):this.removeAttribute("focused")}}function Be(e){return Number(e.getAttribute("data-dialog-count"))||0}function qe(e,t){e.setAttribute("data-dialog-count",t.toString())}function Ue(e=document.activeElement){return null!=e&&null!=e.shadowRoot&&null!=e.shadowRoot.activeElement?Ue(e.shadowRoot.activeElement):e}window.customElements.define("focus-trap",He);const We=document.createElement("template");We.innerHTML='\n \n
\n \n \n \n';class Ze extends HTMLElement{constructor(){super(),this.$scrollContainer=document.documentElement,this.$previousActiveElement=null;const e=this.attachShadow({mode:"open"});e.appendChild(We.content.cloneNode(!0)),this.$dialog=e.querySelector("#dialog"),this.$backdrop=e.querySelector("#backdrop"),this.onBackdropClick=this.onBackdropClick.bind(this),this.onKeyDown=this.onKeyDown.bind(this),this.setAttribute("aria-modal","true"),this.$dialog.setAttribute("role","alertdialog")}static get observedAttributes(){return["open","center"]}get open(){return this.hasAttribute("open")}set open(e){e?this.setAttribute("open",""):this.removeAttribute("open")}get center(){return this.hasAttribute("center")}set center(e){e?this.setAttribute("center",""):this.removeAttribute("center")}connectedCallback(){this.$backdrop.addEventListener("click",this.onBackdropClick)}disconnectedCallback(){this.$backdrop.removeEventListener("click",this.onBackdropClick),this.open&&this.didClose()}show(){this.open=!0}close(e){this.result=e,this.open=!1}onBackdropClick(){this.assertClosing()&&this.close()}onKeyDown(e){if("Escape"===e.code)this.assertClosing()&&(this.close(),e.stopImmediatePropagation())}assertClosing(){return this.dispatchEvent(new CustomEvent("closing",{cancelable:!0}))}didOpen(){this.$previousActiveElement=Ue(document.activeElement),requestAnimationFrame((()=>{this.$dialog.focusFirstElement()})),this.tabIndex=0,this.$scrollContainer.style.overflow="hidden",this.addEventListener("keydown",this.onKeyDown,{capture:!0,passive:!0}),qe(this.$scrollContainer,Be(this.$scrollContainer)+1),this.dispatchEvent(new CustomEvent("open"))}didClose(){this.removeEventListener("keydown",this.onKeyDown,{capture:!0}),qe(this.$scrollContainer,Math.max(0,Be(this.$scrollContainer)-1)),Be(this.$scrollContainer)<=0&&(this.$scrollContainer.style.overflow=""),this.tabIndex=-1,null!=this.$previousActiveElement&&(this.$previousActiveElement.focus(),this.$previousActiveElement=null),this.dispatchEvent(new CustomEvent("close",{detail:this.result}))}attributeChangedCallback(e,t,n){if("open"===e)this.open?this.didOpen():this.didClose()}}var Qe,Ge;function Ye(e){return e.substr(0,e.indexOf("."))}customElements.define("web-dialog",Ze),function(e){e.language="language",e.system="system",e.comma_decimal="comma_decimal",e.decimal_comma="decimal_comma",e.space_comma="space_comma",e.none="none"}(Qe||(Qe={})),function(e){e.language="language",e.system="system",e.am_pm="12",e.twenty_four="24"}(Ge||(Ge={}));var Ke,Xe,Je=["closed","locked","off"],et=function(e,t,n,a){a=a||{},n=null==n?{}:n;var i=new Event(t,{bubbles:void 0===a.bubbles||a.bubbles,cancelable:Boolean(a.cancelable),composed:void 0===a.composed||a.composed});return i.detail=n,e.dispatchEvent(i),i},tt=function(e){et(window,"haptic",e)},nt=function(e,t){return function(e,t,n){void 0===n&&(n=!0);var a,i=Ye(t),r="group"===i?"homeassistant":i;switch(i){case"lock":a=n?"unlock":"lock";break;case"cover":a=n?"open_cover":"close_cover";break;default:a=n?"turn_on":"turn_off"}return e.callService(r,a,{entity_id:t})}(e,t,Je.includes(e.states[t].state))},at=function(e,t,n,a){if(a||(a={action:"more-info"}),!a.confirmation||a.confirmation.exemptions&&a.confirmation.exemptions.some((function(e){return e.user===t.user.id}))||(tt("warning"),confirm(a.confirmation.text||"Are you sure you want to "+a.action+"?")))switch(a.action){case"more-info":(n.entity||n.camera_image)&&et(e,"hass-more-info",{entityId:n.entity?n.entity:n.camera_image});break;case"navigate":a.navigation_path&&function(e,t,n){void 0===n&&(n=!1),n?history.replaceState(null,"",t):history.pushState(null,"",t),et(window,"location-changed",{replace:n})}(0,a.navigation_path);break;case"url":a.url_path&&window.open(a.url_path);break;case"toggle":n.entity&&(nt(t,n.entity),tt("success"));break;case"perform-action":if(!a.perform_action)return void tt("failure");var i=a.perform_action.split(".",2);t.callService(i[0],i[1],a.data,a.target),tt("success");break;case"call-service":if(!a.service)return void tt("failure");var r=a.service.split(".",2);t.callService(r[0],r[1],a.data,a.target),tt("success");break;case"fire-dom-event":et(e,"ll-custom",a)}};!function(e){e.assertEqual=e=>e,e.assertIs=function(e){},e.assertNever=function(e){throw new Error},e.arrayToEnum=e=>{const t={};for(const n of e)t[n]=n;return t},e.getValidEnumValues=t=>{const n=e.objectKeys(t).filter((e=>"number"!=typeof t[t[e]])),a={};for(const e of n)a[e]=t[e];return e.objectValues(a)},e.objectValues=t=>e.objectKeys(t).map((function(e){return t[e]})),e.objectKeys="function"==typeof Object.keys?e=>Object.keys(e):e=>{const t=[];for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(const n of e)if(t(n))return n},e.isInteger="function"==typeof Number.isInteger?e=>Number.isInteger(e):e=>"number"==typeof e&&isFinite(e)&&Math.floor(e)===e,e.joinValues=function(e,t=" | "){return e.map((e=>"string"==typeof e?`'${e}'`:e)).join(t)},e.jsonStringifyReplacer=(e,t)=>"bigint"==typeof t?t.toString():t}(Ke||(Ke={})),function(e){e.mergeShapes=(e,t)=>({...e,...t})}(Xe||(Xe={}));const it=Ke.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),rt=e=>{switch(typeof e){case"undefined":return it.undefined;case"string":return it.string;case"number":return isNaN(e)?it.nan:it.number;case"boolean":return it.boolean;case"function":return it.function;case"bigint":return it.bigint;case"symbol":return it.symbol;case"object":return Array.isArray(e)?it.array:null===e?it.null:e.then&&"function"==typeof e.then&&e.catch&&"function"==typeof e.catch?it.promise:"undefined"!=typeof Map&&e instanceof Map?it.map:"undefined"!=typeof Set&&e instanceof Set?it.set:"undefined"!=typeof Date&&e instanceof Date?it.date:it.object;default:return it.unknown}},ot=Ke.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class st extends Error{constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}get errors(){return this.issues}format(e){const t=e||function(e){return e.message},n={_errors:[]},a=e=>{for(const i of e.issues)if("invalid_union"===i.code)i.unionErrors.map(a);else if("invalid_return_type"===i.code)a(i.returnTypeError);else if("invalid_arguments"===i.code)a(i.argumentsError);else if(0===i.path.length)n._errors.push(t(i));else{let e=n,a=0;for(;ae.message)){const t={},n=[];for(const a of this.issues)a.path.length>0?(t[a.path[0]]=t[a.path[0]]||[],t[a.path[0]].push(e(a))):n.push(e(a));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}st.create=e=>new st(e);const ct=(e,t)=>{let n;switch(e.code){case ot.invalid_type:n=e.received===it.undefined?"Required":`Expected ${e.expected}, received ${e.received}`;break;case ot.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,Ke.jsonStringifyReplacer)}`;break;case ot.unrecognized_keys:n=`Unrecognized key(s) in object: ${Ke.joinValues(e.keys,", ")}`;break;case ot.invalid_union:n="Invalid input";break;case ot.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Ke.joinValues(e.options)}`;break;case ot.invalid_enum_value:n=`Invalid enum value. Expected ${Ke.joinValues(e.options)}, received '${e.received}'`;break;case ot.invalid_arguments:n="Invalid function arguments";break;case ot.invalid_return_type:n="Invalid function return type";break;case ot.invalid_date:n="Invalid date";break;case ot.invalid_string:"object"==typeof e.validation?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,"number"==typeof e.validation.position&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:Ke.assertNever(e.validation):n="regex"!==e.validation?`Invalid ${e.validation}`:"Invalid";break;case ot.too_small:n="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:"date"===e.type?`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:"Invalid input";break;case ot.too_big:n="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"bigint"===e.type?`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"date"===e.type?`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:"Invalid input";break;case ot.custom:n="Invalid input";break;case ot.invalid_intersection_types:n="Intersection results could not be merged";break;case ot.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case ot.not_finite:n="Number must be finite";break;default:n=t.defaultError,Ke.assertNever(e)}return{message:n}};let lt=ct;function dt(){return lt}const ut=e=>{const{data:t,path:n,errorMaps:a,issueData:i}=e,r=[...n,...i.path||[]],o={...i,path:r};if(void 0!==i.message)return{...i,path:r,message:i.message};let s="";const c=a.filter((e=>!!e)).slice().reverse();for(const e of c)s=e(o,{data:t,defaultError:s}).message;return{...i,path:r,message:s}};function ht(e,t){const n=dt(),a=ut({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===ct?void 0:ct].filter((e=>!!e))});e.common.issues.push(a)}class pt{constructor(){this.value="valid"}dirty(){"valid"===this.value&&(this.value="dirty")}abort(){"aborted"!==this.value&&(this.value="aborted")}static mergeArray(e,t){const n=[];for(const a of t){if("aborted"===a.status)return mt;"dirty"===a.status&&e.dirty(),n.push(a.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,t){const n=[];for(const e of t){const t=await e.key,a=await e.value;n.push({key:t,value:a})}return pt.mergeObjectSync(e,n)}static mergeObjectSync(e,t){const n={};for(const a of t){const{key:t,value:i}=a;if("aborted"===t.status)return mt;if("aborted"===i.status)return mt;"dirty"===t.status&&e.dirty(),"dirty"===i.status&&e.dirty(),"__proto__"===t.value||void 0===i.value&&!a.alwaysSet||(n[t.value]=i.value)}return{status:e.value,value:n}}}const mt=Object.freeze({status:"aborted"}),gt=e=>({status:"dirty",value:e}),ft=e=>({status:"valid",value:e}),_t=e=>"aborted"===e.status,yt=e=>"dirty"===e.status,vt=e=>"valid"===e.status,bt=e=>"undefined"!=typeof Promise&&e instanceof Promise;function wt(e,t,n,a){if("a"===n&&!a)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?a:"a"===n?a.call(e):a?a.value:t.get(e)}function xt(e,t,n,a,i){if("m"===a)throw new TypeError("Private method is not writable");if("a"===a&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===a?i.call(e,n):i?i.value=n:t.set(e,n),n}var Ct,Mt,kt;"function"==typeof SuppressedError&&SuppressedError,function(e){e.errToObj=e=>"string"==typeof e?{message:e}:e||{},e.toString=e=>"string"==typeof e?e:null==e?void 0:e.message}(Ct||(Ct={}));class St{constructor(e,t,n,a){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=a}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const Et=(e,t)=>{if(vt(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new st(e.common.issues);return this._error=t,this._error}}};function $t(e){if(!e)return{};const{errorMap:t,invalid_type_error:n,required_error:a,description:i}=e;if(t&&(n||a))throw new Error('Can\'t use "invalid_type_error" or "required_error" in conjunction with custom error map.');if(t)return{errorMap:t,description:i};return{errorMap:(t,i)=>{var r,o;const{message:s}=e;return"invalid_enum_value"===t.code?{message:null!=s?s:i.defaultError}:void 0===i.data?{message:null!==(r=null!=s?s:a)&&void 0!==r?r:i.defaultError}:"invalid_type"!==t.code?{message:i.defaultError}:{message:null!==(o=null!=s?s:n)&&void 0!==o?o:i.defaultError}},description:i}}class At{constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(e){return rt(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:rt(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new pt,ctx:{common:e.parent.common,data:e.data,parsedType:rt(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(bt(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){var n;const a={common:{issues:[],async:null!==(n=null==t?void 0:t.async)&&void 0!==n&&n,contextualErrorMap:null==t?void 0:t.errorMap},path:(null==t?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:rt(e)},i=this._parseSync({data:e,path:a.path,parent:a});return Et(a,i)}async parseAsync(e,t){const n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){const n={common:{issues:[],contextualErrorMap:null==t?void 0:t.errorMap,async:!0},path:(null==t?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:rt(e)},a=this._parse({data:e,path:n.path,parent:n}),i=await(bt(a)?a:Promise.resolve(a));return Et(n,i)}refine(e,t){const n=e=>"string"==typeof t||void 0===t?{message:t}:"function"==typeof t?t(e):t;return this._refinement(((t,a)=>{const i=e(t),r=()=>a.addIssue({code:ot.custom,...n(t)});return"undefined"!=typeof Promise&&i instanceof Promise?i.then((e=>!!e||(r(),!1))):!!i||(r(),!1)}))}refinement(e,t){return this._refinement(((n,a)=>!!e(n)||(a.addIssue("function"==typeof t?t(n,a):t),!1)))}_refinement(e){return new kn({schema:this,typeName:Pn.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return Sn.create(this,this._def)}nullable(){return En.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return on.create(this,this._def)}promise(){return Mn.create(this,this._def)}or(e){return ln.create([this,e],this._def)}and(e){return pn.create(this,e,this._def)}transform(e){return new kn({...$t(this._def),schema:this,typeName:Pn.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t="function"==typeof e?e:()=>e;return new $n({...$t(this._def),innerType:this,defaultValue:t,typeName:Pn.ZodDefault})}brand(){return new Tn({typeName:Pn.ZodBranded,type:this,...$t(this._def)})}catch(e){const t="function"==typeof e?e:()=>e;return new An({...$t(this._def),innerType:this,catchValue:t,typeName:Pn.ZodCatch})}describe(e){return new(0,this.constructor)({...this._def,description:e})}pipe(e){return jn.create(this,e)}readonly(){return On.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const It=/^c[^\s-]{8,}$/i,zt=/^[0-9a-z]+$/,Tt=/^[0-9A-HJKMNP-TV-Z]{26}$/,jt=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Ot=/^[a-z0-9_-]{21}$/i,Dt=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Rt=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;let Pt;const Lt=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Nt=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,Ft=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Vt="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Ht=new RegExp(`^${Vt}$`);function Bt(e){let t="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return e.precision?t=`${t}\\.\\d{${e.precision}}`:null==e.precision&&(t=`${t}(\\.\\d+)?`),t}function qt(e){let t=`${Vt}T${Bt(e)}`;const n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function Ut(e,t){return!("v4"!==t&&t||!Lt.test(e))||!("v6"!==t&&t||!Nt.test(e))}class Wt extends At{_parse(e){this._def.coerce&&(e.data=String(e.data));if(this._getType(e)!==it.string){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.string,received:t.parsedType}),mt}const t=new pt;let n;for(const a of this._def.checks)if("min"===a.kind)e.data.lengtha.value&&(n=this._getOrReturnCtx(e,n),ht(n,{code:ot.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),t.dirty());else if("length"===a.kind){const i=e.data.length>a.value,r=e.data.lengthe.test(t)),{validation:t,code:ot.invalid_string,...Ct.errToObj(n)})}_addCheck(e){return new Wt({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...Ct.errToObj(e)})}url(e){return this._addCheck({kind:"url",...Ct.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...Ct.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...Ct.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...Ct.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...Ct.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...Ct.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...Ct.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...Ct.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...Ct.errToObj(e)})}datetime(e){var t,n;return"string"==typeof e?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:void 0===(null==e?void 0:e.precision)?null:null==e?void 0:e.precision,offset:null!==(t=null==e?void 0:e.offset)&&void 0!==t&&t,local:null!==(n=null==e?void 0:e.local)&&void 0!==n&&n,...Ct.errToObj(null==e?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return"string"==typeof e?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:void 0===(null==e?void 0:e.precision)?null:null==e?void 0:e.precision,...Ct.errToObj(null==e?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...Ct.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...Ct.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:null==t?void 0:t.position,...Ct.errToObj(null==t?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...Ct.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...Ct.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...Ct.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...Ct.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...Ct.errToObj(t)})}nonempty(e){return this.min(1,Ct.errToObj(e))}trim(){return new Wt({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Wt({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Wt({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((e=>"datetime"===e.kind))}get isDate(){return!!this._def.checks.find((e=>"date"===e.kind))}get isTime(){return!!this._def.checks.find((e=>"time"===e.kind))}get isDuration(){return!!this._def.checks.find((e=>"duration"===e.kind))}get isEmail(){return!!this._def.checks.find((e=>"email"===e.kind))}get isURL(){return!!this._def.checks.find((e=>"url"===e.kind))}get isEmoji(){return!!this._def.checks.find((e=>"emoji"===e.kind))}get isUUID(){return!!this._def.checks.find((e=>"uuid"===e.kind))}get isNANOID(){return!!this._def.checks.find((e=>"nanoid"===e.kind))}get isCUID(){return!!this._def.checks.find((e=>"cuid"===e.kind))}get isCUID2(){return!!this._def.checks.find((e=>"cuid2"===e.kind))}get isULID(){return!!this._def.checks.find((e=>"ulid"===e.kind))}get isIP(){return!!this._def.checks.find((e=>"ip"===e.kind))}get isBase64(){return!!this._def.checks.find((e=>"base64"===e.kind))}get minLength(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.valuea?n:a;return parseInt(e.toFixed(i).replace(".",""))%parseInt(t.toFixed(i).replace(".",""))/Math.pow(10,i)}Wt.create=e=>{var t;return new Wt({checks:[],typeName:Pn.ZodString,coerce:null!==(t=null==e?void 0:e.coerce)&&void 0!==t&&t,...$t(e)})};class Qt extends At{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){this._def.coerce&&(e.data=Number(e.data));if(this._getType(e)!==it.number){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.number,received:t.parsedType}),mt}let t;const n=new pt;for(const a of this._def.checks)if("int"===a.kind)Ke.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.invalid_type,expected:"integer",received:"float",message:a.message}),n.dirty());else if("min"===a.kind){(a.inclusive?e.dataa.value:e.data>=a.value)&&(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),n.dirty())}else"multipleOf"===a.kind?0!==Zt(e.data,a.value)&&(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.not_multiple_of,multipleOf:a.value,message:a.message}),n.dirty()):"finite"===a.kind?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.not_finite,message:a.message}),n.dirty()):Ke.assertNever(a);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,Ct.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Ct.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Ct.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Ct.toString(t))}setLimit(e,t,n,a){return new Qt({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Ct.toString(a)}]})}_addCheck(e){return new Qt({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:Ct.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:Ct.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:Ct.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:Ct.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:Ct.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Ct.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:Ct.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Ct.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Ct.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value"int"===e.kind||"multipleOf"===e.kind&&Ke.isInteger(e.value)))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if("finite"===n.kind||"int"===n.kind||"multipleOf"===n.kind)return!0;"min"===n.kind?(null===t||n.value>t)&&(t=n.value):"max"===n.kind&&(null===e||n.valuenew Qt({checks:[],typeName:Pn.ZodNumber,coerce:(null==e?void 0:e.coerce)||!1,...$t(e)});class Gt extends At{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){this._def.coerce&&(e.data=BigInt(e.data));if(this._getType(e)!==it.bigint){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.bigint,received:t.parsedType}),mt}let t;const n=new pt;for(const a of this._def.checks)if("min"===a.kind){(a.inclusive?e.dataa.value:e.data>=a.value)&&(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),n.dirty())}else"multipleOf"===a.kind?e.data%a.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.not_multiple_of,multipleOf:a.value,message:a.message}),n.dirty()):Ke.assertNever(a);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,Ct.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Ct.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Ct.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Ct.toString(t))}setLimit(e,t,n,a){return new Gt({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Ct.toString(a)}]})}_addCheck(e){return new Gt({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:Ct.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:Ct.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:Ct.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:Ct.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Ct.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value{var t;return new Gt({checks:[],typeName:Pn.ZodBigInt,coerce:null!==(t=null==e?void 0:e.coerce)&&void 0!==t&&t,...$t(e)})};class Yt extends At{_parse(e){this._def.coerce&&(e.data=Boolean(e.data));if(this._getType(e)!==it.boolean){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.boolean,received:t.parsedType}),mt}return ft(e.data)}}Yt.create=e=>new Yt({typeName:Pn.ZodBoolean,coerce:(null==e?void 0:e.coerce)||!1,...$t(e)});class Kt extends At{_parse(e){this._def.coerce&&(e.data=new Date(e.data));if(this._getType(e)!==it.date){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.date,received:t.parsedType}),mt}if(isNaN(e.data.getTime())){return ht(this._getOrReturnCtx(e),{code:ot.invalid_date}),mt}const t=new pt;let n;for(const a of this._def.checks)"min"===a.kind?e.data.getTime()a.value&&(n=this._getOrReturnCtx(e,n),ht(n,{code:ot.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),t.dirty()):Ke.assertNever(a);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Kt({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:Ct.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:Ct.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return null!=e?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.valuenew Kt({checks:[],coerce:(null==e?void 0:e.coerce)||!1,typeName:Pn.ZodDate,...$t(e)});class Xt extends At{_parse(e){if(this._getType(e)!==it.symbol){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.symbol,received:t.parsedType}),mt}return ft(e.data)}}Xt.create=e=>new Xt({typeName:Pn.ZodSymbol,...$t(e)});class Jt extends At{_parse(e){if(this._getType(e)!==it.undefined){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.undefined,received:t.parsedType}),mt}return ft(e.data)}}Jt.create=e=>new Jt({typeName:Pn.ZodUndefined,...$t(e)});class en extends At{_parse(e){if(this._getType(e)!==it.null){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.null,received:t.parsedType}),mt}return ft(e.data)}}en.create=e=>new en({typeName:Pn.ZodNull,...$t(e)});class tn extends At{constructor(){super(...arguments),this._any=!0}_parse(e){return ft(e.data)}}tn.create=e=>new tn({typeName:Pn.ZodAny,...$t(e)});class nn extends At{constructor(){super(...arguments),this._unknown=!0}_parse(e){return ft(e.data)}}nn.create=e=>new nn({typeName:Pn.ZodUnknown,...$t(e)});class an extends At{_parse(e){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.never,received:t.parsedType}),mt}}an.create=e=>new an({typeName:Pn.ZodNever,...$t(e)});class rn extends At{_parse(e){if(this._getType(e)!==it.undefined){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.void,received:t.parsedType}),mt}return ft(e.data)}}rn.create=e=>new rn({typeName:Pn.ZodVoid,...$t(e)});class on extends At{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),a=this._def;if(t.parsedType!==it.array)return ht(t,{code:ot.invalid_type,expected:it.array,received:t.parsedType}),mt;if(null!==a.exactLength){const e=t.data.length>a.exactLength.value,i=t.data.lengtha.maxLength.value&&(ht(t,{code:ot.too_big,maximum:a.maxLength.value,type:"array",inclusive:!0,exact:!1,message:a.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map(((e,n)=>a.type._parseAsync(new St(t,e,t.path,n))))).then((e=>pt.mergeArray(n,e)));const i=[...t.data].map(((e,n)=>a.type._parseSync(new St(t,e,t.path,n))));return pt.mergeArray(n,i)}get element(){return this._def.type}min(e,t){return new on({...this._def,minLength:{value:e,message:Ct.toString(t)}})}max(e,t){return new on({...this._def,maxLength:{value:e,message:Ct.toString(t)}})}length(e,t){return new on({...this._def,exactLength:{value:e,message:Ct.toString(t)}})}nonempty(e){return this.min(1,e)}}function sn(e){if(e instanceof cn){const t={};for(const n in e.shape){const a=e.shape[n];t[n]=Sn.create(sn(a))}return new cn({...e._def,shape:()=>t})}return e instanceof on?new on({...e._def,type:sn(e.element)}):e instanceof Sn?Sn.create(sn(e.unwrap())):e instanceof En?En.create(sn(e.unwrap())):e instanceof mn?mn.create(e.items.map((e=>sn(e)))):e}on.create=(e,t)=>new on({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Pn.ZodArray,...$t(t)});class cn extends At{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(null!==this._cached)return this._cached;const e=this._def.shape(),t=Ke.objectKeys(e);return this._cached={shape:e,keys:t}}_parse(e){if(this._getType(e)!==it.object){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.object,received:t.parsedType}),mt}const{status:t,ctx:n}=this._processInputParams(e),{shape:a,keys:i}=this._getCached(),r=[];if(!(this._def.catchall instanceof an&&"strip"===this._def.unknownKeys))for(const e in n.data)i.includes(e)||r.push(e);const o=[];for(const e of i){const t=a[e],i=n.data[e];o.push({key:{status:"valid",value:e},value:t._parse(new St(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof an){const e=this._def.unknownKeys;if("passthrough"===e)for(const e of r)o.push({key:{status:"valid",value:e},value:{status:"valid",value:n.data[e]}});else if("strict"===e)r.length>0&&(ht(n,{code:ot.unrecognized_keys,keys:r}),t.dirty());else if("strip"!==e)throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const e=this._def.catchall;for(const t of r){const a=n.data[t];o.push({key:{status:"valid",value:t},value:e._parse(new St(n,a,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then((async()=>{const e=[];for(const t of o){const n=await t.key,a=await t.value;e.push({key:n,value:a,alwaysSet:t.alwaysSet})}return e})).then((e=>pt.mergeObjectSync(t,e))):pt.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(e){return Ct.errToObj,new cn({...this._def,unknownKeys:"strict",...void 0!==e?{errorMap:(t,n)=>{var a,i,r,o;const s=null!==(r=null===(i=(a=this._def).errorMap)||void 0===i?void 0:i.call(a,t,n).message)&&void 0!==r?r:n.defaultError;return"unrecognized_keys"===t.code?{message:null!==(o=Ct.errToObj(e).message)&&void 0!==o?o:s}:{message:s}}}:{}})}strip(){return new cn({...this._def,unknownKeys:"strip"})}passthrough(){return new cn({...this._def,unknownKeys:"passthrough"})}extend(e){return new cn({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new cn({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Pn.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new cn({...this._def,catchall:e})}pick(e){const t={};return Ke.objectKeys(e).forEach((n=>{e[n]&&this.shape[n]&&(t[n]=this.shape[n])})),new cn({...this._def,shape:()=>t})}omit(e){const t={};return Ke.objectKeys(this.shape).forEach((n=>{e[n]||(t[n]=this.shape[n])})),new cn({...this._def,shape:()=>t})}deepPartial(){return sn(this)}partial(e){const t={};return Ke.objectKeys(this.shape).forEach((n=>{const a=this.shape[n];e&&!e[n]?t[n]=a:t[n]=a.optional()})),new cn({...this._def,shape:()=>t})}required(e){const t={};return Ke.objectKeys(this.shape).forEach((n=>{if(e&&!e[n])t[n]=this.shape[n];else{let e=this.shape[n];for(;e instanceof Sn;)e=e._def.innerType;t[n]=e}})),new cn({...this._def,shape:()=>t})}keyof(){return wn(Ke.objectKeys(this.shape))}}cn.create=(e,t)=>new cn({shape:()=>e,unknownKeys:"strip",catchall:an.create(),typeName:Pn.ZodObject,...$t(t)}),cn.strictCreate=(e,t)=>new cn({shape:()=>e,unknownKeys:"strict",catchall:an.create(),typeName:Pn.ZodObject,...$t(t)}),cn.lazycreate=(e,t)=>new cn({shape:e,unknownKeys:"strip",catchall:an.create(),typeName:Pn.ZodObject,...$t(t)});class ln extends At{_parse(e){const{ctx:t}=this._processInputParams(e),n=this._def.options;if(t.common.async)return Promise.all(n.map((async e=>{const n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}}))).then((function(e){for(const t of e)if("valid"===t.result.status)return t.result;for(const n of e)if("dirty"===n.result.status)return t.common.issues.push(...n.ctx.common.issues),n.result;const n=e.map((e=>new st(e.ctx.common.issues)));return ht(t,{code:ot.invalid_union,unionErrors:n}),mt}));{let e;const a=[];for(const i of n){const n={...t,common:{...t.common,issues:[]},parent:null},r=i._parseSync({data:t.data,path:t.path,parent:n});if("valid"===r.status)return r;"dirty"!==r.status||e||(e={result:r,ctx:n}),n.common.issues.length&&a.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;const i=a.map((e=>new st(e)));return ht(t,{code:ot.invalid_union,unionErrors:i}),mt}}get options(){return this._def.options}}ln.create=(e,t)=>new ln({options:e,typeName:Pn.ZodUnion,...$t(t)});const dn=e=>e instanceof vn?dn(e.schema):e instanceof kn?dn(e.innerType()):e instanceof bn?[e.value]:e instanceof xn?e.options:e instanceof Cn?Ke.objectValues(e.enum):e instanceof $n?dn(e._def.innerType):e instanceof Jt?[void 0]:e instanceof en?[null]:e instanceof Sn?[void 0,...dn(e.unwrap())]:e instanceof En?[null,...dn(e.unwrap())]:e instanceof Tn||e instanceof On?dn(e.unwrap()):e instanceof An?dn(e._def.innerType):[];class un extends At{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==it.object)return ht(t,{code:ot.invalid_type,expected:it.object,received:t.parsedType}),mt;const n=this.discriminator,a=t.data[n],i=this.optionsMap.get(a);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(ht(t,{code:ot.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),mt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,n){const a=new Map;for(const n of t){const t=dn(n.shape[e]);if(!t.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(const i of t){if(a.has(i))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(i)}`);a.set(i,n)}}return new un({typeName:Pn.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:a,...$t(n)})}}function hn(e,t){const n=rt(e),a=rt(t);if(e===t)return{valid:!0,data:e};if(n===it.object&&a===it.object){const n=Ke.objectKeys(t),a=Ke.objectKeys(e).filter((e=>-1!==n.indexOf(e))),i={...e,...t};for(const n of a){const a=hn(e[n],t[n]);if(!a.valid)return{valid:!1};i[n]=a.data}return{valid:!0,data:i}}if(n===it.array&&a===it.array){if(e.length!==t.length)return{valid:!1};const n=[];for(let a=0;a{if(_t(e)||_t(a))return mt;const i=hn(e.value,a.value);return i.valid?((yt(e)||yt(a))&&t.dirty(),{status:t.value,value:i.data}):(ht(n,{code:ot.invalid_intersection_types}),mt)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then((([e,t])=>a(e,t))):a(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}pn.create=(e,t,n)=>new pn({left:e,right:t,typeName:Pn.ZodIntersection,...$t(n)});class mn extends At{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==it.array)return ht(n,{code:ot.invalid_type,expected:it.array,received:n.parsedType}),mt;if(n.data.lengththis._def.items.length&&(ht(n,{code:ot.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const a=[...n.data].map(((e,t)=>{const a=this._def.items[t]||this._def.rest;return a?a._parse(new St(n,e,n.path,t)):null})).filter((e=>!!e));return n.common.async?Promise.all(a).then((e=>pt.mergeArray(t,e))):pt.mergeArray(t,a)}get items(){return this._def.items}rest(e){return new mn({...this._def,rest:e})}}mn.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new mn({items:e,typeName:Pn.ZodTuple,rest:null,...$t(t)})};class gn extends At{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==it.object)return ht(n,{code:ot.invalid_type,expected:it.object,received:n.parsedType}),mt;const a=[],i=this._def.keyType,r=this._def.valueType;for(const e in n.data)a.push({key:i._parse(new St(n,e,n.path,e)),value:r._parse(new St(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?pt.mergeObjectAsync(t,a):pt.mergeObjectSync(t,a)}get element(){return this._def.valueType}static create(e,t,n){return new gn(t instanceof At?{keyType:e,valueType:t,typeName:Pn.ZodRecord,...$t(n)}:{keyType:Wt.create(),valueType:e,typeName:Pn.ZodRecord,...$t(t)})}}class fn extends At{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==it.map)return ht(n,{code:ot.invalid_type,expected:it.map,received:n.parsedType}),mt;const a=this._def.keyType,i=this._def.valueType,r=[...n.data.entries()].map((([e,t],r)=>({key:a._parse(new St(n,e,n.path,[r,"key"])),value:i._parse(new St(n,t,n.path,[r,"value"]))})));if(n.common.async){const e=new Map;return Promise.resolve().then((async()=>{for(const n of r){const a=await n.key,i=await n.value;if("aborted"===a.status||"aborted"===i.status)return mt;"dirty"!==a.status&&"dirty"!==i.status||t.dirty(),e.set(a.value,i.value)}return{status:t.value,value:e}}))}{const e=new Map;for(const n of r){const a=n.key,i=n.value;if("aborted"===a.status||"aborted"===i.status)return mt;"dirty"!==a.status&&"dirty"!==i.status||t.dirty(),e.set(a.value,i.value)}return{status:t.value,value:e}}}}fn.create=(e,t,n)=>new fn({valueType:t,keyType:e,typeName:Pn.ZodMap,...$t(n)});class _n extends At{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==it.set)return ht(n,{code:ot.invalid_type,expected:it.set,received:n.parsedType}),mt;const a=this._def;null!==a.minSize&&n.data.sizea.maxSize.value&&(ht(n,{code:ot.too_big,maximum:a.maxSize.value,type:"set",inclusive:!0,exact:!1,message:a.maxSize.message}),t.dirty());const i=this._def.valueType;function r(e){const n=new Set;for(const a of e){if("aborted"===a.status)return mt;"dirty"===a.status&&t.dirty(),n.add(a.value)}return{status:t.value,value:n}}const o=[...n.data.values()].map(((e,t)=>i._parse(new St(n,e,n.path,t))));return n.common.async?Promise.all(o).then((e=>r(e))):r(o)}min(e,t){return new _n({...this._def,minSize:{value:e,message:Ct.toString(t)}})}max(e,t){return new _n({...this._def,maxSize:{value:e,message:Ct.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}_n.create=(e,t)=>new _n({valueType:e,minSize:null,maxSize:null,typeName:Pn.ZodSet,...$t(t)});class yn extends At{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==it.function)return ht(t,{code:ot.invalid_type,expected:it.function,received:t.parsedType}),mt;function n(e,n){return ut({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,dt(),ct].filter((e=>!!e)),issueData:{code:ot.invalid_arguments,argumentsError:n}})}function a(e,n){return ut({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,dt(),ct].filter((e=>!!e)),issueData:{code:ot.invalid_return_type,returnTypeError:n}})}const i={errorMap:t.common.contextualErrorMap},r=t.data;if(this._def.returns instanceof Mn){const e=this;return ft((async function(...t){const o=new st([]),s=await e._def.args.parseAsync(t,i).catch((e=>{throw o.addIssue(n(t,e)),o})),c=await Reflect.apply(r,this,s),l=await e._def.returns._def.type.parseAsync(c,i).catch((e=>{throw o.addIssue(a(c,e)),o}));return l}))}{const e=this;return ft((function(...t){const o=e._def.args.safeParse(t,i);if(!o.success)throw new st([n(t,o.error)]);const s=Reflect.apply(r,this,o.data),c=e._def.returns.safeParse(s,i);if(!c.success)throw new st([a(s,c.error)]);return c.data}))}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new yn({...this._def,args:mn.create(e).rest(nn.create())})}returns(e){return new yn({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,n){return new yn({args:e||mn.create([]).rest(nn.create()),returns:t||nn.create(),typeName:Pn.ZodFunction,...$t(n)})}}class vn extends At{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}vn.create=(e,t)=>new vn({getter:e,typeName:Pn.ZodLazy,...$t(t)});class bn extends At{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return ht(t,{received:t.data,code:ot.invalid_literal,expected:this._def.value}),mt}return{status:"valid",value:e.data}}get value(){return this._def.value}}function wn(e,t){return new xn({values:e,typeName:Pn.ZodEnum,...$t(t)})}bn.create=(e,t)=>new bn({value:e,typeName:Pn.ZodLiteral,...$t(t)});class xn extends At{constructor(){super(...arguments),Mt.set(this,void 0)}_parse(e){if("string"!=typeof e.data){const t=this._getOrReturnCtx(e),n=this._def.values;return ht(t,{expected:Ke.joinValues(n),received:t.parsedType,code:ot.invalid_type}),mt}if(wt(this,Mt,"f")||xt(this,Mt,new Set(this._def.values),"f"),!wt(this,Mt,"f").has(e.data)){const t=this._getOrReturnCtx(e),n=this._def.values;return ht(t,{received:t.data,code:ot.invalid_enum_value,options:n}),mt}return ft(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return xn.create(e,{...this._def,...t})}exclude(e,t=this._def){return xn.create(this.options.filter((t=>!e.includes(t))),{...this._def,...t})}}Mt=new WeakMap,xn.create=wn;class Cn extends At{constructor(){super(...arguments),kt.set(this,void 0)}_parse(e){const t=Ke.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==it.string&&n.parsedType!==it.number){const e=Ke.objectValues(t);return ht(n,{expected:Ke.joinValues(e),received:n.parsedType,code:ot.invalid_type}),mt}if(wt(this,kt,"f")||xt(this,kt,new Set(Ke.getValidEnumValues(this._def.values)),"f"),!wt(this,kt,"f").has(e.data)){const e=Ke.objectValues(t);return ht(n,{received:n.data,code:ot.invalid_enum_value,options:e}),mt}return ft(e.data)}get enum(){return this._def.values}}kt=new WeakMap,Cn.create=(e,t)=>new Cn({values:e,typeName:Pn.ZodNativeEnum,...$t(t)});class Mn extends At{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==it.promise&&!1===t.common.async)return ht(t,{code:ot.invalid_type,expected:it.promise,received:t.parsedType}),mt;const n=t.parsedType===it.promise?t.data:Promise.resolve(t.data);return ft(n.then((e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap}))))}}Mn.create=(e,t)=>new Mn({type:e,typeName:Pn.ZodPromise,...$t(t)});class kn extends At{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Pn.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:n}=this._processInputParams(e),a=this._def.effect||null,i={addIssue:e=>{ht(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),"preprocess"===a.type){const e=a.transform(n.data,i);if(n.common.async)return Promise.resolve(e).then((async e=>{if("aborted"===t.value)return mt;const a=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return"aborted"===a.status?mt:"dirty"===a.status||"dirty"===t.value?gt(a.value):a}));{if("aborted"===t.value)return mt;const a=this._def.schema._parseSync({data:e,path:n.path,parent:n});return"aborted"===a.status?mt:"dirty"===a.status||"dirty"===t.value?gt(a.value):a}}if("refinement"===a.type){const e=e=>{const t=a.refinement(e,i);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return e};if(!1===n.common.async){const a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return"aborted"===a.status?mt:("dirty"===a.status&&t.dirty(),e(a.value),{status:t.value,value:a.value})}return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then((n=>"aborted"===n.status?mt:("dirty"===n.status&&t.dirty(),e(n.value).then((()=>({status:t.value,value:n.value}))))))}if("transform"===a.type){if(!1===n.common.async){const e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!vt(e))return e;const r=a.transform(e.value,i);if(r instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:r}}return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then((e=>vt(e)?Promise.resolve(a.transform(e.value,i)).then((e=>({status:t.value,value:e}))):e))}Ke.assertNever(a)}}kn.create=(e,t,n)=>new kn({schema:e,typeName:Pn.ZodEffects,effect:t,...$t(n)}),kn.createWithPreprocess=(e,t,n)=>new kn({schema:t,effect:{type:"preprocess",transform:e},typeName:Pn.ZodEffects,...$t(n)});class Sn extends At{_parse(e){return this._getType(e)===it.undefined?ft(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Sn.create=(e,t)=>new Sn({innerType:e,typeName:Pn.ZodOptional,...$t(t)});class En extends At{_parse(e){return this._getType(e)===it.null?ft(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}En.create=(e,t)=>new En({innerType:e,typeName:Pn.ZodNullable,...$t(t)});class $n extends At{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===it.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}$n.create=(e,t)=>new $n({innerType:e,typeName:Pn.ZodDefault,defaultValue:"function"==typeof t.default?t.default:()=>t.default,...$t(t)});class An extends At{_parse(e){const{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},a=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return bt(a)?a.then((e=>({status:"valid",value:"valid"===e.status?e.value:this._def.catchValue({get error(){return new st(n.common.issues)},input:n.data})}))):{status:"valid",value:"valid"===a.status?a.value:this._def.catchValue({get error(){return new st(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}An.create=(e,t)=>new An({innerType:e,typeName:Pn.ZodCatch,catchValue:"function"==typeof t.catch?t.catch:()=>t.catch,...$t(t)});class In extends At{_parse(e){if(this._getType(e)!==it.nan){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.nan,received:t.parsedType}),mt}return{status:"valid",value:e.data}}}In.create=e=>new In({typeName:Pn.ZodNaN,...$t(e)});const zn=Symbol("zod_brand");class Tn extends At{_parse(e){const{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}class jn extends At{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async){return(async()=>{const e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return"aborted"===e.status?mt:"dirty"===e.status?(t.dirty(),gt(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})()}{const e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return"aborted"===e.status?mt:"dirty"===e.status?(t.dirty(),{status:"dirty",value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(e,t){return new jn({in:e,out:t,typeName:Pn.ZodPipeline})}}class On extends At{_parse(e){const t=this._def.innerType._parse(e),n=e=>(vt(e)&&(e.value=Object.freeze(e.value)),e);return bt(t)?t.then((e=>n(e))):n(t)}unwrap(){return this._def.innerType}}function Dn(e,t={},n){return e?tn.create().superRefine(((a,i)=>{var r,o;if(!e(a)){const e="function"==typeof t?t(a):"string"==typeof t?{message:t}:t,s=null===(o=null!==(r=e.fatal)&&void 0!==r?r:n)||void 0===o||o,c="string"==typeof e?{message:e}:e;i.addIssue({code:"custom",...c,fatal:s})}})):tn.create()}On.create=(e,t)=>new On({innerType:e,typeName:Pn.ZodReadonly,...$t(t)});const Rn={object:cn.lazycreate};var Pn;!function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"}(Pn||(Pn={}));const Ln=Wt.create,Nn=Qt.create,Fn=In.create,Vn=Gt.create,Hn=Yt.create,Bn=Kt.create,qn=Xt.create,Un=Jt.create,Wn=en.create,Zn=tn.create,Qn=nn.create,Gn=an.create,Yn=rn.create,Kn=on.create,Xn=cn.create,Jn=cn.strictCreate,ea=ln.create,ta=un.create,na=pn.create,aa=mn.create,ia=gn.create,ra=fn.create,oa=_n.create,sa=yn.create,ca=vn.create,la=bn.create,da=xn.create,ua=Cn.create,ha=Mn.create,pa=kn.create,ma=Sn.create,ga=En.create,fa=kn.createWithPreprocess,_a=jn.create,ya={string:e=>Wt.create({...e,coerce:!0}),number:e=>Qt.create({...e,coerce:!0}),boolean:e=>Yt.create({...e,coerce:!0}),bigint:e=>Gt.create({...e,coerce:!0}),date:e=>Kt.create({...e,coerce:!0})},va=mt;var ba=Object.freeze({__proto__:null,defaultErrorMap:ct,setErrorMap:function(e){lt=e},getErrorMap:dt,makeIssue:ut,EMPTY_PATH:[],addIssueToContext:ht,ParseStatus:pt,INVALID:mt,DIRTY:gt,OK:ft,isAborted:_t,isDirty:yt,isValid:vt,isAsync:bt,get util(){return Ke},get objectUtil(){return Xe},ZodParsedType:it,getParsedType:rt,ZodType:At,datetimeRegex:qt,ZodString:Wt,ZodNumber:Qt,ZodBigInt:Gt,ZodBoolean:Yt,ZodDate:Kt,ZodSymbol:Xt,ZodUndefined:Jt,ZodNull:en,ZodAny:tn,ZodUnknown:nn,ZodNever:an,ZodVoid:rn,ZodArray:on,ZodObject:cn,ZodUnion:ln,ZodDiscriminatedUnion:un,ZodIntersection:pn,ZodTuple:mn,ZodRecord:gn,ZodMap:fn,ZodSet:_n,ZodFunction:yn,ZodLazy:vn,ZodLiteral:bn,ZodEnum:xn,ZodNativeEnum:Cn,ZodPromise:Mn,ZodEffects:kn,ZodTransformer:kn,ZodOptional:Sn,ZodNullable:En,ZodDefault:$n,ZodCatch:An,ZodNaN:In,BRAND:zn,ZodBranded:Tn,ZodPipeline:jn,ZodReadonly:On,custom:Dn,Schema:At,ZodSchema:At,late:Rn,get ZodFirstPartyTypeKind(){return Pn},coerce:ya,any:Zn,array:Kn,bigint:Vn,boolean:Hn,date:Bn,discriminatedUnion:ta,effect:pa,enum:da,function:sa,instanceof:(e,t={message:`Input not instance of ${e.name}`})=>Dn((t=>t instanceof e),t),intersection:na,lazy:ca,literal:la,map:ra,nan:Fn,nativeEnum:ua,never:Gn,null:Wn,nullable:ga,number:Nn,object:Xn,oboolean:()=>Hn().optional(),onumber:()=>Nn().optional(),optional:ma,ostring:()=>Ln().optional(),pipeline:_a,preprocess:fa,promise:ha,record:ia,set:oa,strictObject:Jn,string:Ln,symbol:qn,transformer:pa,tuple:aa,undefined:Un,union:ea,unknown:Qn,void:Yn,NEVER:va,ZodIssueCode:ot,quotelessJson:e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),ZodError:st});const wa="cameras",xa=`${wa}.#.camera_entity`,Ca=`${wa}.#.frigate.camera_name`,Ma=`${wa}.#.capabilities.disable`,ka=`${wa}.#.capabilities.disable_except`,Sa=`${wa}.#.cast.method`,Ea=`${wa}.#.cast.dashboard.dashboard_path`,$a=`${wa}.#.cast.dashboard.view_path`,Aa=`${wa}.#.dimensions.aspect_ratio`,Ia=`${wa}.#.frigate.client_id`,za=`${wa}.#.frigate.labels`,Ta=`${wa}.#.frigate.url`,ja=`${wa}.#.frigate.zones`,Oa=`${wa}.#.go2rtc.modes`,Da=`${wa}.#.go2rtc.stream`,Ra=`${wa}.#.icon`,Pa=`${wa}.#.id`,La=`${wa}.#.image.entity`,Na=`${wa}.#.image.entity_parameters`,Fa=`${wa}.#.image.mode`,Va=`${wa}.#.image.refresh_seconds`,Ha=`${wa}.#.image.url`,Ba=`${wa}.#.motioneye.images.directory_pattern`,qa=`${wa}.#.motioneye.images.file_pattern`,Ua=`${wa}.#.motioneye.movies.directory_pattern`,Wa=`${wa}.#.motioneye.movies.file_pattern`,Za=`${wa}.#.motioneye.url`,Qa=`${wa}.#.title`,Ga=`${wa}.#.webrtc_card.entity`,Ya=`${wa}.#.webrtc_card.url`,Ka=`${wa}.#.live_provider`,Xa=`${wa}.#.dependencies.cameras`,Ja=`${wa}.#.dependencies.all_cameras`,ei=`${wa}.#.dimensions.layout.fit`,ti=`${wa}.#.dimensions.layout.pan.x`,ni=`${wa}.#.dimensions.layout.pan.y`,ai=`${wa}.#.dimensions.layout.position.x`,ii=`${wa}.#.dimensions.layout.position.y`,ri=`${wa}.#.dimensions.layout.view_box.top`,oi=`${wa}.#.dimensions.layout.view_box.bottom`,si=`${wa}.#.dimensions.layout.view_box.left`,ci=`${wa}.#.dimensions.layout.view_box.right`,li=`${wa}.#.dimensions.layout.zoom`,di=`${wa}.#.proxy.dynamic`,ui=`${wa}.#.proxy.media`,hi=`${wa}.#.proxy.ssl_ciphers`,pi=`${wa}.#.proxy.ssl_verification`,mi=`${wa}.#.reolink.media_resolution`,gi=`${wa}.#.reolink.url`,fi=`${wa}.#.triggers.motion`,_i=`${wa}.#.triggers.occupancy`,yi=`${wa}.#.triggers.entities`,vi=`${wa}.#.triggers.events`,bi="cameras_global",wi=`${bi}.image`,xi=`${bi}.live_provider`,Ci=`${bi}.jsmpeg`,Mi=`${bi}.webrtc_card`,ki=`${bi}.triggers.occupancy`,Si=`${bi}.image.refresh_seconds`,Ei=`${bi}.dimensions.layout`,$i=`${bi}.ptz`,Ai="elements",Ii="view",zi=`${Ii}.camera_select`,Ti=`${Ii}.dark_mode`,ji=`${Ii}.default`,Oi=`${Ii}.interaction_seconds`,Di=`${Ii}.keyboard_shortcuts`,Ri=`${Ii}.keyboard_shortcuts.enabled`,Pi=`${Di}.ptz_left`,Li=`${Di}.ptz_right`,Ni=`${Di}.ptz_up`,Fi=`${Di}.ptz_down`,Vi=`${Di}.ptz_zoom_in`,Hi=`${Di}.ptz_zoom_out`,Bi=`${Di}.ptz_home`,qi=`${Ii}.default_cycle_camera`,Ui=`${Ii}.default_reset`,Wi=`${Ui}.interaction_mode`,Zi=`${Ui}.every_seconds`,Qi=`${Ui}.entities`,Gi=`${Ui}.after_interaction`,Yi=`${Ii}.triggers`,Ki=`${Yi}.show_trigger_status`,Xi=`${Yi}.filter_selected_camera`,Ji=`${Yi}.untrigger_seconds`,er=`${Yi}.actions`,tr=`${er}.trigger`,nr=`${er}.untrigger`,ar=`${er}.interaction_mode`,ir="media_gallery",rr=`${ir}.controls.filter.mode`,or=`${ir}.controls.thumbnails.show_details`,sr=`${ir}.controls.thumbnails.show_download_control`,cr=`${ir}.controls.thumbnails.show_favorite_control`,lr=`${ir}.controls.thumbnails.show_timeline_control`,dr=`${ir}.controls.thumbnails.size`,ur="media_viewer",hr=`${ur}.auto_play`,pr=`${ur}.auto_pause`,mr=`${ur}.auto_mute`,gr=`${ur}.auto_unmute`,fr=`${ur}.display.mode`,_r=`${ur}.display.grid_columns`,yr=`${ur}.display.grid_max_columns`,vr=`${ur}.display.grid_selected_width_factor`,br=`${ur}.draggable`,wr=`${ur}.lazy_load`,xr=`${ur}.snapshot_click_plays_clip`,Cr=`${ur}.transition_effect`,Mr=`${ur}.controls.builtin`,kr=`${ur}.controls.next_previous.style`,Sr=`${ur}.controls.next_previous.size`,Er=`${ur}.controls.thumbnails.mode`,$r=`${ur}.controls.thumbnails.show_details`,Ar=`${ur}.controls.thumbnails.show_download_control`,Ir=`${ur}.controls.thumbnails.show_favorite_control`,zr=`${ur}.controls.thumbnails.show_timeline_control`,Tr=`${ur}.controls.thumbnails.size`,jr=`${ur}.controls.timeline.clustering_threshold`,Or=`${ur}.controls.timeline.events_media_type`,Dr=`${ur}.controls.timeline.mode`,Rr=`${ur}.controls.timeline.pan_mode`,Pr=`${ur}.controls.timeline.show_recordings`,Lr=`${ur}.controls.timeline.style`,Nr=`${ur}.controls.timeline.window_seconds`,Fr=`${ur}.zoomable`,Vr="live",Hr=`${Vr}.auto_play`,Br=`${Vr}.auto_pause`,qr=`${Vr}.auto_mute`,Ur=`${Vr}.auto_unmute`,Wr=`${Vr}.controls.builtin`,Zr=`${Vr}.controls.next_previous.style`,Qr=`${Vr}.controls.next_previous.size`,Gr=`${Vr}.controls.ptz.hide_home`,Yr=`${Vr}.controls.ptz.hide_pan_tilt`,Kr=`${Vr}.controls.ptz.hide_zoom`,Xr=`${Vr}.controls.ptz.mode`,Jr=`${Vr}.controls.ptz.orientation`,eo=`${Vr}.controls.ptz.position`,to=`${Vr}.controls.thumbnails.media_type`,no=`${Vr}.controls.thumbnails.events_media_type`,ao=`${Vr}.controls.thumbnails.mode`,io=`${Vr}.controls.thumbnails.size`,ro=`${Vr}.controls.thumbnails.show_details`,oo=`${Vr}.controls.thumbnails.show_download_control`,so=`${Vr}.controls.thumbnails.show_favorite_control`,co=`${Vr}.controls.thumbnails.show_timeline_control`,lo=`${Vr}.controls.timeline.clustering_threshold`,uo=`${Vr}.controls.timeline.events_media_type`,ho=`${Vr}.controls.timeline.mode`,po=`${Vr}.controls.timeline.pan_mode`,mo=`${Vr}.controls.timeline.show_recordings`,go=`${Vr}.controls.timeline.style`,fo=`${Vr}.controls.timeline.window_seconds`,_o=`${Vr}.display.mode`,yo=`${Vr}.display.grid_columns`,vo=`${Vr}.display.grid_max_columns`,bo=`${Vr}.display.grid_selected_width_factor`,wo=`${Vr}.draggable`,xo=`${Vr}.lazy_load`,Co=`${Vr}.lazy_unload`,Mo=`${Vr}.preload`,ko=`${Vr}.transition_effect`,So=`${Vr}.show_image_during_load`,Eo=`${Vr}.microphone.disconnect_seconds`,$o=`${Vr}.microphone.mute_after_microphone_mute_seconds`,Ao=`${Vr}.microphone.always_connected`,Io=`${Vr}.zoomable`,zo="image",To=`${zo}.entity`,jo=`${zo}.entity_parameters`,Oo=`${zo}.mode`,Do=`${zo}.refresh_seconds`,Ro=`${zo}.url`,Po="timeline",Lo=`${Po}.window_seconds`,No=`${Po}.clustering_threshold`,Fo=`${Po}.events_media_type`,Vo=`${Po}.show_recordings`,Ho=`${Po}.style`,Bo=`${Po}.controls.thumbnails.mode`,qo=`${Po}.controls.thumbnails.size`,Uo=`${Po}.controls.thumbnails.show_details`,Wo=`${Po}.controls.thumbnails.show_download_control`,Zo=`${Po}.controls.thumbnails.show_favorite_control`,Qo=`${Po}.controls.thumbnails.show_timeline_control`,Go="menu",Yo=`${Go}.alignment`,Ko=`${Go}.position`,Xo=`${Go}.style`,Jo=`${Go}.button_size`,es=`${Go}.buttons`,ts=`${es}.frigate`,ns=`${es}.camera_ui`,as=`${es}.fullscreen`,is=`${es}.play`,rs=`${es}.mute`,os=`${es}.media_player`,ss=`${es}.timeline`,cs="status_bar",ls=`${cs}.position`,ds=`${cs}.style`,us=`${cs}.popup_seconds`,hs=`${cs}.height`,ps=`${cs}.items`,ms="dimensions",gs=`${ms}.aspect_ratio`,fs=`${ms}.aspect_ratio_mode`,_s=`${ms}.height`,ys="overrides",vs="performance",bs=`${vs}.features.animated_progress_indicator`,ws=`${vs}.features.media_chunk_size`,xs=`${vs}.features.max_simultaneous_engine_requests`,Cs=`${vs}.profile`,Ms=`${vs}.style.box_shadow`,ks=`${vs}.style.border_radius`,Ss="profiles",Es=1e3;class $s extends Error{constructor(e,t){super(e),this.context=t}}const As={info:10,error:20,connection:30,diagnostics:40},Is=["clips","favorite-events","favorite-recordings","live","menu","ptz","recordings","seek","snapshots","substream"],zs=ba.object({url:ba.string(),mime_type:ba.string()}),Ts=ba.object({path:ba.string()});function js(e){if(e instanceof ba.ZodDefault)return js(e.removeDefault());if(e instanceof ba.ZodObject){const t={};for(const n in e.shape){const a=e.shape[n];t[n]=ba.ZodOptional.create(js(a))}return new ba.ZodObject({...e._def,shape:()=>t})}return e instanceof ba.ZodArray?ba.ZodArray.create(js(e.element)).min(e._def.minLength?.value,e._def.minLength?.message).max(e._def.maxLength?.value,e._def.maxLength?.message).length(e._def.exactLength?.value,e._def.exactLength?.message):e instanceof ba.ZodOptional?ba.ZodOptional.create(js(e.unwrap())):e instanceof ba.ZodNullable?ba.ZodNullable.create(js(e.unwrap())):e instanceof ba.ZodTuple?ba.ZodTuple.create(e.items.map((e=>js(e)))):e}function Os(e){const t=e.format();return Object.keys(t).filter((e=>!e.startsWith("_")))}const Ds=e=>{const t=new Set;if(e.issues.length)for(const n of e.issues)if("invalid_union"===n.code){const e=n.unionErrors;for(const n of e)Ds(n).forEach(t.add,t)}else t.add(Rs(n.path));return t},Rs=e=>{let t="";for(let n=0;n"fire-dom-event")).or(ba.literal("fire-dom-event")),card_id:ba.string().regex(Js,"card_id parameter can only contain [a-z][A-Z][0-9_]-").optional()}),gc=mc.extend({frigate_card_action:ba.enum(Us)}),fc=mc.extend({frigate_card_action:ba.enum(["camera_ui","default","download","expand","fullscreen","live_substream_off","live_substream_on","menu_toggle","microphone_connect","microphone_disconnect","microphone_mute","microphone_unmute","mute","pause","play","screenshot","unmute"])}),_c=mc.extend({frigate_card_action:ba.literal("camera_select"),camera:ba.string().optional(),triggered:ba.boolean().optional()}),yc=mc.extend({frigate_card_action:ba.literal("live_substream_select"),camera:ba.string()}),vc=mc.extend({frigate_card_action:ba.literal("media_player"),media_player:ba.string(),media_player_action:ba.enum(["play","stop"])}),bc=mc.extend({frigate_card_action:ba.literal("display_mode_select"),display_mode:nc}),wc=mc.extend({frigate_card_action:ba.literal("ptz"),camera:ba.string().optional(),ptz_action:ba.enum(Fs).optional(),ptz_phase:ba.enum(Ks).optional(),ptz_preset:ba.string().optional()}),xc=mc.extend({frigate_card_action:ba.literal("ptz_digital"),target_id:ba.string().optional(),absolute:ba.object({zoom:tc.optional(),pan:ec.optional()}).optional(),ptz_action:ba.enum(Fs).optional(),ptz_phase:ba.enum(Ks).optional()}),Cc=mc.extend({frigate_card_action:ba.literal("ptz_multi"),target_id:ba.string().optional(),ptz_action:ba.enum(Fs).optional(),ptz_phase:ba.enum(Ks).optional(),ptz_preset:ba.string().optional()}),Mc=mc.extend({frigate_card_action:ba.literal("ptz_controls"),enabled:ba.boolean()}),kc=ba.object({ms:ba.number().optional(),s:ba.number().optional(),m:ba.number().optional(),h:ba.number().optional()}),Sc=mc.extend({frigate_card_action:ba.literal("sleep"),duration:kc.optional().default({s:1})}),Ec=mc.extend({frigate_card_action:ba.literal("status_bar"),status_bar_action:ba.enum(["add","remove","reset"]),items:ba.lazy((()=>il)).array().optional()}),$c=mc.extend({frigate_card_action:ba.literal("log"),message:ba.string(),level:ba.enum(["debug","info","warn","error"]).default("info")}),Ac=ba.union([_c,fc,yc,$c,vc,wc,xc,Cc,Mc,gc,bc,Sc,Ec]),Ic=ba.union([rc,cc,sc,lc,dc,uc,pc,hc,Ac]),zc=ba.object({tap_action:Ic.or(Ic.array()).optional(),hold_action:Ic.or(Ic.array()).optional(),double_tap_action:Ic.or(Ic.array()).optional(),start_tap_action:Ic.or(Ic.array()).optional(),end_tap_action:Ic.or(Ic.array()).optional()}).passthrough(),Tc=ba.object({actions:zc.optional()}),jc=zc.extend({style:ba.record(ba.string().nullable().or(ba.undefined()).or(ba.number())).optional(),title:ba.string().nullable().optional()}),Oc=jc.extend({type:ba.literal("state-badge"),entity:ba.string()}),Dc=jc.extend({type:ba.literal("state-icon"),entity:ba.string(),icon:ba.string().optional(),state_color:ba.boolean().default(!0)}),Rc=jc.extend({type:ba.literal("state-label"),entity:ba.string(),attribute:ba.string().optional(),prefix:ba.string().optional(),suffix:ba.string().optional()}),Pc=jc.extend({type:ba.literal("service-button"),title:ba.string(),service:ba.string(),service_data:ba.object({}).passthrough().optional()}),Lc=jc.extend({type:ba.literal("icon"),icon:ba.string(),entity:ba.string().optional()}),Nc=jc.extend({type:ba.literal("image"),entity:ba.string().optional(),image:ba.string().optional(),camera_image:ba.string().optional(),camera_view:ba.string().optional(),state_image:ba.object({}).passthrough().optional(),filter:ba.string().optional(),state_filter:ba.object({}).passthrough().optional(),aspect_ratio:ba.string().optional()}),Fc=ba.object({condition:ba.literal("state").optional(),entity:ba.string(),state:ba.string().or(ba.string().array()).optional(),state_not:ba.string().or(ba.string().array()).optional()}),Vc=ba.object({condition:ba.literal("numeric_state"),entity:ba.string(),above:ba.number().optional(),below:ba.number().optional()}),Hc=ba.object({condition:ba.literal("screen"),media_query:ba.string()}),Bc=ba.object({condition:ba.literal("user"),users:ba.string().array().min(1)}),qc=ba.discriminatedUnion("condition",[Fc,Vc,Hc,Bc]),Uc=ba.object({type:ba.literal("conditional"),conditions:qc.array(),elements:ba.lazy((()=>_l))}),Wc=ba.object({type:ba.string().superRefine(((e,t)=>{e.match(/^custom:(?!frigate-card).+/)||t.addIssue({code:ba.ZodIssueCode.custom,message:"Frigate-card custom elements must match specific schemas",fatal:!0})}))}).passthrough(),Zc=ba.object({enabled:ba.boolean().default(!0).optional(),priority:ba.number().min(0).max(Bs).default(50).optional(),alignment:ba.enum(["matching","opposing"]).default("matching").optional(),icon:ba.string().optional(),permanent:ba.boolean().default(!1).optional()}),Qc=Zc.merge(Lc).extend({type:ba.literal("custom:frigate-card-menu-icon")}),Gc=Zc.merge(Dc).extend({type:ba.literal("custom:frigate-card-menu-state-icon")}).merge(Zc),Yc=jc.extend({entity:ba.string().optional(),icon:ba.string().optional(),state_color:ba.boolean().default(!0),selected:ba.boolean().default(!1),subtitle:ba.string().optional(),enabled:ba.boolean().default(!0)}),Kc=Zc.merge(Lc).extend({type:ba.literal("custom:frigate-card-menu-submenu"),items:Yc.array()}),Xc=Zc.merge(Dc).extend({type:ba.literal("custom:frigate-card-menu-submenu-select"),options:ba.record(Yc.deepPartial()).optional()}),Jc=ba.object({enabled:ba.boolean().default(!0).optional(),priority:ba.number().min(0).max(100).default(50).optional()}),el=Jc.extend({sufficient:ba.boolean().default(!1).optional(),exclusive:ba.boolean().default(!1).optional(),expand:ba.boolean().default(!1).optional(),actions:zc.optional()}),tl=el.extend({type:ba.literal("custom:frigate-card-status-bar-icon"),icon:ba.string()}),nl=el.extend({type:ba.literal("custom:frigate-card-status-bar-image"),image:ba.string()}),al=el.extend({type:ba.literal("custom:frigate-card-status-bar-string"),string:ba.string()}),il=ba.union([tl,nl,al]),rl=ba.object({condition:ba.literal("view"),views:ba.string().array()}),ol=ba.object({condition:ba.literal("fullscreen"),fullscreen:ba.boolean()}),sl=ba.object({condition:ba.literal("expand"),expand:ba.boolean()}),cl=ba.object({condition:ba.literal("camera"),cameras:ba.string().array()}),ll=ba.object({condition:ba.literal("media_loaded"),media_loaded:ba.boolean()}),dl=ba.object({condition:ba.literal("display_mode"),display_mode:nc}),ul=ba.object({condition:ba.literal("triggered"),triggered:ba.string().array()}),hl=ba.object({condition:ba.literal("interaction"),interaction:ba.boolean()}),pl=ba.object({condition:ba.literal("microphone"),connected:ba.boolean().optional(),muted:ba.boolean().optional()}),ml=ba.object({condition:ba.literal("key"),key:ba.string(),state:ba.enum(["down","up"]).optional(),ctrl:ba.boolean().optional(),shift:ba.boolean().optional(),alt:ba.boolean().optional(),meta:ba.boolean().optional()}),gl=ba.discriminatedUnion("condition",[Fc,Vc,Hc,Bc,rl,ol,sl,cl,ll,dl,ul,hl,pl,ml]),fl=ba.object({type:ba.literal("custom:frigate-card-conditional"),conditions:gl.array(),elements:ba.lazy((()=>_l))}),_l=ba.union([Uc,Wc,fl,Lc,Nc,Qc,Gc,Kc,Xc,Pc,Oc,Dc,Rc,tl,nl,al]).array().optional(),yl=ba.object({fit:ba.enum(["contain","cover","fill"]).optional(),position:ba.object({x:ba.number().min(0).max(100).optional(),y:ba.number().min(0).max(100).optional()}).optional(),view_box:ba.object({bottom:ba.number().min(0).max(100).optional().default(0),left:ba.number().min(0).max(100).optional().default(0),right:ba.number().min(0).max(100).optional().default(0),top:ba.number().min(0).max(100).optional().default(0)}).optional(),pan:ec.optional(),zoom:tc.optional()}),vl=ba.number().array().length(2).or(ba.string().regex(/^\s*\d+\.?\d*\s*[:/]\s*\d+\.?\d*\s*$/).transform((e=>e.split(/[:\/]/).map((e=>Number(e)))))),bl={r2c_delay_between_calls_seconds:.5,c2r_delay_between_calls_seconds:.2},wl=function(e){return t=>{if(!t||"object"!=typeof t||!t.service)return t;const n={...t};return Object.keys(t).forEach((a=>{const i=a.match(/^data_(.+)$/),r=i?.[1];r&&!(`${e}${r}`in t)&&(n[`${e}${r}`]={action:"perform-action",perform_action:t.service,data:t[a]},delete n[a],delete n.service)})),n}},xl=ba.preprocess(wl("actions_"),ba.object({actions_left:sc.optional(),actions_left_start:sc.optional(),actions_left_stop:sc.optional(),actions_right:sc.optional(),actions_right_start:sc.optional(),actions_right_stop:sc.optional(),actions_up:sc.optional(),actions_up_start:sc.optional(),actions_up_stop:sc.optional(),actions_down:sc.optional(),actions_down_start:sc.optional(),actions_down_stop:sc.optional(),actions_zoom_in:sc.optional(),actions_zoom_in_start:sc.optional(),actions_zoom_in_stop:sc.optional(),actions_zoom_out:sc.optional(),actions_zoom_out_start:sc.optional(),actions_zoom_out_stop:sc.optional(),r2c_delay_between_calls_seconds:ba.number().default(bl.r2c_delay_between_calls_seconds),c2r_delay_between_calls_seconds:ba.number().default(bl.c2r_delay_between_calls_seconds),presets:ba.preprocess(wl(""),ba.union([ba.record(sc),ba.object({service:ba.string().optional()})])).optional(),service:ba.string().optional()}).passthrough()),Cl={orientation:"horizontal",mode:"auto",hide_pan_tilt:!1,hide_zoom:!1,hide_home:!1,position:"bottom-right"},Ml=ba.object({mode:ba.enum(["off","auto","on"]).default(Cl.mode),position:ba.enum(["top-left","top-right","bottom-left","bottom-right"]).default(Cl.position),orientation:ba.enum(["vertical","horizontal"]).default(Cl.orientation),hide_pan_tilt:ba.boolean().default(Cl.hide_pan_tilt),hide_zoom:ba.boolean().default(Cl.hide_zoom),hide_home:ba.boolean().default(Cl.hide_home),style:ba.object({}).passthrough().optional()}),kl={mode:"auto",refresh_seconds:1},Sl=ba.object({mode:ba.enum(["auto","camera","entity","screensaver","url"]).default(kl.mode),refresh_seconds:ba.number().min(0).default(kl.refresh_seconds),url:ba.string().optional(),entity:ba.string().optional(),entity_parameters:ba.string().optional()}),El=Sl.merge(Tc).default(kl),$l=75,Al=300,Il={size:100,show_details:!0,show_favorite_control:!0,show_timeline_control:!0,show_download_control:!0},zl=ba.object({size:ba.number().min(75).max(300).default(Il.size),show_details:ba.boolean().default(Il.show_details),show_favorite_control:ba.boolean().default(Il.show_favorite_control),show_timeline_control:ba.boolean().default(Il.show_timeline_control),show_download_control:ba.boolean().default(Il.show_download_control)}),Tl={...Il,mode:"right"},jl=zl.extend({mode:ba.enum(["none","above","below","left","right"]).default(Tl.mode)}),Ol=ba.enum(["all","clips","snapshots"]),Dl={clustering_threshold:3,events_media_type:"all",window_seconds:3600,show_recordings:!0,style:"stack",pan_mode:"pan"},Rl=ba.enum(["pan","seek","seek-in-media","seek-in-camera"]),Pl=ba.object({clustering_threshold:ba.number().optional().default(Dl.clustering_threshold),events_media_type:Ol.optional().default(Dl.events_media_type),window_seconds:ba.number().min(60).max(86400).optional().default(Dl.window_seconds),show_recordings:ba.boolean().optional().default(Dl.show_recordings),style:ba.enum(["stack","ribbon"]).optional().default(Dl.style),pan_mode:Rl.optional().default(Dl.pan_mode)}),Ll={...Dl,mode:"none",style:"ribbon"},Nl=Pl.extend({mode:ba.enum(["none","above","below"]).default(Ll.mode),style:Pl.shape.style.default(Ll.style)}),Fl={...Dl,controls:{thumbnails:Tl}},Vl=Pl.extend({controls:ba.object({thumbnails:jl.default(Fl.controls.thumbnails)}).default(Fl.controls)}).default(Fl),Hl=ba.object({style:ba.enum(["none","chevrons","icons","thumbnails"]),size:ba.number().min(20)}),Bl=ba.enum(["none","slide"]),ql={always_connected:!1,disconnect_seconds:90,mute_after_microphone_mute_seconds:60},Ul=ba.object({always_connected:ba.boolean().default(ql.always_connected),disconnect_seconds:ba.number().min(0).default(ql.disconnect_seconds),mute_after_microphone_mute_seconds:ba.number().min(0).default(ql.mute_after_microphone_mute_seconds)}).default(ql),Wl=ba.object({url:ba.string().transform((e=>e.replace(/\/+$/,""))).optional(),host:ba.string().optional(),modes:ba.enum(["webrtc","mse","mp4","mjpeg"]).array().optional(),stream:ba.string().optional()}),Zl=ba.object({entity:ba.string().optional(),url:ba.string().optional()}).passthrough(),Ql=ba.object({options:ba.object({audio:ba.boolean().optional(),video:ba.boolean().optional(),pauseWhenHidden:ba.boolean().optional(),disableGl:ba.boolean().optional(),disableWebAssembly:ba.boolean().optional(),preserveDrawingBuffer:ba.boolean().optional(),progressive:ba.boolean().optional(),throttled:ba.boolean().optional(),chunkSize:ba.number().optional(),maxAudioLag:ba.number().optional(),videoBufferSize:ba.number().optional(),audioBufferSize:ba.number().optional()}).optional()}),Gl={...Tl,media_type:"events",events_media_type:"all"},Yl={auto_play:[...Qs],auto_pause:[],auto_mute:[...Ys],auto_unmute:["microphone"],preload:!1,lazy_load:!0,lazy_unload:[],draggable:!0,zoomable:!0,transition_effect:"slide",show_image_during_load:!0,mode:"single",controls:{builtin:!0,next_previous:{size:48,style:"chevrons"},ptz:Cl,thumbnails:Gl,timeline:Ll},microphone:{...ql}},Kl=jl.extend({media_type:ba.enum(["events","recordings"]).default(Yl.controls.thumbnails.media_type),events_media_type:Ol.default(Yl.controls.thumbnails.events_media_type)}),Xl=ba.object({auto_pause:ba.enum(Zs).array().default(Yl.auto_pause),auto_play:ba.enum(Qs).array().default(Yl.auto_play),auto_mute:ba.enum(Ys).array().default(Yl.auto_mute),auto_unmute:ba.enum(Gs).array().default(Yl.auto_unmute),controls:ba.object({builtin:ba.boolean().default(Yl.controls.builtin),next_previous:Hl.extend({style:ba.enum(["none","chevrons","icons"]).default(Yl.controls.next_previous.style),size:Hl.shape.size.default(Yl.controls.next_previous.size)}).default(Yl.controls.next_previous),ptz:Ml.default(Yl.controls.ptz),thumbnails:Kl.default(Yl.controls.thumbnails),timeline:Nl.default(Yl.controls.timeline)}).default(Yl.controls),display:ac,draggable:ba.boolean().default(Yl.draggable),lazy_load:ba.boolean().default(Yl.lazy_load),lazy_unload:ba.enum(Zs).array().default(Yl.lazy_unload),microphone:Ul.default(Yl.microphone),preload:ba.boolean().default(Yl.preload),show_image_during_load:ba.boolean().default(Yl.show_image_during_load),transition_effect:Bl.default(Yl.transition_effect),zoomable:ba.boolean().default(Yl.zoomable)}).merge(Tc).default(Yl),Jl=ba.object({live:Xl}),ed=ba.object({method:ba.enum(["standard","dashboard"]).default("standard").optional(),dashboard:ba.object({dashboard_path:ba.string().optional(),view_path:ba.string().optional()}).optional()}),td={dependencies:{all_cameras:!1,cameras:[]},engine:"auto",frigate:{client_id:"frigate"},live_provider:"auto",motioneye:{images:{directory_pattern:"%Y-%m-%d",file_pattern:"%H-%M-%S"},movies:{directory_pattern:"%Y-%m-%d",file_pattern:"%H-%M-%S"}},reolink:{media_resolution:"low"},ptz:bl,triggers:{motion:!1,occupancy:!1,events:[...Xs],entities:[]},proxy:{media:"auto",dynamic:!0,ssl_verification:"auto",ssl_ciphers:"auto"},always_error_if_entity_unavailable:!1},nd=ba.object({media:ba.boolean().or(ba.literal("auto")).default(td.proxy.media),dynamic:ba.boolean().default(td.proxy.dynamic),ssl_verification:ba.boolean().or(ba.literal("auto")).default(td.proxy.ssl_verification),ssl_ciphers:ba.enum(["default","insecure","intermediate","modern"]).or(ba.literal("auto")).default(td.proxy.ssl_ciphers)}),ad=ba.object({camera_entity:ba.string().optional(),icon:ba.string().optional(),title:ba.string().optional(),capabilities:ba.object({disable:ba.enum(Is).array().optional(),disable_except:ba.enum(Is).array().optional()}).optional(),id:ba.string().optional(),dependencies:ba.object({all_cameras:ba.boolean().default(td.dependencies.all_cameras),cameras:ba.string().array().default(td.dependencies.cameras)}).default(td.dependencies),triggers:ba.object({motion:ba.boolean().default(td.triggers.motion),occupancy:ba.boolean().default(td.triggers.occupancy),entities:ba.string().array().default(td.triggers.entities),events:ba.enum(Xs).array().default(td.triggers.events)}).default(td.triggers),engine:ba.enum(["auto","frigate","generic","motioneye","reolink"]).default("auto"),frigate:ba.object({url:ba.string().optional(),client_id:ba.string().default(td.frigate.client_id),camera_name:ba.string().optional(),labels:ba.string().array().optional(),zones:ba.string().array().optional()}).default(td.frigate),motioneye:ba.object({url:ba.string().optional(),images:ba.object({directory_pattern:ba.string().includes("%").default(td.motioneye.images.directory_pattern),file_pattern:ba.string().includes("%").default(td.motioneye.images.file_pattern)}).default(td.motioneye.images),movies:ba.object({directory_pattern:ba.string().includes("%").default(td.motioneye.movies.directory_pattern),file_pattern:ba.string().includes("%").default(td.motioneye.movies.file_pattern)}).default(td.motioneye.movies)}).default(td.motioneye),reolink:ba.object({url:ba.string().optional(),media_resolution:ba.enum(["high","low"]).default(td.reolink.media_resolution)}).default(td.reolink),live_provider:ba.enum(["auto","image","ha","jsmpeg","go2rtc","webrtc-card"]).default(td.live_provider),go2rtc:Wl.optional(),image:Sl.optional().default(kl),jsmpeg:Ql.optional(),webrtc_card:Zl.optional(),cast:ed.optional(),ptz:xl.default(td.ptz),dimensions:ba.object({aspect_ratio:vl.optional(),layout:yl.optional()}).optional(),proxy:nd.default(td.proxy),always_error_if_entity_unavailable:ba.boolean().default(td.always_error_if_entity_unavailable)}).default(td),id=ad.array().min(1),rd={default:Ws,camera_select:"current",interaction_seconds:300,default_reset:{every_seconds:0,after_interaction:!1,entities:[],interaction_mode:"inactive"},default_cycle_camera:!1,dark_mode:"off",triggers:{show_trigger_status:!1,filter_selected_camera:!0,actions:{trigger:"update",untrigger:"none"},untrigger_seconds:0},keyboard_shortcuts:Ls},od=ba.enum(["all","inactive","active"]).default("inactive"),sd=ba.object({actions:ba.object({interaction_mode:od,trigger:ba.enum(["default","live","media","none","update"]).default(rd.triggers.actions.trigger),untrigger:ba.enum(["default","none"]).default(rd.triggers.actions.untrigger)}).default(rd.triggers.actions),filter_selected_camera:ba.boolean().default(rd.triggers.filter_selected_camera),show_trigger_status:ba.boolean().default(rd.triggers.show_trigger_status),untrigger_seconds:ba.number().default(rd.triggers.untrigger_seconds)}),cd=ba.object({default:ba.enum(Us).default(rd.default),camera_select:ba.enum([...Us,"current"]).default(rd.camera_select),interaction_seconds:ba.number().default(rd.interaction_seconds),default_cycle_camera:ba.boolean().default(rd.default_cycle_camera),default_reset:ba.object({after_interaction:ba.boolean().default(rd.default_reset.after_interaction),every_seconds:ba.number().default(rd.default_reset.every_seconds),entities:ba.string().array().default(rd.default_reset.entities),interaction_mode:od.default(rd.default_reset.interaction_mode)}).default(rd.default_reset),render_entities:ba.string().array().optional(),dark_mode:ba.enum(["on","off","auto"]).optional(),triggers:sd.default(rd.triggers),keyboard_shortcuts:Ns.default(rd.keyboard_shortcuts)}).merge(Tc).default(rd),ld=["left","right","top","bottom"],dd=ld,ud={priority:50,enabled:!0},hd={priority:50,enabled:!1},pd={alignment:"left",button_size:40,buttons:{camera_ui:ud,cameras:ud,clips:ud,ptz_home:hd,display_mode:ud,download:ud,expand:hd,frigate:ud,fullscreen:ud,image:hd,live:ud,media_player:ud,microphone:{...hd,type:"momentary"},mute:hd,play:hd,ptz_controls:hd,recordings:hd,screenshot:hd,snapshots:ud,substreams:ud,timeline:ud},position:"top",style:"hidden"},md=Zc.extend({enabled:Zc.shape.enabled.default(ud.enabled),priority:Zc.shape.priority.default(ud.priority)}),gd=Zc.extend({enabled:Zc.shape.enabled.default(hd.enabled),priority:Zc.shape.priority.default(hd.priority)}),fd=ba.object({style:ba.enum(["none","hidden","overlay","hover","hover-card","outside"]).default(pd.style),position:ba.enum(ld).default(pd.position),alignment:ba.enum(dd).default(pd.alignment),buttons:ba.object({camera_ui:md.default(pd.buttons.camera_ui),cameras:md.default(pd.buttons.cameras),clips:md.default(pd.buttons.clips),ptz_home:gd.default(pd.buttons.ptz_home),display_mode:md.default(pd.buttons.display_mode),download:md.default(pd.buttons.download),expand:gd.default(pd.buttons.expand),frigate:md.default(pd.buttons.frigate),fullscreen:md.default(pd.buttons.fullscreen),image:gd.default(pd.buttons.image),live:md.default(pd.buttons.live),media_player:md.default(pd.buttons.media_player),microphone:gd.extend({type:ba.enum(["momentary","toggle"]).default(pd.buttons.microphone.type)}).default(pd.buttons.microphone),mute:gd.default(pd.buttons.mute),play:gd.default(pd.buttons.play),ptz_controls:gd.default(pd.buttons.ptz_controls),recordings:gd.default(pd.buttons.recordings),screenshot:gd.default(pd.buttons.screenshot),snapshots:md.default(pd.buttons.snapshots),substreams:md.default(pd.buttons.substreams),timeline:md.default(pd.buttons.timeline)}).default(pd.buttons),button_size:ba.number().min(20).default(pd.button_size)}).default(pd),_d={priority:50,enabled:!0},yd={height:46,items:{engine:_d,resolution:_d,technology:_d,title:_d},position:"bottom",style:"popup",popup_seconds:3},vd=ba.object({position:ba.enum(["top","bottom"]).default(yd.position),style:ba.enum(["none","overlay","hover","hover-card","outside","popup"]).default(yd.style),popup_seconds:ba.number().min(0).max(60).default(yd.popup_seconds),height:ba.number().min(20).default(yd.height),items:ba.object({engine:Jc.default(yd.items.engine),technology:Jc.default(yd.items.technology),resolution:Jc.default(yd.items.resolution),title:Jc.default(yd.items.title)}).default(yd.items)}).default(yd),bd={auto_play:[...Qs],auto_pause:[...Zs],auto_mute:[...Zs],auto_unmute:[],lazy_load:!0,draggable:!0,zoomable:!0,transition_effect:"slide",snapshot_click_plays_clip:!0,display_mode:"single",controls:{builtin:!0,next_previous:{size:48,style:"thumbnails"},thumbnails:Tl,timeline:Ll,ptz:{...Cl,mode:"off"}}},wd=Hl.extend({style:ba.enum(["none","thumbnails","chevrons"]).default(bd.controls.next_previous.style),size:Hl.shape.size.default(bd.controls.next_previous.size)}),xd=ba.object({auto_play:ba.enum(Qs).array().default(bd.auto_play),auto_pause:ba.enum(Zs).array().default(bd.auto_pause),auto_mute:ba.enum(Zs).array().default(bd.auto_mute),auto_unmute:ba.enum(Qs).array().default(bd.auto_unmute),lazy_load:ba.boolean().default(bd.lazy_load),draggable:ba.boolean().default(bd.draggable),zoomable:ba.boolean().default(bd.zoomable),transition_effect:Bl.default(bd.transition_effect),snapshot_click_plays_clip:ba.boolean().default(bd.snapshot_click_plays_clip),display:ac,controls:ba.object({builtin:ba.boolean().default(bd.controls.builtin),next_previous:wd.default(bd.controls.next_previous),ptz:Ml.extend({mode:ba.enum(["off","on"]).default(bd.controls.ptz.mode)}).default(bd.controls.ptz),thumbnails:jl.default(bd.controls.thumbnails),timeline:Nl.default(bd.controls.timeline)}).default(bd.controls)}).merge(Tc).default(bd),Cd={...Tl,show_details:!1},Md={controls:{thumbnails:Cd,filter:{mode:"right"}}},kd=jl.extend({show_details:ba.boolean().default(Cd.show_details)}),Sd=ba.object({controls:ba.object({thumbnails:kd.default(Md.controls.thumbnails),filter:ba.object({mode:ba.enum(["none","left","right"]).default(Md.controls.filter.mode)}).default(Md.controls.filter)}).default(Md.controls)}).merge(Tc).default(Md),Ed={aspect_ratio_mode:"dynamic",aspect_ratio:[16,9],height:"auto"},$d=ba.object({aspect_ratio_mode:ba.enum(["dynamic","static","unconstrained"]).default(Ed.aspect_ratio_mode),aspect_ratio:vl.default(Ed.aspect_ratio),height:ba.string().default(Ed.height)}).default(Ed),Ad=ba.object({conditions:gl.array(),merge:ba.object({}).passthrough().optional(),set:ba.object({}).passthrough().optional(),delete:ba.string().array().optional()}).array().optional(),Id=Ic.array(),zd=ba.object({conditions:gl.array(),actions:Id.optional(),actions_not:Id.optional()}).refine((e=>e.actions?.length||e.actions_not?.length),"Automations must include at least one action").array(),Td={features:{animated_progress_indicator:!0,media_chunk_size:50},style:{border_radius:!0,box_shadow:!0}},jd=ba.object({features:ba.object({animated_progress_indicator:ba.boolean().default(Td.features.animated_progress_indicator),media_chunk_size:ba.number().min(0).max(1e3).default(Td.features.media_chunk_size),max_simultaneous_engine_requests:ba.number().min(1).optional()}).default(Td.features),style:ba.object({border_radius:ba.boolean().default(Td.style.border_radius),box_shadow:ba.boolean().default(Td.style.box_shadow)}).default(Td.style)}).default(Td),Od={logging:!1},Dd=ba.object({logging:ba.boolean().default(Od.logging)}).default(Od),Rd=ba.enum(["casting","low-performance","scrubbing"]).array().optional(),Pd=ba.object({cameras:js(id),cameras_global:ad,view:cd,menu:fd,status_bar:vd,live:Xl,media_gallery:Sd,media_viewer:xd,image:El,elements:_l,dimensions:$d,timeline:Vl,performance:jd,debug:Dd,automations:zd.optional(),profiles:Rd,overrides:Ad,card_mod:ba.unknown(),card_id:ba.string().regex(Js).optional(),type:ba.string()}),Ld={cameras:td,view:rd,menu:pd,status_bar:yd,live:Yl,media_gallery:Md,media_viewer:bd,image:kl,timeline:Fl,performance:Td,debug:Od};function Nd(e){const t=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===t?new e.constructor(+e):"number"==typeof e||"[object Number]"===t||"string"==typeof e||"[object String]"===t?new Date(e):new Date(NaN)}function Fd(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function Vd(e,t){const n=Nd(e);return isNaN(t)?Fd(e,NaN):t?(n.setDate(n.getDate()+t),n):n}function Hd(e,t){const n=Nd(e);if(isNaN(t))return Fd(e,NaN);if(!t)return n;const a=n.getDate(),i=Fd(e,n.getTime());i.setMonth(n.getMonth()+t+1,0);return a>=i.getDate()?i:(n.setFullYear(i.getFullYear(),i.getMonth(),a),n)}function Bd(e,t){const{years:n=0,months:a=0,weeks:i=0,days:r=0,hours:o=0,minutes:s=0,seconds:c=0}=t,l=Nd(e),d=a||n?Hd(l,a+12*n):l,u=1e3*(c+60*(s+60*o));return Fd(e,(r||i?Vd(d,r+7*i):d).getTime()+u)}const qd=6048e5,Ud=864e5,Wd=6e4,Zd=36e5,Qd=1e3;let Gd={};function Yd(){return Gd}function Kd(e,t){const n=Yd(),a=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=Nd(e),r=i.getDay(),o=(r=i.getTime()?n+1:t.getTime()>=o.getTime()?n:n-1}function eu(e){const t=Nd(e);return t.setHours(0,0,0,0),t}function tu(e){const t=Nd(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function nu(e){if(!(t=e,t instanceof Date||"object"==typeof t&&"[object Date]"===Object.prototype.toString.call(t)||"number"==typeof e))return!1;var t;const n=Nd(e);return!isNaN(Number(n))}function au(e){return t=>{const n=(e?Math[e]:Math.trunc)(t);return 0===n?0:n}}function iu(e,t){return+Nd(e)-+Nd(t)}function ru(e,t,n){const a=iu(e,t)/1e3;return au(n?.roundingMethod)(a)}const ou={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function su(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const cu={date:su({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:su({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:su({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},lu={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function du(e){return(t,n)=>{let a;if("formatting"===(n?.context?String(n.context):"standalone")&&e.formattingValues){const t=e.defaultFormattingWidth||e.defaultWidth,i=n?.width?String(n.width):t;a=e.formattingValues[i]||e.formattingValues[t]}else{const t=e.defaultWidth,i=n?.width?String(n.width):e.defaultWidth;a=e.values[i]||e.values[t]}return a[e.argumentCallback?e.argumentCallback(t):t]}}function uu(e){return(t,n={})=>{const a=n.width,i=a&&e.matchPatterns[a]||e.matchPatterns[e.defaultMatchWidth],r=t.match(i);if(!r)return null;const o=r[0],s=a&&e.parsePatterns[a]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(s)?function(e,t){for(let n=0;ne.test(o))):function(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n;return}(s,(e=>e.test(o)));let l;l=e.valueCallback?e.valueCallback(c):c,l=n.valueCallback?n.valueCallback(l):l;return{value:l,rest:t.slice(o.length)}}}var hu;const pu={code:"en-US",formatDistance:(e,t,n)=>{let a;const i=ou[e];return a="string"==typeof i?i:1===t?i.one:i.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+a:a+" ago":a},formatLong:cu,formatRelative:(e,t,n,a)=>lu[e],localize:{ordinalNumber:(e,t)=>{const n=Number(e),a=n%100;if(a>20||a<10)switch(a%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:du({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:du({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:e=>e-1}),month:du({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:du({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:du({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(hu={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)},(e,t={})=>{const n=e.match(hu.matchPattern);if(!n)return null;const a=n[0],i=e.match(hu.parsePattern);if(!i)return null;let r=hu.valueCallback?hu.valueCallback(i[0]):i[0];return r=t.valueCallback?t.valueCallback(r):r,{value:r,rest:e.slice(a.length)}}),era:uu({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:uu({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:e=>e+1}),month:uu({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:uu({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:uu({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function mu(e){const t=Nd(e),n=function(e,t){const n=eu(e),a=eu(t),i=+n-tu(n),r=+a-tu(a);return Math.round((i-r)/Ud)}(t,function(e){const t=Nd(e),n=Fd(e,0);return n.setFullYear(t.getFullYear(),0,1),n.setHours(0,0,0,0),n}(t));return n+1}function gu(e){const t=Nd(e),n=+Xd(t)-+function(e){const t=Jd(e),n=Fd(e,0);return n.setFullYear(t,0,4),n.setHours(0,0,0,0),Xd(n)}(t);return Math.round(n/qd)+1}function fu(e,t){const n=Nd(e),a=n.getFullYear(),i=Yd(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,o=Fd(e,0);o.setFullYear(a+1,0,r),o.setHours(0,0,0,0);const s=Kd(o,t),c=Fd(e,0);c.setFullYear(a,0,r),c.setHours(0,0,0,0);const l=Kd(c,t);return n.getTime()>=s.getTime()?a+1:n.getTime()>=l.getTime()?a:a-1}function _u(e,t){const n=Nd(e),a=+Kd(n,t)-+function(e,t){const n=Yd(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,i=fu(e,t),r=Fd(e,0);return r.setFullYear(i,0,a),r.setHours(0,0,0,0),Kd(r,t)}(n,t);return Math.round(a/qd)+1}function yu(e,t){return(e<0?"-":"")+Math.abs(e).toString().padStart(t,"0")}const vu={y(e,t){const n=e.getFullYear(),a=n>0?n:1-n;return yu("yy"===t?a%100:a,t.length)},M(e,t){const n=e.getMonth();return"M"===t?String(n+1):yu(n+1,2)},d:(e,t)=>yu(e.getDate(),t.length),a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];default:return"am"===n?"a.m.":"p.m."}},h:(e,t)=>yu(e.getHours()%12||12,t.length),H:(e,t)=>yu(e.getHours(),t.length),m:(e,t)=>yu(e.getMinutes(),t.length),s:(e,t)=>yu(e.getSeconds(),t.length),S(e,t){const n=t.length,a=e.getMilliseconds();return yu(Math.trunc(a*Math.pow(10,n-3)),t.length)}},bu="midnight",wu="noon",xu="morning",Cu="afternoon",Mu="evening",ku="night",Su={G:function(e,t,n){const a=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(a,{width:"abbreviated"});case"GGGGG":return n.era(a,{width:"narrow"});default:return n.era(a,{width:"wide"})}},y:function(e,t,n){if("yo"===t){const t=e.getFullYear(),a=t>0?t:1-t;return n.ordinalNumber(a,{unit:"year"})}return vu.y(e,t)},Y:function(e,t,n,a){const i=fu(e,a),r=i>0?i:1-i;if("YY"===t){return yu(r%100,2)}return"Yo"===t?n.ordinalNumber(r,{unit:"year"}):yu(r,t.length)},R:function(e,t){return yu(Jd(e),t.length)},u:function(e,t){return yu(e.getFullYear(),t.length)},Q:function(e,t,n){const a=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(a);case"QQ":return yu(a,2);case"Qo":return n.ordinalNumber(a,{unit:"quarter"});case"QQQ":return n.quarter(a,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(a,{width:"narrow",context:"formatting"});default:return n.quarter(a,{width:"wide",context:"formatting"})}},q:function(e,t,n){const a=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(a);case"qq":return yu(a,2);case"qo":return n.ordinalNumber(a,{unit:"quarter"});case"qqq":return n.quarter(a,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(a,{width:"narrow",context:"standalone"});default:return n.quarter(a,{width:"wide",context:"standalone"})}},M:function(e,t,n){const a=e.getMonth();switch(t){case"M":case"MM":return vu.M(e,t);case"Mo":return n.ordinalNumber(a+1,{unit:"month"});case"MMM":return n.month(a,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(a,{width:"narrow",context:"formatting"});default:return n.month(a,{width:"wide",context:"formatting"})}},L:function(e,t,n){const a=e.getMonth();switch(t){case"L":return String(a+1);case"LL":return yu(a+1,2);case"Lo":return n.ordinalNumber(a+1,{unit:"month"});case"LLL":return n.month(a,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(a,{width:"narrow",context:"standalone"});default:return n.month(a,{width:"wide",context:"standalone"})}},w:function(e,t,n,a){const i=_u(e,a);return"wo"===t?n.ordinalNumber(i,{unit:"week"}):yu(i,t.length)},I:function(e,t,n){const a=gu(e);return"Io"===t?n.ordinalNumber(a,{unit:"week"}):yu(a,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getDate(),{unit:"date"}):vu.d(e,t)},D:function(e,t,n){const a=mu(e);return"Do"===t?n.ordinalNumber(a,{unit:"dayOfYear"}):yu(a,t.length)},E:function(e,t,n){const a=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(a,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(a,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},e:function(e,t,n,a){const i=e.getDay(),r=(i-a.weekStartsOn+8)%7||7;switch(t){case"e":return String(r);case"ee":return yu(r,2);case"eo":return n.ordinalNumber(r,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(e,t,n,a){const i=e.getDay(),r=(i-a.weekStartsOn+8)%7||7;switch(t){case"c":return String(r);case"cc":return yu(r,t.length);case"co":return n.ordinalNumber(r,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(e,t,n){const a=e.getDay(),i=0===a?7:a;switch(t){case"i":return String(i);case"ii":return yu(i,t.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(a,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(a,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},a:function(e,t,n){const a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(e,t,n){const a=e.getHours();let i;switch(i=12===a?wu:0===a?bu:a/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(i,{width:"narrow",context:"formatting"});default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},B:function(e,t,n){const a=e.getHours();let i;switch(i=a>=17?Mu:a>=12?Cu:a>=4?xu:ku,t){case"B":case"BB":case"BBB":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(i,{width:"narrow",context:"formatting"});default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){let t=e.getHours()%12;return 0===t&&(t=12),n.ordinalNumber(t,{unit:"hour"})}return vu.h(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getHours(),{unit:"hour"}):vu.H(e,t)},K:function(e,t,n){const a=e.getHours()%12;return"Ko"===t?n.ordinalNumber(a,{unit:"hour"}):yu(a,t.length)},k:function(e,t,n){let a=e.getHours();return 0===a&&(a=24),"ko"===t?n.ordinalNumber(a,{unit:"hour"}):yu(a,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):vu.m(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getSeconds(),{unit:"second"}):vu.s(e,t)},S:function(e,t){return vu.S(e,t)},X:function(e,t,n){const a=e.getTimezoneOffset();if(0===a)return"Z";switch(t){case"X":return $u(a);case"XXXX":case"XX":return Au(a);default:return Au(a,":")}},x:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"x":return $u(a);case"xxxx":case"xx":return Au(a);default:return Au(a,":")}},O:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+Eu(a,":");default:return"GMT"+Au(a,":")}},z:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+Eu(a,":");default:return"GMT"+Au(a,":")}},t:function(e,t,n){return yu(Math.trunc(e.getTime()/1e3),t.length)},T:function(e,t,n){return yu(e.getTime(),t.length)}};function Eu(e,t=""){const n=e>0?"-":"+",a=Math.abs(e),i=Math.trunc(a/60),r=a%60;return 0===r?n+String(i):n+String(i)+t+yu(r,2)}function $u(e,t){if(e%60==0){return(e>0?"-":"+")+yu(Math.abs(e)/60,2)}return Au(e,t)}function Au(e,t=""){const n=e>0?"-":"+",a=Math.abs(e);return n+yu(Math.trunc(a/60),2)+t+yu(a%60,2)}const Iu=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},zu=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},Tu={p:zu,P:(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],a=n[1],i=n[2];if(!i)return Iu(e,t);let r;switch(a){case"P":r=t.dateTime({width:"short"});break;case"PP":r=t.dateTime({width:"medium"});break;case"PPP":r=t.dateTime({width:"long"});break;default:r=t.dateTime({width:"full"})}return r.replace("{{date}}",Iu(a,t)).replace("{{time}}",zu(i,t))}},ju=/^D+$/,Ou=/^Y+$/,Du=["D","DD","YY","YYYY"];function Ru(e){return ju.test(e)}function Pu(e){return Ou.test(e)}function Lu(e,t,n){const a=function(e,t,n){const a="Y"===e[0]?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${a} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}(e,t,n);if(console.warn(a),Du.includes(e))throw new RangeError(a)}const Nu=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Fu=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Vu=/^'([^]*?)'?$/,Hu=/''/g,Bu=/[a-zA-Z]/;function qu(e,t,n){const a=Yd(),i=n?.locale??a.locale??pu,r=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,o=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??a.weekStartsOn??a.locale?.options?.weekStartsOn??0,s=Nd(e);if(!nu(s))throw new RangeError("Invalid time value");let c=t.match(Fu).map((e=>{const t=e[0];if("p"===t||"P"===t){return(0,Tu[t])(e,i.formatLong)}return e})).join("").match(Nu).map((e=>{if("''"===e)return{isToken:!1,value:"'"};const t=e[0];if("'"===t)return{isToken:!1,value:Uu(e)};if(Su[t])return{isToken:!0,value:e};if(t.match(Bu))throw new RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return{isToken:!1,value:e}}));i.localize.preprocessor&&(c=i.localize.preprocessor(s,c));const l={firstWeekContainsDate:r,weekStartsOn:o,locale:i};return c.map((a=>{if(!a.isToken)return a.value;const r=a.value;(!n?.useAdditionalWeekYearTokens&&Pu(r)||!n?.useAdditionalDayOfYearTokens&&Ru(r))&&Lu(r,t,String(e));return(0,Su[r[0]])(s,r,i.localize,l)})).join("")}function Uu(e){const t=e.match(Vu);return t?t[1].replace(Hu,"'"):e}function Wu(e,t){const{years:n=0,months:a=0,weeks:i=0,days:r=0,hours:o=0,minutes:s=0,seconds:c=0}=t,l=function(e,t){return Hd(e,-t)}(e,a+12*n),d=function(e,t){return Vd(e,-t)}(l,r+7*i),u=1e3*(c+60*(s+60*o));return Fd(e,d.getTime()-u)}function Zu(e,t){return e===t||e!=e&&t!=t}function Qu(e,t){for(var n=e.length;n--;)if(Zu(e[n][0],t))return n;return-1}var Gu=Array.prototype.splice;function Yu(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1},Yu.prototype.set=function(e,t){var n=this.__data__,a=Qu(n,e);return a<0?(++this.size,n.push([e,t])):n[a][1]=t,this};var Ku="object"==typeof global&&global&&global.Object===Object&&global,Xu="object"==typeof self&&self&&self.Object===Object&&self,Ju=Ku||Xu||Function("return this")(),eh=Ju.Symbol,th=Object.prototype,nh=th.hasOwnProperty,ah=th.toString,ih=eh?eh.toStringTag:void 0;var rh=Object.prototype.toString;var oh="[object Null]",sh="[object Undefined]",ch=eh?eh.toStringTag:void 0;function lh(e){return null==e?void 0===e?sh:oh:ch&&ch in Object(e)?function(e){var t=nh.call(e,ih),n=e[ih];try{e[ih]=void 0;var a=!0}catch(e){}var i=ah.call(e);return a&&(t?e[ih]=n:delete e[ih]),i}(e):function(e){return rh.call(e)}(e)}function dh(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}var uh="[object AsyncFunction]",hh="[object Function]",ph="[object GeneratorFunction]",mh="[object Proxy]";function gh(e){if(!dh(e))return!1;var t=lh(e);return t==hh||t==ph||t==uh||t==mh}var fh,_h=Ju["__core-js_shared__"],yh=(fh=/[^.]+$/.exec(_h&&_h.keys&&_h.keys.IE_PROTO||""))?"Symbol(src)_1."+fh:"";var vh=Function.prototype.toString;function bh(e){if(null!=e){try{return vh.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var wh=/^\[object .+?Constructor\]$/,xh=Function.prototype,Ch=Object.prototype,Mh=xh.toString,kh=Ch.hasOwnProperty,Sh=RegExp("^"+Mh.call(kh).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Eh(e){return!(!dh(e)||(t=e,yh&&yh in t))&&(gh(e)?Sh:wh).test(bh(e));var t}function $h(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return Eh(n)?n:void 0}var Ah=$h(Ju,"Map"),Ih=$h(Object,"create");var zh=Object.prototype.hasOwnProperty;var Th=Object.prototype.hasOwnProperty;function jh(e){var t=-1,n=null==e?0:e.length;for(this.clear();++ts))return!1;var l=r.get(e),d=r.get(t);if(l&&d)return l==t&&d==e;var u=-1,h=!0,p=n&Vh?new Ph:void 0;for(r.set(e,t),r.set(t,e);++u-1&&e%1==0&&e-1&&e%1==0&&e<=Ep}var Ap={};function Ip(e){return function(t){return e(t)}}Ap["[object Float32Array]"]=Ap["[object Float64Array]"]=Ap["[object Int8Array]"]=Ap["[object Int16Array]"]=Ap["[object Int32Array]"]=Ap["[object Uint8Array]"]=Ap["[object Uint8ClampedArray]"]=Ap["[object Uint16Array]"]=Ap["[object Uint32Array]"]=!0,Ap["[object Arguments]"]=Ap["[object Array]"]=Ap["[object ArrayBuffer]"]=Ap["[object Boolean]"]=Ap["[object DataView]"]=Ap["[object Date]"]=Ap["[object Error]"]=Ap["[object Function]"]=Ap["[object Map]"]=Ap["[object Number]"]=Ap["[object Object]"]=Ap["[object RegExp]"]=Ap["[object Set]"]=Ap["[object String]"]=Ap["[object WeakMap]"]=!1;var zp="object"==typeof exports&&exports&&!exports.nodeType&&exports,Tp=zp&&"object"==typeof module&&module&&!module.nodeType&&module,jp=Tp&&Tp.exports===zp&&Ku.process,Op=function(){try{var e=Tp&&Tp.require&&Tp.require("util").types;return e||jp&&jp.binding&&jp.binding("util")}catch(e){}}(),Dp=Op,Rp=Dp&&Dp.isTypedArray,Pp=Rp?Ip(Rp):function(e){return mp(e)&&$p(e.length)&&!!Ap[lh(e)]},Lp=Object.prototype.hasOwnProperty;function Np(e,t){var n=cp(e),a=!n&&vp(e),i=!n&&!a&&Cp(e),r=!n&&!a&&!i&&Pp(e),o=n||a||i||r,s=o?function(e,t){for(var n=-1,a=Array(e);++n0){if(++ig>=800)return arguments[0]}else ig=0;return ag.apply(void 0,arguments)});function sg(e,t){return og(function(e,t,n){return t=Jm(void 0===t?e.length-1:t,0),function(){for(var a=arguments,i=-1,r=Jm(a.length-t,0),o=Array(r);++i1?n[i-1]:void 0,o=i>2?n[2]:void 0;for(r=e.length>3&&"function"==typeof r?(i--,r):void 0,o&&cg(n[0],n[1],o)&&(r=i<3?void 0:r,i=1),t=Object(t);++a-1}function Pg(e,t,n){for(var a=-1,i=null==e?0:e.length;++a=Ng){var l=t?null:Lg(e);if(l)return Uh(l);o=!1,i=Nh,c=new Ph}else c=t?[]:s;e:for(;++ae[0].toUpperCase()+e.substring(1))).join(" ")}function Bg(e,t,n){const a=e[t];return e.splice(t,1),e.splice(n,0,a),e}const qg=e=>Array.isArray(e)?e:[e],Ug=e=>e instanceof Set?e:new Set(qg(e));function Wg(e,t,n){return!function(e,t,n){var a=(n="function"==typeof n?n:void 0)?n(e,t):void 0;return void 0===a?ym(e,t,void 0,n):!!a}(e,t,n)}function Zg(e,t=console.warn){e instanceof $s&&e.context?t(e,e.context):t("object"==typeof e&&"message"in e?e.message:e)}const Qg=()=>window.matchMedia("(hover: hover) and (pointer: fine)").matches,Gg=(e,t)=>qu(e,"yyyy-MM-dd HH:mm"+(t?":ss":"")),Yg=e=>qu(e,"yyyy-MM-dd"),Kg=(e,t)=>{window.requestIdleCallback?window.requestIdleCallback(e,{...t&&{timeout:t}}):e()};function Xg(e,t){const n=function(e,t,n){const a=iu(e,t)/Zd;return au(n?.roundingMethod)(a)}(t,e),a=function(e,t,n){const a=iu(e,t)/Wd;return au(n?.roundingMethod)(a)}(t,e)-60*n;let i="";return n&&(i+=`${n}h `),a&&(i+=`${a}m `),i+=`${ru(t,e)-60*n*60-60*a}s`,i}const Jg=async(e,t)=>await Promise.all(Array.from(e).map((e=>t(e)))),ef=e=>new Date(`${e}T00:00:00`),tf=async e=>{await new Promise((t=>setTimeout(t,1e3*e)))},nf=e=>!isNaN(e.getTime()),af=(e,t,n,a)=>{t?e.setAttribute(n,a??""):e.removeAttribute(n)},rf=e=>!!e,of=e=>e instanceof HTMLElement,sf=e=>(e instanceof HTMLSlotElement?e.assignedElements({flatten:!0}):[...e.children]).filter(of),cf=e=>e?.ratio&&2===e.ratio.length?`${e.ratio[0]} / ${e.ratio[1]}`:e?.defaultStatic?"16 / 9":"auto",lf=e=>({"aspect-ratio":cf(e)}),df=e=>{if(Array.isArray(e))return e.filter((e=>void 0!==e)).map((e=>df(e)));if("object"==typeof e&&null!==e){const t={};for(const n in e)t[n]=df(e[n]);return t}return e},uf=(e,t,n)=>Og(e,n)===Og(t,n);function hf(e){if(!e)return null;const t=Ac.safeParse(e);return t.success?t.data:null}function pf(e,t){return{action:"fire-dom-event",frigate_card_action:e,...t?.cardID&&{card_id:t.cardID}}}function mf(e,t,n){return{action:"fire-dom-event",frigate_card_action:e,camera:t,...n?.cardID&&{card_id:n.cardID}}}function gf(e,t,n){return{action:"fire-dom-event",frigate_card_action:"media_player",media_player:e,media_player_action:t,...n?.cardID&&{card_id:n.cardID}}}function ff(e){return{action:"fire-dom-event",frigate_card_action:"ptz_multi",...e?.cardID&&{card_id:e.cardID},...e?.ptzAction&&{ptz_action:e.ptzAction},...e?.ptzPhase&&{ptz_phase:e.ptzPhase},...e?.ptzPreset&&{ptz_preset:e.ptzPreset},...e?.targetID&&{target_id:e.targetID}}}function _f(e,t){return e&&t?"tap"===e&&t.tap_action?t.tap_action:"hold"===e&&t.hold_action?t.hold_action:"double_tap"===e&&t.double_tap_action?t.double_tap_action:"end_tap"===e&&t.end_tap_action?t.end_tap_action:"start_tap"===e&&t.start_tap_action?t.start_tap_action:null:null}const yf=e=>qg(e).some((e=>function(e){return void 0!==e&&"none"!==e.action}(e))),vf=e=>{e.stopPropagation()};class bf{constructor(){this._timer=null,this._repeated=!1}stop(){this._timer&&(this._repeated?window.clearInterval(this._timer):window.clearTimeout(this._timer),this._timer=null)}isRunning(){return null!==this._timer}start(e,t){this.stop(),this._timer=window.setTimeout((()=>{this._timer=null,t()}),1e3*e),this._repeated=!1}startRepeated(e,t){this.stop(),this._timer=window.setInterval((()=>{t()}),1e3*e),this._repeated=!0}}class wf extends HTMLElement{constructor(){super(...arguments),this.holdTime=.4,this.holdTimer=new bf,this.doubleClickTimer=new bf,this.held=!1,this.started=!1}connectedCallback(){["touchcancel","mouseout","mouseup","touchmove","mousewheel","wheel","scroll"].forEach((e=>{document.addEventListener(e,(()=>{this.holdTimer.stop()}),{passive:!0})}))}bind(e,t){if(e.actionHandlerOptions)return void(e.actionHandlerOptions=t);e.actionHandlerOptions=t,e.addEventListener("contextmenu",(e=>{const t=e||window.event;return t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation(),t.cancelBubble=!0,t.returnValue=!1,!1}));const n=()=>{this.held=!1,this.holdTimer.start(this.holdTime,(()=>{this.held=!0})),this.started||(this.started=!0,et(e,"action",{action:"start_tap"}))},a=t=>{this.holdTimer.stop(),this.started&&(this.started=!1,et(e,"action",{action:"end_tap"}))},i=t=>{const n=e.actionHandlerOptions;n?.allowPropagation||vf(t),["touchend","touchcancel"].includes(t.type)&&!this.held||(a(),n?.hasHold&&this.held?et(e,"action",{action:"hold"}):n?.hasDoubleClick?"click"===t.type&&t.detail<2||!this.doubleClickTimer.isRunning()?this.doubleClickTimer.start(.25,(()=>et(e,"action",{action:"tap"}))):(this.doubleClickTimer.stop(),et(e,"action",{action:"double_tap"})):et(e,"action",{action:"tap"}))};e.addEventListener("touchstart",n,{passive:!0}),e.addEventListener("touchend",i),e.addEventListener("touchcancel",i),e.addEventListener("mousedown",n,{passive:!0}),e.addEventListener("click",i),e.addEventListener("keyup",(e=>{"Enter"===e.key&&i(e)})),e.addEventListener("mouseleave",a)}}customElements.define("action-handler-frigate-card",wf);const xf=(e,t)=>{const n=(()=>{const e=document.body;if(e.querySelector("action-handler-frigate-card"))return e.querySelector("action-handler-frigate-card");const t=document.createElement("action-handler-frigate-card");return e.appendChild(t),t})();n&&n.bind(e,t)},Cf=ge(class extends fe{update(e,[t]){return xf(e.element,t),U}render(e){}});var Mf=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)sp(t,pp(e)),e=Dm(e);return t}:dp;function kf(e){return lp(e,Gm,Mf)}var Sf=Object.prototype.hasOwnProperty;var Ef=/\w*$/;var $f=eh?eh.prototype:void 0,Af=$f?$f.valueOf:void 0;var If="[object Boolean]",zf="[object Date]",Tf="[object Map]",jf="[object Number]",Of="[object RegExp]",Df="[object Set]",Rf="[object String]",Pf="[object Symbol]",Lf="[object ArrayBuffer]",Nf="[object DataView]",Ff="[object Float32Array]",Vf="[object Float64Array]",Hf="[object Int8Array]",Bf="[object Int16Array]",qf="[object Int32Array]",Uf="[object Uint8Array]",Wf="[object Uint8ClampedArray]",Zf="[object Uint16Array]",Qf="[object Uint32Array]";function Gf(e,t,n){var a,i,r,o=e.constructor;switch(t){case Lf:return Im(e);case If:case zf:return new o(+e);case Nf:return function(e,t){var n=t?Im(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case Ff:case Vf:case Hf:case Bf:case qf:case Uf:case Wf:case Zf:case Qf:return zm(e,n);case Tf:return new o;case jf:case Rf:return new o(e);case Of:return(r=new(i=e).constructor(i.source,Ef.exec(i))).lastIndex=i.lastIndex,r;case Df:return new o;case Pf:return a=e,Af?Object(Af.call(a)):{}}}var Yf=Dp&&Dp.isMap,Kf=Yf?Ip(Yf):function(e){return mp(e)&&"[object Map]"==um(e)};var Xf=Dp&&Dp.isSet,Jf=Xf?Ip(Xf):function(e){return mp(e)&&"[object Set]"==um(e)},e_=1,t_=2,n_=4,a_="[object Arguments]",i_="[object Function]",r_="[object GeneratorFunction]",o_="[object Object]",s_={};function c_(e,t,n,a,i,r){var o,s=t&e_,c=t&t_,l=t&n_;if(n&&(o=i?n(e,a,i,r):n(e)),void 0!==o)return o;if(!dh(e))return e;var d=cp(e);if(d){if(o=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&Sf.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!s)return Tm(e,o)}else{var u=um(e),h=u==i_||u==r_;if(Cp(e))return Am(e,s);if(u==o_||u==a_||h&&!i){if(o=c||h?{}:Rm(e),!s)return c?function(e,t){return Wm(e,Mf(e),t)}(e,function(e,t){return e&&Wm(t,Gm(t),e)}(o,e)):function(e,t){return Wm(e,pp(e),t)}(e,function(e,t){return e&&Wm(t,Wp(t),e)}(o,e))}else{if(!s_[u])return i?e:{};o=Gf(e,u,s)}}r||(r=new Rh);var p=r.get(e);if(p)return p;r.set(e,o),Jf(e)?e.forEach((function(a){o.add(c_(a,t,n,a,e,r))})):Kf(e)&&e.forEach((function(a,i){o.set(i,c_(a,t,n,i,e,r))}));var m=d?void 0:(l?c?kf:Zp:c?Gm:Wp)(e);return function(e,t){for(var n=-1,a=null==e?0:e.length;++nvoid 0===globalThis.DOMException?new g_(e):new DOMException(e),__=e=>{const t=void 0===e.reason?f_("This operation was aborted."):e.reason;return t instanceof Error?t:f_(t)};class y_{#e=[];enqueue(e,t){const n={priority:(t={priority:0,...t}).priority,run:e};if(this.size&&this.#e[this.size-1].priority>=t.priority)return void this.#e.push(n);const a=function(e,t,n){let a=0,i=e.length;for(;i>0;){const r=Math.trunc(i/2);let o=a+r;n(e[o],t)<=0?(a=++o,i-=r+1):i=r}return a}(this.#e,n,((e,t)=>t.priority-e.priority));this.#e.splice(a,0,n)}dequeue(){const e=this.#e.shift();return e?.run}filter(e){return this.#e.filter((t=>t.priority===e.priority)).map((e=>e.run))}get size(){return this.#e.length}}class v_ extends p_{#t;#n;#a=0;#i;#r;#o=0;#s;#c;#e;#l;#d=0;#u;#h;#p;timeout;constructor(e){if(super(),!("number"==typeof(e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:y_,...e}).intervalCap&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${typeof e.intervalCap})`);if(void 0===e.interval||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??""}\` (${typeof e.interval})`);this.#t=e.carryoverConcurrencyCount,this.#n=e.intervalCap===Number.POSITIVE_INFINITY||0===e.interval,this.#i=e.intervalCap,this.#r=e.interval,this.#e=new e.queueClass,this.#l=e.queueClass,this.concurrency=e.concurrency,this.timeout=e.timeout,this.#p=!0===e.throwOnTimeout,this.#h=!1===e.autoStart}get#m(){return this.#n||this.#a{this.#y()}),t)),!0;this.#a=this.#t?this.#d:0}return!1}#_(){if(0===this.#e.size)return this.#s&&clearInterval(this.#s),this.#s=void 0,this.emit("empty"),0===this.#d&&this.emit("idle"),!1;if(!this.#h){const e=!this.#w;if(this.#m&&this.#g){const t=this.#e.dequeue();return!!t&&(this.emit("active"),t(),e&&this.#b(),!0)}}return!1}#b(){this.#n||void 0!==this.#s||(this.#s=setInterval((()=>{this.#v()}),this.#r),this.#o=Date.now()+this.#r)}#v(){0===this.#a&&0===this.#d&&this.#s&&(clearInterval(this.#s),this.#s=void 0),this.#a=this.#t?this.#d:0,this.#x()}#x(){for(;this.#_(););}get concurrency(){return this.#u}set concurrency(e){if(!("number"==typeof e&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#u=e,this.#x()}async#C(e){return new Promise(((t,n)=>{e.addEventListener("abort",(()=>{n(e.reason)}),{once:!0})}))}async add(e,t={}){return t={timeout:this.timeout,throwOnTimeout:this.#p,...t},new Promise(((n,a)=>{this.#e.enqueue((async()=>{this.#d++,this.#a++;try{t.signal?.throwIfAborted();let a=e({signal:t.signal});t.timeout&&(a=function(e,t){const{milliseconds:n,fallback:a,message:i,customTimers:r={setTimeout:setTimeout,clearTimeout:clearTimeout}}=t;let o;const s=new Promise(((s,c)=>{if("number"!=typeof n||1!==Math.sign(n))throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${n}\``);if(t.signal){const{signal:e}=t;e.aborted&&c(__(e)),e.addEventListener("abort",(()=>{c(__(e))}))}if(n===Number.POSITIVE_INFINITY)return void e.then(s,c);const l=new m_;o=r.setTimeout.call(void 0,(()=>{if(a)try{s(a())}catch(e){c(e)}else"function"==typeof e.cancel&&e.cancel(),!1===i?s():i instanceof Error?c(i):(l.message=i??`Promise timed out after ${n} milliseconds`,c(l))}),n),(async()=>{try{s(await e)}catch(e){c(e)}})()})),c=s.finally((()=>{c.clear()}));return c.clear=()=>{r.clearTimeout.call(void 0,o),o=void 0},c}(Promise.resolve(a),{milliseconds:t.timeout})),t.signal&&(a=Promise.race([a,this.#C(t.signal)]));const i=await a;n(i),this.emit("completed",i)}catch(e){if(e instanceof m_&&!t.throwOnTimeout)return void n();a(e),this.emit("error",e)}finally{this.#f()}}),t),this.emit("add"),this.#_()}))}async addAll(e,t){return Promise.all(e.map((async e=>this.add(e,t))))}start(){return this.#h?(this.#h=!1,this.#x(),this):this}pause(){this.#h=!0}clear(){this.#e=new this.#l}async onEmpty(){0!==this.#e.size&&await this.#M("empty")}async onSizeLessThan(e){this.#e.sizethis.#e.size{const a=()=>{t&&!t()||(this.off(e,a),n())};this.on(e,a)}))}get size(){return this.#e.size}sizeBy(e){return this.#e.filter(e).length}get pending(){return this.#d}get isPaused(){return this.#h}}var b_={frigate_card:"Frigate card",frigate_card_description:"A Lovelace card for use with Frigate",live:"Live",no_media:"No media to display",recordings:"Recordings",version:"Version"},w_={cameras:{camera_entity:"Camera Entity",capabilities:{capabilities:{clips:"Clips","favorite-events":"Favorite Events","favorite-recordings":"Favorite Recordings",live:"Live",menu:"Menu",ptz:"PTZ",recordings:"Recordings",seek:"Seeking",snapshots:"Snapshots",substream:"Substream"},disable:"Disable",disable_except:"Disable except",editor_label:"Camera capabilities"},cast:{dashboard:{dashboard_path:"Dashboard path",view_path:"View path"},editor_label:"Cast options",method:"Cast method",methods:{dashboard:"Dashboard",standard:"Standard"}},dependencies:{all_cameras:"Show events for all cameras with this camera",cameras:"Show events for specific cameras with this camera",editor_label:"Dependency options"},dimensions:{aspect_ratio:"Static aspect ratio",editor_label:"Camera dimensions",layout:{editor_label:"Camera Layout",fit:"Layout fit",fits:{contain:"Media is contained/letterboxed",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",y:"Vertical placement percentage"},view_box:{bottom:"Bottom inset percentage",editor_label:"Layout View Box",left:"Left inset percentage",right:"Right inset percentage",top:"Top inset percentage"},zoom:"Zoom factor"}},engines:{editor_label:"Camera engine options"},frigate:{camera_name:"Frigate camera name (Autodetected from entity)",client_id:"Frigate client id (For >1 Frigate server)",editor_label:"Frigate options",labels:"Frigate labels/object filters",url:"Frigate server URL",zones:"Frigate zones"},go2rtc:{editor_label:"go2rtc Options",modes:{editor_label:"go2rtc Modes",mjpeg:"Motion JPEG (MJPEG)",mp4:"MPEG-4 (MP4)",mse:"Media Source Extensions (MSE)",webrtc:"Web Real-Time Communication (WebRTC)"},stream:"go2rtc stream name"},icon:"Icon for this camera (Autodetected from entity)",id:"Unique id for this camera in this card",image:{editor_label:"Image Options",refresh_seconds:"Number of seconds after which to refresh live image (0=never)",url:"Image URL to use instead of camera entity snapshot"},live_provider:"Live view provider for this camera",live_provider_options:{editor_label:"Live provider options"},live_providers:{auto:"Automatic",go2rtc:"go2rtc",ha:"Home Assistant video stream (i.e. HLS, LL-HLS, WebRTC via HA)",image:"Home Assistant images",jsmpeg:"JSMpeg","webrtc-card":"WebRTC Card (i.e. AlexxIT's WebRTC Card)"},motioneye:{editor_label:"MotionEye options",images:{directory_pattern:"Images directory pattern",file_pattern:"Images file pattern"},movies:{directory_pattern:"Movies directory pattern",file_pattern:"Movies file pattern"},url:"MotionEye UI URL"},proxy:{dynamic:"Dynamic proxying",editor_label:"Camera proxying",media:{auto:"Media proxying automatically configured",editor_label:"Media proxying",false:"Media proxying disabled",true:"Media proxying enabled"},ssl_ciphers:{auto:"SSL ciphers automatically configured",default:"Default SSL ciphers",editor_label:"SSL ciphers",insecure:"Insecure SSL ciphers",intermediate:"Intermediate SSL ciphers",modern:"Modern SSL ciphers"},ssl_verification:{auto:"SSL verification automatically configured",editor_label:"SSL verification",false:"SSL verification disabled",true:"SSL verification enabled"}},reolink:{editor_label:"Reolink options",media_resolution:{editor_label:"Media Resolution",high:"High Resolution",low:"Low Resolution"},url:"Reolink UI URL"},title:"Title for this camera (Autodetected from entity)",triggers:{editor_label:"Trigger options",entities:"Trigger from other entities",events:{clips:"Events with new clips",editor_label:"Trigger Events",events:"All events",snapshots:"Events with new snapshots"},motion:"Trigger by auto-detecting the motion sensor",occupancy:"Trigger by auto-detecting the occupancy sensor"},webrtc_card:{editor_label:"WebRTC Card Options",entity:"WebRTC Card Camera Entity (Not a Frigate camera)",url:"WebRTC Card Camera URL"}},common:{controls:{builtin:"Built-in video controls",filter:{editor_label:"Media Filter",mode:"Filter mode",modes:{left:"Media filter in a drawer to the left",none:"No media filter",right:"Media filter in a drawer to the right"}},next_previous:{editor_label:"Next & Previous",size:"Next & previous control size in pixels",style:"Next & previous control style",styles:{chevrons:"Chevrons",icons:"Icons",none:"None",thumbnails:"Thumbnails"}},thumbnails:{editor_label:"Thumbnails",events_media_type:"Whether to show event thumbnails of clips or snapshots",events_media_types:{clips:"Clip thumbnails",snapshots:"Snapshot thumbnails"},media_type:"Whether to show thumnails of events or recordings",media_types:{events:"Events",recordings:"Recordings"},mode:"Thumbnails mode",modes:{above:"Thumbnails above",below:"Thumbnails below",left:"Thumbnails in a drawer to the left",none:"No thumbnails",right:"Thumbnails in a drawer to the right"},show_details:"Show details with thumbnails",show_download_control:"Show download control on thumbnails",show_favorite_control:"Show favorite control on thumbnails",show_timeline_control:"Show timeline control on thumbnails",size:"Thumbnails size in pixels"},timeline:{editor_label:"Mini Timeline",mode:"Mode",modes:{above:"Above",below:"Below",none:"None"},pan_mode:"Default pan mode",pan_modes:{pan:"Pan",seek:"Pan seeks across all media","seek-in-camera":"Pan seeks within selected camera only","seek-in-media":"Pan seeks within selected media item only"}}},display:{editor_label:"Display",grid_columns:"Exact number of grid columns",grid_max_columns:"Maximum number of grid columns",grid_selected_width_factor:"Increase selected media width by this factor",mode:"Mode"},image:{entity:"Entity for use with entity mode",entity_parameters:"Query parameters added to the entity-based picture URLs (e.g. width=1920&height=1080)",mode:"Image mode",modes:{camera:"Home Assistant camera snapshot of camera entity",entity:"Entity with entity_picture attribute",screensaver:"Embedded Frigate logo",url:"Arbitrary image specified by URL"},refresh_seconds:"Number of seconds after which to refresh (0=never)",url:"Static image URL"},media_action_conditions:{all:"All opportunities",hidden:"On browser/tab hiding",microphone_mute:"On microphone mute",microphone_unmute:"On microphone unmute",never:"Never",selected:"On selection",unselected:"On unselection",visible:"On browser/tab visibility"},timeline:{clustering_threshold:"The count of events at which they are clustered (0=no clustering)",events_media_type:"The events media the timeline displays",events_media_types:{all:"All event media types",clips:"Clips",snapshots:"Snapshots"},show_recordings:"Show recordings",style:"Timeline style",styles:{ribbon:"Events on a single ribbon",stack:"Stacked & clustered events"},window_seconds:"The default length of the timeline view in seconds"}},dimensions:{aspect_ratio:"Default aspect ratio (e.g. '16:9')",aspect_ratio_mode:"Aspect ratio mode",aspect_ratio_modes:{dynamic:"Aspect ratio adjusts to media",static:"Static aspect ratio",unconstrained:"Unconstrained aspect ratio"},height:"Card height in CSS units (e.g. '500px')"},live:{auto_mute:"Automatically mute live cameras",auto_pause:"Automatically pause live cameras",auto_play:"Automatically play live cameras",auto_unmute:"Automatically unmute live cameras",controls:{editor_label:"Live Controls",ptz:{editor_label:"PTZ",hide_home:"Hide home control",hide_pan_tilt:"Hide pan & tilt control",hide_zoom:"Hide zoom control",mode:"Mode",modes:{off:"Off",on:"On"},orientation:"Orientation",orientations:{horizontal:"Horizontal",vertical:"Vertical"},position:"Position",positions:{"bottom-left":"Bottom left","bottom-right":"Bottom right","top-left":"Top left","top-right":"Top right"}}},draggable:"Live cameras view can be dragged/swiped",lazy_load:"Live cameras are lazily loaded",lazy_unload:"Live cameras are lazily unloaded",microphone:{always_connected:"Always keep the microphone connected",disconnect_seconds:"Seconds after which to disconnect microphone (0=never)",editor_label:"Microphone",enabled:"Microphone enabled",mute_after_microphone_mute_seconds:"Seconds after microphone mute to mute inbound audio"},preload:"Preload live view in the background",show_image_during_load:"Show still image while the live stream is loading",transition_effect:"Live camera transition effect",zoomable:"Live cameras can be zoomed/panned"},media_viewer:{auto_mute:"Automatically mute media",auto_pause:"Automatically pause media",auto_play:"Automatically play media",auto_unmute:"Automatically unmute media",controls:{editor_label:"Media Viewer Controls"},draggable:"Media Viewer can be dragged/swiped",lazy_load:"Media Viewer media is lazily loaded in carousel",snapshot_click_plays_clip:"Clicking on a snapshot plays a related clip",transition_effect:"Media Viewer transition effect",transition_effects:{none:"No transition",slide:"Slide transition"},zoomable:"Media Viewer can be zoomed/panned"},menu:{alignment:"Menu alignment",alignments:{bottom:"Aligned to the bottom",left:"Aligned to the left",right:"Aligned to the right",top:"Aligned to the top"},button_size:"Menu button size in pixels",buttons:{alignment:"Button alignment",alignments:{matching:"Matching the menu alignment",opposing:"Opposing the menu alignment"},camera_ui:"Camera user interface",cameras:"Cameras",clips:"Clips",display_mode:"Display mode",download:"Download",enabled:"Button enabled",expand:"Expand",frigate:"Frigate menu / Default view",fullscreen:"Fullscreen",icon:"Icon",image:"Image",live:"Live",media_player:"Send to media player",microphone:"Microphone",mute:"Mute / Unmute",permanent:"Show when the menu is hidden",play:"Play / Pause",priority:"Priority",ptz_controls:"Show PTZ controls",ptz_home:"PTZ Home",recordings:"Recordings",screenshot:"Screenshot",snapshots:"Snapshots",substreams:"Substream(s)",timeline:"Timeline",type:"Button type",types:{momentary:"Momentary",toggle:"Toggle"}},position:"Menu position",positions:{bottom:"Positioned on the bottom",left:"Positioned on the left",right:"Positioned on the right",top:"Positioned on the top"},style:"Menu style",styles:{hidden:"Hidden menu",hover:"Hover menu","hover-card":"Hover menu (card-wide)",none:"No menu",outside:"Outside menu",overlay:"Overlay menu"}},overrides:{info:"This card configuration has manually specified overrides configured which may override values shown in the visual editor, please consult the code editor to view/modify these overrides"},performance:{features:{animated_progress_indicator:"Animated Progress Indicator",editor_label:"Feature Options",max_simultaneous_engine_requests:"Max simultaneous camera engine requests",media_chunk_size:"Media chunk size"},style:{border_radius:"Curves",box_shadow:"Shadows",editor_label:"Style Options"},warning:"This card is in low profile mode so defaults have changed to optimize performance"},profiles:{casting:"Casting",editor_label:"Configuration profiles","low-performance":"Low performance",scrubbing:"Video scrubbing"},status_bar:{height:"Status bar height in pixels",items:{enabled:"Item enabled",engine:"Camera engine",live_provider:"Live provider",priority:"Item priority",resolution:"Resolution",technology:"Technology",title:"Title"},popup_seconds:"Status bar popup seconds",position:"Status bar position",positions:{bottom:"Positioned on the bottom",top:"Positioned on the top"},style:"Status bar style",styles:{hover:"Hover status bar","hover-card":"Hover status bar (card-wide)",none:"No status bar",outside:"Outside status bar",overlay:"Overlay status bar",popup:"Popup status bar"}},view:{camera_select:"View for newly selected cameras",dark_mode:"Dark mode",dark_modes:{auto:"Auto",off:"Off",on:"On"},default:"Default view",default_cycle_camera:"Cycle through cameras when default view updates",default_reset:{after_interaction:"Reset to the default view after user interaction ends",editor_label:"Default view reset behavior",entities:"Reset to the default view on entity state change",every_seconds:"Reset to default view every X seconds (0=never)",interaction_mode:"How default reset behaves when the card has human interaction",interaction_modes:{active:"Only allow reset when card has active human interaction",all:"Reset regardless of human interaction",inactive:"Only reset when card has no human interaction"}},interaction_seconds:"Seconds after user action to remain interacted with (0=never)",keyboard_shortcuts:{editor_label:"Keyboard shortcuts",enabled:"Keyboard shortcuts enabled",ptz_down:"PTZ Down",ptz_home:"PTZ Home",ptz_left:"PTZ Left",ptz_right:"PTZ Right",ptz_up:"PTZ Up",ptz_zoom_in:"PTZ Zoom In",ptz_zoom_out:"PTZ Zoom Out"},triggers:{actions:{editor_label:"Trigger actions",interaction_mode:"How to handle actions when the card has human interaction",interaction_modes:{active:"Only trigger actions when card has human interaction",all:"Trigger actions regardless of human interaction",inactive:"Only trigger actions when card has no human interaction"},trigger:"Trigger action",triggers:{default:"Change to or update default view",live:"Change to or update live view",media:"Change to the relevant media view for new media",none:"No action"},untrigger:"Untrigger action",untriggers:{default:"Change to default view/camera",none:"No action"}},editor_label:"Trigger behavior",filter_selected_camera:"Only trigger on selected camera",show_trigger_status:"Show pulsing border when triggered",untrigger_seconds:"Seconds after inactive state change to untrigger"},views:{clip:"Most recent clip",clips:"Clips gallery",current:"Current view",image:"Static image",live:"Live view",recording:"Most recent recording",recordings:"Recordings gallery",snapshot:"Most recent snapshot",snapshots:"Snapshots gallery",timeline:"Timeline view"}}},x_={grid:"Show media viewer for each camera in a grid",single:"Show single media viewer"},C_={add_new_camera:"Add new camera",button:"Button",camera:"Camera",cameras:"Cameras",cameras_secondary:"What cameras to render on this card",delete:"Delete",dimensions:"Card dimensions",dimensions_secondary:"Card dimensions & shape options",image:"Image",image_secondary:"Static image view options",live:"Live",live_secondary:"Live camera view options",media_gallery:"Media gallery",media_gallery_secondary:"Media gallery options",media_viewer:"Media viewer",media_viewer_secondary:"Viewer for static media (clips, snapshots or recordings)",menu:"Menu",menu_secondary:"Menu look & feel options",move_down:"Move down",move_up:"Move up",overrides:"Overrides are active",overrides_secondary:"Dynamic configuration overrides detected",performance:"Performance",performance_secondary:"Card performance options",profiles:"Configuration profiles",profiles_secondary:"Choose pre-configured sets of defaults",status_bar:"Status bar",status_bar_secondary:"Status bar look & feel options",timeline:"Timeline",timeline_secondary:"Event timeline options",upgrade:"Upgrade",upgrade_available:"An automatic card configuration upgrade is available",view:"View",view_secondary:"What the card should show and how to show it"},M_={ptz:{down:"Down",home:"Home",left:"Left",right:"Right",up:"Up",zoom_in:"Zoom In",zoom_out:"Zoom Out"}},k_={awaiting_live:"Waiting for live stream to load ...",awaiting_media:"Waiting for media to load",camera_initialization:"Camera initialization failed",camera_initialization_reolink:"Could not initialize Reolink camera",could_not_render_elements:"Could not render picture elements",could_not_resolve:"Could not resolve media URL",diagnostics:"Card diagnostics. Please review for confidential information prior to sharing",download_no_media:"No media to download",download_sign_failed:"Could not sign media URL for download",duplicate_camera_id:"Duplicate Frigate camera id for the following camera, use the 'id' parameter to uniquely identify cameras",empty_response:"Received empty response from Home Assistant for request",failed_response:"Failed to receive response from Home Assistant for request",failed_retain:"Could not retain event",failed_sign:"Could not sign Home Assistant URL",image_load_error:"The image could not be loaded",invalid_configuration:"Invalid configuration",invalid_configuration_no_hint:"No location hint available (bad or missing type?)",invalid_configuration_override:"Invalid override configuration",invalid_elements_config:"Invalid picture elements configuration",invalid_response:"Received invalid response from Home Assistant for request",jsmpeg_no_player:"Could not start JSMPEG player",live_camera_no_endpoint:"Could not get camera endpoint for this live provider (incomplete configuration?)",live_camera_not_found:"The configured camera_entity was not found",live_camera_unavailable:"Camera unavailable",no_camera_engine:"Could not determine suitable engine for camera",no_camera_entity:"Could not find camera entity",no_camera_entity_for_triggers:"A camera entity is required in order to autodetect triggers",no_camera_id:"Could not determine camera id for the following camera, may need to set 'id' parameter manually",no_camera_name:"Could not determine a Frigate camera name for camera (or one of its dependents), please specify either 'camera_entity' or 'camera_name'",no_dashboard_or_view:"Both 'dashboard_path' and 'view_path' parameters are required for the 'dashboard' cast method",no_live_camera:"The camera_entity parameter must be set and valid for this live provider",no_supported_camera:"The selected camera does not support this view",no_supported_cameras:"No cameras support this view",reconnecting:"Reconnecting",too_many_automations:"Too many nested automation calls, please check your configuration for loops",troubleshooting:"Check troubleshooting",unknown:"Unknown error",upgrade_available:"An automated card configuration upgrade is available, please visit the visual card editor",webrtc_card_reported_error:"WebRTC Card reported an error",webrtc_card_waiting:"Waiting for WebRTC Card to load ..."},S_={camera:"Camera",duration:"Duration",in_progress:"In Progress",score:"Score",seek:"Seek",start:"Start",tag:"Tag",what:"What",where:"Where"},E_={assign:"Assign",assigning:"Assigning",modifiers:{alt:"Alt",ctrl:"Ctrl",meta:"Meta",shift:"Shift"},unassign:"Unassign"},$_={all:"All",camera:"Camera",favorite:"Favorite",media_type:"Media Type",media_types:{clips:"Clips",recordings:"Recordings",snapshots:"Snapshots"},not_favorite:"Not Favorite",select_camera:"Select camera...",select_favorite:"Select favorite...",select_media_type:"Select media type...",select_tag:"Select tag...",select_what:"Select what...",select_when:"Select when...",select_where:"Select where...",tag:"Tag",what:"What",when:"When",whens:{custom:"Custom",past_month:"Past Month",past_week:"Past Week",today:"Today",yesterday:"Yesterday"},where:"Where"},A_={unseekable:"Seek time not found in media"},I_={camera:"Camera",duration:"Duration",events:"Events",in_progress:"In Progress",seek:"Seek",start:"Start"},z_={download:"Download media",no_thumbnail:"No thumbnail available",retain_indefinitely:"Media will be indefinitely retained",timeline:"See media in timeline"},T_={select_date:"Choose date"},j_={common:b_,config:w_,display_modes:x_,editor:C_,elements:M_,error:k_,event:S_,key_assigner:E_,media_filter:$_,media_viewer:A_,recording:I_,thumbnail:z_,timeline:T_},O_=Object.freeze({__proto__:null,common:b_,config:w_,default:j_,display_modes:x_,editor:C_,elements:M_,error:k_,event:S_,key_assigner:E_,media_filter:$_,media_viewer:A_,recording:I_,thumbnail:z_,timeline:T_});const D_="en",R_={[D_]:O_};let P_;function L_(e){const t=e=>e.replace("-","_"),n=e?.language??e?.selectedLanguage;if(n)return t(n);const a=localStorage.getItem("selectedLanguage");if(a){const e=JSON.parse(a);if(e)return t(e)}for(const e of navigator.languages){const n=t(e);if(n&&n in R_)return n}return D_}function N_(e,t="",n=""){let a="";try{a=e.split(".").reduce(((e,t)=>e[t]),R_[P_??D_])}catch(e){}return a||(a=e.split(".").reduce(((e,t)=>e[t]),R_[D_])),""!==t&&""!==n&&(a=a.replace(t,n)),a}function F_(e){return"string"==typeof e?.id&&e.id||"string"==typeof e?.camera_entity&&e.camera_entity||"object"==typeof e?.webrtc_card&&e.webrtc_card&&("string"==typeof e.webrtc_card.entity&&e.webrtc_card.entity||"string"==typeof e.webrtc_card.url&&e.webrtc_card.url)||"object"==typeof e?.go2rtc&&e.go2rtc&&"string"==typeof e.go2rtc.url&&"string"==typeof e.go2rtc.stream&&`${e.go2rtc.url}#${e.go2rtc.stream}`||"object"==typeof e?.frigate&&e.frigate&&"string"==typeof e?.frigate.camera_name&&e.frigate.camera_name||""}const V_=(e,...t)=>{e?.debug?.logging&&console.debug(...t)},H_=(e,t,n)=>"preset"===t?(n?.preset?e.ptz.presets?.[n.preset]:null)??null:n?.phase?e.ptz[`actions_${t}_${n.phase}`]??null:e.ptz[`actions_${t}`]??null,B_=(e,t,n)=>!!H_(e,t,n),q_=(e,t)=>{const n=B_(e,t,{phase:"start"})&&B_(e,t,{phase:"stop"}),a=B_(e,t);return n||a?[...n?["continuous"]:[],...a?["relative"]:[]]:null},U_=e=>{const t=q_(e,"left"),n=q_(e,"right"),a=q_(e,"up"),i=q_(e,"down"),r=q_(e,"zoom_in"),o=q_(e,"zoom_out"),s=e.ptz.presets?Object.keys(e.ptz.presets):void 0;return t?.length||n?.length||a?.length||i?.length||r?.length||o?.length||s?.length?{...t?{left:t}:{},...n?{right:n}:{},...a?{up:a}:{},...i?{down:i}:{},...r?{zoomIn:r}:{},...o?{zoomOut:o}:{},...s?{presets:s}:{}}:null};class W_{constructor(e,t){this._capabilities=e;for(const e of t?.disable??[])this._disable(e);for(const e of Is)t?.disableExcept?.length&&!t.disableExcept.includes(e)&&this._disable(e)}_disable(e){delete this._capabilities[e]}matches(e){let t=!0;return"string"==typeof e&&(t&&=this.has(e)),"object"==typeof e&&e.allCapabilities&&(t&&=e.allCapabilities.every((e=>this.has(e)))),"object"==typeof e&&e.anyCapabilities&&(t&&=e.anyCapabilities.some((e=>this.has(e)))),t}has(e){return!!this._capabilities[e]}getPTZCapabilities(){return this._capabilities.ptz??null}hasPTZCapability(){return!!(this._capabilities.ptz?.down?.length||this._capabilities.ptz?.up?.length||this._capabilities.ptz?.left?.length||this._capabilities.ptz?.right?.length||this._capabilities.ptz?.zoomIn?.length||this._capabilities.ptz?.zoomOut?.length||this._capabilities.ptz?.presets?.length)}getRawCapabilities(){return this._capabilities}}function Z_(e,t,n){var a=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var r=Array(i);++at||r&&o&&c&&!s&&!l||a&&o&&c||!n&&c||!i)return 1;if(!a&&!r&&!l&&e=s?c:c*("desc"==n[a]?-1:1)}return e.index-t.index}(e,t,n)}))}function ky(e,t,n,a){return null==e?[]:(cp(t)||(t=null==t?[]:[t]),cp(n=a?void 0:n)||(n=null==n?[]:[n]),My(e,t,n))}async function Sy(e,t,n,a=!1){let i;try{i=await e.callWS(n)}catch(e){if(!(e instanceof Error))throw new $s(N_("error.failed_response"),{request:n,response:e});throw e}if(!i)throw new $s(N_("error.empty_response"),{request:n});const r=a?t.safeParse(JSON.parse(i)):t.safeParse(i);if(!r.success)throw new $s(N_("error.invalid_response"),{request:n,response:i,invalid_keys:Os(r.error)});return r.data}const Ey=ba.lazy((()=>ba.object({title:ba.string(),media_class:ba.string(),media_content_type:ba.string(),media_content_id:ba.string(),can_play:ba.boolean(),can_expand:ba.boolean(),children_media_class:ba.string().nullable().optional(),thumbnail:ba.string().nullable(),children:ba.array(Ey).nullable().optional()}))),$y="video",Ay="image",Iy=60,zy=e=>ky(e,(e=>e._metadata?.startDate),"desc");class Ty{async walkBrowseMedias(e,t,n){return t&&t.length?(await Jg(t,(async t=>await this._walkBrowseMedia(e,t,n)))).flat():[]}async _walkBrowseMedia(e,t,n){let a=[];for(const i of function(e,t,n){t=(n?cg(e,t,n):void 0===t)?1:G_(Mg(t),0);var a=null==e?0:e.length;if(!a||t<1)return[];for(var i=0,r=0,o=Array(Q_(a/t));iawait this._browseMedia(e,a,{cache:n?.cache,metadataGenerator:t.metadataGenerator})));for(const e of r)for(const n of e.children??[])t.matcher(n)&&a.push(n);if(t.sorter&&(a=t.sorter(a)),t.earlyExit&&t.earlyExit(a))break}const i=t.advance?t.advance(a):null;return i?.length?await this.walkBrowseMedias(e,i,n):a}async _browseMedia(e,t,n){const a="object"==typeof t?t.media_content_id:t,i=n?.cache?n.cache.get(a):null;if(i)return i;const r={type:"media_source/browse_media",media_content_id:a},o=await Sy(e,Ey,r);if(n?.metadataGenerator)for(const e of o.children??[])e._metadata=n.metadataGenerator(e,"object"==typeof t?t:void 0)??void 0;return n?.cache&&n.cache.set(a,o,Bd(new Date,{seconds:60})),o}}function jy(e,t){return ym(e,t)}function Oy(e,t){return e&&e.length?function(e,t){for(var n=-1,a=e.length,i=0,r=[];++nPy(t,e)))}add(e){this._ranges.push(e),this._ranges=Ny(this._ranges)}clear(){this._ranges=[]}}class Ry{constructor(e){this._ranges=e??[]}hasCoverage(e){const t=new Date;return this._ranges.some((n=>tet.start>=e.start&&t.end<=e.end,Ly=(e,t)=>e.start>=t.start&&e.start<=t.end||e.end>=t.start&&e.end<=t.end||e.start<=t.start&&e.end>=t.end,Ny=(e,t=0)=>{const n=[];e=ky(e,(e=>e.start),"asc");let a=null;for(const i of e){const e=i.start instanceof Date?i.start.getTime():i.start;if(!a){a={...i};continue}(a.end instanceof Date?a.end.getTime():a.end)+1e3*t>=e?i.end>a.end&&(a.end=i.end):(n.push(a),a={...i})}return a&&n.push(a),n};class Fy{constructor(){this._data=[]}get(e){const t=new Date;for(const n of this._data)if((!n.expires||t<=n.expires)&&this._contains(e,n.request))return n.response;return null}clear(){this._data=[]}has(e){return!!this.get(e)}set(e,t,n){this._data.push({request:e,response:t,expires:n}),this._expireOldRequests()}_contains(e,t){return jy(e,t)}_expireOldRequests(){const e=new Date;this._data=this._data.filter((t=>!t.expires||e=e.start.getTime()){if(a>e.end.getTime())break;t.push(n)}}return t}getSize(){return this._data.length}expireMatches(e){this._data=this._data.filter((t=>!e(t)))}}class By{constructor(){this._segments=new Map}add(e,t,n){let a=this._segments.get(e);a||(a=new Hy((e=>1e3*e.start_time),(e=>e.id)),this._segments.set(e,a)),a.add(t,n)}clear(){this._segments.clear()}hasCoverage(e,t){return!!this._segments.get(e)?.hasCoverage(t)}get(e,t){return this._segments.get(e)?.get(t)??null}getSize(e){return this._segments.get(e)?.getSize()??null}getCameraIDs(){return[...this._segments.keys()]}expireMatches(e,t){this._segments.get(e)?.expireMatches(t)}}class qy extends $s{}class Uy extends $s{}var Wy,Zy,Qy;!function(e){e.Event="event-query",e.Recording="recording-query",e.RecordingSegments="recording-segments-query",e.MediaMetadata="media-metadata"}(Wy||(Wy={})),function(e){e.Event="event-results",e.Recording="recording-results",e.RecordingSegments="recording-segments-results",e.MediaMetadata="media-metadata-results"}(Zy||(Zy={})),function(e){e.Frigate="frigate",e.Generic="generic",e.MotionEye="motioneye",e.Reolink="reolink"}(Qy||(Qy={}));const Gy=e=>e.camera_entity??e.webrtc_card?.entity??null;class Yy{constructor(e){this._entityRegistryManager=e}async createEngine(e,t){let n;switch(e){case Qy.Generic:const{GenericCameraManagerEngine:e}=await import("./engine-generic-39deaa91.js").then((function(e){return e.e}));n=new e(t.stateWatcher,t.eventCallback);break;case Qy.Frigate:const{FrigateCameraManagerEngine:a}=await import("./engine-frigate-69a32a9e.js");n=new a(this._entityRegistryManager,t.stateWatcher,new By,new Vy,t.eventCallback);break;case Qy.MotionEye:const{MotionEyeCameraManagerEngine:i}=await import("./engine-motioneye-205f9ce6.js");n=new i(this._entityRegistryManager,t.stateWatcher,new Ty,t.resolvedMediaCache,new Vy,t.eventCallback);break;case Qy.Reolink:const{ReolinkCameraManagerEngine:r}=await import("./engine-reolink-0f6e3569.js");n=new r(this._entityRegistryManager,t.stateWatcher,new Ty,t.resolvedMediaCache,new Vy,t.eventCallback)}return n}async getEngineForCamera(e,t){let n=null;if("frigate"===t.engine)n=Qy.Frigate;else if("motioneye"===t.engine)n=Qy.MotionEye;else if("generic"===t.engine)n=Qy.Generic;else if("reolink"===t.engine)n=Qy.Reolink;else{const a=Gy(t);if(a){const i=await this._entityRegistryManager.getEntity(e,a);if(!i){if(e.states[a])return Qy.Generic;throw new qy(N_("error.no_camera_entity"),t)}switch(i?.platform){case"frigate":n=Qy.Frigate;break;case"motioneye":n=Qy.MotionEye;break;case"reolink":n=Qy.Reolink;break;default:n=Qy.Generic}}else t.frigate.camera_name?n=Qy.Frigate:(t.webrtc_card?.url||t.go2rtc?.url&&t.go2rtc?.stream)&&(n=Qy.Generic)}return n}}class Ky{constructor(){this._cameras=new Map,this._enginesByType=new Map}addCamera(e){this._cameras.set(e.getID(),e),this._enginesByType.set(e.getEngine().getEngineType(),e.getEngine())}async setCameras(e){for(const t of e){const e=this._cameras.get(t.getID());e!==t&&(this.addCamera(t),await(e?.destroy()))}for(const t of this._cameras.values())e.includes(t)||(await t.destroy(),this._cameras.delete(t.getID()))}async reset(){await Jg(this._cameras.values(),(e=>e.destroy())),this._cameras.clear(),this._enginesByType.clear()}getCamera(e){return this._cameras.get(e)??null}getCameras(){return this._cameras}getCameraConfig(e){return this._cameras.get(e)?.getConfig()??null}hasCameraID(e){return this._cameras.has(e)}getCameraCount(){return this._cameras.size}getDefaultCameraID(){return this._cameras.keys().next().value??null}*getCameraConfigs(e){for(const[t,n]of this.getCameraConfigEntries(e))yield n}*getCameraConfigEntries(e){for(const t of e??this._cameras.keys()){const e=this.getCameraConfig(t);e&&(yield[t,e])}}getCameraIDs(){return new Set(this._cameras.keys())}getCameraIDsWithCapability(e){const t=new Set;for(const n of this._cameras.values())n.getCapabilities()?.matches(e)&&t.add(n.getID());return t}getCameraConfigForMedia(e){return this.getCameraConfig(e.getCameraID())}getEngineOfType(e){return this._enginesByType.get(e)??null}getEngineForCameraID(e){return this._cameras.get(e)?.getEngine()??null}getEnginesForCameraIDs(e){const t=new Map;for(const n of e){const e=this.getEngineForCameraID(n);e&&(t.has(e)||t.set(e,new Set),t.get(e)?.add(n))}return t.size?t:null}getEngineForMedia(e){return this.getEngineForCameraID(e.getCameraID())}getAllDependentCameras(e,t){const n=new Set,a=new Set,i=e=>{n.add(e);const r=this.getCamera(e),o=r?.getConfig();if(r&&o){t&&!r.getCapabilities()?.matches(t)||a.add(e);const s=new Set;o.dependencies.cameras.forEach((e=>s.add(e))),o.dependencies.all_cameras&&this.getCameraIDs().forEach((e=>s.add(e)));for(const e of s)n.has(e)||i(e)}};return i(e),a}}const Xy=e=>{return ky((n=e=>e.getID()??e,(t=e)&&t.length?Fg(t,by(n)):[]),(e=>e.getStartTime()??e.getID()),"asc");var t,n};class Jy{static isEventQuery(e){return e.type===Wy.Event}static isRecordingQuery(e){return e.type===Wy.Recording}static isRecordingSegmentsQuery(e){return e.type===Wy.RecordingSegments}static isMediaMetadataQuery(e){return e.type===Wy.MediaMetadata}}class ev{static isEventQueryResult(e){return e.type===Zy.Event}static isRecordingQueryResult(e){return e.type===Zy.Recording}static isRecordingSegmentsQueryResult(e){return e.type===Zy.RecordingSegments}static isMediaMetadataQueryResult(e){return e.type===Zy.MediaMetadata}}class tv{constructor(e,t){this._requestLimit=new v_,this._api=e,this._engineFactory=t?.factory??new Yy(this._api.getEntityRegistryManager()),this._store=t?.store??new Ky}async initializeCamerasFromConfig(){const e=this._api.getConfigManager().getConfig(),t=this._api.getHASSManager().getHASS();if(!e||!t)return!1;this._requestLimit.concurrency=e.performance.features.max_simultaneous_engine_requests??1/0;const n=e.cameras.map((t=>{return n={},a=l_(e?.cameras_global),dg(n,a,t,((e,t)=>Array.isArray(t)?t:void 0));var n,a}));try{await this._initializeCameras(n)}catch(e){return this._api.getMessageManager().setErrorIfHigherPriority(e,N_("error.camera_initialization")),!1}return!0}async reset(){await this._store.reset()}async _getEnginesForCameras(e){const t=new Map,n=new Map,a=this._api.getHASSManager().getHASS(); +/* istanbul ignore if: the if path cannot be reached -- @preserve */ +if(!a)return t;const i=await(async e=>await Jg(e,(e=>this._engineFactory.getEngineForCamera(a,e))))(e);for(const[a,r]of e.entries()){const e=i[a],o=e?n.get(e)??await this._engineFactory.createEngine(e,{eventCallback:e=>this._api.getTriggersManager().handleCameraEvent(e),stateWatcher:this._api.getHASSManager().getStateWatcher(),resolvedMediaCache:this._api.getResolvedMediaCache()}):null;if(!o||!e)throw new qy(N_("error.no_camera_engine"),l_(r));n.set(e,o),t.set(r,o)}return t}async _initializeCameras(e){const t=new Date,n=this._api.getHASSManager().getHASS(); +/* istanbul ignore if: the if path cannot be reached -- @preserve */ +if(!n)return;e.some((e=>(e=>e.triggers.motion||e.triggers.occupancy)(e)))&&await this._api.getEntityRegistryManager().fetchEntityList(n);const a=await this._getEnginesForCameras(e),i=await Jg(a.entries(),(async([e,t])=>await t.createCamera(n,e))),r=async()=>{i.forEach((e=>e.destroy()))},o=new Set;for(const e of i){const t=F_(e.getConfig());if(!t)throw await r(),new qy(N_("error.no_camera_id"),e.getConfig());if(o.has(t))throw await r(),new qy(N_("error.duplicate_camera_id"),e.getConfig());e.setID(t),o.add(t)}await this._store.setCameras(i),V_(this._api.getConfigManager().getCardWideConfig(),"Frigate Card CameraManager initialized (Cameras: ",this._store.getCameras(),`, Duration: ${((new Date).getTime()-t.getTime())/1e3}s,`,")")}isInitialized(){return this._store.getCameraCount()>0}getStore(){return this._store}generateDefaultEventQueries(e,t){return this._generateDefaultQueries(e,{type:Wy.Event,...t})}generateDefaultRecordingQueries(e,t){return this._generateDefaultQueries(e,{type:Wy.Recording,...t})}generateDefaultRecordingSegmentsQueries(e,t){return this._generateDefaultQueries(e,{type:Wy.RecordingSegments,...t})}_generateDefaultQueries(e,t){const n=[],a=Ug(e),i=this._store.getEnginesForCameraIDs(a);if(!i)return null;for(const[e,a]of i){let i=null; +/* istanbul ignore else: the else path cannot be reached -- @preserve */Jy.isEventQuery(t)?i=e.generateDefaultEventQuery(this._store,a,t):Jy.isRecordingQuery(t)?i=e.generateDefaultRecordingQuery(this._store,a,t):Jy.isRecordingSegmentsQuery(t)&&(i=e.generateDefaultRecordingSegmentsQuery(this._store,a,t));for(const e of i??[])n.push(e)}return n.length?n:null}async getMediaMetadata(){const e=new Set,t=new Set,n=new Set,a=new Set,i={type:Wy.MediaMetadata,cameraIDs:this._store.getCameraIDs()},r=await this._handleQuery(i);for(const i of r.values())i.metadata.tags&&i.metadata.tags.forEach(e.add,e),i.metadata.what&&i.metadata.what.forEach(t.add,t),i.metadata.where&&i.metadata.where.forEach(n.add,n),i.metadata.days&&i.metadata.days.forEach(a.add,a);return t.size||n.size||a.size||e.size?{...e.size&&{tags:e},...t.size&&{what:t},...n.size&&{where:n},...a.size&&{days:a}}:null}async getEvents(e,t){return await this._handleQuery(e,t)}async getRecordings(e,t){return await this._handleQuery(e,t)}async getRecordingSegments(e,t){return await this._handleQuery(e,t)}async executeMediaQueries(e,t){return this._convertQueryResultsToMedia(await this._handleQuery(e,t))}async extendMediaQueries(e,t,n,a){if(!this._api.getHASSManager().getHASS())return null;const i=e=>{let n=null;for(const a of t){const t=a.getStartTime();t&&(!n||"earliest"===e&&tn)&&(n=t)}return n},r=this._api.getConfigManager().getCardWideConfig()?.performance?.features.media_chunk_size??50,o=[],s=[];for(const t of e){const e={...t}; +/* istanbul ignore else: the else path cannot be reached -- @preserve */if("later"===n){const t=i("latest");t&&(e.start=t,delete e.end)}else if("earlier"===n){const t=i("earliest");t&&(e.end=t,delete e.start)}e.limit=r,s.push({...t,limit:(t.limit??0)+r}),o.push(e)}const c=this._convertQueryResultsToMedia(await this._handleQuery(o,a));if(!c.length)return null;const l=Xy(t.concat(c));return l.length===t.length?null:{queries:s,results:l}}async getMediaDownloadPath(e){const t=this._store.getCameraConfigForMedia(e),n=this._store.getEngineForMedia(e),a=this._api.getHASSManager().getHASS();return t&&n&&a?await n.getMediaDownloadPath(a,t,e):null}getMediaCapabilities(e){const t=this._store.getEngineForMedia(e);return t?t.getMediaCapabilities(e):null}async favoriteMedia(e,t){const n=this._store.getCameraConfigForMedia(e),a=this._store.getEngineForMedia(e),i=this._api.getHASSManager().getHASS();if(!n||!a||!i)return;const r=new Date;await this._requestLimit.add((()=>a.favoriteMedia(i,n,e,t))),V_(this._api.getConfigManager().getCardWideConfig(),"Frigate Card CameraManager favorite request (",`Duration: ${((new Date).getTime()-r.getTime())/1e3}s,`,"Media:",e.getID(),", Favorite:",t,")")}areMediaQueriesResultsFresh(e,t){const n=new Date;for(const a of e){const e=this._store.getEnginesForCameraIDs(a.cameraIDs);for(const[i,r]of e??[]){const e=i.getQueryResultMaxAge({...a,cameraIDs:r});if(null!==e&&Bd(t,{seconds:e})a?null:await this._requestLimit.add((()=>i.getMediaSeekTime(r,this._store,e,t)))??null}async _handleQuery(e,t){const n=qg(e),a=new Map,i=new Date,r=this._api.getHASSManager().getHASS();if(!r)return a;const o=async(e,n)=>{let i=null; +/* istanbul ignore else: the else path cannot be reached -- @preserve */Jy.isEventQuery(n)?i=await e.getEvents(r,this._store,n,t):Jy.isRecordingQuery(n)?i=await e.getRecordings(r,this._store,n,t):Jy.isRecordingSegmentsQuery(n)?i=await e.getRecordingSegments(r,this._store,n,t):Jy.isMediaMetadataQuery(n)&&(i=await e.getMediaMetadata(r,this._store,n,t)),i?.forEach(((e,t)=>a.set(t,e)))},s=async e=>{const t=this._store.getEnginesForCameraIDs(e.cameraIDs);t&&await Promise.all(Array.from(t.keys()).map((n=>this._requestLimit.add((()=>o(n,{...e,cameraIDs:t.get(n)}))))))};await Promise.all(n.map((e=>s(e))));const c=(l=Array.from(a.values()).map((e=>Number(e.cached??0))))&&l.length?function(e,t){for(var n,a=-1,i=e.length;++athis._store.getCamera(e))).filter(rf);return new W_({live:t.some((e=>e.getCapabilities()?.has("live"))),clips:t.some((e=>e.getCapabilities()?.has("clips"))),recordings:t.some((e=>e.getCapabilities()?.has("recordings"))),snapshots:t.some((e=>e.getCapabilities()?.has("snapshots"))),"favorite-events":t.some((e=>e.getCapabilities()?.has("favorite-events"))),"favorite-recordings":t.some((e=>e.getCapabilities()?.has("favorite-recordings"))),seek:t.some((e=>e.getCapabilities()?.has("seek"))),menu:t.some((e=>e.getCapabilities()?.has("menu")))})}async executePTZAction(e,t,n){const a=this._store.getCameraConfig(e);if(!a)return;const i=H_(a,t,n);if(i)return await this._api.getActionsManager().executeActions(i);const r=this._api.getHASSManager().getHASS(),o=this._store.getEngineForCameraID(e);return o&&r?await this._requestLimit.add((()=>o.executePTZAction(r,a,t,n))):void 0}}class nv{constructor(e){this._cache=new Map,this._keyCallback=e}has(e){return this._cache.has(e)}getMatches(e){return[...this._cache.values()].filter(e)}get(e){return this._cache.get(e)??null}add(e){const t=e=>this._cache.set(this._keyCallback(e),e);Array.isArray(e)?e.forEach(t):t(e)}}const av=ba.object({id:ba.string(),model:ba.string().nullable(),config_entries:ba.string().array(),manufacturer:ba.string().nullable()}).array();class iv{constructor(e){this._fetchedDeviceList=!1,this._cache=e}async getDevice(e,t){return this._cache.has(t)?this._cache.get(t):(await this._fetchDeviceList(e),this._cache.get(t)??null)}async getMatchingDevices(e,t){return await this._fetchDeviceList(e),this._cache.getMatches(t)}async _fetchDeviceList(e){if(this._fetchedDeviceList)return;let t=null;try{t=await Sy(e,av,{type:"config/device_registry/list"})}catch(e){return void Zg(e)}this._cache.add(t),this._fetchedDeviceList=!0}}const rv=ba.object({config_entry_id:ba.string().nullable(),device_id:ba.string().nullable(),disabled_by:ba.string().nullable(),entity_id:ba.string(),hidden_by:ba.string().nullable(),platform:ba.string(),translation_key:ba.string().nullable(),unique_id:ba.string().or(ba.number()).optional()}),ov=rv.array();class sv{constructor(e){this._fetchedEntityList=!1,this._cache=e}async getEntity(e,t){const n=this._cache.get(t);if(n)return n;let a=null;try{a=await Sy(e,rv,{type:"config/entity_registry/get",entity_id:t})}catch(e){return Zg(e),null}return this._cache.add(a),a}async getMatchingEntities(e,t){return await this.fetchEntityList(e),this._cache.getMatches(t)}async getEntities(e,t){const n=new Map;return await Promise.all(t.map((async t=>{const a=await this.getEntity(e,t);a&&n.set(t,a)}))),n}async fetchEntityList(e){if(this._fetchedEntityList)return;let t=null;try{t=await Sy(e,ov,{type:"config/entity_registry/list"})}catch(e){return void Zg(e)}this._cache.add(t),this._fetchedEntityList=!0}}class cv extends Map{constructor(e={}){if(super(),!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof e.maxAge&&0===e.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=e.maxSize,this.maxAge=e.maxAge||Number.POSITIVE_INFINITY,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(e){if("function"==typeof this.onEviction)for(const[t,n]of e)this.onEviction(t,n.value)}_deleteIfExpired(e,t){return"number"==typeof t.expiry&&t.expiry<=Date.now()&&("function"==typeof this.onEviction&&this.onEviction(e,t.value),this.delete(e))}_getOrDeleteIfExpired(e,t){if(!1===this._deleteIfExpired(e,t))return t.value}_getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.value}_peek(e,t){const n=t.get(e);return this._getItemValue(e,n)}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}*_entriesAscending(){for(const e of this.oldCache){const[t,n]=e;if(!this.cache.has(t)){!1===this._deleteIfExpired(t,n)&&(yield e)}}for(const e of this.cache){const[t,n]=e;!1===this._deleteIfExpired(t,n)&&(yield e)}}get(e){if(this.cache.has(e)){const t=this.cache.get(e);return this._getItemValue(e,t)}if(this.oldCache.has(e)){const t=this.oldCache.get(e);if(!1===this._deleteIfExpired(e,t))return this._moveToRecent(e,t),t.value}}set(e,t,{maxAge:n=this.maxAge}={}){const a="number"==typeof n&&n!==Number.POSITIVE_INFINITY?Date.now()+n:void 0;return this.cache.has(e)?this.cache.set(e,{value:t,expiry:a}):this._set(e,{value:t,expiry:a}),this}has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.get(e)):!!this.oldCache.has(e)&&!this._deleteIfExpired(e,this.oldCache.get(e))}peek(e){return this.cache.has(e)?this._peek(e,this.cache):this.oldCache.has(e)?this._peek(e,this.oldCache):void 0}delete(e){const t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");const t=[...this._entriesAscending()],n=t.length-e;n<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(n>0&&this._emitEvictions(t.slice(0,n)),this.oldCache=new Map(t.slice(n)),this.cache=new Map,this._size=0),this.maxSize=e}*keys(){for(const[e]of this)yield e}*values(){for(const[,e]of this)yield e}*[Symbol.iterator](){for(const e of this.cache){const[t,n]=e;!1===this._deleteIfExpired(t,n)&&(yield[t,n.value])}for(const e of this.oldCache){const[t,n]=e;if(!this.cache.has(t)){!1===this._deleteIfExpired(t,n)&&(yield[t,n.value])}}}*entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;--t){const n=e[t],[a,i]=n;!1===this._deleteIfExpired(a,i)&&(yield[a,i.value])}e=[...this.oldCache];for(let t=e.length-1;t>=0;--t){const n=e[t],[a,i]=n;if(!this.cache.has(a)){!1===this._deleteIfExpired(a,i)&&(yield[a,i.value])}}}*entriesAscending(){for(const[e,t]of this._entriesAscending())yield[e,t.value]}get size(){if(!this._size)return this.oldCache.size;let e=0;for(const t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}entries(){return this.entriesAscending()}forEach(e,t=this){for(const[n,a]of this.entriesAscending())e.call(t,a,n,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}}class lv{constructor(){this._cache=new cv({maxSize:1e3})}has(e){return this._cache.has(e)}get(e){return this._cache.get(e)}set(e,t){this._cache.set(e,t)}}const dv=async(e,t,n)=>{const a=n?n.get(t):void 0;if(a)return a;const i={type:"media_source/resolve_media",media_content_id:t};let r=null;try{r=await Sy(e,zs,i)}catch(e){Zg(e)}return n&&r&&n.set(t,r),r};class uv{constructor(e,t,n){this._context=e,this._action=t,this._config=n}async execute(e){}async stop(){}}class hv extends uv{}class pv extends hv{async execute(e){const t=this._action.camera??(this._action.triggered?e.getTriggersManager().getMostRecentlyTriggeredCameraID():null),n=e.getViewManager().getView(),a=e.getConfigManager().getConfig();if(t&&n){const i=a?.view.camera_select??"current",r="current"===i?n.view:i;await e.getViewManager().setViewByParametersWithNewQuery({params:{view:r,camera:t},failSafe:!0})}}}class mv extends hv{async execute(e){e.getCameraURLManager().openURL()}}class gv extends hv{async execute(e){await e.getViewManager().setViewDefaultWithNewQuery()}}class fv extends hv{async execute(e){await e.getViewManager().setViewByParametersWithNewQuery({params:{displayMode:this._action.display_mode}})}}class _v extends hv{async execute(e){await e.getDownloadManager().downloadViewerMedia()}}class yv extends hv{async execute(e){e.getExpandManager().toggleExpanded()}}class vv extends hv{async execute(e){e.getFullscreenManager().toggleFullscreen()}}class bv extends uv{async execute(e){const t=e.getHASSManager().getHASS();t&&at(e.getCardElementManager().getElement(),t,this._config??{},this._action)}}class wv extends hv{async execute(e){console[this._action.level](this._action.message)}}const xv=(e,t)=>e.context?.live?.overrides?.get(t??e.camera)??t??e.camera,Cv=e=>xv(e)!==e.camera,Mv=(e,t)=>{const n=e.context?.live?.overrides??new Map;n.set(e.camera,t),e.mergeInContext({live:{overrides:n}})};class kv extends hv{async execute(e){const t=this._action.media_player,n=e.getMediaPlayerManager(),a=e.getViewManager().getView(),i=a?.queryResults?.getSelectedResult()??null;"stop"===this._action.media_player_action?await n.stop(t):a?.is("live")?await n.playLive(t,xv(a)):a?.isViewerView()&&i&&await n.playMedia(t,i)}}class Sv extends hv{async execute(e){e.getCardElementManager().toggleMenu()}}class Ev extends hv{async execute(e){await e.getMicrophoneManager().connect()}}class $v extends hv{async execute(e){e.getMicrophoneManager().disconnect()}}class Av extends hv{async execute(e){e.getMicrophoneManager().mute()}}class Iv extends hv{async execute(e){await e.getMicrophoneManager().unmute()}}class zv extends hv{async execute(e){await(e.getMediaLoadedInfoManager().get()?.player?.mute())}}class Tv extends hv{async execute(e){await(e.getMediaLoadedInfoManager().get()?.player?.pause())}}class jv extends hv{async execute(e){await(e.getMediaLoadedInfoManager().get()?.player?.play())}}const Ov=(e,t)=>{if(e.isViewerView()){const n=e.queryResults?.getSelectedResult()?.getID()??null;return"ptz"!==t?.type&&n?{targetID:n,type:"digital"}:null}if(e.is("live")){const n=xv(e);let a="digital";return"digital"!==t?.type&&t?.cameraManager&&(Dv(t.cameraManager,n)&&(a="ptz"),"ptz"!==a&&"ptz"===t?.type)?null:{targetID:n,type:a}}return null},Dv=(e,t)=>!!e.getStore().getCamera(t)?.getCapabilities()?.hasPTZCapability();var Rv=lg((function(e,t,n){Km(e,t,n)}));const Pv=(e,t)=>{t?.[e]?.inProgressAction?.stop()},Lv=(e,t,n,a)=>{Rv(t,{[n]:{[e]:{inProgressAction:a}}})};class Nv extends hv{constructor(){super(...arguments),this._timer=new bf}async stop(){this._timer.stop()}async execute(e){const t=e.getViewManager().getView();if(!t)return;const n=this._action.camera??Ov(t,{type:"ptz",cameraManager:e.getCameraManager()})?.targetID??null,a=n?e.getCameraManager().getCameraCapabilities(n)?.getPTZCapabilities():null,i=n?e.getCameraManager().getStore().getCameraConfig(n)?.ptz:null;if(!n||!a||!i)return;if(!this._action.ptz_action)return void(a.presets&&a.presets.length>=1&&await e.getCameraManager().executePTZAction(n,"preset",{phase:this._action.ptz_phase,preset:a.presets[0]}));const r=(e=>{switch(e){case"left":case"right":case"up":case"down":return e;case"zoom_in":return"zoomIn";case"zoom_out":return"zoomOut"}return null})(this._action.ptz_action);if(r&&a[r]?.includes(this._action.ptz_phase?"continuous":"relative")||"preset"===this._action.ptz_action)return await e.getCameraManager().executePTZAction(n,this._action.ptz_action,{phase:this._action.ptz_phase,preset:this._action.ptz_preset});if("start"===this._action.ptz_phase){Pv(n,this._context.ptz),Lv(n,this._context,"ptz",this);const t=async()=>{this._action.ptz_action&&await e.getCameraManager().executePTZAction(n,this._action.ptz_action,{preset:this._action.ptz_preset}),this._timer.start(i.r2c_delay_between_calls_seconds,t)};await t()}else"stop"===this._action.ptz_phase?Pv(n,this._context.ptz):(await e.getCameraManager().executePTZAction(n,this._action.ptz_action,{preset:this._action.ptz_preset,phase:"start"}),this._timer.start(i.c2r_delay_between_calls_seconds,(async()=>{this._action.ptz_action&&await e.getCameraManager().executePTZAction(n,this._action.ptz_action,{preset:this._action.ptz_preset,phase:"stop"})})))}}class Fv extends hv{async execute(e){e.getViewManager().setViewWithMergedContext({ptzControls:{enabled:this._action.enabled}})}}function Vv(e,t,n){return void 0===n&&(n=t,t=void 0),void 0!==n&&(n=(n=wg(n))==n?n:0),void 0!==t&&(t=(t=wg(t))==t?t:0),function(e,t,n){return e==e&&(void 0!==n&&(e=e<=n?e:n),void 0!==t&&(e=e>=t?e:t)),e}(wg(e),t,n)}const Hv=50,Bv=50,qv=1,Uv=4,Wv=e=>void 0===e?.pan?.x&&void 0===e?.pan?.y&&void 0===e?.zoom;class Zv{constructor(e){this._context=e}modify(e){e.mergeInContext(this._context)}}const Qv=(e,t)=>({zoom:{[e]:{observed:t?.observed??void 0,requested:t?.requested??null}}}),Gv=(e,t,n)=>{t&&n&&t.setViewByParameters({modifiers:[new Zv(Qv(n,{observed:e.detail}))]})};class Yv extends hv{constructor(){super(...arguments),this._timer=new bf}async _stepChange(e,t){e.getViewManager().setViewWithMergedContext(Qv(t,{requested:this._convertActionToZoomSettings(e.getViewManager().getView()?.context?.zoom?.[t]?.observed)}))}async stop(){this._timer.stop()}async execute(e){const t=e.getViewManager().getView();if(!t)return;const n=this._action.target_id??Ov(t,{type:"digital",cameraManager:e.getCameraManager()})?.targetID;return n?this._action.absolute||!this._action.ptz_phase?await this._stepChange(e,n): +/* istanbul ignore else: the else path cannot be reached -- @preserve */ +void("start"===this._action.ptz_phase?(Pv(n,this._context.ptzDigital),Lv(n,this._context,"ptzDigital",this),await this._stepChange(e,n),this._timer.startRepeated(.1,(()=>this._stepChange(e,n)))):"stop"===this._action.ptz_phase&&(Pv(n,this._context.ptzDigital),delete this._context.ptzDigital?.[n])):void 0}_convertActionToZoomSettings(e){if(!this._action.absolute&&!this._action.ptz_action)return{};if(this._action.absolute)return this._action.absolute;const t=e?.zoom??1,n=e?.pan?.x??50,a=e?.pan?.y??50,i="zoom_in"===this._action.ptz_action?.1:"zoom_out"===this._action.ptz_action?-.1:0,r="left"===this._action.ptz_action?-5:"right"===this._action.ptz_action?5:0,o="up"===this._action.ptz_action?-5:"down"===this._action.ptz_action?5:0;return{zoom:Vv(t+i,1,10),pan:{x:Vv(n+r,0,100),y:Vv(a+o,0,100)}}}}class Kv extends hv{async execute(e){const t=e.getViewManager().getView();let n=null,a=null;if(this._action.target_id)n=this._action.target_id,a=Dv(e.getCameraManager(),n)?"ptz":"digital";else if(t){const i=Ov(t,{cameraManager:e.getCameraManager()});n=i?.targetID??null,a=i?.type??null}n&&null!==a&&("ptz"===a?this._toPTZAction(n):this._toPTZDigitalAction(n)).execute(e)}_toPTZAction(e){return new Nv(this._context,(t={cardID:this._action.card_id,cameraID:e,ptzAction:this._action.ptz_action,ptzPhase:this._action.ptz_phase,ptzPreset:this._action.ptz_preset},{action:"fire-dom-event",frigate_card_action:"ptz",...t?.cardID&&{card_id:t.cardID},...t?.ptzAction&&{ptz_action:t.ptzAction},...t?.ptzPhase&&{ptz_phase:t.ptzPhase},...t?.ptzPreset&&{ptz_preset:t.ptzPreset},...t?.cameraID&&{camera:t.cameraID}}),this._config);var t}_toPTZDigitalAction(e){return new Yv(this._context,(t={cardID:this._action.card_id,ptzPhase:this._action.ptz_phase,ptzAction:this._action.ptz_action,targetID:e},{action:"fire-dom-event",frigate_card_action:"ptz_digital",...t?.cardID&&{card_id:t.cardID},...t?.ptzAction&&{ptz_action:t.ptzAction},...t?.ptzPhase&&{ptz_phase:t.ptzPhase},...t?.absolute&&{absolute:t.absolute},...t?.targetID&&{target_id:t.targetID}}),this._config);var t}}class Xv extends hv{async execute(e){await e.getDownloadManager().downloadScreenshot()}}class Jv extends hv{async execute(e){var t;await tf((t=this._action.duration,3600*(t.h??0)+60*(t.m??0)+(t.s??0)+(t.ms??0)/1e3))}}class eb extends hv{async execute(e){switch(this._action.status_bar_action){case"reset":e.getStatusBarItemManager().removeAllDynamicStatusBarItems();break;case"add":this._action.items?.forEach((t=>e.getStatusBarItemManager().addDynamicStatusBarItem(t)));break;case"remove":this._action.items?.forEach((t=>e.getStatusBarItemManager().removeDynamicStatusBarItem(t)))}}}class tb{modify(e){(e=>{const t=e.context?.live?.overrides;t&&t.has(e.camera)&&e.context?.live?.overrides?.delete(e.camera)})(e)}}class nb extends hv{async execute(e){e.getViewManager().setViewByParameters({modifiers:[new tb]})}}class ab{constructor(e){this._api=e}modify(e){const t=[...this._api.getCameraManager().getStore().getAllDependentCameras(e.camera,"substream")];if(t.length<=1)return;const n=xv(e),a=t.indexOf(n),i=a<0?0:(a+1)%t.length;Mv(e,t[i])}}class ib extends hv{async execute(e){e.getViewManager().setViewByParameters({modifiers:[new ab(e)]})}}class rb{constructor(e){this._substreamID=e}modify(e){Mv(e,this._substreamID)}}class ob extends hv{async execute(e){e.getViewManager().setViewByParameters({modifiers:[new rb(this._action.camera)]})}}class sb extends hv{async execute(e){await(e.getMediaLoadedInfoManager().get()?.player?.unmute())}}class cb extends hv{async execute(e){await e.getViewManager().setViewByParametersWithNewQuery({params:{view:this._action.frigate_card_action}})}}class lb{createAction(e,t,n){const a=hf(t);if("fire-dom-event"!==t.action||!a)return new bv(e,t,n?.config);if(a.card_id&&a.card_id!==n?.cardID)return null;switch(a.frigate_card_action){case"default":return new gv(e,a,n?.config);case"clip":case"clips":case"image":case"live":case"recording":case"recordings":case"snapshot":case"snapshots":case"timeline":case"diagnostics":return new cb(e,a,n?.config);case"sleep":return new Jv(e,a,n?.config);case"download":return new _v(e,a,n?.config);case"camera_ui":return new mv(e,a,n?.config);case"expand":return new yv(e,a,n?.config);case"fullscreen":return new vv(e,a,n?.config);case"menu_toggle":return new Sv(e,a,n?.config);case"camera_select":return new pv(e,a,n?.config);case"live_substream_select":return new ob(e,a,n?.config);case"live_substream_off":return new nb(e,a,n?.config);case"live_substream_on":return new ib(e,a,n?.config);case"media_player":return new kv(e,a,n?.config);case"microphone_connect":return new Ev(e,a,n?.config);case"microphone_disconnect":return new $v(e,a,n?.config);case"microphone_mute":return new Av(e,a,n?.config);case"microphone_unmute":return new Iv(e,a,n?.config);case"mute":return new zv(e,a,n?.config);case"unmute":return new sb(e,a,n?.config);case"play":return new jv(e,a,n?.config);case"pause":return new Tv(e,a,n?.config);case"screenshot":return new Xv(e,a,n?.config);case"display_mode_select":return new fv(e,a,n?.config);case"ptz":return new Nv(e,a,n?.config);case"ptz_digital":return new Yv(e,a,n?.config);case"ptz_multi":return new Kv(e,a,n?.config);case"ptz_controls":return new Fv(e,a,n?.config);case"log":return new wv(e,a,n?.config);case"status_bar":return new eb(e,a,n?.config)} +/* istanbul ignore next: this path cannot be reached -- @preserve */ +/* istanbul ignore next: this path cannot be reached -- @preserve */ +return console.warn(`Frigate card received unknown card action: ${a.frigate_card_action}`),null}}class db{constructor(e,t,n){this._actions=[],this._factory=new lb,this._stopped=!1,this._context=e;for(const a of qg(t)){const t=this._factory.createAction(e,a,n);t&&this._actions.push(t)}}async execute(e){for(const t of this._actions){if(this._stopped)break;await t.execute(e)}}async stop(){this._stopped=!0}}const ub=ba.object({action:ba.enum(["tap","double_tap","hold","start_tap","end_tap"])}),hb=ba.object({detail:ub});class pb{constructor(e){this._actionsInFlight=[],this._actionContext={},this.handleInteractionEvent=e=>{const t=hb.safeParse(e);if(!t.success)return;const n=t.data.detail.action,a=this.getMergedActions(),i=_f(n,a);a&&n&&i&&this.executeActions(i,a)},this.handleCustomActionEvent=e=>{"detail"in e&&this.executeActions(e.detail)},this.handleActionExecutionRequestEvent=async e=>{await this.executeActions(e.detail.action,e.detail.config)},this._api=e}getMergedActions(){const e=this._api.getViewManager().getView();if(this._api.getMessageManager().hasMessage())return{};const t=this._api.getConfigManager().getConfig();let n;if(e?.is("live"))n=t?.live.actions;else if(e?.isGalleryView())n=t?.media_gallery?.actions;else if(e?.isViewerView())n=t?.media_viewer.actions;else{if(!e?.is("image"))return{};n=t?.image?.actions}return{...t?.view.actions,...n}}uninitialize(){this._actionsInFlight.forEach((e=>e.stop()))}async executeActions(e,t){const n=new db(this._actionContext,e,{config:t,cardID:this._api.getConfigManager().getConfig()?.card_id});this._actionsInFlight.push(n),await n.execute(this._api),this._actionsInFlight=this._actionsInFlight.filter((e=>e!==n))}}class mb{constructor(e){this._automations=[],this._priorEvaluations=new Map,this._nestedAutomationExecutions=0,this._api=e}deleteAutomations(e){this._automations=this._automations.filter((t=>t.tag!==e))}addAutomations(e){this._automations.push(...e)}execute(){if(!this._api.getHASSManager().hasHASS()||!this._api.getInitializationManager().isInitializedMandatory()||this._api.getMessageManager().hasErrorMessage())return;const e=[];for(const t of this._automations){const n=this._api.getConditionsManager().evaluateConditions(t.conditions),a=n?t.actions:t.actions_not,i=this._priorEvaluations.get(t);this._priorEvaluations.set(t,n),n!==i&&a&&e.push(...a)}if(!e.length)return;(async e=>{++this._nestedAutomationExecutions,this._nestedAutomationExecutions>10?this._api.getMessageManager().setMessageIfHigherPriority({type:"error",message:N_("error.too_many_automations")}):(await this._api.getActionsManager().executeActions(e),--this._nestedAutomationExecutions)})(e)}}class gb{constructor(e){this._api=e}openURL(){const e=this.getCameraURL();e&&window.open(e)}hasCameraURL(){return!!this.getCameraURL()}getCameraURL(){const e=this._api.getViewManager().getView(),t=e?.queryResults?.getSelectedResult()??null,n=e?.camera?this._api.getCameraManager().getCameraEndpoints(e.camera,{view:e.view,...t&&{media:t}})??null:null;return n?.ui?.endpoint??null}}const fb=()=>!!navigator.userAgent.match(/CrKey\//),_b=(e,t)=>!!((e.attributes.supported_features??0)&t),yb=e=>(e=>_b(e,4)&&"number"==typeof e.attributes.in_progress)(e)||!!e.attributes.in_progress,vb=e=>{switch(e){case"armed_away":return"mdi:shield-lock";case"armed_vacation":return"mdi:shield-airplane";case"armed_home":return"mdi:shield-home";case"armed_night":return"mdi:shield-moon";case"armed_custom_bypass":return"mdi:security";case"pending":case"arming":return"mdi:shield-sync";case"triggered":return"mdi:bell-ring";case"disarmed":return"mdi:shield-off";default:return"mdi:shield"}},bb=(e,t)=>{const n="off"===e;switch(t?.attributes.device_class){case"battery":return n?"mdi:battery":"mdi:battery-outline";case"battery_charging":return n?"mdi:battery":"mdi:battery-charging";case"cold":return n?"mdi:thermometer":"mdi:snowflake";case"connectivity":return n?"mdi:close-network-outline":"mdi:check-network-outline";case"door":return n?"mdi:door-closed":"mdi:door-open";case"garage_door":return n?"mdi:garage":"mdi:garage-open";case"power":case"plug":return n?"mdi:power-plug-off":"mdi:power-plug";case"gas":case"problem":case"safety":case"tamper":return n?"mdi:check-circle":"mdi:alert-circle";case"smoke":return n?"mdi:check-circle":"mdi:smoke";case"heat":return n?"mdi:thermometer":"mdi:fire";case"light":return n?"mdi:brightness5":"mdi:brightness-7";case"lock":return n?"mdi:lock":"mdi:lock-open";case"moisture":return n?"mdi:water-off":"mdi:water";case"motion":return n?"mdi:motion-sensor-off":"mdi:motion-sensor";case"occupancy":case"presence":return n?"mdi:home-outline":"mdi:home";case"opening":return n?"mdi:square":"mdi:square-outline";case"running":return n?"mdi:stop":"mdi:play";case"sound":return n?"mdi:music-note-off":"mdi:music-note";case"update":return n?"mdi:package":"mdi:package-up";case"vibration":return n?"mdi:crop-portrait":"mdi:vibrate";case"window":return n?"mdi:window-closed":"mdi:window-open";default:return n?"mdi:radiobox-blank":"mdi:checkbox-marked-circle"}},wb=(e,t)=>{const n="closed"!==e;switch(t?.attributes.device_class){case"garage":switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:garage";default:return"mdi:garage-open"}case"gate":switch(e){case"opening":case"closing":return"mdi:gate-arrow-right";case"closed":return"mdi:gate";default:return"mdi:gate-open"}case"door":return n?"mdi:door-open":"mdi:door-closed";case"damper":return n?"md:circle":"mdi:circle-slice-8";case"shutter":switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:window-shutter";default:return"mdi:window-shutter-open"}case"curtain":switch(e){case"opening":return"mdi:arrow-split-vertical";case"closing":return"mdi:arrow-collapse-horizontal";case"closed":return"mdi:curtains-closed";default:return"mdi:curtains"}case"blind":case"shade":switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:blinds";default:return"mdi:blinds-open"}case"window":switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:window-closed";default:return"mdi:window-open"}}switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:window-closed";default:return"mdi:window-open"}},xb={apparent_power:"mdi:flash",aqi:"mdi:air-filter",carbon_dioxide:"mdi:molecule-co2",carbon_monoxide:"mdi:molecule-co",current:"mdi:current-ac",date:"mdi:calendar",energy:"mdi:lightning-bolt",frequency:"mdi:sine-wave",gas:"mdi:gas-cylinder",humidity:"mdi:water-percent",illuminance:"mdi:brightness-5",monetary:"mdi:cash",nitrogen_dioxide:"mdi:molecule",nitrogen_monoxide:"mdi:molecule",nitrous_oxide:"mdi:molecule",ozone:"mdi:molecule",pm1:"mdi:molecule",pm10:"mdi:molecule",pm25:"mdi:molecule",power:"mdi:flash",power_factor:"mdi:angle-acute",pressure:"mdi:gauge",reactive_power:"mdi:flash",signal_strength:"mdi:wifi",sulphur_dioxide:"mdi:molecule",temperature:"mdi:thermometer",timestamp:"mdi:clock",volatile_organic_compounds:"mdi:molecule",voltage:"mdi:sine-wave"},Cb={10:"mdi:battery-10",20:"mdi:battery-20",30:"mdi:battery-30",40:"mdi:battery-40",50:"mdi:battery-50",60:"mdi:battery-60",70:"mdi:battery-70",80:"mdi:battery-80",90:"mdi:battery-90",100:"mdi:battery"},Mb={10:"mdi:battery-charging-10",20:"mdi:battery-charging-20",30:"mdi:battery-charging-30",40:"mdi:battery-charging-40",50:"mdi:battery-charging-50",60:"mdi:battery-charging-60",70:"mdi:battery-charging-70",80:"mdi:battery-charging-80",90:"mdi:battery-charging-90",100:"mdi:battery-charging"},kb=(e,t)=>{const n=Number(e);if(isNaN(n))return"off"===e?"mdi:battery":"on"===e?"mdi:battery-alert":"mdi:battery-unknown";const a=10*Math.round(n/10);return t&&n>=10?Mb[a]:t?"mdi:battery-charging-outline":n<=5?"mdi:battery-alert-variant-outline":Cb[a]},Sb=e=>{const t=e?.attributes.device_class;if(t&&t in xb)return xb[t];if("battery"===t)return e?((e,t)=>{const n=e.state;return kb(n,"on"===t?.state)})(e):"mdi:battery";const n=e?.attributes.unit_of_measurement;return"°C"===n||"°F"===n?"mdi:thermometer":void 0},Eb="mdi:bookmark",$b={alert:"mdi:alert",air_quality:"mdi:air-filter",automation:"mdi:robot",calendar:"mdi:calendar",camera:"mdi:video",climate:"mdi:thermostat",configurator:"mdi:cog",conversation:"mdi:text-to-speech",counter:"mdi:counter",fan:"mdi:fan",google_assistant:"mdi:google-assistant",group:"mdi:google-circles-communities",homeassistant:"mdi:home-assistant",homekit:"mdi:home-automation",image_processing:"mdi:image-filter-frames",input_button:"mdi:gesture-tap-button",input_datetime:"mdi:calendar-clock",input_number:"mdi:ray-vertex",input_select:"mdi:format-list-bulleted",input_text:"mdi:form-textbox",light:"mdi:lightbulb",mailbox:"mdi:mailbox",notify:"mdi:comment-alert",number:"mdi:ray-vertex",persistent_notification:"mdi:bell",person:"mdi:account",plant:"mdi:flower",proximity:"mdi:apple-safari",remote:"mdi:remote",scene:"mdi:palette",script:"mdi:script-text",select:"mdi:format-list-bulleted",sensor:"mdi:eye",siren:"mdi:bullhorn",simple_alarm:"mdi:bell",sun:"mdi:white-balance-sunny",timer:"mdi:timer-outline",updater:"mdi:cloud-upload",vacuum:"mdi:robot-vacuum",water_heater:"mdi:thermometer",weather:"mdi:weather-cloudy",zone:"mdi:map-marker-radius"};function Ab(e,t,n,a){switch(e){case"alarm_control_panel":return vb(n);case"binary_sensor":return bb(n,t);case"button":switch(t?.attributes.device_class){case"restart":return"mdi:restart";case"update":return"mdi:package-up";default:return"mdi:gesture-tap-button"}case"cover":return wb(n,t);case"device_tracker":return"router"===t?.attributes.source_type?"home"===n?"mdi:lan-connect":"mdi:lan-disconnect":["bluetooth","bluetooth_le"].includes(t?.attributes.source_type)?"home"===n?"mdi:bluetooth-connect":"mdi:bluetooth":"not_home"===n?"mdi:account-arrow-right":"mdi:account";case"humidifier":return n&&"off"===n?"mdi:air-humidifier-off":"mdi:air-humidifier";case"input_boolean":return"on"===n?"mdi:check-circle-outline":"mdi:close-circle-outline";case"lock":switch(n){case"unlocked":return"mdi:lock-open";case"jammed":return"mdi:lock-alert";case"locking":case"unlocking":return"mdi:lock-clock";default:return"mdi:lock"}case"media_player":switch(t?.attributes.device_class){case"speaker":switch(n){case"playing":return"mdi:speaker-play";case"paused":return"mdi:speaker-pause";case"off":return"mdi:speaker-off";default:return"mdi:speaker"}case"tv":switch(n){case"playing":return"mdi:television-play";case"paused":return"mdi:television-pause";case"off":return"mdi:television-off";default:return"mdi:television"}default:switch(n){case"playing":case"paused":return"mdi:cast-connected";case"off":return"mdi:cast-off";default:return"mdi:cast"}}case"switch":switch(t?.attributes.device_class){case"outlet":return"on"===n?"mdi:power-plug":"mdi:power-plug-off";case"switch":return"on"===n?"mdi:toggle-switch":"mdi:toggle-switch-off";default:return"mdi:flash"}case"zwave":switch(n){case"dead":return"mdi:emoticon-dead";case"sleeping":return"mdi:sleep";case"initializing":return"mdi:timer-sand";default:return"mdi:z-wave"}case"sensor":{const e=Sb(t);if(e)return e;break}case"input_datetime":if(!t?.attributes.has_date)return"mdi:clock";if(!t.attributes.has_time)return"mdi:calendar";break;case"sun":return"above_horizon"===t?.state?$b[e]:"mdi:weather-night";case"update":return"on"===t?.state?yb(t)?"mdi:package-down":"mdi:package-up":"mdi:package"}return e in $b?$b[e]:a??Eb}async function Ib(e,t,n){const a={type:"auth/sign_path",path:t,expires:n},i=await Sy(e,Ts,a);return i?e.hassUrl(i.path):null}function zb(e,t,n,a){if(!e||!n||!n.length)return[];const i=[];for(const r of n){const n=t?.states[r],o=e.states[r];if((a?.stateOnly&&n?.state!==o?.state||!a?.stateOnly&&n!==o)&&(i.push({entityID:r,oldState:n,newState:o}),a?.firstOnly))break}return i}function Tb(e,t,n,a){return!!zb(e,t,n,{...a,firstOnly:!0}).length}function jb(e){if("off"===e.state||!e.attributes.brightness)return"";return`brightness(${(e.attributes.brightness+245)/5}%)`}function Ob(e){return"off"===e.state?"":e.attributes.rgb_color?`rgb(${e.attributes.rgb_color.join(",")})`:""}function Db(e){return{color:Ob(e),filter:jb(e)}}function Rb(e,t){if(!t.entity)return t;const n=e.states[t.entity];n&&t.state_color&&(t.style={...Db(n),...t.style}),t.title=t.title??(n?.attributes?.friendly_name||t.entity),t.icon=t.icon??Lb(e,t.entity);const a=n?function(e){return Ye(e.entity_id)}(n):void 0;return t.data_domain=t.state_color||"light"===a&&!1!==t.state_color?a:void 0,n&&(t.data_state=(e=>{const t=e.entity_id.split(".")[0];let n=e.state;return"climate"===t&&(n=e.attributes.hvac_action),n})(n)),t}function Pb(e,t){return t?e?.states[t]?.attributes?.friendly_name:void 0}function Lb(e,t,n){const a=e.states[t];return a&&a.attributes.icon?a.attributes.icon:Ab(Ye(t),a,a?.state,n)}const Nb=async()=>{if(["ha-button-menu","ha-button","ha-camera-stream","ha-card","ha-circular-progress","ha-hls-player","ha-icon-button","ha-icon","ha-menu-button","ha-selector","ha-web-rtc-player"].every((e=>customElements.get(e))))return!0;const e=await window.loadCardHelpers();await e.createCardElement({type:"picture-glance",entities:[],camera_image:"dummy-to-load-editor-components"}),await customElements.whenDefined("hui-picture-glance-card");const t=customElements.get("hui-picture-glance-card");if(!t)return!1;const n=new t;return await n.constructor.getConfigElement(),!0},Fb=e=>!!e&&["on","open"].includes(e),Vb=(e,t)=>{if(!e)return[];const n=Object.keys(e.states).filter((e=>!t||e.substr(0,e.indexOf("."))===t));return n.sort(),n};function Hb(e){return!!e?.startsWith("/")}function Bb(e,t){return Hb(t)?e.hassUrl(t):t??null}class qb{constructor(){this._initialized=new Set}async initializeMultipleIfNecessary(e){return(await Jg(Object.entries(e),(async([e,t])=>await this.initializeIfNecessary(e,t)))).every(Boolean)}async initializeIfNecessary(e,t){return!!this._initialized.has(e)||(t?!!await t()&&(this._initialized.add(e),!0):(this._initialized.add(e),!0))}uninitialize(e){this._initialized.delete(e)}isInitialized(e){return this._initialized.has(e)}isInitializedMultiple(e){return e.every((e=>this.isInitialized(e)))}}var Ub;!function(e){e.LANGUAGES="languages",e.SIDE_LOAD_ELEMENTS="side-load-elements",e.CAMERAS="cameras",e.MICROPHONE_CONNECT="microphone-connect",e.VIEW="view"}(Ub||(Ub={}));class Wb{constructor(e,t){this._initializationQueue=new v_({concurrency:1}),this._everInitialized=!1,this._api=e,this._initializer=t??new qb}wasEverInitialized(){return this._everInitialized}isInitializedMandatory(){return!!this._api.getConfigManager().getConfig()&&this._initializer.isInitializedMultiple([Ub.LANGUAGES,Ub.SIDE_LOAD_ELEMENTS,Ub.CAMERAS,...this._api.getMicrophoneManager().shouldConnectOnInitialization()?[Ub.MICROPHONE_CONNECT]:[],Ub.VIEW])}async initializeMandatory(){await this._initializationQueue.add((()=>this._initializeMandatory()))}async _initializeMandatory(){const e=this._api.getHASSManager().getHASS();if(!e||this.isInitializedMandatory())return;if(!await this._initializer.initializeMultipleIfNecessary({[Ub.LANGUAGES]:async()=>await(async e=>{const t=L_(e);return"ca"===t?R_[t]=await import("./lang-ca-449daa4a.js"):"it"===t?R_[t]=await import("./lang-it-2a20a319.js"):"pt"===t?R_[t]=await import("./lang-pt-PT-c4863423.js"):"pt_BR"===t?R_[t]=await import("./lang-pt-BR-83a703b9.js"):"fr"===t&&(R_[t]=await import("./lang-fr-ea16daba.js")),t&&(P_=t),!0})(e),[Ub.SIDE_LOAD_ELEMENTS]:async()=>await Nb()}))return;this._api.getConfigManager().getConfig()&&await this._initializer.initializeMultipleIfNecessary({[Ub.CAMERAS]:async()=>await this._api.getCameraManager().initializeCamerasFromConfig(),...this._api.getMicrophoneManager().shouldConnectOnInitialization()&&{[Ub.MICROPHONE_CONNECT]:async()=>await this._api.getMicrophoneManager().connect()}})&&!this._api.getMessageManager().hasMessage()&&await this._initializer.initializeIfNecessary(Ub.VIEW,this._api.getViewManager().initialize)&&(this._everInitialized=!0,this._api.getCardElementManager().update())}uninitialize(e){this._initializer.uninitialize(e)}}class Zb{constructor(e,t,n,a){this.update=()=>{this._element.requestUpdate()},this._api=e,this._element=t,this._scrollCallback=n,this._menuToggleCallback=a}getElement(){return this._element}scrollReset(){this._scrollCallback()}toggleMenu(){this._menuToggleCallback()}hasUpdated(){return this._element.hasUpdated}elementConnected(){this._api.getInteractionManager().initialize(),this._api.getFullscreenManager().initialize(),this._api.getExpandManager().initialize(),this._api.getMediaLoadedInfoManager().initialize(),this._api.getMicrophoneManager().initialize(),this._api.getKeyboardStateManager().initialize(),this._api.getDefaultManager().initialize(),this._api.getMediaPlayerManager().initialize(),this._api.getHASSManager().getStateWatcher()?.subscribe(this.update,[...this._api.getConfigManager().getConfig()?.view.render_entities??[],...this._api.getMediaPlayerManager().getMediaPlayers()??[]]),af(this._element,(e=>{const t=e.getRootNode();return!!(t&&t instanceof ShadowRoot&&"HUI-PANEL-VIEW"===t.host.tagName)})(this._element),"panel"),af(this._element,fb(),"casted"),this._api.getFullscreenManager().connect(),this._element.addEventListener("mousemove",this._api.getInteractionManager().reportInteraction),this._element.addEventListener("wheel",this._api.getInteractionManager().reportInteraction),this._element.addEventListener("ll-custom",this._api.getActionsManager().handleCustomActionEvent),this._element.addEventListener("action",this._api.getActionsManager().handleInteractionEvent),this._element.addEventListener("action",this._api.getInteractionManager().reportInteraction),this._element.addEventListener("frigate-card:action:execution-request",this._api.getActionsManager().handleActionExecutionRequestEvent),window.addEventListener("location-changed",this._api.getQueryStringManager().requestExecution),window.addEventListener("popstate",this._api.getQueryStringManager().requestExecution),this._api.getQueryStringManager().requestExecution(),this._element.requestUpdate()}elementDisconnected(){af(this._element,!1,"panel"),af(this._element,!1,"tabindex"),af(this._element,!1,"casted"),this._api.getMediaLoadedInfoManager().clear(),this._api.getFullscreenManager().disconnect(),this._api.getKeyboardStateManager().uninitialize(),this._api.getActionsManager().uninitialize(),this._api.getDefaultManager().uninitialize(),this._api.getHASSManager().getStateWatcher()?.unsubscribe(this.update),this._api.getInitializationManager().uninitialize(Ub.CAMERAS),this._api.getCameraManager().reset(),this._element.removeEventListener("mousemove",this._api.getInteractionManager().reportInteraction),this._element.removeEventListener("wheel",this._api.getInteractionManager().reportInteraction),this._element.removeEventListener("ll-custom",this._api.getActionsManager().handleCustomActionEvent),this._element.removeEventListener("action",this._api.getActionsManager().handleInteractionEvent),this._element.removeEventListener("action",this._api.getInteractionManager().reportInteraction),this._element.removeEventListener("frigate-card:action:execution-request",this._api.getActionsManager().handleActionExecutionRequestEvent),window.removeEventListener("location-changed",this._api.getQueryStringManager().requestExecution),window.removeEventListener("popstate",this._api.getQueryStringManager().requestExecution)}}function Qb(e,t,n){return null==e?e:function(e,t,n,a){if(!dh(e))return e;for(var i=-1,r=(t=ry(t,e)).length,o=r-1,s=e;null!=s&&++i{Qb(e,t,n)},Kb=(e,t,n)=>my(e,t,n),Xb=(e,t)=>{!function(e,t){null==e||Gb(e,t)}(e,t)},Jb=e=>l_(e),ew=(e,t)=>e.replace("#",`[${t.toString()}]`),tw=function(e){let t=!1;for(let n=0;n{const i=Kb(e,t);if(void 0===i)return!1;const r=a?.transform?a.transform(i):i;return!(t===n&&jy(i,r)||(null===r?a?.keepOriginal||(Xb(e,t),0):void 0===r||(a?.keepOriginal||Xb(e,t),Yb(e,n,r),0)))})(a,e,t,n)}},iw=function(e,t,n){return function(a){let i=aw(e,t,n)(a);return i=sw(ys,aw(e,t,n),(e=>e.overrides))(a)||i,i}},rw=function(e,t){return iw(e,e,{transform:t})},ow=function(e){return iw(e,e,{transform:e=>null})},sw=function(e,t,n){return function(a){let i=!1;const r=Kb(a,e);return Array.isArray(r)&&r.forEach((e=>{const a=n?n(e):e;a&&"object"==typeof a&&(i=t(a)||i)})),i}},cw=(e,t)=>{const n=a=>{let i=!1;if(a&&"object"==typeof a){const r=t?t(a):a;r&&(i=e(r)||i),Array.isArray(a)?a.forEach((e=>{i=n(e)||i})):Object.keys(a).forEach((e=>{i=n(a[e])||i}))}return i};return n},lw=e=>!("object"!=typeof e||!e||void 0===e.mediaLoaded)&&(e.media_loaded=e.mediaLoaded,delete e.mediaLoaded,!0),dw=e=>{if("object"!=typeof e||!e||"object"!=typeof e.conditions||!e.conditions)return!1;const t=e.conditions,n=[];if(void 0!==t.view&&n.push({condition:"view",views:t.view}),void 0!==t.fullscreen&&n.push({condition:"fullscreen",fullscreen:t.fullscreen}),void 0!==t.expand&&n.push({condition:"expand",expand:t.expand}),void 0!==t.camera&&n.push({condition:"camera",cameras:t.camera}),void 0!==t.media_loaded&&n.push({condition:"media_loaded",media_loaded:t.media_loaded}),void 0!==t.state&&Array.isArray(t.state))for(const e of t.state)"object"!=typeof e||!e||void 0===e.state&&void 0===e.state_not&&void 0===e.entity||n.push({condition:"state",...e.state&&{state:e.state},...e.state_not&&{state_not:e.state_not},...e.entity&&{entity:e.entity}});return void 0!==t.media_query&&n.push({condition:"screen",media_query:t.media_query}),!!n.length&&(e.conditions=n,!0)},uw=e=>!("object"!=typeof e||!e||"call-service"!==e.action||"string"!=typeof e.service)&&(e.action="perform-action",e.perform_action=e.service,delete e.service,!0),hw=e=>!("object"!=typeof e||!e||"call-service"!==e.action||void 0===e.service||void 0===e.service_data||void 0!==e.data)&&(e.data=e.service_data,delete e.service_data,!0),pw=e=>!("object"!=typeof e||!e||"custom:frigate-card-action"!==e.action||"frigate_ui"!==e.frigate_card_action)&&(e.frigate_card_action="camera_ui",!0),mw=[sw(ys,lw,(e=>e.conditions)),e=>cw(lw,(e=>e.conditions))("object"==typeof e&&e?e[Ai]:{}),iw("event_gallery",ir),iw("menu.buttons.frigate_ui",ns),e=>cw(pw)("object"==typeof e&&e?e:{}),sw(wa,rw("live_provider",(e=>"frigate-jsmpeg"===e?"jsmpeg":e))),iw("live.jsmpeg",Ci),iw("live.image",wi),iw("live.webrtc_card",Mi),sw(wa,iw("frigate.zone","frigate.zones",{transform:e=>qg(e)})),sw(wa,iw("frigate.label","frigate.labels",{transform:e=>qg(e)})),e=>cw(hw)("object"==typeof e&&e?e:{}),function(e){if("object"!=typeof e||!e||!(Ai in e)||!Array.isArray(e[Ai]))return!1;let t=!1;const n=n=>{if(!t){if(!my(e,"live.controls.ptz")){const{type:t,...a}=n;Qb(e,"live.controls.ptz",a)}t=!0}},a=e=>{const t=[];for(const i of e)if("custom:frigate-card-ptz"===i.type)n(i);else if("conditional"!==i.type&&"custom:frigate-card-conditional"!==i.type||!Array.isArray(i.elements))t.push(i);else{const e=a(i.elements);e.length&&(i.elements=e,t.push(i))}return t},i=a(e[Ai]);return t&&(i.length?e[Ai]=i:delete e[Ai]),t},iw("view.timeout_seconds",Oi),rw("live.lazy_unload",(e=>"all"===e?["unselected","hidden"]:"never"===e?null:qg(e))),rw("live.auto_play",(e=>"all"===e?null:"never"===e?[]:qg(e))),rw("live.auto_pause",(e=>"all"===e?["unselected","hidden"]:"never"===e?null:qg(e))),rw("live.auto_mute",(e=>"all"===e?null:"never"===e?[]:qg(e))),rw("live.auto_unmute",(e=>"all"===e?["selected","visible","microphone"]:"never"===e?null:qg(e))),rw("media_viewer.auto_play",(e=>"all"===e?null:"never"===e?[]:qg(e))),rw("media_viewer.auto_pause",(e=>"all"===e?null:"never"===e?[]:qg(e))),rw("media_viewer.auto_mute",(e=>"all"===e?null:"never"===e?[]:qg(e))),rw("media_viewer.auto_unmute",(e=>"all"===e?["selected","visible"]:"never"===e?null:qg(e))),iw("live.controls.thumbnails.media",no),iw("timeline.media",Fo),iw("live.controls.timeline.media",uo),iw("media_viewer.controls.timeline.media",Or),iw("view.scan",Yi),iw("view.triggers.enabled",tr,{transform:e=>!0===e?"live":null,keepOriginal:!0}),iw("view.triggers.enabled",Xi,{transform:e=>!0!==e&&null}),iw("view.triggers.untrigger_reset",nr,{transform:e=>e?"default":null}),iw("live.layout",Ei),ow("media_viewer.layout"),ow("image.layout"),sw(ys,dw),e=>cw(dw)("object"==typeof e&&e?e[Ai]:{}),e=>cw(dw)("object"==typeof e&&e?e.automations:{}),sw(wa,iw("hide","capabilities",{transform:e=>!0===e?{disable_except:["substream"]}:null})),iw("performance.profile",Ss,{transform:e=>"low"===e?["low-performance"]:null}),sw(ys,aw("overrides","merge")),iw("live.controls.ptz",$i,{transform:e=>{if("object"!=typeof e||!e)return;const t=["data_left","data_right","data_up","data_down","data_zoom_in","data_zoom_out","service"],n=["actions_left","actions_right","actions_up","actions_down","actions_zoom_in","actions_zoom_out"],a=[...t,...n,"data_home","actions_home"];if(!Object.keys(e).some((e=>a.includes(e))))return;const i={};t.filter((t=>t in e)).reduce(((t,n)=>(t[n]=e[n],t)),i),n.filter((t=>t in e)).reduce(((t,n)=>("object"==typeof e[n]&&"tap_action"in e[n]&&(t[n]=e[n].tap_action),t)),i);const r=()=>{i.presets="presets"in e&&"object"==typeof e.presets&&e.presets?e.presets:{}};return"actions_home"in e&&"object"==typeof e.actions_home&&e.actions_home&&"tap_action"in e.actions_home?(r(),i.presets.home=e.actions_home.tap_action):"data_home"in e&&"object"==typeof e.data_home&&e.data_home&&"string"==typeof e.service&&(r(),i.presets.service=e.service,i.presets.data_home=e.data_home),i},keepOriginal:!0}),rw("live.controls.ptz",(e=>{if("object"!=typeof e||!e)return e;const t=["mode","position","orientation","hide_pan_tilt","hide_zoom","hide_home","style"],n=Object.keys(e);return n.some((e=>!t.includes(e)))?n.filter((e=>t.includes(e))).reduce(((t,n)=>(t[n]=e[n],t)),{}):void 0})),iw("view.update_cycle_camera",qi),iw("view.update_force",Wi,{transform:e=>!0===e?"all":null}),iw("view.update_seconds",Zi),iw("view.update_entities",Qi),aw("live.controls.title",cs,{transform:e=>"object"==typeof e&&e&&"string"==typeof e.mode?"none"===e.mode?{style:"none"}:e.mode.includes("bottom")?{position:"bottom"}:e.mode.includes("top")?{position:"top"}:null:null}),ow("live.controls.title"),ow("media_viewer.controls.title"),e=>cw(uw)("object"==typeof e&&e?e:{}),iw("dimensions.max_height",_s),ow("dimensions.min_height")];class gw extends $s{}class fw extends Event{constructor(e,t){super("frigate-card:conditions:evaluate",t),this.conditions=e}}function _w(e,t,n){let a=Jb(t),i=!1;if(n?.configOverrides)for(const t of n.configOverrides)e.evaluateConditions(t.conditions,n?.stateOverrides)&&(t.delete?.forEach((e=>{Xb(a,e)})),Object.keys(t.set??{}).forEach((e=>{Yb(a,e,t.set?.[e])})),Object.keys(t.merge??{}).forEach((e=>{Yb(a,e,Rv({},Kb(a,e),t.merge?.[e]))})),i=!0);if(!i)return t;if(n?.configOverrides?.some((e=>e.delete?.length))&&(a=df(a)),n?.schema){const e=n.schema.safeParse(a);if(!e.success)throw new gw(N_("error.invalid_configuration_override"),[e.error.errors,a]);return e.data}return a}class yw{constructor(e,t){this._state={},this._epoch=this._createEpoch(),this._hasHAStateConditions=!1,this._mediaQueries=[],this._mediaQueryTrigger=()=>this._triggerChange(),this._api=e,this._listeners=[()=>this._api.getConfigManager().computeOverrideConfig(),()=>this._api.getAutomationsManager().execute(),...t?[t]:[]]}removeConditions(){this._mediaQueries.forEach((e=>e.removeEventListener("change",this._mediaQueryTrigger))),this._mediaQueries=[]}setConditionsFromConfig(){this.removeConditions();const e=(()=>{const e=this._api.getConfigManager().getConfig(),t=[];e?.overrides?.forEach((e=>t.push(...e.conditions))),e?.automations?.forEach((e=>t.push(...e.conditions)));const n=e=>{const a=fl.safeParse(e);a.success?(t.push(...a.data.conditions),a.data.elements?.forEach(n)):e&&"object"==typeof e&&Object.keys(e).forEach((t=>n(e[t])))};return e?.elements?.forEach(n),t})();this._hasHAStateConditions=e.some((e=>!e.condition||["state","numeric_state","user"].includes(e.condition))),e.forEach((e=>{if("screen"===e.condition){const t=window.matchMedia(e.media_query);t.addEventListener("change",this._mediaQueryTrigger),this._mediaQueries.push(t)}}))}setState(e){Object.keys(e).every((t=>jy(e[t],this._state[t])))||(this._state={...this._state,...e},this._triggerChange())}getState(){return this._state}hasHAStateConditions(){return this._hasHAStateConditions}getEpoch(){return this._epoch}evaluateConditions(e,t){return e.every((e=>this._evaluateCondition(e,t)))}_evaluateCondition(e,t){const n={...this._state,...t};switch(e.condition){case void 0:case"state":return!!n.state&&(!e.state&&!e.state_not||e.entity in n.state&&(!e.state||(Array.isArray(e.state)?e.state.includes(n.state[e.entity].state):e.state===n.state[e.entity].state))&&(!e.state_not||(Array.isArray(e.state_not)?!e.state_not.includes(n.state[e.entity].state):e.state_not!==n.state[e.entity].state)));case"view":return!!n?.view&&e.views.includes(n.view);case"fullscreen":return void 0!==n.fullscreen&&e.fullscreen===n.fullscreen;case"expand":return void 0!==n.expand&&e.expand===n.expand;case"camera":return!!n.camera&&e.cameras.includes(n.camera);case"numeric_state":return!!n.state&&e.entity in n.state&&void 0!==n.state[e.entity].state&&(void 0===e.above||Number(n.state[e.entity].state)>e.above)&&(void 0===e.below||Number(n.state[e.entity].state)n.triggered?.has(e)));case"interaction":return void 0!==n.interaction&&e.interaction===n.interaction;case"microphone":return!(void 0!==e.connected&&n.microphone?.connected!==e.connected||void 0!==e.muted&&n.microphone?.muted!==e.muted);case"key":return!(!n.keys||!(e.key in n.keys)||(e.state??"down")!==n.keys[e.key].state||void 0!==e.ctrl&&e.ctrl!==!!n.keys[e.key].ctrl||void 0!==e.alt&&e.alt!==!!n.keys[e.key].alt||void 0!==e.meta&&e.meta!==!!n.keys[e.key].meta||void 0!==e.shift&&e.shift!==!!n.keys[e.key].shift)}}_createEpoch(){return{manager:this}}_triggerChange(){this._epoch=this._createEpoch(),this._listeners.forEach((e=>e()))}}const vw={casting:{[Wr]:!1,[Mr]:!1,[Xo]:"none",[`${is}.enabled`]:!0,[`${rs}.enabled`]:!0,[`${as}.enabled`]:!1,[`${os}.enabled`]:!1,[Ur]:["selected","visible"],[fs]:"static",[gs]:"16:9",[Si]:1,[So]:!0},"low-performance":{[ao]:"none",[Er]:"none",[Bo]:"none",[mo]:!1,[Pr]:!1,[Vo]:!1,[qr]:[],[hr]:[],[pr]:[],[mr]:[],[Co]:["unselected","hidden"],[wo]:!1,[br]:!1,[ko]:"none",[Cr]:"none",[So]:!1,[kr]:"chevrons",[ds]:"none",[Xo]:"outside",[`${ts}.enabled`]:!1,[`${ss}.enabled`]:!1,[`${ss}.enabled`]:!1,[`${os}.enabled`]:!1,[sr]:!1,[cr]:!1,[lr]:!1,[or]:!1,[oo]:!1,[so]:!1,[co]:!1,[ro]:!1,[Ar]:!1,[Ir]:!1,[zr]:!1,[$r]:!1,[Wo]:!1,[Zo]:!1,[Qo]:!1,[Uo]:!1,[bs]:!1,[ws]:10,[ks]:!1,[Ms]:!1,[xr]:!1,[ki]:!1,[xi]:"image",[Si]:10,[tr]:"none",[xs]:1},scrubbing:{[ho]:"below",[go]:"ribbon",[po]:"seek",[Dr]:"below",[Lr]:"ribbon",[Rr]:"seek"}},bw=(e,t,n)=>{const a=js(Pd).safeParse(e);if(!a.success)return t;const i=a.data;for(const e of n??[])e in vw&&Object.entries(vw[e]).forEach((([e,n])=>{return r=n,void(void 0===Kb(i,a=e)&&Yb(t,a,r));var a,r}));return t},ww=e=>{switch(e){case"ptz_left":return"left";case"ptz_right":return"right";case"ptz_up":return"up";case"ptz_down":return"down";case"ptz_zoom_in":return"zoom_in";case"ptz_zoom_out":return"zoom_out"} +/* istanbul ignore next: No (current) way to reach this code -- @preserve */return null},xw=(e,t)=>{if(!t.enabled)return[];const n=[];for(const a of["ptz_down","ptz_left","ptz_right","ptz_up","ptz_zoom_in","ptz_zoom_out"]){const i=t[a],r=ww(a);i&&r&&(n.push({conditions:[{condition:"key",key:i.key,state:"down",shift:i.shift,ctrl:i.ctrl,alt:i.alt,meta:i.meta}],actions:[ff({ptzAction:r,ptzPhase:"start"})],tag:e}),n.push({conditions:[{condition:"key",key:i.key,state:"up"}],actions:[ff({ptzAction:r,ptzPhase:"stop"})],tag:e}))}const a=t.ptz_home;return a&&n.push({conditions:[{condition:"key",key:a.key,state:"down",shift:a.shift,ctrl:a.ctrl,alt:a.alt,meta:a.meta}],actions:[ff()],tag:e}),n};class Cw{constructor(e){this._config=null,this._overriddenConfig=null,this._rawConfig=null,this._cardWideConfig=null,this._api=e}hasConfig(){return!!this.getConfig()}getConfig(){return this._overriddenConfig??this._config}getCardWideConfig(){return this._cardWideConfig}getNonOverriddenConfig(){return this._config}getRawConfig(){return this._rawConfig}setConfig(e){if(!e)throw new Error(N_("error.invalid_configuration"));const t=Pd.safeParse(e);if(!t.success){const n=nw(e),a=Ds(t.error);let i="";throw n&&(i=`${N_("error.upgrade_available")}. `),new Error(i+`${N_("error.invalid_configuration")}: `+(a&&a.size?JSON.stringify([...a],null," "):N_("error.invalid_configuration_no_hint")))}const n=bw(e,t.data,t.data.profiles);var a;(this._rawConfig=e,jy(this._config,n))||(this._config=n,this._cardWideConfig={performance:n.performance,debug:n.debug},this._api.getConditionsManager().setConditionsFromConfig(),this._api.getConditionsManager().setState({view:void 0,displayMode:void 0,camera:void 0}),this._api.getMediaLoadedInfoManager().clear(),this._api.getInitializationManager().uninitialize(Ub.VIEW),this._api.getViewManager().reset(),this._api.getMessageManager().reset(),this._api.getStyleManager().setPerformance(),this._api.getStatusBarItemManager().removeAllDynamicStatusBarItems(),((e,t)=>{e.getAutomationsManager().deleteAutomations(t);const n=e.getConfigManager().getConfig()?.view.keyboard_shortcuts;if(!n)return;const a=xw(t,n);a.length&&e.getAutomationsManager().addAutomations(a)})(this._api,this),(a=this._api).getAutomationsManager().deleteAutomations(),a.getAutomationsManager().addAutomations(a.getConfigManager().getNonOverriddenConfig()?.automations??[]),this.computeOverrideConfig(),this._api.getCardElementManager().update())}computeOverrideConfig(){const e=this._api.getConditionsManager();if(!this._config)return;let t=null;try{t=_w(e,this._config,{configOverrides:this._config.overrides,schema:Pd})}catch(e){return void this._api.getMessageManager().setErrorIfHigherPriority(e)}if(jy(t,this._overriddenConfig))return;const n=this._overriddenConfig;this._overriddenConfig=t,this._api.getStyleManager().setMinMaxHeight(),!n||jy(n?.cameras,this._overriddenConfig?.cameras)&&jy(n?.cameras_global,this._overriddenConfig?.cameras_global)||this._api.getInitializationManager().uninitialize(Ub.CAMERAS),n&&n?.live.microphone.always_connected!==this._overriddenConfig?.live.microphone.always_connected&&this._api.getInitializationManager().uninitialize(Ub.MICROPHONE_CONNECT),this._initializeBackground(n)}async _initializeBackground(e){await this._api.getDefaultManager().initializeIfNecessary(e),await this._api.getMediaPlayerManager().initializeIfNecessary(e),this._api.getCardElementManager().update()}}class Mw{constructor(e){this._timer=new bf,this._stateChangeHandler=()=>{this._setToDefaultIfAllowed()},this._api=e}async initializeIfNecessary(e){jy(e?.view.default_reset,this._api.getConfigManager().getConfig()?.view.default_reset)||await this.initialize()}async initialize(){this.uninitialize();const e=this._api.getConfigManager().getConfig()?.view.default_reset;e?.entities.length&&this._api.getHASSManager().getStateWatcher().subscribe(this._stateChangeHandler,e.entities);const t=this._api.getConfigManager().getConfig()?.view.default_reset.every_seconds;return t&&this._timer.startRepeated(t,(()=>this._setToDefaultIfAllowed())),this._api.getConfigManager().getConfig()?.view.default_reset.after_interaction&&this._api.getAutomationsManager().addAutomations([{actions:[pf("default")],conditions:[{condition:"interaction",interaction:!1}],tag:this}]),!0}uninitialize(){this._timer.stop(),this._api.getHASSManager().getStateWatcher().unsubscribe(this._stateChangeHandler),this._api.getAutomationsManager().deleteAutomations(this)}_setToDefaultIfAllowed(){this._isAutomatedUpdateAllowed()&&this._api.getViewManager().setViewDefault()}_isAutomatedUpdateAllowed(){const e=this._api.getConfigManager().getConfig()?.view.default_reset.interaction_mode;return!!e&&((e,t)=>{switch(e){case"all":return!0;case"active":return t;case"inactive":return!t}})(e,this._api.getInteractionManager().hasInteraction())}}const kw=(e,t="download")=>{const n=new URL(e).origin===window.location.origin,a=e.startsWith("data:");if(navigator.userAgent.startsWith("Home Assistant/")||navigator.userAgent.startsWith("HomeAssistant/")||!n&&!a)window.open(e,"_blank");else{const n=document.createElement("a");n.setAttribute("download",t),n.href=e,n.click(),n.remove()}},Sw=async(e,t,n)=>{const a=await t.getMediaDownloadPath(n);if(!a)throw new $s(N_("error.download_no_media"));let i=a.endpoint;if(a.sign){let t;try{t=await Ib(e,a.endpoint)}catch(e){Zg(e)}if(!t)throw new $s(N_("error.download_sign_failed"));i=t}kw(i)},Ew=e=>{const t=document.createElement("canvas");t.width=e.videoWidth,t.height=e.videoHeight;const n=t.getContext("2d");return n?(n.drawImage(e,0,0,t.width,t.height),t.toDataURL("image/jpeg")):null};class $w{constructor(e){this._api=e}async downloadViewerMedia(){const e=this._api.getViewManager().getView()?.queryResults?.getSelectedResult(),t=this._api.getHASSManager().getHASS();if(!e||!t)return!1;try{await Sw(t,this._api.getCameraManager(),e)}catch(e){return this._api.getMessageManager().setErrorIfHigherPriority(e),!1}return!0}async downloadScreenshot(){const e=await(this._api.getMediaLoadedInfoManager().get()?.player?.getScreenshotURL());e&&kw(e,(e=>{if(e?.is("live")||e?.is("image"))return`${e.view}-${e.camera}-${qu(new Date,"yyyy-MM-dd-HH-mm-ss")}.jpg`;if(e?.isViewerView()){const t=e.queryResults?.getSelectedResult(),n=t?.getID()??null;return`${e.view}-${e.camera}${n?`-${n}`:""}.jpg`}return"screenshot.jpg"})(this._api.getViewManager().getView()))}}class Aw{constructor(e){this._expanded=!1,this._api=e}initialize(){this._setConditionState()}isExpanded(){return this._expanded}toggleExpanded(){this.setExpanded(!this._expanded)}setExpanded(e){e&&this._api.getFullscreenManager().isInFullscreen()&&this._api.getFullscreenManager().stopFullscreen(),this._expanded=e,this._setConditionState(),this._api.getCardElementManager().update()}_setConditionState(){this._api.getConditionsManager()?.setState({expand:this._expanded})}}const Iw=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],zw=(()=>{if("undefined"==typeof document)return!1;const e=Iw[0],t={};for(const n of Iw){const a=n?.[1];if(a in document){for(const[a,i]of n.entries())t[e[a]]=i;return t}}return!1})(),Tw={change:zw.fullscreenchange,error:zw.fullscreenerror};let jw={request:(e=document.documentElement,t)=>new Promise(((n,a)=>{const i=()=>{jw.off("change",i),n()};jw.on("change",i);const r=e[zw.requestFullscreen](t);r instanceof Promise&&r.then(i).catch(a)})),exit:()=>new Promise(((e,t)=>{if(!jw.isFullscreen)return void e();const n=()=>{jw.off("change",n),e()};jw.on("change",n);const a=document[zw.exitFullscreen]();a instanceof Promise&&a.then(n).catch(t)})),toggle:(e,t)=>jw.isFullscreen?jw.exit():jw.request(e,t),onchange(e){jw.on("change",e)},onerror(e){jw.on("error",e)},on(e,t){const n=Tw[e];n&&document.addEventListener(n,t,!1)},off(e,t){const n=Tw[e];n&&document.removeEventListener(n,t,!1)},raw:zw};Object.defineProperties(jw,{isFullscreen:{get:()=>Boolean(document[zw.fullscreenElement])},element:{enumerable:!0,get:()=>document[zw.fullscreenElement]??void 0},isEnabled:{enumerable:!0,get:()=>Boolean(document[zw.fullscreenEnabled])}}),zw||(jw={isEnabled:!1});var Ow=jw;class Dw{constructor(e){this._fullscreenHandler=()=>{this._api.getExpandManager().setExpanded(!1),this._setConditionState(),this._api.getCardElementManager().update()},this._api=e}initialize(){this._setConditionState()}connect(){Ow.isEnabled&&Ow.on("change",this._fullscreenHandler)}disconnect(){Ow.isEnabled&&Ow.off("change",this._fullscreenHandler)}isInFullscreen(){return Ow.isEnabled&&Ow.isFullscreen}toggleFullscreen(){Ow.toggle(this._api.getCardElementManager().getElement())}stopFullscreen(){Ow.exit()}_setConditionState(){this._api.getConditionsManager()?.setState({fullscreen:this.isInFullscreen()})}}class Rw{constructor(){this._watcherCallbacks=new Map}setHASS(e,t){if(e)for(const[n,a]of this._watcherCallbacks.entries()){const i=zb(t,e,a,{stateOnly:!0,firstOnly:!0});i.length&&n(i[0])}}subscribe(e,t){return!!t.length&&(this._watcherCallbacks.has(e)?this._watcherCallbacks.get(e)?.push(...t):this._watcherCallbacks.set(e,t),!0)}unsubscribe(e){this._watcherCallbacks.delete(e)}}class Pw{constructor(e){this._hass=null,this._stateWatcher=new Rw,this._api=e}getHASS(){return this._hass}hasHASS(){return!!this._hass}getStateWatcher(){return this._stateWatcher}setHASS(e){if(((e,t)=>e?.connected!==t?.connected)(this._hass,e)&&(e?.connected?this._api.getMessageManager().resetType("connection"):this._api.getMessageManager().setMessageIfHigherPriority({message:N_("error.reconnecting"),icon:"mdi:lan-disconnect",type:"connection",dotdotdot:!0})),!e)return;const t=this._hass;this._hass=e,this._api.getConditionsManager().hasHAStateConditions()&&this._api.getConditionsManager().setState({state:this._hass.states,user:this._hass.user}),this._api.getStyleManager().setLightOrDarkMode(),this._stateWatcher.setHASS(t,e)}}var Lw=function(){return Ju.Date.now()},Nw="Expected a function",Fw=Math.max,Vw=Math.min;function Hw(e,t,n){var a,i,r,o,s,c,l=0,d=!1,u=!1,h=!0;if("function"!=typeof e)throw new TypeError(Nw);function p(t){var n=a,r=i;return a=i=void 0,l=t,o=e.apply(r,n)}function m(e){var n=e-c;return void 0===c||n>=t||n<0||u&&e-l>=r}function g(){var e=Lw();if(m(e))return f(e);s=setTimeout(g,function(e){var n=t-(e-c);return u?Vw(n,r-(e-l)):n}(e))}function f(e){return s=void 0,h&&a?p(e):(a=i=void 0,o)}function _(){var e=Lw(),n=m(e);if(a=arguments,i=this,c=e,n){if(void 0===s)return function(e){return l=e,s=setTimeout(g,t),d?p(e):o}(c);if(u)return clearTimeout(s),s=setTimeout(g,t),p(c)}return void 0===s&&(s=setTimeout(g,t)),o}return t=wg(t)||0,dh(n)&&(d=!!n.leading,r=(u="maxWait"in n)?Fw(wg(n.maxWait)||0,t):r,h="trailing"in n?!!n.trailing:h),_.cancel=function(){void 0!==s&&clearTimeout(s),l=0,a=c=i=s=void 0},_.flush=function(){return void 0===s?o:f(Lw())},_}function Bw(e,t,n){var a=!0,i=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return dh(n)&&(a="leading"in n?!!n.leading:a,i="trailing"in n?!!n.trailing:i),Hw(e,t,{leading:a,maxWait:t,trailing:i})}class qw{constructor(e){this._timer=new bf,this.reportInteraction=Bw((()=>{this._reportInteraction()}),1e3),this._api=e}initialize(){this._api.getConditionsManager().setState({interaction:!1})}hasInteraction(){return this._timer.isRunning()}_reportInteraction(){this._timer.stop();const e=this._api.getConfigManager().getConfig()?.view.interaction_seconds;e&&(this._api.getConditionsManager().setState({interaction:!0}),this._timer.start(e,(()=>{this._api.getConditionsManager().setState({interaction:!1}),this._api.getStyleManager().setLightOrDarkMode()})))}}class Uw{constructor(e){this._state={},this._handleKeydown=e=>{const t={state:"down",ctrl:e.ctrlKey,alt:e.altKey,meta:e.metaKey,shift:e.shiftKey};jy(this._state[e.key],t)||(this._state[e.key]=t,this._processStateChange())},this._handleKeyup=e=>{e.key in this._state&&"down"===this._state[e.key].state&&(this._state[e.key].state="up",this._processStateChange())},this._handleBlur=()=>{Object.keys(this._state).length&&(this._state={},this._processStateChange())},this._api=e}initialize(){const e=this._api.getCardElementManager().getElement();e.addEventListener("keydown",this._handleKeydown),e.addEventListener("keyup",this._handleKeyup),e.addEventListener("blur",this._handleBlur)}uninitialize(){const e=this._api.getCardElementManager().getElement();e.removeEventListener("keydown",this._handleKeydown),e.removeEventListener("keyup",this._handleKeyup),e.removeEventListener("blur",this._handleBlur)}_processStateChange(){this._api.getConditionsManager().setState({keys:this._state})}}function Ww(e,t){let n;return n=e instanceof Event?e.composedPath()[0]:e,n instanceof HTMLImageElement?{width:n.naturalWidth,height:n.naturalHeight,...t}:n instanceof HTMLVideoElement?{width:n.videoWidth,height:n.videoHeight,...t}:n instanceof HTMLCanvasElement?{width:n.width,height:n.height,player:t?.player,...t}:null}function Zw(e,t,n){const a=Ww(t,n);a&&Qw(e,a)}function Qw(e,t){Vg(e,"media:loaded",t)}function Gw(e){Vg(e,"media:unloaded")}function Yw(e){Vg(e,"media:volumechange")}function Kw(e){Vg(e,"media:play")}function Xw(e){Vg(e,"media:pause")}class Jw{constructor(e){this._current=null,this._lastKnown=null,this._api=e}initialize(){this.clear()}set(e){var t;(t=e).height>=50&&t.width>=50&&(V_(this._api.getConfigManager().getCardWideConfig(),"Frigate Card media load: ",e),this._current=e,this._lastKnown=e,this._api.getConditionsManager().setState({media_loaded:!0}),this._api.getStyleManager().setExpandedMode(),this._api.getCardElementManager().update())}get(){return this._current}getLastKnown(){return this._lastKnown}clear(){this._current=null,this._api.getConditionsManager().setState({media_loaded:!1})}has(){return!!this._current}}class ex{static isEvent(e){return this.isClip(e)||this.isSnapshot(e)}static isRecording(e){return"recording"===e.getMediaType()}static isClip(e){return"clip"===e.getMediaType()}static isSnapshot(e){return"snapshot"===e.getMediaType()}static isVideo(e){return this.isClip(e)||this.isRecording(e)}}class tx{constructor(e){this._mediaPlayers=[],this._api=e}getMediaPlayers(){return this._mediaPlayers}hasMediaPlayers(){return this._mediaPlayers.length>0}async initializeIfNecessary(e){e?.menu.buttons.media_player.enabled!==this._api.getConfigManager().getConfig()?.menu.buttons.media_player.enabled&&await this.initialize()}async initialize(){const e=this._api.getHASSManager().getHASS();if(!e||!this._api.getConfigManager().getConfig()?.menu.buttons.media_player.enabled)return!1;const t=Object.keys(e.states).filter((t=>{if(t.startsWith("media_player.")){const n=e.states[t];if(n&&"unavailable"!==n.state&&_b(n,131072))return!0}return!1}));let n=null;try{n=await this._api.getEntityRegistryManager().getEntities(e,t)}catch(e){Zg(e)}return this._mediaPlayers=t.filter((e=>{const t=n?.get(e);return!t||!t.hidden_by})),!0}async stop(e){const t=this._api.getHASSManager().getHASS(),n=t?.states[e];if(!n)return;let a;if(_b(n,4096))a="media_stop";else{if(!_b(n,256))return;a="turn_off"}await t.callService("media_player",a,{entity_id:e})}async playLive(e,t){const n=this._api.getCameraManager().getStore().getCameraConfig(t);n&&("dashboard"===n.cast?.method?await this._playLiveDashboard(e,n):await this._playLiveStandard(e,t,n))}async _playLiveStandard(e,t,n){const a=this._api.getHASSManager().getHASS(),i=n?.camera_entity??null;if(!a||!i)return;const r=this._api.getCameraManager().getCameraMetadata(t)?.title??null,o=a.states[i]?.attributes?.entity_picture??null;await a.callService("media_player","play_media",{entity_id:e,media_content_id:`media-source://camera/${i}`,media_content_type:"application/vnd.apple.mpegurl",extra:{...r&&{title:r},...o&&{thumb:o}}})}async _playLiveDashboard(e,t){const n=this._api.getHASSManager().getHASS();if(!n)return;const a=t.cast?.dashboard;a?.dashboard_path&&a?.view_path?await n.callService("cast","show_lovelace_view",{entity_id:e,dashboard_path:a.dashboard_path,view_path:a.view_path}):this._api.getMessageManager().setMessageIfHigherPriority({type:"error",icon:"mdi:cast",message:N_("error.no_dashboard_or_view")})}async playMedia(e,t){const n=this._api.getHASSManager().getHASS();if(!n||!t)return;const a=t.getTitle(),i=t.getThumbnail();await n.callService("media_player","play_media",{entity_id:e,media_content_id:t.getContentID(),media_content_type:ex.isVideo(t)?"video":"image",extra:{...a&&{title:a},...i&&{thumb:i}}})}}class nx{constructor(e){this._message=null,this._api=e}getMessage(){return this._message}hasMessage(){return!!this._message}hasErrorMessage(){return"error"===this._message?.type}reset(){const e=this.hasMessage();this._message=null,e&&this._api.getCardElementManager().update()}resetType(e){this._message?.type===e&&this.reset()}setErrorIfHigherPriority(e,t){e&&"object"==typeof e&&"message"in e&&(Zg(e),this.setMessageIfHigherPriority({message:t?`${t}: ${e.message}`:e.message,type:"error",...e instanceof $s&&{context:e.context}}))}setMessageIfHigherPriority(e){const t=this._message?As[this._message.type]:0,n=As[e.type];return!(this._message&&ne.stop())),this._stream=void 0,this._setConditionState(),this._api.getCardElementManager().update()}getStream(){return this._stream??void 0}mute(){const e=this.isMuted();this._mute=!0,this._setMute(),this._setConditionState(),e||this._callListeners("muted")}async unmute(){if(!this.isSupported())return;const e=!this.isMuted(),t=()=>{this._mute=!1,this._setMute()};this.isConnected()||this.isForbidden()?this.isConnected()&&t():(t(),await this.connect()),this._setConditionState(),e||this._callListeners("unmuted")}isConnected(){return!!this._stream}isForbidden(){return null===this._stream}isMuted(){return!this._stream||this._stream.getTracks().every((e=>!e.enabled))}addListener(e){this._listeners.push(e)}removeListener(e){this._listeners=this._listeners.filter((t=>t!==e))}_callListeners(e){this._listeners.forEach((t=>t(e)))}_setMute(){this._stream?.getTracks().forEach((e=>{e.enabled=!this._mute})),this._startTimer(),this._api.getCardElementManager().update()}_startTimer(){const e=this._api.getConfigManager().getConfig()?.live.microphone;if(e?.always_connected)return;const t=e?.disconnect_seconds??0;t&&this._timer.start(t,(()=>{this.disconnect()}))}_setConditionState(){this._api.getConditionsManager().setState({microphone:{muted:this.isMuted(),connected:this.isConnected()}})}}class ix{constructor(e){this._shouldRun=!0,this.requestExecution=()=>{this._shouldRun=!0,this._api.getCardElementManager().update()},this.executeIfNecessary=async()=>{this._shouldRun&&(this._shouldRun=!1,await this._executeViewRelated(this._calculateIntent()),await this._executeNonViewRelated(this._calculateIntent()))},this._isViewAction=e=>{switch(e.frigate_card_action){case"clip":case"clips":case"diagnostics":case"image":case"live":case"recording":case"recordings":case"snapshot":case"snapshots":case"timeline":return!0}return!1},this._api=e}hasViewRelatedActionsToRun(){return!!this._calculateIntent().view&&this._shouldRun}async _executeViewRelated(e){e.view&&(e.view.default?await this._api.getViewManager().setViewDefaultWithNewQuery({params:{camera:e.view.camera},...e.view.substream&&{modifiers:[new rb(e.view.substream)]}}):await this._api.getViewManager().setViewByParametersWithNewQuery({params:{...e.view.view&&{view:e.view.view},...e.view.camera&&{camera:e.view.camera}},...e.view.substream&&{modifiers:[new rb(e.view.substream)]}}))}async _executeNonViewRelated(e){e.other&&await this._api.getActionsManager().executeActions(e.other)}_calculateIntent(){const e={};for(const t of this._getActions())this._isViewAction(t)?((e.view??={}).view=t.frigate_card_action,(e.view??={}).default=void 0):"default"===t.frigate_card_action?((e.view??={}).default=!0,(e.view??={}).view=void 0):"camera_select"===t.frigate_card_action?(e.view??={}).camera=t.camera:"live_substream_select"===t.frigate_card_action?(e.view??={}).substream=t.camera:(e.other??=[]).push(t);return e}_getActions(){const e=new URLSearchParams(window.location.search),t=[],n=new RegExp(/^frigate-card-action([.:](?\w+))?[.:](?\w+)/);for(const[a,i]of e.entries()){const e=a.match(n);if(!e||!e.groups)continue;const r=e.groups.cardID,o=e.groups.action;let s=null;switch(o){case"camera_select":case"live_substream_select":i&&(s=mf(o,i,{cardID:r}));break;case"camera_ui":case"clip":case"clips":case"default":case"diagnostics":case"download":case"expand":case"image":case"live":case"menu_toggle":case"recording":case"recordings":case"snapshot":case"snapshots":case"timeline":s=pf(o,{cardID:r});break;default:console.warn(`Frigate card received unknown card action in query string: ${o}`)}s&&t.push(s)}return t}}class rx{constructor(e){this._items=[],this._dynamicItems=[],this._api=e}addDynamicStatusBarItem(e){this._dynamicItems.includes(e)||this._dynamicItems.push(e),this._api.getCardElementManager().update()}removeDynamicStatusBarItem(e){this._dynamicItems=this._dynamicItems.filter((t=>!jy(t,e))),this._api.getCardElementManager().update()}removeAllDynamicStatusBarItems(){this._dynamicItems=[],this._api.getCardElementManager().update()}calculateItems(e){const t=e?.view?e?.cameraManager?.getCameraMetadata(e?.view?.camera):null,n=t?.engineLogo??null,a=e?.view?.is("live")?t?.title??null:e?.view?.isViewerView()?e?.view.queryResults?.getSelectedResult()?.getTitle()??null:null,i=e?.mediaLoadedInfo?this._calculateResolution(e?.mediaLoadedInfo):null,r=e?.mediaLoadedInfo?.technology?.length?e?.mediaLoadedInfo.technology[0]:null;return[...a?[{type:"custom:frigate-card-status-bar-string",string:a,expand:!0,sufficient:!0,...e?.statusConfig?.items.title}]:[],...i?[{type:"custom:frigate-card-status-bar-string",string:i,...e?.statusConfig?.items.resolution}]:[],...r&&"webrtc"===r?[{type:"custom:frigate-card-status-bar-icon",icon:"mdi:webrtc",...e?.statusConfig?.items.technology}]:r?[{type:"custom:frigate-card-status-bar-string",string:r.toUpperCase(),...e?.statusConfig?.items.technology}]:[],...n?[{type:"custom:frigate-card-status-bar-image",image:n,...e?.statusConfig?.items.engine}]:[],...this._dynamicItems]}_matchesWidthHeight(e,t,n){const a=.99*t,i=1.01*t,r=.99*n,o=1.01*n,s=(e,t,n)=>e>=t&&e<=n;return!!e&&(s(e.width,a,i)&&s(e.height,r,o)||s(e.height,a,i)&&s(e.width,r,o))}_calculateResolution(e){return this._matchesWidthHeight(e,1920,1080)?"1080p":this._matchesWidthHeight(e,1280,720)?"720p":this._matchesWidthHeight(e,640,480)?"VGA":this._matchesWidthHeight(e,3840,2160)?"4K":this._matchesWidthHeight(e,720,480)?"480p":this._matchesWidthHeight(e,720,576)?"576p":this._matchesWidthHeight(e,7680,4320)?"8K":`${e.width}x${e.height}`}}class ox{constructor(e){this.setLightOrDarkMode=()=>{const e=this._api.getConfigManager().getConfig(),t="on"===e?.view.dark_mode||"auto"===e?.view.dark_mode&&(!this._api.getInteractionManager().hasInteraction()||!!this._api.getHASSManager().getHASS()?.themes.darkMode);af(this._api.getCardElementManager().getElement(),t,"dark")},this._api=e}setExpandedMode(){const e=this._api.getCardElementManager().getElement(),t=this._api.getViewManager().getView(),n=this._api.getMediaLoadedInfoManager().getLastKnown();e.style.setProperty("--frigate-card-expand-aspect-ratio",t?.isAnyMediaView()&&n?`${n.width} / ${n.height}`:"unset");const a=t?.isGrid();e.style.setProperty("--frigate-card-expand-width",!a&&t?.isAnyMediaView()?"none":"var(--frigate-card-expand-max-width)"),e.style.setProperty("--frigate-card-expand-height",!a&&t?.isAnyMediaView()?"none":"var(--frigate-card-expand-max-height)")}setMinMaxHeight(){const e=this._api.getConfigManager().getConfig();if(e){this._api.getCardElementManager().getElement().style.setProperty("--frigate-card-height",e.dimensions.height)}}setPerformance(){const e={box_shadow:"none",border_radius:"0px"},t=this._api.getCardElementManager().getElement(),n=this._api.getConfigManager().getCardWideConfig()?.performance,a=n?.style??{};for(const n of Object.keys(a)){const i=`--frigate-card-css-${n.replaceAll("_","-")}`;!1===a[n]?t.style.setProperty(i,e[n]):t.style.removeProperty(i)}}_isAspectRatioEnforced(e,t){const n=e.dimensions.aspect_ratio_mode;return!(this._api.getFullscreenManager().isInFullscreen()||this._api.getExpandManager().isExpanded()||"unconstrained"===n||"dynamic"===n&&(!t||t?.isAnyMediaView()||t?.is("timeline")||t?.is("diagnostics")))}getAspectRatioStyle(){const e=this._api.getConfigManager().getConfig(),t=this._api.getViewManager().getView();if(e){if(!this._isAspectRatioEnforced(e,t))return lf();const n=e.dimensions.aspect_ratio_mode,a=this._api.getMediaLoadedInfoManager().getLastKnown();return lf(a&&"dynamic"===n?{ratio:[a.width,a.height]}:{ratio:e.dimensions.aspect_ratio})}return lf({defaultStatic:!0})}}class sx{constructor(e){this._triggeredCameras=new Map,this._triggeredCameraTimers=new Map,this._throttledTriggerAction=Bw(this._triggerAction.bind(this),1e3,{trailing:!0}),this._api=e}getTriggeredCameraIDs(){return new Set(this._triggeredCameras.keys())}isTriggered(){return!!this._triggeredCameras.size}getMostRecentlyTriggeredCameraID(){const e=ky([...this._triggeredCameras.entries()],(e=>e[1].getTime()),"desc");return e.length?e[0][0]:null}async handleCameraEvent(e){const t=this._api.getConfigManager().getConfig()?.view.triggers,n=this._api.getViewManager().getView()?.camera;if(!t||!n)return;const a=this._api.getCameraManager().getStore().getAllDependentCameras(n);t.filter_selected_camera&&!a.has(e.cameraID)||("end"!==e.type?(this._triggeredCameras.set(e.cameraID,new Date),this._setConditionStateIfNecessary(),await this._throttledTriggerAction(e)):this._startUntriggerTimer(e.cameraID))}_hasAllowableInteractionStateForAction(){const e=this._api.getConfigManager().getConfig()?.view.triggers,t=this._api.getInteractionManager().hasInteraction();return!!e&&("all"===e.actions.interaction_mode||"active"===e.actions.interaction_mode&&t||"inactive"===e.actions.interaction_mode&&!t)}async _triggerAction(e){const t=this._api.getConfigManager().getConfig()?.view.triggers.actions.trigger,n=this._api.getConfigManager().getConfig()?.view.default;("high"!==e.fidelity||e.snapshot||e.clip||"live"===t||"default"===t&&"live"===n)&&(this._hasAllowableInteractionStateForAction()&&("update"===t?await this._api.getViewManager().setViewByParametersWithNewQuery({queryExecutorOptions:{useCache:!1}}):"live"===t?await this._api.getViewManager().setViewByParametersWithNewQuery({params:{view:"live",camera:e.cameraID}}):"default"===t?await this._api.getViewManager().setViewDefaultWithNewQuery({params:{camera:e.cameraID}}):"high"===e.fidelity&&"media"===t&&await this._api.getViewManager().setViewByParametersWithNewQuery({params:{view:e.clip?"clip":"snapshot",camera:e.cameraID}})),this._api.getCardElementManager().update())}_setConditionStateIfNecessary(){const e=new Set(this._triggeredCameras.keys()),t=e.size?e:void 0;jy(t,this._api.getConditionsManager().getState().triggered)||this._api.getConditionsManager().setState({triggered:t})}async _untriggerAction(e){const t=this._api.getConfigManager().getConfig()?.view.triggers.actions.untrigger;"default"===t&&this._hasAllowableInteractionStateForAction()&&await this._api.getViewManager().setViewDefaultWithNewQuery(),this._triggeredCameras.delete(e),this._deleteTimer(e),this._setConditionStateIfNecessary(),this._api.getCardElementManager().update()}_startUntriggerTimer(e){this._deleteTimer(e);const t=new bf;this._triggeredCameraTimers.set(e,t),t.start( +/* istanbul ignore next: the case of config being null here cannot be + reached, as there's no way to have the untrigger call happen without + a config. -- @preserve */ +this._api.getConfigManager().getConfig()?.view.triggers.untrigger_seconds??0,(async()=>{await this._untriggerAction(e)}))}_deleteTimer(e){this._triggeredCameraTimers.get(e)?.stop(),this._triggeredCameraTimers.delete(e)}}function cx(e,t){return t="function"==typeof t?t:void 0,e&&e.length?Fg(e,void 0,t):[]}class lx{constructor(e){this._queries=null,e&&(this._queries=e)}clone(){return l_(this)}getQueries(){return this._queries}setQueries(e){return this._queries=e,this}getQueryCameraIDs(){if(!this._queries)return null;const e=new Set;return this._queries.forEach((t=>[...t.cameraIDs].forEach((t=>e.add(t))))),e}setQueryCameraIDs(e){if(!this._queries)return this;const t=[];return this._queries.forEach((n=>t.push({...n,cameraIDs:Ug(e)}))),this._queries=cx(t,jy),this}hasQueriesForCameraIDs(e){for(const t of e)if(!this._queries?.some((e=>e.cameraIDs.has(t))))return!1;return!0}}class dx extends lx{convertToClipsQueries(){for(const e of this._queries??[])delete e.hasSnapshot,e.hasClip=!0;return this}}class ux extends lx{}class hx{static areEventQueries(e){return e instanceof dx}static areRecordingQueries(e){return e instanceof ux}static areClipsQueries(e){return this.areEventQueries(e)&&!!e?.getQueries()?.every((e=>e.hasClip))}static areSnapshotQueries(e){return this.areEventQueries(e)&&!!e?.getQueries()?.every((e=>e.hasSnapshot))}static getQueriesType(e){return this.areEventQueries(e)?"event":this.areRecordingQueries(e)?"recording":null}static getMediaType(e){return this.areClipsQueries(e)?"clips":this.areSnapshotQueries(e)?"snapshots":this.areRecordingQueries(e)?"recordings":null}}const px=(e,t,n)=>{const a={anyCapabilities:["clips","snapshots","recordings"]};switch(t){case"image":case"diagnostics":return e.getStore().getCameraIDs();case"live":case"clip":case"clips":case"snapshot":case"snapshots":case"recording":case"recordings":const i="clip"===t?"clips":"snapshot"===t?"snapshots":"recording"===t?"recordings":t;return n?e.getStore().getAllDependentCameras(n,i):e.getStore().getCameraIDsWithCapability(i);case"timeline":return e.getStore().getCameraIDsWithCapability(a);case"media":return n?e.getStore().getAllDependentCameras(n,a):e.getStore().getCameraIDsWithCapability(a)}},mx=(e,t)=>Rv({},e,t);class gx{constructor(e){this.view=e.view,this.camera=e.camera,this.query=e.query??null,this.queryResults=e.queryResults??null,this.context=e.context??null,this.displayMode=e.displayMode??null}clone(){return new gx({view:this.view,camera:this.camera,query:this.query?.clone()??null,queryResults:this.queryResults?.clone()??null,context:this.context,displayMode:this.displayMode})}evolve(e){return new gx({view:void 0!==e.view?e.view:this.view,camera:void 0!==e.camera?e.camera:this.camera,query:void 0!==e.query?e.query:this.query?.clone()??null,queryResults:void 0!==e.queryResults?e.queryResults:this.queryResults?.clone()??null,context:void 0!==e.context?e.context:this.context,displayMode:void 0!==e.displayMode?e.displayMode:this.displayMode})}mergeInContext(e){return this.context=mx(this.context,e),this}removeContext(e){return this.context&&delete this.context[e],this}removeContextProperty(e,t){const n=this.context?.[e];return n&&delete n[t],this}is(e){return this.view==e}isGalleryView(){return["clips","snapshots","recordings"].includes(this.view)}isAnyMediaView(){return this.isViewerView()||this.is("live")||this.is("image")}isViewerView(){return["media","clip","snapshot","recording"].includes(this.view)}supportsMultipleDisplayModes(){return this.isViewerView()||this.is("live")}getDefaultMediaType(){return["clip","clips"].includes(this.view)?"clips":["snapshot","snapshots"].includes(this.view)?"snapshots":["recording","recordings"].includes(this.view)?"recordings":null}isGrid(){return"grid"===this.displayMode}}const fx=(e,t)=>{t?.forEach((t=>t.modify(e)))};class _x extends $s{}class yx extends $s{}class vx{constructor(e){this._api=e}getViewDefault(e){const t=this._api.getConfigManager().getConfig();if(!t)return null;let n=null;const a=e?.params?.view??t.view.default;if(e?.params?.camera)n=e.params.camera;else{const i=[...px(this._api.getCameraManager(),a)];if(!i.length)return null;if(e?.baseView?.camera&&t.view.default_cycle_camera){const t=i.indexOf(e.baseView.camera);n=i[t+1>=i.length?0:t+1]}else n=i[0]}return this.getViewByParameters({params:{...e?.params,view:a,camera:n},baseView:e?.baseView})}getViewByParameters(e){const t=this._api.getConfigManager().getConfig();if(!t)return null;let n=e?.params?.camera??e?.baseView?.camera??null,a=e?.params?.view??e?.baseView?.view??t.view.default;const i=this._api.getCameraManager().getStore().getCameraIDs();if(!n||!i.has(n)){n=px(this._api.getCameraManager(),a).keys().next().value??null}if(!n){const e=[...this._api.getCameraManager().getStore().getCameras()].reduce(((e,[t,n])=>{const a=n.getCapabilities()?.getRawCapabilities();return a&&(e[t]=a),e}),{});throw new _x(N_("error.no_supported_cameras"),{view:a,cameras_capabilities:e})}if(!this.isViewSupportedByCamera(n,a)){if(!e?.failSafe||!this.isViewSupportedByCamera(n,Ws)){const e=this._api.getCameraManager().getStore().getCamera(n)?.getCapabilities()?.getRawCapabilities();throw new yx(N_("error.no_supported_camera"),{view:a,camera:n,...e&&{camera_capabilities:e}})}a=Ws}const r=e?.params?.displayMode??e?.baseView?.displayMode??this._getDefaultDisplayModeForView(a,t),o={...e?.params,view:a,camera:n,displayMode:r},s=e?.baseView?e.baseView.evolve(o):new gx(o);return fx(s,e?.modifiers),s}isViewSupportedByCamera(e,t){return!!px(this._api.getCameraManager(),t,e).size}_getDefaultDisplayModeForView(e,t){let n=null;switch(e){case"media":case"clip":case"recording":case"snapshot":n=t.media_viewer.display?.mode??null;break;case"live":n=t.live.display?.mode??null}return n??"single"}}class bx{constructor(e,t){this._key=e,this._property=t}modify(e){e.removeContextProperty(this._key,this._property)}}class wx{constructor(e){this._query=e?.query,this._queryResults=e?.queryResults}modify(e){void 0!==this._query&&(e.query=this._query),void 0!==this._queryResults&&(e.queryResults=this._queryResults)}}const xx=(e,t,n)=>{let a;for(const[i,r]of e.entries()){const e=r.getStartTime(),o=r.getUsableEndTime();if(r.includesTime(t)&&e&&o){const t=o.getTime()-e.getTime();(!a||n&&a.cameraID!==n&&r.getCameraID()===n||t>a.duration&&(!n||a.cameraID!==n||r.getCameraID()===n))&&(a={index:i,duration:t,cameraID:r.getCameraID()})}}return a?a.index:null};class Cx{constructor(e){this._results=e?.results??[],this._selectedIndex=this._getInitialSelectedIndex(e)}_getInitialSelectedIndex(e){return null!=e?.selectedIndex?e.selectedIndex:e?.results&&e.results.length?e?.selectApproach&&"last"!==e?.selectApproach?0:e.results.length-1:null}clone(){return new Cx({results:this._results,selectedIndex:this._selectedIndex})}getResults(){return this._results}getSelectedIndex(){return this._selectedIndex}getResultsCount(){return this.getResults().length}hasResults(){return 0!==this.getResultsCount()}getResult(e){return void 0===e?null:this._results[e]}getSelectedResult(){const e=this.getSelectedIndex();return null!==e?this.getResult(e):null}hasSelectedResult(){return null!==this.getSelectedResult()}resetSelectedResult(){this._selectedIndex=null}selectIndex(e){(null===e||e>=0&&ee.getID()))),n=new Set(e._main.getResults()?.map((e=>e.getID())));return!(!t.size||!n.size||t.has(null)||n.has(null))&&((e,t)=>{for(const n of t)if(!e.has(n))return!1;return!0})(t,n)}getCameraIDs(){return new Set(this._cameras.keys())}getSlice(e){return e?this._cameras.get(e)??null:this._main}getResults(e){return this.getSlice(e)?.getResults()??null}getResultsCount(e){return this.getSlice(e)?.getResultsCount()??0}hasResults(e){return 0!==this.getSlice(e)?.getResultsCount()}getResult(e,t){return this.getSlice(t)?.getResult(e)??null}getSelectedIndex(e){return this.getSlice(e)?.getSelectedIndex()??null}getSelectedResult(e){return this.getSlice(e)?.getSelectedResult()??null}getMultipleSelectedResults(e){const t=[];if(!e||e.main){const e=this.getSelectedResult();e&&t.push(e)}const n=this._getCameraIDsFromCriteria(e);for(const e of n??[]){const n=this.getSelectedResult(e);n&&t.push(n)}return t}hasSelectedResult(e){return this.getSlice(e)?.hasSelectedResult()??!1}resetSelectedResult(e){return this.getSlice(e)?.resetSelectedResult(),this}getResultsTimestamp(){return this._resultsTimestamp}selectIndex(e,t){return this.getSlice(t)?.selectIndex(e),t||this.demoteMainSelectionToCameraSelection(),this}demoteMainSelectionToCameraSelection(){const e=this.getSelectedResult();if(e){const t=e.getCameraID();this.resetSelectedResult(t),this.selectResultIfFound((t=>t===e),{cameraID:t})}return this}promoteCameraSelectionToMainSelection(e){const t=this.getSelectedResult(e);return this.resetSelectedResult(),this.selectResultIfFound((e=>e===t)),this}_getCameraIDsFromCriteria(e){return e?.allCameras?this.getCameraIDs():e?.cameraID?new Set([e.cameraID]):null}selectResultIfFound(e,t){t&&!t?.main||(this._main.selectResultIfFound(e),this.demoteMainSelectionToCameraSelection());const n=this._getCameraIDsFromCriteria(t);for(const t of n??[])this.getSlice(t)?.selectResultIfFound(e);return this}selectBestResult(e,t){t&&!t.main||(this._main.selectBestResult(e),this.demoteMainSelectionToCameraSelection());const n=this._getCameraIDsFromCriteria(t);for(const t of n??[])this.getSlice(t)?.selectBestResult(e);return this}}class kx{constructor(e){this._api=e}async executeDefaultEventQuery(e){const t=e?.eventsMediaType&&"all"!==e?.eventsMediaType?e.eventsMediaType:{anyCapabilities:["clips","snapshots"]},n=this._api.getCameraManager(),a=e?.cameraID?n.getStore().getAllDependentCameras(e.cameraID,t):n.getStore().getCameraIDsWithCapability(t);if(!a.size)return null;const i=n.generateDefaultEventQueries(a,{limit:this._getChunkLimit(),..."clips"===e?.eventsMediaType&&{hasClip:!0},..."snapshots"===e?.eventsMediaType&&{hasSnapshot:!0}});if(!i)return null;const r=new dx(i),o=await this.execute(r,e?.executorOptions);return o?{query:r,queryResults:o}:null}async executeDefaultRecordingQuery(e){const t=this._api.getCameraManager(),n=e?.cameraID?t.getStore().getAllDependentCameras(e.cameraID,"recordings"):t.getStore().getCameraIDsWithCapability("recordings");if(!n.size)return null;const a=t.generateDefaultRecordingQueries(n,{limit:this._getChunkLimit()});if(!a)return null;const i=new ux(a),r=await this.execute(i,e?.executorOptions);return r?{query:i,queryResults:r}:null}async execute(e,t){const n=e.getQueries();if(!n)return null;const a=await this._api.getCameraManager().executeMediaQueries(n,{useCache:t?.useCache});if(!a)return null;const i=new Mx({results:a});return t?.rejectResults?.(i)?null:(t?.selectResult?.id?i.selectBestResult((e=>e.findIndex((e=>e.getID()===t.selectResult?.id)))):t?.selectResult?.func?i.selectResultIfFound(t.selectResult.func):t?.selectResult?.time&&i.selectBestResult((e=>xx(e,t.selectResult?.time?.time,t.selectResult?.time?.favorCameraID))),i)}_getChunkLimit(){const e=this._api.getConfigManager().getCardWideConfig();return e?.performance?.features.media_chunk_size??50}}class Sx{constructor(e,t){this._api=e,this._executor=t??new kx(e)}async getExistingQueryModifiers(e,t){return e.query?[new wx({queryResults:await this._executor.execute(e.query,t)})]:[]}async getNewQueryModifiers(e,t){return await this._executeNewQuery(e,{useCache:!1,...t})}async _executeNewQuery(e,t){const n=this._api.getConfigManager().getConfig();if(!n)return null;const a=e?.getDefaultMediaType(),i=[],r=async n=>{ +/* istanbul ignore if: this path cannot be reached -- @preserve */ +if(!n)return[];const a="recordings"===n?await this._executor.executeDefaultRecordingQuery({...!e.isGrid()&&{cameraID:e.camera},executorOptions:t}):"clips"===n||"snapshots"===n||"all"===n?await this._executor.executeDefaultEventQuery({...!e.isGrid()&&{cameraID:e.camera},eventsMediaType:n,executorOptions:t}):/* istanbul ignore next -- @preserve */ +null;return a?[new wx(a)]:[]};switch(e.view){case"live":"none"!==n.live.controls.thumbnails.mode&&i.push(...await r("recordings"===n.live.controls.thumbnails.media_type?"recordings":n.live.controls.thumbnails.events_media_type));break;case"media":i.push(...await r("clips"));break;case"clips":case"snapshots":case"recordings":i.push(...await r(a));break;case"clip":case"snapshot":case"recording":"none"!==n.media_viewer.controls.thumbnails.mode&&i.push(...await r(a))}return i.push(...this._getTimelineWindowViewModifier(e)),i.push(...this._getSeekTimeModifier(t?.selectResult?.time?.time)),i}_getTimelineWindowViewModifier(e){if(e.is("live")){const e=new Date,t=this._api.getConfigManager().getConfig()?.live; +/* istanbul ignore if: this if branch cannot be reached as if the config is + empty this function is never called -- @preserve */ +return t?[new Zv({timeline:{window:{start:Wu(e,{seconds:t.controls.timeline.window_seconds}),end:e}}})]:[]}return[new bx("timeline","window")]}_getSeekTimeModifier(e){return e?[new Zv({mediaViewer:{seek:e}})]:[new bx("mediaViewer","seek")]}}class Ex{constructor(e,t){this._view=null,this._epoch=this._createEpoch(),this._loadingIndex=1,this.setViewDefault=e=>this._setViewGeneric(this._viewFactory.getViewDefault.bind(this._viewFactory),e),this.setViewByParameters=e=>this._setViewGeneric(this._viewFactory.getViewByParameters.bind(this._viewFactory),e),this.setViewDefaultWithNewQuery=async e=>await this._setViewThenModifyAsync(this._viewFactory.getViewDefault.bind(this._viewFactory),this._viewQueryExecutor.getNewQueryModifiers.bind(this._viewQueryExecutor),e),this.setViewByParametersWithNewQuery=async e=>await this._setViewThenModifyAsync(this._viewFactory.getViewByParameters.bind(this._viewFactory),this._viewQueryExecutor.getNewQueryModifiers.bind(this._viewQueryExecutor),e),this.setViewByParametersWithExistingQuery=async e=>await this._setViewThenModifyAsync(this._viewFactory.getViewByParameters.bind(this._viewFactory),this._viewQueryExecutor.getExistingQueryModifiers.bind(this._viewQueryExecutor),e),this.initialize=async()=>(this._api.getQueryStringManager().hasViewRelatedActionsToRun()||this.setViewDefaultWithNewQuery({failSafe:!0}),!0),this._api=e,this._viewFactory=t?.viewFactory??new vx(e),this._viewQueryExecutor=t?.viewQueryExecutor??new Sx(e)}getEpoch(){return this._epoch}_createEpoch(e){return{manager:this,...e&&{oldView:e}}}getView(){return this._view}hasView(){return!!this.getView()}reset(){this._view&&this._setView(null)}_setViewGeneric(e,t){let n=null;try{n=e({baseView:this._view,...t})}catch(e){this._api.getMessageManager().setErrorIfHigherPriority(e)}n&&this._setView(n)}_markViewLoadingQuery(e,t){return e.mergeInContext({loading:{query:t}})}_markViewAsNotLoadingQuery(e){return e.removeContextProperty("loading","query")}async _setViewThenModifyAsync(e,t,n){let a=null;try{a=e({baseView:this._view,...n,params:{query:null,queryResults:null,...n?.params}})}catch(e){this._api.getMessageManager().setErrorIfHigherPriority(e)}if(!a)return;if(this._view&&this._shouldAdoptQueryAndResults(a))return a.query=this._view.query,a.queryResults=this._view.queryResults,this._markViewAsNotLoadingQuery(a),void this._setView(a);const i=this._loadingIndex++;this._markViewLoadingQuery(a,i),this._setView(a);let r=null,o=null;try{r=await t(a,n?.queryExecutorOptions)}catch(e){o=e}if(this._view&&this.hasMajorMediaChange(this._view,a))return void(this._view.context?.loading?.query===i&&this._setView(this._markViewAsNotLoadingQuery(this._view.clone())));if(o)return void this._api.getMessageManager().setErrorIfHigherPriority(o); +/* istanbul ignore if: the if path cannot be reached as the view is set + above -- @preserve */if(!this._view)return;const s=this._view.clone();this._view.context?.loading?.query===i&&this._markViewAsNotLoadingQuery(s),fx(s,r),this._setView(s)}_shouldAdoptQueryAndResults(e){const t=this._view?.isViewerView()&&e?.isGalleryView(),n=e?.getDefaultMediaType(),a=hx.getMediaType(this._view?.query)===n;return!!t&&a}setViewWithMergedContext(e){if(this._view)return this._setView(this._view?.clone().mergeInContext(e))}isViewSupportedByCamera(e,t){return!!px(this._api.getCameraManager(),t,e).size}hasMajorMediaChange(e,t){const n=t??this._view;return!!e!=!!n||e?.view!==n?.view||e?.camera!==n?.camera||"live"===n?.view&&e&&xv(e)!==xv(n)||"live"!==n?.view&&e?.queryResults!==n?.queryResults}_setView(e){const t=this._view;V_(this._api.getConfigManager().getCardWideConfig(),"Frigate Card view change: ",e),this._view=e,this._epoch=this._createEpoch(t),this.hasMajorMediaChange(t)&&this._api.getMediaLoadedInfoManager().clear(),t?.view!==e?.view&&this._api.getCardElementManager().scrollReset(),this._api.getMessageManager().reset(),this._api.getStyleManager().setExpandedMode(),this._api.getConditionsManager()?.setState({view:e?.view,camera:e?.camera,displayMode:e?.displayMode??void 0}),this._api.getCardElementManager().update()}}class $x{constructor(e,t,n,a){this._deviceRegistryManager=new iv(new nv((e=>e.id))),this._entityRegistryManager=new sv(new nv((e=>e.entity_id))),this._resolvedMediaCache=new lv,this._actionsManager=new pb(this),this._automationsManager=new mb(this),this._cameraManager=new tv(this),this._cameraURLManager=new gb(this),this._configManager=new Cw(this),this._defaultManager=new Mw(this),this._downloadManager=new $w(this),this._expandManager=new Aw(this),this._fullscreenManager=new Dw(this),this._hassManager=new Pw(this),this._initializationManager=new Wb(this),this._interactionManager=new qw(this),this._keyboardStateManager=new Uw(this),this._mediaLoadedInfoManager=new Jw(this),this._mediaPlayerManager=new tx(this),this._messageManager=new nx(this),this._microphoneManager=new ax(this),this._queryStringManager=new ix(this),this._statusBarItemManager=new rx(this),this._styleManager=new ox(this),this._triggersManager=new sx(this),this._viewManager=new Ex(this),e.addController(this),this._conditionsManager=new yw(this,a),this._cardElementManager=new Zb(this,e,t,n)}getActionsManager(){return this._actionsManager}getAutomationsManager(){return this._automationsManager}getCameraManager(){return this._cameraManager}getCameraURLManager(){return this._cameraURLManager}getCardElementManager(){return this._cardElementManager}getConditionsManager(){return this._conditionsManager}static async getConfigElement(){return await import("./editor-0c0425c2.js"),document.createElement("frigate-card-editor")}getConfigManager(){return this._configManager}getDefaultManager(){return this._defaultManager}getDeviceRegistryManager(){return this._deviceRegistryManager}getDownloadManager(){return this._downloadManager}getEntityRegistryManager(){return this._entityRegistryManager}getExpandManager(){return this._expandManager}getFullscreenManager(){return this._fullscreenManager}getHASSManager(){return this._hassManager}getInitializationManager(){return this._initializationManager}getInteractionManager(){return this._interactionManager}getKeyboardStateManager(){return this._keyboardStateManager}getMediaLoadedInfoManager(){return this._mediaLoadedInfoManager}getMediaPlayerManager(){return this._mediaPlayerManager}getMessageManager(){return this._messageManager}getMicrophoneManager(){return this._microphoneManager}getQueryStringManager(){return this._queryStringManager}getResolvedMediaCache(){return this._resolvedMediaCache}getStatusBarItemManager(){return this._statusBarItemManager}static getStubConfig(e){return{cameras:[{camera_entity:e.find((e=>e.startsWith("camera.")))??"camera.demo"}]}}getStyleManager(){return this._styleManager}getTriggersManager(){return this._triggersManager}getViewManager(){return this._viewManager}hostConnected(){this.getCardElementManager().elementConnected()}hostDisconnected(){this.getCardElementManager().elementDisconnected()}}class Ax{constructor(){this._dynamicMenuButtons=[]}addDynamicMenuButton(e){this._dynamicMenuButtons.includes(e)||this._dynamicMenuButtons.push(e)}removeDynamicMenuButton(e){this._dynamicMenuButtons=this._dynamicMenuButtons.filter((t=>t!=e))}calculateButtons(e,t,n,a){return[this._getDefaultButton(t),this._getCamerasButton(t,n,a?.view),this._getSubstreamsButton(t,n,a?.view),this._getLiveButton(t,a?.view,a?.viewManager),this._getClipsButton(t,a?.view,a?.viewManager),this._getSnapshotsButton(t,a?.view,a?.viewManager),this._getRecordingsButton(t,a?.view,a?.viewManager),this._getImageButton(t,a?.view,a?.viewManager),this._getTimelineButton(t,a?.view,a?.viewManager),this._getDownloadButton(t,n,a?.view),this._getCameraUIButton(t,a?.showCameraUIButton),this._getMicrophoneButton(t,a?.microphoneManager,a?.currentMediaLoadedInfo),this._getExpandButton(t,a?.inExpandedMode),this._getFullscreenButton(t,a?.inFullscreenMode),this._getCastButton(e,t,n,a?.view,a?.mediaPlayerController),this._getPlayPauseButton(t,a?.currentMediaLoadedInfo),this._getMuteUnmuteButton(t,a?.currentMediaLoadedInfo),this._getScreenshotButton(t,a?.currentMediaLoadedInfo),this._getDisplayModeButton(t,n,a?.view),this._getPTZControlsButton(t,n,a?.view),this._getPTZHomeButton(t,n,a?.view),...this._dynamicMenuButtons.map((e=>({style:this._getStyleFromActions(t,e,a),...e})))].filter(rf)}_getDefaultButton(e){return{icon:"frigate",...e.menu.buttons.frigate,type:"custom:frigate-card-menu-icon",title:N_("config.menu.buttons.frigate"),permanent:!0,tap_action:"hidden"===e.menu?.style?pf("menu_toggle"):pf("default"),hold_action:pf("diagnostics")}}_getCamerasButton(e,t,n){const a=t.getStore().getCameraIDsWithCapability("menu");if(a.size>1){const i=Array.from(t.getStore().getCameraConfigEntries(a),(([e,a])=>{const i=mf("camera_select",e),r=t.getCameraMetadata(e);return{enabled:!0,icon:r?.icon,entity:a.camera_entity,state_color:!0,title:r?.title,selected:n?.camera===e,...i&&{tap_action:i}}}));return{icon:"mdi:video-switch",...e.menu.buttons.cameras,type:"custom:frigate-card-menu-submenu",title:N_("config.menu.buttons.cameras"),items:i}}return null}_getSubstreamsButton(e,t,n){if(!n)return null;const a=t.getStore().getAllDependentCameras(n.camera,"substream");if(a.size&&n.is("live")){const i=[...a].filter((e=>e!==n.camera)),r=[n.camera,...i],o=xv(n);if(2===r.length)return{icon:"mdi:video-input-component",style:o!==n.camera?this._getEmphasizedStyle():{},title:N_("config.menu.buttons.substreams"),...e.menu.buttons.substreams,type:"custom:frigate-card-menu-icon",tap_action:pf(Cv(n)?"live_substream_off":"live_substream_on")};if(r.length>2){const a=Array.from(r,(e=>{const n=mf("live_substream_select",e),a=t.getCameraMetadata(e)??void 0,i=t.getStore().getCameraConfig(e);return{enabled:!0,icon:a?.icon,entity:i?.camera_entity,state_color:!0,title:a?.title,selected:o===e,...n&&{tap_action:n}}}));return{icon:"mdi:video-input-component",title:N_("config.menu.buttons.substreams"),style:o!==n.camera?this._getEmphasizedStyle():{},...e.menu.buttons.substreams,type:"custom:frigate-card-menu-submenu",items:a}}}return null}_getLiveButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"live")?{icon:"mdi:cctv",...e.menu.buttons.live,type:"custom:frigate-card-menu-icon",title:N_("config.view.views.live"),style:t.is("live")?this._getEmphasizedStyle():{},tap_action:pf("live")}:null}_getClipsButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"clips")?{icon:"mdi:filmstrip",...e.menu.buttons.clips,type:"custom:frigate-card-menu-icon",title:N_("config.view.views.clips"),style:t?.is("clips")?this._getEmphasizedStyle():{},tap_action:pf("clips"),hold_action:pf("clip")}:null}_getSnapshotsButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"snapshots")?{icon:"mdi:camera",...e.menu.buttons.snapshots,type:"custom:frigate-card-menu-icon",title:N_("config.view.views.snapshots"),style:t?.is("snapshots")?this._getEmphasizedStyle():{},tap_action:pf("snapshots"),hold_action:pf("snapshot")}:null}_getRecordingsButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"recordings")?{icon:"mdi:album",...e.menu.buttons.recordings,type:"custom:frigate-card-menu-icon",title:N_("config.view.views.recordings"),style:t.is("recordings")?this._getEmphasizedStyle():{},tap_action:pf("recordings"),hold_action:pf("recording")}:null}_getImageButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"image")?{icon:"mdi:image",...e.menu.buttons.image,type:"custom:frigate-card-menu-icon",title:N_("config.view.views.image"),style:t?.is("image")?this._getEmphasizedStyle():{},tap_action:pf("image")}:null}_getTimelineButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"timeline")?{icon:"mdi:chart-gantt",...e.menu.buttons.timeline,type:"custom:frigate-card-menu-icon",title:N_("config.view.views.timeline"),style:t.is("timeline")?this._getEmphasizedStyle():{},tap_action:pf("timeline")}:null}_getDownloadButton(e,t,n){const a=n?.queryResults?.getSelectedResult(),i=a?t?.getMediaCapabilities(a):null;return n?.isViewerView()&&i?.canDownload&&!fb()?{icon:"mdi:download",...e.menu.buttons.download,type:"custom:frigate-card-menu-icon",title:N_("config.menu.buttons.download"),tap_action:pf("download")}:null}_getCameraUIButton(e,t){return t?{icon:"mdi:web",...e.menu.buttons.camera_ui,type:"custom:frigate-card-menu-icon",title:N_("config.menu.buttons.camera_ui"),tap_action:pf("camera_ui")}:null}_getMicrophoneButton(e,t,n){if(t&&n?.capabilities?.supports2WayAudio){const n=t.isForbidden()||!t.isSupported(),a=t.isMuted(),i=e.menu.buttons.microphone.type;return{icon:n?"mdi:microphone-message-off":a?"mdi:microphone-off":"mdi:microphone",...e.menu.buttons.microphone,type:"custom:frigate-card-menu-icon",title:N_("config.menu.buttons.microphone"),style:n||a?{}:this._getEmphasizedStyle(!0),...!n&&"momentary"===i&&{start_tap_action:pf("microphone_unmute"),end_tap_action:pf("microphone_mute")},...!n&&"toggle"===i&&{tap_action:pf(a?"microphone_unmute":"microphone_mute")}}}return null}_getExpandButton(e,t){return{icon:t?"mdi:arrow-collapse-all":"mdi:arrow-expand-all",...e.menu.buttons.expand,type:"custom:frigate-card-menu-icon",title:N_("config.menu.buttons.expand"),tap_action:pf("expand"),style:t?this._getEmphasizedStyle():{}}}_getFullscreenButton(e,t){return fb()?null:{icon:t?"mdi:fullscreen-exit":"mdi:fullscreen",...e.menu.buttons.fullscreen,type:"custom:frigate-card-menu-icon",title:N_("config.menu.buttons.fullscreen"),tap_action:pf("fullscreen"),style:t?this._getEmphasizedStyle():{}}}_getCastButton(e,t,n,a,i){if(!a)return null;const r=n.getStore().getCameraConfig(a.camera);if(i?.hasMediaPlayers()&&(a.isViewerView()||a.is("live")&&r?.camera_entity)){const n=i.getMediaPlayers().map((t=>{const n=Pb(e,t)||t,a=e.states[t],i=gf(t,"play"),r=gf(t,"stop"),o=!a||"unavailable"===a.state;return{enabled:!0,selected:!1,icon:Lb(e,t),entity:t,state_color:!1,title:n,disabled:o,...!o&&i&&{tap_action:i},...!o&&r&&{hold_action:r}}}));return{icon:"mdi:cast",...t.menu.buttons.media_player,type:"custom:frigate-card-menu-submenu",title:N_("config.menu.buttons.media_player"),items:n}}return null}_getPlayPauseButton(e,t){if(t&&t.player&&t.capabilities?.supportsPause){const n=t.player.isPaused();return{icon:n?"mdi:play":"mdi:pause",...e.menu.buttons.play,type:"custom:frigate-card-menu-icon",title:N_("config.menu.buttons.play"),tap_action:pf(n?"play":"pause")}}return null}_getMuteUnmuteButton(e,t){if(t&&t.player&&t?.capabilities?.hasAudio){const n=t.player.isMuted();return{icon:n?"mdi:volume-off":"mdi:volume-high",...e.menu.buttons.mute,type:"custom:frigate-card-menu-icon",title:N_("config.menu.buttons.mute"),tap_action:pf(n?"unmute":"mute")}}return null}_getScreenshotButton(e,t){return t&&t.player?{icon:"mdi:monitor-screenshot",...e.menu.buttons.screenshot,type:"custom:frigate-card-menu-icon",title:N_("config.menu.buttons.screenshot"),tap_action:pf("screenshot")}:null}_getDisplayModeButton(e,t,n){const a=n?px(t,n.view):null;if(n?.supportsMultipleDisplayModes()&&a&&a.size>1){const t=n.isGrid();return{icon:t?"mdi:grid-off":"mdi:grid",...e.menu.buttons.display_mode,style:t?this._getEmphasizedStyle():{},type:"custom:frigate-card-menu-icon",title:N_(t?"display_modes.single":"display_modes.grid"),tap_action:(i=t?"single":"grid",{action:"fire-dom-event",frigate_card_action:"display_mode_select",display_mode:i,...r?.cardID&&{card_id:r.cardID}})}}var i,r;return null}_getPTZControlsButton(e,t,n){const a=n?.is("live")?e.live.controls.ptz:n?.isViewerView()?e.media_viewer.controls.ptz:null;if(!n||!a||"off"===a.mode)return null;const i=Ov(n,{cameraManager:t,..."auto"===a.mode&&{type:"ptz"}});if(i){const t=!1!==n.context?.ptzControls?.enabled&&("on"===a.mode||"auto"===a.mode&&"ptz"===i.type);return{icon:"mdi:pan",...e.menu.buttons.ptz_controls,style:t?this._getEmphasizedStyle():{},type:"custom:frigate-card-menu-icon",title:N_("config.menu.buttons.ptz_controls"),tap_action:(r=!t,{action:"fire-dom-event",frigate_card_action:"ptz_controls",enabled:r,...o?.cardID&&{card_id:o.cardID}})}}var r,o;return null}_getPTZHomeButton(e,t,n){const a=n?Ov(n,{cameraManager:t}):null;return!a||(("digital"===a.type&&n?.context?.zoom?.[a.targetID]?.observed?.isDefault)??1)?null:{icon:"mdi:home",...e.menu.buttons.ptz_home,type:"custom:frigate-card-menu-icon",title:N_("config.menu.buttons.ptz_home"),tap_action:ff({targetID:a.targetID})}}_getEmphasizedStyle(e){return e?{animation:"pulse 3s infinite",color:"var(--error-color, white)"}:{color:"var(--primary-color, white)"}}_getStyleFromActions(e,t,n){for(const a of[t.tap_action,t.double_tap_action,t.hold_action,t.start_tap_action,t.end_tap_action]){const t=Array.isArray(a)?a:[a];for(const a of t){if(!a||"fire-dom-event"!==a.action||!("frigate_card_action"in a))continue;const t=a;if(Us.some((e=>e===t.frigate_card_action&&n?.view?.is(t.frigate_card_action)))||"default"===t.frigate_card_action&&n?.view?.is(e.view.default)||"fullscreen"===t.frigate_card_action&&n?.inFullscreenMode||"camera_select"===t.frigate_card_action&&n?.view?.camera===t.camera)return this._getEmphasizedStyle()}}return{}}} +/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */ +function Ix(e){return null==e}var zx=function(e,t){var n,a="";for(n=0;ns&&(t=a-s+(r=" ... ").length),n-a>s&&(n=a+s-(o=" ...").length),{str:r+e.slice(t,n).replace(/\t/g,"→")+o,pos:a-t+r.length}}function Px(e,t){return Tx.repeat(" ",t-e.length)+e}var Lx=function(e,t){if(t=Object.create(t||null),!e.buffer)return null;t.maxLength||(t.maxLength=79),"number"!=typeof t.indent&&(t.indent=1),"number"!=typeof t.linesBefore&&(t.linesBefore=3),"number"!=typeof t.linesAfter&&(t.linesAfter=2);for(var n,a=/\r?\n|\r|\0/g,i=[0],r=[],o=-1;n=a.exec(e.buffer);)r.push(n.index),i.push(n.index+n[0].length),e.position<=n.index&&o<0&&(o=i.length-2);o<0&&(o=i.length-1);var s,c,l="",d=Math.min(e.line+t.linesAfter,r.length).toString().length,u=t.maxLength-(t.indent+d+3);for(s=1;s<=t.linesBefore&&!(o-s<0);s++)c=Rx(e.buffer,i[o-s],r[o-s],e.position-(i[o]-i[o-s]),u),l=Tx.repeat(" ",t.indent)+Px((e.line-s+1).toString(),d)+" | "+c.str+"\n"+l;for(c=Rx(e.buffer,i[o],r[o],e.position,u),l+=Tx.repeat(" ",t.indent)+Px((e.line+1).toString(),d)+" | "+c.str+"\n",l+=Tx.repeat("-",t.indent+d+3+c.pos)+"^\n",s=1;s<=t.linesAfter&&!(o+s>=r.length);s++)c=Rx(e.buffer,i[o+s],r[o+s],e.position-(i[o]-i[o+s]),u),l+=Tx.repeat(" ",t.indent)+Px((e.line+s+1).toString(),d)+" | "+c.str+"\n";return l.replace(/\n$/,"")},Nx=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],Fx=["scalar","sequence","mapping"];var Vx=function(e,t){if(t=t||{},Object.keys(t).forEach((function(t){if(-1===Nx.indexOf(t))throw new Dx('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.options=t,this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.representName=t.representName||null,this.defaultStyle=t.defaultStyle||null,this.multi=t.multi||!1,this.styleAliases=function(e){var t={};return null!==e&&Object.keys(e).forEach((function(n){e[n].forEach((function(e){t[String(e)]=n}))})),t}(t.styleAliases||null),-1===Fx.indexOf(this.kind))throw new Dx('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')};function Hx(e,t){var n=[];return e[t].forEach((function(e){var t=n.length;n.forEach((function(n,a){n.tag===e.tag&&n.kind===e.kind&&n.multi===e.multi&&(t=a)})),n[t]=e})),n}function Bx(e){return this.extend(e)}Bx.prototype.extend=function(e){var t=[],n=[];if(e instanceof Vx)n.push(e);else if(Array.isArray(e))n=n.concat(e);else{if(!e||!Array.isArray(e.implicit)&&!Array.isArray(e.explicit))throw new Dx("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");e.implicit&&(t=t.concat(e.implicit)),e.explicit&&(n=n.concat(e.explicit))}t.forEach((function(e){if(!(e instanceof Vx))throw new Dx("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(e.loadKind&&"scalar"!==e.loadKind)throw new Dx("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(e.multi)throw new Dx("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")})),n.forEach((function(e){if(!(e instanceof Vx))throw new Dx("Specified list of YAML types (or a single Type object) contains a non-Type object.")}));var a=Object.create(Bx.prototype);return a.implicit=(this.implicit||[]).concat(t),a.explicit=(this.explicit||[]).concat(n),a.compiledImplicit=Hx(a,"implicit"),a.compiledExplicit=Hx(a,"explicit"),a.compiledTypeMap=function(){var e,t,n={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function a(e){e.multi?(n.multi[e.kind].push(e),n.multi.fallback.push(e)):n[e.kind][e.tag]=n.fallback[e.tag]=e}for(e=0,t=arguments.length;e=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),tC=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var nC=/^[-+]?[0-9]+e/;var aC=new Vx("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!tC.test(e)||"_"===e[e.length-1])},construct:function(e){var t,n;return n="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:n*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||Tx.isNegativeZero(e))},represent:function(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(Tx.isNegativeZero(e))return"-0.0";return n=e.toString(10),nC.test(n)?n.replace("e",".e"):n},defaultStyle:"lowercase"}),iC=Qx.extend({implicit:[Gx,Yx,eC,aC]}),rC=iC,oC=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),sC=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");var cC=new Vx("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==oC.exec(e)||null!==sC.exec(e))},construct:function(e){var t,n,a,i,r,o,s,c,l=0,d=null;if(null===(t=oC.exec(e))&&(t=sC.exec(e)),null===t)throw new Error("Date resolve error");if(n=+t[1],a=+t[2]-1,i=+t[3],!t[4])return new Date(Date.UTC(n,a,i));if(r=+t[4],o=+t[5],s=+t[6],t[7]){for(l=t[7].slice(0,3);l.length<3;)l+="0";l=+l}return t[9]&&(d=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(d=-d)),c=new Date(Date.UTC(n,a,i,r,o,s,l)),d&&c.setTime(c.getTime()-d),c},instanceOf:Date,represent:function(e){return e.toISOString()}});var lC=new Vx("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}}),dC="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";var uC=new Vx("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,a=0,i=e.length,r=dC;for(n=0;n64)){if(t<0)return!1;a+=6}return a%8==0},construct:function(e){var t,n,a=e.replace(/[\r\n=]/g,""),i=a.length,r=dC,o=0,s=[];for(t=0;t>16&255),s.push(o>>8&255),s.push(255&o)),o=o<<6|r.indexOf(a.charAt(t));return 0===(n=i%4*6)?(s.push(o>>16&255),s.push(o>>8&255),s.push(255&o)):18===n?(s.push(o>>10&255),s.push(o>>2&255)):12===n&&s.push(o>>4&255),new Uint8Array(s)},predicate:function(e){return"[object Uint8Array]"===Object.prototype.toString.call(e)},represent:function(e){var t,n,a="",i=0,r=e.length,o=dC;for(t=0;t>18&63],a+=o[i>>12&63],a+=o[i>>6&63],a+=o[63&i]),i=(i<<8)+e[t];return 0===(n=r%3)?(a+=o[i>>18&63],a+=o[i>>12&63],a+=o[i>>6&63],a+=o[63&i]):2===n?(a+=o[i>>10&63],a+=o[i>>4&63],a+=o[i<<2&63],a+=o[64]):1===n&&(a+=o[i>>2&63],a+=o[i<<4&63],a+=o[64],a+=o[64]),a}}),hC=Object.prototype.hasOwnProperty,pC=Object.prototype.toString;var mC=new Vx("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,n,a,i,r,o=[],s=e;for(t=0,n=s.length;t>10),56320+(e-65536&1023))}for(var BC=new Array(256),qC=new Array(256),UC=0;UC<256;UC++)BC[UC]=VC(UC)?1:0,qC[UC]=VC(UC);function WC(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||vC,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function ZC(e,t){var n={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return n.snippet=Lx(n),new Dx(t,n)}function QC(e,t){throw ZC(e,t)}function GC(e,t){e.onWarning&&e.onWarning.call(null,ZC(e,t))}var YC={YAML:function(e,t,n){var a,i,r;null!==e.version&&QC(e,"duplication of %YAML directive"),1!==n.length&&QC(e,"YAML directive accepts exactly one argument"),null===(a=/^([0-9]+)\.([0-9]+)$/.exec(n[0]))&&QC(e,"ill-formed argument of the YAML directive"),i=parseInt(a[1],10),r=parseInt(a[2],10),1!==i&&QC(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=r<2,1!==r&&2!==r&&GC(e,"unsupported YAML version of the document")},TAG:function(e,t,n){var a,i;2!==n.length&&QC(e,"TAG directive accepts exactly two arguments"),a=n[0],i=n[1],zC.test(a)||QC(e,"ill-formed tag handle (first argument) of the TAG directive"),bC.call(e.tagMap,a)&&QC(e,'there is a previously declared suffix for "'+a+'" tag handle'),TC.test(i)||QC(e,"ill-formed tag prefix (second argument) of the TAG directive");try{i=decodeURIComponent(i)}catch(t){QC(e,"tag prefix is malformed: "+i)}e.tagMap[a]=i}};function KC(e,t,n,a){var i,r,o,s;if(t1&&(e.result+=Tx.repeat("\n",t-1))}function iM(e,t){var n,a,i=e.tag,r=e.anchor,o=[],s=!1;if(-1!==e.firstTabInLine)return!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=o),a=e.input.charCodeAt(e.position);0!==a&&(-1!==e.firstTabInLine&&(e.position=e.firstTabInLine,QC(e,"tab characters must not be used in indentation")),45===a)&&RC(e.input.charCodeAt(e.position+1));)if(s=!0,e.position++,tM(e,!0,-1)&&e.lineIndent<=t)o.push(null),a=e.input.charCodeAt(e.position);else if(n=e.line,sM(e,t,CC,!1,!0),o.push(e.result),tM(e,!0,-1),a=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&0!==a)QC(e,"bad indentation of a sequence entry");else if(e.lineIndentt?m=1:e.lineIndent===t?m=0:e.lineIndentt?m=1:e.lineIndent===t?m=0:e.lineIndentt)&&(_&&(o=e.line,s=e.lineStart,c=e.position),sM(e,t,MC,!0,i)&&(_?g=e.result:f=e.result),_||(JC(e,h,p,m,g,f,o,s,c),m=g=f=null),tM(e,!0,-1),l=e.input.charCodeAt(e.position)),(e.line===r||e.lineIndent>t)&&0!==l)QC(e,"bad indentation of a mapping entry");else if(e.lineIndent=0))break;0===i?QC(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):c?QC(e,"repeat of an indentation width identifier"):(l=t+i-1,c=!0)}if(DC(r)){do{r=e.input.charCodeAt(++e.position)}while(DC(r));if(35===r)do{r=e.input.charCodeAt(++e.position)}while(!OC(r)&&0!==r)}for(;0!==r;){for(eM(e),e.lineIndent=0,r=e.input.charCodeAt(e.position);(!c||e.lineIndentl&&(l=e.lineIndent),OC(r))d++;else{if(e.lineIndent0){for(i=o,r=0;i>0;i--)(o=LC(s=e.input.charCodeAt(++e.position)))>=0?r=(r<<4)+o:QC(e,"expected hexadecimal character");e.result+=HC(r),e.position++}else QC(e,"unknown escape sequence");n=a=e.position}else OC(s)?(KC(e,n,a,!0),aM(e,tM(e,!1,t)),n=a=e.position):e.position===e.lineStart&&nM(e)?QC(e,"unexpected end of the document within a double quoted scalar"):(e.position++,a=e.position)}QC(e,"unexpected end of the stream within a double quoted scalar")}(e,h)?f=!0:!function(e){var t,n,a;if(42!==(a=e.input.charCodeAt(e.position)))return!1;for(a=e.input.charCodeAt(++e.position),t=e.position;0!==a&&!RC(a)&&!PC(a);)a=e.input.charCodeAt(++e.position);return e.position===t&&QC(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),bC.call(e.anchorMap,n)||QC(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],tM(e,!0,-1),!0}(e)?function(e,t,n){var a,i,r,o,s,c,l,d,u=e.kind,h=e.result;if(RC(d=e.input.charCodeAt(e.position))||PC(d)||35===d||38===d||42===d||33===d||124===d||62===d||39===d||34===d||37===d||64===d||96===d)return!1;if((63===d||45===d)&&(RC(a=e.input.charCodeAt(e.position+1))||n&&PC(a)))return!1;for(e.kind="scalar",e.result="",i=r=e.position,o=!1;0!==d;){if(58===d){if(RC(a=e.input.charCodeAt(e.position+1))||n&&PC(a))break}else if(35===d){if(RC(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&nM(e)||n&&PC(d))break;if(OC(d)){if(s=e.line,c=e.lineStart,l=e.lineIndent,tM(e,!1,-1),e.lineIndent>=t){o=!0,d=e.input.charCodeAt(e.position);continue}e.position=r,e.line=s,e.lineStart=c,e.lineIndent=l;break}}o&&(KC(e,i,r,!1),aM(e,e.line-s),i=r=e.position,o=!1),DC(d)||(r=e.position+1),d=e.input.charCodeAt(++e.position)}return KC(e,i,r,!1),!!e.result||(e.kind=u,e.result=h,!1)}(e,h,wC===n)&&(f=!0,null===e.tag&&(e.tag="?")):(f=!0,null===e.tag&&null===e.anchor||QC(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===m&&(f=s&&iM(e,p))),null===e.tag)null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);else if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&QC(e,'unacceptable node kind for ! tag; it should be "scalar", not "'+e.kind+'"'),c=0,l=e.implicitTypes.length;c"),null!==e.result&&u.kind!==e.kind&&QC(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+u.kind+'", not "'+e.kind+'"'),u.resolve(e.result,e.tag)?(e.result=u.construct(e.result,e.tag),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):QC(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||f}function cM(e){var t,n,a,i,r=e.position,o=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);0!==(i=e.input.charCodeAt(e.position))&&(tM(e,!0,-1),i=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==i));){for(o=!0,i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!RC(i);)i=e.input.charCodeAt(++e.position);for(a=[],(n=e.input.slice(t,e.position)).length<1&&QC(e,"directive name must not be less than one character in length");0!==i;){for(;DC(i);)i=e.input.charCodeAt(++e.position);if(35===i){do{i=e.input.charCodeAt(++e.position)}while(0!==i&&!OC(i));break}if(OC(i))break;for(t=e.position;0!==i&&!RC(i);)i=e.input.charCodeAt(++e.position);a.push(e.input.slice(t,e.position))}0!==i&&eM(e),bC.call(YC,n)?YC[n](e,n,a):GC(e,'unknown document directive "'+n+'"')}tM(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,tM(e,!0,-1)):o&&QC(e,"directives end mark is expected"),sM(e,e.lineIndent-1,MC,!1,!0),tM(e,!0,-1),e.checkLineBreaks&&AC.test(e.input.slice(r,e.position))&&GC(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&nM(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,tM(e,!0,-1)):e.position=55296&&a<=56319&&t+1=56320&&n<=57343?1024*(a-55296)+n-56320+65536:a}function XM(e){return/^\n* /.test(e)}var JM=1,ek=2,tk=3,nk=4,ak=5;function ik(e,t,n,a,i,r,o,s){var c,l=0,d=null,u=!1,h=!1,p=-1!==a,m=-1,g=function(e){return QM(e)&&e!==pM&&!ZM(e)&&e!==SM&&e!==IM&&e!==EM&&e!==kM&&e!==TM&&e!==jM&&e!==DM&&e!==PM&&e!==bM&&e!==xM&&e!==MM&&e!==yM&&e!==RM&&e!==$M&&e!==AM&&e!==CM&&e!==vM&&e!==wM&&e!==zM&&e!==OM}(KM(e,0))&&function(e){return!ZM(e)&&e!==EM}(KM(e,e.length-1));if(t||o)for(c=0;c=65536?c+=2:c++){if(!QM(l=KM(e,c)))return ak;g=g&&YM(l,d,s),d=l}else{for(c=0;c=65536?c+=2:c++){if((l=KM(e,c))===gM)u=!0,p&&(h=h||c-m-1>a&&" "!==e[m+1],m=c);else if(!QM(l))return ak;g=g&&YM(l,d,s),d=l}h=h||p&&c-m-1>a&&" "!==e[m+1]}return u||h?n>9&&XM(e)?ak:o?r===BM?ak:ek:h?nk:tk:!g||o||i(e)?r===BM?ak:ek:JM}function rk(e,t,n,a,i){e.dump=function(){if(0===t.length)return e.quotingType===BM?'""':"''";if(!e.noCompatMode&&(-1!==NM.indexOf(t)||FM.test(t)))return e.quotingType===BM?'"'+t+'"':"'"+t+"'";var r=e.indent*Math.max(1,n),o=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-r),s=a||e.flowLevel>-1&&n>=e.flowLevel;switch(ik(t,s,e.indent,o,(function(t){return function(e,t){var n,a;for(n=0,a=e.implicitTypes.length;n"+ok(t,e.indent)+sk(UM(function(e,t){var n,a,i=/(\n+)([^\n]*)/g,r=(s=e.indexOf("\n"),s=-1!==s?s:e.length,i.lastIndex=s,ck(e.slice(0,s),t)),o="\n"===e[0]||" "===e[0];var s;for(;a=i.exec(e);){var c=a[1],l=a[2];n=" "===l[0],r+=c+(o||n||""===l?"":"\n")+ck(l,t),o=n}return r}(t,o),r));case ak:return'"'+function(e){for(var t,n="",a=0,i=0;i=65536?i+=2:i++)a=KM(e,i),!(t=LM[a])&&QM(a)?(n+=e[i],a>=65536&&(n+=e[i+1])):n+=t||VM(a);return n}(t)+'"';default:throw new Dx("impossible error: invalid scalar style")}}()}function ok(e,t){var n=XM(e)?String(t):"",a="\n"===e[e.length-1];return n+(a&&("\n"===e[e.length-2]||"\n"===e)?"+":a?"":"-")+"\n"}function sk(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function ck(e,t){if(""===e||" "===e[0])return e;for(var n,a,i=/ [^ ]/g,r=0,o=0,s=0,c="";n=i.exec(e);)(s=n.index)-r>t&&(a=o>r?o:s,c+="\n"+e.slice(r,a),r=a+1),o=s;return c+="\n",e.length-r>t&&o>r?c+=e.slice(r,o)+"\n"+e.slice(o+1):c+=e.slice(r),c.slice(1)}function lk(e,t,n,a){var i,r,o,s="",c=e.tag;for(i=0,r=n.length;i tag resolver accepts not "'+c+'" style');a=s.represent[c](t,c)}e.dump=a}return!0}return!1}function uk(e,t,n,a,i,r,o){e.tag=null,e.dump=n,dk(e,n,!1)||dk(e,n,!0);var s,c=uM.call(e.dump),l=a;a&&(a=e.flowLevel<0||e.flowLevel>t);var d,u,h="[object Object]"===c||"[object Array]"===c;if(h&&(u=-1!==(d=e.duplicates.indexOf(n))),(null!==e.tag&&"?"!==e.tag||u||2!==e.indent&&t>0)&&(i=!1),u&&e.usedDuplicates[d])e.dump="*ref_"+d;else{if(h&&u&&!e.usedDuplicates[d]&&(e.usedDuplicates[d]=!0),"[object Object]"===c)a&&0!==Object.keys(e.dump).length?(!function(e,t,n,a){var i,r,o,s,c,l,d="",u=e.tag,h=Object.keys(n);if(!0===e.sortKeys)h.sort();else if("function"==typeof e.sortKeys)h.sort(e.sortKeys);else if(e.sortKeys)throw new Dx("sortKeys must be a boolean or a function");for(i=0,r=h.length;i1024)&&(e.dump&&gM===e.dump.charCodeAt(0)?l+="?":l+="? "),l+=e.dump,c&&(l+=WM(e,t)),uk(e,t+1,s,!0,c)&&(e.dump&&gM===e.dump.charCodeAt(0)?l+=":":l+=": ",d+=l+=e.dump));e.tag=u,e.dump=d||"{}"}(e,t,e.dump,i),u&&(e.dump="&ref_"+d+e.dump)):(!function(e,t,n){var a,i,r,o,s,c="",l=e.tag,d=Object.keys(n);for(a=0,i=d.length;a1024&&(s+="? "),s+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),uk(e,t,o,!1,!1)&&(c+=s+=e.dump));e.tag=l,e.dump="{"+c+"}"}(e,t,e.dump),u&&(e.dump="&ref_"+d+" "+e.dump));else if("[object Array]"===c)a&&0!==e.dump.length?(e.noArrayIndent&&!o&&t>0?lk(e,t-1,e.dump,i):lk(e,t,e.dump,i),u&&(e.dump="&ref_"+d+e.dump)):(!function(e,t,n){var a,i,r,o="",s=e.tag;for(a=0,i=n.length;a",e.dump=s+" "+e.dump)}return!0}function hk(e,t){var n,a,i=[],r=[];for(pk(e,i,r),n=0,a=r.length;nq`
${gk.dump(e)}
`;return q`
+
+
+ +
+
+ + ${this.message?q`${this.message}${this.context&&"string"==typeof this.context?": "+this.context:""}`:""} + + ${this.context&&Array.isArray(this.context)?this.context.map((e=>n(e))):"object"==typeof this.context?n(this.context):""} +
+
+
`}static get styles(){return o(fk)}};e([he({attribute:!1})],_k.prototype,"message",void 0),e([he({attribute:!1})],_k.prototype,"context",void 0),e([he({attribute:!1})],_k.prototype,"icon",void 0),e([he({attribute:!0,type:Boolean})],_k.prototype,"dotdotdot",void 0),_k=e([le("frigate-card-message")],_k);let yk=class extends se{render(){if(this.message)return q` ${N_("error.troubleshooting")}.`} + .icon=${this.message.icon??"mdi:alert-circle"} + .context=${this.message.context} + .dotdotdot=${this.message.dotdotdot} + > + `}static get styles(){return o(fk)}};e([he({attribute:!1})],yk.prototype,"message",void 0),yk=e([le("frigate-card-error-message")],yk);let vk=class extends se{constructor(){super(...arguments),this.message="",this.animated=!1,this.size="large"}render(){return q`
+ ${this.animated?q` + `:q``} + ${this.message?q`${this.message}`:q``} +
`}static get styles(){return o(fk)}};function bk(e){return"error"===e?.type?q` `:e?q` `:q``}function wk(e){return q` + + + `}function xk(e,t,n){!function(e,t,n,a){Vg(e,"message",{message:t,type:n,icon:a?.icon,context:a?.context})}(e,t,"error",{context:n?.context})}function Ck(e,t){t instanceof Error&&xk(e,t.message,{...t instanceof $s&&{context:t.context}})}e([he({attribute:!1})],vk.prototype,"message",void 0),e([he({attribute:!1})],vk.prototype,"animated",void 0),e([he({attribute:!1})],vk.prototype,"size",void 0),vk=e([le("frigate-card-progress-indicator")],vk);let Mk=class extends se{constructor(){super(...arguments),this._root=null}createRenderRoot(){return this}_createRoot(){const e=customElements.get("hui-conditional-element");if(!e||!this.hass)throw new Error(N_("error.could_not_render_elements"));const t=new e;t.hass=this.hass;const n={type:"conditional",conditions:[],elements:this.elements};try{t.setConfig(n)}catch(e){throw Zg(e,console.error),new $s(N_("error.invalid_elements_config"))}return t}willUpdate(e){try{!this.elements||this._root&&!e.has("elements")||(this._root=this._createRoot())}catch(e){return Ck(this,e)}}render(){return q`${this._root||""}`}updated(){this.hass&&this._root&&(this._root.hass=this.hass)}};e([he({attribute:!1})],Mk.prototype,"elements",void 0),e([he({attribute:!1})],Mk.prototype,"conditionsManagerEpoch",void 0),e([he({attribute:!1})],Mk.prototype,"hass",void 0),Mk=e([le("frigate-card-elements-core")],Mk);let kk=class extends se{constructor(){super(...arguments),this._menuRemoveHandler=e=>{Vg(this,"menu:remove",e.detail)},this._statusBarRemoveHandler=e=>{Vg(this,"status-bar:remove",e.detail)},this._menuAddHandler=e=>{const t=e.composedPath();t.length&&this._addHandler(t[0],"frigate-card:menu:remove",this._menuRemoveHandler)},this._statusBarAddHandler=e=>{const t=e.composedPath();t.length&&this._addHandler(t[0],"frigate-card:status-bar:add",this._statusBarRemoveHandler)}}_addHandler(e,t,n){e.removeEventListener(t,n),e.addEventListener(t,n)}connectedCallback(){super.connectedCallback(),this.addEventListener("frigate-card:menu:add",this._menuAddHandler),this.addEventListener("frigate-card:status-bar:add",this._statusBarAddHandler)}disconnectedCallback(){this.removeEventListener("frigate-card:menu:add",this._menuAddHandler),this.addEventListener("frigate-card:status-bar:add",this._statusBarAddHandler),super.disconnectedCallback()}render(){return q` + `}static get styles(){return o(":host {\n position: absolute;\n inset: 0;\n overflow: hidden;\n pointer-events: none;\n}\n\n.element {\n position: absolute;\n transform: translate(-50%, -50%);\n pointer-events: auto;\n}\n\nhui-error-card.element {\n inset: 0px;\n transform: unset;\n}")}};e([he({attribute:!1})],kk.prototype,"hass",void 0),e([he({attribute:!1})],kk.prototype,"conditionsManagerEpoch",void 0),e([he({attribute:!1})],kk.prototype,"elements",void 0),kk=e([le("frigate-card-elements")],kk);let Sk=class extends se{setConfig(e){this._config=e}createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),this.className=""}render(){if(function(e,t){if(!t)return!0;const n=new fw(t,{bubbles:!0,composed:!0});return e.dispatchEvent(n),n.evaluation??!1}(this,this._config?.conditions))return q` + `}};e([he({attribute:!1,hasChanged:()=>!0})],Sk.prototype,"hass",void 0),Sk=e([le("frigate-card-conditional")],Sk);class Ek extends se{constructor(e){super(),this._config=null,this._eventCategory=e}setConfig(e){this._config=e}connectedCallback(){super.connectedCallback(),this._config&&Vg(this,`${this._eventCategory}:add`,this._config)}disconnectedCallback(){this._config&&Vg(this,`${this._eventCategory}:remove`,this._config),super.disconnectedCallback()}}e([pe()],Ek.prototype,"_config",void 0);class $k extends Ek{constructor(){super("menu")}}let Ak=class extends $k{};Ak=e([le("frigate-card-menu-icon")],Ak);let Ik=class extends $k{};Ik=e([le("frigate-card-menu-state-icon")],Ik);let zk=class extends $k{};zk=e([le("frigate-card-menu-submenu")],zk);let Tk=class extends $k{};Tk=e([le("frigate-card-menu-submenu-select")],Tk);class jk extends Ek{constructor(){super("status-bar")}}let Ok=class extends jk{};Ok=e([le("frigate-card-status-bar-icon")],Ok);let Dk=class extends jk{};Dk=e([le("frigate-card-status-bar-image")],Dk);let Rk=class extends jk{};Rk=e([le("frigate-card-status-bar-string")],Rk);let Pk=class extends se{render(){return q` `}static get styles(){return o(":host {\n width: intrinsic;\n height: intrinsic;\n display: flex;\n justify-content: center;\n align-items: center;\n pointer-events: none;\n}\n\nimg {\n width: 10%;\n animation: rotate 8s linear infinite;\n}\n\n@keyframes rotate {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}")}};Pk=e([le("frigate-card-loading")],Pk);const Lk=(e,t)=>{Vg(e,"action:execution-request",t)};class Nk{constructor(e){this._config=null,this._buttons=[],this._expanded=!1,this._host=e}setMenuConfig(e){this._config=e,this._host.style.setProperty("--frigate-card-menu-button-size",`${e.button_size}px`),this._host.setAttribute("data-style",e.style),this._host.setAttribute("data-position",e.position),this._host.setAttribute("data-alignment",e.alignment),this._sortButtons(),this._host.requestUpdate()}getMenuConfig(){return this._config}isExpanded(){return this._expanded}setButtons(e){this._buttons=e,this._sortButtons(),this._host.requestUpdate()}getButtons(e){const t=e=>!this._isHidingMenu()||this._expanded||!!e.permanent;return this._buttons.filter((n=>(e=>!1!==e.enabled)(n)&&(t=>t.alignment===e||"matching"===e&&!t.alignment)(n)&&t(n)))}setExpanded(e){this._expanded=e,af(this._host,e,"expanded"),this._host.requestUpdate()}toggleExpanded(){this.setExpanded(!this._expanded)}actionHandler(e,t){if(e.stopPropagation(),e.detail.config&&(t=e.detail.config),!t)return;const n=e.detail.action,a=_f(n,t);if(!a)return;const i=qg(a);let r=!1;const o=i.filter((e=>rf(e)&&!this._isUnknownActionMenuToggleAction(e)));if(o.length!=i.length&&(r=!0),o.length&&Lk(this._host,{action:i,config:t}),this._isHidingMenu())if(r)this.setExpanded(!this._expanded);else{const e=_f("hold",t),a=_f("double_tap",t),i=_f("tap",t),r=_f("end_tap",t);"end_tap"!==n&&("start_tap"!==n||e||a||i||r)&&("end_tap"===n||r)||this.setExpanded(!1)}}getFreshButtonState(e,t){const n={...t};return e&&"custom:frigate-card-menu-state-icon"===t.type?Rb(e,n):n}_sortButtons(){this._buttons=ky(this._buttons,(e=>(e.priority??0)+(this._isHidingMenu()&&e.permanent?Bs:0)),["desc"])}_isHidingMenu(){return"hidden"===this._config?.style}_isUnknownActionMenuToggleAction(e){const t=hf(e);return!!t&&"menu_toggle"==t.frigate_card_action}}var Fk="data:image/svg+xml,%3c%3fxml version='1.0' encoding='UTF-8' standalone='no'%3f%3e%3csvg width='24' height='24' viewBox='0 0 24 24' fill='none' version='1.1' id='svg54' sodipodi:docname='frigate.svg' inkscape:version='1.2.2 (b0a8486541%2c 2022-12-01)' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg'%3e %3cdefs id='defs58' /%3e %3csodipodi:namedview id='namedview56' pagecolor='%23da4040' bordercolor='%23666666' borderopacity='1.0' inkscape:pageshadow='2' inkscape:pageopacity='0' inkscape:pagecheckerboard='0' showgrid='false' width='24px' inkscape:zoom='45.254834' inkscape:cx='-0.03314563' inkscape:cy='9.9768347' inkscape:window-width='3840' inkscape:window-height='1527' inkscape:window-x='1080' inkscape:window-y='227' inkscape:window-maximized='1' inkscape:current-layer='svg54' showguides='true' inkscape:showpageshadow='2' inkscape:deskcolor='%23d1d1d1' /%3e %3cpath d='m 4.8759466%2c22.743573 c 0.0866%2c0.69274 0.811811%2c1.16359 0.37885%2c1.27183 -0.43297%2c0.10824 -2.32718%2c-3.43665 -2.7601492%2c-4.95202 -0.4329602%2c-1.51538 -0.6764993%2c-3.22017 -0.5682593%2c-4.19434 0.1082301%2c-0.97417 5.7097085%2c-2.48955 5.7097085%2c-2.89545 0%2c-0.4059 -1.81304%2c-0.0271 -1.89422%2c-0.35178 -0.0812%2c-0.32472 1.36925%2c-0.12989 1.75892%2c-0.64945 0.60885%2c-0.81181 1.3800713%2c-0.6765 1.8671505%2c-1.1094696 0.4870902%2c-0.4329599 1.0824089%2c-2.0836399 1.1906589%2c-2.7871996 0.108241%2c-0.70357 -1.0824084%2c-1.51538 -1.4071389%2c-2.05658 -0.3247195%2c-0.54121 0.7035702%2c-0.92005 3.1931099%2c-1.94834 2.48954%2c-1.02829 10.39114%2c-3.30134994 10.49938%2c-3.03074994 0.10824%2c0.27061 -2.59779%2c1.40713994 -4.492%2c2.11069994 -1.89422%2c0.70357 -4.97909%2c2.05658 -4.97909%2c2.43542 0%2c0.37885 0.16236%2c0.67651 0.0541%2c1.54244 -0.10824%2c0.86593 -0.12123%2c1.2702597 -0.32472%2c1.8400997 -0.1353%2c0.37884 -0.2706%2c1.27183 0%2c2.0836295 0.21648%2c0.64945 0.92005%2c1.13653 1.24477%2c1.24478 0.2706%2c0.018 1.01746%2c0.0433 1.8401%2c0 1.02829%2c-0.0541 2.48954%2c0.0541 2.48954%2c0.32472 0%2c0.2706 -2.21894%2c0.10824 -2.21894%2c0.48708 0%2c0.37885 2.27306%2c-0.0541 2.21894%2c0.32473 -0.0541%2c0.37884 -1.89422%2c0.21648 -2.86839%2c0.21648 -0.77933%2c0 -1.93031%2c-0.0361 -2.43542%2c-0.21648 l -0.10824%2c0.37884 c -0.18038%2c0 -0.55744%2c0.10824 -0.94711%2c0.10824 -0.48708%2c0 -0.51414%2c0.16236 -1.40713%2c0.16236 -0.892989%2c0 -0.622391%2c-0.0541 -1.4341894%2c-0.10824 -0.81181%2c-0.0541 -3.842561%2c2.27306 -4.383761%2c3.03075 -0.54121%2c0.75768 -0.21649%2c2.59778 -0.21649%2c3.43665 0%2c0.75379 -0.10824%2c2.43542 0%2c3.30135 z' fill='black' id='path330' style='fill:white%3bfill-opacity:1%3bstroke:none%3bstroke-width:0.1%3bstroke-miterlimit:4%3bstroke-dasharray:none%3bstroke-opacity:1' sodipodi:nodetypes='csccscccccsscscccccsscsccssccscc' /%3e%3c/svg%3e",Vk="data:image/svg+xml,%3c%3fxml version='1.0' encoding='UTF-8' standalone='no'%3f%3e%3c!-- Created with Inkscape (http://www.inkscape.org/) --%3e%3csvg id='svg2' version='1.1' inkscape:version='1.2.2 (b0a8486541%2c 2022-12-01)' width='24' height='24' xml:space='preserve' sodipodi:docname='motioneye.svg' inkscape:export-filename='/home/ccrisan/projects/motioneye/static/img/motioneye-logo.png' inkscape:export-xdpi='960' inkscape:export-ydpi='960' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns%23' xmlns:cc='http://creativecommons.org/ns%23' xmlns:dc='http://purl.org/dc/elements/1.1/'%3e%3cmetadata id='metadata8'%3e%3crdf:RDF%3e%3ccc:Work rdf:about=''%3e%3cdc:format%3eimage/svg%2bxml%3c/dc:format%3e%3cdc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage' /%3e%3c/cc:Work%3e%3c/rdf:RDF%3e%3c/metadata%3e%3cdefs id='defs6'%3e%3clinearGradient inkscape:collect='always' id='linearGradient2058'%3e%3cstop style='stop-color:white%3bstop-opacity:1%3b' offset='0' id='stop2054' /%3e%3cstop style='stop-color:%23585858%3bstop-opacity:1' offset='1' id='stop2056' /%3e%3c/linearGradient%3e%3clinearGradient inkscape:collect='always' id='linearGradient2005'%3e%3cstop style='stop-color:white%3bstop-opacity:1%3b' offset='0' id='stop2001' /%3e%3cstop style='stop-color:grey%3bstop-opacity:1%3b' offset='1' id='stop2003' /%3e%3c/linearGradient%3e%3clinearGradient inkscape:collect='always' id='linearGradient4205'%3e%3cstop style='stop-color:%234aa3e0%3bstop-opacity:1' offset='0' id='stop4207' /%3e%3cstop style='stop-color:%233096db%3bstop-opacity:1' offset='1' id='stop4209' /%3e%3c/linearGradient%3e%3clinearGradient inkscape:collect='always' id='linearGradient4197'%3e%3cstop style='stop-color:white%3bstop-opacity:1%3b' offset='0' id='stop4199' /%3e%3cstop style='stop-color:%23585858%3bstop-opacity:1' offset='1' id='stop4201' /%3e%3c/linearGradient%3e%3clinearGradient inkscape:collect='always' xlink:href='%23linearGradient4205' id='linearGradient4211' x1='26.602072' y1='43.034946' x2='26.602072' y2='29.466328' gradientUnits='userSpaceOnUse' gradientTransform='matrix(0.96428571%2c0%2c0%2c0.96428571%2c0.91428571%2c0.91428571)' /%3e%3cfilter style='color-interpolation-filters:sRGB' inkscape:label='Drop Shadow' id='filter4285'%3e%3cfeFlood flood-opacity='0.588235' flood-color='rgb(0%2c0%2c0)' result='flood' id='feFlood4287' /%3e%3cfeComposite in='flood' in2='SourceGraphic' operator='in' result='composite1' id='feComposite4289' /%3e%3cfeGaussianBlur in='composite1' stdDeviation='0.6' result='blur' id='feGaussianBlur4291' /%3e%3cfeOffset dx='0' dy='-1' result='offset' id='feOffset4293' /%3e%3cfeComposite in='SourceGraphic' in2='offset' operator='over' result='composite2' id='feComposite4295' /%3e%3c/filter%3e%3clinearGradient inkscape:collect='always' xlink:href='%23linearGradient2005' id='linearGradient4309' gradientUnits='userSpaceOnUse' x1='26.445793' y1='47.517574' x2='26.445793' y2='3.8183768' /%3e%3clinearGradient inkscape:collect='always' xlink:href='%23linearGradient4197' id='linearGradient4311' gradientUnits='userSpaceOnUse' x1='26.445793' y1='47.517574' x2='26.445793' y2='3.8183768' /%3e%3clinearGradient inkscape:collect='always' xlink:href='%23linearGradient2058' id='linearGradient4313' gradientUnits='userSpaceOnUse' x1='26.445793' y1='47.517574' x2='26.445793' y2='3.8183768' /%3e%3cfilter style='color-interpolation-filters:sRGB' inkscape:label='Drop Shadow' id='filter4315' x='-0.03618178' y='-0.20783284' width='1.0723636' height='1.3304883'%3e%3cfeFlood flood-opacity='0.588235' flood-color='rgb(0%2c0%2c0)' result='flood' id='feFlood4317' /%3e%3cfeComposite in='flood' in2='SourceGraphic' operator='in' result='composite1' id='feComposite4319' /%3e%3cfeGaussianBlur in='composite1' stdDeviation='0.6' result='blur' id='feGaussianBlur4321' /%3e%3cfeOffset dx='0' dy='-1' result='offset' id='feOffset4323' /%3e%3cfeComposite in='SourceGraphic' in2='offset' operator='over' result='composite2' id='feComposite4325' /%3e%3c/filter%3e%3cfilter style='color-interpolation-filters:sRGB' inkscape:label='Drop Shadow' id='filter4327' x='-0.27857143' y='-0.4720238' width='1.5571429' height='1.7505952'%3e%3cfeFlood flood-opacity='0.588235' flood-color='rgb(0%2c0%2c0)' result='flood' id='feFlood4329' /%3e%3cfeComposite in='flood' in2='SourceGraphic' operator='in' result='composite1' id='feComposite4331' /%3e%3cfeGaussianBlur in='composite1' stdDeviation='0.6' result='blur' id='feGaussianBlur4333' /%3e%3cfeOffset dx='0' dy='-1' result='offset' id='feOffset4335' /%3e%3cfeComposite in='SourceGraphic' in2='offset' operator='over' result='composite2' id='feComposite4337' /%3e%3c/filter%3e%3cfilter style='color-interpolation-filters:sRGB' inkscape:label='Drop Shadow' id='filter4339' x='-0.0202507' y='-0.13980794' width='1.0405014' height='1.2082853'%3e%3cfeFlood flood-opacity='0.588235' flood-color='rgb(0%2c0%2c0)' result='flood' id='feFlood4341' /%3e%3cfeComposite in='flood' in2='SourceGraphic' operator='in' result='composite1' id='feComposite4343' /%3e%3cfeGaussianBlur in='composite1' stdDeviation='0.2' result='blur' id='feGaussianBlur4345' /%3e%3cfeOffset dx='0' dy='-0.5' result='offset' id='feOffset4347' /%3e%3cfeComposite in='SourceGraphic' in2='offset' operator='over' result='composite2' id='feComposite4349' /%3e%3c/filter%3e%3c/defs%3e%3csodipodi:namedview pagecolor='%23ff0d0d' bordercolor='%23666666' borderopacity='1' objecttolerance='10' gridtolerance='10' guidetolerance='10' inkscape:pageopacity='0' inkscape:pageshadow='2' inkscape:window-width='3840' inkscape:window-height='1527' id='namedview4' showgrid='false' inkscape:zoom='29.890116' inkscape:cx='19.973158' inkscape:cy='16.577386' inkscape:window-x='1080' inkscape:window-y='227' inkscape:window-maximized='1' inkscape:current-layer='g10' showguides='true' inkscape:guide-bbox='true' inkscape:showpageshadow='true' inkscape:pagecheckerboard='false' inkscape:deskcolor='%23d1d1d1' /%3e%3cg id='g10' inkscape:groupmode='layer' inkscape:label='ink_ext_XXXXXX' transform='matrix(1.25%2c0%2c0%2c-1.25%2c0%2c64)'%3e%3cg id='g4823' transform='matrix(1.0344694%2c0%2c0%2c1.0344694%2c-3.551886%2c-0.86695248)'%3e%3cpath id='path4244' d='M 8.9346154%2c40.515385 C 5.3647588%2c36.547307 3.2%2c31.357779 3.2%2c25.6 3.2%2c13.228821 13.228821%2c3.2 25.6%2c3.2 37.971179%2c3.2 48%2c13.228821 48%2c25.6 c 0%2c5.736682 -2.161128%2c10.952493 -5.707692%2c14.915385 -1.695935%2c-0.623286 -3.387833%2c-1.349065 -5.061539%2c-2.288462 3.2394%2c-0.937363 5.6%2c-3.937988 5.6%2c-7.457692 0%2c-4.260339 -3.469626%2c-7.753846 -7.753846%2c-7.753846 -3.633936%2c0 -6.690552%2c2.51055 -7.538461%2c5.869231 h -3.876924 c -0.840685%2c-3.360193 -3.903443%2c-5.869231 -7.538461%2c-5.869231 -4.284219%2c0 -7.7807693%2c3.493507 -7.7807693%2c7.753846 0%2c3.56112 2.4570323%2c6.5856 5.7615383%2c7.484616 -1.676267%2c0.912203 -3.404813%2c1.620556 -5.1692306%2c2.261538 z M 25.6%2c26.461538 c 0.532632%2c-1.981435 1.101793%2c-3.947553 3.446154%2c-5.16923 L 25.6%2c16.123077 22.153846%2c21.292308 c 2.053593%2c1.454966 3.000771%2c3.237758 3.446154%2c5.16923 z' style='fill:url(%23linearGradient4309)%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4327)' inkscape:connector-curvature='0' transform='matrix(0.38078533%2c0%2c0%2c0.38078533%2c2.9655495%2c31.335499)' /%3e%3cpath id='path4242' d='m 16.123077%2c33.353847 c -1.427443%2c0 -2.584616%2c-1.157173 -2.584616%2c-2.584616 0%2c-1.427444 1.157173%2c-2.584615 2.584616%2c-2.584615 1.427444%2c0 2.584615%2c1.157171 2.584615%2c2.584615 0%2c1.427443 -1.157171%2c2.584616 -2.584615%2c2.584616 z' style='fill:url(%23linearGradient4311)%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4327)' inkscape:connector-curvature='0' transform='matrix(0.38078533%2c0%2c0%2c0.38078533%2c2.9655495%2c31.335499)' /%3e%3cpath id='path4240' d='m 35.076923%2c33.353847 c -1.427443%2c0 -2.584615%2c-1.157173 -2.584615%2c-2.584616 0%2c-1.427444 1.157172%2c-2.584615 2.584615%2c-2.584615 1.427443%2c0 2.584616%2c1.157171 2.584616%2c2.584615 0%2c1.427443 -1.157173%2c2.584616 -2.584616%2c2.584616 z' style='fill:url(%23linearGradient4313)%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4327)' inkscape:connector-curvature='0' transform='matrix(0.38078533%2c0%2c0%2c0.38078533%2c2.9655495%2c31.335499)' /%3e%3cpath inkscape:connector-curvature='0' style='fill:%23d9d9d9%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4339)' d='m 25.6%2c47.2 c -4.373944%2c0 -8.437159%2c-1.399808 -11.838461%2c-3.634616 3.677605%2c-0.394237 7.305921%2c-1.342945 11.423077%2c-3.375 4.166157%2c2.122533 8.434154%2c3.008875 12.279808%2c3.452886 C 34.057131%2c45.890032 29.986674%2c47.2 25.6%2c47.2 Z' id='path4248' transform='matrix(0.39488848%2c0%2c0%2c0.39488848%2c2.6045087%2c30.974457)' /%3e%3cpath inkscape:connector-curvature='0' style='fill:url(%23linearGradient4211)%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4315)' d='M 39.723077%2c42.552884 C 35.394064%2c42.5242 29.479588%2c40.397223 25.184616%2c38.432418 20.668821%2c40.064102 16.035448%2c42.649343 10.801923%2c42.526924 10.453022%2c42.51873 10.118061%2c42.50105 9.7634616%2c42.475 L 5.6615384%2c42.1375 9.5557693%2c40.839424 c 5.3417977%2c-1.74056 10.0398397%2c-2.851302 14.1749997%2c-10.025963 0.959101%2c0 2.845924%2c-4.15e-4 3.738462%2c-4.15e-4 4.11884%2c7.134039 9.059296%2c8.324614 14.149039%2c10.026378 L 45.460577%2c42.085577 41.4625%2c42.475 c -0.544847%2c0.05181 -1.120992%2c0.08198 -1.739423%2c0.07788 z' id='path4246' sodipodi:nodetypes='cccccccccccc' transform='matrix(0.39488848%2c0%2c0%2c0.39488848%2c2.6045087%2c30.974457)' /%3e%3c/g%3e%3c/g%3e%3c/svg%3e",Hk="data:image/svg+xml,%3c%3fxml version='1.0' encoding='UTF-8' standalone='no'%3f%3e%3c!-- Created with Inkscape (http://www.inkscape.org/) --%3e%3csvg version='1.1' id='svg62' width='24' height='24' viewBox='0 0 24 24' sodipodi:docname='reolink.svg' inkscape:version='1.2.2 (b0a8486541%2c 2022-12-01)' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg'%3e %3cdefs id='defs66' /%3e %3csodipodi:namedview id='namedview64' pagecolor='%23505050' bordercolor='%23eeeeee' borderopacity='1' inkscape:showpageshadow='0' inkscape:pageopacity='0' inkscape:pagecheckerboard='0' inkscape:deskcolor='%23505050' showgrid='true' inkscape:zoom='36.417984' inkscape:cx='18.191562' inkscape:cy='8.6633022' inkscape:window-width='3840' inkscape:window-height='1527' inkscape:window-x='1080' inkscape:window-y='227' inkscape:window-maximized='1' inkscape:current-layer='g68'%3e %3cinkscape:grid type='xygrid' id='grid1175' dotted='false' snapvisiblegridlinesonly='true' /%3e %3c/sodipodi:namedview%3e %3cg inkscape:groupmode='layer' inkscape:label='Reolink Logo' id='g68'%3e %3cpath style='fill:white%3bstroke-width:0.0393282%3bfill-opacity:1' d='M 17.037254%2c23.964909 C 16.764634%2c23.917573 16.561708%2c23.83617 16.325735%2c23.67954 16.196719%2c23.593913 14.543544%2c21.952905 12.217956%2c19.602014 10.077426%2c17.438191 8.2198993%2c15.582673 8.0901166%2c15.478642 7.6038998%2c15.088895 7.0877741%2c14.869424 6.4986827%2c14.801908 6.3140805%2c14.780765 5.079061%2c14.763305 3.7541964%2c14.763126 l -2.408845%2c-4.78e-4 0.00713%2c-7.3937713 v -7.3935985 l 6.2040046%2c3.536e-5 c 3.9799342%2c1.969e-5 6.3590882%2c0.01465833 6.6366112%2c0.0408227 2.331195%2c0.21982024 4.364771%2c1.49885914 5.578726%2c3.50085534 0.686043%2c1.1313823 1.020901%2c2.2783695 1.067186%2c3.6554196 0.06335%2c1.8844953 -0.57426%2c3.6597378 -1.831469%2c5.0992438 -0.756457%2c0.866146 -1.861127%2c1.62991 -2.928729%2c2.024919 l -0.319718%2c0.118287 -1.951287%2c-1.979284 -1.951286%2c-1.979278 1.046741%2c-0.02346 c 0.575706%2c-0.01291 1.099833%2c-0.03689 1.164724%2c-0.0533 0.596068%2c-0.150649 0.949703%2c-0.313968 1.322206%2c-0.6106282 0.643573%2c-0.5125401 1.046169%2c-1.2439257 1.137985%2c-2.0673522 0.167852%2c-1.505317 -0.771478%2c-2.8704888 -2.263547%2c-3.2897068 L 13.950001%2c4.3234481 9.7981831%2c4.3106846 5.6392389%2c4.29801 v 3.0692702 3.0692648 l 1.4185165%2c7.9e-4 c 1.6275801%2c8.87e-4 1.7789152%2c0.01912 2.3105245%2c0.27984 0.3095679%2c0.15183 0.389559%2c0.219499 1.0817441%2c0.915083 3.027399%2c3.042274 12.19404%2c12.30837 12.204589%2c12.337002 0.0161%2c0.04373 -5.364393%2c0.03953 -5.617359%2c-0.0045 z' id='path1173' inkscape:label='R' /%3e %3c/g%3e%3c/svg%3e";const Bk=e=>{switch(e){case"frigate":return Fk;case"motioneye":return Vk;case"reolink":return Hk;default:return null}};const qk=(e,t,n)=>{const a=e.states[t],i=n?.state?n.state:a?a.state:null;if(!i)return null;const r=Ye(t),o=a?a.attributes:null;return n?.entity?.translation_key&&e.localize(`component.${n.entity.platform}.entity.${r}.${n.entity.translation_key}.state.${i}`)||o?.device_class&&e.localize(`component.${r}.state.${o.device_class}.${i}`)||e.localize(`component.${r}.state._.${i}`)||i};let Uk=class extends se{_renderItem(e){if(!this.hass)return;const t=Rb(this.hass,{...e});return q` + {t.detail.config=e}} + .actionHandler=${Cf({hasHold:yf(e.hold_action),hasDoubleClick:yf(e.double_tap_action)})} + > + ${t.title||""} + ${e.subtitle?q`${e.subtitle}`:""} + ${(e=>{if(e.icon){const t=Bk(e.icon);return t?q``:q` + `}return q``})(t)} + + `}render(){if(!this.submenu)return q``;const e=this.submenu.items;return q` + e.stopPropagation()} + @click=${e=>vf(e)} + > + + + + ${e.map(this._renderItem.bind(this))} + + `}static get styles(){return o("ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n pointer-events: auto;\n}\n\nmwc-list-item {\n z-index: 20;\n}")}};e([he({attribute:!1})],Uk.prototype,"hass",void 0),e([he({attribute:!1})],Uk.prototype,"submenu",void 0),Uk=e([le("frigate-card-submenu")],Uk);let Wk=class extends se{shouldUpdate(e){const t=e.get("hass");return!e.has("hass")||!t||!this.submenuSelect||Tb(this.hass,t,[this.submenuSelect.entity])}async _refreshOptionTitles(){if(!this.hass||!this.submenuSelect)return;const e=this.submenuSelect.entity,t=this.hass.states[e],n=t?.attributes?.options,a=await(this.entityRegistryManager?.getEntity(this.hass,e))??null,i={};for(const t of n){const n=qk(this.hass,e,{...a&&{entity:a},state:t});n&&(i[t]=n)}this._optionTitles=i}willUpdate(){if(!this.submenuSelect||!this.hass)return;this._optionTitles||this._refreshOptionTitles();const e=this.submenuSelect.entity,t=this.hass.states[e],n=t?.attributes?.options;if(!t||!n)return;const a={icon:Ab("select"),...Rb(this.hass,this.submenuSelect),...this.submenuSelect,type:"custom:frigate-card-menu-submenu",items:[]};delete a.options;const i=a.items;for(const a of n){const n=this._optionTitles?.[a]??a;i.push({state_color:!0,selected:t.state===a,enabled:!0,title:n||a,...(e.startsWith("select.")||e.startsWith("input_select."))&&{tap_action:{action:"perform-action",perform_action:e.startsWith("select.")?"select.select_option":"input_select.select_option",target:{entity_id:e},data:{option:a}}},...this.submenuSelect.options&&this.submenuSelect.options[a]})}this._generatedSubmenu=a}render(){return q` `}};e([he({attribute:!1})],Wk.prototype,"hass",void 0),e([he({attribute:!1})],Wk.prototype,"submenuSelect",void 0),e([he({attribute:!1})],Wk.prototype,"entityRegistryManager",void 0),e([pe()],Wk.prototype,"_optionTitles",void 0),Wk=e([le("frigate-card-submenu-select")],Wk);let Zk=class extends se{constructor(){super(...arguments),this._controller=new Nk(this)}set menuConfig(e){this._controller.setMenuConfig(e)}set buttons(e){this._controller.setButtons(e)}set expanded(e){this._controller.setExpanded(e)}toggleMenu(){this._controller.toggleExpanded()}_renderButton(e){if(!this.hass)return;if("custom:frigate-card-menu-submenu"===e.type)return q` this._controller.actionHandler(e)} + > + `;if("custom:frigate-card-menu-submenu-select"===e.type)return q` this._controller.actionHandler(e)} + > + `;const t=this._controller.getFreshButtonState(this.hass,e),n=Bk(t.icon);return q` this._controller.actionHandler(t,e)} + > + ${n?q``:q``} + `}render(){const e=this._controller.getMenuConfig(),t=e?.style;if(!e||"none"===t)return;const n=this._controller.getButtons("matching"),a=this._controller.getButtons("opposing");return q`
+ ${n.map((e=>this._renderButton(e)))} +
+
+ ${a.map((e=>this._renderButton(e)))} +
`}static get styles(){return o('ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n --frigate-card-menu-button-size: 40px;\n --mdc-icon-button-size: var(--frigate-card-menu-button-size);\n --mdc-icon-size: calc(var(--mdc-icon-button-size) / 2);\n pointer-events: auto;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n overflow: visible;\n}\n\n/*******************************************************\n * Non-hover styles should not interact with the pointer\n *******************************************************/\n:host(:not([data-style*=hover])) {\n pointer-events: none;\n}\n\n/***********************************\n * Aligned divs: matching & opposing\n ***********************************/\ndiv.matching,\ndiv.opposing {\n display: flex;\n flex-wrap: wrap;\n flex-direction: row;\n align-items: flex-start;\n min-width: 0px;\n min-height: 0px;\n}\n\ndiv.matching {\n justify-content: flex-start;\n}\n\ndiv.opposing {\n justify-content: flex-end;\n}\n\n/********************\n * Outside menu style\n ********************/\n:host([data-style=outside]) {\n width: 100%;\n background: var(--secondary-background-color);\n}\n\n/********************************************************\n * Hack: Ensure host & div expand for column flex layouts\n ********************************************************/\n:host(:not([data-style=outside])[data-position=left]) {\n writing-mode: vertical-lr;\n}\n\n:host(:not([data-style=outside])[data-position=right]) {\n writing-mode: vertical-rl;\n}\n\n:host(:not([data-style=outside])[data-style=overlay][data-position=left]) div > *,\n:host(:not([data-style=outside])[data-style=overlay][data-position=right]) div > *,\n:host(:not([data-style=outside])[data-style*=hover][data-position=left]) div > *,\n:host(:not([data-style=outside])[data-style*=hover][data-position=right]) div > *,\n:host(:not([data-style=outside])[data-style=hidden][data-position=left]) div > *,\n:host(:not([data-style=outside])[data-style=hidden][data-position=right]) div > * {\n writing-mode: horizontal-tb;\n}\n\n/**********************\n * "Reverse" alignments\n **********************/\n:host(:not([data-style=outside])[data-position=left][data-alignment=bottom]),\n:host(:not([data-style=outside])[data-position=right][data-alignment=bottom]),\n:host([data-position=top][data-alignment=right]),\n:host([data-position=bottom][data-alignment=right]),\n:host(:not([data-style=outside])[data-position=left][data-alignment=bottom]) div,\n:host(:not([data-style=outside])[data-position=right][data-alignment=bottom]) div,\n:host([data-position=top][data-alignment=right]) div,\n:host([data-position=bottom][data-alignment=right]) div {\n flex-direction: row-reverse;\n}\n\n/****************************\n * Wrap upwards on the bottom\n ****************************/\n:host(:not([data-style=outside])[data-position=bottom]) div {\n flex-wrap: wrap-reverse;\n}\n\n/********************************************\n * Positioning for absolute based menu styles\n ********************************************/\n:host([data-style=overlay][data-position=top]),\n:host([data-style=overlay][data-position=bottom]),\n:host([data-style*=hover][data-position=top]),\n:host([data-style*=hover][data-position=bottom]),\n:host([data-style=hidden][data-position=top]),\n:host([data-style=hidden][data-position=bottom]) {\n width: 100%;\n height: auto;\n}\n\n:host([data-style=overlay][data-position=top][data-alignment=left]),\n:host([data-style=overlay][data-position=bottom][data-alignment=left]),\n:host([data-style*=hover][data-position=top][data-alignment=left]),\n:host([data-style*=hover][data-position=bottom][data-alignment=left]),\n:host([data-style=hidden][data-position=top][data-alignment=left][expanded]),\n:host([data-style=hidden][data-position=bottom][data-alignment=left][expanded]) {\n background: linear-gradient(90deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}\n\n:host([data-style=overlay][data-position=top][data-alignment=right]),\n:host([data-style=overlay][data-position=bottom][data-alignment=right]),\n:host([data-style*=hover][data-position=top][data-alignment=right]),\n:host([data-style*=hover][data-position=bottom][data-alignment=right]),\n:host([data-style=hidden][data-position=top][data-alignment=right][expanded]),\n:host([data-style=hidden][data-position=bottom][data-alignment=right][expanded]) {\n background: linear-gradient(270deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}\n\n:host([data-style=overlay][data-position=left]),\n:host([data-style=overlay][data-position=right]),\n:host([data-style*=hover][data-position=left]),\n:host([data-style*=hover][data-position=right]),\n:host([data-style=hidden][data-position=left]),\n:host([data-style=hidden][data-position=right]) {\n width: auto;\n height: 100%;\n}\n\n:host([data-style=overlay][data-position=left][data-alignment=top]),\n:host([data-style=overlay][data-position=right][data-alignment=top]),\n:host([data-style*=hover][data-position=left][data-alignment=top]),\n:host([data-style*=hover][data-position=right][data-alignment=top]),\n:host([data-style=hidden][data-position=left][data-alignment=top][expanded]),\n:host([data-style=hidden][data-position=right][data-alignment=top][expanded]) {\n background: linear-gradient(180deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}\n\n:host([data-style=overlay][data-position=left][data-alignment=bottom]),\n:host([data-style=overlay][data-position=right][data-alignment=bottom]),\n:host([data-style*=hover][data-position=left][data-alignment=bottom]),\n:host([data-style*=hover][data-position=right][data-alignment=bottom]),\n:host([data-style=hidden][data-position=left][data-alignment=bottom][expanded]),\n:host([data-style=hidden][data-position=right][data-alignment=bottom][expanded]) {\n background: linear-gradient(0deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}')}};e([he({attribute:!1})],Zk.prototype,"entityRegistryManager",void 0),e([he({attribute:!1})],Zk.prototype,"hass",void 0),Zk=e([le("frigate-card-menu")],Zk);let Qk=class extends se{render(){return q` + + + + + `}static get styles(){return o("ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n position: absolute;\n width: 100%;\n height: 100%;\n pointer-events: none;\n}\n\nslot {\n position: absolute;\n display: flex;\n}\n\n/***************\n * Slot position\n ***************/\nslot[name=top] {\n top: 0px;\n}\n\nslot[name=bottom] {\n bottom: 0px;\n}\n\nslot[name=left] {\n left: 0px;\n}\n\nslot[name=right] {\n right: 0px;\n}\n\n/***********\n * Slot size\n ***********/\nslot[name=top],\nslot[name=bottom] {\n width: 100%;\n flex-direction: column;\n}\n\nslot[name=left],\nslot[name=right] {\n height: 100%;\n flex-direction: row;\n}\n\nslot[name=top],\nslot[name=left] {\n justify-content: flex-start;\n}\n\nslot[name=bottom],\nslot[name=right] {\n justify-content: flex-end;\n}\n\n/*******************************\n * Match rounded corners to card\n *******************************/\n::slotted([slot=top]:first-child),\n::slotted([slot=left]:first-child) {\n border-top-left-radius: var(--ha-card-border-radius, 4px);\n}\n\n::slotted([slot=top]:first-child),\n::slotted([slot=right]:first-child) {\n border-top-right-radius: var(--ha-card-border-radius, 4px);\n}\n\n::slotted([slot=bottom]:last-child),\n::slotted([slot=left]:last-child) {\n border-bottom-left-radius: var(--ha-card-border-radius, 4px);\n}\n\n::slotted([slot=bottom]:last-child),\n::slotted([slot=right]:last-child) {\n border-bottom-right-radius: var(--ha-card-border-radius, 4px);\n}")}};Qk=e([le("frigate-card-overlay")],Qk);class Gk{constructor(e){this._config=null,this._popupTimer=new bf,this._items=[],this._host=e}getRenderItems(){return this._items}setItems(e){const t=e.filter((e=>!!e.exclusive)),n=ky(t.length?t:e,(e=>e.priority??50),"desc"),a=this._getSufficientValues(this._items),i=this._getSufficientValues(n);this._items=n,"popup"!==this._config?.style||jy(a,i)||(this._show(),this._popupTimer.start(this._config.popup_seconds,(()=>this._hide()))),this._host.requestUpdate()}setConfig(e){this._config=e,this._host.style.setProperty("--frigate-card-status-bar-height",`${e.height}px`),this._host.setAttribute("data-style",e.style),this._host.setAttribute("data-position",e.position),"popup"!==this._config?.style&&this._show(),this._host.requestUpdate()}shouldRender(){return this._items.some((e=>!1!==e.enabled&&e.sufficient))}actionHandler(e,t){e.stopPropagation();const n=_f(e.detail.action,t);n&&Lk(this._host,{action:qg(n),config:t})}_getSufficientValue(e){ +/* istanbul ignore else: cannot happen -- @preserve */ +return"custom:frigate-card-status-bar-icon"===e.type?e.icon:"custom:frigate-card-status-bar-string"===e.type?e.string:"custom:frigate-card-status-bar-image"===e.type?e.image:null}_getSufficientValues(e){return e.filter((e=>!1!==e.enabled&&e.sufficient)).map((e=>this._getSufficientValue(e)))}_show(){af(this._host,!1,"hide")}_hide(){af(this._host,!0,"hide")}}let Yk=class extends se{constructor(){super(...arguments),this._controller=new Gk(this)}willUpdate(e){e.has("config")&&this.config&&this._controller.setConfig(this.config),e.has("items")&&this._controller.setItems(this.items??[])}render(){if(this._controller.shouldRender())return q` +
+ ${this._controller.getRenderItems().map((e=>{if(!1===e.enabled)return;const t=_e({item:!0,expand:!!e.expand,action:!!Object.keys(e.actions??{}).length}),n=Cf({hasHold:yf(e.actions?.hold_action),hasDoubleClick:yf(e.actions?.double_tap_action)});if("custom:frigate-card-status-bar-string"===e.type)return q`
this._controller.actionHandler(t,e.actions)} + > + ${e.string} +
`;if("custom:frigate-card-status-bar-icon"===e.type){const a=Bk(e.icon);return a?q`this._controller.actionHandler(t,e.actions)} + />`:q`this._controller.actionHandler(t,e.actions)} + >`}return"custom:frigate-card-status-bar-image"===e.type?q`this._controller.actionHandler(t,e.actions)} + />`:void 0}))} +
+ `}static get styles(){return o("ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n --mdc-icon-button-size: calc(var(--frigate-card-status-bar-height) - 6px);\n --mdc-icon-size: calc(var(--mdc-icon-button-size) / 2);\n display: block;\n width: 100%;\n pointer-events: auto;\n opacity: 1;\n transition: opacity 1s;\n}\n\n/*******************************************************\n * Non-hover styles should not interact with the pointer\n *******************************************************/\n:host(:not([data-style*=hover])) {\n pointer-events: none;\n}\n\n/***************\n * Outside style\n ***************/\n:host([data-style=outside]) {\n color: var(--primary-text-color);\n background: var(--secondary-background-color);\n}\n\n/*******************\n * Non-outside style\n *******************/\n:host(:not([data-style=outside])) {\n color: white;\n background: linear-gradient(90deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}\n\n:host([data-style=popup][hide]) {\n opacity: 0;\n}\n\n/*********************\n * Status bar contents\n *********************/\n.status {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n overflow: hidden;\n width: 100%;\n height: var(--frigate-card-status-bar-height);\n}\n\n.item {\n display: inline-block;\n margin: 3px;\n padding: 3px;\n align-content: center;\n opacity: 0.7;\n}\n\n.item:first-child {\n margin-left: 10px;\n}\n\n.item:last-child {\n margin-right: 10px;\n}\n\n.item.expand {\n flex: 1;\n}\n\n.item.action {\n cursor: pointer;\n}\n\nimg.item {\n width: var(--mdc-icon-size, 24px);\n height: var(--mdc-icon-size, 24px);\n}")}};e([he({attribute:!1})],Yk.prototype,"items",void 0),e([he({attribute:!1})],Yk.prototype,"config",void 0),Yk=e([le("frigate-card-status-bar")],Yk);function Kk(e){return"number"==typeof e}function Xk(e){return"string"==typeof e}function Jk(e){return"boolean"==typeof e}function eS(e){return"[object Object]"===Object.prototype.toString.call(e)}function tS(e){return Math.abs(e)}function nS(e){return Math.sign(e)}function aS(e,t){return tS(e-t)}function iS(e){return lS(e).map(Number)}function rS(e){return e[oS(e)]}function oS(e){return Math.max(0,e.length-1)}function sS(e,t){return t===oS(e)}function cS(e,t=0){return Array.from(Array(e),((e,n)=>t+n))}function lS(e){return Object.keys(e)}function dS(e,t){return[e,t].reduce(((e,t)=>(lS(t).forEach((n=>{const a=e[n],i=t[n],r=eS(a)&&eS(i);e[n]=r?dS(a,i):i})),e)),{})}function uS(e,t){return void 0!==t.MouseEvent&&e instanceof t.MouseEvent}function hS(){let e=[];const t={add:function(n,a,i,r={passive:!0}){let o;if("addEventListener"in n)n.addEventListener(a,i,r),o=()=>n.removeEventListener(a,i,r);else{const e=n;e.addListener(i),o=()=>e.removeListener(i)}return e.push(o),t},clear:function(){e=e.filter((e=>e()))}};return t}function pS(e,t,n,a){const i=hS(),r=1e3/60;let o=null,s=0,c=0;function l(e){if(!c)return;o||(o=e);const i=e-o;for(o=e,s+=i;s>=r;)n(r),s-=r;a(s/r),c&&t.requestAnimationFrame(l)}function d(){t.cancelAnimationFrame(c),o=null,s=0,c=0}return{init:function(){i.add(e,"visibilitychange",(()=>{e.hidden&&(o=null,s=0)}))},destroy:function(){d(),i.clear()},start:function(){c||(c=t.requestAnimationFrame(l))},stop:d,update:()=>n(r),render:a}}function mS(e=0,t=0){const n=tS(e-t);function a(t){return tt}function r(e){return a(e)||i(e)}const o={length:n,max:t,min:e,constrain:function(n){return r(n)?a(n)?e:t:n},reachedAny:r,reachedMax:i,reachedMin:a,removeOffset:function(e){return n?e-n*Math.ceil((e-t)/n):e}};return o}function gS(e,t,n){const{constrain:a}=mS(0,e),i=e+1;let r=o(t);function o(e){return n?tS((i+e)%i):a(e)}function s(){return r}function c(){return gS(e,s(),n)}const l={get:s,set:function(e){return r=o(e),l},add:function(e){return c().set(s()+e)},clone:c};return l}function fS(e,t,n,a,i,r,o,s,c,l,d,u,h,p,m,g,f,_,y){const{cross:v,direction:b}=e,w=["INPUT","SELECT","TEXTAREA"],x={passive:!1},C=hS(),M=hS(),k=mS(50,225).constrain(p.measure(20)),S={mouse:300,touch:400},E={mouse:500,touch:600},$=m?43:25;let A=!1,I=0,z=0,T=!1,j=!1,O=!1,D=!1;function R(e){if(!uS(e,a)&&e.touches.length>=2)return P(e);const t=r.readPoint(e),n=r.readPoint(e,v),o=aS(t,I),c=aS(n,z);if(!j&&!D){if(!e.cancelable)return P(e);if(j=o>c,!j)return P(e)}const d=r.pointerMove(e);o>g&&(O=!0),l.useFriction(.3).useDuration(.75),s.start(),i.add(b(d)),e.preventDefault()}function P(e){const t=d.byDistance(0,!1).index!==u.get(),n=r.pointerUp(e)*(m?E:S)[D?"mouse":"touch"],a=function(e,t){const n=u.add(-1*nS(e)),a=d.byDistance(e,!m).distance;return m||tS(e)=2,s&&0!==e.button)return;if(function(e){const t=e.nodeName||"";return w.includes(t)}(e.target))return;T=!0,r.pointerDown(e),l.useFriction(0).useDuration(0),i.set(o),function(){const e=D?n:t;M.add(e,"touchmove",R,x).add(e,"touchend",P).add(e,"mousemove",R,x).add(e,"mouseup",P)}(),I=r.readPoint(e),z=r.readPoint(e,v),h.emit("pointerDown")}(s)}const c=t;C.add(c,"dragstart",(e=>e.preventDefault()),x).add(c,"touchmove",(()=>{}),x).add(c,"touchend",(()=>{})).add(c,"touchstart",s).add(c,"mousedown",s).add(c,"touchcancel",P).add(c,"contextmenu",P).add(c,"click",L,!0)},destroy:function(){C.clear(),M.clear()},pointerDown:function(){return T}}}function _S(e,t){let n,a;function i(e){return e.timeStamp}function r(n,a){const i="client"+("x"===(a||e.scroll)?"X":"Y");return(uS(n,t)?n:n.touches[0])[i]}return{pointerDown:function(e){return n=e,a=e,r(e)},pointerMove:function(e){const t=r(e)-r(a),o=i(e)-i(n)>170;return a=e,o&&(n=e),t},pointerUp:function(e){if(!n||!a)return 0;const t=r(a)-r(n),o=i(e)-i(n),s=i(e)-i(a)>170,c=t/o;return o&&!s&&tS(c)>.1?c:0},readPoint:r}}function yS(e,t,n,a,i,r,o){const s=[e].concat(a);let c,l,d=[],u=!1;function h(e){return i.measureSize(o.measure(e))}return{init:function(i){r&&(l=h(e),d=a.map(h),c=new ResizeObserver((n=>{(Jk(r)||r(i,n))&&function(n){for(const r of n){if(u)return;const n=r.target===e,o=a.indexOf(r.target),s=n?l:d[o];if(tS(h(n?e:a[o])-s)>=.5){i.reInit(),t.emit("resize");break}}}(n)})),n.requestAnimationFrame((()=>{s.forEach((e=>c.observe(e)))})))},destroy:function(){u=!0,c&&c.disconnect()}}}function vS(e,t,n,a,i){const r=i.measure(10),o=i.measure(50),s=mS(.1,.99);let c=!1;function l(){return!c&&(!!e.reachedAny(n.get())&&!!e.reachedAny(t.get()))}return{shouldConstrain:l,constrain:function(i){if(!l())return;const c=e.reachedMin(t.get())?"min":"max",d=tS(e[c]-t.get()),u=n.get()-t.get(),h=s.constrain(d/o);n.subtract(u*h),!i&&tS(u)e.add(i)))}};return c}function wS(e,t,n,a,i){const{reachedAny:r,removeOffset:o,constrain:s}=a;function c(e){return e.concat().sort(((e,t)=>tS(e)-tS(t)))[0]}function l(t,a){const i=[t,t+n,t-n];if(!e)return t;if(!a)return c(i);const r=i.filter((e=>nS(e)===a));return r.length?c(r):rS(i)-n}return{byDistance:function(n,a){const c=i.get()+n,{index:d,distance:u}=function(n){const a=e?o(n):s(n),i=t.map(((e,t)=>({diff:l(e-a,0),index:t}))).sort(((e,t)=>tS(e.diff)-tS(t.diff))),{index:r}=i[0];return{index:r,distance:a}}(c),h=!e&&r(c);return!a||h?{index:d,distance:n}:{index:d,distance:n+l(t[d]-u,0)}},byIndex:function(e,n){return{index:e,distance:l(t[e]-i.get(),n)}},shortcut:l}}function xS(e,t,n,a,i,r,o,s){const c={passive:!0,capture:!0};let l=0;function d(e){"Tab"===e.code&&(l=(new Date).getTime())}return{init:function(u){s&&(r.add(document,"keydown",d,!1),t.forEach(((t,d)=>{r.add(t,"focus",(t=>{(Jk(s)||s(u,t))&&function(t){if((new Date).getTime()-l>10)return;o.emit("slideFocusStart"),e.scrollLeft=0;const r=n.findIndex((e=>e.includes(t)));Kk(r)&&(i.useDuration(0),a.index(r,0),o.emit("slideFocus"))}(d)}),c)})))}}}function CS(e){let t=e;function n(e){return Kk(e)?e:e.get()}const a={get:function(){return t},set:function(e){t=n(e)},add:function(e){t+=n(e)},subtract:function(e){t-=n(e)}};return a}function MS(e,t){const n="x"===e.scroll?function(e){return`translate3d(${e}px,0px,0px)`}:function(e){return`translate3d(0px,${e}px,0px)`},a=t.style;let i=!1;return{clear:function(){i||(a.transform="",t.getAttribute("style")||t.removeAttribute("style"))},to:function(t){i||(a.transform=n(e.direction(t)))},toggleActive:function(e){i=!e}}}function kS(e,t,n,a,i,r,o,s,c){const l=.5,d=iS(i),u=iS(i).reverse(),h=function(){const e=o[0];return g(m(u,e),n,!1)}().concat(function(){const e=t-o[0]-1;return g(m(d,e),-n,!0)}());function p(e,t){return e.reduce(((e,t)=>e-i[t]),t)}function m(e,t){return e.reduce(((e,n)=>p(e,t)>0?e.concat([n]):e),[])}function g(i,o,d){const u=function(e){return r.map(((n,i)=>({start:n-a[i]+l+e,end:n+t-l+e})))}(o);return i.map((t=>{const a=d?0:-n,i=d?n:0,r=d?"end":"start",o=u[t][r];return{index:t,loopPoint:o,slideLocation:CS(-1),translate:MS(e,c[t]),target:()=>s.get()>o?a:i}}))}const f={canLoop:function(){return h.every((({index:e})=>{const n=d.filter((t=>t!==e));return p(n,t)<=.1}))},clear:function(){h.forEach((e=>e.translate.clear()))},loop:function(){h.forEach((e=>{const{target:t,translate:n,slideLocation:a}=e,i=t();i!==a.get()&&(n.to(i),a.set(i))}))},loopPoints:h};return f}function SS(e,t,n){let a,i=!1;return{init:function(r){n&&(a=new MutationObserver((e=>{i||(Jk(n)||n(r,e))&&function(e){for(const n of e)if("childList"===n.type){r.reInit(),t.emit("slidesChanged");break}}(e)})),a.observe(e,{childList:!0}))},destroy:function(){a&&a.disconnect(),i=!0}}}function ES(e,t,n,a){const i={};let r,o=null,s=null,c=!1;return{init:function(){r=new IntersectionObserver((e=>{c||(e.forEach((e=>{const n=t.indexOf(e.target);i[n]=e})),o=null,s=null,n.emit("slidesInView"))}),{root:e.parentElement,threshold:a}),t.forEach((e=>r.observe(e)))},destroy:function(){r&&r.disconnect(),c=!0},get:function(e=!0){if(e&&o)return o;if(!e&&s)return s;const t=function(e){return lS(i).reduce(((t,n)=>{const a=parseInt(n),{isIntersecting:r}=i[a];return(e&&r||!e&&!r)&&t.push(a),t}),[])}(e);return e&&(o=t),e||(s=t),t}}}function $S(e,t,n,a,i,r,o,s,c){const{startEdge:l,endEdge:d,direction:u}=e,h=Kk(n);const p={groupSlides:function(e){return h?function(e,t){return iS(e).filter((e=>e%t==0)).map((n=>e.slice(n,n+t)))}(e,n):function(e){return e.length?iS(e).reduce(((n,h,p)=>{const m=rS(n)||0,g=0===m,f=h===oS(e),_=i[l]-r[m][l],y=i[l]-r[h][d],v=!a&&g?u(o):0,b=tS(y-(!a&&f?u(s):0)-(_+v));return p&&b>t+c&&n.push(h),f&&n.push(e.length),n}),[]).map(((t,n,a)=>{const i=Math.max(a[n-1]||0);return e.slice(i,t)})):[]}(e)}};return p}function AS(e,t,n,a,i,r,o){const{align:s,axis:c,direction:l,startIndex:d,loop:u,duration:h,dragFree:p,dragThreshold:m,inViewThreshold:g,slidesToScroll:f,skipSnaps:_,containScroll:y,watchResize:v,watchSlides:b,watchDrag:w,watchFocus:x}=r,C={measure:function(e){const{offsetTop:t,offsetLeft:n,offsetWidth:a,offsetHeight:i}=e;return{top:t,right:n+a,bottom:t+i,left:n,width:a,height:i}}},M=C.measure(t),k=n.map(C.measure),S=function(e,t){const n="rtl"===t,a="y"===e,i=!a&&n?-1:1,r={scroll:a?"y":"x",cross:a?"x":"y",startEdge:a?"top":n?"right":"left",endEdge:a?"bottom":n?"left":"right",measureSize:function(e){const{height:t,width:n}=e;return a?t:n},direction:function(e){return e*i}};return r}(c,l),E=S.measureSize(M),$=function(e){const t={measure:function(t){return e*(t/100)}};return t}(E),A=function(e,t){const n={start:function(){return 0},center:function(e){return a(e)/2},end:a};function a(e){return t-e}const i={measure:function(a,i){return Xk(e)?n[e](a):e(t,a,i)}};return i}(s,E),I=!u&&!!y,z=u||!!y,{slideSizes:T,slideSizesWithGaps:j,startGap:O,endGap:D}=function(e,t,n,a,i,r){const{measureSize:o,startEdge:s,endEdge:c}=e,l=n[0]&&i,d=function(){if(!l)return 0;const e=n[0];return tS(t[s]-e[s])}(),u=function(){if(!l)return 0;const e=r.getComputedStyle(rS(a));return parseFloat(e.getPropertyValue(`margin-${c}`))}(),h=n.map(o),p=n.map(((e,t,n)=>{const a=!t,i=sS(n,t);return a?h[t]+d:i?h[t]+u:n[t+1][s]-e[s]})).map(tS);return{slideSizes:h,slideSizesWithGaps:p,startGap:d,endGap:u}}(S,M,k,n,z,i),R=$S(S,E,f,u,M,k,O,D,2),{snaps:P,snapsAligned:L}=function(e,t,n,a,i){const{startEdge:r,endEdge:o}=e,{groupSlides:s}=i,c=s(a).map((e=>rS(e)[o]-e[0][r])).map(tS).map(t.measure),l=a.map((e=>n[r]-e[r])).map((e=>-tS(e))),d=s(l).map((e=>e[0])).map(((e,t)=>e+c[t]));return{snaps:l,snapsAligned:d}}(S,A,M,k,R),N=-rS(P)+rS(j),{snapsContained:F,scrollContainLimit:V}=function(e,t,n,a,i){const r=mS(-t+e,0),o=n.map(((e,t)=>{const{min:a,max:i}=r,o=r.constrain(e),s=!t,l=sS(n,t);return s?i:l||c(a,o)?a:c(i,o)?i:o})).map((e=>parseFloat(e.toFixed(3)))),s=function(){const e=o[0],t=rS(o);return mS(o.lastIndexOf(e),o.indexOf(t)+1)}();function c(e,t){return aS(e,t)<1}return{snapsContained:function(){if(t<=e+i)return[r.max];if("keepSnaps"===a)return o;const{min:n,max:c}=s;return o.slice(n,c)}(),scrollContainLimit:s}}(E,N,L,y,2),H=I?F:L,{limit:B}=function(e,t,n){const a=t[0];return{limit:mS(n?a-e:rS(t),a)}}(N,H,u),q=gS(oS(H),d,u),U=q.clone(),W=iS(n),Z=pS(a,i,(e=>(({dragHandler:e,scrollBody:t,scrollBounds:n,options:{loop:a}},i)=>{a||n.constrain(e.pointerDown()),t.seek(i)})(se,e)),(e=>(({scrollBody:e,translate:t,location:n,offsetLocation:a,scrollLooper:i,slideLooper:r,dragHandler:o,animation:s,eventHandler:c,scrollBounds:l,options:{loop:d}},u)=>{const h=e.settled(),p=!l.shouldConstrain(),m=d?h:h&&p;m&&!o.pointerDown()&&(s.stop(),c.emit("settle")),m||c.emit("scroll");const g=n.get()*u+Y.get()*(1-u);a.set(g),d&&(i.loop(e.direction()),r.loop()),t.to(a.get())})(se,e))),Q=H[q.get()],G=CS(Q),Y=CS(Q),K=CS(Q),X=CS(Q),J=function(e,t,n,a,i,r){let o=0,s=0,c=i,l=r,d=e.get(),u=0;function h(e){return c=e,m}function p(e){return l=e,m}const m={direction:function(){return s},duration:function(){return c},velocity:function(){return o},seek:function(t){const i=t/1e3,r=c*i,h=a.get()-e.get();let p=0;return c?(n.set(e),o+=h/r,o*=l,d+=o,e.add(o*i),p=d-u):(o=0,n.set(a),e.set(a),p=h),s=nS(p),u=d,m},settled:function(){return tS(a.get()-t.get())<.001},useBaseFriction:function(){return p(r)},useBaseDuration:function(){return h(i)},useFriction:p,useDuration:h};return m}(G,K,Y,X,h,.68),ee=wS(u,H,N,B,X),te=function(e,t,n,a,i,r,o){function s(i){const s=i.distance,c=i.index!==t.get();r.add(s),s&&(a.duration()?e.start():(e.update(),e.render(1),e.update())),c&&(n.set(t.get()),t.set(i.index),o.emit("select"))}const c={distance:function(e,t){s(i.byDistance(e,t))},index:function(e,n){const a=t.clone().set(e);s(i.byIndex(a.get(),n))}};return c}(Z,q,U,J,ee,X,o),ne=function(e){const{max:t,length:n}=e,a={get:function(e){return n?(e-t)/-n:0}};return a}(B),ae=hS(),ie=ES(t,n,o,g),{slideRegistry:re}=function(e,t,n,a,i,r){const{groupSlides:o}=i,{min:s,max:c}=a;return{slideRegistry:function(){const a=o(r),i=!e||"keepSnaps"===t;return 1===n.length?[r]:i?a:a.slice(s,c).map(((e,t,n)=>{const a=!t,i=sS(n,t);return a?cS(rS(n[0])+1):i?cS(oS(r)-rS(n)[0]+1,rS(n)[0]):e}))}()}}(I,y,H,V,R,W),oe=xS(e,n,re,te,J,ae,o,x),se={ownerDocument:a,ownerWindow:i,eventHandler:o,containerRect:M,slideRects:k,animation:Z,axis:S,dragHandler:fS(S,e,a,i,X,_S(S,i),G,Z,te,J,ee,q,o,$,p,m,_,.68,w),eventStore:ae,percentOfView:$,index:q,indexPrevious:U,limit:B,location:G,offsetLocation:K,previousLocation:Y,options:r,resizeHandler:yS(t,o,i,n,S,v,C),scrollBody:J,scrollBounds:vS(B,K,X,J,$),scrollLooper:bS(N,B,K,[G,K,Y,X]),scrollProgress:ne,scrollSnapList:H.map(ne.get),scrollSnaps:H,scrollTarget:ee,scrollTo:te,slideLooper:kS(S,E,N,T,j,P,H,K,n),slideFocus:oe,slidesHandler:SS(t,o,b),slidesInView:ie,slideIndexes:W,slideRegistry:re,slidesToScroll:R,target:X,translate:MS(S,t)};return se}const IS={align:"center",axis:"x",container:null,slides:null,containScroll:"trimSnaps",direction:"ltr",slidesToScroll:1,inViewThreshold:0,breakpoints:{},dragFree:!1,dragThreshold:10,loop:!1,skipSnaps:!1,duration:25,startIndex:0,active:!0,watchDrag:!0,watchResize:!0,watchSlides:!0,watchFocus:!0};function zS(e){function t(e,t){return dS(e,t||{})}const n={mergeOptions:t,optionsAtMedia:function(n){const a=n.breakpoints||{},i=lS(a).filter((t=>e.matchMedia(t).matches)).map((e=>a[e])).reduce(((e,n)=>t(e,n)),{});return t(n,i)},optionsMediaQueries:function(t){return t.map((e=>lS(e.breakpoints||{}))).reduce(((e,t)=>e.concat(t)),[]).map(e.matchMedia)}};return n}function TS(e,t,n){const a=e.ownerDocument,i=a.defaultView,r=zS(i),o=function(e){let t=[];const n={init:function(n,a){return t=a.filter((({options:t})=>!1!==e.optionsAtMedia(t).active)),t.forEach((t=>t.init(n,e))),a.reduce(((e,t)=>Object.assign(e,{[t.name]:t})),{})},destroy:function(){t=t.filter((e=>e.destroy()))}};return n}(r),s=hS(),c=function(){let e,t={};function n(e){return t[e]||[]}const a={init:function(t){e=t},emit:function(t){return n(t).forEach((n=>n(e,t))),a},off:function(e,i){return t[e]=n(e).filter((e=>e!==i)),a},on:function(e,i){return t[e]=n(e).concat([i]),a},clear:function(){t={}}};return a}(),{mergeOptions:l,optionsAtMedia:d,optionsMediaQueries:u}=r,{on:h,off:p,emit:m}=c,g=S;let f,_,y,v,b=!1,w=l(IS,TS.globalOptions),x=l(w),C=[];function M(t){const n=AS(e,y,v,a,i,t,c);if(t.loop&&!n.slideLooper.canLoop()){return M(Object.assign({},t,{loop:!1}))}return n}function k(t,n){b||(w=l(w,t),x=d(w),C=n||C,function(){const{container:t,slides:n}=x,a=Xk(t)?e.querySelector(t):t;y=a||e.children[0];const i=Xk(n)?y.querySelectorAll(n):n;v=[].slice.call(i||y.children)}(),f=M(x),u([w,...C.map((({options:e})=>e))]).forEach((e=>s.add(e,"change",S))),x.active&&(f.translate.to(f.location.get()),f.animation.init(),f.slidesInView.init(),f.slideFocus.init(I),f.eventHandler.init(I),f.resizeHandler.init(I),f.slidesHandler.init(I),f.options.loop&&f.slideLooper.loop(),y.offsetParent&&v.length&&f.dragHandler.init(I),_=o.init(I,C)))}function S(e,t){const n=A();E(),k(l({startIndex:n},e),t),c.emit("reInit")}function E(){f.dragHandler.destroy(),f.eventStore.clear(),f.translate.clear(),f.slideLooper.clear(),f.resizeHandler.destroy(),f.slidesHandler.destroy(),f.slidesInView.destroy(),f.animation.destroy(),o.destroy(),s.clear()}function $(e,t,n){x.active&&!b&&(f.scrollBody.useBaseFriction().useDuration(!0===t?0:x.duration),f.scrollTo.index(e,n||0))}function A(){return f.index.get()}const I={canScrollNext:function(){return f.index.add(1).get()!==A()},canScrollPrev:function(){return f.index.add(-1).get()!==A()},containerNode:function(){return y},internalEngine:function(){return f},destroy:function(){b||(b=!0,s.clear(),E(),c.emit("destroy"),c.clear())},off:p,on:h,emit:m,plugins:function(){return _},previousScrollSnap:function(){return f.indexPrevious.get()},reInit:g,rootNode:function(){return e},scrollNext:function(e){$(f.index.add(1).get(),e,-1)},scrollPrev:function(e){$(f.index.add(-1).get(),e,1)},scrollProgress:function(){return f.scrollProgress.get(f.location.get())},scrollSnapList:function(){return f.scrollSnapList},scrollTo:$,selectedScrollSnap:A,slideNodes:function(){return v},slidesInView:function(){return f.slidesInView.get()},slidesNotInView:function(){return f.slidesInView.get(!1)}};return k(t,n),setTimeout((()=>c.emit("init")),0),I}function jS(){return jS=Object.assign||function(e){for(var t=1;t=e;case"y":return Math.abs(i)>=e;case"z":return Math.abs(r)>=e;default:return!1}}(r,a)&&e.preventDefault(),l.isStarted?l.isMomentum&&r>Math.max(2,2*l.lastAbsDelta)&&(M(!0),x()):x(),0===r&&Object.is&&Object.is(e.deltaX,-0)?d=!0:(t=e,l.axisMovement=DS(l.axisMovement,a),l.lastAbsDelta=r,l.scrollPointsToMerge.push({axisDelta:a,timeStamp:i}),g(),p({axisDelta:a,isStart:!l.isStartPublished}),l.isStartPublished=!0,C())},g=function(){var e;l.scrollPointsToMerge.length===BS?(l.scrollPoints.unshift({axisDeltaSum:l.scrollPointsToMerge.map((function(e){return e.axisDelta})).reduce(DS),timeStamp:(e=l.scrollPointsToMerge.map((function(e){return e.timeStamp})),e.reduce((function(e,t){return e+t}))/e.length)}),_(),l.scrollPointsToMerge.length=0,l.scrollPoints.length=1,l.isMomentum||b()):l.isStartPublished||f()},f=function(){var e;l.axisVelocity=(e=l.scrollPointsToMerge,e[e.length-1]).axisDelta.map((function(e){return e/l.willEndTimeout}))},_=function(){var e=l.scrollPoints,t=e[0],n=e[1];if(n&&t){var a=t.timeStamp-n.timeStamp;if(!(a<=0)){var i=t.axisDeltaSum.map((function(e){return e/a})),r=i.map((function(e,t){return e/(l.axisVelocity[t]||1)}));l.axisVelocity=i,l.accelerationFactors.push(r),y(a)}}},y=function(e){var t=10*Math.ceil(e/10)*1.2;l.isMomentum||(t=Math.max(100,2*t)),l.willEndTimeout=Math.min(1e3,Math.round(t))},v=function(e){return 0===e||e<=HS&&e>=VS},b=function(){if(l.accelerationFactors.length>=qS){if(d&&(d=!1,RS(l.axisVelocity)>=.2))return void w();var e=l.accelerationFactors.slice(-1*qS);e.every((function(e){var t=!!e.reduce((function(e,t){return e&&e<1&&e===t?1:0})),n=e.filter(v).length===e.length;return t||n}))&&w(),l.accelerationFactors=e}},w=function(){l.isMomentum=!0},x=function(){(l=ZS()).isStarted=!0,l.startTime=Date.now(),n=void 0,d=!1},C=function(){clearTimeout(a),a=setTimeout(M,l.willEndTimeout)},M=function(e){void 0===e&&(e=!1),l.isStarted&&(l.isMomentum&&e?p({isEnding:!0,isMomentumCancel:!0}):p({isEnding:!0}),l.isMomentum=!1,l.isStarted=!1)},k=function(e){var t=[],n=function(n){n.removeEventListener("wheel",e),t=t.filter((function(e){return e!==n}))};return PS({observe:function(a){return a.addEventListener("wheel",e,{passive:!1}),t.push(a),function(){return n(a)}},unobserve:n,disconnect:function(){t.forEach(n)}})}(u),S=k.observe,E=k.unobserve,$=k.disconnect;return h(e),PS({on:r,off:o,observe:S,unobserve:E,disconnect:$,feedWheel:u,updateOptions:h})}var GS={active:!0,breakpoints:{},wheelDraggingClass:"is-wheel-dragging",forceWheelAxis:void 0,target:void 0};function YS(e){var t;void 0===e&&(e={});var n=function(){};var a={name:"wheelGestures",options:e,init:function(a,i){var r,o,s=i.mergeOptions,c=i.optionsAtMedia,l=s(GS,YS.globalOptions),d=s(l,e);t=c(d);var u,h=a.internalEngine(),p=null!=(r=t.target)?r:a.containerNode().parentNode,m=null!=(o=t.forceWheelAxis)?o:h.options.axis,g=QS({preventWheelAction:m,reverseSign:[!0,!0,!1]}),f=g.observe(p),_=g.on("wheel",(function(e){var a=e.axisDelta,i=a[0],r=a[1],o="x"===m?i:r,s="x"===m?r:i,c=e.isMomentum&&e.previous&&!e.previous.isMomentum,l=e.isEnding&&!e.isMomentum||c;Math.abs(o)>Math.abs(s)&&!y&&!e.isMomentum&&function(e){try{x(u=new MouseEvent("mousedown",e.event))}catch(e){return n()}y=!0,document.documentElement.addEventListener("mousemove",b,!0),document.documentElement.addEventListener("mouseup",b,!0),void document.documentElement.addEventListener("mousedown",b,!0),t.wheelDraggingClass&&p.classList.add(t.wheelDraggingClass)}(e);if(!y)return;l?function(e){y=!1,x(w("mouseup",e)),v(),t.wheelDraggingClass&&p.classList.remove(t.wheelDraggingClass)}(e):x(w("mousemove",e))})),y=!1;function v(){document.documentElement.removeEventListener("mousemove",b,!0),document.documentElement.removeEventListener("mouseup",b,!0),document.documentElement.removeEventListener("mousedown",b,!0)}function b(e){y&&e.isTrusted&&e.stopImmediatePropagation()}function w(e,t){var n,a;if(m===h.options.axis){var i=t.axisMovement;n=i[0],a=i[1]}else{var r=t.axisMovement;a=r[0],n=r[1]}if(!h.options.skipSnaps&&!h.options.dragFree){var o=h.containerRect.width,s=h.containerRect.height;n=n<0?Math.max(n,-o):Math.min(n,o),a=a<0?Math.max(a,-s):Math.min(a,s)}return new MouseEvent(e,{clientX:u.clientX+n,clientY:u.clientY+a,screenX:u.screenX+n,screenY:u.screenY+a,movementX:n,movementY:a,button:0,bubbles:!0,cancelable:!0,composed:!0})}function x(e){a.containerNode().dispatchEvent(e)}n=function(){f(),_(),v()}},destroy:function(){return n()}};return a}YS.globalOptions=void 0;class KS{constructor(e,t,n){this._mutationObserver=new MutationObserver(((e,t)=>this._refreshCarouselContents())),this._refreshCarouselContents=()=>{const e=sf(this._parent);!jy(this._carousel.slideNodes(),e)&&(this._carousel.destroy(),this._carousel=this._createCarousel(e))},this._root=e,this._parent=t,this._direction=n?.direction??"horizontal",this._transitionEffect=n?.transitionEffect??"slide",this._startIndex=n?.startIndex??0,this._dragFree=n?.dragFree??!1,this._loop=n?.loop??!1,this._draggable=n?.dragEnabled??!0,this._plugins=n?.plugins??[],this._textDirection=n?.textDirection??"ltr",this._carousel=this._createCarousel(sf(this._parent)),t instanceof HTMLSlotElement&&t.addEventListener("slotchange",this._refreshCarouselContents),this._mutationObserver.observe(this._parent,{childList:!0})}destroy(){this._parent instanceof HTMLSlotElement&&this._parent.removeEventListener("slotchange",this._refreshCarouselContents),this._mutationObserver.disconnect(),this._carousel.destroy()}getSlide(e){return this._carousel.slideNodes()[e]??null}getSelectedSlide(){return this.getSlide(this.getSelectedIndex())}getSelectedIndex(){return this._carousel.selectedScrollSnap()}selectSlide(e){this._carousel.scrollTo(e,"none"===this._transitionEffect);const t=this.getSlide(e);t&&Vg(this._parent,"carousel:force-select",{index:e,element:t})}_createCarousel(e){const t=TS(this._root,{slides:e,axis:"horizontal"===this._direction?"x":"y",duration:20,startIndex:this._startIndex,dragFree:this._dragFree,loop:this._loop,containScroll:"trimSnaps",watchSlides:!1,watchResize:!0,watchDrag:this._draggable,direction:this._textDirection},[...this._plugins,...e.length>1?[YS({forceWheelAxis:"y"})]:[]]),n=()=>{const e=(()=>{const e=t.selectedScrollSnap(),n=t.slideNodes()[e]??null;return n?{index:e,element:n}:null})();e&&Vg(this._parent,"carousel:select",e)};return t.on("select",(()=>n())),t}}const XS=e=>"rtl"===getComputedStyle(e).direction?"rtl":"ltr";let JS=class extends se{constructor(){super(...arguments),this.direction="horizontal",this.dragEnabled=!0,this.selected=0,this._refParent=Ie(),this._refRoot=Ie(),this._carousel=null}connectedCallback(){super.connectedCallback(),this.requestUpdate()}disconnectedCallback(){this._carousel?.destroy(),this._carousel=null,super.disconnectedCallback()}willUpdate(e){e.has("direction")&&this.setAttribute("direction",this.direction);["direction","dragEnabled","dragFree","loop","plugins","transitionEffect"].some((t=>e.has(t)))&&(this._carousel?.destroy(),this._carousel=null)}render(){return q`
+ +
+
+ +
+
+ +
`}updated(e){!this._carousel&&this._refRoot.value&&this._refParent.value?this._carousel=new KS(this._refRoot.value,this._refParent.value,{direction:this.direction,dragEnabled:this.dragEnabled,dragFree:this.dragFree,startIndex:this.selected,transitionEffect:this.transitionEffect,loop:this.loop,plugins:this.plugins,textDirection:XS(this)}):e.has("selected")&&this._carousel?.selectSlide(this.selected)}static get styles(){return o(":host {\n display: block;\n height: 100%;\n width: 100%;\n position: relative;\n}\n\n.embla {\n width: 100%;\n height: 100%;\n margin-left: auto;\n margin-right: auto;\n}\n\n.embla__container {\n display: flex;\n width: 100%;\n height: 100%;\n user-select: none;\n -webkit-touch-callout: none;\n -khtml-user-select: none;\n -webkit-tap-highlight-color: transparent;\n}\n\n:host([direction=vertical]) .embla__container {\n flex-direction: column;\n}\n\n:host([direction=horizontal]) .embla__container {\n flex-direction: row;\n}\n\n.embla__viewport {\n width: 100%;\n height: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n.embla__viewport.is-draggable {\n cursor: move;\n cursor: grab;\n}\n\n.embla__viewport.is-dragging {\n cursor: grabbing;\n}\n\n:host([direction=vertical]) ::slotted(.embla__slide) {\n margin-bottom: 5px;\n}\n\n:host([direction=horizontal]) ::slotted(.embla__slide) {\n margin-right: 5px;\n}")}};e([he({attribute:!0,reflect:!0})],JS.prototype,"direction",void 0),e([he({attribute:!0})],JS.prototype,"transitionEffect",void 0),e([he({attribute:!1})],JS.prototype,"loop",void 0),e([he({attribute:!1})],JS.prototype,"dragFree",void 0),e([he({attribute:!1})],JS.prototype,"dragEnabled",void 0),e([he({attribute:!1})],JS.prototype,"plugins",void 0),e([he({attribute:!1})],JS.prototype,"selected",void 0),JS=e([le("frigate-card-carousel")],JS); +/** + * @license + * Copyright 2019 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const eE=window,tE=eE.ShadowRoot&&(void 0===eE.ShadyCSS||eE.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,nE=Symbol(),aE=new WeakMap;let iE=class{constructor(e,t,n){if(this._$cssResult$=!0,n!==nE)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(tE&&void 0===e){const n=void 0!==t&&1===t.length;n&&(e=aE.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),n&&aE.set(t,e))}return e}toString(){return this.cssText}};const rE=(e,t)=>{tE?e.adoptedStyleSheets=t.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet)):t.forEach((t=>{const n=document.createElement("style"),a=eE.litNonce;void 0!==a&&n.setAttribute("nonce",a),n.textContent=t.cssText,e.appendChild(n)}))},oE=tE?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const n of e.cssRules)t+=n.cssText;return(e=>new iE("string"==typeof e?e:e+"",void 0,nE))(t)})(e):e +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */;var sE;const cE=window,lE=cE.trustedTypes,dE=lE?lE.emptyScript:"",uE=cE.reactiveElementPolyfillSupport,hE={toAttribute(e,t){switch(t){case Boolean:e=e?dE:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let n=e;switch(t){case Boolean:n=null!==e;break;case Number:n=null===e?null:Number(e);break;case Object:case Array:try{n=JSON.parse(e)}catch(e){n=null}}return n}},pE=(e,t)=>t!==e&&(t==t||e==e),mE={attribute:!0,type:String,converter:hE,reflect:!1,hasChanged:pE},gE="finalized";class fE extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(e){var t;this.finalize(),(null!==(t=this.h)&&void 0!==t?t:this.h=[]).push(e)}static get observedAttributes(){this.finalize();const e=[];return this.elementProperties.forEach(((t,n)=>{const a=this._$Ep(n,t);void 0!==a&&(this._$Ev.set(a,n),e.push(a))})),e}static createProperty(e,t=mE){if(t.state&&(t.attribute=!1),this.finalize(),this.elementProperties.set(e,t),!t.noAccessor&&!this.prototype.hasOwnProperty(e)){const n="symbol"==typeof e?Symbol():"__"+e,a=this.getPropertyDescriptor(e,n,t);void 0!==a&&Object.defineProperty(this.prototype,e,a)}}static getPropertyDescriptor(e,t,n){return{get(){return this[t]},set(a){const i=this[e];this[t]=a,this.requestUpdate(e,i,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)||mE}static finalize(){if(this.hasOwnProperty(gE))return!1;this[gE]=!0;const e=Object.getPrototypeOf(this);if(e.finalize(),void 0!==e.h&&(this.h=[...e.h]),this.elementProperties=new Map(e.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){const e=this.properties,t=[...Object.getOwnPropertyNames(e),...Object.getOwnPropertySymbols(e)];for(const n of t)this.createProperty(n,e[n])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const n=new Set(e.flat(1/0).reverse());for(const e of n)t.unshift(oE(e))}else void 0!==e&&t.push(oE(e));return t}static _$Ep(e,t){const n=t.attribute;return!1===n?void 0:"string"==typeof n?n:"string"==typeof e?e.toLowerCase():void 0}_$Eu(){var e;this._$E_=new Promise((e=>this.enableUpdating=e)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(e=this.constructor.h)||void 0===e||e.forEach((e=>e(this)))}addController(e){var t,n;(null!==(t=this._$ES)&&void 0!==t?t:this._$ES=[]).push(e),void 0!==this.renderRoot&&this.isConnected&&(null===(n=e.hostConnected)||void 0===n||n.call(e))}removeController(e){var t;null===(t=this._$ES)||void 0===t||t.splice(this._$ES.indexOf(e)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((e,t)=>{this.hasOwnProperty(t)&&(this._$Ei.set(t,this[t]),delete this[t])}))}createRenderRoot(){var e;const t=null!==(e=this.shadowRoot)&&void 0!==e?e:this.attachShadow(this.constructor.shadowRootOptions);return rE(t,this.constructor.elementStyles),t}connectedCallback(){var e;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostConnected)||void 0===t?void 0:t.call(e)}))}enableUpdating(e){}disconnectedCallback(){var e;null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostDisconnected)||void 0===t?void 0:t.call(e)}))}attributeChangedCallback(e,t,n){this._$AK(e,n)}_$EO(e,t,n=mE){var a;const i=this.constructor._$Ep(e,n);if(void 0!==i&&!0===n.reflect){const r=(void 0!==(null===(a=n.converter)||void 0===a?void 0:a.toAttribute)?n.converter:hE).toAttribute(t,n.type);this._$El=e,null==r?this.removeAttribute(i):this.setAttribute(i,r),this._$El=null}}_$AK(e,t){var n;const a=this.constructor,i=a._$Ev.get(e);if(void 0!==i&&this._$El!==i){const e=a.getPropertyOptions(i),r="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==(null===(n=e.converter)||void 0===n?void 0:n.fromAttribute)?e.converter:hE;this._$El=i,this[i]=r.fromAttribute(t,e.type),this._$El=null}}requestUpdate(e,t,n){let a=!0;void 0!==e&&(((n=n||this.constructor.getPropertyOptions(e)).hasChanged||pE)(this[e],t)?(this._$AL.has(e)||this._$AL.set(e,t),!0===n.reflect&&this._$El!==e&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(e,n))):a=!1),!this.isUpdatePending&&a&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(e){Promise.reject(e)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var e;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((e,t)=>this[t]=e)),this._$Ei=void 0);let t=!1;const n=this._$AL;try{t=this.shouldUpdate(n),t?(this.willUpdate(n),null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostUpdate)||void 0===t?void 0:t.call(e)})),this.update(n)):this._$Ek()}catch(e){throw t=!1,this._$Ek(),e}t&&this._$AE(n)}willUpdate(e){}_$AE(e){var t;null===(t=this._$ES)||void 0===t||t.forEach((e=>{var t;return null===(t=e.hostUpdated)||void 0===t?void 0:t.call(e)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(e){return!0}update(e){void 0!==this._$EC&&(this._$EC.forEach(((e,t)=>this._$EO(t,this[t],e))),this._$EC=void 0),this._$Ek()}updated(e){}firstUpdated(e){}}fE[gE]=!0,fE.elementProperties=new Map,fE.elementStyles=[],fE.shadowRootOptions={mode:"open"},null==uE||uE({ReactiveElement:fE}),(null!==(sE=cE.reactiveElementVersions)&&void 0!==sE?sE:cE.reactiveElementVersions=[]).push("1.6.3"); +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const _E=0,yE=Symbol();class vE{constructor(e,t,n){this.o=0,this.status=0,this.autoRun=!0,this.i=e,this.i.addController(this);const a="object"==typeof t?t:{task:t,args:n};this.t=a.task,this.h=a.args,void 0!==a.autoRun&&(this.autoRun=a.autoRun),this.taskComplete=new Promise(((e,t)=>{this.l=e,this.u=t}))}hostUpdated(){this.performTask()}async performTask(){var e;const t=null===(e=this.h)||void 0===e?void 0:e.call(this);this.shouldRun(t)&&this.run(t)}shouldRun(e){return this.autoRun&&this.v(e)}async run(e){var t;let n,a;null!=e||(e=null===(t=this.h)||void 0===t?void 0:t.call(this)),2!==this.status&&3!==this.status||(this.taskComplete=new Promise(((e,t)=>{this.l=e,this.u=t}))),this.status=1,this._=void 0,this.m=void 0,this.i.requestUpdate();const i=++this.o;try{n=await this.t(e)}catch(e){a=e}this.o===i&&(n===yE?this.status=0:(void 0===a?(this.status=2,this.l(n)):(this.status=3,this.u(a)),this.m=n,this._=a),this.i.requestUpdate())}get value(){return this.m}get error(){return this._}render(e){var t,n,a,i;switch(this.status){case 0:return null===(t=e.initial)||void 0===t?void 0:t.call(e);case 1:return null===(n=e.pending)||void 0===n?void 0:n.call(e);case 2:return null===(a=e.complete)||void 0===a?void 0:a.call(e,this.value);case 3:return null===(i=e.error)||void 0===i?void 0:i.call(e,this.error);default:this.status}}v(e){const t=this.T;return this.T=e,Array.isArray(e)&&Array.isArray(t)?e.length===t.length&&e.some(((e,n)=>pE(e,t[n]))):e!==t}}class bE{constructor(e){this._keys=e}modify(e){this._keys.forEach((t=>e.removeContext(t)))}}var wE=":host {\n display: flex;\n flex-direction: column;\n width: 100%;\n margin-left: 5px;\n padding: 5px;\n color: var(--primary-text-color);\n overflow: hidden;\n column-gap: 5%;\n}\n\ndiv.title {\n font-size: 1.2rem;\n font-weight: bold;\n}\n\ndiv.details {\n flex: 1;\n justify-content: center;\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n --mdc-icon-size: 16px;\n min-height: 0px;\n}";const xE=(e,t,n)=>{const a={...n?.cardWideConfig&&{cardWideConfig:n.cardWideConfig}};return q` ${e.render({initial:()=>n?.inProgressFunc?.()??wk(a),pending:()=>n?.inProgressFunc?.()??wk(a),error:e=>{Zg(e),n?.errorFunc&&n.errorFunc(e)},complete:t})}`},CE=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,ME=(e,t,n,a=!0)=>new vE(e,{args:()=>[!!t(),n()],task:async([e,n])=>{const a=t();return e&&a&&n?(async(e,t)=>e&&t?t.startsWith("data:")||t.match(CE)?t:new Promise(((n,a)=>{e?e.fetchWithAuth(t).then((e=>e.blob())).then((e=>{const t=new FileReader;t.onload=()=>{const e=t.result;n("string"==typeof e?e:null)},t.onerror=e=>a(e),t.readAsDataURL(e)})).catch((e=>a(e))):a()})):null)(a,n):null},autoRun:a}),kE=300;let SE=class extends se{constructor(){super(),this._thumbnailError=!1,this._intersectionObserver=new IntersectionObserver(this._intersectionHandler.bind(this))}connectedCallback(){this._intersectionObserver.observe(this),super.connectedCallback()}disconnectedCallback(){super.disconnectedCallback(),this._intersectionObserver.disconnect()}willUpdate(e){e.has("thumbnail")&&(this._embedThumbnailTask=ME(this,(()=>this.hass),(()=>this.thumbnail),!1),this._intersectionObserver.unobserve(this),this._intersectionObserver.observe(this))}_intersectionHandler(e){this._embedThumbnailTask?.status===_E&&e.some((e=>e.isIntersecting))&&this._embedThumbnailTask?.run()}render(){const e=q` `;return!this._embedThumbnailTask||this._thumbnailError?e:q`${this.thumbnail?xE(this._embedThumbnailTask,(e=>e?q``:q``),{inProgressFunc:()=>e,errorFunc:()=>{this._thumbnailError=!0}}):e} `}static get styles(){return o(":host {\n display: block;\n overflow: hidden;\n aspect-ratio: 1/1;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\nimg {\n display: block;\n}\n\nimg,\nha-icon {\n display: inline-block;\n vertical-align: top;\n margin: 0;\n border-radius: var(--frigate-card-css-border-radius, var(--ha-card-border-radius, 4px));\n width: var(--frigate-card-thumbnail-size);\n max-height: 100%;\n aspect-ratio: 1/1;\n object-fit: cover;\n}\n\nha-icon {\n --mdc-icon-size: 50%;\n color: var(--primary-text-color);\n display: flex;\n justify-content: center;\n align-items: center;\n border: 1px solid rgba(255, 255, 255, 0.3);\n box-sizing: border-box;\n opacity: 0.2;\n}")}};e([he({attribute:!1})],SE.prototype,"thumbnail",void 0),e([he({attribute:!1})],SE.prototype,"hass",void 0),e([pe()],SE.prototype,"_thumbnailError",void 0),SE=e([le("frigate-card-thumbnail-feature-thumbnail")],SE);let EE=class extends se{render(){if(this.date)return q` + ${this.cameraMetadata?.engineLogo?q``:""} +
+
${qu(this.date,"HH:mm")}
+
${qu(this.date,"MMM do")}
+ ${this.showCameraTitle&&this.cameraMetadata?.title?q`
${this.cameraMetadata.title}
`:q``} +
+ `}static get styles(){return o(":host {\n display: block;\n max-width: var(--frigate-card-thumbnail-size);\n max-height: var(--frigate-card-thumbnail-size);\n aspect-ratio: 1/1;\n border: 1px solid var(--secondary-color);\n background-color: var(--secondary-background-color);\n border-radius: var(--frigate-card-css-border-radius, var(--ha-card-border-radius, 4px));\n overflow: hidden;\n padding: 10px;\n box-sizing: border-box;\n position: relative;\n}\n\nimg.background {\n display: block;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n padding: 10%;\n box-sizing: border-box;\n pointer-events: none;\n opacity: 0.1;\n}\n\ndiv.content {\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n color: var(--primary-text-color);\n}\n\ndiv {\n text-align: center;\n}\n\ndiv.title {\n font-size: 1.5rem;\n}\n\ndiv.camera {\n font-size: 0.7em;\n}")}};e([he({attribute:!1})],EE.prototype,"date",void 0),e([he({attribute:!1})],EE.prototype,"cameraMetadata",void 0),e([he({attribute:!1})],EE.prototype,"showCameraTitle",void 0),EE=e([le("frigate-card-thumbnail-feature-text")],EE);let $E=class extends se{render(){if(!this.media)return;const e=this.media.getScore(),t=e?(100*e).toFixed(2)+"%":null,n=this.media.getStartTime(),a=n?Gg(n):null,i=this.media.getEndTime(),r=n&&i?Xg(n,i):null,o=this.media.inProgress()?N_("event.in_progress"):null,s=Hg(this.media.getWhat()?.join(", "))??null,c=Hg(this.media.getWhere()?.join(", "))??null,l=Hg(this.media.getTags()?.join(", "))??null,d=s||l?(s??"")+(s&&l?": ":"")+(l??""):null,u=this.seek?qu(this.seek,"HH:mm:ss"):null;return q` + ${d?q`
+ ${d} + ${t?q`${t}`:""} +
`:""} +
+ ${a?q`
+ + ${a} +
+ ${r||o?q`
+ + ${r?q`${r}`:""} + ${o?q`${o}`:""} +
`:""}`:""} + ${this.cameraTitle?q`
+ + ${this.cameraTitle} +
`:""} + ${c?q`
+ + ${c} +
`:q``} + ${l?q`
+ + ${l} +
`:q``} + ${u?q`
+ + ${u} +
`:q``} +
+ `}static get styles(){return o(wE)}};e([he({attribute:!1})],$E.prototype,"media",void 0),e([he({attribute:!1})],$E.prototype,"seek",void 0),e([he({attribute:!1})],$E.prototype,"cameraTitle",void 0),$E=e([le("frigate-card-thumbnail-details-event")],$E);let AE=class extends se{render(){if(!this.media)return;const e=this.media.getStartTime(),t=e?Gg(e):null,n=this.media.getEndTime(),a=e&&n?Xg(e,n):null,i=this.media.inProgress()?N_("recording.in_progress"):null,r=this.seek?qu(this.seek,"HH:mm:ss"):null,o=this.media.getEventCount();return q` + ${this.cameraTitle?q`
+ ${this.cameraTitle} +
`:""} +
+ ${t?q`
+ + ${t} +
+ ${a||i?q`
+ + ${a?q`${a}`:""} + ${i?q`${i}`:""} +
`:""}`:""} + ${r?q`
+ + ${r} +
`:q``} + ${null!==o?q`
+ + ${o} +
`:""} +
+ `}static get styles(){return o(wE)}};e([he({attribute:!1})],AE.prototype,"media",void 0),e([he({attribute:!1})],AE.prototype,"seek",void 0),e([he({attribute:!1})],AE.prototype,"cameraTitle",void 0),AE=e([le("frigate-card-thumbnail-details-recording")],AE);let IE=class extends se{constructor(){super(...arguments),this.details=!1,this.show_favorite_control=!1,this.show_timeline_control=!1,this.show_download_control=!1}render(){if(!this.media||!this.cameraManager||!this.hass)return;const e=this.media.getThumbnail(),t=this.media.getTitle()??"",n={star:!0,starred:!!this.media?.isFavorite()},a=this.show_timeline_control&&(!ex.isRecording(this.media)||this.media.getStartTime()&&this.media.getEndTime()),i=this.cameraManager?.getMediaCapabilities(this.media),r=this.show_favorite_control&&this.media&&this.hass&&i?.canFavorite,o=this.show_download_control&&this.hass&&this.media.getID()&&i?.canDownload,s=this.cameraManager.getCameraMetadata(this.media.getCameraID());return q` + ${ex.isEvent(this.media)&&e?q``:ex.isEvent(this.media)||ex.isRecording(this.media)?q``:q``} + ${r?q` {if(vf(e),this.hass&&this.media){try{await(this.cameraManager?.favoriteMedia(this.media,!this.media?.isFavorite()))}catch(e){return void Zg(e)}this.requestUpdate()}}} + />`:""} + ${this.details&&ex.isEvent(this.media)?q``:this.details&&ex.isRecording(this.media)?q``:q``} + ${a?q`{vf(e),this.viewManagerEpoch&&this.media&&this.viewManagerEpoch.manager.setViewByParameters({params:{view:"timeline",queryResults:this.viewManagerEpoch?.manager.getView()?.queryResults?.clone().selectResultIfFound((e=>e===this.media))},modifiers:[new bE(["timeline"])]})}} + >`:""} + ${o?q` {if(vf(e),this.hass&&this.cameraManager&&this.media)try{await Sw(this.hass,this.cameraManager,this.media)}catch(e){Ck(this,e)}}} + >`:""} + `}static get styles(){return o(":host {\n display: flex;\n flex-direction: row;\n box-sizing: border-box;\n position: relative;\n overflow: hidden;\n transition: transform 0.2s linear;\n}\n\n:host(:not([details])) {\n aspect-ratio: 1/1;\n}\n\n:host([details]) {\n border: 1px solid var(--primary-color);\n border-radius: var(--frigate-card-css-border-radius, var(--ha-card-border-radius, 4px));\n padding: 2px;\n background-color: var(--primary-background-color, black);\n}\n\n:host(:hover) {\n transform: scale(1.04);\n}\n\nha-icon {\n position: absolute;\n border-radius: 50%;\n opacity: 0.5;\n color: var(--primary-color);\n cursor: pointer;\n transition: opacity 0.2s ease-in-out, color 0.2s ease-in-out;\n}\n\nha-icon:hover {\n opacity: 1;\n}\n\nha-icon.star {\n top: 3px;\n left: 3px;\n}\n\nha-icon.star.starred {\n color: gold;\n}\n\nha-icon.timeline {\n top: 3px;\n right: 3px;\n}\n\nha-icon.download {\n right: 3px;\n bottom: 3px;\n}\n\nfrigate-card-thumbnail-details-event,\nfrigate-card-thumbnail-details-recording {\n flex: 1;\n}")}};e([he({attribute:!1})],IE.prototype,"cameraManager",void 0),e([he({attribute:!1})],IE.prototype,"media",void 0),e([he({attribute:!0,type:Boolean})],IE.prototype,"details",void 0),e([he({attribute:!0,type:Boolean})],IE.prototype,"show_favorite_control",void 0),e([he({attribute:!0,type:Boolean})],IE.prototype,"show_timeline_control",void 0),e([he({attribute:!0,type:Boolean})],IE.prototype,"show_download_control",void 0),e([he({attribute:!1})],IE.prototype,"seek",void 0),IE=e([le("frigate-card-thumbnail")],IE);let zE=class extends se{constructor(){super(...arguments),this.fadeThumbnails=!1,this._thumbnailSlides=[]}willUpdate(e){if(e.has("config")){this.config?.size&&this.style.setProperty("--frigate-card-thumbnail-size",`${this.config.size}px`);const e=this._getDirection();e?this.setAttribute("direction",e):this.removeAttribute("direction")}["cameraManager","config","transitionEffect","viewManagerEpoch"].some((t=>e.has(t)))&&(this._thumbnailSlides=this._renderSlides()),e.has("viewManagerEpoch")&&this.style.setProperty("--frigate-card-carousel-thumbnail-opacity",this.fadeThumbnails&&null!==this._getSelectedSlide()?"0.4":"1.0")}_getSelectedSlide(){return this.viewManagerEpoch?.manager.getView()?.queryResults?.getSelectedIndex()??null}_renderSlides(){const e=[],t=this.viewManagerEpoch?.manager.getView(),n=t?.context?.mediaViewer?.seek,a=this._getSelectedSlide();for(const i of t?.queryResults?.getResults()??[]){const t=e.length,r={embla__slide:!0,"slide-selected":a===t};e.push(q` {const n=this.viewManagerEpoch?.manager.getView();n&&n.queryResults&&Vg(this,"thumbnail-carousel:tap",{queryResults:n.queryResults.clone().selectIndex(t)}),vf(e)}} + > + `)}return e}_getDirection(){return"left"===this.config?.mode||"right"===this.config?.mode?"vertical":"above"===this.config?.mode||"below"===this.config?.mode?"horizontal":null}render(){const e=this._getDirection();if(this._thumbnailSlides.length&&this.config&&e)return q` + ${this._thumbnailSlides} + `}static get styles(){return o(":host {\n --frigate-card-thumbnail-size-max: 300px;\n --frigate-card-thumbnail-details-width: calc(\n var(--frigate-card-thumbnail-size) + 200px\n );\n}\n\n:host {\n display: block;\n width: 100%;\n height: 100%;\n --frigate-card-carousel-thumbnail-opacity: 1;\n}\n\n:host([direction=vertical]) {\n height: 100%;\n}\n\n:host([direction=horizontal]) {\n height: auto;\n}\n\n.embla__slide {\n flex: 0 0 auto;\n opacity: var(--frigate-card-carousel-thumbnail-opacity);\n}\n\n.embla__slide.slide-selected {\n opacity: 1;\n}\n\nfrigate-card-thumbnail {\n width: var(--frigate-card-thumbnail-size);\n height: var(--frigate-card-thumbnail-size);\n max-width: 100%;\n}\n\nfrigate-card-thumbnail[details] {\n width: var(--frigate-card-thumbnail-details-width);\n}")}};e([he({attribute:!1})],zE.prototype,"hass",void 0),e([he({attribute:!1})],zE.prototype,"viewManagerEpoch",void 0),e([he({attribute:!1})],zE.prototype,"cameraManager",void 0),e([he({attribute:!1})],zE.prototype,"config",void 0),e([he({attribute:!1})],zE.prototype,"fadeThumbnails",void 0),zE=e([le("frigate-card-thumbnail-carousel")],zE);var TE=":host {\n width: 100%;\n height: 100%;\n display: block;\n}";const jE=document.createElement("template");jE.innerHTML='\n
\n
\n';class OE extends HTMLElement{constructor(){super();const e=this.attachShadow({mode:"open"});e.appendChild(jE.content.cloneNode(!0)),this._freeSpaceDiv=e.getElementById("fs")}connectedCallback(){this._freeSpaceDiv&&this._freeSpaceDiv.addEventListener("click",this.handleFreeSpaceDivClick),this.upgradeProperty("open")}disconnectedCallback(){document.removeEventListener("keyup",this.handleKeyUp)}upgradeProperty(e){if(this.hasOwnProperty(e)){let t=this[e];delete this[e],this[e]=t}}handleKeyUp=e=>{if(!e.altKey&&"Escape"===e.key)e.preventDefault(),this.open=!1};get open(){return this.hasAttribute("open")}set open(e){e?this.hasAttribute("open")||this.setAttribute("open",""):this.hasAttribute("open")&&this.removeAttribute("open")}static get observedAttributes(){return["open"]}attributeChangedCallback(e,t,n){"open"===e&&(this.open?(this.setAttribute("tabindex","0"),this.setAttribute("aria-disabled","false"),this.focus({preventScroll:!0}),document.addEventListener("keyup",this.handleKeyUp),this.dispatchEvent(new CustomEvent("open",{bubbles:!0}))):(this.setAttribute("tabindex","-1"),this.setAttribute("aria-disabled","true"),document.removeEventListener("keyup",this.handleKeyUp),this.dispatchEvent(new CustomEvent("close",{bubbles:!0}))))}handleFreeSpaceDivClick=()=>{this.open=!1}}customElements.define("side-drawer",OE);let DE=class extends se{constructor(){super(...arguments),this.location="left",this.control=!0,this.open=!1,this.empty=!0,this._refDrawer=Ie(),this._refSlot=Ie(),this._resizeObserver=new ResizeObserver((()=>this._hideDrawerIfNecessary())),this._isHoverableDevice=Qg()}firstUpdated(e){super.firstUpdated(e);const t=document.createElement("style");t.innerHTML=":host {\n width: unset;\n}\n\n#fs {\n display: none;\n width: 100%;\n inset: 0;\n}\n\n#d,\n#fs {\n height: 100%;\n position: absolute;\n}\n\n#d {\n overflow: visible;\n max-width: 90%;\n z-index: 10;\n}\n\n:host([location=right]) #d {\n left: unset;\n right: 0;\n transform: translateX(100%);\n}\n\n:host([location=right][open]) #d {\n transform: none;\n box-shadow: var(--frigate-card-css-box-shadow, 0px 0px 25px 0px black);\n}\n\n#ifs {\n height: 100%;\n}",this._refDrawer.value?.shadowRoot?.appendChild(t)}_slotChanged(){const e=this._refSlot.value?sf(this._refSlot.value):[];this._resizeObserver.disconnect();for(const t of e)this._resizeObserver.observe(t);this._hideDrawerIfNecessary()}_hideDrawerIfNecessary(){if(!this._refDrawer.value)return;const e=this._refSlot.value?sf(this._refSlot.value):null;this.empty=!e||!e.length||e.every((e=>{const t=e.getBoundingClientRect();return!t.width||!t.height}))}render(){return q` + {this.open&&(this.open=!1)}} + > + ${this.control?q` +
{vf(e),this.open=!this.open}} + > + {this._isHoverableDevice&&!this.open&&(this.open=!0)}} + > + +
+ `:""} + this._slotChanged()}> +
+ `}static get styles(){return o("side-drawer {\n background-color: var(--card-background-color);\n}\n\ndiv.control-surround {\n position: absolute;\n bottom: 50%;\n transform: translateY(50%);\n z-index: 0;\n padding-top: 20px;\n padding-bottom: 20px;\n}\n\n:host([location=left]) div.control-surround {\n padding-right: 12px;\n left: 100%;\n}\n\n:host([location=right]) div.control-surround {\n padding-left: 12px;\n right: 100%;\n}\n\n:host([empty]),\n:host([empty]) > * {\n visibility: hidden;\n}\n\n:host(:not([empty])),\n:host(:not([empty])) > * {\n visibility: visible;\n}\n\nha-icon.control {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.7);\n opacity: 0.5;\n pointer-events: all;\n --mdc-icon-size: 20px;\n padding-top: 20px;\n padding-bottom: 20px;\n transition: opacity 0.5s ease;\n}\n\n:host([open]) ha-icon.control,\nha-icon.control:hover {\n opacity: 1;\n background-color: black;\n}\n\n:host([location=left]) ha-icon.control {\n border-top-right-radius: 20px;\n border-bottom-right-radius: 20px;\n}\n\n:host([location=right]) ha-icon.control {\n border-top-left-radius: 20px;\n border-bottom-left-radius: 20px;\n}")}};e([he({attribute:!0,reflect:!0})],DE.prototype,"location",void 0),e([he({attribute:!0,reflect:!0,type:Boolean})],DE.prototype,"control",void 0),e([he({type:Boolean,reflect:!0,attribute:!0})],DE.prototype,"open",void 0),e([he({attribute:!1})],DE.prototype,"icons",void 0),e([he({type:Boolean,reflect:!0,attribute:!0})],DE.prototype,"empty",void 0),DE=e([le("frigate-card-drawer")],DE);let RE=class extends se{constructor(){super(...arguments),this._refDrawerLeft=Ie(),this._refDrawerRight=Ie(),this._boundDrawerHandler=this._drawerHandler.bind(this)}connectedCallback(){super.connectedCallback(),this.addEventListener("frigate-card:drawer:open",this._boundDrawerHandler),this.addEventListener("frigate-card:drawer:close",this._boundDrawerHandler)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("frigate-card:drawer:open",this._boundDrawerHandler),this.removeEventListener("frigate-card:drawer:close",this._boundDrawerHandler)}_drawerHandler(e){const t=e.detail.drawer,n=e.type.endsWith(":open");"left"===t&&this._refDrawerLeft.value?this._refDrawerLeft.value.open=n:"right"===t&&this._refDrawerRight.value&&(this._refDrawerRight.value.open=n)}render(){return q` + + + + + + + + `}static get styles(){return o(":host {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n position: relative;\n overflow: hidden;\n}\n\n::slotted(:not([slot])) {\n flex: 1;\n min-height: 0px;\n}")}};e([he({attribute:!1})],RE.prototype,"drawerIcons",void 0),RE=e([le("frigate-card-surround-basic")],RE);let PE=class extends se{_hasDrawer(){return!!this.thumbnailConfig&&["left","right"].includes(this.thumbnailConfig.mode)}willUpdate(e){this.timelineConfig?.mode&&"none"!==this.timelineConfig.mode&&import("./timeline-core-9cf72087.js");const t=this.viewManagerEpoch?.manager.getView();e.has("viewManagerEpoch")&&(this.viewManagerEpoch?.manager.hasMajorMediaChange(this.viewManagerEpoch?.oldView)||this.viewManagerEpoch?.oldView?.displayMode!==t?.displayMode)&&(this._cameraIDsForTimeline=this._getCameraIDsForTimeline()??void 0)}_getCameraIDsForTimeline(){const e=this.viewManagerEpoch?.manager.getView();if(!e||!this.cameraManager)return null;if(e.is("live")){const t={anyCapabilities:["clips","snapshots","recordings"]};return e.supportsMultipleDisplayModes()&&e.isGrid()?this.cameraManager.getStore().getCameraIDsWithCapability(t):this.cameraManager.getStore().getAllDependentCameras(e.camera,t)}return e.isViewerView()?e.query?.getQueryCameraIDs()??null:null}render(){const e=this.viewManagerEpoch?.manager.getView();if(!this.hass||!e)return;const t=(e,t)=>{this.thumbnailConfig&&this._hasDrawer()&&Vg(e.composedPath()[0],"drawer:"+t,{drawer:this.thumbnailConfig.mode})};return q` t(e,"open")} + @frigate-card:thumbnails:close=${e=>t(e,"close")} + > + ${this.thumbnailConfig&&"none"!==this.thumbnailConfig.mode?q` {const n=e.detail.queryResults.getSelectedResult();n&&(this.viewManagerEpoch?.manager.setViewByParameters({params:{view:"media",queryResults:e.detail.queryResults,...n.getCameraID()&&{camera:n.getCameraID()}},modifiers:[new bE(["timeline","mediaViewer"])]}),t(e,"close"))}} + > + `:""} + ${this.timelineConfig&&"none"!==this.timelineConfig.mode?q` + `:""} + + `}static get styles(){return o(TE)}};e([he({attribute:!1})],PE.prototype,"hass",void 0),e([he({attribute:!1})],PE.prototype,"viewManagerEpoch",void 0),e([he({attribute:!1,hasChanged:Wg})],PE.prototype,"thumbnailConfig",void 0),e([he({attribute:!1,hasChanged:Wg})],PE.prototype,"timelineConfig",void 0),e([he({attribute:!1})],PE.prototype,"cameraManager",void 0),e([he({attribute:!1})],PE.prototype,"cardWideConfig",void 0),PE=e([le("frigate-card-surround")],PE);var LE="Tue, 17 Dec 2024 05:06:29 GMT",NE="0b68140",FE="Mon, 16 Dec 2024 21:05:17 -0800";const VE=ba.object({domain:ba.string(),version:ba.string().optional()}).passthrough(),HE="hass_web_proxy",BE=(e,t)=>`/api/${HE}/v${t??0}/?url=${encodeURIComponent(e)}`,qE=(e,t,n="media")=>(e=>e.config.components.includes(HE))(e)&&!!t[n];async function UE(e,t,n){await e.callService(HE,"create_proxied_url",{url_pattern:t,...n&&{url_id:n.urlID,ssl_verification:n.sslVerification,ssl_ciphers:n.sslCiphers,open_limit:n.openLimit,ttl:n.ttl,allow_unauthenticated:n.allowUnauthenticated}})}const WE=async(e,t)=>{let n=null;if(t)try{n=await(async(e,t)=>await Sy(e,VE,{type:"manifest/get",integration:t}))(t,e)}catch(e){}return{detected:!!n,...n?.version&&{version:n.version}}};let ZE=class extends se{constructor(){super(...arguments),this._diagnostics=null}async _fetchDiagnostics(){this._diagnostics=await(async(e,t,n)=>{const a=e&&t?await t.getMatchingDevices(e,(e=>"Frigate"===e.manufacturer)):[],i=new Map;return a?.forEach((e=>{e.config_entries.forEach((t=>{e.model&&i.set(t,e.model)}))})),{card_version:"6.1.0",browser:navigator.userAgent,date:new Date,lang:L_(),timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,git:{hash:NE,build_date:LE,commit_date:FE},...e&&{ha_version:e.config.version},custom_integrations:{frigate:{...await WE("frigate",e),...i.size&&{devices:Object.fromEntries(i)}},hass_web_proxy:await WE(HE,e)},...n&&{config:n}}})(this.hass,this.deviceRegistryManager,this.rawConfig)}shouldUpdate(){return!!this._diagnostics||(this._fetchDiagnostics().then((()=>this.requestUpdate())),!1)}render(){return bk({message:N_("error.diagnostics"),type:"diagnostics",icon:"mdi:information",context:this._diagnostics})}static get styles(){return o(TE)}};e([he({attribute:!1})],ZE.prototype,"hass",void 0),e([he({attribute:!1})],ZE.prototype,"deviceRegistryManager",void 0),e([he({attribute:!1})],ZE.prototype,"rawConfig",void 0),e([pe()],ZE.prototype,"_diagnostics",void 0),ZE=e([le("frigate-card-diagnostics")],ZE);let QE=class extends se{willUpdate(e){if(e.has("viewManagerEpoch")||e.has("config")){const e=this.viewManagerEpoch?.manager.getView();(e?.is("live")||this._shouldLivePreload())&&import("./index-33db4eee.js"),e?.isGalleryView()?import("./gallery-bf3892f1.js"):e?.isViewerView()?import("./index-5de5f421.js"):e?.is("image")?import("./image-88fcb8ac.js"):e?.is("timeline")&&import("./timeline-3c6e5e5d.js")}e.has("hide")&&(this.hide?this.setAttribute("hidden",""):this.removeAttribute("hidden"))}shouldUpdate(e){return!0}_shouldLivePreload(){const e=this.viewManagerEpoch?.manager.getView();return!!this.overriddenConfig?.live.preload&&!e?.is("diagnostics")}render(){if(!(this.hass&&this.overriddenConfig&&this.nonOverriddenConfig&&this.cardWideConfig))return q``;const e=this.viewManagerEpoch?.manager.getView(),t={hidden:this._shouldLivePreload()&&!e?.is("live")},n={hidden:!!this.hide},a=e?.is("live")?this.overriddenConfig.live.controls.thumbnails:e?.isViewerView()?this.overriddenConfig.media_viewer.controls.thumbnails:e?.is("timeline")?this.overriddenConfig.timeline.controls.thumbnails:void 0,i=e?.is("live")?this.overriddenConfig.live.controls.timeline:e?.isViewerView()?this.overriddenConfig.media_viewer.controls.timeline:void 0,r=e?this.cameraManager?.getStore().getCameraConfig(e.camera)??null:null;return q` + ${!this.hide&&e?.is("image")&&r?q` + `:""} + ${!this.hide&&e?.isGalleryView()?q` + `:""} + ${!this.hide&&e?.isViewerView()?q` + + + `:""} + ${!this.hide&&e?.is("timeline")?q` + `:""} + ${!this.hide&&e?.is("diagnostics")?q` + `:""} + ${this._shouldLivePreload()||!this.hide&&e?.is("live")?q` + + + `:""} + `}static get styles(){return o(":host {\n width: 100%;\n height: 100%;\n display: block;\n}\n\n:host([hidden]),\n.hidden {\n display: none;\n}")}};e([he({attribute:!1})],QE.prototype,"hass",void 0),e([he({attribute:!1})],QE.prototype,"viewManagerEpoch",void 0),e([he({attribute:!1})],QE.prototype,"cameraManager",void 0),e([he({attribute:!1})],QE.prototype,"nonOverriddenConfig",void 0),e([he({attribute:!1})],QE.prototype,"overriddenConfig",void 0),e([he({attribute:!1})],QE.prototype,"cardWideConfig",void 0),e([he({attribute:!1})],QE.prototype,"rawConfig",void 0),e([he({attribute:!1})],QE.prototype,"resolvedMediaCache",void 0),e([he({attribute:!1})],QE.prototype,"conditionsManagerEpoch",void 0),e([he({attribute:!1})],QE.prototype,"hide",void 0),e([he({attribute:!1})],QE.prototype,"microphoneManager",void 0),e([he({attribute:!1})],QE.prototype,"triggeredCameraIDs",void 0),e([he({attribute:!1})],QE.prototype,"deviceRegistryManager",void 0),QE=e([le("frigate-card-views")],QE);console.info(`%c FRIGATE-HASS-CARD \n%c ${N_("common.version")} 6.1.0`,"color: pink; font-weight: bold; background: black","color: white; font-weight: bold; background: dimgray"),window.customCards=window.customCards||[],window.customCards.push({type:"frigate-card",name:N_("common.frigate_card"),description:N_("common.frigate_card_description"),preview:!0,documentationURL:"https://github.com/dermotduffy/frigate-hass-card"});let GE=class extends se{constructor(){super(...arguments),this._controller=new $x(this,(()=>this._refMain.value?.scroll({top:0})),(()=>this._refMenu.value?.toggleMenu()),this._requestUpdateForComponentsThatUseConditions.bind(this)),this._menuButtonController=new Ax,this._refMenu=Ie(),this._refOverlay=Ie(),this._refMain=Ie(),this._refElements=Ie(),this._refViews=Ie()}get _config(){return this._controller.getConfigManager().getConfig()}get _hass(){return this._controller.getHASSManager().getHASS()}set hass(e){this._controller.getHASSManager().setHASS(e),this._refMenu.value&&(this._refMenu.value.hass=e),this._refElements.value&&(this._refElements.value.hass=e),this._refViews.value&&(this._refViews.value.hass=e)}static async getConfigElement(){return await $x.getConfigElement()}static getStubConfig(e,t){return $x.getStubConfig(t)}_requestUpdateForComponentsThatUseConditions(){this._refViews.value&&(this._refViews.value.conditionsManagerEpoch=this._controller.getConditionsManager().getEpoch()??void 0),this._refElements.value&&(this._refElements.value.conditionsManagerEpoch=this._controller.getConditionsManager().getEpoch()??void 0)}setConfig(e){this._controller.getConfigManager().setConfig(e)}shouldUpdate(){return!!this.isConnected&&(this._controller.getMessageManager().hasMessage()||this._controller.getInitializationManager().isInitializedMandatory()||this._controller.getInitializationManager().initializeMandatory(),!0)}_renderMenuStatusContainer(e){if(!this._config)return;const t=this._config.menu.style,n=this._config.menu.position,a=this._config.status_bar.style,i=this._config.status_bar.position;if("none"===t&&"none"===a||"overlay"===e&&"outside"===t&&"outside"===a||"overlay"!==e&&("outside"!==t||n!==e)&&("outside"!==a||i!==e))return;const r=e=>{const r="none"!==t&&("outside"===t&&"outerlay"===e||"outside"!==t&&"overlay"===e),o="none"!==a&&("outside"===a&&"outerlay"===e||"outside"!==a&&"overlay"===e),s="left"===n||"right"===n||"bottom"===n&&"hidden"===t&&"popup"!==a||"top"===n&&("hidden"!==t||"popup"===a);return q` + ${r&&s?this._renderMenu(n):""} + ${o?this._renderStatusBar(i):""} + ${r&&!s?this._renderMenu(n):""} + `};return q` + ${"overlay"===e?q`${r("overlay")}`:q`
+ ${r("outerlay")} +
`} + `}_renderMenu(e){const t=this._controller.getViewManager().getView();if(this._hass&&this._config)return q` + + `}_renderStatusBar(e){if(this._config)return q` + + `}updated(){this._controller.getInitializationManager().isInitializedMandatory()&&this._controller.getQueryStringManager().executeIfNecessary()}_renderInDialogIfNecessary(e){return this._controller.getExpandManager().isExpanded()?q` {this._controller.getExpandManager().setExpanded(!1)}} + > + ${e} + `:e}render(){if(!this._hass)return;const e={main:!0,"curve-top":"outside"!==this._config?.menu.style||"top"!==this._config?.menu.position,"curve-bottom":"outside"!==this._config?.menu.style||"top"===this._config?.menu.position},t=this._controller.getActionsManager().getMergedActions(),n=this._controller.getCameraManager(),a=!1!==this._config?.performance?.features.animated_progress_indicator&&!this._controller.getInitializationManager().wasEverInitialized()&&!this._controller.getMessageManager().hasMessage();return this._renderInDialogIfNecessary(q` this._controller.getMessageManager().setMessageIfHigherPriority(e.detail)} + @frigate-card:media:loaded=${e=>this._controller.getMediaLoadedInfoManager().set(e.detail)} + @frigate-card:media:unloaded=${()=>this._controller.getMediaLoadedInfoManager().clear()} + @frigate-card:media:volumechange=${()=>this.requestUpdate()} + @frigate-card:media:play=${()=>this.requestUpdate()} + @frigate-card:media:pause=${()=>this.requestUpdate()} + @frigate-card:focus=${()=>this.focus()} + > + ${a?q``:""} + ${this._renderMenuStatusContainer("top")} + ${this._renderMenuStatusContainer("overlay")} +
+ + ${bk(this._controller.getMessageManager().getMessage())} +
+ ${this._renderMenuStatusContainer("bottom")} + ${this._config?.elements?q` {this._menuButtonController.addDynamicMenuButton(e.detail),this.requestUpdate()}} + @frigate-card:menu:remove=${e=>{this._menuButtonController.removeDynamicMenuButton(e.detail),this.requestUpdate()}} + @frigate-card:status-bar:add=${e=>{this._controller.getStatusBarItemManager().addDynamicStatusBarItem(e.detail)}} + @frigate-card:status-bar:remove=${e=>{this._controller.getStatusBarItemManager().removeDynamicStatusBarItem(e.detail)}} + @frigate-card:conditions:evaluate=${e=>{e.evaluation=this._controller.getConditionsManager()?.evaluateConditions(e.conditions)}} + > + `:""} +
`)}static get styles(){return o(':host {\n display: block;\n position: relative;\n background-color: var(--card-background-color);\n border-radius: var(--ha-card-border-radius, 4px);\n height: var(--frigate-card-height);\n min-height: 100px;\n pointer-events: all;\n --frigate-card-expand-max-height: calc((100vh - (2 * 56px)) * 0.85);\n --frigate-card-expand-max-width: 85vw;\n --frigate-card-expand-width: none;\n --frigate-card-expand-height: none;\n --frigate-card-expand-aspect-ratio: unset;\n --frigate-card-height: auto;\n}\n\nfrigate-card-loading {\n position: absolute;\n inset: 0;\n z-index: 1;\n}\n\n:host([dark]) {\n filter: brightness(75%);\n}\n\n:host([panel]:not([casted])) {\n height: calc(100vh - var(--header-height));\n}\n\n:host([panel][casted]) {\n height: 100%;\n}\n\ndiv.main {\n position: relative;\n overflow: auto;\n width: 100%;\n height: 100%;\n margin: auto;\n display: block;\n transform: translateZ(0);\n scrollbar-width: none;\n -ms-overflow-style: none;\n}\n\n/* Hide scrollbar for Chrome, Safari and Opera */\ndiv.main::-webkit-scrollbar {\n display: none;\n}\n\ndiv.main.curve-top {\n border-top-left-radius: var(--ha-card-border-radius, 4px);\n border-top-right-radius: var(--ha-card-border-radius, 4px);\n}\n\ndiv.main.curve-bottom {\n border-bottom-left-radius: var(--ha-card-border-radius, 4px);\n border-bottom-right-radius: var(--ha-card-border-radius, 4px);\n}\n\nha-card {\n display: flex;\n flex-direction: column;\n margin: auto;\n border: 0px;\n overflow: visible;\n width: 100%;\n height: 100%;\n position: static;\n color: var(--secondary-text-color, white);\n}\n\n/************\n * Fullscreen\n *************/\n:host(:fullscreen) #ha-card {\n border-radius: 0px;\n box-shadow: none;\n margin: 0;\n}\n\n:host(:-webkit-full-screen) #ha-card {\n border-radius: 0px;\n box-shadow: none;\n margin: 0;\n}\n\n:host(:fullscreen) div.main,\n:host(:fullscreen) frigate-card-menu {\n border-radius: 0px;\n}\n\n:host(:-webkit-full-screen) div.main,\n:host(:-webkit-full-screen) frigate-card-menu {\n border-radius: 0px;\n}\n\n/***************\n * Expanded mode\n ***************/\nweb-dialog {\n --dialog-padding: 0px;\n --dialog-container-padding: 0px;\n --dialog-max-height: var(--frigate-card-expand-max-height);\n --dialog-max-width: var(--frigate-card-expand-max-width);\n --dialog-width: var(--frigate-card-expand-width);\n --dialog-height: var(--frigate-card-expand-height);\n --dialog-overflow-x: visible;\n --dialog-overflow-y: visible;\n max-height: 100vh;\n}\n\nweb-dialog::part(dialog) {\n aspect-ratio: var(--frigate-card-expand-aspect-ratio);\n border-radius: 0px;\n background: transparent;\n}\n\n/*************************************\n * "Outside" style for menu/status bar\n *************************************/\n.outerlay[data-position=top] > *:first-child {\n border-top-left-radius: var(--ha-card-border-radius, 4px);\n border-top-right-radius: var(--ha-card-border-radius, 4px);\n}\n\n.outerlay[data-position=bottom] > *:last-child {\n border-bottom-left-radius: var(--ha-card-border-radius, 4px);\n border-bottom-right-radius: var(--ha-card-border-radius, 4px);\n}\n\n/*******************\n * Menu hover styles\n *******************/\nfrigate-card-menu {\n z-index: 2;\n}\n\nfrigate-card-menu[data-style*=hover] {\n transition: opacity 0.5s ease;\n opacity: 0;\n}\n\nfrigate-card-menu[data-style*=hover]:hover,\nha-card:hover > frigate-card-overlay > frigate-card-menu[data-style=hover-card] {\n opacity: 1;\n}\n\n/*************************\n * Status bar hover styles\n *************************/\nfrigate-card-status-bar {\n z-index: 1;\n}\n\nfrigate-card-status-bar[data-style*=hover] {\n transition: opacity 0.5s ease;\n opacity: 0;\n}\n\nfrigate-card-status-bar[data-style*=hover]:hover,\nha-card:hover > frigate-card-overlay > frigate-card-status-bar[data-style=hover-card] {\n opacity: 1;\n}')}getCardSize(){return 6}};GE=e([le("frigate-card")],GE);export{Al as $,Ji as A,er as B,Ui as C,tr as D,nr as E,ar as F,Di as G,Ri as H,Pi as I,Li as J,Ni as K,Fi as L,Vi as M,Hi as N,Bi as O,ps as P,qs as Q,es as R,Bs as S,Ho as T,Lo as U,No as V,Fo as W,Vo as X,Vs as Y,$l as Z,e as _,se as a,cr as a$,F_ as a0,ew as a1,et as a2,tw as a3,Ss as a4,ji as a5,zi as a6,Ti as a7,Oi as a8,qi as a9,Qr as aA,io as aB,ro as aC,so as aD,co as aE,oo as aF,to as aG,no as aH,ao as aI,ho as aJ,go as aK,fo as aL,lo as aM,uo as aN,mo as aO,po as aP,Xr as aQ,eo as aR,Jr as aS,Yr as aT,Kr as aU,Gr as aV,Eo as aW,Ao as aX,$o as aY,dr as aZ,or as a_,Xo as aa,Ko as ab,Yo as ac,Jo as ad,ds as ae,ls as af,hs as ag,Hs as ah,us as ai,Mo as aj,wo as ak,Io as al,xo as am,Co as an,Hr as ao,Br as ap,qr as aq,Ur as ar,ko as as,So as at,_o as au,bo as av,yo as aw,vo as ax,Wr as ay,Zr as az,pe as b,za as b$,lr as b0,sr as b1,rr as b2,hr as b3,pr as b4,mr as b5,gr as b6,br as b7,Fr as b8,wr as b9,Do as bA,qo as bB,Uo as bC,Zo as bD,Qo as bE,Wo as bF,Bo as bG,fs as bH,gs as bI,_s as bJ,bs as bK,ws as bL,Es as bM,xs as bN,ks as bO,Ms as bP,Xb as bQ,Yb as bR,Bk as bS,Bg as bT,xa as bU,Ka as bV,Qa as bW,Ra as bX,Pa as bY,Ca as bZ,Ta as b_,Cr as ba,xr as bb,fr as bc,vr as bd,_r as be,yr as bf,Mr as bg,kr as bh,Sr as bi,Tr as bj,$r as bk,Ir as bl,zr as bm,Ar as bn,Er as bo,Dr as bp,Lr as bq,Nr as br,jr as bs,Or as bt,Pr as bu,Rr as bv,Oo as bw,Ro as bx,To as by,jo as bz,Jb as c,Nd as c$,ja as c0,Ia as c1,Za as c2,Ba as c3,qa as c4,Ua as c5,Wa as c6,gi as c7,mi as c8,Oa as c9,ti as cA,ni as cB,Ma as cC,ka as cD,ui as cE,di as cF,pi as cG,hi as cH,Ld as cI,wa as cJ,Cs as cK,Qw as cL,Ie as cM,Gw as cN,cf as cO,bk as cP,je as cQ,Wg as cR,_w as cS,Jl as cT,Ck as cU,Gv as cV,XS as cW,vf as cX,xv as cY,ye as cZ,TE as c_,Da as ca,Fa as cb,Ha as cc,La as cd,Na as ce,Va as cf,Ga as cg,Ya as ch,Ja as ci,Xa as cj,_i as ck,fi as cl,yi as cm,vi as cn,Sa as co,Ea as cp,$a as cq,Aa as cr,ei as cs,ai as ct,ii as cu,ri as cv,oi as cw,si as cx,ci as cy,li as cz,nw as d,$s as d$,eu as d0,c as d1,dx as d2,Wy as d3,ux as d4,cx as d5,hx as d6,Zg as d7,ky as d8,qu as d9,bf as dA,Hw as dB,ME as dC,xE as dD,_f as dE,Lk as dF,ff as dG,Cf as dH,yf as dI,u_ as dJ,d_ as dK,Dy as dL,Ry as dM,Bd as dN,Ny as dO,Qg as dP,Gg as dQ,xx as dR,Zv as dS,mx as dT,ru as dU,rf as dV,Ly as dW,Fg as dX,ba as dY,ef as dZ,Sy as d_,Yg as da,Wu as db,Vg as dc,Bw as dd,tf as de,kE as df,Mx as dg,wk as dh,Ew as di,ex as dj,dv as dk,Hb as dl,Bb as dm,qE as dn,UE as dp,Ib as dq,BE as dr,Zw as ds,Yw as dt,Kw as du,Xw as dv,bx as dw,ge as dx,fe as dy,U as dz,_e as e,Gy as e0,qy as e1,U_ as e2,W_ as e3,Qy as e4,Kg as e5,Jg as e6,Zy as e7,Fk as e8,Fy as e9,Lb as eA,sf as eB,Hv as eC,Bv as eD,qv as eE,uf as eF,Wv as eG,Og as eH,Uv as eI,s as eJ,Ae as eK,ve as eL,W as eM,Ww as eN,vE as eO,me as eP,be as eQ,xe as eR,Tb as eS,nf as ea,Iy as eb,Vk as ec,Ay as ed,$y as ee,zy as ef,Hk as eg,Yd as eh,Fd as ei,Zd as ej,Wd as ek,Qd as el,fu as em,Kd as en,Xd as eo,_u as ep,gu as eq,Vd as er,tu as es,pu as et,Tu as eu,Pu as ev,Lu as ew,Ru as ex,Fb as ey,Uy as ez,bw as f,Nb as g,Kb as h,jy as i,Pb as j,Hg as k,N_ as l,Gi as m,he as n,Zi as o,Rd as p,Wi as q,o as r,af as s,le as t,Qi as u,Vb as v,Yi as w,q as x,Xi as y,Ki as z}; diff --git a/config/www/community/frigate-hass-card/card-320adb66.js.gz b/config/www/community/frigate-hass-card/card-320adb66.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..055ac7666b57ce0c880620458ae7b90695a56a1a GIT binary patch literal 142734 zcmV(+K;6F|iwFoDf?;O@|6^ftWGyo?Fkxh3Ha0G5a{%nUdtci~vM~Jr^C^rDhmjWH zKxTG!j~vB^5HiW+I)NmUAuKd@14?YkBefyK=(|5v)mL3?Op@7ip5OcK&M#Pft*)-F zTUU3VPSb%%vb4i}9*QsxSund`c_#_;nB`~FF;7L&9r5%`oQGMQ-}|vIqI5bM#c|B~ zEPi?Nkq<=ojEk3->8m`O@LXIybYV#l}Y9Cow-L4uiEd zKZ|`FMdD{cl;6i6*bIEok07|d&VpXf#WYVlkiWK;t*xn14*6-4ay?2_FU-o80qjjD zlbja?AMWOPmanbV5_#8b{P!ps@U-CgdncP*<;mH(=-l1h`mfF}S#~z! zooCN>FmvzK!{0Za$-)~?hA=P5X~OfU^I-4c#*Z62BQ~X0?);xYmKLHT;KxbvKgi;K#hSo&$G)8q1X4I zYgwR^6rD5^9n%~;8S!rC4baT-G%eUEhoZ-wEbkmcqsN^Dig7mVdO?r+g2a9PS;PPW zeu`L>K<%BvjLQ#Z2sV!?KkI4q%i>7->DrpXHxJ~%I%zD^0Cbp;Et(2RxIHNE^Ekm( z<%=K)ZDq)i7|3Eyh^t^Y=qlXrU8Muxg+2(O&7@mkgCP%sQV}>WMYbpMBt3&ss5G}; zS*qb+fA_INKy5)4EUoiCkNCRhDL7$ChD8ih*6nsh5Z^cB#WCu|+2;qFhmin)htmP~ zeP6ES_`X<&q2I@uUZD|J<~q<|Yxszp`0JEC2SLjEZrC-g6C}1xxlW9uyZm6N?@OO zXTWlfC1LeWa|GgycM3k3=83ohQY!;L4c7SqTi-eiLd1>XK@#a{2&*P2!vP`|@q`#k z1Kw>e%$Rk@Y~mvtIZ-o92Z)vmso<1#Ee!__7gf{MfhtTBD~pGEsSk1v+;?}x@e7Fo z+VF541NkQ6MFySq3}q*4YYeGwTL8@fGC0f@mhi$P2w7La6z*iHfR^G^&uIvQnoM{) z+&NE1Lmx(6hNC#`<9MRQgCf$w#VBIW>(vHBMDuz&;zc0VZFd^a87wuJ1|CHGM&A67 zujS3*EGeR4SQRAEG@K_tqw`wU3pVCOG^wRZZdycROn;@>?90>WtW**@JaxsvQGD73 zUI>hCxDN%3@G3s)A9eY70&P*(5iVya1(Q8MNucKYRW`ahO-3V>W?3%66C_7my5KnI_Clq&&^==XM>vnwbkH4S7i zzwW(!(UqJhIlY2uvMek-&9iZ>XC#6&=Dj%(q|`DHD0d-vL5xIYBJ=6vk4Pp%my4kl z`PD3q3C;=23yv@j81@c4U$$9lpi`jf&l-0tL;4Z!#51Nx5rI_0IgBKC4uOs@V5R}O z%P^OkP_(iYp0i@-oTX=c7=12#k_@_IF4&L>*6(XE>**v|sHeD0HQ_wBMO`sW0=VOB4MNC3n6EwB=c?pQe6t45j1;n7<4Do0+CRv zswh6QlY-|Ld}yYvs0kogAk;K8rW-zATRT9RqCdNz_!U$;)a^>nWYjajX}lwKhAx&s z;VHTX!|}?NZ9382a7E{`k%Si{GiiEOL^sX02Ln*zvfN5>qscHS@#PAv>%knvn+Pmp zWNT|vi6pBP5r=n>)Y=T`LDcsQibN~~_@bnY&l{};{XQ0{;`KlrmLUyEP8fX09HhJ~ zQZ3K=-2oeosNq1?5_;TV9k{u@#C{;I2$r1x2|`f3nGB`6o&)G5Qu1kXHqB8DLn`MW zzPbKt8~)1)O5p+_b_t|8Q)e`+et$&xfOJhM7%FAD(Ig@z8my0pnd&A36}&9)|$(a-d_ zH94s~SWGxPfIUFPZVZ19>k?K3Qg^JbLr`4~(nH{dPQwQ^R&_{fvSP^^1`)S#DmBYk z-s;bR0ptJ{+Mxwy-f{*)G;BoAO3!UXP$R8P*rl(Vm=c4qiyL%p%cQVFK!NH|wMIHi z5m)9*rpY-Zt*S{As)&Q31Hv2$pl(voU&yu~;@I|Z$lcQs6aLnnO*9fflz@B!rO!?v z#|caW(FM)+JUJEq2-_)1E40)O1C!jGa<%FtoCPOwVNqlmt}4BPW&g~I$fiA`gfP|{2oZ%FC8MTPL0Gf0o+s`zqnP!jtR$i$Roza0T?ZRa3 zGEgT-vzJ^6W(Wi^s?d2h8c8{Do0TdrgNtmo5Q?BWNoH<$@2_ z)_C_kD}+htcYRd4#@Pk0c4+(S4uQS}X+CmrhMSmy$BmIS7FdI=C_x{zF|ZVUI$W(X zVlBXHLJ3Dle*^O_VENqN)V!LA1NAdvRj&;i{2Ko&jL)Rsrv#v8m;&h+@f$<2#g))9 zOJv~laNfw}ss^(U$ywrh2ZZSf8+_8_W+w{f)M2tNfe~$&!^;{8HK!LBe6>DI zZ#hhgxq!`U_MuZpwQLxH(pXJXN~zJSN;qg$%q^=}Q(BcApoWo~ zA?+%qTKAU3wouwN+IPR}*f@PBBf1RSEOcjdk$EX65-}9$o$QLFujUk&lC8pmNYb2Z zE;BTgt30VJ6_OU91~8CH@zWwMnH5iCa-7*!+HKLh7#jC2E>7;CWmYl4A}6bi99_x5 zW2Hi$yO?xP#^jP_hjCJ^fo?2`;0AW;YNz%bS~%!4H7m)Xl2)}dT=CPcwY2*E&jBs{ z1AYi|pw%yG>y_%SBq`S>b{r10XB3EiSRm!A`a*byokIWD*EYpkBNei(&M0>}`PdW! zB`dB{64v{A88>9(W)IC-cF7XaG4NV*R!KeR9<5-qbSrFgaL$KQ#YRA!8DAD@cmSSk zn1fB#(tBC2UeWtua)8~8bzWKfCeLA8tB#tyQj_~u(_Ws>q67(M?J6VXDGG^2uda?% zakW?!0$^HpIZCdON-hspB!9Zh(PK7r2?a?<0O?pqzqIyLnOCrYR0@)-bYQP+Rh`$^ z5Yd5=hS_v9RG0=D?%VadNsSD+TEG8v_EIHK`75jslZ+z`J5lElt!sV`R_68@R zdzbBS;|$-uc?aC zo`S5ulZ_{&MOEn@3cRW1mn~_PI<#mjvu2EFu(hWq$uNtxHN%rWR?wwWca$CjlpR>j zmS)V3epc4-Gb_vIHPh$dFnr$Bm*Uwt8}i5l`cJ(we16bwq#qh|QVGWzwmBCtsk7Hr z_ht0F3_`!*)qD%)5ccl6tGv72&F)WL(EID0!D^%Klk1t?i$7I8v%B$Le@~m#8NhJm zdterCoQv_u3uiI|{d43RFSTV9uEyRflw0+}?f4jftj_%BOq_RfmJYMAAFO*`&@FIK z{(lAK>T&oa_WIuXcK9VezPCDiQr{22Q|e1Bg-0`w-`|6UNjq^%+4F}=Rl z`@AbgPjGj5ZEE;1u9&Ui>)1Q!d=MYf52qjULoa+4-?``aBY$OMy&C`yYzKzsbbaAh>fDK8x>cY}|(*FXB7+=TZEcpY490_{aCJS7)zF zZ1dn>A3hY`5BK9chwFilseg;Y@{BrQG_u|PZr4&WF!M+#A^BcA$&IROxA#HGJvgK-V~kd~i!!e7-77B6?t8d> zk;Sjbl9c;FpwQd{C2f7(D$N{(A5|~HK{$$`!66jGD!t*oRCR+91KklT#1qf}KF7mw z5NBQfnGeA743)=f5cGm!>=c8(tI1JVV3IUXEr9rm;MnN@{V$_qE;?qT15&=sJ% z`uKr%ZK6rnyLZQ1$5bM|0NQ^PxOIO#q{s$H#GW7Zz5BA?O=vR%gQNe72B_<3m>}(L z?<{&*a{mAyW`zQ#XqVO)v0y>s6S`d$a8vX`&N5~Jz*muPf9-t7BKvS~1z zQ^mzL!%?ulx~@OrV|#rXL@E67H;_6;eGyIdzR>~FdA{zWZxWc+y*_le?rS2tqp1jR z%??YoA@Z~mlQ7fEm50tM7A30iNL5TKeiIy$A=G#iNOjY0s#{`K-aslI9sofe#_y$H zQ7fl>6hEzPzYd_Y@VD+@nuF#lUV!Y3RZ-L{abGp0A=TU(Hd|^kwA0$-I(&d8fPC2l z%)n-gprnPNDBfrBZ`~9a9Oi-Uw6>;$gzjZMVjgJ!ux<+3h!;v?$UEE(pP=S`B}^-Nti;fQHCo`Pj4FHbVptnmsEz!CItIv)h%Gd zKU1LD^q%OYz(1MVo~NY~euNncU0Mh$qq(a_v%U`F={Z$}tXh^5DFD$ws}w^7gC2iK zeiF1cicMl|6@LQ*BO2Yg;6w z?g2ZD==Z3n_v2myQERWd=n_YInB<)F+*J)p(s%7mXfj7B(?=5p>?0qyL=CIY`?~AM zmr+{i?F|zwyiXgNEN~pktnVx6NQ)+)je;>woN@^|Ct@5pwX}yA=t_MD8mBe|*`vR< z$AMX+>Ma@(`r}2#*AEE~b;K6@ey)PHfVnC**)Wv0pLcC86^67oZN)IXoSIFT86QP6 z#Z8g>69Wg$&6v;+K~M3)eTP=2i;_hK@?65>KEcy~$(s`=m1&*Vm zCaUP!4_S%Zku$B})wd0Fmw~%6=el*(C?w%-KT(_XAw>tNJk1X729YiVtP2N(+(GFD zoX-{z46Uv=YX1P1!$sMMY{bqn2UzsL$aybT1;!H9OWoxXk7Hi0S`MqMVd3i8z+f?sxDouBn%;K^%|@K1p!LG&(l#~v7j*E0 zA#sj@mzBi>K&4g#N6`9GxX6HGmDZi0MoFrOyW#n(FPC0`627bAeRRX1ZcmK6bRVrr zcl4zifMRZc$bB5mm1-7rOv~;MxjA5YGr{mwBDO@LnLTu7NqaY`Lr0Ll#<+m`I)6-} z2>4Wm%_bC9889byxv$~_QY~Z@-H@7C|6Rj$l*R(ohEOqDj1XO4@3DKrn&K8nVC7Wq zK}CcyXjqko`6;QS%gQR^PP*@P<}1>FLiF&$+{pEAmP*eW9o%h%Y$nvuVXZ(vpf7T} zqly@>xZjCm+ED;IwyP1l$Hi4jks_o>QR=&KIm~+5J$Mnj~VC8^Iq@jNm^rl9~Mqk<~3wGx=%;bh*m5wJ8*G zfqoo=^l&K)VBi9&yr0J>csm|hNJ3Ai#>xbBX9b$35CyX%VV>}=GA ziEw2_F^qR+q{-Z_odqaiun7(Tf3IseK(T&}PW%0LfnzZCYH?}XkAYtkVt`k!kTS%( z12%!OT!uBs-UWsLn!Zx0TQM-{6%AF%W%mMpKT8Tg0M8vn z$>j-lUab}z4i{G8Rq1%n(&0#Ug0s}3L0NHag|vxK)jXJe{)7?UkHvUYi`MUDxbgZl8?KnFf?`$AJn~jonhMXi&0}uY!S^JIvKC90M(`N9BQlAec=@&Uk%Ag=Vva#c96= zu=Xi2X|ucn18lV>46O=VuS_R4+?sJ>)V!*d@e%bQ_)i}ROZ)vUo_$Kv zVZ=fmEsy6tQl-mQXRTTdFFQ0+de~U#m2_AoQ3z2IIvxesD%x zCk#PTr%9-iqlqIl?x7J<8l8h9X=^YvC`KsY!URYF1ABU|jJaQE%*i~Z>D;qJ5D=lJXAGCY$kP@S7r!69}NC*nFTM1UN?<$v0$ ziUzZ#6v+Kryy=dp?wA;_F$nom@6=S=o0=HgpmcuEn(C7r6iCJ!XXBsWHXBDE7`b27 zDo=SGLBJW5?G>mvVqhd=-Zc|+eeF>jp7h@W$3UYTtMXH1mZzZJA;G+4#WXJTw7aFt@l+FwBquGP*Kb+Iyy#y+Atw)TN1v}u&keU z(u0-Vf-atFXC61+CVQf#1yI9#S5^?_92bBk@E59PJG>>5 z49)S1Zj=W4kXrL-9M`+#BE)_29m(r@CY&~WP9v5c`!MYdv&z!)h3xQo5XfWXcsLFL z2va-5PM>1GLHYS4+cxoRJ>6Q5$L6@ZXd94BjLlKNo{qOj6-jDvG)=Bz zF!o={sf{4tiN5 zSzDt&64|)f6EqH0G8wHT_eRqmzsK}#Eqr}F0AgTx90UpDx%{ne)Q|yF47eqhF$MI6 z8#~;1a3s8|a-yYBBAG<`1RZjtZGwKh3pzOd{tXZKLq)X_=J^GYo6#}++lo6qXnMdw{jTQELmJ;Coyl#{;Y$mA%I zoeQ!s=0}*J#c(0YtbL4InCvB)(Qgy6+2cmda=0eT;JXi4hnn&(j^!wHd zmb;trK37*R^(_A+XSa*EeXg!iO5NzERMwPTsd2w|JkIA@g`#*>Q#5psPVHBJ=95B&01_`tueVZqOVO@fEvq79(ywAiKW5| zAHrv61=Lp_zW#1%yS$L-HfsAmYUNZ7=J&WW)CQMP$}8$S75skcd#9$myBA`)<~;^m zy2t1+;7&wh{dg7cmgy$xU^E@_!uK}3pr1ymj^*|5`2FZ#{v|*8l!)tb_T_q9TxY>` z;P>MLI!|%uEc7;3*Sw&5#J-GHXRPcU!?fWBUJDnP5h^GWLodc&!gMFhP{!u{>;NkxEYry}6V^$7h`y>qB#s z#$5#rue>th$`5gSxC#?+z&`N+_okXYGg0gtTU$ZIAn7H?0CWj1D_zz9-=UkmGB+&7 zcQ-+G+LT&muCAO&?gLWvHHq#eapr;;-oJ^+v( zY#ypeCgsZ2TczuOqXWFkMjax;!@<6aSBK))*9V6U5-I{AEwGf#$z0z{q>gcL_q4yt z1f2l!;N&;}1d+G*?Bza%mFZXvr(#AHU9};%wjHxoVV}94EnbP2_r3FE2or|{RL@~~ z!Zvg^+G7j^hU9^j!1!uGV3ui?a!*-ju$EEb0 z_8=RL*red?1?)IqIOFs-w%R}y?1Vx>aX>4C7x-&DweztAL%`3*3k)TePJ9 z{d$8INFb}q#dH|#y`2uuvs_UwK-0(v!%O7`blpaEx^sR?gQ!<~Fcl(8=QsN#olM32 zY>c>bdTuGP$8mFFK?jd=AaxD7GF%>+OFk4gc+2Nr8t8<`zvWJF{0|?}58~c1x#%QA zz5Dm>K*Ie>4(`fLCzY&XlnMBzKb5k;ifzFkl&$obx87~G;5wNhKgodj_>*B= zIY!yF7icQ`;1mX3&}A~c%AuRe)ghI0t|%hhD-Yjtb3A7-f)z^fkziG+9#-Y>fn@)j z^88B97Ai9Tq41*15dvF^NyO?>&}~Z@M4Ku>1A4{^O%ZWxY8O|6Ya&vCN4PuQtmh^- zDrV^;Eb~MKvY5|#1z%1@T>Ey4E_v(RftRH6P_TDMy0!kSxzMX?)YKsZ)YidJs($k} z4_h8}s;KoE5VuW)Ly=S6ldqEJUl}83zZqHMQBALXY8{$brlvcMs_L9tN$S-mcX9b_ zD!lq6S5?Gd;k`6!^li~dOCw;p$}KpUUvVxP=2vOO#Qe*2Di;R%cxtZ(qb?zGHlg-( zAqNZ1G8i}k)JPvF67|lyCCgXJEAxzpFYvZAQf{bbC6UhvAENBT}Il@A{}SH@3Z z$TAdCrc)Y#od;G}sd6oS^I_#&fR=8&x)`zgW?fP`u`%wVoQLQYw^QXO(iGFjDT|z` zzy69Q?vb%^|8KLC?DIyEd;xSsCs_{Ew*e_-gigfS1f&gST(I2VuxLyL z1Bmhsl^y>5;<9u1r^)A__hmz#4y{yBiQ(4WAAkD$&;R&m(1TSqf)*k)r%KYohG5%= zs?)4UDCpxf`OJqskxima;C!b7{+wi>%8%g(8Sc@hgi}`Z55QUnd-*Wv{D=2 zjSp-kEQbX)toEb}Y@D2h`Pm8cH$(h? z_h&HYS(=Pxc+V*t@+WDhQq$ya45vB$2)kQFFs~421(G8C;Tu3+mJ~O(N{tTNVKHE% z@7|+YJ~wkj1iZRxGj z?NcsN?6T6DQ~2H;DO5?(YOak|+1FIE>$w0#& zNHiCEfJ=KP2*IHzMWS+1VA?|W1XYr*2`W3!Euk8ptLCb9uuloV!d?}OvR_qxUeBuR zg1${_^KE@i11-*k0nWGAN*Xsf5KN=3rum|F^=Tfi?*Shs!<|t^n`*^5tQpk>mWWq2 z%K_zaW4YsNGupnAWwy#%AG!&A%O)4tIH~`tzk%w^(6Qbe-vtIaQO@}R9>i~N#CKZ> z(T|@^o{YyFh*ky;volf|(B7z3u8;*vExg82o}Z%Uiliw(-`+r0!dvXnxjfQu00cNQ z!>cl6f4m5=EA+P1xTNpdoMOOci%V%UVZX5w$ujS0#Y)qx8~NIOY`OAa=5331yn!e zFoaR$tom|^YqIGny@}d`3k;L!YfdBAO;l$*B|eV#8xMcs_SC`q>TY8(Jpok$W{I0S zle{hx$s7Y7^h2e@df^|SRJxmUygLHur|gW!p8n+_E4c!q8podeiz$O_JZ48jK7f@v zioMDw=BuAalmW_<`$;W=zQ%Q~^MQG&{>E~Xv-E%C*Vph*Jj3<F7%uWrI)jBRf6y4nr>Dsud8fboi@!0m)}wn;3+E zu?fQGwxiRqA^p2Fo7PEJl5d=byhiW|p6d&RJ1{`9@TEH_^v;26Bm<8Q^`zC|8)~dO zKx+Y6cv%u+gM~@_o^Bn6IY8@bg3BW5d*|7hBPT5=(kM#wLr{r)2#RLGi|~M?H%;Y- zOmp6N0$K#FqDtW!J5mX9GS!!=0E>d*D{)j9hj5goP*VPanJ(?qb+DlKK+(f!k33}I z41+O%kdh&u>nLf&zdA7^T)tj}S2fFDup&d&MmBh58U~ohGbT+#Z=B^E%*xXYbn|cp z=P^A^aw!t!yxMQP8E-6O?l6R9PFA{B6#7{vLpu0fuM>hd#p<70PA zX8l?Rcn{t6wYQz~&Q&(;&?9;H;}WJ1-_7&ZSyv8f-Rt8!HEKR}s+v|iUJRv|h`qkX zlkWJ&&=GKsGu+3gOVoi5i(XXEPcLgV<2S*j7c?#SIL&Z z+8Yp7Ml#JuI0*QopjRGTG9GMtrH;H6!816+VNrOb`UaVZ&je2C#30O^TUXuPz9Huj zmg%VvM5sVpdcDzQ90}fODlZ4bHwak{ zc1;b+3KxL-8-;8@gQz}lfGv+r$wfe6lv9}B4k%bTd}El6H#o9fFOn1ufJ#~I(Nki* zm8zJNy87;)QxLRxawODAPl^h!E=|S@d@87tCnG0G24VCh6~zdw{cJa#j-3E70b;Q6 z1Y;l$(nEXjQegEnirh|ySf4_;i&#`nX~+{NPi357QYVYa@ z2crx5F|yC_EZMm17vGu;t4Rn-9Rhk?vxNa-!>C)h<=Y<4Z~`CkQOjxoXyjt>p!&pC z0ssf9xOwQUcI;Ee4&y^7=B*~@ASezGl((Td3)7e&+^U5dfqAG9wZY;E*x+YC2`!_M zJ6yI54ym4|#?^eOb!{yH<10;sjPD{#0n~Vk_C@^`I>)1AYA#$}8hf4Vj^_v;{pM-Q z<59;ytj>7(!*Rs*Q8+;p{jtc>J^iHQYsn~cjT-MHIZIOK{H^G_J8dAV{imq!J#Ez} zK~|jM^T`ul=mym>RXk>Zy!dyl{JT;X)v031Sx|q8im2oOC)CD7vPHt z_fJ$oT&J!)Ts8XaM-yq!DLC%mxCraYqj2KYP1-8(#F?cp6og4Vx&b5p;@D@C*IFw!a{J~pNjC0A2}bqdH7C1>T>O>Xgm zy}(QHpco)0!ar0(me%NS8dFJ%gKAtj1$3HfLE_JCfKn8!5~(h%lp=E#4s~w*CUu0F z&>fklMhX1UC<4Rc96d*^FYd@J)FA=GbIMR2Hm4>na!_wL<#RTHcHF=|NWn@lp{*76 zxTsZt6s&;nPqtNfNH1g{E8 zk}4T!vZkpd`pWkay8rTIoTPX*-^s-nDUaw71g!x))^L{MtsO_mqn(20FqM-g2T_Mj ztw{Z87PZK-qXNv?k@^h;<`lybPhg!sr(o7tU0bR*t#KE#qDW}9lVG*j`0+e}b zw}9ky{Uk+YqaZ1YseF<{JFcE!3N7YJ0ewVDeup6Lsx^?;;oTuO)I&aaSeg)eP$rbZ zW2IV8iMgWko^ii5Rlho_P6ZxOBS%O2FcDo;=lzil2@zgp$nqEs$Bg;|w6X-=dJZOv zd!rBV?N;k&3`!c>24J<%j%1S*qR!08P50JB)jrDG8kwR2E4{Nxmr@Asf&?53%<;`u zinDc@pLAso2G~;*Ep;sgS8JN|T1C1csEam$io*)ht{SVl*cUA9%B9@)&d46SSE<^w zhsk6*Ubn&O9c*m%>7wyiUesT~EGD&d54y&@3Y3V~N|xr$+YVD3JgMG`k*crqnXgpC zx(lJ-x-crRfBYg79oEql7IjeDI1WmyEK~?f(+N_Z`fW?pp1F2c&C@vw3m6nKV71uA z%iC>RoAwDZY(OEj#D_oyZU)8j9V7*VbFV&mo+`R0Ge>X~*)n&IFgQ;f$Rx03P{p<% zcoZXa6V$N_JOhiDD%&r8Z453sN%K(}o+f-WR9~W05wSYI{${iq8NH&cqKD}8I^JO| z?5UlBF#0bY{L{`MwJ9Q>3eWILD=TOsv_wD@@Z^FIkw_iorSHAwe@?+71Ks9$_w$4{ zl#mL#Tz!;bN7tov{ZSsfZ;CrzDq#k_9zRj9si>q5Nv5#FZ9nz5(M`8=X(niN+>mqF z^&2O#1BreSpb;YFHq!Z1S3if2v0~_jpqS4c8L>2I+|%Pq@VJ7vsB~3QyEv(2NX&FQ z&J5Jy(|66zh0e-;w;N2oP3z8V|4^CkALjLI7_N&M0^ zq>h{+-x?l`EIUkevJ{}tJLu}`=n_TejQB$itOIXq$vYhVBIs+Z^{#6GOAjK?zTMFn z)|^pMjSg^_^TxnzV=%PH)29ZPZ5hh9x2qe%R-aaUIlfyCZ(R0rFe5+96Hrc%roU>- zB|xci>a<~0S!`6AlJa02-g|ybhL40=1s5v*$OfYC(Vx+k7b&-QL4mpqFNI?TSW)EH zrHS%Nss}4R8BfP$N1Zzb#&qmF8*RFkjPL9FB@chC%fUIzp&HKb~6d~FGpwyE|_MAiL zRa2UR7i*4s2WrhObB+8Vp|Mb8C9cO zpy&r|WLoHLkg@0~sGLl6#Hvw+%8q3c8nbR>!HCP`P#G4b^)%o^+ytofY;9x00&uwk zS6k}p9c{F`fL8Pub<k+)3G+mBosRcpziAbFl{^Qg%HA4tVXE{73!3$6 zm=#UT)=DIca4%YLZ*!BjT;mXw^$9fRUF<|t(+cad(IvYo_BdSzc%aH2>LNGJs$zU& z5i39CY0milw}Z}5qGp%atx|1yrcQFRzNNrr@#>va52Z#@WU&aW$~4oguSg8&?MCaUu>Cn<@Shjf_sYjiHp zGZ3kgvkem|#fKce!3If$dDhPx(-8YCQiJU?wfP!EtgkphB;?CI&cVFT!hHe)$2IoU zb3zO7H0FR3&`$~i=Q2+OMs6v@Q2z{&oqQ9ri)E3WEQxFclh?5g#>DM$El1c-?Dlq) z^wqkI(@4m-kMN$llp-B>MEG2UpMZ5V$ANdFgPvA!=~rA^t0mO7azV20XRx5-_RVFZ z8}TyY6t&0AHu0P)T{P#mcGpwbp`!C9J={prrv)O=k*%~Y{SaUYhH|kdM+;@8QX7E()ZrjjzjYWE$Ho< z#WiekeZ7V)ulen+b?2g5h!?nNO;E+oU|_Y>)70f=NZ~7Woks0w)ZP2uTjT!dV0;fO znG;wpY1WbTfL;Z81iOY@ZNFQg*16>7 z%nCDw2dj$5T2*h`2PVw{HwWx;moeo?zb)z;$nq@DL|w01uv7kufuTeStRhHgSo5F> z=Ee4B^I(;3pw?ca;KcM2*S_bs=@hS~HLI8bO;{r{CxIC|zvmROm)+R!W>>fa|JrHN zNoXEWqxoQ?xboE~hVzVSL0tK2EtVALvHQ^|L|(br{%p>KQ~_i6qX~GfK+c;Tr0RJa z_|eETXFB8RXQSXrZrY)rjRK0iWA~#`h+<}9`?IALToorgu6#9dl1wy0;8zQIupwR# z8CSj<#ggJhWg_i&OVO7V(y-s|6-X$9oONB7^njJFlU*J`c~s_{@CMuuCvFx{?n@w4 zOy3cot2h3G0wg6C`6Y5X`AOe3#|5mwA$AejhQq37BC@b)9$s;H$kt6aWr=1U3SGMX z4AwXs7j^*Jj6xAL5#d05j{e601xT@3X;#yb#-uh+3y&x>?>Vcs7)mH|u?p%ND%3&6;)FAE#6f-{ri z%;ff!DI31tVgU-r{Uod+CqUV2v$_Sn_gq!|tztn}1v7h9a1yKYPdm&6};IrT3Jc#cNu8Z5WI~SVyc5lX)w^B zpVDg?b_8>fgB2p7dM@3@toTCi`6=~hl8_=9FbGZHm95dMw2QG@r>9`W6(Og;(Trj# zJlmQV+TZxXXiz!|TjL4t3KXSQ*sS2)OI3W5Zy!QNiVjMxwb`<}3(JD;R+Hzpg|6+m zBqh$4%;q+#1c)vAd~VUqy~uiGiXF)7`48Qqpqe>lC)FmoThi!yE%OINyQ;1fr^4Z_ zC)Bj=h4$VMnogw~x&pHGX?7mr%Hll-wAD7y=z=O@KLnj>{;l*1)`5K}a{&y}V*Sd< z_o4Y(`3G2v59I@M)PB8xXo^(XuNlww662x9=Zt0t^9ZFjnt}PdvIsypqZc*|>O5RvM?7#B+E31LukKjK_ z_%K|5A6z?M2i@=x6IX+vUoH2%t=#iwxp!^l-ZjfTY%BLrmD|Tl?BRRkumXFrx-Qxit_f;#qrNKP?nwiW(VM#1bK<#iM_Qa8h&%j-t!R@qka?=2ZF6iKIel6{88ON%+P5iNpfrO!zx4`p#|HFqN{C9Bor=R}`egE{&!)ukY z_2b|F0ds%%XPvTnfVl^ow&>>OwNq?!GuYU?yK(owusp!C;rpAE{ZFE)yNAIBCP=cn zdkBTDe>~XS!ofn*KO^OBwG`RJ{JS<|3sVtS|2zb2c;RE|5P!|jc0W)2d0SK~+FY5q*IL4Pp?Jb@TRL2DL{_2cCEsuN72EQ@HWH5Xe&vB3X-XDE0^8WDX zMCs{ifhVw35f~zH6a*6%Phb8G@a7W*&+05yZ}44vpa~p@HS`hooV!9RTKS6aUHs&! zmsPK?SDuNk;1oX(3OQ!}>}0;MnaWrE&K^D57Bk~sm|3fBknw!L={kMdoKnXmlzT-w z_^Ghli4ve}#%GhP+bVY`?dt5(ys3YVf(`u-Lw8`?+rXv`FV;#^WiEtvH z&`w)VN66uw^T8*1vS*y6GGYW@@D1bu)jrcbX2Mv~IRnA%%yTqw%ot3NZKxtGBh`vj z1kGtt6HA9XUle19TT$B3WM;b&C`JcLIH!Zg?DIUR?|&`SC&^i;0`vY7m?d})*w!3w zgFnpU*4gO!V7TVN4Z}w~lf;O@_`OKYk-n)ZDkil(ICdK=tw)p;8Tg zD_nyruAY1&RD3Kd(o%()Q%}o{Y|b#80ncPS__e^C0JHh|CkLQM--sU7;8(&^I}5~YY@>{%5S8e631f-d zZy?w7Wp}R6+}-4(OSNch`0%F-w3r8Nx7*zjCKi|8t0|AzaJYlUc5SEVov3XmNQ*o= za1)i8j+dAKg`%a>*u*o<&u~7BJyQdPBPgJI+*qCTleWraK`hZb*%__9gR*#Y_oU{w zRhMe{jSXn+y{(DCG7t==i>lvUs{Y+M7#J;sfziDFrDw-c;=$q8(T9Lkd|832x&$ishoD?I0YT# zI5xn|z&OT)0jF(zMo+)FNu%s9Y;c^UOSFZq>&4BmWhM}P$qSp2{?{d1QXbxgjp0?_ zbO}<8I&sKbVU-Fo(gY3Uuhty&l0+N4L@lCXaDH>Mj)kjQcWlycZ`~Tf)VjPu>Y(hZkt#W>JwO`vmY zsRop9tN{V)hf6}BoaJ>0-aL7@BnVS|G_=ydi|rRLmuA)AI+3iTtx*e(aA_cXD z8(iw<(d%nv%H5Ywoa-~vW*b#qRmVPmUAJ;GaelY==5}j0sQ;*4j^K0WDqefHc5twD zczx}8f!fsz8K{`cl}zIFKI^9u)7{e^@Dq&Rga#hr(~W)-=o{MUB5$Z2{HG}<78Scg zHycl~OMhz?3_e9Wec^vSZ)& zq8QXMcaW)*CqPc>P1nHm^_G76VX; zT$uUHxt~V@s<+IQ@8@2u{m2v-v+MwF+S%3@UfZ2*2a?5M0%?o0v>MvbHmv*AVcq}w zVa<;S_hQ)`DKu}r;Y zho+3VNWhUizun%J&=?dBIj3fF+}>G0rp7$C?Qges+a{Gm9`kH|hwHh}kOY)g{>9CX zAIBWtbi-`6=C_^lGqzmY)<#~s?JQj$^f}FME^K~z=;vT&LGzZGEaO429M0JOZ7q`n z;8Z^*vA9jen&v}@5&p}KyfR`5pW<`RpS(EQ+kUir^yJ0&*pao~2?*`%GVoh&_QVP?e-y0Z`M>WS_>IQ-aJLVkqh(OnQAZ;SZO<0GFhG6T-ogDS(52}jV^(YUdc%kQtqqIAkr94n;1^37*4C#UUll? z8(VIO^q?$%tKYr-+ahyDwxG=!f1VX{eGTl;nl8$6`Q`gtE=$=b@&?T%>=SwU=J&Qw zWUGIPee&Ut2{s%SfUv8~we~q4O$nh`Kmv7z2*Xhlz-F$!j`L^Bsb$aywm-NQ+m&M-LUlyq^ za>~A^H}?Il&rj($eV0&2WXbQYkH}^hDJ1$`Uwe;G`M$0vz8B4N?yBXlQxBis8kOcY z@tbjp8<*c3k=W)UECMj<**h7-i!jkfXJdT#K-*XoC%KzwKz-vcR_bgIj>TUHD~Hn5B zj{NzSbe`A8oj1q*7MpDhJ6kk!GrUw&gxcp*>dW@pZsjyr@c~vy!*<}72&3!Dg4^MO z>MTG8-F_%7G$tP)k`YaMPEd?i?+S1VX&+v-%)OQ}Js;$Af^yk`oA;eZuUg|Cl735D zD!|+5jeJodsZ6S8yl=V+z-^_~@#rGU#GK)y^3~y+ETcW&9N5QP0paEw)6gw>Ijmuw|NE9J`JiYbG4BNR_auyvZ_1 z-6wo28<6y%WO2?WM$F<-XG%Co4|@XNOSV^1Lh~#z+kQBCjTb)|mkV7ReuHA8M#tpnlG1{z zk&RE>9nu3NzGLv?l^4M3UCL$Y+8UiFo0!+qsH{@b5ywH`z73Y>yPSi>Ug>})d#)}P z(|kT_c~vZNUKKmwhZqn|ZNcwe<~$`f??EcPH>IyvR`LNjf2b~3hLskY7q%h?+>(@y zn~>pXX>F*WM~fWFry!1?Hpo1<#ZcO_4OYssax(-jKiOw)o<*06h2t)4ys|CHB%gC1 zf}DJOo40ujJUu&^vJt*JFP|HeucSmBMeiL4IqLChPi`l-AX1~e?vl!_yifxd%aDU8 zjjygw4os7SsE~uGkb{vu71gL;zk^$AHI(byJFt0`zG);`&` zH1<;R+Jc$?6c0XhQ$69=))l^aQ#g<06lDotbe%UYw(7~cn=v}^aC6*po!iuRnH8S% zB)MF3(l=VLx>q&BNMY2sO7g2CrL{EY!oVABG}N3x=jrd|dajaeP*;N_;g=K|0lhW- z{z_BvXTV@1q3^Jkuj(ztiv^pmioIae95i|tcO0ZLzD75DGZ*XnsiQzi$}Xfc^Co{zDh*Ki#)^3)8{bqxvI+IWD&&h% zuM(L@R!aA+6Z6cSe0Mz3F95q9A@xGF^JKJWJa!@to6`D;+$S(=iWH|fQTvK>SN2_d zwO1$CpI_Pu>Zu~99!!CIWAc=-eUOBzW* zhyt4sDoSo)UM#98n+c9G4ZeO#!9GlyuLCWdzg}fV@)|O8{eJR_&AYzF2U~co2`5)1 zfY@w%6?1Kk$w{bXljX*5nzlClhrBv%3At>m)AkjUl&H-eRH@aPY*VULR#}eP*y{+m zjw%uHu(7YDZUr&igy0|2TR#1h z&$|XdH)kj98(~6WbOpNG(&@O?_NwZ=D#&Vueii)#sW{jA=KvYf>S4our^+LGh83^e zVZ(n%E!PSP&E z#_iX~gQg$ul~89eWI~U6*wAgO^=U)5z_N_NDfXOA7L>%dg=Nw-dpH4=} z0H6PsfSLkHP(rVa9_~&6U!}X>Fm3KgI~{VxgDZ#tMy=^cgm!KsrdT!I7-+Xp&eQ6R z67)nIEUFxtI!*yc-9|q%OtfoWk(TdAr?Ip0K|aPUp6ayb5*OG-(*{jOg6AapHn#BQ zGFUA`{u!gXK?1_+rcD%jJ-e)v5wnDbLqcwV)`+AciZV=wwNY#V_|hCBZ(HjSld`l! zq-{i( zEbUfX9y#KtqD9oCj^t>*ylAWE$=Ug>>mOz7Kj+EKYj+Se&#q7N-(QVv#HN zXe$h*bJKem?X~BGX1LKC5*p{AFjyt@(2g52(%yPwd#4^Z@-09)`$5LeBn!A2oFRg` z56<>?AP%pus{_-^m-Sg=XNEgFGtv|dDza&1g zWiFo?a=pOgx}y!tkO#ON*X=rFv@24>ObXdEZ+Tq#eKzfkr-03g3RR>DK}jn$rlKRV z&X=wLwTAl#9q7Gt7}&R#HB!+_MBBx-T#vk4avWKW02h#GG(W<)dF#7@+|d5#Y_f$N8wQ)E0s@s)+zQiA7uH^ zik!$)Gk2KzfztqA*Z@(wQl?J-U!-(kySF5BsId%mL+_-uPalRf%tHCen_{C3M1YTRo1 z_S~51z2plws$>Bl_e`=Id7R!DEp2P)2j93@DpHy%w!QCAiIZ-?dEX>2fU^-H{gqIv zimgw>XdAdy(raH%Zg+>}T_+%q>xWlmbYa_)YA&AGT|9Q7r1%uQc`aw*0!j5#(3#7w zFQh|0sA})YLPdNjjXQHR?wp)PQ4Wc%(bPvR(bS0luZ^WXYKf&@wml@ZW(T6)y~wA>`4)~=fO=qGbo~a)*~NP6tp@{ z=3v7eI$ja@idHd>oLtpex0nua={kM|L>`VjlQELPVPL{4TgRSBgB1`|8@lbU(ESbO z^v9sc!1kxcHBiPW`XQ04aC9lQ*-tpU(voLe5d~CA``CaG69Q4&M}ODoKb#i zgLVQFOIf z6LvSKq^!AU*v7?NYZr2n{{&wnQ|30Nb&@4^ddu>nP552_zGQ1n)&Cj$(sCH)Wd5OA zd3JRruIqufJQ3nZI~q`(J&zIqmyN8btaaxeshx9pKwoaAy%cl(6V6`bWm8N0tW}p5 zC*p289lQRNlQ#69=muJ_uSVIJfX}zoaGsNSM1m)jaUVhTFpqu>X~n#TB$?YyvsQ_$ zlW3?;q?w?noZh)tp)P6AuF!;S3X!={=TZ&fxd^>eFSx$`Y!j3<;n%?lsA#xSt4rJE z`s$!>9_3Bsig7(h((KS%-|4(l-#3Ik$nK@T5nA=Fwoo}qSi7b~;esEC!&p?W@lrGL z&F$=dGc+pr0oR6eVnL(evlU8VRm{+KJBH=cL8=?8yAdl!ClsI)a(fmF?YZ_|%IEU# zrFWctLhaJD8(*esb?)49b$(j7IyG%RrQ3AgB0V9h)wDIqJ)O&8+Z`>m@X@DG&#AuH zz~g$jns9k`I(Mn_pxrIA+*1EkU+SOiQeP4ybq?@pJ_opYkj_w+UFm$$N>^)m-ZC#g zRjF;KO@iz!5J4~KYQvf!Qgr&fLZ>=RZ_at|?_~#1q&H-3ZDmUx5NbwXFKHXArj`oJ zb8=!Aj=tpBQQh|~lLN=nNUi6liW=9z0oK%JvM#g@(RBoDrEO-P+f&W8c~$T>C-qZh zQk|I9mh)<)sg^}H%?EsOAv;=x0Whc(oYPa7jiTQu?zR~Amm5j~cZ;Ir;5EkFp4Rs4i92GfP74m1Js%I*uDJ*c@w^-W^+I3#mWvN4B^@EkrT z07f6`YjMK%$0BNaU$3uinu4o;X7(zAh*2>9(gTXfr#*K;mhCEvvso&IRsL0o2{76w|~FkAj&H$OMCG$(dWKWlG}|1Pm47Q(BR zWE$UhK~CF2PFq3NclGPgH`)Pi-BG0Uf0$K6-^mWZZx0Pf4Zix0K@nX766T2_fnc1dNw)-_hL#+l! zMVBsqk1_4GjcIrBnD81!b~0*FG*`d%cn)1%thYtXxwN{TZYJ2d?U&Aq$U6ws4diab zZv#JS0nhV_=6sx8@Q1R!8&J5~hQigwC{!(nF2s?ieTw!0a-ql6H^1abWc}5ggY9oW z7`x1=$Fibz&%^Ir28pfWo|&HH6AXRtvli}GbZFWv(vpVTkfeA05kD0@-4XOjl;C5`3n!oK$<8y=m2+#7lt zJNw_^*m{*aR{ajkv9}xiI%*&5V|5P-d6K!u^@P>y=PK=tBvFP zH2R@1XEA5fwxcXsZ)=C64E)+Ab!|j@|Be9}GMA+cnJYu0b&PvU53#xPT48V>iTU8^ zzG=(3m{-Y!k3f#wt<#rF-7Y*w;|b{yw@>OeJqkgP$1*Itdzy2O0ZV#vL+%P65de2H z!be^#7^TS9mQth4Zs0@O4UA`{vjNTf!tNt?$=m;$^cOJo&;g|GZNfX7(5~XX>wIow z$9)u*k=~zk(#^$4qQuL5&4o{ya|x94eKl@yaxZ_%uCKFj5I1^ou5IFF#Cz5Q=1ZpR z4W@<2#&l8DAf%3>0;d-jlSM-LvQ1LGTr8G~*Vph5ut*aj{49;ld6e))8k;vL!$)as^sw-4 z8k@(S!pCWBo*)Vzq_KG!Bm6Us%?l9Wn>02LB82ZiK$zD408Pq#{FcTh)+hWWjm?Eb z;rlc;SFVRo)7acJ8~&cg=6a{_SNd=-UkW*k&HW^yVDZ#^q%1aPNkhhB6Oj}qEIu7Mrc;aLQt{Qy8AJ*laF=IFF5^Cmb_- zmvDH-V&fnHZXVC^2Zcv0{%Fcwv3Mp02kyDpgGTZkyn3Q!WfO0!Ar6bBep^sVy-$V3 z-Y+Uf?>1toUlx?Ya9%9)bbcAU{W2a4k{u_krasJ$P{kG5(UFWjcCS6eO}zn#U2Z>J zxdUsF)9#YV9ST7ACocD=rXt*Z{%ZgI(W~wK$M~3w7Onf)j@%%O&P7NugnLq>n~3nq zi?`d)o;-}kB7FGd_5Syx;Qey0y3AfsPZdw7{(8cKNxsz+#LV3g7qNxq2D zZxnb@E{mg>i!%ECQtK39-V0(HVUZeb6sFfp|o} zwA_iV=o7_FbRmCA5fh!z7s`j|vmA#J7|{+TDCQkKmnEgJi9ShSv=bJFE>pBbiT2Xa z5hBs99H{a+t_ z8p>mUNFs;^^D)9{ew`8lB36>TK;jZ~80jhQwHjJ{m6m$(Ua^qDWdD(dbnG{Jnrf!- zHZ@%2aVmMhgUSsgdKSS1Qy%OI{6d@#S*RCrRDiZ_b}%BT=xcrWm`q-}vqhJ|0H;+@ zH&f7I%i|KXT(Ax>s;IJ?2X>3VCnFugNm+OwdX&N+GwoAI zBx3$0rGr7yJNcL9@r-FU`yvgMlKeaVQusjI`*8|(iM`!1%v24`dr{BR^fG2)rr11| zdsZtq(bInfR;`f~(J6jO`aEaoqrvr%Fl3rh27gF^s&)5k8mbPS!7sVo|4i*h0ze3} zM2EQ}#zNy2j^3zS#Ujr1y@SzjDaBDm@6+(b?%Unh(FLOgiyU@G`jf&xrFaYMK2P5 zsY-1-rG_8}(t-l*Sb;9PBigb%4xh9QeUt!ZjuHUsOG`G8I3E?q;eJcrG#?#@A6qiM zWGRO_FP*Hj>~1aw-7(Msk)CraFEgsP7lMF<5CoaAwa>yuw`SpZ1_mY~RT1OlVI zVL*Q_Du0>){g|R}T8oaei=@5jcZ#((bjeR(#*PL^f*SSj z=j2m+Po2yW@KjXrE|MY7kHgVE zWO7bxc+#2;0y;Ux%hVEN8)K(T&NGmdpJeMt6dy2^rOsMP5zU@D86cj{&Y)wpPL9K) zw#;lWm;!+eU^1`T@@c6g$o?)`voA0%`4|)`Bgc-;M%f9vA}*=INm5EKaU6a&3AOdK zV=_J#;|V_lab{ASbqO-eB)1JjcEswWilt?3&v%XCTn&J+OB{m8Xyn7pacJxvWxT0jOCt9VlZR^VmBrz2Hp7tbFD8wh zLPJMRb07#z_nNMN|5Ms~NCOOC9;u8YxorY6z+}sF0g4Xz(2VIr4p) zBne95xd8$gyGb%l03$bvO_U^g>`8uc29gGl;)OXCPoOvk6zADUpJY%fMApm~=b-4P zEEyGY>_aZ_1DNs>Wr1Wy83Q!P62P2qu5`*SvK&krTWNH2CG;GiDPb!O7gtKYz;LGq zL%5#N$$d_>rcjGbMRo)lJn)i9Es;$Ns64Kwj;8_=&#H;jR3@LAWKgiNQHAfLM*3Nv zAi74=F_OVmd;XYxwq-8b%NP>8Oorkdu!@QnFlSpjXJ=>99Jn-zXj2~HlmUk}iABmL zfMr;xqh#=jkW%1pU=cf}5Sd)03>-=G7#O$7G*fUg1#&}%@u``Y^3MVU0l!GHDa??# zLeTbZEJriB+brhHwnX;o!ZKCj-d>_?gSemET&YRiUv93{B<}sil?WvtTgs@0x_Ds+ zta`9nkHk63#cTvK{&GPLDcq0bYQbGMkWLGVON_r>Py*z%;#02{l%nxV7XSbY6Z33Q zVM#JC78JQmQkXZ(dLNmxD6`~hcne$sl@c#}Ou28X+~7eiQF4PntEqC?zo{l_Zt%_| zH`m1<&Airi@!O5%hzNdZ76U=tJqKM&N#pkmO5hxc1QnI13ra~P`SbXrNzG^FOw^fukHXf;7&;)v7idiQA zC5t_R*$ek6`%6|DU(m-|O2z&5(qziHerUcMHs))SMHcxh=u?xD7e1rRSCCn!suw1w zeW5)v`7O)pt;uW<|6`jaN&SKCXfE6Pb72|D_TDTmQ(=4WmMGg`dw<+qsmbCLo_|x#?(B406t)3aMiBMJ=VLUZ=$ zgn=P6qB4WR9q7=csew+NLX+vlQt-LSIOo#4Ffl1~b1txL=+Jszyzq<)jG;i)<$v0m zu6X~E$<+N^L9^Kf&w*8PX!Qaz?Y$PM~)Rn^yj8f#oY5<@~rXB}EyziS;?Zb7e|-t7*gxP|Ah%1U1uvIPS+>k?^Ha1kZ^ zEKKK!d>W05)?7bs&jUr(Z_5OE_Z+0T*d4%tt#Vg@;(ogpjOz6CIlNmdrZxxkyf>I2 zG8dVi^EMO7sK4nM_tC4EXNe61k=xZ%(fyw%_e3%pC`8iKTCLa%gPQUij4u^C2KIBc z1LBll_$uF$J})MygmAP^UJFbhj-i!cGB;& zueo2c!#OkhGaUHRDxwPzk#99}LTucMlGzx++ z0if5IrDdE%d4w+0N9++N!|NP$6t&)j^bb7!V>SI5VM1w&Z7$Lb(%xg5(u1nsmIK7o z+}r;9u=nZosC#{zg(IEkzah7Cd1Uihw$Eoxpr;`N&Mpav!I-HA19nHkIxL}F3O5Ab z0;EOfaSJUG))9yyqjjj0yUB>P+bNn_rM0?h1i1|Or9f9kxyWcW2>Wq_(<7>~rr4a@ z8XURTYT{eR7=FX>#T2$l*Ff`dZt9Z!)|`q&uJp%zWd8)T!aah zHGl;EHkDpnRC<=q!yc~Xh<&CPfy2NEdqFzmD>p1-l7?j$emIIktZO#%rt5o(d;AJR zNDrMn6c=f6Fevm%tzmMowzeEt1sxZjswjmcGu&2aPj{&pNms_F)xv z==Z)K9p34EJUZ<6{umzhtjge+jJ#R-iQ+@ZTSeo35~Xi*gdblT{?Jm!Ae?dKQ5{QK z%HT2lmf;~{SX(O#k(f${YK=Th$K!^?L@c_8LbB-7n6#ssiKP|SOh>zunZozHFpdAv zb{YQ0cv8&b4HeV6fIULm3@<|)ZIo;7Hx~9azPCv^;XP5+9gV&`yHfoXimqt~pgy@0 zYTa~ap>kion&u5Hqs~5(+@yqHBaW}s2(be}R=4u&^i-Jl0qg0Nu%dium@MeURwU)E7eO~j`%@9>nt>E(gUsTK&7VZ z@DQc{{fy7iQS3D9yX^YaWNSJhxyR4Y=prwMxjohz7lg+PTn3VU!>m((jx!rstf7sH zMwZfl?ohvzxye2pj$lFtxev_)5e=dYgaV8gU^tlAL0&?K0af8!pXjCLBhW!XEd~`3 zbT?4IKqUgb3Qz;&cZ07AKa=10WQ6(({1x;uc_xj6O92My0?%q(7B8(tFAWWSb6MD$ zR(N21w{U87zgLvz&m-@9$p*Bmft|@0@wP4iGz$e+^VB&WTWNlBkeOdW&i`&3F1Rp#~km%)H1LK+b;%xROYR2G-IdeJmX}gy3_%g)ft3|nn___$^RoQm;5@^ueg{BGk$=wFx2-6~9`%2jAXKP_0Cox;> z@Zksu2p<5I!(95-oJ*@COBE!QT)pM)S2blZd4$8%Q-(3#O~c+b;#c2bhU5`94u@Ma z3c0rZw=iDVgALt&;cRuc9lVOM5(0Zx<3TfDT=ajb_LjtHkGzi~ekZT}eB`u?>?X4m8cW1X4yYb!sP6v| zDqS^zPUEOPjvV&Em`*O3HU6dkz@){#m4YzAAJ-KsL*%aKC?M9ee@%C21bK+aMaKs< zzybaHf8Q4zeNS0A($cUmR8y!ifYlgA8;J0`E3EbOe>Tc!^QL*2tx&vqPc?lSm9bHD z$q~Wm78JU~^K#H=Y`hd`oAzJCUKn4kfB3=_l<;}4ML)xUG5-#)P|#}X)d~gKzrifx zq&YHPfr&ecwKZiC!&g9cFze0Zi|1WBi|8=?X`FX)pXd^3G`lhAdg`TWE6Fc`O4yhsdh1q2YR&HWDO!-l_`m_=;LAjAj^#FoIwNFboV81Ft~$LZ<+cV6>0p^*U~YglW}#C-LR<-k~me z-i|;IhGxL>7?!f2B!O}RQ#MSiuy|)LN9_KHy&17mKs6Zn*qQMa<49Nh#9kV@KBN>? z(1I0XT!V$gGu#!6alfOhmn+ij>ZK}s3)QU$ zR^Ok%ovYYz6_I@}{4a0RR>gdKb^Gs6`7fV>?x(H6r{EWOK6JN_DoNM3jXmDbyB%(U zT#X8Q`_TQgeYEW;e@7k%jQcz~u>Os`^ZAX@FbGi!ABV*$Oj<+S_Rpn1y1Vr&8{L?% z2f49gr?IC8W0P)t{0g0oV!5<9Yn0a=LfQu2!bTP->HAw=A4PG|S8Yz0!iCZHl~ZLz zx3%*XC7QE__Ey&c(y+M~4Ym$mVhv{wsHDO=1q`s;4&Fm=jTy^!lD zyr`Ml;*(`>F1&;H;+kV%sRVE@6keGHa!IrN+>7bhnW+PaV!$Ci;ed*d(g{`6EOLx? zn204xSPp4qDDi_nQbZ%9hE5t2hgQ<55UO!83`GnmMf?XT-a(SKs0#w>1~Dt&rb9aMF`d+O%*HkH6oP6%PD}gOmaRfNE#JBp zNfp{@q09QOs6f+!ub33GC$W%vQf7UQz3-)cr^4;z$H*+&ia{}hyDsQTr#r-JY)vFwW4qudt{?87LzCE zK|S>GSjHQ@eVA09vxA>rl=P@x?OhCcX!9#`Y2VcP=A9`;sQYo_A!n!In_tE)2x_2C zl`_>q@|##6{pYt^Eh{8IYvOQflx?vL=qM^hG#M>D>Up04105gpnXm;BmUGI!d(%b> z2|;_@oYC(~M&~>%xIxsoVlQIv)z#Quz^ay-^oxfH0FC_SlrIm5vgG7)`^IIh|J~7Xkb& zE5Z@cD3fo{*2i6apb30=4D&aZ`wC>KMlL`Ns~#`G{iDw=4vygd2Ghk`_+IowyMu&$?oZl4h?Kmw>o8G&TnM(R zaL*$ybq`{uD-rS>T8nG-(AL0vw zUbQGp7nHASPPm6|&KhNB%hrC(O9`e`P(nJaWExrM^}0d;=xB^2%Y0Z<1_2#|)nuth zYf5oYhc)RGk{=qUMV){G(5bM^RVl+7IMCK z_nJ8dvK*b~pIyXQPB|uCw7`n|md2@lRo5SB(x9zt6ojLRl{R1n;TU4)0`As89et3$ zHNLORaFncTYlp~p+C*1dxn^*uK{nns+E&YVO3~U@mjo!?l5|7J2T-w|8qxv}Lb>l_ z^hOB`+YwzGU@m-;z{lISEOi}#;R2=rOg%ut>I2ujaG*^oQg;ost45}SO5mOA;o9AE zEnYiLVDjkN?M!;)XL;(48Ba%qKN0B3P}JFQl0D-l~CvsM2nyqUs-2$=J+o=_SEWBz3amwLp*z@bGs3EA_8Q^Hc`@$j$ z)F}u41)o&AWk71Qs=wan7ZfD$3K?XsBSmy=149aCW=+BbUGZsj2x&|TIY~rga^izT z$@w)l2Azx5WS|3RZLQsCqfT<*y*_Pd`2{zPCqj(X7xo!Pq87;W@DjLU}$$kv0j-o?^K%AD4ZG_fS8P4~`aG^@6G;NqfYzv4XW`9bBN5Sx<*&Tkid zmop>C170IN$1BDy)^K%-i@UPM?IG^DaW9D5XSJ(8NNX+CR93xF!v!4*Ur$hpZ@RjK z?Dg`#7ni#^lzMW*%^_Hz`Nj}bgQe&ExhUjXi!7j-N?iaV_HnMwFD(*5;S8Ei_G(ErqNRbPL8FGMVt(>1MqwxsAF4HCu1)l!TAAQz z^k}Mra9)5)VbB?~0nlmdug0OEBWNxscg9V&xDZ)GA*X={nmn0wG_?}soo{rp9DiEm z8Xc8*bSi^Wbpx#a-ePneF;>l9Fv>WMu% zLZsDda;W74O)N%{ORCg$BucMt7^CgQs=$>2VgRG2kYH5ewJkKvIZ|3`-eKs0pt*=0 zHO219-8^VwX{Sl(y~uUYIzY2=YmWB8z^es4#1J~t&&)bvLEyy!TfkJMPH+9%XJvrR z6`Qu@?W|Z9;I^+kAStTSqK3P-`r;Ml0TlzvT?A^Sh>z$_f)6UH<1{eOr9htagu!QV zEC-p#&H|ZOLm8sB5^rmdfi(sX>AX3MOEgKQd5t!L^viW%$cACSJrPuO zS)ja5s=k45^@N;3~8{*WW%n$HZgrjMa#_8mY-pJNGG$s!*pUe4!?z6C% zajk`WbHz>!q1)`Fu4xD5=bY(cvPD>5Qbse;IupB+)q0Ctj)nc!uQW_6<1j(hb=?Mq zIFuIot8`7GK6pCPp?S!9p5^G>(F9gzJ9D}@p?ksJ0E)qU{Ci*v?Et>D*iWy#*x>F0;qfp7aCp}3~JzuR>>@@H$ z_Il7N(Oe)j?mZ5E-1T8iSuRl6x1jFMa*<;SV68f)T>)I#X zSuSvT0C3Ie;R1IG0M^_o)_Vv5tnv_8?|*O{H2EL2b9q~JttAYPkt@6R=xo&D-g6pU z%yi0&rp29_FKf*sPdYMrW1=pXD*1*Z&gZxh>>@`T1GZr%*Yca!#>c=$_X6osXr6e1 zRqY;RHF|g73uF|rbK~p|aX?jv{cIhA{Xc}@i*Y6g`+1MA$zzm(m%*Fw5_FtcXw z__jkJI$rIXWu4M>ke1x$e%OP4cz|!daK>9}C>B4DPkY9tfOuqeaeOSI&@~LuR}IciF#G0q>7$Vk zCvkf0$F3ictD!qWn`yFe$AK16**y^!)%Vg9f8xh6##`K%CRTnGz57ktU?0R~0GDB` zZvtP}Ord|pO#3AFbHFGXvU@)urBaMx_j^#;{iO>7-8TVKmnOP*0)AJ*j5}-sb0+C& zVz0kJ!8Fp>Z`pf}DuJL|At*E#6v_+=oe2tks8VRJLZM?xp)cBM<)KN314)OM!K%E- z??s?rk0#=B05OUbTfSAK`_%9)Jm3$IyGB zY2lWB@nSc0+}hP*h*6g2aZY%7NEY$K8bNt;wW{vZMRAU+o?rMcobr0OhXKF$vF*DW znp%5l>DRRs#vtQDT1Fh&dYD z603~2qLA-Wm=>9w?8rQDnd%K{(oiuUzpnhYyZX1CpFx4#O*}lR0^qsp!{ccfe#zYko&s3n zxN~@zrVD^e5iUw#-Iu#LJWE^8$m_4Xg2kLrEb#p0G8q6BW9D~vZu|n&joAY41^vYy zb${#sV(0ibEpN#q%GmSeG8#a)25jE_{g=pb1E(ZbcOh>B{2F+_^>6(r{FS{8y#M@m z3m)D4}q^aJMa05u@wtzEYVA` z(;?$A_LJRb^gl=|Kk$8^1s0;OJ=dE-vHKP9Q$tGe#wA`+VKbjIH1Mf!uw#PE%WeTc zy-B+=+z_c|jpHbnY2~;g zIRQ1RIx8)3SU2o-HPM$W#6`0kcHzN@xWv3uG|f8~%xr}Nh-y=il&c#%yC?o!i)N+w z#ReC`A{JNTXl&~*D#5d4c{?2J`Ni}wJaX}O3#OK2{LrPm6`hS_zveY*TNU5 zl#6?dsrCszY-pbZUDG}>d0_iYJUi9WO=bM!bWyygQ6Y*^N@u5o(~~O76H5d%cVU%! z$x4|9==(VLN#FqYMryD)J*sxSqgm5z*C|D_XlWNsvsjZ}vQnlF%`4mEv$a_pP2sK8 z@d=(tuNSTsYbe00{6MOLStF_stre1Pf%WMnD`o1?xEL_%!h~v7lvXe6$FnrAw3L!+ zP35UI44R^lYqG?~o3R~Do)lYjwd8<{G+VqnuG$=Uhwn;x7ndOChshDzJLH=QeI)NZ zAAvYPA4C_La4ulobKE<3tq1TQ>+HdQogif$V9Gd!#i^yI;7VmNqqI&yDdcX13EM%i zeFp!PUZhmDOA&aj6*t*7)jM@(GZ)6Q-}w&z$y&A4vRaj>>ctdzZL1T%^`NERbD{)v z(9eGHGxQg>Z?%&3x8=&F$b6>di8eK4wX|==VwBIYgvW8}T0i6C&z%tdCpvyixE+Q;>X#c5ga zwVQ`i5SnxWyX4zMCOED*^cYj*-OWwOq*(YbyvRJ)@AMXQdZ<8%V#wM$1wpNaDvg1X z$bnMq`d+<`!$=z+T5@qjmu%NtaA7@_0g08K=vAGl3glD`qtc&G7HIUi2b#*UKl(DL zC*h(L3YB`mqS6zFz`%9jsc5Q?#HC1^ulUi3{LrVSm}#ovdzj1x1Zc~J2+|qx73W;7 zIDuD{W;{RaAF-U*l!06eD>a#Es-{<%ENU8gchD5I73K76=gy#vPl`&>nmf#)VTFzN zmpkQpm_MxSoN+5KOz4H3;??nWwDQjN2qY&WtErMxKYw|eyqc$3I4{nGsRWpRbMx}` z(%LZIjU_{9eQmtkBgY-V$~LKhRo?9wmbjv}bIO4g?;I+_NT+c$3hh){wpXhaD!0>x z=&x+y@vAwkFzLPBw-{&t`w`c>U7=s9ku4Wc=>pVQrD1wCD@`Nze6U^MwbuuoSi4NykRfMcROO*S|6x7+=J1$~59&--1g<4;n{^;e?# z&rv{+7UJzq82jkPFFuC(@HsKIpV8VF4cO=8gyhFuuXp7=Cu#*CL+`?>Gx=$!-$(xU zZ{O%Im;RqSeJ4MSa9sG11(M3o!_JN?xu6TQv34o(hL#B0Fi*UxCC&qDRlb2aDqvtSS>-9AU7YcDOC6x#>><_e1!%N3`R=PsKlc2mZHS!oL^r z?|$vmo>Gjshv6}nM19V>lg;TFU6-CN68ekBO775geET7~M7^ZDVqc^uh%+3O#$&Y~dU zd&e_qWs;)rT!P^X<_T`lSmMFr$E$e0dgPIY2u?fz3XUxiK^S#HQPp?$c-^n|%*y$b zY64;ZueE~6&cA$Xwk1BEp8l_z&^+3!O4*P062=XmhMlH1imaxlimYmjeV7{ltG)NX zYTbXKSN}&%Q@vf$=G7QoF;Y2e6Z91H7F}m`xBs?31zpF6l|WuBlVCXyoWXX)bam6+ z1`tRylqZ}x2+m)fC23J0tw4C+}jK5OZSh`19ma7|@In#xkXrL!3t$LIdiN6jT5 z&1G380|v!JfdL7_LJo} zJYLTH`O?qk@O!rWyhz|*y!027WgceBbOfK8o-BiKq<8gauKHkcQhX4{Xo^^(SmFs0 z(HUX_We1UQRR>X`qJwC8LLii!D{+F^iQo0p;_>a+WTO#qu;< z0w<2=%e-kc=g^P99RL^tWB{NGfQQiRI(rJ zs$A=sg8rUr&tpkN)fxFhFR;){O!XrE#dH>W;#$GzFSF$=S|&@I&wEQCR>u}o=2Fd% zOEDcTX%2LV`p{lLaOh`8TsF>7PRc2HNu{oew2{Ch4I1PLDhHgwGkidPRjL6HFoJiQ z?13|pL8V%-EgtX_ltQqr9wAw(0^8yN5pk^a1I=7R_?5bY(A+KVvvD-%7SVhBUZotj z{@fkigg$HB6*Ub$YI0xjwLSde$quiZ^ooU@;0|%u$46i7)zJx;2w17tK8J9(|!%{_|)F6#d zUIufArL9f^x%VuvQ-(1D6q1pNgrgX>qKFa2h!tA@XwC$==1c(XagEGa&vbp=(_q-r z9bKp_VJ62kd!_vQ&Pm!cF5fwkCpb&@>7oQg^&1^J7<}^_Fs$gy8<^RzGV__S zF>i-|_6JtaaxKg0QZfHH2XbmAP0;!S5?wH!tiC1p-A`Zzb5;>UH5V5&b0+RiPuh~P zcI)hnJG`N}vG4ksKXw==M^8PLO@S-Zk6T5zK%tkYfo3lEB+i}Y=lh4Xum0gV*-8h}dD6LIAu zBXo%Gg8Imfg0FGK0vBeNY4wXlV}IJYv0U!l(7x<(3#0}ztAgl`F%l@R0_pBD5@_Ef zqs+ibsP0mu^?vC=V*9_)OO~G6JAIb)ZaP{8@a4w~Pg~ZX!W&iQa!yK0MO+0M>FK5YJDA0#NFspa|?r z_%$WC9)`dsW7GhpWnsn6Y9E9fmuD%B5Pi$BIxGwL!UBe6QOae*K7q9@lBjSk+W3dc z1l-ADi;wvg`%tMI1eCfBkHi`|s6|jy1T{spr~2W8Xj;h+a})wNbj2|EkP2_uN{i-| z7U7_u>!RaLWiza-g6j$z=%N)gthtz}La$r7hq!nYMzL+{0t+P5_D!eCMXwbD2nps3 z?s#41Ktp^WiAYa1mTBoFx!15#xL#|8L~aXrGO>&8>O0;Vq6<(7wr#^wm4|LyKFD>P)Tp{zG zkd1qLs`Vf<__WSHZEp=-VGd%DE^nC(O=(F|HhW1HcEbksQ!Ng)mD){Pfu&+qzh4B zRdsE`aRJ?rFGY9q0f;2EBX8#hjhNGg%ZJYK!u6|t!(^u%i%vN{Zv5OIm`{%X8>pH( z<@oqw)IZ)Sm!5L&{!pj*K>ptcd(ai|aARzf2q|(PSz&tY2@;OT)ubXmcy(sKU(LkjcT)X zR4dKga_P$t%yG)i1m*HJ-1$1(rFC537Ka5n?p)yBZ?-uC#J+%dzrNpaFAOgOc{v{E zVPTW|6%kckL?%1cq@%ktr+tlWCEcVKlN$jYjFG?c41<@>*D%6HL%@8!eyA8ks} z!n~DDm$2Md#Y47+iThv;3ay;JNmKeOJfM9=&$6_=wcBEEv1>75uI0Onph)ZcK-<6d zaaH91^jlvS7xO{VRm!xhJ$H+)SgDrVn%Bj)CX9*@@OWOo+~O>o;dCW6ctfD(a_<3| zjE15@dglt?R5~_PcDd;5Ziq(XH)4$(-IIkUk7@|c2nA=nQp2IxLQ{@yYSwZdeboxb zPw{Dht&n&cuwg>2K*{rb!1Jw*&a^79GTv(PdKM=hgUhOeXZ|2PQHUiDu9yY zf6+Ry3AiMM0o?{J>A`^&RhmF0QIw~FcBY9R>$KPtnspsV&y#0Bztbw#L8^XUc-w#9 z$2+%Q;?oCwy1(!at^0U*1OI&ZK!4!ps1y}%^hg7r7yMjVsExZ5^YfakTq0c~>F zqAkbpuzxhL_&H@-Pv;$sy+9t}Xag66_n)_U*!lF&_4CkF`B$I*p->K?A7D9xz%=w} z!TtD|$og$@Lq9j`s1eyToZYK{zw=*q@EO)oJCs8q79OK!rZKQv1 zoaE)hahx7+&wM-;yB(yXd>eEOJn(jqehD$~b@0zhd@^zP-OD6gCf z9S7szopvy?#v4DGgb(nZpE8od3+Thcvk$Mo?ma(!65J0*(e&}NFSGn8UD}^coliTz zEPwua`Lhjw4*&l7$m!ZYFRwext?dbW2t{9Yv+nX$cL{&n!2Uum`Pn}F`{ z;V)X~_73k-diQMkd< zfdJiAaAlOqpjNMpeSEtQ^7XJda-grGt?~$?k}=^5M9JqgN^F=)MNKdCnh^QVKhsDR zBKADWiN*1%CGPZZ{cNpvYfbu@x1_DmTa+X#gxseVR^j>rE+iO9g}aM367q8%9e!N2 zGZG!%@srLX3G-WS`U5uLKz8+1pY4KLi> zEH*qXa?|TYdGH*MWur1B&$9P=yLkQ_ksT&Sc$BE99WC$e&}r^R3vpn+Jf)szc(O-} zJVqTzagDs*4u*#UEe52;pzo?Gu@%KM!V5ykduO-XE&fb)c`;a#!T8^$d|Zq9*dibL z9Q2qE3$11+K8*4DfF|?xTeW`@|CTt?uGv%_W?APZwMJXS3rphL+bteX(Q;l&M5%U_K>EpIjDAy>L1R z%aj9u;_?n8I?Si-A;btEoqAfl$~Zp4&@N@t+a#cWmk-hoy<(6*jJMgq+jE6xWh^~{sWz-c=(Sz#%SlYy8V`ZGBn#uK zL(N=h)V`CSB_qi(K=G-TrzK}v@*}+Q7=syW`7naap?)c#7SIFI^I z&4r#foi3N~lkuMg|Cvpx>EkIIA`>54!{I2MhrQ1^#tWW@!Ek6Dv9qaXkEfu_|Gjkt z>%pz?TR5_Z(DTD7Ug4Ijhpi_MhOgedJa`ENvK(h%@j+qd^N};$*|NH0Sgcyqz>}#b zKeUOX)mI+NuM`~t!W-B|np(>aEm=m(54)D7Zc=E z$b4&RBD>cx!1t!!H*G9`nR@qX<9&bXy$L4|zGb%cx7FPfE&nnt7v$TApFaJ4ee0L* zz;+Hl9i6Y1N3e>rK7G2rX=zX<-lZ)`jum|3!PoHdONh??QCZ2HQAfoF#0AV>@ z>pG~brIAk?=Np2TmP-nDcm`d3MuWRR?ad~R8|+WrQ)o3U;Hh^U&T*RIZmLfTjoOVV zP+XkISKR(00H9e32BhQw)M0m~9$FR4Hv&7j z7)*WC=js1YT~W2XG)Nb!$yAc1K@TtmmKOHLh$x9+i)k>57ZJM~-v%)1>HA@@Z@?G1 z{L8!$4^s`2!&)RAC?S$CEMh*jj@$$n8Rci(|6da8^Yrq%-IM9y$&_S=mS``(vmr@aHbnEKm24(@) zfqI}9H#e2)LHycA30LTj?Eb|}!uf!i40DbsDZcjSDFdFyNBa)UmLC=vydSw<!KE5>PDDc06&WjQ({i48W+XYwO& zS~qeS^bWyJVK=Lk0b;-dthSb2R2?e>44&Rb8>B%S6jqQbFF* zWd>^1Yi};mYi3E=ac{0Z+)$0u0~iBO3u&7eKpV*LG6ct;JAeF9+KRLVn?~Pmmv=ZN z?IsPqdLK7aR%>|1(=cef^6DxxNu@?Pqfnk71UAko`j*4AYU_X+{H7Y<`~LKI%Se6< zm$g#kmOGpq+L6o`Q`6u=y#@<~S9+&GlRP5)}_ zQ}0IE8IPyZ3zkJ}&buY`lFf%xmMc3E8!3wi@>0IxjW#zo>=YJ?xAV#}CHCfGB(Oj{ z7G(5>Red0tE+(&>0J?0dlq|ws zXw?qiuUkPz##d*+Wd*a%!HMa>A{jh`UOhu)Yq^Y|rjUp`ca&W%<0B5QS8|+ltpbVw z+5to}XvqX998p6>aRX9q3o2R0)H9HXuL19p72|D`6#pU1owi|99fCXrCcpj9F@pL& z@L{Q?f2;4DCx0zxGwe^@9+Rm%DGragZ6&KO z)H1O|dy+qZWllK9n-AGk0fH>i)^VK3ImNA)dAp+=d4zmB&sq z?>K9q<}3{sF~G^+4gR2E;0f$o=A8n9(`-wi1Yv)i4M5iN;Vp;kz09+}WrJ@Sj3Xn* zSuSf7qnjNw?~i`}chJsm{Cey6Tm3)&*kNBXZ~Je1;P#h?JH0=SJ_Wxx*R`$p{mjq} zP0PUs-f+P=x)|(bE=^6P1tBRd2pcf(Zhpz64+n&TnlwEftmXY-7&7*q>!#&|99_)3cfS4scKUYtf%&5#7jcJM2Ep6&ZVzdH12@eUxa}dd|-5Rp!0P1~6{lWX>8vkMcn} zr2-{3pi5{nI$E*k+2zf)FAR}KS_e$r8z8_=GVZpD&l~>c=DmzxIVImWqRq`$l$N6K z^FcvhF6Xe&Ne63{0-?h?qydDxj(>=1lbw`%S1a{p!WF{7YsyDnt}ke5dBkJBZ@}_r zaqK5qo%`Mk?kq_E?>-nI7if(rC+P=YscG$#jLe<@r%>8|mrqGEk1Ws`omBb=0Hm zQd=k=GPx-u#lPjSXDSh3XHgF77<;eMK=Q)-Q}r$cETo0A>dLE_89She3ztu`>MG0E zQk1}E(X4shH1m$9_J<5cHa*?J2ubwx4AMsQ^d6pKdU}fYna@BI-i0EYo59Q`^I}Fn z+AL}BfM&koMYHAd&Q!qxZeSHid&bK?Lvfp@@d;jcxZxF$^S;CiwL@| z)W)D0b(1AYMOZu6WWottZporU9fgtqA``XW3xrw~4mW??v^WJQBa}r;>p_F6?f|x+3IE=Yz@s?Z}^n=w*e!beRmOKmLT0#3L{BR3I%f zx14{9t|e~0cs6yB7jp0GlqZB4C5$|O^Bp&3LXYI$Tj&jLq1q5T0MKirs$DY`c1<#7 z>Xyu1f9ZXk@*s_T#~TX-9`q}nqd_yV>P0ENQ_XZ2@YW^Np=l;@r*cLB_LI+rG%o;q z5r2#n-;kN#PBy1AhmV2G3pO{$GqsK$4o~NPmI;IM%v+SXMI{$;Wy|G^Bbs=byfnsk z+>njEnT-5x<3&e}>>b$?HWtQ9X|UYbn4+b`fNSFR(hmJPgCR^)o32fv6a5Az7mi4R z4ok}pQ`(j{+Kti2@tpTaei-vJB6d0m$P2=KBnis`ryRuGL{*xyr-msT2sf3Tv>;RV zRGP9g4>u1Qjn%SIGcN^2GX8V4E2$eE@}?aDWsAc=vtAF$dOc*g+muSTVb;~cv(3#jeftXD8=y`=wb!AbUK_v1xyTNltqiWxw52m`&Zs)k+QJC9 zTngI>e2`ee;BVm!N;g|qn|#h@fQ#!}C$r|In&#cYH+ST0W|g*a`+UVLi=AVb{K_iq zc;=nV%8BoECatlWzX$Q-@oaF+Gtm`#98DHvu0vP)P#Nz^$NGew&Z9!4tsHXR@ieRc zH&s!&Rf20O@*6IWAY-{yJct=~!PhxJGSx^T%)J@go7K(%$)VxndMnawwIC+=a&0b$ zeyWCZ?#&PH%?7F4?fQIF(_K(@beJEp9J_+EyE1LFFSCES%HN-PUuOSimH%Mo?E`}S znYPORGOL>oug|;(v%!Pe7Ko;F^ft-;aagnX-K_*pBg>jtH>veW}e{we*yxKjB0%&=V!uo|I&;I(!_ z710n@8qIY5hN)#+S;2u(0WIat9cJ>1anxnml8X$>hNZ#_ngwq;eS6tMC4k_Tgqvt)+OilXt5*{2 z*UWn{t8P6!25dq{seQxUlK<_>df9a7Ek6sr1z`N@-f`v7L61fJtglyCd%T^Q z8)D?+_H|Zn?rd&;#ABMcrq^WWaw!Dla#_m9(#$X`LsM~g>5XJJ!HEg)i&2Wi99cRo zx8}Ru`Jbs0j>X{|El@t_4+%=dkc&m!tx{g-Qe=cWk82(fE|dMrF)hcmgR7>P9nO|uD$K?>kqpro_H zQgl9`lVdD_g$=2Fsq8_}OI05(XkjWfe^~X7P{-fMXsHU%6MEj5kqH!PTzDgfD*kdg z831(d3>IGQf_?+KC=dg_F~B5{p}FJE1~$4MKx1Ii8R1tu?nI@1S7{3%e$5z0y3=w= zR*ens)vW5*P7+0SzIIS>qc7y&U*#%A??=21v%v=0pg`iaj=BN~?^3EHu(*0WTLDEt zg+am$Y@h=>5fo{#X4B|=#HAq82KYJ`w!$3!tQQ^#*AZU)iR4+~iia-^M{I%1q6KuN zPmICTA`rlt=>3K6Jp9a1Q^O5X?)GMe`w6iaP%nbIBekr8R)NARco8?LpUntK$yzzd z2I5L+3Sg1!71adzX9?dkif3J@a?nm%+#$zwc{BP8g;lu;Qw9$K< zv{g&a1=f1CRUX6yd8plqQ5tihX@)+_*=XgypRoc~TN9Q{Jlw(p{p^$Amjhp%iKqjMQSK^-VB|D}qApYv7zv`nV0$6Pg`&LywkE z12piu1)8hmSlFo5%}+FjZWoJDX9`{7O!iHw<-x?S5(mc31N{o`eF3q(!ak?MgGrm?;`NF5U@~|xQ477g9Ye8F^;nY0N+W$!mA>fC z#Od-4FN4jlPX^Z~(snM7C&C~_STT0`+)lQ$4OH#zPX<=6k33bHJSGjEgur&xR{HSo z6ZEc)@`q6p6(KvA2wf*isJhRShK)Uh&<+=ALW<84f)AK2o#GSdnuCcA90bb+U@Bau ze4nV{<9jwWv}=WyL&xz88y`glU5pWd5d5?iLUrvfp1JD6TvRLNm@qxuaF=|AU%j#| zx~|A_*vpCcSv%5s-;kEDek%$2#!y>ehO6@&d{e6`1MJ*xEKF$f(%f2Uu0T4%JfSTl zI(`|-KwxPI0xj{D7}5OLwf(`4+XF?$AIy6_7Z=%)IyV4I?0I=^pffk>xj&Jr0_ab- z^~ zR`A8{^GS7I?JfDHh|(|c1Oh)3z_sTQ6oiFlz8ktoK%&uH?eZXvU{zWS3RuFr0Zln* zazV>WFbG^yMHaAPF3CUjMv~rB5ffu{I7J>>sIvedgg|19xRC&lj`63!5gI+N@5mC4 zdsDb#Y5-LODleJgFGbjJD~R$8E&dNqKo_S@ytl}UbjIKR8PB5$#+(}Y^T5T3R{yZ` z?SLH*WQ^gmR3bB2euD~pYo&bb{X~ugZP;D zXLSL1am-~kxk!juE*)L_y*sG|TSU{CQQZjjxEwTUTRHmZU}NYtcBCrQ-7WoN)wu5uca2iN6- z%O8lnC25>>+>H%?RWtH^q~>^fFfiZ%{d2D8!pREb;tp^_QN1~CVb`}ZKo1w&nWrYGUt?a+_Y@sprqXV9;BGjRvEsvH>= zD$LoVi3~4DvA?V{_^-FO*9(HqoYc2*-SQ^B2UtVhLg1h;mq= z=;2G@OUIs?n*l4@F#yM%0>sYoqCi>U4+gYu0=}35(`s3Oc+L@Tge)D`1jXZnz2^_& z5DgwIr);~HzaOWCfPt$0JdY+x7>JbIJ|D+;xoyHXOb>wvakUr4!8}ZkoUL&b<3&#C z*kL1HKXknhjIz0jvDQQWBIcX{1v8`+G!S*RJLUV%(dr);3X5ow`vs(q2G-7R0QCn( zW?vMk#bW*u=a!#mAQO62)^bN5O1&#gi7 zaKpW)1@J~-k#mlINqF@n#8Ocv#Uo{p;%8Nb_J z)_rHRgY8`*%?UTtmMTTSZtnub1%%+7; zksa{`3T2|{1N{Xfvd4jf!j}?EdvmQIU4Yg&)Nz(cWtm!^He?v?!gM>OFeTM#`w)5>H&T@rvWq}fjKe^l&0#OA6iAa7)?j0 zWyBVPtHtM0USI$+ zpug6O>I+3@0FBQxRBlfARv9iA@gz_gr(F!4$FLxX!}&`d-qz7ZTMLLs&MeJ2EUY)v z5=$HSh=s+>(6-B^;1ik*%Gn%*EhgOOx)DEOqNh+8{K_Eb0;n?X8BWvKD|cx%jdqM; zi&yg(TA;Cqp;J}x*2L3Ds&jx&U%HK3Pc%A$O7(FoLT4THNHRF7&vtmw=DU(W8ZL2^EdO{x&`Z5}OQ@`%QgpdAery6OO%Mx2hAs~luqZuCkOCG~_LGQ`DK})-73Iv^;7rI{#-hnm3ABsgxRne?Rc9K7D zphrm4VBgZD>!2Be_w?3{UwQwwG)s`uaqTuN)K@K~wfP#5xa;d!?KX`sqB^zJf<=`v z>RBs1by&0pKnk-K7?NNxa+Ax|$vdbG*_ZGPMI^}v>jBOeq*CA+u+7bgmO5)%0W&HJ zRakJZM%<_-)^c0i71tK@>`ggW_jGHU#ZJd^@P8Y7)$0lPz~*nEr)2SQ8l3Ht5dFFc z=V$xS2AY%B)}*b;u2M>^eN^q-O;LR1MWyv!Zs_!TxRk|#TdW-0*+mDMEj2H!*uAkg z32iLxOznH(Twel`F_s+_)@3i9*n*1Pp7|J=R3#O$8FnQ zcgEiJ@!#gL#`AX%wPf=&KKrYhr4Hk>$6A(l7N6ZU)78;<_SMWND|xGB=m+uHyK07c z4xfFjl7N`87YHcZFd-OoHWQMpX0^L#A*O~|R5`=C4-^J7fkRVHefsoj+T zFH}ZjM6iGDIjuQxugK=Yt9>Zi^_Td4EPn5b->>5Lt@wQ>em{!e*Q(jyXByfA^D}wk zXHn)&g$9xYFJ(GEI%G#4ECltBieOo|n2$pCV9dkWMz}Kp5(-upLHG@0^2=u?4!GTK zYRD^<=zAdyte73*bIjlR&28vvKW369?A}VCB2AtSj1sS3M9nTsyqje?v|%G&ZCNG_2O7$dwXme9`y?Fpk2W{=$Ld&Jge+xIWcV$52JH09@I6}; z^bWrm)Cza^H`Ma!fIDBVluzb@_Z*vg3(t#&%O(8Gi8S|g=Lb6Zk@K@?Kobtwxz6{ED znSqiM1v@z(9xmjiAf0Fs!tmQoJrceP^1w3=6pCYbbM3UII#HRaqj{+VLyI;O8$yx! z&Us4F1%Z2g!M!1!AA>J_Hl`8RSPq?Zxvy`;RM|+C-Q~ys0_pE&$Ai(}%h>&xxue0O znfoqtH09-rajLkx4)p&H8h$i)9cOoC&z8%ORT?^@iyp(n$n%dtE1Ln?8(YoN74(2V zJo4bD9$}`ISVox9v-D6hdb$>QrUD*T)2d;9YI$0iA3e_q^Ha&t!tPXZS}GE8WAvml zat)-W6*`rnYV=eQs>VoCp=yj&p^}-YW~`xFPBqq06`#>IPTovC35~IpTngMl6 z2h^c9Q_)QDt8mhUnL~xQEWP*m?G6X9JRX#fZWAOo2MKek+m1`%X@tP*AO`ry)hDcl z-ex*{J{*Smo;cWd!3sgm31YX-Lir-^dE;J#Q70u4qY31WS3f}IYd0?8!A5c6(!n(B z#A3DGnZe?^a~yVjCBZ}p_nbs@1OjG`;wZ(VFv%e47UdCgpf=g>^25>5K!1TRG2XpH z{f*^Et^rN%Ho4>4Mwy(c*L&$ADY{+sHBsN6a!K3wyk5@)EUTtZ@YVGc3VU%>;>p!6 zfL?~_NrctwuZ#nQD37(neMTM+c+SWr$al8X0X8}mwz1=okC9>+s^o<~3v;h}dI9w+ zan_2C2UHuS=2_aj<>#jiD5oe7O>J&Q;y~8G7f!P~j$0m}TDzu?kS9leVXuQirN@m{ z#@9(sYl?D?{1mz&nnSfVqvsLbl;y}6lyt-%m`Wz#b9roxhkW!)zcv*Z29H1B;fDx# zCzVGUpsWh((A-qs-&bj_T!Y{xcgbMKm5p)xW)0yiGUG&7kDZAs==+UI@+0#&!idEz z@G2l|Q63G^qAvtUI(bkdAZa2jv)mU$+k8M!=?k^dci2L#gw?qX1mG+cDEB6StQ_EI zfMOcl&9!joR3;&BT>y#3M+y7ug|MI_Dd^uW0gX~`qrXB%i(zdx(l~2@PNwmni`^J_ zYjha*c8*HgW8exx%MYQHct_gmVahTu&<{ArULP=Kgi&@DU|Qc_2+-DLB2#=EzQ`Wa zZa{@jYlUMb);?+07`LKQZWLawWWQ3-MdfpGO=xrEh-Qam8nUoI6=ehg8{+Y!jy82yHWGRDj3&tP{1 z-D8XCUqg=xWexbIRf5M~#QYCAFruWBRi*77MvG9HF|6v{*j4RYX>@6#`JFg^-aZZO zmPb2E8DEj`o13DtLhT7%s4vJc@CNsc$6h;67@)AERlH&{Ac28`{4ESTe4+i52Qal1 z2nuSG3|En_?CDUfv4O2Yh*IiIe%m$A=+%l>Z$@VLjos*We^-9NT)%8S+P=Z>yiGm7JKqIFhbdl7 z`KQ+(*uK~8rY!1t^DZcxkvCtJQ8-15Kvvpfi>_>XFD$=8+(vRud7k?WJ+)Us$Vuy{ zy*vdsjmCvt?vo9+prtF}G+DWP;acfUS?Dbw4k_DEy4WKw$60{}+(F{oHFTV6a$ua4 z10w^bD0Z(UyVrogyVs)KYxCV}DL&@A*G9Y7!rg1}?zI3D7Q5G`yVtT^;U~RY8BHk4 z#emwV9qNNtqD$TU44uR8f$Uw(=V3BBBe{eJvLoTWbI;FQZV%ad^>Y8o!IQrp44=Gs z_~gZtgAWSG#iI%eM>{z>wuv!=aEmZ zhIpe!Qa8Lz4vbuk`9Qgfd2v`@n^ng&hJc|5|4;Fa1UIR|1tNQ~x;B<}g=;~tC#oCD z`488DFl<3CSkCI&nF2kL0N0My(@4x%RO6{8>|{^`+vHSUDlc8Tc|zLbDy3cg*>{}k zIT%ru^f!V^oBay0tt;FhpoNs6i6~tR#P`CgR~>c3Z$8(}7uUq?A_m>?{8in{@|tx0 zyOzt~NgDOSS%#6=SczHs8}a-oh%xRhte2H0eQjD&Po$ixx%Jvi&a9Iv?a(YJrW$ql zzmT-zwV}Vp3D$>hY-*0iUc_~PMvr6F*@+CpwxK#rI+Vc&H#k{J7FkKMNC#7xLrP}o z%DffAo|ohS^}9|hB)xqp+ROKb?iM-UplSGrRtmd{<#A5~CrfS2R>#d^l~(}7fdRYu zYJ$s57aF$9PZt##s)^2pw9V3I(gB)l_bMkd)e#z-pNTkca&IEF(h}Z)G?a~`Z7g%Mj9>pgi{dzvx40*4EF5uN zpUGo!5#yd<fFpDq%^OS;-VtU)z4su=4f%bL$F^IPg61k)I z%Rg*n$4D0p@ujmrZ#SKe3#)BMFFV|8#UQt!tHGC_2^l?-x2fU=vfN7(*Ci6b+&C;? zPz^&&$+@15R<=CxC*zg-ARvrUq6QWDB@33J0j7###F9f{od9vA`07YGM@Jt2NFNq% zk)fX80cG4cA)nHc0_Y*BcfxFlKEM_I%3z`dWP`742x9i;%YKZ2!wDz^4ya8lQZRI2 zpH82u3B?eOcSPtuDIE24k|AHTsnd?-MTDrq02b~HT$zlf1H04?OPNnk4oTHj<}dJU z^|^xUuSCC}>#D8LW<_JuNII45tI%FyN}?*pE;r*s=ta36r41A8A#eX?8Wh5tm$ znpvC_OFjxsNT)=J=W-48AkftVUZ94U>r?Nj7 zxho!qFg2is$+}0cod@)4v5}wo$59OPQAn`HTO4Ij***NRm^JoK&=eB#Gk$nh{Gmwc zJm4uBOxao;PH(sV>3E97wf5*NNmhJ!tyc#h+rKyu!!NG24}U56T%Pz@K1~aN+Lw=z zN-+;Ye+H@Y5l92%q(F1leg0s{lwn9FLzU6t?;xRqs7U9-*gp+Mi0eUg@GRVoHWEN|G3JMMHU*cHE?1)Uxxi~sRip5%s;j!ju9F5kL zH9z&fY|@$fVC*a43uI|*C7qNWl6988rU2|bvBQr~H+NKt131n!ibK5 z2lz_|o+$yxLYfqQlpvGhz{C&XDPgb;b0kQe%7 zIIIZ_D53-j%)LVWc-YT7FSWHG4eu~rL;G~9Ws*7ujHs|jMoSssYwo*$==z;BP}&kgQY4eS<#@*+rVU)-EJ zVwS>Sfq4WvId9<_o~!Y!m=KiM#f=Vq(x6h9*s<>{iZlTAiWUpB9_2FH0Vawgc*YaQ zWl>7%fHq}6gb{XoM@}N099He&+^LdHW-9?g>3NyK-?xQR7@s-;Y%$jgbKIS`Z=PE~ z9;AcHqF4ChNqS>mjH>kEshyWfdcmjWEkJvi2OyubZ~|i>r45*;uO2+=*n9W`pEk>G zK@L3kZb9O!TbPuGa=`49D|zPuTG?r=1I+#dfH@71v2E77@EGPEKklJ+3JgA*EfU~W zs>p`SHwX6|_!K!|h<5Q;>Mh8OMmWhn8Q~H5bgm1twOxsQ_%?}Pd5wKnEg2>96@@@F z!)0!TNKY`aB;-6C!+KyklxqNsFXKAoB1cJLrE@xsMpG0YqC^KL+zwUIvHPH&a;Bl~ z=5;_XBRpy;sNRQufLKS8)A55kaiZN&upRo&|qrI2%}!6Git~Z0e)rf)2lv=MheYMF-2KvSaONE8OZle!kB- z&!6|`m-7OE`JKmi9N8mPER+g;@j0In%Rb%TgI_%KOZ>(UX%W{UvU@n~^SbWD;kR#3 z4t~x%S{`!VjF>(=tMxt~4G+$=am;InDL@5}|Z4U(~b1gy(_`$w8fpvZ=Wq<|@RLJVcL@_?t8pG75b467_c zl!Ed&@5oF5BTZc`@c8PD>*%pApye z_}AlbLS>gj!K9YtXedfYqXj6wqqB?3DL`3tCDZ`EfUl5Hm(ec`GM<^4#=5yKw2xn)|1?07;2v2!#fSB-D%#V}V>~)ED6(F#Jd~K4D;; zlPF!(SoQ^Eb~Zb&L^kkD^gUF`vXuOMG6G>`S@i!g_vZU;8%x6I|ML_SK7R@kgS3=w zPN2ZNj_sT{iI-S*oJ7$uAPGr`Nq_-B$qdDJy3cT*?AF#B7D~?XnVJ0Zv%v1^y}P=$ zu6mc?WR%r7`Nz7_xRr1cVDE)^k zre0Phcb26iXU#?Jl;KUqH8ikJnx(y0lBv+n)0UNe;4J6YyoT0cBO%6^%PV>ZQe>B? zJg5(49Vp6BQa_Yx;1}$eX_1#DNvLRxqOTpu02De9cEg6og-h|roG)0pb@Ob#whD4Z zyUHvsXQfy%fdCm9- zZ~_I)EJ_kW???29(K9Kitzn54o;EHpm_YYtu=A!B60UGh0`r~>&xhQ{=vV z1+>cAz&I7KK|&Mw4FBNi<_${F{DbK0Rp#WVpOkl*mMO{dYyG8k6wa?5R5qQjN|;I* z%DB3~In3v?kRHQL(fZB00pm)|_eBCUW`WW-Dho@8^PcxiU4HAukF`o=qRF{P3|zirf*?Z_N^HbZUD$`dhcoWHcpCgxjoj;;hZ}&L-HfSw^W9-6`fiDb#d5g z06`uf9exph`4Oy*T|(}g2R1k(kOov~NhKWkc=iX3v&54qw@yh1uR|xX%Ghp~6a^>< zw0^pv+kmkgN;!aU;2$^@508&~ctRCk{OI$8gXO!Ae36JTBQ6K>fx~=b8cY2|4daoG z?wFLH!M(#^zWhOeoz}&gCN}?;G|@Hk)v?^TlnnZ zr=oWx7paIUMTrVQAbGLh!-N_fi~R`(KTU26d6S==0lGOm1Adh7BrF1uX{bS9miD>% z;n_J*)M#pKeG2JsX`+k<#a7XHMh~OXpe~P9CqbPHn9_TjBuf?{m|I6fk-}Gg8Ps&#e%TsOyDsbM zt&_(J25AZsO4*58P!-^L7*kv0+NIjnrP@79_y_-{*#upb_u|!zkO;8EJeM!{gHN48 zt2ilWRCmsiLHMR1l3_es(ap$(>B1;0)H^ak0W$)~pO`GHPXy>dJ0d(02Y}Qv-k;;- z>b91RC3^~UVN1cO%}B1wS0oMug(16fo?zyikevh8h2?CZo#;&f zyYL!|Pky5Q8~o;+F9+o2qve1vl;+quU%2MexFCOehFlnv-#!|0iQh{iD5hvlA$PqZ zl?enAU@yhQH34wzQagQVS?fj-m>rCk5JVm5?jDPHmt+id+=Bc?|vK69;^gKgV zG#i)n^lw;D^;sH)^n*EhjaM8BCo9=QEt3(a$Q5dNf@?|FT+4zq=p8T;6-)&);?y%v zX~?@cxpYSIHG_7HgL3gzi!j5=fUX3vtRgHPU2b3S^-1ueQB18fohMy`CZq5mx}z zYCdO<4FL7GXQ^|wmXBDRyj*)F4g069nweUqm2{HO}EWfk3k4#|XfL5~d?> zyu-4JSz9>zP?i3^(Zs5>Y^?evDl8P!i#8o6z_-YdOu$eCI$nv+Xn8%;jS(Y!&sc#!@NP`dj+jW4Fm1 z!v(0pOTyro?9Npq&i4`9xrx*lJS z0URQdPa#``XO^s-05wQH9yUD2_W)g_XDF^p09ZGV^bVk*9FNo#D8jQOMqv%2%M8vm z%EOjLehw++7u534;|Y$CDVS zM8#1bQyNgdg~eB^D;8zBNUf=B=LyPo&80)DR5paS4)dSFvFr8Ej6()r33S~@a1hVp4Cbn@7XA>)L`w1&g6HX zJG+7g(sMHFsL#%%$-*(woSBR*8!2krJr*^Jg)U0Iv*Zf#psPbb5+^R+D*6UK6>+0d z9a|;nTT_P6u>D}#MUuzU^>m($m3aFh{_5d#i`Dssv9Lu#VrCWZv3uvzRKu}OHq3Vt z1*bfbzr-9xqB@l@_i1Q8F40S9o7HW2t#Z^B5axh5QbMcRGNHRIs+XR>x(Pz9p3&m$rJEl!hK7%!v2j#R|}lJ@{sYxWM%M6PFWq z2)Wglim5_f8H2UeNm5@PT9KRs{2VW){H(owr@6LPM{keVeS=)*UYTqMEL%2J`#9K=d?(Mdvp&4f;jm6`2GkULTQX`Zj_V(}b{t zv>%9+!!$+CLE=j$;4qa=KP0_g@^54w$Eh?z_PzT z&$4l6Uz|uS;9t*H@3H2~ez9Y|?RIKly?wYj;$_`JTFY}-zHOCvROL*0=rEzi}{bV)@>my|o^yw4@#>Vr53`z5@oxG{~a_YOt^AdT#WMIicfF7eOQ}NH9 z&6Zl+lAT`Pp~48YPJgR>O&Nn(^*m;KLxpT~`PK5gh>-+&%^x~t9AC!ioW<-9EMx9A z;gA$T@qsSIFB^G3$}7h@g3zQ5?8nu7#&(G4hvS0DA^M#njr9}|7wLa_qcQa-I$xst z%tJ8u-4_lA$HqD)qUj7j%&nYs29X$R<@r zND8}g!G9A%E@Qxm-6DAdzg7qWVRYA)Jk*xPv zRer&S6QXon)|#PjjNW(0`0P?EyND=KZ(H**U=4~oZ75mJa!C{W| z%OS<2m3H0ftbHW6L13uP$r8pHC}gT3GNl``o8uSHZ4K7n%kVpBGl9K+j@&|mloQ&! zDL(}m0ahuBSP8Z6B`LjQ_{f>RkMO{LWcA}C>X>oH0MpC#$=7*x(fi2t((n;cAs=bi z3?DhB%SB=)U(J`P;G^EucFO>bT3b){tg}(AIg|hlIK9{bKEmw>hH5TXWVLH?`dEG4 zvVE2(d=vznYhymRrIM16p<>=z${^D~mQch#zqEd#iU988I9rbuy-3{Lt31aIf*YvB zj+x9J8qSnP`FD{_-}ct|s;E(zM0({pS`kzQh13M%Fc-ZN6{;npXyR=~)Z%OY=!u`9 zo%Aiu+O6nY-Dk8hu55)SRluSe&wg-*agceU<$kkYhp9YRc-2w6s1TPfS!tKIY0+(P ztlhpC#(k!5$Vb)J;5q>7*VuaWz!X= zTgLZ;rgc8N`aE+CQ8|soX9$2PFCZ$x2C|1DV8({r2BcLK2>7{sDCHORi8^q1qdtJ$f)5Llw~QEY#}m_RNC~`eSqQuhp4{@7)!)kP zICfnJZ5#XrjWw;Lj6iyp~R zIb~y*X@LUt@6{N+Fw)A;$QVlmBKQNc|G>H8N3WA{Af)cq*f9z#!*^p5a)%G$OL3=9 z;hRwA+cD2&csxd3)0mGr5UY>Jaz5pa?47YIJbN&1K*e1g_Nh)n;F|8?V0zWpAJBM*<(OIU`JN8{7*`FKkXFkg&KM5-Ss zhL(=rP7cl!a^lnX243KeJwM2zWHg+|+4%|>v(X5CD0<@uNu+>~+NrPYUmiKE`7z7} zKw;P*w2A0@_3|G1y^M{2-tUf|KN|v>RHEZU3d?M2N3Vf-(HBsp7lDvR(lRe}FH7TX zUqu$gxX8GFUyfB(nes;eXlx=vJ)_FTE>Ahc_dIfc8b|DfzUq5J&xe_st)}QY zl>OHy7)lwY`{c!VG=d4Y+$L(j_ZTJpc9mcSe&BiNEpUII{$}LfG1e=DerEk3Hl6>* ziip;XhB+FhGjdQqyS{GAb%<1U!D%Hx8TJbc!E%ugV zQh?#wt5H824f*#d87`~8l!|77z~Y?Xhn zmhdB$AEZ6;gF=3a(AqIYE^>t=GWAmAs z&%%7>=Cf3vqYZAF5j&Ttw&7+Q(6nt>2%o8xc(hq9!&v=HM=Z%tRYEb^;K-h2VWE<8 zPI|to!d#`5qm7IyEHQ1%^Dco_-i+NyGw70(gYno-8l&W>c4NSNh-aD6=;YMrB9eml zMGgE(>6;Q9UPes^xxaOChG{mPuYeSw;Is9rx7PPYViPude3G1Q$(WyNp-ZTW_SAAV zu?4!L-`{8Vt+3O{Ep!w2Ao>8#=%Lk+6l|mq$)t)xp4gRkSDUTdt98?dWxhz-YOS{X zz0n@_TjvBQh!?MZwQH>TZgooFiC|oUwc7=a5Bj~men-I}?pJdFx}a9en_=**+zdqr z=w>iJHMfI0{@vFko6k99C_{UZtq3Wvx+!xWHx}S~? z!t`#1Q8J?pex+gNQ*L%QN)b0!_cH*=0QCO-g8=`H4s^`NBI4L^seg3$Zv0hxEp8VIzZ>OgpU-wVE zk4}9^=#Tb(JM>Tf>$l%duYdb(=zlzdpTC{n3%-X^|MlC|$9L`-GWut}P0&5|)QbKs z;Tki2R8#;7%f)<#w?9SDlphlgv&_G6^X^4(#P-h5v0k7bzaI}P;Ai32_4VE_)(?h- zb4Ra;_-^P|KF9I>4!8mBo!*M~YQ~VP^%z>h$tG6)E!kD8Km6|`{#aIzZ5o>xez@49 zO2YS1l(pCo$Tu7I7@_tPMUX)1zz zThE7X_mlPTA^y0&esqEH-_`Hv(FHY9t)qJ<|24#Ia+mi^e=z!Ob{9T=8^T|Im@ZN!`pj075nm6V3H6J7u9PCKu^e(V?a=RXQ#Bv?pOQL9yuSeeC zzynH0*FIg>qftAw7w48jUSuTI0gKK@0`xVZ{QY5^A(#w6xy zrcs}3@^L(KC_SaPnoyTjH*I7cs|lFXz5cXUt6ImET~X+PmlrHgp-8h)+@A-tU`mlm zS3bvq()C@8){Fium>aUKyVt$U;D{>^<(wSV!%fAb zEVP6c=kBi6ho-W&qP@${I^gS}4As6AGNgGvVfEpH77Aj+_Xr)(_*7=8h|Cf0V;FSb z=eV_amUF#ri|cEsWiLucMF{j{swd(gRKyQp&O1xk>ihf0%YGi<2U7~y*Ox>vY^mGl zYer~eJpXIw{9oGVA5o!?5lacv1ub_$Z7oo&w6%^((!>%L!sU6|(rKilZDxOBb)zkU z3*a%;^v{d1MgGCq9J-$1rqAHd;c4(QM$g>e2W*h}c*b!VFepn{zo6o1(Y34g_hY>M zMzTLb*w=Uwjn~&}m{mU{{1wtP@}S_3$G=zWT1cV>`b5N`5rmd=X0%6MFA+~Fv`ny8 zY;p_HR6yjyM$99PU61e;2?og2kzPs&PIqtRe19A z;`B%%nWHMA7M?8o6O3ERTfkj5o_*K{arBxRWllz;iO|qr?`mWoMKIsQCwK3{T+3#P8p0xt!`k4@7zw)~5thx8cd!}bfS&Hc0Ie`aZKH4^#3sPn7szh# zrJvvpkN*s*G98O`3q*K-_i<}S-$01UNboF~A9<9jGgj*3Mo2x^w=5ij6p(sQD9o<5 zPA|S6m7{4m{kZR802jbh8NiGNhvA`)D~*vWVP*yu|J_OlF;tD-Zg1Cy#Hb2g1ES(`xCO{bhWdNi%vkKs&+dbCp!d1p{qLefhDzH;RL8jgu z1G;g7IPJM%oQPesW18J5`_IM_sA*WUB?QucBSvIl7HCtn1S7ps1qntOg9F}CoonOh z)TWhJ1x!jcEaS7}1!;jSg%I$7p`Dd71_BmuHJv79+0|^_cCKR>sW!4hv1<6d1lE%( zfECxWh2bo&ViCDNUPqI7h`w1k3>f_2Td%+2C%lkQN~Bix?wexcwxnZh^sHk2eRp;` zb26uK#x86iQG^GQDqb_(^ow*pE0S#7(Ul?YJ`zy+L$(=@=M?`+sTU5|$=<*niKyc1SLz3-dz)L^iGpmA` zzglnjbX>*rw_lS>K+H!@m2dmi5a#?msmh?T zWABbez;yd2D!87@RLy1V&gI0JoH*E!JOXt_^bx2<{wKyTBzFzfu#twFr!Jo_e3Ov% zIFO)hN0#poS(sh`8U!*?M?vRci)e*akZM)^0M-d(>Lqb8Uq61A(vHzTFq61|t%{*n z4ddA*V$zZR0wAJ;)hufL%E+3KmW`U?(#L8?O`5w&Db^d5H44!hXrh9fQ%&zkgk2;! zQ{96Z(1cj3aqor=h`73v0<7HQzKq5Aq|s8mg{{S7qf6=W8mJRut4GZ>^lR&vyUS&r zcev6UrBNx?GI}{N{%GXtzSQ_hB1RK{vOu65g0E+Nyd@Bs1RM35@rwf_hH{I|{ljHA z*F$2$YU_tzDL z}5oNa>5f^$spS`49xZRpb+O9?S#p%9NyM!^si3LVT^~v8gMO68V zwbF`Ld`I3#I}`jM?3K;FiZImgEcihKCJL}pfRgf6L?y1Tsf3eH73o|JZRg+T{NNck z6dl-_df4SjWZmpk5U%o=ZgRdW2{YAh%fw7#%7twD73Xv$>4@L(WgNzf~f zcb#sJM8OZ-NQ^yg)I_OPJ@nhZdzgIsF-|MAgu|p%yf^S~L}`B5&qV5t>V9rca}qJ4 zAeEab9ricw-c}1t*zbf?o~^sNcH@~sK8zL+h1xkt4@CNx)<{bPJG^tUp^(8^j)5sm z4j)49|cjy%R%vSAp~r8G**}65mO9z^u+2yenvW+g7CO z0MZz&u33j~uQD^}9z?-OKdpNS1|6Hx5=!E?>n?)?Ik41$b>K{){6ZtXZ{WgEvBu$A zrJvPSMXh!55aTAhD!7T>D$GjbL24~VuDsTSoHwT(|29b91yP$5&zDl@TiL#~d5+Wu zb_n76*45;V+g+j6VvW+w*`&tf`-yvEMNC^MN^fg43;=W7j4sR5C4pmksh=AAi<>t~ zf_JRm8eg{`=`uMdl_zb2r}0v)tKkw{I5|c~Y&D35zGagPL_{(ZG)KN5({$#mHPv|dx__F3f2ULj|FxTlq}iKw@asDGaecIBiyV_7 z*@QlYs=r+L#x2fK5D>i|5xnmudRKRCuNa$reZ25Lt+!sY2=;r2Q{U_ z&p|UP*dF(pUQ1(7=>uB(5nKC_TN9l1&ovuHJLa&Xkz;&18meSQcC;sc>7ZH}^ks6M zLf-mmoWZ#%qC~hpjM`BpkLiUW?@z=H*-?3wsxb8U2bpZGv(@vp6pqA)};EbYGRcVdfe+ zX52LoiaP~#=>E~a3X^*D(H;-nkHDi2e0B3W5zsU<8g>`fyCF;<40>x@W z9)_PqW^W#$BE5%@22V6#_3|5Ng=-qHawrX?!ZZy?SptI8WY9m?qF~dckrM3hnBE~x z24>L3f5gIgQUUV3m#7Dk3AFlXgkO=!CNwc=v8gz@gut@As{UWZ?B3uut;LMKVtKL^OH^a zQCn}fW^F&Y{=aXh_~cEkBKQ5mcOh>dHI7nerZD zXh`@&vn@UQxHdR<3!VV0a;mmR4e~Mik|XBKU#AIr8)#H!KpMMxG-~T%ZLilS9uP6w z*;8}Swd52Sf>!2(Q0OrpkhVsgGH=rA!ZJ#)$$6lTc3!!0R5I?ZZLmEWng;}k(UAAc z%!#%6VSAWxe~P}rUCqWe99rX$VKHiXen#k~zSG>}Qa=Q>%X`O8wf4C}W%X)GtDdqx zseo$hlbSSFzS*CQm%oyuf_Db9*0NHlFj9S^x%TxfQPGJRRbgYaT~pmM9WC?yU_O7O z++=7Rj#Q5lwo2E6SbwGTS}7CRkyiM)OU$-Eg@a4T277-$hpP$gadz!DMAos}LaFz2 zK2)APruYCsttza@W1#m)x}hXnsD^Q&f%;SXK;)S20qm%zt}ZO$yr@-75$$PvaQqd- zN~HcXF@9=o-mXzmKv#sEBH#f7G-UHFjq*3BN}iw{8>(E?oq|FOl-96x3VBC$5S8Rx zS)>W;_}zLVzWmaXIC6@o=x}1F`2s5P&6-*Et%lc}_^vVlFPP{za()$TRp$tF#eq-Z#@gQtK~Lxv9qSu8L2KiWy&nz{vlnYjNC5ALY&0Q zREv=r^L|5tKG#t-8gk4}lvO~HUzETYiWttJ#!~c+ToFnpSP6Y_72mIg&@ztb1RZ@- zWF`VgFja z5PGm5_7070cpIHiPbEfd!zKAo0!Z%E*LGmCL*+2Akws8M z42yOGsYAm#+&EeoHQ6He7-v=vePGzP2;UFteIj=Q_vViMl+HX6mN=EdcW2Yr22{RLz7A~l?7hR}(`^amJm2%TY5ByoSeF;nniCPk z{R7esVqR;3?K#_pB_fT`G-H~SEn3JLv;kzBH$_d83yrN`uiPOm|84`ilA9W_DbRnp zF;$srw7aauK%Si9Lxpob=CxI7I&0vyx*P0lN=B2J zvP;vlX~mLeEO*d~5{JpC*~XxZKntIOb_s&sTTVsdX%BWm*m|6aLEi?2bEh!9!Q)K* zy3JQ%1YD^$107cJIdK2A1bu5Hh)PjJZULavIj00UwNoWXGzRnPmPm@ERs@~dsWK!$ zL0>c$#4KLB{lWxYf&?Pg%XF3rU0-MNH%g8aEgHpN{hODY|LF4W4Un#7%`1{t8yi2C5icO-s(IV_2 zjI3?(+vTgAWo^6KFpZ!gN4KY_+9JKv#_#V}%IPwAqo|(x@`)WdX-o#QWswDmh@mVu}t97zGr!Cd!$yODip{G?1 z8?SDY;hZEeMIgq(G}3?)QQt@(qtStXx7Z@Frw}!_G>!iDrp?i=i*DShdO+CRcJt_G zxI~mG;MB&^dAoX5#Bf(w)PXnE{U(j@WOUlQta-5H2P;;YgNOJx@?rIoVDu59F~W|+f7+~ z^OU8x7ntEgg4lY7t5pHoLe}1NjwB6v6?*9w58Y9v0lNtBKRlzN8dBctdwnnX{bo+2 zXyrtna`=eAsMNhcJLHA*ikX$TaPAp7li$FRxM-?bYBt$%tM+_1?L5>Jlr0-dMK(l4 zo@E0MwOFX)Y5eZNc|wTCro;f>DAyKybUA#D2B7+_OS1L9%G!KAxMv-m)6yh5qpoW; z=tT>SZ6*on%{#VupF@t%!1wU!w`^Xz{HpsgW38L_YdUOci`XjI((92WX1vYfzNgdqv}J^XKBlrm&-)O%q=8@h9obumcw(iVYuV+}5+ z(^-?I7P~5JQ8{JIWm(m^d{46~*svobeG=(>OaerC-vktn7XR+PC~7Kb`)F56IQOE+ z7imeZ_xh{^z>ppNN?8i9ULjLL+x9)3_p^YQ1)KjONijW9$N#oR&Gs^`9Mz=kf$vBW zBmH?~btX0}m@e^*T$j$FjLHYl~?h+ zna3;|0_cm(3)=6ow04i(^-3rQC4V%%!Jl$RVdeN!B7ftRHX3cVfp>~tNVmI4O^X6L zIlZm)+m>7RDo3%Ab}BYn&y5(5q{=jseLoWxEdI?{ForFhTn<~b&Z$2tEO8A@6lyjF zPiBEDqDkBFq^`eJKTRHiT3fO3X|pA`LA6gdbgF7zx**YS85=#8XguYuY0up>r)8&O zc`^g~d)U$>A!^s&P2=I)@eaFr2CFlFlWoX`&7Q^0Ue}q0UGi&fjpv%lXj`QR=jRw> zS1Cif_z--`q7ByCWNN1xF?V$XofYs~rQ*!27ND6oO;c_5Vso@ zMv1^86u9$NMGz8;Y-w1h=CuZ+Wpq1}q5U=%s=&Q@s1v?`LKqnfRT7OT3n zW4TBJp3EL4m+3S?9eA{N7}zVB7><~M+Jw$}_0Wc=Ht#SqjuektH0_ypymk>@DocD$ z8v;hj1-pgkH`i{xY7{=VSq5d@9rL3Q06Qipx(w};D%%4{d?{K;k5}{FjEcjlV*`YH zbNJ(Jn?_4?#C}C=v$cE8D)OLn#SYZAE1Yd-ZKZY1bCSK|q;op}*lqi4JXv>vNFcx3 zM!!gBvn1P5Og*4+N>xRim2(a-31_gYEQb=UcN_LL{A3r?$hq0BmxBBR zYG|G?8cf=K#OgLPw>V*HiW*9GWtHx7{;h4b$gtV0^!e<0@B6vP9eKCurVzOgd5hdH=v~ z^;_=!E&#vl2#s-%k5liQ445!LW1RI4IC7El=5B?HS&%?>fB%4-NAj=kwjlF1P0^f4 z*CIWNKqW&hx~=PL7Sjx0JU@Q&>d8-!$4{Pp^W@o+SHCcLo;?PHhiCzcm>-o84RgZjvUOc7^*aD z1Kho9{kR|5yHvdil#QY+(w*Jn>@UBz-Av0ZTNApt$S;#uIYvRw?7ph>h!d>)~Iu(()ZZ+1kqSab=tPtlhB5-TbM-_(%TZY*Pij}m;gQO z??q7;J{%dWa5t;RO{&k~sBscD>@8P(7p=p1>xcGMYssgr*v0`mE$wwqTYdHXP&~8L zmIq@K?W&`;UjCL*#g0C4bqb@H{TjA4-vX`AlH#NF@od|hI@6NY8Ei5b1RY2H`nqyG z+;DZy^Icuaebg)WS&@|DjD~&XqF3t=K`YooJ^g~ehJ;S72nvJbDEsPQ)Ni6bO(N~O zm@Dm8x}V)YP?J}~zQb~k4DA606Kt(g!)SXoOv0HXvM z7F5szc5+OCa)#*p89hOscA)Hk0g0YydgIjJ{u=0w|o|lZxuse$S>@yrW$AI|(5-O^*SLMef zW_T5!pPFuve{PmPq-X2C-YYHWP5aTBUv~J+P`G7!+26>>Lp0v;ZzVO|DgE5KB<`BrZ+j#pR|^ldJmU4v4YDXw-L7<*idP_FrVw`66T9N}Ck47FpIjy{)i1argx)in%!iVXR zWuW4AsN{sN*DvA%YK1G0+(kS~u2`SESz>w_Zm6O{MY^xH0s8Adj?a>C?_i5ql2>A} zdnGJw&+C^zm~Q0DB!h&$KDOt(>$zz>^4P%{imvJE)>-63UYYC5GtxBo-|yxF`$SG>N(YCIG{vyEIOb1uc$-sPG;Q(XnNb&XQ6*R-*R?K5PDHWc>;rUZNW9 z-6eEnFVfG$gQu5`aK$^?7%6G6JYrR~RQP@nzRr^;*+VWYy8DeT9A>z41@XWA8;F;$ zBs>S`l`S$>b1x`Kubo1XT^N+`;h&au5xeb_sPAI&BI>Op4$7>lzm~2@nzrqxdk1b{ zXe8Bk2|5?c`~XRC5yDykZOL$a3b}(6SjdLw!&%`4D;w?jR@ky-Tl1lMnq(_;oF3mA zi#$!IMZUbqGwYc?ELDc8EM485TlB51BEWHtx*q(^x)unaYkBf74RDpYwf%LA+WKa5 z{s1^OnLWwQa%V5n3l`cxBk8Sf;ME6jU>UDUyM;eKd<%2b*J*_H++Y=Q?B{N9+e-W9 zb7=h8SRpICW%ZYbZrw)Yp9H9#(T2l-Jb4rXUqJNjEIm)Fc<#yTGU89#BrL7;hD2FT@H-ZW%!6dh3B@N>^o#T_k)2)(G7<{w^Aia;(>eJOco(NFqy%+K*KbZ;Eci zpCXaDA04W@uC;#+W2X!b64l@Zn~Z{a&&teKm6Q7%eme)-?{`h2xHXGU3OaDg z-DK;4N1nuu09Zh$zsOgm7kWj4<{60RuCLXM)v1`~a=qV5bX0b`g=yweIzI{W=K&VyB^#S?R(;4%!s7Q;rjZ2S?LA>v-?4FAoh8wsT3WnWJhs7sT6f^?I zH%Y21V1C9Z^eV^lGzx`5>IGb%pNh8Asb+U{%$KtJ`Zo_V;2j~$+A-+qC&kV|_y4yn zni&mD`IZb=6lL|zEeO_D;Q$H*o+1M^)BF=Oh~Gs%FT+iek$sojB}pWSfDZWd(`7BB zoOz?d53hqto~`(Se$B#J@c$JeejnenWT6c}{&O)*@fG?S^^tg~5TH&xI3d9MPW?%g ze1-Q=nAPfqjQda@U<@C_!S}DoEQ&)x(0Tp#GWz@=_?rIx^D;UNUSCF^1#gI>)uT(0 z&IK~$-Trt^=xx-yb!x)ZbuBLigkodfNd@ z2pqM1t7u?>82fUr{vp<|u)e`R6;VaopWX#jZGxr#hWeYrXLy1H(XW^NAMxy)_E8sE z#VK4o{;46ne)&*@*BE-fe0YHoSy-0+KAZkWqMfYSupgiExqX%Y3X^)AR292<*g>?7 zj3fgW0w~w&)J#4FN&TN97Ma=`r!$vcRNTgU(u^jWoYP1=Df2n>8{H4KUkk2FCu`j@ zKm1^Cnf`;Qz?<&$QNR6;dc;%Gd9^=MQ${y@uwz8cTjyo6L>>67KRgV`yuP&@TGroi zzXBG!q4(mJp$h=^W_D^U_;+u4$I*wo)Y__|i^kh*kF-T)t*mSBQp?n&li<(M=n#c) z3h9!cjo2Vu`kh9aKJKPHN5jL=P|7>t1^|em2$@db1^9U=1pE%5&qMSJg2ep|H4)Xn zyCOM$jP2q6t?s75VQ>i7BTPoPd53A)-6A-EG)P?I@Az&mzqeWm^8M|kqB~KK@!%q{ z(;LgJQIFq+lc40I%YGZufzvP|dfK2W9X+Bl3MWQsx4~gYS(LW$zA1}Fq~;QQlxch9{508p~hIaK6;* z<`CGM>MxONbWxY^`C=!71o^v}hG4^Kp?8)R$zYZ*_z{>FNPr279x+xx#Q&hqdo<)h z?C)=+=V2vDTLIAB2N=`mure7I=&hA?N^1f?%i{-gtfwdqn`5P-W)+E6H)QXv_WTQR-N_{FQHAwORCU_&P zbaK~%38wq`186RfNiB%)D2;IbyWRCt9~9?&hHjBvHLJXI4?g|k;NWBQrcZv6zM$^~ zeWSIR`dH8xzIZnbU^3a+0g*U4t)d6pRXLu-N|hwyC>Gj;%99Ded>t2P`f8@4NYE-3 zJ?*cvc#%#Wu(EH5Rr2E5%yYMFia?fAiOM*GZ)*%HXlsUI3%b#9uv7n9TUd0-Fhiby$|1>Fa{E0;7v(Ja`*C?_9UgQwJ-x{2xJ-)!wdmO;)qTkb^5+GP$)M<&bdPs1`%0@t&YV)&?Mk_GkWM=0z*x9A@NYZjOj}Nj#frlz z_4vk8#{9!6c<07~h_;*}4{j{NxXvl`q@z$B?yq*ZmKw|UiNz^(;QnZ@k!&^`z*p^n zr6z+N=$|_dqh(3hw)4(9dV?&#%OQ7wY5pa2nXoQ!3~1t>_V2rar=kyW;J@iOW%;=S zcGWR`n)-I2lltmy+r*(5H7+E1*=|E`>b;ROUGrwJVUS#OoS z%>e&$s<4K=JDb+~YWur9MwbhBHtDv`<`Sie4=-VRNEa}l7*|lsWiqqgwUR&R-&`3kPw!{s7+a*N2nb< ztR}XD2buB-2A^0h`X^o$FTDWn#MNY;jQPh!KA*uKiI`4FKz7mBDf&dXaB5`bO}LtD zm4Ad~7k|J*e3E@LM`@^8E6xy|OQft>*_Y,*F%00-N)nW~G)u#C?VpzO*-y`cn# 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 XqQ@(EO~1dU>-YX2Uf8siP8bLPrild< literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/card-45855f1f.js b/config/www/community/frigate-hass-card/card-45855f1f.js new file mode 100644 index 00000000..5ca7880a --- /dev/null +++ b/config/www/community/frigate-hass-card/card-45855f1f.js @@ -0,0 +1,650 @@ +function e(e,t,n,a){var i,r=arguments.length,o=r<3?t:null===a?a=Object.getOwnPropertyDescriptor(t,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,a);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(r<3?i(o):r>3?i(t,n,o):i(t,n))||o);return r>3&&o&&Object.defineProperty(t,n,o),o}"function"==typeof SuppressedError&&SuppressedError; +/** + * @license + * Copyright 2019 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const t=globalThis,n=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,a=Symbol(),i=new WeakMap;let r=class{constructor(e,t,n){if(this._$cssResult$=!0,n!==a)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(n&&void 0===e){const n=void 0!==t&&1===t.length;n&&(e=i.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),n&&i.set(t,e))}return e}toString(){return this.cssText}};const o=e=>new r("string"==typeof e?e:e+"",void 0,a),s=(e,...t)=>{const n=1===e.length?e[0]:t.reduce(((t,n,a)=>t+(e=>{if(!0===e._$cssResult$)return e.cssText;if("number"==typeof e)return e;throw Error("Value passed to 'css' function must be a 'css' function result: "+e+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(n)+e[a+1]),e[0]);return new r(n,e,a)},c=(e,a)=>{if(n)e.adoptedStyleSheets=a.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet));else for(const n of a){const a=document.createElement("style"),i=t.litNonce;void 0!==i&&a.setAttribute("nonce",i),a.textContent=n.cssText,e.appendChild(a)}},l=n?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const n of e.cssRules)t+=n.cssText;return o(t)})(e):e +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */,{is:d,defineProperty:u,getOwnPropertyDescriptor:h,getOwnPropertyNames:p,getOwnPropertySymbols:m,getPrototypeOf:g}=Object,f=globalThis,_=f.trustedTypes,v=_?_.emptyScript:"",y=f.reactiveElementPolyfillSupport,b=(e,t)=>e,w={toAttribute(e,t){switch(t){case Boolean:e=e?v:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let n=e;switch(t){case Boolean:n=null!==e;break;case Number:n=null===e?null:Number(e);break;case Object:case Array:try{n=JSON.parse(e)}catch(e){n=null}}return n}},x=(e,t)=>!d(e,t),C={attribute:!0,type:String,converter:w,reflect:!1,hasChanged:x};Symbol.metadata??=Symbol("metadata"),f.litPropertyMetadata??=new WeakMap;class M extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=C){if(t.state&&(t.attribute=!1),this._$Ei(),this.elementProperties.set(e,t),!t.noAccessor){const n=Symbol(),a=this.getPropertyDescriptor(e,n,t);void 0!==a&&u(this.prototype,e,a)}}static getPropertyDescriptor(e,t,n){const{get:a,set:i}=h(this.prototype,e)??{get(){return this[t]},set(e){this[t]=e}};return{get(){return a?.call(this)},set(t){const r=a?.call(this);i.call(this,t),this.requestUpdate(e,r,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??C}static _$Ei(){if(this.hasOwnProperty(b("elementProperties")))return;const e=g(this);e.finalize(),void 0!==e.l&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(b("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(b("properties"))){const e=this.properties,t=[...p(e),...m(e)];for(const n of t)this.createProperty(n,e[n])}const e=this[Symbol.metadata];if(null!==e){const t=litPropertyMetadata.get(e);if(void 0!==t)for(const[e,n]of t)this.elementProperties.set(e,n)}this._$Eh=new Map;for(const[e,t]of this.elementProperties){const n=this._$Eu(e,t);void 0!==n&&this._$Eh.set(n,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const n=new Set(e.flat(1/0).reverse());for(const e of n)t.unshift(l(e))}else void 0!==e&&t.push(l(e));return t}static _$Eu(e,t){const n=t.attribute;return!1===n?void 0:"string"==typeof n?n:"string"==typeof e?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((e=>this.enableUpdating=e)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((e=>e(this)))}addController(e){(this._$EO??=new Set).add(e),void 0!==this.renderRoot&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){const e=new Map,t=this.constructor.elementProperties;for(const n of t.keys())this.hasOwnProperty(n)&&(e.set(n,this[n]),delete this[n]);e.size>0&&(this._$Ep=e)}createRenderRoot(){const e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return c(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((e=>e.hostConnected?.()))}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach((e=>e.hostDisconnected?.()))}attributeChangedCallback(e,t,n){this._$AK(e,n)}_$EC(e,t){const n=this.constructor.elementProperties.get(e),a=this.constructor._$Eu(e,n);if(void 0!==a&&!0===n.reflect){const i=(void 0!==n.converter?.toAttribute?n.converter:w).toAttribute(t,n.type);this._$Em=e,null==i?this.removeAttribute(a):this.setAttribute(a,i),this._$Em=null}}_$AK(e,t){const n=this.constructor,a=n._$Eh.get(e);if(void 0!==a&&this._$Em!==a){const e=n.getPropertyOptions(a),i="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==e.converter?.fromAttribute?e.converter:w;this._$Em=a,this[a]=i.fromAttribute(t,e.type),this._$Em=null}}requestUpdate(e,t,n){if(void 0!==e){if(n??=this.constructor.getPropertyOptions(e),!(n.hasChanged??x)(this[e],t))return;this.P(e,t,n)}!1===this.isUpdatePending&&(this._$ES=this._$ET())}P(e,t,n){this._$AL.has(e)||this._$AL.set(e,t),!0===n.reflect&&this._$Em!==e&&(this._$Ej??=new Set).add(e)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[e,t]of this._$Ep)this[e]=t;this._$Ep=void 0}const e=this.constructor.elementProperties;if(e.size>0)for(const[t,n]of e)!0!==n.wrapped||this._$AL.has(t)||void 0===this[t]||this.P(t,this[t],n)}let e=!1;const t=this._$AL;try{e=this.shouldUpdate(t),e?(this.willUpdate(t),this._$EO?.forEach((e=>e.hostUpdate?.())),this.update(t)):this._$EU()}catch(t){throw e=!1,this._$EU(),t}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach((e=>e.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Ej&&=this._$Ej.forEach((e=>this._$EC(e,this[e]))),this._$EU()}updated(e){}firstUpdated(e){}}M.elementStyles=[],M.shadowRootOptions={mode:"open"},M[b("elementProperties")]=new Map,M[b("finalized")]=new Map,y?.({ReactiveElement:M}),(f.reactiveElementVersions??=[]).push("2.0.4"); +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const k=globalThis,S=k.trustedTypes,E=S?S.createPolicy("lit-html",{createHTML:e=>e}):void 0,$="$lit$",A=`lit$${(Math.random()+"").slice(9)}$`,z="?"+A,I=`<${z}>`,T=document,j=()=>T.createComment(""),O=e=>null===e||"object"!=typeof e&&"function"!=typeof e,D=Array.isArray,R="[ \t\n\f\r]",P=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,L=/-->/g,N=/>/g,F=RegExp(`>|${R}(?:([^\\s"'>=/]+)(${R}*=${R}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),V=/'/g,H=/"/g,B=/^(?:script|style|textarea|title)$/i,q=(e=>(t,...n)=>({_$litType$:e,strings:t,values:n}))(1),U=Symbol.for("lit-noChange"),W=Symbol.for("lit-nothing"),Z=new WeakMap,Q=T.createTreeWalker(T,129);function G(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==E?E.createHTML(t):t}const Y=(e,t)=>{const n=e.length-1,a=[];let i,r=2===t?"":"",o=P;for(let t=0;t"===c[0]?(o=i??P,l=-1):void 0===c[1]?l=-2:(l=o.lastIndex-c[2].length,s=c[1],o=void 0===c[3]?F:'"'===c[3]?H:V):o===H||o===V?o=F:o===L||o===N?o=P:(o=F,i=void 0);const u=o===F&&e[t+1].startsWith("/>")?" ":"";r+=o===P?n+I:l>=0?(a.push(s),n.slice(0,l)+$+n.slice(l)+A+u):n+A+(-2===l?t:u)}return[G(e,r+(e[n]||"")+(2===t?"":"")),a]};class K{constructor({strings:e,_$litType$:t},n){let a;this.parts=[];let i=0,r=0;const o=e.length-1,s=this.parts,[c,l]=Y(e,t);if(this.el=K.createElement(c,n),Q.currentNode=this.el.content,2===t){const e=this.el.content.firstChild;e.replaceWith(...e.childNodes)}for(;null!==(a=Q.nextNode())&&s.length0){a.textContent=S?S.emptyScript:"";for(let n=0;nD(e)||"function"==typeof e?.[Symbol.iterator])(e)?this.k(e):this._(e)}S(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.S(e))}_(e){this._$AH!==W&&O(this._$AH)?this._$AA.nextSibling.data=e:this.T(T.createTextNode(e)),this._$AH=e}$(e){const{values:t,_$litType$:n}=e,a="number"==typeof n?this._$AC(e):(void 0===n.el&&(n.el=K.createElement(G(n.h,n.h[0]),this.options)),n);if(this._$AH?._$AD===a)this._$AH.p(t);else{const e=new J(a,this),n=e.u(this.options);e.p(t),this.T(n),this._$AH=e}}_$AC(e){let t=Z.get(e.strings);return void 0===t&&Z.set(e.strings,t=new K(e)),t}k(e){D(this._$AH)||(this._$AH=[],this._$AR());const t=this._$AH;let n,a=0;for(const i of e)a===t.length?t.push(n=new ee(this.S(j()),this.S(j()),this,this.options)):n=t[a],n._$AI(i),a++;a2||""!==n[0]||""!==n[1]?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=W}_$AI(e,t=this,n,a){const i=this.strings;let r=!1;if(void 0===i)e=X(this,e,t,0),r=!O(e)||e!==this._$AH&&e!==U,r&&(this._$AH=e);else{const a=e;let o,s;for(e=i[0],o=0;o{const a=n?.renderBefore??t;let i=a._$litPart$;if(void 0===i){const e=n?.renderBefore??null;a._$litPart$=i=new ee(t.insertBefore(j(),e),e,void 0,n??{})}return i._$AI(e),i})(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return U}};se._$litElement$=!0,se.finalized=!0,globalThis.litElementHydrateSupport?.({LitElement:se});const ce=globalThis.litElementPolyfillSupport;ce?.({LitElement:se}),(globalThis.litElementVersions??=[]).push("4.0.4"); +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const le=e=>(t,n)=>{void 0!==n?n.addInitializer((()=>{customElements.define(e,t)})):customElements.define(e,t)} +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */,de={attribute:!0,type:String,converter:w,reflect:!1,hasChanged:x},ue=(e=de,t,n)=>{const{kind:a,metadata:i}=n;let r=globalThis.litPropertyMetadata.get(i);if(void 0===r&&globalThis.litPropertyMetadata.set(i,r=new Map),r.set(n.name,e),"accessor"===a){const{name:a}=n;return{set(n){const i=t.get.call(this);t.set.call(this,n),this.requestUpdate(a,i,e)},init(t){return void 0!==t&&this.P(a,void 0,e),t}}}if("setter"===a){const{name:a}=n;return function(n){const i=this[a];t.call(this,n),this.requestUpdate(a,i,e)}}throw Error("Unsupported decorator location: "+a)};function he(e){return(t,n)=>"object"==typeof n?ue(e,t,n):((e,t,n)=>{const a=t.hasOwnProperty(n);return t.constructor.createProperty(n,a?{...e,wrapped:!0}:e),a?Object.getOwnPropertyDescriptor(t,n):void 0})(e,t,n) +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */}function pe(e){return he({...e,state:!0,attribute:!1})} +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const me={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},ge=e=>(...t)=>({_$litDirective$:e,values:t});let fe=class{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,n){this._$Ct=e,this._$AM=t,this._$Ci=n}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}}; +/** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const _e=ge(class extends fe{constructor(e){if(super(e),e.type!==me.ATTRIBUTE||"class"!==e.name||e.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(e){return" "+Object.keys(e).filter((t=>e[t])).join(" ")+" "}update(e,[t]){if(void 0===this.st){this.st=new Set,void 0!==e.strings&&(this.nt=new Set(e.strings.join(" ").split(/\s/).filter((e=>""!==e))));for(const e in t)t[e]&&!this.nt?.has(e)&&this.st.add(e);return this.render(t)}const n=e.element.classList;for(const e of this.st)e in t||(n.remove(e),this.st.delete(e));for(const e in t){const a=!!t[e];a===this.st.has(e)||this.nt?.has(e)||(a?(n.add(e),this.st.add(e)):(n.remove(e),this.st.delete(e)))}return U}}),ve=e=>e??W +/** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */,ye=e=>null===e||"object"!=typeof e&&"function"!=typeof e,be=e=>void 0===e.strings,we={},xe=(e,t=we)=>e._$AH=t +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */,Ce=(e,t)=>{const n=e._$AN;if(void 0===n)return!1;for(const e of n)e._$AO?.(t,!1),Ce(e,t);return!0},Me=e=>{let t,n;do{if(void 0===(t=e._$AM))break;n=t._$AN,n.delete(e),e=t}while(0===n?.size)},ke=e=>{for(let t;t=e._$AM;e=t){let n=t._$AN;if(void 0===n)t._$AN=n=new Set;else if(n.has(e))break;n.add(e),$e(t)}}; +/** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */function Se(e){void 0!==this._$AN?(Me(this),this._$AM=e,ke(this)):this._$AM=e}function Ee(e,t=!1,n=0){const a=this._$AH,i=this._$AN;if(void 0!==i&&0!==i.size)if(t)if(Array.isArray(a))for(let e=n;e{e.type==me.CHILD&&(e._$AP??=Ee,e._$AQ??=Se)};class Ae extends fe{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,t,n){super._$AT(e,t,n),ke(this),this.isConnected=e._$AU}_$AO(e,t=!0){e!==this.isConnected&&(this.isConnected=e,e?this.reconnected?.():this.disconnected?.()),t&&(Ce(this,e),Me(this))}setValue(e){if(be(this._$Ct))this._$Ct._$AI(e,this);else{const t=[...this._$Ct._$AH];t[this._$Ci]=e,this._$Ct._$AI(t,this,0)}}disconnected(){}reconnected(){}} +/** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const ze=()=>new Ie;let Ie=class{};const Te=new WeakMap,je=ge(class extends Ae{render(e){return W}update(e,[t]){const n=t!==this.Y;return n&&void 0!==this.Y&&this.rt(void 0),(n||this.lt!==this.ct)&&(this.Y=t,this.ht=e.options?.host,this.rt(this.ct=e.element)),W}rt(e){if("function"==typeof this.Y){const t=this.ht??globalThis;let n=Te.get(t);void 0===n&&(n=new WeakMap,Te.set(t,n)),void 0!==n.get(this.Y)&&this.Y.call(this.ht,void 0),n.set(this.Y,e),void 0!==e&&this.Y.call(this.ht,e)}else this.Y.value=e}get lt(){return"function"==typeof this.Y?Te.get(this.ht??globalThis)?.get(this.Y):this.Y?.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}}),Oe="important",De=" !"+Oe,Re=ge(class extends fe{constructor(e){if(super(e),e.type!==me.ATTRIBUTE||"style"!==e.name||e.strings?.length>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(e){return Object.keys(e).reduce(((t,n)=>{const a=e[n];return null==a?t:t+`${n=n.includes("-")?n:n.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${a};`}),"")}update(e,[t]){const{style:n}=e.element;if(void 0===this.ft)return this.ft=new Set(Object.keys(t)),this.render(t);for(const e of this.ft)null==t[e]&&(this.ft.delete(e),e.includes("-")?n.removeProperty(e):n[e]=null);for(const e in t){const a=t[e];if(null!=a){this.ft.add(e);const t="string"==typeof a&&a.endsWith(De);e.includes("-")||t?n.setProperty(e,t?a.slice(0,-11):a,t?Oe:""):n[e]=a}}return U}}); +/** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */function Pe(e,t,n,a=20,i=0){let r=[];if(i>=a)return r;const o=e=>{const r=e.assignedNodes().filter((e=>1===e.nodeType));return r.length>0?Pe(r[0].parentElement,t,n,a,i+1):[]},s=Array.from(e.children||[]);for(const e of s)t(e)||(n(e)&&r.push(e),null!=e.shadowRoot?r.push(...Pe(e.shadowRoot,t,n,a,i+1)):"SLOT"===e.tagName?r.push(...o(e)):r.push(...Pe(e,t,n,a,i+1)));return r}function Le(e){return e.hasAttribute("hidden")||e.hasAttribute("aria-hidden")&&"false"!==e.getAttribute("aria-hidden")||"none"===e.style.display||"0"===e.style.opacity||"hidden"===e.style.visibility||"collapse"===e.style.visibility}function Ne(e){return"-1"!==e.getAttribute("tabindex")&&!Le(e)&&!function(e){return e.hasAttribute("disabled")||e.hasAttribute("aria-disabled")&&"false"!==e.getAttribute("aria-disabled")}(e)&&(e.hasAttribute("tabindex")||(e instanceof HTMLAnchorElement||e instanceof HTMLAreaElement)&&e.hasAttribute("href")||e instanceof HTMLButtonElement||e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement||e instanceof HTMLIFrameElement)}const Fe=new Map;const Ve=document.createElement("template");Ve.innerHTML='\n\t

\n\t
\n\t\n\t
\n';class He extends HTMLElement{constructor(){super(),this.debounceId=Math.random().toString(),this._focused=!1;const e=this.attachShadow({mode:"open"});e.appendChild(Ve.content.cloneNode(!0)),this.$backup=e.querySelector("#backup"),this.$start=e.querySelector("#start"),this.$end=e.querySelector("#end"),this.focusLastElement=this.focusLastElement.bind(this),this.focusFirstElement=this.focusFirstElement.bind(this),this.onFocusIn=this.onFocusIn.bind(this),this.onFocusOut=this.onFocusOut.bind(this)}static get observedAttributes(){return["inactive"]}get inactive(){return this.hasAttribute("inactive")}set inactive(e){e?this.setAttribute("inactive",""):this.removeAttribute("inactive")}get focused(){return this._focused}connectedCallback(){this.$start.addEventListener("focus",this.focusLastElement),this.$end.addEventListener("focus",this.focusFirstElement),this.addEventListener("focusin",this.onFocusIn),this.addEventListener("focusout",this.onFocusOut),this.render()}disconnectedCallback(){this.$start.removeEventListener("focus",this.focusLastElement),this.$end.removeEventListener("focus",this.focusFirstElement),this.removeEventListener("focusin",this.onFocusIn),this.removeEventListener("focusout",this.onFocusOut)}attributeChangedCallback(){this.render()}focusFirstElement(){this.trapFocus()}focusLastElement(){this.trapFocus(!0)}getFocusableElements(){return Pe(this,Le,Ne)}trapFocus(e){if(this.inactive)return;let t=this.getFocusableElements();t.length>0?(e?t[t.length-1].focus():t[0].focus(),this.$backup.setAttribute("tabindex","-1")):(this.$backup.setAttribute("tabindex","0"),this.$backup.focus())}onFocusIn(){this.updateFocused(!0)}onFocusOut(){this.updateFocused(!1)}updateFocused(e){!function(e,t,n){const a=Fe.get(n);null!=a&&window.clearTimeout(a),Fe.set(n,window.setTimeout((()=>{e(),Fe.delete(n)}),t))}((()=>{this.focused!==e&&(this._focused=e,this.render())}),0,this.debounceId)}render(){this.$start.setAttribute("tabindex",!this.focused||this.inactive?"-1":"0"),this.$end.setAttribute("tabindex",!this.focused||this.inactive?"-1":"0"),this.focused?this.setAttribute("focused",""):this.removeAttribute("focused")}}function Be(e){return Number(e.getAttribute("data-dialog-count"))||0}function qe(e,t){e.setAttribute("data-dialog-count",t.toString())}function Ue(e=document.activeElement){return null!=e&&null!=e.shadowRoot&&null!=e.shadowRoot.activeElement?Ue(e.shadowRoot.activeElement):e}window.customElements.define("focus-trap",He);const We=document.createElement("template");We.innerHTML='\n \n
\n \n \n \n';class Ze extends HTMLElement{constructor(){super(),this.$scrollContainer=document.documentElement,this.$previousActiveElement=null;const e=this.attachShadow({mode:"open"});e.appendChild(We.content.cloneNode(!0)),this.$dialog=e.querySelector("#dialog"),this.$backdrop=e.querySelector("#backdrop"),this.onBackdropClick=this.onBackdropClick.bind(this),this.onKeyDown=this.onKeyDown.bind(this),this.setAttribute("aria-modal","true"),this.$dialog.setAttribute("role","alertdialog")}static get observedAttributes(){return["open","center"]}get open(){return this.hasAttribute("open")}set open(e){e?this.setAttribute("open",""):this.removeAttribute("open")}get center(){return this.hasAttribute("center")}set center(e){e?this.setAttribute("center",""):this.removeAttribute("center")}connectedCallback(){this.$backdrop.addEventListener("click",this.onBackdropClick)}disconnectedCallback(){this.$backdrop.removeEventListener("click",this.onBackdropClick),this.open&&this.didClose()}show(){this.open=!0}close(e){this.result=e,this.open=!1}onBackdropClick(){this.assertClosing()&&this.close()}onKeyDown(e){if("Escape"===e.code)this.assertClosing()&&(this.close(),e.stopImmediatePropagation())}assertClosing(){return this.dispatchEvent(new CustomEvent("closing",{cancelable:!0}))}didOpen(){this.$previousActiveElement=Ue(document.activeElement),requestAnimationFrame((()=>{this.$dialog.focusFirstElement()})),this.tabIndex=0,this.$scrollContainer.style.overflow="hidden",this.addEventListener("keydown",this.onKeyDown,{capture:!0,passive:!0}),qe(this.$scrollContainer,Be(this.$scrollContainer)+1),this.dispatchEvent(new CustomEvent("open"))}didClose(){this.removeEventListener("keydown",this.onKeyDown,{capture:!0}),qe(this.$scrollContainer,Math.max(0,Be(this.$scrollContainer)-1)),Be(this.$scrollContainer)<=0&&(this.$scrollContainer.style.overflow=""),this.tabIndex=-1,null!=this.$previousActiveElement&&(this.$previousActiveElement.focus(),this.$previousActiveElement=null),this.dispatchEvent(new CustomEvent("close",{detail:this.result}))}attributeChangedCallback(e,t,n){if("open"===e)this.open?this.didOpen():this.didClose()}}var Qe,Ge;function Ye(e){return e.substr(0,e.indexOf("."))}customElements.define("web-dialog",Ze),function(e){e.language="language",e.system="system",e.comma_decimal="comma_decimal",e.decimal_comma="decimal_comma",e.space_comma="space_comma",e.none="none"}(Qe||(Qe={})),function(e){e.language="language",e.system="system",e.am_pm="12",e.twenty_four="24"}(Ge||(Ge={}));var Ke,Xe,Je=["closed","locked","off"],et=function(e,t,n,a){a=a||{},n=null==n?{}:n;var i=new Event(t,{bubbles:void 0===a.bubbles||a.bubbles,cancelable:Boolean(a.cancelable),composed:void 0===a.composed||a.composed});return i.detail=n,e.dispatchEvent(i),i},tt=function(e){et(window,"haptic",e)},nt=function(e,t){return function(e,t,n){void 0===n&&(n=!0);var a,i=Ye(t),r="group"===i?"homeassistant":i;switch(i){case"lock":a=n?"unlock":"lock";break;case"cover":a=n?"open_cover":"close_cover";break;default:a=n?"turn_on":"turn_off"}return e.callService(r,a,{entity_id:t})}(e,t,Je.includes(e.states[t].state))},at=function(e,t,n,a){if(a||(a={action:"more-info"}),!a.confirmation||a.confirmation.exemptions&&a.confirmation.exemptions.some((function(e){return e.user===t.user.id}))||(tt("warning"),confirm(a.confirmation.text||"Are you sure you want to "+a.action+"?")))switch(a.action){case"more-info":(n.entity||n.camera_image)&&et(e,"hass-more-info",{entityId:n.entity?n.entity:n.camera_image});break;case"navigate":a.navigation_path&&function(e,t,n){void 0===n&&(n=!1),n?history.replaceState(null,"",t):history.pushState(null,"",t),et(window,"location-changed",{replace:n})}(0,a.navigation_path);break;case"url":a.url_path&&window.open(a.url_path);break;case"toggle":n.entity&&(nt(t,n.entity),tt("success"));break;case"perform-action":if(!a.perform_action)return void tt("failure");var i=a.perform_action.split(".",2);t.callService(i[0],i[1],a.data,a.target),tt("success");break;case"call-service":if(!a.service)return void tt("failure");var r=a.service.split(".",2);t.callService(r[0],r[1],a.data,a.target),tt("success");break;case"fire-dom-event":et(e,"ll-custom",a)}};!function(e){e.assertEqual=e=>e,e.assertIs=function(e){},e.assertNever=function(e){throw new Error},e.arrayToEnum=e=>{const t={};for(const n of e)t[n]=n;return t},e.getValidEnumValues=t=>{const n=e.objectKeys(t).filter((e=>"number"!=typeof t[t[e]])),a={};for(const e of n)a[e]=t[e];return e.objectValues(a)},e.objectValues=t=>e.objectKeys(t).map((function(e){return t[e]})),e.objectKeys="function"==typeof Object.keys?e=>Object.keys(e):e=>{const t=[];for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(const n of e)if(t(n))return n},e.isInteger="function"==typeof Number.isInteger?e=>Number.isInteger(e):e=>"number"==typeof e&&isFinite(e)&&Math.floor(e)===e,e.joinValues=function(e,t=" | "){return e.map((e=>"string"==typeof e?`'${e}'`:e)).join(t)},e.jsonStringifyReplacer=(e,t)=>"bigint"==typeof t?t.toString():t}(Ke||(Ke={})),function(e){e.mergeShapes=(e,t)=>({...e,...t})}(Xe||(Xe={}));const it=Ke.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),rt=e=>{switch(typeof e){case"undefined":return it.undefined;case"string":return it.string;case"number":return isNaN(e)?it.nan:it.number;case"boolean":return it.boolean;case"function":return it.function;case"bigint":return it.bigint;case"symbol":return it.symbol;case"object":return Array.isArray(e)?it.array:null===e?it.null:e.then&&"function"==typeof e.then&&e.catch&&"function"==typeof e.catch?it.promise:"undefined"!=typeof Map&&e instanceof Map?it.map:"undefined"!=typeof Set&&e instanceof Set?it.set:"undefined"!=typeof Date&&e instanceof Date?it.date:it.object;default:return it.unknown}},ot=Ke.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class st extends Error{constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}get errors(){return this.issues}format(e){const t=e||function(e){return e.message},n={_errors:[]},a=e=>{for(const i of e.issues)if("invalid_union"===i.code)i.unionErrors.map(a);else if("invalid_return_type"===i.code)a(i.returnTypeError);else if("invalid_arguments"===i.code)a(i.argumentsError);else if(0===i.path.length)n._errors.push(t(i));else{let e=n,a=0;for(;ae.message)){const t={},n=[];for(const a of this.issues)a.path.length>0?(t[a.path[0]]=t[a.path[0]]||[],t[a.path[0]].push(e(a))):n.push(e(a));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}st.create=e=>new st(e);const ct=(e,t)=>{let n;switch(e.code){case ot.invalid_type:n=e.received===it.undefined?"Required":`Expected ${e.expected}, received ${e.received}`;break;case ot.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,Ke.jsonStringifyReplacer)}`;break;case ot.unrecognized_keys:n=`Unrecognized key(s) in object: ${Ke.joinValues(e.keys,", ")}`;break;case ot.invalid_union:n="Invalid input";break;case ot.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Ke.joinValues(e.options)}`;break;case ot.invalid_enum_value:n=`Invalid enum value. Expected ${Ke.joinValues(e.options)}, received '${e.received}'`;break;case ot.invalid_arguments:n="Invalid function arguments";break;case ot.invalid_return_type:n="Invalid function return type";break;case ot.invalid_date:n="Invalid date";break;case ot.invalid_string:"object"==typeof e.validation?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,"number"==typeof e.validation.position&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:Ke.assertNever(e.validation):n="regex"!==e.validation?`Invalid ${e.validation}`:"Invalid";break;case ot.too_small:n="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:"date"===e.type?`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:"Invalid input";break;case ot.too_big:n="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"bigint"===e.type?`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"date"===e.type?`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:"Invalid input";break;case ot.custom:n="Invalid input";break;case ot.invalid_intersection_types:n="Intersection results could not be merged";break;case ot.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case ot.not_finite:n="Number must be finite";break;default:n=t.defaultError,Ke.assertNever(e)}return{message:n}};let lt=ct;function dt(){return lt}const ut=e=>{const{data:t,path:n,errorMaps:a,issueData:i}=e,r=[...n,...i.path||[]],o={...i,path:r};if(void 0!==i.message)return{...i,path:r,message:i.message};let s="";const c=a.filter((e=>!!e)).slice().reverse();for(const e of c)s=e(o,{data:t,defaultError:s}).message;return{...i,path:r,message:s}};function ht(e,t){const n=dt(),a=ut({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===ct?void 0:ct].filter((e=>!!e))});e.common.issues.push(a)}class pt{constructor(){this.value="valid"}dirty(){"valid"===this.value&&(this.value="dirty")}abort(){"aborted"!==this.value&&(this.value="aborted")}static mergeArray(e,t){const n=[];for(const a of t){if("aborted"===a.status)return mt;"dirty"===a.status&&e.dirty(),n.push(a.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,t){const n=[];for(const e of t){const t=await e.key,a=await e.value;n.push({key:t,value:a})}return pt.mergeObjectSync(e,n)}static mergeObjectSync(e,t){const n={};for(const a of t){const{key:t,value:i}=a;if("aborted"===t.status)return mt;if("aborted"===i.status)return mt;"dirty"===t.status&&e.dirty(),"dirty"===i.status&&e.dirty(),"__proto__"===t.value||void 0===i.value&&!a.alwaysSet||(n[t.value]=i.value)}return{status:e.value,value:n}}}const mt=Object.freeze({status:"aborted"}),gt=e=>({status:"dirty",value:e}),ft=e=>({status:"valid",value:e}),_t=e=>"aborted"===e.status,vt=e=>"dirty"===e.status,yt=e=>"valid"===e.status,bt=e=>"undefined"!=typeof Promise&&e instanceof Promise;function wt(e,t,n,a){if("a"===n&&!a)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?a:"a"===n?a.call(e):a?a.value:t.get(e)}function xt(e,t,n,a,i){if("m"===a)throw new TypeError("Private method is not writable");if("a"===a&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===a?i.call(e,n):i?i.value=n:t.set(e,n),n}var Ct,Mt,kt;"function"==typeof SuppressedError&&SuppressedError,function(e){e.errToObj=e=>"string"==typeof e?{message:e}:e||{},e.toString=e=>"string"==typeof e?e:null==e?void 0:e.message}(Ct||(Ct={}));class St{constructor(e,t,n,a){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=a}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const Et=(e,t)=>{if(yt(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new st(e.common.issues);return this._error=t,this._error}}};function $t(e){if(!e)return{};const{errorMap:t,invalid_type_error:n,required_error:a,description:i}=e;if(t&&(n||a))throw new Error('Can\'t use "invalid_type_error" or "required_error" in conjunction with custom error map.');if(t)return{errorMap:t,description:i};return{errorMap:(t,i)=>{var r,o;const{message:s}=e;return"invalid_enum_value"===t.code?{message:null!=s?s:i.defaultError}:void 0===i.data?{message:null!==(r=null!=s?s:a)&&void 0!==r?r:i.defaultError}:"invalid_type"!==t.code?{message:i.defaultError}:{message:null!==(o=null!=s?s:n)&&void 0!==o?o:i.defaultError}},description:i}}class At{constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(e){return rt(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:rt(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new pt,ctx:{common:e.parent.common,data:e.data,parsedType:rt(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(bt(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){var n;const a={common:{issues:[],async:null!==(n=null==t?void 0:t.async)&&void 0!==n&&n,contextualErrorMap:null==t?void 0:t.errorMap},path:(null==t?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:rt(e)},i=this._parseSync({data:e,path:a.path,parent:a});return Et(a,i)}async parseAsync(e,t){const n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){const n={common:{issues:[],contextualErrorMap:null==t?void 0:t.errorMap,async:!0},path:(null==t?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:rt(e)},a=this._parse({data:e,path:n.path,parent:n}),i=await(bt(a)?a:Promise.resolve(a));return Et(n,i)}refine(e,t){const n=e=>"string"==typeof t||void 0===t?{message:t}:"function"==typeof t?t(e):t;return this._refinement(((t,a)=>{const i=e(t),r=()=>a.addIssue({code:ot.custom,...n(t)});return"undefined"!=typeof Promise&&i instanceof Promise?i.then((e=>!!e||(r(),!1))):!!i||(r(),!1)}))}refinement(e,t){return this._refinement(((n,a)=>!!e(n)||(a.addIssue("function"==typeof t?t(n,a):t),!1)))}_refinement(e){return new kn({schema:this,typeName:Pn.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return Sn.create(this,this._def)}nullable(){return En.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return on.create(this,this._def)}promise(){return Mn.create(this,this._def)}or(e){return ln.create([this,e],this._def)}and(e){return pn.create(this,e,this._def)}transform(e){return new kn({...$t(this._def),schema:this,typeName:Pn.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t="function"==typeof e?e:()=>e;return new $n({...$t(this._def),innerType:this,defaultValue:t,typeName:Pn.ZodDefault})}brand(){return new Tn({typeName:Pn.ZodBranded,type:this,...$t(this._def)})}catch(e){const t="function"==typeof e?e:()=>e;return new An({...$t(this._def),innerType:this,catchValue:t,typeName:Pn.ZodCatch})}describe(e){return new(0,this.constructor)({...this._def,description:e})}pipe(e){return jn.create(this,e)}readonly(){return On.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const zt=/^c[^\s-]{8,}$/i,It=/^[0-9a-z]+$/,Tt=/^[0-9A-HJKMNP-TV-Z]{26}$/,jt=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Ot=/^[a-z0-9_-]{21}$/i,Dt=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Rt=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;let Pt;const Lt=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Nt=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,Ft=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Vt="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Ht=new RegExp(`^${Vt}$`);function Bt(e){let t="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return e.precision?t=`${t}\\.\\d{${e.precision}}`:null==e.precision&&(t=`${t}(\\.\\d+)?`),t}function qt(e){let t=`${Vt}T${Bt(e)}`;const n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function Ut(e,t){return!("v4"!==t&&t||!Lt.test(e))||!("v6"!==t&&t||!Nt.test(e))}class Wt extends At{_parse(e){this._def.coerce&&(e.data=String(e.data));if(this._getType(e)!==it.string){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.string,received:t.parsedType}),mt}const t=new pt;let n;for(const a of this._def.checks)if("min"===a.kind)e.data.lengtha.value&&(n=this._getOrReturnCtx(e,n),ht(n,{code:ot.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),t.dirty());else if("length"===a.kind){const i=e.data.length>a.value,r=e.data.lengthe.test(t)),{validation:t,code:ot.invalid_string,...Ct.errToObj(n)})}_addCheck(e){return new Wt({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...Ct.errToObj(e)})}url(e){return this._addCheck({kind:"url",...Ct.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...Ct.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...Ct.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...Ct.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...Ct.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...Ct.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...Ct.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...Ct.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...Ct.errToObj(e)})}datetime(e){var t,n;return"string"==typeof e?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:void 0===(null==e?void 0:e.precision)?null:null==e?void 0:e.precision,offset:null!==(t=null==e?void 0:e.offset)&&void 0!==t&&t,local:null!==(n=null==e?void 0:e.local)&&void 0!==n&&n,...Ct.errToObj(null==e?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return"string"==typeof e?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:void 0===(null==e?void 0:e.precision)?null:null==e?void 0:e.precision,...Ct.errToObj(null==e?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...Ct.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...Ct.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:null==t?void 0:t.position,...Ct.errToObj(null==t?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...Ct.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...Ct.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...Ct.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...Ct.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...Ct.errToObj(t)})}nonempty(e){return this.min(1,Ct.errToObj(e))}trim(){return new Wt({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Wt({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Wt({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((e=>"datetime"===e.kind))}get isDate(){return!!this._def.checks.find((e=>"date"===e.kind))}get isTime(){return!!this._def.checks.find((e=>"time"===e.kind))}get isDuration(){return!!this._def.checks.find((e=>"duration"===e.kind))}get isEmail(){return!!this._def.checks.find((e=>"email"===e.kind))}get isURL(){return!!this._def.checks.find((e=>"url"===e.kind))}get isEmoji(){return!!this._def.checks.find((e=>"emoji"===e.kind))}get isUUID(){return!!this._def.checks.find((e=>"uuid"===e.kind))}get isNANOID(){return!!this._def.checks.find((e=>"nanoid"===e.kind))}get isCUID(){return!!this._def.checks.find((e=>"cuid"===e.kind))}get isCUID2(){return!!this._def.checks.find((e=>"cuid2"===e.kind))}get isULID(){return!!this._def.checks.find((e=>"ulid"===e.kind))}get isIP(){return!!this._def.checks.find((e=>"ip"===e.kind))}get isBase64(){return!!this._def.checks.find((e=>"base64"===e.kind))}get minLength(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.valuea?n:a;return parseInt(e.toFixed(i).replace(".",""))%parseInt(t.toFixed(i).replace(".",""))/Math.pow(10,i)}Wt.create=e=>{var t;return new Wt({checks:[],typeName:Pn.ZodString,coerce:null!==(t=null==e?void 0:e.coerce)&&void 0!==t&&t,...$t(e)})};class Qt extends At{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){this._def.coerce&&(e.data=Number(e.data));if(this._getType(e)!==it.number){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.number,received:t.parsedType}),mt}let t;const n=new pt;for(const a of this._def.checks)if("int"===a.kind)Ke.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.invalid_type,expected:"integer",received:"float",message:a.message}),n.dirty());else if("min"===a.kind){(a.inclusive?e.dataa.value:e.data>=a.value)&&(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),n.dirty())}else"multipleOf"===a.kind?0!==Zt(e.data,a.value)&&(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.not_multiple_of,multipleOf:a.value,message:a.message}),n.dirty()):"finite"===a.kind?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.not_finite,message:a.message}),n.dirty()):Ke.assertNever(a);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,Ct.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Ct.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Ct.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Ct.toString(t))}setLimit(e,t,n,a){return new Qt({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Ct.toString(a)}]})}_addCheck(e){return new Qt({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:Ct.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:Ct.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:Ct.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:Ct.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:Ct.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Ct.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:Ct.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Ct.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Ct.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value"int"===e.kind||"multipleOf"===e.kind&&Ke.isInteger(e.value)))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if("finite"===n.kind||"int"===n.kind||"multipleOf"===n.kind)return!0;"min"===n.kind?(null===t||n.value>t)&&(t=n.value):"max"===n.kind&&(null===e||n.valuenew Qt({checks:[],typeName:Pn.ZodNumber,coerce:(null==e?void 0:e.coerce)||!1,...$t(e)});class Gt extends At{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){this._def.coerce&&(e.data=BigInt(e.data));if(this._getType(e)!==it.bigint){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.bigint,received:t.parsedType}),mt}let t;const n=new pt;for(const a of this._def.checks)if("min"===a.kind){(a.inclusive?e.dataa.value:e.data>=a.value)&&(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),n.dirty())}else"multipleOf"===a.kind?e.data%a.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.not_multiple_of,multipleOf:a.value,message:a.message}),n.dirty()):Ke.assertNever(a);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,Ct.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Ct.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Ct.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Ct.toString(t))}setLimit(e,t,n,a){return new Gt({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Ct.toString(a)}]})}_addCheck(e){return new Gt({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:Ct.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:Ct.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:Ct.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:Ct.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Ct.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value{var t;return new Gt({checks:[],typeName:Pn.ZodBigInt,coerce:null!==(t=null==e?void 0:e.coerce)&&void 0!==t&&t,...$t(e)})};class Yt extends At{_parse(e){this._def.coerce&&(e.data=Boolean(e.data));if(this._getType(e)!==it.boolean){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.boolean,received:t.parsedType}),mt}return ft(e.data)}}Yt.create=e=>new Yt({typeName:Pn.ZodBoolean,coerce:(null==e?void 0:e.coerce)||!1,...$t(e)});class Kt extends At{_parse(e){this._def.coerce&&(e.data=new Date(e.data));if(this._getType(e)!==it.date){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.date,received:t.parsedType}),mt}if(isNaN(e.data.getTime())){return ht(this._getOrReturnCtx(e),{code:ot.invalid_date}),mt}const t=new pt;let n;for(const a of this._def.checks)"min"===a.kind?e.data.getTime()a.value&&(n=this._getOrReturnCtx(e,n),ht(n,{code:ot.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),t.dirty()):Ke.assertNever(a);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Kt({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:Ct.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:Ct.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return null!=e?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.valuenew Kt({checks:[],coerce:(null==e?void 0:e.coerce)||!1,typeName:Pn.ZodDate,...$t(e)});class Xt extends At{_parse(e){if(this._getType(e)!==it.symbol){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.symbol,received:t.parsedType}),mt}return ft(e.data)}}Xt.create=e=>new Xt({typeName:Pn.ZodSymbol,...$t(e)});class Jt extends At{_parse(e){if(this._getType(e)!==it.undefined){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.undefined,received:t.parsedType}),mt}return ft(e.data)}}Jt.create=e=>new Jt({typeName:Pn.ZodUndefined,...$t(e)});class en extends At{_parse(e){if(this._getType(e)!==it.null){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.null,received:t.parsedType}),mt}return ft(e.data)}}en.create=e=>new en({typeName:Pn.ZodNull,...$t(e)});class tn extends At{constructor(){super(...arguments),this._any=!0}_parse(e){return ft(e.data)}}tn.create=e=>new tn({typeName:Pn.ZodAny,...$t(e)});class nn extends At{constructor(){super(...arguments),this._unknown=!0}_parse(e){return ft(e.data)}}nn.create=e=>new nn({typeName:Pn.ZodUnknown,...$t(e)});class an extends At{_parse(e){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.never,received:t.parsedType}),mt}}an.create=e=>new an({typeName:Pn.ZodNever,...$t(e)});class rn extends At{_parse(e){if(this._getType(e)!==it.undefined){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.void,received:t.parsedType}),mt}return ft(e.data)}}rn.create=e=>new rn({typeName:Pn.ZodVoid,...$t(e)});class on extends At{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),a=this._def;if(t.parsedType!==it.array)return ht(t,{code:ot.invalid_type,expected:it.array,received:t.parsedType}),mt;if(null!==a.exactLength){const e=t.data.length>a.exactLength.value,i=t.data.lengtha.maxLength.value&&(ht(t,{code:ot.too_big,maximum:a.maxLength.value,type:"array",inclusive:!0,exact:!1,message:a.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map(((e,n)=>a.type._parseAsync(new St(t,e,t.path,n))))).then((e=>pt.mergeArray(n,e)));const i=[...t.data].map(((e,n)=>a.type._parseSync(new St(t,e,t.path,n))));return pt.mergeArray(n,i)}get element(){return this._def.type}min(e,t){return new on({...this._def,minLength:{value:e,message:Ct.toString(t)}})}max(e,t){return new on({...this._def,maxLength:{value:e,message:Ct.toString(t)}})}length(e,t){return new on({...this._def,exactLength:{value:e,message:Ct.toString(t)}})}nonempty(e){return this.min(1,e)}}function sn(e){if(e instanceof cn){const t={};for(const n in e.shape){const a=e.shape[n];t[n]=Sn.create(sn(a))}return new cn({...e._def,shape:()=>t})}return e instanceof on?new on({...e._def,type:sn(e.element)}):e instanceof Sn?Sn.create(sn(e.unwrap())):e instanceof En?En.create(sn(e.unwrap())):e instanceof mn?mn.create(e.items.map((e=>sn(e)))):e}on.create=(e,t)=>new on({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Pn.ZodArray,...$t(t)});class cn extends At{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(null!==this._cached)return this._cached;const e=this._def.shape(),t=Ke.objectKeys(e);return this._cached={shape:e,keys:t}}_parse(e){if(this._getType(e)!==it.object){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.object,received:t.parsedType}),mt}const{status:t,ctx:n}=this._processInputParams(e),{shape:a,keys:i}=this._getCached(),r=[];if(!(this._def.catchall instanceof an&&"strip"===this._def.unknownKeys))for(const e in n.data)i.includes(e)||r.push(e);const o=[];for(const e of i){const t=a[e],i=n.data[e];o.push({key:{status:"valid",value:e},value:t._parse(new St(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof an){const e=this._def.unknownKeys;if("passthrough"===e)for(const e of r)o.push({key:{status:"valid",value:e},value:{status:"valid",value:n.data[e]}});else if("strict"===e)r.length>0&&(ht(n,{code:ot.unrecognized_keys,keys:r}),t.dirty());else if("strip"!==e)throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const e=this._def.catchall;for(const t of r){const a=n.data[t];o.push({key:{status:"valid",value:t},value:e._parse(new St(n,a,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then((async()=>{const e=[];for(const t of o){const n=await t.key,a=await t.value;e.push({key:n,value:a,alwaysSet:t.alwaysSet})}return e})).then((e=>pt.mergeObjectSync(t,e))):pt.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(e){return Ct.errToObj,new cn({...this._def,unknownKeys:"strict",...void 0!==e?{errorMap:(t,n)=>{var a,i,r,o;const s=null!==(r=null===(i=(a=this._def).errorMap)||void 0===i?void 0:i.call(a,t,n).message)&&void 0!==r?r:n.defaultError;return"unrecognized_keys"===t.code?{message:null!==(o=Ct.errToObj(e).message)&&void 0!==o?o:s}:{message:s}}}:{}})}strip(){return new cn({...this._def,unknownKeys:"strip"})}passthrough(){return new cn({...this._def,unknownKeys:"passthrough"})}extend(e){return new cn({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new cn({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Pn.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new cn({...this._def,catchall:e})}pick(e){const t={};return Ke.objectKeys(e).forEach((n=>{e[n]&&this.shape[n]&&(t[n]=this.shape[n])})),new cn({...this._def,shape:()=>t})}omit(e){const t={};return Ke.objectKeys(this.shape).forEach((n=>{e[n]||(t[n]=this.shape[n])})),new cn({...this._def,shape:()=>t})}deepPartial(){return sn(this)}partial(e){const t={};return Ke.objectKeys(this.shape).forEach((n=>{const a=this.shape[n];e&&!e[n]?t[n]=a:t[n]=a.optional()})),new cn({...this._def,shape:()=>t})}required(e){const t={};return Ke.objectKeys(this.shape).forEach((n=>{if(e&&!e[n])t[n]=this.shape[n];else{let e=this.shape[n];for(;e instanceof Sn;)e=e._def.innerType;t[n]=e}})),new cn({...this._def,shape:()=>t})}keyof(){return wn(Ke.objectKeys(this.shape))}}cn.create=(e,t)=>new cn({shape:()=>e,unknownKeys:"strip",catchall:an.create(),typeName:Pn.ZodObject,...$t(t)}),cn.strictCreate=(e,t)=>new cn({shape:()=>e,unknownKeys:"strict",catchall:an.create(),typeName:Pn.ZodObject,...$t(t)}),cn.lazycreate=(e,t)=>new cn({shape:e,unknownKeys:"strip",catchall:an.create(),typeName:Pn.ZodObject,...$t(t)});class ln extends At{_parse(e){const{ctx:t}=this._processInputParams(e),n=this._def.options;if(t.common.async)return Promise.all(n.map((async e=>{const n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}}))).then((function(e){for(const t of e)if("valid"===t.result.status)return t.result;for(const n of e)if("dirty"===n.result.status)return t.common.issues.push(...n.ctx.common.issues),n.result;const n=e.map((e=>new st(e.ctx.common.issues)));return ht(t,{code:ot.invalid_union,unionErrors:n}),mt}));{let e;const a=[];for(const i of n){const n={...t,common:{...t.common,issues:[]},parent:null},r=i._parseSync({data:t.data,path:t.path,parent:n});if("valid"===r.status)return r;"dirty"!==r.status||e||(e={result:r,ctx:n}),n.common.issues.length&&a.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;const i=a.map((e=>new st(e)));return ht(t,{code:ot.invalid_union,unionErrors:i}),mt}}get options(){return this._def.options}}ln.create=(e,t)=>new ln({options:e,typeName:Pn.ZodUnion,...$t(t)});const dn=e=>e instanceof yn?dn(e.schema):e instanceof kn?dn(e.innerType()):e instanceof bn?[e.value]:e instanceof xn?e.options:e instanceof Cn?Ke.objectValues(e.enum):e instanceof $n?dn(e._def.innerType):e instanceof Jt?[void 0]:e instanceof en?[null]:e instanceof Sn?[void 0,...dn(e.unwrap())]:e instanceof En?[null,...dn(e.unwrap())]:e instanceof Tn||e instanceof On?dn(e.unwrap()):e instanceof An?dn(e._def.innerType):[];class un extends At{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==it.object)return ht(t,{code:ot.invalid_type,expected:it.object,received:t.parsedType}),mt;const n=this.discriminator,a=t.data[n],i=this.optionsMap.get(a);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(ht(t,{code:ot.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),mt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,n){const a=new Map;for(const n of t){const t=dn(n.shape[e]);if(!t.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(const i of t){if(a.has(i))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(i)}`);a.set(i,n)}}return new un({typeName:Pn.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:a,...$t(n)})}}function hn(e,t){const n=rt(e),a=rt(t);if(e===t)return{valid:!0,data:e};if(n===it.object&&a===it.object){const n=Ke.objectKeys(t),a=Ke.objectKeys(e).filter((e=>-1!==n.indexOf(e))),i={...e,...t};for(const n of a){const a=hn(e[n],t[n]);if(!a.valid)return{valid:!1};i[n]=a.data}return{valid:!0,data:i}}if(n===it.array&&a===it.array){if(e.length!==t.length)return{valid:!1};const n=[];for(let a=0;a{if(_t(e)||_t(a))return mt;const i=hn(e.value,a.value);return i.valid?((vt(e)||vt(a))&&t.dirty(),{status:t.value,value:i.data}):(ht(n,{code:ot.invalid_intersection_types}),mt)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then((([e,t])=>a(e,t))):a(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}pn.create=(e,t,n)=>new pn({left:e,right:t,typeName:Pn.ZodIntersection,...$t(n)});class mn extends At{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==it.array)return ht(n,{code:ot.invalid_type,expected:it.array,received:n.parsedType}),mt;if(n.data.lengththis._def.items.length&&(ht(n,{code:ot.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const a=[...n.data].map(((e,t)=>{const a=this._def.items[t]||this._def.rest;return a?a._parse(new St(n,e,n.path,t)):null})).filter((e=>!!e));return n.common.async?Promise.all(a).then((e=>pt.mergeArray(t,e))):pt.mergeArray(t,a)}get items(){return this._def.items}rest(e){return new mn({...this._def,rest:e})}}mn.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new mn({items:e,typeName:Pn.ZodTuple,rest:null,...$t(t)})};class gn extends At{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==it.object)return ht(n,{code:ot.invalid_type,expected:it.object,received:n.parsedType}),mt;const a=[],i=this._def.keyType,r=this._def.valueType;for(const e in n.data)a.push({key:i._parse(new St(n,e,n.path,e)),value:r._parse(new St(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?pt.mergeObjectAsync(t,a):pt.mergeObjectSync(t,a)}get element(){return this._def.valueType}static create(e,t,n){return new gn(t instanceof At?{keyType:e,valueType:t,typeName:Pn.ZodRecord,...$t(n)}:{keyType:Wt.create(),valueType:e,typeName:Pn.ZodRecord,...$t(t)})}}class fn extends At{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==it.map)return ht(n,{code:ot.invalid_type,expected:it.map,received:n.parsedType}),mt;const a=this._def.keyType,i=this._def.valueType,r=[...n.data.entries()].map((([e,t],r)=>({key:a._parse(new St(n,e,n.path,[r,"key"])),value:i._parse(new St(n,t,n.path,[r,"value"]))})));if(n.common.async){const e=new Map;return Promise.resolve().then((async()=>{for(const n of r){const a=await n.key,i=await n.value;if("aborted"===a.status||"aborted"===i.status)return mt;"dirty"!==a.status&&"dirty"!==i.status||t.dirty(),e.set(a.value,i.value)}return{status:t.value,value:e}}))}{const e=new Map;for(const n of r){const a=n.key,i=n.value;if("aborted"===a.status||"aborted"===i.status)return mt;"dirty"!==a.status&&"dirty"!==i.status||t.dirty(),e.set(a.value,i.value)}return{status:t.value,value:e}}}}fn.create=(e,t,n)=>new fn({valueType:t,keyType:e,typeName:Pn.ZodMap,...$t(n)});class _n extends At{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==it.set)return ht(n,{code:ot.invalid_type,expected:it.set,received:n.parsedType}),mt;const a=this._def;null!==a.minSize&&n.data.sizea.maxSize.value&&(ht(n,{code:ot.too_big,maximum:a.maxSize.value,type:"set",inclusive:!0,exact:!1,message:a.maxSize.message}),t.dirty());const i=this._def.valueType;function r(e){const n=new Set;for(const a of e){if("aborted"===a.status)return mt;"dirty"===a.status&&t.dirty(),n.add(a.value)}return{status:t.value,value:n}}const o=[...n.data.values()].map(((e,t)=>i._parse(new St(n,e,n.path,t))));return n.common.async?Promise.all(o).then((e=>r(e))):r(o)}min(e,t){return new _n({...this._def,minSize:{value:e,message:Ct.toString(t)}})}max(e,t){return new _n({...this._def,maxSize:{value:e,message:Ct.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}_n.create=(e,t)=>new _n({valueType:e,minSize:null,maxSize:null,typeName:Pn.ZodSet,...$t(t)});class vn extends At{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==it.function)return ht(t,{code:ot.invalid_type,expected:it.function,received:t.parsedType}),mt;function n(e,n){return ut({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,dt(),ct].filter((e=>!!e)),issueData:{code:ot.invalid_arguments,argumentsError:n}})}function a(e,n){return ut({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,dt(),ct].filter((e=>!!e)),issueData:{code:ot.invalid_return_type,returnTypeError:n}})}const i={errorMap:t.common.contextualErrorMap},r=t.data;if(this._def.returns instanceof Mn){const e=this;return ft((async function(...t){const o=new st([]),s=await e._def.args.parseAsync(t,i).catch((e=>{throw o.addIssue(n(t,e)),o})),c=await Reflect.apply(r,this,s),l=await e._def.returns._def.type.parseAsync(c,i).catch((e=>{throw o.addIssue(a(c,e)),o}));return l}))}{const e=this;return ft((function(...t){const o=e._def.args.safeParse(t,i);if(!o.success)throw new st([n(t,o.error)]);const s=Reflect.apply(r,this,o.data),c=e._def.returns.safeParse(s,i);if(!c.success)throw new st([a(s,c.error)]);return c.data}))}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new vn({...this._def,args:mn.create(e).rest(nn.create())})}returns(e){return new vn({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,n){return new vn({args:e||mn.create([]).rest(nn.create()),returns:t||nn.create(),typeName:Pn.ZodFunction,...$t(n)})}}class yn extends At{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}yn.create=(e,t)=>new yn({getter:e,typeName:Pn.ZodLazy,...$t(t)});class bn extends At{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return ht(t,{received:t.data,code:ot.invalid_literal,expected:this._def.value}),mt}return{status:"valid",value:e.data}}get value(){return this._def.value}}function wn(e,t){return new xn({values:e,typeName:Pn.ZodEnum,...$t(t)})}bn.create=(e,t)=>new bn({value:e,typeName:Pn.ZodLiteral,...$t(t)});class xn extends At{constructor(){super(...arguments),Mt.set(this,void 0)}_parse(e){if("string"!=typeof e.data){const t=this._getOrReturnCtx(e),n=this._def.values;return ht(t,{expected:Ke.joinValues(n),received:t.parsedType,code:ot.invalid_type}),mt}if(wt(this,Mt,"f")||xt(this,Mt,new Set(this._def.values),"f"),!wt(this,Mt,"f").has(e.data)){const t=this._getOrReturnCtx(e),n=this._def.values;return ht(t,{received:t.data,code:ot.invalid_enum_value,options:n}),mt}return ft(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return xn.create(e,{...this._def,...t})}exclude(e,t=this._def){return xn.create(this.options.filter((t=>!e.includes(t))),{...this._def,...t})}}Mt=new WeakMap,xn.create=wn;class Cn extends At{constructor(){super(...arguments),kt.set(this,void 0)}_parse(e){const t=Ke.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==it.string&&n.parsedType!==it.number){const e=Ke.objectValues(t);return ht(n,{expected:Ke.joinValues(e),received:n.parsedType,code:ot.invalid_type}),mt}if(wt(this,kt,"f")||xt(this,kt,new Set(Ke.getValidEnumValues(this._def.values)),"f"),!wt(this,kt,"f").has(e.data)){const e=Ke.objectValues(t);return ht(n,{received:n.data,code:ot.invalid_enum_value,options:e}),mt}return ft(e.data)}get enum(){return this._def.values}}kt=new WeakMap,Cn.create=(e,t)=>new Cn({values:e,typeName:Pn.ZodNativeEnum,...$t(t)});class Mn extends At{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==it.promise&&!1===t.common.async)return ht(t,{code:ot.invalid_type,expected:it.promise,received:t.parsedType}),mt;const n=t.parsedType===it.promise?t.data:Promise.resolve(t.data);return ft(n.then((e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap}))))}}Mn.create=(e,t)=>new Mn({type:e,typeName:Pn.ZodPromise,...$t(t)});class kn extends At{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Pn.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:n}=this._processInputParams(e),a=this._def.effect||null,i={addIssue:e=>{ht(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),"preprocess"===a.type){const e=a.transform(n.data,i);if(n.common.async)return Promise.resolve(e).then((async e=>{if("aborted"===t.value)return mt;const a=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return"aborted"===a.status?mt:"dirty"===a.status||"dirty"===t.value?gt(a.value):a}));{if("aborted"===t.value)return mt;const a=this._def.schema._parseSync({data:e,path:n.path,parent:n});return"aborted"===a.status?mt:"dirty"===a.status||"dirty"===t.value?gt(a.value):a}}if("refinement"===a.type){const e=e=>{const t=a.refinement(e,i);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return e};if(!1===n.common.async){const a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return"aborted"===a.status?mt:("dirty"===a.status&&t.dirty(),e(a.value),{status:t.value,value:a.value})}return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then((n=>"aborted"===n.status?mt:("dirty"===n.status&&t.dirty(),e(n.value).then((()=>({status:t.value,value:n.value}))))))}if("transform"===a.type){if(!1===n.common.async){const e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!yt(e))return e;const r=a.transform(e.value,i);if(r instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:r}}return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then((e=>yt(e)?Promise.resolve(a.transform(e.value,i)).then((e=>({status:t.value,value:e}))):e))}Ke.assertNever(a)}}kn.create=(e,t,n)=>new kn({schema:e,typeName:Pn.ZodEffects,effect:t,...$t(n)}),kn.createWithPreprocess=(e,t,n)=>new kn({schema:t,effect:{type:"preprocess",transform:e},typeName:Pn.ZodEffects,...$t(n)});class Sn extends At{_parse(e){return this._getType(e)===it.undefined?ft(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Sn.create=(e,t)=>new Sn({innerType:e,typeName:Pn.ZodOptional,...$t(t)});class En extends At{_parse(e){return this._getType(e)===it.null?ft(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}En.create=(e,t)=>new En({innerType:e,typeName:Pn.ZodNullable,...$t(t)});class $n extends At{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===it.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}$n.create=(e,t)=>new $n({innerType:e,typeName:Pn.ZodDefault,defaultValue:"function"==typeof t.default?t.default:()=>t.default,...$t(t)});class An extends At{_parse(e){const{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},a=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return bt(a)?a.then((e=>({status:"valid",value:"valid"===e.status?e.value:this._def.catchValue({get error(){return new st(n.common.issues)},input:n.data})}))):{status:"valid",value:"valid"===a.status?a.value:this._def.catchValue({get error(){return new st(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}An.create=(e,t)=>new An({innerType:e,typeName:Pn.ZodCatch,catchValue:"function"==typeof t.catch?t.catch:()=>t.catch,...$t(t)});class zn extends At{_parse(e){if(this._getType(e)!==it.nan){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.nan,received:t.parsedType}),mt}return{status:"valid",value:e.data}}}zn.create=e=>new zn({typeName:Pn.ZodNaN,...$t(e)});const In=Symbol("zod_brand");class Tn extends At{_parse(e){const{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}class jn extends At{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async){return(async()=>{const e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return"aborted"===e.status?mt:"dirty"===e.status?(t.dirty(),gt(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})()}{const e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return"aborted"===e.status?mt:"dirty"===e.status?(t.dirty(),{status:"dirty",value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(e,t){return new jn({in:e,out:t,typeName:Pn.ZodPipeline})}}class On extends At{_parse(e){const t=this._def.innerType._parse(e),n=e=>(yt(e)&&(e.value=Object.freeze(e.value)),e);return bt(t)?t.then((e=>n(e))):n(t)}unwrap(){return this._def.innerType}}function Dn(e,t={},n){return e?tn.create().superRefine(((a,i)=>{var r,o;if(!e(a)){const e="function"==typeof t?t(a):"string"==typeof t?{message:t}:t,s=null===(o=null!==(r=e.fatal)&&void 0!==r?r:n)||void 0===o||o,c="string"==typeof e?{message:e}:e;i.addIssue({code:"custom",...c,fatal:s})}})):tn.create()}On.create=(e,t)=>new On({innerType:e,typeName:Pn.ZodReadonly,...$t(t)});const Rn={object:cn.lazycreate};var Pn;!function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"}(Pn||(Pn={}));const Ln=Wt.create,Nn=Qt.create,Fn=zn.create,Vn=Gt.create,Hn=Yt.create,Bn=Kt.create,qn=Xt.create,Un=Jt.create,Wn=en.create,Zn=tn.create,Qn=nn.create,Gn=an.create,Yn=rn.create,Kn=on.create,Xn=cn.create,Jn=cn.strictCreate,ea=ln.create,ta=un.create,na=pn.create,aa=mn.create,ia=gn.create,ra=fn.create,oa=_n.create,sa=vn.create,ca=yn.create,la=bn.create,da=xn.create,ua=Cn.create,ha=Mn.create,pa=kn.create,ma=Sn.create,ga=En.create,fa=kn.createWithPreprocess,_a=jn.create,va={string:e=>Wt.create({...e,coerce:!0}),number:e=>Qt.create({...e,coerce:!0}),boolean:e=>Yt.create({...e,coerce:!0}),bigint:e=>Gt.create({...e,coerce:!0}),date:e=>Kt.create({...e,coerce:!0})},ya=mt;var ba=Object.freeze({__proto__:null,defaultErrorMap:ct,setErrorMap:function(e){lt=e},getErrorMap:dt,makeIssue:ut,EMPTY_PATH:[],addIssueToContext:ht,ParseStatus:pt,INVALID:mt,DIRTY:gt,OK:ft,isAborted:_t,isDirty:vt,isValid:yt,isAsync:bt,get util(){return Ke},get objectUtil(){return Xe},ZodParsedType:it,getParsedType:rt,ZodType:At,datetimeRegex:qt,ZodString:Wt,ZodNumber:Qt,ZodBigInt:Gt,ZodBoolean:Yt,ZodDate:Kt,ZodSymbol:Xt,ZodUndefined:Jt,ZodNull:en,ZodAny:tn,ZodUnknown:nn,ZodNever:an,ZodVoid:rn,ZodArray:on,ZodObject:cn,ZodUnion:ln,ZodDiscriminatedUnion:un,ZodIntersection:pn,ZodTuple:mn,ZodRecord:gn,ZodMap:fn,ZodSet:_n,ZodFunction:vn,ZodLazy:yn,ZodLiteral:bn,ZodEnum:xn,ZodNativeEnum:Cn,ZodPromise:Mn,ZodEffects:kn,ZodTransformer:kn,ZodOptional:Sn,ZodNullable:En,ZodDefault:$n,ZodCatch:An,ZodNaN:zn,BRAND:In,ZodBranded:Tn,ZodPipeline:jn,ZodReadonly:On,custom:Dn,Schema:At,ZodSchema:At,late:Rn,get ZodFirstPartyTypeKind(){return Pn},coerce:va,any:Zn,array:Kn,bigint:Vn,boolean:Hn,date:Bn,discriminatedUnion:ta,effect:pa,enum:da,function:sa,instanceof:(e,t={message:`Input not instance of ${e.name}`})=>Dn((t=>t instanceof e),t),intersection:na,lazy:ca,literal:la,map:ra,nan:Fn,nativeEnum:ua,never:Gn,null:Wn,nullable:ga,number:Nn,object:Xn,oboolean:()=>Hn().optional(),onumber:()=>Nn().optional(),optional:ma,ostring:()=>Ln().optional(),pipeline:_a,preprocess:fa,promise:ha,record:ia,set:oa,strictObject:Jn,string:Ln,symbol:qn,transformer:pa,tuple:aa,undefined:Un,union:ea,unknown:Qn,void:Yn,NEVER:ya,ZodIssueCode:ot,quotelessJson:e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),ZodError:st});const wa="https://github.com/dermotduffy/frigate-hass-card",xa=`${wa}#troubleshooting`,Ca="cameras",Ma=`${Ca}.#.camera_entity`,ka=`${Ca}.#.frigate.camera_name`,Sa=`${Ca}.#.capabilities.disable`,Ea=`${Ca}.#.capabilities.disable_except`,$a=`${Ca}.#.cast.method`,Aa=`${Ca}.#.cast.dashboard.dashboard_path`,za=`${Ca}.#.cast.dashboard.view_path`,Ia=`${Ca}.#.dimensions.aspect_ratio`,Ta=`${Ca}.#.frigate.client_id`,ja=`${Ca}.#.frigate.labels`,Oa=`${Ca}.#.frigate.url`,Da=`${Ca}.#.frigate.zones`,Ra=`${Ca}.#.go2rtc.modes`,Pa=`${Ca}.#.go2rtc.stream`,La=`${Ca}.#.icon`,Na=`${Ca}.#.id`,Fa=`${Ca}.#.image.entity`,Va=`${Ca}.#.image.entity_parameters`,Ha=`${Ca}.#.image.mode`,Ba=`${Ca}.#.image.refresh_seconds`,qa=`${Ca}.#.image.url`,Ua=`${Ca}.#.motioneye.images.directory_pattern`,Wa=`${Ca}.#.motioneye.images.file_pattern`,Za=`${Ca}.#.motioneye.movies.directory_pattern`,Qa=`${Ca}.#.motioneye.movies.file_pattern`,Ga=`${Ca}.#.motioneye.url`,Ya=`${Ca}.#.title`,Ka=`${Ca}.#.webrtc_card.entity`,Xa=`${Ca}.#.webrtc_card.url`,Ja=`${Ca}.#.live_provider`,ei=`${Ca}.#.dependencies.cameras`,ti=`${Ca}.#.dependencies.all_cameras`,ni=`${Ca}.#.dimensions.layout.fit`,ai=`${Ca}.#.dimensions.layout.pan.x`,ii=`${Ca}.#.dimensions.layout.pan.y`,ri=`${Ca}.#.dimensions.layout.position.x`,oi=`${Ca}.#.dimensions.layout.position.y`,si=`${Ca}.#.dimensions.layout.view_box.top`,ci=`${Ca}.#.dimensions.layout.view_box.bottom`,li=`${Ca}.#.dimensions.layout.view_box.left`,di=`${Ca}.#.dimensions.layout.view_box.right`,ui=`${Ca}.#.dimensions.layout.zoom`,hi=`${Ca}.#.proxy.dynamic`,pi=`${Ca}.#.proxy.media`,mi=`${Ca}.#.proxy.ssl_ciphers`,gi=`${Ca}.#.proxy.ssl_verification`,fi=`${Ca}.#.reolink.media_resolution`,_i=`${Ca}.#.reolink.url`,vi=`${Ca}.#.triggers.motion`,yi=`${Ca}.#.triggers.occupancy`,bi=`${Ca}.#.triggers.entities`,wi=`${Ca}.#.triggers.events`,xi="cameras_global",Ci=`${xi}.image`,Mi=`${xi}.live_provider`,ki=`${xi}.jsmpeg`,Si=`${xi}.webrtc_card`,Ei=`${xi}.triggers.occupancy`,$i=`${xi}.image.refresh_seconds`,Ai=`${xi}.dimensions.layout`,zi=`${xi}.ptz`,Ii="elements",Ti="view",ji=`${Ti}.camera_select`,Oi=`${Ti}.dark_mode`,Di=`${Ti}.default`,Ri=`${Ti}.interaction_seconds`,Pi=`${Ti}.keyboard_shortcuts`,Li=`${Ti}.keyboard_shortcuts.enabled`,Ni=`${Pi}.ptz_left`,Fi=`${Pi}.ptz_right`,Vi=`${Pi}.ptz_up`,Hi=`${Pi}.ptz_down`,Bi=`${Pi}.ptz_zoom_in`,qi=`${Pi}.ptz_zoom_out`,Ui=`${Pi}.ptz_home`,Wi=`${Ti}.default_cycle_camera`,Zi=`${Ti}.default_reset`,Qi=`${Zi}.interaction_mode`,Gi=`${Zi}.every_seconds`,Yi=`${Zi}.entities`,Ki=`${Zi}.after_interaction`,Xi=`${Ti}.triggers`,Ji=`${Xi}.show_trigger_status`,er=`${Xi}.filter_selected_camera`,tr=`${Xi}.untrigger_seconds`,nr=`${Xi}.actions`,ar=`${nr}.trigger`,ir=`${nr}.untrigger`,rr=`${nr}.interaction_mode`,or="media_gallery",sr=`${or}.controls.filter.mode`,cr=`${or}.controls.thumbnails.show_details`,lr=`${or}.controls.thumbnails.show_download_control`,dr=`${or}.controls.thumbnails.show_favorite_control`,ur=`${or}.controls.thumbnails.show_timeline_control`,hr=`${or}.controls.thumbnails.size`,pr="media_viewer",mr=`${pr}.auto_play`,gr=`${pr}.auto_pause`,fr=`${pr}.auto_mute`,_r=`${pr}.auto_unmute`,vr=`${pr}.display.mode`,yr=`${pr}.display.grid_columns`,br=`${pr}.display.grid_max_columns`,wr=`${pr}.display.grid_selected_width_factor`,xr=`${pr}.draggable`,Cr=`${pr}.lazy_load`,Mr=`${pr}.snapshot_click_plays_clip`,kr=`${pr}.transition_effect`,Sr=`${pr}.controls.builtin`,Er=`${pr}.controls.next_previous.style`,$r=`${pr}.controls.next_previous.size`,Ar=`${pr}.controls.thumbnails.mode`,zr=`${pr}.controls.thumbnails.show_details`,Ir=`${pr}.controls.thumbnails.show_download_control`,Tr=`${pr}.controls.thumbnails.show_favorite_control`,jr=`${pr}.controls.thumbnails.show_timeline_control`,Or=`${pr}.controls.thumbnails.size`,Dr=`${pr}.controls.timeline.clustering_threshold`,Rr=`${pr}.controls.timeline.events_media_type`,Pr=`${pr}.controls.timeline.mode`,Lr=`${pr}.controls.timeline.pan_mode`,Nr=`${pr}.controls.timeline.show_recordings`,Fr=`${pr}.controls.timeline.style`,Vr=`${pr}.controls.timeline.window_seconds`,Hr=`${pr}.zoomable`,Br="live",qr=`${Br}.auto_play`,Ur=`${Br}.auto_pause`,Wr=`${Br}.auto_mute`,Zr=`${Br}.auto_unmute`,Qr=`${Br}.controls.builtin`,Gr=`${Br}.controls.next_previous.style`,Yr=`${Br}.controls.next_previous.size`,Kr=`${Br}.controls.ptz.hide_home`,Xr=`${Br}.controls.ptz.hide_pan_tilt`,Jr=`${Br}.controls.ptz.hide_zoom`,eo=`${Br}.controls.ptz.mode`,to=`${Br}.controls.ptz.orientation`,no=`${Br}.controls.ptz.position`,ao=`${Br}.controls.thumbnails.media_type`,io=`${Br}.controls.thumbnails.events_media_type`,ro=`${Br}.controls.thumbnails.mode`,oo=`${Br}.controls.thumbnails.size`,so=`${Br}.controls.thumbnails.show_details`,co=`${Br}.controls.thumbnails.show_download_control`,lo=`${Br}.controls.thumbnails.show_favorite_control`,uo=`${Br}.controls.thumbnails.show_timeline_control`,ho=`${Br}.controls.timeline.clustering_threshold`,po=`${Br}.controls.timeline.events_media_type`,mo=`${Br}.controls.timeline.mode`,go=`${Br}.controls.timeline.pan_mode`,fo=`${Br}.controls.timeline.show_recordings`,_o=`${Br}.controls.timeline.style`,vo=`${Br}.controls.timeline.window_seconds`,yo=`${Br}.display.mode`,bo=`${Br}.display.grid_columns`,wo=`${Br}.display.grid_max_columns`,xo=`${Br}.display.grid_selected_width_factor`,Co=`${Br}.draggable`,Mo=`${Br}.lazy_load`,ko=`${Br}.lazy_unload`,So=`${Br}.preload`,Eo=`${Br}.transition_effect`,$o=`${Br}.show_image_during_load`,Ao=`${Br}.microphone.disconnect_seconds`,zo=`${Br}.microphone.mute_after_microphone_mute_seconds`,Io=`${Br}.microphone.always_connected`,To=`${Br}.zoomable`,jo="image",Oo=`${jo}.entity`,Do=`${jo}.entity_parameters`,Ro=`${jo}.mode`,Po=`${jo}.refresh_seconds`,Lo=`${jo}.url`,No="timeline",Fo=`${No}.window_seconds`,Vo=`${No}.clustering_threshold`,Ho=`${No}.events_media_type`,Bo=`${No}.show_recordings`,qo=`${No}.style`,Uo=`${No}.controls.thumbnails.mode`,Wo=`${No}.controls.thumbnails.size`,Zo=`${No}.controls.thumbnails.show_details`,Qo=`${No}.controls.thumbnails.show_download_control`,Go=`${No}.controls.thumbnails.show_favorite_control`,Yo=`${No}.controls.thumbnails.show_timeline_control`,Ko="menu",Xo=`${Ko}.alignment`,Jo=`${Ko}.position`,es=`${Ko}.style`,ts=`${Ko}.button_size`,ns=`${Ko}.buttons`,as=`${ns}.frigate`,is=`${ns}.camera_ui`,rs=`${ns}.fullscreen`,os=`${ns}.play`,ss=`${ns}.mute`,cs=`${ns}.media_player`,ls=`${ns}.timeline`,ds="status_bar",us=`${ds}.position`,hs=`${ds}.style`,ps=`${ds}.popup_seconds`,ms=`${ds}.height`,gs=`${ds}.items`,fs="dimensions",_s=`${fs}.aspect_ratio`,vs=`${fs}.aspect_ratio_mode`,ys=`${fs}.height`,bs="overrides",ws="performance",xs=`${ws}.features.animated_progress_indicator`,Cs=`${ws}.features.media_chunk_size`,Ms=`${ws}.features.max_simultaneous_engine_requests`,ks=`${ws}.profile`,Ss=`${ws}.style.box_shadow`,Es=`${ws}.style.border_radius`,$s="profiles",As=1e3;class zs extends Error{constructor(e,t){super(e),this.context=t}}const Is={info:10,error:20,connection:30,diagnostics:40},Ts=["clips","favorite-events","favorite-recordings","live","menu","ptz","recordings","seek","snapshots","substream"],js=ba.object({url:ba.string(),mime_type:ba.string()}),Os=ba.object({path:ba.string()});function Ds(e){if(e instanceof ba.ZodDefault)return Ds(e.removeDefault());if(e instanceof ba.ZodObject){const t={};for(const n in e.shape){const a=e.shape[n];t[n]=ba.ZodOptional.create(Ds(a))}return new ba.ZodObject({...e._def,shape:()=>t})}return e instanceof ba.ZodArray?ba.ZodArray.create(Ds(e.element)).min(e._def.minLength?.value,e._def.minLength?.message).max(e._def.maxLength?.value,e._def.maxLength?.message).length(e._def.exactLength?.value,e._def.exactLength?.message):e instanceof ba.ZodOptional?ba.ZodOptional.create(Ds(e.unwrap())):e instanceof ba.ZodNullable?ba.ZodNullable.create(Ds(e.unwrap())):e instanceof ba.ZodTuple?ba.ZodTuple.create(e.items.map((e=>Ds(e)))):e}function Rs(e){const t=e.format();return Object.keys(t).filter((e=>!e.startsWith("_")))}const Ps=e=>{const t=new Set;if(e.issues.length)for(const n of e.issues)if("invalid_union"===n.code){const e=n.unionErrors;for(const n of e)Ps(n).forEach(t.add,t)}else t.add(Ls(n.path));return t},Ls=e=>{let t="";for(let n=0;n"fire-dom-event")).or(ba.literal("fire-dom-event")),card_id:ba.string().regex(tc,"card_id parameter can only contain [a-z][A-Z][0-9_]-").optional()}),_c=fc.extend({frigate_card_action:ba.enum(Zs)}),vc=fc.extend({frigate_card_action:ba.enum(["camera_ui","default","download","expand","fullscreen","live_substream_off","live_substream_on","menu_toggle","microphone_connect","microphone_disconnect","microphone_mute","microphone_unmute","mute","pause","play","screenshot","unmute"])}),yc=fc.extend({frigate_card_action:ba.literal("camera_select"),camera:ba.string().optional(),triggered:ba.boolean().optional()}),bc=fc.extend({frigate_card_action:ba.literal("live_substream_select"),camera:ba.string()}),wc=fc.extend({frigate_card_action:ba.literal("media_player"),media_player:ba.string(),media_player_action:ba.enum(["play","stop"])}),xc=fc.extend({frigate_card_action:ba.literal("display_mode_select"),display_mode:ic}),Cc=fc.extend({frigate_card_action:ba.literal("ptz"),camera:ba.string().optional(),ptz_action:ba.enum(Hs).optional(),ptz_phase:ba.enum(Js).optional(),ptz_preset:ba.string().optional()}),Mc=fc.extend({frigate_card_action:ba.literal("ptz_digital"),target_id:ba.string().optional(),absolute:ba.object({zoom:ac.optional(),pan:nc.optional()}).optional(),ptz_action:ba.enum(Hs).optional(),ptz_phase:ba.enum(Js).optional()}),kc=fc.extend({frigate_card_action:ba.literal("ptz_multi"),target_id:ba.string().optional(),ptz_action:ba.enum(Hs).optional(),ptz_phase:ba.enum(Js).optional(),ptz_preset:ba.string().optional()}),Sc=fc.extend({frigate_card_action:ba.literal("ptz_controls"),enabled:ba.boolean()}),Ec=ba.object({ms:ba.number().optional(),s:ba.number().optional(),m:ba.number().optional(),h:ba.number().optional()}),$c=fc.extend({frigate_card_action:ba.literal("sleep"),duration:Ec.optional().default({s:1})}),Ac=fc.extend({frigate_card_action:ba.literal("status_bar"),status_bar_action:ba.enum(["add","remove","reset"]),items:ba.lazy((()=>ol)).array().optional()}),zc=fc.extend({frigate_card_action:ba.literal("log"),message:ba.string(),level:ba.enum(["debug","info","warn","error"]).default("info")}),Ic=ba.union([yc,vc,bc,zc,wc,Cc,Mc,kc,Sc,_c,xc,$c,Ac]),Tc=ba.union([sc,dc,lc,uc,hc,pc,gc,mc,Ic]),jc=ba.object({tap_action:Tc.or(Tc.array()).optional(),hold_action:Tc.or(Tc.array()).optional(),double_tap_action:Tc.or(Tc.array()).optional(),start_tap_action:Tc.or(Tc.array()).optional(),end_tap_action:Tc.or(Tc.array()).optional()}).passthrough(),Oc=ba.object({actions:jc.optional()}),Dc=jc.extend({style:ba.record(ba.string().nullable().or(ba.undefined()).or(ba.number())).optional(),title:ba.string().nullable().optional()}),Rc=Dc.extend({type:ba.literal("state-badge"),entity:ba.string()}),Pc=Dc.extend({type:ba.literal("state-icon"),entity:ba.string(),icon:ba.string().optional(),state_color:ba.boolean().default(!0)}),Lc=Dc.extend({type:ba.literal("state-label"),entity:ba.string(),attribute:ba.string().optional(),prefix:ba.string().optional(),suffix:ba.string().optional()}),Nc=Dc.extend({type:ba.literal("service-button"),title:ba.string(),service:ba.string(),service_data:ba.object({}).passthrough().optional()}),Fc=Dc.extend({type:ba.literal("icon"),icon:ba.string(),entity:ba.string().optional()}),Vc=Dc.extend({type:ba.literal("image"),entity:ba.string().optional(),image:ba.string().optional(),camera_image:ba.string().optional(),camera_view:ba.string().optional(),state_image:ba.object({}).passthrough().optional(),filter:ba.string().optional(),state_filter:ba.object({}).passthrough().optional(),aspect_ratio:ba.string().optional()}),Hc=ba.object({condition:ba.literal("state").optional(),entity:ba.string(),state:ba.string().or(ba.string().array()).optional(),state_not:ba.string().or(ba.string().array()).optional()}),Bc=ba.object({condition:ba.literal("numeric_state"),entity:ba.string(),above:ba.number().optional(),below:ba.number().optional()}),qc=ba.object({condition:ba.literal("screen"),media_query:ba.string()}),Uc=ba.object({condition:ba.literal("user"),users:ba.string().array().min(1)}),Wc=ba.discriminatedUnion("condition",[Hc,Bc,qc,Uc]),Zc=ba.object({type:ba.literal("conditional"),conditions:Wc.array(),elements:ba.lazy((()=>yl))}),Qc=ba.object({type:ba.string().superRefine(((e,t)=>{e.match(/^custom:(?!frigate-card).+/)||t.addIssue({code:ba.ZodIssueCode.custom,message:"Frigate-card custom elements must match specific schemas",fatal:!0})}))}).passthrough(),Gc=ba.object({enabled:ba.boolean().default(!0).optional(),priority:ba.number().min(0).max(Us).default(50).optional(),alignment:ba.enum(["matching","opposing"]).default("matching").optional(),icon:ba.string().optional(),permanent:ba.boolean().default(!1).optional()}),Yc=Gc.merge(Fc).extend({type:ba.literal("custom:frigate-card-menu-icon")}),Kc=Gc.merge(Pc).extend({type:ba.literal("custom:frigate-card-menu-state-icon")}).merge(Gc),Xc=Dc.extend({entity:ba.string().optional(),icon:ba.string().optional(),state_color:ba.boolean().default(!0),selected:ba.boolean().default(!1),subtitle:ba.string().optional(),enabled:ba.boolean().default(!0)}),Jc=Gc.merge(Fc).extend({type:ba.literal("custom:frigate-card-menu-submenu"),items:Xc.array()}),el=Gc.merge(Pc).extend({type:ba.literal("custom:frigate-card-menu-submenu-select"),options:ba.record(Xc.deepPartial()).optional()}),tl=ba.object({enabled:ba.boolean().default(!0).optional(),priority:ba.number().min(0).max(100).default(50).optional()}),nl=tl.extend({sufficient:ba.boolean().default(!1).optional(),exclusive:ba.boolean().default(!1).optional(),expand:ba.boolean().default(!1).optional(),actions:jc.optional()}),al=nl.extend({type:ba.literal("custom:frigate-card-status-bar-icon"),icon:ba.string()}),il=nl.extend({type:ba.literal("custom:frigate-card-status-bar-image"),image:ba.string()}),rl=nl.extend({type:ba.literal("custom:frigate-card-status-bar-string"),string:ba.string()}),ol=ba.union([al,il,rl]),sl=ba.object({condition:ba.literal("view"),views:ba.string().array()}),cl=ba.object({condition:ba.literal("fullscreen"),fullscreen:ba.boolean()}),ll=ba.object({condition:ba.literal("expand"),expand:ba.boolean()}),dl=ba.object({condition:ba.literal("camera"),cameras:ba.string().array()}),ul=ba.object({condition:ba.literal("media_loaded"),media_loaded:ba.boolean()}),hl=ba.object({condition:ba.literal("display_mode"),display_mode:ic}),pl=ba.object({condition:ba.literal("triggered"),triggered:ba.string().array()}),ml=ba.object({condition:ba.literal("interaction"),interaction:ba.boolean()}),gl=ba.object({condition:ba.literal("microphone"),connected:ba.boolean().optional(),muted:ba.boolean().optional()}),fl=ba.object({condition:ba.literal("key"),key:ba.string(),state:ba.enum(["down","up"]).optional(),ctrl:ba.boolean().optional(),shift:ba.boolean().optional(),alt:ba.boolean().optional(),meta:ba.boolean().optional()}),_l=ba.discriminatedUnion("condition",[Hc,Bc,qc,Uc,sl,cl,ll,dl,ul,hl,pl,ml,gl,fl]),vl=ba.object({type:ba.literal("custom:frigate-card-conditional"),conditions:_l.array(),elements:ba.lazy((()=>yl))}),yl=ba.union([Zc,Qc,vl,Fc,Vc,Yc,Kc,Jc,el,Nc,Rc,Pc,Lc,al,il,rl]).array().optional(),bl=ba.object({fit:ba.enum(["contain","cover","fill"]).optional(),position:ba.object({x:ba.number().min(0).max(100).optional(),y:ba.number().min(0).max(100).optional()}).optional(),view_box:ba.object({bottom:ba.number().min(0).max(100).optional().default(0),left:ba.number().min(0).max(100).optional().default(0),right:ba.number().min(0).max(100).optional().default(0),top:ba.number().min(0).max(100).optional().default(0)}).optional(),pan:nc.optional(),zoom:ac.optional()}),wl=ba.number().array().length(2).or(ba.string().regex(/^\s*\d+\.?\d*\s*[:/]\s*\d+\.?\d*\s*$/).transform((e=>e.split(/[:\/]/).map((e=>Number(e)))))),xl={r2c_delay_between_calls_seconds:.5,c2r_delay_between_calls_seconds:.2},Cl=function(e){return t=>{if(!t||"object"!=typeof t||!t.service)return t;const n={...t};return Object.keys(t).forEach((a=>{const i=a.match(/^data_(.+)$/),r=i?.[1];r&&!(`${e}${r}`in t)&&(n[`${e}${r}`]={action:"perform-action",perform_action:t.service,data:t[a]},delete n[a],delete n.service)})),n}},Ml=ba.preprocess(Cl("actions_"),ba.object({actions_left:lc.optional(),actions_left_start:lc.optional(),actions_left_stop:lc.optional(),actions_right:lc.optional(),actions_right_start:lc.optional(),actions_right_stop:lc.optional(),actions_up:lc.optional(),actions_up_start:lc.optional(),actions_up_stop:lc.optional(),actions_down:lc.optional(),actions_down_start:lc.optional(),actions_down_stop:lc.optional(),actions_zoom_in:lc.optional(),actions_zoom_in_start:lc.optional(),actions_zoom_in_stop:lc.optional(),actions_zoom_out:lc.optional(),actions_zoom_out_start:lc.optional(),actions_zoom_out_stop:lc.optional(),r2c_delay_between_calls_seconds:ba.number().default(xl.r2c_delay_between_calls_seconds),c2r_delay_between_calls_seconds:ba.number().default(xl.c2r_delay_between_calls_seconds),presets:ba.preprocess(Cl(""),ba.union([ba.record(lc),ba.object({service:ba.string().optional()})])).optional(),service:ba.string().optional()}).passthrough()),kl={orientation:"horizontal",mode:"auto",hide_pan_tilt:!1,hide_zoom:!1,hide_home:!1,position:"bottom-right"},Sl=ba.object({mode:ba.enum(["off","auto","on"]).default(kl.mode),position:ba.enum(["top-left","top-right","bottom-left","bottom-right"]).default(kl.position),orientation:ba.enum(["vertical","horizontal"]).default(kl.orientation),hide_pan_tilt:ba.boolean().default(kl.hide_pan_tilt),hide_zoom:ba.boolean().default(kl.hide_zoom),hide_home:ba.boolean().default(kl.hide_home),style:ba.object({}).passthrough().optional()}),El={mode:"auto",refresh_seconds:1},$l=ba.object({mode:ba.enum(["auto","camera","entity","screensaver","url"]).default(El.mode),refresh_seconds:ba.number().min(0).default(El.refresh_seconds),url:ba.string().optional(),entity:ba.string().optional(),entity_parameters:ba.string().optional()}),Al=$l.merge(Oc).default(El),zl=75,Il=300,Tl={size:100,show_details:!0,show_favorite_control:!0,show_timeline_control:!0,show_download_control:!0},jl=ba.object({size:ba.number().min(75).max(300).default(Tl.size),show_details:ba.boolean().default(Tl.show_details),show_favorite_control:ba.boolean().default(Tl.show_favorite_control),show_timeline_control:ba.boolean().default(Tl.show_timeline_control),show_download_control:ba.boolean().default(Tl.show_download_control)}),Ol={...Tl,mode:"right"},Dl=jl.extend({mode:ba.enum(["none","above","below","left","right"]).default(Ol.mode)}),Rl=ba.enum(["all","clips","snapshots"]),Pl={clustering_threshold:3,events_media_type:"all",window_seconds:3600,show_recordings:!0,style:"stack",pan_mode:"pan"},Ll=ba.enum(["pan","seek","seek-in-media","seek-in-camera"]),Nl=ba.object({clustering_threshold:ba.number().optional().default(Pl.clustering_threshold),events_media_type:Rl.optional().default(Pl.events_media_type),window_seconds:ba.number().min(60).max(86400).optional().default(Pl.window_seconds),show_recordings:ba.boolean().optional().default(Pl.show_recordings),style:ba.enum(["stack","ribbon"]).optional().default(Pl.style),pan_mode:Ll.optional().default(Pl.pan_mode)}),Fl={...Pl,mode:"none",style:"ribbon"},Vl=Nl.extend({mode:ba.enum(["none","above","below"]).default(Fl.mode),style:Nl.shape.style.default(Fl.style)}),Hl={...Pl,controls:{thumbnails:Ol}},Bl=Nl.extend({controls:ba.object({thumbnails:Dl.default(Hl.controls.thumbnails)}).default(Hl.controls)}).default(Hl),ql=ba.object({style:ba.enum(["none","chevrons","icons","thumbnails"]),size:ba.number().min(20)}),Ul=ba.enum(["none","slide"]),Wl={always_connected:!1,disconnect_seconds:90,mute_after_microphone_mute_seconds:60},Zl=ba.object({always_connected:ba.boolean().default(Wl.always_connected),disconnect_seconds:ba.number().min(0).default(Wl.disconnect_seconds),mute_after_microphone_mute_seconds:ba.number().min(0).default(Wl.mute_after_microphone_mute_seconds)}).default(Wl),Ql=ba.object({url:ba.string().transform((e=>e.replace(/\/+$/,""))).optional(),host:ba.string().optional(),modes:ba.enum(["webrtc","mse","mp4","mjpeg"]).array().optional(),stream:ba.string().optional()}),Gl=ba.object({entity:ba.string().optional(),url:ba.string().optional()}).passthrough(),Yl=ba.object({options:ba.object({audio:ba.boolean().optional(),video:ba.boolean().optional(),pauseWhenHidden:ba.boolean().optional(),disableGl:ba.boolean().optional(),disableWebAssembly:ba.boolean().optional(),preserveDrawingBuffer:ba.boolean().optional(),progressive:ba.boolean().optional(),throttled:ba.boolean().optional(),chunkSize:ba.number().optional(),maxAudioLag:ba.number().optional(),videoBufferSize:ba.number().optional(),audioBufferSize:ba.number().optional()}).optional()}),Kl={...Ol,media_type:"events",events_media_type:"all"},Xl={auto_play:[...Ys],auto_pause:[],auto_mute:[...Xs],auto_unmute:["microphone"],preload:!1,lazy_load:!0,lazy_unload:[],draggable:!0,zoomable:!0,transition_effect:"slide",show_image_during_load:!0,mode:"single",controls:{builtin:!0,next_previous:{size:48,style:"chevrons"},ptz:kl,thumbnails:Kl,timeline:Fl},microphone:{...Wl}},Jl=Dl.extend({media_type:ba.enum(["events","recordings"]).default(Xl.controls.thumbnails.media_type),events_media_type:Rl.default(Xl.controls.thumbnails.events_media_type)}),ed=ba.object({auto_pause:ba.enum(Gs).array().default(Xl.auto_pause),auto_play:ba.enum(Ys).array().default(Xl.auto_play),auto_mute:ba.enum(Xs).array().default(Xl.auto_mute),auto_unmute:ba.enum(Ks).array().default(Xl.auto_unmute),controls:ba.object({builtin:ba.boolean().default(Xl.controls.builtin),next_previous:ql.extend({style:ba.enum(["none","chevrons","icons"]).default(Xl.controls.next_previous.style),size:ql.shape.size.default(Xl.controls.next_previous.size)}).default(Xl.controls.next_previous),ptz:Sl.default(Xl.controls.ptz),thumbnails:Jl.default(Xl.controls.thumbnails),timeline:Vl.default(Xl.controls.timeline)}).default(Xl.controls),display:rc,draggable:ba.boolean().default(Xl.draggable),lazy_load:ba.boolean().default(Xl.lazy_load),lazy_unload:ba.enum(Gs).array().default(Xl.lazy_unload),microphone:Zl.default(Xl.microphone),preload:ba.boolean().default(Xl.preload),show_image_during_load:ba.boolean().default(Xl.show_image_during_load),transition_effect:Ul.default(Xl.transition_effect),zoomable:ba.boolean().default(Xl.zoomable)}).merge(Oc).default(Xl),td=ba.object({live:ed}),nd=ba.object({method:ba.enum(["standard","dashboard"]).default("standard").optional(),dashboard:ba.object({dashboard_path:ba.string().optional(),view_path:ba.string().optional()}).optional()}),ad={dependencies:{all_cameras:!1,cameras:[]},engine:"auto",frigate:{client_id:"frigate"},live_provider:"auto",motioneye:{images:{directory_pattern:"%Y-%m-%d",file_pattern:"%H-%M-%S"},movies:{directory_pattern:"%Y-%m-%d",file_pattern:"%H-%M-%S"}},reolink:{media_resolution:"low"},ptz:xl,triggers:{motion:!1,occupancy:!1,events:[...ec],entities:[]},proxy:{media:"auto",dynamic:!0,ssl_verification:"auto",ssl_ciphers:"auto"}},id=ba.object({media:ba.boolean().or(ba.literal("auto")).default(ad.proxy.media),dynamic:ba.boolean().default(ad.proxy.dynamic),ssl_verification:ba.boolean().or(ba.literal("auto")).default(ad.proxy.ssl_verification),ssl_ciphers:ba.enum(["default","insecure","intermediate","modern"]).or(ba.literal("auto")).default(ad.proxy.ssl_ciphers)}),rd=ba.object({camera_entity:ba.string().optional(),icon:ba.string().optional(),title:ba.string().optional(),capabilities:ba.object({disable:ba.enum(Ts).array().optional(),disable_except:ba.enum(Ts).array().optional()}).optional(),id:ba.string().optional(),dependencies:ba.object({all_cameras:ba.boolean().default(ad.dependencies.all_cameras),cameras:ba.string().array().default(ad.dependencies.cameras)}).default(ad.dependencies),triggers:ba.object({motion:ba.boolean().default(ad.triggers.motion),occupancy:ba.boolean().default(ad.triggers.occupancy),entities:ba.string().array().default(ad.triggers.entities),events:ba.enum(ec).array().default(ad.triggers.events)}).default(ad.triggers),engine:ba.enum(["auto","frigate","generic","motioneye","reolink"]).default("auto"),frigate:ba.object({url:ba.string().optional(),client_id:ba.string().default(ad.frigate.client_id),camera_name:ba.string().optional(),labels:ba.string().array().optional(),zones:ba.string().array().optional()}).default(ad.frigate),motioneye:ba.object({url:ba.string().optional(),images:ba.object({directory_pattern:ba.string().includes("%").default(ad.motioneye.images.directory_pattern),file_pattern:ba.string().includes("%").default(ad.motioneye.images.file_pattern)}).default(ad.motioneye.images),movies:ba.object({directory_pattern:ba.string().includes("%").default(ad.motioneye.movies.directory_pattern),file_pattern:ba.string().includes("%").default(ad.motioneye.movies.file_pattern)}).default(ad.motioneye.movies)}).default(ad.motioneye),reolink:ba.object({url:ba.string().optional(),media_resolution:ba.enum(["high","low"]).default(ad.reolink.media_resolution)}).default(ad.reolink),live_provider:ba.enum(["auto","image","ha","jsmpeg","go2rtc","webrtc-card"]).default(ad.live_provider),go2rtc:Ql.optional(),image:$l.optional().default(El),jsmpeg:Yl.optional(),webrtc_card:Gl.optional(),cast:nd.optional(),ptz:Ml.default(ad.ptz),dimensions:ba.object({aspect_ratio:wl.optional(),layout:bl.optional()}).optional(),proxy:id.default(ad.proxy)}).default(ad),od=rd.array().min(1),sd={default:Qs,camera_select:"current",interaction_seconds:300,default_reset:{every_seconds:0,after_interaction:!1,entities:[],interaction_mode:"inactive"},default_cycle_camera:!1,dark_mode:"off",triggers:{show_trigger_status:!1,filter_selected_camera:!0,actions:{trigger:"update",untrigger:"none"},untrigger_seconds:0},keyboard_shortcuts:Fs},cd=ba.enum(["all","inactive","active"]).default("inactive"),ld=ba.object({actions:ba.object({interaction_mode:cd,trigger:ba.enum(["default","live","media","none","update"]).default(sd.triggers.actions.trigger),untrigger:ba.enum(["default","none"]).default(sd.triggers.actions.untrigger)}).default(sd.triggers.actions),filter_selected_camera:ba.boolean().default(sd.triggers.filter_selected_camera),show_trigger_status:ba.boolean().default(sd.triggers.show_trigger_status),untrigger_seconds:ba.number().default(sd.triggers.untrigger_seconds)}),dd=ba.object({default:ba.enum(Zs).default(sd.default),camera_select:ba.enum([...Zs,"current"]).default(sd.camera_select),interaction_seconds:ba.number().default(sd.interaction_seconds),default_cycle_camera:ba.boolean().default(sd.default_cycle_camera),default_reset:ba.object({after_interaction:ba.boolean().default(sd.default_reset.after_interaction),every_seconds:ba.number().default(sd.default_reset.every_seconds),entities:ba.string().array().default(sd.default_reset.entities),interaction_mode:cd.default(sd.default_reset.interaction_mode)}).default(sd.default_reset),render_entities:ba.string().array().optional(),dark_mode:ba.enum(["on","off","auto"]).optional(),triggers:ld.default(sd.triggers),keyboard_shortcuts:Vs.default(sd.keyboard_shortcuts)}).merge(Oc).default(sd),ud=["left","right","top","bottom"],hd=ud,pd={priority:50,enabled:!0},md={priority:50,enabled:!1},gd={alignment:"left",button_size:40,buttons:{camera_ui:pd,cameras:pd,clips:pd,ptz_home:md,display_mode:pd,download:pd,expand:md,frigate:pd,fullscreen:pd,image:md,live:pd,media_player:pd,microphone:{...md,type:"momentary"},mute:md,play:md,ptz_controls:md,recordings:md,screenshot:md,snapshots:pd,substreams:pd,timeline:pd},position:"top",style:"hidden"},fd=Gc.extend({enabled:Gc.shape.enabled.default(pd.enabled),priority:Gc.shape.priority.default(pd.priority)}),_d=Gc.extend({enabled:Gc.shape.enabled.default(md.enabled),priority:Gc.shape.priority.default(md.priority)}),vd=ba.object({style:ba.enum(["none","hidden","overlay","hover","hover-card","outside"]).default(gd.style),position:ba.enum(ud).default(gd.position),alignment:ba.enum(hd).default(gd.alignment),buttons:ba.object({camera_ui:fd.default(gd.buttons.camera_ui),cameras:fd.default(gd.buttons.cameras),clips:fd.default(gd.buttons.clips),ptz_home:_d.default(gd.buttons.ptz_home),display_mode:fd.default(gd.buttons.display_mode),download:fd.default(gd.buttons.download),expand:_d.default(gd.buttons.expand),frigate:fd.default(gd.buttons.frigate),fullscreen:fd.default(gd.buttons.fullscreen),image:_d.default(gd.buttons.image),live:fd.default(gd.buttons.live),media_player:fd.default(gd.buttons.media_player),microphone:_d.extend({type:ba.enum(["momentary","toggle"]).default(gd.buttons.microphone.type)}).default(gd.buttons.microphone),mute:_d.default(gd.buttons.mute),play:_d.default(gd.buttons.play),ptz_controls:_d.default(gd.buttons.ptz_controls),recordings:_d.default(gd.buttons.recordings),screenshot:_d.default(gd.buttons.screenshot),snapshots:fd.default(gd.buttons.snapshots),substreams:fd.default(gd.buttons.substreams),timeline:fd.default(gd.buttons.timeline)}).default(gd.buttons),button_size:ba.number().min(20).default(gd.button_size)}).default(gd),yd={priority:50,enabled:!0},bd={height:46,items:{engine:yd,resolution:yd,technology:yd,title:yd},position:"bottom",style:"popup",popup_seconds:3},wd=ba.object({position:ba.enum(["top","bottom"]).default(bd.position),style:ba.enum(["none","overlay","hover","hover-card","outside","popup"]).default(bd.style),popup_seconds:ba.number().min(0).max(60).default(bd.popup_seconds),height:ba.number().min(20).default(bd.height),items:ba.object({engine:tl.default(bd.items.engine),technology:tl.default(bd.items.technology),resolution:tl.default(bd.items.resolution),title:tl.default(bd.items.title)}).default(bd.items)}).default(bd),xd={auto_play:[...Ys],auto_pause:[...Gs],auto_mute:[...Gs],auto_unmute:[],lazy_load:!0,draggable:!0,zoomable:!0,transition_effect:"slide",snapshot_click_plays_clip:!0,display_mode:"single",controls:{builtin:!0,next_previous:{size:48,style:"thumbnails"},thumbnails:Ol,timeline:Fl,ptz:{...kl,mode:"off"}}},Cd=ql.extend({style:ba.enum(["none","thumbnails","chevrons"]).default(xd.controls.next_previous.style),size:ql.shape.size.default(xd.controls.next_previous.size)}),Md=ba.object({auto_play:ba.enum(Ys).array().default(xd.auto_play),auto_pause:ba.enum(Gs).array().default(xd.auto_pause),auto_mute:ba.enum(Gs).array().default(xd.auto_mute),auto_unmute:ba.enum(Ys).array().default(xd.auto_unmute),lazy_load:ba.boolean().default(xd.lazy_load),draggable:ba.boolean().default(xd.draggable),zoomable:ba.boolean().default(xd.zoomable),transition_effect:Ul.default(xd.transition_effect),snapshot_click_plays_clip:ba.boolean().default(xd.snapshot_click_plays_clip),display:rc,controls:ba.object({builtin:ba.boolean().default(xd.controls.builtin),next_previous:Cd.default(xd.controls.next_previous),ptz:Sl.extend({mode:ba.enum(["off","on"]).default(xd.controls.ptz.mode)}).default(xd.controls.ptz),thumbnails:Dl.default(xd.controls.thumbnails),timeline:Vl.default(xd.controls.timeline)}).default(xd.controls)}).merge(Oc).default(xd),kd={...Ol,show_details:!1},Sd={controls:{thumbnails:kd,filter:{mode:"right"}}},Ed=Dl.extend({show_details:ba.boolean().default(kd.show_details)}),$d=ba.object({controls:ba.object({thumbnails:Ed.default(Sd.controls.thumbnails),filter:ba.object({mode:ba.enum(["none","left","right"]).default(Sd.controls.filter.mode)}).default(Sd.controls.filter)}).default(Sd.controls)}).merge(Oc).default(Sd),Ad={aspect_ratio_mode:"dynamic",aspect_ratio:[16,9],height:"auto"},zd=ba.object({aspect_ratio_mode:ba.enum(["dynamic","static","unconstrained"]).default(Ad.aspect_ratio_mode),aspect_ratio:wl.default(Ad.aspect_ratio),height:ba.string().default(Ad.height)}).default(Ad),Id=ba.object({conditions:_l.array(),merge:ba.object({}).passthrough().optional(),set:ba.object({}).passthrough().optional(),delete:ba.string().array().optional()}).array().optional(),Td=Tc.array(),jd=ba.object({conditions:_l.array(),actions:Td.optional(),actions_not:Td.optional()}).refine((e=>e.actions?.length||e.actions_not?.length),"Automations must include at least one action").array(),Od={features:{animated_progress_indicator:!0,media_chunk_size:50},style:{border_radius:!0,box_shadow:!0}},Dd=ba.object({features:ba.object({animated_progress_indicator:ba.boolean().default(Od.features.animated_progress_indicator),media_chunk_size:ba.number().min(0).max(1e3).default(Od.features.media_chunk_size),max_simultaneous_engine_requests:ba.number().min(1).optional()}).default(Od.features),style:ba.object({border_radius:ba.boolean().default(Od.style.border_radius),box_shadow:ba.boolean().default(Od.style.box_shadow)}).default(Od.style)}).default(Od),Rd={logging:!1},Pd=ba.object({logging:ba.boolean().default(Rd.logging)}).default(Rd),Ld=ba.enum(["casting","low-performance","scrubbing"]).array().optional(),Nd=ba.object({cameras:Ds(od),cameras_global:rd,view:dd,menu:vd,status_bar:wd,live:ed,media_gallery:$d,media_viewer:Md,image:Al,elements:yl,dimensions:zd,timeline:Bl,performance:Dd,debug:Pd,automations:jd.optional(),profiles:Ld,overrides:Id,card_mod:ba.unknown(),card_id:ba.string().regex(tc).optional(),type:ba.string()}),Fd={cameras:ad,view:sd,menu:gd,status_bar:bd,live:Xl,media_gallery:Sd,media_viewer:xd,image:El,timeline:Hl,performance:Od,debug:Rd};function Vd(e){const t=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===t?new e.constructor(+e):"number"==typeof e||"[object Number]"===t||"string"==typeof e||"[object String]"===t?new Date(e):new Date(NaN)}function Hd(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function Bd(e,t){const n=Vd(e);return isNaN(t)?Hd(e,NaN):t?(n.setDate(n.getDate()+t),n):n}function qd(e,t){const n=Vd(e);if(isNaN(t))return Hd(e,NaN);if(!t)return n;const a=n.getDate(),i=Hd(e,n.getTime());i.setMonth(n.getMonth()+t+1,0);return a>=i.getDate()?i:(n.setFullYear(i.getFullYear(),i.getMonth(),a),n)}function Ud(e,t){const{years:n=0,months:a=0,weeks:i=0,days:r=0,hours:o=0,minutes:s=0,seconds:c=0}=t,l=Vd(e),d=a||n?qd(l,a+12*n):l,u=1e3*(c+60*(s+60*o));return Hd(e,(r||i?Bd(d,r+7*i):d).getTime()+u)}const Wd=6048e5,Zd=864e5,Qd=6e4,Gd=36e5,Yd=1e3;let Kd={};function Xd(){return Kd}function Jd(e,t){const n=Xd(),a=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=Vd(e),r=i.getDay(),o=(r=i.getTime()?n+1:t.getTime()>=o.getTime()?n:n-1}function nu(e){const t=Vd(e);return t.setHours(0,0,0,0),t}function au(e){const t=Vd(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function iu(e){if(!(t=e,t instanceof Date||"object"==typeof t&&"[object Date]"===Object.prototype.toString.call(t)||"number"==typeof e))return!1;var t;const n=Vd(e);return!isNaN(Number(n))}function ru(e){return t=>{const n=(e?Math[e]:Math.trunc)(t);return 0===n?0:n}}function ou(e,t){return+Vd(e)-+Vd(t)}function su(e,t,n){const a=ou(e,t)/1e3;return ru(n?.roundingMethod)(a)}const cu={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function lu(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const du={date:lu({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:lu({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:lu({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},uu={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function hu(e){return(t,n)=>{let a;if("formatting"===(n?.context?String(n.context):"standalone")&&e.formattingValues){const t=e.defaultFormattingWidth||e.defaultWidth,i=n?.width?String(n.width):t;a=e.formattingValues[i]||e.formattingValues[t]}else{const t=e.defaultWidth,i=n?.width?String(n.width):e.defaultWidth;a=e.values[i]||e.values[t]}return a[e.argumentCallback?e.argumentCallback(t):t]}}function pu(e){return(t,n={})=>{const a=n.width,i=a&&e.matchPatterns[a]||e.matchPatterns[e.defaultMatchWidth],r=t.match(i);if(!r)return null;const o=r[0],s=a&&e.parsePatterns[a]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(s)?function(e,t){for(let n=0;ne.test(o))):function(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n;return}(s,(e=>e.test(o)));let l;l=e.valueCallback?e.valueCallback(c):c,l=n.valueCallback?n.valueCallback(l):l;return{value:l,rest:t.slice(o.length)}}}var mu;const gu={code:"en-US",formatDistance:(e,t,n)=>{let a;const i=cu[e];return a="string"==typeof i?i:1===t?i.one:i.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+a:a+" ago":a},formatLong:du,formatRelative:(e,t,n,a)=>uu[e],localize:{ordinalNumber:(e,t)=>{const n=Number(e),a=n%100;if(a>20||a<10)switch(a%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:hu({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:hu({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:e=>e-1}),month:hu({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:hu({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:hu({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(mu={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)},(e,t={})=>{const n=e.match(mu.matchPattern);if(!n)return null;const a=n[0],i=e.match(mu.parsePattern);if(!i)return null;let r=mu.valueCallback?mu.valueCallback(i[0]):i[0];return r=t.valueCallback?t.valueCallback(r):r,{value:r,rest:e.slice(a.length)}}),era:pu({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:pu({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:e=>e+1}),month:pu({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:pu({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:pu({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function fu(e){const t=Vd(e),n=function(e,t){const n=nu(e),a=nu(t),i=+n-au(n),r=+a-au(a);return Math.round((i-r)/Zd)}(t,function(e){const t=Vd(e),n=Hd(e,0);return n.setFullYear(t.getFullYear(),0,1),n.setHours(0,0,0,0),n}(t));return n+1}function _u(e){const t=Vd(e),n=+eu(t)-+function(e){const t=tu(e),n=Hd(e,0);return n.setFullYear(t,0,4),n.setHours(0,0,0,0),eu(n)}(t);return Math.round(n/Wd)+1}function vu(e,t){const n=Vd(e),a=n.getFullYear(),i=Xd(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,o=Hd(e,0);o.setFullYear(a+1,0,r),o.setHours(0,0,0,0);const s=Jd(o,t),c=Hd(e,0);c.setFullYear(a,0,r),c.setHours(0,0,0,0);const l=Jd(c,t);return n.getTime()>=s.getTime()?a+1:n.getTime()>=l.getTime()?a:a-1}function yu(e,t){const n=Vd(e),a=+Jd(n,t)-+function(e,t){const n=Xd(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,i=vu(e,t),r=Hd(e,0);return r.setFullYear(i,0,a),r.setHours(0,0,0,0),Jd(r,t)}(n,t);return Math.round(a/Wd)+1}function bu(e,t){return(e<0?"-":"")+Math.abs(e).toString().padStart(t,"0")}const wu={y(e,t){const n=e.getFullYear(),a=n>0?n:1-n;return bu("yy"===t?a%100:a,t.length)},M(e,t){const n=e.getMonth();return"M"===t?String(n+1):bu(n+1,2)},d:(e,t)=>bu(e.getDate(),t.length),a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];default:return"am"===n?"a.m.":"p.m."}},h:(e,t)=>bu(e.getHours()%12||12,t.length),H:(e,t)=>bu(e.getHours(),t.length),m:(e,t)=>bu(e.getMinutes(),t.length),s:(e,t)=>bu(e.getSeconds(),t.length),S(e,t){const n=t.length,a=e.getMilliseconds();return bu(Math.trunc(a*Math.pow(10,n-3)),t.length)}},xu="midnight",Cu="noon",Mu="morning",ku="afternoon",Su="evening",Eu="night",$u={G:function(e,t,n){const a=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(a,{width:"abbreviated"});case"GGGGG":return n.era(a,{width:"narrow"});default:return n.era(a,{width:"wide"})}},y:function(e,t,n){if("yo"===t){const t=e.getFullYear(),a=t>0?t:1-t;return n.ordinalNumber(a,{unit:"year"})}return wu.y(e,t)},Y:function(e,t,n,a){const i=vu(e,a),r=i>0?i:1-i;if("YY"===t){return bu(r%100,2)}return"Yo"===t?n.ordinalNumber(r,{unit:"year"}):bu(r,t.length)},R:function(e,t){return bu(tu(e),t.length)},u:function(e,t){return bu(e.getFullYear(),t.length)},Q:function(e,t,n){const a=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(a);case"QQ":return bu(a,2);case"Qo":return n.ordinalNumber(a,{unit:"quarter"});case"QQQ":return n.quarter(a,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(a,{width:"narrow",context:"formatting"});default:return n.quarter(a,{width:"wide",context:"formatting"})}},q:function(e,t,n){const a=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(a);case"qq":return bu(a,2);case"qo":return n.ordinalNumber(a,{unit:"quarter"});case"qqq":return n.quarter(a,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(a,{width:"narrow",context:"standalone"});default:return n.quarter(a,{width:"wide",context:"standalone"})}},M:function(e,t,n){const a=e.getMonth();switch(t){case"M":case"MM":return wu.M(e,t);case"Mo":return n.ordinalNumber(a+1,{unit:"month"});case"MMM":return n.month(a,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(a,{width:"narrow",context:"formatting"});default:return n.month(a,{width:"wide",context:"formatting"})}},L:function(e,t,n){const a=e.getMonth();switch(t){case"L":return String(a+1);case"LL":return bu(a+1,2);case"Lo":return n.ordinalNumber(a+1,{unit:"month"});case"LLL":return n.month(a,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(a,{width:"narrow",context:"standalone"});default:return n.month(a,{width:"wide",context:"standalone"})}},w:function(e,t,n,a){const i=yu(e,a);return"wo"===t?n.ordinalNumber(i,{unit:"week"}):bu(i,t.length)},I:function(e,t,n){const a=_u(e);return"Io"===t?n.ordinalNumber(a,{unit:"week"}):bu(a,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getDate(),{unit:"date"}):wu.d(e,t)},D:function(e,t,n){const a=fu(e);return"Do"===t?n.ordinalNumber(a,{unit:"dayOfYear"}):bu(a,t.length)},E:function(e,t,n){const a=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(a,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(a,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},e:function(e,t,n,a){const i=e.getDay(),r=(i-a.weekStartsOn+8)%7||7;switch(t){case"e":return String(r);case"ee":return bu(r,2);case"eo":return n.ordinalNumber(r,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(e,t,n,a){const i=e.getDay(),r=(i-a.weekStartsOn+8)%7||7;switch(t){case"c":return String(r);case"cc":return bu(r,t.length);case"co":return n.ordinalNumber(r,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(e,t,n){const a=e.getDay(),i=0===a?7:a;switch(t){case"i":return String(i);case"ii":return bu(i,t.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(a,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(a,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},a:function(e,t,n){const a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(e,t,n){const a=e.getHours();let i;switch(i=12===a?Cu:0===a?xu:a/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(i,{width:"narrow",context:"formatting"});default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},B:function(e,t,n){const a=e.getHours();let i;switch(i=a>=17?Su:a>=12?ku:a>=4?Mu:Eu,t){case"B":case"BB":case"BBB":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(i,{width:"narrow",context:"formatting"});default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){let t=e.getHours()%12;return 0===t&&(t=12),n.ordinalNumber(t,{unit:"hour"})}return wu.h(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getHours(),{unit:"hour"}):wu.H(e,t)},K:function(e,t,n){const a=e.getHours()%12;return"Ko"===t?n.ordinalNumber(a,{unit:"hour"}):bu(a,t.length)},k:function(e,t,n){let a=e.getHours();return 0===a&&(a=24),"ko"===t?n.ordinalNumber(a,{unit:"hour"}):bu(a,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):wu.m(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getSeconds(),{unit:"second"}):wu.s(e,t)},S:function(e,t){return wu.S(e,t)},X:function(e,t,n){const a=e.getTimezoneOffset();if(0===a)return"Z";switch(t){case"X":return zu(a);case"XXXX":case"XX":return Iu(a);default:return Iu(a,":")}},x:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"x":return zu(a);case"xxxx":case"xx":return Iu(a);default:return Iu(a,":")}},O:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+Au(a,":");default:return"GMT"+Iu(a,":")}},z:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+Au(a,":");default:return"GMT"+Iu(a,":")}},t:function(e,t,n){return bu(Math.trunc(e.getTime()/1e3),t.length)},T:function(e,t,n){return bu(e.getTime(),t.length)}};function Au(e,t=""){const n=e>0?"-":"+",a=Math.abs(e),i=Math.trunc(a/60),r=a%60;return 0===r?n+String(i):n+String(i)+t+bu(r,2)}function zu(e,t){if(e%60==0){return(e>0?"-":"+")+bu(Math.abs(e)/60,2)}return Iu(e,t)}function Iu(e,t=""){const n=e>0?"-":"+",a=Math.abs(e);return n+bu(Math.trunc(a/60),2)+t+bu(a%60,2)}const Tu=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},ju=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},Ou={p:ju,P:(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],a=n[1],i=n[2];if(!i)return Tu(e,t);let r;switch(a){case"P":r=t.dateTime({width:"short"});break;case"PP":r=t.dateTime({width:"medium"});break;case"PPP":r=t.dateTime({width:"long"});break;default:r=t.dateTime({width:"full"})}return r.replace("{{date}}",Tu(a,t)).replace("{{time}}",ju(i,t))}},Du=/^D+$/,Ru=/^Y+$/,Pu=["D","DD","YY","YYYY"];function Lu(e){return Du.test(e)}function Nu(e){return Ru.test(e)}function Fu(e,t,n){const a=function(e,t,n){const a="Y"===e[0]?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${a} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}(e,t,n);if(console.warn(a),Pu.includes(e))throw new RangeError(a)}const Vu=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Hu=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Bu=/^'([^]*?)'?$/,qu=/''/g,Uu=/[a-zA-Z]/;function Wu(e,t,n){const a=Xd(),i=n?.locale??a.locale??gu,r=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,o=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??a.weekStartsOn??a.locale?.options?.weekStartsOn??0,s=Vd(e);if(!iu(s))throw new RangeError("Invalid time value");let c=t.match(Hu).map((e=>{const t=e[0];if("p"===t||"P"===t){return(0,Ou[t])(e,i.formatLong)}return e})).join("").match(Vu).map((e=>{if("''"===e)return{isToken:!1,value:"'"};const t=e[0];if("'"===t)return{isToken:!1,value:Zu(e)};if($u[t])return{isToken:!0,value:e};if(t.match(Uu))throw new RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return{isToken:!1,value:e}}));i.localize.preprocessor&&(c=i.localize.preprocessor(s,c));const l={firstWeekContainsDate:r,weekStartsOn:o,locale:i};return c.map((a=>{if(!a.isToken)return a.value;const r=a.value;(!n?.useAdditionalWeekYearTokens&&Nu(r)||!n?.useAdditionalDayOfYearTokens&&Lu(r))&&Fu(r,t,String(e));return(0,$u[r[0]])(s,r,i.localize,l)})).join("")}function Zu(e){const t=e.match(Bu);return t?t[1].replace(qu,"'"):e}function Qu(e,t){const{years:n=0,months:a=0,weeks:i=0,days:r=0,hours:o=0,minutes:s=0,seconds:c=0}=t,l=function(e,t){return qd(e,-t)}(e,a+12*n),d=function(e,t){return Bd(e,-t)}(l,r+7*i),u=1e3*(c+60*(s+60*o));return Hd(e,d.getTime()-u)}function Gu(e,t){return e===t||e!=e&&t!=t}function Yu(e,t){for(var n=e.length;n--;)if(Gu(e[n][0],t))return n;return-1}var Ku=Array.prototype.splice;function Xu(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1},Xu.prototype.set=function(e,t){var n=this.__data__,a=Yu(n,e);return a<0?(++this.size,n.push([e,t])):n[a][1]=t,this};var Ju="object"==typeof global&&global&&global.Object===Object&&global,eh="object"==typeof self&&self&&self.Object===Object&&self,th=Ju||eh||Function("return this")(),nh=th.Symbol,ah=Object.prototype,ih=ah.hasOwnProperty,rh=ah.toString,oh=nh?nh.toStringTag:void 0;var sh=Object.prototype.toString;var ch="[object Null]",lh="[object Undefined]",dh=nh?nh.toStringTag:void 0;function uh(e){return null==e?void 0===e?lh:ch:dh&&dh in Object(e)?function(e){var t=ih.call(e,oh),n=e[oh];try{e[oh]=void 0;var a=!0}catch(e){}var i=rh.call(e);return a&&(t?e[oh]=n:delete e[oh]),i}(e):function(e){return sh.call(e)}(e)}function hh(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}var ph="[object AsyncFunction]",mh="[object Function]",gh="[object GeneratorFunction]",fh="[object Proxy]";function _h(e){if(!hh(e))return!1;var t=uh(e);return t==mh||t==gh||t==ph||t==fh}var vh,yh=th["__core-js_shared__"],bh=(vh=/[^.]+$/.exec(yh&&yh.keys&&yh.keys.IE_PROTO||""))?"Symbol(src)_1."+vh:"";var wh=Function.prototype.toString;function xh(e){if(null!=e){try{return wh.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var Ch=/^\[object .+?Constructor\]$/,Mh=Function.prototype,kh=Object.prototype,Sh=Mh.toString,Eh=kh.hasOwnProperty,$h=RegExp("^"+Sh.call(Eh).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ah(e){return!(!hh(e)||(t=e,bh&&bh in t))&&(_h(e)?$h:Ch).test(xh(e));var t}function zh(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return Ah(n)?n:void 0}var Ih=zh(th,"Map"),Th=zh(Object,"create");var jh=Object.prototype.hasOwnProperty;var Oh=Object.prototype.hasOwnProperty;function Dh(e){var t=-1,n=null==e?0:e.length;for(this.clear();++ts))return!1;var l=r.get(e),d=r.get(t);if(l&&d)return l==t&&d==e;var u=-1,h=!0,p=n&Bh?new Nh:void 0;for(r.set(e,t),r.set(t,e);++u-1&&e%1==0&&e-1&&e%1==0&&e<=Ap}var Ip={};function Tp(e){return function(t){return e(t)}}Ip["[object Float32Array]"]=Ip["[object Float64Array]"]=Ip["[object Int8Array]"]=Ip["[object Int16Array]"]=Ip["[object Int32Array]"]=Ip["[object Uint8Array]"]=Ip["[object Uint8ClampedArray]"]=Ip["[object Uint16Array]"]=Ip["[object Uint32Array]"]=!0,Ip["[object Arguments]"]=Ip["[object Array]"]=Ip["[object ArrayBuffer]"]=Ip["[object Boolean]"]=Ip["[object DataView]"]=Ip["[object Date]"]=Ip["[object Error]"]=Ip["[object Function]"]=Ip["[object Map]"]=Ip["[object Number]"]=Ip["[object Object]"]=Ip["[object RegExp]"]=Ip["[object Set]"]=Ip["[object String]"]=Ip["[object WeakMap]"]=!1;var jp="object"==typeof exports&&exports&&!exports.nodeType&&exports,Op=jp&&"object"==typeof module&&module&&!module.nodeType&&module,Dp=Op&&Op.exports===jp&&Ju.process,Rp=function(){try{var e=Op&&Op.require&&Op.require("util").types;return e||Dp&&Dp.binding&&Dp.binding("util")}catch(e){}}(),Pp=Rp,Lp=Pp&&Pp.isTypedArray,Np=Lp?Tp(Lp):function(e){return fp(e)&&zp(e.length)&&!!Ip[uh(e)]},Fp=Object.prototype.hasOwnProperty;function Vp(e,t){var n=dp(e),a=!n&&wp(e),i=!n&&!a&&kp(e),r=!n&&!a&&!i&&Np(e),o=n||a||i||r,s=o?function(e,t){for(var n=-1,a=Array(e);++n0){if(++og>=800)return arguments[0]}else og=0;return rg.apply(void 0,arguments)});function lg(e,t){return cg(function(e,t,n){return t=tg(void 0===t?e.length-1:t,0),function(){for(var a=arguments,i=-1,r=tg(a.length-t,0),o=Array(r);++i1?n[i-1]:void 0,o=i>2?n[2]:void 0;for(r=e.length>3&&"function"==typeof r?(i--,r):void 0,o&&dg(n[0],n[1],o)&&(r=i<3?void 0:r,i=1),t=Object(t);++a-1}function Ng(e,t,n){for(var a=-1,i=null==e?0:e.length;++a=Vg){var l=t?null:Fg(e);if(l)return Zh(l);o=!1,i=Vh,c=new Nh}else c=t?[]:s;e:for(;++ae[0].toUpperCase()+e.substring(1))).join(" ")}function Ug(e,t,n){const a=e[t];return e.splice(t,1),e.splice(n,0,a),e}const Wg=e=>Array.isArray(e)?e:[e],Zg=e=>e instanceof Set?e:new Set(Wg(e));function Qg(e,t,n){return!function(e,t,n){var a=(n="function"==typeof n?n:void 0)?n(e,t):void 0;return void 0===a?bm(e,t,void 0,n):!!a}(e,t,n)}function Gg(e,t=console.warn){e instanceof zs&&e.context?t(e,e.context):t("object"==typeof e&&"message"in e?e.message:e)}const Yg=()=>window.matchMedia("(hover: hover) and (pointer: fine)").matches,Kg=(e,t)=>Wu(e,"yyyy-MM-dd HH:mm"+(t?":ss":"")),Xg=e=>Wu(e,"yyyy-MM-dd"),Jg=(e,t)=>{window.requestIdleCallback?window.requestIdleCallback(e,{...t&&{timeout:t}}):e()};function ef(e,t){const n=function(e,t,n){const a=ou(e,t)/Gd;return ru(n?.roundingMethod)(a)}(t,e),a=function(e,t,n){const a=ou(e,t)/Qd;return ru(n?.roundingMethod)(a)}(t,e)-60*n;let i="";return n&&(i+=`${n}h `),a&&(i+=`${a}m `),i+=`${su(t,e)-60*n*60-60*a}s`,i}const tf=async(e,t)=>await Promise.all(Array.from(e).map((e=>t(e)))),nf=e=>new Date(`${e}T00:00:00`),af=async e=>{await new Promise((t=>setTimeout(t,1e3*e)))},rf=e=>!isNaN(e.getTime()),of=(e,t,n,a)=>{t?e.setAttribute(n,a??""):e.removeAttribute(n)},sf=e=>!!e,cf=e=>e instanceof HTMLElement,lf=e=>(e instanceof HTMLSlotElement?e.assignedElements({flatten:!0}):[...e.children]).filter(cf),df=e=>e?.ratio&&2===e.ratio.length?`${e.ratio[0]} / ${e.ratio[1]}`:e?.defaultStatic?"16 / 9":"auto",uf=e=>({"aspect-ratio":df(e)}),hf=e=>{if(Array.isArray(e))return e.filter((e=>void 0!==e)).map((e=>hf(e)));if("object"==typeof e&&null!==e){const t={};for(const n in e)t[n]=hf(e[n]);return t}return e},pf=(e,t,n)=>Rg(e,n)===Rg(t,n);function mf(e){if(!e)return null;const t=Ic.safeParse(e);return t.success?t.data:null}function gf(e,t){return{action:"fire-dom-event",frigate_card_action:e,...t?.cardID&&{card_id:t.cardID}}}function ff(e,t,n){return{action:"fire-dom-event",frigate_card_action:e,camera:t,...n?.cardID&&{card_id:n.cardID}}}function _f(e,t,n){return{action:"fire-dom-event",frigate_card_action:"media_player",media_player:e,media_player_action:t,...n?.cardID&&{card_id:n.cardID}}}function vf(e){return{action:"fire-dom-event",frigate_card_action:"ptz_multi",...e?.cardID&&{card_id:e.cardID},...e?.ptzAction&&{ptz_action:e.ptzAction},...e?.ptzPhase&&{ptz_phase:e.ptzPhase},...e?.ptzPreset&&{ptz_preset:e.ptzPreset},...e?.targetID&&{target_id:e.targetID}}}function yf(e,t){return e&&t?"tap"===e&&t.tap_action?t.tap_action:"hold"===e&&t.hold_action?t.hold_action:"double_tap"===e&&t.double_tap_action?t.double_tap_action:"end_tap"===e&&t.end_tap_action?t.end_tap_action:"start_tap"===e&&t.start_tap_action?t.start_tap_action:null:null}const bf=e=>Wg(e).some((e=>function(e){return void 0!==e&&"none"!==e.action}(e))),wf=e=>{e.stopPropagation()};class xf{constructor(){this._timer=null,this._repeated=!1}stop(){this._timer&&(this._repeated?window.clearInterval(this._timer):window.clearTimeout(this._timer),this._timer=null)}isRunning(){return null!==this._timer}start(e,t){this.stop(),this._timer=window.setTimeout((()=>{this._timer=null,t()}),1e3*e),this._repeated=!1}startRepeated(e,t){this.stop(),this._timer=window.setInterval((()=>{t()}),1e3*e),this._repeated=!0}}class Cf extends HTMLElement{constructor(){super(...arguments),this.holdTime=.4,this.holdTimer=new xf,this.doubleClickTimer=new xf,this.held=!1,this.started=!1}connectedCallback(){["touchcancel","mouseout","mouseup","touchmove","mousewheel","wheel","scroll"].forEach((e=>{document.addEventListener(e,(()=>{this.holdTimer.stop()}),{passive:!0})}))}bind(e,t){if(e.actionHandlerOptions)return void(e.actionHandlerOptions=t);e.actionHandlerOptions=t,e.addEventListener("contextmenu",(e=>{const t=e||window.event;return t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation(),t.cancelBubble=!0,t.returnValue=!1,!1}));const n=()=>{this.held=!1,this.holdTimer.start(this.holdTime,(()=>{this.held=!0})),this.started||(this.started=!0,et(e,"action",{action:"start_tap"}))},a=t=>{this.holdTimer.stop(),this.started&&(this.started=!1,et(e,"action",{action:"end_tap"}))},i=t=>{const n=e.actionHandlerOptions;n?.allowPropagation||wf(t),["touchend","touchcancel"].includes(t.type)&&!this.held||(a(),n?.hasHold&&this.held?et(e,"action",{action:"hold"}):n?.hasDoubleClick?"click"===t.type&&t.detail<2||!this.doubleClickTimer.isRunning()?this.doubleClickTimer.start(.25,(()=>et(e,"action",{action:"tap"}))):(this.doubleClickTimer.stop(),et(e,"action",{action:"double_tap"})):et(e,"action",{action:"tap"}))};e.addEventListener("touchstart",n,{passive:!0}),e.addEventListener("touchend",i),e.addEventListener("touchcancel",i),e.addEventListener("mousedown",n,{passive:!0}),e.addEventListener("click",i),e.addEventListener("keyup",(e=>{"Enter"===e.key&&i(e)})),e.addEventListener("mouseleave",a)}}customElements.define("action-handler-frigate-card",Cf);const Mf=(e,t)=>{const n=(()=>{const e=document.body;if(e.querySelector("action-handler-frigate-card"))return e.querySelector("action-handler-frigate-card");const t=document.createElement("action-handler-frigate-card");return e.appendChild(t),t})();n&&n.bind(e,t)},kf=ge(class extends fe{update(e,[t]){return Mf(e.element,t),U}render(e){}});var Sf=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)lp(t,gp(e)),e=Pm(e);return t}:hp;function Ef(e){return up(e,Km,Sf)}var $f=Object.prototype.hasOwnProperty;var Af=/\w*$/;var zf=nh?nh.prototype:void 0,If=zf?zf.valueOf:void 0;var Tf="[object Boolean]",jf="[object Date]",Of="[object Map]",Df="[object Number]",Rf="[object RegExp]",Pf="[object Set]",Lf="[object String]",Nf="[object Symbol]",Ff="[object ArrayBuffer]",Vf="[object DataView]",Hf="[object Float32Array]",Bf="[object Float64Array]",qf="[object Int8Array]",Uf="[object Int16Array]",Wf="[object Int32Array]",Zf="[object Uint8Array]",Qf="[object Uint8ClampedArray]",Gf="[object Uint16Array]",Yf="[object Uint32Array]";function Kf(e,t,n){var a,i,r,o=e.constructor;switch(t){case Ff:return Tm(e);case Tf:case jf:return new o(+e);case Vf:return function(e,t){var n=t?Tm(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case Hf:case Bf:case qf:case Uf:case Wf:case Zf:case Qf:case Gf:case Yf:return jm(e,n);case Of:return new o;case Df:case Lf:return new o(e);case Rf:return(r=new(i=e).constructor(i.source,Af.exec(i))).lastIndex=i.lastIndex,r;case Pf:return new o;case Nf:return a=e,If?Object(If.call(a)):{}}}var Xf=Pp&&Pp.isMap,Jf=Xf?Tp(Xf):function(e){return fp(e)&&"[object Map]"==pm(e)};var e_=Pp&&Pp.isSet,t_=e_?Tp(e_):function(e){return fp(e)&&"[object Set]"==pm(e)},n_=1,a_=2,i_=4,r_="[object Arguments]",o_="[object Function]",s_="[object GeneratorFunction]",c_="[object Object]",l_={};function d_(e,t,n,a,i,r){var o,s=t&n_,c=t&a_,l=t&i_;if(n&&(o=i?n(e,a,i,r):n(e)),void 0!==o)return o;if(!hh(e))return e;var d=dp(e);if(d){if(o=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&$f.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!s)return Om(e,o)}else{var u=pm(e),h=u==o_||u==s_;if(kp(e))return Im(e,s);if(u==c_||u==r_||h&&!i){if(o=c||h?{}:Lm(e),!s)return c?function(e,t){return Qm(e,Sf(e),t)}(e,function(e,t){return e&&Qm(t,Km(t),e)}(o,e)):function(e,t){return Qm(e,gp(e),t)}(e,function(e,t){return e&&Qm(t,Qp(t),e)}(o,e))}else{if(!l_[u])return i?e:{};o=Kf(e,u,s)}}r||(r=new Lh);var p=r.get(e);if(p)return p;r.set(e,o),t_(e)?e.forEach((function(a){o.add(d_(a,t,n,a,e,r))})):Jf(e)&&e.forEach((function(a,i){o.set(i,d_(a,t,n,i,e,r))}));var m=d?void 0:(l?c?Ef:Gp:c?Km:Qp)(e);return function(e,t){for(var n=-1,a=null==e?0:e.length;++nvoid 0===globalThis.DOMException?new __(e):new DOMException(e),y_=e=>{const t=void 0===e.reason?v_("This operation was aborted."):e.reason;return t instanceof Error?t:v_(t)};class b_{#e=[];enqueue(e,t){const n={priority:(t={priority:0,...t}).priority,run:e};if(this.size&&this.#e[this.size-1].priority>=t.priority)return void this.#e.push(n);const a=function(e,t,n){let a=0,i=e.length;for(;i>0;){const r=Math.trunc(i/2);let o=a+r;n(e[o],t)<=0?(a=++o,i-=r+1):i=r}return a}(this.#e,n,((e,t)=>t.priority-e.priority));this.#e.splice(a,0,n)}dequeue(){const e=this.#e.shift();return e?.run}filter(e){return this.#e.filter((t=>t.priority===e.priority)).map((e=>e.run))}get size(){return this.#e.length}}class w_ extends g_{#t;#n;#a=0;#i;#r;#o=0;#s;#c;#e;#l;#d=0;#u;#h;#p;timeout;constructor(e){if(super(),!("number"==typeof(e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:b_,...e}).intervalCap&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${typeof e.intervalCap})`);if(void 0===e.interval||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??""}\` (${typeof e.interval})`);this.#t=e.carryoverConcurrencyCount,this.#n=e.intervalCap===Number.POSITIVE_INFINITY||0===e.interval,this.#i=e.intervalCap,this.#r=e.interval,this.#e=new e.queueClass,this.#l=e.queueClass,this.concurrency=e.concurrency,this.timeout=e.timeout,this.#p=!0===e.throwOnTimeout,this.#h=!1===e.autoStart}get#m(){return this.#n||this.#a{this.#v()}),t)),!0;this.#a=this.#t?this.#d:0}return!1}#_(){if(0===this.#e.size)return this.#s&&clearInterval(this.#s),this.#s=void 0,this.emit("empty"),0===this.#d&&this.emit("idle"),!1;if(!this.#h){const e=!this.#w;if(this.#m&&this.#g){const t=this.#e.dequeue();return!!t&&(this.emit("active"),t(),e&&this.#b(),!0)}}return!1}#b(){this.#n||void 0!==this.#s||(this.#s=setInterval((()=>{this.#y()}),this.#r),this.#o=Date.now()+this.#r)}#y(){0===this.#a&&0===this.#d&&this.#s&&(clearInterval(this.#s),this.#s=void 0),this.#a=this.#t?this.#d:0,this.#x()}#x(){for(;this.#_(););}get concurrency(){return this.#u}set concurrency(e){if(!("number"==typeof e&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#u=e,this.#x()}async#C(e){return new Promise(((t,n)=>{e.addEventListener("abort",(()=>{n(e.reason)}),{once:!0})}))}async add(e,t={}){return t={timeout:this.timeout,throwOnTimeout:this.#p,...t},new Promise(((n,a)=>{this.#e.enqueue((async()=>{this.#d++,this.#a++;try{t.signal?.throwIfAborted();let a=e({signal:t.signal});t.timeout&&(a=function(e,t){const{milliseconds:n,fallback:a,message:i,customTimers:r={setTimeout:setTimeout,clearTimeout:clearTimeout}}=t;let o;const s=new Promise(((s,c)=>{if("number"!=typeof n||1!==Math.sign(n))throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${n}\``);if(t.signal){const{signal:e}=t;e.aborted&&c(y_(e)),e.addEventListener("abort",(()=>{c(y_(e))}))}if(n===Number.POSITIVE_INFINITY)return void e.then(s,c);const l=new f_;o=r.setTimeout.call(void 0,(()=>{if(a)try{s(a())}catch(e){c(e)}else"function"==typeof e.cancel&&e.cancel(),!1===i?s():i instanceof Error?c(i):(l.message=i??`Promise timed out after ${n} milliseconds`,c(l))}),n),(async()=>{try{s(await e)}catch(e){c(e)}})()})),c=s.finally((()=>{c.clear()}));return c.clear=()=>{r.clearTimeout.call(void 0,o),o=void 0},c}(Promise.resolve(a),{milliseconds:t.timeout})),t.signal&&(a=Promise.race([a,this.#C(t.signal)]));const i=await a;n(i),this.emit("completed",i)}catch(e){if(e instanceof f_&&!t.throwOnTimeout)return void n();a(e),this.emit("error",e)}finally{this.#f()}}),t),this.emit("add"),this.#_()}))}async addAll(e,t){return Promise.all(e.map((async e=>this.add(e,t))))}start(){return this.#h?(this.#h=!1,this.#x(),this):this}pause(){this.#h=!0}clear(){this.#e=new this.#l}async onEmpty(){0!==this.#e.size&&await this.#M("empty")}async onSizeLessThan(e){this.#e.sizethis.#e.size{const a=()=>{t&&!t()||(this.off(e,a),n())};this.on(e,a)}))}get size(){return this.#e.size}sizeBy(e){return this.#e.filter(e).length}get pending(){return this.#d}get isPaused(){return this.#h}}var x_={frigate_card:"Frigate card",frigate_card_description:"A Lovelace card for use with Frigate",live:"Live",no_media:"No media to display",recordings:"Recordings",version:"Version"},C_={cameras:{camera_entity:"Camera Entity",capabilities:{capabilities:{clips:"Clips","favorite-events":"Favorite Events","favorite-recordings":"Favorite Recordings",live:"Live",menu:"Menu",ptz:"PTZ",recordings:"Recordings",seek:"Seeking",snapshots:"Snapshots",substream:"Substream"},disable:"Disable",disable_except:"Disable except",editor_label:"Camera capabilities"},cast:{dashboard:{dashboard_path:"Dashboard path",view_path:"View path"},editor_label:"Cast options",method:"Cast method",methods:{dashboard:"Dashboard",standard:"Standard"}},dependencies:{all_cameras:"Show events for all cameras with this camera",cameras:"Show events for specific cameras with this camera",editor_label:"Dependency options"},dimensions:{aspect_ratio:"Static aspect ratio",editor_label:"Camera dimensions",layout:{editor_label:"Camera Layout",fit:"Layout fit",fits:{contain:"Media is contained/letterboxed",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",y:"Vertical placement percentage"},view_box:{bottom:"Bottom inset percentage",editor_label:"Layout View Box",left:"Left inset percentage",right:"Right inset percentage",top:"Top inset percentage"},zoom:"Zoom factor"}},engines:{editor_label:"Camera engine options"},frigate:{camera_name:"Frigate camera name (Autodetected from entity)",client_id:"Frigate client id (For >1 Frigate server)",editor_label:"Frigate options",labels:"Frigate labels/object filters",url:"Frigate server URL",zones:"Frigate zones"},go2rtc:{editor_label:"go2rtc Options",modes:{editor_label:"go2rtc Modes",mjpeg:"Motion JPEG (MJPEG)",mp4:"MPEG-4 (MP4)",mse:"Media Source Extensions (MSE)",webrtc:"Web Real-Time Communication (WebRTC)"},stream:"go2rtc stream name"},icon:"Icon for this camera (Autodetected from entity)",id:"Unique id for this camera in this card",image:{editor_label:"Image Options",refresh_seconds:"Number of seconds after which to refresh live image (0=never)",url:"Image URL to use instead of camera entity snapshot"},live_provider:"Live view provider for this camera",live_provider_options:{editor_label:"Live provider options"},live_providers:{auto:"Automatic",go2rtc:"go2rtc",ha:"Home Assistant video stream (i.e. HLS, LL-HLS, WebRTC via HA)",image:"Home Assistant images",jsmpeg:"JSMpeg","webrtc-card":"WebRTC Card (i.e. AlexxIT's WebRTC Card)"},motioneye:{editor_label:"MotionEye options",images:{directory_pattern:"Images directory pattern",file_pattern:"Images file pattern"},movies:{directory_pattern:"Movies directory pattern",file_pattern:"Movies file pattern"},url:"MotionEye UI URL"},proxy:{dynamic:"Dynamic proxying",editor_label:"Camera proxying",media:{auto:"Media proxying automatically configured",editor_label:"Media proxying",false:"Media proxying disabled",true:"Media proxying enabled"},ssl_ciphers:{auto:"SSL ciphers automatically configured",default:"Default SSL ciphers",editor_label:"SSL ciphers",insecure:"Insecure SSL ciphers",intermediate:"Intermediate SSL ciphers",modern:"Modern SSL ciphers"},ssl_verification:{auto:"SSL verification automatically configured",editor_label:"SSL verification",false:"SSL verification disabled",true:"SSL verification enabled"}},reolink:{editor_label:"Reolink options",media_resolution:{editor_label:"Media Resolution",high:"High Resolution",low:"Low Resolution"},url:"Reolink UI URL"},title:"Title for this camera (Autodetected from entity)",triggers:{editor_label:"Trigger options",entities:"Trigger from other entities",events:{clips:"Events with new clips",editor_label:"Trigger Events",events:"All events",snapshots:"Events with new snapshots"},motion:"Trigger by auto-detecting the motion sensor",occupancy:"Trigger by auto-detecting the occupancy sensor"},webrtc_card:{editor_label:"WebRTC Card Options",entity:"WebRTC Card Camera Entity (Not a Frigate camera)",url:"WebRTC Card Camera URL"}},common:{controls:{builtin:"Built-in video controls",filter:{editor_label:"Media Filter",mode:"Filter mode",modes:{left:"Media filter in a drawer to the left",none:"No media filter",right:"Media filter in a drawer to the right"}},next_previous:{editor_label:"Next & Previous",size:"Next & previous control size in pixels",style:"Next & previous control style",styles:{chevrons:"Chevrons",icons:"Icons",none:"None",thumbnails:"Thumbnails"}},thumbnails:{editor_label:"Thumbnails",events_media_type:"Whether to show event thumbnails of clips or snapshots",events_media_types:{clips:"Clip thumbnails",snapshots:"Snapshot thumbnails"},media_type:"Whether to show thumnails of events or recordings",media_types:{events:"Events",recordings:"Recordings"},mode:"Thumbnails mode",modes:{above:"Thumbnails above",below:"Thumbnails below",left:"Thumbnails in a drawer to the left",none:"No thumbnails",right:"Thumbnails in a drawer to the right"},show_details:"Show details with thumbnails",show_download_control:"Show download control on thumbnails",show_favorite_control:"Show favorite control on thumbnails",show_timeline_control:"Show timeline control on thumbnails",size:"Thumbnails size in pixels"},timeline:{editor_label:"Mini Timeline",mode:"Mode",modes:{above:"Above",below:"Below",none:"None"},pan_mode:"Default pan mode",pan_modes:{pan:"Pan",seek:"Pan seeks across all media","seek-in-camera":"Pan seeks within selected camera only","seek-in-media":"Pan seeks within selected media item only"}}},display:{editor_label:"Display",grid_columns:"Exact number of grid columns",grid_max_columns:"Maximum number of grid columns",grid_selected_width_factor:"Increase selected media width by this factor",mode:"Mode"},image:{entity:"Entity for use with entity mode",entity_parameters:"Query parameters added to the entity-based picture URLs (e.g. width=1920&height=1080)",mode:"Image mode",modes:{camera:"Home Assistant camera snapshot of camera entity",entity:"Entity with entity_picture attribute",screensaver:"Embedded Frigate logo",url:"Arbitrary image specified by URL"},refresh_seconds:"Number of seconds after which to refresh (0=never)",url:"Static image URL"},media_action_conditions:{all:"All opportunities",hidden:"On browser/tab hiding",microphone_mute:"On microphone mute",microphone_unmute:"On microphone unmute",never:"Never",selected:"On selection",unselected:"On unselection",visible:"On browser/tab visibility"},timeline:{clustering_threshold:"The count of events at which they are clustered (0=no clustering)",events_media_type:"The events media the timeline displays",events_media_types:{all:"All event media types",clips:"Clips",snapshots:"Snapshots"},show_recordings:"Show recordings",style:"Timeline style",styles:{ribbon:"Events on a single ribbon",stack:"Stacked & clustered events"},window_seconds:"The default length of the timeline view in seconds"}},dimensions:{aspect_ratio:"Default aspect ratio (e.g. '16:9')",aspect_ratio_mode:"Aspect ratio mode",aspect_ratio_modes:{dynamic:"Aspect ratio adjusts to media",static:"Static aspect ratio",unconstrained:"Unconstrained aspect ratio"},height:"Card height in CSS units (e.g. '500px')"},live:{auto_mute:"Automatically mute live cameras",auto_pause:"Automatically pause live cameras",auto_play:"Automatically play live cameras",auto_unmute:"Automatically unmute live cameras",controls:{editor_label:"Live Controls",ptz:{editor_label:"PTZ",hide_home:"Hide home control",hide_pan_tilt:"Hide pan & tilt control",hide_zoom:"Hide zoom control",mode:"Mode",modes:{off:"Off",on:"On"},orientation:"Orientation",orientations:{horizontal:"Horizontal",vertical:"Vertical"},position:"Position",positions:{"bottom-left":"Bottom left","bottom-right":"Bottom right","top-left":"Top left","top-right":"Top right"}}},draggable:"Live cameras view can be dragged/swiped",lazy_load:"Live cameras are lazily loaded",lazy_unload:"Live cameras are lazily unloaded",microphone:{always_connected:"Always keep the microphone connected",disconnect_seconds:"Seconds after which to disconnect microphone (0=never)",editor_label:"Microphone",enabled:"Microphone enabled",mute_after_microphone_mute_seconds:"Seconds after microphone mute to mute inbound audio"},preload:"Preload live view in the background",show_image_during_load:"Show still image while the live stream is loading",transition_effect:"Live camera transition effect",zoomable:"Live cameras can be zoomed/panned"},media_viewer:{auto_mute:"Automatically mute media",auto_pause:"Automatically pause media",auto_play:"Automatically play media",auto_unmute:"Automatically unmute media",controls:{editor_label:"Media Viewer Controls"},draggable:"Media Viewer can be dragged/swiped",lazy_load:"Media Viewer media is lazily loaded in carousel",snapshot_click_plays_clip:"Clicking on a snapshot plays a related clip",transition_effect:"Media Viewer transition effect",transition_effects:{none:"No transition",slide:"Slide transition"},zoomable:"Media Viewer can be zoomed/panned"},menu:{alignment:"Menu alignment",alignments:{bottom:"Aligned to the bottom",left:"Aligned to the left",right:"Aligned to the right",top:"Aligned to the top"},button_size:"Menu button size in pixels",buttons:{alignment:"Button alignment",alignments:{matching:"Matching the menu alignment",opposing:"Opposing the menu alignment"},camera_ui:"Camera user interface",cameras:"Cameras",clips:"Clips",display_mode:"Display mode",download:"Download",enabled:"Button enabled",expand:"Expand",frigate:"Frigate menu / Default view",fullscreen:"Fullscreen",icon:"Icon",image:"Image",live:"Live",media_player:"Send to media player",microphone:"Microphone",mute:"Mute / Unmute",permanent:"Show when the menu is hidden",play:"Play / Pause",priority:"Priority",ptz_controls:"Show PTZ controls",ptz_home:"PTZ Home",recordings:"Recordings",screenshot:"Screenshot",snapshots:"Snapshots",substreams:"Substream(s)",timeline:"Timeline",type:"Button type",types:{momentary:"Momentary",toggle:"Toggle"}},position:"Menu position",positions:{bottom:"Positioned on the bottom",left:"Positioned on the left",right:"Positioned on the right",top:"Positioned on the top"},style:"Menu style",styles:{hidden:"Hidden menu",hover:"Hover menu","hover-card":"Hover menu (card-wide)",none:"No menu",outside:"Outside menu",overlay:"Overlay menu"}},overrides:{info:"This card configuration has manually specified overrides configured which may override values shown in the visual editor, please consult the code editor to view/modify these overrides"},performance:{features:{animated_progress_indicator:"Animated Progress Indicator",editor_label:"Feature Options",max_simultaneous_engine_requests:"Max simultaneous camera engine requests",media_chunk_size:"Media chunk size"},style:{border_radius:"Curves",box_shadow:"Shadows",editor_label:"Style Options"},warning:"This card is in low profile mode so defaults have changed to optimize performance"},profiles:{casting:"Casting",editor_label:"Configuration profiles","low-performance":"Low performance",scrubbing:"Video scrubbing"},status_bar:{height:"Status bar height in pixels",items:{enabled:"Item enabled",engine:"Camera engine",live_provider:"Live provider",priority:"Item priority",resolution:"Resolution",technology:"Technology",title:"Title"},popup_seconds:"Status bar popup seconds",position:"Status bar position",positions:{bottom:"Positioned on the bottom",top:"Positioned on the top"},style:"Status bar style",styles:{hover:"Hover status bar","hover-card":"Hover status bar (card-wide)",none:"No status bar",outside:"Outside status bar",overlay:"Overlay status bar",popup:"Popup status bar"}},view:{camera_select:"View for newly selected cameras",dark_mode:"Dark mode",dark_modes:{auto:"Auto",off:"Off",on:"On"},default:"Default view",default_cycle_camera:"Cycle through cameras when default view updates",default_reset:{after_interaction:"Reset to the default view after user interaction ends",editor_label:"Default view reset behavior",entities:"Reset to the default view on entity state change",every_seconds:"Reset to default view every X seconds (0=never)",interaction_mode:"How default reset behaves when the card has human interaction",interaction_modes:{active:"Only allow reset when card has active human interaction",all:"Reset regardless of human interaction",inactive:"Only reset when card has no human interaction"}},interaction_seconds:"Seconds after user action to remain interacted with (0=never)",keyboard_shortcuts:{editor_label:"Keyboard shortcuts",enabled:"Keyboard shortcuts enabled",ptz_down:"PTZ Down",ptz_home:"PTZ Home",ptz_left:"PTZ Left",ptz_right:"PTZ Right",ptz_up:"PTZ Up",ptz_zoom_in:"PTZ Zoom In",ptz_zoom_out:"PTZ Zoom Out"},triggers:{actions:{editor_label:"Trigger actions",interaction_mode:"How to handle actions when the card has human interaction",interaction_modes:{active:"Only trigger actions when card has human interaction",all:"Trigger actions regardless of human interaction",inactive:"Only trigger actions when card has no human interaction"},trigger:"Trigger action",triggers:{default:"Change to or update default view",live:"Change to or update live view",media:"Change to the relevant media view for new media",none:"No action"},untrigger:"Untrigger action",untriggers:{default:"Change to default view/camera",none:"No action"}},editor_label:"Trigger behavior",filter_selected_camera:"Only trigger on selected camera",show_trigger_status:"Show pulsing border when triggered",untrigger_seconds:"Seconds after inactive state change to untrigger"},views:{clip:"Most recent clip",clips:"Clips gallery",current:"Current view",image:"Static image",live:"Live view",recording:"Most recent recording",recordings:"Recordings gallery",snapshot:"Most recent snapshot",snapshots:"Snapshots gallery",timeline:"Timeline view"}}},M_={grid:"Show media viewer for each camera in a grid",single:"Show single media viewer"},k_={add_new_camera:"Add new camera",button:"Button",camera:"Camera",cameras:"Cameras",cameras_secondary:"What cameras to render on this card",delete:"Delete",dimensions:"Card dimensions",dimensions_secondary:"Card dimensions & shape options",image:"Image",image_secondary:"Static image view options",live:"Live",live_secondary:"Live camera view options",media_gallery:"Media gallery",media_gallery_secondary:"Media gallery options",media_viewer:"Media viewer",media_viewer_secondary:"Viewer for static media (clips, snapshots or recordings)",menu:"Menu",menu_secondary:"Menu look & feel options",move_down:"Move down",move_up:"Move up",overrides:"Overrides are active",overrides_secondary:"Dynamic configuration overrides detected",performance:"Performance",performance_secondary:"Card performance options",profiles:"Configuration profiles",profiles_secondary:"Choose pre-configured sets of defaults",status_bar:"Status bar",status_bar_secondary:"Status bar look & feel options",timeline:"Timeline",timeline_secondary:"Event timeline options",upgrade:"Upgrade",upgrade_available:"An automatic card configuration upgrade is available",view:"View",view_secondary:"What the card should show and how to show it"},S_={ptz:{down:"Down",home:"Home",left:"Left",right:"Right",up:"Up",zoom_in:"Zoom In",zoom_out:"Zoom Out"}},E_={awaiting_live:"Waiting for live stream to load ...",awaiting_media:"Waiting for media to load",camera_initialization:"Camera initialization failed",camera_initialization_reolink:"Could not initialize Reolink camera",could_not_render_elements:"Could not render picture elements",could_not_resolve:"Could not resolve media URL",diagnostics:"Card diagnostics. Please review for confidential information prior to sharing",download_no_media:"No media to download",download_sign_failed:"Could not sign media URL for download",duplicate_camera_id:"Duplicate Frigate camera id for the following camera, use the 'id' parameter to uniquely identify cameras",empty_response:"Received empty response from Home Assistant for request",failed_response:"Failed to receive response from Home Assistant for request",failed_retain:"Could not retain event",failed_sign:"Could not sign Home Assistant URL",image_load_error:"The image could not be loaded",invalid_configuration:"Invalid configuration",invalid_configuration_no_hint:"No location hint available (bad or missing type?)",invalid_configuration_override:"Invalid override configuration",invalid_elements_config:"Invalid picture elements configuration",invalid_response:"Received invalid response from Home Assistant for request",jsmpeg_no_player:"Could not start JSMPEG player",live_camera_no_endpoint:"Could not get camera endpoint for this live provider (incomplete configuration?)",live_camera_not_found:"The configured camera_entity was not found",live_camera_unavailable:"Camera unavailable",no_camera_engine:"Could not determine suitable engine for camera",no_camera_entity:"Could not find camera entity",no_camera_entity_for_triggers:"A camera entity is required in order to autodetect triggers",no_camera_id:"Could not determine camera id for the following camera, may need to set 'id' parameter manually",no_camera_name:"Could not determine a Frigate camera name for camera (or one of its dependents), please specify either 'camera_entity' or 'camera_name'",no_dashboard_or_view:"Both 'dashboard_path' and 'view_path' parameters are required for the 'dashboard' cast method",no_live_camera:"The camera_entity parameter must be set and valid for this live provider",no_supported_camera:"The selected camera does not support this view",no_supported_cameras:"No cameras support this view",reconnecting:"Reconnecting",too_many_automations:"Too many nested automation calls, please check your configuration for loops",troubleshooting:"Check troubleshooting",unknown:"Unknown error",upgrade_available:"An automated card configuration upgrade is available, please visit the visual card editor",webrtc_card_reported_error:"WebRTC Card reported an error",webrtc_card_waiting:"Waiting for WebRTC Card to load ..."},$_={camera:"Camera",duration:"Duration",in_progress:"In Progress",score:"Score",seek:"Seek",start:"Start",tag:"Tag",what:"What",where:"Where"},A_={assign:"Assign",assigning:"Assigning",modifiers:{alt:"Alt",ctrl:"Ctrl",meta:"Meta",shift:"Shift"},unassign:"Unassign"},z_={all:"All",camera:"Camera",favorite:"Favorite",media_type:"Media Type",media_types:{clips:"Clips",recordings:"Recordings",snapshots:"Snapshots"},not_favorite:"Not Favorite",select_camera:"Select camera...",select_favorite:"Select favorite...",select_media_type:"Select media type...",select_tag:"Select tag...",select_what:"Select what...",select_when:"Select when...",select_where:"Select where...",tag:"Tag",what:"What",when:"When",whens:{custom:"Custom",past_month:"Past Month",past_week:"Past Week",today:"Today",yesterday:"Yesterday"},where:"Where"},I_={unseekable:"Seek time not found in media"},T_={camera:"Camera",duration:"Duration",events:"Events",in_progress:"In Progress",seek:"Seek",start:"Start"},j_={download:"Download media",no_thumbnail:"No thumbnail available",retain_indefinitely:"Media will be indefinitely retained",timeline:"See media in timeline"},O_={select_date:"Choose date"},D_={common:x_,config:C_,display_modes:M_,editor:k_,elements:S_,error:E_,event:$_,key_assigner:A_,media_filter:z_,media_viewer:I_,recording:T_,thumbnail:j_,timeline:O_},R_=Object.freeze({__proto__:null,common:x_,config:C_,default:D_,display_modes:M_,editor:k_,elements:S_,error:E_,event:$_,key_assigner:A_,media_filter:z_,media_viewer:I_,recording:T_,thumbnail:j_,timeline:O_});const P_="en",L_={[P_]:R_};let N_;function F_(e){const t=e=>e.replace("-","_"),n=e?.language??e?.selectedLanguage;if(n)return t(n);const a=localStorage.getItem("selectedLanguage");if(a){const e=JSON.parse(a);if(e)return t(e)}for(const e of navigator.languages){const n=t(e);if(n&&n in L_)return n}return P_}function V_(e,t="",n=""){let a="";try{a=e.split(".").reduce(((e,t)=>e[t]),L_[N_??P_])}catch(e){}return a||(a=e.split(".").reduce(((e,t)=>e[t]),L_[P_])),""!==t&&""!==n&&(a=a.replace(t,n)),a}function H_(e){return"string"==typeof e?.id&&e.id||"string"==typeof e?.camera_entity&&e.camera_entity||"object"==typeof e?.webrtc_card&&e.webrtc_card&&("string"==typeof e.webrtc_card.entity&&e.webrtc_card.entity||"string"==typeof e.webrtc_card.url&&e.webrtc_card.url)||"object"==typeof e?.go2rtc&&e.go2rtc&&"string"==typeof e.go2rtc.url&&"string"==typeof e.go2rtc.stream&&`${e.go2rtc.url}#${e.go2rtc.stream}`||"object"==typeof e?.frigate&&e.frigate&&"string"==typeof e?.frigate.camera_name&&e.frigate.camera_name||""}const B_=(e,...t)=>{e?.debug?.logging&&console.debug(...t)},q_=(e,t,n)=>"preset"===t?(n?.preset?e.ptz.presets?.[n.preset]:null)??null:n?.phase?e.ptz[`actions_${t}_${n.phase}`]??null:e.ptz[`actions_${t}`]??null,U_=(e,t,n)=>!!q_(e,t,n),W_=(e,t)=>{const n=U_(e,t,{phase:"start"})&&U_(e,t,{phase:"stop"}),a=U_(e,t);return n||a?[...n?["continuous"]:[],...a?["relative"]:[]]:null},Z_=e=>{const t=W_(e,"left"),n=W_(e,"right"),a=W_(e,"up"),i=W_(e,"down"),r=W_(e,"zoom_in"),o=W_(e,"zoom_out"),s=e.ptz.presets?Object.keys(e.ptz.presets):void 0;return t?.length||n?.length||a?.length||i?.length||r?.length||o?.length||s?.length?{...t?{left:t}:{},...n?{right:n}:{},...a?{up:a}:{},...i?{down:i}:{},...r?{zoomIn:r}:{},...o?{zoomOut:o}:{},...s?{presets:s}:{}}:null};class Q_{constructor(e,t){this._capabilities=e;for(const e of t?.disable??[])this._disable(e);for(const e of Ts)t?.disableExcept?.length&&!t.disableExcept.includes(e)&&this._disable(e)}_disable(e){delete this._capabilities[e]}matches(e){let t=!0;return"string"==typeof e&&(t&&=this.has(e)),"object"==typeof e&&e.allCapabilities&&(t&&=e.allCapabilities.every((e=>this.has(e)))),"object"==typeof e&&e.anyCapabilities&&(t&&=e.anyCapabilities.some((e=>this.has(e)))),t}has(e){return!!this._capabilities[e]}getPTZCapabilities(){return this._capabilities.ptz??null}hasPTZCapability(){return!!(this._capabilities.ptz?.down?.length||this._capabilities.ptz?.up?.length||this._capabilities.ptz?.left?.length||this._capabilities.ptz?.right?.length||this._capabilities.ptz?.zoomIn?.length||this._capabilities.ptz?.zoomOut?.length||this._capabilities.ptz?.presets?.length)}getRawCapabilities(){return this._capabilities}}function G_(e,t,n){var a=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var r=Array(i);++at||r&&o&&c&&!s&&!l||a&&o&&c||!n&&c||!i)return 1;if(!a&&!r&&!l&&e=s?c:c*("desc"==n[a]?-1:1)}return e.index-t.index}(e,t,n)}))}function Ev(e,t,n,a){return null==e?[]:(dp(t)||(t=null==t?[]:[t]),dp(n=a?void 0:n)||(n=null==n?[]:[n]),Sv(e,t,n))}async function $v(e,t,n,a=!1){let i;try{i=await e.callWS(n)}catch(e){if(!(e instanceof Error))throw new zs(V_("error.failed_response"),{request:n,response:e});throw e}if(!i)throw new zs(V_("error.empty_response"),{request:n});const r=a?t.safeParse(JSON.parse(i)):t.safeParse(i);if(!r.success)throw new zs(V_("error.invalid_response"),{request:n,response:i,invalid_keys:Rs(r.error)});return r.data}const Av=ba.lazy((()=>ba.object({title:ba.string(),media_class:ba.string(),media_content_type:ba.string(),media_content_id:ba.string(),can_play:ba.boolean(),can_expand:ba.boolean(),children_media_class:ba.string().nullable().optional(),thumbnail:ba.string().nullable(),children:ba.array(Av).nullable().optional()}))),zv="video",Iv="image",Tv=60,jv=e=>Ev(e,(e=>e._metadata?.startDate),"desc");class Ov{async walkBrowseMedias(e,t,n){return t&&t.length?(await tf(t,(async t=>await this._walkBrowseMedia(e,t,n)))).flat():[]}async _walkBrowseMedia(e,t,n){let a=[];for(const i of function(e,t,n){t=(n?dg(e,t,n):void 0===t)?1:K_(Sg(t),0);var a=null==e?0:e.length;if(!a||t<1)return[];for(var i=0,r=0,o=Array(Y_(a/t));iawait this._browseMedia(e,a,{cache:n?.cache,matcher:t.matcher,metadataGenerator:t.metadataGenerator})));for(const e of r)for(const n of e.children??[])t.matcher(n)&&a.push(n);if(t.sorter&&(a=t.sorter(a)),t.earlyExit&&t.earlyExit(a))break}const i=t.advance?t.advance(a):null;return i?.length?await this.walkBrowseMedias(e,i,n):a}async _browseMedia(e,t,n){const a="object"==typeof t?t.media_content_id:t,i=n?.cache?n.cache.get(a):null;if(i)return i;const r={type:"media_source/browse_media",media_content_id:a},o=await $v(e,Av,r);if(n?.metadataGenerator)for(const e of o.children??[])e._metadata=n.metadataGenerator(e,"object"==typeof t?t:void 0)??void 0;return n?.cache&&n.cache.set(a,o,Ud(new Date,{seconds:60})),o}}function Dv(e,t){return bm(e,t)}function Rv(e,t){return e&&e.length?function(e,t){for(var n=-1,a=e.length,i=0,r=[];++nNv(t,e)))}add(e){this._ranges.push(e),this._ranges=Vv(this._ranges)}clear(){this._ranges=[]}}class Lv{constructor(e){this._ranges=e??[]}hasCoverage(e){const t=new Date;return this._ranges.some((n=>tet.start>=e.start&&t.end<=e.end,Fv=(e,t)=>e.start>=t.start&&e.start<=t.end||e.end>=t.start&&e.end<=t.end||e.start<=t.start&&e.end>=t.end,Vv=(e,t=0)=>{const n=[];e=Ev(e,(e=>e.start),"asc");let a=null;for(const i of e){const e=i.start instanceof Date?i.start.getTime():i.start;if(!a){a={...i};continue}(a.end instanceof Date?a.end.getTime():a.end)+1e3*t>=e?i.end>a.end&&(a.end=i.end):(n.push(a),a={...i})}return a&&n.push(a),n};class Hv{constructor(){this._data=[]}get(e){const t=new Date;for(const n of this._data)if((!n.expires||t<=n.expires)&&this._contains(e,n.request))return n.response;return null}clear(){this._data=[]}has(e){return!!this.get(e)}set(e,t,n){this._data.push({request:e,response:t,expires:n}),this._expireOldRequests()}_contains(e,t){return Dv(e,t)}_expireOldRequests(){const e=new Date;this._data=this._data.filter((t=>!t.expires||e=e.start.getTime()){if(a>e.end.getTime())break;t.push(n)}}return t}getSize(){return this._data.length}expireMatches(e){this._data=this._data.filter((t=>!e(t)))}}class Uv{constructor(){this._segments=new Map}add(e,t,n){let a=this._segments.get(e);a||(a=new qv((e=>1e3*e.start_time),(e=>e.id)),this._segments.set(e,a)),a.add(t,n)}clear(){this._segments.clear()}hasCoverage(e,t){return!!this._segments.get(e)?.hasCoverage(t)}get(e,t){return this._segments.get(e)?.get(t)??null}getSize(e){return this._segments.get(e)?.getSize()??null}getCameraIDs(){return[...this._segments.keys()]}expireMatches(e,t){this._segments.get(e)?.expireMatches(t)}}class Wv extends zs{}class Zv extends zs{}var Qv,Gv,Yv;!function(e){e.Event="event-query",e.Recording="recording-query",e.RecordingSegments="recording-segments-query",e.MediaMetadata="media-metadata"}(Qv||(Qv={})),function(e){e.Event="event-results",e.Recording="recording-results",e.RecordingSegments="recording-segments-results",e.MediaMetadata="media-metadata-results"}(Gv||(Gv={})),function(e){e.Frigate="frigate",e.Generic="generic",e.MotionEye="motioneye",e.Reolink="reolink"}(Yv||(Yv={}));const Kv=e=>e.camera_entity??e.webrtc_card?.entity??null;class Xv{constructor(e){this._entityRegistryManager=e}async createEngine(e,t){let n;switch(e){case Yv.Generic:const{GenericCameraManagerEngine:e}=await import("./engine-generic-31c14ad9.js").then((function(e){return e.e}));n=new e(t.stateWatcher,t.eventCallback);break;case Yv.Frigate:const{FrigateCameraManagerEngine:a}=await import("./engine-frigate-3f150159.js");n=new a(this._entityRegistryManager,t.stateWatcher,new Uv,new Bv,t.eventCallback);break;case Yv.MotionEye:const{MotionEyeCameraManagerEngine:i}=await import("./engine-motioneye-fa799851.js");n=new i(this._entityRegistryManager,t.stateWatcher,new Ov,t.resolvedMediaCache,new Bv,t.eventCallback);break;case Yv.Reolink:const{ReolinkCameraManagerEngine:r}=await import("./engine-reolink-5d642010.js");n=new r(this._entityRegistryManager,t.stateWatcher,new Ov,t.resolvedMediaCache,new Bv,t.eventCallback)}return n}async getEngineForCamera(e,t){let n=null;if("frigate"===t.engine)n=Yv.Frigate;else if("motioneye"===t.engine)n=Yv.MotionEye;else if("generic"===t.engine)n=Yv.Generic;else if("reolink"===t.engine)n=Yv.Reolink;else{const a=Kv(t);if(a){const i=await this._entityRegistryManager.getEntity(e,a);if(!i){if(e.states[a])return Yv.Generic;throw new Wv(V_("error.no_camera_entity"),t)}switch(i?.platform){case"frigate":n=Yv.Frigate;break;case"motioneye":n=Yv.MotionEye;break;case"reolink":n=Yv.Reolink;break;default:n=Yv.Generic}}else t.frigate.camera_name?n=Yv.Frigate:(t.webrtc_card?.url||t.go2rtc?.url&&t.go2rtc?.stream)&&(n=Yv.Generic)}return n}}class Jv{constructor(){this._cameras=new Map,this._enginesByType=new Map}addCamera(e){this._cameras.set(e.getID(),e),this._enginesByType.set(e.getEngine().getEngineType(),e.getEngine())}async setCameras(e){for(const t of e){const e=this._cameras.get(t.getID());e!==t&&(this.addCamera(t),await(e?.destroy()))}for(const t of this._cameras.values())e.includes(t)||(await t.destroy(),this._cameras.delete(t.getID()))}async reset(){await tf(this._cameras.values(),(e=>e.destroy())),this._cameras.clear(),this._enginesByType.clear()}getCamera(e){return this._cameras.get(e)??null}getCameras(){return this._cameras}getCameraConfig(e){return this._cameras.get(e)?.getConfig()??null}hasCameraID(e){return this._cameras.has(e)}getCameraCount(){return this._cameras.size}getDefaultCameraID(){return this._cameras.keys().next().value??null}*getCameraConfigs(e){for(const[t,n]of this.getCameraConfigEntries(e))yield n}*getCameraConfigEntries(e){for(const t of e??this._cameras.keys()){const e=this.getCameraConfig(t);e&&(yield[t,e])}}getCameraIDs(){return new Set(this._cameras.keys())}getCameraIDsWithCapability(e){const t=new Set;for(const n of this._cameras.values())n.getCapabilities()?.matches(e)&&t.add(n.getID());return t}getCameraConfigForMedia(e){return this.getCameraConfig(e.getCameraID())}getEngineOfType(e){return this._enginesByType.get(e)??null}getEngineForCameraID(e){return this._cameras.get(e)?.getEngine()??null}getEnginesForCameraIDs(e){const t=new Map;for(const n of e){const e=this.getEngineForCameraID(n);e&&(t.has(e)||t.set(e,new Set),t.get(e)?.add(n))}return t.size?t:null}getEngineForMedia(e){return this.getEngineForCameraID(e.getCameraID())}getAllDependentCameras(e,t){const n=new Set,a=new Set,i=e=>{n.add(e);const r=this.getCamera(e),o=r?.getConfig();if(r&&o){t&&!r.getCapabilities()?.matches(t)||a.add(e);const s=new Set;o.dependencies.cameras.forEach((e=>s.add(e))),o.dependencies.all_cameras&&this.getCameraIDs().forEach((e=>s.add(e)));for(const e of s)n.has(e)||i(e)}};return i(e),a}}const ey=e=>{return Ev((n=e=>e.getID()??e,(t=e)&&t.length?Hg(t,xv(n)):[]),(e=>e.getStartTime()??e.getID()),"asc");var t,n};class ty{static isEventQuery(e){return e.type===Qv.Event}static isRecordingQuery(e){return e.type===Qv.Recording}static isRecordingSegmentsQuery(e){return e.type===Qv.RecordingSegments}static isMediaMetadataQuery(e){return e.type===Qv.MediaMetadata}}class ny{static isEventQueryResult(e){return e.type===Gv.Event}static isRecordingQueryResult(e){return e.type===Gv.Recording}static isRecordingSegmentsQueryResult(e){return e.type===Gv.RecordingSegments}static isMediaMetadataQueryResult(e){return e.type===Gv.MediaMetadata}}class ay{constructor(e,t){this._requestLimit=new w_,this._api=e,this._engineFactory=t?.factory??new Xv(this._api.getEntityRegistryManager()),this._store=t?.store??new Jv}async initializeCamerasFromConfig(){const e=this._api.getConfigManager().getConfig(),t=this._api.getHASSManager().getHASS();if(!e||!t)return!1;this._requestLimit.concurrency=e.performance.features.max_simultaneous_engine_requests??1/0;const n=e.cameras.map((t=>{return n={},a=u_(e?.cameras_global),hg(n,a,t,((e,t)=>Array.isArray(t)?t:void 0));var n,a}));try{await this._initializeCameras(n)}catch(e){return this._api.getMessageManager().setErrorIfHigherPriority(e,V_("error.camera_initialization")),!1}return!0}async reset(){await this._store.reset()}async _getEnginesForCameras(e){const t=new Map,n=new Map,a=this._api.getHASSManager().getHASS(); +/* istanbul ignore if: the if path cannot be reached -- @preserve */ +if(!a)return t;const i=await(async e=>await tf(e,(e=>this._engineFactory.getEngineForCamera(a,e))))(e);for(const[a,r]of e.entries()){const e=i[a],o=e?n.get(e)??await this._engineFactory.createEngine(e,{eventCallback:e=>this._api.getTriggersManager().handleCameraEvent(e),stateWatcher:this._api.getHASSManager().getStateWatcher(),resolvedMediaCache:this._api.getResolvedMediaCache()}):null;if(!o||!e)throw new Wv(V_("error.no_camera_engine"),u_(r));n.set(e,o),t.set(r,o)}return t}async _initializeCameras(e){const t=new Date,n=this._api.getHASSManager().getHASS(); +/* istanbul ignore if: the if path cannot be reached -- @preserve */ +if(!n)return;e.some((e=>(e=>e.triggers.motion||e.triggers.occupancy)(e)))&&await this._api.getEntityRegistryManager().fetchEntityList(n);const a=await this._getEnginesForCameras(e),i=await tf(a.entries(),(async([e,t])=>await t.createCamera(n,e))),r=async()=>{i.forEach((e=>e.destroy()))},o=new Set;for(const e of i){const t=H_(e.getConfig());if(!t)throw await r(),new Wv(V_("error.no_camera_id"),e.getConfig());if(o.has(t))throw await r(),new Wv(V_("error.duplicate_camera_id"),e.getConfig());e.setID(t),o.add(t)}await this._store.setCameras(i),B_(this._api.getConfigManager().getCardWideConfig(),"Frigate Card CameraManager initialized (Cameras: ",this._store.getCameras(),`, Duration: ${((new Date).getTime()-t.getTime())/1e3}s,`,")")}isInitialized(){return this._store.getCameraCount()>0}getStore(){return this._store}generateDefaultEventQueries(e,t){return this._generateDefaultQueries(e,{type:Qv.Event,...t})}generateDefaultRecordingQueries(e,t){return this._generateDefaultQueries(e,{type:Qv.Recording,...t})}generateDefaultRecordingSegmentsQueries(e,t){return this._generateDefaultQueries(e,{type:Qv.RecordingSegments,...t})}_generateDefaultQueries(e,t){const n=[],a=Zg(e),i=this._store.getEnginesForCameraIDs(a);if(!i)return null;for(const[e,a]of i){let i=null; +/* istanbul ignore else: the else path cannot be reached -- @preserve */ty.isEventQuery(t)?i=e.generateDefaultEventQuery(this._store,a,t):ty.isRecordingQuery(t)?i=e.generateDefaultRecordingQuery(this._store,a,t):ty.isRecordingSegmentsQuery(t)&&(i=e.generateDefaultRecordingSegmentsQuery(this._store,a,t));for(const e of i??[])n.push(e)}return n.length?n:null}async getMediaMetadata(){const e=new Set,t=new Set,n=new Set,a=new Set,i={type:Qv.MediaMetadata,cameraIDs:this._store.getCameraIDs()},r=await this._handleQuery(i);for(const i of r.values())i.metadata.tags&&i.metadata.tags.forEach(e.add,e),i.metadata.what&&i.metadata.what.forEach(t.add,t),i.metadata.where&&i.metadata.where.forEach(n.add,n),i.metadata.days&&i.metadata.days.forEach(a.add,a);return t.size||n.size||a.size||e.size?{...e.size&&{tags:e},...t.size&&{what:t},...n.size&&{where:n},...a.size&&{days:a}}:null}async getEvents(e,t){return await this._handleQuery(e,t)}async getRecordings(e,t){return await this._handleQuery(e,t)}async getRecordingSegments(e,t){return await this._handleQuery(e,t)}async executeMediaQueries(e,t){return this._convertQueryResultsToMedia(await this._handleQuery(e,t))}async extendMediaQueries(e,t,n,a){if(!this._api.getHASSManager().getHASS())return null;const i=e=>{let n=null;for(const a of t){const t=a.getStartTime();t&&(!n||"earliest"===e&&tn)&&(n=t)}return n},r=this._api.getConfigManager().getCardWideConfig()?.performance?.features.media_chunk_size??50,o=[],s=[];for(const t of e){const e={...t}; +/* istanbul ignore else: the else path cannot be reached -- @preserve */if("later"===n){const t=i("latest");t&&(e.start=t,delete e.end)}else if("earlier"===n){const t=i("earliest");t&&(e.end=t,delete e.start)}e.limit=r,s.push({...t,limit:(t.limit??0)+r}),o.push(e)}const c=this._convertQueryResultsToMedia(await this._handleQuery(o,a));if(!c.length)return null;const l=ey(t.concat(c));return l.length===t.length?null:{queries:s,results:l}}async getMediaDownloadPath(e){const t=this._store.getCameraConfigForMedia(e),n=this._store.getEngineForMedia(e),a=this._api.getHASSManager().getHASS();return t&&n&&a?await n.getMediaDownloadPath(a,t,e):null}getMediaCapabilities(e){const t=this._store.getEngineForMedia(e);return t?t.getMediaCapabilities(e):null}async favoriteMedia(e,t){const n=this._store.getCameraConfigForMedia(e),a=this._store.getEngineForMedia(e),i=this._api.getHASSManager().getHASS();if(!n||!a||!i)return;const r=new Date;await this._requestLimit.add((()=>a.favoriteMedia(i,n,e,t))),B_(this._api.getConfigManager().getCardWideConfig(),"Frigate Card CameraManager favorite request (",`Duration: ${((new Date).getTime()-r.getTime())/1e3}s,`,"Media:",e.getID(),", Favorite:",t,")")}areMediaQueriesResultsFresh(e,t){const n=new Date;for(const a of e){const e=this._store.getEnginesForCameraIDs(a.cameraIDs);for(const[i,r]of e??[]){const e=i.getQueryResultMaxAge({...a,cameraIDs:r});if(null!==e&&Ud(t,{seconds:e})a?null:await this._requestLimit.add((()=>i.getMediaSeekTime(r,this._store,e,t)))??null}async _handleQuery(e,t){const n=Wg(e),a=new Map,i=new Date,r=this._api.getHASSManager().getHASS();if(!r)return a;const o=async(e,n)=>{let i=null; +/* istanbul ignore else: the else path cannot be reached -- @preserve */ty.isEventQuery(n)?i=await e.getEvents(r,this._store,n,t):ty.isRecordingQuery(n)?i=await e.getRecordings(r,this._store,n,t):ty.isRecordingSegmentsQuery(n)?i=await e.getRecordingSegments(r,this._store,n,t):ty.isMediaMetadataQuery(n)&&(i=await e.getMediaMetadata(r,this._store,n,t)),i?.forEach(((e,t)=>a.set(t,e)))},s=async e=>{const t=this._store.getEnginesForCameraIDs(e.cameraIDs);t&&await Promise.all(Array.from(t.keys()).map((n=>this._requestLimit.add((()=>o(n,{...e,cameraIDs:t.get(n)}))))))};await Promise.all(n.map((e=>s(e))));const c=(l=Array.from(a.values()).map((e=>Number(e.cached??0))))&&l.length?function(e,t){for(var n,a=-1,i=e.length;++athis._store.getCamera(e))).filter(sf);return new Q_({live:t.some((e=>e.getCapabilities()?.has("live"))),clips:t.some((e=>e.getCapabilities()?.has("clips"))),recordings:t.some((e=>e.getCapabilities()?.has("recordings"))),snapshots:t.some((e=>e.getCapabilities()?.has("snapshots"))),"favorite-events":t.some((e=>e.getCapabilities()?.has("favorite-events"))),"favorite-recordings":t.some((e=>e.getCapabilities()?.has("favorite-recordings"))),seek:t.some((e=>e.getCapabilities()?.has("seek"))),menu:t.some((e=>e.getCapabilities()?.has("menu")))})}async executePTZAction(e,t,n){const a=this._store.getCameraConfig(e);if(!a)return;const i=q_(a,t,n);if(i)return await this._api.getActionsManager().executeActions(i);const r=this._api.getHASSManager().getHASS(),o=this._store.getEngineForCameraID(e);return o&&r?await this._requestLimit.add((()=>o.executePTZAction(r,a,t,n))):void 0}}class iy{constructor(e){this._cache=new Map,this._keyCallback=e}has(e){return this._cache.has(e)}getMatches(e){return[...this._cache.values()].filter(e)}get(e){return this._cache.get(e)??null}add(e){const t=e=>this._cache.set(this._keyCallback(e),e);Array.isArray(e)?e.forEach(t):t(e)}}const ry=ba.object({id:ba.string(),model:ba.string().nullable(),config_entries:ba.string().array(),manufacturer:ba.string().nullable()}).array();class oy{constructor(e){this._fetchedDeviceList=!1,this._cache=e}async getDevice(e,t){return this._cache.has(t)?this._cache.get(t):(await this._fetchDeviceList(e),this._cache.get(t)??null)}async getMatchingDevices(e,t){return await this._fetchDeviceList(e),this._cache.getMatches(t)}async _fetchDeviceList(e){if(this._fetchedDeviceList)return;let t=null;try{t=await $v(e,ry,{type:"config/device_registry/list"})}catch(e){return void Gg(e)}this._cache.add(t),this._fetchedDeviceList=!0}}const sy=ba.object({config_entry_id:ba.string().nullable(),device_id:ba.string().nullable(),disabled_by:ba.string().nullable(),entity_id:ba.string(),hidden_by:ba.string().nullable(),platform:ba.string(),translation_key:ba.string().nullable(),unique_id:ba.string().or(ba.number()).optional()}),cy=sy.array();class ly{constructor(e){this._fetchedEntityList=!1,this._cache=e}async getEntity(e,t){const n=this._cache.get(t);if(n)return n;let a=null;try{a=await $v(e,sy,{type:"config/entity_registry/get",entity_id:t})}catch(e){return Gg(e),null}return this._cache.add(a),a}async getMatchingEntities(e,t){return await this.fetchEntityList(e),this._cache.getMatches(t)}async getEntities(e,t){const n=new Map;return await Promise.all(t.map((async t=>{const a=await this.getEntity(e,t);a&&n.set(t,a)}))),n}async fetchEntityList(e){if(this._fetchedEntityList)return;let t=null;try{t=await $v(e,cy,{type:"config/entity_registry/list"})}catch(e){return void Gg(e)}this._cache.add(t),this._fetchedEntityList=!0}}class dy extends Map{constructor(e={}){if(super(),!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof e.maxAge&&0===e.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=e.maxSize,this.maxAge=e.maxAge||Number.POSITIVE_INFINITY,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(e){if("function"==typeof this.onEviction)for(const[t,n]of e)this.onEviction(t,n.value)}_deleteIfExpired(e,t){return"number"==typeof t.expiry&&t.expiry<=Date.now()&&("function"==typeof this.onEviction&&this.onEviction(e,t.value),this.delete(e))}_getOrDeleteIfExpired(e,t){if(!1===this._deleteIfExpired(e,t))return t.value}_getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.value}_peek(e,t){const n=t.get(e);return this._getItemValue(e,n)}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}*_entriesAscending(){for(const e of this.oldCache){const[t,n]=e;if(!this.cache.has(t)){!1===this._deleteIfExpired(t,n)&&(yield e)}}for(const e of this.cache){const[t,n]=e;!1===this._deleteIfExpired(t,n)&&(yield e)}}get(e){if(this.cache.has(e)){const t=this.cache.get(e);return this._getItemValue(e,t)}if(this.oldCache.has(e)){const t=this.oldCache.get(e);if(!1===this._deleteIfExpired(e,t))return this._moveToRecent(e,t),t.value}}set(e,t,{maxAge:n=this.maxAge}={}){const a="number"==typeof n&&n!==Number.POSITIVE_INFINITY?Date.now()+n:void 0;return this.cache.has(e)?this.cache.set(e,{value:t,expiry:a}):this._set(e,{value:t,expiry:a}),this}has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.get(e)):!!this.oldCache.has(e)&&!this._deleteIfExpired(e,this.oldCache.get(e))}peek(e){return this.cache.has(e)?this._peek(e,this.cache):this.oldCache.has(e)?this._peek(e,this.oldCache):void 0}delete(e){const t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");const t=[...this._entriesAscending()],n=t.length-e;n<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(n>0&&this._emitEvictions(t.slice(0,n)),this.oldCache=new Map(t.slice(n)),this.cache=new Map,this._size=0),this.maxSize=e}*keys(){for(const[e]of this)yield e}*values(){for(const[,e]of this)yield e}*[Symbol.iterator](){for(const e of this.cache){const[t,n]=e;!1===this._deleteIfExpired(t,n)&&(yield[t,n.value])}for(const e of this.oldCache){const[t,n]=e;if(!this.cache.has(t)){!1===this._deleteIfExpired(t,n)&&(yield[t,n.value])}}}*entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;--t){const n=e[t],[a,i]=n;!1===this._deleteIfExpired(a,i)&&(yield[a,i.value])}e=[...this.oldCache];for(let t=e.length-1;t>=0;--t){const n=e[t],[a,i]=n;if(!this.cache.has(a)){!1===this._deleteIfExpired(a,i)&&(yield[a,i.value])}}}*entriesAscending(){for(const[e,t]of this._entriesAscending())yield[e,t.value]}get size(){if(!this._size)return this.oldCache.size;let e=0;for(const t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}entries(){return this.entriesAscending()}forEach(e,t=this){for(const[n,a]of this.entriesAscending())e.call(t,a,n,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}}class uy{constructor(){this._cache=new dy({maxSize:1e3})}has(e){return this._cache.has(e)}get(e){return this._cache.get(e)}set(e,t){this._cache.set(e,t)}}const hy=async(e,t,n)=>{const a=n?n.get(t):void 0;if(a)return a;const i={type:"media_source/resolve_media",media_content_id:t};let r=null;try{r=await $v(e,js,i)}catch(e){Gg(e)}return n&&r&&n.set(t,r),r};class py{constructor(e,t,n){this._context=e,this._action=t,this._config=n}async execute(e){}async stop(){}}class my extends py{}class gy extends my{async execute(e){const t=this._action.camera??(this._action.triggered?e.getTriggersManager().getMostRecentlyTriggeredCameraID():null),n=e.getViewManager().getView(),a=e.getConfigManager().getConfig();if(t&&n){const i=a?.view.camera_select??"current",r="current"===i?n.view:i;await e.getViewManager().setViewByParametersWithNewQuery({params:{view:r,camera:t},failSafe:!0})}}}class fy extends my{async execute(e){e.getCameraURLManager().openURL()}}class _y extends my{async execute(e){e.getViewManager().setViewDefault()}}class vy extends my{async execute(e){await e.getViewManager().setViewByParametersWithNewQuery({params:{displayMode:this._action.display_mode}})}}class yy extends my{async execute(e){await e.getDownloadManager().downloadViewerMedia()}}class by extends my{async execute(e){e.getExpandManager().toggleExpanded()}}class wy extends my{async execute(e){e.getFullscreenManager().toggleFullscreen()}}class xy extends py{async execute(e){const t=e.getHASSManager().getHASS();t&&at(e.getCardElementManager().getElement(),t,this._config??{},this._action)}}class Cy extends my{async execute(e){console[this._action.level](this._action.message)}}const My=(e,t)=>e.context?.live?.overrides?.get(t??e.camera)??t??e.camera,ky=e=>My(e)!==e.camera,Sy=(e,t)=>{const n=e.context?.live?.overrides??new Map;n.set(e.camera,t),e.mergeInContext({live:{overrides:n}})};class Ey extends my{async execute(e){const t=this._action.media_player,n=e.getMediaPlayerManager(),a=e.getViewManager().getView(),i=a?.queryResults?.getSelectedResult()??null;"stop"===this._action.media_player_action?await n.stop(t):a?.is("live")?await n.playLive(t,My(a)):a?.isViewerView()&&i&&await n.playMedia(t,i)}}class $y extends my{async execute(e){e.getCardElementManager().toggleMenu()}}class Ay extends my{async execute(e){await e.getMicrophoneManager().connect()}}class zy extends my{async execute(e){e.getMicrophoneManager().disconnect()}}class Iy extends my{async execute(e){e.getMicrophoneManager().mute()}}class Ty extends my{async execute(e){await e.getMicrophoneManager().unmute()}}class jy extends my{async execute(e){await(e.getMediaLoadedInfoManager().get()?.player?.mute())}}class Oy extends my{async execute(e){await(e.getMediaLoadedInfoManager().get()?.player?.pause())}}class Dy extends my{async execute(e){await(e.getMediaLoadedInfoManager().get()?.player?.play())}}const Ry=(e,t)=>{if(e.isViewerView()){const n=e.queryResults?.getSelectedResult()?.getID()??null;return"ptz"!==t?.type&&n?{targetID:n,type:"digital"}:null}if(e.is("live")){const n=My(e);let a="digital";return"digital"!==t?.type&&t?.cameraManager&&(Py(t.cameraManager,n)&&(a="ptz"),"ptz"!==a&&"ptz"===t?.type)?null:{targetID:n,type:a}}return null},Py=(e,t)=>!!e.getStore().getCamera(t)?.getCapabilities()?.hasPTZCapability();var Ly=ug((function(e,t,n){Jm(e,t,n)}));const Ny=(e,t)=>{t?.[e]?.inProgressAction?.stop()},Fy=(e,t,n,a)=>{Ly(t,{[n]:{[e]:{inProgressAction:a}}})};class Vy extends my{constructor(){super(...arguments),this._timer=new xf}async stop(){this._timer.stop()}async execute(e){const t=e.getViewManager().getView();if(!t)return;const n=this._action.camera??Ry(t,{type:"ptz",cameraManager:e.getCameraManager()})?.targetID??null,a=n?e.getCameraManager().getCameraCapabilities(n)?.getPTZCapabilities():null,i=n?e.getCameraManager().getStore().getCameraConfig(n)?.ptz:null;if(!n||!a||!i)return;if(!this._action.ptz_action)return void(a.presets&&a.presets.length>=1&&await e.getCameraManager().executePTZAction(n,"preset",{phase:this._action.ptz_phase,preset:a.presets[0]}));const r=(e=>{switch(e){case"left":case"right":case"up":case"down":return e;case"zoom_in":return"zoomIn";case"zoom_out":return"zoomOut"}return null})(this._action.ptz_action);if(r&&a[r]?.includes(this._action.ptz_phase?"continuous":"relative")||"preset"===this._action.ptz_action)return await e.getCameraManager().executePTZAction(n,this._action.ptz_action,{phase:this._action.ptz_phase,preset:this._action.ptz_preset});if("start"===this._action.ptz_phase){Ny(n,this._context.ptz),Fy(n,this._context,"ptz",this);const t=async()=>{this._action.ptz_action&&await e.getCameraManager().executePTZAction(n,this._action.ptz_action,{preset:this._action.ptz_preset}),this._timer.start(i.r2c_delay_between_calls_seconds,t)};await t()}else"stop"===this._action.ptz_phase?Ny(n,this._context.ptz):(await e.getCameraManager().executePTZAction(n,this._action.ptz_action,{preset:this._action.ptz_preset,phase:"start"}),this._timer.start(i.c2r_delay_between_calls_seconds,(async()=>{this._action.ptz_action&&await e.getCameraManager().executePTZAction(n,this._action.ptz_action,{preset:this._action.ptz_preset,phase:"stop"})})))}}class Hy extends my{async execute(e){e.getViewManager().setViewWithMergedContext({ptzControls:{enabled:this._action.enabled}})}}function By(e,t,n){return void 0===n&&(n=t,t=void 0),void 0!==n&&(n=(n=Cg(n))==n?n:0),void 0!==t&&(t=(t=Cg(t))==t?t:0),function(e,t,n){return e==e&&(void 0!==n&&(e=e<=n?e:n),void 0!==t&&(e=e>=t?e:t)),e}(Cg(e),t,n)}const qy=50,Uy=50,Wy=1,Zy=4,Qy=e=>void 0===e?.pan?.x&&void 0===e?.pan?.y&&void 0===e?.zoom;class Gy{constructor(e){this._context=e}modify(e){e.mergeInContext(this._context)}}const Yy=(e,t)=>({zoom:{[e]:{observed:t?.observed??void 0,requested:t?.requested??null}}}),Ky=(e,t,n)=>{t&&n&&t.setViewByParameters({modifiers:[new Gy(Yy(n,{observed:e.detail}))]})};class Xy extends my{constructor(){super(...arguments),this._timer=new xf}async _stepChange(e,t){e.getViewManager().setViewWithMergedContext(Yy(t,{requested:this._convertActionToZoomSettings(e.getViewManager().getView()?.context?.zoom?.[t]?.observed)}))}async stop(){this._timer.stop()}async execute(e){const t=e.getViewManager().getView();if(!t)return;const n=this._action.target_id??Ry(t,{type:"digital",cameraManager:e.getCameraManager()})?.targetID;return n?this._action.absolute||!this._action.ptz_phase?await this._stepChange(e,n): +/* istanbul ignore else: the else path cannot be reached -- @preserve */ +void("start"===this._action.ptz_phase?(Ny(n,this._context.ptzDigital),Fy(n,this._context,"ptzDigital",this),await this._stepChange(e,n),this._timer.startRepeated(.1,(()=>this._stepChange(e,n)))):"stop"===this._action.ptz_phase&&(Ny(n,this._context.ptzDigital),delete this._context.ptzDigital?.[n])):void 0}_convertActionToZoomSettings(e){if(!this._action.absolute&&!this._action.ptz_action)return{};if(this._action.absolute)return this._action.absolute;const t=e?.zoom??1,n=e?.pan?.x??50,a=e?.pan?.y??50,i="zoom_in"===this._action.ptz_action?.1:"zoom_out"===this._action.ptz_action?-.1:0,r="left"===this._action.ptz_action?-5:"right"===this._action.ptz_action?5:0,o="up"===this._action.ptz_action?-5:"down"===this._action.ptz_action?5:0;return{zoom:By(t+i,1,10),pan:{x:By(n+r,0,100),y:By(a+o,0,100)}}}}class Jy extends my{async execute(e){const t=e.getViewManager().getView();let n=null,a=null;if(this._action.target_id)n=this._action.target_id,a=Py(e.getCameraManager(),n)?"ptz":"digital";else if(t){const i=Ry(t,{cameraManager:e.getCameraManager()});n=i?.targetID??null,a=i?.type??null}n&&null!==a&&("ptz"===a?this._toPTZAction(n):this._toPTZDigitalAction(n)).execute(e)}_toPTZAction(e){return new Vy(this._context,(t={cardID:this._action.card_id,cameraID:e,ptzAction:this._action.ptz_action,ptzPhase:this._action.ptz_phase,ptzPreset:this._action.ptz_preset},{action:"fire-dom-event",frigate_card_action:"ptz",...t?.cardID&&{card_id:t.cardID},...t?.ptzAction&&{ptz_action:t.ptzAction},...t?.ptzPhase&&{ptz_phase:t.ptzPhase},...t?.ptzPreset&&{ptz_preset:t.ptzPreset},...t?.cameraID&&{camera:t.cameraID}}),this._config);var t}_toPTZDigitalAction(e){return new Xy(this._context,(t={cardID:this._action.card_id,ptzPhase:this._action.ptz_phase,ptzAction:this._action.ptz_action,targetID:e},{action:"fire-dom-event",frigate_card_action:"ptz_digital",...t?.cardID&&{card_id:t.cardID},...t?.ptzAction&&{ptz_action:t.ptzAction},...t?.ptzPhase&&{ptz_phase:t.ptzPhase},...t?.absolute&&{absolute:t.absolute},...t?.targetID&&{target_id:t.targetID}}),this._config);var t}}class eb extends my{async execute(e){await e.getDownloadManager().downloadScreenshot()}}class tb extends my{async execute(e){var t;await af((t=this._action.duration,3600*(t.h??0)+60*(t.m??0)+(t.s??0)+(t.ms??0)/1e3))}}class nb extends my{async execute(e){switch(this._action.status_bar_action){case"reset":e.getStatusBarItemManager().removeAllDynamicStatusBarItems();break;case"add":this._action.items?.forEach((t=>e.getStatusBarItemManager().addDynamicStatusBarItem(t)));break;case"remove":this._action.items?.forEach((t=>e.getStatusBarItemManager().removeDynamicStatusBarItem(t)))}}}class ab{modify(e){(e=>{const t=e.context?.live?.overrides;t&&t.has(e.camera)&&e.context?.live?.overrides?.delete(e.camera)})(e)}}class ib extends my{async execute(e){e.getViewManager().setViewByParameters({modifiers:[new ab]})}}class rb{constructor(e){this._api=e}modify(e){const t=[...this._api.getCameraManager().getStore().getAllDependentCameras(e.camera,"substream")];if(t.length<=1)return;const n=My(e),a=t.indexOf(n),i=a<0?0:(a+1)%t.length;Sy(e,t[i])}}class ob extends my{async execute(e){e.getViewManager().setViewByParameters({modifiers:[new rb(e)]})}}class sb{constructor(e){this._substreamID=e}modify(e){Sy(e,this._substreamID)}}class cb extends my{async execute(e){e.getViewManager().setViewByParameters({modifiers:[new sb(this._action.camera)]})}}class lb extends my{async execute(e){await(e.getMediaLoadedInfoManager().get()?.player?.unmute())}}class db extends my{async execute(e){e.getViewManager().setViewByParametersWithNewQuery({params:{view:this._action.frigate_card_action}})}}class ub{createAction(e,t,n){const a=mf(t);if("fire-dom-event"!==t.action||!a)return new xy(e,t,n?.config);if(a.card_id&&a.card_id!==n?.cardID)return null;switch(a.frigate_card_action){case"default":return new _y(e,a,n?.config);case"clip":case"clips":case"image":case"live":case"recording":case"recordings":case"snapshot":case"snapshots":case"timeline":case"diagnostics":return new db(e,a,n?.config);case"sleep":return new tb(e,a,n?.config);case"download":return new yy(e,a,n?.config);case"camera_ui":return new fy(e,a,n?.config);case"expand":return new by(e,a,n?.config);case"fullscreen":return new wy(e,a,n?.config);case"menu_toggle":return new $y(e,a,n?.config);case"camera_select":return new gy(e,a,n?.config);case"live_substream_select":return new cb(e,a,n?.config);case"live_substream_off":return new ib(e,a,n?.config);case"live_substream_on":return new ob(e,a,n?.config);case"media_player":return new Ey(e,a,n?.config);case"microphone_connect":return new Ay(e,a,n?.config);case"microphone_disconnect":return new zy(e,a,n?.config);case"microphone_mute":return new Iy(e,a,n?.config);case"microphone_unmute":return new Ty(e,a,n?.config);case"mute":return new jy(e,a,n?.config);case"unmute":return new lb(e,a,n?.config);case"play":return new Dy(e,a,n?.config);case"pause":return new Oy(e,a,n?.config);case"screenshot":return new eb(e,a,n?.config);case"display_mode_select":return new vy(e,a,n?.config);case"ptz":return new Vy(e,a,n?.config);case"ptz_digital":return new Xy(e,a,n?.config);case"ptz_multi":return new Jy(e,a,n?.config);case"ptz_controls":return new Hy(e,a,n?.config);case"log":return new Cy(e,a,n?.config);case"status_bar":return new nb(e,a,n?.config)} +/* istanbul ignore next: this path cannot be reached -- @preserve */ +/* istanbul ignore next: this path cannot be reached -- @preserve */ +return console.warn(`Frigate card received unknown card action: ${a.frigate_card_action}`),null}}class hb{constructor(e,t,n){this._actions=[],this._factory=new ub,this._stopped=!1,this._context=e;for(const a of Wg(t)){const t=this._factory.createAction(e,a,n);t&&this._actions.push(t)}}async execute(e){for(const t of this._actions){if(this._stopped)break;await t.execute(e)}}async stop(){this._stopped=!0}}const pb=ba.object({action:ba.enum(["tap","double_tap","hold","start_tap","end_tap"])}),mb=ba.object({detail:pb});class gb{constructor(e){this._actionsInFlight=[],this._actionContext={},this.handleInteractionEvent=e=>{const t=mb.safeParse(e);if(!t.success)return;const n=t.data.detail.action,a=this.getMergedActions(),i=yf(n,a);a&&n&&i&&this.executeActions(i,a)},this.handleCustomActionEvent=e=>{"detail"in e&&this.executeActions(e.detail)},this.handleActionExecutionRequestEvent=async e=>{await this.executeActions(e.detail.action,e.detail.config)},this._api=e}getMergedActions(){const e=this._api.getViewManager().getView();if(this._api.getMessageManager().hasMessage())return{};const t=this._api.getConfigManager().getConfig();let n;if(e?.is("live"))n=t?.live.actions;else if(e?.isGalleryView())n=t?.media_gallery?.actions;else if(e?.isViewerView())n=t?.media_viewer.actions;else{if(!e?.is("image"))return{};n=t?.image?.actions}return{...t?.view.actions,...n}}uninitialize(){this._actionsInFlight.forEach((e=>e.stop()))}async executeActions(e,t){const n=new hb(this._actionContext,e,{config:t,cardID:this._api.getConfigManager().getConfig()?.card_id});this._actionsInFlight.push(n),await n.execute(this._api),this._actionsInFlight=this._actionsInFlight.filter((e=>e!==n))}}class fb{constructor(e){this._automations=[],this._priorEvaluations=new Map,this._nestedAutomationExecutions=0,this._api=e}deleteAutomations(e){this._automations=this._automations.filter((t=>t.tag!==e))}addAutomations(e){this._automations.push(...e)}execute(){if(!this._api.getHASSManager().hasHASS()||!this._api.getInitializationManager().isInitializedMandatory()||this._api.getMessageManager().hasErrorMessage())return;const e=[];for(const t of this._automations){const n=this._api.getConditionsManager().evaluateConditions(t.conditions),a=n?t.actions:t.actions_not,i=this._priorEvaluations.get(t);this._priorEvaluations.set(t,n),n!==i&&a&&e.push(...a)}if(!e.length)return;(async e=>{++this._nestedAutomationExecutions,this._nestedAutomationExecutions>10?this._api.getMessageManager().setMessageIfHigherPriority({type:"error",message:V_("error.too_many_automations")}):(await this._api.getActionsManager().executeActions(e),--this._nestedAutomationExecutions)})(e)}}class _b{constructor(e){this._api=e}openURL(){const e=this.getCameraURL();e&&window.open(e)}hasCameraURL(){return!!this.getCameraURL()}getCameraURL(){const e=this._api.getViewManager().getView(),t=e?.queryResults?.getSelectedResult()??null,n=e?.camera?this._api.getCameraManager().getCameraEndpoints(e.camera,{view:e.view,...t&&{media:t}})??null:null;return n?.ui?.endpoint??null}}const vb=(e,t)=>!!((e.attributes.supported_features??0)&t),yb=e=>(e=>vb(e,4)&&"number"==typeof e.attributes.in_progress)(e)||!!e.attributes.in_progress,bb=e=>{switch(e){case"armed_away":return"mdi:shield-lock";case"armed_vacation":return"mdi:shield-airplane";case"armed_home":return"mdi:shield-home";case"armed_night":return"mdi:shield-moon";case"armed_custom_bypass":return"mdi:security";case"pending":case"arming":return"mdi:shield-sync";case"triggered":return"mdi:bell-ring";case"disarmed":return"mdi:shield-off";default:return"mdi:shield"}},wb=(e,t)=>{const n="off"===e;switch(t?.attributes.device_class){case"battery":return n?"mdi:battery":"mdi:battery-outline";case"battery_charging":return n?"mdi:battery":"mdi:battery-charging";case"cold":return n?"mdi:thermometer":"mdi:snowflake";case"connectivity":return n?"mdi:close-network-outline":"mdi:check-network-outline";case"door":return n?"mdi:door-closed":"mdi:door-open";case"garage_door":return n?"mdi:garage":"mdi:garage-open";case"power":case"plug":return n?"mdi:power-plug-off":"mdi:power-plug";case"gas":case"problem":case"safety":case"tamper":return n?"mdi:check-circle":"mdi:alert-circle";case"smoke":return n?"mdi:check-circle":"mdi:smoke";case"heat":return n?"mdi:thermometer":"mdi:fire";case"light":return n?"mdi:brightness5":"mdi:brightness-7";case"lock":return n?"mdi:lock":"mdi:lock-open";case"moisture":return n?"mdi:water-off":"mdi:water";case"motion":return n?"mdi:motion-sensor-off":"mdi:motion-sensor";case"occupancy":case"presence":return n?"mdi:home-outline":"mdi:home";case"opening":return n?"mdi:square":"mdi:square-outline";case"running":return n?"mdi:stop":"mdi:play";case"sound":return n?"mdi:music-note-off":"mdi:music-note";case"update":return n?"mdi:package":"mdi:package-up";case"vibration":return n?"mdi:crop-portrait":"mdi:vibrate";case"window":return n?"mdi:window-closed":"mdi:window-open";default:return n?"mdi:radiobox-blank":"mdi:checkbox-marked-circle"}},xb=(e,t)=>{const n="closed"!==e;switch(t?.attributes.device_class){case"garage":switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:garage";default:return"mdi:garage-open"}case"gate":switch(e){case"opening":case"closing":return"mdi:gate-arrow-right";case"closed":return"mdi:gate";default:return"mdi:gate-open"}case"door":return n?"mdi:door-open":"mdi:door-closed";case"damper":return n?"md:circle":"mdi:circle-slice-8";case"shutter":switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:window-shutter";default:return"mdi:window-shutter-open"}case"curtain":switch(e){case"opening":return"mdi:arrow-split-vertical";case"closing":return"mdi:arrow-collapse-horizontal";case"closed":return"mdi:curtains-closed";default:return"mdi:curtains"}case"blind":case"shade":switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:blinds";default:return"mdi:blinds-open"}case"window":switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:window-closed";default:return"mdi:window-open"}}switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:window-closed";default:return"mdi:window-open"}},Cb={apparent_power:"mdi:flash",aqi:"mdi:air-filter",carbon_dioxide:"mdi:molecule-co2",carbon_monoxide:"mdi:molecule-co",current:"mdi:current-ac",date:"mdi:calendar",energy:"mdi:lightning-bolt",frequency:"mdi:sine-wave",gas:"mdi:gas-cylinder",humidity:"mdi:water-percent",illuminance:"mdi:brightness-5",monetary:"mdi:cash",nitrogen_dioxide:"mdi:molecule",nitrogen_monoxide:"mdi:molecule",nitrous_oxide:"mdi:molecule",ozone:"mdi:molecule",pm1:"mdi:molecule",pm10:"mdi:molecule",pm25:"mdi:molecule",power:"mdi:flash",power_factor:"mdi:angle-acute",pressure:"mdi:gauge",reactive_power:"mdi:flash",signal_strength:"mdi:wifi",sulphur_dioxide:"mdi:molecule",temperature:"mdi:thermometer",timestamp:"mdi:clock",volatile_organic_compounds:"mdi:molecule",voltage:"mdi:sine-wave"},Mb={10:"mdi:battery-10",20:"mdi:battery-20",30:"mdi:battery-30",40:"mdi:battery-40",50:"mdi:battery-50",60:"mdi:battery-60",70:"mdi:battery-70",80:"mdi:battery-80",90:"mdi:battery-90",100:"mdi:battery"},kb={10:"mdi:battery-charging-10",20:"mdi:battery-charging-20",30:"mdi:battery-charging-30",40:"mdi:battery-charging-40",50:"mdi:battery-charging-50",60:"mdi:battery-charging-60",70:"mdi:battery-charging-70",80:"mdi:battery-charging-80",90:"mdi:battery-charging-90",100:"mdi:battery-charging"},Sb=(e,t)=>{const n=Number(e);if(isNaN(n))return"off"===e?"mdi:battery":"on"===e?"mdi:battery-alert":"mdi:battery-unknown";const a=10*Math.round(n/10);return t&&n>=10?kb[a]:t?"mdi:battery-charging-outline":n<=5?"mdi:battery-alert-variant-outline":Mb[a]},Eb=e=>{const t=e?.attributes.device_class;if(t&&t in Cb)return Cb[t];if("battery"===t)return e?((e,t)=>{const n=e.state;return Sb(n,"on"===t?.state)})(e):"mdi:battery";const n=e?.attributes.unit_of_measurement;return"°C"===n||"°F"===n?"mdi:thermometer":void 0},$b="mdi:bookmark",Ab={alert:"mdi:alert",air_quality:"mdi:air-filter",automation:"mdi:robot",calendar:"mdi:calendar",camera:"mdi:video",climate:"mdi:thermostat",configurator:"mdi:cog",conversation:"mdi:text-to-speech",counter:"mdi:counter",fan:"mdi:fan",google_assistant:"mdi:google-assistant",group:"mdi:google-circles-communities",homeassistant:"mdi:home-assistant",homekit:"mdi:home-automation",image_processing:"mdi:image-filter-frames",input_button:"mdi:gesture-tap-button",input_datetime:"mdi:calendar-clock",input_number:"mdi:ray-vertex",input_select:"mdi:format-list-bulleted",input_text:"mdi:form-textbox",light:"mdi:lightbulb",mailbox:"mdi:mailbox",notify:"mdi:comment-alert",number:"mdi:ray-vertex",persistent_notification:"mdi:bell",person:"mdi:account",plant:"mdi:flower",proximity:"mdi:apple-safari",remote:"mdi:remote",scene:"mdi:palette",script:"mdi:script-text",select:"mdi:format-list-bulleted",sensor:"mdi:eye",siren:"mdi:bullhorn",simple_alarm:"mdi:bell",sun:"mdi:white-balance-sunny",timer:"mdi:timer-outline",updater:"mdi:cloud-upload",vacuum:"mdi:robot-vacuum",water_heater:"mdi:thermometer",weather:"mdi:weather-cloudy",zone:"mdi:map-marker-radius"};function zb(e,t,n,a){switch(e){case"alarm_control_panel":return bb(n);case"binary_sensor":return wb(n,t);case"button":switch(t?.attributes.device_class){case"restart":return"mdi:restart";case"update":return"mdi:package-up";default:return"mdi:gesture-tap-button"}case"cover":return xb(n,t);case"device_tracker":return"router"===t?.attributes.source_type?"home"===n?"mdi:lan-connect":"mdi:lan-disconnect":["bluetooth","bluetooth_le"].includes(t?.attributes.source_type)?"home"===n?"mdi:bluetooth-connect":"mdi:bluetooth":"not_home"===n?"mdi:account-arrow-right":"mdi:account";case"humidifier":return n&&"off"===n?"mdi:air-humidifier-off":"mdi:air-humidifier";case"input_boolean":return"on"===n?"mdi:check-circle-outline":"mdi:close-circle-outline";case"lock":switch(n){case"unlocked":return"mdi:lock-open";case"jammed":return"mdi:lock-alert";case"locking":case"unlocking":return"mdi:lock-clock";default:return"mdi:lock"}case"media_player":switch(t?.attributes.device_class){case"speaker":switch(n){case"playing":return"mdi:speaker-play";case"paused":return"mdi:speaker-pause";case"off":return"mdi:speaker-off";default:return"mdi:speaker"}case"tv":switch(n){case"playing":return"mdi:television-play";case"paused":return"mdi:television-pause";case"off":return"mdi:television-off";default:return"mdi:television"}default:switch(n){case"playing":case"paused":return"mdi:cast-connected";case"off":return"mdi:cast-off";default:return"mdi:cast"}}case"switch":switch(t?.attributes.device_class){case"outlet":return"on"===n?"mdi:power-plug":"mdi:power-plug-off";case"switch":return"on"===n?"mdi:toggle-switch":"mdi:toggle-switch-off";default:return"mdi:flash"}case"zwave":switch(n){case"dead":return"mdi:emoticon-dead";case"sleeping":return"mdi:sleep";case"initializing":return"mdi:timer-sand";default:return"mdi:z-wave"}case"sensor":{const e=Eb(t);if(e)return e;break}case"input_datetime":if(!t?.attributes.has_date)return"mdi:clock";if(!t.attributes.has_time)return"mdi:calendar";break;case"sun":return"above_horizon"===t?.state?Ab[e]:"mdi:weather-night";case"update":return"on"===t?.state?yb(t)?"mdi:package-down":"mdi:package-up":"mdi:package"}return e in Ab?Ab[e]:a??$b}async function Ib(e,t,n){const a={type:"auth/sign_path",path:t,expires:n},i=await $v(e,Os,a);return i?e.hassUrl(i.path):null}function Tb(e,t,n,a){if(!e||!n||!n.length)return[];const i=[];for(const r of n){const n=t?.states[r],o=e.states[r];if((a?.stateOnly&&n?.state!==o?.state||!a?.stateOnly&&n!==o)&&(i.push({entityID:r,oldState:n,newState:o}),a?.firstOnly))break}return i}function jb(e,t,n,a){return!!Tb(e,t,n,{...a,firstOnly:!0}).length}function Ob(e){if("off"===e.state||!e.attributes.brightness)return"";return`brightness(${(e.attributes.brightness+245)/5}%)`}function Db(e){return"off"===e.state?"":e.attributes.rgb_color?`rgb(${e.attributes.rgb_color.join(",")})`:""}function Rb(e){return{color:Db(e),filter:Ob(e)}}function Pb(e,t){if(!t.entity)return t;const n=e.states[t.entity];n&&t.state_color&&(t.style={...Rb(n),...t.style}),t.title=t.title??(n?.attributes?.friendly_name||t.entity),t.icon=t.icon??Nb(e,t.entity);const a=n?function(e){return Ye(e.entity_id)}(n):void 0;return t.data_domain=t.state_color||"light"===a&&!1!==t.state_color?a:void 0,n&&(t.data_state=(e=>{const t=e.entity_id.split(".")[0];let n=e.state;return"climate"===t&&(n=e.attributes.hvac_action),n})(n)),t}function Lb(e,t){return t?e?.states[t]?.attributes?.friendly_name:void 0}function Nb(e,t,n){const a=e.states[t];return a&&a.attributes.icon?a.attributes.icon:zb(Ye(t),a,a?.state,n)}const Fb=async()=>{if(["ha-button-menu","ha-button","ha-camera-stream","ha-card","ha-circular-progress","ha-hls-player","ha-icon-button","ha-icon","ha-menu-button","ha-selector","ha-web-rtc-player"].every((e=>customElements.get(e))))return!0;const e=await window.loadCardHelpers();await e.createCardElement({type:"picture-glance",entities:[],camera_image:"dummy-to-load-editor-components"}),await customElements.whenDefined("hui-picture-glance-card");const t=customElements.get("hui-picture-glance-card");if(!t)return!1;const n=new t;return await n.constructor.getConfigElement(),!0},Vb=e=>!!e&&["on","open"].includes(e),Hb=(e,t)=>{if(!e)return[];const n=Object.keys(e.states).filter((e=>!t||e.substr(0,e.indexOf("."))===t));return n.sort(),n};function Bb(e){return!!e?.startsWith("/")}function qb(e,t){return Bb(t)?e.hassUrl(t):t??null}class Ub{constructor(){this._initialized=new Set}async initializeMultipleIfNecessary(e){return(await tf(Object.entries(e),(async([e,t])=>await this.initializeIfNecessary(e,t)))).every(Boolean)}async initializeIfNecessary(e,t){return!!this._initialized.has(e)||(t?!!await t()&&(this._initialized.add(e),!0):(this._initialized.add(e),!0))}uninitialize(e){this._initialized.delete(e)}isInitialized(e){return this._initialized.has(e)}isInitializedMultiple(e){return e.every((e=>this.isInitialized(e)))}}var Wb;!function(e){e.LANGUAGES="languages",e.SIDE_LOAD_ELEMENTS="side-load-elements",e.CAMERAS="cameras",e.MICROPHONE_CONNECT="microphone-connect",e.VIEW="view"}(Wb||(Wb={}));class Zb{constructor(e,t){this._initializationQueue=new w_({concurrency:1}),this._everInitialized=!1,this._api=e,this._initializer=t??new Ub}wasEverInitialized(){return this._everInitialized}isInitializedMandatory(){return!!this._api.getConfigManager().getConfig()&&this._initializer.isInitializedMultiple([Wb.LANGUAGES,Wb.SIDE_LOAD_ELEMENTS,Wb.CAMERAS,...this._api.getMicrophoneManager().shouldConnectOnInitialization()?[Wb.MICROPHONE_CONNECT]:[],Wb.VIEW])}async initializeMandatory(){await this._initializationQueue.add((()=>this._initializeMandatory()))}async _initializeMandatory(){const e=this._api.getHASSManager().getHASS();if(!e||this.isInitializedMandatory())return;if(!await this._initializer.initializeMultipleIfNecessary({[Wb.LANGUAGES]:async()=>await(async e=>{const t=F_(e);return"ca"===t?L_[t]=await import("./lang-ca-449daa4a.js"):"it"===t?L_[t]=await import("./lang-it-2a20a319.js"):"pt"===t?L_[t]=await import("./lang-pt-PT-c4863423.js"):"pt_BR"===t?L_[t]=await import("./lang-pt-BR-83a703b9.js"):"fr"===t&&(L_[t]=await import("./lang-fr-674e5de5.js")),t&&(N_=t),!0})(e),[Wb.SIDE_LOAD_ELEMENTS]:async()=>await Fb()}))return;this._api.getConfigManager().getConfig()&&await this._initializer.initializeMultipleIfNecessary({[Wb.CAMERAS]:async()=>await this._api.getCameraManager().initializeCamerasFromConfig(),...this._api.getMicrophoneManager().shouldConnectOnInitialization()&&{[Wb.MICROPHONE_CONNECT]:async()=>await this._api.getMicrophoneManager().connect()}})&&!this._api.getMessageManager().hasMessage()&&await this._initializer.initializeIfNecessary(Wb.VIEW,this._api.getViewManager().initialize)&&(this._everInitialized=!0,this._api.getCardElementManager().update())}uninitialize(e){this._initializer.uninitialize(e)}}class Qb{constructor(e,t,n,a){this.update=()=>{this._element.requestUpdate()},this._api=e,this._element=t,this._scrollCallback=n,this._menuToggleCallback=a}getElement(){return this._element}scrollReset(){this._scrollCallback()}toggleMenu(){this._menuToggleCallback()}hasUpdated(){return this._element.hasUpdated}elementConnected(){this._api.getInteractionManager().initialize(),this._api.getFullscreenManager().initialize(),this._api.getExpandManager().initialize(),this._api.getMediaLoadedInfoManager().initialize(),this._api.getMicrophoneManager().initialize(),this._api.getKeyboardStateManager().initialize(),this._api.getDefaultManager().initialize(),this._api.getMediaPlayerManager().initialize(),this._api.getHASSManager().getStateWatcher()?.subscribe(this.update,[...this._api.getConfigManager().getConfig()?.view.render_entities??[],...this._api.getMediaPlayerManager().getMediaPlayers()??[]]),of(this._element,(e=>{const t=e.getRootNode();return!!(t&&t instanceof ShadowRoot&&"HUI-PANEL-VIEW"===t.host.tagName)})(this._element),"panel"),of(this._element,!0,"tabindex","0"),this._api.getFullscreenManager().connect(),this._element.addEventListener("mousemove",this._api.getInteractionManager().reportInteraction),this._element.addEventListener("wheel",this._api.getInteractionManager().reportInteraction),this._element.addEventListener("ll-custom",this._api.getActionsManager().handleCustomActionEvent),this._element.addEventListener("action",this._api.getActionsManager().handleInteractionEvent),this._element.addEventListener("action",this._api.getInteractionManager().reportInteraction),this._element.addEventListener("frigate-card:action:execution-request",this._api.getActionsManager().handleActionExecutionRequestEvent),window.addEventListener("location-changed",this._api.getQueryStringManager().requestExecution),window.addEventListener("popstate",this._api.getQueryStringManager().requestExecution),this._api.getQueryStringManager().requestExecution(),this._element.requestUpdate()}elementDisconnected(){of(this._element,!1,"panel"),of(this._element,!1,"tabindex"),this._api.getMediaLoadedInfoManager().clear(),this._api.getFullscreenManager().disconnect(),this._api.getKeyboardStateManager().uninitialize(),this._api.getActionsManager().uninitialize(),this._api.getDefaultManager().uninitialize(),this._api.getHASSManager().getStateWatcher()?.unsubscribe(this.update),this._api.getInitializationManager().uninitialize(Wb.CAMERAS),this._api.getCameraManager().reset(),this._element.removeEventListener("mousemove",this._api.getInteractionManager().reportInteraction),this._element.removeEventListener("wheel",this._api.getInteractionManager().reportInteraction),this._element.removeEventListener("ll-custom",this._api.getActionsManager().handleCustomActionEvent),this._element.removeEventListener("action",this._api.getActionsManager().handleInteractionEvent),this._element.removeEventListener("action",this._api.getInteractionManager().reportInteraction),this._element.removeEventListener("frigate-card:action:execution-request",this._api.getActionsManager().handleActionExecutionRequestEvent),window.removeEventListener("location-changed",this._api.getQueryStringManager().requestExecution),window.removeEventListener("popstate",this._api.getQueryStringManager().requestExecution)}}function Gb(e,t,n){return null==e?e:function(e,t,n,a){if(!hh(e))return e;for(var i=-1,r=(t=sv(t,e)).length,o=r-1,s=e;null!=s&&++i{Gb(e,t,n)},Xb=(e,t,n)=>fv(e,t,n),Jb=(e,t)=>{!function(e,t){null==e||Yb(e,t)}(e,t)},ew=e=>u_(e),tw=(e,t)=>e.replace("#",`[${t.toString()}]`),nw=function(e){let t=!1;for(let n=0;n{const i=Xb(e,t);if(void 0===i)return!1;const r=a?.transform?a.transform(i):i;return!(t===n&&Dv(i,r)||(null===r?a?.keepOriginal||(Jb(e,t),0):void 0===r||(a?.keepOriginal||Jb(e,t),Kb(e,n,r),0)))})(a,e,t,n)}},rw=function(e,t,n){return function(a){let i=iw(e,t,n)(a);return i=cw(bs,iw(e,t,n),(e=>e.overrides))(a)||i,i}},ow=function(e,t){return rw(e,e,{transform:t})},sw=function(e){return rw(e,e,{transform:e=>null})},cw=function(e,t,n){return function(a){let i=!1;const r=Xb(a,e);return Array.isArray(r)&&r.forEach((e=>{const a=n?n(e):e;a&&"object"==typeof a&&(i=t(a)||i)})),i}},lw=(e,t)=>{const n=a=>{let i=!1;if(a&&"object"==typeof a){const r=t?t(a):a;r&&(i=e(r)||i),Array.isArray(a)?a.forEach((e=>{i=n(e)||i})):Object.keys(a).forEach((e=>{i=n(a[e])||i}))}return i};return n},dw=e=>!("object"!=typeof e||!e||void 0===e.mediaLoaded)&&(e.media_loaded=e.mediaLoaded,delete e.mediaLoaded,!0),uw=e=>{if("object"!=typeof e||!e||"object"!=typeof e.conditions||!e.conditions)return!1;const t=e.conditions,n=[];if(void 0!==t.view&&n.push({condition:"view",views:t.view}),void 0!==t.fullscreen&&n.push({condition:"fullscreen",fullscreen:t.fullscreen}),void 0!==t.expand&&n.push({condition:"expand",expand:t.expand}),void 0!==t.camera&&n.push({condition:"camera",cameras:t.camera}),void 0!==t.media_loaded&&n.push({condition:"media_loaded",media_loaded:t.media_loaded}),void 0!==t.state&&Array.isArray(t.state))for(const e of t.state)"object"!=typeof e||!e||void 0===e.state&&void 0===e.state_not&&void 0===e.entity||n.push({condition:"state",...e.state&&{state:e.state},...e.state_not&&{state_not:e.state_not},...e.entity&&{entity:e.entity}});return void 0!==t.media_query&&n.push({condition:"screen",media_query:t.media_query}),!!n.length&&(e.conditions=n,!0)},hw=e=>!("object"!=typeof e||!e||"call-service"!==e.action||"string"!=typeof e.service)&&(e.action="perform-action",e.perform_action=e.service,delete e.service,!0),pw=e=>!("object"!=typeof e||!e||"call-service"!==e.action||void 0===e.service||void 0===e.service_data||void 0!==e.data)&&(e.data=e.service_data,delete e.service_data,!0),mw=e=>!("object"!=typeof e||!e||"custom:frigate-card-action"!==e.action||"frigate_ui"!==e.frigate_card_action)&&(e.frigate_card_action="camera_ui",!0),gw=[cw(bs,dw,(e=>e.conditions)),e=>lw(dw,(e=>e.conditions))("object"==typeof e&&e?e[Ii]:{}),rw("event_gallery",or),rw("menu.buttons.frigate_ui",is),e=>lw(mw)("object"==typeof e&&e?e:{}),cw(Ca,ow("live_provider",(e=>"frigate-jsmpeg"===e?"jsmpeg":e))),rw("live.jsmpeg",ki),rw("live.image",Ci),rw("live.webrtc_card",Si),cw(Ca,rw("frigate.zone","frigate.zones",{transform:e=>Wg(e)})),cw(Ca,rw("frigate.label","frigate.labels",{transform:e=>Wg(e)})),e=>lw(pw)("object"==typeof e&&e?e:{}),function(e){if("object"!=typeof e||!e||!(Ii in e)||!Array.isArray(e[Ii]))return!1;let t=!1;const n=n=>{if(!t){if(!fv(e,"live.controls.ptz")){const{type:t,...a}=n;Gb(e,"live.controls.ptz",a)}t=!0}},a=e=>{const t=[];for(const i of e)if("custom:frigate-card-ptz"===i.type)n(i);else if("conditional"!==i.type&&"custom:frigate-card-conditional"!==i.type||!Array.isArray(i.elements))t.push(i);else{const e=a(i.elements);e.length&&(i.elements=e,t.push(i))}return t},i=a(e[Ii]);return t&&(i.length?e[Ii]=i:delete e[Ii]),t},rw("view.timeout_seconds",Ri),ow("live.lazy_unload",(e=>"all"===e?["unselected","hidden"]:"never"===e?null:Wg(e))),ow("live.auto_play",(e=>"all"===e?null:"never"===e?[]:Wg(e))),ow("live.auto_pause",(e=>"all"===e?["unselected","hidden"]:"never"===e?null:Wg(e))),ow("live.auto_mute",(e=>"all"===e?null:"never"===e?[]:Wg(e))),ow("live.auto_unmute",(e=>"all"===e?["selected","visible","microphone"]:"never"===e?null:Wg(e))),ow("media_viewer.auto_play",(e=>"all"===e?null:"never"===e?[]:Wg(e))),ow("media_viewer.auto_pause",(e=>"all"===e?null:"never"===e?[]:Wg(e))),ow("media_viewer.auto_mute",(e=>"all"===e?null:"never"===e?[]:Wg(e))),ow("media_viewer.auto_unmute",(e=>"all"===e?["selected","visible"]:"never"===e?null:Wg(e))),rw("live.controls.thumbnails.media",io),rw("timeline.media",Ho),rw("live.controls.timeline.media",po),rw("media_viewer.controls.timeline.media",Rr),rw("view.scan",Xi),rw("view.triggers.enabled",ar,{transform:e=>!0===e?"live":null,keepOriginal:!0}),rw("view.triggers.enabled",er,{transform:e=>!0!==e&&null}),rw("view.triggers.untrigger_reset",ir,{transform:e=>e?"default":null}),rw("live.layout",Ai),sw("media_viewer.layout"),sw("image.layout"),cw(bs,uw),e=>lw(uw)("object"==typeof e&&e?e[Ii]:{}),e=>lw(uw)("object"==typeof e&&e?e.automations:{}),cw(Ca,rw("hide","capabilities",{transform:e=>!0===e?{disable_except:["substream"]}:null})),rw("performance.profile",$s,{transform:e=>"low"===e?["low-performance"]:null}),cw(bs,iw("overrides","merge")),rw("live.controls.ptz",zi,{transform:e=>{if("object"!=typeof e||!e)return;const t=["data_left","data_right","data_up","data_down","data_zoom_in","data_zoom_out","service"],n=["actions_left","actions_right","actions_up","actions_down","actions_zoom_in","actions_zoom_out"],a=[...t,...n,"data_home","actions_home"];if(!Object.keys(e).some((e=>a.includes(e))))return;const i={};t.filter((t=>t in e)).reduce(((t,n)=>(t[n]=e[n],t)),i),n.filter((t=>t in e)).reduce(((t,n)=>("object"==typeof e[n]&&"tap_action"in e[n]&&(t[n]=e[n].tap_action),t)),i);const r=()=>{i.presets="presets"in e&&"object"==typeof e.presets&&e.presets?e.presets:{}};return"actions_home"in e&&"object"==typeof e.actions_home&&e.actions_home&&"tap_action"in e.actions_home?(r(),i.presets.home=e.actions_home.tap_action):"data_home"in e&&"object"==typeof e.data_home&&e.data_home&&"string"==typeof e.service&&(r(),i.presets.service=e.service,i.presets.data_home=e.data_home),i},keepOriginal:!0}),ow("live.controls.ptz",(e=>{if("object"!=typeof e||!e)return e;const t=["mode","position","orientation","hide_pan_tilt","hide_zoom","hide_home","style"],n=Object.keys(e);return n.some((e=>!t.includes(e)))?n.filter((e=>t.includes(e))).reduce(((t,n)=>(t[n]=e[n],t)),{}):void 0})),rw("view.update_cycle_camera",Wi),rw("view.update_force",Qi,{transform:e=>!0===e?"all":null}),rw("view.update_seconds",Gi),rw("view.update_entities",Yi),iw("live.controls.title",ds,{transform:e=>"object"==typeof e&&e&&"string"==typeof e.mode?"none"===e.mode?{style:"none"}:e.mode.includes("bottom")?{position:"bottom"}:e.mode.includes("top")?{position:"top"}:null:null}),sw("live.controls.title"),sw("media_viewer.controls.title"),e=>lw(hw)("object"==typeof e&&e?e:{}),rw("dimensions.max_height",ys),sw("dimensions.min_height")];class fw extends zs{}class _w extends Event{constructor(e,t){super("frigate-card:conditions:evaluate",t),this.conditions=e}}function vw(e,t,n){let a=ew(t),i=!1;if(n?.configOverrides)for(const t of n.configOverrides)e.evaluateConditions(t.conditions,n?.stateOverrides)&&(t.delete?.forEach((e=>{Jb(a,e)})),Object.keys(t.set??{}).forEach((e=>{Kb(a,e,t.set?.[e])})),Object.keys(t.merge??{}).forEach((e=>{Kb(a,e,Ly({},Xb(a,e),t.merge?.[e]))})),i=!0);if(!i)return t;if(n?.configOverrides?.some((e=>e.delete?.length))&&(a=hf(a)),n?.schema){const e=n.schema.safeParse(a);if(!e.success)throw new fw(V_("error.invalid_configuration_override"),[e.error.errors,a]);return e.data}return a}class yw{constructor(e,t){this._state={},this._epoch=this._createEpoch(),this._hasHAStateConditions=!1,this._mediaQueries=[],this._mediaQueryTrigger=()=>this._triggerChange(),this._api=e,this._listeners=[()=>this._api.getConfigManager().computeOverrideConfig(),()=>this._api.getAutomationsManager().execute(),...t?[t]:[]]}removeConditions(){this._mediaQueries.forEach((e=>e.removeEventListener("change",this._mediaQueryTrigger))),this._mediaQueries=[]}setConditionsFromConfig(){this.removeConditions();const e=(()=>{const e=this._api.getConfigManager().getConfig(),t=[];e?.overrides?.forEach((e=>t.push(...e.conditions))),e?.automations?.forEach((e=>t.push(...e.conditions)));const n=e=>{const a=vl.safeParse(e);a.success?(t.push(...a.data.conditions),a.data.elements?.forEach(n)):e&&"object"==typeof e&&Object.keys(e).forEach((t=>n(e[t])))};return e?.elements?.forEach(n),t})();this._hasHAStateConditions=e.some((e=>!e.condition||["state","numeric_state","user"].includes(e.condition))),e.forEach((e=>{if("screen"===e.condition){const t=window.matchMedia(e.media_query);t.addEventListener("change",this._mediaQueryTrigger),this._mediaQueries.push(t)}}))}setState(e){Object.keys(e).every((t=>Dv(e[t],this._state[t])))||(this._state={...this._state,...e},this._triggerChange())}getState(){return this._state}hasHAStateConditions(){return this._hasHAStateConditions}getEpoch(){return this._epoch}evaluateConditions(e,t){return e.every((e=>this._evaluateCondition(e,t)))}_evaluateCondition(e,t){const n={...this._state,...t};switch(e.condition){case void 0:case"state":return!!n.state&&(!e.state&&!e.state_not||e.entity in n.state&&(!e.state||(Array.isArray(e.state)?e.state.includes(n.state[e.entity].state):e.state===n.state[e.entity].state))&&(!e.state_not||(Array.isArray(e.state_not)?!e.state_not.includes(n.state[e.entity].state):e.state_not!==n.state[e.entity].state)));case"view":return!!n?.view&&e.views.includes(n.view);case"fullscreen":return void 0!==n.fullscreen&&e.fullscreen===n.fullscreen;case"expand":return void 0!==n.expand&&e.expand===n.expand;case"camera":return!!n.camera&&e.cameras.includes(n.camera);case"numeric_state":return!!n.state&&e.entity in n.state&&void 0!==n.state[e.entity].state&&(void 0===e.above||Number(n.state[e.entity].state)>e.above)&&(void 0===e.below||Number(n.state[e.entity].state)n.triggered?.has(e)));case"interaction":return void 0!==n.interaction&&e.interaction===n.interaction;case"microphone":return!(void 0!==e.connected&&n.microphone?.connected!==e.connected||void 0!==e.muted&&n.microphone?.muted!==e.muted);case"key":return!(!n.keys||!(e.key in n.keys)||(e.state??"down")!==n.keys[e.key].state||void 0!==e.ctrl&&e.ctrl!==!!n.keys[e.key].ctrl||void 0!==e.alt&&e.alt!==!!n.keys[e.key].alt||void 0!==e.meta&&e.meta!==!!n.keys[e.key].meta||void 0!==e.shift&&e.shift!==!!n.keys[e.key].shift)}}_createEpoch(){return{manager:this}}_triggerChange(){this._epoch=this._createEpoch(),this._listeners.forEach((e=>e()))}}const bw={casting:{[Qr]:!1,[Sr]:!1,[es]:"none",[`${os}.enabled`]:!0,[`${ss}.enabled`]:!0,[`${rs}.enabled`]:!1,[`${cs}.enabled`]:!1,[Zr]:["selected","visible"],[vs]:"static",[_s]:"16:9",[$i]:1,[$o]:!0},"low-performance":{[ro]:"none",[Ar]:"none",[Uo]:"none",[fo]:!1,[Nr]:!1,[Bo]:!1,[Wr]:[],[mr]:[],[gr]:[],[fr]:[],[ko]:["unselected","hidden"],[Co]:!1,[xr]:!1,[Eo]:"none",[kr]:"none",[$o]:!1,[Er]:"chevrons",[hs]:"none",[es]:"outside",[`${as}.enabled`]:!1,[`${ls}.enabled`]:!1,[`${ls}.enabled`]:!1,[`${cs}.enabled`]:!1,[lr]:!1,[dr]:!1,[ur]:!1,[cr]:!1,[co]:!1,[lo]:!1,[uo]:!1,[so]:!1,[Ir]:!1,[Tr]:!1,[jr]:!1,[zr]:!1,[Qo]:!1,[Go]:!1,[Yo]:!1,[Zo]:!1,[xs]:!1,[Cs]:10,[Es]:!1,[Ss]:!1,[Mr]:!1,[Ei]:!1,[Mi]:"image",[$i]:10,[ar]:"none",[Ms]:1},scrubbing:{[mo]:"below",[_o]:"ribbon",[go]:"seek",[Pr]:"below",[Fr]:"ribbon",[Lr]:"seek"}},ww=(e,t,n)=>{const a=Ds(Nd).safeParse(e);if(!a.success)return t;const i=a.data;for(const e of n??[])e in bw&&Object.entries(bw[e]).forEach((([e,n])=>{return r=n,void(void 0===Xb(i,a=e)&&Kb(t,a,r));var a,r}));return t},xw=e=>{switch(e){case"ptz_left":return"left";case"ptz_right":return"right";case"ptz_up":return"up";case"ptz_down":return"down";case"ptz_zoom_in":return"zoom_in";case"ptz_zoom_out":return"zoom_out"} +/* istanbul ignore next: No (current) way to reach this code -- @preserve */return null},Cw=(e,t)=>{if(!t.enabled)return[];const n=[];for(const a of["ptz_down","ptz_left","ptz_right","ptz_up","ptz_zoom_in","ptz_zoom_out"]){const i=t[a],r=xw(a);i&&r&&(n.push({conditions:[{condition:"key",key:i.key,state:"down",shift:i.shift,ctrl:i.ctrl,alt:i.alt,meta:i.meta}],actions:[vf({ptzAction:r,ptzPhase:"start"})],tag:e}),n.push({conditions:[{condition:"key",key:i.key,state:"up"}],actions:[vf({ptzAction:r,ptzPhase:"stop"})],tag:e}))}const a=t.ptz_home;return a&&n.push({conditions:[{condition:"key",key:a.key,state:"down",shift:a.shift,ctrl:a.ctrl,alt:a.alt,meta:a.meta}],actions:[vf()],tag:e}),n};class Mw{constructor(e){this._config=null,this._overriddenConfig=null,this._rawConfig=null,this._cardWideConfig=null,this._api=e}hasConfig(){return!!this.getConfig()}getConfig(){return this._overriddenConfig??this._config}getCardWideConfig(){return this._cardWideConfig}getNonOverriddenConfig(){return this._config}getRawConfig(){return this._rawConfig}setConfig(e){if(!e)throw new Error(V_("error.invalid_configuration"));const t=Nd.safeParse(e);if(!t.success){const n=aw(e),a=Ps(t.error);let i="";throw n&&(i=`${V_("error.upgrade_available")}. `),new Error(i+`${V_("error.invalid_configuration")}: `+(a&&a.size?JSON.stringify([...a],null," "):V_("error.invalid_configuration_no_hint")))}const n=ww(e,t.data,t.data.profiles);var a;(this._rawConfig=e,Dv(this._config,n))||(this._config=n,this._cardWideConfig={performance:n.performance,debug:n.debug},this._api.getConditionsManager().setConditionsFromConfig(),this._api.getConditionsManager().setState({view:void 0,displayMode:void 0,camera:void 0}),this._api.getMediaLoadedInfoManager().clear(),this._api.getInitializationManager().uninitialize(Wb.VIEW),this._api.getViewManager().reset(),this._api.getMessageManager().reset(),this._api.getStyleManager().setPerformance(),this._api.getStatusBarItemManager().removeAllDynamicStatusBarItems(),((e,t)=>{e.getAutomationsManager().deleteAutomations(t);const n=e.getConfigManager().getConfig()?.view.keyboard_shortcuts;if(!n)return;const a=Cw(t,n);a.length&&e.getAutomationsManager().addAutomations(a)})(this._api,this),(a=this._api).getAutomationsManager().deleteAutomations(),a.getAutomationsManager().addAutomations(a.getConfigManager().getNonOverriddenConfig()?.automations??[]),this.computeOverrideConfig(),this._api.getCardElementManager().update())}computeOverrideConfig(){const e=this._api.getConditionsManager();if(!this._config)return;let t=null;try{t=vw(e,this._config,{configOverrides:this._config.overrides,schema:Nd})}catch(e){return void this._api.getMessageManager().setErrorIfHigherPriority(e)}if(Dv(t,this._overriddenConfig))return;const n=this._overriddenConfig;this._overriddenConfig=t,this._api.getStyleManager().setMinMaxHeight(),!n||Dv(n?.cameras,this._overriddenConfig?.cameras)&&Dv(n?.cameras_global,this._overriddenConfig?.cameras_global)||this._api.getInitializationManager().uninitialize(Wb.CAMERAS),n&&n?.live.microphone.always_connected!==this._overriddenConfig?.live.microphone.always_connected&&this._api.getInitializationManager().uninitialize(Wb.MICROPHONE_CONNECT),this._initializeBackground(n)}async _initializeBackground(e){await this._api.getDefaultManager().initializeIfNecessary(e),await this._api.getMediaPlayerManager().initializeIfNecessary(e),this._api.getCardElementManager().update()}}class kw{constructor(e){this._timer=new xf,this._stateChangeHandler=()=>{this._setToDefaultIfAllowed()},this._api=e}async initializeIfNecessary(e){Dv(e?.view.default_reset,this._api.getConfigManager().getConfig()?.view.default_reset)||await this.initialize()}async initialize(){this.uninitialize();const e=this._api.getConfigManager().getConfig()?.view.default_reset;e?.entities.length&&this._api.getHASSManager().getStateWatcher().subscribe(this._stateChangeHandler,e.entities);const t=this._api.getConfigManager().getConfig()?.view.default_reset.every_seconds;return t&&this._timer.startRepeated(t,(()=>this._setToDefaultIfAllowed())),this._api.getConfigManager().getConfig()?.view.default_reset.after_interaction&&this._api.getAutomationsManager().addAutomations([{actions:[gf("default")],conditions:[{condition:"interaction",interaction:!1}],tag:this}]),!0}uninitialize(){this._timer.stop(),this._api.getHASSManager().getStateWatcher().unsubscribe(this._stateChangeHandler),this._api.getAutomationsManager().deleteAutomations(this)}_setToDefaultIfAllowed(){this._isAutomatedUpdateAllowed()&&this._api.getViewManager().setViewDefault()}_isAutomatedUpdateAllowed(){const e=this._api.getConfigManager().getConfig()?.view.default_reset.interaction_mode;return!!e&&((e,t)=>{switch(e){case"all":return!0;case"active":return t;case"inactive":return!t}})(e,this._api.getInteractionManager().hasInteraction())}}const Sw=(e,t="download")=>{const n=new URL(e).origin===window.location.origin,a=e.startsWith("data:");if(navigator.userAgent.startsWith("Home Assistant/")||navigator.userAgent.startsWith("HomeAssistant/")||!n&&!a)window.open(e,"_blank");else{const n=document.createElement("a");n.setAttribute("download",t),n.href=e,n.click(),n.remove()}},Ew=async(e,t,n)=>{const a=await t.getMediaDownloadPath(n);if(!a)throw new zs(V_("error.download_no_media"));let i=a.endpoint;if(a.sign){let t;try{t=await Ib(e,a.endpoint)}catch(e){Gg(e)}if(!t)throw new zs(V_("error.download_sign_failed"));i=t}Sw(i)},$w=e=>{const t=document.createElement("canvas");t.width=e.videoWidth,t.height=e.videoHeight;const n=t.getContext("2d");return n?(n.drawImage(e,0,0,t.width,t.height),t.toDataURL("image/jpeg")):null};class Aw{constructor(e){this._api=e}async downloadViewerMedia(){const e=this._api.getViewManager().getView()?.queryResults?.getSelectedResult(),t=this._api.getHASSManager().getHASS();if(!e||!t)return!1;try{await Ew(t,this._api.getCameraManager(),e)}catch(e){return this._api.getMessageManager().setErrorIfHigherPriority(e),!1}return!0}async downloadScreenshot(){const e=await(this._api.getMediaLoadedInfoManager().get()?.player?.getScreenshotURL());e&&Sw(e,(e=>{if(e?.is("live")||e?.is("image"))return`${e.view}-${e.camera}-${Wu(new Date,"yyyy-MM-dd-HH-mm-ss")}.jpg`;if(e?.isViewerView()){const t=e.queryResults?.getSelectedResult(),n=t?.getID()??null;return`${e.view}-${e.camera}${n?`-${n}`:""}.jpg`}return"screenshot.jpg"})(this._api.getViewManager().getView()))}}class zw{constructor(e){this._expanded=!1,this._api=e}initialize(){this._setConditionState()}isExpanded(){return this._expanded}toggleExpanded(){this.setExpanded(!this._expanded)}setExpanded(e){e&&this._api.getFullscreenManager().isInFullscreen()&&this._api.getFullscreenManager().stopFullscreen(),this._expanded=e,this._setConditionState(),this._api.getCardElementManager().update()}_setConditionState(){this._api.getConditionsManager()?.setState({expand:this._expanded})}}const Iw=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],Tw=(()=>{if("undefined"==typeof document)return!1;const e=Iw[0],t={};for(const n of Iw){const a=n?.[1];if(a in document){for(const[a,i]of n.entries())t[e[a]]=i;return t}}return!1})(),jw={change:Tw.fullscreenchange,error:Tw.fullscreenerror};let Ow={request:(e=document.documentElement,t)=>new Promise(((n,a)=>{const i=()=>{Ow.off("change",i),n()};Ow.on("change",i);const r=e[Tw.requestFullscreen](t);r instanceof Promise&&r.then(i).catch(a)})),exit:()=>new Promise(((e,t)=>{if(!Ow.isFullscreen)return void e();const n=()=>{Ow.off("change",n),e()};Ow.on("change",n);const a=document[Tw.exitFullscreen]();a instanceof Promise&&a.then(n).catch(t)})),toggle:(e,t)=>Ow.isFullscreen?Ow.exit():Ow.request(e,t),onchange(e){Ow.on("change",e)},onerror(e){Ow.on("error",e)},on(e,t){const n=jw[e];n&&document.addEventListener(n,t,!1)},off(e,t){const n=jw[e];n&&document.removeEventListener(n,t,!1)},raw:Tw};Object.defineProperties(Ow,{isFullscreen:{get:()=>Boolean(document[Tw.fullscreenElement])},element:{enumerable:!0,get:()=>document[Tw.fullscreenElement]??void 0},isEnabled:{enumerable:!0,get:()=>Boolean(document[Tw.fullscreenEnabled])}}),Tw||(Ow={isEnabled:!1});var Dw=Ow;class Rw{constructor(e){this._fullscreenHandler=()=>{this._api.getExpandManager().setExpanded(!1),this._setConditionState(),this._api.getCardElementManager().update()},this._api=e}initialize(){this._setConditionState()}connect(){Dw.isEnabled&&Dw.on("change",this._fullscreenHandler)}disconnect(){Dw.isEnabled&&Dw.off("change",this._fullscreenHandler)}isInFullscreen(){return Dw.isEnabled&&Dw.isFullscreen}toggleFullscreen(){Dw.toggle(this._api.getCardElementManager().getElement())}stopFullscreen(){Dw.exit()}_setConditionState(){this._api.getConditionsManager()?.setState({fullscreen:this.isInFullscreen()})}}class Pw{constructor(){this._watcherCallbacks=new Map}setHASS(e,t){if(e)for(const[n,a]of this._watcherCallbacks.entries()){const i=Tb(t,e,a,{stateOnly:!0,firstOnly:!0});i.length&&n(i[0])}}subscribe(e,t){return!!t.length&&(this._watcherCallbacks.has(e)?this._watcherCallbacks.get(e)?.push(...t):this._watcherCallbacks.set(e,t),!0)}unsubscribe(e){this._watcherCallbacks.delete(e)}}class Lw{constructor(e){this._hass=null,this._stateWatcher=new Pw,this._api=e}getHASS(){return this._hass}hasHASS(){return!!this._hass}getStateWatcher(){return this._stateWatcher}setHASS(e){if(((e,t)=>e?.connected!==t?.connected)(this._hass,e)&&(e?.connected?this._api.getMessageManager().resetType("connection"):this._api.getMessageManager().setMessageIfHigherPriority({message:V_("error.reconnecting"),icon:"mdi:lan-disconnect",type:"connection",dotdotdot:!0})),!e)return;const t=this._hass;this._hass=e,this._api.getConditionsManager().hasHAStateConditions()&&this._api.getConditionsManager().setState({state:this._hass.states,user:this._hass.user}),this._api.getStyleManager().setLightOrDarkMode(),this._stateWatcher.setHASS(t,e)}}var Nw=function(){return th.Date.now()},Fw="Expected a function",Vw=Math.max,Hw=Math.min;function Bw(e,t,n){var a,i,r,o,s,c,l=0,d=!1,u=!1,h=!0;if("function"!=typeof e)throw new TypeError(Fw);function p(t){var n=a,r=i;return a=i=void 0,l=t,o=e.apply(r,n)}function m(e){var n=e-c;return void 0===c||n>=t||n<0||u&&e-l>=r}function g(){var e=Nw();if(m(e))return f(e);s=setTimeout(g,function(e){var n=t-(e-c);return u?Hw(n,r-(e-l)):n}(e))}function f(e){return s=void 0,h&&a?p(e):(a=i=void 0,o)}function _(){var e=Nw(),n=m(e);if(a=arguments,i=this,c=e,n){if(void 0===s)return function(e){return l=e,s=setTimeout(g,t),d?p(e):o}(c);if(u)return clearTimeout(s),s=setTimeout(g,t),p(c)}return void 0===s&&(s=setTimeout(g,t)),o}return t=Cg(t)||0,hh(n)&&(d=!!n.leading,r=(u="maxWait"in n)?Vw(Cg(n.maxWait)||0,t):r,h="trailing"in n?!!n.trailing:h),_.cancel=function(){void 0!==s&&clearTimeout(s),l=0,a=c=i=s=void 0},_.flush=function(){return void 0===s?o:f(Nw())},_}function qw(e,t,n){var a=!0,i=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return hh(n)&&(a="leading"in n?!!n.leading:a,i="trailing"in n?!!n.trailing:i),Bw(e,t,{leading:a,maxWait:t,trailing:i})}class Uw{constructor(e){this._timer=new xf,this.reportInteraction=qw((()=>{this._reportInteraction()}),1e3),this._api=e}initialize(){this._api.getConditionsManager().setState({interaction:!1})}hasInteraction(){return this._timer.isRunning()}_reportInteraction(){this._timer.stop();const e=this._api.getConfigManager().getConfig()?.view.interaction_seconds;e&&(this._api.getConditionsManager().setState({interaction:!0}),this._timer.start(e,(()=>{this._api.getConditionsManager().setState({interaction:!1}),this._api.getStyleManager().setLightOrDarkMode()})))}}class Ww{constructor(e){this._state={},this._handleKeydown=e=>{const t={state:"down",ctrl:e.ctrlKey,alt:e.altKey,meta:e.metaKey,shift:e.shiftKey};Dv(this._state[e.key],t)||(this._state[e.key]=t,this._processStateChange())},this._handleKeyup=e=>{e.key in this._state&&"down"===this._state[e.key].state&&(this._state[e.key].state="up",this._processStateChange())},this._handleBlur=()=>{Object.keys(this._state).length&&(this._state={},this._processStateChange())},this._api=e}initialize(){const e=this._api.getCardElementManager().getElement();e.addEventListener("keydown",this._handleKeydown),e.addEventListener("keyup",this._handleKeyup),e.addEventListener("blur",this._handleBlur)}uninitialize(){const e=this._api.getCardElementManager().getElement();e.removeEventListener("keydown",this._handleKeydown),e.removeEventListener("keyup",this._handleKeyup),e.removeEventListener("blur",this._handleBlur)}_processStateChange(){this._api.getConditionsManager().setState({keys:this._state})}}function Zw(e,t){let n;return n=e instanceof Event?e.composedPath()[0]:e,n instanceof HTMLImageElement?{width:n.naturalWidth,height:n.naturalHeight,...t}:n instanceof HTMLVideoElement?{width:n.videoWidth,height:n.videoHeight,...t}:n instanceof HTMLCanvasElement?{width:n.width,height:n.height,player:t?.player,...t}:null}function Qw(e,t,n){const a=Zw(t,n);a&&Gw(e,a)}function Gw(e,t){Bg(e,"media:loaded",t)}function Yw(e){Bg(e,"media:unloaded")}function Kw(e){Bg(e,"media:volumechange")}function Xw(e){Bg(e,"media:play")}function Jw(e){Bg(e,"media:pause")}class ex{constructor(e){this._current=null,this._lastKnown=null,this._api=e}initialize(){this.clear()}set(e){var t;(t=e).height>=50&&t.width>=50&&(B_(this._api.getConfigManager().getCardWideConfig(),"Frigate Card media load: ",e),this._current=e,this._lastKnown=e,this._api.getConditionsManager().setState({media_loaded:!0}),this._api.getStyleManager().setExpandedMode(),this._api.getCardElementManager().update())}get(){return this._current}getLastKnown(){return this._lastKnown}clear(){this._current=null,this._api.getConditionsManager().setState({media_loaded:!1})}has(){return!!this._current}}class tx{static isEvent(e){return this.isClip(e)||this.isSnapshot(e)}static isRecording(e){return"recording"===e.getMediaType()}static isClip(e){return"clip"===e.getMediaType()}static isSnapshot(e){return"snapshot"===e.getMediaType()}static isVideo(e){return this.isClip(e)||this.isRecording(e)}}class nx{constructor(e){this._mediaPlayers=[],this._api=e}getMediaPlayers(){return this._mediaPlayers}hasMediaPlayers(){return this._mediaPlayers.length>0}async initializeIfNecessary(e){e?.menu.buttons.media_player.enabled!==this._api.getConfigManager().getConfig()?.menu.buttons.media_player.enabled&&await this.initialize()}async initialize(){const e=this._api.getHASSManager().getHASS();if(!e||!this._api.getConfigManager().getConfig()?.menu.buttons.media_player.enabled)return!1;const t=Object.keys(e.states).filter((t=>{if(t.startsWith("media_player.")){const n=e.states[t];if(n&&"unavailable"!==n.state&&vb(n,131072))return!0}return!1}));let n=null;try{n=await this._api.getEntityRegistryManager().getEntities(e,t)}catch(e){Gg(e)}return this._mediaPlayers=t.filter((e=>{const t=n?.get(e);return!t||!t.hidden_by})),!0}async stop(e){const t=this._api.getHASSManager().getHASS(),n=t?.states[e];if(!n)return;let a;if(vb(n,4096))a="media_stop";else{if(!vb(n,256))return;a="turn_off"}await t.callService("media_player",a,{entity_id:e})}async playLive(e,t){const n=this._api.getCameraManager().getStore().getCameraConfig(t);n&&("dashboard"===n.cast?.method?await this._playLiveDashboard(e,n):await this._playLiveStandard(e,t,n))}async _playLiveStandard(e,t,n){const a=this._api.getHASSManager().getHASS(),i=n?.camera_entity??null;if(!a||!i)return;const r=this._api.getCameraManager().getCameraMetadata(t)?.title??null,o=a.states[i]?.attributes?.entity_picture??null;await a.callService("media_player","play_media",{entity_id:e,media_content_id:`media-source://camera/${i}`,media_content_type:"application/vnd.apple.mpegurl",extra:{...r&&{title:r},...o&&{thumb:o}}})}async _playLiveDashboard(e,t){const n=this._api.getHASSManager().getHASS();if(!n)return;const a=t.cast?.dashboard;a?.dashboard_path&&a?.view_path?await n.callService("cast","show_lovelace_view",{entity_id:e,dashboard_path:a.dashboard_path,view_path:a.view_path}):this._api.getMessageManager().setMessageIfHigherPriority({type:"error",icon:"mdi:cast",message:V_("error.no_dashboard_or_view")})}async playMedia(e,t){const n=this._api.getHASSManager().getHASS();if(!n||!t)return;const a=t.getTitle(),i=t.getThumbnail();await n.callService("media_player","play_media",{entity_id:e,media_content_id:t.getContentID(),media_content_type:tx.isVideo(t)?"video":"image",extra:{...a&&{title:a},...i&&{thumb:i}}})}}class ax{constructor(e){this._message=null,this._api=e}getMessage(){return this._message}hasMessage(){return!!this._message}hasErrorMessage(){return"error"===this._message?.type}reset(){const e=this.hasMessage();this._message=null,e&&this._api.getCardElementManager().update()}resetType(e){this._message?.type===e&&this.reset()}setErrorIfHigherPriority(e,t){e&&"object"==typeof e&&"message"in e&&(Gg(e),this.setMessageIfHigherPriority({message:t?`${t}: ${e.message}`:e.message,type:"error",...e instanceof zs&&{context:e.context}}))}setMessageIfHigherPriority(e){const t=this._message?Is[this._message.type]:0,n=Is[e.type];return!(this._message&&ne.stop())),this._stream=void 0,this._setConditionState(),this._api.getCardElementManager().update()}getStream(){return this._stream??void 0}mute(){const e=this.isMuted();this._mute=!0,this._setMute(),this._setConditionState(),e||this._callListeners("muted")}async unmute(){if(!this.isSupported())return;const e=!this.isMuted(),t=()=>{this._mute=!1,this._setMute()};this.isConnected()||this.isForbidden()?this.isConnected()&&t():(t(),await this.connect()),this._setConditionState(),e||this._callListeners("unmuted")}isConnected(){return!!this._stream}isForbidden(){return null===this._stream}isMuted(){return!this._stream||this._stream.getTracks().every((e=>!e.enabled))}addListener(e){this._listeners.push(e)}removeListener(e){this._listeners=this._listeners.filter((t=>t!==e))}_callListeners(e){this._listeners.forEach((t=>t(e)))}_setMute(){this._stream?.getTracks().forEach((e=>{e.enabled=!this._mute})),this._startTimer(),this._api.getCardElementManager().update()}_startTimer(){const e=this._api.getConfigManager().getConfig()?.live.microphone;if(e?.always_connected)return;const t=e?.disconnect_seconds??0;t&&this._timer.start(t,(()=>{this.disconnect()}))}_setConditionState(){this._api.getConditionsManager().setState({microphone:{muted:this.isMuted(),connected:this.isConnected()}})}}class rx{constructor(e){this._shouldRun=!0,this.requestExecution=()=>{this._shouldRun=!0,this._api.getCardElementManager().update()},this.executeIfNecessary=async()=>{this._shouldRun&&(this._shouldRun=!1,await this._executeViewRelated(this._calculateIntent()),await this._executeNonViewRelated(this._calculateIntent()))},this._isViewAction=e=>{switch(e.frigate_card_action){case"clip":case"clips":case"diagnostics":case"image":case"live":case"recording":case"recordings":case"snapshot":case"snapshots":case"timeline":return!0}return!1},this._api=e}hasViewRelatedActionsToRun(){return!!this._calculateIntent().view&&this._shouldRun}async _executeViewRelated(e){e.view&&(e.view.default?await this._api.getViewManager().setViewDefaultWithNewQuery({params:{camera:e.view.camera},...e.view.substream&&{modifiers:[new sb(e.view.substream)]}}):await this._api.getViewManager().setViewByParametersWithNewQuery({params:{...e.view.view&&{view:e.view.view},...e.view.camera&&{camera:e.view.camera}},...e.view.substream&&{modifiers:[new sb(e.view.substream)]}}))}async _executeNonViewRelated(e){e.other&&await this._api.getActionsManager().executeActions(e.other)}_calculateIntent(){const e={};for(const t of this._getActions())this._isViewAction(t)?((e.view??={}).view=t.frigate_card_action,(e.view??={}).default=void 0):"default"===t.frigate_card_action?((e.view??={}).default=!0,(e.view??={}).view=void 0):"camera_select"===t.frigate_card_action?(e.view??={}).camera=t.camera:"live_substream_select"===t.frigate_card_action?(e.view??={}).substream=t.camera:(e.other??=[]).push(t);return e}_getActions(){const e=new URLSearchParams(window.location.search),t=[],n=new RegExp(/^frigate-card-action([.:](?\w+))?[.:](?\w+)/);for(const[a,i]of e.entries()){const e=a.match(n);if(!e||!e.groups)continue;const r=e.groups.cardID,o=e.groups.action;let s=null;switch(o){case"camera_select":case"live_substream_select":i&&(s=ff(o,i,{cardID:r}));break;case"camera_ui":case"clip":case"clips":case"default":case"diagnostics":case"download":case"expand":case"image":case"live":case"menu_toggle":case"recording":case"recordings":case"snapshot":case"snapshots":case"timeline":s=gf(o,{cardID:r});break;default:console.warn(`Frigate card received unknown card action in query string: ${o}`)}s&&t.push(s)}return t}}class ox{constructor(e){this._items=[],this._dynamicItems=[],this._api=e}addDynamicStatusBarItem(e){this._dynamicItems.includes(e)||this._dynamicItems.push(e),this._api.getCardElementManager().update()}removeDynamicStatusBarItem(e){this._dynamicItems=this._dynamicItems.filter((t=>!Dv(t,e))),this._api.getCardElementManager().update()}removeAllDynamicStatusBarItems(){this._dynamicItems=[],this._api.getCardElementManager().update()}calculateItems(e){const t=e?.view?e?.cameraManager?.getCameraMetadata(e?.view?.camera):null,n=t?.engineLogo??null,a=e?.view?.is("live")?t?.title??null:e?.view?.isViewerView()?e?.view.queryResults?.getSelectedResult()?.getTitle()??null:null,i=e?.mediaLoadedInfo?this._calculateResolution(e?.mediaLoadedInfo):null,r=e?.mediaLoadedInfo?.technology?.length?e?.mediaLoadedInfo.technology[0]:null;return[...a?[{type:"custom:frigate-card-status-bar-string",string:a,expand:!0,sufficient:!0,...e?.statusConfig?.items.title}]:[],...i?[{type:"custom:frigate-card-status-bar-string",string:i,...e?.statusConfig?.items.resolution}]:[],...r&&"webrtc"===r?[{type:"custom:frigate-card-status-bar-icon",icon:"mdi:webrtc",...e?.statusConfig?.items.technology}]:r?[{type:"custom:frigate-card-status-bar-string",string:r.toUpperCase(),...e?.statusConfig?.items.technology}]:[],...n?[{type:"custom:frigate-card-status-bar-image",image:n,...e?.statusConfig?.items.engine}]:[],...this._dynamicItems]}_matchesWidthHeight(e,t,n){const a=.99*t,i=1.01*t,r=.99*n,o=1.01*n,s=(e,t,n)=>e>=t&&e<=n;return!!e&&(s(e.width,a,i)&&s(e.height,r,o)||s(e.height,a,i)&&s(e.width,r,o))}_calculateResolution(e){return this._matchesWidthHeight(e,1920,1080)?"1080p":this._matchesWidthHeight(e,1280,720)?"720p":this._matchesWidthHeight(e,640,480)?"VGA":this._matchesWidthHeight(e,3840,2160)?"4K":this._matchesWidthHeight(e,720,480)?"480p":this._matchesWidthHeight(e,720,576)?"576p":this._matchesWidthHeight(e,7680,4320)?"8K":`${e.width}x${e.height}`}}class sx{constructor(e){this.setLightOrDarkMode=()=>{const e=this._api.getConfigManager().getConfig(),t="on"===e?.view.dark_mode||"auto"===e?.view.dark_mode&&(!this._api.getInteractionManager().hasInteraction()||!!this._api.getHASSManager().getHASS()?.themes.darkMode);of(this._api.getCardElementManager().getElement(),t,"dark")},this._api=e}setExpandedMode(){const e=this._api.getCardElementManager().getElement(),t=this._api.getViewManager().getView(),n=this._api.getMediaLoadedInfoManager().getLastKnown();e.style.setProperty("--frigate-card-expand-aspect-ratio",t?.isAnyMediaView()&&n?`${n.width} / ${n.height}`:"unset");const a=t?.isGrid();e.style.setProperty("--frigate-card-expand-width",!a&&t?.isAnyMediaView()?"none":"var(--frigate-card-expand-max-width)"),e.style.setProperty("--frigate-card-expand-height",!a&&t?.isAnyMediaView()?"none":"var(--frigate-card-expand-max-height)")}setMinMaxHeight(){const e=this._api.getConfigManager().getConfig();if(e){this._api.getCardElementManager().getElement().style.setProperty("--frigate-card-height",e.dimensions.height)}}setPerformance(){const e={box_shadow:"none",border_radius:"0px"},t=this._api.getCardElementManager().getElement(),n=this._api.getConfigManager().getCardWideConfig()?.performance,a=n?.style??{};for(const n of Object.keys(a)){const i=`--frigate-card-css-${n.replaceAll("_","-")}`;!1===a[n]?t.style.setProperty(i,e[n]):t.style.removeProperty(i)}}_isAspectRatioEnforced(e,t){const n=e.dimensions.aspect_ratio_mode;return!(this._api.getFullscreenManager().isInFullscreen()||this._api.getExpandManager().isExpanded()||"unconstrained"===n||"dynamic"===n&&(!t||t?.isAnyMediaView()||t?.is("timeline")||t?.is("diagnostics")))}getAspectRatioStyle(){const e=this._api.getConfigManager().getConfig(),t=this._api.getViewManager().getView();if(e){if(!this._isAspectRatioEnforced(e,t))return uf();const n=e.dimensions.aspect_ratio_mode,a=this._api.getMediaLoadedInfoManager().getLastKnown();return uf(a&&"dynamic"===n?{ratio:[a.width,a.height]}:{ratio:e.dimensions.aspect_ratio})}return uf({defaultStatic:!0})}}class cx{constructor(e){this._triggeredCameras=new Map,this._triggeredCameraTimers=new Map,this._throttledTriggerAction=qw(this._triggerAction.bind(this),1e3,{trailing:!0}),this._api=e}getTriggeredCameraIDs(){return new Set(this._triggeredCameras.keys())}isTriggered(){return!!this._triggeredCameras.size}getMostRecentlyTriggeredCameraID(){const e=Ev([...this._triggeredCameras.entries()],(e=>e[1].getTime()),"desc");return e.length?e[0][0]:null}async handleCameraEvent(e){const t=this._api.getConfigManager().getConfig()?.view.triggers,n=this._api.getViewManager().getView()?.camera;if(!t||!n)return;const a=this._api.getCameraManager().getStore().getAllDependentCameras(n);t.filter_selected_camera&&!a.has(e.cameraID)||("end"!==e.type?(this._triggeredCameras.set(e.cameraID,new Date),this._setConditionStateIfNecessary(),await this._throttledTriggerAction(e)):this._startUntriggerTimer(e.cameraID))}_hasAllowableInteractionStateForAction(){const e=this._api.getConfigManager().getConfig()?.view.triggers,t=this._api.getInteractionManager().hasInteraction();return!!e&&("all"===e.actions.interaction_mode||"active"===e.actions.interaction_mode&&t||"inactive"===e.actions.interaction_mode&&!t)}async _triggerAction(e){const t=this._api.getConfigManager().getConfig()?.view.triggers.actions.trigger,n=this._api.getConfigManager().getConfig()?.view.default;("high"!==e.fidelity||e.snapshot||e.clip||"live"===t||"default"===t&&"live"===n)&&(this._hasAllowableInteractionStateForAction()&&("update"===t?await this._api.getViewManager().setViewByParametersWithNewQuery({queryExecutorOptions:{useCache:!1}}):"live"===t?await this._api.getViewManager().setViewByParametersWithNewQuery({params:{view:"live",camera:e.cameraID}}):"default"===t?await this._api.getViewManager().setViewDefaultWithNewQuery({params:{camera:e.cameraID}}):"high"===e.fidelity&&"media"===t&&await this._api.getViewManager().setViewByParametersWithNewQuery({params:{view:e.clip?"clip":"snapshot",camera:e.cameraID}})),this._api.getCardElementManager().update())}_setConditionStateIfNecessary(){const e=new Set(this._triggeredCameras.keys()),t=e.size?e:void 0;Dv(t,this._api.getConditionsManager().getState().triggered)||this._api.getConditionsManager().setState({triggered:t})}async _untriggerAction(e){const t=this._api.getConfigManager().getConfig()?.view.triggers.actions.untrigger;"default"===t&&this._hasAllowableInteractionStateForAction()&&await this._api.getViewManager().setViewDefaultWithNewQuery(),this._triggeredCameras.delete(e),this._deleteTimer(e),this._setConditionStateIfNecessary(),this._api.getCardElementManager().update()}_startUntriggerTimer(e){this._deleteTimer(e);const t=new xf;this._triggeredCameraTimers.set(e,t),t.start( +/* istanbul ignore next: the case of config being null here cannot be + reached, as there's no way to have the untrigger call happen without + a config. -- @preserve */ +this._api.getConfigManager().getConfig()?.view.triggers.untrigger_seconds??0,(async()=>{await this._untriggerAction(e)}))}_deleteTimer(e){this._triggeredCameraTimers.get(e)?.stop(),this._triggeredCameraTimers.delete(e)}}function lx(e,t){return t="function"==typeof t?t:void 0,e&&e.length?Hg(e,void 0,t):[]}class dx{constructor(e){this._queries=null,e&&(this._queries=e)}clone(){return u_(this)}getQueries(){return this._queries}setQueries(e){return this._queries=e,this}getQueryCameraIDs(){if(!this._queries)return null;const e=new Set;return this._queries.forEach((t=>[...t.cameraIDs].forEach((t=>e.add(t))))),e}setQueryCameraIDs(e){if(!this._queries)return this;const t=[];return this._queries.forEach((n=>t.push({...n,cameraIDs:Zg(e)}))),this._queries=lx(t,Dv),this}hasQueriesForCameraIDs(e){for(const t of e)if(!this._queries?.some((e=>e.cameraIDs.has(t))))return!1;return!0}}class ux extends dx{convertToClipsQueries(){for(const e of this._queries??[])delete e.hasSnapshot,e.hasClip=!0;return this}}class hx extends dx{}class px{static areEventQueries(e){return e instanceof ux}static areRecordingQueries(e){return e instanceof hx}static areClipsQueries(e){return this.areEventQueries(e)&&!!e?.getQueries()?.every((e=>e.hasClip))}static areSnapshotQueries(e){return this.areEventQueries(e)&&!!e?.getQueries()?.every((e=>e.hasSnapshot))}static getQueriesType(e){return this.areEventQueries(e)?"event":this.areRecordingQueries(e)?"recording":null}static getMediaType(e){return this.areClipsQueries(e)?"clips":this.areSnapshotQueries(e)?"snapshots":this.areRecordingQueries(e)?"recordings":null}}const mx=(e,t,n)=>{const a={anyCapabilities:["clips","snapshots","recordings"]};switch(t){case"image":case"diagnostics":return e.getStore().getCameraIDs();case"live":case"clip":case"clips":case"snapshot":case"snapshots":case"recording":case"recordings":const i="clip"===t?"clips":"snapshot"===t?"snapshots":"recording"===t?"recordings":t;return n?e.getStore().getAllDependentCameras(n,i):e.getStore().getCameraIDsWithCapability(i);case"timeline":return e.getStore().getCameraIDsWithCapability(a);case"media":return n?e.getStore().getAllDependentCameras(n,a):e.getStore().getCameraIDsWithCapability(a)}},gx=(e,t)=>Ly({},e,t);class fx{constructor(e){this.view=e.view,this.camera=e.camera,this.query=e.query??null,this.queryResults=e.queryResults??null,this.context=e.context??null,this.displayMode=e.displayMode??null}clone(){return new fx({view:this.view,camera:this.camera,query:this.query?.clone()??null,queryResults:this.queryResults?.clone()??null,context:this.context,displayMode:this.displayMode})}evolve(e){return new fx({view:void 0!==e.view?e.view:this.view,camera:void 0!==e.camera?e.camera:this.camera,query:void 0!==e.query?e.query:this.query?.clone()??null,queryResults:void 0!==e.queryResults?e.queryResults:this.queryResults?.clone()??null,context:void 0!==e.context?e.context:this.context,displayMode:void 0!==e.displayMode?e.displayMode:this.displayMode})}mergeInContext(e){return this.context=gx(this.context,e),this}removeContext(e){return this.context&&delete this.context[e],this}removeContextProperty(e,t){const n=this.context?.[e];return n&&delete n[t],this}is(e){return this.view==e}isGalleryView(){return["clips","snapshots","recordings"].includes(this.view)}isAnyMediaView(){return this.isViewerView()||this.is("live")||this.is("image")}isViewerView(){return["media","clip","snapshot","recording"].includes(this.view)}supportsMultipleDisplayModes(){return this.isViewerView()||this.is("live")}getDefaultMediaType(){return["clip","clips"].includes(this.view)?"clips":["snapshot","snapshots"].includes(this.view)?"snapshots":["recording","recordings"].includes(this.view)?"recordings":null}isGrid(){return"grid"===this.displayMode}}const _x=(e,t)=>{t?.forEach((t=>t.modify(e)))};class vx extends zs{}class yx extends zs{}class bx{constructor(e){this._api=e}getViewDefault(e){const t=this._api.getConfigManager().getConfig();if(!t)return null;let n=null;const a=e?.params?.view??t.view.default;if(e?.params?.camera)n=e.params.camera;else{const i=[...mx(this._api.getCameraManager(),a)];if(!i.length)return null;if(e?.baseView?.camera&&t.view.default_cycle_camera){const t=i.indexOf(e.baseView.camera);n=i[t+1>=i.length?0:t+1]}else n=i[0]}return this.getViewByParameters({params:{...e?.params,view:a,camera:n},baseView:e?.baseView})}getViewByParameters(e){const t=this._api.getConfigManager().getConfig();if(!t)return null;let n=e?.params?.camera??e?.baseView?.camera??null,a=e?.params?.view??e?.baseView?.view??t.view.default;const i=this._api.getCameraManager().getStore().getCameraIDs();if(!n||!i.has(n)){n=mx(this._api.getCameraManager(),a).keys().next().value??null}if(!n){const e=[...this._api.getCameraManager().getStore().getCameras()].reduce(((e,[t,n])=>{const a=n.getCapabilities()?.getRawCapabilities();return a&&(e[t]=a),e}),{});throw new vx(V_("error.no_supported_cameras"),{view:a,cameras_capabilities:e})}if(!this.isViewSupportedByCamera(n,a)){if(!e?.failSafe||!this.isViewSupportedByCamera(n,Qs)){const e=this._api.getCameraManager().getStore().getCamera(n)?.getCapabilities()?.getRawCapabilities();throw new yx(V_("error.no_supported_camera"),{view:a,camera:n,...e&&{camera_capabilities:e}})}a=Qs}const r=e?.params?.displayMode??e?.baseView?.displayMode??this._getDefaultDisplayModeForView(a,t),o={...e?.params,view:a,camera:n,displayMode:r},s=e?.baseView?e.baseView.evolve(o):new fx(o);return _x(s,e?.modifiers),s}isViewSupportedByCamera(e,t){return!!mx(this._api.getCameraManager(),t,e).size}_getDefaultDisplayModeForView(e,t){let n=null;switch(e){case"media":case"clip":case"recording":case"snapshot":n=t.media_viewer.display?.mode??null;break;case"live":n=t.live.display?.mode??null}return n??"single"}}class wx{constructor(e,t){this._key=e,this._property=t}modify(e){e.removeContextProperty(this._key,this._property)}}class xx{constructor(e){this._query=e?.query,this._queryResults=e?.queryResults}modify(e){void 0!==this._query&&(e.query=this._query),void 0!==this._queryResults&&(e.queryResults=this._queryResults)}}const Cx=(e,t,n)=>{let a;for(const[i,r]of e.entries()){const e=r.getStartTime(),o=r.getUsableEndTime();if(r.includesTime(t)&&e&&o){const t=o.getTime()-e.getTime();(!a||n&&a.cameraID!==n&&r.getCameraID()===n||t>a.duration&&(!n||a.cameraID!==n||r.getCameraID()===n))&&(a={index:i,duration:t,cameraID:r.getCameraID()})}}return a?a.index:null};class Mx{constructor(e){this._results=e?.results??[],this._selectedIndex=this._getInitialSelectedIndex(e)}_getInitialSelectedIndex(e){return null!=e?.selectedIndex?e.selectedIndex:e?.results&&e.results.length?e?.selectApproach&&"last"!==e?.selectApproach?0:e.results.length-1:null}clone(){return new Mx({results:this._results,selectedIndex:this._selectedIndex})}getResults(){return this._results}getSelectedIndex(){return this._selectedIndex}getResultsCount(){return this.getResults().length}hasResults(){return 0!==this.getResultsCount()}getResult(e){return void 0===e?null:this._results[e]}getSelectedResult(){const e=this.getSelectedIndex();return null!==e?this.getResult(e):null}hasSelectedResult(){return null!==this.getSelectedResult()}resetSelectedResult(){this._selectedIndex=null}selectIndex(e){(null===e||e>=0&&ee.getID()))),n=new Set(e._main.getResults()?.map((e=>e.getID())));return!(!t.size||!n.size||t.has(null)||n.has(null))&&((e,t)=>{for(const n of t)if(!e.has(n))return!1;return!0})(t,n)}getCameraIDs(){return new Set(this._cameras.keys())}getSlice(e){return e?this._cameras.get(e)??null:this._main}getResults(e){return this.getSlice(e)?.getResults()??null}getResultsCount(e){return this.getSlice(e)?.getResultsCount()??0}hasResults(e){return 0!==this.getSlice(e)?.getResultsCount()}getResult(e,t){return this.getSlice(t)?.getResult(e)??null}getSelectedIndex(e){return this.getSlice(e)?.getSelectedIndex()??null}getSelectedResult(e){return this.getSlice(e)?.getSelectedResult()??null}getMultipleSelectedResults(e){const t=[];if(!e||e.main){const e=this.getSelectedResult();e&&t.push(e)}const n=this._getCameraIDsFromCriteria(e);for(const e of n??[]){const n=this.getSelectedResult(e);n&&t.push(n)}return t}hasSelectedResult(e){return this.getSlice(e)?.hasSelectedResult()??!1}resetSelectedResult(e){return this.getSlice(e)?.resetSelectedResult(),this}getResultsTimestamp(){return this._resultsTimestamp}selectIndex(e,t){return this.getSlice(t)?.selectIndex(e),t||this.demoteMainSelectionToCameraSelection(),this}demoteMainSelectionToCameraSelection(){const e=this.getSelectedResult();if(e){const t=e.getCameraID();this.resetSelectedResult(t),this.selectResultIfFound((t=>t===e),{cameraID:t})}return this}promoteCameraSelectionToMainSelection(e){const t=this.getSelectedResult(e);return this.resetSelectedResult(),this.selectResultIfFound((e=>e===t)),this}_getCameraIDsFromCriteria(e){return e?.allCameras?this.getCameraIDs():e?.cameraID?new Set([e.cameraID]):null}selectResultIfFound(e,t){t&&!t?.main||(this._main.selectResultIfFound(e),this.demoteMainSelectionToCameraSelection());const n=this._getCameraIDsFromCriteria(t);for(const t of n??[])this.getSlice(t)?.selectResultIfFound(e);return this}selectBestResult(e,t){t&&!t.main||(this._main.selectBestResult(e),this.demoteMainSelectionToCameraSelection());const n=this._getCameraIDsFromCriteria(t);for(const t of n??[])this.getSlice(t)?.selectBestResult(e);return this}}class Sx{constructor(e){this._api=e}async executeDefaultEventQuery(e){const t=e?.eventsMediaType&&"all"!==e?.eventsMediaType?e.eventsMediaType:{anyCapabilities:["clips","snapshots"]},n=this._api.getCameraManager(),a=e?.cameraID?n.getStore().getAllDependentCameras(e.cameraID,t):n.getStore().getCameraIDsWithCapability(t);if(!a.size)return null;const i=n.generateDefaultEventQueries(a,{limit:this._getChunkLimit(),..."clips"===e?.eventsMediaType&&{hasClip:!0},..."snapshots"===e?.eventsMediaType&&{hasSnapshot:!0}});if(!i)return null;const r=new ux(i),o=await this.execute(r,e?.executorOptions);return o?{query:r,queryResults:o}:null}async executeDefaultRecordingQuery(e){const t=this._api.getCameraManager(),n=e?.cameraID?t.getStore().getAllDependentCameras(e.cameraID,"recordings"):t.getStore().getCameraIDsWithCapability("recordings");if(!n.size)return null;const a=t.generateDefaultRecordingQueries(n,{limit:this._getChunkLimit()});if(!a)return null;const i=new hx(a),r=await this.execute(i,e?.executorOptions);return r?{query:i,queryResults:r}:null}async execute(e,t){const n=e.getQueries();if(!n)return null;const a=await this._api.getCameraManager().executeMediaQueries(n,{useCache:t?.useCache});if(!a)return null;const i=new kx({results:a});return t?.rejectResults?.(i)?null:(t?.selectResult?.id?i.selectBestResult((e=>e.findIndex((e=>e.getID()===t.selectResult?.id)))):t?.selectResult?.func?i.selectResultIfFound(t.selectResult.func):t?.selectResult?.time&&i.selectBestResult((e=>Cx(e,t.selectResult?.time?.time,t.selectResult?.time?.favorCameraID))),i)}_getChunkLimit(){const e=this._api.getConfigManager().getCardWideConfig();return e?.performance?.features.media_chunk_size??50}}class Ex{constructor(e,t){this._api=e,this._executor=t??new Sx(e)}async getExistingQueryModifiers(e,t){return e.query?[new xx({queryResults:await this._executor.execute(e.query,t)})]:[]}async getNewQueryModifiers(e,t){return await this._executeNewQuery(e,{useCache:!1,...t})}async _executeNewQuery(e,t){const n=this._api.getConfigManager().getConfig();if(!n)return null;const a=e?.getDefaultMediaType(),i=[],r=async n=>{ +/* istanbul ignore if: this path cannot be reached -- @preserve */ +if(!n)return[];const a="recordings"===n?await this._executor.executeDefaultRecordingQuery({...!e.isGrid()&&{cameraID:e.camera},executorOptions:t}):"clips"===n||"snapshots"===n||"all"===n?await this._executor.executeDefaultEventQuery({...!e.isGrid()&&{cameraID:e.camera},eventsMediaType:n,executorOptions:t}):/* istanbul ignore next -- @preserve */ +null;return a?[new xx(a)]:[]};switch(e.view){case"live":"none"!==n.live.controls.thumbnails.mode&&i.push(...await r("recordings"===n.live.controls.thumbnails.media_type?"recordings":n.live.controls.thumbnails.events_media_type));break;case"media":i.push(...await r("clips"));break;case"clips":case"snapshots":case"recordings":i.push(...await r(a));break;case"clip":case"snapshot":case"recording":"none"!==n.media_viewer.controls.thumbnails.mode&&i.push(...await r(a))}return i.push(...this._getTimelineWindowViewModifier(e)),i.push(...this._getSeekTimeModifier(t?.selectResult?.time?.time)),i}_getTimelineWindowViewModifier(e){if(e.is("live")){const e=new Date,t=this._api.getConfigManager().getConfig()?.live; +/* istanbul ignore if: this if branch cannot be reached as if the config is + empty this function is never called -- @preserve */ +return t?[new Gy({timeline:{window:{start:Qu(e,{seconds:t.controls.timeline.window_seconds}),end:e}}})]:[]}return[new wx("timeline","window")]}_getSeekTimeModifier(e){return e?[new Gy({mediaViewer:{seek:e}})]:[new wx("mediaViewer","seek")]}}class $x{constructor(e,t){this._view=null,this._epoch=this._createEpoch(),this._loadingIndex=1,this.setViewDefault=e=>this._setViewGeneric(this._viewFactory.getViewDefault.bind(this._viewFactory),e),this.setViewByParameters=e=>this._setViewGeneric(this._viewFactory.getViewByParameters.bind(this._viewFactory),e),this.setViewDefaultWithNewQuery=async e=>await this._setViewThenModifyAsync(this._viewFactory.getViewDefault.bind(this._viewFactory),this._viewQueryExecutor.getNewQueryModifiers.bind(this._viewQueryExecutor),e),this.setViewByParametersWithNewQuery=async e=>await this._setViewThenModifyAsync(this._viewFactory.getViewByParameters.bind(this._viewFactory),this._viewQueryExecutor.getNewQueryModifiers.bind(this._viewQueryExecutor),e),this.setViewByParametersWithExistingQuery=async e=>await this._setViewThenModifyAsync(this._viewFactory.getViewByParameters.bind(this._viewFactory),this._viewQueryExecutor.getExistingQueryModifiers.bind(this._viewQueryExecutor),e),this.initialize=async()=>(this._api.getQueryStringManager().hasViewRelatedActionsToRun()||this.setViewDefaultWithNewQuery({failSafe:!0}),!0),this._api=e,this._viewFactory=t?.viewFactory??new bx(e),this._viewQueryExecutor=t?.viewQueryExecutor??new Ex(e)}getEpoch(){return this._epoch}_createEpoch(e){return{manager:this,...e&&{oldView:e}}}getView(){return this._view}hasView(){return!!this.getView()}reset(){this._view&&this._setView(null)}_setViewGeneric(e,t){let n=null;try{n=e({baseView:this._view,...t})}catch(e){this._api.getMessageManager().setErrorIfHigherPriority(e)}n&&this._setView(n)}_markViewLoadingQuery(e,t){return e.mergeInContext({loading:{query:t}})}_markViewAsNotLoadingQuery(e){return e.removeContextProperty("loading","query")}async _setViewThenModifyAsync(e,t,n){let a=null;try{a=e({baseView:this._view,...n,params:{query:null,queryResults:null,...n?.params}})}catch(e){this._api.getMessageManager().setErrorIfHigherPriority(e)}if(!a)return;if(this._view&&this._shouldAdoptQueryAndResults(a))return a.query=this._view.query,a.queryResults=this._view.queryResults,this._markViewAsNotLoadingQuery(a),void this._setView(a);const i=this._loadingIndex++;this._markViewLoadingQuery(a,i),this._setView(a);let r=null,o=null;try{r=await t(a,n?.queryExecutorOptions)}catch(e){o=e}if(this._view&&this.hasMajorMediaChange(this._view,a))return void(this._view.context?.loading?.query===i&&this._setView(this._markViewAsNotLoadingQuery(this._view.clone())));if(o)return void this._api.getMessageManager().setErrorIfHigherPriority(o); +/* istanbul ignore if: the if path cannot be reached as the view is set + above -- @preserve */if(!this._view)return;const s=this._view.clone();this._view.context?.loading?.query===i&&this._markViewAsNotLoadingQuery(s),_x(s,r),this._setView(s)}_shouldAdoptQueryAndResults(e){const t=this._view?.isViewerView()&&e?.isGalleryView(),n=e?.getDefaultMediaType(),a=px.getMediaType(this._view?.query)===n;return!!t&&a}setViewWithMergedContext(e){if(this._view)return this._setView(this._view?.clone().mergeInContext(e))}isViewSupportedByCamera(e,t){return!!mx(this._api.getCameraManager(),t,e).size}hasMajorMediaChange(e,t){const n=t??this._view;return!!e!=!!n||e?.view!==n?.view||e?.camera!==n?.camera||"live"===n?.view&&e&&My(e)!==My(n)||"live"!==n?.view&&e?.queryResults!==n?.queryResults}_setView(e){const t=this._view;B_(this._api.getConfigManager().getCardWideConfig(),"Frigate Card view change: ",e),this._view=e,this._epoch=this._createEpoch(t),this.hasMajorMediaChange(t)&&this._api.getMediaLoadedInfoManager().clear(),t?.view!==e?.view&&this._api.getCardElementManager().scrollReset(),this._api.getMessageManager().reset(),this._api.getStyleManager().setExpandedMode(),this._api.getConditionsManager()?.setState({view:e?.view,camera:e?.camera,displayMode:e?.displayMode??void 0}),this._api.getCardElementManager().update()}}class Ax{constructor(e,t,n,a){this._deviceRegistryManager=new oy(new iy((e=>e.id))),this._entityRegistryManager=new ly(new iy((e=>e.entity_id))),this._resolvedMediaCache=new uy,this._actionsManager=new gb(this),this._automationsManager=new fb(this),this._cameraManager=new ay(this),this._cameraURLManager=new _b(this),this._configManager=new Mw(this),this._defaultManager=new kw(this),this._downloadManager=new Aw(this),this._expandManager=new zw(this),this._fullscreenManager=new Rw(this),this._hassManager=new Lw(this),this._initializationManager=new Zb(this),this._interactionManager=new Uw(this),this._keyboardStateManager=new Ww(this),this._mediaLoadedInfoManager=new ex(this),this._mediaPlayerManager=new nx(this),this._messageManager=new ax(this),this._microphoneManager=new ix(this),this._queryStringManager=new rx(this),this._statusBarItemManager=new ox(this),this._styleManager=new sx(this),this._triggersManager=new cx(this),this._viewManager=new $x(this),e.addController(this),this._conditionsManager=new yw(this,a),this._cardElementManager=new Qb(this,e,t,n)}getActionsManager(){return this._actionsManager}getAutomationsManager(){return this._automationsManager}getCameraManager(){return this._cameraManager}getCameraURLManager(){return this._cameraURLManager}getCardElementManager(){return this._cardElementManager}getConditionsManager(){return this._conditionsManager}static async getConfigElement(){return await import("./editor-5368ad86.js"),document.createElement("frigate-card-editor")}getConfigManager(){return this._configManager}getDefaultManager(){return this._defaultManager}getDeviceRegistryManager(){return this._deviceRegistryManager}getDownloadManager(){return this._downloadManager}getEntityRegistryManager(){return this._entityRegistryManager}getExpandManager(){return this._expandManager}getFullscreenManager(){return this._fullscreenManager}getHASSManager(){return this._hassManager}getInitializationManager(){return this._initializationManager}getInteractionManager(){return this._interactionManager}getKeyboardStateManager(){return this._keyboardStateManager}getMediaLoadedInfoManager(){return this._mediaLoadedInfoManager}getMediaPlayerManager(){return this._mediaPlayerManager}getMessageManager(){return this._messageManager}getMicrophoneManager(){return this._microphoneManager}getQueryStringManager(){return this._queryStringManager}getResolvedMediaCache(){return this._resolvedMediaCache}getStatusBarItemManager(){return this._statusBarItemManager}static getStubConfig(e){return{cameras:[{camera_entity:e.find((e=>e.startsWith("camera.")))??"camera.demo"}]}}getStyleManager(){return this._styleManager}getTriggersManager(){return this._triggersManager}getViewManager(){return this._viewManager}hostConnected(){this.getCardElementManager().elementConnected()}hostDisconnected(){this.getCardElementManager().elementDisconnected()}}class zx{constructor(){this._dynamicMenuButtons=[]}addDynamicMenuButton(e){this._dynamicMenuButtons.includes(e)||this._dynamicMenuButtons.push(e)}removeDynamicMenuButton(e){this._dynamicMenuButtons=this._dynamicMenuButtons.filter((t=>t!=e))}calculateButtons(e,t,n,a){return[this._getDefaultButton(t),this._getCamerasButton(t,n,a?.view),this._getSubstreamsButton(t,n,a?.view),this._getLiveButton(t,a?.view,a?.viewManager),this._getClipsButton(t,a?.view,a?.viewManager),this._getSnapshotsButton(t,a?.view,a?.viewManager),this._getRecordingsButton(t,a?.view,a?.viewManager),this._getImageButton(t,a?.view,a?.viewManager),this._getTimelineButton(t,a?.view,a?.viewManager),this._getDownloadButton(t,n,a?.view),this._getCameraUIButton(t,a?.showCameraUIButton),this._getMicrophoneButton(t,a?.microphoneManager,a?.currentMediaLoadedInfo),this._getExpandButton(t,a?.inExpandedMode),this._getFullscreenButton(t,a?.inFullscreenMode),this._getCastButton(e,t,n,a?.view,a?.mediaPlayerController),this._getPlayPauseButton(t,a?.currentMediaLoadedInfo),this._getMuteUnmuteButton(t,a?.currentMediaLoadedInfo),this._getScreenshotButton(t,a?.currentMediaLoadedInfo),this._getDisplayModeButton(t,n,a?.view),this._getPTZControlsButton(t,n,a?.view),this._getPTZHomeButton(t,n,a?.view),...this._dynamicMenuButtons.map((e=>({style:this._getStyleFromActions(t,e,a),...e})))].filter(sf)}_getDefaultButton(e){return{icon:"frigate",...e.menu.buttons.frigate,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.frigate"),permanent:!0,tap_action:"hidden"===e.menu?.style?gf("menu_toggle"):gf("default"),hold_action:gf("diagnostics")}}_getCamerasButton(e,t,n){const a=t.getStore().getCameraIDsWithCapability("menu");if(a.size>1){const i=Array.from(t.getStore().getCameraConfigEntries(a),(([e,a])=>{const i=ff("camera_select",e),r=t.getCameraMetadata(e);return{enabled:!0,icon:r?.icon,entity:a.camera_entity,state_color:!0,title:r?.title,selected:n?.camera===e,...i&&{tap_action:i}}}));return{icon:"mdi:video-switch",...e.menu.buttons.cameras,type:"custom:frigate-card-menu-submenu",title:V_("config.menu.buttons.cameras"),items:i}}return null}_getSubstreamsButton(e,t,n){if(!n)return null;const a=t.getStore().getAllDependentCameras(n.camera,"substream");if(a.size&&n.is("live")){const i=[...a].filter((e=>e!==n.camera)),r=[n.camera,...i],o=My(n);if(2===r.length)return{icon:"mdi:video-input-component",style:o!==n.camera?this._getEmphasizedStyle():{},title:V_("config.menu.buttons.substreams"),...e.menu.buttons.substreams,type:"custom:frigate-card-menu-icon",tap_action:gf(ky(n)?"live_substream_off":"live_substream_on")};if(r.length>2){const a=Array.from(r,(e=>{const n=ff("live_substream_select",e),a=t.getCameraMetadata(e)??void 0,i=t.getStore().getCameraConfig(e);return{enabled:!0,icon:a?.icon,entity:i?.camera_entity,state_color:!0,title:a?.title,selected:o===e,...n&&{tap_action:n}}}));return{icon:"mdi:video-input-component",title:V_("config.menu.buttons.substreams"),style:o!==n.camera?this._getEmphasizedStyle():{},...e.menu.buttons.substreams,type:"custom:frigate-card-menu-submenu",items:a}}}return null}_getLiveButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"live")?{icon:"mdi:cctv",...e.menu.buttons.live,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.live"),style:t.is("live")?this._getEmphasizedStyle():{},tap_action:gf("live")}:null}_getClipsButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"clips")?{icon:"mdi:filmstrip",...e.menu.buttons.clips,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.clips"),style:t?.is("clips")?this._getEmphasizedStyle():{},tap_action:gf("clips"),hold_action:gf("clip")}:null}_getSnapshotsButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"snapshots")?{icon:"mdi:camera",...e.menu.buttons.snapshots,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.snapshots"),style:t?.is("snapshots")?this._getEmphasizedStyle():{},tap_action:gf("snapshots"),hold_action:gf("snapshot")}:null}_getRecordingsButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"recordings")?{icon:"mdi:album",...e.menu.buttons.recordings,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.recordings"),style:t.is("recordings")?this._getEmphasizedStyle():{},tap_action:gf("recordings"),hold_action:gf("recording")}:null}_getImageButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"image")?{icon:"mdi:image",...e.menu.buttons.image,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.image"),style:t?.is("image")?this._getEmphasizedStyle():{},tap_action:gf("image")}:null}_getTimelineButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"timeline")?{icon:"mdi:chart-gantt",...e.menu.buttons.timeline,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.timeline"),style:t.is("timeline")?this._getEmphasizedStyle():{},tap_action:gf("timeline")}:null}_getDownloadButton(e,t,n){const a=n?.queryResults?.getSelectedResult(),i=a?t?.getMediaCapabilities(a):null;return n?.isViewerView()&&i?.canDownload&&!this._isBeingCasted()?{icon:"mdi:download",...e.menu.buttons.download,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.download"),tap_action:gf("download")}:null}_getCameraUIButton(e,t){return t?{icon:"mdi:web",...e.menu.buttons.camera_ui,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.camera_ui"),tap_action:gf("camera_ui")}:null}_getMicrophoneButton(e,t,n){if(t&&n?.capabilities?.supports2WayAudio){const n=t.isForbidden()||!t.isSupported(),a=t.isMuted(),i=e.menu.buttons.microphone.type;return{icon:n?"mdi:microphone-message-off":a?"mdi:microphone-off":"mdi:microphone",...e.menu.buttons.microphone,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.microphone"),style:n||a?{}:this._getEmphasizedStyle(!0),...!n&&"momentary"===i&&{start_tap_action:gf("microphone_unmute"),end_tap_action:gf("microphone_mute")},...!n&&"toggle"===i&&{tap_action:gf(a?"microphone_unmute":"microphone_mute")}}}return null}_getExpandButton(e,t){return{icon:t?"mdi:arrow-collapse-all":"mdi:arrow-expand-all",...e.menu.buttons.expand,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.expand"),tap_action:gf("expand"),style:t?this._getEmphasizedStyle():{}}}_getFullscreenButton(e,t){return this._isBeingCasted()?null:{icon:t?"mdi:fullscreen-exit":"mdi:fullscreen",...e.menu.buttons.fullscreen,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.fullscreen"),tap_action:gf("fullscreen"),style:t?this._getEmphasizedStyle():{}}}_getCastButton(e,t,n,a,i){if(!a)return null;const r=n.getStore().getCameraConfig(a.camera);if(i?.hasMediaPlayers()&&(a.isViewerView()||a.is("live")&&r?.camera_entity)){const n=i.getMediaPlayers().map((t=>{const n=Lb(e,t)||t,a=e.states[t],i=_f(t,"play"),r=_f(t,"stop"),o=!a||"unavailable"===a.state;return{enabled:!0,selected:!1,icon:Nb(e,t),entity:t,state_color:!1,title:n,disabled:o,...!o&&i&&{tap_action:i},...!o&&r&&{hold_action:r}}}));return{icon:"mdi:cast",...t.menu.buttons.media_player,type:"custom:frigate-card-menu-submenu",title:V_("config.menu.buttons.media_player"),items:n}}return null}_getPlayPauseButton(e,t){if(t&&t.player&&t.capabilities?.supportsPause){const n=t.player.isPaused();return{icon:n?"mdi:play":"mdi:pause",...e.menu.buttons.play,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.play"),tap_action:gf(n?"play":"pause")}}return null}_getMuteUnmuteButton(e,t){if(t&&t.player&&t?.capabilities?.hasAudio){const n=t.player.isMuted();return{icon:n?"mdi:volume-off":"mdi:volume-high",...e.menu.buttons.mute,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.mute"),tap_action:gf(n?"unmute":"mute")}}return null}_getScreenshotButton(e,t){return t&&t.player?{icon:"mdi:monitor-screenshot",...e.menu.buttons.screenshot,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.screenshot"),tap_action:gf("screenshot")}:null}_getDisplayModeButton(e,t,n){const a=n?mx(t,n.view):null;if(n?.supportsMultipleDisplayModes()&&a&&a.size>1){const t=n.isGrid();return{icon:t?"mdi:grid-off":"mdi:grid",...e.menu.buttons.display_mode,style:t?this._getEmphasizedStyle():{},type:"custom:frigate-card-menu-icon",title:V_(t?"display_modes.single":"display_modes.grid"),tap_action:(i=t?"single":"grid",{action:"fire-dom-event",frigate_card_action:"display_mode_select",display_mode:i,...r?.cardID&&{card_id:r.cardID}})}}var i,r;return null}_getPTZControlsButton(e,t,n){const a=n?.is("live")?e.live.controls.ptz:n?.isViewerView()?e.media_viewer.controls.ptz:null;if(!n||!a||"off"===a.mode)return null;const i=Ry(n,{cameraManager:t,..."auto"===a.mode&&{type:"ptz"}});if(i){const t=!1!==n.context?.ptzControls?.enabled&&("on"===a.mode||"auto"===a.mode&&"ptz"===i.type);return{icon:"mdi:pan",...e.menu.buttons.ptz_controls,style:t?this._getEmphasizedStyle():{},type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.ptz_controls"),tap_action:(r=!t,{action:"fire-dom-event",frigate_card_action:"ptz_controls",enabled:r,...o?.cardID&&{card_id:o.cardID}})}}var r,o;return null}_getPTZHomeButton(e,t,n){const a=n?Ry(n,{cameraManager:t}):null;return!a||(("digital"===a.type&&n?.context?.zoom?.[a.targetID]?.observed?.isDefault)??1)?null:{icon:"mdi:home",...e.menu.buttons.ptz_home,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.ptz_home"),tap_action:vf({targetID:a.targetID})}}_getEmphasizedStyle(e){return e?{animation:"pulse 3s infinite",color:"var(--error-color, white)"}:{color:"var(--primary-color, white)"}}_getStyleFromActions(e,t,n){for(const a of[t.tap_action,t.double_tap_action,t.hold_action,t.start_tap_action,t.end_tap_action]){const t=Array.isArray(a)?a:[a];for(const a of t){if(!a||"fire-dom-event"!==a.action||!("frigate_card_action"in a))continue;const t=a;if(Zs.some((e=>e===t.frigate_card_action&&n?.view?.is(t.frigate_card_action)))||"default"===t.frigate_card_action&&n?.view?.is(e.view.default)||"fullscreen"===t.frigate_card_action&&n?.inFullscreenMode||"camera_select"===t.frigate_card_action&&n?.view?.camera===t.camera)return this._getEmphasizedStyle()}}return{}}_isBeingCasted(){return!!navigator.userAgent.match(/CrKey\//)}} +/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */ +function Ix(e){return null==e}var Tx=function(e,t){var n,a="";for(n=0;ns&&(t=a-s+(r=" ... ").length),n-a>s&&(n=a+s-(o=" ...").length),{str:r+e.slice(t,n).replace(/\t/g,"→")+o,pos:a-t+r.length}}function Lx(e,t){return jx.repeat(" ",t-e.length)+e}var Nx=function(e,t){if(t=Object.create(t||null),!e.buffer)return null;t.maxLength||(t.maxLength=79),"number"!=typeof t.indent&&(t.indent=1),"number"!=typeof t.linesBefore&&(t.linesBefore=3),"number"!=typeof t.linesAfter&&(t.linesAfter=2);for(var n,a=/\r?\n|\r|\0/g,i=[0],r=[],o=-1;n=a.exec(e.buffer);)r.push(n.index),i.push(n.index+n[0].length),e.position<=n.index&&o<0&&(o=i.length-2);o<0&&(o=i.length-1);var s,c,l="",d=Math.min(e.line+t.linesAfter,r.length).toString().length,u=t.maxLength-(t.indent+d+3);for(s=1;s<=t.linesBefore&&!(o-s<0);s++)c=Px(e.buffer,i[o-s],r[o-s],e.position-(i[o]-i[o-s]),u),l=jx.repeat(" ",t.indent)+Lx((e.line-s+1).toString(),d)+" | "+c.str+"\n"+l;for(c=Px(e.buffer,i[o],r[o],e.position,u),l+=jx.repeat(" ",t.indent)+Lx((e.line+1).toString(),d)+" | "+c.str+"\n",l+=jx.repeat("-",t.indent+d+3+c.pos)+"^\n",s=1;s<=t.linesAfter&&!(o+s>=r.length);s++)c=Px(e.buffer,i[o+s],r[o+s],e.position-(i[o]-i[o+s]),u),l+=jx.repeat(" ",t.indent)+Lx((e.line+s+1).toString(),d)+" | "+c.str+"\n";return l.replace(/\n$/,"")},Fx=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],Vx=["scalar","sequence","mapping"];var Hx=function(e,t){if(t=t||{},Object.keys(t).forEach((function(t){if(-1===Fx.indexOf(t))throw new Rx('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.options=t,this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.representName=t.representName||null,this.defaultStyle=t.defaultStyle||null,this.multi=t.multi||!1,this.styleAliases=function(e){var t={};return null!==e&&Object.keys(e).forEach((function(n){e[n].forEach((function(e){t[String(e)]=n}))})),t}(t.styleAliases||null),-1===Vx.indexOf(this.kind))throw new Rx('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')};function Bx(e,t){var n=[];return e[t].forEach((function(e){var t=n.length;n.forEach((function(n,a){n.tag===e.tag&&n.kind===e.kind&&n.multi===e.multi&&(t=a)})),n[t]=e})),n}function qx(e){return this.extend(e)}qx.prototype.extend=function(e){var t=[],n=[];if(e instanceof Hx)n.push(e);else if(Array.isArray(e))n=n.concat(e);else{if(!e||!Array.isArray(e.implicit)&&!Array.isArray(e.explicit))throw new Rx("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");e.implicit&&(t=t.concat(e.implicit)),e.explicit&&(n=n.concat(e.explicit))}t.forEach((function(e){if(!(e instanceof Hx))throw new Rx("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(e.loadKind&&"scalar"!==e.loadKind)throw new Rx("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(e.multi)throw new Rx("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")})),n.forEach((function(e){if(!(e instanceof Hx))throw new Rx("Specified list of YAML types (or a single Type object) contains a non-Type object.")}));var a=Object.create(qx.prototype);return a.implicit=(this.implicit||[]).concat(t),a.explicit=(this.explicit||[]).concat(n),a.compiledImplicit=Bx(a,"implicit"),a.compiledExplicit=Bx(a,"explicit"),a.compiledTypeMap=function(){var e,t,n={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function a(e){e.multi?(n.multi[e.kind].push(e),n.multi.fallback.push(e)):n[e.kind][e.tag]=n.fallback[e.tag]=e}for(e=0,t=arguments.length;e=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),nC=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var aC=/^[-+]?[0-9]+e/;var iC=new Hx("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!nC.test(e)||"_"===e[e.length-1])},construct:function(e){var t,n;return n="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:n*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||jx.isNegativeZero(e))},represent:function(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(jx.isNegativeZero(e))return"-0.0";return n=e.toString(10),aC.test(n)?n.replace("e",".e"):n},defaultStyle:"lowercase"}),rC=Gx.extend({implicit:[Yx,Kx,tC,iC]}),oC=rC,sC=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),cC=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");var lC=new Hx("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==sC.exec(e)||null!==cC.exec(e))},construct:function(e){var t,n,a,i,r,o,s,c,l=0,d=null;if(null===(t=sC.exec(e))&&(t=cC.exec(e)),null===t)throw new Error("Date resolve error");if(n=+t[1],a=+t[2]-1,i=+t[3],!t[4])return new Date(Date.UTC(n,a,i));if(r=+t[4],o=+t[5],s=+t[6],t[7]){for(l=t[7].slice(0,3);l.length<3;)l+="0";l=+l}return t[9]&&(d=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(d=-d)),c=new Date(Date.UTC(n,a,i,r,o,s,l)),d&&c.setTime(c.getTime()-d),c},instanceOf:Date,represent:function(e){return e.toISOString()}});var dC=new Hx("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}}),uC="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";var hC=new Hx("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,a=0,i=e.length,r=uC;for(n=0;n64)){if(t<0)return!1;a+=6}return a%8==0},construct:function(e){var t,n,a=e.replace(/[\r\n=]/g,""),i=a.length,r=uC,o=0,s=[];for(t=0;t>16&255),s.push(o>>8&255),s.push(255&o)),o=o<<6|r.indexOf(a.charAt(t));return 0===(n=i%4*6)?(s.push(o>>16&255),s.push(o>>8&255),s.push(255&o)):18===n?(s.push(o>>10&255),s.push(o>>2&255)):12===n&&s.push(o>>4&255),new Uint8Array(s)},predicate:function(e){return"[object Uint8Array]"===Object.prototype.toString.call(e)},represent:function(e){var t,n,a="",i=0,r=e.length,o=uC;for(t=0;t>18&63],a+=o[i>>12&63],a+=o[i>>6&63],a+=o[63&i]),i=(i<<8)+e[t];return 0===(n=r%3)?(a+=o[i>>18&63],a+=o[i>>12&63],a+=o[i>>6&63],a+=o[63&i]):2===n?(a+=o[i>>10&63],a+=o[i>>4&63],a+=o[i<<2&63],a+=o[64]):1===n&&(a+=o[i>>2&63],a+=o[i<<4&63],a+=o[64],a+=o[64]),a}}),pC=Object.prototype.hasOwnProperty,mC=Object.prototype.toString;var gC=new Hx("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,n,a,i,r,o=[],s=e;for(t=0,n=s.length;t>10),56320+(e-65536&1023))}for(var qC=new Array(256),UC=new Array(256),WC=0;WC<256;WC++)qC[WC]=HC(WC)?1:0,UC[WC]=HC(WC);function ZC(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||bC,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function QC(e,t){var n={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return n.snippet=Nx(n),new Rx(t,n)}function GC(e,t){throw QC(e,t)}function YC(e,t){e.onWarning&&e.onWarning.call(null,QC(e,t))}var KC={YAML:function(e,t,n){var a,i,r;null!==e.version&&GC(e,"duplication of %YAML directive"),1!==n.length&&GC(e,"YAML directive accepts exactly one argument"),null===(a=/^([0-9]+)\.([0-9]+)$/.exec(n[0]))&&GC(e,"ill-formed argument of the YAML directive"),i=parseInt(a[1],10),r=parseInt(a[2],10),1!==i&&GC(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=r<2,1!==r&&2!==r&&YC(e,"unsupported YAML version of the document")},TAG:function(e,t,n){var a,i;2!==n.length&&GC(e,"TAG directive accepts exactly two arguments"),a=n[0],i=n[1],TC.test(a)||GC(e,"ill-formed tag handle (first argument) of the TAG directive"),wC.call(e.tagMap,a)&&GC(e,'there is a previously declared suffix for "'+a+'" tag handle'),jC.test(i)||GC(e,"ill-formed tag prefix (second argument) of the TAG directive");try{i=decodeURIComponent(i)}catch(t){GC(e,"tag prefix is malformed: "+i)}e.tagMap[a]=i}};function XC(e,t,n,a){var i,r,o,s;if(t1&&(e.result+=jx.repeat("\n",t-1))}function rM(e,t){var n,a,i=e.tag,r=e.anchor,o=[],s=!1;if(-1!==e.firstTabInLine)return!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=o),a=e.input.charCodeAt(e.position);0!==a&&(-1!==e.firstTabInLine&&(e.position=e.firstTabInLine,GC(e,"tab characters must not be used in indentation")),45===a)&&PC(e.input.charCodeAt(e.position+1));)if(s=!0,e.position++,nM(e,!0,-1)&&e.lineIndent<=t)o.push(null),a=e.input.charCodeAt(e.position);else if(n=e.line,cM(e,t,MC,!1,!0),o.push(e.result),nM(e,!0,-1),a=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&0!==a)GC(e,"bad indentation of a sequence entry");else if(e.lineIndentt?m=1:e.lineIndent===t?m=0:e.lineIndentt?m=1:e.lineIndent===t?m=0:e.lineIndentt)&&(_&&(o=e.line,s=e.lineStart,c=e.position),cM(e,t,kC,!0,i)&&(_?g=e.result:f=e.result),_||(eM(e,h,p,m,g,f,o,s,c),m=g=f=null),nM(e,!0,-1),l=e.input.charCodeAt(e.position)),(e.line===r||e.lineIndent>t)&&0!==l)GC(e,"bad indentation of a mapping entry");else if(e.lineIndent=0))break;0===i?GC(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):c?GC(e,"repeat of an indentation width identifier"):(l=t+i-1,c=!0)}if(RC(r)){do{r=e.input.charCodeAt(++e.position)}while(RC(r));if(35===r)do{r=e.input.charCodeAt(++e.position)}while(!DC(r)&&0!==r)}for(;0!==r;){for(tM(e),e.lineIndent=0,r=e.input.charCodeAt(e.position);(!c||e.lineIndentl&&(l=e.lineIndent),DC(r))d++;else{if(e.lineIndent0){for(i=o,r=0;i>0;i--)(o=NC(s=e.input.charCodeAt(++e.position)))>=0?r=(r<<4)+o:GC(e,"expected hexadecimal character");e.result+=BC(r),e.position++}else GC(e,"unknown escape sequence");n=a=e.position}else DC(s)?(XC(e,n,a,!0),iM(e,nM(e,!1,t)),n=a=e.position):e.position===e.lineStart&&aM(e)?GC(e,"unexpected end of the document within a double quoted scalar"):(e.position++,a=e.position)}GC(e,"unexpected end of the stream within a double quoted scalar")}(e,h)?f=!0:!function(e){var t,n,a;if(42!==(a=e.input.charCodeAt(e.position)))return!1;for(a=e.input.charCodeAt(++e.position),t=e.position;0!==a&&!PC(a)&&!LC(a);)a=e.input.charCodeAt(++e.position);return e.position===t&&GC(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),wC.call(e.anchorMap,n)||GC(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],nM(e,!0,-1),!0}(e)?function(e,t,n){var a,i,r,o,s,c,l,d,u=e.kind,h=e.result;if(PC(d=e.input.charCodeAt(e.position))||LC(d)||35===d||38===d||42===d||33===d||124===d||62===d||39===d||34===d||37===d||64===d||96===d)return!1;if((63===d||45===d)&&(PC(a=e.input.charCodeAt(e.position+1))||n&&LC(a)))return!1;for(e.kind="scalar",e.result="",i=r=e.position,o=!1;0!==d;){if(58===d){if(PC(a=e.input.charCodeAt(e.position+1))||n&&LC(a))break}else if(35===d){if(PC(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&aM(e)||n&&LC(d))break;if(DC(d)){if(s=e.line,c=e.lineStart,l=e.lineIndent,nM(e,!1,-1),e.lineIndent>=t){o=!0,d=e.input.charCodeAt(e.position);continue}e.position=r,e.line=s,e.lineStart=c,e.lineIndent=l;break}}o&&(XC(e,i,r,!1),iM(e,e.line-s),i=r=e.position,o=!1),RC(d)||(r=e.position+1),d=e.input.charCodeAt(++e.position)}return XC(e,i,r,!1),!!e.result||(e.kind=u,e.result=h,!1)}(e,h,xC===n)&&(f=!0,null===e.tag&&(e.tag="?")):(f=!0,null===e.tag&&null===e.anchor||GC(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===m&&(f=s&&rM(e,p))),null===e.tag)null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);else if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&GC(e,'unacceptable node kind for ! tag; it should be "scalar", not "'+e.kind+'"'),c=0,l=e.implicitTypes.length;c"),null!==e.result&&u.kind!==e.kind&&GC(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+u.kind+'", not "'+e.kind+'"'),u.resolve(e.result,e.tag)?(e.result=u.construct(e.result,e.tag),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):GC(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||f}function lM(e){var t,n,a,i,r=e.position,o=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);0!==(i=e.input.charCodeAt(e.position))&&(nM(e,!0,-1),i=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==i));){for(o=!0,i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!PC(i);)i=e.input.charCodeAt(++e.position);for(a=[],(n=e.input.slice(t,e.position)).length<1&&GC(e,"directive name must not be less than one character in length");0!==i;){for(;RC(i);)i=e.input.charCodeAt(++e.position);if(35===i){do{i=e.input.charCodeAt(++e.position)}while(0!==i&&!DC(i));break}if(DC(i))break;for(t=e.position;0!==i&&!PC(i);)i=e.input.charCodeAt(++e.position);a.push(e.input.slice(t,e.position))}0!==i&&tM(e),wC.call(KC,n)?KC[n](e,n,a):YC(e,'unknown document directive "'+n+'"')}nM(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,nM(e,!0,-1)):o&&GC(e,"directives end mark is expected"),cM(e,e.lineIndent-1,kC,!1,!0),nM(e,!0,-1),e.checkLineBreaks&&zC.test(e.input.slice(r,e.position))&&YC(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&aM(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,nM(e,!0,-1)):e.position=55296&&a<=56319&&t+1=56320&&n<=57343?1024*(a-55296)+n-56320+65536:a}function JM(e){return/^\n* /.test(e)}var ek=1,tk=2,nk=3,ak=4,ik=5;function rk(e,t,n,a,i,r,o,s){var c,l=0,d=null,u=!1,h=!1,p=-1!==a,m=-1,g=function(e){return GM(e)&&e!==mM&&!QM(e)&&e!==EM&&e!==IM&&e!==$M&&e!==SM&&e!==jM&&e!==OM&&e!==RM&&e!==LM&&e!==wM&&e!==CM&&e!==kM&&e!==yM&&e!==PM&&e!==AM&&e!==zM&&e!==MM&&e!==bM&&e!==xM&&e!==TM&&e!==DM}(XM(e,0))&&function(e){return!QM(e)&&e!==$M}(XM(e,e.length-1));if(t||o)for(c=0;c=65536?c+=2:c++){if(!GM(l=XM(e,c)))return ik;g=g&&KM(l,d,s),d=l}else{for(c=0;c=65536?c+=2:c++){if((l=XM(e,c))===fM)u=!0,p&&(h=h||c-m-1>a&&" "!==e[m+1],m=c);else if(!GM(l))return ik;g=g&&KM(l,d,s),d=l}h=h||p&&c-m-1>a&&" "!==e[m+1]}return u||h?n>9&&JM(e)?ik:o?r===qM?ik:tk:h?ak:nk:!g||o||i(e)?r===qM?ik:tk:ek}function ok(e,t,n,a,i){e.dump=function(){if(0===t.length)return e.quotingType===qM?'""':"''";if(!e.noCompatMode&&(-1!==FM.indexOf(t)||VM.test(t)))return e.quotingType===qM?'"'+t+'"':"'"+t+"'";var r=e.indent*Math.max(1,n),o=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-r),s=a||e.flowLevel>-1&&n>=e.flowLevel;switch(rk(t,s,e.indent,o,(function(t){return function(e,t){var n,a;for(n=0,a=e.implicitTypes.length;n"+sk(t,e.indent)+ck(WM(function(e,t){var n,a,i=/(\n+)([^\n]*)/g,r=(s=e.indexOf("\n"),s=-1!==s?s:e.length,i.lastIndex=s,lk(e.slice(0,s),t)),o="\n"===e[0]||" "===e[0];var s;for(;a=i.exec(e);){var c=a[1],l=a[2];n=" "===l[0],r+=c+(o||n||""===l?"":"\n")+lk(l,t),o=n}return r}(t,o),r));case ik:return'"'+function(e){for(var t,n="",a=0,i=0;i=65536?i+=2:i++)a=XM(e,i),!(t=NM[a])&&GM(a)?(n+=e[i],a>=65536&&(n+=e[i+1])):n+=t||HM(a);return n}(t)+'"';default:throw new Rx("impossible error: invalid scalar style")}}()}function sk(e,t){var n=JM(e)?String(t):"",a="\n"===e[e.length-1];return n+(a&&("\n"===e[e.length-2]||"\n"===e)?"+":a?"":"-")+"\n"}function ck(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function lk(e,t){if(""===e||" "===e[0])return e;for(var n,a,i=/ [^ ]/g,r=0,o=0,s=0,c="";n=i.exec(e);)(s=n.index)-r>t&&(a=o>r?o:s,c+="\n"+e.slice(r,a),r=a+1),o=s;return c+="\n",e.length-r>t&&o>r?c+=e.slice(r,o)+"\n"+e.slice(o+1):c+=e.slice(r),c.slice(1)}function dk(e,t,n,a){var i,r,o,s="",c=e.tag;for(i=0,r=n.length;i tag resolver accepts not "'+c+'" style');a=s.represent[c](t,c)}e.dump=a}return!0}return!1}function hk(e,t,n,a,i,r,o){e.tag=null,e.dump=n,uk(e,n,!1)||uk(e,n,!0);var s,c=hM.call(e.dump),l=a;a&&(a=e.flowLevel<0||e.flowLevel>t);var d,u,h="[object Object]"===c||"[object Array]"===c;if(h&&(u=-1!==(d=e.duplicates.indexOf(n))),(null!==e.tag&&"?"!==e.tag||u||2!==e.indent&&t>0)&&(i=!1),u&&e.usedDuplicates[d])e.dump="*ref_"+d;else{if(h&&u&&!e.usedDuplicates[d]&&(e.usedDuplicates[d]=!0),"[object Object]"===c)a&&0!==Object.keys(e.dump).length?(!function(e,t,n,a){var i,r,o,s,c,l,d="",u=e.tag,h=Object.keys(n);if(!0===e.sortKeys)h.sort();else if("function"==typeof e.sortKeys)h.sort(e.sortKeys);else if(e.sortKeys)throw new Rx("sortKeys must be a boolean or a function");for(i=0,r=h.length;i1024)&&(e.dump&&fM===e.dump.charCodeAt(0)?l+="?":l+="? "),l+=e.dump,c&&(l+=ZM(e,t)),hk(e,t+1,s,!0,c)&&(e.dump&&fM===e.dump.charCodeAt(0)?l+=":":l+=": ",d+=l+=e.dump));e.tag=u,e.dump=d||"{}"}(e,t,e.dump,i),u&&(e.dump="&ref_"+d+e.dump)):(!function(e,t,n){var a,i,r,o,s,c="",l=e.tag,d=Object.keys(n);for(a=0,i=d.length;a1024&&(s+="? "),s+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),hk(e,t,o,!1,!1)&&(c+=s+=e.dump));e.tag=l,e.dump="{"+c+"}"}(e,t,e.dump),u&&(e.dump="&ref_"+d+" "+e.dump));else if("[object Array]"===c)a&&0!==e.dump.length?(e.noArrayIndent&&!o&&t>0?dk(e,t-1,e.dump,i):dk(e,t,e.dump,i),u&&(e.dump="&ref_"+d+e.dump)):(!function(e,t,n){var a,i,r,o="",s=e.tag;for(a=0,i=n.length;a",e.dump=s+" "+e.dump)}return!0}function pk(e,t){var n,a,i=[],r=[];for(mk(e,i,r),n=0,a=r.length;nq`
${fk.dump(e)}
`;return q`
+
+
+ +
+
+ + ${this.message?q`${this.message}${this.context&&"string"==typeof this.context?": "+this.context:""}`:""} + + ${this.context&&Array.isArray(this.context)?this.context.map((e=>n(e))):"object"==typeof this.context?n(this.context):""} +
+
+
`}static get styles(){return o(_k)}};e([he({attribute:!1})],vk.prototype,"message",void 0),e([he({attribute:!1})],vk.prototype,"context",void 0),e([he({attribute:!1})],vk.prototype,"icon",void 0),e([he({attribute:!0,type:Boolean})],vk.prototype,"dotdotdot",void 0),vk=e([le("frigate-card-message")],vk);let yk=class extends se{render(){if(this.message)return q` ${V_("error.troubleshooting")}
.`} + .icon=${this.message.icon??"mdi:alert-circle"} + .context=${this.message.context} + .dotdotdot=${this.message.dotdotdot} + > + `}static get styles(){return o(_k)}};e([he({attribute:!1})],yk.prototype,"message",void 0),yk=e([le("frigate-card-error-message")],yk);let bk=class extends se{constructor(){super(...arguments),this.message="",this.animated=!1,this.size="large"}render(){return q`
+ ${this.animated?q` + `:q``} + ${this.message?q`${this.message}`:q``} +
`}static get styles(){return o(_k)}};function wk(e){return"error"===e?.type?q` `:e?q` `:q``}function xk(e){return q` + + + `}function Ck(e,t,n,a){Bg(e,"message",{message:t,type:n,icon:a?.icon,context:a?.context})}function Mk(e,t,n){Ck(e,t,"error",{context:n?.context})}function kk(e,t){t instanceof Error&&Mk(e,t.message,{...t instanceof zs&&{context:t.context}})}e([he({attribute:!1})],bk.prototype,"message",void 0),e([he({attribute:!1})],bk.prototype,"animated",void 0),e([he({attribute:!1})],bk.prototype,"size",void 0),bk=e([le("frigate-card-progress-indicator")],bk);let Sk=class extends se{constructor(){super(...arguments),this._root=null}createRenderRoot(){return this}_createRoot(){const e=customElements.get("hui-conditional-element");if(!e||!this.hass)throw new Error(V_("error.could_not_render_elements"));const t=new e;t.hass=this.hass;const n={type:"conditional",conditions:[],elements:this.elements};try{t.setConfig(n)}catch(e){throw Gg(e,console.error),new zs(V_("error.invalid_elements_config"))}return t}willUpdate(e){try{!this.elements||this._root&&!e.has("elements")||(this._root=this._createRoot())}catch(e){return kk(this,e)}}render(){return q`${this._root||""}`}updated(){this.hass&&this._root&&(this._root.hass=this.hass)}};e([he({attribute:!1})],Sk.prototype,"elements",void 0),e([he({attribute:!1})],Sk.prototype,"conditionsManagerEpoch",void 0),e([he({attribute:!1})],Sk.prototype,"hass",void 0),Sk=e([le("frigate-card-elements-core")],Sk);let Ek=class extends se{constructor(){super(...arguments),this._menuRemoveHandler=e=>{Bg(this,"menu:remove",e.detail)},this._statusBarRemoveHandler=e=>{Bg(this,"status-bar:remove",e.detail)},this._menuAddHandler=e=>{const t=e.composedPath();t.length&&this._addHandler(t[0],"frigate-card:menu:remove",this._menuRemoveHandler)},this._statusBarAddHandler=e=>{const t=e.composedPath();t.length&&this._addHandler(t[0],"frigate-card:status-bar:add",this._statusBarRemoveHandler)}}_addHandler(e,t,n){e.removeEventListener(t,n),e.addEventListener(t,n)}connectedCallback(){super.connectedCallback(),this.addEventListener("frigate-card:menu:add",this._menuAddHandler),this.addEventListener("frigate-card:status-bar:add",this._statusBarAddHandler)}disconnectedCallback(){this.removeEventListener("frigate-card:menu:add",this._menuAddHandler),this.addEventListener("frigate-card:status-bar:add",this._statusBarAddHandler),super.disconnectedCallback()}render(){return q` + `}static get styles(){return o(":host {\n position: absolute;\n inset: 0;\n overflow: hidden;\n pointer-events: none;\n}\n\n.element {\n position: absolute;\n transform: translate(-50%, -50%);\n pointer-events: auto;\n}\n\nhui-error-card.element {\n inset: 0px;\n transform: unset;\n}")}};e([he({attribute:!1})],Ek.prototype,"hass",void 0),e([he({attribute:!1})],Ek.prototype,"conditionsManagerEpoch",void 0),e([he({attribute:!1})],Ek.prototype,"elements",void 0),Ek=e([le("frigate-card-elements")],Ek);let $k=class extends se{setConfig(e){this._config=e}createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),this.className=""}render(){if(function(e,t){if(!t)return!0;const n=new _w(t,{bubbles:!0,composed:!0});return e.dispatchEvent(n),n.evaluation??!1}(this,this._config?.conditions))return q` + `}};e([he({attribute:!1,hasChanged:()=>!0})],$k.prototype,"hass",void 0),$k=e([le("frigate-card-conditional")],$k);class Ak extends se{constructor(e){super(),this._config=null,this._eventCategory=e}setConfig(e){this._config=e}connectedCallback(){super.connectedCallback(),this._config&&Bg(this,`${this._eventCategory}:add`,this._config)}disconnectedCallback(){this._config&&Bg(this,`${this._eventCategory}:remove`,this._config),super.disconnectedCallback()}}e([pe()],Ak.prototype,"_config",void 0);class zk extends Ak{constructor(){super("menu")}}let Ik=class extends zk{};Ik=e([le("frigate-card-menu-icon")],Ik);let Tk=class extends zk{};Tk=e([le("frigate-card-menu-state-icon")],Tk);let jk=class extends zk{};jk=e([le("frigate-card-menu-submenu")],jk);let Ok=class extends zk{};Ok=e([le("frigate-card-menu-submenu-select")],Ok);class Dk extends Ak{constructor(){super("status-bar")}}let Rk=class extends Dk{};Rk=e([le("frigate-card-status-bar-icon")],Rk);let Pk=class extends Dk{};Pk=e([le("frigate-card-status-bar-image")],Pk);let Lk=class extends Dk{};Lk=e([le("frigate-card-status-bar-string")],Lk);let Nk=class extends se{render(){return q` `}static get styles(){return o(":host {\n width: intrinsic;\n height: intrinsic;\n display: flex;\n justify-content: center;\n align-items: center;\n pointer-events: none;\n}\n\nimg {\n width: 10%;\n animation: rotate 8s linear infinite;\n}\n\n@keyframes rotate {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}")}};Nk=e([le("frigate-card-loading")],Nk);const Fk=(e,t)=>{Bg(e,"action:execution-request",t)};class Vk{constructor(e){this._config=null,this._buttons=[],this._expanded=!1,this._host=e}setMenuConfig(e){this._config=e,this._host.style.setProperty("--frigate-card-menu-button-size",`${e.button_size}px`),this._host.setAttribute("data-style",e.style),this._host.setAttribute("data-position",e.position),this._host.setAttribute("data-alignment",e.alignment),this._sortButtons(),this._host.requestUpdate()}getMenuConfig(){return this._config}isExpanded(){return this._expanded}setButtons(e){this._buttons=e,this._sortButtons(),this._host.requestUpdate()}getButtons(e){const t=e=>!this._isHidingMenu()||this._expanded||!!e.permanent;return this._buttons.filter((n=>(e=>!1!==e.enabled)(n)&&(t=>t.alignment===e||"matching"===e&&!t.alignment)(n)&&t(n)))}setExpanded(e){this._expanded=e,of(this._host,e,"expanded"),this._host.requestUpdate()}toggleExpanded(){this.setExpanded(!this._expanded)}actionHandler(e,t){if(e.stopPropagation(),e.detail.config&&(t=e.detail.config),!t)return;const n=e.detail.action,a=yf(n,t);if(!a)return;const i=Wg(a);let r=!1;const o=i.filter((e=>sf(e)&&!this._isUnknownActionMenuToggleAction(e)));if(o.length!=i.length&&(r=!0),o.length&&Fk(this._host,{action:i,config:t}),this._isHidingMenu())if(r)this.setExpanded(!this._expanded);else{const e=yf("hold",t),a=yf("double_tap",t),i=yf("tap",t),r=yf("end_tap",t);"end_tap"!==n&&("start_tap"!==n||e||a||i||r)&&("end_tap"===n||r)||this.setExpanded(!1)}}getFreshButtonState(e,t){const n={...t};return e&&"custom:frigate-card-menu-state-icon"===t.type?Pb(e,n):n}_sortButtons(){this._buttons=Ev(this._buttons,(e=>(e.priority??0)+(this._isHidingMenu()&&e.permanent?Us:0)),["desc"])}_isHidingMenu(){return"hidden"===this._config?.style}_isUnknownActionMenuToggleAction(e){const t=mf(e);return!!t&&"menu_toggle"==t.frigate_card_action}}var Hk="data:image/svg+xml,%3c%3fxml version='1.0' encoding='UTF-8' standalone='no'%3f%3e%3csvg width='24' height='24' viewBox='0 0 24 24' fill='none' version='1.1' id='svg54' sodipodi:docname='frigate.svg' inkscape:version='1.2.2 (b0a8486541%2c 2022-12-01)' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg'%3e %3cdefs id='defs58' /%3e %3csodipodi:namedview id='namedview56' pagecolor='%23da4040' bordercolor='%23666666' borderopacity='1.0' inkscape:pageshadow='2' inkscape:pageopacity='0' inkscape:pagecheckerboard='0' showgrid='false' width='24px' inkscape:zoom='45.254834' inkscape:cx='-0.03314563' inkscape:cy='9.9768347' inkscape:window-width='3840' inkscape:window-height='1527' inkscape:window-x='1080' inkscape:window-y='227' inkscape:window-maximized='1' inkscape:current-layer='svg54' showguides='true' inkscape:showpageshadow='2' inkscape:deskcolor='%23d1d1d1' /%3e %3cpath d='m 4.8759466%2c22.743573 c 0.0866%2c0.69274 0.811811%2c1.16359 0.37885%2c1.27183 -0.43297%2c0.10824 -2.32718%2c-3.43665 -2.7601492%2c-4.95202 -0.4329602%2c-1.51538 -0.6764993%2c-3.22017 -0.5682593%2c-4.19434 0.1082301%2c-0.97417 5.7097085%2c-2.48955 5.7097085%2c-2.89545 0%2c-0.4059 -1.81304%2c-0.0271 -1.89422%2c-0.35178 -0.0812%2c-0.32472 1.36925%2c-0.12989 1.75892%2c-0.64945 0.60885%2c-0.81181 1.3800713%2c-0.6765 1.8671505%2c-1.1094696 0.4870902%2c-0.4329599 1.0824089%2c-2.0836399 1.1906589%2c-2.7871996 0.108241%2c-0.70357 -1.0824084%2c-1.51538 -1.4071389%2c-2.05658 -0.3247195%2c-0.54121 0.7035702%2c-0.92005 3.1931099%2c-1.94834 2.48954%2c-1.02829 10.39114%2c-3.30134994 10.49938%2c-3.03074994 0.10824%2c0.27061 -2.59779%2c1.40713994 -4.492%2c2.11069994 -1.89422%2c0.70357 -4.97909%2c2.05658 -4.97909%2c2.43542 0%2c0.37885 0.16236%2c0.67651 0.0541%2c1.54244 -0.10824%2c0.86593 -0.12123%2c1.2702597 -0.32472%2c1.8400997 -0.1353%2c0.37884 -0.2706%2c1.27183 0%2c2.0836295 0.21648%2c0.64945 0.92005%2c1.13653 1.24477%2c1.24478 0.2706%2c0.018 1.01746%2c0.0433 1.8401%2c0 1.02829%2c-0.0541 2.48954%2c0.0541 2.48954%2c0.32472 0%2c0.2706 -2.21894%2c0.10824 -2.21894%2c0.48708 0%2c0.37885 2.27306%2c-0.0541 2.21894%2c0.32473 -0.0541%2c0.37884 -1.89422%2c0.21648 -2.86839%2c0.21648 -0.77933%2c0 -1.93031%2c-0.0361 -2.43542%2c-0.21648 l -0.10824%2c0.37884 c -0.18038%2c0 -0.55744%2c0.10824 -0.94711%2c0.10824 -0.48708%2c0 -0.51414%2c0.16236 -1.40713%2c0.16236 -0.892989%2c0 -0.622391%2c-0.0541 -1.4341894%2c-0.10824 -0.81181%2c-0.0541 -3.842561%2c2.27306 -4.383761%2c3.03075 -0.54121%2c0.75768 -0.21649%2c2.59778 -0.21649%2c3.43665 0%2c0.75379 -0.10824%2c2.43542 0%2c3.30135 z' fill='black' id='path330' style='fill:white%3bfill-opacity:1%3bstroke:none%3bstroke-width:0.1%3bstroke-miterlimit:4%3bstroke-dasharray:none%3bstroke-opacity:1' sodipodi:nodetypes='csccscccccsscscccccsscsccssccscc' /%3e%3c/svg%3e",Bk="data:image/svg+xml,%3c%3fxml version='1.0' encoding='UTF-8' standalone='no'%3f%3e%3c!-- Created with Inkscape (http://www.inkscape.org/) --%3e%3csvg id='svg2' version='1.1' inkscape:version='1.2.2 (b0a8486541%2c 2022-12-01)' width='24' height='24' xml:space='preserve' sodipodi:docname='motioneye.svg' inkscape:export-filename='/home/ccrisan/projects/motioneye/static/img/motioneye-logo.png' inkscape:export-xdpi='960' inkscape:export-ydpi='960' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns%23' xmlns:cc='http://creativecommons.org/ns%23' xmlns:dc='http://purl.org/dc/elements/1.1/'%3e%3cmetadata id='metadata8'%3e%3crdf:RDF%3e%3ccc:Work rdf:about=''%3e%3cdc:format%3eimage/svg%2bxml%3c/dc:format%3e%3cdc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage' /%3e%3c/cc:Work%3e%3c/rdf:RDF%3e%3c/metadata%3e%3cdefs id='defs6'%3e%3clinearGradient inkscape:collect='always' id='linearGradient2058'%3e%3cstop style='stop-color:white%3bstop-opacity:1%3b' offset='0' id='stop2054' /%3e%3cstop style='stop-color:%23585858%3bstop-opacity:1' offset='1' id='stop2056' /%3e%3c/linearGradient%3e%3clinearGradient inkscape:collect='always' id='linearGradient2005'%3e%3cstop style='stop-color:white%3bstop-opacity:1%3b' offset='0' id='stop2001' /%3e%3cstop style='stop-color:grey%3bstop-opacity:1%3b' offset='1' id='stop2003' /%3e%3c/linearGradient%3e%3clinearGradient inkscape:collect='always' id='linearGradient4205'%3e%3cstop style='stop-color:%234aa3e0%3bstop-opacity:1' offset='0' id='stop4207' /%3e%3cstop style='stop-color:%233096db%3bstop-opacity:1' offset='1' id='stop4209' /%3e%3c/linearGradient%3e%3clinearGradient inkscape:collect='always' id='linearGradient4197'%3e%3cstop style='stop-color:white%3bstop-opacity:1%3b' offset='0' id='stop4199' /%3e%3cstop style='stop-color:%23585858%3bstop-opacity:1' offset='1' id='stop4201' /%3e%3c/linearGradient%3e%3clinearGradient inkscape:collect='always' xlink:href='%23linearGradient4205' id='linearGradient4211' x1='26.602072' y1='43.034946' x2='26.602072' y2='29.466328' gradientUnits='userSpaceOnUse' gradientTransform='matrix(0.96428571%2c0%2c0%2c0.96428571%2c0.91428571%2c0.91428571)' /%3e%3cfilter style='color-interpolation-filters:sRGB' inkscape:label='Drop Shadow' id='filter4285'%3e%3cfeFlood flood-opacity='0.588235' flood-color='rgb(0%2c0%2c0)' result='flood' id='feFlood4287' /%3e%3cfeComposite in='flood' in2='SourceGraphic' operator='in' result='composite1' id='feComposite4289' /%3e%3cfeGaussianBlur in='composite1' stdDeviation='0.6' result='blur' id='feGaussianBlur4291' /%3e%3cfeOffset dx='0' dy='-1' result='offset' id='feOffset4293' /%3e%3cfeComposite in='SourceGraphic' in2='offset' operator='over' result='composite2' id='feComposite4295' /%3e%3c/filter%3e%3clinearGradient inkscape:collect='always' xlink:href='%23linearGradient2005' id='linearGradient4309' gradientUnits='userSpaceOnUse' x1='26.445793' y1='47.517574' x2='26.445793' y2='3.8183768' /%3e%3clinearGradient inkscape:collect='always' xlink:href='%23linearGradient4197' id='linearGradient4311' gradientUnits='userSpaceOnUse' x1='26.445793' y1='47.517574' x2='26.445793' y2='3.8183768' /%3e%3clinearGradient inkscape:collect='always' xlink:href='%23linearGradient2058' id='linearGradient4313' gradientUnits='userSpaceOnUse' x1='26.445793' y1='47.517574' x2='26.445793' y2='3.8183768' /%3e%3cfilter style='color-interpolation-filters:sRGB' inkscape:label='Drop Shadow' id='filter4315' x='-0.03618178' y='-0.20783284' width='1.0723636' height='1.3304883'%3e%3cfeFlood flood-opacity='0.588235' flood-color='rgb(0%2c0%2c0)' result='flood' id='feFlood4317' /%3e%3cfeComposite in='flood' in2='SourceGraphic' operator='in' result='composite1' id='feComposite4319' /%3e%3cfeGaussianBlur in='composite1' stdDeviation='0.6' result='blur' id='feGaussianBlur4321' /%3e%3cfeOffset dx='0' dy='-1' result='offset' id='feOffset4323' /%3e%3cfeComposite in='SourceGraphic' in2='offset' operator='over' result='composite2' id='feComposite4325' /%3e%3c/filter%3e%3cfilter style='color-interpolation-filters:sRGB' inkscape:label='Drop Shadow' id='filter4327' x='-0.27857143' y='-0.4720238' width='1.5571429' height='1.7505952'%3e%3cfeFlood flood-opacity='0.588235' flood-color='rgb(0%2c0%2c0)' result='flood' id='feFlood4329' /%3e%3cfeComposite in='flood' in2='SourceGraphic' operator='in' result='composite1' id='feComposite4331' /%3e%3cfeGaussianBlur in='composite1' stdDeviation='0.6' result='blur' id='feGaussianBlur4333' /%3e%3cfeOffset dx='0' dy='-1' result='offset' id='feOffset4335' /%3e%3cfeComposite in='SourceGraphic' in2='offset' operator='over' result='composite2' id='feComposite4337' /%3e%3c/filter%3e%3cfilter style='color-interpolation-filters:sRGB' inkscape:label='Drop Shadow' id='filter4339' x='-0.0202507' y='-0.13980794' width='1.0405014' height='1.2082853'%3e%3cfeFlood flood-opacity='0.588235' flood-color='rgb(0%2c0%2c0)' result='flood' id='feFlood4341' /%3e%3cfeComposite in='flood' in2='SourceGraphic' operator='in' result='composite1' id='feComposite4343' /%3e%3cfeGaussianBlur in='composite1' stdDeviation='0.2' result='blur' id='feGaussianBlur4345' /%3e%3cfeOffset dx='0' dy='-0.5' result='offset' id='feOffset4347' /%3e%3cfeComposite in='SourceGraphic' in2='offset' operator='over' result='composite2' id='feComposite4349' /%3e%3c/filter%3e%3c/defs%3e%3csodipodi:namedview pagecolor='%23ff0d0d' bordercolor='%23666666' borderopacity='1' objecttolerance='10' gridtolerance='10' guidetolerance='10' inkscape:pageopacity='0' inkscape:pageshadow='2' inkscape:window-width='3840' inkscape:window-height='1527' id='namedview4' showgrid='false' inkscape:zoom='29.890116' inkscape:cx='19.973158' inkscape:cy='16.577386' inkscape:window-x='1080' inkscape:window-y='227' inkscape:window-maximized='1' inkscape:current-layer='g10' showguides='true' inkscape:guide-bbox='true' inkscape:showpageshadow='true' inkscape:pagecheckerboard='false' inkscape:deskcolor='%23d1d1d1' /%3e%3cg id='g10' inkscape:groupmode='layer' inkscape:label='ink_ext_XXXXXX' transform='matrix(1.25%2c0%2c0%2c-1.25%2c0%2c64)'%3e%3cg id='g4823' transform='matrix(1.0344694%2c0%2c0%2c1.0344694%2c-3.551886%2c-0.86695248)'%3e%3cpath id='path4244' d='M 8.9346154%2c40.515385 C 5.3647588%2c36.547307 3.2%2c31.357779 3.2%2c25.6 3.2%2c13.228821 13.228821%2c3.2 25.6%2c3.2 37.971179%2c3.2 48%2c13.228821 48%2c25.6 c 0%2c5.736682 -2.161128%2c10.952493 -5.707692%2c14.915385 -1.695935%2c-0.623286 -3.387833%2c-1.349065 -5.061539%2c-2.288462 3.2394%2c-0.937363 5.6%2c-3.937988 5.6%2c-7.457692 0%2c-4.260339 -3.469626%2c-7.753846 -7.753846%2c-7.753846 -3.633936%2c0 -6.690552%2c2.51055 -7.538461%2c5.869231 h -3.876924 c -0.840685%2c-3.360193 -3.903443%2c-5.869231 -7.538461%2c-5.869231 -4.284219%2c0 -7.7807693%2c3.493507 -7.7807693%2c7.753846 0%2c3.56112 2.4570323%2c6.5856 5.7615383%2c7.484616 -1.676267%2c0.912203 -3.404813%2c1.620556 -5.1692306%2c2.261538 z M 25.6%2c26.461538 c 0.532632%2c-1.981435 1.101793%2c-3.947553 3.446154%2c-5.16923 L 25.6%2c16.123077 22.153846%2c21.292308 c 2.053593%2c1.454966 3.000771%2c3.237758 3.446154%2c5.16923 z' style='fill:url(%23linearGradient4309)%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4327)' inkscape:connector-curvature='0' transform='matrix(0.38078533%2c0%2c0%2c0.38078533%2c2.9655495%2c31.335499)' /%3e%3cpath id='path4242' d='m 16.123077%2c33.353847 c -1.427443%2c0 -2.584616%2c-1.157173 -2.584616%2c-2.584616 0%2c-1.427444 1.157173%2c-2.584615 2.584616%2c-2.584615 1.427444%2c0 2.584615%2c1.157171 2.584615%2c2.584615 0%2c1.427443 -1.157171%2c2.584616 -2.584615%2c2.584616 z' style='fill:url(%23linearGradient4311)%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4327)' inkscape:connector-curvature='0' transform='matrix(0.38078533%2c0%2c0%2c0.38078533%2c2.9655495%2c31.335499)' /%3e%3cpath id='path4240' d='m 35.076923%2c33.353847 c -1.427443%2c0 -2.584615%2c-1.157173 -2.584615%2c-2.584616 0%2c-1.427444 1.157172%2c-2.584615 2.584615%2c-2.584615 1.427443%2c0 2.584616%2c1.157171 2.584616%2c2.584615 0%2c1.427443 -1.157173%2c2.584616 -2.584616%2c2.584616 z' style='fill:url(%23linearGradient4313)%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4327)' inkscape:connector-curvature='0' transform='matrix(0.38078533%2c0%2c0%2c0.38078533%2c2.9655495%2c31.335499)' /%3e%3cpath inkscape:connector-curvature='0' style='fill:%23d9d9d9%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4339)' d='m 25.6%2c47.2 c -4.373944%2c0 -8.437159%2c-1.399808 -11.838461%2c-3.634616 3.677605%2c-0.394237 7.305921%2c-1.342945 11.423077%2c-3.375 4.166157%2c2.122533 8.434154%2c3.008875 12.279808%2c3.452886 C 34.057131%2c45.890032 29.986674%2c47.2 25.6%2c47.2 Z' id='path4248' transform='matrix(0.39488848%2c0%2c0%2c0.39488848%2c2.6045087%2c30.974457)' /%3e%3cpath inkscape:connector-curvature='0' style='fill:url(%23linearGradient4211)%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4315)' d='M 39.723077%2c42.552884 C 35.394064%2c42.5242 29.479588%2c40.397223 25.184616%2c38.432418 20.668821%2c40.064102 16.035448%2c42.649343 10.801923%2c42.526924 10.453022%2c42.51873 10.118061%2c42.50105 9.7634616%2c42.475 L 5.6615384%2c42.1375 9.5557693%2c40.839424 c 5.3417977%2c-1.74056 10.0398397%2c-2.851302 14.1749997%2c-10.025963 0.959101%2c0 2.845924%2c-4.15e-4 3.738462%2c-4.15e-4 4.11884%2c7.134039 9.059296%2c8.324614 14.149039%2c10.026378 L 45.460577%2c42.085577 41.4625%2c42.475 c -0.544847%2c0.05181 -1.120992%2c0.08198 -1.739423%2c0.07788 z' id='path4246' sodipodi:nodetypes='cccccccccccc' transform='matrix(0.39488848%2c0%2c0%2c0.39488848%2c2.6045087%2c30.974457)' /%3e%3c/g%3e%3c/g%3e%3c/svg%3e",qk="data:image/svg+xml,%3c%3fxml version='1.0' encoding='UTF-8' standalone='no'%3f%3e%3c!-- Created with Inkscape (http://www.inkscape.org/) --%3e%3csvg version='1.1' id='svg62' width='24' height='24' viewBox='0 0 24 24' sodipodi:docname='reolink.svg' inkscape:version='1.2.2 (b0a8486541%2c 2022-12-01)' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg'%3e %3cdefs id='defs66' /%3e %3csodipodi:namedview id='namedview64' pagecolor='%23505050' bordercolor='%23eeeeee' borderopacity='1' inkscape:showpageshadow='0' inkscape:pageopacity='0' inkscape:pagecheckerboard='0' inkscape:deskcolor='%23505050' showgrid='true' inkscape:zoom='36.417984' inkscape:cx='18.191562' inkscape:cy='8.6633022' inkscape:window-width='3840' inkscape:window-height='1527' inkscape:window-x='1080' inkscape:window-y='227' inkscape:window-maximized='1' inkscape:current-layer='g68'%3e %3cinkscape:grid type='xygrid' id='grid1175' dotted='false' snapvisiblegridlinesonly='true' /%3e %3c/sodipodi:namedview%3e %3cg inkscape:groupmode='layer' inkscape:label='Reolink Logo' id='g68'%3e %3cpath style='fill:white%3bstroke-width:0.0393282%3bfill-opacity:1' d='M 17.037254%2c23.964909 C 16.764634%2c23.917573 16.561708%2c23.83617 16.325735%2c23.67954 16.196719%2c23.593913 14.543544%2c21.952905 12.217956%2c19.602014 10.077426%2c17.438191 8.2198993%2c15.582673 8.0901166%2c15.478642 7.6038998%2c15.088895 7.0877741%2c14.869424 6.4986827%2c14.801908 6.3140805%2c14.780765 5.079061%2c14.763305 3.7541964%2c14.763126 l -2.408845%2c-4.78e-4 0.00713%2c-7.3937713 v -7.3935985 l 6.2040046%2c3.536e-5 c 3.9799342%2c1.969e-5 6.3590882%2c0.01465833 6.6366112%2c0.0408227 2.331195%2c0.21982024 4.364771%2c1.49885914 5.578726%2c3.50085534 0.686043%2c1.1313823 1.020901%2c2.2783695 1.067186%2c3.6554196 0.06335%2c1.8844953 -0.57426%2c3.6597378 -1.831469%2c5.0992438 -0.756457%2c0.866146 -1.861127%2c1.62991 -2.928729%2c2.024919 l -0.319718%2c0.118287 -1.951287%2c-1.979284 -1.951286%2c-1.979278 1.046741%2c-0.02346 c 0.575706%2c-0.01291 1.099833%2c-0.03689 1.164724%2c-0.0533 0.596068%2c-0.150649 0.949703%2c-0.313968 1.322206%2c-0.6106282 0.643573%2c-0.5125401 1.046169%2c-1.2439257 1.137985%2c-2.0673522 0.167852%2c-1.505317 -0.771478%2c-2.8704888 -2.263547%2c-3.2897068 L 13.950001%2c4.3234481 9.7981831%2c4.3106846 5.6392389%2c4.29801 v 3.0692702 3.0692648 l 1.4185165%2c7.9e-4 c 1.6275801%2c8.87e-4 1.7789152%2c0.01912 2.3105245%2c0.27984 0.3095679%2c0.15183 0.389559%2c0.219499 1.0817441%2c0.915083 3.027399%2c3.042274 12.19404%2c12.30837 12.204589%2c12.337002 0.0161%2c0.04373 -5.364393%2c0.03953 -5.617359%2c-0.0045 z' id='path1173' inkscape:label='R' /%3e %3c/g%3e%3c/svg%3e";const Uk=e=>{switch(e){case"frigate":return Hk;case"motioneye":return Bk;case"reolink":return qk;default:return null}};const Wk=(e,t,n)=>{const a=e.states[t],i=n?.state?n.state:a?a.state:null;if(!i)return null;const r=Ye(t),o=a?a.attributes:null;return n?.entity?.translation_key&&e.localize(`component.${n.entity.platform}.entity.${r}.${n.entity.translation_key}.state.${i}`)||o?.device_class&&e.localize(`component.${r}.state.${o.device_class}.${i}`)||e.localize(`component.${r}.state._.${i}`)||i};let Zk=class extends se{_renderItem(e){if(!this.hass)return;const t=Pb(this.hass,{...e});return q` + {t.detail.config=e}} + .actionHandler=${kf({hasHold:bf(e.hold_action),hasDoubleClick:bf(e.double_tap_action)})} + > + ${t.title||""} + ${e.subtitle?q`${e.subtitle}`:""} + ${(e=>{if(e.icon){const t=Uk(e.icon);return t?q``:q` + `}return q``})(t)} + + `}render(){if(!this.submenu)return q``;const e=this.submenu.items;return q` + e.stopPropagation()} + @click=${e=>wf(e)} + > + + + + ${e.map(this._renderItem.bind(this))} + + `}static get styles(){return o("ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n pointer-events: auto;\n}\n\nmwc-list-item {\n z-index: 20;\n}")}};e([he({attribute:!1})],Zk.prototype,"hass",void 0),e([he({attribute:!1})],Zk.prototype,"submenu",void 0),Zk=e([le("frigate-card-submenu")],Zk);let Qk=class extends se{shouldUpdate(e){const t=e.get("hass");return!e.has("hass")||!t||!this.submenuSelect||jb(this.hass,t,[this.submenuSelect.entity])}async _refreshOptionTitles(){if(!this.hass||!this.submenuSelect)return;const e=this.submenuSelect.entity,t=this.hass.states[e],n=t?.attributes?.options,a=await(this.entityRegistryManager?.getEntity(this.hass,e))??null,i={};for(const t of n){const n=Wk(this.hass,e,{...a&&{entity:a},state:t});n&&(i[t]=n)}this._optionTitles=i}willUpdate(){if(!this.submenuSelect||!this.hass)return;this._optionTitles||this._refreshOptionTitles();const e=this.submenuSelect.entity,t=this.hass.states[e],n=t?.attributes?.options;if(!t||!n)return;const a={icon:zb("select"),...Pb(this.hass,this.submenuSelect),...this.submenuSelect,type:"custom:frigate-card-menu-submenu",items:[]};delete a.options;const i=a.items;for(const a of n){const n=this._optionTitles?.[a]??a;i.push({state_color:!0,selected:t.state===a,enabled:!0,title:n||a,...(e.startsWith("select.")||e.startsWith("input_select."))&&{tap_action:{action:"perform-action",perform_action:e.startsWith("select.")?"select.select_option":"input_select.select_option",target:{entity_id:e},data:{option:a}}},...this.submenuSelect.options&&this.submenuSelect.options[a]})}this._generatedSubmenu=a}render(){return q` `}};e([he({attribute:!1})],Qk.prototype,"hass",void 0),e([he({attribute:!1})],Qk.prototype,"submenuSelect",void 0),e([he({attribute:!1})],Qk.prototype,"entityRegistryManager",void 0),e([pe()],Qk.prototype,"_optionTitles",void 0),Qk=e([le("frigate-card-submenu-select")],Qk);let Gk=class extends se{constructor(){super(...arguments),this._controller=new Vk(this)}set menuConfig(e){this._controller.setMenuConfig(e)}set buttons(e){this._controller.setButtons(e)}set expanded(e){this._controller.setExpanded(e)}toggleMenu(){this._controller.toggleExpanded()}_renderButton(e){if(!this.hass)return;if("custom:frigate-card-menu-submenu"===e.type)return q` this._controller.actionHandler(e)} + > + `;if("custom:frigate-card-menu-submenu-select"===e.type)return q` this._controller.actionHandler(e)} + > + `;const t=this._controller.getFreshButtonState(this.hass,e),n=Uk(t.icon);return q` this._controller.actionHandler(t,e)} + > + ${n?q``:q``} + `}render(){const e=this._controller.getMenuConfig(),t=e?.style;if(!e||"none"===t)return;const n=this._controller.getButtons("matching"),a=this._controller.getButtons("opposing");return q`
+ ${n.map((e=>this._renderButton(e)))} +
+
+ ${a.map((e=>this._renderButton(e)))} +
`}static get styles(){return o('ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n --frigate-card-menu-button-size: 40px;\n --mdc-icon-button-size: var(--frigate-card-menu-button-size);\n --mdc-icon-size: calc(var(--mdc-icon-button-size) / 2);\n pointer-events: auto;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n}\n\n/*******************************************************\n * Non-hover styles should not interact with the pointer\n *******************************************************/\n:host(:not([data-style*=hover])) {\n pointer-events: none;\n}\n\n/***********************************\n * Aligned divs: matching & opposing\n ***********************************/\ndiv.matching,\ndiv.opposing {\n display: flex;\n flex-wrap: wrap;\n flex-direction: row;\n align-items: flex-start;\n min-width: 0px;\n min-height: 0px;\n}\n\ndiv.matching {\n justify-content: flex-start;\n}\n\ndiv.opposing {\n justify-content: flex-end;\n}\n\n/********************\n * Outside menu style\n ********************/\n:host([data-style=outside]) {\n width: 100%;\n background: var(--secondary-background-color);\n}\n\n/********************************************************\n * Hack: Ensure host & div expand for column flex layouts\n ********************************************************/\n:host(:not([data-style=outside])[data-position=left]) {\n writing-mode: vertical-lr;\n}\n\n:host(:not([data-style=outside])[data-position=right]) {\n writing-mode: vertical-rl;\n}\n\n:host(:not([data-style=outside])[data-style=overlay][data-position=left]) div > *,\n:host(:not([data-style=outside])[data-style=overlay][data-position=right]) div > *,\n:host(:not([data-style=outside])[data-style*=hover][data-position=left]) div > *,\n:host(:not([data-style=outside])[data-style*=hover][data-position=right]) div > *,\n:host(:not([data-style=outside])[data-style=hidden][data-position=left]) div > *,\n:host(:not([data-style=outside])[data-style=hidden][data-position=right]) div > * {\n writing-mode: horizontal-tb;\n}\n\n/**********************\n * "Reverse" alignments\n **********************/\n:host(:not([data-style=outside])[data-position=left][data-alignment=bottom]),\n:host(:not([data-style=outside])[data-position=right][data-alignment=bottom]),\n:host([data-position=top][data-alignment=right]),\n:host([data-position=bottom][data-alignment=right]),\n:host(:not([data-style=outside])[data-position=left][data-alignment=bottom]) div,\n:host(:not([data-style=outside])[data-position=right][data-alignment=bottom]) div,\n:host([data-position=top][data-alignment=right]) div,\n:host([data-position=bottom][data-alignment=right]) div {\n flex-direction: row-reverse;\n}\n\n/****************************\n * Wrap upwards on the bottom\n ****************************/\n:host(:not([data-style=outside])[data-position=bottom]) div {\n flex-wrap: wrap-reverse;\n}\n\n/********************************************\n * Positioning for absolute based menu styles\n ********************************************/\n:host([data-style=overlay]),\n:host([data-style*=hover]),\n:host([data-style=hidden]) {\n overflow: hidden;\n width: calc(var(--frigate-card-menu-button-size) + 6px);\n height: calc(var(--frigate-card-menu-button-size) + 6px);\n}\n\n:host([data-style=overlay]),\n:host([data-style*=hover]),\n:host([data-style=hidden][expanded]) {\n overflow: visible;\n}\n\n:host([data-style=overlay][data-position=top]),\n:host([data-style=overlay][data-position=bottom]),\n:host([data-style*=hover][data-position=top]),\n:host([data-style*=hover][data-position=bottom]),\n:host([data-style=hidden][data-position=top]),\n:host([data-style=hidden][data-position=bottom]) {\n width: 100%;\n height: auto;\n}\n\n:host([data-style=overlay][data-position=top][data-alignment=left]),\n:host([data-style=overlay][data-position=bottom][data-alignment=left]),\n:host([data-style*=hover][data-position=top][data-alignment=left]),\n:host([data-style*=hover][data-position=bottom][data-alignment=left]),\n:host([data-style=hidden][data-position=top][data-alignment=left][expanded]),\n:host([data-style=hidden][data-position=bottom][data-alignment=left][expanded]) {\n background: linear-gradient(90deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}\n\n:host([data-style=overlay][data-position=top][data-alignment=right]),\n:host([data-style=overlay][data-position=bottom][data-alignment=right]),\n:host([data-style*=hover][data-position=top][data-alignment=right]),\n:host([data-style*=hover][data-position=bottom][data-alignment=right]),\n:host([data-style=hidden][data-position=top][data-alignment=right][expanded]),\n:host([data-style=hidden][data-position=bottom][data-alignment=right][expanded]) {\n background: linear-gradient(270deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}\n\n:host([data-style=overlay][data-position=left]),\n:host([data-style=overlay][data-position=right]),\n:host([data-style*=hover][data-position=left]),\n:host([data-style*=hover][data-position=right]),\n:host([data-style=hidden][data-position=left]),\n:host([data-style=hidden][data-position=right]) {\n width: auto;\n height: 100%;\n}\n\n:host([data-style=overlay][data-position=left][data-alignment=top]),\n:host([data-style=overlay][data-position=right][data-alignment=top]),\n:host([data-style*=hover][data-position=left][data-alignment=top]),\n:host([data-style*=hover][data-position=right][data-alignment=top]),\n:host([data-style=hidden][data-position=left][data-alignment=top][expanded]),\n:host([data-style=hidden][data-position=right][data-alignment=top][expanded]) {\n background: linear-gradient(180deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}\n\n:host([data-style=overlay][data-position=left][data-alignment=bottom]),\n:host([data-style=overlay][data-position=right][data-alignment=bottom]),\n:host([data-style*=hover][data-position=left][data-alignment=bottom]),\n:host([data-style*=hover][data-position=right][data-alignment=bottom]),\n:host([data-style=hidden][data-position=left][data-alignment=bottom][expanded]),\n:host([data-style=hidden][data-position=right][data-alignment=bottom][expanded]) {\n background: linear-gradient(0deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}')}};e([he({attribute:!1})],Gk.prototype,"entityRegistryManager",void 0),e([he({attribute:!1})],Gk.prototype,"hass",void 0),Gk=e([le("frigate-card-menu")],Gk);let Yk=class extends se{render(){return q` + + + + + `}static get styles(){return o("ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n position: absolute;\n width: 100%;\n height: 100%;\n pointer-events: none;\n}\n\nslot {\n position: absolute;\n display: flex;\n}\n\n/***************\n * Slot position\n ***************/\nslot[name=top] {\n top: 0px;\n}\n\nslot[name=bottom] {\n bottom: 0px;\n}\n\nslot[name=left] {\n left: 0px;\n}\n\nslot[name=right] {\n right: 0px;\n}\n\n/***********\n * Slot size\n ***********/\nslot[name=top],\nslot[name=bottom] {\n width: 100%;\n flex-direction: column;\n}\n\nslot[name=left],\nslot[name=right] {\n height: 100%;\n flex-direction: row;\n}\n\nslot[name=top],\nslot[name=left] {\n justify-content: flex-start;\n}\n\nslot[name=bottom],\nslot[name=right] {\n justify-content: flex-end;\n}\n\n/*******************************\n * Match rounded corners to card\n *******************************/\n::slotted([slot=top]:first-child),\n::slotted([slot=left]:first-child) {\n border-top-left-radius: var(--ha-card-border-radius, 4px);\n}\n\n::slotted([slot=top]:first-child),\n::slotted([slot=right]:first-child) {\n border-top-right-radius: var(--ha-card-border-radius, 4px);\n}\n\n::slotted([slot=bottom]:last-child),\n::slotted([slot=left]:last-child) {\n border-bottom-left-radius: var(--ha-card-border-radius, 4px);\n}\n\n::slotted([slot=bottom]:last-child),\n::slotted([slot=right]:last-child) {\n border-bottom-right-radius: var(--ha-card-border-radius, 4px);\n}")}};Yk=e([le("frigate-card-overlay")],Yk);class Kk{constructor(e){this._config=null,this._popupTimer=new xf,this._items=[],this._host=e}getRenderItems(){return this._items}setItems(e){const t=e.filter((e=>!!e.exclusive)),n=Ev(t.length?t:e,(e=>e.priority??50),"desc"),a=this._getSufficientValues(this._items),i=this._getSufficientValues(n);this._items=n,"popup"!==this._config?.style||Dv(a,i)||(this._show(),this._popupTimer.start(this._config.popup_seconds,(()=>this._hide()))),this._host.requestUpdate()}setConfig(e){this._config=e,this._host.style.setProperty("--frigate-card-status-bar-height",`${e.height}px`),this._host.setAttribute("data-style",e.style),this._host.setAttribute("data-position",e.position),"popup"!==this._config?.style&&this._show(),this._host.requestUpdate()}shouldRender(){return this._items.some((e=>!1!==e.enabled&&e.sufficient))}actionHandler(e,t){e.stopPropagation();const n=yf(e.detail.action,t);n&&Fk(this._host,{action:Wg(n),config:t})}_getSufficientValue(e){ +/* istanbul ignore else: cannot happen -- @preserve */ +return"custom:frigate-card-status-bar-icon"===e.type?e.icon:"custom:frigate-card-status-bar-string"===e.type?e.string:"custom:frigate-card-status-bar-image"===e.type?e.image:null}_getSufficientValues(e){return e.filter((e=>!1!==e.enabled&&e.sufficient)).map((e=>this._getSufficientValue(e)))}_show(){of(this._host,!1,"hide")}_hide(){of(this._host,!0,"hide")}}let Xk=class extends se{constructor(){super(...arguments),this._controller=new Kk(this)}willUpdate(e){e.has("config")&&this.config&&this._controller.setConfig(this.config),e.has("items")&&this._controller.setItems(this.items??[])}render(){if(this._controller.shouldRender())return q` +
+ ${this._controller.getRenderItems().map((e=>{if(!1===e.enabled)return;const t=_e({item:!0,expand:!!e.expand,action:!!Object.keys(e.actions??{}).length}),n=kf({hasHold:bf(e.actions?.hold_action),hasDoubleClick:bf(e.actions?.double_tap_action)});if("custom:frigate-card-status-bar-string"===e.type)return q`
this._controller.actionHandler(t,e.actions)} + > + ${e.string} +
`;if("custom:frigate-card-status-bar-icon"===e.type){const a=Uk(e.icon);return a?q`this._controller.actionHandler(t,e.actions)} + />`:q`this._controller.actionHandler(t,e.actions)} + >`}return"custom:frigate-card-status-bar-image"===e.type?q`this._controller.actionHandler(t,e.actions)} + />`:void 0}))} +
+ `}static get styles(){return o("ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n --mdc-icon-button-size: calc(var(--frigate-card-status-bar-height) - 6px);\n --mdc-icon-size: calc(var(--mdc-icon-button-size) / 2);\n display: block;\n width: 100%;\n pointer-events: auto;\n opacity: 1;\n transition: opacity 1s;\n}\n\n/*******************************************************\n * Non-hover styles should not interact with the pointer\n *******************************************************/\n:host(:not([data-style*=hover])) {\n pointer-events: none;\n}\n\n/***************\n * Outside style\n ***************/\n:host([data-style=outside]) {\n color: var(--primary-text-color);\n background: var(--secondary-background-color);\n}\n\n/*******************\n * Non-outside style\n *******************/\n:host(:not([data-style=outside])) {\n color: white;\n background: linear-gradient(90deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}\n\n:host([data-style=popup][hide]) {\n opacity: 0;\n}\n\n/*********************\n * Status bar contents\n *********************/\n.status {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n overflow: hidden;\n width: 100%;\n height: var(--frigate-card-status-bar-height);\n}\n\n.item {\n display: inline-block;\n margin: 3px;\n padding: 3px;\n align-content: center;\n opacity: 0.7;\n}\n\n.item:first-child {\n margin-left: 10px;\n}\n\n.item:last-child {\n margin-right: 10px;\n}\n\n.item.expand {\n flex: 1;\n}\n\n.item.action {\n cursor: pointer;\n}\n\nimg.item {\n width: var(--mdc-icon-size, 24px);\n height: var(--mdc-icon-size, 24px);\n}")}};e([he({attribute:!1})],Xk.prototype,"items",void 0),e([he({attribute:!1})],Xk.prototype,"config",void 0),Xk=e([le("frigate-card-status-bar")],Xk);function Jk(e){return"number"==typeof e}function eS(e){return"string"==typeof e}function tS(e){return"boolean"==typeof e}function nS(e){return"[object Object]"===Object.prototype.toString.call(e)}function aS(e){return Math.abs(e)}function iS(e){return Math.sign(e)}function rS(e,t){return aS(e-t)}function oS(e){return uS(e).map(Number)}function sS(e){return e[cS(e)]}function cS(e){return Math.max(0,e.length-1)}function lS(e,t){return t===cS(e)}function dS(e,t=0){return Array.from(Array(e),((e,n)=>t+n))}function uS(e){return Object.keys(e)}function hS(e,t){return[e,t].reduce(((e,t)=>(uS(t).forEach((n=>{const a=e[n],i=t[n],r=nS(a)&&nS(i);e[n]=r?hS(a,i):i})),e)),{})}function pS(e,t){return void 0!==t.MouseEvent&&e instanceof t.MouseEvent}function mS(){let e=[];const t={add:function(n,a,i,r={passive:!0}){let o;if("addEventListener"in n)n.addEventListener(a,i,r),o=()=>n.removeEventListener(a,i,r);else{const e=n;e.addListener(i),o=()=>e.removeListener(i)}return e.push(o),t},clear:function(){e=e.filter((e=>e()))}};return t}function gS(e,t,n,a){const i=mS(),r=1e3/60;let o=null,s=0,c=0;function l(e){if(!c)return;o||(o=e);const i=e-o;for(o=e,s+=i;s>=r;)n(r),s-=r;a(s/r),c&&t.requestAnimationFrame(l)}function d(){t.cancelAnimationFrame(c),o=null,s=0,c=0}return{init:function(){i.add(e,"visibilitychange",(()=>{e.hidden&&(o=null,s=0)}))},destroy:function(){d(),i.clear()},start:function(){c||(c=t.requestAnimationFrame(l))},stop:d,update:()=>n(r),render:a}}function fS(e=0,t=0){const n=aS(e-t);function a(t){return tt}function r(e){return a(e)||i(e)}const o={length:n,max:t,min:e,constrain:function(n){return r(n)?a(n)?e:t:n},reachedAny:r,reachedMax:i,reachedMin:a,removeOffset:function(e){return n?e-n*Math.ceil((e-t)/n):e}};return o}function _S(e,t,n){const{constrain:a}=fS(0,e),i=e+1;let r=o(t);function o(e){return n?aS((i+e)%i):a(e)}function s(){return r}function c(){return _S(e,s(),n)}const l={get:s,set:function(e){return r=o(e),l},add:function(e){return c().set(s()+e)},clone:c};return l}function vS(e,t,n,a,i,r,o,s,c,l,d,u,h,p,m,g,f,_,v){const{cross:y,direction:b}=e,w=["INPUT","SELECT","TEXTAREA"],x={passive:!1},C=mS(),M=mS(),k=fS(50,225).constrain(p.measure(20)),S={mouse:300,touch:400},E={mouse:500,touch:600},$=m?43:25;let A=!1,z=0,I=0,T=!1,j=!1,O=!1,D=!1;function R(e){if(!pS(e,a)&&e.touches.length>=2)return P(e);const t=r.readPoint(e),n=r.readPoint(e,y),o=rS(t,z),c=rS(n,I);if(!j&&!D){if(!e.cancelable)return P(e);if(j=o>c,!j)return P(e)}const d=r.pointerMove(e);o>g&&(O=!0),l.useFriction(.3).useDuration(.75),s.start(),i.add(b(d)),e.preventDefault()}function P(e){const t=d.byDistance(0,!1).index!==u.get(),n=r.pointerUp(e)*(m?E:S)[D?"mouse":"touch"],a=function(e,t){const n=u.add(-1*iS(e)),a=d.byDistance(e,!m).distance;return m||aS(e)=2,s&&0!==e.button)return;if(function(e){const t=e.nodeName||"";return w.includes(t)}(e.target))return;T=!0,r.pointerDown(e),l.useFriction(0).useDuration(0),i.set(o),function(){const e=D?n:t;M.add(e,"touchmove",R,x).add(e,"touchend",P).add(e,"mousemove",R,x).add(e,"mouseup",P)}(),z=r.readPoint(e),I=r.readPoint(e,y),h.emit("pointerDown")}(s)}const c=t;C.add(c,"dragstart",(e=>e.preventDefault()),x).add(c,"touchmove",(()=>{}),x).add(c,"touchend",(()=>{})).add(c,"touchstart",s).add(c,"mousedown",s).add(c,"touchcancel",P).add(c,"contextmenu",P).add(c,"click",L,!0)},destroy:function(){C.clear(),M.clear()},pointerDown:function(){return T}}}function yS(e,t){let n,a;function i(e){return e.timeStamp}function r(n,a){const i="client"+("x"===(a||e.scroll)?"X":"Y");return(pS(n,t)?n:n.touches[0])[i]}return{pointerDown:function(e){return n=e,a=e,r(e)},pointerMove:function(e){const t=r(e)-r(a),o=i(e)-i(n)>170;return a=e,o&&(n=e),t},pointerUp:function(e){if(!n||!a)return 0;const t=r(a)-r(n),o=i(e)-i(n),s=i(e)-i(a)>170,c=t/o;return o&&!s&&aS(c)>.1?c:0},readPoint:r}}function bS(e,t,n,a,i,r,o){const s=[e].concat(a);let c,l,d=[],u=!1;function h(e){return i.measureSize(o.measure(e))}return{init:function(i){r&&(l=h(e),d=a.map(h),c=new ResizeObserver((n=>{(tS(r)||r(i,n))&&function(n){for(const r of n){if(u)return;const n=r.target===e,o=a.indexOf(r.target),s=n?l:d[o];if(aS(h(n?e:a[o])-s)>=.5){i.reInit(),t.emit("resize");break}}}(n)})),n.requestAnimationFrame((()=>{s.forEach((e=>c.observe(e)))})))},destroy:function(){u=!0,c&&c.disconnect()}}}function wS(e,t,n,a,i){const r=i.measure(10),o=i.measure(50),s=fS(.1,.99);let c=!1;function l(){return!c&&(!!e.reachedAny(n.get())&&!!e.reachedAny(t.get()))}return{shouldConstrain:l,constrain:function(i){if(!l())return;const c=e.reachedMin(t.get())?"min":"max",d=aS(e[c]-t.get()),u=n.get()-t.get(),h=s.constrain(d/o);n.subtract(u*h),!i&&aS(u)e.add(i)))}};return c}function CS(e,t,n,a,i){const{reachedAny:r,removeOffset:o,constrain:s}=a;function c(e){return e.concat().sort(((e,t)=>aS(e)-aS(t)))[0]}function l(t,a){const i=[t,t+n,t-n];if(!e)return t;if(!a)return c(i);const r=i.filter((e=>iS(e)===a));return r.length?c(r):sS(i)-n}return{byDistance:function(n,a){const c=i.get()+n,{index:d,distance:u}=function(n){const a=e?o(n):s(n),i=t.map(((e,t)=>({diff:l(e-a,0),index:t}))).sort(((e,t)=>aS(e.diff)-aS(t.diff))),{index:r}=i[0];return{index:r,distance:a}}(c),h=!e&&r(c);return!a||h?{index:d,distance:n}:{index:d,distance:n+l(t[d]-u,0)}},byIndex:function(e,n){return{index:e,distance:l(t[e]-i.get(),n)}},shortcut:l}}function MS(e,t,n,a,i,r,o,s){const c={passive:!0,capture:!0};let l=0;function d(e){"Tab"===e.code&&(l=(new Date).getTime())}return{init:function(u){s&&(r.add(document,"keydown",d,!1),t.forEach(((t,d)=>{r.add(t,"focus",(t=>{(tS(s)||s(u,t))&&function(t){if((new Date).getTime()-l>10)return;o.emit("slideFocusStart"),e.scrollLeft=0;const r=n.findIndex((e=>e.includes(t)));Jk(r)&&(i.useDuration(0),a.index(r,0),o.emit("slideFocus"))}(d)}),c)})))}}}function kS(e){let t=e;function n(e){return Jk(e)?e:e.get()}const a={get:function(){return t},set:function(e){t=n(e)},add:function(e){t+=n(e)},subtract:function(e){t-=n(e)}};return a}function SS(e,t){const n="x"===e.scroll?function(e){return`translate3d(${e}px,0px,0px)`}:function(e){return`translate3d(0px,${e}px,0px)`},a=t.style;let i=!1;return{clear:function(){i||(a.transform="",t.getAttribute("style")||t.removeAttribute("style"))},to:function(t){i||(a.transform=n(e.direction(t)))},toggleActive:function(e){i=!e}}}function ES(e,t,n,a,i,r,o,s,c){const l=.5,d=oS(i),u=oS(i).reverse(),h=function(){const e=o[0];return g(m(u,e),n,!1)}().concat(function(){const e=t-o[0]-1;return g(m(d,e),-n,!0)}());function p(e,t){return e.reduce(((e,t)=>e-i[t]),t)}function m(e,t){return e.reduce(((e,n)=>p(e,t)>0?e.concat([n]):e),[])}function g(i,o,d){const u=function(e){return r.map(((n,i)=>({start:n-a[i]+l+e,end:n+t-l+e})))}(o);return i.map((t=>{const a=d?0:-n,i=d?n:0,r=d?"end":"start",o=u[t][r];return{index:t,loopPoint:o,slideLocation:kS(-1),translate:SS(e,c[t]),target:()=>s.get()>o?a:i}}))}const f={canLoop:function(){return h.every((({index:e})=>{const n=d.filter((t=>t!==e));return p(n,t)<=.1}))},clear:function(){h.forEach((e=>e.translate.clear()))},loop:function(){h.forEach((e=>{const{target:t,translate:n,slideLocation:a}=e,i=t();i!==a.get()&&(n.to(i),a.set(i))}))},loopPoints:h};return f}function $S(e,t,n){let a,i=!1;return{init:function(r){n&&(a=new MutationObserver((e=>{i||(tS(n)||n(r,e))&&function(e){for(const n of e)if("childList"===n.type){r.reInit(),t.emit("slidesChanged");break}}(e)})),a.observe(e,{childList:!0}))},destroy:function(){a&&a.disconnect(),i=!0}}}function AS(e,t,n,a){const i={};let r,o=null,s=null,c=!1;return{init:function(){r=new IntersectionObserver((e=>{c||(e.forEach((e=>{const n=t.indexOf(e.target);i[n]=e})),o=null,s=null,n.emit("slidesInView"))}),{root:e.parentElement,threshold:a}),t.forEach((e=>r.observe(e)))},destroy:function(){r&&r.disconnect(),c=!0},get:function(e=!0){if(e&&o)return o;if(!e&&s)return s;const t=function(e){return uS(i).reduce(((t,n)=>{const a=parseInt(n),{isIntersecting:r}=i[a];return(e&&r||!e&&!r)&&t.push(a),t}),[])}(e);return e&&(o=t),e||(s=t),t}}}function zS(e,t,n,a,i,r,o,s,c){const{startEdge:l,endEdge:d,direction:u}=e,h=Jk(n);const p={groupSlides:function(e){return h?function(e,t){return oS(e).filter((e=>e%t==0)).map((n=>e.slice(n,n+t)))}(e,n):function(e){return e.length?oS(e).reduce(((n,h,p)=>{const m=sS(n)||0,g=0===m,f=h===cS(e),_=i[l]-r[m][l],v=i[l]-r[h][d],y=!a&&g?u(o):0,b=aS(v-(!a&&f?u(s):0)-(_+y));return p&&b>t+c&&n.push(h),f&&n.push(e.length),n}),[]).map(((t,n,a)=>{const i=Math.max(a[n-1]||0);return e.slice(i,t)})):[]}(e)}};return p}function IS(e,t,n,a,i,r,o){const{align:s,axis:c,direction:l,startIndex:d,loop:u,duration:h,dragFree:p,dragThreshold:m,inViewThreshold:g,slidesToScroll:f,skipSnaps:_,containScroll:v,watchResize:y,watchSlides:b,watchDrag:w,watchFocus:x}=r,C={measure:function(e){const{offsetTop:t,offsetLeft:n,offsetWidth:a,offsetHeight:i}=e;return{top:t,right:n+a,bottom:t+i,left:n,width:a,height:i}}},M=C.measure(t),k=n.map(C.measure),S=function(e,t){const n="rtl"===t,a="y"===e,i=!a&&n?-1:1,r={scroll:a?"y":"x",cross:a?"x":"y",startEdge:a?"top":n?"right":"left",endEdge:a?"bottom":n?"left":"right",measureSize:function(e){const{height:t,width:n}=e;return a?t:n},direction:function(e){return e*i}};return r}(c,l),E=S.measureSize(M),$=function(e){const t={measure:function(t){return e*(t/100)}};return t}(E),A=function(e,t){const n={start:function(){return 0},center:function(e){return a(e)/2},end:a};function a(e){return t-e}const i={measure:function(a,i){return eS(e)?n[e](a):e(t,a,i)}};return i}(s,E),z=!u&&!!v,I=u||!!v,{slideSizes:T,slideSizesWithGaps:j,startGap:O,endGap:D}=function(e,t,n,a,i,r){const{measureSize:o,startEdge:s,endEdge:c}=e,l=n[0]&&i,d=function(){if(!l)return 0;const e=n[0];return aS(t[s]-e[s])}(),u=function(){if(!l)return 0;const e=r.getComputedStyle(sS(a));return parseFloat(e.getPropertyValue(`margin-${c}`))}(),h=n.map(o),p=n.map(((e,t,n)=>{const a=!t,i=lS(n,t);return a?h[t]+d:i?h[t]+u:n[t+1][s]-e[s]})).map(aS);return{slideSizes:h,slideSizesWithGaps:p,startGap:d,endGap:u}}(S,M,k,n,I,i),R=zS(S,E,f,u,M,k,O,D,2),{snaps:P,snapsAligned:L}=function(e,t,n,a,i){const{startEdge:r,endEdge:o}=e,{groupSlides:s}=i,c=s(a).map((e=>sS(e)[o]-e[0][r])).map(aS).map(t.measure),l=a.map((e=>n[r]-e[r])).map((e=>-aS(e))),d=s(l).map((e=>e[0])).map(((e,t)=>e+c[t]));return{snaps:l,snapsAligned:d}}(S,A,M,k,R),N=-sS(P)+sS(j),{snapsContained:F,scrollContainLimit:V}=function(e,t,n,a,i){const r=fS(-t+e,0),o=n.map(((e,t)=>{const{min:a,max:i}=r,o=r.constrain(e),s=!t,l=lS(n,t);return s?i:l||c(a,o)?a:c(i,o)?i:o})).map((e=>parseFloat(e.toFixed(3)))),s=function(){const e=o[0],t=sS(o);return fS(o.lastIndexOf(e),o.indexOf(t)+1)}();function c(e,t){return rS(e,t)<1}return{snapsContained:function(){if(t<=e+i)return[r.max];if("keepSnaps"===a)return o;const{min:n,max:c}=s;return o.slice(n,c)}(),scrollContainLimit:s}}(E,N,L,v,2),H=z?F:L,{limit:B}=function(e,t,n){const a=t[0];return{limit:fS(n?a-e:sS(t),a)}}(N,H,u),q=_S(cS(H),d,u),U=q.clone(),W=oS(n),Z=gS(a,i,(e=>(({dragHandler:e,scrollBody:t,scrollBounds:n,options:{loop:a}},i)=>{a||n.constrain(e.pointerDown()),t.seek(i)})(se,e)),(e=>(({scrollBody:e,translate:t,location:n,offsetLocation:a,scrollLooper:i,slideLooper:r,dragHandler:o,animation:s,eventHandler:c,scrollBounds:l,options:{loop:d}},u)=>{const h=e.settled(),p=!l.shouldConstrain(),m=d?h:h&&p;m&&!o.pointerDown()&&(s.stop(),c.emit("settle")),m||c.emit("scroll");const g=n.get()*u+Y.get()*(1-u);a.set(g),d&&(i.loop(e.direction()),r.loop()),t.to(a.get())})(se,e))),Q=H[q.get()],G=kS(Q),Y=kS(Q),K=kS(Q),X=kS(Q),J=function(e,t,n,a,i,r){let o=0,s=0,c=i,l=r,d=e.get(),u=0;function h(e){return c=e,m}function p(e){return l=e,m}const m={direction:function(){return s},duration:function(){return c},velocity:function(){return o},seek:function(t){const i=t/1e3,r=c*i,h=a.get()-e.get();let p=0;return c?(n.set(e),o+=h/r,o*=l,d+=o,e.add(o*i),p=d-u):(o=0,n.set(a),e.set(a),p=h),s=iS(p),u=d,m},settled:function(){return aS(a.get()-t.get())<.001},useBaseFriction:function(){return p(r)},useBaseDuration:function(){return h(i)},useFriction:p,useDuration:h};return m}(G,K,Y,X,h,.68),ee=CS(u,H,N,B,X),te=function(e,t,n,a,i,r,o){function s(i){const s=i.distance,c=i.index!==t.get();r.add(s),s&&(a.duration()?e.start():(e.update(),e.render(1),e.update())),c&&(n.set(t.get()),t.set(i.index),o.emit("select"))}const c={distance:function(e,t){s(i.byDistance(e,t))},index:function(e,n){const a=t.clone().set(e);s(i.byIndex(a.get(),n))}};return c}(Z,q,U,J,ee,X,o),ne=function(e){const{max:t,length:n}=e,a={get:function(e){return n?(e-t)/-n:0}};return a}(B),ae=mS(),ie=AS(t,n,o,g),{slideRegistry:re}=function(e,t,n,a,i,r){const{groupSlides:o}=i,{min:s,max:c}=a;return{slideRegistry:function(){const a=o(r),i=!e||"keepSnaps"===t;return 1===n.length?[r]:i?a:a.slice(s,c).map(((e,t,n)=>{const a=!t,i=lS(n,t);return a?dS(sS(n[0])+1):i?dS(cS(r)-sS(n)[0]+1,sS(n)[0]):e}))}()}}(z,v,H,V,R,W),oe=MS(e,n,re,te,J,ae,o,x),se={ownerDocument:a,ownerWindow:i,eventHandler:o,containerRect:M,slideRects:k,animation:Z,axis:S,dragHandler:vS(S,e,a,i,X,yS(S,i),G,Z,te,J,ee,q,o,$,p,m,_,.68,w),eventStore:ae,percentOfView:$,index:q,indexPrevious:U,limit:B,location:G,offsetLocation:K,previousLocation:Y,options:r,resizeHandler:bS(t,o,i,n,S,y,C),scrollBody:J,scrollBounds:wS(B,K,X,J,$),scrollLooper:xS(N,B,K,[G,K,Y,X]),scrollProgress:ne,scrollSnapList:H.map(ne.get),scrollSnaps:H,scrollTarget:ee,scrollTo:te,slideLooper:ES(S,E,N,T,j,P,H,K,n),slideFocus:oe,slidesHandler:$S(t,o,b),slidesInView:ie,slideIndexes:W,slideRegistry:re,slidesToScroll:R,target:X,translate:SS(S,t)};return se}const TS={align:"center",axis:"x",container:null,slides:null,containScroll:"trimSnaps",direction:"ltr",slidesToScroll:1,inViewThreshold:0,breakpoints:{},dragFree:!1,dragThreshold:10,loop:!1,skipSnaps:!1,duration:25,startIndex:0,active:!0,watchDrag:!0,watchResize:!0,watchSlides:!0,watchFocus:!0};function jS(e){function t(e,t){return hS(e,t||{})}const n={mergeOptions:t,optionsAtMedia:function(n){const a=n.breakpoints||{},i=uS(a).filter((t=>e.matchMedia(t).matches)).map((e=>a[e])).reduce(((e,n)=>t(e,n)),{});return t(n,i)},optionsMediaQueries:function(t){return t.map((e=>uS(e.breakpoints||{}))).reduce(((e,t)=>e.concat(t)),[]).map(e.matchMedia)}};return n}function OS(e,t,n){const a=e.ownerDocument,i=a.defaultView,r=jS(i),o=function(e){let t=[];const n={init:function(n,a){return t=a.filter((({options:t})=>!1!==e.optionsAtMedia(t).active)),t.forEach((t=>t.init(n,e))),a.reduce(((e,t)=>Object.assign(e,{[t.name]:t})),{})},destroy:function(){t=t.filter((e=>e.destroy()))}};return n}(r),s=mS(),c=function(){let e,t={};function n(e){return t[e]||[]}const a={init:function(t){e=t},emit:function(t){return n(t).forEach((n=>n(e,t))),a},off:function(e,i){return t[e]=n(e).filter((e=>e!==i)),a},on:function(e,i){return t[e]=n(e).concat([i]),a},clear:function(){t={}}};return a}(),{mergeOptions:l,optionsAtMedia:d,optionsMediaQueries:u}=r,{on:h,off:p,emit:m}=c,g=S;let f,_,v,y,b=!1,w=l(TS,OS.globalOptions),x=l(w),C=[];function M(t){const n=IS(e,v,y,a,i,t,c);if(t.loop&&!n.slideLooper.canLoop()){return M(Object.assign({},t,{loop:!1}))}return n}function k(t,n){b||(w=l(w,t),x=d(w),C=n||C,function(){const{container:t,slides:n}=x,a=eS(t)?e.querySelector(t):t;v=a||e.children[0];const i=eS(n)?v.querySelectorAll(n):n;y=[].slice.call(i||v.children)}(),f=M(x),u([w,...C.map((({options:e})=>e))]).forEach((e=>s.add(e,"change",S))),x.active&&(f.translate.to(f.location.get()),f.animation.init(),f.slidesInView.init(),f.slideFocus.init(z),f.eventHandler.init(z),f.resizeHandler.init(z),f.slidesHandler.init(z),f.options.loop&&f.slideLooper.loop(),v.offsetParent&&y.length&&f.dragHandler.init(z),_=o.init(z,C)))}function S(e,t){const n=A();E(),k(l({startIndex:n},e),t),c.emit("reInit")}function E(){f.dragHandler.destroy(),f.eventStore.clear(),f.translate.clear(),f.slideLooper.clear(),f.resizeHandler.destroy(),f.slidesHandler.destroy(),f.slidesInView.destroy(),f.animation.destroy(),o.destroy(),s.clear()}function $(e,t,n){x.active&&!b&&(f.scrollBody.useBaseFriction().useDuration(!0===t?0:x.duration),f.scrollTo.index(e,n||0))}function A(){return f.index.get()}const z={canScrollNext:function(){return f.index.add(1).get()!==A()},canScrollPrev:function(){return f.index.add(-1).get()!==A()},containerNode:function(){return v},internalEngine:function(){return f},destroy:function(){b||(b=!0,s.clear(),E(),c.emit("destroy"),c.clear())},off:p,on:h,emit:m,plugins:function(){return _},previousScrollSnap:function(){return f.indexPrevious.get()},reInit:g,rootNode:function(){return e},scrollNext:function(e){$(f.index.add(1).get(),e,-1)},scrollPrev:function(e){$(f.index.add(-1).get(),e,1)},scrollProgress:function(){return f.scrollProgress.get(f.location.get())},scrollSnapList:function(){return f.scrollSnapList},scrollTo:$,selectedScrollSnap:A,slideNodes:function(){return y},slidesInView:function(){return f.slidesInView.get()},slidesNotInView:function(){return f.slidesInView.get(!1)}};return k(t,n),setTimeout((()=>c.emit("init")),0),z}function DS(){return DS=Object.assign||function(e){for(var t=1;t=e;case"y":return Math.abs(i)>=e;case"z":return Math.abs(r)>=e;default:return!1}}(r,a)&&e.preventDefault(),l.isStarted?l.isMomentum&&r>Math.max(2,2*l.lastAbsDelta)&&(M(!0),x()):x(),0===r&&Object.is&&Object.is(e.deltaX,-0)?d=!0:(t=e,l.axisMovement=PS(l.axisMovement,a),l.lastAbsDelta=r,l.scrollPointsToMerge.push({axisDelta:a,timeStamp:i}),g(),p({axisDelta:a,isStart:!l.isStartPublished}),l.isStartPublished=!0,C())},g=function(){var e;l.scrollPointsToMerge.length===US?(l.scrollPoints.unshift({axisDeltaSum:l.scrollPointsToMerge.map((function(e){return e.axisDelta})).reduce(PS),timeStamp:(e=l.scrollPointsToMerge.map((function(e){return e.timeStamp})),e.reduce((function(e,t){return e+t}))/e.length)}),_(),l.scrollPointsToMerge.length=0,l.scrollPoints.length=1,l.isMomentum||b()):l.isStartPublished||f()},f=function(){var e;l.axisVelocity=(e=l.scrollPointsToMerge,e[e.length-1]).axisDelta.map((function(e){return e/l.willEndTimeout}))},_=function(){var e=l.scrollPoints,t=e[0],n=e[1];if(n&&t){var a=t.timeStamp-n.timeStamp;if(!(a<=0)){var i=t.axisDeltaSum.map((function(e){return e/a})),r=i.map((function(e,t){return e/(l.axisVelocity[t]||1)}));l.axisVelocity=i,l.accelerationFactors.push(r),v(a)}}},v=function(e){var t=10*Math.ceil(e/10)*1.2;l.isMomentum||(t=Math.max(100,2*t)),l.willEndTimeout=Math.min(1e3,Math.round(t))},y=function(e){return 0===e||e<=qS&&e>=BS},b=function(){if(l.accelerationFactors.length>=WS){if(d&&(d=!1,LS(l.axisVelocity)>=.2))return void w();var e=l.accelerationFactors.slice(-1*WS);e.every((function(e){var t=!!e.reduce((function(e,t){return e&&e<1&&e===t?1:0})),n=e.filter(y).length===e.length;return t||n}))&&w(),l.accelerationFactors=e}},w=function(){l.isMomentum=!0},x=function(){(l=GS()).isStarted=!0,l.startTime=Date.now(),n=void 0,d=!1},C=function(){clearTimeout(a),a=setTimeout(M,l.willEndTimeout)},M=function(e){void 0===e&&(e=!1),l.isStarted&&(l.isMomentum&&e?p({isEnding:!0,isMomentumCancel:!0}):p({isEnding:!0}),l.isMomentum=!1,l.isStarted=!1)},k=function(e){var t=[],n=function(n){n.removeEventListener("wheel",e),t=t.filter((function(e){return e!==n}))};return NS({observe:function(a){return a.addEventListener("wheel",e,{passive:!1}),t.push(a),function(){return n(a)}},unobserve:n,disconnect:function(){t.forEach(n)}})}(u),S=k.observe,E=k.unobserve,$=k.disconnect;return h(e),NS({on:r,off:o,observe:S,unobserve:E,disconnect:$,feedWheel:u,updateOptions:h})}var KS={active:!0,breakpoints:{},wheelDraggingClass:"is-wheel-dragging",forceWheelAxis:void 0,target:void 0};function XS(e){var t;void 0===e&&(e={});var n=function(){};var a={name:"wheelGestures",options:e,init:function(a,i){var r,o,s=i.mergeOptions,c=i.optionsAtMedia,l=s(KS,XS.globalOptions),d=s(l,e);t=c(d);var u,h=a.internalEngine(),p=null!=(r=t.target)?r:a.containerNode().parentNode,m=null!=(o=t.forceWheelAxis)?o:h.options.axis,g=YS({preventWheelAction:m,reverseSign:[!0,!0,!1]}),f=g.observe(p),_=g.on("wheel",(function(e){var a=e.axisDelta,i=a[0],r=a[1],o="x"===m?i:r,s="x"===m?r:i,c=e.isMomentum&&e.previous&&!e.previous.isMomentum,l=e.isEnding&&!e.isMomentum||c;Math.abs(o)>Math.abs(s)&&!v&&!e.isMomentum&&function(e){try{x(u=new MouseEvent("mousedown",e.event))}catch(e){return n()}v=!0,document.documentElement.addEventListener("mousemove",b,!0),document.documentElement.addEventListener("mouseup",b,!0),void document.documentElement.addEventListener("mousedown",b,!0),t.wheelDraggingClass&&p.classList.add(t.wheelDraggingClass)}(e);if(!v)return;l?function(e){v=!1,x(w("mouseup",e)),y(),t.wheelDraggingClass&&p.classList.remove(t.wheelDraggingClass)}(e):x(w("mousemove",e))})),v=!1;function y(){document.documentElement.removeEventListener("mousemove",b,!0),document.documentElement.removeEventListener("mouseup",b,!0),document.documentElement.removeEventListener("mousedown",b,!0)}function b(e){v&&e.isTrusted&&e.stopImmediatePropagation()}function w(e,t){var n,a;if(m===h.options.axis){var i=t.axisMovement;n=i[0],a=i[1]}else{var r=t.axisMovement;a=r[0],n=r[1]}if(!h.options.skipSnaps&&!h.options.dragFree){var o=h.containerRect.width,s=h.containerRect.height;n=n<0?Math.max(n,-o):Math.min(n,o),a=a<0?Math.max(a,-s):Math.min(a,s)}return new MouseEvent(e,{clientX:u.clientX+n,clientY:u.clientY+a,screenX:u.screenX+n,screenY:u.screenY+a,movementX:n,movementY:a,button:0,bubbles:!0,cancelable:!0,composed:!0})}function x(e){a.containerNode().dispatchEvent(e)}n=function(){f(),_(),y()}},destroy:function(){return n()}};return a}XS.globalOptions=void 0;class JS{constructor(e,t,n){this._mutationObserver=new MutationObserver(((e,t)=>this._refreshCarouselContents())),this._refreshCarouselContents=()=>{const e=lf(this._parent);!Dv(this._carousel.slideNodes(),e)&&(this._carousel.destroy(),this._carousel=this._createCarousel(e))},this._root=e,this._parent=t,this._direction=n?.direction??"horizontal",this._transitionEffect=n?.transitionEffect??"slide",this._startIndex=n?.startIndex??0,this._dragFree=n?.dragFree??!1,this._loop=n?.loop??!1,this._draggable=n?.dragEnabled??!0,this._plugins=n?.plugins??[],this._carousel=this._createCarousel(lf(this._parent)),t instanceof HTMLSlotElement&&t.addEventListener("slotchange",this._refreshCarouselContents),this._mutationObserver.observe(this._parent,{childList:!0})}destroy(){this._parent instanceof HTMLSlotElement&&this._parent.removeEventListener("slotchange",this._refreshCarouselContents),this._mutationObserver.disconnect(),this._carousel.destroy()}getSlide(e){return this._carousel.slideNodes()[e]??null}getSelectedSlide(){return this.getSlide(this.getSelectedIndex())}getSelectedIndex(){return this._carousel.selectedScrollSnap()}selectSlide(e){this._carousel.scrollTo(e,"none"===this._transitionEffect);const t=this.getSlide(e);t&&Bg(this._parent,"carousel:force-select",{index:e,element:t})}_createCarousel(e){const t=OS(this._root,{slides:e,axis:"horizontal"===this._direction?"x":"y",duration:20,startIndex:this._startIndex,dragFree:this._dragFree,loop:this._loop,containScroll:"trimSnaps",watchSlides:!1,watchResize:!0,watchDrag:this._draggable},[...this._plugins,...e.length>1?[XS({forceWheelAxis:"y"})]:[]]),n=()=>{const e=(()=>{const e=t.selectedScrollSnap(),n=t.slideNodes()[e]??null;return n?{index:e,element:n}:null})();e&&Bg(this._parent,"carousel:select",e)};return t.on("select",(()=>n())),t}}let eE=class extends se{constructor(){super(...arguments),this.direction="horizontal",this.dragEnabled=!0,this.selected=0,this._refParent=ze(),this._refRoot=ze(),this._carousel=null}connectedCallback(){super.connectedCallback(),this.requestUpdate()}disconnectedCallback(){this._carousel?.destroy(),this._carousel=null,super.disconnectedCallback()}willUpdate(e){e.has("direction")&&this.setAttribute("direction",this.direction);["direction","dragEnabled","dragFree","loop","plugins","transitionEffect"].some((t=>e.has(t)))&&(this._carousel?.destroy(),this._carousel=null)}render(){return q`
+ +
+
+ +
+
+ +
`}updated(e){!this._carousel&&this._refRoot.value&&this._refParent.value?this._carousel=new JS(this._refRoot.value,this._refParent.value,{direction:this.direction,dragEnabled:this.dragEnabled,dragFree:this.dragFree,startIndex:this.selected,transitionEffect:this.transitionEffect,loop:this.loop,plugins:this.plugins}):e.has("selected")&&this._carousel?.selectSlide(this.selected)}static get styles(){return o(":host {\n display: block;\n height: 100%;\n width: 100%;\n position: relative;\n}\n\n.embla {\n width: 100%;\n height: 100%;\n margin-left: auto;\n margin-right: auto;\n}\n\n.embla__container {\n display: flex;\n width: 100%;\n height: 100%;\n user-select: none;\n -webkit-touch-callout: none;\n -khtml-user-select: none;\n -webkit-tap-highlight-color: transparent;\n}\n\n:host([direction=vertical]) .embla__container {\n flex-direction: column;\n}\n\n:host([direction=horizontal]) .embla__container {\n flex-direction: row;\n}\n\n.embla__viewport {\n width: 100%;\n height: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n.embla__viewport.is-draggable {\n cursor: move;\n cursor: grab;\n}\n\n.embla__viewport.is-dragging {\n cursor: grabbing;\n}\n\n:host([direction=vertical]) ::slotted(.embla__slide) {\n margin-bottom: 5px;\n}\n\n:host([direction=horizontal]) ::slotted(.embla__slide) {\n margin-right: 5px;\n}")}};e([he({attribute:!0,reflect:!0})],eE.prototype,"direction",void 0),e([he({attribute:!0})],eE.prototype,"transitionEffect",void 0),e([he({attribute:!1})],eE.prototype,"loop",void 0),e([he({attribute:!1})],eE.prototype,"dragFree",void 0),e([he({attribute:!1})],eE.prototype,"dragEnabled",void 0),e([he({attribute:!1})],eE.prototype,"plugins",void 0),e([he({attribute:!1})],eE.prototype,"selected",void 0),eE=e([le("frigate-card-carousel")],eE); +/** + * @license + * Copyright 2019 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const tE=window,nE=tE.ShadowRoot&&(void 0===tE.ShadyCSS||tE.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,aE=Symbol(),iE=new WeakMap;let rE=class{constructor(e,t,n){if(this._$cssResult$=!0,n!==aE)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(nE&&void 0===e){const n=void 0!==t&&1===t.length;n&&(e=iE.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),n&&iE.set(t,e))}return e}toString(){return this.cssText}};const oE=(e,t)=>{nE?e.adoptedStyleSheets=t.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet)):t.forEach((t=>{const n=document.createElement("style"),a=tE.litNonce;void 0!==a&&n.setAttribute("nonce",a),n.textContent=t.cssText,e.appendChild(n)}))},sE=nE?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const n of e.cssRules)t+=n.cssText;return(e=>new rE("string"==typeof e?e:e+"",void 0,aE))(t)})(e):e +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */;var cE;const lE=window,dE=lE.trustedTypes,uE=dE?dE.emptyScript:"",hE=lE.reactiveElementPolyfillSupport,pE={toAttribute(e,t){switch(t){case Boolean:e=e?uE:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let n=e;switch(t){case Boolean:n=null!==e;break;case Number:n=null===e?null:Number(e);break;case Object:case Array:try{n=JSON.parse(e)}catch(e){n=null}}return n}},mE=(e,t)=>t!==e&&(t==t||e==e),gE={attribute:!0,type:String,converter:pE,reflect:!1,hasChanged:mE},fE="finalized";class _E extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(e){var t;this.finalize(),(null!==(t=this.h)&&void 0!==t?t:this.h=[]).push(e)}static get observedAttributes(){this.finalize();const e=[];return this.elementProperties.forEach(((t,n)=>{const a=this._$Ep(n,t);void 0!==a&&(this._$Ev.set(a,n),e.push(a))})),e}static createProperty(e,t=gE){if(t.state&&(t.attribute=!1),this.finalize(),this.elementProperties.set(e,t),!t.noAccessor&&!this.prototype.hasOwnProperty(e)){const n="symbol"==typeof e?Symbol():"__"+e,a=this.getPropertyDescriptor(e,n,t);void 0!==a&&Object.defineProperty(this.prototype,e,a)}}static getPropertyDescriptor(e,t,n){return{get(){return this[t]},set(a){const i=this[e];this[t]=a,this.requestUpdate(e,i,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)||gE}static finalize(){if(this.hasOwnProperty(fE))return!1;this[fE]=!0;const e=Object.getPrototypeOf(this);if(e.finalize(),void 0!==e.h&&(this.h=[...e.h]),this.elementProperties=new Map(e.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){const e=this.properties,t=[...Object.getOwnPropertyNames(e),...Object.getOwnPropertySymbols(e)];for(const n of t)this.createProperty(n,e[n])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const n=new Set(e.flat(1/0).reverse());for(const e of n)t.unshift(sE(e))}else void 0!==e&&t.push(sE(e));return t}static _$Ep(e,t){const n=t.attribute;return!1===n?void 0:"string"==typeof n?n:"string"==typeof e?e.toLowerCase():void 0}_$Eu(){var e;this._$E_=new Promise((e=>this.enableUpdating=e)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(e=this.constructor.h)||void 0===e||e.forEach((e=>e(this)))}addController(e){var t,n;(null!==(t=this._$ES)&&void 0!==t?t:this._$ES=[]).push(e),void 0!==this.renderRoot&&this.isConnected&&(null===(n=e.hostConnected)||void 0===n||n.call(e))}removeController(e){var t;null===(t=this._$ES)||void 0===t||t.splice(this._$ES.indexOf(e)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((e,t)=>{this.hasOwnProperty(t)&&(this._$Ei.set(t,this[t]),delete this[t])}))}createRenderRoot(){var e;const t=null!==(e=this.shadowRoot)&&void 0!==e?e:this.attachShadow(this.constructor.shadowRootOptions);return oE(t,this.constructor.elementStyles),t}connectedCallback(){var e;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostConnected)||void 0===t?void 0:t.call(e)}))}enableUpdating(e){}disconnectedCallback(){var e;null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostDisconnected)||void 0===t?void 0:t.call(e)}))}attributeChangedCallback(e,t,n){this._$AK(e,n)}_$EO(e,t,n=gE){var a;const i=this.constructor._$Ep(e,n);if(void 0!==i&&!0===n.reflect){const r=(void 0!==(null===(a=n.converter)||void 0===a?void 0:a.toAttribute)?n.converter:pE).toAttribute(t,n.type);this._$El=e,null==r?this.removeAttribute(i):this.setAttribute(i,r),this._$El=null}}_$AK(e,t){var n;const a=this.constructor,i=a._$Ev.get(e);if(void 0!==i&&this._$El!==i){const e=a.getPropertyOptions(i),r="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==(null===(n=e.converter)||void 0===n?void 0:n.fromAttribute)?e.converter:pE;this._$El=i,this[i]=r.fromAttribute(t,e.type),this._$El=null}}requestUpdate(e,t,n){let a=!0;void 0!==e&&(((n=n||this.constructor.getPropertyOptions(e)).hasChanged||mE)(this[e],t)?(this._$AL.has(e)||this._$AL.set(e,t),!0===n.reflect&&this._$El!==e&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(e,n))):a=!1),!this.isUpdatePending&&a&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(e){Promise.reject(e)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var e;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((e,t)=>this[t]=e)),this._$Ei=void 0);let t=!1;const n=this._$AL;try{t=this.shouldUpdate(n),t?(this.willUpdate(n),null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostUpdate)||void 0===t?void 0:t.call(e)})),this.update(n)):this._$Ek()}catch(e){throw t=!1,this._$Ek(),e}t&&this._$AE(n)}willUpdate(e){}_$AE(e){var t;null===(t=this._$ES)||void 0===t||t.forEach((e=>{var t;return null===(t=e.hostUpdated)||void 0===t?void 0:t.call(e)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(e){return!0}update(e){void 0!==this._$EC&&(this._$EC.forEach(((e,t)=>this._$EO(t,this[t],e))),this._$EC=void 0),this._$Ek()}updated(e){}firstUpdated(e){}}_E[fE]=!0,_E.elementProperties=new Map,_E.elementStyles=[],_E.shadowRootOptions={mode:"open"},null==hE||hE({ReactiveElement:_E}),(null!==(cE=lE.reactiveElementVersions)&&void 0!==cE?cE:lE.reactiveElementVersions=[]).push("1.6.3"); +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const vE=0,yE=Symbol();class bE{constructor(e,t,n){this.o=0,this.status=0,this.autoRun=!0,this.i=e,this.i.addController(this);const a="object"==typeof t?t:{task:t,args:n};this.t=a.task,this.h=a.args,void 0!==a.autoRun&&(this.autoRun=a.autoRun),this.taskComplete=new Promise(((e,t)=>{this.l=e,this.u=t}))}hostUpdated(){this.performTask()}async performTask(){var e;const t=null===(e=this.h)||void 0===e?void 0:e.call(this);this.shouldRun(t)&&this.run(t)}shouldRun(e){return this.autoRun&&this.v(e)}async run(e){var t;let n,a;null!=e||(e=null===(t=this.h)||void 0===t?void 0:t.call(this)),2!==this.status&&3!==this.status||(this.taskComplete=new Promise(((e,t)=>{this.l=e,this.u=t}))),this.status=1,this._=void 0,this.m=void 0,this.i.requestUpdate();const i=++this.o;try{n=await this.t(e)}catch(e){a=e}this.o===i&&(n===yE?this.status=0:(void 0===a?(this.status=2,this.l(n)):(this.status=3,this.u(a)),this.m=n,this._=a),this.i.requestUpdate())}get value(){return this.m}get error(){return this._}render(e){var t,n,a,i;switch(this.status){case 0:return null===(t=e.initial)||void 0===t?void 0:t.call(e);case 1:return null===(n=e.pending)||void 0===n?void 0:n.call(e);case 2:return null===(a=e.complete)||void 0===a?void 0:a.call(e,this.value);case 3:return null===(i=e.error)||void 0===i?void 0:i.call(e,this.error);default:this.status}}v(e){const t=this.T;return this.T=e,Array.isArray(e)&&Array.isArray(t)?e.length===t.length&&e.some(((e,n)=>mE(e,t[n]))):e!==t}}class wE{constructor(e){this._keys=e}modify(e){this._keys.forEach((t=>e.removeContext(t)))}}var xE=":host {\n display: flex;\n flex-direction: column;\n width: 100%;\n margin-left: 5px;\n padding: 5px;\n color: var(--primary-text-color);\n overflow: hidden;\n column-gap: 5%;\n}\n\ndiv.title {\n font-size: 1.2rem;\n font-weight: bold;\n}\n\ndiv.details {\n flex: 1;\n justify-content: center;\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n --mdc-icon-size: 16px;\n min-height: 0px;\n}";const CE=(e,t,n,a)=>{const i={...a?.cardWideConfig&&{cardWideConfig:a.cardWideConfig}};return q` ${t.render({initial:()=>a?.inProgressFunc?.()??xk(i),pending:()=>a?.inProgressFunc?.()??xk(i),error:t=>{Gg(t),kk(e,t)},complete:n})}`},ME=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,kE=(e,t,n,a=!0)=>new bE(e,{args:()=>[!!t(),n()],task:async([e,n])=>{const a=t();return e&&a&&n?(async(e,t)=>e&&t?t.startsWith("data:")||t.match(ME)?t:new Promise(((n,a)=>{e?e.fetchWithAuth(t).then((e=>e.blob())).then((e=>{const t=new FileReader;t.onload=()=>{const e=t.result;n("string"==typeof e?e:null)},t.onerror=e=>a(e),t.readAsDataURL(e)})):a()})):null)(a,n):null},autoRun:a}),SE=300;let EE=class extends se{constructor(){super(),this._intersectionObserver=new IntersectionObserver(this._intersectionHandler.bind(this))}connectedCallback(){this._intersectionObserver.observe(this),super.connectedCallback()}disconnectedCallback(){super.disconnectedCallback(),this._intersectionObserver.disconnect()}willUpdate(e){e.has("thumbnail")&&(this._embedThumbnailTask=kE(this,(()=>this.hass),(()=>this.thumbnail),!1),this._intersectionObserver.unobserve(this),this._intersectionObserver.observe(this))}_intersectionHandler(e){this._embedThumbnailTask?.status===vE&&e.some((e=>e.isIntersecting))&&this._embedThumbnailTask?.run()}render(){const e=q` `;return this._embedThumbnailTask?q`${this.thumbnail?CE(this,this._embedThumbnailTask,(e=>e?q``:q``),{inProgressFunc:()=>e}):e} `:e}static get styles(){return o(":host {\n display: block;\n overflow: hidden;\n aspect-ratio: 1/1;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\nimg {\n display: block;\n}\n\nimg,\nha-icon {\n display: inline-block;\n vertical-align: top;\n margin: 0;\n border-radius: var(--frigate-card-css-border-radius, var(--ha-card-border-radius, 4px));\n width: var(--frigate-card-thumbnail-size);\n max-height: 100%;\n aspect-ratio: 1/1;\n object-fit: cover;\n}\n\nha-icon {\n --mdc-icon-size: 50%;\n color: var(--primary-text-color);\n display: flex;\n justify-content: center;\n align-items: center;\n border: 1px solid rgba(255, 255, 255, 0.3);\n box-sizing: border-box;\n opacity: 0.2;\n}")}};e([he({attribute:!1})],EE.prototype,"thumbnail",void 0),e([he({attribute:!1})],EE.prototype,"hass",void 0),EE=e([le("frigate-card-thumbnail-feature-thumbnail")],EE);let $E=class extends se{render(){if(this.date)return q` + ${this.cameraMetadata?.engineLogo?q``:""} +
+
${Wu(this.date,"HH:mm")}
+
${Wu(this.date,"MMM do")}
+ ${this.showCameraTitle&&this.cameraMetadata?.title?q`
${this.cameraMetadata.title}
`:q``} +
+ `}static get styles(){return o(":host {\n display: block;\n max-width: var(--frigate-card-thumbnail-size);\n max-height: var(--frigate-card-thumbnail-size);\n aspect-ratio: 1/1;\n border: 1px solid var(--secondary-color);\n background-color: var(--secondary-background-color);\n border-radius: var(--frigate-card-css-border-radius, var(--ha-card-border-radius, 4px));\n overflow: hidden;\n padding: 10px;\n box-sizing: border-box;\n position: relative;\n}\n\nimg.background {\n display: block;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n padding: 10%;\n box-sizing: border-box;\n pointer-events: none;\n opacity: 0.1;\n}\n\ndiv.content {\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n color: var(--primary-text-color);\n}\n\ndiv {\n text-align: center;\n}\n\ndiv.title {\n font-size: 1.5rem;\n}\n\ndiv.camera {\n font-size: 0.7em;\n}")}};e([he({attribute:!1})],$E.prototype,"date",void 0),e([he({attribute:!1})],$E.prototype,"cameraMetadata",void 0),e([he({attribute:!1})],$E.prototype,"showCameraTitle",void 0),$E=e([le("frigate-card-thumbnail-feature-text")],$E);let AE=class extends se{render(){if(!this.media)return;const e=this.media.getScore(),t=e?(100*e).toFixed(2)+"%":null,n=this.media.getStartTime(),a=n?Kg(n):null,i=this.media.getEndTime(),r=n&&i?ef(n,i):null,o=this.media.inProgress()?V_("event.in_progress"):null,s=qg(this.media.getWhat()?.join(", "))??null,c=qg(this.media.getWhere()?.join(", "))??null,l=qg(this.media.getTags()?.join(", "))??null,d=s||l?(s??"")+(s&&l?": ":"")+(l??""):null,u=this.seek?Wu(this.seek,"HH:mm:ss"):null;return q` + ${d?q`
+ ${d} + ${t?q`${t}`:""} +
`:""} +
+ ${a?q`
+ + ${a} +
+ ${r||o?q`
+ + ${r?q`${r}`:""} + ${o?q`${o}`:""} +
`:""}`:""} + ${this.cameraTitle?q`
+ + ${this.cameraTitle} +
`:""} + ${c?q`
+ + ${c} +
`:q``} + ${l?q`
+ + ${l} +
`:q``} + ${u?q`
+ + ${u} +
`:q``} +
+ `}static get styles(){return o(xE)}};e([he({attribute:!1})],AE.prototype,"media",void 0),e([he({attribute:!1})],AE.prototype,"seek",void 0),e([he({attribute:!1})],AE.prototype,"cameraTitle",void 0),AE=e([le("frigate-card-thumbnail-details-event")],AE);let zE=class extends se{render(){if(!this.media)return;const e=this.media.getStartTime(),t=e?Kg(e):null,n=this.media.getEndTime(),a=e&&n?ef(e,n):null,i=this.media.inProgress()?V_("recording.in_progress"):null,r=this.seek?Wu(this.seek,"HH:mm:ss"):null,o=this.media.getEventCount();return q` + ${this.cameraTitle?q`
+ ${this.cameraTitle} +
`:""} +
+ ${t?q`
+ + ${t} +
+ ${a||i?q`
+ + ${a?q`${a}`:""} + ${i?q`${i}`:""} +
`:""}`:""} + ${r?q`
+ + ${r} +
`:q``} + ${null!==o?q`
+ + ${o} +
`:""} +
+ `}static get styles(){return o(xE)}};e([he({attribute:!1})],zE.prototype,"media",void 0),e([he({attribute:!1})],zE.prototype,"seek",void 0),e([he({attribute:!1})],zE.prototype,"cameraTitle",void 0),zE=e([le("frigate-card-thumbnail-details-recording")],zE);let IE=class extends se{constructor(){super(...arguments),this.details=!1,this.show_favorite_control=!1,this.show_timeline_control=!1,this.show_download_control=!1}render(){if(!this.media||!this.cameraManager||!this.hass)return;const e=this.media.getThumbnail(),t=this.media.getTitle()??"",n={star:!0,starred:!!this.media?.isFavorite()},a=this.show_timeline_control&&(!tx.isRecording(this.media)||this.media.getStartTime()&&this.media.getEndTime()),i=this.cameraManager?.getMediaCapabilities(this.media),r=this.show_favorite_control&&this.media&&this.hass&&i?.canFavorite,o=this.show_download_control&&this.hass&&this.media.getID()&&i?.canDownload,s=this.cameraManager.getCameraMetadata(this.media.getCameraID());return q` + ${tx.isEvent(this.media)&&e?q``:tx.isEvent(this.media)||tx.isRecording(this.media)?q``:q``} + ${r?q` {if(wf(e),this.hass&&this.media){try{await(this.cameraManager?.favoriteMedia(this.media,!this.media?.isFavorite()))}catch(e){return void Gg(e)}this.requestUpdate()}}} + />`:""} + ${this.details&&tx.isEvent(this.media)?q``:this.details&&tx.isRecording(this.media)?q``:q``} + ${a?q`{wf(e),this.viewManagerEpoch&&this.media&&this.viewManagerEpoch.manager.setViewByParameters({params:{view:"timeline",queryResults:this.viewManagerEpoch?.manager.getView()?.queryResults?.clone().selectResultIfFound((e=>e===this.media))},modifiers:[new wE(["timeline"])]})}} + >`:""} + ${o?q` {if(wf(e),this.hass&&this.cameraManager&&this.media)try{await Ew(this.hass,this.cameraManager,this.media)}catch(e){kk(this,e)}}} + >`:""} + `}static get styles(){return o(":host {\n display: flex;\n flex-direction: row;\n box-sizing: border-box;\n position: relative;\n overflow: hidden;\n transition: transform 0.2s linear;\n}\n\n:host(:not([details])) {\n aspect-ratio: 1/1;\n}\n\n:host([details]) {\n border: 1px solid var(--primary-color);\n border-radius: var(--frigate-card-css-border-radius, var(--ha-card-border-radius, 4px));\n padding: 2px;\n background-color: var(--primary-background-color, black);\n}\n\n:host(:hover) {\n transform: scale(1.04);\n}\n\nha-icon {\n position: absolute;\n border-radius: 50%;\n opacity: 0.5;\n color: var(--primary-color);\n cursor: pointer;\n transition: opacity 0.2s ease-in-out, color 0.2s ease-in-out;\n}\n\nha-icon:hover {\n opacity: 1;\n}\n\nha-icon.star {\n top: 3px;\n left: 3px;\n}\n\nha-icon.star.starred {\n color: gold;\n}\n\nha-icon.timeline {\n top: 3px;\n right: 3px;\n}\n\nha-icon.download {\n right: 3px;\n bottom: 3px;\n}\n\nfrigate-card-thumbnail-details-event,\nfrigate-card-thumbnail-details-recording {\n flex: 1;\n}")}};e([he({attribute:!1})],IE.prototype,"cameraManager",void 0),e([he({attribute:!1})],IE.prototype,"media",void 0),e([he({attribute:!0,type:Boolean})],IE.prototype,"details",void 0),e([he({attribute:!0,type:Boolean})],IE.prototype,"show_favorite_control",void 0),e([he({attribute:!0,type:Boolean})],IE.prototype,"show_timeline_control",void 0),e([he({attribute:!0,type:Boolean})],IE.prototype,"show_download_control",void 0),e([he({attribute:!1})],IE.prototype,"seek",void 0),IE=e([le("frigate-card-thumbnail")],IE);let TE=class extends se{constructor(){super(...arguments),this.fadeThumbnails=!1,this._thumbnailSlides=[]}willUpdate(e){if(e.has("config")){this.config?.size&&this.style.setProperty("--frigate-card-thumbnail-size",`${this.config.size}px`);const e=this._getDirection();e?this.setAttribute("direction",e):this.removeAttribute("direction")}["cameraManager","config","transitionEffect","viewManagerEpoch"].some((t=>e.has(t)))&&(this._thumbnailSlides=this._renderSlides()),e.has("viewManagerEpoch")&&this.style.setProperty("--frigate-card-carousel-thumbnail-opacity",this.fadeThumbnails&&null!==this._getSelectedSlide()?"0.4":"1.0")}_getSelectedSlide(){return this.viewManagerEpoch?.manager.getView()?.queryResults?.getSelectedIndex()??null}_renderSlides(){const e=[],t=this.viewManagerEpoch?.manager.getView(),n=t?.context?.mediaViewer?.seek,a=this._getSelectedSlide();for(const i of t?.queryResults?.getResults()??[]){const t=e.length,r={embla__slide:!0,"slide-selected":a===t};e.push(q` {const n=this.viewManagerEpoch?.manager.getView();n&&n.queryResults&&Bg(this,"thumbnail-carousel:tap",{queryResults:n.queryResults.clone().selectIndex(t)}),wf(e)}} + > + `)}return e}_getDirection(){return"left"===this.config?.mode||"right"===this.config?.mode?"vertical":"above"===this.config?.mode||"below"===this.config?.mode?"horizontal":null}render(){const e=this._getDirection();if(this._thumbnailSlides.length&&this.config&&e)return q` + ${this._thumbnailSlides} + `}static get styles(){return o(":host {\n --frigate-card-thumbnail-size-max: 300px;\n --frigate-card-thumbnail-details-width: calc(\n var(--frigate-card-thumbnail-size) + 200px\n );\n}\n\n:host {\n display: block;\n width: 100%;\n height: 100%;\n --frigate-card-carousel-thumbnail-opacity: 1;\n}\n\n:host([direction=vertical]) {\n height: 100%;\n}\n\n:host([direction=horizontal]) {\n height: auto;\n}\n\n.embla__slide {\n flex: 0 0 auto;\n opacity: var(--frigate-card-carousel-thumbnail-opacity);\n}\n\n.embla__slide.slide-selected {\n opacity: 1;\n}\n\nfrigate-card-thumbnail {\n width: var(--frigate-card-thumbnail-size);\n height: var(--frigate-card-thumbnail-size);\n max-width: 100%;\n}\n\nfrigate-card-thumbnail[details] {\n width: var(--frigate-card-thumbnail-details-width);\n}")}};e([he({attribute:!1})],TE.prototype,"hass",void 0),e([he({attribute:!1})],TE.prototype,"viewManagerEpoch",void 0),e([he({attribute:!1})],TE.prototype,"cameraManager",void 0),e([he({attribute:!1})],TE.prototype,"config",void 0),e([he({attribute:!1})],TE.prototype,"fadeThumbnails",void 0),TE=e([le("frigate-card-thumbnail-carousel")],TE);var jE=":host {\n width: 100%;\n height: 100%;\n display: block;\n}";const OE=document.createElement("template");OE.innerHTML='\n
\n
\n';class DE extends HTMLElement{constructor(){super();const e=this.attachShadow({mode:"open"});e.appendChild(OE.content.cloneNode(!0)),this._freeSpaceDiv=e.getElementById("fs")}connectedCallback(){this._freeSpaceDiv&&this._freeSpaceDiv.addEventListener("click",this.handleFreeSpaceDivClick),this.upgradeProperty("open")}disconnectedCallback(){document.removeEventListener("keyup",this.handleKeyUp)}upgradeProperty(e){if(this.hasOwnProperty(e)){let t=this[e];delete this[e],this[e]=t}}handleKeyUp=e=>{if(!e.altKey&&"Escape"===e.key)e.preventDefault(),this.open=!1};get open(){return this.hasAttribute("open")}set open(e){e?this.hasAttribute("open")||this.setAttribute("open",""):this.hasAttribute("open")&&this.removeAttribute("open")}static get observedAttributes(){return["open"]}attributeChangedCallback(e,t,n){"open"===e&&(this.open?(this.setAttribute("tabindex","0"),this.setAttribute("aria-disabled","false"),this.focus({preventScroll:!0}),document.addEventListener("keyup",this.handleKeyUp),this.dispatchEvent(new CustomEvent("open",{bubbles:!0}))):(this.setAttribute("tabindex","-1"),this.setAttribute("aria-disabled","true"),document.removeEventListener("keyup",this.handleKeyUp),this.dispatchEvent(new CustomEvent("close",{bubbles:!0}))))}handleFreeSpaceDivClick=()=>{this.open=!1}}customElements.define("side-drawer",DE);let RE=class extends se{constructor(){super(...arguments),this.location="left",this.control=!0,this.open=!1,this.empty=!0,this._refDrawer=ze(),this._refSlot=ze(),this._resizeObserver=new ResizeObserver((()=>this._hideDrawerIfNecessary())),this._isHoverableDevice=Yg()}firstUpdated(e){super.firstUpdated(e);const t=document.createElement("style");t.innerHTML=":host {\n width: unset;\n}\n\n#fs {\n display: none;\n width: 100%;\n inset: 0;\n}\n\n#d,\n#fs {\n height: 100%;\n position: absolute;\n}\n\n#d {\n overflow: visible;\n max-width: 90%;\n z-index: 10;\n}\n\n:host([location=right]) #d {\n left: unset;\n right: 0;\n transform: translateX(100%);\n}\n\n:host([location=right][open]) #d {\n transform: none;\n box-shadow: var(--frigate-card-css-box-shadow, 0px 0px 25px 0px black);\n}\n\n#ifs {\n height: 100%;\n}",this._refDrawer.value?.shadowRoot?.appendChild(t)}_slotChanged(){const e=this._refSlot.value?lf(this._refSlot.value):[];this._resizeObserver.disconnect();for(const t of e)this._resizeObserver.observe(t);this._hideDrawerIfNecessary()}_hideDrawerIfNecessary(){if(!this._refDrawer.value)return;const e=this._refSlot.value?lf(this._refSlot.value):null;this.empty=!e||!e.length||e.every((e=>{const t=e.getBoundingClientRect();return!t.width||!t.height}))}render(){return q` + {this.open&&(this.open=!1)}} + > + ${this.control?q` +
{wf(e),this.open=!this.open}} + > + {this._isHoverableDevice&&!this.open&&(this.open=!0)}} + > + +
+ `:""} + this._slotChanged()}> +
+ `}static get styles(){return o("side-drawer {\n background-color: var(--card-background-color);\n}\n\ndiv.control-surround {\n position: absolute;\n bottom: 50%;\n transform: translateY(50%);\n z-index: 0;\n padding-top: 20px;\n padding-bottom: 20px;\n}\n\n:host([location=left]) div.control-surround {\n padding-right: 12px;\n left: 100%;\n}\n\n:host([location=right]) div.control-surround {\n padding-left: 12px;\n right: 100%;\n}\n\n:host([empty]),\n:host([empty]) > * {\n visibility: hidden;\n}\n\n:host(:not([empty])),\n:host(:not([empty])) > * {\n visibility: visible;\n}\n\nha-icon.control {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.7);\n opacity: 0.5;\n pointer-events: all;\n --mdc-icon-size: 20px;\n padding-top: 20px;\n padding-bottom: 20px;\n transition: opacity 0.5s ease;\n}\n\n:host([open]) ha-icon.control,\nha-icon.control:hover {\n opacity: 1;\n background-color: black;\n}\n\n:host([location=left]) ha-icon.control {\n border-top-right-radius: 20px;\n border-bottom-right-radius: 20px;\n}\n\n:host([location=right]) ha-icon.control {\n border-top-left-radius: 20px;\n border-bottom-left-radius: 20px;\n}")}};e([he({attribute:!0,reflect:!0})],RE.prototype,"location",void 0),e([he({attribute:!0,reflect:!0,type:Boolean})],RE.prototype,"control",void 0),e([he({type:Boolean,reflect:!0,attribute:!0})],RE.prototype,"open",void 0),e([he({attribute:!1})],RE.prototype,"icons",void 0),e([he({type:Boolean,reflect:!0,attribute:!0})],RE.prototype,"empty",void 0),RE=e([le("frigate-card-drawer")],RE);let PE=class extends se{constructor(){super(...arguments),this._refDrawerLeft=ze(),this._refDrawerRight=ze(),this._boundDrawerHandler=this._drawerHandler.bind(this)}connectedCallback(){super.connectedCallback(),this.addEventListener("frigate-card:drawer:open",this._boundDrawerHandler),this.addEventListener("frigate-card:drawer:close",this._boundDrawerHandler)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("frigate-card:drawer:open",this._boundDrawerHandler),this.removeEventListener("frigate-card:drawer:close",this._boundDrawerHandler)}_drawerHandler(e){const t=e.detail.drawer,n=e.type.endsWith(":open");"left"===t&&this._refDrawerLeft.value?this._refDrawerLeft.value.open=n:"right"===t&&this._refDrawerRight.value&&(this._refDrawerRight.value.open=n)}render(){return q` + + + + + + + + `}static get styles(){return o(":host {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n position: relative;\n overflow: hidden;\n}\n\n::slotted(:not([slot])) {\n flex: 1;\n min-height: 0px;\n}")}};e([he({attribute:!1})],PE.prototype,"drawerIcons",void 0),PE=e([le("frigate-card-surround-basic")],PE);let LE=class extends se{_hasDrawer(){return!!this.thumbnailConfig&&["left","right"].includes(this.thumbnailConfig.mode)}willUpdate(e){this.timelineConfig?.mode&&"none"!==this.timelineConfig.mode&&import("./timeline-core-91693473.js");const t=this.viewManagerEpoch?.manager.getView();e.has("viewManagerEpoch")&&(this.viewManagerEpoch?.manager.hasMajorMediaChange(this.viewManagerEpoch?.oldView)||this.viewManagerEpoch?.oldView?.displayMode!==t?.displayMode)&&(this._cameraIDsForTimeline=this._getCameraIDsForTimeline()??void 0)}_getCameraIDsForTimeline(){const e=this.viewManagerEpoch?.manager.getView();if(!e||!this.cameraManager)return null;if(e.is("live")){const t={anyCapabilities:["clips","snapshots","recordings"]};return e.supportsMultipleDisplayModes()&&e.isGrid()?this.cameraManager.getStore().getCameraIDsWithCapability(t):this.cameraManager.getStore().getAllDependentCameras(e.camera,t)}return e.isViewerView()?e.query?.getQueryCameraIDs()??null:null}render(){const e=this.viewManagerEpoch?.manager.getView();if(!this.hass||!e)return;const t=(e,t)=>{this.thumbnailConfig&&this._hasDrawer()&&Bg(e.composedPath()[0],"drawer:"+t,{drawer:this.thumbnailConfig.mode})};return q` t(e,"open")} + @frigate-card:thumbnails:close=${e=>t(e,"close")} + > + ${this.thumbnailConfig&&"none"!==this.thumbnailConfig.mode?q` {const n=e.detail.queryResults.getSelectedResult();n&&(this.viewManagerEpoch?.manager.setViewByParameters({params:{view:"media",queryResults:e.detail.queryResults,...n.getCameraID()&&{camera:n.getCameraID()}},modifiers:[new wE(["timeline","mediaViewer"])]}),t(e,"close"))}} + > + `:""} + ${this.timelineConfig&&"none"!==this.timelineConfig.mode?q` + `:""} + + `}static get styles(){return o(jE)}};e([he({attribute:!1})],LE.prototype,"hass",void 0),e([he({attribute:!1})],LE.prototype,"viewManagerEpoch",void 0),e([he({attribute:!1,hasChanged:Qg})],LE.prototype,"thumbnailConfig",void 0),e([he({attribute:!1,hasChanged:Qg})],LE.prototype,"timelineConfig",void 0),e([he({attribute:!1})],LE.prototype,"cameraManager",void 0),e([he({attribute:!1})],LE.prototype,"cardWideConfig",void 0),LE=e([le("frigate-card-surround")],LE);var NE="Tue, 10 Dec 2024 02:14:31 GMT",FE="216ded2",VE="Mon, 9 Dec 2024 18:13:23 -0800";const HE=ba.object({domain:ba.string(),version:ba.string().optional()}).passthrough(),BE="hass_web_proxy",qE=(e,t)=>`/api/${BE}/v${t??0}/?url=${encodeURIComponent(e)}`,UE=(e,t,n="media")=>(e=>e.config.components.includes(BE))(e)&&!!t[n];async function WE(e,t,n){await e.callService(BE,"create_proxied_url",{url_pattern:t,...n&&{url_id:n.urlID,ssl_verification:n.sslVerification,ssl_ciphers:n.sslCiphers,open_limit:n.openLimit,ttl:n.ttl,allow_unauthenticated:n.allowUnauthenticated}})}const ZE=async(e,t)=>{let n=null;if(t)try{n=await(async(e,t)=>await $v(e,HE,{type:"manifest/get",integration:t}))(t,e)}catch(e){}return{detected:!!n,...n?.version&&{version:n.version}}};let QE=class extends se{constructor(){super(...arguments),this._diagnostics=null}async _fetchDiagnostics(){this._diagnostics=await(async(e,t,n)=>{const a=e&&t?await t.getMatchingDevices(e,(e=>"Frigate"===e.manufacturer)):[],i=new Map;return a?.forEach((e=>{e.config_entries.forEach((t=>{e.model&&i.set(t,e.model)}))})),{card_version:"6.0.2",browser:navigator.userAgent,date:new Date,lang:F_(),timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,git:{hash:FE,build_date:NE,commit_date:VE},...e&&{ha_version:e.config.version},integrations:{reolink:await ZE("reolink",e),frigate:{...await ZE("frigate",e),...i.size&&{devices:Object.fromEntries(i)}},hass_web_proxy:await ZE(BE,e),motioneye:await ZE("motioneye",e)},...n&&{config:n}}})(this.hass,this.deviceRegistryManager,this.rawConfig)}shouldUpdate(){return!!this._diagnostics||(this._fetchDiagnostics().then((()=>this.requestUpdate())),!1)}render(){return wk({message:V_("error.diagnostics"),type:"diagnostics",icon:"mdi:information",context:this._diagnostics})}static get styles(){return o(jE)}};e([he({attribute:!1})],QE.prototype,"hass",void 0),e([he({attribute:!1})],QE.prototype,"deviceRegistryManager",void 0),e([he({attribute:!1})],QE.prototype,"rawConfig",void 0),e([pe()],QE.prototype,"_diagnostics",void 0),QE=e([le("frigate-card-diagnostics")],QE);let GE=class extends se{willUpdate(e){if(e.has("viewManagerEpoch")||e.has("config")){const e=this.viewManagerEpoch?.manager.getView();(e?.is("live")||this._shouldLivePreload())&&import("./index-9bf80040.js").then((function(e){return e.i})),e?.isGalleryView()?import("./gallery-1de615c4.js"):e?.isViewerView()?import("./index-25c40d01.js"):e?.is("image")?import("./image-1e2a0a79.js"):e?.is("timeline")&&import("./timeline-c30d9341.js")}e.has("hide")&&(this.hide?this.setAttribute("hidden",""):this.removeAttribute("hidden"))}shouldUpdate(e){return!0}_shouldLivePreload(){const e=this.viewManagerEpoch?.manager.getView();return!!this.overriddenConfig?.live.preload&&!e?.is("diagnostics")}render(){if(!(this.hass&&this.overriddenConfig&&this.nonOverriddenConfig&&this.cardWideConfig))return q``;const e=this.viewManagerEpoch?.manager.getView(),t={hidden:this._shouldLivePreload()&&!e?.is("live")},n={hidden:!!this.hide},a=e?.is("live")?this.overriddenConfig.live.controls.thumbnails:e?.isViewerView()?this.overriddenConfig.media_viewer.controls.thumbnails:e?.is("timeline")?this.overriddenConfig.timeline.controls.thumbnails:void 0,i=e?.is("live")?this.overriddenConfig.live.controls.timeline:e?.isViewerView()?this.overriddenConfig.media_viewer.controls.timeline:void 0,r=e?this.cameraManager?.getStore().getCameraConfig(e.camera)??null:null;return q` + ${!this.hide&&e?.is("image")&&r?q` + `:""} + ${!this.hide&&e?.isGalleryView()?q` + `:""} + ${!this.hide&&e?.isViewerView()?q` + + + `:""} + ${!this.hide&&e?.is("timeline")?q` + `:""} + ${!this.hide&&e?.is("diagnostics")?q` + `:""} + ${this._shouldLivePreload()||!this.hide&&e?.is("live")?q` + + + `:""} + `}static get styles(){return o(":host {\n width: 100%;\n height: 100%;\n display: block;\n}\n\n:host([hidden]),\n.hidden {\n display: none;\n}")}};e([he({attribute:!1})],GE.prototype,"hass",void 0),e([he({attribute:!1})],GE.prototype,"viewManagerEpoch",void 0),e([he({attribute:!1})],GE.prototype,"cameraManager",void 0),e([he({attribute:!1})],GE.prototype,"nonOverriddenConfig",void 0),e([he({attribute:!1})],GE.prototype,"overriddenConfig",void 0),e([he({attribute:!1})],GE.prototype,"cardWideConfig",void 0),e([he({attribute:!1})],GE.prototype,"rawConfig",void 0),e([he({attribute:!1})],GE.prototype,"resolvedMediaCache",void 0),e([he({attribute:!1})],GE.prototype,"conditionsManagerEpoch",void 0),e([he({attribute:!1})],GE.prototype,"hide",void 0),e([he({attribute:!1})],GE.prototype,"microphoneManager",void 0),e([he({attribute:!1})],GE.prototype,"triggeredCameraIDs",void 0),e([he({attribute:!1})],GE.prototype,"deviceRegistryManager",void 0),GE=e([le("frigate-card-views")],GE);console.info(`%c FRIGATE-HASS-CARD \n%c ${V_("common.version")} 6.0.2`,"color: pink; font-weight: bold; background: black","color: white; font-weight: bold; background: dimgray"),window.customCards=window.customCards||[],window.customCards.push({type:"frigate-card",name:V_("common.frigate_card"),description:V_("common.frigate_card_description"),preview:!0,documentationURL:wa});let YE=class extends se{constructor(){super(...arguments),this._controller=new Ax(this,(()=>this._refMain.value?.scroll({top:0})),(()=>this._refMenu.value?.toggleMenu()),this._requestUpdateForComponentsThatUseConditions.bind(this)),this._menuButtonController=new zx,this._refMenu=ze(),this._refOverlay=ze(),this._refMain=ze(),this._refElements=ze(),this._refViews=ze()}get _config(){return this._controller.getConfigManager().getConfig()}get _hass(){return this._controller.getHASSManager().getHASS()}set hass(e){this._controller.getHASSManager().setHASS(e),this._refMenu.value&&(this._refMenu.value.hass=e),this._refElements.value&&(this._refElements.value.hass=e),this._refViews.value&&(this._refViews.value.hass=e)}static async getConfigElement(){return await Ax.getConfigElement()}static getStubConfig(e,t){return Ax.getStubConfig(t)}_requestUpdateForComponentsThatUseConditions(){this._refViews.value&&(this._refViews.value.conditionsManagerEpoch=this._controller.getConditionsManager().getEpoch()??void 0),this._refElements.value&&(this._refElements.value.conditionsManagerEpoch=this._controller.getConditionsManager().getEpoch()??void 0)}setConfig(e){this._controller.getConfigManager().setConfig(e)}shouldUpdate(){return!!this.isConnected&&(this._controller.getMessageManager().hasMessage()||this._controller.getInitializationManager().isInitializedMandatory()||this._controller.getInitializationManager().initializeMandatory(),!0)}_renderMenuStatusContainer(e){if(!this._config)return;const t=this._config.menu.style,n=this._config.menu.position,a=this._config.status_bar.style,i=this._config.status_bar.position;if("none"===t&&"none"===a||"overlay"===e&&"outside"===t&&"outside"===a||"overlay"!==e&&("outside"!==t||n!==e)&&("outside"!==a||i!==e))return;const r=e=>{const r="none"!==t&&("outside"===t&&"outerlay"===e||"outside"!==t&&"overlay"===e),o="none"!==a&&("outside"===a&&"outerlay"===e||"outside"!==a&&"overlay"===e),s="left"===n||"right"===n||"bottom"===n&&"hidden"===t&&"popup"!==a||"top"===n&&("hidden"!==t||"popup"===a);return q` + ${r&&s?this._renderMenu(n):""} + ${o?this._renderStatusBar(i):""} + ${r&&!s?this._renderMenu(n):""} + `};return q` + ${"overlay"===e?q`${r("overlay")}`:q`
+ ${r("outerlay")} +
`} + `}_renderMenu(e){const t=this._controller.getViewManager().getView();if(this._hass&&this._config)return q` + + `}_renderStatusBar(e){if(this._config)return q` + + `}updated(){this._controller.getInitializationManager().isInitializedMandatory()&&this._controller.getQueryStringManager().executeIfNecessary()}_renderInDialogIfNecessary(e){return this._controller.getExpandManager().isExpanded()?q` {this._controller.getExpandManager().setExpanded(!1)}} + > + ${e} + `:e}render(){if(!this._hass)return;const e={main:!0,"curve-top":"outside"!==this._config?.menu.style||"top"!==this._config?.menu.position,"curve-bottom":"outside"!==this._config?.menu.style||"top"===this._config?.menu.position},t=this._controller.getActionsManager().getMergedActions(),n=this._controller.getCameraManager(),a=!1!==this._config?.performance?.features.animated_progress_indicator&&!this._controller.getInitializationManager().wasEverInitialized()&&!this._controller.getMessageManager().hasMessage();return this._renderInDialogIfNecessary(q` this._controller.getMessageManager().setMessageIfHigherPriority(e.detail)} + @frigate-card:media:loaded=${e=>this._controller.getMediaLoadedInfoManager().set(e.detail)} + @frigate-card:media:unloaded=${()=>this._controller.getMediaLoadedInfoManager().clear()} + @frigate-card:media:volumechange=${()=>this.requestUpdate()} + @frigate-card:media:play=${()=>this.requestUpdate()} + @frigate-card:media:pause=${()=>this.requestUpdate()} + @frigate-card:focus=${()=>this.focus()} + > + ${a?q``:""} + ${this._renderMenuStatusContainer("top")} + ${this._renderMenuStatusContainer("overlay")} +
+ + ${wk(this._controller.getMessageManager().getMessage())} +
+ ${this._renderMenuStatusContainer("bottom")} + ${this._config?.elements?q` {this._menuButtonController.addDynamicMenuButton(e.detail),this.requestUpdate()}} + @frigate-card:menu:remove=${e=>{this._menuButtonController.removeDynamicMenuButton(e.detail),this.requestUpdate()}} + @frigate-card:status-bar:add=${e=>{this._controller.getStatusBarItemManager().addDynamicStatusBarItem(e.detail)}} + @frigate-card:status-bar:remove=${e=>{this._controller.getStatusBarItemManager().removeDynamicStatusBarItem(e.detail)}} + @frigate-card:conditions:evaluate=${e=>{e.evaluation=this._controller.getConditionsManager()?.evaluateConditions(e.conditions)}} + > + `:""} +
`)}static get styles(){return o(':host {\n display: block;\n position: relative;\n background-color: var(--card-background-color);\n border-radius: var(--ha-card-border-radius, 4px);\n height: var(--frigate-card-height);\n min-height: 100px;\n pointer-events: all;\n --frigate-card-expand-max-height: calc((100vh - (2 * 56px)) * 0.85);\n --frigate-card-expand-max-width: 85vw;\n --frigate-card-expand-width: none;\n --frigate-card-expand-height: none;\n --frigate-card-expand-aspect-ratio: unset;\n --frigate-card-height: auto;\n}\n\nfrigate-card-loading {\n position: absolute;\n inset: 0;\n z-index: 1;\n}\n\n:host([dark]) {\n filter: brightness(75%);\n}\n\n:host([panel]) {\n height: 100%;\n}\n\ndiv.main {\n position: relative;\n overflow: auto;\n width: 100%;\n height: 100%;\n margin: auto;\n display: block;\n transform: translateZ(0);\n scrollbar-width: none;\n -ms-overflow-style: none;\n}\n\n/* Hide scrollbar for Chrome, Safari and Opera */\ndiv.main::-webkit-scrollbar {\n display: none;\n}\n\ndiv.main.curve-top {\n border-top-left-radius: var(--ha-card-border-radius, 4px);\n border-top-right-radius: var(--ha-card-border-radius, 4px);\n}\n\ndiv.main.curve-bottom {\n border-bottom-left-radius: var(--ha-card-border-radius, 4px);\n border-bottom-right-radius: var(--ha-card-border-radius, 4px);\n}\n\nha-card {\n display: flex;\n flex-direction: column;\n margin: auto;\n border: 0px;\n overflow: visible;\n width: 100%;\n height: 100%;\n position: static;\n color: var(--secondary-text-color, white);\n}\n\n/************\n * Fullscreen\n *************/\n:host(:fullscreen) #ha-card {\n border-radius: 0px;\n box-shadow: none;\n margin: 0;\n}\n\n:host(:-webkit-full-screen) #ha-card {\n border-radius: 0px;\n box-shadow: none;\n margin: 0;\n}\n\n:host(:fullscreen) div.main,\n:host(:fullscreen) frigate-card-menu {\n border-radius: 0px;\n}\n\n:host(:-webkit-full-screen) div.main,\n:host(:-webkit-full-screen) frigate-card-menu {\n border-radius: 0px;\n}\n\n/***************\n * Expanded mode\n ***************/\nweb-dialog {\n --dialog-padding: 0px;\n --dialog-container-padding: 0px;\n --dialog-max-height: var(--frigate-card-expand-max-height);\n --dialog-max-width: var(--frigate-card-expand-max-width);\n --dialog-width: var(--frigate-card-expand-width);\n --dialog-height: var(--frigate-card-expand-height);\n --dialog-overflow-x: visible;\n --dialog-overflow-y: visible;\n max-height: 100vh;\n}\n\nweb-dialog::part(dialog) {\n aspect-ratio: var(--frigate-card-expand-aspect-ratio);\n border-radius: 0px;\n background: transparent;\n}\n\n/*************************************\n * "Outside" style for menu/status bar\n *************************************/\n.outerlay[data-position=top] > *:first-child {\n border-top-left-radius: var(--ha-card-border-radius, 4px);\n border-top-right-radius: var(--ha-card-border-radius, 4px);\n}\n\n.outerlay[data-position=bottom] > *:last-child {\n border-bottom-left-radius: var(--ha-card-border-radius, 4px);\n border-bottom-right-radius: var(--ha-card-border-radius, 4px);\n}\n\n/*******************\n * Menu hover styles\n *******************/\nfrigate-card-menu {\n z-index: 2;\n}\n\nfrigate-card-menu[data-style*=hover] {\n transition: opacity 0.5s ease;\n opacity: 0;\n}\n\nfrigate-card-menu[data-style*=hover]:hover,\nha-card:hover > frigate-card-overlay > frigate-card-menu[data-style=hover-card] {\n opacity: 1;\n}\n\n/*************************\n * Status bar hover styles\n *************************/\nfrigate-card-status-bar {\n z-index: 1;\n}\n\nfrigate-card-status-bar[data-style*=hover] {\n transition: opacity 0.5s ease;\n opacity: 0;\n}\n\nfrigate-card-status-bar[data-style*=hover]:hover,\nha-card:hover > frigate-card-overlay > frigate-card-status-bar[data-style=hover-card] {\n opacity: 1;\n}')}getCardSize(){return 6}};YE=e([le("frigate-card")],YE);export{Il as $,tr as A,nr as B,Zi as C,ar as D,ir as E,rr as F,Pi as G,Li as H,Ni as I,Fi as J,Vi as K,Hi as L,Bi as M,qi as N,Ui as O,gs as P,Ws as Q,ns as R,Us as S,qo as T,Fo as U,Vo as V,Ho as W,Bo as X,Bs as Y,zl as Z,e as _,se as a,dr as a$,H_ as a0,tw as a1,et as a2,nw as a3,$s as a4,Di as a5,ji as a6,Oi as a7,Ri as a8,Wi as a9,Yr as aA,oo as aB,so as aC,lo as aD,uo as aE,co as aF,ao as aG,io as aH,ro as aI,mo as aJ,_o as aK,vo as aL,ho as aM,po as aN,fo as aO,go as aP,eo as aQ,no as aR,to as aS,Xr as aT,Jr as aU,Kr as aV,Ao as aW,Io as aX,zo as aY,hr as aZ,cr as a_,es as aa,Jo as ab,Xo as ac,ts as ad,hs as ae,us as af,ms as ag,qs as ah,ps as ai,So as aj,Co as ak,To as al,Mo as am,ko as an,qr as ao,Ur as ap,Wr as aq,Zr as ar,Eo as as,$o as at,yo as au,xo as av,bo as aw,wo as ax,Qr as ay,Gr as az,pe as b,ja as b$,ur as b0,lr as b1,sr as b2,mr as b3,gr as b4,fr as b5,_r as b6,xr as b7,Hr as b8,Cr as b9,Po as bA,Wo as bB,Zo as bC,Go as bD,Yo as bE,Qo as bF,Uo as bG,vs as bH,_s as bI,ys as bJ,xs as bK,Cs as bL,As as bM,Ms as bN,Es as bO,Ss as bP,Jb as bQ,Kb as bR,Uk as bS,Ug as bT,Ma as bU,Ja as bV,Ya as bW,La as bX,Na as bY,ka as bZ,Oa as b_,kr as ba,Mr as bb,vr as bc,wr as bd,yr as be,br as bf,Sr as bg,Er as bh,$r as bi,Or as bj,zr as bk,Tr as bl,jr as bm,Ir as bn,Ar as bo,Pr as bp,Fr as bq,Vr as br,Dr as bs,Rr as bt,Nr as bu,Lr as bv,Ro as bw,Lo as bx,Oo as by,Do as bz,ew as c,wf as c$,Da as c0,Ta as c1,Ga as c2,Ua as c3,Wa as c4,Za as c5,Qa as c6,_i as c7,fi as c8,Ra as c9,ai as cA,ii as cB,Sa as cC,Ea as cD,pi as cE,hi as cF,gi as cG,mi as cH,Fd as cI,Ca as cJ,ks as cK,ge as cL,fe as cM,W as cN,xe as cO,Gw as cP,Mk as cQ,ze as cR,Yw as cS,df as cT,wk as cU,je as cV,Qg as cW,vw as cX,td as cY,kk as cZ,Ky as c_,Pa as ca,Ha as cb,qa as cc,Fa as cd,Va as ce,Ba as cf,Ka as cg,Xa as ch,ti as ci,ei as cj,yi as ck,vi as cl,bi as cm,wi as cn,$a as co,Aa as cp,za as cq,Ia as cr,ni as cs,ri as ct,oi as cu,si as cv,ci as cw,li as cx,di as cy,ui as cz,aw as d,ba as d$,My as d0,ve as d1,jE as d2,Vd as d3,nu as d4,c as d5,ux as d6,Qv as d7,hx as d8,lx as d9,wx as dA,Ck as dB,U as dC,xf as dD,Bw as dE,kE as dF,CE as dG,yf as dH,Fk as dI,vf as dJ,kf as dK,bf as dL,p_ as dM,h_ as dN,Pv as dO,Lv as dP,Ud as dQ,Vv as dR,Yg as dS,Kg as dT,Cx as dU,Gy as dV,gx as dW,su as dX,sf as dY,Fv as dZ,Hg as d_,px as da,Gg as db,Ev as dc,Wu as dd,Xg as de,Qu as df,Bg as dg,qw as dh,af as di,SE as dj,kx as dk,xk as dl,$w as dm,tx as dn,hy as dp,Bb as dq,qb as dr,UE as ds,WE as dt,Ib as du,qE as dv,Qw as dw,Kw as dx,Xw as dy,Jw as dz,_e as e,nf as e0,$v as e1,zs as e2,Kv as e3,Wv as e4,Z_ as e5,Q_ as e6,Yv as e7,Jg as e8,tf as e9,Lu as eA,Vb as eB,Zv as eC,Nb as eD,lf as eE,qy as eF,Uy as eG,Wy as eH,pf as eI,Qy as eJ,Rg as eK,Zy as eL,s as eM,Ae as eN,ye as eO,bE as eP,me as eQ,be as eR,jb as eS,Zw as eT,Gv as ea,Hk as eb,Hv as ec,rf as ed,Tv as ee,Bk as ef,Iv as eg,zv as eh,jv as ei,qk as ej,Xd as ek,Hd as el,Gd as em,Qd as en,Yd as eo,vu as ep,Jd as eq,eu as er,yu as es,_u as et,Bd as eu,au as ev,gu as ew,Ou as ex,Nu as ey,Fu as ez,ww as f,Fb as g,Xb as h,Dv as i,Lb as j,qg as k,V_ as l,Ki as m,he as n,Gi as o,Ld as p,Qi as q,o as r,of as s,le as t,Yi as u,Hb as v,Xi as w,q as x,er as y,Ji as z}; diff --git a/config/www/community/frigate-hass-card/card-45855f1f.js.gz b/config/www/community/frigate-hass-card/card-45855f1f.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..cd5fb1c7f3855b8acd7ec134221d7a5628cad914 GIT binary patch literal 142680 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%0A-i##L4sovjotahLVJp!~dAZ0A5n?nb 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 QrfU!WAGR3pQ}Y)H0HQWKaR2}S literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/card-769e2b91.js b/config/www/community/frigate-hass-card/card-769e2b91.js new file mode 100644 index 00000000..23db575d --- /dev/null +++ b/config/www/community/frigate-hass-card/card-769e2b91.js @@ -0,0 +1,650 @@ +function e(e,t,n,a){var i,r=arguments.length,o=r<3?t:null===a?a=Object.getOwnPropertyDescriptor(t,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,a);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(r<3?i(o):r>3?i(t,n,o):i(t,n))||o);return r>3&&o&&Object.defineProperty(t,n,o),o}"function"==typeof SuppressedError&&SuppressedError; +/** + * @license + * Copyright 2019 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const t=globalThis,n=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,a=Symbol(),i=new WeakMap;let r=class{constructor(e,t,n){if(this._$cssResult$=!0,n!==a)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(n&&void 0===e){const n=void 0!==t&&1===t.length;n&&(e=i.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),n&&i.set(t,e))}return e}toString(){return this.cssText}};const o=e=>new r("string"==typeof e?e:e+"",void 0,a),s=(e,...t)=>{const n=1===e.length?e[0]:t.reduce(((t,n,a)=>t+(e=>{if(!0===e._$cssResult$)return e.cssText;if("number"==typeof e)return e;throw Error("Value passed to 'css' function must be a 'css' function result: "+e+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(n)+e[a+1]),e[0]);return new r(n,e,a)},c=(e,a)=>{if(n)e.adoptedStyleSheets=a.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet));else for(const n of a){const a=document.createElement("style"),i=t.litNonce;void 0!==i&&a.setAttribute("nonce",i),a.textContent=n.cssText,e.appendChild(a)}},l=n?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const n of e.cssRules)t+=n.cssText;return o(t)})(e):e +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */,{is:d,defineProperty:u,getOwnPropertyDescriptor:h,getOwnPropertyNames:p,getOwnPropertySymbols:m,getPrototypeOf:g}=Object,f=globalThis,_=f.trustedTypes,v=_?_.emptyScript:"",y=f.reactiveElementPolyfillSupport,b=(e,t)=>e,w={toAttribute(e,t){switch(t){case Boolean:e=e?v:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let n=e;switch(t){case Boolean:n=null!==e;break;case Number:n=null===e?null:Number(e);break;case Object:case Array:try{n=JSON.parse(e)}catch(e){n=null}}return n}},x=(e,t)=>!d(e,t),C={attribute:!0,type:String,converter:w,reflect:!1,hasChanged:x};Symbol.metadata??=Symbol("metadata"),f.litPropertyMetadata??=new WeakMap;class M extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=C){if(t.state&&(t.attribute=!1),this._$Ei(),this.elementProperties.set(e,t),!t.noAccessor){const n=Symbol(),a=this.getPropertyDescriptor(e,n,t);void 0!==a&&u(this.prototype,e,a)}}static getPropertyDescriptor(e,t,n){const{get:a,set:i}=h(this.prototype,e)??{get(){return this[t]},set(e){this[t]=e}};return{get(){return a?.call(this)},set(t){const r=a?.call(this);i.call(this,t),this.requestUpdate(e,r,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??C}static _$Ei(){if(this.hasOwnProperty(b("elementProperties")))return;const e=g(this);e.finalize(),void 0!==e.l&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(b("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(b("properties"))){const e=this.properties,t=[...p(e),...m(e)];for(const n of t)this.createProperty(n,e[n])}const e=this[Symbol.metadata];if(null!==e){const t=litPropertyMetadata.get(e);if(void 0!==t)for(const[e,n]of t)this.elementProperties.set(e,n)}this._$Eh=new Map;for(const[e,t]of this.elementProperties){const n=this._$Eu(e,t);void 0!==n&&this._$Eh.set(n,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const n=new Set(e.flat(1/0).reverse());for(const e of n)t.unshift(l(e))}else void 0!==e&&t.push(l(e));return t}static _$Eu(e,t){const n=t.attribute;return!1===n?void 0:"string"==typeof n?n:"string"==typeof e?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((e=>this.enableUpdating=e)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((e=>e(this)))}addController(e){(this._$EO??=new Set).add(e),void 0!==this.renderRoot&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){const e=new Map,t=this.constructor.elementProperties;for(const n of t.keys())this.hasOwnProperty(n)&&(e.set(n,this[n]),delete this[n]);e.size>0&&(this._$Ep=e)}createRenderRoot(){const e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return c(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((e=>e.hostConnected?.()))}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach((e=>e.hostDisconnected?.()))}attributeChangedCallback(e,t,n){this._$AK(e,n)}_$EC(e,t){const n=this.constructor.elementProperties.get(e),a=this.constructor._$Eu(e,n);if(void 0!==a&&!0===n.reflect){const i=(void 0!==n.converter?.toAttribute?n.converter:w).toAttribute(t,n.type);this._$Em=e,null==i?this.removeAttribute(a):this.setAttribute(a,i),this._$Em=null}}_$AK(e,t){const n=this.constructor,a=n._$Eh.get(e);if(void 0!==a&&this._$Em!==a){const e=n.getPropertyOptions(a),i="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==e.converter?.fromAttribute?e.converter:w;this._$Em=a,this[a]=i.fromAttribute(t,e.type),this._$Em=null}}requestUpdate(e,t,n){if(void 0!==e){if(n??=this.constructor.getPropertyOptions(e),!(n.hasChanged??x)(this[e],t))return;this.P(e,t,n)}!1===this.isUpdatePending&&(this._$ES=this._$ET())}P(e,t,n){this._$AL.has(e)||this._$AL.set(e,t),!0===n.reflect&&this._$Em!==e&&(this._$Ej??=new Set).add(e)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[e,t]of this._$Ep)this[e]=t;this._$Ep=void 0}const e=this.constructor.elementProperties;if(e.size>0)for(const[t,n]of e)!0!==n.wrapped||this._$AL.has(t)||void 0===this[t]||this.P(t,this[t],n)}let e=!1;const t=this._$AL;try{e=this.shouldUpdate(t),e?(this.willUpdate(t),this._$EO?.forEach((e=>e.hostUpdate?.())),this.update(t)):this._$EU()}catch(t){throw e=!1,this._$EU(),t}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach((e=>e.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Ej&&=this._$Ej.forEach((e=>this._$EC(e,this[e]))),this._$EU()}updated(e){}firstUpdated(e){}}M.elementStyles=[],M.shadowRootOptions={mode:"open"},M[b("elementProperties")]=new Map,M[b("finalized")]=new Map,y?.({ReactiveElement:M}),(f.reactiveElementVersions??=[]).push("2.0.4"); +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const k=globalThis,S=k.trustedTypes,E=S?S.createPolicy("lit-html",{createHTML:e=>e}):void 0,$="$lit$",A=`lit$${(Math.random()+"").slice(9)}$`,z="?"+A,I=`<${z}>`,T=document,j=()=>T.createComment(""),O=e=>null===e||"object"!=typeof e&&"function"!=typeof e,D=Array.isArray,R="[ \t\n\f\r]",P=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,L=/-->/g,N=/>/g,F=RegExp(`>|${R}(?:([^\\s"'>=/]+)(${R}*=${R}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),V=/'/g,H=/"/g,B=/^(?:script|style|textarea|title)$/i,q=(e=>(t,...n)=>({_$litType$:e,strings:t,values:n}))(1),U=Symbol.for("lit-noChange"),W=Symbol.for("lit-nothing"),Z=new WeakMap,Q=T.createTreeWalker(T,129);function G(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==E?E.createHTML(t):t}const Y=(e,t)=>{const n=e.length-1,a=[];let i,r=2===t?"":"",o=P;for(let t=0;t"===c[0]?(o=i??P,l=-1):void 0===c[1]?l=-2:(l=o.lastIndex-c[2].length,s=c[1],o=void 0===c[3]?F:'"'===c[3]?H:V):o===H||o===V?o=F:o===L||o===N?o=P:(o=F,i=void 0);const u=o===F&&e[t+1].startsWith("/>")?" ":"";r+=o===P?n+I:l>=0?(a.push(s),n.slice(0,l)+$+n.slice(l)+A+u):n+A+(-2===l?t:u)}return[G(e,r+(e[n]||"")+(2===t?"":"")),a]};class K{constructor({strings:e,_$litType$:t},n){let a;this.parts=[];let i=0,r=0;const o=e.length-1,s=this.parts,[c,l]=Y(e,t);if(this.el=K.createElement(c,n),Q.currentNode=this.el.content,2===t){const e=this.el.content.firstChild;e.replaceWith(...e.childNodes)}for(;null!==(a=Q.nextNode())&&s.length0){a.textContent=S?S.emptyScript:"";for(let n=0;nD(e)||"function"==typeof e?.[Symbol.iterator])(e)?this.k(e):this._(e)}S(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.S(e))}_(e){this._$AH!==W&&O(this._$AH)?this._$AA.nextSibling.data=e:this.T(T.createTextNode(e)),this._$AH=e}$(e){const{values:t,_$litType$:n}=e,a="number"==typeof n?this._$AC(e):(void 0===n.el&&(n.el=K.createElement(G(n.h,n.h[0]),this.options)),n);if(this._$AH?._$AD===a)this._$AH.p(t);else{const e=new J(a,this),n=e.u(this.options);e.p(t),this.T(n),this._$AH=e}}_$AC(e){let t=Z.get(e.strings);return void 0===t&&Z.set(e.strings,t=new K(e)),t}k(e){D(this._$AH)||(this._$AH=[],this._$AR());const t=this._$AH;let n,a=0;for(const i of e)a===t.length?t.push(n=new ee(this.S(j()),this.S(j()),this,this.options)):n=t[a],n._$AI(i),a++;a2||""!==n[0]||""!==n[1]?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=W}_$AI(e,t=this,n,a){const i=this.strings;let r=!1;if(void 0===i)e=X(this,e,t,0),r=!O(e)||e!==this._$AH&&e!==U,r&&(this._$AH=e);else{const a=e;let o,s;for(e=i[0],o=0;o{const a=n?.renderBefore??t;let i=a._$litPart$;if(void 0===i){const e=n?.renderBefore??null;a._$litPart$=i=new ee(t.insertBefore(j(),e),e,void 0,n??{})}return i._$AI(e),i})(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return U}};se._$litElement$=!0,se.finalized=!0,globalThis.litElementHydrateSupport?.({LitElement:se});const ce=globalThis.litElementPolyfillSupport;ce?.({LitElement:se}),(globalThis.litElementVersions??=[]).push("4.0.4"); +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const le=e=>(t,n)=>{void 0!==n?n.addInitializer((()=>{customElements.define(e,t)})):customElements.define(e,t)} +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */,de={attribute:!0,type:String,converter:w,reflect:!1,hasChanged:x},ue=(e=de,t,n)=>{const{kind:a,metadata:i}=n;let r=globalThis.litPropertyMetadata.get(i);if(void 0===r&&globalThis.litPropertyMetadata.set(i,r=new Map),r.set(n.name,e),"accessor"===a){const{name:a}=n;return{set(n){const i=t.get.call(this);t.set.call(this,n),this.requestUpdate(a,i,e)},init(t){return void 0!==t&&this.P(a,void 0,e),t}}}if("setter"===a){const{name:a}=n;return function(n){const i=this[a];t.call(this,n),this.requestUpdate(a,i,e)}}throw Error("Unsupported decorator location: "+a)};function he(e){return(t,n)=>"object"==typeof n?ue(e,t,n):((e,t,n)=>{const a=t.hasOwnProperty(n);return t.constructor.createProperty(n,a?{...e,wrapped:!0}:e),a?Object.getOwnPropertyDescriptor(t,n):void 0})(e,t,n) +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */}function pe(e){return he({...e,state:!0,attribute:!1})} +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const me={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},ge=e=>(...t)=>({_$litDirective$:e,values:t});let fe=class{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,n){this._$Ct=e,this._$AM=t,this._$Ci=n}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}}; +/** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const _e=ge(class extends fe{constructor(e){if(super(e),e.type!==me.ATTRIBUTE||"class"!==e.name||e.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(e){return" "+Object.keys(e).filter((t=>e[t])).join(" ")+" "}update(e,[t]){if(void 0===this.st){this.st=new Set,void 0!==e.strings&&(this.nt=new Set(e.strings.join(" ").split(/\s/).filter((e=>""!==e))));for(const e in t)t[e]&&!this.nt?.has(e)&&this.st.add(e);return this.render(t)}const n=e.element.classList;for(const e of this.st)e in t||(n.remove(e),this.st.delete(e));for(const e in t){const a=!!t[e];a===this.st.has(e)||this.nt?.has(e)||(a?(n.add(e),this.st.add(e)):(n.remove(e),this.st.delete(e)))}return U}}),ve=e=>e??W +/** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */,ye=e=>null===e||"object"!=typeof e&&"function"!=typeof e,be=e=>void 0===e.strings,we={},xe=(e,t=we)=>e._$AH=t +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */,Ce=(e,t)=>{const n=e._$AN;if(void 0===n)return!1;for(const e of n)e._$AO?.(t,!1),Ce(e,t);return!0},Me=e=>{let t,n;do{if(void 0===(t=e._$AM))break;n=t._$AN,n.delete(e),e=t}while(0===n?.size)},ke=e=>{for(let t;t=e._$AM;e=t){let n=t._$AN;if(void 0===n)t._$AN=n=new Set;else if(n.has(e))break;n.add(e),$e(t)}}; +/** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */function Se(e){void 0!==this._$AN?(Me(this),this._$AM=e,ke(this)):this._$AM=e}function Ee(e,t=!1,n=0){const a=this._$AH,i=this._$AN;if(void 0!==i&&0!==i.size)if(t)if(Array.isArray(a))for(let e=n;e{e.type==me.CHILD&&(e._$AP??=Ee,e._$AQ??=Se)};class Ae extends fe{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,t,n){super._$AT(e,t,n),ke(this),this.isConnected=e._$AU}_$AO(e,t=!0){e!==this.isConnected&&(this.isConnected=e,e?this.reconnected?.():this.disconnected?.()),t&&(Ce(this,e),Me(this))}setValue(e){if(be(this._$Ct))this._$Ct._$AI(e,this);else{const t=[...this._$Ct._$AH];t[this._$Ci]=e,this._$Ct._$AI(t,this,0)}}disconnected(){}reconnected(){}} +/** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const ze=()=>new Ie;let Ie=class{};const Te=new WeakMap,je=ge(class extends Ae{render(e){return W}update(e,[t]){const n=t!==this.Y;return n&&void 0!==this.Y&&this.rt(void 0),(n||this.lt!==this.ct)&&(this.Y=t,this.ht=e.options?.host,this.rt(this.ct=e.element)),W}rt(e){if("function"==typeof this.Y){const t=this.ht??globalThis;let n=Te.get(t);void 0===n&&(n=new WeakMap,Te.set(t,n)),void 0!==n.get(this.Y)&&this.Y.call(this.ht,void 0),n.set(this.Y,e),void 0!==e&&this.Y.call(this.ht,e)}else this.Y.value=e}get lt(){return"function"==typeof this.Y?Te.get(this.ht??globalThis)?.get(this.Y):this.Y?.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}}),Oe="important",De=" !"+Oe,Re=ge(class extends fe{constructor(e){if(super(e),e.type!==me.ATTRIBUTE||"style"!==e.name||e.strings?.length>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(e){return Object.keys(e).reduce(((t,n)=>{const a=e[n];return null==a?t:t+`${n=n.includes("-")?n:n.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${a};`}),"")}update(e,[t]){const{style:n}=e.element;if(void 0===this.ft)return this.ft=new Set(Object.keys(t)),this.render(t);for(const e of this.ft)null==t[e]&&(this.ft.delete(e),e.includes("-")?n.removeProperty(e):n[e]=null);for(const e in t){const a=t[e];if(null!=a){this.ft.add(e);const t="string"==typeof a&&a.endsWith(De);e.includes("-")||t?n.setProperty(e,t?a.slice(0,-11):a,t?Oe:""):n[e]=a}}return U}}); +/** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */function Pe(e,t,n,a=20,i=0){let r=[];if(i>=a)return r;const o=e=>{const r=e.assignedNodes().filter((e=>1===e.nodeType));return r.length>0?Pe(r[0].parentElement,t,n,a,i+1):[]},s=Array.from(e.children||[]);for(const e of s)t(e)||(n(e)&&r.push(e),null!=e.shadowRoot?r.push(...Pe(e.shadowRoot,t,n,a,i+1)):"SLOT"===e.tagName?r.push(...o(e)):r.push(...Pe(e,t,n,a,i+1)));return r}function Le(e){return e.hasAttribute("hidden")||e.hasAttribute("aria-hidden")&&"false"!==e.getAttribute("aria-hidden")||"none"===e.style.display||"0"===e.style.opacity||"hidden"===e.style.visibility||"collapse"===e.style.visibility}function Ne(e){return"-1"!==e.getAttribute("tabindex")&&!Le(e)&&!function(e){return e.hasAttribute("disabled")||e.hasAttribute("aria-disabled")&&"false"!==e.getAttribute("aria-disabled")}(e)&&(e.hasAttribute("tabindex")||(e instanceof HTMLAnchorElement||e instanceof HTMLAreaElement)&&e.hasAttribute("href")||e instanceof HTMLButtonElement||e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement||e instanceof HTMLIFrameElement)}const Fe=new Map;const Ve=document.createElement("template");Ve.innerHTML='\n\t
\n\t
\n\t\n\t
\n';class He extends HTMLElement{constructor(){super(),this.debounceId=Math.random().toString(),this._focused=!1;const e=this.attachShadow({mode:"open"});e.appendChild(Ve.content.cloneNode(!0)),this.$backup=e.querySelector("#backup"),this.$start=e.querySelector("#start"),this.$end=e.querySelector("#end"),this.focusLastElement=this.focusLastElement.bind(this),this.focusFirstElement=this.focusFirstElement.bind(this),this.onFocusIn=this.onFocusIn.bind(this),this.onFocusOut=this.onFocusOut.bind(this)}static get observedAttributes(){return["inactive"]}get inactive(){return this.hasAttribute("inactive")}set inactive(e){e?this.setAttribute("inactive",""):this.removeAttribute("inactive")}get focused(){return this._focused}connectedCallback(){this.$start.addEventListener("focus",this.focusLastElement),this.$end.addEventListener("focus",this.focusFirstElement),this.addEventListener("focusin",this.onFocusIn),this.addEventListener("focusout",this.onFocusOut),this.render()}disconnectedCallback(){this.$start.removeEventListener("focus",this.focusLastElement),this.$end.removeEventListener("focus",this.focusFirstElement),this.removeEventListener("focusin",this.onFocusIn),this.removeEventListener("focusout",this.onFocusOut)}attributeChangedCallback(){this.render()}focusFirstElement(){this.trapFocus()}focusLastElement(){this.trapFocus(!0)}getFocusableElements(){return Pe(this,Le,Ne)}trapFocus(e){if(this.inactive)return;let t=this.getFocusableElements();t.length>0?(e?t[t.length-1].focus():t[0].focus(),this.$backup.setAttribute("tabindex","-1")):(this.$backup.setAttribute("tabindex","0"),this.$backup.focus())}onFocusIn(){this.updateFocused(!0)}onFocusOut(){this.updateFocused(!1)}updateFocused(e){!function(e,t,n){const a=Fe.get(n);null!=a&&window.clearTimeout(a),Fe.set(n,window.setTimeout((()=>{e(),Fe.delete(n)}),t))}((()=>{this.focused!==e&&(this._focused=e,this.render())}),0,this.debounceId)}render(){this.$start.setAttribute("tabindex",!this.focused||this.inactive?"-1":"0"),this.$end.setAttribute("tabindex",!this.focused||this.inactive?"-1":"0"),this.focused?this.setAttribute("focused",""):this.removeAttribute("focused")}}function Be(e){return Number(e.getAttribute("data-dialog-count"))||0}function qe(e,t){e.setAttribute("data-dialog-count",t.toString())}function Ue(e=document.activeElement){return null!=e&&null!=e.shadowRoot&&null!=e.shadowRoot.activeElement?Ue(e.shadowRoot.activeElement):e}window.customElements.define("focus-trap",He);const We=document.createElement("template");We.innerHTML='\n \n
\n \n \n \n';class Ze extends HTMLElement{constructor(){super(),this.$scrollContainer=document.documentElement,this.$previousActiveElement=null;const e=this.attachShadow({mode:"open"});e.appendChild(We.content.cloneNode(!0)),this.$dialog=e.querySelector("#dialog"),this.$backdrop=e.querySelector("#backdrop"),this.onBackdropClick=this.onBackdropClick.bind(this),this.onKeyDown=this.onKeyDown.bind(this),this.setAttribute("aria-modal","true"),this.$dialog.setAttribute("role","alertdialog")}static get observedAttributes(){return["open","center"]}get open(){return this.hasAttribute("open")}set open(e){e?this.setAttribute("open",""):this.removeAttribute("open")}get center(){return this.hasAttribute("center")}set center(e){e?this.setAttribute("center",""):this.removeAttribute("center")}connectedCallback(){this.$backdrop.addEventListener("click",this.onBackdropClick)}disconnectedCallback(){this.$backdrop.removeEventListener("click",this.onBackdropClick),this.open&&this.didClose()}show(){this.open=!0}close(e){this.result=e,this.open=!1}onBackdropClick(){this.assertClosing()&&this.close()}onKeyDown(e){if("Escape"===e.code)this.assertClosing()&&(this.close(),e.stopImmediatePropagation())}assertClosing(){return this.dispatchEvent(new CustomEvent("closing",{cancelable:!0}))}didOpen(){this.$previousActiveElement=Ue(document.activeElement),requestAnimationFrame((()=>{this.$dialog.focusFirstElement()})),this.tabIndex=0,this.$scrollContainer.style.overflow="hidden",this.addEventListener("keydown",this.onKeyDown,{capture:!0,passive:!0}),qe(this.$scrollContainer,Be(this.$scrollContainer)+1),this.dispatchEvent(new CustomEvent("open"))}didClose(){this.removeEventListener("keydown",this.onKeyDown,{capture:!0}),qe(this.$scrollContainer,Math.max(0,Be(this.$scrollContainer)-1)),Be(this.$scrollContainer)<=0&&(this.$scrollContainer.style.overflow=""),this.tabIndex=-1,null!=this.$previousActiveElement&&(this.$previousActiveElement.focus(),this.$previousActiveElement=null),this.dispatchEvent(new CustomEvent("close",{detail:this.result}))}attributeChangedCallback(e,t,n){if("open"===e)this.open?this.didOpen():this.didClose()}}var Qe,Ge;function Ye(e){return e.substr(0,e.indexOf("."))}customElements.define("web-dialog",Ze),function(e){e.language="language",e.system="system",e.comma_decimal="comma_decimal",e.decimal_comma="decimal_comma",e.space_comma="space_comma",e.none="none"}(Qe||(Qe={})),function(e){e.language="language",e.system="system",e.am_pm="12",e.twenty_four="24"}(Ge||(Ge={}));var Ke,Xe,Je=["closed","locked","off"],et=function(e,t,n,a){a=a||{},n=null==n?{}:n;var i=new Event(t,{bubbles:void 0===a.bubbles||a.bubbles,cancelable:Boolean(a.cancelable),composed:void 0===a.composed||a.composed});return i.detail=n,e.dispatchEvent(i),i},tt=function(e){et(window,"haptic",e)},nt=function(e,t){return function(e,t,n){void 0===n&&(n=!0);var a,i=Ye(t),r="group"===i?"homeassistant":i;switch(i){case"lock":a=n?"unlock":"lock";break;case"cover":a=n?"open_cover":"close_cover";break;default:a=n?"turn_on":"turn_off"}return e.callService(r,a,{entity_id:t})}(e,t,Je.includes(e.states[t].state))},at=function(e,t,n,a){if(a||(a={action:"more-info"}),!a.confirmation||a.confirmation.exemptions&&a.confirmation.exemptions.some((function(e){return e.user===t.user.id}))||(tt("warning"),confirm(a.confirmation.text||"Are you sure you want to "+a.action+"?")))switch(a.action){case"more-info":(n.entity||n.camera_image)&&et(e,"hass-more-info",{entityId:n.entity?n.entity:n.camera_image});break;case"navigate":a.navigation_path&&function(e,t,n){void 0===n&&(n=!1),n?history.replaceState(null,"",t):history.pushState(null,"",t),et(window,"location-changed",{replace:n})}(0,a.navigation_path);break;case"url":a.url_path&&window.open(a.url_path);break;case"toggle":n.entity&&(nt(t,n.entity),tt("success"));break;case"perform-action":if(!a.perform_action)return void tt("failure");var i=a.perform_action.split(".",2);t.callService(i[0],i[1],a.data,a.target),tt("success");break;case"call-service":if(!a.service)return void tt("failure");var r=a.service.split(".",2);t.callService(r[0],r[1],a.data,a.target),tt("success");break;case"fire-dom-event":et(e,"ll-custom",a)}};!function(e){e.assertEqual=e=>e,e.assertIs=function(e){},e.assertNever=function(e){throw new Error},e.arrayToEnum=e=>{const t={};for(const n of e)t[n]=n;return t},e.getValidEnumValues=t=>{const n=e.objectKeys(t).filter((e=>"number"!=typeof t[t[e]])),a={};for(const e of n)a[e]=t[e];return e.objectValues(a)},e.objectValues=t=>e.objectKeys(t).map((function(e){return t[e]})),e.objectKeys="function"==typeof Object.keys?e=>Object.keys(e):e=>{const t=[];for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(const n of e)if(t(n))return n},e.isInteger="function"==typeof Number.isInteger?e=>Number.isInteger(e):e=>"number"==typeof e&&isFinite(e)&&Math.floor(e)===e,e.joinValues=function(e,t=" | "){return e.map((e=>"string"==typeof e?`'${e}'`:e)).join(t)},e.jsonStringifyReplacer=(e,t)=>"bigint"==typeof t?t.toString():t}(Ke||(Ke={})),function(e){e.mergeShapes=(e,t)=>({...e,...t})}(Xe||(Xe={}));const it=Ke.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),rt=e=>{switch(typeof e){case"undefined":return it.undefined;case"string":return it.string;case"number":return isNaN(e)?it.nan:it.number;case"boolean":return it.boolean;case"function":return it.function;case"bigint":return it.bigint;case"symbol":return it.symbol;case"object":return Array.isArray(e)?it.array:null===e?it.null:e.then&&"function"==typeof e.then&&e.catch&&"function"==typeof e.catch?it.promise:"undefined"!=typeof Map&&e instanceof Map?it.map:"undefined"!=typeof Set&&e instanceof Set?it.set:"undefined"!=typeof Date&&e instanceof Date?it.date:it.object;default:return it.unknown}},ot=Ke.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class st extends Error{constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}get errors(){return this.issues}format(e){const t=e||function(e){return e.message},n={_errors:[]},a=e=>{for(const i of e.issues)if("invalid_union"===i.code)i.unionErrors.map(a);else if("invalid_return_type"===i.code)a(i.returnTypeError);else if("invalid_arguments"===i.code)a(i.argumentsError);else if(0===i.path.length)n._errors.push(t(i));else{let e=n,a=0;for(;ae.message)){const t={},n=[];for(const a of this.issues)a.path.length>0?(t[a.path[0]]=t[a.path[0]]||[],t[a.path[0]].push(e(a))):n.push(e(a));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}st.create=e=>new st(e);const ct=(e,t)=>{let n;switch(e.code){case ot.invalid_type:n=e.received===it.undefined?"Required":`Expected ${e.expected}, received ${e.received}`;break;case ot.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,Ke.jsonStringifyReplacer)}`;break;case ot.unrecognized_keys:n=`Unrecognized key(s) in object: ${Ke.joinValues(e.keys,", ")}`;break;case ot.invalid_union:n="Invalid input";break;case ot.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Ke.joinValues(e.options)}`;break;case ot.invalid_enum_value:n=`Invalid enum value. Expected ${Ke.joinValues(e.options)}, received '${e.received}'`;break;case ot.invalid_arguments:n="Invalid function arguments";break;case ot.invalid_return_type:n="Invalid function return type";break;case ot.invalid_date:n="Invalid date";break;case ot.invalid_string:"object"==typeof e.validation?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,"number"==typeof e.validation.position&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:Ke.assertNever(e.validation):n="regex"!==e.validation?`Invalid ${e.validation}`:"Invalid";break;case ot.too_small:n="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:"date"===e.type?`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:"Invalid input";break;case ot.too_big:n="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"bigint"===e.type?`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"date"===e.type?`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:"Invalid input";break;case ot.custom:n="Invalid input";break;case ot.invalid_intersection_types:n="Intersection results could not be merged";break;case ot.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case ot.not_finite:n="Number must be finite";break;default:n=t.defaultError,Ke.assertNever(e)}return{message:n}};let lt=ct;function dt(){return lt}const ut=e=>{const{data:t,path:n,errorMaps:a,issueData:i}=e,r=[...n,...i.path||[]],o={...i,path:r};if(void 0!==i.message)return{...i,path:r,message:i.message};let s="";const c=a.filter((e=>!!e)).slice().reverse();for(const e of c)s=e(o,{data:t,defaultError:s}).message;return{...i,path:r,message:s}};function ht(e,t){const n=dt(),a=ut({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===ct?void 0:ct].filter((e=>!!e))});e.common.issues.push(a)}class pt{constructor(){this.value="valid"}dirty(){"valid"===this.value&&(this.value="dirty")}abort(){"aborted"!==this.value&&(this.value="aborted")}static mergeArray(e,t){const n=[];for(const a of t){if("aborted"===a.status)return mt;"dirty"===a.status&&e.dirty(),n.push(a.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,t){const n=[];for(const e of t){const t=await e.key,a=await e.value;n.push({key:t,value:a})}return pt.mergeObjectSync(e,n)}static mergeObjectSync(e,t){const n={};for(const a of t){const{key:t,value:i}=a;if("aborted"===t.status)return mt;if("aborted"===i.status)return mt;"dirty"===t.status&&e.dirty(),"dirty"===i.status&&e.dirty(),"__proto__"===t.value||void 0===i.value&&!a.alwaysSet||(n[t.value]=i.value)}return{status:e.value,value:n}}}const mt=Object.freeze({status:"aborted"}),gt=e=>({status:"dirty",value:e}),ft=e=>({status:"valid",value:e}),_t=e=>"aborted"===e.status,vt=e=>"dirty"===e.status,yt=e=>"valid"===e.status,bt=e=>"undefined"!=typeof Promise&&e instanceof Promise;function wt(e,t,n,a){if("a"===n&&!a)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?a:"a"===n?a.call(e):a?a.value:t.get(e)}function xt(e,t,n,a,i){if("m"===a)throw new TypeError("Private method is not writable");if("a"===a&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===a?i.call(e,n):i?i.value=n:t.set(e,n),n}var Ct,Mt,kt;"function"==typeof SuppressedError&&SuppressedError,function(e){e.errToObj=e=>"string"==typeof e?{message:e}:e||{},e.toString=e=>"string"==typeof e?e:null==e?void 0:e.message}(Ct||(Ct={}));class St{constructor(e,t,n,a){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=a}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const Et=(e,t)=>{if(yt(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new st(e.common.issues);return this._error=t,this._error}}};function $t(e){if(!e)return{};const{errorMap:t,invalid_type_error:n,required_error:a,description:i}=e;if(t&&(n||a))throw new Error('Can\'t use "invalid_type_error" or "required_error" in conjunction with custom error map.');if(t)return{errorMap:t,description:i};return{errorMap:(t,i)=>{var r,o;const{message:s}=e;return"invalid_enum_value"===t.code?{message:null!=s?s:i.defaultError}:void 0===i.data?{message:null!==(r=null!=s?s:a)&&void 0!==r?r:i.defaultError}:"invalid_type"!==t.code?{message:i.defaultError}:{message:null!==(o=null!=s?s:n)&&void 0!==o?o:i.defaultError}},description:i}}class At{constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(e){return rt(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:rt(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new pt,ctx:{common:e.parent.common,data:e.data,parsedType:rt(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(bt(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){var n;const a={common:{issues:[],async:null!==(n=null==t?void 0:t.async)&&void 0!==n&&n,contextualErrorMap:null==t?void 0:t.errorMap},path:(null==t?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:rt(e)},i=this._parseSync({data:e,path:a.path,parent:a});return Et(a,i)}async parseAsync(e,t){const n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){const n={common:{issues:[],contextualErrorMap:null==t?void 0:t.errorMap,async:!0},path:(null==t?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:rt(e)},a=this._parse({data:e,path:n.path,parent:n}),i=await(bt(a)?a:Promise.resolve(a));return Et(n,i)}refine(e,t){const n=e=>"string"==typeof t||void 0===t?{message:t}:"function"==typeof t?t(e):t;return this._refinement(((t,a)=>{const i=e(t),r=()=>a.addIssue({code:ot.custom,...n(t)});return"undefined"!=typeof Promise&&i instanceof Promise?i.then((e=>!!e||(r(),!1))):!!i||(r(),!1)}))}refinement(e,t){return this._refinement(((n,a)=>!!e(n)||(a.addIssue("function"==typeof t?t(n,a):t),!1)))}_refinement(e){return new kn({schema:this,typeName:Pn.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return Sn.create(this,this._def)}nullable(){return En.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return on.create(this,this._def)}promise(){return Mn.create(this,this._def)}or(e){return ln.create([this,e],this._def)}and(e){return pn.create(this,e,this._def)}transform(e){return new kn({...$t(this._def),schema:this,typeName:Pn.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t="function"==typeof e?e:()=>e;return new $n({...$t(this._def),innerType:this,defaultValue:t,typeName:Pn.ZodDefault})}brand(){return new Tn({typeName:Pn.ZodBranded,type:this,...$t(this._def)})}catch(e){const t="function"==typeof e?e:()=>e;return new An({...$t(this._def),innerType:this,catchValue:t,typeName:Pn.ZodCatch})}describe(e){return new(0,this.constructor)({...this._def,description:e})}pipe(e){return jn.create(this,e)}readonly(){return On.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const zt=/^c[^\s-]{8,}$/i,It=/^[0-9a-z]+$/,Tt=/^[0-9A-HJKMNP-TV-Z]{26}$/,jt=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Ot=/^[a-z0-9_-]{21}$/i,Dt=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Rt=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;let Pt;const Lt=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Nt=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,Ft=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Vt="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Ht=new RegExp(`^${Vt}$`);function Bt(e){let t="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return e.precision?t=`${t}\\.\\d{${e.precision}}`:null==e.precision&&(t=`${t}(\\.\\d+)?`),t}function qt(e){let t=`${Vt}T${Bt(e)}`;const n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function Ut(e,t){return!("v4"!==t&&t||!Lt.test(e))||!("v6"!==t&&t||!Nt.test(e))}class Wt extends At{_parse(e){this._def.coerce&&(e.data=String(e.data));if(this._getType(e)!==it.string){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.string,received:t.parsedType}),mt}const t=new pt;let n;for(const a of this._def.checks)if("min"===a.kind)e.data.lengtha.value&&(n=this._getOrReturnCtx(e,n),ht(n,{code:ot.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),t.dirty());else if("length"===a.kind){const i=e.data.length>a.value,r=e.data.lengthe.test(t)),{validation:t,code:ot.invalid_string,...Ct.errToObj(n)})}_addCheck(e){return new Wt({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...Ct.errToObj(e)})}url(e){return this._addCheck({kind:"url",...Ct.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...Ct.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...Ct.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...Ct.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...Ct.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...Ct.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...Ct.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...Ct.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...Ct.errToObj(e)})}datetime(e){var t,n;return"string"==typeof e?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:void 0===(null==e?void 0:e.precision)?null:null==e?void 0:e.precision,offset:null!==(t=null==e?void 0:e.offset)&&void 0!==t&&t,local:null!==(n=null==e?void 0:e.local)&&void 0!==n&&n,...Ct.errToObj(null==e?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return"string"==typeof e?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:void 0===(null==e?void 0:e.precision)?null:null==e?void 0:e.precision,...Ct.errToObj(null==e?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...Ct.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...Ct.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:null==t?void 0:t.position,...Ct.errToObj(null==t?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...Ct.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...Ct.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...Ct.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...Ct.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...Ct.errToObj(t)})}nonempty(e){return this.min(1,Ct.errToObj(e))}trim(){return new Wt({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Wt({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Wt({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((e=>"datetime"===e.kind))}get isDate(){return!!this._def.checks.find((e=>"date"===e.kind))}get isTime(){return!!this._def.checks.find((e=>"time"===e.kind))}get isDuration(){return!!this._def.checks.find((e=>"duration"===e.kind))}get isEmail(){return!!this._def.checks.find((e=>"email"===e.kind))}get isURL(){return!!this._def.checks.find((e=>"url"===e.kind))}get isEmoji(){return!!this._def.checks.find((e=>"emoji"===e.kind))}get isUUID(){return!!this._def.checks.find((e=>"uuid"===e.kind))}get isNANOID(){return!!this._def.checks.find((e=>"nanoid"===e.kind))}get isCUID(){return!!this._def.checks.find((e=>"cuid"===e.kind))}get isCUID2(){return!!this._def.checks.find((e=>"cuid2"===e.kind))}get isULID(){return!!this._def.checks.find((e=>"ulid"===e.kind))}get isIP(){return!!this._def.checks.find((e=>"ip"===e.kind))}get isBase64(){return!!this._def.checks.find((e=>"base64"===e.kind))}get minLength(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.valuea?n:a;return parseInt(e.toFixed(i).replace(".",""))%parseInt(t.toFixed(i).replace(".",""))/Math.pow(10,i)}Wt.create=e=>{var t;return new Wt({checks:[],typeName:Pn.ZodString,coerce:null!==(t=null==e?void 0:e.coerce)&&void 0!==t&&t,...$t(e)})};class Qt extends At{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){this._def.coerce&&(e.data=Number(e.data));if(this._getType(e)!==it.number){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.number,received:t.parsedType}),mt}let t;const n=new pt;for(const a of this._def.checks)if("int"===a.kind)Ke.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.invalid_type,expected:"integer",received:"float",message:a.message}),n.dirty());else if("min"===a.kind){(a.inclusive?e.dataa.value:e.data>=a.value)&&(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),n.dirty())}else"multipleOf"===a.kind?0!==Zt(e.data,a.value)&&(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.not_multiple_of,multipleOf:a.value,message:a.message}),n.dirty()):"finite"===a.kind?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.not_finite,message:a.message}),n.dirty()):Ke.assertNever(a);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,Ct.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Ct.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Ct.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Ct.toString(t))}setLimit(e,t,n,a){return new Qt({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Ct.toString(a)}]})}_addCheck(e){return new Qt({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:Ct.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:Ct.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:Ct.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:Ct.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:Ct.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Ct.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:Ct.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Ct.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Ct.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value"int"===e.kind||"multipleOf"===e.kind&&Ke.isInteger(e.value)))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if("finite"===n.kind||"int"===n.kind||"multipleOf"===n.kind)return!0;"min"===n.kind?(null===t||n.value>t)&&(t=n.value):"max"===n.kind&&(null===e||n.valuenew Qt({checks:[],typeName:Pn.ZodNumber,coerce:(null==e?void 0:e.coerce)||!1,...$t(e)});class Gt extends At{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){this._def.coerce&&(e.data=BigInt(e.data));if(this._getType(e)!==it.bigint){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.bigint,received:t.parsedType}),mt}let t;const n=new pt;for(const a of this._def.checks)if("min"===a.kind){(a.inclusive?e.dataa.value:e.data>=a.value)&&(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),n.dirty())}else"multipleOf"===a.kind?e.data%a.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.not_multiple_of,multipleOf:a.value,message:a.message}),n.dirty()):Ke.assertNever(a);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,Ct.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Ct.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Ct.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Ct.toString(t))}setLimit(e,t,n,a){return new Gt({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Ct.toString(a)}]})}_addCheck(e){return new Gt({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:Ct.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:Ct.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:Ct.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:Ct.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Ct.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value{var t;return new Gt({checks:[],typeName:Pn.ZodBigInt,coerce:null!==(t=null==e?void 0:e.coerce)&&void 0!==t&&t,...$t(e)})};class Yt extends At{_parse(e){this._def.coerce&&(e.data=Boolean(e.data));if(this._getType(e)!==it.boolean){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.boolean,received:t.parsedType}),mt}return ft(e.data)}}Yt.create=e=>new Yt({typeName:Pn.ZodBoolean,coerce:(null==e?void 0:e.coerce)||!1,...$t(e)});class Kt extends At{_parse(e){this._def.coerce&&(e.data=new Date(e.data));if(this._getType(e)!==it.date){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.date,received:t.parsedType}),mt}if(isNaN(e.data.getTime())){return ht(this._getOrReturnCtx(e),{code:ot.invalid_date}),mt}const t=new pt;let n;for(const a of this._def.checks)"min"===a.kind?e.data.getTime()a.value&&(n=this._getOrReturnCtx(e,n),ht(n,{code:ot.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),t.dirty()):Ke.assertNever(a);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Kt({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:Ct.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:Ct.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return null!=e?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.valuenew Kt({checks:[],coerce:(null==e?void 0:e.coerce)||!1,typeName:Pn.ZodDate,...$t(e)});class Xt extends At{_parse(e){if(this._getType(e)!==it.symbol){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.symbol,received:t.parsedType}),mt}return ft(e.data)}}Xt.create=e=>new Xt({typeName:Pn.ZodSymbol,...$t(e)});class Jt extends At{_parse(e){if(this._getType(e)!==it.undefined){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.undefined,received:t.parsedType}),mt}return ft(e.data)}}Jt.create=e=>new Jt({typeName:Pn.ZodUndefined,...$t(e)});class en extends At{_parse(e){if(this._getType(e)!==it.null){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.null,received:t.parsedType}),mt}return ft(e.data)}}en.create=e=>new en({typeName:Pn.ZodNull,...$t(e)});class tn extends At{constructor(){super(...arguments),this._any=!0}_parse(e){return ft(e.data)}}tn.create=e=>new tn({typeName:Pn.ZodAny,...$t(e)});class nn extends At{constructor(){super(...arguments),this._unknown=!0}_parse(e){return ft(e.data)}}nn.create=e=>new nn({typeName:Pn.ZodUnknown,...$t(e)});class an extends At{_parse(e){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.never,received:t.parsedType}),mt}}an.create=e=>new an({typeName:Pn.ZodNever,...$t(e)});class rn extends At{_parse(e){if(this._getType(e)!==it.undefined){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.void,received:t.parsedType}),mt}return ft(e.data)}}rn.create=e=>new rn({typeName:Pn.ZodVoid,...$t(e)});class on extends At{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),a=this._def;if(t.parsedType!==it.array)return ht(t,{code:ot.invalid_type,expected:it.array,received:t.parsedType}),mt;if(null!==a.exactLength){const e=t.data.length>a.exactLength.value,i=t.data.lengtha.maxLength.value&&(ht(t,{code:ot.too_big,maximum:a.maxLength.value,type:"array",inclusive:!0,exact:!1,message:a.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map(((e,n)=>a.type._parseAsync(new St(t,e,t.path,n))))).then((e=>pt.mergeArray(n,e)));const i=[...t.data].map(((e,n)=>a.type._parseSync(new St(t,e,t.path,n))));return pt.mergeArray(n,i)}get element(){return this._def.type}min(e,t){return new on({...this._def,minLength:{value:e,message:Ct.toString(t)}})}max(e,t){return new on({...this._def,maxLength:{value:e,message:Ct.toString(t)}})}length(e,t){return new on({...this._def,exactLength:{value:e,message:Ct.toString(t)}})}nonempty(e){return this.min(1,e)}}function sn(e){if(e instanceof cn){const t={};for(const n in e.shape){const a=e.shape[n];t[n]=Sn.create(sn(a))}return new cn({...e._def,shape:()=>t})}return e instanceof on?new on({...e._def,type:sn(e.element)}):e instanceof Sn?Sn.create(sn(e.unwrap())):e instanceof En?En.create(sn(e.unwrap())):e instanceof mn?mn.create(e.items.map((e=>sn(e)))):e}on.create=(e,t)=>new on({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Pn.ZodArray,...$t(t)});class cn extends At{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(null!==this._cached)return this._cached;const e=this._def.shape(),t=Ke.objectKeys(e);return this._cached={shape:e,keys:t}}_parse(e){if(this._getType(e)!==it.object){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.object,received:t.parsedType}),mt}const{status:t,ctx:n}=this._processInputParams(e),{shape:a,keys:i}=this._getCached(),r=[];if(!(this._def.catchall instanceof an&&"strip"===this._def.unknownKeys))for(const e in n.data)i.includes(e)||r.push(e);const o=[];for(const e of i){const t=a[e],i=n.data[e];o.push({key:{status:"valid",value:e},value:t._parse(new St(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof an){const e=this._def.unknownKeys;if("passthrough"===e)for(const e of r)o.push({key:{status:"valid",value:e},value:{status:"valid",value:n.data[e]}});else if("strict"===e)r.length>0&&(ht(n,{code:ot.unrecognized_keys,keys:r}),t.dirty());else if("strip"!==e)throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const e=this._def.catchall;for(const t of r){const a=n.data[t];o.push({key:{status:"valid",value:t},value:e._parse(new St(n,a,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then((async()=>{const e=[];for(const t of o){const n=await t.key,a=await t.value;e.push({key:n,value:a,alwaysSet:t.alwaysSet})}return e})).then((e=>pt.mergeObjectSync(t,e))):pt.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(e){return Ct.errToObj,new cn({...this._def,unknownKeys:"strict",...void 0!==e?{errorMap:(t,n)=>{var a,i,r,o;const s=null!==(r=null===(i=(a=this._def).errorMap)||void 0===i?void 0:i.call(a,t,n).message)&&void 0!==r?r:n.defaultError;return"unrecognized_keys"===t.code?{message:null!==(o=Ct.errToObj(e).message)&&void 0!==o?o:s}:{message:s}}}:{}})}strip(){return new cn({...this._def,unknownKeys:"strip"})}passthrough(){return new cn({...this._def,unknownKeys:"passthrough"})}extend(e){return new cn({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new cn({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Pn.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new cn({...this._def,catchall:e})}pick(e){const t={};return Ke.objectKeys(e).forEach((n=>{e[n]&&this.shape[n]&&(t[n]=this.shape[n])})),new cn({...this._def,shape:()=>t})}omit(e){const t={};return Ke.objectKeys(this.shape).forEach((n=>{e[n]||(t[n]=this.shape[n])})),new cn({...this._def,shape:()=>t})}deepPartial(){return sn(this)}partial(e){const t={};return Ke.objectKeys(this.shape).forEach((n=>{const a=this.shape[n];e&&!e[n]?t[n]=a:t[n]=a.optional()})),new cn({...this._def,shape:()=>t})}required(e){const t={};return Ke.objectKeys(this.shape).forEach((n=>{if(e&&!e[n])t[n]=this.shape[n];else{let e=this.shape[n];for(;e instanceof Sn;)e=e._def.innerType;t[n]=e}})),new cn({...this._def,shape:()=>t})}keyof(){return wn(Ke.objectKeys(this.shape))}}cn.create=(e,t)=>new cn({shape:()=>e,unknownKeys:"strip",catchall:an.create(),typeName:Pn.ZodObject,...$t(t)}),cn.strictCreate=(e,t)=>new cn({shape:()=>e,unknownKeys:"strict",catchall:an.create(),typeName:Pn.ZodObject,...$t(t)}),cn.lazycreate=(e,t)=>new cn({shape:e,unknownKeys:"strip",catchall:an.create(),typeName:Pn.ZodObject,...$t(t)});class ln extends At{_parse(e){const{ctx:t}=this._processInputParams(e),n=this._def.options;if(t.common.async)return Promise.all(n.map((async e=>{const n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}}))).then((function(e){for(const t of e)if("valid"===t.result.status)return t.result;for(const n of e)if("dirty"===n.result.status)return t.common.issues.push(...n.ctx.common.issues),n.result;const n=e.map((e=>new st(e.ctx.common.issues)));return ht(t,{code:ot.invalid_union,unionErrors:n}),mt}));{let e;const a=[];for(const i of n){const n={...t,common:{...t.common,issues:[]},parent:null},r=i._parseSync({data:t.data,path:t.path,parent:n});if("valid"===r.status)return r;"dirty"!==r.status||e||(e={result:r,ctx:n}),n.common.issues.length&&a.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;const i=a.map((e=>new st(e)));return ht(t,{code:ot.invalid_union,unionErrors:i}),mt}}get options(){return this._def.options}}ln.create=(e,t)=>new ln({options:e,typeName:Pn.ZodUnion,...$t(t)});const dn=e=>e instanceof yn?dn(e.schema):e instanceof kn?dn(e.innerType()):e instanceof bn?[e.value]:e instanceof xn?e.options:e instanceof Cn?Ke.objectValues(e.enum):e instanceof $n?dn(e._def.innerType):e instanceof Jt?[void 0]:e instanceof en?[null]:e instanceof Sn?[void 0,...dn(e.unwrap())]:e instanceof En?[null,...dn(e.unwrap())]:e instanceof Tn||e instanceof On?dn(e.unwrap()):e instanceof An?dn(e._def.innerType):[];class un extends At{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==it.object)return ht(t,{code:ot.invalid_type,expected:it.object,received:t.parsedType}),mt;const n=this.discriminator,a=t.data[n],i=this.optionsMap.get(a);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(ht(t,{code:ot.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),mt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,n){const a=new Map;for(const n of t){const t=dn(n.shape[e]);if(!t.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(const i of t){if(a.has(i))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(i)}`);a.set(i,n)}}return new un({typeName:Pn.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:a,...$t(n)})}}function hn(e,t){const n=rt(e),a=rt(t);if(e===t)return{valid:!0,data:e};if(n===it.object&&a===it.object){const n=Ke.objectKeys(t),a=Ke.objectKeys(e).filter((e=>-1!==n.indexOf(e))),i={...e,...t};for(const n of a){const a=hn(e[n],t[n]);if(!a.valid)return{valid:!1};i[n]=a.data}return{valid:!0,data:i}}if(n===it.array&&a===it.array){if(e.length!==t.length)return{valid:!1};const n=[];for(let a=0;a{if(_t(e)||_t(a))return mt;const i=hn(e.value,a.value);return i.valid?((vt(e)||vt(a))&&t.dirty(),{status:t.value,value:i.data}):(ht(n,{code:ot.invalid_intersection_types}),mt)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then((([e,t])=>a(e,t))):a(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}pn.create=(e,t,n)=>new pn({left:e,right:t,typeName:Pn.ZodIntersection,...$t(n)});class mn extends At{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==it.array)return ht(n,{code:ot.invalid_type,expected:it.array,received:n.parsedType}),mt;if(n.data.lengththis._def.items.length&&(ht(n,{code:ot.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const a=[...n.data].map(((e,t)=>{const a=this._def.items[t]||this._def.rest;return a?a._parse(new St(n,e,n.path,t)):null})).filter((e=>!!e));return n.common.async?Promise.all(a).then((e=>pt.mergeArray(t,e))):pt.mergeArray(t,a)}get items(){return this._def.items}rest(e){return new mn({...this._def,rest:e})}}mn.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new mn({items:e,typeName:Pn.ZodTuple,rest:null,...$t(t)})};class gn extends At{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==it.object)return ht(n,{code:ot.invalid_type,expected:it.object,received:n.parsedType}),mt;const a=[],i=this._def.keyType,r=this._def.valueType;for(const e in n.data)a.push({key:i._parse(new St(n,e,n.path,e)),value:r._parse(new St(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?pt.mergeObjectAsync(t,a):pt.mergeObjectSync(t,a)}get element(){return this._def.valueType}static create(e,t,n){return new gn(t instanceof At?{keyType:e,valueType:t,typeName:Pn.ZodRecord,...$t(n)}:{keyType:Wt.create(),valueType:e,typeName:Pn.ZodRecord,...$t(t)})}}class fn extends At{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==it.map)return ht(n,{code:ot.invalid_type,expected:it.map,received:n.parsedType}),mt;const a=this._def.keyType,i=this._def.valueType,r=[...n.data.entries()].map((([e,t],r)=>({key:a._parse(new St(n,e,n.path,[r,"key"])),value:i._parse(new St(n,t,n.path,[r,"value"]))})));if(n.common.async){const e=new Map;return Promise.resolve().then((async()=>{for(const n of r){const a=await n.key,i=await n.value;if("aborted"===a.status||"aborted"===i.status)return mt;"dirty"!==a.status&&"dirty"!==i.status||t.dirty(),e.set(a.value,i.value)}return{status:t.value,value:e}}))}{const e=new Map;for(const n of r){const a=n.key,i=n.value;if("aborted"===a.status||"aborted"===i.status)return mt;"dirty"!==a.status&&"dirty"!==i.status||t.dirty(),e.set(a.value,i.value)}return{status:t.value,value:e}}}}fn.create=(e,t,n)=>new fn({valueType:t,keyType:e,typeName:Pn.ZodMap,...$t(n)});class _n extends At{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==it.set)return ht(n,{code:ot.invalid_type,expected:it.set,received:n.parsedType}),mt;const a=this._def;null!==a.minSize&&n.data.sizea.maxSize.value&&(ht(n,{code:ot.too_big,maximum:a.maxSize.value,type:"set",inclusive:!0,exact:!1,message:a.maxSize.message}),t.dirty());const i=this._def.valueType;function r(e){const n=new Set;for(const a of e){if("aborted"===a.status)return mt;"dirty"===a.status&&t.dirty(),n.add(a.value)}return{status:t.value,value:n}}const o=[...n.data.values()].map(((e,t)=>i._parse(new St(n,e,n.path,t))));return n.common.async?Promise.all(o).then((e=>r(e))):r(o)}min(e,t){return new _n({...this._def,minSize:{value:e,message:Ct.toString(t)}})}max(e,t){return new _n({...this._def,maxSize:{value:e,message:Ct.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}_n.create=(e,t)=>new _n({valueType:e,minSize:null,maxSize:null,typeName:Pn.ZodSet,...$t(t)});class vn extends At{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==it.function)return ht(t,{code:ot.invalid_type,expected:it.function,received:t.parsedType}),mt;function n(e,n){return ut({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,dt(),ct].filter((e=>!!e)),issueData:{code:ot.invalid_arguments,argumentsError:n}})}function a(e,n){return ut({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,dt(),ct].filter((e=>!!e)),issueData:{code:ot.invalid_return_type,returnTypeError:n}})}const i={errorMap:t.common.contextualErrorMap},r=t.data;if(this._def.returns instanceof Mn){const e=this;return ft((async function(...t){const o=new st([]),s=await e._def.args.parseAsync(t,i).catch((e=>{throw o.addIssue(n(t,e)),o})),c=await Reflect.apply(r,this,s),l=await e._def.returns._def.type.parseAsync(c,i).catch((e=>{throw o.addIssue(a(c,e)),o}));return l}))}{const e=this;return ft((function(...t){const o=e._def.args.safeParse(t,i);if(!o.success)throw new st([n(t,o.error)]);const s=Reflect.apply(r,this,o.data),c=e._def.returns.safeParse(s,i);if(!c.success)throw new st([a(s,c.error)]);return c.data}))}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new vn({...this._def,args:mn.create(e).rest(nn.create())})}returns(e){return new vn({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,n){return new vn({args:e||mn.create([]).rest(nn.create()),returns:t||nn.create(),typeName:Pn.ZodFunction,...$t(n)})}}class yn extends At{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}yn.create=(e,t)=>new yn({getter:e,typeName:Pn.ZodLazy,...$t(t)});class bn extends At{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return ht(t,{received:t.data,code:ot.invalid_literal,expected:this._def.value}),mt}return{status:"valid",value:e.data}}get value(){return this._def.value}}function wn(e,t){return new xn({values:e,typeName:Pn.ZodEnum,...$t(t)})}bn.create=(e,t)=>new bn({value:e,typeName:Pn.ZodLiteral,...$t(t)});class xn extends At{constructor(){super(...arguments),Mt.set(this,void 0)}_parse(e){if("string"!=typeof e.data){const t=this._getOrReturnCtx(e),n=this._def.values;return ht(t,{expected:Ke.joinValues(n),received:t.parsedType,code:ot.invalid_type}),mt}if(wt(this,Mt,"f")||xt(this,Mt,new Set(this._def.values),"f"),!wt(this,Mt,"f").has(e.data)){const t=this._getOrReturnCtx(e),n=this._def.values;return ht(t,{received:t.data,code:ot.invalid_enum_value,options:n}),mt}return ft(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return xn.create(e,{...this._def,...t})}exclude(e,t=this._def){return xn.create(this.options.filter((t=>!e.includes(t))),{...this._def,...t})}}Mt=new WeakMap,xn.create=wn;class Cn extends At{constructor(){super(...arguments),kt.set(this,void 0)}_parse(e){const t=Ke.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==it.string&&n.parsedType!==it.number){const e=Ke.objectValues(t);return ht(n,{expected:Ke.joinValues(e),received:n.parsedType,code:ot.invalid_type}),mt}if(wt(this,kt,"f")||xt(this,kt,new Set(Ke.getValidEnumValues(this._def.values)),"f"),!wt(this,kt,"f").has(e.data)){const e=Ke.objectValues(t);return ht(n,{received:n.data,code:ot.invalid_enum_value,options:e}),mt}return ft(e.data)}get enum(){return this._def.values}}kt=new WeakMap,Cn.create=(e,t)=>new Cn({values:e,typeName:Pn.ZodNativeEnum,...$t(t)});class Mn extends At{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==it.promise&&!1===t.common.async)return ht(t,{code:ot.invalid_type,expected:it.promise,received:t.parsedType}),mt;const n=t.parsedType===it.promise?t.data:Promise.resolve(t.data);return ft(n.then((e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap}))))}}Mn.create=(e,t)=>new Mn({type:e,typeName:Pn.ZodPromise,...$t(t)});class kn extends At{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Pn.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:n}=this._processInputParams(e),a=this._def.effect||null,i={addIssue:e=>{ht(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),"preprocess"===a.type){const e=a.transform(n.data,i);if(n.common.async)return Promise.resolve(e).then((async e=>{if("aborted"===t.value)return mt;const a=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return"aborted"===a.status?mt:"dirty"===a.status||"dirty"===t.value?gt(a.value):a}));{if("aborted"===t.value)return mt;const a=this._def.schema._parseSync({data:e,path:n.path,parent:n});return"aborted"===a.status?mt:"dirty"===a.status||"dirty"===t.value?gt(a.value):a}}if("refinement"===a.type){const e=e=>{const t=a.refinement(e,i);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return e};if(!1===n.common.async){const a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return"aborted"===a.status?mt:("dirty"===a.status&&t.dirty(),e(a.value),{status:t.value,value:a.value})}return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then((n=>"aborted"===n.status?mt:("dirty"===n.status&&t.dirty(),e(n.value).then((()=>({status:t.value,value:n.value}))))))}if("transform"===a.type){if(!1===n.common.async){const e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!yt(e))return e;const r=a.transform(e.value,i);if(r instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:r}}return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then((e=>yt(e)?Promise.resolve(a.transform(e.value,i)).then((e=>({status:t.value,value:e}))):e))}Ke.assertNever(a)}}kn.create=(e,t,n)=>new kn({schema:e,typeName:Pn.ZodEffects,effect:t,...$t(n)}),kn.createWithPreprocess=(e,t,n)=>new kn({schema:t,effect:{type:"preprocess",transform:e},typeName:Pn.ZodEffects,...$t(n)});class Sn extends At{_parse(e){return this._getType(e)===it.undefined?ft(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Sn.create=(e,t)=>new Sn({innerType:e,typeName:Pn.ZodOptional,...$t(t)});class En extends At{_parse(e){return this._getType(e)===it.null?ft(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}En.create=(e,t)=>new En({innerType:e,typeName:Pn.ZodNullable,...$t(t)});class $n extends At{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===it.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}$n.create=(e,t)=>new $n({innerType:e,typeName:Pn.ZodDefault,defaultValue:"function"==typeof t.default?t.default:()=>t.default,...$t(t)});class An extends At{_parse(e){const{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},a=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return bt(a)?a.then((e=>({status:"valid",value:"valid"===e.status?e.value:this._def.catchValue({get error(){return new st(n.common.issues)},input:n.data})}))):{status:"valid",value:"valid"===a.status?a.value:this._def.catchValue({get error(){return new st(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}An.create=(e,t)=>new An({innerType:e,typeName:Pn.ZodCatch,catchValue:"function"==typeof t.catch?t.catch:()=>t.catch,...$t(t)});class zn extends At{_parse(e){if(this._getType(e)!==it.nan){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.nan,received:t.parsedType}),mt}return{status:"valid",value:e.data}}}zn.create=e=>new zn({typeName:Pn.ZodNaN,...$t(e)});const In=Symbol("zod_brand");class Tn extends At{_parse(e){const{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}class jn extends At{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async){return(async()=>{const e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return"aborted"===e.status?mt:"dirty"===e.status?(t.dirty(),gt(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})()}{const e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return"aborted"===e.status?mt:"dirty"===e.status?(t.dirty(),{status:"dirty",value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(e,t){return new jn({in:e,out:t,typeName:Pn.ZodPipeline})}}class On extends At{_parse(e){const t=this._def.innerType._parse(e),n=e=>(yt(e)&&(e.value=Object.freeze(e.value)),e);return bt(t)?t.then((e=>n(e))):n(t)}unwrap(){return this._def.innerType}}function Dn(e,t={},n){return e?tn.create().superRefine(((a,i)=>{var r,o;if(!e(a)){const e="function"==typeof t?t(a):"string"==typeof t?{message:t}:t,s=null===(o=null!==(r=e.fatal)&&void 0!==r?r:n)||void 0===o||o,c="string"==typeof e?{message:e}:e;i.addIssue({code:"custom",...c,fatal:s})}})):tn.create()}On.create=(e,t)=>new On({innerType:e,typeName:Pn.ZodReadonly,...$t(t)});const Rn={object:cn.lazycreate};var Pn;!function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"}(Pn||(Pn={}));const Ln=Wt.create,Nn=Qt.create,Fn=zn.create,Vn=Gt.create,Hn=Yt.create,Bn=Kt.create,qn=Xt.create,Un=Jt.create,Wn=en.create,Zn=tn.create,Qn=nn.create,Gn=an.create,Yn=rn.create,Kn=on.create,Xn=cn.create,Jn=cn.strictCreate,ea=ln.create,ta=un.create,na=pn.create,aa=mn.create,ia=gn.create,ra=fn.create,oa=_n.create,sa=vn.create,ca=yn.create,la=bn.create,da=xn.create,ua=Cn.create,ha=Mn.create,pa=kn.create,ma=Sn.create,ga=En.create,fa=kn.createWithPreprocess,_a=jn.create,va={string:e=>Wt.create({...e,coerce:!0}),number:e=>Qt.create({...e,coerce:!0}),boolean:e=>Yt.create({...e,coerce:!0}),bigint:e=>Gt.create({...e,coerce:!0}),date:e=>Kt.create({...e,coerce:!0})},ya=mt;var ba=Object.freeze({__proto__:null,defaultErrorMap:ct,setErrorMap:function(e){lt=e},getErrorMap:dt,makeIssue:ut,EMPTY_PATH:[],addIssueToContext:ht,ParseStatus:pt,INVALID:mt,DIRTY:gt,OK:ft,isAborted:_t,isDirty:vt,isValid:yt,isAsync:bt,get util(){return Ke},get objectUtil(){return Xe},ZodParsedType:it,getParsedType:rt,ZodType:At,datetimeRegex:qt,ZodString:Wt,ZodNumber:Qt,ZodBigInt:Gt,ZodBoolean:Yt,ZodDate:Kt,ZodSymbol:Xt,ZodUndefined:Jt,ZodNull:en,ZodAny:tn,ZodUnknown:nn,ZodNever:an,ZodVoid:rn,ZodArray:on,ZodObject:cn,ZodUnion:ln,ZodDiscriminatedUnion:un,ZodIntersection:pn,ZodTuple:mn,ZodRecord:gn,ZodMap:fn,ZodSet:_n,ZodFunction:vn,ZodLazy:yn,ZodLiteral:bn,ZodEnum:xn,ZodNativeEnum:Cn,ZodPromise:Mn,ZodEffects:kn,ZodTransformer:kn,ZodOptional:Sn,ZodNullable:En,ZodDefault:$n,ZodCatch:An,ZodNaN:zn,BRAND:In,ZodBranded:Tn,ZodPipeline:jn,ZodReadonly:On,custom:Dn,Schema:At,ZodSchema:At,late:Rn,get ZodFirstPartyTypeKind(){return Pn},coerce:va,any:Zn,array:Kn,bigint:Vn,boolean:Hn,date:Bn,discriminatedUnion:ta,effect:pa,enum:da,function:sa,instanceof:(e,t={message:`Input not instance of ${e.name}`})=>Dn((t=>t instanceof e),t),intersection:na,lazy:ca,literal:la,map:ra,nan:Fn,nativeEnum:ua,never:Gn,null:Wn,nullable:ga,number:Nn,object:Xn,oboolean:()=>Hn().optional(),onumber:()=>Nn().optional(),optional:ma,ostring:()=>Ln().optional(),pipeline:_a,preprocess:fa,promise:ha,record:ia,set:oa,strictObject:Jn,string:Ln,symbol:qn,transformer:pa,tuple:aa,undefined:Un,union:ea,unknown:Qn,void:Yn,NEVER:ya,ZodIssueCode:ot,quotelessJson:e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),ZodError:st});const wa="https://github.com/dermotduffy/frigate-hass-card",xa=`${wa}#troubleshooting`,Ca="cameras",Ma=`${Ca}.#.camera_entity`,ka=`${Ca}.#.frigate.camera_name`,Sa=`${Ca}.#.capabilities.disable`,Ea=`${Ca}.#.capabilities.disable_except`,$a=`${Ca}.#.cast.method`,Aa=`${Ca}.#.cast.dashboard.dashboard_path`,za=`${Ca}.#.cast.dashboard.view_path`,Ia=`${Ca}.#.dimensions.aspect_ratio`,Ta=`${Ca}.#.frigate.client_id`,ja=`${Ca}.#.frigate.labels`,Oa=`${Ca}.#.frigate.url`,Da=`${Ca}.#.frigate.zones`,Ra=`${Ca}.#.go2rtc.modes`,Pa=`${Ca}.#.go2rtc.stream`,La=`${Ca}.#.icon`,Na=`${Ca}.#.id`,Fa=`${Ca}.#.image.entity`,Va=`${Ca}.#.image.entity_parameters`,Ha=`${Ca}.#.image.mode`,Ba=`${Ca}.#.image.refresh_seconds`,qa=`${Ca}.#.image.url`,Ua=`${Ca}.#.motioneye.images.directory_pattern`,Wa=`${Ca}.#.motioneye.images.file_pattern`,Za=`${Ca}.#.motioneye.movies.directory_pattern`,Qa=`${Ca}.#.motioneye.movies.file_pattern`,Ga=`${Ca}.#.motioneye.url`,Ya=`${Ca}.#.title`,Ka=`${Ca}.#.webrtc_card.entity`,Xa=`${Ca}.#.webrtc_card.url`,Ja=`${Ca}.#.live_provider`,ei=`${Ca}.#.dependencies.cameras`,ti=`${Ca}.#.dependencies.all_cameras`,ni=`${Ca}.#.dimensions.layout.fit`,ai=`${Ca}.#.dimensions.layout.pan.x`,ii=`${Ca}.#.dimensions.layout.pan.y`,ri=`${Ca}.#.dimensions.layout.position.x`,oi=`${Ca}.#.dimensions.layout.position.y`,si=`${Ca}.#.dimensions.layout.view_box.top`,ci=`${Ca}.#.dimensions.layout.view_box.bottom`,li=`${Ca}.#.dimensions.layout.view_box.left`,di=`${Ca}.#.dimensions.layout.view_box.right`,ui=`${Ca}.#.dimensions.layout.zoom`,hi=`${Ca}.#.proxy.dynamic`,pi=`${Ca}.#.proxy.media`,mi=`${Ca}.#.proxy.ssl_ciphers`,gi=`${Ca}.#.proxy.ssl_verification`,fi=`${Ca}.#.reolink.media_resolution`,_i=`${Ca}.#.reolink.url`,vi=`${Ca}.#.triggers.motion`,yi=`${Ca}.#.triggers.occupancy`,bi=`${Ca}.#.triggers.entities`,wi=`${Ca}.#.triggers.events`,xi="cameras_global",Ci=`${xi}.image`,Mi=`${xi}.live_provider`,ki=`${xi}.jsmpeg`,Si=`${xi}.webrtc_card`,Ei=`${xi}.triggers.occupancy`,$i=`${xi}.image.refresh_seconds`,Ai=`${xi}.dimensions.layout`,zi=`${xi}.ptz`,Ii="elements",Ti="view",ji=`${Ti}.camera_select`,Oi=`${Ti}.dark_mode`,Di=`${Ti}.default`,Ri=`${Ti}.interaction_seconds`,Pi=`${Ti}.keyboard_shortcuts`,Li=`${Ti}.keyboard_shortcuts.enabled`,Ni=`${Pi}.ptz_left`,Fi=`${Pi}.ptz_right`,Vi=`${Pi}.ptz_up`,Hi=`${Pi}.ptz_down`,Bi=`${Pi}.ptz_zoom_in`,qi=`${Pi}.ptz_zoom_out`,Ui=`${Pi}.ptz_home`,Wi=`${Ti}.default_cycle_camera`,Zi=`${Ti}.default_reset`,Qi=`${Zi}.interaction_mode`,Gi=`${Zi}.every_seconds`,Yi=`${Zi}.entities`,Ki=`${Zi}.after_interaction`,Xi=`${Ti}.triggers`,Ji=`${Xi}.show_trigger_status`,er=`${Xi}.filter_selected_camera`,tr=`${Xi}.untrigger_seconds`,nr=`${Xi}.actions`,ar=`${nr}.trigger`,ir=`${nr}.untrigger`,rr=`${nr}.interaction_mode`,or="media_gallery",sr=`${or}.controls.filter.mode`,cr=`${or}.controls.thumbnails.show_details`,lr=`${or}.controls.thumbnails.show_download_control`,dr=`${or}.controls.thumbnails.show_favorite_control`,ur=`${or}.controls.thumbnails.show_timeline_control`,hr=`${or}.controls.thumbnails.size`,pr="media_viewer",mr=`${pr}.auto_play`,gr=`${pr}.auto_pause`,fr=`${pr}.auto_mute`,_r=`${pr}.auto_unmute`,vr=`${pr}.display.mode`,yr=`${pr}.display.grid_columns`,br=`${pr}.display.grid_max_columns`,wr=`${pr}.display.grid_selected_width_factor`,xr=`${pr}.draggable`,Cr=`${pr}.lazy_load`,Mr=`${pr}.snapshot_click_plays_clip`,kr=`${pr}.transition_effect`,Sr=`${pr}.controls.builtin`,Er=`${pr}.controls.next_previous.style`,$r=`${pr}.controls.next_previous.size`,Ar=`${pr}.controls.thumbnails.mode`,zr=`${pr}.controls.thumbnails.show_details`,Ir=`${pr}.controls.thumbnails.show_download_control`,Tr=`${pr}.controls.thumbnails.show_favorite_control`,jr=`${pr}.controls.thumbnails.show_timeline_control`,Or=`${pr}.controls.thumbnails.size`,Dr=`${pr}.controls.timeline.clustering_threshold`,Rr=`${pr}.controls.timeline.events_media_type`,Pr=`${pr}.controls.timeline.mode`,Lr=`${pr}.controls.timeline.pan_mode`,Nr=`${pr}.controls.timeline.show_recordings`,Fr=`${pr}.controls.timeline.style`,Vr=`${pr}.controls.timeline.window_seconds`,Hr=`${pr}.zoomable`,Br="live",qr=`${Br}.auto_play`,Ur=`${Br}.auto_pause`,Wr=`${Br}.auto_mute`,Zr=`${Br}.auto_unmute`,Qr=`${Br}.controls.builtin`,Gr=`${Br}.controls.next_previous.style`,Yr=`${Br}.controls.next_previous.size`,Kr=`${Br}.controls.ptz.hide_home`,Xr=`${Br}.controls.ptz.hide_pan_tilt`,Jr=`${Br}.controls.ptz.hide_zoom`,eo=`${Br}.controls.ptz.mode`,to=`${Br}.controls.ptz.orientation`,no=`${Br}.controls.ptz.position`,ao=`${Br}.controls.thumbnails.media_type`,io=`${Br}.controls.thumbnails.events_media_type`,ro=`${Br}.controls.thumbnails.mode`,oo=`${Br}.controls.thumbnails.size`,so=`${Br}.controls.thumbnails.show_details`,co=`${Br}.controls.thumbnails.show_download_control`,lo=`${Br}.controls.thumbnails.show_favorite_control`,uo=`${Br}.controls.thumbnails.show_timeline_control`,ho=`${Br}.controls.timeline.clustering_threshold`,po=`${Br}.controls.timeline.events_media_type`,mo=`${Br}.controls.timeline.mode`,go=`${Br}.controls.timeline.pan_mode`,fo=`${Br}.controls.timeline.show_recordings`,_o=`${Br}.controls.timeline.style`,vo=`${Br}.controls.timeline.window_seconds`,yo=`${Br}.display.mode`,bo=`${Br}.display.grid_columns`,wo=`${Br}.display.grid_max_columns`,xo=`${Br}.display.grid_selected_width_factor`,Co=`${Br}.draggable`,Mo=`${Br}.lazy_load`,ko=`${Br}.lazy_unload`,So=`${Br}.preload`,Eo=`${Br}.transition_effect`,$o=`${Br}.show_image_during_load`,Ao=`${Br}.microphone.disconnect_seconds`,zo=`${Br}.microphone.mute_after_microphone_mute_seconds`,Io=`${Br}.microphone.always_connected`,To=`${Br}.zoomable`,jo="image",Oo=`${jo}.entity`,Do=`${jo}.entity_parameters`,Ro=`${jo}.mode`,Po=`${jo}.refresh_seconds`,Lo=`${jo}.url`,No="timeline",Fo=`${No}.window_seconds`,Vo=`${No}.clustering_threshold`,Ho=`${No}.events_media_type`,Bo=`${No}.show_recordings`,qo=`${No}.style`,Uo=`${No}.controls.thumbnails.mode`,Wo=`${No}.controls.thumbnails.size`,Zo=`${No}.controls.thumbnails.show_details`,Qo=`${No}.controls.thumbnails.show_download_control`,Go=`${No}.controls.thumbnails.show_favorite_control`,Yo=`${No}.controls.thumbnails.show_timeline_control`,Ko="menu",Xo=`${Ko}.alignment`,Jo=`${Ko}.position`,es=`${Ko}.style`,ts=`${Ko}.button_size`,ns=`${Ko}.buttons`,as=`${ns}.frigate`,is=`${ns}.camera_ui`,rs=`${ns}.fullscreen`,os=`${ns}.play`,ss=`${ns}.mute`,cs=`${ns}.media_player`,ls=`${ns}.timeline`,ds="status_bar",us=`${ds}.position`,hs=`${ds}.style`,ps=`${ds}.popup_seconds`,ms=`${ds}.height`,gs=`${ds}.items`,fs="dimensions",_s=`${fs}.aspect_ratio`,vs=`${fs}.aspect_ratio_mode`,ys=`${fs}.height`,bs="overrides",ws="performance",xs=`${ws}.features.animated_progress_indicator`,Cs=`${ws}.features.media_chunk_size`,Ms=`${ws}.features.max_simultaneous_engine_requests`,ks=`${ws}.profile`,Ss=`${ws}.style.box_shadow`,Es=`${ws}.style.border_radius`,$s="profiles",As=1e3;class zs extends Error{constructor(e,t){super(e),this.context=t}}const Is={info:10,error:20,connection:30,diagnostics:40},Ts=["clips","favorite-events","favorite-recordings","live","menu","ptz","recordings","seek","snapshots","substream"],js=ba.object({url:ba.string(),mime_type:ba.string()}),Os=ba.object({path:ba.string()});function Ds(e){if(e instanceof ba.ZodDefault)return Ds(e.removeDefault());if(e instanceof ba.ZodObject){const t={};for(const n in e.shape){const a=e.shape[n];t[n]=ba.ZodOptional.create(Ds(a))}return new ba.ZodObject({...e._def,shape:()=>t})}return e instanceof ba.ZodArray?ba.ZodArray.create(Ds(e.element)).min(e._def.minLength?.value,e._def.minLength?.message).max(e._def.maxLength?.value,e._def.maxLength?.message).length(e._def.exactLength?.value,e._def.exactLength?.message):e instanceof ba.ZodOptional?ba.ZodOptional.create(Ds(e.unwrap())):e instanceof ba.ZodNullable?ba.ZodNullable.create(Ds(e.unwrap())):e instanceof ba.ZodTuple?ba.ZodTuple.create(e.items.map((e=>Ds(e)))):e}function Rs(e){const t=e.format();return Object.keys(t).filter((e=>!e.startsWith("_")))}const Ps=e=>{const t=new Set;if(e.issues.length)for(const n of e.issues)if("invalid_union"===n.code){const e=n.unionErrors;for(const n of e)Ps(n).forEach(t.add,t)}else t.add(Ls(n.path));return t},Ls=e=>{let t="";for(let n=0;n"fire-dom-event")).or(ba.literal("fire-dom-event")),card_id:ba.string().regex(tc,"card_id parameter can only contain [a-z][A-Z][0-9_]-").optional()}),_c=fc.extend({frigate_card_action:ba.enum(Zs)}),vc=fc.extend({frigate_card_action:ba.enum(["camera_ui","default","download","expand","fullscreen","live_substream_off","live_substream_on","menu_toggle","microphone_connect","microphone_disconnect","microphone_mute","microphone_unmute","mute","pause","play","screenshot","unmute"])}),yc=fc.extend({frigate_card_action:ba.literal("camera_select"),camera:ba.string().optional(),triggered:ba.boolean().optional()}),bc=fc.extend({frigate_card_action:ba.literal("live_substream_select"),camera:ba.string()}),wc=fc.extend({frigate_card_action:ba.literal("media_player"),media_player:ba.string(),media_player_action:ba.enum(["play","stop"])}),xc=fc.extend({frigate_card_action:ba.literal("display_mode_select"),display_mode:ic}),Cc=fc.extend({frigate_card_action:ba.literal("ptz"),camera:ba.string().optional(),ptz_action:ba.enum(Hs).optional(),ptz_phase:ba.enum(Js).optional(),ptz_preset:ba.string().optional()}),Mc=fc.extend({frigate_card_action:ba.literal("ptz_digital"),target_id:ba.string().optional(),absolute:ba.object({zoom:ac.optional(),pan:nc.optional()}).optional(),ptz_action:ba.enum(Hs).optional(),ptz_phase:ba.enum(Js).optional()}),kc=fc.extend({frigate_card_action:ba.literal("ptz_multi"),target_id:ba.string().optional(),ptz_action:ba.enum(Hs).optional(),ptz_phase:ba.enum(Js).optional(),ptz_preset:ba.string().optional()}),Sc=fc.extend({frigate_card_action:ba.literal("ptz_controls"),enabled:ba.boolean()}),Ec=ba.object({ms:ba.number().optional(),s:ba.number().optional(),m:ba.number().optional(),h:ba.number().optional()}),$c=fc.extend({frigate_card_action:ba.literal("sleep"),duration:Ec.optional().default({s:1})}),Ac=fc.extend({frigate_card_action:ba.literal("status_bar"),status_bar_action:ba.enum(["add","remove","reset"]),items:ba.lazy((()=>ol)).array().optional()}),zc=fc.extend({frigate_card_action:ba.literal("log"),message:ba.string(),level:ba.enum(["debug","info","warn","error"]).default("info")}),Ic=ba.union([yc,vc,bc,zc,wc,Cc,Mc,kc,Sc,_c,xc,$c,Ac]),Tc=ba.union([sc,dc,lc,uc,hc,pc,gc,mc,Ic]),jc=ba.object({tap_action:Tc.or(Tc.array()).optional(),hold_action:Tc.or(Tc.array()).optional(),double_tap_action:Tc.or(Tc.array()).optional(),start_tap_action:Tc.or(Tc.array()).optional(),end_tap_action:Tc.or(Tc.array()).optional()}).passthrough(),Oc=ba.object({actions:jc.optional()}),Dc=jc.extend({style:ba.record(ba.string().nullable().or(ba.undefined()).or(ba.number())).optional(),title:ba.string().nullable().optional()}),Rc=Dc.extend({type:ba.literal("state-badge"),entity:ba.string()}),Pc=Dc.extend({type:ba.literal("state-icon"),entity:ba.string(),icon:ba.string().optional(),state_color:ba.boolean().default(!0)}),Lc=Dc.extend({type:ba.literal("state-label"),entity:ba.string(),attribute:ba.string().optional(),prefix:ba.string().optional(),suffix:ba.string().optional()}),Nc=Dc.extend({type:ba.literal("service-button"),title:ba.string(),service:ba.string(),service_data:ba.object({}).passthrough().optional()}),Fc=Dc.extend({type:ba.literal("icon"),icon:ba.string(),entity:ba.string().optional()}),Vc=Dc.extend({type:ba.literal("image"),entity:ba.string().optional(),image:ba.string().optional(),camera_image:ba.string().optional(),camera_view:ba.string().optional(),state_image:ba.object({}).passthrough().optional(),filter:ba.string().optional(),state_filter:ba.object({}).passthrough().optional(),aspect_ratio:ba.string().optional()}),Hc=ba.object({condition:ba.literal("state").optional(),entity:ba.string(),state:ba.string().or(ba.string().array()).optional(),state_not:ba.string().or(ba.string().array()).optional()}),Bc=ba.object({condition:ba.literal("numeric_state"),entity:ba.string(),above:ba.number().optional(),below:ba.number().optional()}),qc=ba.object({condition:ba.literal("screen"),media_query:ba.string()}),Uc=ba.object({condition:ba.literal("user"),users:ba.string().array().min(1)}),Wc=ba.discriminatedUnion("condition",[Hc,Bc,qc,Uc]),Zc=ba.object({type:ba.literal("conditional"),conditions:Wc.array(),elements:ba.lazy((()=>yl))}),Qc=ba.object({type:ba.string().superRefine(((e,t)=>{e.match(/^custom:(?!frigate-card).+/)||t.addIssue({code:ba.ZodIssueCode.custom,message:"Frigate-card custom elements must match specific schemas",fatal:!0})}))}).passthrough(),Gc=ba.object({enabled:ba.boolean().default(!0).optional(),priority:ba.number().min(0).max(Us).default(50).optional(),alignment:ba.enum(["matching","opposing"]).default("matching").optional(),icon:ba.string().optional(),permanent:ba.boolean().default(!1).optional()}),Yc=Gc.merge(Fc).extend({type:ba.literal("custom:frigate-card-menu-icon")}),Kc=Gc.merge(Pc).extend({type:ba.literal("custom:frigate-card-menu-state-icon")}).merge(Gc),Xc=Dc.extend({entity:ba.string().optional(),icon:ba.string().optional(),state_color:ba.boolean().default(!0),selected:ba.boolean().default(!1),subtitle:ba.string().optional(),enabled:ba.boolean().default(!0)}),Jc=Gc.merge(Fc).extend({type:ba.literal("custom:frigate-card-menu-submenu"),items:Xc.array()}),el=Gc.merge(Pc).extend({type:ba.literal("custom:frigate-card-menu-submenu-select"),options:ba.record(Xc.deepPartial()).optional()}),tl=ba.object({enabled:ba.boolean().default(!0).optional(),priority:ba.number().min(0).max(100).default(50).optional()}),nl=tl.extend({sufficient:ba.boolean().default(!1).optional(),exclusive:ba.boolean().default(!1).optional(),expand:ba.boolean().default(!1).optional(),actions:jc.optional()}),al=nl.extend({type:ba.literal("custom:frigate-card-status-bar-icon"),icon:ba.string()}),il=nl.extend({type:ba.literal("custom:frigate-card-status-bar-image"),image:ba.string()}),rl=nl.extend({type:ba.literal("custom:frigate-card-status-bar-string"),string:ba.string()}),ol=ba.union([al,il,rl]),sl=ba.object({condition:ba.literal("view"),views:ba.string().array()}),cl=ba.object({condition:ba.literal("fullscreen"),fullscreen:ba.boolean()}),ll=ba.object({condition:ba.literal("expand"),expand:ba.boolean()}),dl=ba.object({condition:ba.literal("camera"),cameras:ba.string().array()}),ul=ba.object({condition:ba.literal("media_loaded"),media_loaded:ba.boolean()}),hl=ba.object({condition:ba.literal("display_mode"),display_mode:ic}),pl=ba.object({condition:ba.literal("triggered"),triggered:ba.string().array()}),ml=ba.object({condition:ba.literal("interaction"),interaction:ba.boolean()}),gl=ba.object({condition:ba.literal("microphone"),connected:ba.boolean().optional(),muted:ba.boolean().optional()}),fl=ba.object({condition:ba.literal("key"),key:ba.string(),state:ba.enum(["down","up"]).optional(),ctrl:ba.boolean().optional(),shift:ba.boolean().optional(),alt:ba.boolean().optional(),meta:ba.boolean().optional()}),_l=ba.discriminatedUnion("condition",[Hc,Bc,qc,Uc,sl,cl,ll,dl,ul,hl,pl,ml,gl,fl]),vl=ba.object({type:ba.literal("custom:frigate-card-conditional"),conditions:_l.array(),elements:ba.lazy((()=>yl))}),yl=ba.union([Zc,Qc,vl,Fc,Vc,Yc,Kc,Jc,el,Nc,Rc,Pc,Lc,al,il,rl]).array().optional(),bl=ba.object({fit:ba.enum(["contain","cover","fill"]).optional(),position:ba.object({x:ba.number().min(0).max(100).optional(),y:ba.number().min(0).max(100).optional()}).optional(),view_box:ba.object({bottom:ba.number().min(0).max(100).optional().default(0),left:ba.number().min(0).max(100).optional().default(0),right:ba.number().min(0).max(100).optional().default(0),top:ba.number().min(0).max(100).optional().default(0)}).optional(),pan:nc.optional(),zoom:ac.optional()}),wl=ba.number().array().length(2).or(ba.string().regex(/^\s*\d+\.?\d*\s*[:/]\s*\d+\.?\d*\s*$/).transform((e=>e.split(/[:\/]/).map((e=>Number(e)))))),xl={r2c_delay_between_calls_seconds:.5,c2r_delay_between_calls_seconds:.2},Cl=function(e){return t=>{if(!t||"object"!=typeof t||!t.service)return t;const n={...t};return Object.keys(t).forEach((a=>{const i=a.match(/^data_(.+)$/),r=i?.[1];r&&!(`${e}${r}`in t)&&(n[`${e}${r}`]={action:"perform-action",perform_action:t.service,data:t[a]},delete n[a],delete n.service)})),n}},Ml=ba.preprocess(Cl("actions_"),ba.object({actions_left:lc.optional(),actions_left_start:lc.optional(),actions_left_stop:lc.optional(),actions_right:lc.optional(),actions_right_start:lc.optional(),actions_right_stop:lc.optional(),actions_up:lc.optional(),actions_up_start:lc.optional(),actions_up_stop:lc.optional(),actions_down:lc.optional(),actions_down_start:lc.optional(),actions_down_stop:lc.optional(),actions_zoom_in:lc.optional(),actions_zoom_in_start:lc.optional(),actions_zoom_in_stop:lc.optional(),actions_zoom_out:lc.optional(),actions_zoom_out_start:lc.optional(),actions_zoom_out_stop:lc.optional(),r2c_delay_between_calls_seconds:ba.number().default(xl.r2c_delay_between_calls_seconds),c2r_delay_between_calls_seconds:ba.number().default(xl.c2r_delay_between_calls_seconds),presets:ba.preprocess(Cl(""),ba.union([ba.record(lc),ba.object({service:ba.string().optional()})])).optional(),service:ba.string().optional()}).passthrough()),kl={orientation:"horizontal",mode:"auto",hide_pan_tilt:!1,hide_zoom:!1,hide_home:!1,position:"bottom-right"},Sl=ba.object({mode:ba.enum(["off","auto","on"]).default(kl.mode),position:ba.enum(["top-left","top-right","bottom-left","bottom-right"]).default(kl.position),orientation:ba.enum(["vertical","horizontal"]).default(kl.orientation),hide_pan_tilt:ba.boolean().default(kl.hide_pan_tilt),hide_zoom:ba.boolean().default(kl.hide_zoom),hide_home:ba.boolean().default(kl.hide_home),style:ba.object({}).passthrough().optional()}),El={mode:"auto",refresh_seconds:1},$l=ba.object({mode:ba.enum(["auto","camera","entity","screensaver","url"]).default(El.mode),refresh_seconds:ba.number().min(0).default(El.refresh_seconds),url:ba.string().optional(),entity:ba.string().optional(),entity_parameters:ba.string().optional()}),Al=$l.merge(Oc).default(El),zl=75,Il=300,Tl={size:100,show_details:!0,show_favorite_control:!0,show_timeline_control:!0,show_download_control:!0},jl=ba.object({size:ba.number().min(75).max(300).default(Tl.size),show_details:ba.boolean().default(Tl.show_details),show_favorite_control:ba.boolean().default(Tl.show_favorite_control),show_timeline_control:ba.boolean().default(Tl.show_timeline_control),show_download_control:ba.boolean().default(Tl.show_download_control)}),Ol={...Tl,mode:"right"},Dl=jl.extend({mode:ba.enum(["none","above","below","left","right"]).default(Ol.mode)}),Rl=ba.enum(["all","clips","snapshots"]),Pl={clustering_threshold:3,events_media_type:"all",window_seconds:3600,show_recordings:!0,style:"stack",pan_mode:"pan"},Ll=ba.enum(["pan","seek","seek-in-media","seek-in-camera"]),Nl=ba.object({clustering_threshold:ba.number().optional().default(Pl.clustering_threshold),events_media_type:Rl.optional().default(Pl.events_media_type),window_seconds:ba.number().min(60).max(86400).optional().default(Pl.window_seconds),show_recordings:ba.boolean().optional().default(Pl.show_recordings),style:ba.enum(["stack","ribbon"]).optional().default(Pl.style),pan_mode:Ll.optional().default(Pl.pan_mode)}),Fl={...Pl,mode:"none",style:"ribbon"},Vl=Nl.extend({mode:ba.enum(["none","above","below"]).default(Fl.mode),style:Nl.shape.style.default(Fl.style)}),Hl={...Pl,controls:{thumbnails:Ol}},Bl=Nl.extend({controls:ba.object({thumbnails:Dl.default(Hl.controls.thumbnails)}).default(Hl.controls)}).default(Hl),ql=ba.object({style:ba.enum(["none","chevrons","icons","thumbnails"]),size:ba.number().min(20)}),Ul=ba.enum(["none","slide"]),Wl={always_connected:!1,disconnect_seconds:90,mute_after_microphone_mute_seconds:60},Zl=ba.object({always_connected:ba.boolean().default(Wl.always_connected),disconnect_seconds:ba.number().min(0).default(Wl.disconnect_seconds),mute_after_microphone_mute_seconds:ba.number().min(0).default(Wl.mute_after_microphone_mute_seconds)}).default(Wl),Ql=ba.object({url:ba.string().transform((e=>e.replace(/\/+$/,""))).optional(),host:ba.string().optional(),modes:ba.enum(["webrtc","mse","mp4","mjpeg"]).array().optional(),stream:ba.string().optional()}),Gl=ba.object({entity:ba.string().optional(),url:ba.string().optional()}).passthrough(),Yl=ba.object({options:ba.object({audio:ba.boolean().optional(),video:ba.boolean().optional(),pauseWhenHidden:ba.boolean().optional(),disableGl:ba.boolean().optional(),disableWebAssembly:ba.boolean().optional(),preserveDrawingBuffer:ba.boolean().optional(),progressive:ba.boolean().optional(),throttled:ba.boolean().optional(),chunkSize:ba.number().optional(),maxAudioLag:ba.number().optional(),videoBufferSize:ba.number().optional(),audioBufferSize:ba.number().optional()}).optional()}),Kl={...Ol,media_type:"events",events_media_type:"all"},Xl={auto_play:[...Ys],auto_pause:[],auto_mute:[...Xs],auto_unmute:["microphone"],preload:!1,lazy_load:!0,lazy_unload:[],draggable:!0,zoomable:!0,transition_effect:"slide",show_image_during_load:!0,mode:"single",controls:{builtin:!0,next_previous:{size:48,style:"chevrons"},ptz:kl,thumbnails:Kl,timeline:Fl},microphone:{...Wl}},Jl=Dl.extend({media_type:ba.enum(["events","recordings"]).default(Xl.controls.thumbnails.media_type),events_media_type:Rl.default(Xl.controls.thumbnails.events_media_type)}),ed=ba.object({auto_pause:ba.enum(Gs).array().default(Xl.auto_pause),auto_play:ba.enum(Ys).array().default(Xl.auto_play),auto_mute:ba.enum(Xs).array().default(Xl.auto_mute),auto_unmute:ba.enum(Ks).array().default(Xl.auto_unmute),controls:ba.object({builtin:ba.boolean().default(Xl.controls.builtin),next_previous:ql.extend({style:ba.enum(["none","chevrons","icons"]).default(Xl.controls.next_previous.style),size:ql.shape.size.default(Xl.controls.next_previous.size)}).default(Xl.controls.next_previous),ptz:Sl.default(Xl.controls.ptz),thumbnails:Jl.default(Xl.controls.thumbnails),timeline:Vl.default(Xl.controls.timeline)}).default(Xl.controls),display:rc,draggable:ba.boolean().default(Xl.draggable),lazy_load:ba.boolean().default(Xl.lazy_load),lazy_unload:ba.enum(Gs).array().default(Xl.lazy_unload),microphone:Zl.default(Xl.microphone),preload:ba.boolean().default(Xl.preload),show_image_during_load:ba.boolean().default(Xl.show_image_during_load),transition_effect:Ul.default(Xl.transition_effect),zoomable:ba.boolean().default(Xl.zoomable)}).merge(Oc).default(Xl),td=ba.object({live:ed}),nd=ba.object({method:ba.enum(["standard","dashboard"]).default("standard").optional(),dashboard:ba.object({dashboard_path:ba.string().optional(),view_path:ba.string().optional()}).optional()}),ad={dependencies:{all_cameras:!1,cameras:[]},engine:"auto",frigate:{client_id:"frigate"},live_provider:"auto",motioneye:{images:{directory_pattern:"%Y-%m-%d",file_pattern:"%H-%M-%S"},movies:{directory_pattern:"%Y-%m-%d",file_pattern:"%H-%M-%S"}},reolink:{media_resolution:"low"},ptz:xl,triggers:{motion:!1,occupancy:!1,events:[...ec],entities:[]},proxy:{media:"auto",dynamic:!0,ssl_verification:"auto",ssl_ciphers:"auto"}},id=ba.object({media:ba.boolean().or(ba.literal("auto")).default(ad.proxy.media),dynamic:ba.boolean().default(ad.proxy.dynamic),ssl_verification:ba.boolean().or(ba.literal("auto")).default(ad.proxy.ssl_verification),ssl_ciphers:ba.enum(["default","insecure","intermediate","modern"]).or(ba.literal("auto")).default(ad.proxy.ssl_ciphers)}),rd=ba.object({camera_entity:ba.string().optional(),icon:ba.string().optional(),title:ba.string().optional(),capabilities:ba.object({disable:ba.enum(Ts).array().optional(),disable_except:ba.enum(Ts).array().optional()}).optional(),id:ba.string().optional(),dependencies:ba.object({all_cameras:ba.boolean().default(ad.dependencies.all_cameras),cameras:ba.string().array().default(ad.dependencies.cameras)}).default(ad.dependencies),triggers:ba.object({motion:ba.boolean().default(ad.triggers.motion),occupancy:ba.boolean().default(ad.triggers.occupancy),entities:ba.string().array().default(ad.triggers.entities),events:ba.enum(ec).array().default(ad.triggers.events)}).default(ad.triggers),engine:ba.enum(["auto","frigate","generic","motioneye","reolink"]).default("auto"),frigate:ba.object({url:ba.string().optional(),client_id:ba.string().default(ad.frigate.client_id),camera_name:ba.string().optional(),labels:ba.string().array().optional(),zones:ba.string().array().optional()}).default(ad.frigate),motioneye:ba.object({url:ba.string().optional(),images:ba.object({directory_pattern:ba.string().includes("%").default(ad.motioneye.images.directory_pattern),file_pattern:ba.string().includes("%").default(ad.motioneye.images.file_pattern)}).default(ad.motioneye.images),movies:ba.object({directory_pattern:ba.string().includes("%").default(ad.motioneye.movies.directory_pattern),file_pattern:ba.string().includes("%").default(ad.motioneye.movies.file_pattern)}).default(ad.motioneye.movies)}).default(ad.motioneye),reolink:ba.object({url:ba.string().optional(),media_resolution:ba.enum(["high","low"]).default(ad.reolink.media_resolution)}).default(ad.reolink),live_provider:ba.enum(["auto","image","ha","jsmpeg","go2rtc","webrtc-card"]).default(ad.live_provider),go2rtc:Ql.optional(),image:$l.optional().default(El),jsmpeg:Yl.optional(),webrtc_card:Gl.optional(),cast:nd.optional(),ptz:Ml.default(ad.ptz),dimensions:ba.object({aspect_ratio:wl.optional(),layout:bl.optional()}).optional(),proxy:id.default(ad.proxy)}).default(ad),od=rd.array().min(1),sd={default:Qs,camera_select:"current",interaction_seconds:300,default_reset:{every_seconds:0,after_interaction:!1,entities:[],interaction_mode:"inactive"},default_cycle_camera:!1,dark_mode:"off",triggers:{show_trigger_status:!1,filter_selected_camera:!0,actions:{trigger:"update",untrigger:"none"},untrigger_seconds:0},keyboard_shortcuts:Fs},cd=ba.enum(["all","inactive","active"]).default("inactive"),ld=ba.object({actions:ba.object({interaction_mode:cd,trigger:ba.enum(["default","live","media","none","update"]).default(sd.triggers.actions.trigger),untrigger:ba.enum(["default","none"]).default(sd.triggers.actions.untrigger)}).default(sd.triggers.actions),filter_selected_camera:ba.boolean().default(sd.triggers.filter_selected_camera),show_trigger_status:ba.boolean().default(sd.triggers.show_trigger_status),untrigger_seconds:ba.number().default(sd.triggers.untrigger_seconds)}),dd=ba.object({default:ba.enum(Zs).default(sd.default),camera_select:ba.enum([...Zs,"current"]).default(sd.camera_select),interaction_seconds:ba.number().default(sd.interaction_seconds),default_cycle_camera:ba.boolean().default(sd.default_cycle_camera),default_reset:ba.object({after_interaction:ba.boolean().default(sd.default_reset.after_interaction),every_seconds:ba.number().default(sd.default_reset.every_seconds),entities:ba.string().array().default(sd.default_reset.entities),interaction_mode:cd.default(sd.default_reset.interaction_mode)}).default(sd.default_reset),render_entities:ba.string().array().optional(),dark_mode:ba.enum(["on","off","auto"]).optional(),triggers:ld.default(sd.triggers),keyboard_shortcuts:Vs.default(sd.keyboard_shortcuts)}).merge(Oc).default(sd),ud=["left","right","top","bottom"],hd=ud,pd={priority:50,enabled:!0},md={priority:50,enabled:!1},gd={alignment:"left",button_size:40,buttons:{camera_ui:pd,cameras:pd,clips:pd,ptz_home:md,display_mode:pd,download:pd,expand:md,frigate:pd,fullscreen:pd,image:md,live:pd,media_player:pd,microphone:{...md,type:"momentary"},mute:md,play:md,ptz_controls:md,recordings:md,screenshot:md,snapshots:pd,substreams:pd,timeline:pd},position:"top",style:"hidden"},fd=Gc.extend({enabled:Gc.shape.enabled.default(pd.enabled),priority:Gc.shape.priority.default(pd.priority)}),_d=Gc.extend({enabled:Gc.shape.enabled.default(md.enabled),priority:Gc.shape.priority.default(md.priority)}),vd=ba.object({style:ba.enum(["none","hidden","overlay","hover","hover-card","outside"]).default(gd.style),position:ba.enum(ud).default(gd.position),alignment:ba.enum(hd).default(gd.alignment),buttons:ba.object({camera_ui:fd.default(gd.buttons.camera_ui),cameras:fd.default(gd.buttons.cameras),clips:fd.default(gd.buttons.clips),ptz_home:_d.default(gd.buttons.ptz_home),display_mode:fd.default(gd.buttons.display_mode),download:fd.default(gd.buttons.download),expand:_d.default(gd.buttons.expand),frigate:fd.default(gd.buttons.frigate),fullscreen:fd.default(gd.buttons.fullscreen),image:_d.default(gd.buttons.image),live:fd.default(gd.buttons.live),media_player:fd.default(gd.buttons.media_player),microphone:_d.extend({type:ba.enum(["momentary","toggle"]).default(gd.buttons.microphone.type)}).default(gd.buttons.microphone),mute:_d.default(gd.buttons.mute),play:_d.default(gd.buttons.play),ptz_controls:_d.default(gd.buttons.ptz_controls),recordings:_d.default(gd.buttons.recordings),screenshot:_d.default(gd.buttons.screenshot),snapshots:fd.default(gd.buttons.snapshots),substreams:fd.default(gd.buttons.substreams),timeline:fd.default(gd.buttons.timeline)}).default(gd.buttons),button_size:ba.number().min(20).default(gd.button_size)}).default(gd),yd={priority:50,enabled:!0},bd={height:46,items:{engine:yd,resolution:yd,technology:yd,title:yd},position:"bottom",style:"popup",popup_seconds:3},wd=ba.object({position:ba.enum(["top","bottom"]).default(bd.position),style:ba.enum(["none","overlay","hover","hover-card","outside","popup"]).default(bd.style),popup_seconds:ba.number().min(0).max(60).default(bd.popup_seconds),height:ba.number().min(20).default(bd.height),items:ba.object({engine:tl.default(bd.items.engine),technology:tl.default(bd.items.technology),resolution:tl.default(bd.items.resolution),title:tl.default(bd.items.title)}).default(bd.items)}).default(bd),xd={auto_play:[...Ys],auto_pause:[...Gs],auto_mute:[...Gs],auto_unmute:[],lazy_load:!0,draggable:!0,zoomable:!0,transition_effect:"slide",snapshot_click_plays_clip:!0,display_mode:"single",controls:{builtin:!0,next_previous:{size:48,style:"thumbnails"},thumbnails:Ol,timeline:Fl,ptz:{...kl,mode:"off"}}},Cd=ql.extend({style:ba.enum(["none","thumbnails","chevrons"]).default(xd.controls.next_previous.style),size:ql.shape.size.default(xd.controls.next_previous.size)}),Md=ba.object({auto_play:ba.enum(Ys).array().default(xd.auto_play),auto_pause:ba.enum(Gs).array().default(xd.auto_pause),auto_mute:ba.enum(Gs).array().default(xd.auto_mute),auto_unmute:ba.enum(Ys).array().default(xd.auto_unmute),lazy_load:ba.boolean().default(xd.lazy_load),draggable:ba.boolean().default(xd.draggable),zoomable:ba.boolean().default(xd.zoomable),transition_effect:Ul.default(xd.transition_effect),snapshot_click_plays_clip:ba.boolean().default(xd.snapshot_click_plays_clip),display:rc,controls:ba.object({builtin:ba.boolean().default(xd.controls.builtin),next_previous:Cd.default(xd.controls.next_previous),ptz:Sl.extend({mode:ba.enum(["off","on"]).default(xd.controls.ptz.mode)}).default(xd.controls.ptz),thumbnails:Dl.default(xd.controls.thumbnails),timeline:Vl.default(xd.controls.timeline)}).default(xd.controls)}).merge(Oc).default(xd),kd={...Ol,show_details:!1},Sd={controls:{thumbnails:kd,filter:{mode:"right"}}},Ed=Dl.extend({show_details:ba.boolean().default(kd.show_details)}),$d=ba.object({controls:ba.object({thumbnails:Ed.default(Sd.controls.thumbnails),filter:ba.object({mode:ba.enum(["none","left","right"]).default(Sd.controls.filter.mode)}).default(Sd.controls.filter)}).default(Sd.controls)}).merge(Oc).default(Sd),Ad={aspect_ratio_mode:"dynamic",aspect_ratio:[16,9],height:"auto"},zd=ba.object({aspect_ratio_mode:ba.enum(["dynamic","static","unconstrained"]).default(Ad.aspect_ratio_mode),aspect_ratio:wl.default(Ad.aspect_ratio),height:ba.string().default(Ad.height)}).default(Ad),Id=ba.object({conditions:_l.array(),merge:ba.object({}).passthrough().optional(),set:ba.object({}).passthrough().optional(),delete:ba.string().array().optional()}).array().optional(),Td=Tc.array(),jd=ba.object({conditions:_l.array(),actions:Td.optional(),actions_not:Td.optional()}).refine((e=>e.actions?.length||e.actions_not?.length),"Automations must include at least one action").array(),Od={features:{animated_progress_indicator:!0,media_chunk_size:50},style:{border_radius:!0,box_shadow:!0}},Dd=ba.object({features:ba.object({animated_progress_indicator:ba.boolean().default(Od.features.animated_progress_indicator),media_chunk_size:ba.number().min(0).max(1e3).default(Od.features.media_chunk_size),max_simultaneous_engine_requests:ba.number().min(1).optional()}).default(Od.features),style:ba.object({border_radius:ba.boolean().default(Od.style.border_radius),box_shadow:ba.boolean().default(Od.style.box_shadow)}).default(Od.style)}).default(Od),Rd={logging:!1},Pd=ba.object({logging:ba.boolean().default(Rd.logging)}).default(Rd),Ld=ba.enum(["casting","low-performance","scrubbing"]).array().optional(),Nd=ba.object({cameras:Ds(od),cameras_global:rd,view:dd,menu:vd,status_bar:wd,live:ed,media_gallery:$d,media_viewer:Md,image:Al,elements:yl,dimensions:zd,timeline:Bl,performance:Dd,debug:Pd,automations:jd.optional(),profiles:Ld,overrides:Id,card_mod:ba.unknown(),card_id:ba.string().regex(tc).optional(),type:ba.string()}),Fd={cameras:ad,view:sd,menu:gd,status_bar:bd,live:Xl,media_gallery:Sd,media_viewer:xd,image:El,timeline:Hl,performance:Od,debug:Rd};function Vd(e){const t=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===t?new e.constructor(+e):"number"==typeof e||"[object Number]"===t||"string"==typeof e||"[object String]"===t?new Date(e):new Date(NaN)}function Hd(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function Bd(e,t){const n=Vd(e);return isNaN(t)?Hd(e,NaN):t?(n.setDate(n.getDate()+t),n):n}function qd(e,t){const n=Vd(e);if(isNaN(t))return Hd(e,NaN);if(!t)return n;const a=n.getDate(),i=Hd(e,n.getTime());i.setMonth(n.getMonth()+t+1,0);return a>=i.getDate()?i:(n.setFullYear(i.getFullYear(),i.getMonth(),a),n)}function Ud(e,t){const{years:n=0,months:a=0,weeks:i=0,days:r=0,hours:o=0,minutes:s=0,seconds:c=0}=t,l=Vd(e),d=a||n?qd(l,a+12*n):l,u=1e3*(c+60*(s+60*o));return Hd(e,(r||i?Bd(d,r+7*i):d).getTime()+u)}const Wd=6048e5,Zd=864e5,Qd=6e4,Gd=36e5,Yd=1e3;let Kd={};function Xd(){return Kd}function Jd(e,t){const n=Xd(),a=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=Vd(e),r=i.getDay(),o=(r=i.getTime()?n+1:t.getTime()>=o.getTime()?n:n-1}function nu(e){const t=Vd(e);return t.setHours(0,0,0,0),t}function au(e){const t=Vd(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function iu(e){if(!(t=e,t instanceof Date||"object"==typeof t&&"[object Date]"===Object.prototype.toString.call(t)||"number"==typeof e))return!1;var t;const n=Vd(e);return!isNaN(Number(n))}function ru(e){return t=>{const n=(e?Math[e]:Math.trunc)(t);return 0===n?0:n}}function ou(e,t){return+Vd(e)-+Vd(t)}function su(e,t,n){const a=ou(e,t)/1e3;return ru(n?.roundingMethod)(a)}const cu={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function lu(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const du={date:lu({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:lu({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:lu({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},uu={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function hu(e){return(t,n)=>{let a;if("formatting"===(n?.context?String(n.context):"standalone")&&e.formattingValues){const t=e.defaultFormattingWidth||e.defaultWidth,i=n?.width?String(n.width):t;a=e.formattingValues[i]||e.formattingValues[t]}else{const t=e.defaultWidth,i=n?.width?String(n.width):e.defaultWidth;a=e.values[i]||e.values[t]}return a[e.argumentCallback?e.argumentCallback(t):t]}}function pu(e){return(t,n={})=>{const a=n.width,i=a&&e.matchPatterns[a]||e.matchPatterns[e.defaultMatchWidth],r=t.match(i);if(!r)return null;const o=r[0],s=a&&e.parsePatterns[a]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(s)?function(e,t){for(let n=0;ne.test(o))):function(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n;return}(s,(e=>e.test(o)));let l;l=e.valueCallback?e.valueCallback(c):c,l=n.valueCallback?n.valueCallback(l):l;return{value:l,rest:t.slice(o.length)}}}var mu;const gu={code:"en-US",formatDistance:(e,t,n)=>{let a;const i=cu[e];return a="string"==typeof i?i:1===t?i.one:i.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+a:a+" ago":a},formatLong:du,formatRelative:(e,t,n,a)=>uu[e],localize:{ordinalNumber:(e,t)=>{const n=Number(e),a=n%100;if(a>20||a<10)switch(a%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:hu({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:hu({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:e=>e-1}),month:hu({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:hu({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:hu({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(mu={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)},(e,t={})=>{const n=e.match(mu.matchPattern);if(!n)return null;const a=n[0],i=e.match(mu.parsePattern);if(!i)return null;let r=mu.valueCallback?mu.valueCallback(i[0]):i[0];return r=t.valueCallback?t.valueCallback(r):r,{value:r,rest:e.slice(a.length)}}),era:pu({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:pu({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:e=>e+1}),month:pu({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:pu({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:pu({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function fu(e){const t=Vd(e),n=function(e,t){const n=nu(e),a=nu(t),i=+n-au(n),r=+a-au(a);return Math.round((i-r)/Zd)}(t,function(e){const t=Vd(e),n=Hd(e,0);return n.setFullYear(t.getFullYear(),0,1),n.setHours(0,0,0,0),n}(t));return n+1}function _u(e){const t=Vd(e),n=+eu(t)-+function(e){const t=tu(e),n=Hd(e,0);return n.setFullYear(t,0,4),n.setHours(0,0,0,0),eu(n)}(t);return Math.round(n/Wd)+1}function vu(e,t){const n=Vd(e),a=n.getFullYear(),i=Xd(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,o=Hd(e,0);o.setFullYear(a+1,0,r),o.setHours(0,0,0,0);const s=Jd(o,t),c=Hd(e,0);c.setFullYear(a,0,r),c.setHours(0,0,0,0);const l=Jd(c,t);return n.getTime()>=s.getTime()?a+1:n.getTime()>=l.getTime()?a:a-1}function yu(e,t){const n=Vd(e),a=+Jd(n,t)-+function(e,t){const n=Xd(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,i=vu(e,t),r=Hd(e,0);return r.setFullYear(i,0,a),r.setHours(0,0,0,0),Jd(r,t)}(n,t);return Math.round(a/Wd)+1}function bu(e,t){return(e<0?"-":"")+Math.abs(e).toString().padStart(t,"0")}const wu={y(e,t){const n=e.getFullYear(),a=n>0?n:1-n;return bu("yy"===t?a%100:a,t.length)},M(e,t){const n=e.getMonth();return"M"===t?String(n+1):bu(n+1,2)},d:(e,t)=>bu(e.getDate(),t.length),a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];default:return"am"===n?"a.m.":"p.m."}},h:(e,t)=>bu(e.getHours()%12||12,t.length),H:(e,t)=>bu(e.getHours(),t.length),m:(e,t)=>bu(e.getMinutes(),t.length),s:(e,t)=>bu(e.getSeconds(),t.length),S(e,t){const n=t.length,a=e.getMilliseconds();return bu(Math.trunc(a*Math.pow(10,n-3)),t.length)}},xu="midnight",Cu="noon",Mu="morning",ku="afternoon",Su="evening",Eu="night",$u={G:function(e,t,n){const a=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(a,{width:"abbreviated"});case"GGGGG":return n.era(a,{width:"narrow"});default:return n.era(a,{width:"wide"})}},y:function(e,t,n){if("yo"===t){const t=e.getFullYear(),a=t>0?t:1-t;return n.ordinalNumber(a,{unit:"year"})}return wu.y(e,t)},Y:function(e,t,n,a){const i=vu(e,a),r=i>0?i:1-i;if("YY"===t){return bu(r%100,2)}return"Yo"===t?n.ordinalNumber(r,{unit:"year"}):bu(r,t.length)},R:function(e,t){return bu(tu(e),t.length)},u:function(e,t){return bu(e.getFullYear(),t.length)},Q:function(e,t,n){const a=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(a);case"QQ":return bu(a,2);case"Qo":return n.ordinalNumber(a,{unit:"quarter"});case"QQQ":return n.quarter(a,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(a,{width:"narrow",context:"formatting"});default:return n.quarter(a,{width:"wide",context:"formatting"})}},q:function(e,t,n){const a=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(a);case"qq":return bu(a,2);case"qo":return n.ordinalNumber(a,{unit:"quarter"});case"qqq":return n.quarter(a,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(a,{width:"narrow",context:"standalone"});default:return n.quarter(a,{width:"wide",context:"standalone"})}},M:function(e,t,n){const a=e.getMonth();switch(t){case"M":case"MM":return wu.M(e,t);case"Mo":return n.ordinalNumber(a+1,{unit:"month"});case"MMM":return n.month(a,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(a,{width:"narrow",context:"formatting"});default:return n.month(a,{width:"wide",context:"formatting"})}},L:function(e,t,n){const a=e.getMonth();switch(t){case"L":return String(a+1);case"LL":return bu(a+1,2);case"Lo":return n.ordinalNumber(a+1,{unit:"month"});case"LLL":return n.month(a,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(a,{width:"narrow",context:"standalone"});default:return n.month(a,{width:"wide",context:"standalone"})}},w:function(e,t,n,a){const i=yu(e,a);return"wo"===t?n.ordinalNumber(i,{unit:"week"}):bu(i,t.length)},I:function(e,t,n){const a=_u(e);return"Io"===t?n.ordinalNumber(a,{unit:"week"}):bu(a,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getDate(),{unit:"date"}):wu.d(e,t)},D:function(e,t,n){const a=fu(e);return"Do"===t?n.ordinalNumber(a,{unit:"dayOfYear"}):bu(a,t.length)},E:function(e,t,n){const a=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(a,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(a,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},e:function(e,t,n,a){const i=e.getDay(),r=(i-a.weekStartsOn+8)%7||7;switch(t){case"e":return String(r);case"ee":return bu(r,2);case"eo":return n.ordinalNumber(r,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(e,t,n,a){const i=e.getDay(),r=(i-a.weekStartsOn+8)%7||7;switch(t){case"c":return String(r);case"cc":return bu(r,t.length);case"co":return n.ordinalNumber(r,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(e,t,n){const a=e.getDay(),i=0===a?7:a;switch(t){case"i":return String(i);case"ii":return bu(i,t.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(a,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(a,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},a:function(e,t,n){const a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(e,t,n){const a=e.getHours();let i;switch(i=12===a?Cu:0===a?xu:a/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(i,{width:"narrow",context:"formatting"});default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},B:function(e,t,n){const a=e.getHours();let i;switch(i=a>=17?Su:a>=12?ku:a>=4?Mu:Eu,t){case"B":case"BB":case"BBB":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(i,{width:"narrow",context:"formatting"});default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){let t=e.getHours()%12;return 0===t&&(t=12),n.ordinalNumber(t,{unit:"hour"})}return wu.h(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getHours(),{unit:"hour"}):wu.H(e,t)},K:function(e,t,n){const a=e.getHours()%12;return"Ko"===t?n.ordinalNumber(a,{unit:"hour"}):bu(a,t.length)},k:function(e,t,n){let a=e.getHours();return 0===a&&(a=24),"ko"===t?n.ordinalNumber(a,{unit:"hour"}):bu(a,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):wu.m(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getSeconds(),{unit:"second"}):wu.s(e,t)},S:function(e,t){return wu.S(e,t)},X:function(e,t,n){const a=e.getTimezoneOffset();if(0===a)return"Z";switch(t){case"X":return zu(a);case"XXXX":case"XX":return Iu(a);default:return Iu(a,":")}},x:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"x":return zu(a);case"xxxx":case"xx":return Iu(a);default:return Iu(a,":")}},O:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+Au(a,":");default:return"GMT"+Iu(a,":")}},z:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+Au(a,":");default:return"GMT"+Iu(a,":")}},t:function(e,t,n){return bu(Math.trunc(e.getTime()/1e3),t.length)},T:function(e,t,n){return bu(e.getTime(),t.length)}};function Au(e,t=""){const n=e>0?"-":"+",a=Math.abs(e),i=Math.trunc(a/60),r=a%60;return 0===r?n+String(i):n+String(i)+t+bu(r,2)}function zu(e,t){if(e%60==0){return(e>0?"-":"+")+bu(Math.abs(e)/60,2)}return Iu(e,t)}function Iu(e,t=""){const n=e>0?"-":"+",a=Math.abs(e);return n+bu(Math.trunc(a/60),2)+t+bu(a%60,2)}const Tu=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},ju=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},Ou={p:ju,P:(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],a=n[1],i=n[2];if(!i)return Tu(e,t);let r;switch(a){case"P":r=t.dateTime({width:"short"});break;case"PP":r=t.dateTime({width:"medium"});break;case"PPP":r=t.dateTime({width:"long"});break;default:r=t.dateTime({width:"full"})}return r.replace("{{date}}",Tu(a,t)).replace("{{time}}",ju(i,t))}},Du=/^D+$/,Ru=/^Y+$/,Pu=["D","DD","YY","YYYY"];function Lu(e){return Du.test(e)}function Nu(e){return Ru.test(e)}function Fu(e,t,n){const a=function(e,t,n){const a="Y"===e[0]?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${a} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}(e,t,n);if(console.warn(a),Pu.includes(e))throw new RangeError(a)}const Vu=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Hu=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Bu=/^'([^]*?)'?$/,qu=/''/g,Uu=/[a-zA-Z]/;function Wu(e,t,n){const a=Xd(),i=n?.locale??a.locale??gu,r=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,o=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??a.weekStartsOn??a.locale?.options?.weekStartsOn??0,s=Vd(e);if(!iu(s))throw new RangeError("Invalid time value");let c=t.match(Hu).map((e=>{const t=e[0];if("p"===t||"P"===t){return(0,Ou[t])(e,i.formatLong)}return e})).join("").match(Vu).map((e=>{if("''"===e)return{isToken:!1,value:"'"};const t=e[0];if("'"===t)return{isToken:!1,value:Zu(e)};if($u[t])return{isToken:!0,value:e};if(t.match(Uu))throw new RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return{isToken:!1,value:e}}));i.localize.preprocessor&&(c=i.localize.preprocessor(s,c));const l={firstWeekContainsDate:r,weekStartsOn:o,locale:i};return c.map((a=>{if(!a.isToken)return a.value;const r=a.value;(!n?.useAdditionalWeekYearTokens&&Nu(r)||!n?.useAdditionalDayOfYearTokens&&Lu(r))&&Fu(r,t,String(e));return(0,$u[r[0]])(s,r,i.localize,l)})).join("")}function Zu(e){const t=e.match(Bu);return t?t[1].replace(qu,"'"):e}function Qu(e,t){const{years:n=0,months:a=0,weeks:i=0,days:r=0,hours:o=0,minutes:s=0,seconds:c=0}=t,l=function(e,t){return qd(e,-t)}(e,a+12*n),d=function(e,t){return Bd(e,-t)}(l,r+7*i),u=1e3*(c+60*(s+60*o));return Hd(e,d.getTime()-u)}function Gu(e,t){return e===t||e!=e&&t!=t}function Yu(e,t){for(var n=e.length;n--;)if(Gu(e[n][0],t))return n;return-1}var Ku=Array.prototype.splice;function Xu(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1},Xu.prototype.set=function(e,t){var n=this.__data__,a=Yu(n,e);return a<0?(++this.size,n.push([e,t])):n[a][1]=t,this};var Ju="object"==typeof global&&global&&global.Object===Object&&global,eh="object"==typeof self&&self&&self.Object===Object&&self,th=Ju||eh||Function("return this")(),nh=th.Symbol,ah=Object.prototype,ih=ah.hasOwnProperty,rh=ah.toString,oh=nh?nh.toStringTag:void 0;var sh=Object.prototype.toString;var ch="[object Null]",lh="[object Undefined]",dh=nh?nh.toStringTag:void 0;function uh(e){return null==e?void 0===e?lh:ch:dh&&dh in Object(e)?function(e){var t=ih.call(e,oh),n=e[oh];try{e[oh]=void 0;var a=!0}catch(e){}var i=rh.call(e);return a&&(t?e[oh]=n:delete e[oh]),i}(e):function(e){return sh.call(e)}(e)}function hh(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}var ph="[object AsyncFunction]",mh="[object Function]",gh="[object GeneratorFunction]",fh="[object Proxy]";function _h(e){if(!hh(e))return!1;var t=uh(e);return t==mh||t==gh||t==ph||t==fh}var vh,yh=th["__core-js_shared__"],bh=(vh=/[^.]+$/.exec(yh&&yh.keys&&yh.keys.IE_PROTO||""))?"Symbol(src)_1."+vh:"";var wh=Function.prototype.toString;function xh(e){if(null!=e){try{return wh.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var Ch=/^\[object .+?Constructor\]$/,Mh=Function.prototype,kh=Object.prototype,Sh=Mh.toString,Eh=kh.hasOwnProperty,$h=RegExp("^"+Sh.call(Eh).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ah(e){return!(!hh(e)||(t=e,bh&&bh in t))&&(_h(e)?$h:Ch).test(xh(e));var t}function zh(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return Ah(n)?n:void 0}var Ih=zh(th,"Map"),Th=zh(Object,"create");var jh=Object.prototype.hasOwnProperty;var Oh=Object.prototype.hasOwnProperty;function Dh(e){var t=-1,n=null==e?0:e.length;for(this.clear();++ts))return!1;var l=r.get(e),d=r.get(t);if(l&&d)return l==t&&d==e;var u=-1,h=!0,p=n&Bh?new Nh:void 0;for(r.set(e,t),r.set(t,e);++u-1&&e%1==0&&e-1&&e%1==0&&e<=Ap}var Ip={};function Tp(e){return function(t){return e(t)}}Ip["[object Float32Array]"]=Ip["[object Float64Array]"]=Ip["[object Int8Array]"]=Ip["[object Int16Array]"]=Ip["[object Int32Array]"]=Ip["[object Uint8Array]"]=Ip["[object Uint8ClampedArray]"]=Ip["[object Uint16Array]"]=Ip["[object Uint32Array]"]=!0,Ip["[object Arguments]"]=Ip["[object Array]"]=Ip["[object ArrayBuffer]"]=Ip["[object Boolean]"]=Ip["[object DataView]"]=Ip["[object Date]"]=Ip["[object Error]"]=Ip["[object Function]"]=Ip["[object Map]"]=Ip["[object Number]"]=Ip["[object Object]"]=Ip["[object RegExp]"]=Ip["[object Set]"]=Ip["[object String]"]=Ip["[object WeakMap]"]=!1;var jp="object"==typeof exports&&exports&&!exports.nodeType&&exports,Op=jp&&"object"==typeof module&&module&&!module.nodeType&&module,Dp=Op&&Op.exports===jp&&Ju.process,Rp=function(){try{var e=Op&&Op.require&&Op.require("util").types;return e||Dp&&Dp.binding&&Dp.binding("util")}catch(e){}}(),Pp=Rp,Lp=Pp&&Pp.isTypedArray,Np=Lp?Tp(Lp):function(e){return fp(e)&&zp(e.length)&&!!Ip[uh(e)]},Fp=Object.prototype.hasOwnProperty;function Vp(e,t){var n=dp(e),a=!n&&wp(e),i=!n&&!a&&kp(e),r=!n&&!a&&!i&&Np(e),o=n||a||i||r,s=o?function(e,t){for(var n=-1,a=Array(e);++n0){if(++og>=800)return arguments[0]}else og=0;return rg.apply(void 0,arguments)});function lg(e,t){return cg(function(e,t,n){return t=tg(void 0===t?e.length-1:t,0),function(){for(var a=arguments,i=-1,r=tg(a.length-t,0),o=Array(r);++i1?n[i-1]:void 0,o=i>2?n[2]:void 0;for(r=e.length>3&&"function"==typeof r?(i--,r):void 0,o&&dg(n[0],n[1],o)&&(r=i<3?void 0:r,i=1),t=Object(t);++a-1}function Ng(e,t,n){for(var a=-1,i=null==e?0:e.length;++a=Vg){var l=t?null:Fg(e);if(l)return Zh(l);o=!1,i=Vh,c=new Nh}else c=t?[]:s;e:for(;++ae[0].toUpperCase()+e.substring(1))).join(" ")}function Ug(e,t,n){const a=e[t];return e.splice(t,1),e.splice(n,0,a),e}const Wg=e=>Array.isArray(e)?e:[e],Zg=e=>e instanceof Set?e:new Set(Wg(e));function Qg(e,t,n){return!function(e,t,n){var a=(n="function"==typeof n?n:void 0)?n(e,t):void 0;return void 0===a?bm(e,t,void 0,n):!!a}(e,t,n)}function Gg(e,t=console.warn){e instanceof zs&&e.context?t(e,e.context):t("object"==typeof e&&"message"in e?e.message:e)}const Yg=()=>window.matchMedia("(hover: hover) and (pointer: fine)").matches,Kg=(e,t)=>Wu(e,"yyyy-MM-dd HH:mm"+(t?":ss":"")),Xg=e=>Wu(e,"yyyy-MM-dd"),Jg=(e,t)=>{window.requestIdleCallback?window.requestIdleCallback(e,{...t&&{timeout:t}}):e()};function ef(e,t){const n=function(e,t,n){const a=ou(e,t)/Gd;return ru(n?.roundingMethod)(a)}(t,e),a=function(e,t,n){const a=ou(e,t)/Qd;return ru(n?.roundingMethod)(a)}(t,e)-60*n;let i="";return n&&(i+=`${n}h `),a&&(i+=`${a}m `),i+=`${su(t,e)-60*n*60-60*a}s`,i}const tf=async(e,t)=>await Promise.all(Array.from(e).map((e=>t(e)))),nf=e=>new Date(`${e}T00:00:00`),af=async e=>{await new Promise((t=>setTimeout(t,1e3*e)))},rf=e=>!isNaN(e.getTime()),of=(e,t,n,a)=>{t?e.setAttribute(n,a??""):e.removeAttribute(n)},sf=e=>!!e,cf=e=>e instanceof HTMLElement,lf=e=>(e instanceof HTMLSlotElement?e.assignedElements({flatten:!0}):[...e.children]).filter(cf),df=e=>e?.ratio&&2===e.ratio.length?`${e.ratio[0]} / ${e.ratio[1]}`:e?.defaultStatic?"16 / 9":"auto",uf=e=>({"aspect-ratio":df(e)}),hf=e=>{if(Array.isArray(e))return e.filter((e=>void 0!==e)).map((e=>hf(e)));if("object"==typeof e&&null!==e){const t={};for(const n in e)t[n]=hf(e[n]);return t}return e},pf=(e,t,n)=>Rg(e,n)===Rg(t,n);function mf(e){if(!e)return null;const t=Ic.safeParse(e);return t.success?t.data:null}function gf(e,t){return{action:"fire-dom-event",frigate_card_action:e,...t?.cardID&&{card_id:t.cardID}}}function ff(e,t,n){return{action:"fire-dom-event",frigate_card_action:e,camera:t,...n?.cardID&&{card_id:n.cardID}}}function _f(e,t,n){return{action:"fire-dom-event",frigate_card_action:"media_player",media_player:e,media_player_action:t,...n?.cardID&&{card_id:n.cardID}}}function vf(e){return{action:"fire-dom-event",frigate_card_action:"ptz_multi",...e?.cardID&&{card_id:e.cardID},...e?.ptzAction&&{ptz_action:e.ptzAction},...e?.ptzPhase&&{ptz_phase:e.ptzPhase},...e?.ptzPreset&&{ptz_preset:e.ptzPreset},...e?.targetID&&{target_id:e.targetID}}}function yf(e,t){return e&&t?"tap"===e&&t.tap_action?t.tap_action:"hold"===e&&t.hold_action?t.hold_action:"double_tap"===e&&t.double_tap_action?t.double_tap_action:"end_tap"===e&&t.end_tap_action?t.end_tap_action:"start_tap"===e&&t.start_tap_action?t.start_tap_action:null:null}const bf=e=>Wg(e).some((e=>function(e){return void 0!==e&&"none"!==e.action}(e))),wf=e=>{e.stopPropagation()};class xf{constructor(){this._timer=null,this._repeated=!1}stop(){this._timer&&(this._repeated?window.clearInterval(this._timer):window.clearTimeout(this._timer),this._timer=null)}isRunning(){return null!==this._timer}start(e,t){this.stop(),this._timer=window.setTimeout((()=>{this._timer=null,t()}),1e3*e),this._repeated=!1}startRepeated(e,t){this.stop(),this._timer=window.setInterval((()=>{t()}),1e3*e),this._repeated=!0}}class Cf extends HTMLElement{constructor(){super(...arguments),this.holdTime=.4,this.holdTimer=new xf,this.doubleClickTimer=new xf,this.held=!1,this.started=!1}connectedCallback(){["touchcancel","mouseout","mouseup","touchmove","mousewheel","wheel","scroll"].forEach((e=>{document.addEventListener(e,(()=>{this.holdTimer.stop()}),{passive:!0})}))}bind(e,t){if(e.actionHandlerOptions)return void(e.actionHandlerOptions=t);e.actionHandlerOptions=t,e.addEventListener("contextmenu",(e=>{const t=e||window.event;return t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation(),t.cancelBubble=!0,t.returnValue=!1,!1}));const n=()=>{this.held=!1,this.holdTimer.start(this.holdTime,(()=>{this.held=!0})),this.started||(this.started=!0,et(e,"action",{action:"start_tap"}))},a=t=>{this.holdTimer.stop(),this.started&&(this.started=!1,et(e,"action",{action:"end_tap"}))},i=t=>{const n=e.actionHandlerOptions;n?.allowPropagation||wf(t),["touchend","touchcancel"].includes(t.type)&&!this.held||(a(),n?.hasHold&&this.held?et(e,"action",{action:"hold"}):n?.hasDoubleClick?"click"===t.type&&t.detail<2||!this.doubleClickTimer.isRunning()?this.doubleClickTimer.start(.25,(()=>et(e,"action",{action:"tap"}))):(this.doubleClickTimer.stop(),et(e,"action",{action:"double_tap"})):et(e,"action",{action:"tap"}))};e.addEventListener("touchstart",n,{passive:!0}),e.addEventListener("touchend",i),e.addEventListener("touchcancel",i),e.addEventListener("mousedown",n,{passive:!0}),e.addEventListener("click",i),e.addEventListener("keyup",(e=>{"Enter"===e.key&&i(e)})),e.addEventListener("mouseleave",a)}}customElements.define("action-handler-frigate-card",Cf);const Mf=(e,t)=>{const n=(()=>{const e=document.body;if(e.querySelector("action-handler-frigate-card"))return e.querySelector("action-handler-frigate-card");const t=document.createElement("action-handler-frigate-card");return e.appendChild(t),t})();n&&n.bind(e,t)},kf=ge(class extends fe{update(e,[t]){return Mf(e.element,t),U}render(e){}});var Sf=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)lp(t,gp(e)),e=Pm(e);return t}:hp;function Ef(e){return up(e,Km,Sf)}var $f=Object.prototype.hasOwnProperty;var Af=/\w*$/;var zf=nh?nh.prototype:void 0,If=zf?zf.valueOf:void 0;var Tf="[object Boolean]",jf="[object Date]",Of="[object Map]",Df="[object Number]",Rf="[object RegExp]",Pf="[object Set]",Lf="[object String]",Nf="[object Symbol]",Ff="[object ArrayBuffer]",Vf="[object DataView]",Hf="[object Float32Array]",Bf="[object Float64Array]",qf="[object Int8Array]",Uf="[object Int16Array]",Wf="[object Int32Array]",Zf="[object Uint8Array]",Qf="[object Uint8ClampedArray]",Gf="[object Uint16Array]",Yf="[object Uint32Array]";function Kf(e,t,n){var a,i,r,o=e.constructor;switch(t){case Ff:return Tm(e);case Tf:case jf:return new o(+e);case Vf:return function(e,t){var n=t?Tm(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case Hf:case Bf:case qf:case Uf:case Wf:case Zf:case Qf:case Gf:case Yf:return jm(e,n);case Of:return new o;case Df:case Lf:return new o(e);case Rf:return(r=new(i=e).constructor(i.source,Af.exec(i))).lastIndex=i.lastIndex,r;case Pf:return new o;case Nf:return a=e,If?Object(If.call(a)):{}}}var Xf=Pp&&Pp.isMap,Jf=Xf?Tp(Xf):function(e){return fp(e)&&"[object Map]"==pm(e)};var e_=Pp&&Pp.isSet,t_=e_?Tp(e_):function(e){return fp(e)&&"[object Set]"==pm(e)},n_=1,a_=2,i_=4,r_="[object Arguments]",o_="[object Function]",s_="[object GeneratorFunction]",c_="[object Object]",l_={};function d_(e,t,n,a,i,r){var o,s=t&n_,c=t&a_,l=t&i_;if(n&&(o=i?n(e,a,i,r):n(e)),void 0!==o)return o;if(!hh(e))return e;var d=dp(e);if(d){if(o=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&$f.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!s)return Om(e,o)}else{var u=pm(e),h=u==o_||u==s_;if(kp(e))return Im(e,s);if(u==c_||u==r_||h&&!i){if(o=c||h?{}:Lm(e),!s)return c?function(e,t){return Qm(e,Sf(e),t)}(e,function(e,t){return e&&Qm(t,Km(t),e)}(o,e)):function(e,t){return Qm(e,gp(e),t)}(e,function(e,t){return e&&Qm(t,Qp(t),e)}(o,e))}else{if(!l_[u])return i?e:{};o=Kf(e,u,s)}}r||(r=new Lh);var p=r.get(e);if(p)return p;r.set(e,o),t_(e)?e.forEach((function(a){o.add(d_(a,t,n,a,e,r))})):Jf(e)&&e.forEach((function(a,i){o.set(i,d_(a,t,n,i,e,r))}));var m=d?void 0:(l?c?Ef:Gp:c?Km:Qp)(e);return function(e,t){for(var n=-1,a=null==e?0:e.length;++nvoid 0===globalThis.DOMException?new __(e):new DOMException(e),y_=e=>{const t=void 0===e.reason?v_("This operation was aborted."):e.reason;return t instanceof Error?t:v_(t)};class b_{#e=[];enqueue(e,t){const n={priority:(t={priority:0,...t}).priority,run:e};if(this.size&&this.#e[this.size-1].priority>=t.priority)return void this.#e.push(n);const a=function(e,t,n){let a=0,i=e.length;for(;i>0;){const r=Math.trunc(i/2);let o=a+r;n(e[o],t)<=0?(a=++o,i-=r+1):i=r}return a}(this.#e,n,((e,t)=>t.priority-e.priority));this.#e.splice(a,0,n)}dequeue(){const e=this.#e.shift();return e?.run}filter(e){return this.#e.filter((t=>t.priority===e.priority)).map((e=>e.run))}get size(){return this.#e.length}}class w_ extends g_{#t;#n;#a=0;#i;#r;#o=0;#s;#c;#e;#l;#d=0;#u;#h;#p;timeout;constructor(e){if(super(),!("number"==typeof(e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:b_,...e}).intervalCap&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${typeof e.intervalCap})`);if(void 0===e.interval||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??""}\` (${typeof e.interval})`);this.#t=e.carryoverConcurrencyCount,this.#n=e.intervalCap===Number.POSITIVE_INFINITY||0===e.interval,this.#i=e.intervalCap,this.#r=e.interval,this.#e=new e.queueClass,this.#l=e.queueClass,this.concurrency=e.concurrency,this.timeout=e.timeout,this.#p=!0===e.throwOnTimeout,this.#h=!1===e.autoStart}get#m(){return this.#n||this.#a{this.#v()}),t)),!0;this.#a=this.#t?this.#d:0}return!1}#_(){if(0===this.#e.size)return this.#s&&clearInterval(this.#s),this.#s=void 0,this.emit("empty"),0===this.#d&&this.emit("idle"),!1;if(!this.#h){const e=!this.#w;if(this.#m&&this.#g){const t=this.#e.dequeue();return!!t&&(this.emit("active"),t(),e&&this.#b(),!0)}}return!1}#b(){this.#n||void 0!==this.#s||(this.#s=setInterval((()=>{this.#y()}),this.#r),this.#o=Date.now()+this.#r)}#y(){0===this.#a&&0===this.#d&&this.#s&&(clearInterval(this.#s),this.#s=void 0),this.#a=this.#t?this.#d:0,this.#x()}#x(){for(;this.#_(););}get concurrency(){return this.#u}set concurrency(e){if(!("number"==typeof e&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#u=e,this.#x()}async#C(e){return new Promise(((t,n)=>{e.addEventListener("abort",(()=>{n(e.reason)}),{once:!0})}))}async add(e,t={}){return t={timeout:this.timeout,throwOnTimeout:this.#p,...t},new Promise(((n,a)=>{this.#e.enqueue((async()=>{this.#d++,this.#a++;try{t.signal?.throwIfAborted();let a=e({signal:t.signal});t.timeout&&(a=function(e,t){const{milliseconds:n,fallback:a,message:i,customTimers:r={setTimeout:setTimeout,clearTimeout:clearTimeout}}=t;let o;const s=new Promise(((s,c)=>{if("number"!=typeof n||1!==Math.sign(n))throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${n}\``);if(t.signal){const{signal:e}=t;e.aborted&&c(y_(e)),e.addEventListener("abort",(()=>{c(y_(e))}))}if(n===Number.POSITIVE_INFINITY)return void e.then(s,c);const l=new f_;o=r.setTimeout.call(void 0,(()=>{if(a)try{s(a())}catch(e){c(e)}else"function"==typeof e.cancel&&e.cancel(),!1===i?s():i instanceof Error?c(i):(l.message=i??`Promise timed out after ${n} milliseconds`,c(l))}),n),(async()=>{try{s(await e)}catch(e){c(e)}})()})),c=s.finally((()=>{c.clear()}));return c.clear=()=>{r.clearTimeout.call(void 0,o),o=void 0},c}(Promise.resolve(a),{milliseconds:t.timeout})),t.signal&&(a=Promise.race([a,this.#C(t.signal)]));const i=await a;n(i),this.emit("completed",i)}catch(e){if(e instanceof f_&&!t.throwOnTimeout)return void n();a(e),this.emit("error",e)}finally{this.#f()}}),t),this.emit("add"),this.#_()}))}async addAll(e,t){return Promise.all(e.map((async e=>this.add(e,t))))}start(){return this.#h?(this.#h=!1,this.#x(),this):this}pause(){this.#h=!0}clear(){this.#e=new this.#l}async onEmpty(){0!==this.#e.size&&await this.#M("empty")}async onSizeLessThan(e){this.#e.sizethis.#e.size{const a=()=>{t&&!t()||(this.off(e,a),n())};this.on(e,a)}))}get size(){return this.#e.size}sizeBy(e){return this.#e.filter(e).length}get pending(){return this.#d}get isPaused(){return this.#h}}var x_={frigate_card:"Frigate card",frigate_card_description:"A Lovelace card for use with Frigate",live:"Live",no_media:"No media to display",recordings:"Recordings",version:"Version"},C_={cameras:{camera_entity:"Camera Entity",capabilities:{capabilities:{clips:"Clips","favorite-events":"Favorite Events","favorite-recordings":"Favorite Recordings",live:"Live",menu:"Menu",ptz:"PTZ",recordings:"Recordings",seek:"Seeking",snapshots:"Snapshots",substream:"Substream"},disable:"Disable",disable_except:"Disable except",editor_label:"Camera capabilities"},cast:{dashboard:{dashboard_path:"Dashboard path",view_path:"View path"},editor_label:"Cast options",method:"Cast method",methods:{dashboard:"Dashboard",standard:"Standard"}},dependencies:{all_cameras:"Show events for all cameras with this camera",cameras:"Show events for specific cameras with this camera",editor_label:"Dependency options"},dimensions:{aspect_ratio:"Static aspect ratio",editor_label:"Camera dimensions",layout:{editor_label:"Camera Layout",fit:"Layout fit",fits:{contain:"Media is contained/letterboxed",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",y:"Vertical placement percentage"},view_box:{bottom:"Bottom inset percentage",editor_label:"Layout View Box",left:"Left inset percentage",right:"Right inset percentage",top:"Top inset percentage"},zoom:"Zoom factor"}},engines:{editor_label:"Camera engine options"},frigate:{camera_name:"Frigate camera name (Autodetected from entity)",client_id:"Frigate client id (For >1 Frigate server)",editor_label:"Frigate options",labels:"Frigate labels/object filters",url:"Frigate server URL",zones:"Frigate zones"},go2rtc:{editor_label:"go2rtc Options",modes:{editor_label:"go2rtc Modes",mjpeg:"Motion JPEG (MJPEG)",mp4:"MPEG-4 (MP4)",mse:"Media Source Extensions (MSE)",webrtc:"Web Real-Time Communication (WebRTC)"},stream:"go2rtc stream name"},icon:"Icon for this camera (Autodetected from entity)",id:"Unique id for this camera in this card",image:{editor_label:"Image Options",refresh_seconds:"Number of seconds after which to refresh live image (0=never)",url:"Image URL to use instead of camera entity snapshot"},live_provider:"Live view provider for this camera",live_provider_options:{editor_label:"Live provider options"},live_providers:{auto:"Automatic",go2rtc:"go2rtc",ha:"Home Assistant video stream (i.e. HLS, LL-HLS, WebRTC via HA)",image:"Home Assistant images",jsmpeg:"JSMpeg","webrtc-card":"WebRTC Card (i.e. AlexxIT's WebRTC Card)"},motioneye:{editor_label:"MotionEye options",images:{directory_pattern:"Images directory pattern",file_pattern:"Images file pattern"},movies:{directory_pattern:"Movies directory pattern",file_pattern:"Movies file pattern"},url:"MotionEye UI URL"},proxy:{dynamic:"Dynamic proxying",editor_label:"Camera proxying",media:{auto:"Media proxying automatically configured",editor_label:"Media proxying",false:"Media proxying disabled",true:"Media proxying enabled"},ssl_ciphers:{auto:"SSL ciphers automatically configured",default:"Default SSL ciphers",editor_label:"SSL ciphers",insecure:"Insecure SSL ciphers",intermediate:"Intermediate SSL ciphers",modern:"Modern SSL ciphers"},ssl_verification:{auto:"SSL verification automatically configured",editor_label:"SSL verification",false:"SSL verification disabled",true:"SSL verification enabled"}},reolink:{editor_label:"Reolink options",media_resolution:{editor_label:"Media Resolution",high:"High Resolution",low:"Low Resolution"},url:"Reolink UI URL"},title:"Title for this camera (Autodetected from entity)",triggers:{editor_label:"Trigger options",entities:"Trigger from other entities",events:{clips:"Events with new clips",editor_label:"Trigger Events",events:"All events",snapshots:"Events with new snapshots"},motion:"Trigger by auto-detecting the motion sensor",occupancy:"Trigger by auto-detecting the occupancy sensor"},webrtc_card:{editor_label:"WebRTC Card Options",entity:"WebRTC Card Camera Entity (Not a Frigate camera)",url:"WebRTC Card Camera URL"}},common:{controls:{builtin:"Built-in video controls",filter:{editor_label:"Media Filter",mode:"Filter mode",modes:{left:"Media filter in a drawer to the left",none:"No media filter",right:"Media filter in a drawer to the right"}},next_previous:{editor_label:"Next & Previous",size:"Next & previous control size in pixels",style:"Next & previous control style",styles:{chevrons:"Chevrons",icons:"Icons",none:"None",thumbnails:"Thumbnails"}},thumbnails:{editor_label:"Thumbnails",events_media_type:"Whether to show event thumbnails of clips or snapshots",events_media_types:{clips:"Clip thumbnails",snapshots:"Snapshot thumbnails"},media_type:"Whether to show thumnails of events or recordings",media_types:{events:"Events",recordings:"Recordings"},mode:"Thumbnails mode",modes:{above:"Thumbnails above",below:"Thumbnails below",left:"Thumbnails in a drawer to the left",none:"No thumbnails",right:"Thumbnails in a drawer to the right"},show_details:"Show details with thumbnails",show_download_control:"Show download control on thumbnails",show_favorite_control:"Show favorite control on thumbnails",show_timeline_control:"Show timeline control on thumbnails",size:"Thumbnails size in pixels"},timeline:{editor_label:"Mini Timeline",mode:"Mode",modes:{above:"Above",below:"Below",none:"None"},pan_mode:"Default pan mode",pan_modes:{pan:"Pan",seek:"Pan seeks across all media","seek-in-camera":"Pan seeks within selected camera only","seek-in-media":"Pan seeks within selected media item only"}}},display:{editor_label:"Display",grid_columns:"Exact number of grid columns",grid_max_columns:"Maximum number of grid columns",grid_selected_width_factor:"Increase selected media width by this factor",mode:"Mode"},image:{entity:"Entity for use with entity mode",entity_parameters:"Query parameters added to the entity-based picture URLs (e.g. width=1920&height=1080)",mode:"Image mode",modes:{camera:"Home Assistant camera snapshot of camera entity",entity:"Entity with entity_picture attribute",screensaver:"Embedded Frigate logo",url:"Arbitrary image specified by URL"},refresh_seconds:"Number of seconds after which to refresh (0=never)",url:"Static image URL"},media_action_conditions:{all:"All opportunities",hidden:"On browser/tab hiding",microphone_mute:"On microphone mute",microphone_unmute:"On microphone unmute",never:"Never",selected:"On selection",unselected:"On unselection",visible:"On browser/tab visibility"},timeline:{clustering_threshold:"The count of events at which they are clustered (0=no clustering)",events_media_type:"The events media the timeline displays",events_media_types:{all:"All event media types",clips:"Clips",snapshots:"Snapshots"},show_recordings:"Show recordings",style:"Timeline style",styles:{ribbon:"Events on a single ribbon",stack:"Stacked & clustered events"},window_seconds:"The default length of the timeline view in seconds"}},dimensions:{aspect_ratio:"Default aspect ratio (e.g. '16:9')",aspect_ratio_mode:"Aspect ratio mode",aspect_ratio_modes:{dynamic:"Aspect ratio adjusts to media",static:"Static aspect ratio",unconstrained:"Unconstrained aspect ratio"},height:"Card height in CSS units (e.g. '500px')"},live:{auto_mute:"Automatically mute live cameras",auto_pause:"Automatically pause live cameras",auto_play:"Automatically play live cameras",auto_unmute:"Automatically unmute live cameras",controls:{editor_label:"Live Controls",ptz:{editor_label:"PTZ",hide_home:"Hide home control",hide_pan_tilt:"Hide pan & tilt control",hide_zoom:"Hide zoom control",mode:"Mode",modes:{off:"Off",on:"On"},orientation:"Orientation",orientations:{horizontal:"Horizontal",vertical:"Vertical"},position:"Position",positions:{"bottom-left":"Bottom left","bottom-right":"Bottom right","top-left":"Top left","top-right":"Top right"}}},draggable:"Live cameras view can be dragged/swiped",lazy_load:"Live cameras are lazily loaded",lazy_unload:"Live cameras are lazily unloaded",microphone:{always_connected:"Always keep the microphone connected",disconnect_seconds:"Seconds after which to disconnect microphone (0=never)",editor_label:"Microphone",enabled:"Microphone enabled",mute_after_microphone_mute_seconds:"Seconds after microphone mute to mute inbound audio"},preload:"Preload live view in the background",show_image_during_load:"Show still image while the live stream is loading",transition_effect:"Live camera transition effect",zoomable:"Live cameras can be zoomed/panned"},media_viewer:{auto_mute:"Automatically mute media",auto_pause:"Automatically pause media",auto_play:"Automatically play media",auto_unmute:"Automatically unmute media",controls:{editor_label:"Media Viewer Controls"},draggable:"Media Viewer can be dragged/swiped",lazy_load:"Media Viewer media is lazily loaded in carousel",snapshot_click_plays_clip:"Clicking on a snapshot plays a related clip",transition_effect:"Media Viewer transition effect",transition_effects:{none:"No transition",slide:"Slide transition"},zoomable:"Media Viewer can be zoomed/panned"},menu:{alignment:"Menu alignment",alignments:{bottom:"Aligned to the bottom",left:"Aligned to the left",right:"Aligned to the right",top:"Aligned to the top"},button_size:"Menu button size in pixels",buttons:{alignment:"Button alignment",alignments:{matching:"Matching the menu alignment",opposing:"Opposing the menu alignment"},camera_ui:"Camera user interface",cameras:"Cameras",clips:"Clips",display_mode:"Display mode",download:"Download",enabled:"Button enabled",expand:"Expand",frigate:"Frigate menu / Default view",fullscreen:"Fullscreen",icon:"Icon",image:"Image",live:"Live",media_player:"Send to media player",microphone:"Microphone",mute:"Mute / Unmute",permanent:"Show when the menu is hidden",play:"Play / Pause",priority:"Priority",ptz_controls:"Show PTZ controls",ptz_home:"PTZ Home",recordings:"Recordings",screenshot:"Screenshot",snapshots:"Snapshots",substreams:"Substream(s)",timeline:"Timeline",type:"Button type",types:{momentary:"Momentary",toggle:"Toggle"}},position:"Menu position",positions:{bottom:"Positioned on the bottom",left:"Positioned on the left",right:"Positioned on the right",top:"Positioned on the top"},style:"Menu style",styles:{hidden:"Hidden menu",hover:"Hover menu","hover-card":"Hover menu (card-wide)",none:"No menu",outside:"Outside menu",overlay:"Overlay menu"}},overrides:{info:"This card configuration has manually specified overrides configured which may override values shown in the visual editor, please consult the code editor to view/modify these overrides"},performance:{features:{animated_progress_indicator:"Animated Progress Indicator",editor_label:"Feature Options",max_simultaneous_engine_requests:"Max simultaneous camera engine requests",media_chunk_size:"Media chunk size"},style:{border_radius:"Curves",box_shadow:"Shadows",editor_label:"Style Options"},warning:"This card is in low profile mode so defaults have changed to optimize performance"},profiles:{casting:"Casting",editor_label:"Configuration profiles","low-performance":"Low performance",scrubbing:"Video scrubbing"},status_bar:{height:"Status bar height in pixels",items:{enabled:"Item enabled",engine:"Camera engine",live_provider:"Live provider",priority:"Item priority",resolution:"Resolution",technology:"Technology",title:"Title"},popup_seconds:"Status bar popup seconds",position:"Status bar position",positions:{bottom:"Positioned on the bottom",top:"Positioned on the top"},style:"Status bar style",styles:{hover:"Hover status bar","hover-card":"Hover status bar (card-wide)",none:"No status bar",outside:"Outside status bar",overlay:"Overlay status bar",popup:"Popup status bar"}},view:{camera_select:"View for newly selected cameras",dark_mode:"Dark mode",dark_modes:{auto:"Auto",off:"Off",on:"On"},default:"Default view",default_cycle_camera:"Cycle through cameras when default view updates",default_reset:{after_interaction:"Reset to the default view after user interaction ends",editor_label:"Default view reset behavior",entities:"Reset to the default view on entity state change",every_seconds:"Reset to default view every X seconds (0=never)",interaction_mode:"How default reset behaves when the card has human interaction",interaction_modes:{active:"Only allow reset when card has active human interaction",all:"Reset regardless of human interaction",inactive:"Only reset when card has no human interaction"}},interaction_seconds:"Seconds after user action to remain interacted with (0=never)",keyboard_shortcuts:{editor_label:"Keyboard shortcuts",enabled:"Keyboard shortcuts enabled",ptz_down:"PTZ Down",ptz_home:"PTZ Home",ptz_left:"PTZ Left",ptz_right:"PTZ Right",ptz_up:"PTZ Up",ptz_zoom_in:"PTZ Zoom In",ptz_zoom_out:"PTZ Zoom Out"},triggers:{actions:{editor_label:"Trigger actions",interaction_mode:"How to handle actions when the card has human interaction",interaction_modes:{active:"Only trigger actions when card has human interaction",all:"Trigger actions regardless of human interaction",inactive:"Only trigger actions when card has no human interaction"},trigger:"Trigger action",triggers:{default:"Change to or update default view",live:"Change to or update live view",media:"Change to the relevant media view for new media",none:"No action"},untrigger:"Untrigger action",untriggers:{default:"Change to default view/camera",none:"No action"}},editor_label:"Trigger behavior",filter_selected_camera:"Only trigger on selected camera",show_trigger_status:"Show pulsing border when triggered",untrigger_seconds:"Seconds after inactive state change to untrigger"},views:{clip:"Most recent clip",clips:"Clips gallery",current:"Current view",image:"Static image",live:"Live view",recording:"Most recent recording",recordings:"Recordings gallery",snapshot:"Most recent snapshot",snapshots:"Snapshots gallery",timeline:"Timeline view"}}},M_={grid:"Show media viewer for each camera in a grid",single:"Show single media viewer"},k_={add_new_camera:"Add new camera",button:"Button",camera:"Camera",cameras:"Cameras",cameras_secondary:"What cameras to render on this card",delete:"Delete",dimensions:"Card dimensions",dimensions_secondary:"Card dimensions & shape options",image:"Image",image_secondary:"Static image view options",live:"Live",live_secondary:"Live camera view options",media_gallery:"Media gallery",media_gallery_secondary:"Media gallery options",media_viewer:"Media viewer",media_viewer_secondary:"Viewer for static media (clips, snapshots or recordings)",menu:"Menu",menu_secondary:"Menu look & feel options",move_down:"Move down",move_up:"Move up",overrides:"Overrides are active",overrides_secondary:"Dynamic configuration overrides detected",performance:"Performance",performance_secondary:"Card performance options",profiles:"Configuration profiles",profiles_secondary:"Choose pre-configured sets of defaults",status_bar:"Status bar",status_bar_secondary:"Status bar look & feel options",timeline:"Timeline",timeline_secondary:"Event timeline options",upgrade:"Upgrade",upgrade_available:"An automatic card configuration upgrade is available",view:"View",view_secondary:"What the card should show and how to show it"},S_={ptz:{down:"Down",home:"Home",left:"Left",right:"Right",up:"Up",zoom_in:"Zoom In",zoom_out:"Zoom Out"}},E_={awaiting_live:"Waiting for live stream to load ...",awaiting_media:"Waiting for media to load",camera_initialization:"Camera initialization failed",camera_initialization_reolink:"Could not initialize Reolink camera",could_not_render_elements:"Could not render picture elements",could_not_resolve:"Could not resolve media URL",diagnostics:"Card diagnostics. Please review for confidential information prior to sharing",download_no_media:"No media to download",download_sign_failed:"Could not sign media URL for download",duplicate_camera_id:"Duplicate Frigate camera id for the following camera, use the 'id' parameter to uniquely identify cameras",empty_response:"Received empty response from Home Assistant for request",failed_response:"Failed to receive response from Home Assistant for request",failed_retain:"Could not retain event",failed_sign:"Could not sign Home Assistant URL",image_load_error:"The image could not be loaded",invalid_configuration:"Invalid configuration",invalid_configuration_no_hint:"No location hint available (bad or missing type?)",invalid_configuration_override:"Invalid override configuration",invalid_elements_config:"Invalid picture elements configuration",invalid_response:"Received invalid response from Home Assistant for request",jsmpeg_no_player:"Could not start JSMPEG player",live_camera_no_endpoint:"Could not get camera endpoint for this live provider (incomplete configuration?)",live_camera_not_found:"The configured camera_entity was not found",live_camera_unavailable:"Camera unavailable",no_camera_engine:"Could not determine suitable engine for camera",no_camera_entity:"Could not find camera entity",no_camera_entity_for_triggers:"A camera entity is required in order to autodetect triggers",no_camera_id:"Could not determine camera id for the following camera, may need to set 'id' parameter manually",no_camera_name:"Could not determine a Frigate camera name for camera (or one of its dependents), please specify either 'camera_entity' or 'camera_name'",no_dashboard_or_view:"Both 'dashboard_path' and 'view_path' parameters are required for the 'dashboard' cast method",no_live_camera:"The camera_entity parameter must be set and valid for this live provider",no_supported_camera:"The selected camera does not support this view",no_supported_cameras:"No cameras support this view",reconnecting:"Reconnecting",too_many_automations:"Too many nested automation calls, please check your configuration for loops",troubleshooting:"Check troubleshooting",unknown:"Unknown error",upgrade_available:"An automated card configuration upgrade is available, please visit the visual card editor",webrtc_card_reported_error:"WebRTC Card reported an error",webrtc_card_waiting:"Waiting for WebRTC Card to load ..."},$_={camera:"Camera",duration:"Duration",in_progress:"In Progress",score:"Score",seek:"Seek",start:"Start",tag:"Tag",what:"What",where:"Where"},A_={assign:"Assign",assigning:"Assigning",modifiers:{alt:"Alt",ctrl:"Ctrl",meta:"Meta",shift:"Shift"},unassign:"Unassign"},z_={all:"All",camera:"Camera",favorite:"Favorite",media_type:"Media Type",media_types:{clips:"Clips",recordings:"Recordings",snapshots:"Snapshots"},not_favorite:"Not Favorite",select_camera:"Select camera...",select_favorite:"Select favorite...",select_media_type:"Select media type...",select_tag:"Select tag...",select_what:"Select what...",select_when:"Select when...",select_where:"Select where...",tag:"Tag",what:"What",when:"When",whens:{custom:"Custom",past_month:"Past Month",past_week:"Past Week",today:"Today",yesterday:"Yesterday"},where:"Where"},I_={unseekable:"Seek time not found in media"},T_={camera:"Camera",duration:"Duration",events:"Events",in_progress:"In Progress",seek:"Seek",start:"Start"},j_={download:"Download media",no_thumbnail:"No thumbnail available",retain_indefinitely:"Media will be indefinitely retained",timeline:"See media in timeline"},O_={select_date:"Choose date"},D_={common:x_,config:C_,display_modes:M_,editor:k_,elements:S_,error:E_,event:$_,key_assigner:A_,media_filter:z_,media_viewer:I_,recording:T_,thumbnail:j_,timeline:O_},R_=Object.freeze({__proto__:null,common:x_,config:C_,default:D_,display_modes:M_,editor:k_,elements:S_,error:E_,event:$_,key_assigner:A_,media_filter:z_,media_viewer:I_,recording:T_,thumbnail:j_,timeline:O_});const P_="en",L_={[P_]:R_};let N_;function F_(e){const t=e=>e.replace("-","_"),n=e?.language??e?.selectedLanguage;if(n)return t(n);const a=localStorage.getItem("selectedLanguage");if(a){const e=JSON.parse(a);if(e)return t(e)}for(const e of navigator.languages){const n=t(e);if(n&&n in L_)return n}return P_}function V_(e,t="",n=""){let a="";try{a=e.split(".").reduce(((e,t)=>e[t]),L_[N_??P_])}catch(e){}return a||(a=e.split(".").reduce(((e,t)=>e[t]),L_[P_])),""!==t&&""!==n&&(a=a.replace(t,n)),a}function H_(e){return"string"==typeof e?.id&&e.id||"string"==typeof e?.camera_entity&&e.camera_entity||"object"==typeof e?.webrtc_card&&e.webrtc_card&&("string"==typeof e.webrtc_card.entity&&e.webrtc_card.entity||"string"==typeof e.webrtc_card.url&&e.webrtc_card.url)||"object"==typeof e?.go2rtc&&e.go2rtc&&"string"==typeof e.go2rtc.url&&"string"==typeof e.go2rtc.stream&&`${e.go2rtc.url}#${e.go2rtc.stream}`||"object"==typeof e?.frigate&&e.frigate&&"string"==typeof e?.frigate.camera_name&&e.frigate.camera_name||""}const B_=(e,...t)=>{e?.debug?.logging&&console.debug(...t)},q_=(e,t,n)=>"preset"===t?(n?.preset?e.ptz.presets?.[n.preset]:null)??null:n?.phase?e.ptz[`actions_${t}_${n.phase}`]??null:e.ptz[`actions_${t}`]??null,U_=(e,t,n)=>!!q_(e,t,n),W_=(e,t)=>{const n=U_(e,t,{phase:"start"})&&U_(e,t,{phase:"stop"}),a=U_(e,t);return n||a?[...n?["continuous"]:[],...a?["relative"]:[]]:null},Z_=e=>{const t=W_(e,"left"),n=W_(e,"right"),a=W_(e,"up"),i=W_(e,"down"),r=W_(e,"zoom_in"),o=W_(e,"zoom_out"),s=e.ptz.presets?Object.keys(e.ptz.presets):void 0;return t?.length||n?.length||a?.length||i?.length||r?.length||o?.length||s?.length?{...t?{left:t}:{},...n?{right:n}:{},...a?{up:a}:{},...i?{down:i}:{},...r?{zoomIn:r}:{},...o?{zoomOut:o}:{},...s?{presets:s}:{}}:null};class Q_{constructor(e,t){this._capabilities=e;for(const e of t?.disable??[])this._disable(e);for(const e of Ts)t?.disableExcept?.length&&!t.disableExcept.includes(e)&&this._disable(e)}_disable(e){delete this._capabilities[e]}matches(e){let t=!0;return"string"==typeof e&&(t&&=this.has(e)),"object"==typeof e&&e.allCapabilities&&(t&&=e.allCapabilities.every((e=>this.has(e)))),"object"==typeof e&&e.anyCapabilities&&(t&&=e.anyCapabilities.some((e=>this.has(e)))),t}has(e){return!!this._capabilities[e]}getPTZCapabilities(){return this._capabilities.ptz??null}hasPTZCapability(){return!!(this._capabilities.ptz?.down?.length||this._capabilities.ptz?.up?.length||this._capabilities.ptz?.left?.length||this._capabilities.ptz?.right?.length||this._capabilities.ptz?.zoomIn?.length||this._capabilities.ptz?.zoomOut?.length||this._capabilities.ptz?.presets?.length)}getRawCapabilities(){return this._capabilities}}function G_(e,t,n){var a=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var r=Array(i);++at||r&&o&&c&&!s&&!l||a&&o&&c||!n&&c||!i)return 1;if(!a&&!r&&!l&&e=s?c:c*("desc"==n[a]?-1:1)}return e.index-t.index}(e,t,n)}))}function Ev(e,t,n,a){return null==e?[]:(dp(t)||(t=null==t?[]:[t]),dp(n=a?void 0:n)||(n=null==n?[]:[n]),Sv(e,t,n))}async function $v(e,t,n,a=!1){let i;try{i=await e.callWS(n)}catch(e){if(!(e instanceof Error))throw new zs(V_("error.failed_response"),{request:n,response:e});throw e}if(!i)throw new zs(V_("error.empty_response"),{request:n});const r=a?t.safeParse(JSON.parse(i)):t.safeParse(i);if(!r.success)throw new zs(V_("error.invalid_response"),{request:n,response:i,invalid_keys:Rs(r.error)});return r.data}const Av=ba.lazy((()=>ba.object({title:ba.string(),media_class:ba.string(),media_content_type:ba.string(),media_content_id:ba.string(),can_play:ba.boolean(),can_expand:ba.boolean(),children_media_class:ba.string().nullable().optional(),thumbnail:ba.string().nullable(),children:ba.array(Av).nullable().optional()}))),zv="video",Iv="image",Tv=60,jv=e=>Ev(e,(e=>e._metadata?.startDate),"desc");class Ov{async walkBrowseMedias(e,t,n){return t&&t.length?(await tf(t,(async t=>await this._walkBrowseMedia(e,t,n)))).flat():[]}async _walkBrowseMedia(e,t,n){let a=[];for(const i of function(e,t,n){t=(n?dg(e,t,n):void 0===t)?1:K_(Sg(t),0);var a=null==e?0:e.length;if(!a||t<1)return[];for(var i=0,r=0,o=Array(Y_(a/t));iawait this._browseMedia(e,a,{cache:n?.cache,matcher:t.matcher,metadataGenerator:t.metadataGenerator})));for(const e of r)for(const n of e.children??[])t.matcher(n)&&a.push(n);if(t.sorter&&(a=t.sorter(a)),t.earlyExit&&t.earlyExit(a))break}const i=t.advance?t.advance(a):null;return i?.length?await this.walkBrowseMedias(e,i,n):a}async _browseMedia(e,t,n){const a="object"==typeof t?t.media_content_id:t,i=n?.cache?n.cache.get(a):null;if(i)return i;const r={type:"media_source/browse_media",media_content_id:a},o=await $v(e,Av,r);if(n?.metadataGenerator)for(const e of o.children??[])e._metadata=n.metadataGenerator(e,"object"==typeof t?t:void 0)??void 0;return n?.cache&&n.cache.set(a,o,Ud(new Date,{seconds:60})),o}}function Dv(e,t){return bm(e,t)}function Rv(e,t){return e&&e.length?function(e,t){for(var n=-1,a=e.length,i=0,r=[];++nNv(t,e)))}add(e){this._ranges.push(e),this._ranges=Vv(this._ranges)}clear(){this._ranges=[]}}class Lv{constructor(e){this._ranges=e??[]}hasCoverage(e){const t=new Date;return this._ranges.some((n=>tet.start>=e.start&&t.end<=e.end,Fv=(e,t)=>e.start>=t.start&&e.start<=t.end||e.end>=t.start&&e.end<=t.end||e.start<=t.start&&e.end>=t.end,Vv=(e,t=0)=>{const n=[];e=Ev(e,(e=>e.start),"asc");let a=null;for(const i of e){const e=i.start instanceof Date?i.start.getTime():i.start;if(!a){a={...i};continue}(a.end instanceof Date?a.end.getTime():a.end)+1e3*t>=e?i.end>a.end&&(a.end=i.end):(n.push(a),a={...i})}return a&&n.push(a),n};class Hv{constructor(){this._data=[]}get(e){const t=new Date;for(const n of this._data)if((!n.expires||t<=n.expires)&&this._contains(e,n.request))return n.response;return null}clear(){this._data=[]}has(e){return!!this.get(e)}set(e,t,n){this._data.push({request:e,response:t,expires:n}),this._expireOldRequests()}_contains(e,t){return Dv(e,t)}_expireOldRequests(){const e=new Date;this._data=this._data.filter((t=>!t.expires||e=e.start.getTime()){if(a>e.end.getTime())break;t.push(n)}}return t}getSize(){return this._data.length}expireMatches(e){this._data=this._data.filter((t=>!e(t)))}}class Uv{constructor(){this._segments=new Map}add(e,t,n){let a=this._segments.get(e);a||(a=new qv((e=>1e3*e.start_time),(e=>e.id)),this._segments.set(e,a)),a.add(t,n)}clear(){this._segments.clear()}hasCoverage(e,t){return!!this._segments.get(e)?.hasCoverage(t)}get(e,t){return this._segments.get(e)?.get(t)??null}getSize(e){return this._segments.get(e)?.getSize()??null}getCameraIDs(){return[...this._segments.keys()]}expireMatches(e,t){this._segments.get(e)?.expireMatches(t)}}class Wv extends zs{}class Zv extends zs{}var Qv,Gv,Yv;!function(e){e.Event="event-query",e.Recording="recording-query",e.RecordingSegments="recording-segments-query",e.MediaMetadata="media-metadata"}(Qv||(Qv={})),function(e){e.Event="event-results",e.Recording="recording-results",e.RecordingSegments="recording-segments-results",e.MediaMetadata="media-metadata-results"}(Gv||(Gv={})),function(e){e.Frigate="frigate",e.Generic="generic",e.MotionEye="motioneye",e.Reolink="reolink"}(Yv||(Yv={}));const Kv=e=>e.camera_entity??e.webrtc_card?.entity??null;class Xv{constructor(e){this._entityRegistryManager=e}async createEngine(e,t){let n;switch(e){case Yv.Generic:const{GenericCameraManagerEngine:e}=await import("./engine-generic-97fdd47e.js").then((function(e){return e.e}));n=new e(t.stateWatcher,t.eventCallback);break;case Yv.Frigate:const{FrigateCameraManagerEngine:a}=await import("./engine-frigate-f675aa79.js");n=new a(this._entityRegistryManager,t.stateWatcher,new Uv,new Bv,t.eventCallback);break;case Yv.MotionEye:const{MotionEyeCameraManagerEngine:i}=await import("./engine-motioneye-7a5554b3.js");n=new i(this._entityRegistryManager,t.stateWatcher,new Ov,t.resolvedMediaCache,new Bv,t.eventCallback);break;case Yv.Reolink:const{ReolinkCameraManagerEngine:r}=await import("./engine-reolink-13b9bf20.js");n=new r(this._entityRegistryManager,t.stateWatcher,new Ov,t.resolvedMediaCache,new Bv,t.eventCallback)}return n}async getEngineForCamera(e,t){let n=null;if("frigate"===t.engine)n=Yv.Frigate;else if("motioneye"===t.engine)n=Yv.MotionEye;else if("generic"===t.engine)n=Yv.Generic;else if("reolink"===t.engine)n=Yv.Reolink;else{const a=Kv(t);if(a){const i=await this._entityRegistryManager.getEntity(e,a);if(!i){if(e.states[a])return Yv.Generic;throw new Wv(V_("error.no_camera_entity"),t)}switch(i?.platform){case"frigate":n=Yv.Frigate;break;case"motioneye":n=Yv.MotionEye;break;case"reolink":n=Yv.Reolink;break;default:n=Yv.Generic}}else t.frigate.camera_name?n=Yv.Frigate:(t.webrtc_card?.url||t.go2rtc?.url&&t.go2rtc?.stream)&&(n=Yv.Generic)}return n}}class Jv{constructor(){this._cameras=new Map,this._enginesByType=new Map}addCamera(e){this._cameras.set(e.getID(),e),this._enginesByType.set(e.getEngine().getEngineType(),e.getEngine())}async setCameras(e){for(const t of e){const e=this._cameras.get(t.getID());e!==t&&(this.addCamera(t),await(e?.destroy()))}for(const t of this._cameras.values())e.includes(t)||(await t.destroy(),this._cameras.delete(t.getID()))}async reset(){await tf(this._cameras.values(),(e=>e.destroy())),this._cameras.clear(),this._enginesByType.clear()}getCamera(e){return this._cameras.get(e)??null}getCameras(){return this._cameras}getCameraConfig(e){return this._cameras.get(e)?.getConfig()??null}hasCameraID(e){return this._cameras.has(e)}getCameraCount(){return this._cameras.size}getDefaultCameraID(){return this._cameras.keys().next().value??null}*getCameraConfigs(e){for(const[t,n]of this.getCameraConfigEntries(e))yield n}*getCameraConfigEntries(e){for(const t of e??this._cameras.keys()){const e=this.getCameraConfig(t);e&&(yield[t,e])}}getCameraIDs(){return new Set(this._cameras.keys())}getCameraIDsWithCapability(e){const t=new Set;for(const n of this._cameras.values())n.getCapabilities()?.matches(e)&&t.add(n.getID());return t}getCameraConfigForMedia(e){return this.getCameraConfig(e.getCameraID())}getEngineOfType(e){return this._enginesByType.get(e)??null}getEngineForCameraID(e){return this._cameras.get(e)?.getEngine()??null}getEnginesForCameraIDs(e){const t=new Map;for(const n of e){const e=this.getEngineForCameraID(n);e&&(t.has(e)||t.set(e,new Set),t.get(e)?.add(n))}return t.size?t:null}getEngineForMedia(e){return this.getEngineForCameraID(e.getCameraID())}getAllDependentCameras(e,t){const n=new Set,a=new Set,i=e=>{n.add(e);const r=this.getCamera(e),o=r?.getConfig();if(r&&o){t&&!r.getCapabilities()?.matches(t)||a.add(e);const s=new Set;o.dependencies.cameras.forEach((e=>s.add(e))),o.dependencies.all_cameras&&this.getCameraIDs().forEach((e=>s.add(e)));for(const e of s)n.has(e)||i(e)}};return i(e),a}}const ey=e=>{return Ev((n=e=>e.getID()??e,(t=e)&&t.length?Hg(t,xv(n)):[]),(e=>e.getStartTime()??e.getID()),"asc");var t,n};class ty{static isEventQuery(e){return e.type===Qv.Event}static isRecordingQuery(e){return e.type===Qv.Recording}static isRecordingSegmentsQuery(e){return e.type===Qv.RecordingSegments}static isMediaMetadataQuery(e){return e.type===Qv.MediaMetadata}}class ny{static isEventQueryResult(e){return e.type===Gv.Event}static isRecordingQueryResult(e){return e.type===Gv.Recording}static isRecordingSegmentsQueryResult(e){return e.type===Gv.RecordingSegments}static isMediaMetadataQueryResult(e){return e.type===Gv.MediaMetadata}}class ay{constructor(e,t){this._requestLimit=new w_,this._api=e,this._engineFactory=t?.factory??new Xv(this._api.getEntityRegistryManager()),this._store=t?.store??new Jv}async initializeCamerasFromConfig(){const e=this._api.getConfigManager().getConfig(),t=this._api.getHASSManager().getHASS();if(!e||!t)return!1;this._requestLimit.concurrency=e.performance.features.max_simultaneous_engine_requests??1/0;const n=e.cameras.map((t=>{return n={},a=u_(e?.cameras_global),hg(n,a,t,((e,t)=>Array.isArray(t)?t:void 0));var n,a}));try{await this._initializeCameras(n)}catch(e){return this._api.getMessageManager().setErrorIfHigherPriority(e,V_("error.camera_initialization")),!1}return!0}async reset(){await this._store.reset()}async _getEnginesForCameras(e){const t=new Map,n=new Map,a=this._api.getHASSManager().getHASS(); +/* istanbul ignore if: the if path cannot be reached -- @preserve */ +if(!a)return t;const i=await(async e=>await tf(e,(e=>this._engineFactory.getEngineForCamera(a,e))))(e);for(const[a,r]of e.entries()){const e=i[a],o=e?n.get(e)??await this._engineFactory.createEngine(e,{eventCallback:e=>this._api.getTriggersManager().handleCameraEvent(e),stateWatcher:this._api.getHASSManager().getStateWatcher(),resolvedMediaCache:this._api.getResolvedMediaCache()}):null;if(!o||!e)throw new Wv(V_("error.no_camera_engine"),u_(r));n.set(e,o),t.set(r,o)}return t}async _initializeCameras(e){const t=new Date,n=this._api.getHASSManager().getHASS(); +/* istanbul ignore if: the if path cannot be reached -- @preserve */ +if(!n)return;e.some((e=>(e=>e.triggers.motion||e.triggers.occupancy)(e)))&&await this._api.getEntityRegistryManager().fetchEntityList(n);const a=await this._getEnginesForCameras(e),i=await tf(a.entries(),(async([e,t])=>await t.createCamera(n,e))),r=async()=>{i.forEach((e=>e.destroy()))},o=new Set;for(const e of i){const t=H_(e.getConfig());if(!t)throw await r(),new Wv(V_("error.no_camera_id"),e.getConfig());if(o.has(t))throw await r(),new Wv(V_("error.duplicate_camera_id"),e.getConfig());e.setID(t),o.add(t)}await this._store.setCameras(i),B_(this._api.getConfigManager().getCardWideConfig(),"Frigate Card CameraManager initialized (Cameras: ",this._store.getCameras(),`, Duration: ${((new Date).getTime()-t.getTime())/1e3}s,`,")")}isInitialized(){return this._store.getCameraCount()>0}getStore(){return this._store}generateDefaultEventQueries(e,t){return this._generateDefaultQueries(e,{type:Qv.Event,...t})}generateDefaultRecordingQueries(e,t){return this._generateDefaultQueries(e,{type:Qv.Recording,...t})}generateDefaultRecordingSegmentsQueries(e,t){return this._generateDefaultQueries(e,{type:Qv.RecordingSegments,...t})}_generateDefaultQueries(e,t){const n=[],a=Zg(e),i=this._store.getEnginesForCameraIDs(a);if(!i)return null;for(const[e,a]of i){let i=null; +/* istanbul ignore else: the else path cannot be reached -- @preserve */ty.isEventQuery(t)?i=e.generateDefaultEventQuery(this._store,a,t):ty.isRecordingQuery(t)?i=e.generateDefaultRecordingQuery(this._store,a,t):ty.isRecordingSegmentsQuery(t)&&(i=e.generateDefaultRecordingSegmentsQuery(this._store,a,t));for(const e of i??[])n.push(e)}return n.length?n:null}async getMediaMetadata(){const e=new Set,t=new Set,n=new Set,a=new Set,i={type:Qv.MediaMetadata,cameraIDs:this._store.getCameraIDs()},r=await this._handleQuery(i);for(const i of r.values())i.metadata.tags&&i.metadata.tags.forEach(e.add,e),i.metadata.what&&i.metadata.what.forEach(t.add,t),i.metadata.where&&i.metadata.where.forEach(n.add,n),i.metadata.days&&i.metadata.days.forEach(a.add,a);return t.size||n.size||a.size||e.size?{...e.size&&{tags:e},...t.size&&{what:t},...n.size&&{where:n},...a.size&&{days:a}}:null}async getEvents(e,t){return await this._handleQuery(e,t)}async getRecordings(e,t){return await this._handleQuery(e,t)}async getRecordingSegments(e,t){return await this._handleQuery(e,t)}async executeMediaQueries(e,t){return this._convertQueryResultsToMedia(await this._handleQuery(e,t))}async extendMediaQueries(e,t,n,a){if(!this._api.getHASSManager().getHASS())return null;const i=e=>{let n=null;for(const a of t){const t=a.getStartTime();t&&(!n||"earliest"===e&&tn)&&(n=t)}return n},r=this._api.getConfigManager().getCardWideConfig()?.performance?.features.media_chunk_size??50,o=[],s=[];for(const t of e){const e={...t}; +/* istanbul ignore else: the else path cannot be reached -- @preserve */if("later"===n){const t=i("latest");t&&(e.start=t,delete e.end)}else if("earlier"===n){const t=i("earliest");t&&(e.end=t,delete e.start)}e.limit=r,s.push({...t,limit:(t.limit??0)+r}),o.push(e)}const c=this._convertQueryResultsToMedia(await this._handleQuery(o,a));if(!c.length)return null;const l=ey(t.concat(c));return l.length===t.length?null:{queries:s,results:l}}async getMediaDownloadPath(e){const t=this._store.getCameraConfigForMedia(e),n=this._store.getEngineForMedia(e),a=this._api.getHASSManager().getHASS();return t&&n&&a?await n.getMediaDownloadPath(a,t,e):null}getMediaCapabilities(e){const t=this._store.getEngineForMedia(e);return t?t.getMediaCapabilities(e):null}async favoriteMedia(e,t){const n=this._store.getCameraConfigForMedia(e),a=this._store.getEngineForMedia(e),i=this._api.getHASSManager().getHASS();if(!n||!a||!i)return;const r=new Date;await this._requestLimit.add((()=>a.favoriteMedia(i,n,e,t))),B_(this._api.getConfigManager().getCardWideConfig(),"Frigate Card CameraManager favorite request (",`Duration: ${((new Date).getTime()-r.getTime())/1e3}s,`,"Media:",e.getID(),", Favorite:",t,")")}areMediaQueriesResultsFresh(e,t){const n=new Date;for(const a of e){const e=this._store.getEnginesForCameraIDs(a.cameraIDs);for(const[i,r]of e??[]){const e=i.getQueryResultMaxAge({...a,cameraIDs:r});if(null!==e&&Ud(t,{seconds:e})a?null:await this._requestLimit.add((()=>i.getMediaSeekTime(r,this._store,e,t)))??null}async _handleQuery(e,t){const n=Wg(e),a=new Map,i=new Date,r=this._api.getHASSManager().getHASS();if(!r)return a;const o=async(e,n)=>{let i=null; +/* istanbul ignore else: the else path cannot be reached -- @preserve */ty.isEventQuery(n)?i=await e.getEvents(r,this._store,n,t):ty.isRecordingQuery(n)?i=await e.getRecordings(r,this._store,n,t):ty.isRecordingSegmentsQuery(n)?i=await e.getRecordingSegments(r,this._store,n,t):ty.isMediaMetadataQuery(n)&&(i=await e.getMediaMetadata(r,this._store,n,t)),i?.forEach(((e,t)=>a.set(t,e)))},s=async e=>{const t=this._store.getEnginesForCameraIDs(e.cameraIDs);t&&await Promise.all(Array.from(t.keys()).map((n=>this._requestLimit.add((()=>o(n,{...e,cameraIDs:t.get(n)}))))))};await Promise.all(n.map((e=>s(e))));const c=(l=Array.from(a.values()).map((e=>Number(e.cached??0))))&&l.length?function(e,t){for(var n,a=-1,i=e.length;++athis._store.getCamera(e))).filter(sf);return new Q_({live:t.some((e=>e.getCapabilities()?.has("live"))),clips:t.some((e=>e.getCapabilities()?.has("clips"))),recordings:t.some((e=>e.getCapabilities()?.has("recordings"))),snapshots:t.some((e=>e.getCapabilities()?.has("snapshots"))),"favorite-events":t.some((e=>e.getCapabilities()?.has("favorite-events"))),"favorite-recordings":t.some((e=>e.getCapabilities()?.has("favorite-recordings"))),seek:t.some((e=>e.getCapabilities()?.has("seek"))),menu:t.some((e=>e.getCapabilities()?.has("menu")))})}async executePTZAction(e,t,n){const a=this._store.getCameraConfig(e);if(!a)return;const i=q_(a,t,n);if(i)return await this._api.getActionsManager().executeActions(i);const r=this._api.getHASSManager().getHASS(),o=this._store.getEngineForCameraID(e);return o&&r?await this._requestLimit.add((()=>o.executePTZAction(r,a,t,n))):void 0}}class iy{constructor(e){this._cache=new Map,this._keyCallback=e}has(e){return this._cache.has(e)}getMatches(e){return[...this._cache.values()].filter(e)}get(e){return this._cache.get(e)??null}add(e){const t=e=>this._cache.set(this._keyCallback(e),e);Array.isArray(e)?e.forEach(t):t(e)}}const ry=ba.object({id:ba.string(),model:ba.string().nullable(),config_entries:ba.string().array(),manufacturer:ba.string().nullable()}).array();class oy{constructor(e){this._fetchedDeviceList=!1,this._cache=e}async getDevice(e,t){return this._cache.has(t)?this._cache.get(t):(await this._fetchDeviceList(e),this._cache.get(t)??null)}async getMatchingDevices(e,t){return await this._fetchDeviceList(e),this._cache.getMatches(t)}async _fetchDeviceList(e){if(this._fetchedDeviceList)return;let t=null;try{t=await $v(e,ry,{type:"config/device_registry/list"})}catch(e){return void Gg(e)}this._cache.add(t),this._fetchedDeviceList=!0}}const sy=ba.object({config_entry_id:ba.string().nullable(),device_id:ba.string().nullable(),disabled_by:ba.string().nullable(),entity_id:ba.string(),hidden_by:ba.string().nullable(),platform:ba.string(),translation_key:ba.string().nullable(),unique_id:ba.string().or(ba.number()).optional()}),cy=sy.array();class ly{constructor(e){this._fetchedEntityList=!1,this._cache=e}async getEntity(e,t){const n=this._cache.get(t);if(n)return n;let a=null;try{a=await $v(e,sy,{type:"config/entity_registry/get",entity_id:t})}catch(e){return Gg(e),null}return this._cache.add(a),a}async getMatchingEntities(e,t){return await this.fetchEntityList(e),this._cache.getMatches(t)}async getEntities(e,t){const n=new Map;return await Promise.all(t.map((async t=>{const a=await this.getEntity(e,t);a&&n.set(t,a)}))),n}async fetchEntityList(e){if(this._fetchedEntityList)return;let t=null;try{t=await $v(e,cy,{type:"config/entity_registry/list"})}catch(e){return void Gg(e)}this._cache.add(t),this._fetchedEntityList=!0}}class dy extends Map{constructor(e={}){if(super(),!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof e.maxAge&&0===e.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=e.maxSize,this.maxAge=e.maxAge||Number.POSITIVE_INFINITY,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(e){if("function"==typeof this.onEviction)for(const[t,n]of e)this.onEviction(t,n.value)}_deleteIfExpired(e,t){return"number"==typeof t.expiry&&t.expiry<=Date.now()&&("function"==typeof this.onEviction&&this.onEviction(e,t.value),this.delete(e))}_getOrDeleteIfExpired(e,t){if(!1===this._deleteIfExpired(e,t))return t.value}_getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.value}_peek(e,t){const n=t.get(e);return this._getItemValue(e,n)}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}*_entriesAscending(){for(const e of this.oldCache){const[t,n]=e;if(!this.cache.has(t)){!1===this._deleteIfExpired(t,n)&&(yield e)}}for(const e of this.cache){const[t,n]=e;!1===this._deleteIfExpired(t,n)&&(yield e)}}get(e){if(this.cache.has(e)){const t=this.cache.get(e);return this._getItemValue(e,t)}if(this.oldCache.has(e)){const t=this.oldCache.get(e);if(!1===this._deleteIfExpired(e,t))return this._moveToRecent(e,t),t.value}}set(e,t,{maxAge:n=this.maxAge}={}){const a="number"==typeof n&&n!==Number.POSITIVE_INFINITY?Date.now()+n:void 0;return this.cache.has(e)?this.cache.set(e,{value:t,expiry:a}):this._set(e,{value:t,expiry:a}),this}has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.get(e)):!!this.oldCache.has(e)&&!this._deleteIfExpired(e,this.oldCache.get(e))}peek(e){return this.cache.has(e)?this._peek(e,this.cache):this.oldCache.has(e)?this._peek(e,this.oldCache):void 0}delete(e){const t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");const t=[...this._entriesAscending()],n=t.length-e;n<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(n>0&&this._emitEvictions(t.slice(0,n)),this.oldCache=new Map(t.slice(n)),this.cache=new Map,this._size=0),this.maxSize=e}*keys(){for(const[e]of this)yield e}*values(){for(const[,e]of this)yield e}*[Symbol.iterator](){for(const e of this.cache){const[t,n]=e;!1===this._deleteIfExpired(t,n)&&(yield[t,n.value])}for(const e of this.oldCache){const[t,n]=e;if(!this.cache.has(t)){!1===this._deleteIfExpired(t,n)&&(yield[t,n.value])}}}*entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;--t){const n=e[t],[a,i]=n;!1===this._deleteIfExpired(a,i)&&(yield[a,i.value])}e=[...this.oldCache];for(let t=e.length-1;t>=0;--t){const n=e[t],[a,i]=n;if(!this.cache.has(a)){!1===this._deleteIfExpired(a,i)&&(yield[a,i.value])}}}*entriesAscending(){for(const[e,t]of this._entriesAscending())yield[e,t.value]}get size(){if(!this._size)return this.oldCache.size;let e=0;for(const t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}entries(){return this.entriesAscending()}forEach(e,t=this){for(const[n,a]of this.entriesAscending())e.call(t,a,n,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}}class uy{constructor(){this._cache=new dy({maxSize:1e3})}has(e){return this._cache.has(e)}get(e){return this._cache.get(e)}set(e,t){this._cache.set(e,t)}}const hy=async(e,t,n)=>{const a=n?n.get(t):void 0;if(a)return a;const i={type:"media_source/resolve_media",media_content_id:t};let r=null;try{r=await $v(e,js,i)}catch(e){Gg(e)}return n&&r&&n.set(t,r),r};class py{constructor(e,t,n){this._context=e,this._action=t,this._config=n}async execute(e){}async stop(){}}class my extends py{}class gy extends my{async execute(e){const t=this._action.camera??(this._action.triggered?e.getTriggersManager().getMostRecentlyTriggeredCameraID():null),n=e.getViewManager().getView(),a=e.getConfigManager().getConfig();if(t&&n){const i=a?.view.camera_select??"current",r="current"===i?n.view:i;await e.getViewManager().setViewByParametersWithNewQuery({params:{view:r,camera:t},failSafe:!0})}}}class fy extends my{async execute(e){e.getCameraURLManager().openURL()}}class _y extends my{async execute(e){e.getViewManager().setViewDefault()}}class vy extends my{async execute(e){await e.getViewManager().setViewByParametersWithNewQuery({params:{displayMode:this._action.display_mode}})}}class yy extends my{async execute(e){await e.getDownloadManager().downloadViewerMedia()}}class by extends my{async execute(e){e.getExpandManager().toggleExpanded()}}class wy extends my{async execute(e){e.getFullscreenManager().toggleFullscreen()}}class xy extends py{async execute(e){const t=e.getHASSManager().getHASS();t&&at(e.getCardElementManager().getElement(),t,this._config??{},this._action)}}class Cy extends my{async execute(e){console[this._action.level](this._action.message)}}const My=(e,t)=>e.context?.live?.overrides?.get(t??e.camera)??t??e.camera,ky=e=>My(e)!==e.camera,Sy=(e,t)=>{const n=e.context?.live?.overrides??new Map;n.set(e.camera,t),e.mergeInContext({live:{overrides:n}})};class Ey extends my{async execute(e){const t=this._action.media_player,n=e.getMediaPlayerManager(),a=e.getViewManager().getView(),i=a?.queryResults?.getSelectedResult()??null;"stop"===this._action.media_player_action?await n.stop(t):a?.is("live")?await n.playLive(t,My(a)):a?.isViewerView()&&i&&await n.playMedia(t,i)}}class $y extends my{async execute(e){e.getCardElementManager().toggleMenu()}}class Ay extends my{async execute(e){await e.getMicrophoneManager().connect()}}class zy extends my{async execute(e){e.getMicrophoneManager().disconnect()}}class Iy extends my{async execute(e){e.getMicrophoneManager().mute()}}class Ty extends my{async execute(e){await e.getMicrophoneManager().unmute()}}class jy extends my{async execute(e){await(e.getMediaLoadedInfoManager().get()?.player?.mute())}}class Oy extends my{async execute(e){await(e.getMediaLoadedInfoManager().get()?.player?.pause())}}class Dy extends my{async execute(e){await(e.getMediaLoadedInfoManager().get()?.player?.play())}}const Ry=(e,t)=>{if(e.isViewerView()){const n=e.queryResults?.getSelectedResult()?.getID()??null;return"ptz"!==t?.type&&n?{targetID:n,type:"digital"}:null}if(e.is("live")){const n=My(e);let a="digital";return"digital"!==t?.type&&t?.cameraManager&&(Py(t.cameraManager,n)&&(a="ptz"),"ptz"!==a&&"ptz"===t?.type)?null:{targetID:n,type:a}}return null},Py=(e,t)=>!!e.getStore().getCamera(t)?.getCapabilities()?.hasPTZCapability();var Ly=ug((function(e,t,n){Jm(e,t,n)}));const Ny=(e,t)=>{t?.[e]?.inProgressAction?.stop()},Fy=(e,t,n,a)=>{Ly(t,{[n]:{[e]:{inProgressAction:a}}})};class Vy extends my{constructor(){super(...arguments),this._timer=new xf}async stop(){this._timer.stop()}async execute(e){const t=e.getViewManager().getView();if(!t)return;const n=this._action.camera??Ry(t,{type:"ptz",cameraManager:e.getCameraManager()})?.targetID??null,a=n?e.getCameraManager().getCameraCapabilities(n)?.getPTZCapabilities():null,i=n?e.getCameraManager().getStore().getCameraConfig(n)?.ptz:null;if(!n||!a||!i)return;if(!this._action.ptz_action)return void(a.presets&&a.presets.length>=1&&await e.getCameraManager().executePTZAction(n,"preset",{phase:this._action.ptz_phase,preset:a.presets[0]}));const r=(e=>{switch(e){case"left":case"right":case"up":case"down":return e;case"zoom_in":return"zoomIn";case"zoom_out":return"zoomOut"}return null})(this._action.ptz_action);if(r&&a[r]?.includes(this._action.ptz_phase?"continuous":"relative")||"preset"===this._action.ptz_action)return await e.getCameraManager().executePTZAction(n,this._action.ptz_action,{phase:this._action.ptz_phase,preset:this._action.ptz_preset});if("start"===this._action.ptz_phase){Ny(n,this._context.ptz),Fy(n,this._context,"ptz",this);const t=async()=>{this._action.ptz_action&&await e.getCameraManager().executePTZAction(n,this._action.ptz_action,{preset:this._action.ptz_preset}),this._timer.start(i.r2c_delay_between_calls_seconds,t)};await t()}else"stop"===this._action.ptz_phase?Ny(n,this._context.ptz):(await e.getCameraManager().executePTZAction(n,this._action.ptz_action,{preset:this._action.ptz_preset,phase:"start"}),this._timer.start(i.c2r_delay_between_calls_seconds,(async()=>{this._action.ptz_action&&await e.getCameraManager().executePTZAction(n,this._action.ptz_action,{preset:this._action.ptz_preset,phase:"stop"})})))}}class Hy extends my{async execute(e){e.getViewManager().setViewWithMergedContext({ptzControls:{enabled:this._action.enabled}})}}function By(e,t,n){return void 0===n&&(n=t,t=void 0),void 0!==n&&(n=(n=Cg(n))==n?n:0),void 0!==t&&(t=(t=Cg(t))==t?t:0),function(e,t,n){return e==e&&(void 0!==n&&(e=e<=n?e:n),void 0!==t&&(e=e>=t?e:t)),e}(Cg(e),t,n)}const qy=50,Uy=50,Wy=1,Zy=4,Qy=e=>void 0===e?.pan?.x&&void 0===e?.pan?.y&&void 0===e?.zoom;class Gy{constructor(e){this._context=e}modify(e){e.mergeInContext(this._context)}}const Yy=(e,t)=>({zoom:{[e]:{observed:t?.observed??void 0,requested:t?.requested??null}}}),Ky=(e,t,n)=>{t&&n&&t.setViewByParameters({modifiers:[new Gy(Yy(n,{observed:e.detail}))]})};class Xy extends my{constructor(){super(...arguments),this._timer=new xf}async _stepChange(e,t){e.getViewManager().setViewWithMergedContext(Yy(t,{requested:this._convertActionToZoomSettings(e.getViewManager().getView()?.context?.zoom?.[t]?.observed)}))}async stop(){this._timer.stop()}async execute(e){const t=e.getViewManager().getView();if(!t)return;const n=this._action.target_id??Ry(t,{type:"digital",cameraManager:e.getCameraManager()})?.targetID;return n?this._action.absolute||!this._action.ptz_phase?await this._stepChange(e,n): +/* istanbul ignore else: the else path cannot be reached -- @preserve */ +void("start"===this._action.ptz_phase?(Ny(n,this._context.ptzDigital),Fy(n,this._context,"ptzDigital",this),await this._stepChange(e,n),this._timer.startRepeated(.1,(()=>this._stepChange(e,n)))):"stop"===this._action.ptz_phase&&(Ny(n,this._context.ptzDigital),delete this._context.ptzDigital?.[n])):void 0}_convertActionToZoomSettings(e){if(!this._action.absolute&&!this._action.ptz_action)return{};if(this._action.absolute)return this._action.absolute;const t=e?.zoom??1,n=e?.pan?.x??50,a=e?.pan?.y??50,i="zoom_in"===this._action.ptz_action?.1:"zoom_out"===this._action.ptz_action?-.1:0,r="left"===this._action.ptz_action?-5:"right"===this._action.ptz_action?5:0,o="up"===this._action.ptz_action?-5:"down"===this._action.ptz_action?5:0;return{zoom:By(t+i,1,10),pan:{x:By(n+r,0,100),y:By(a+o,0,100)}}}}class Jy extends my{async execute(e){const t=e.getViewManager().getView();let n=null,a=null;if(this._action.target_id)n=this._action.target_id,a=Py(e.getCameraManager(),n)?"ptz":"digital";else if(t){const i=Ry(t,{cameraManager:e.getCameraManager()});n=i?.targetID??null,a=i?.type??null}n&&null!==a&&("ptz"===a?this._toPTZAction(n):this._toPTZDigitalAction(n)).execute(e)}_toPTZAction(e){return new Vy(this._context,(t={cardID:this._action.card_id,cameraID:e,ptzAction:this._action.ptz_action,ptzPhase:this._action.ptz_phase,ptzPreset:this._action.ptz_preset},{action:"fire-dom-event",frigate_card_action:"ptz",...t?.cardID&&{card_id:t.cardID},...t?.ptzAction&&{ptz_action:t.ptzAction},...t?.ptzPhase&&{ptz_phase:t.ptzPhase},...t?.ptzPreset&&{ptz_preset:t.ptzPreset},...t?.cameraID&&{camera:t.cameraID}}),this._config);var t}_toPTZDigitalAction(e){return new Xy(this._context,(t={cardID:this._action.card_id,ptzPhase:this._action.ptz_phase,ptzAction:this._action.ptz_action,targetID:e},{action:"fire-dom-event",frigate_card_action:"ptz_digital",...t?.cardID&&{card_id:t.cardID},...t?.ptzAction&&{ptz_action:t.ptzAction},...t?.ptzPhase&&{ptz_phase:t.ptzPhase},...t?.absolute&&{absolute:t.absolute},...t?.targetID&&{target_id:t.targetID}}),this._config);var t}}class eb extends my{async execute(e){await e.getDownloadManager().downloadScreenshot()}}class tb extends my{async execute(e){var t;await af((t=this._action.duration,3600*(t.h??0)+60*(t.m??0)+(t.s??0)+(t.ms??0)/1e3))}}class nb extends my{async execute(e){switch(this._action.status_bar_action){case"reset":e.getStatusBarItemManager().removeAllDynamicStatusBarItems();break;case"add":this._action.items?.forEach((t=>e.getStatusBarItemManager().addDynamicStatusBarItem(t)));break;case"remove":this._action.items?.forEach((t=>e.getStatusBarItemManager().removeDynamicStatusBarItem(t)))}}}class ab{modify(e){(e=>{const t=e.context?.live?.overrides;t&&t.has(e.camera)&&e.context?.live?.overrides?.delete(e.camera)})(e)}}class ib extends my{async execute(e){e.getViewManager().setViewByParameters({modifiers:[new ab]})}}class rb{constructor(e){this._api=e}modify(e){const t=[...this._api.getCameraManager().getStore().getAllDependentCameras(e.camera,"substream")];if(t.length<=1)return;const n=My(e),a=t.indexOf(n),i=a<0?0:(a+1)%t.length;Sy(e,t[i])}}class ob extends my{async execute(e){e.getViewManager().setViewByParameters({modifiers:[new rb(e)]})}}class sb{constructor(e){this._substreamID=e}modify(e){Sy(e,this._substreamID)}}class cb extends my{async execute(e){e.getViewManager().setViewByParameters({modifiers:[new sb(this._action.camera)]})}}class lb extends my{async execute(e){await(e.getMediaLoadedInfoManager().get()?.player?.unmute())}}class db extends my{async execute(e){e.getViewManager().setViewByParametersWithNewQuery({params:{view:this._action.frigate_card_action}})}}class ub{createAction(e,t,n){const a=mf(t);if("fire-dom-event"!==t.action||!a)return new xy(e,t,n?.config);if(a.card_id&&a.card_id!==n?.cardID)return null;switch(a.frigate_card_action){case"default":return new _y(e,a,n?.config);case"clip":case"clips":case"image":case"live":case"recording":case"recordings":case"snapshot":case"snapshots":case"timeline":case"diagnostics":return new db(e,a,n?.config);case"sleep":return new tb(e,a,n?.config);case"download":return new yy(e,a,n?.config);case"camera_ui":return new fy(e,a,n?.config);case"expand":return new by(e,a,n?.config);case"fullscreen":return new wy(e,a,n?.config);case"menu_toggle":return new $y(e,a,n?.config);case"camera_select":return new gy(e,a,n?.config);case"live_substream_select":return new cb(e,a,n?.config);case"live_substream_off":return new ib(e,a,n?.config);case"live_substream_on":return new ob(e,a,n?.config);case"media_player":return new Ey(e,a,n?.config);case"microphone_connect":return new Ay(e,a,n?.config);case"microphone_disconnect":return new zy(e,a,n?.config);case"microphone_mute":return new Iy(e,a,n?.config);case"microphone_unmute":return new Ty(e,a,n?.config);case"mute":return new jy(e,a,n?.config);case"unmute":return new lb(e,a,n?.config);case"play":return new Dy(e,a,n?.config);case"pause":return new Oy(e,a,n?.config);case"screenshot":return new eb(e,a,n?.config);case"display_mode_select":return new vy(e,a,n?.config);case"ptz":return new Vy(e,a,n?.config);case"ptz_digital":return new Xy(e,a,n?.config);case"ptz_multi":return new Jy(e,a,n?.config);case"ptz_controls":return new Hy(e,a,n?.config);case"log":return new Cy(e,a,n?.config);case"status_bar":return new nb(e,a,n?.config)} +/* istanbul ignore next: this path cannot be reached -- @preserve */ +/* istanbul ignore next: this path cannot be reached -- @preserve */ +return console.warn(`Frigate card received unknown card action: ${a.frigate_card_action}`),null}}class hb{constructor(e,t,n){this._actions=[],this._factory=new ub,this._stopped=!1,this._context=e;for(const a of Wg(t)){const t=this._factory.createAction(e,a,n);t&&this._actions.push(t)}}async execute(e){for(const t of this._actions){if(this._stopped)break;await t.execute(e)}}async stop(){this._stopped=!0}}const pb=ba.object({action:ba.enum(["tap","double_tap","hold","start_tap","end_tap"])}),mb=ba.object({detail:pb});class gb{constructor(e){this._actionsInFlight=[],this._actionContext={},this.handleInteractionEvent=e=>{const t=mb.safeParse(e);if(!t.success)return;const n=t.data.detail.action,a=this.getMergedActions(),i=yf(n,a);a&&n&&i&&this.executeActions(i,a)},this.handleCustomActionEvent=e=>{"detail"in e&&this.executeActions(e.detail)},this.handleActionExecutionRequestEvent=async e=>{await this.executeActions(e.detail.action,e.detail.config)},this._api=e}getMergedActions(){const e=this._api.getViewManager().getView();if(this._api.getMessageManager().hasMessage())return{};const t=this._api.getConfigManager().getConfig();let n;if(e?.is("live"))n=t?.live.actions;else if(e?.isGalleryView())n=t?.media_gallery?.actions;else if(e?.isViewerView())n=t?.media_viewer.actions;else{if(!e?.is("image"))return{};n=t?.image?.actions}return{...t?.view.actions,...n}}uninitialize(){this._actionsInFlight.forEach((e=>e.stop()))}async executeActions(e,t){const n=new hb(this._actionContext,e,{config:t,cardID:this._api.getConfigManager().getConfig()?.card_id});this._actionsInFlight.push(n),await n.execute(this._api),this._actionsInFlight=this._actionsInFlight.filter((e=>e!==n))}}class fb{constructor(e){this._automations=[],this._priorEvaluations=new Map,this._nestedAutomationExecutions=0,this._api=e}deleteAutomations(e){this._automations=this._automations.filter((t=>t.tag!==e))}addAutomations(e){this._automations.push(...e)}execute(){if(!this._api.getHASSManager().hasHASS()||!this._api.getInitializationManager().isInitializedMandatory()||this._api.getMessageManager().hasErrorMessage())return;const e=[];for(const t of this._automations){const n=this._api.getConditionsManager().evaluateConditions(t.conditions),a=n?t.actions:t.actions_not,i=this._priorEvaluations.get(t);this._priorEvaluations.set(t,n),n!==i&&a&&e.push(...a)}if(!e.length)return;(async e=>{++this._nestedAutomationExecutions,this._nestedAutomationExecutions>10?this._api.getMessageManager().setMessageIfHigherPriority({type:"error",message:V_("error.too_many_automations")}):(await this._api.getActionsManager().executeActions(e),--this._nestedAutomationExecutions)})(e)}}class _b{constructor(e){this._api=e}openURL(){const e=this.getCameraURL();e&&window.open(e)}hasCameraURL(){return!!this.getCameraURL()}getCameraURL(){const e=this._api.getViewManager().getView(),t=e?.queryResults?.getSelectedResult()??null,n=e?.camera?this._api.getCameraManager().getCameraEndpoints(e.camera,{view:e.view,...t&&{media:t}})??null:null;return n?.ui?.endpoint??null}}const vb=(e,t)=>!!((e.attributes.supported_features??0)&t),yb=e=>(e=>vb(e,4)&&"number"==typeof e.attributes.in_progress)(e)||!!e.attributes.in_progress,bb=e=>{switch(e){case"armed_away":return"mdi:shield-lock";case"armed_vacation":return"mdi:shield-airplane";case"armed_home":return"mdi:shield-home";case"armed_night":return"mdi:shield-moon";case"armed_custom_bypass":return"mdi:security";case"pending":case"arming":return"mdi:shield-sync";case"triggered":return"mdi:bell-ring";case"disarmed":return"mdi:shield-off";default:return"mdi:shield"}},wb=(e,t)=>{const n="off"===e;switch(t?.attributes.device_class){case"battery":return n?"mdi:battery":"mdi:battery-outline";case"battery_charging":return n?"mdi:battery":"mdi:battery-charging";case"cold":return n?"mdi:thermometer":"mdi:snowflake";case"connectivity":return n?"mdi:close-network-outline":"mdi:check-network-outline";case"door":return n?"mdi:door-closed":"mdi:door-open";case"garage_door":return n?"mdi:garage":"mdi:garage-open";case"power":case"plug":return n?"mdi:power-plug-off":"mdi:power-plug";case"gas":case"problem":case"safety":case"tamper":return n?"mdi:check-circle":"mdi:alert-circle";case"smoke":return n?"mdi:check-circle":"mdi:smoke";case"heat":return n?"mdi:thermometer":"mdi:fire";case"light":return n?"mdi:brightness5":"mdi:brightness-7";case"lock":return n?"mdi:lock":"mdi:lock-open";case"moisture":return n?"mdi:water-off":"mdi:water";case"motion":return n?"mdi:motion-sensor-off":"mdi:motion-sensor";case"occupancy":case"presence":return n?"mdi:home-outline":"mdi:home";case"opening":return n?"mdi:square":"mdi:square-outline";case"running":return n?"mdi:stop":"mdi:play";case"sound":return n?"mdi:music-note-off":"mdi:music-note";case"update":return n?"mdi:package":"mdi:package-up";case"vibration":return n?"mdi:crop-portrait":"mdi:vibrate";case"window":return n?"mdi:window-closed":"mdi:window-open";default:return n?"mdi:radiobox-blank":"mdi:checkbox-marked-circle"}},xb=(e,t)=>{const n="closed"!==e;switch(t?.attributes.device_class){case"garage":switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:garage";default:return"mdi:garage-open"}case"gate":switch(e){case"opening":case"closing":return"mdi:gate-arrow-right";case"closed":return"mdi:gate";default:return"mdi:gate-open"}case"door":return n?"mdi:door-open":"mdi:door-closed";case"damper":return n?"md:circle":"mdi:circle-slice-8";case"shutter":switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:window-shutter";default:return"mdi:window-shutter-open"}case"curtain":switch(e){case"opening":return"mdi:arrow-split-vertical";case"closing":return"mdi:arrow-collapse-horizontal";case"closed":return"mdi:curtains-closed";default:return"mdi:curtains"}case"blind":case"shade":switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:blinds";default:return"mdi:blinds-open"}case"window":switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:window-closed";default:return"mdi:window-open"}}switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:window-closed";default:return"mdi:window-open"}},Cb={apparent_power:"mdi:flash",aqi:"mdi:air-filter",carbon_dioxide:"mdi:molecule-co2",carbon_monoxide:"mdi:molecule-co",current:"mdi:current-ac",date:"mdi:calendar",energy:"mdi:lightning-bolt",frequency:"mdi:sine-wave",gas:"mdi:gas-cylinder",humidity:"mdi:water-percent",illuminance:"mdi:brightness-5",monetary:"mdi:cash",nitrogen_dioxide:"mdi:molecule",nitrogen_monoxide:"mdi:molecule",nitrous_oxide:"mdi:molecule",ozone:"mdi:molecule",pm1:"mdi:molecule",pm10:"mdi:molecule",pm25:"mdi:molecule",power:"mdi:flash",power_factor:"mdi:angle-acute",pressure:"mdi:gauge",reactive_power:"mdi:flash",signal_strength:"mdi:wifi",sulphur_dioxide:"mdi:molecule",temperature:"mdi:thermometer",timestamp:"mdi:clock",volatile_organic_compounds:"mdi:molecule",voltage:"mdi:sine-wave"},Mb={10:"mdi:battery-10",20:"mdi:battery-20",30:"mdi:battery-30",40:"mdi:battery-40",50:"mdi:battery-50",60:"mdi:battery-60",70:"mdi:battery-70",80:"mdi:battery-80",90:"mdi:battery-90",100:"mdi:battery"},kb={10:"mdi:battery-charging-10",20:"mdi:battery-charging-20",30:"mdi:battery-charging-30",40:"mdi:battery-charging-40",50:"mdi:battery-charging-50",60:"mdi:battery-charging-60",70:"mdi:battery-charging-70",80:"mdi:battery-charging-80",90:"mdi:battery-charging-90",100:"mdi:battery-charging"},Sb=(e,t)=>{const n=Number(e);if(isNaN(n))return"off"===e?"mdi:battery":"on"===e?"mdi:battery-alert":"mdi:battery-unknown";const a=10*Math.round(n/10);return t&&n>=10?kb[a]:t?"mdi:battery-charging-outline":n<=5?"mdi:battery-alert-variant-outline":Mb[a]},Eb=e=>{const t=e?.attributes.device_class;if(t&&t in Cb)return Cb[t];if("battery"===t)return e?((e,t)=>{const n=e.state;return Sb(n,"on"===t?.state)})(e):"mdi:battery";const n=e?.attributes.unit_of_measurement;return"°C"===n||"°F"===n?"mdi:thermometer":void 0},$b="mdi:bookmark",Ab={alert:"mdi:alert",air_quality:"mdi:air-filter",automation:"mdi:robot",calendar:"mdi:calendar",camera:"mdi:video",climate:"mdi:thermostat",configurator:"mdi:cog",conversation:"mdi:text-to-speech",counter:"mdi:counter",fan:"mdi:fan",google_assistant:"mdi:google-assistant",group:"mdi:google-circles-communities",homeassistant:"mdi:home-assistant",homekit:"mdi:home-automation",image_processing:"mdi:image-filter-frames",input_button:"mdi:gesture-tap-button",input_datetime:"mdi:calendar-clock",input_number:"mdi:ray-vertex",input_select:"mdi:format-list-bulleted",input_text:"mdi:form-textbox",light:"mdi:lightbulb",mailbox:"mdi:mailbox",notify:"mdi:comment-alert",number:"mdi:ray-vertex",persistent_notification:"mdi:bell",person:"mdi:account",plant:"mdi:flower",proximity:"mdi:apple-safari",remote:"mdi:remote",scene:"mdi:palette",script:"mdi:script-text",select:"mdi:format-list-bulleted",sensor:"mdi:eye",siren:"mdi:bullhorn",simple_alarm:"mdi:bell",sun:"mdi:white-balance-sunny",timer:"mdi:timer-outline",updater:"mdi:cloud-upload",vacuum:"mdi:robot-vacuum",water_heater:"mdi:thermometer",weather:"mdi:weather-cloudy",zone:"mdi:map-marker-radius"};function zb(e,t,n,a){switch(e){case"alarm_control_panel":return bb(n);case"binary_sensor":return wb(n,t);case"button":switch(t?.attributes.device_class){case"restart":return"mdi:restart";case"update":return"mdi:package-up";default:return"mdi:gesture-tap-button"}case"cover":return xb(n,t);case"device_tracker":return"router"===t?.attributes.source_type?"home"===n?"mdi:lan-connect":"mdi:lan-disconnect":["bluetooth","bluetooth_le"].includes(t?.attributes.source_type)?"home"===n?"mdi:bluetooth-connect":"mdi:bluetooth":"not_home"===n?"mdi:account-arrow-right":"mdi:account";case"humidifier":return n&&"off"===n?"mdi:air-humidifier-off":"mdi:air-humidifier";case"input_boolean":return"on"===n?"mdi:check-circle-outline":"mdi:close-circle-outline";case"lock":switch(n){case"unlocked":return"mdi:lock-open";case"jammed":return"mdi:lock-alert";case"locking":case"unlocking":return"mdi:lock-clock";default:return"mdi:lock"}case"media_player":switch(t?.attributes.device_class){case"speaker":switch(n){case"playing":return"mdi:speaker-play";case"paused":return"mdi:speaker-pause";case"off":return"mdi:speaker-off";default:return"mdi:speaker"}case"tv":switch(n){case"playing":return"mdi:television-play";case"paused":return"mdi:television-pause";case"off":return"mdi:television-off";default:return"mdi:television"}default:switch(n){case"playing":case"paused":return"mdi:cast-connected";case"off":return"mdi:cast-off";default:return"mdi:cast"}}case"switch":switch(t?.attributes.device_class){case"outlet":return"on"===n?"mdi:power-plug":"mdi:power-plug-off";case"switch":return"on"===n?"mdi:toggle-switch":"mdi:toggle-switch-off";default:return"mdi:flash"}case"zwave":switch(n){case"dead":return"mdi:emoticon-dead";case"sleeping":return"mdi:sleep";case"initializing":return"mdi:timer-sand";default:return"mdi:z-wave"}case"sensor":{const e=Eb(t);if(e)return e;break}case"input_datetime":if(!t?.attributes.has_date)return"mdi:clock";if(!t.attributes.has_time)return"mdi:calendar";break;case"sun":return"above_horizon"===t?.state?Ab[e]:"mdi:weather-night";case"update":return"on"===t?.state?yb(t)?"mdi:package-down":"mdi:package-up":"mdi:package"}return e in Ab?Ab[e]:a??$b}async function Ib(e,t,n){const a={type:"auth/sign_path",path:t,expires:n},i=await $v(e,Os,a);return i?e.hassUrl(i.path):null}function Tb(e,t,n,a){if(!e||!n||!n.length)return[];const i=[];for(const r of n){const n=t?.states[r],o=e.states[r];if((a?.stateOnly&&n?.state!==o?.state||!a?.stateOnly&&n!==o)&&(i.push({entityID:r,oldState:n,newState:o}),a?.firstOnly))break}return i}function jb(e,t,n,a){return!!Tb(e,t,n,{...a,firstOnly:!0}).length}function Ob(e){if("off"===e.state||!e.attributes.brightness)return"";return`brightness(${(e.attributes.brightness+245)/5}%)`}function Db(e){return"off"===e.state?"":e.attributes.rgb_color?`rgb(${e.attributes.rgb_color.join(",")})`:""}function Rb(e){return{color:Db(e),filter:Ob(e)}}function Pb(e,t){if(!t.entity)return t;const n=e.states[t.entity];n&&t.state_color&&(t.style={...Rb(n),...t.style}),t.title=t.title??(n?.attributes?.friendly_name||t.entity),t.icon=t.icon??Nb(e,t.entity);const a=n?function(e){return Ye(e.entity_id)}(n):void 0;return t.data_domain=t.state_color||"light"===a&&!1!==t.state_color?a:void 0,n&&(t.data_state=(e=>{const t=e.entity_id.split(".")[0];let n=e.state;return"climate"===t&&(n=e.attributes.hvac_action),n})(n)),t}function Lb(e,t){return t?e?.states[t]?.attributes?.friendly_name:void 0}function Nb(e,t,n){const a=e.states[t];return a&&a.attributes.icon?a.attributes.icon:zb(Ye(t),a,a?.state,n)}const Fb=async()=>{if(["ha-button-menu","ha-button","ha-camera-stream","ha-card","ha-circular-progress","ha-hls-player","ha-icon-button","ha-icon","ha-menu-button","ha-selector","ha-web-rtc-player"].every((e=>customElements.get(e))))return!0;const e=await window.loadCardHelpers();await e.createCardElement({type:"picture-glance",entities:[],camera_image:"dummy-to-load-editor-components"}),await customElements.whenDefined("hui-picture-glance-card");const t=customElements.get("hui-picture-glance-card");if(!t)return!1;const n=new t;return await n.constructor.getConfigElement(),!0},Vb=e=>!!e&&["on","open"].includes(e),Hb=(e,t)=>{if(!e)return[];const n=Object.keys(e.states).filter((e=>!t||e.substr(0,e.indexOf("."))===t));return n.sort(),n};function Bb(e){return!!e?.startsWith("/")}function qb(e,t){return Bb(t)?e.hassUrl(t):t??null}class Ub{constructor(){this._initialized=new Set}async initializeMultipleIfNecessary(e){return(await tf(Object.entries(e),(async([e,t])=>await this.initializeIfNecessary(e,t)))).every(Boolean)}async initializeIfNecessary(e,t){return!!this._initialized.has(e)||(t?!!await t()&&(this._initialized.add(e),!0):(this._initialized.add(e),!0))}uninitialize(e){this._initialized.delete(e)}isInitialized(e){return this._initialized.has(e)}isInitializedMultiple(e){return e.every((e=>this.isInitialized(e)))}}var Wb;!function(e){e.LANGUAGES="languages",e.SIDE_LOAD_ELEMENTS="side-load-elements",e.CAMERAS="cameras",e.MICROPHONE_CONNECT="microphone-connect",e.VIEW="view"}(Wb||(Wb={}));class Zb{constructor(e,t){this._initializationQueue=new w_({concurrency:1}),this._everInitialized=!1,this._api=e,this._initializer=t??new Ub}wasEverInitialized(){return this._everInitialized}isInitializedMandatory(){return!!this._api.getConfigManager().getConfig()&&this._initializer.isInitializedMultiple([Wb.LANGUAGES,Wb.SIDE_LOAD_ELEMENTS,Wb.CAMERAS,...this._api.getMicrophoneManager().shouldConnectOnInitialization()?[Wb.MICROPHONE_CONNECT]:[],Wb.VIEW])}async initializeMandatory(){await this._initializationQueue.add((()=>this._initializeMandatory()))}async _initializeMandatory(){const e=this._api.getHASSManager().getHASS();if(!e||this.isInitializedMandatory())return;if(!await this._initializer.initializeMultipleIfNecessary({[Wb.LANGUAGES]:async()=>await(async e=>{const t=F_(e);return"ca"===t?L_[t]=await import("./lang-ca-449daa4a.js"):"it"===t?L_[t]=await import("./lang-it-2a20a319.js"):"pt"===t?L_[t]=await import("./lang-pt-PT-c4863423.js"):"pt_BR"===t?L_[t]=await import("./lang-pt-BR-83a703b9.js"):"fr"===t&&(L_[t]=await import("./lang-fr-674e5de5.js")),t&&(N_=t),!0})(e),[Wb.SIDE_LOAD_ELEMENTS]:async()=>await Fb()}))return;this._api.getConfigManager().getConfig()&&await this._initializer.initializeMultipleIfNecessary({[Wb.CAMERAS]:async()=>await this._api.getCameraManager().initializeCamerasFromConfig(),...this._api.getMicrophoneManager().shouldConnectOnInitialization()&&{[Wb.MICROPHONE_CONNECT]:async()=>await this._api.getMicrophoneManager().connect()}})&&!this._api.getMessageManager().hasMessage()&&await this._initializer.initializeIfNecessary(Wb.VIEW,this._api.getViewManager().initialize)&&(this._everInitialized=!0,this._api.getCardElementManager().update())}uninitialize(e){this._initializer.uninitialize(e)}}class Qb{constructor(e,t,n,a){this.update=()=>{this._element.requestUpdate()},this._api=e,this._element=t,this._scrollCallback=n,this._menuToggleCallback=a}getElement(){return this._element}scrollReset(){this._scrollCallback()}toggleMenu(){this._menuToggleCallback()}hasUpdated(){return this._element.hasUpdated}elementConnected(){this._api.getInteractionManager().initialize(),this._api.getFullscreenManager().initialize(),this._api.getExpandManager().initialize(),this._api.getMediaLoadedInfoManager().initialize(),this._api.getMicrophoneManager().initialize(),this._api.getKeyboardStateManager().initialize(),this._api.getDefaultManager().initialize(),this._api.getMediaPlayerManager().initialize(),this._api.getHASSManager().getStateWatcher()?.subscribe(this.update,[...this._api.getConfigManager().getConfig()?.view.render_entities??[],...this._api.getMediaPlayerManager().getMediaPlayers()??[]]),of(this._element,(e=>{const t=e.getRootNode();return!!(t&&t instanceof ShadowRoot&&"HUI-PANEL-VIEW"===t.host.tagName)})(this._element),"panel"),of(this._element,!0,"tabindex","0"),this._api.getFullscreenManager().connect(),this._element.addEventListener("mousemove",this._api.getInteractionManager().reportInteraction),this._element.addEventListener("wheel",this._api.getInteractionManager().reportInteraction),this._element.addEventListener("ll-custom",this._api.getActionsManager().handleCustomActionEvent),this._element.addEventListener("action",this._api.getActionsManager().handleInteractionEvent),this._element.addEventListener("action",this._api.getInteractionManager().reportInteraction),this._element.addEventListener("frigate-card:action:execution-request",this._api.getActionsManager().handleActionExecutionRequestEvent),window.addEventListener("location-changed",this._api.getQueryStringManager().requestExecution),window.addEventListener("popstate",this._api.getQueryStringManager().requestExecution),this._api.getQueryStringManager().requestExecution(),this._element.requestUpdate()}elementDisconnected(){of(this._element,!1,"panel"),of(this._element,!1,"tabindex"),this._api.getMediaLoadedInfoManager().clear(),this._api.getFullscreenManager().disconnect(),this._api.getKeyboardStateManager().uninitialize(),this._api.getActionsManager().uninitialize(),this._api.getDefaultManager().uninitialize(),this._api.getHASSManager().getStateWatcher()?.unsubscribe(this.update),this._api.getInitializationManager().uninitialize(Wb.CAMERAS),this._api.getCameraManager().reset(),this._element.removeEventListener("mousemove",this._api.getInteractionManager().reportInteraction),this._element.removeEventListener("wheel",this._api.getInteractionManager().reportInteraction),this._element.removeEventListener("ll-custom",this._api.getActionsManager().handleCustomActionEvent),this._element.removeEventListener("action",this._api.getActionsManager().handleInteractionEvent),this._element.removeEventListener("action",this._api.getInteractionManager().reportInteraction),this._element.removeEventListener("frigate-card:action:execution-request",this._api.getActionsManager().handleActionExecutionRequestEvent),window.removeEventListener("location-changed",this._api.getQueryStringManager().requestExecution),window.removeEventListener("popstate",this._api.getQueryStringManager().requestExecution)}}function Gb(e,t,n){return null==e?e:function(e,t,n,a){if(!hh(e))return e;for(var i=-1,r=(t=sv(t,e)).length,o=r-1,s=e;null!=s&&++i{Gb(e,t,n)},Xb=(e,t,n)=>fv(e,t,n),Jb=(e,t)=>{!function(e,t){null==e||Yb(e,t)}(e,t)},ew=e=>u_(e),tw=(e,t)=>e.replace("#",`[${t.toString()}]`),nw=function(e){let t=!1;for(let n=0;n{const i=Xb(e,t);if(void 0===i)return!1;const r=a?.transform?a.transform(i):i;return!(t===n&&Dv(i,r)||(null===r?a?.keepOriginal||(Jb(e,t),0):void 0===r||(a?.keepOriginal||Jb(e,t),Kb(e,n,r),0)))})(a,e,t,n)}},rw=function(e,t,n){return function(a){let i=iw(e,t,n)(a);return i=cw(bs,iw(e,t,n),(e=>e.overrides))(a)||i,i}},ow=function(e,t){return rw(e,e,{transform:t})},sw=function(e){return rw(e,e,{transform:e=>null})},cw=function(e,t,n){return function(a){let i=!1;const r=Xb(a,e);return Array.isArray(r)&&r.forEach((e=>{const a=n?n(e):e;a&&"object"==typeof a&&(i=t(a)||i)})),i}},lw=(e,t)=>{const n=a=>{let i=!1;if(a&&"object"==typeof a){const r=t?t(a):a;r&&(i=e(r)||i),Array.isArray(a)?a.forEach((e=>{i=n(e)||i})):Object.keys(a).forEach((e=>{i=n(a[e])||i}))}return i};return n},dw=e=>!("object"!=typeof e||!e||void 0===e.mediaLoaded)&&(e.media_loaded=e.mediaLoaded,delete e.mediaLoaded,!0),uw=e=>{if("object"!=typeof e||!e||"object"!=typeof e.conditions||!e.conditions)return!1;const t=e.conditions,n=[];if(void 0!==t.view&&n.push({condition:"view",views:t.view}),void 0!==t.fullscreen&&n.push({condition:"fullscreen",fullscreen:t.fullscreen}),void 0!==t.expand&&n.push({condition:"expand",expand:t.expand}),void 0!==t.camera&&n.push({condition:"camera",cameras:t.camera}),void 0!==t.media_loaded&&n.push({condition:"media_loaded",media_loaded:t.media_loaded}),void 0!==t.state&&Array.isArray(t.state))for(const e of t.state)"object"!=typeof e||!e||void 0===e.state&&void 0===e.state_not&&void 0===e.entity||n.push({condition:"state",...e.state&&{state:e.state},...e.state_not&&{state_not:e.state_not},...e.entity&&{entity:e.entity}});return void 0!==t.media_query&&n.push({condition:"screen",media_query:t.media_query}),!!n.length&&(e.conditions=n,!0)},hw=e=>!("object"!=typeof e||!e||"call-service"!==e.action||"string"!=typeof e.service)&&(e.action="perform-action",e.perform_action=e.service,delete e.service,!0),pw=e=>!("object"!=typeof e||!e||"call-service"!==e.action||void 0===e.service||void 0===e.service_data||void 0!==e.data)&&(e.data=e.service_data,delete e.service_data,!0),mw=e=>!("object"!=typeof e||!e||"custom:frigate-card-action"!==e.action||"frigate_ui"!==e.frigate_card_action)&&(e.frigate_card_action="camera_ui",!0),gw=[cw(bs,dw,(e=>e.conditions)),e=>lw(dw,(e=>e.conditions))("object"==typeof e&&e?e[Ii]:{}),rw("event_gallery",or),rw("menu.buttons.frigate_ui",is),e=>lw(mw)("object"==typeof e&&e?e:{}),cw(Ca,ow("live_provider",(e=>"frigate-jsmpeg"===e?"jsmpeg":e))),rw("live.jsmpeg",ki),rw("live.image",Ci),rw("live.webrtc_card",Si),cw(Ca,rw("frigate.zone","frigate.zones",{transform:e=>Wg(e)})),cw(Ca,rw("frigate.label","frigate.labels",{transform:e=>Wg(e)})),e=>lw(pw)("object"==typeof e&&e?e:{}),function(e){if("object"!=typeof e||!e||!(Ii in e)||!Array.isArray(e[Ii]))return!1;let t=!1;const n=n=>{if(!t){if(!fv(e,"live.controls.ptz")){const{type:t,...a}=n;Gb(e,"live.controls.ptz",a)}t=!0}},a=e=>{const t=[];for(const i of e)if("custom:frigate-card-ptz"===i.type)n(i);else if("conditional"!==i.type&&"custom:frigate-card-conditional"!==i.type||!Array.isArray(i.elements))t.push(i);else{const e=a(i.elements);e.length&&(i.elements=e,t.push(i))}return t},i=a(e[Ii]);return t&&(i.length?e[Ii]=i:delete e[Ii]),t},rw("view.timeout_seconds",Ri),ow("live.lazy_unload",(e=>"all"===e?["unselected","hidden"]:"never"===e?null:Wg(e))),ow("live.auto_play",(e=>"all"===e?null:"never"===e?[]:Wg(e))),ow("live.auto_pause",(e=>"all"===e?["unselected","hidden"]:"never"===e?null:Wg(e))),ow("live.auto_mute",(e=>"all"===e?null:"never"===e?[]:Wg(e))),ow("live.auto_unmute",(e=>"all"===e?["selected","visible","microphone"]:"never"===e?null:Wg(e))),ow("media_viewer.auto_play",(e=>"all"===e?null:"never"===e?[]:Wg(e))),ow("media_viewer.auto_pause",(e=>"all"===e?null:"never"===e?[]:Wg(e))),ow("media_viewer.auto_mute",(e=>"all"===e?null:"never"===e?[]:Wg(e))),ow("media_viewer.auto_unmute",(e=>"all"===e?["selected","visible"]:"never"===e?null:Wg(e))),rw("live.controls.thumbnails.media",io),rw("timeline.media",Ho),rw("live.controls.timeline.media",po),rw("media_viewer.controls.timeline.media",Rr),rw("view.scan",Xi),rw("view.triggers.enabled",ar,{transform:e=>!0===e?"live":null,keepOriginal:!0}),rw("view.triggers.enabled",er,{transform:e=>!0!==e&&null}),rw("view.triggers.untrigger_reset",ir,{transform:e=>e?"default":null}),rw("live.layout",Ai),sw("media_viewer.layout"),sw("image.layout"),cw(bs,uw),e=>lw(uw)("object"==typeof e&&e?e[Ii]:{}),e=>lw(uw)("object"==typeof e&&e?e.automations:{}),cw(Ca,rw("hide","capabilities",{transform:e=>!0===e?{disable_except:["substream"]}:null})),rw("performance.profile",$s,{transform:e=>"low"===e?["low-performance"]:null}),cw(bs,iw("overrides","merge")),rw("live.controls.ptz",zi,{transform:e=>{if("object"!=typeof e||!e)return;const t=["data_left","data_right","data_up","data_down","data_zoom_in","data_zoom_out","service"],n=["actions_left","actions_right","actions_up","actions_down","actions_zoom_in","actions_zoom_out"],a=[...t,...n,"data_home","actions_home"];if(!Object.keys(e).some((e=>a.includes(e))))return;const i={};t.filter((t=>t in e)).reduce(((t,n)=>(t[n]=e[n],t)),i),n.filter((t=>t in e)).reduce(((t,n)=>("object"==typeof e[n]&&"tap_action"in e[n]&&(t[n]=e[n].tap_action),t)),i);const r=()=>{i.presets="presets"in e&&"object"==typeof e.presets&&e.presets?e.presets:{}};return"actions_home"in e&&"object"==typeof e.actions_home&&e.actions_home&&"tap_action"in e.actions_home?(r(),i.presets.home=e.actions_home.tap_action):"data_home"in e&&"object"==typeof e.data_home&&e.data_home&&"string"==typeof e.service&&(r(),i.presets.service=e.service,i.presets.data_home=e.data_home),i},keepOriginal:!0}),ow("live.controls.ptz",(e=>{if("object"!=typeof e||!e)return e;const t=["mode","position","orientation","hide_pan_tilt","hide_zoom","hide_home","style"],n=Object.keys(e);return n.some((e=>!t.includes(e)))?n.filter((e=>t.includes(e))).reduce(((t,n)=>(t[n]=e[n],t)),{}):void 0})),rw("view.update_cycle_camera",Wi),rw("view.update_force",Qi,{transform:e=>!0===e?"all":null}),rw("view.update_seconds",Gi),rw("view.update_entities",Yi),iw("live.controls.title",ds,{transform:e=>"object"==typeof e&&e&&"string"==typeof e.mode?"none"===e.mode?{style:"none"}:e.mode.includes("bottom")?{position:"bottom"}:e.mode.includes("top")?{position:"top"}:null:null}),sw("live.controls.title"),sw("media_viewer.controls.title"),e=>lw(hw)("object"==typeof e&&e?e:{}),rw("dimensions.max_height",ys),sw("dimensions.min_height")];class fw extends zs{}class _w extends Event{constructor(e,t){super("frigate-card:conditions:evaluate",t),this.conditions=e}}function vw(e,t,n){let a=ew(t),i=!1;if(n?.configOverrides)for(const t of n.configOverrides)e.evaluateConditions(t.conditions,n?.stateOverrides)&&(t.delete?.forEach((e=>{Jb(a,e)})),Object.keys(t.set??{}).forEach((e=>{Kb(a,e,t.set?.[e])})),Object.keys(t.merge??{}).forEach((e=>{Kb(a,e,Ly({},Xb(a,e),t.merge?.[e]))})),i=!0);if(!i)return t;if(n?.configOverrides?.some((e=>e.delete?.length))&&(a=hf(a)),n?.schema){const e=n.schema.safeParse(a);if(!e.success)throw new fw(V_("error.invalid_configuration_override"),[e.error.errors,a]);return e.data}return a}class yw{constructor(e,t){this._state={},this._epoch=this._createEpoch(),this._hasHAStateConditions=!1,this._mediaQueries=[],this._mediaQueryTrigger=()=>this._triggerChange(),this._api=e,this._listeners=[()=>this._api.getConfigManager().computeOverrideConfig(),()=>this._api.getAutomationsManager().execute(),...t?[t]:[]]}removeConditions(){this._mediaQueries.forEach((e=>e.removeEventListener("change",this._mediaQueryTrigger))),this._mediaQueries=[]}setConditionsFromConfig(){this.removeConditions();const e=(()=>{const e=this._api.getConfigManager().getConfig(),t=[];e?.overrides?.forEach((e=>t.push(...e.conditions))),e?.automations?.forEach((e=>t.push(...e.conditions)));const n=e=>{const a=vl.safeParse(e);a.success?(t.push(...a.data.conditions),a.data.elements?.forEach(n)):e&&"object"==typeof e&&Object.keys(e).forEach((t=>n(e[t])))};return e?.elements?.forEach(n),t})();this._hasHAStateConditions=e.some((e=>!e.condition||["state","numeric_state","user"].includes(e.condition))),e.forEach((e=>{if("screen"===e.condition){const t=window.matchMedia(e.media_query);t.addEventListener("change",this._mediaQueryTrigger),this._mediaQueries.push(t)}}))}setState(e){Object.keys(e).every((t=>Dv(e[t],this._state[t])))||(this._state={...this._state,...e},this._triggerChange())}getState(){return this._state}hasHAStateConditions(){return this._hasHAStateConditions}getEpoch(){return this._epoch}evaluateConditions(e,t){return e.every((e=>this._evaluateCondition(e,t)))}_evaluateCondition(e,t){const n={...this._state,...t};switch(e.condition){case void 0:case"state":return!!n.state&&(!e.state&&!e.state_not||e.entity in n.state&&(!e.state||(Array.isArray(e.state)?e.state.includes(n.state[e.entity].state):e.state===n.state[e.entity].state))&&(!e.state_not||(Array.isArray(e.state_not)?!e.state_not.includes(n.state[e.entity].state):e.state_not!==n.state[e.entity].state)));case"view":return!!n?.view&&e.views.includes(n.view);case"fullscreen":return void 0!==n.fullscreen&&e.fullscreen===n.fullscreen;case"expand":return void 0!==n.expand&&e.expand===n.expand;case"camera":return!!n.camera&&e.cameras.includes(n.camera);case"numeric_state":return!!n.state&&e.entity in n.state&&void 0!==n.state[e.entity].state&&(void 0===e.above||Number(n.state[e.entity].state)>e.above)&&(void 0===e.below||Number(n.state[e.entity].state)n.triggered?.has(e)));case"interaction":return void 0!==n.interaction&&e.interaction===n.interaction;case"microphone":return!(void 0!==e.connected&&n.microphone?.connected!==e.connected||void 0!==e.muted&&n.microphone?.muted!==e.muted);case"key":return!(!n.keys||!(e.key in n.keys)||(e.state??"down")!==n.keys[e.key].state||void 0!==e.ctrl&&e.ctrl!==!!n.keys[e.key].ctrl||void 0!==e.alt&&e.alt!==!!n.keys[e.key].alt||void 0!==e.meta&&e.meta!==!!n.keys[e.key].meta||void 0!==e.shift&&e.shift!==!!n.keys[e.key].shift)}}_createEpoch(){return{manager:this}}_triggerChange(){this._epoch=this._createEpoch(),this._listeners.forEach((e=>e()))}}const bw={casting:{[Qr]:!1,[Sr]:!1,[es]:"none",[`${os}.enabled`]:!0,[`${ss}.enabled`]:!0,[`${rs}.enabled`]:!1,[`${cs}.enabled`]:!1,[Zr]:["selected","visible"],[vs]:"static",[_s]:"16:9",[$i]:1,[$o]:!0},"low-performance":{[ro]:"none",[Ar]:"none",[Uo]:"none",[fo]:!1,[Nr]:!1,[Bo]:!1,[Wr]:[],[mr]:[],[gr]:[],[fr]:[],[ko]:["unselected","hidden"],[Co]:!1,[xr]:!1,[Eo]:"none",[kr]:"none",[$o]:!1,[Er]:"chevrons",[hs]:"none",[es]:"outside",[`${as}.enabled`]:!1,[`${ls}.enabled`]:!1,[`${ls}.enabled`]:!1,[`${cs}.enabled`]:!1,[lr]:!1,[dr]:!1,[ur]:!1,[cr]:!1,[co]:!1,[lo]:!1,[uo]:!1,[so]:!1,[Ir]:!1,[Tr]:!1,[jr]:!1,[zr]:!1,[Qo]:!1,[Go]:!1,[Yo]:!1,[Zo]:!1,[xs]:!1,[Cs]:10,[Es]:!1,[Ss]:!1,[Mr]:!1,[Ei]:!1,[Mi]:"image",[$i]:10,[ar]:"none",[Ms]:1},scrubbing:{[mo]:"below",[_o]:"ribbon",[go]:"seek",[Pr]:"below",[Fr]:"ribbon",[Lr]:"seek"}},ww=(e,t,n)=>{const a=Ds(Nd).safeParse(e);if(!a.success)return t;const i=a.data;for(const e of n??[])e in bw&&Object.entries(bw[e]).forEach((([e,n])=>{return r=n,void(void 0===Xb(i,a=e)&&Kb(t,a,r));var a,r}));return t},xw=e=>{switch(e){case"ptz_left":return"left";case"ptz_right":return"right";case"ptz_up":return"up";case"ptz_down":return"down";case"ptz_zoom_in":return"zoom_in";case"ptz_zoom_out":return"zoom_out"} +/* istanbul ignore next: No (current) way to reach this code -- @preserve */return null},Cw=(e,t)=>{if(!t.enabled)return[];const n=[];for(const a of["ptz_down","ptz_left","ptz_right","ptz_up","ptz_zoom_in","ptz_zoom_out"]){const i=t[a],r=xw(a);i&&r&&(n.push({conditions:[{condition:"key",key:i.key,state:"down",shift:i.shift,ctrl:i.ctrl,alt:i.alt,meta:i.meta}],actions:[vf({ptzAction:r,ptzPhase:"start"})],tag:e}),n.push({conditions:[{condition:"key",key:i.key,state:"up"}],actions:[vf({ptzAction:r,ptzPhase:"stop"})],tag:e}))}const a=t.ptz_home;return a&&n.push({conditions:[{condition:"key",key:a.key,state:"down",shift:a.shift,ctrl:a.ctrl,alt:a.alt,meta:a.meta}],actions:[vf()],tag:e}),n};class Mw{constructor(e){this._config=null,this._overriddenConfig=null,this._rawConfig=null,this._cardWideConfig=null,this._api=e}hasConfig(){return!!this.getConfig()}getConfig(){return this._overriddenConfig??this._config}getCardWideConfig(){return this._cardWideConfig}getNonOverriddenConfig(){return this._config}getRawConfig(){return this._rawConfig}setConfig(e){if(!e)throw new Error(V_("error.invalid_configuration"));const t=Nd.safeParse(e);if(!t.success){const n=aw(e),a=Ps(t.error);let i="";throw n&&(i=`${V_("error.upgrade_available")}. `),new Error(i+`${V_("error.invalid_configuration")}: `+(a&&a.size?JSON.stringify([...a],null," "):V_("error.invalid_configuration_no_hint")))}const n=ww(e,t.data,t.data.profiles);var a;(this._rawConfig=e,Dv(this._config,n))||(this._config=n,this._cardWideConfig={performance:n.performance,debug:n.debug},this._api.getConditionsManager().setConditionsFromConfig(),this._api.getConditionsManager().setState({view:void 0,displayMode:void 0,camera:void 0}),this._api.getMediaLoadedInfoManager().clear(),this._api.getInitializationManager().uninitialize(Wb.VIEW),this._api.getViewManager().reset(),this._api.getMessageManager().reset(),this._api.getStyleManager().setPerformance(),this._api.getStatusBarItemManager().removeAllDynamicStatusBarItems(),((e,t)=>{e.getAutomationsManager().deleteAutomations(t);const n=e.getConfigManager().getConfig()?.view.keyboard_shortcuts;if(!n)return;const a=Cw(t,n);a.length&&e.getAutomationsManager().addAutomations(a)})(this._api,this),(a=this._api).getAutomationsManager().deleteAutomations(),a.getAutomationsManager().addAutomations(a.getConfigManager().getNonOverriddenConfig()?.automations??[]),this.computeOverrideConfig(),this._api.getCardElementManager().update())}computeOverrideConfig(){const e=this._api.getConditionsManager();if(!this._config)return;let t=null;try{t=vw(e,this._config,{configOverrides:this._config.overrides,schema:Nd})}catch(e){return void this._api.getMessageManager().setErrorIfHigherPriority(e)}if(Dv(t,this._overriddenConfig))return;const n=this._overriddenConfig;this._overriddenConfig=t,this._api.getStyleManager().setMinMaxHeight(),!n||Dv(n?.cameras,this._overriddenConfig?.cameras)&&Dv(n?.cameras_global,this._overriddenConfig?.cameras_global)||this._api.getInitializationManager().uninitialize(Wb.CAMERAS),n&&n?.live.microphone.always_connected!==this._overriddenConfig?.live.microphone.always_connected&&this._api.getInitializationManager().uninitialize(Wb.MICROPHONE_CONNECT),this._initializeBackground(n)}async _initializeBackground(e){await this._api.getDefaultManager().initializeIfNecessary(e),await this._api.getMediaPlayerManager().initializeIfNecessary(e),this._api.getCardElementManager().update()}}class kw{constructor(e){this._timer=new xf,this._stateChangeHandler=()=>{this._setToDefaultIfAllowed()},this._api=e}async initializeIfNecessary(e){Dv(e?.view.default_reset,this._api.getConfigManager().getConfig()?.view.default_reset)||await this.initialize()}async initialize(){this.uninitialize();const e=this._api.getConfigManager().getConfig()?.view.default_reset;e?.entities.length&&this._api.getHASSManager().getStateWatcher().subscribe(this._stateChangeHandler,e.entities);const t=this._api.getConfigManager().getConfig()?.view.default_reset.every_seconds;return t&&this._timer.startRepeated(t,(()=>this._setToDefaultIfAllowed())),this._api.getConfigManager().getConfig()?.view.default_reset.after_interaction&&this._api.getAutomationsManager().addAutomations([{actions:[gf("default")],conditions:[{condition:"interaction",interaction:!1}],tag:this}]),!0}uninitialize(){this._timer.stop(),this._api.getHASSManager().getStateWatcher().unsubscribe(this._stateChangeHandler),this._api.getAutomationsManager().deleteAutomations(this)}_setToDefaultIfAllowed(){this._isAutomatedUpdateAllowed()&&this._api.getViewManager().setViewDefault()}_isAutomatedUpdateAllowed(){const e=this._api.getConfigManager().getConfig()?.view.default_reset.interaction_mode;return!!e&&((e,t)=>{switch(e){case"all":return!0;case"active":return t;case"inactive":return!t}})(e,this._api.getInteractionManager().hasInteraction())}}const Sw=(e,t="download")=>{const n=new URL(e).origin===window.location.origin,a=e.startsWith("data:");if(navigator.userAgent.startsWith("Home Assistant/")||navigator.userAgent.startsWith("HomeAssistant/")||!n&&!a)window.open(e,"_blank");else{const n=document.createElement("a");n.setAttribute("download",t),n.href=e,n.click(),n.remove()}},Ew=async(e,t,n)=>{const a=await t.getMediaDownloadPath(n);if(!a)throw new zs(V_("error.download_no_media"));let i=a.endpoint;if(a.sign){let t;try{t=await Ib(e,a.endpoint)}catch(e){Gg(e)}if(!t)throw new zs(V_("error.download_sign_failed"));i=t}Sw(i)},$w=e=>{const t=document.createElement("canvas");t.width=e.videoWidth,t.height=e.videoHeight;const n=t.getContext("2d");return n?(n.drawImage(e,0,0,t.width,t.height),t.toDataURL("image/jpeg")):null};class Aw{constructor(e){this._api=e}async downloadViewerMedia(){const e=this._api.getViewManager().getView()?.queryResults?.getSelectedResult(),t=this._api.getHASSManager().getHASS();if(!e||!t)return!1;try{await Ew(t,this._api.getCameraManager(),e)}catch(e){return this._api.getMessageManager().setErrorIfHigherPriority(e),!1}return!0}async downloadScreenshot(){const e=await(this._api.getMediaLoadedInfoManager().get()?.player?.getScreenshotURL());e&&Sw(e,(e=>{if(e?.is("live")||e?.is("image"))return`${e.view}-${e.camera}-${Wu(new Date,"yyyy-MM-dd-HH-mm-ss")}.jpg`;if(e?.isViewerView()){const t=e.queryResults?.getSelectedResult(),n=t?.getID()??null;return`${e.view}-${e.camera}${n?`-${n}`:""}.jpg`}return"screenshot.jpg"})(this._api.getViewManager().getView()))}}class zw{constructor(e){this._expanded=!1,this._api=e}initialize(){this._setConditionState()}isExpanded(){return this._expanded}toggleExpanded(){this.setExpanded(!this._expanded)}setExpanded(e){e&&this._api.getFullscreenManager().isInFullscreen()&&this._api.getFullscreenManager().stopFullscreen(),this._expanded=e,this._setConditionState(),this._api.getCardElementManager().update()}_setConditionState(){this._api.getConditionsManager()?.setState({expand:this._expanded})}}const Iw=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],Tw=(()=>{if("undefined"==typeof document)return!1;const e=Iw[0],t={};for(const n of Iw){const a=n?.[1];if(a in document){for(const[a,i]of n.entries())t[e[a]]=i;return t}}return!1})(),jw={change:Tw.fullscreenchange,error:Tw.fullscreenerror};let Ow={request:(e=document.documentElement,t)=>new Promise(((n,a)=>{const i=()=>{Ow.off("change",i),n()};Ow.on("change",i);const r=e[Tw.requestFullscreen](t);r instanceof Promise&&r.then(i).catch(a)})),exit:()=>new Promise(((e,t)=>{if(!Ow.isFullscreen)return void e();const n=()=>{Ow.off("change",n),e()};Ow.on("change",n);const a=document[Tw.exitFullscreen]();a instanceof Promise&&a.then(n).catch(t)})),toggle:(e,t)=>Ow.isFullscreen?Ow.exit():Ow.request(e,t),onchange(e){Ow.on("change",e)},onerror(e){Ow.on("error",e)},on(e,t){const n=jw[e];n&&document.addEventListener(n,t,!1)},off(e,t){const n=jw[e];n&&document.removeEventListener(n,t,!1)},raw:Tw};Object.defineProperties(Ow,{isFullscreen:{get:()=>Boolean(document[Tw.fullscreenElement])},element:{enumerable:!0,get:()=>document[Tw.fullscreenElement]??void 0},isEnabled:{enumerable:!0,get:()=>Boolean(document[Tw.fullscreenEnabled])}}),Tw||(Ow={isEnabled:!1});var Dw=Ow;class Rw{constructor(e){this._fullscreenHandler=()=>{this._api.getExpandManager().setExpanded(!1),this._setConditionState(),this._api.getCardElementManager().update()},this._api=e}initialize(){this._setConditionState()}connect(){Dw.isEnabled&&Dw.on("change",this._fullscreenHandler)}disconnect(){Dw.isEnabled&&Dw.off("change",this._fullscreenHandler)}isInFullscreen(){return Dw.isEnabled&&Dw.isFullscreen}toggleFullscreen(){Dw.toggle(this._api.getCardElementManager().getElement())}stopFullscreen(){Dw.exit()}_setConditionState(){this._api.getConditionsManager()?.setState({fullscreen:this.isInFullscreen()})}}class Pw{constructor(){this._watcherCallbacks=new Map}setHASS(e,t){if(e)for(const[n,a]of this._watcherCallbacks.entries()){const i=Tb(t,e,a,{stateOnly:!0,firstOnly:!0});i.length&&n(i[0])}}subscribe(e,t){return!!t.length&&(this._watcherCallbacks.has(e)?this._watcherCallbacks.get(e)?.push(...t):this._watcherCallbacks.set(e,t),!0)}unsubscribe(e){this._watcherCallbacks.delete(e)}}class Lw{constructor(e){this._hass=null,this._stateWatcher=new Pw,this._api=e}getHASS(){return this._hass}hasHASS(){return!!this._hass}getStateWatcher(){return this._stateWatcher}setHASS(e){if(((e,t)=>e?.connected!==t?.connected)(this._hass,e)&&(e?.connected?this._api.getMessageManager().resetType("connection"):this._api.getMessageManager().setMessageIfHigherPriority({message:V_("error.reconnecting"),icon:"mdi:lan-disconnect",type:"connection",dotdotdot:!0})),!e)return;const t=this._hass;this._hass=e,this._api.getConditionsManager().hasHAStateConditions()&&this._api.getConditionsManager().setState({state:this._hass.states,user:this._hass.user}),this._api.getStyleManager().setLightOrDarkMode(),this._stateWatcher.setHASS(t,e)}}var Nw=function(){return th.Date.now()},Fw="Expected a function",Vw=Math.max,Hw=Math.min;function Bw(e,t,n){var a,i,r,o,s,c,l=0,d=!1,u=!1,h=!0;if("function"!=typeof e)throw new TypeError(Fw);function p(t){var n=a,r=i;return a=i=void 0,l=t,o=e.apply(r,n)}function m(e){var n=e-c;return void 0===c||n>=t||n<0||u&&e-l>=r}function g(){var e=Nw();if(m(e))return f(e);s=setTimeout(g,function(e){var n=t-(e-c);return u?Hw(n,r-(e-l)):n}(e))}function f(e){return s=void 0,h&&a?p(e):(a=i=void 0,o)}function _(){var e=Nw(),n=m(e);if(a=arguments,i=this,c=e,n){if(void 0===s)return function(e){return l=e,s=setTimeout(g,t),d?p(e):o}(c);if(u)return clearTimeout(s),s=setTimeout(g,t),p(c)}return void 0===s&&(s=setTimeout(g,t)),o}return t=Cg(t)||0,hh(n)&&(d=!!n.leading,r=(u="maxWait"in n)?Vw(Cg(n.maxWait)||0,t):r,h="trailing"in n?!!n.trailing:h),_.cancel=function(){void 0!==s&&clearTimeout(s),l=0,a=c=i=s=void 0},_.flush=function(){return void 0===s?o:f(Nw())},_}function qw(e,t,n){var a=!0,i=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return hh(n)&&(a="leading"in n?!!n.leading:a,i="trailing"in n?!!n.trailing:i),Bw(e,t,{leading:a,maxWait:t,trailing:i})}class Uw{constructor(e){this._timer=new xf,this.reportInteraction=qw((()=>{this._reportInteraction()}),1e3),this._api=e}initialize(){this._api.getConditionsManager().setState({interaction:!1})}hasInteraction(){return this._timer.isRunning()}_reportInteraction(){this._timer.stop();const e=this._api.getConfigManager().getConfig()?.view.interaction_seconds;e&&(this._api.getConditionsManager().setState({interaction:!0}),this._timer.start(e,(()=>{this._api.getConditionsManager().setState({interaction:!1}),this._api.getStyleManager().setLightOrDarkMode()})))}}class Ww{constructor(e){this._state={},this._handleKeydown=e=>{const t={state:"down",ctrl:e.ctrlKey,alt:e.altKey,meta:e.metaKey,shift:e.shiftKey};Dv(this._state[e.key],t)||(this._state[e.key]=t,this._processStateChange())},this._handleKeyup=e=>{e.key in this._state&&"down"===this._state[e.key].state&&(this._state[e.key].state="up",this._processStateChange())},this._handleBlur=()=>{Object.keys(this._state).length&&(this._state={},this._processStateChange())},this._api=e}initialize(){const e=this._api.getCardElementManager().getElement();e.addEventListener("keydown",this._handleKeydown),e.addEventListener("keyup",this._handleKeyup),e.addEventListener("blur",this._handleBlur)}uninitialize(){const e=this._api.getCardElementManager().getElement();e.removeEventListener("keydown",this._handleKeydown),e.removeEventListener("keyup",this._handleKeyup),e.removeEventListener("blur",this._handleBlur)}_processStateChange(){this._api.getConditionsManager().setState({keys:this._state})}}function Zw(e,t){let n;return n=e instanceof Event?e.composedPath()[0]:e,n instanceof HTMLImageElement?{width:n.naturalWidth,height:n.naturalHeight,...t}:n instanceof HTMLVideoElement?{width:n.videoWidth,height:n.videoHeight,...t}:n instanceof HTMLCanvasElement?{width:n.width,height:n.height,player:t?.player,...t}:null}function Qw(e,t,n){const a=Zw(t,n);a&&Gw(e,a)}function Gw(e,t){Bg(e,"media:loaded",t)}function Yw(e){Bg(e,"media:unloaded")}function Kw(e){Bg(e,"media:volumechange")}function Xw(e){Bg(e,"media:play")}function Jw(e){Bg(e,"media:pause")}class ex{constructor(e){this._current=null,this._lastKnown=null,this._api=e}initialize(){this.clear()}set(e){var t;(t=e).height>=50&&t.width>=50&&(B_(this._api.getConfigManager().getCardWideConfig(),"Frigate Card media load: ",e),this._current=e,this._lastKnown=e,this._api.getConditionsManager().setState({media_loaded:!0}),this._api.getStyleManager().setExpandedMode(),this._api.getCardElementManager().update())}get(){return this._current}getLastKnown(){return this._lastKnown}clear(){this._current=null,this._api.getConditionsManager().setState({media_loaded:!1})}has(){return!!this._current}}class tx{static isEvent(e){return this.isClip(e)||this.isSnapshot(e)}static isRecording(e){return"recording"===e.getMediaType()}static isClip(e){return"clip"===e.getMediaType()}static isSnapshot(e){return"snapshot"===e.getMediaType()}static isVideo(e){return this.isClip(e)||this.isRecording(e)}}class nx{constructor(e){this._mediaPlayers=[],this._api=e}getMediaPlayers(){return this._mediaPlayers}hasMediaPlayers(){return this._mediaPlayers.length>0}async initializeIfNecessary(e){e?.menu.buttons.media_player.enabled!==this._api.getConfigManager().getConfig()?.menu.buttons.media_player.enabled&&await this.initialize()}async initialize(){const e=this._api.getHASSManager().getHASS();if(!e||!this._api.getConfigManager().getConfig()?.menu.buttons.media_player.enabled)return!1;const t=Object.keys(e.states).filter((t=>{if(t.startsWith("media_player.")){const n=e.states[t];if(n&&"unavailable"!==n.state&&vb(n,131072))return!0}return!1}));let n=null;try{n=await this._api.getEntityRegistryManager().getEntities(e,t)}catch(e){Gg(e)}return this._mediaPlayers=t.filter((e=>{const t=n?.get(e);return!t||!t.hidden_by})),!0}async stop(e){const t=this._api.getHASSManager().getHASS(),n=t?.states[e];if(!n)return;let a;if(vb(n,4096))a="media_stop";else{if(!vb(n,256))return;a="turn_off"}await t.callService("media_player",a,{entity_id:e})}async playLive(e,t){const n=this._api.getCameraManager().getStore().getCameraConfig(t);n&&("dashboard"===n.cast?.method?await this._playLiveDashboard(e,n):await this._playLiveStandard(e,t,n))}async _playLiveStandard(e,t,n){const a=this._api.getHASSManager().getHASS(),i=n?.camera_entity??null;if(!a||!i)return;const r=this._api.getCameraManager().getCameraMetadata(t)?.title??null,o=a.states[i]?.attributes?.entity_picture??null;await a.callService("media_player","play_media",{entity_id:e,media_content_id:`media-source://camera/${i}`,media_content_type:"application/vnd.apple.mpegurl",extra:{...r&&{title:r},...o&&{thumb:o}}})}async _playLiveDashboard(e,t){const n=this._api.getHASSManager().getHASS();if(!n)return;const a=t.cast?.dashboard;a?.dashboard_path&&a?.view_path?await n.callService("cast","show_lovelace_view",{entity_id:e,dashboard_path:a.dashboard_path,view_path:a.view_path}):this._api.getMessageManager().setMessageIfHigherPriority({type:"error",icon:"mdi:cast",message:V_("error.no_dashboard_or_view")})}async playMedia(e,t){const n=this._api.getHASSManager().getHASS();if(!n||!t)return;const a=t.getTitle(),i=t.getThumbnail();await n.callService("media_player","play_media",{entity_id:e,media_content_id:t.getContentID(),media_content_type:tx.isVideo(t)?"video":"image",extra:{...a&&{title:a},...i&&{thumb:i}}})}}class ax{constructor(e){this._message=null,this._api=e}getMessage(){return this._message}hasMessage(){return!!this._message}hasErrorMessage(){return"error"===this._message?.type}reset(){const e=this.hasMessage();this._message=null,e&&this._api.getCardElementManager().update()}resetType(e){this._message?.type===e&&this.reset()}setErrorIfHigherPriority(e,t){e&&"object"==typeof e&&"message"in e&&(Gg(e),this.setMessageIfHigherPriority({message:t?`${t}: ${e.message}`:e.message,type:"error",...e instanceof zs&&{context:e.context}}))}setMessageIfHigherPriority(e){const t=this._message?Is[this._message.type]:0,n=Is[e.type];return!(this._message&&ne.stop())),this._stream=void 0,this._setConditionState(),this._api.getCardElementManager().update()}getStream(){return this._stream??void 0}mute(){const e=this.isMuted();this._mute=!0,this._setMute(),this._setConditionState(),e||this._callListeners("muted")}async unmute(){if(!this.isSupported())return;const e=!this.isMuted(),t=()=>{this._mute=!1,this._setMute()};this.isConnected()||this.isForbidden()?this.isConnected()&&t():(t(),await this.connect()),this._setConditionState(),e||this._callListeners("unmuted")}isConnected(){return!!this._stream}isForbidden(){return null===this._stream}isMuted(){return!this._stream||this._stream.getTracks().every((e=>!e.enabled))}addListener(e){this._listeners.push(e)}removeListener(e){this._listeners=this._listeners.filter((t=>t!==e))}_callListeners(e){this._listeners.forEach((t=>t(e)))}_setMute(){this._stream?.getTracks().forEach((e=>{e.enabled=!this._mute})),this._startTimer(),this._api.getCardElementManager().update()}_startTimer(){const e=this._api.getConfigManager().getConfig()?.live.microphone;if(e?.always_connected)return;const t=e?.disconnect_seconds??0;t&&this._timer.start(t,(()=>{this.disconnect()}))}_setConditionState(){this._api.getConditionsManager().setState({microphone:{muted:this.isMuted(),connected:this.isConnected()}})}}class rx{constructor(e){this._shouldRun=!0,this.requestExecution=()=>{this._shouldRun=!0,this._api.getCardElementManager().update()},this.executeIfNecessary=async()=>{this._shouldRun&&(this._shouldRun=!1,await this._executeViewRelated(this._calculateIntent()),await this._executeNonViewRelated(this._calculateIntent()))},this._isViewAction=e=>{switch(e.frigate_card_action){case"clip":case"clips":case"diagnostics":case"image":case"live":case"recording":case"recordings":case"snapshot":case"snapshots":case"timeline":return!0}return!1},this._api=e}hasViewRelatedActionsToRun(){return!!this._calculateIntent().view&&this._shouldRun}async _executeViewRelated(e){e.view&&(e.view.default?await this._api.getViewManager().setViewDefaultWithNewQuery({params:{camera:e.view.camera},...e.view.substream&&{modifiers:[new sb(e.view.substream)]}}):await this._api.getViewManager().setViewByParametersWithNewQuery({params:{...e.view.view&&{view:e.view.view},...e.view.camera&&{camera:e.view.camera}},...e.view.substream&&{modifiers:[new sb(e.view.substream)]}}))}async _executeNonViewRelated(e){e.other&&await this._api.getActionsManager().executeActions(e.other)}_calculateIntent(){const e={};for(const t of this._getActions())this._isViewAction(t)?((e.view??={}).view=t.frigate_card_action,(e.view??={}).default=void 0):"default"===t.frigate_card_action?((e.view??={}).default=!0,(e.view??={}).view=void 0):"camera_select"===t.frigate_card_action?(e.view??={}).camera=t.camera:"live_substream_select"===t.frigate_card_action?(e.view??={}).substream=t.camera:(e.other??=[]).push(t);return e}_getActions(){const e=new URLSearchParams(window.location.search),t=[],n=new RegExp(/^frigate-card-action([.:](?\w+))?[.:](?\w+)/);for(const[a,i]of e.entries()){const e=a.match(n);if(!e||!e.groups)continue;const r=e.groups.cardID,o=e.groups.action;let s=null;switch(o){case"camera_select":case"live_substream_select":i&&(s=ff(o,i,{cardID:r}));break;case"camera_ui":case"clip":case"clips":case"default":case"diagnostics":case"download":case"expand":case"image":case"live":case"menu_toggle":case"recording":case"recordings":case"snapshot":case"snapshots":case"timeline":s=gf(o,{cardID:r});break;default:console.warn(`Frigate card received unknown card action in query string: ${o}`)}s&&t.push(s)}return t}}class ox{constructor(e){this._items=[],this._dynamicItems=[],this._api=e}addDynamicStatusBarItem(e){this._dynamicItems.includes(e)||this._dynamicItems.push(e),this._api.getCardElementManager().update()}removeDynamicStatusBarItem(e){this._dynamicItems=this._dynamicItems.filter((t=>!Dv(t,e))),this._api.getCardElementManager().update()}removeAllDynamicStatusBarItems(){this._dynamicItems=[],this._api.getCardElementManager().update()}calculateItems(e){const t=e?.view?e?.cameraManager?.getCameraMetadata(e?.view?.camera):null,n=t?.engineLogo??null,a=e?.view?.is("live")?t?.title??null:e?.view?.isViewerView()?e?.view.queryResults?.getSelectedResult()?.getTitle()??null:null,i=e?.mediaLoadedInfo?this._calculateResolution(e?.mediaLoadedInfo):null,r=e?.mediaLoadedInfo?.technology?.length?e?.mediaLoadedInfo.technology[0]:null;return[...a?[{type:"custom:frigate-card-status-bar-string",string:a,expand:!0,sufficient:!0,...e?.statusConfig?.items.title}]:[],...i?[{type:"custom:frigate-card-status-bar-string",string:i,...e?.statusConfig?.items.resolution}]:[],...r&&"webrtc"===r?[{type:"custom:frigate-card-status-bar-icon",icon:"mdi:webrtc",...e?.statusConfig?.items.technology}]:r?[{type:"custom:frigate-card-status-bar-string",string:r.toUpperCase(),...e?.statusConfig?.items.technology}]:[],...n?[{type:"custom:frigate-card-status-bar-image",image:n,...e?.statusConfig?.items.engine}]:[],...this._dynamicItems]}_matchesWidthHeight(e,t,n){const a=.99*t,i=1.01*t,r=.99*n,o=1.01*n,s=(e,t,n)=>e>=t&&e<=n;return!!e&&(s(e.width,a,i)&&s(e.height,r,o)||s(e.height,a,i)&&s(e.width,r,o))}_calculateResolution(e){return this._matchesWidthHeight(e,1920,1080)?"1080p":this._matchesWidthHeight(e,1280,720)?"720p":this._matchesWidthHeight(e,640,480)?"VGA":this._matchesWidthHeight(e,3840,2160)?"4K":this._matchesWidthHeight(e,720,480)?"480p":this._matchesWidthHeight(e,720,576)?"576p":this._matchesWidthHeight(e,7680,4320)?"8K":`${e.width}x${e.height}`}}class sx{constructor(e){this.setLightOrDarkMode=()=>{const e=this._api.getConfigManager().getConfig(),t="on"===e?.view.dark_mode||"auto"===e?.view.dark_mode&&(!this._api.getInteractionManager().hasInteraction()||!!this._api.getHASSManager().getHASS()?.themes.darkMode);of(this._api.getCardElementManager().getElement(),t,"dark")},this._api=e}setExpandedMode(){const e=this._api.getCardElementManager().getElement(),t=this._api.getViewManager().getView(),n=this._api.getMediaLoadedInfoManager().getLastKnown();e.style.setProperty("--frigate-card-expand-aspect-ratio",t?.isAnyMediaView()&&n?`${n.width} / ${n.height}`:"unset");const a=t?.isGrid();e.style.setProperty("--frigate-card-expand-width",!a&&t?.isAnyMediaView()?"none":"var(--frigate-card-expand-max-width)"),e.style.setProperty("--frigate-card-expand-height",!a&&t?.isAnyMediaView()?"none":"var(--frigate-card-expand-max-height)")}setMinMaxHeight(){const e=this._api.getConfigManager().getConfig();if(e){this._api.getCardElementManager().getElement().style.setProperty("--frigate-card-height",e.dimensions.height)}}setPerformance(){const e={box_shadow:"none",border_radius:"0px"},t=this._api.getCardElementManager().getElement(),n=this._api.getConfigManager().getCardWideConfig()?.performance,a=n?.style??{};for(const n of Object.keys(a)){const i=`--frigate-card-css-${n.replaceAll("_","-")}`;!1===a[n]?t.style.setProperty(i,e[n]):t.style.removeProperty(i)}}_isAspectRatioEnforced(e,t){const n=e.dimensions.aspect_ratio_mode;return!(this._api.getFullscreenManager().isInFullscreen()||this._api.getExpandManager().isExpanded()||"unconstrained"===n||"dynamic"===n&&(!t||t?.isAnyMediaView()||t?.is("timeline")||t?.is("diagnostics")))}getAspectRatioStyle(){const e=this._api.getConfigManager().getConfig(),t=this._api.getViewManager().getView();if(e){if(!this._isAspectRatioEnforced(e,t))return uf();const n=e.dimensions.aspect_ratio_mode,a=this._api.getMediaLoadedInfoManager().getLastKnown();return uf(a&&"dynamic"===n?{ratio:[a.width,a.height]}:{ratio:e.dimensions.aspect_ratio})}return uf({defaultStatic:!0})}}class cx{constructor(e){this._triggeredCameras=new Map,this._triggeredCameraTimers=new Map,this._throttledTriggerAction=qw(this._triggerAction.bind(this),1e3,{trailing:!0}),this._api=e}getTriggeredCameraIDs(){return new Set(this._triggeredCameras.keys())}isTriggered(){return!!this._triggeredCameras.size}getMostRecentlyTriggeredCameraID(){const e=Ev([...this._triggeredCameras.entries()],(e=>e[1].getTime()),"desc");return e.length?e[0][0]:null}async handleCameraEvent(e){const t=this._api.getConfigManager().getConfig()?.view.triggers,n=this._api.getViewManager().getView()?.camera;if(!t||!n)return;const a=this._api.getCameraManager().getStore().getAllDependentCameras(n);t.filter_selected_camera&&!a.has(e.cameraID)||("end"!==e.type?(this._triggeredCameras.set(e.cameraID,new Date),this._setConditionStateIfNecessary(),await this._throttledTriggerAction(e)):this._startUntriggerTimer(e.cameraID))}_hasAllowableInteractionStateForAction(){const e=this._api.getConfigManager().getConfig()?.view.triggers,t=this._api.getInteractionManager().hasInteraction();return!!e&&("all"===e.actions.interaction_mode||"active"===e.actions.interaction_mode&&t||"inactive"===e.actions.interaction_mode&&!t)}async _triggerAction(e){const t=this._api.getConfigManager().getConfig()?.view.triggers.actions.trigger,n=this._api.getConfigManager().getConfig()?.view.default;("high"!==e.fidelity||e.snapshot||e.clip||"live"===t||"default"===t&&"live"===n)&&(this._hasAllowableInteractionStateForAction()&&("update"===t?await this._api.getViewManager().setViewByParametersWithNewQuery({queryExecutorOptions:{useCache:!1}}):"live"===t?await this._api.getViewManager().setViewByParametersWithNewQuery({params:{view:"live",camera:e.cameraID}}):"default"===t?await this._api.getViewManager().setViewDefaultWithNewQuery({params:{camera:e.cameraID}}):"high"===e.fidelity&&"media"===t&&await this._api.getViewManager().setViewByParametersWithNewQuery({params:{view:e.clip?"clip":"snapshot",camera:e.cameraID}})),this._api.getCardElementManager().update())}_setConditionStateIfNecessary(){const e=new Set(this._triggeredCameras.keys()),t=e.size?e:void 0;Dv(t,this._api.getConditionsManager().getState().triggered)||this._api.getConditionsManager().setState({triggered:t})}async _untriggerAction(e){const t=this._api.getConfigManager().getConfig()?.view.triggers.actions.untrigger;"default"===t&&this._hasAllowableInteractionStateForAction()&&await this._api.getViewManager().setViewDefaultWithNewQuery(),this._triggeredCameras.delete(e),this._deleteTimer(e),this._setConditionStateIfNecessary(),this._api.getCardElementManager().update()}_startUntriggerTimer(e){this._deleteTimer(e);const t=new xf;this._triggeredCameraTimers.set(e,t),t.start( +/* istanbul ignore next: the case of config being null here cannot be + reached, as there's no way to have the untrigger call happen without + a config. -- @preserve */ +this._api.getConfigManager().getConfig()?.view.triggers.untrigger_seconds??0,(async()=>{await this._untriggerAction(e)}))}_deleteTimer(e){this._triggeredCameraTimers.get(e)?.stop(),this._triggeredCameraTimers.delete(e)}}function lx(e,t){return t="function"==typeof t?t:void 0,e&&e.length?Hg(e,void 0,t):[]}class dx{constructor(e){this._queries=null,e&&(this._queries=e)}clone(){return u_(this)}getQueries(){return this._queries}setQueries(e){return this._queries=e,this}getQueryCameraIDs(){if(!this._queries)return null;const e=new Set;return this._queries.forEach((t=>[...t.cameraIDs].forEach((t=>e.add(t))))),e}setQueryCameraIDs(e){if(!this._queries)return this;const t=[];return this._queries.forEach((n=>t.push({...n,cameraIDs:Zg(e)}))),this._queries=lx(t,Dv),this}hasQueriesForCameraIDs(e){for(const t of e)if(!this._queries?.some((e=>e.cameraIDs.has(t))))return!1;return!0}}class ux extends dx{convertToClipsQueries(){for(const e of this._queries??[])delete e.hasSnapshot,e.hasClip=!0;return this}}class hx extends dx{}class px{static areEventQueries(e){return e instanceof ux}static areRecordingQueries(e){return e instanceof hx}static areClipsQueries(e){return this.areEventQueries(e)&&!!e?.getQueries()?.every((e=>e.hasClip))}static areSnapshotQueries(e){return this.areEventQueries(e)&&!!e?.getQueries()?.every((e=>e.hasSnapshot))}static getQueriesType(e){return this.areEventQueries(e)?"event":this.areRecordingQueries(e)?"recording":null}static getMediaType(e){return this.areClipsQueries(e)?"clips":this.areSnapshotQueries(e)?"snapshots":this.areRecordingQueries(e)?"recordings":null}}const mx=(e,t,n)=>{const a={anyCapabilities:["clips","snapshots","recordings"]};switch(t){case"image":case"diagnostics":return e.getStore().getCameraIDs();case"live":case"clip":case"clips":case"snapshot":case"snapshots":case"recording":case"recordings":const i="clip"===t?"clips":"snapshot"===t?"snapshots":"recording"===t?"recordings":t;return n?e.getStore().getAllDependentCameras(n,i):e.getStore().getCameraIDsWithCapability(i);case"timeline":return e.getStore().getCameraIDsWithCapability(a);case"media":return n?e.getStore().getAllDependentCameras(n,a):e.getStore().getCameraIDsWithCapability(a)}},gx=(e,t)=>Ly({},e,t);class fx{constructor(e){this.view=e.view,this.camera=e.camera,this.query=e.query??null,this.queryResults=e.queryResults??null,this.context=e.context??null,this.displayMode=e.displayMode??null}clone(){return new fx({view:this.view,camera:this.camera,query:this.query?.clone()??null,queryResults:this.queryResults?.clone()??null,context:this.context,displayMode:this.displayMode})}evolve(e){return new fx({view:void 0!==e.view?e.view:this.view,camera:void 0!==e.camera?e.camera:this.camera,query:void 0!==e.query?e.query:this.query?.clone()??null,queryResults:void 0!==e.queryResults?e.queryResults:this.queryResults?.clone()??null,context:void 0!==e.context?e.context:this.context,displayMode:void 0!==e.displayMode?e.displayMode:this.displayMode})}mergeInContext(e){return this.context=gx(this.context,e),this}removeContext(e){return this.context&&delete this.context[e],this}removeContextProperty(e,t){const n=this.context?.[e];return n&&delete n[t],this}is(e){return this.view==e}isGalleryView(){return["clips","snapshots","recordings"].includes(this.view)}isAnyMediaView(){return this.isViewerView()||this.is("live")||this.is("image")}isViewerView(){return["media","clip","snapshot","recording"].includes(this.view)}supportsMultipleDisplayModes(){return this.isViewerView()||this.is("live")}getDefaultMediaType(){return["clip","clips"].includes(this.view)?"clips":["snapshot","snapshots"].includes(this.view)?"snapshots":["recording","recordings"].includes(this.view)?"recordings":null}isGrid(){return"grid"===this.displayMode}}const _x=(e,t)=>{t?.forEach((t=>t.modify(e)))};class vx extends zs{}class yx extends zs{}class bx{constructor(e){this._api=e}getViewDefault(e){const t=this._api.getConfigManager().getConfig();if(!t)return null;let n=null;const a=e?.params?.view??t.view.default;if(e?.params?.camera)n=e.params.camera;else{const i=[...mx(this._api.getCameraManager(),a)];if(!i.length)return null;if(e?.baseView?.camera&&t.view.default_cycle_camera){const t=i.indexOf(e.baseView.camera);n=i[t+1>=i.length?0:t+1]}else n=i[0]}return this.getViewByParameters({params:{...e?.params,view:a,camera:n},baseView:e?.baseView})}getViewByParameters(e){const t=this._api.getConfigManager().getConfig();if(!t)return null;let n=e?.params?.camera??e?.baseView?.camera??null,a=e?.params?.view??e?.baseView?.view??t.view.default;const i=this._api.getCameraManager().getStore().getCameraIDs();if(!n||!i.has(n)){n=mx(this._api.getCameraManager(),a).keys().next().value??null}if(!n){const e=[...this._api.getCameraManager().getStore().getCameras()].reduce(((e,[t,n])=>{const a=n.getCapabilities()?.getRawCapabilities();return a&&(e[t]=a),e}),{});throw new vx(V_("error.no_supported_cameras"),{view:a,cameras_capabilities:e})}if(!this.isViewSupportedByCamera(n,a)){if(!e?.failSafe||!this.isViewSupportedByCamera(n,Qs)){const e=this._api.getCameraManager().getStore().getCamera(n)?.getCapabilities()?.getRawCapabilities();throw new yx(V_("error.no_supported_camera"),{view:a,camera:n,...e&&{camera_capabilities:e}})}a=Qs}const r=e?.params?.displayMode??e?.baseView?.displayMode??this._getDefaultDisplayModeForView(a,t),o={...e?.params,view:a,camera:n,displayMode:r},s=e?.baseView?e.baseView.evolve(o):new fx(o);return _x(s,e?.modifiers),s}isViewSupportedByCamera(e,t){return!!mx(this._api.getCameraManager(),t,e).size}_getDefaultDisplayModeForView(e,t){let n=null;switch(e){case"media":case"clip":case"recording":case"snapshot":n=t.media_viewer.display?.mode??null;break;case"live":n=t.live.display?.mode??null}return n??"single"}}class wx{constructor(e,t){this._key=e,this._property=t}modify(e){e.removeContextProperty(this._key,this._property)}}class xx{constructor(e){this._query=e?.query,this._queryResults=e?.queryResults}modify(e){void 0!==this._query&&(e.query=this._query),void 0!==this._queryResults&&(e.queryResults=this._queryResults)}}const Cx=(e,t,n)=>{let a;for(const[i,r]of e.entries()){const e=r.getStartTime(),o=r.getUsableEndTime();if(r.includesTime(t)&&e&&o){const t=o.getTime()-e.getTime();(!a||n&&a.cameraID!==n&&r.getCameraID()===n||t>a.duration&&(!n||a.cameraID!==n||r.getCameraID()===n))&&(a={index:i,duration:t,cameraID:r.getCameraID()})}}return a?a.index:null};class Mx{constructor(e){this._results=e?.results??[],this._selectedIndex=this._getInitialSelectedIndex(e)}_getInitialSelectedIndex(e){return null!=e?.selectedIndex?e.selectedIndex:e?.results&&e.results.length?e?.selectApproach&&"last"!==e?.selectApproach?0:e.results.length-1:null}clone(){return new Mx({results:this._results,selectedIndex:this._selectedIndex})}getResults(){return this._results}getSelectedIndex(){return this._selectedIndex}getResultsCount(){return this.getResults().length}hasResults(){return 0!==this.getResultsCount()}getResult(e){return void 0===e?null:this._results[e]}getSelectedResult(){const e=this.getSelectedIndex();return null!==e?this.getResult(e):null}hasSelectedResult(){return null!==this.getSelectedResult()}resetSelectedResult(){this._selectedIndex=null}selectIndex(e){(null===e||e>=0&&ee.getID()))),n=new Set(e._main.getResults()?.map((e=>e.getID())));return!(!t.size||!n.size||t.has(null)||n.has(null))&&((e,t)=>{for(const n of t)if(!e.has(n))return!1;return!0})(t,n)}getCameraIDs(){return new Set(this._cameras.keys())}getSlice(e){return e?this._cameras.get(e)??null:this._main}getResults(e){return this.getSlice(e)?.getResults()??null}getResultsCount(e){return this.getSlice(e)?.getResultsCount()??0}hasResults(e){return 0!==this.getSlice(e)?.getResultsCount()}getResult(e,t){return this.getSlice(t)?.getResult(e)??null}getSelectedIndex(e){return this.getSlice(e)?.getSelectedIndex()??null}getSelectedResult(e){return this.getSlice(e)?.getSelectedResult()??null}getMultipleSelectedResults(e){const t=[];if(!e||e.main){const e=this.getSelectedResult();e&&t.push(e)}const n=this._getCameraIDsFromCriteria(e);for(const e of n??[]){const n=this.getSelectedResult(e);n&&t.push(n)}return t}hasSelectedResult(e){return this.getSlice(e)?.hasSelectedResult()??!1}resetSelectedResult(e){return this.getSlice(e)?.resetSelectedResult(),this}getResultsTimestamp(){return this._resultsTimestamp}selectIndex(e,t){return this.getSlice(t)?.selectIndex(e),t||this.demoteMainSelectionToCameraSelection(),this}demoteMainSelectionToCameraSelection(){const e=this.getSelectedResult();if(e){const t=e.getCameraID();this.resetSelectedResult(t),this.selectResultIfFound((t=>t===e),{cameraID:t})}return this}promoteCameraSelectionToMainSelection(e){const t=this.getSelectedResult(e);return this.resetSelectedResult(),this.selectResultIfFound((e=>e===t)),this}_getCameraIDsFromCriteria(e){return e?.allCameras?this.getCameraIDs():e?.cameraID?new Set([e.cameraID]):null}selectResultIfFound(e,t){t&&!t?.main||(this._main.selectResultIfFound(e),this.demoteMainSelectionToCameraSelection());const n=this._getCameraIDsFromCriteria(t);for(const t of n??[])this.getSlice(t)?.selectResultIfFound(e);return this}selectBestResult(e,t){t&&!t.main||(this._main.selectBestResult(e),this.demoteMainSelectionToCameraSelection());const n=this._getCameraIDsFromCriteria(t);for(const t of n??[])this.getSlice(t)?.selectBestResult(e);return this}}class Sx{constructor(e){this._api=e}async executeDefaultEventQuery(e){const t=e?.eventsMediaType&&"all"!==e?.eventsMediaType?e.eventsMediaType:{anyCapabilities:["clips","snapshots"]},n=this._api.getCameraManager(),a=e?.cameraID?n.getStore().getAllDependentCameras(e.cameraID,t):n.getStore().getCameraIDsWithCapability(t);if(!a.size)return null;const i=n.generateDefaultEventQueries(a,{limit:this._getChunkLimit(),..."clips"===e?.eventsMediaType&&{hasClip:!0},..."snapshots"===e?.eventsMediaType&&{hasSnapshot:!0}});if(!i)return null;const r=new ux(i),o=await this.execute(r,e?.executorOptions);return o?{query:r,queryResults:o}:null}async executeDefaultRecordingQuery(e){const t=this._api.getCameraManager(),n=e?.cameraID?t.getStore().getAllDependentCameras(e.cameraID,"recordings"):t.getStore().getCameraIDsWithCapability("recordings");if(!n.size)return null;const a=t.generateDefaultRecordingQueries(n,{limit:this._getChunkLimit()});if(!a)return null;const i=new hx(a),r=await this.execute(i,e?.executorOptions);return r?{query:i,queryResults:r}:null}async execute(e,t){const n=e.getQueries();if(!n)return null;const a=await this._api.getCameraManager().executeMediaQueries(n,{useCache:t?.useCache});if(!a)return null;const i=new kx({results:a});return t?.rejectResults?.(i)?null:(t?.selectResult?.id?i.selectBestResult((e=>e.findIndex((e=>e.getID()===t.selectResult?.id)))):t?.selectResult?.func?i.selectResultIfFound(t.selectResult.func):t?.selectResult?.time&&i.selectBestResult((e=>Cx(e,t.selectResult?.time?.time,t.selectResult?.time?.favorCameraID))),i)}_getChunkLimit(){const e=this._api.getConfigManager().getCardWideConfig();return e?.performance?.features.media_chunk_size??50}}class Ex{constructor(e,t){this._api=e,this._executor=t??new Sx(e)}async getExistingQueryModifiers(e,t){return e.query?[new xx({queryResults:await this._executor.execute(e.query,t)})]:[]}async getNewQueryModifiers(e,t){return await this._executeNewQuery(e,{useCache:!1,...t})}async _executeNewQuery(e,t){const n=this._api.getConfigManager().getConfig();if(!n)return null;const a=e?.getDefaultMediaType(),i=[],r=async n=>{ +/* istanbul ignore if: this path cannot be reached -- @preserve */ +if(!n)return[];const a="recordings"===n?await this._executor.executeDefaultRecordingQuery({...!e.isGrid()&&{cameraID:e.camera},executorOptions:t}):"clips"===n||"snapshots"===n||"all"===n?await this._executor.executeDefaultEventQuery({...!e.isGrid()&&{cameraID:e.camera},eventsMediaType:n,executorOptions:t}):/* istanbul ignore next -- @preserve */ +null;return a?[new xx(a)]:[]};switch(e.view){case"live":"none"!==n.live.controls.thumbnails.mode&&i.push(...await r("recordings"===n.live.controls.thumbnails.media_type?"recordings":n.live.controls.thumbnails.events_media_type));break;case"media":i.push(...await r("clips"));break;case"clips":case"snapshots":case"recordings":i.push(...await r(a));break;case"clip":case"snapshot":case"recording":"none"!==n.media_viewer.controls.thumbnails.mode&&i.push(...await r(a))}return i.push(...this._getTimelineWindowViewModifier(e)),i.push(...this._getSeekTimeModifier(t?.selectResult?.time?.time)),i}_getTimelineWindowViewModifier(e){if(e.is("live")){const e=new Date,t=this._api.getConfigManager().getConfig()?.live; +/* istanbul ignore if: this if branch cannot be reached as if the config is + empty this function is never called -- @preserve */ +return t?[new Gy({timeline:{window:{start:Qu(e,{seconds:t.controls.timeline.window_seconds}),end:e}}})]:[]}return[new wx("timeline","window")]}_getSeekTimeModifier(e){return e?[new Gy({mediaViewer:{seek:e}})]:[new wx("mediaViewer","seek")]}}class $x{constructor(e,t){this._view=null,this._epoch=this._createEpoch(),this._loadingIndex=1,this.setViewDefault=e=>this._setViewGeneric(this._viewFactory.getViewDefault.bind(this._viewFactory),e),this.setViewByParameters=e=>this._setViewGeneric(this._viewFactory.getViewByParameters.bind(this._viewFactory),e),this.setViewDefaultWithNewQuery=async e=>await this._setViewThenModifyAsync(this._viewFactory.getViewDefault.bind(this._viewFactory),this._viewQueryExecutor.getNewQueryModifiers.bind(this._viewQueryExecutor),e),this.setViewByParametersWithNewQuery=async e=>await this._setViewThenModifyAsync(this._viewFactory.getViewByParameters.bind(this._viewFactory),this._viewQueryExecutor.getNewQueryModifiers.bind(this._viewQueryExecutor),e),this.setViewByParametersWithExistingQuery=async e=>await this._setViewThenModifyAsync(this._viewFactory.getViewByParameters.bind(this._viewFactory),this._viewQueryExecutor.getExistingQueryModifiers.bind(this._viewQueryExecutor),e),this.initialize=async()=>(this._api.getQueryStringManager().hasViewRelatedActionsToRun()||this.setViewDefaultWithNewQuery({failSafe:!0}),!0),this._api=e,this._viewFactory=t?.viewFactory??new bx(e),this._viewQueryExecutor=t?.viewQueryExecutor??new Ex(e)}getEpoch(){return this._epoch}_createEpoch(e){return{manager:this,...e&&{oldView:e}}}getView(){return this._view}hasView(){return!!this.getView()}reset(){this._view&&this._setView(null)}_setViewGeneric(e,t){let n=null;try{n=e({baseView:this._view,...t})}catch(e){this._api.getMessageManager().setErrorIfHigherPriority(e)}n&&this._setView(n)}_markViewLoadingQuery(e,t){return e.mergeInContext({loading:{query:t}})}_markViewAsNotLoadingQuery(e){return e.removeContextProperty("loading","query")}async _setViewThenModifyAsync(e,t,n){let a=null;try{a=e({baseView:this._view,...n,params:{query:null,queryResults:null,...n?.params}})}catch(e){this._api.getMessageManager().setErrorIfHigherPriority(e)}if(!a)return;if(this._view&&this._shouldAdoptQueryAndResults(a))return a.query=this._view.query,a.queryResults=this._view.queryResults,this._markViewAsNotLoadingQuery(a),void this._setView(a);const i=this._loadingIndex++;this._markViewLoadingQuery(a,i),this._setView(a);let r=null,o=null;try{r=await t(a,n?.queryExecutorOptions)}catch(e){o=e}if(this._view&&this.hasMajorMediaChange(this._view,a))return void(this._view.context?.loading?.query===i&&this._setView(this._markViewAsNotLoadingQuery(this._view.clone())));if(o)return void this._api.getMessageManager().setErrorIfHigherPriority(o); +/* istanbul ignore if: the if path cannot be reached as the view is set + above -- @preserve */if(!this._view)return;const s=this._view.clone();this._view.context?.loading?.query===i&&this._markViewAsNotLoadingQuery(s),_x(s,r),this._setView(s)}_shouldAdoptQueryAndResults(e){const t=this._view?.isViewerView()&&e?.isGalleryView(),n=e?.getDefaultMediaType(),a=px.getMediaType(this._view?.query)===n;return!!t&&a}setViewWithMergedContext(e){if(this._view)return this._setView(this._view?.clone().mergeInContext(e))}isViewSupportedByCamera(e,t){return!!mx(this._api.getCameraManager(),t,e).size}hasMajorMediaChange(e,t){const n=t??this._view;return!!e!=!!n||e?.view!==n?.view||e?.camera!==n?.camera||"live"===n?.view&&e&&My(e)!==My(n)||"live"!==n?.view&&e?.queryResults!==n?.queryResults}_setView(e){const t=this._view;B_(this._api.getConfigManager().getCardWideConfig(),"Frigate Card view change: ",e),this._view=e,this._epoch=this._createEpoch(t),this.hasMajorMediaChange(t)&&this._api.getMediaLoadedInfoManager().clear(),t?.view!==e?.view&&this._api.getCardElementManager().scrollReset(),this._api.getMessageManager().reset(),this._api.getStyleManager().setExpandedMode(),this._api.getConditionsManager()?.setState({view:e?.view,camera:e?.camera,displayMode:e?.displayMode??void 0}),this._api.getCardElementManager().update()}}class Ax{constructor(e,t,n,a){this._deviceRegistryManager=new oy(new iy((e=>e.id))),this._entityRegistryManager=new ly(new iy((e=>e.entity_id))),this._resolvedMediaCache=new uy,this._actionsManager=new gb(this),this._automationsManager=new fb(this),this._cameraManager=new ay(this),this._cameraURLManager=new _b(this),this._configManager=new Mw(this),this._defaultManager=new kw(this),this._downloadManager=new Aw(this),this._expandManager=new zw(this),this._fullscreenManager=new Rw(this),this._hassManager=new Lw(this),this._initializationManager=new Zb(this),this._interactionManager=new Uw(this),this._keyboardStateManager=new Ww(this),this._mediaLoadedInfoManager=new ex(this),this._mediaPlayerManager=new nx(this),this._messageManager=new ax(this),this._microphoneManager=new ix(this),this._queryStringManager=new rx(this),this._statusBarItemManager=new ox(this),this._styleManager=new sx(this),this._triggersManager=new cx(this),this._viewManager=new $x(this),e.addController(this),this._conditionsManager=new yw(this,a),this._cardElementManager=new Qb(this,e,t,n)}getActionsManager(){return this._actionsManager}getAutomationsManager(){return this._automationsManager}getCameraManager(){return this._cameraManager}getCameraURLManager(){return this._cameraURLManager}getCardElementManager(){return this._cardElementManager}getConditionsManager(){return this._conditionsManager}static async getConfigElement(){return await import("./editor-13524f00.js"),document.createElement("frigate-card-editor")}getConfigManager(){return this._configManager}getDefaultManager(){return this._defaultManager}getDeviceRegistryManager(){return this._deviceRegistryManager}getDownloadManager(){return this._downloadManager}getEntityRegistryManager(){return this._entityRegistryManager}getExpandManager(){return this._expandManager}getFullscreenManager(){return this._fullscreenManager}getHASSManager(){return this._hassManager}getInitializationManager(){return this._initializationManager}getInteractionManager(){return this._interactionManager}getKeyboardStateManager(){return this._keyboardStateManager}getMediaLoadedInfoManager(){return this._mediaLoadedInfoManager}getMediaPlayerManager(){return this._mediaPlayerManager}getMessageManager(){return this._messageManager}getMicrophoneManager(){return this._microphoneManager}getQueryStringManager(){return this._queryStringManager}getResolvedMediaCache(){return this._resolvedMediaCache}getStatusBarItemManager(){return this._statusBarItemManager}static getStubConfig(e){return{cameras:[{camera_entity:e.find((e=>e.startsWith("camera.")))??"camera.demo"}]}}getStyleManager(){return this._styleManager}getTriggersManager(){return this._triggersManager}getViewManager(){return this._viewManager}hostConnected(){this.getCardElementManager().elementConnected()}hostDisconnected(){this.getCardElementManager().elementDisconnected()}}class zx{constructor(){this._dynamicMenuButtons=[]}addDynamicMenuButton(e){this._dynamicMenuButtons.includes(e)||this._dynamicMenuButtons.push(e)}removeDynamicMenuButton(e){this._dynamicMenuButtons=this._dynamicMenuButtons.filter((t=>t!=e))}calculateButtons(e,t,n,a){return[this._getDefaultButton(t),this._getCamerasButton(t,n,a?.view),this._getSubstreamsButton(t,n,a?.view),this._getLiveButton(t,a?.view,a?.viewManager),this._getClipsButton(t,a?.view,a?.viewManager),this._getSnapshotsButton(t,a?.view,a?.viewManager),this._getRecordingsButton(t,a?.view,a?.viewManager),this._getImageButton(t,a?.view,a?.viewManager),this._getTimelineButton(t,a?.view,a?.viewManager),this._getDownloadButton(t,n,a?.view),this._getCameraUIButton(t,a?.showCameraUIButton),this._getMicrophoneButton(t,a?.microphoneManager,a?.currentMediaLoadedInfo),this._getExpandButton(t,a?.inExpandedMode),this._getFullscreenButton(t,a?.inFullscreenMode),this._getCastButton(e,t,n,a?.view,a?.mediaPlayerController),this._getPlayPauseButton(t,a?.currentMediaLoadedInfo),this._getMuteUnmuteButton(t,a?.currentMediaLoadedInfo),this._getScreenshotButton(t,a?.currentMediaLoadedInfo),this._getDisplayModeButton(t,n,a?.view),this._getPTZControlsButton(t,n,a?.view),this._getPTZHomeButton(t,n,a?.view),...this._dynamicMenuButtons.map((e=>({style:this._getStyleFromActions(t,e,a),...e})))].filter(sf)}_getDefaultButton(e){return{icon:"frigate",...e.menu.buttons.frigate,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.frigate"),permanent:!0,tap_action:"hidden"===e.menu?.style?gf("menu_toggle"):gf("default"),hold_action:gf("diagnostics")}}_getCamerasButton(e,t,n){const a=t.getStore().getCameraIDsWithCapability("menu");if(a.size>1){const i=Array.from(t.getStore().getCameraConfigEntries(a),(([e,a])=>{const i=ff("camera_select",e),r=t.getCameraMetadata(e);return{enabled:!0,icon:r?.icon,entity:a.camera_entity,state_color:!0,title:r?.title,selected:n?.camera===e,...i&&{tap_action:i}}}));return{icon:"mdi:video-switch",...e.menu.buttons.cameras,type:"custom:frigate-card-menu-submenu",title:V_("config.menu.buttons.cameras"),items:i}}return null}_getSubstreamsButton(e,t,n){if(!n)return null;const a=t.getStore().getAllDependentCameras(n.camera,"substream");if(a.size&&n.is("live")){const i=[...a].filter((e=>e!==n.camera)),r=[n.camera,...i],o=My(n);if(2===r.length)return{icon:"mdi:video-input-component",style:o!==n.camera?this._getEmphasizedStyle():{},title:V_("config.menu.buttons.substreams"),...e.menu.buttons.substreams,type:"custom:frigate-card-menu-icon",tap_action:gf(ky(n)?"live_substream_off":"live_substream_on")};if(r.length>2){const a=Array.from(r,(e=>{const n=ff("live_substream_select",e),a=t.getCameraMetadata(e)??void 0,i=t.getStore().getCameraConfig(e);return{enabled:!0,icon:a?.icon,entity:i?.camera_entity,state_color:!0,title:a?.title,selected:o===e,...n&&{tap_action:n}}}));return{icon:"mdi:video-input-component",title:V_("config.menu.buttons.substreams"),style:o!==n.camera?this._getEmphasizedStyle():{},...e.menu.buttons.substreams,type:"custom:frigate-card-menu-submenu",items:a}}}return null}_getLiveButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"live")?{icon:"mdi:cctv",...e.menu.buttons.live,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.live"),style:t.is("live")?this._getEmphasizedStyle():{},tap_action:gf("live")}:null}_getClipsButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"clips")?{icon:"mdi:filmstrip",...e.menu.buttons.clips,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.clips"),style:t?.is("clips")?this._getEmphasizedStyle():{},tap_action:gf("clips"),hold_action:gf("clip")}:null}_getSnapshotsButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"snapshots")?{icon:"mdi:camera",...e.menu.buttons.snapshots,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.snapshots"),style:t?.is("snapshots")?this._getEmphasizedStyle():{},tap_action:gf("snapshots"),hold_action:gf("snapshot")}:null}_getRecordingsButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"recordings")?{icon:"mdi:album",...e.menu.buttons.recordings,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.recordings"),style:t.is("recordings")?this._getEmphasizedStyle():{},tap_action:gf("recordings"),hold_action:gf("recording")}:null}_getImageButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"image")?{icon:"mdi:image",...e.menu.buttons.image,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.image"),style:t?.is("image")?this._getEmphasizedStyle():{},tap_action:gf("image")}:null}_getTimelineButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"timeline")?{icon:"mdi:chart-gantt",...e.menu.buttons.timeline,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.timeline"),style:t.is("timeline")?this._getEmphasizedStyle():{},tap_action:gf("timeline")}:null}_getDownloadButton(e,t,n){const a=n?.queryResults?.getSelectedResult(),i=a?t?.getMediaCapabilities(a):null;return n?.isViewerView()&&i?.canDownload&&!this._isBeingCasted()?{icon:"mdi:download",...e.menu.buttons.download,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.download"),tap_action:gf("download")}:null}_getCameraUIButton(e,t){return t?{icon:"mdi:web",...e.menu.buttons.camera_ui,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.camera_ui"),tap_action:gf("camera_ui")}:null}_getMicrophoneButton(e,t,n){if(t&&n?.capabilities?.supports2WayAudio){const n=t.isForbidden()||!t.isSupported(),a=t.isMuted(),i=e.menu.buttons.microphone.type;return{icon:n?"mdi:microphone-message-off":a?"mdi:microphone-off":"mdi:microphone",...e.menu.buttons.microphone,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.microphone"),style:n||a?{}:this._getEmphasizedStyle(!0),...!n&&"momentary"===i&&{start_tap_action:gf("microphone_unmute"),end_tap_action:gf("microphone_mute")},...!n&&"toggle"===i&&{tap_action:gf(a?"microphone_unmute":"microphone_mute")}}}return null}_getExpandButton(e,t){return{icon:t?"mdi:arrow-collapse-all":"mdi:arrow-expand-all",...e.menu.buttons.expand,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.expand"),tap_action:gf("expand"),style:t?this._getEmphasizedStyle():{}}}_getFullscreenButton(e,t){return this._isBeingCasted()?null:{icon:t?"mdi:fullscreen-exit":"mdi:fullscreen",...e.menu.buttons.fullscreen,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.fullscreen"),tap_action:gf("fullscreen"),style:t?this._getEmphasizedStyle():{}}}_getCastButton(e,t,n,a,i){if(!a)return null;const r=n.getStore().getCameraConfig(a.camera);if(i?.hasMediaPlayers()&&(a.isViewerView()||a.is("live")&&r?.camera_entity)){const n=i.getMediaPlayers().map((t=>{const n=Lb(e,t)||t,a=e.states[t],i=_f(t,"play"),r=_f(t,"stop"),o=!a||"unavailable"===a.state;return{enabled:!0,selected:!1,icon:Nb(e,t),entity:t,state_color:!1,title:n,disabled:o,...!o&&i&&{tap_action:i},...!o&&r&&{hold_action:r}}}));return{icon:"mdi:cast",...t.menu.buttons.media_player,type:"custom:frigate-card-menu-submenu",title:V_("config.menu.buttons.media_player"),items:n}}return null}_getPlayPauseButton(e,t){if(t&&t.player&&t.capabilities?.supportsPause){const n=t.player.isPaused();return{icon:n?"mdi:play":"mdi:pause",...e.menu.buttons.play,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.play"),tap_action:gf(n?"play":"pause")}}return null}_getMuteUnmuteButton(e,t){if(t&&t.player&&t?.capabilities?.hasAudio){const n=t.player.isMuted();return{icon:n?"mdi:volume-off":"mdi:volume-high",...e.menu.buttons.mute,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.mute"),tap_action:gf(n?"unmute":"mute")}}return null}_getScreenshotButton(e,t){return t&&t.player?{icon:"mdi:monitor-screenshot",...e.menu.buttons.screenshot,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.screenshot"),tap_action:gf("screenshot")}:null}_getDisplayModeButton(e,t,n){const a=n?mx(t,n.view):null;if(n?.supportsMultipleDisplayModes()&&a&&a.size>1){const t=n.isGrid();return{icon:t?"mdi:grid-off":"mdi:grid",...e.menu.buttons.display_mode,style:t?this._getEmphasizedStyle():{},type:"custom:frigate-card-menu-icon",title:V_(t?"display_modes.single":"display_modes.grid"),tap_action:(i=t?"single":"grid",{action:"fire-dom-event",frigate_card_action:"display_mode_select",display_mode:i,...r?.cardID&&{card_id:r.cardID}})}}var i,r;return null}_getPTZControlsButton(e,t,n){const a=n?.is("live")?e.live.controls.ptz:n?.isViewerView()?e.media_viewer.controls.ptz:null;if(!n||!a||"off"===a.mode)return null;const i=Ry(n,{cameraManager:t,..."auto"===a.mode&&{type:"ptz"}});if(i){const t=!1!==n.context?.ptzControls?.enabled&&("on"===a.mode||"auto"===a.mode&&"ptz"===i.type);return{icon:"mdi:pan",...e.menu.buttons.ptz_controls,style:t?this._getEmphasizedStyle():{},type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.ptz_controls"),tap_action:(r=!t,{action:"fire-dom-event",frigate_card_action:"ptz_controls",enabled:r,...o?.cardID&&{card_id:o.cardID}})}}var r,o;return null}_getPTZHomeButton(e,t,n){const a=n?Ry(n,{cameraManager:t}):null;return!a||(("digital"===a.type&&n?.context?.zoom?.[a.targetID]?.observed?.isDefault)??1)?null:{icon:"mdi:home",...e.menu.buttons.ptz_home,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.ptz_home"),tap_action:vf({targetID:a.targetID})}}_getEmphasizedStyle(e){return e?{animation:"pulse 3s infinite",color:"var(--error-color, white)"}:{color:"var(--primary-color, white)"}}_getStyleFromActions(e,t,n){for(const a of[t.tap_action,t.double_tap_action,t.hold_action,t.start_tap_action,t.end_tap_action]){const t=Array.isArray(a)?a:[a];for(const a of t){if(!a||"fire-dom-event"!==a.action||!("frigate_card_action"in a))continue;const t=a;if(Zs.some((e=>e===t.frigate_card_action&&n?.view?.is(t.frigate_card_action)))||"default"===t.frigate_card_action&&n?.view?.is(e.view.default)||"fullscreen"===t.frigate_card_action&&n?.inFullscreenMode||"camera_select"===t.frigate_card_action&&n?.view?.camera===t.camera)return this._getEmphasizedStyle()}}return{}}_isBeingCasted(){return!!navigator.userAgent.match(/CrKey\//)}} +/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */ +function Ix(e){return null==e}var Tx=function(e,t){var n,a="";for(n=0;ns&&(t=a-s+(r=" ... ").length),n-a>s&&(n=a+s-(o=" ...").length),{str:r+e.slice(t,n).replace(/\t/g,"→")+o,pos:a-t+r.length}}function Lx(e,t){return jx.repeat(" ",t-e.length)+e}var Nx=function(e,t){if(t=Object.create(t||null),!e.buffer)return null;t.maxLength||(t.maxLength=79),"number"!=typeof t.indent&&(t.indent=1),"number"!=typeof t.linesBefore&&(t.linesBefore=3),"number"!=typeof t.linesAfter&&(t.linesAfter=2);for(var n,a=/\r?\n|\r|\0/g,i=[0],r=[],o=-1;n=a.exec(e.buffer);)r.push(n.index),i.push(n.index+n[0].length),e.position<=n.index&&o<0&&(o=i.length-2);o<0&&(o=i.length-1);var s,c,l="",d=Math.min(e.line+t.linesAfter,r.length).toString().length,u=t.maxLength-(t.indent+d+3);for(s=1;s<=t.linesBefore&&!(o-s<0);s++)c=Px(e.buffer,i[o-s],r[o-s],e.position-(i[o]-i[o-s]),u),l=jx.repeat(" ",t.indent)+Lx((e.line-s+1).toString(),d)+" | "+c.str+"\n"+l;for(c=Px(e.buffer,i[o],r[o],e.position,u),l+=jx.repeat(" ",t.indent)+Lx((e.line+1).toString(),d)+" | "+c.str+"\n",l+=jx.repeat("-",t.indent+d+3+c.pos)+"^\n",s=1;s<=t.linesAfter&&!(o+s>=r.length);s++)c=Px(e.buffer,i[o+s],r[o+s],e.position-(i[o]-i[o+s]),u),l+=jx.repeat(" ",t.indent)+Lx((e.line+s+1).toString(),d)+" | "+c.str+"\n";return l.replace(/\n$/,"")},Fx=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],Vx=["scalar","sequence","mapping"];var Hx=function(e,t){if(t=t||{},Object.keys(t).forEach((function(t){if(-1===Fx.indexOf(t))throw new Rx('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.options=t,this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.representName=t.representName||null,this.defaultStyle=t.defaultStyle||null,this.multi=t.multi||!1,this.styleAliases=function(e){var t={};return null!==e&&Object.keys(e).forEach((function(n){e[n].forEach((function(e){t[String(e)]=n}))})),t}(t.styleAliases||null),-1===Vx.indexOf(this.kind))throw new Rx('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')};function Bx(e,t){var n=[];return e[t].forEach((function(e){var t=n.length;n.forEach((function(n,a){n.tag===e.tag&&n.kind===e.kind&&n.multi===e.multi&&(t=a)})),n[t]=e})),n}function qx(e){return this.extend(e)}qx.prototype.extend=function(e){var t=[],n=[];if(e instanceof Hx)n.push(e);else if(Array.isArray(e))n=n.concat(e);else{if(!e||!Array.isArray(e.implicit)&&!Array.isArray(e.explicit))throw new Rx("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");e.implicit&&(t=t.concat(e.implicit)),e.explicit&&(n=n.concat(e.explicit))}t.forEach((function(e){if(!(e instanceof Hx))throw new Rx("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(e.loadKind&&"scalar"!==e.loadKind)throw new Rx("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(e.multi)throw new Rx("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")})),n.forEach((function(e){if(!(e instanceof Hx))throw new Rx("Specified list of YAML types (or a single Type object) contains a non-Type object.")}));var a=Object.create(qx.prototype);return a.implicit=(this.implicit||[]).concat(t),a.explicit=(this.explicit||[]).concat(n),a.compiledImplicit=Bx(a,"implicit"),a.compiledExplicit=Bx(a,"explicit"),a.compiledTypeMap=function(){var e,t,n={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function a(e){e.multi?(n.multi[e.kind].push(e),n.multi.fallback.push(e)):n[e.kind][e.tag]=n.fallback[e.tag]=e}for(e=0,t=arguments.length;e=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),nC=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var aC=/^[-+]?[0-9]+e/;var iC=new Hx("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!nC.test(e)||"_"===e[e.length-1])},construct:function(e){var t,n;return n="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:n*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||jx.isNegativeZero(e))},represent:function(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(jx.isNegativeZero(e))return"-0.0";return n=e.toString(10),aC.test(n)?n.replace("e",".e"):n},defaultStyle:"lowercase"}),rC=Gx.extend({implicit:[Yx,Kx,tC,iC]}),oC=rC,sC=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),cC=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");var lC=new Hx("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==sC.exec(e)||null!==cC.exec(e))},construct:function(e){var t,n,a,i,r,o,s,c,l=0,d=null;if(null===(t=sC.exec(e))&&(t=cC.exec(e)),null===t)throw new Error("Date resolve error");if(n=+t[1],a=+t[2]-1,i=+t[3],!t[4])return new Date(Date.UTC(n,a,i));if(r=+t[4],o=+t[5],s=+t[6],t[7]){for(l=t[7].slice(0,3);l.length<3;)l+="0";l=+l}return t[9]&&(d=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(d=-d)),c=new Date(Date.UTC(n,a,i,r,o,s,l)),d&&c.setTime(c.getTime()-d),c},instanceOf:Date,represent:function(e){return e.toISOString()}});var dC=new Hx("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}}),uC="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";var hC=new Hx("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,a=0,i=e.length,r=uC;for(n=0;n64)){if(t<0)return!1;a+=6}return a%8==0},construct:function(e){var t,n,a=e.replace(/[\r\n=]/g,""),i=a.length,r=uC,o=0,s=[];for(t=0;t>16&255),s.push(o>>8&255),s.push(255&o)),o=o<<6|r.indexOf(a.charAt(t));return 0===(n=i%4*6)?(s.push(o>>16&255),s.push(o>>8&255),s.push(255&o)):18===n?(s.push(o>>10&255),s.push(o>>2&255)):12===n&&s.push(o>>4&255),new Uint8Array(s)},predicate:function(e){return"[object Uint8Array]"===Object.prototype.toString.call(e)},represent:function(e){var t,n,a="",i=0,r=e.length,o=uC;for(t=0;t>18&63],a+=o[i>>12&63],a+=o[i>>6&63],a+=o[63&i]),i=(i<<8)+e[t];return 0===(n=r%3)?(a+=o[i>>18&63],a+=o[i>>12&63],a+=o[i>>6&63],a+=o[63&i]):2===n?(a+=o[i>>10&63],a+=o[i>>4&63],a+=o[i<<2&63],a+=o[64]):1===n&&(a+=o[i>>2&63],a+=o[i<<4&63],a+=o[64],a+=o[64]),a}}),pC=Object.prototype.hasOwnProperty,mC=Object.prototype.toString;var gC=new Hx("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,n,a,i,r,o=[],s=e;for(t=0,n=s.length;t>10),56320+(e-65536&1023))}for(var qC=new Array(256),UC=new Array(256),WC=0;WC<256;WC++)qC[WC]=HC(WC)?1:0,UC[WC]=HC(WC);function ZC(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||bC,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function QC(e,t){var n={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return n.snippet=Nx(n),new Rx(t,n)}function GC(e,t){throw QC(e,t)}function YC(e,t){e.onWarning&&e.onWarning.call(null,QC(e,t))}var KC={YAML:function(e,t,n){var a,i,r;null!==e.version&&GC(e,"duplication of %YAML directive"),1!==n.length&&GC(e,"YAML directive accepts exactly one argument"),null===(a=/^([0-9]+)\.([0-9]+)$/.exec(n[0]))&&GC(e,"ill-formed argument of the YAML directive"),i=parseInt(a[1],10),r=parseInt(a[2],10),1!==i&&GC(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=r<2,1!==r&&2!==r&&YC(e,"unsupported YAML version of the document")},TAG:function(e,t,n){var a,i;2!==n.length&&GC(e,"TAG directive accepts exactly two arguments"),a=n[0],i=n[1],TC.test(a)||GC(e,"ill-formed tag handle (first argument) of the TAG directive"),wC.call(e.tagMap,a)&&GC(e,'there is a previously declared suffix for "'+a+'" tag handle'),jC.test(i)||GC(e,"ill-formed tag prefix (second argument) of the TAG directive");try{i=decodeURIComponent(i)}catch(t){GC(e,"tag prefix is malformed: "+i)}e.tagMap[a]=i}};function XC(e,t,n,a){var i,r,o,s;if(t1&&(e.result+=jx.repeat("\n",t-1))}function rM(e,t){var n,a,i=e.tag,r=e.anchor,o=[],s=!1;if(-1!==e.firstTabInLine)return!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=o),a=e.input.charCodeAt(e.position);0!==a&&(-1!==e.firstTabInLine&&(e.position=e.firstTabInLine,GC(e,"tab characters must not be used in indentation")),45===a)&&PC(e.input.charCodeAt(e.position+1));)if(s=!0,e.position++,nM(e,!0,-1)&&e.lineIndent<=t)o.push(null),a=e.input.charCodeAt(e.position);else if(n=e.line,cM(e,t,MC,!1,!0),o.push(e.result),nM(e,!0,-1),a=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&0!==a)GC(e,"bad indentation of a sequence entry");else if(e.lineIndentt?m=1:e.lineIndent===t?m=0:e.lineIndentt?m=1:e.lineIndent===t?m=0:e.lineIndentt)&&(_&&(o=e.line,s=e.lineStart,c=e.position),cM(e,t,kC,!0,i)&&(_?g=e.result:f=e.result),_||(eM(e,h,p,m,g,f,o,s,c),m=g=f=null),nM(e,!0,-1),l=e.input.charCodeAt(e.position)),(e.line===r||e.lineIndent>t)&&0!==l)GC(e,"bad indentation of a mapping entry");else if(e.lineIndent=0))break;0===i?GC(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):c?GC(e,"repeat of an indentation width identifier"):(l=t+i-1,c=!0)}if(RC(r)){do{r=e.input.charCodeAt(++e.position)}while(RC(r));if(35===r)do{r=e.input.charCodeAt(++e.position)}while(!DC(r)&&0!==r)}for(;0!==r;){for(tM(e),e.lineIndent=0,r=e.input.charCodeAt(e.position);(!c||e.lineIndentl&&(l=e.lineIndent),DC(r))d++;else{if(e.lineIndent0){for(i=o,r=0;i>0;i--)(o=NC(s=e.input.charCodeAt(++e.position)))>=0?r=(r<<4)+o:GC(e,"expected hexadecimal character");e.result+=BC(r),e.position++}else GC(e,"unknown escape sequence");n=a=e.position}else DC(s)?(XC(e,n,a,!0),iM(e,nM(e,!1,t)),n=a=e.position):e.position===e.lineStart&&aM(e)?GC(e,"unexpected end of the document within a double quoted scalar"):(e.position++,a=e.position)}GC(e,"unexpected end of the stream within a double quoted scalar")}(e,h)?f=!0:!function(e){var t,n,a;if(42!==(a=e.input.charCodeAt(e.position)))return!1;for(a=e.input.charCodeAt(++e.position),t=e.position;0!==a&&!PC(a)&&!LC(a);)a=e.input.charCodeAt(++e.position);return e.position===t&&GC(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),wC.call(e.anchorMap,n)||GC(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],nM(e,!0,-1),!0}(e)?function(e,t,n){var a,i,r,o,s,c,l,d,u=e.kind,h=e.result;if(PC(d=e.input.charCodeAt(e.position))||LC(d)||35===d||38===d||42===d||33===d||124===d||62===d||39===d||34===d||37===d||64===d||96===d)return!1;if((63===d||45===d)&&(PC(a=e.input.charCodeAt(e.position+1))||n&&LC(a)))return!1;for(e.kind="scalar",e.result="",i=r=e.position,o=!1;0!==d;){if(58===d){if(PC(a=e.input.charCodeAt(e.position+1))||n&&LC(a))break}else if(35===d){if(PC(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&aM(e)||n&&LC(d))break;if(DC(d)){if(s=e.line,c=e.lineStart,l=e.lineIndent,nM(e,!1,-1),e.lineIndent>=t){o=!0,d=e.input.charCodeAt(e.position);continue}e.position=r,e.line=s,e.lineStart=c,e.lineIndent=l;break}}o&&(XC(e,i,r,!1),iM(e,e.line-s),i=r=e.position,o=!1),RC(d)||(r=e.position+1),d=e.input.charCodeAt(++e.position)}return XC(e,i,r,!1),!!e.result||(e.kind=u,e.result=h,!1)}(e,h,xC===n)&&(f=!0,null===e.tag&&(e.tag="?")):(f=!0,null===e.tag&&null===e.anchor||GC(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===m&&(f=s&&rM(e,p))),null===e.tag)null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);else if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&GC(e,'unacceptable node kind for ! tag; it should be "scalar", not "'+e.kind+'"'),c=0,l=e.implicitTypes.length;c"),null!==e.result&&u.kind!==e.kind&&GC(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+u.kind+'", not "'+e.kind+'"'),u.resolve(e.result,e.tag)?(e.result=u.construct(e.result,e.tag),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):GC(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||f}function lM(e){var t,n,a,i,r=e.position,o=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);0!==(i=e.input.charCodeAt(e.position))&&(nM(e,!0,-1),i=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==i));){for(o=!0,i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!PC(i);)i=e.input.charCodeAt(++e.position);for(a=[],(n=e.input.slice(t,e.position)).length<1&&GC(e,"directive name must not be less than one character in length");0!==i;){for(;RC(i);)i=e.input.charCodeAt(++e.position);if(35===i){do{i=e.input.charCodeAt(++e.position)}while(0!==i&&!DC(i));break}if(DC(i))break;for(t=e.position;0!==i&&!PC(i);)i=e.input.charCodeAt(++e.position);a.push(e.input.slice(t,e.position))}0!==i&&tM(e),wC.call(KC,n)?KC[n](e,n,a):YC(e,'unknown document directive "'+n+'"')}nM(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,nM(e,!0,-1)):o&&GC(e,"directives end mark is expected"),cM(e,e.lineIndent-1,kC,!1,!0),nM(e,!0,-1),e.checkLineBreaks&&zC.test(e.input.slice(r,e.position))&&YC(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&aM(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,nM(e,!0,-1)):e.position=55296&&a<=56319&&t+1=56320&&n<=57343?1024*(a-55296)+n-56320+65536:a}function JM(e){return/^\n* /.test(e)}var ek=1,tk=2,nk=3,ak=4,ik=5;function rk(e,t,n,a,i,r,o,s){var c,l=0,d=null,u=!1,h=!1,p=-1!==a,m=-1,g=function(e){return GM(e)&&e!==mM&&!QM(e)&&e!==EM&&e!==IM&&e!==$M&&e!==SM&&e!==jM&&e!==OM&&e!==RM&&e!==LM&&e!==wM&&e!==CM&&e!==kM&&e!==yM&&e!==PM&&e!==AM&&e!==zM&&e!==MM&&e!==bM&&e!==xM&&e!==TM&&e!==DM}(XM(e,0))&&function(e){return!QM(e)&&e!==$M}(XM(e,e.length-1));if(t||o)for(c=0;c=65536?c+=2:c++){if(!GM(l=XM(e,c)))return ik;g=g&&KM(l,d,s),d=l}else{for(c=0;c=65536?c+=2:c++){if((l=XM(e,c))===fM)u=!0,p&&(h=h||c-m-1>a&&" "!==e[m+1],m=c);else if(!GM(l))return ik;g=g&&KM(l,d,s),d=l}h=h||p&&c-m-1>a&&" "!==e[m+1]}return u||h?n>9&&JM(e)?ik:o?r===qM?ik:tk:h?ak:nk:!g||o||i(e)?r===qM?ik:tk:ek}function ok(e,t,n,a,i){e.dump=function(){if(0===t.length)return e.quotingType===qM?'""':"''";if(!e.noCompatMode&&(-1!==FM.indexOf(t)||VM.test(t)))return e.quotingType===qM?'"'+t+'"':"'"+t+"'";var r=e.indent*Math.max(1,n),o=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-r),s=a||e.flowLevel>-1&&n>=e.flowLevel;switch(rk(t,s,e.indent,o,(function(t){return function(e,t){var n,a;for(n=0,a=e.implicitTypes.length;n"+sk(t,e.indent)+ck(WM(function(e,t){var n,a,i=/(\n+)([^\n]*)/g,r=(s=e.indexOf("\n"),s=-1!==s?s:e.length,i.lastIndex=s,lk(e.slice(0,s),t)),o="\n"===e[0]||" "===e[0];var s;for(;a=i.exec(e);){var c=a[1],l=a[2];n=" "===l[0],r+=c+(o||n||""===l?"":"\n")+lk(l,t),o=n}return r}(t,o),r));case ik:return'"'+function(e){for(var t,n="",a=0,i=0;i=65536?i+=2:i++)a=XM(e,i),!(t=NM[a])&&GM(a)?(n+=e[i],a>=65536&&(n+=e[i+1])):n+=t||HM(a);return n}(t)+'"';default:throw new Rx("impossible error: invalid scalar style")}}()}function sk(e,t){var n=JM(e)?String(t):"",a="\n"===e[e.length-1];return n+(a&&("\n"===e[e.length-2]||"\n"===e)?"+":a?"":"-")+"\n"}function ck(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function lk(e,t){if(""===e||" "===e[0])return e;for(var n,a,i=/ [^ ]/g,r=0,o=0,s=0,c="";n=i.exec(e);)(s=n.index)-r>t&&(a=o>r?o:s,c+="\n"+e.slice(r,a),r=a+1),o=s;return c+="\n",e.length-r>t&&o>r?c+=e.slice(r,o)+"\n"+e.slice(o+1):c+=e.slice(r),c.slice(1)}function dk(e,t,n,a){var i,r,o,s="",c=e.tag;for(i=0,r=n.length;i tag resolver accepts not "'+c+'" style');a=s.represent[c](t,c)}e.dump=a}return!0}return!1}function hk(e,t,n,a,i,r,o){e.tag=null,e.dump=n,uk(e,n,!1)||uk(e,n,!0);var s,c=hM.call(e.dump),l=a;a&&(a=e.flowLevel<0||e.flowLevel>t);var d,u,h="[object Object]"===c||"[object Array]"===c;if(h&&(u=-1!==(d=e.duplicates.indexOf(n))),(null!==e.tag&&"?"!==e.tag||u||2!==e.indent&&t>0)&&(i=!1),u&&e.usedDuplicates[d])e.dump="*ref_"+d;else{if(h&&u&&!e.usedDuplicates[d]&&(e.usedDuplicates[d]=!0),"[object Object]"===c)a&&0!==Object.keys(e.dump).length?(!function(e,t,n,a){var i,r,o,s,c,l,d="",u=e.tag,h=Object.keys(n);if(!0===e.sortKeys)h.sort();else if("function"==typeof e.sortKeys)h.sort(e.sortKeys);else if(e.sortKeys)throw new Rx("sortKeys must be a boolean or a function");for(i=0,r=h.length;i1024)&&(e.dump&&fM===e.dump.charCodeAt(0)?l+="?":l+="? "),l+=e.dump,c&&(l+=ZM(e,t)),hk(e,t+1,s,!0,c)&&(e.dump&&fM===e.dump.charCodeAt(0)?l+=":":l+=": ",d+=l+=e.dump));e.tag=u,e.dump=d||"{}"}(e,t,e.dump,i),u&&(e.dump="&ref_"+d+e.dump)):(!function(e,t,n){var a,i,r,o,s,c="",l=e.tag,d=Object.keys(n);for(a=0,i=d.length;a1024&&(s+="? "),s+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),hk(e,t,o,!1,!1)&&(c+=s+=e.dump));e.tag=l,e.dump="{"+c+"}"}(e,t,e.dump),u&&(e.dump="&ref_"+d+" "+e.dump));else if("[object Array]"===c)a&&0!==e.dump.length?(e.noArrayIndent&&!o&&t>0?dk(e,t-1,e.dump,i):dk(e,t,e.dump,i),u&&(e.dump="&ref_"+d+e.dump)):(!function(e,t,n){var a,i,r,o="",s=e.tag;for(a=0,i=n.length;a",e.dump=s+" "+e.dump)}return!0}function pk(e,t){var n,a,i=[],r=[];for(mk(e,i,r),n=0,a=r.length;nq`
${fk.dump(e)}
`;return q`
+
+
+ +
+
+ + ${this.message?q`${this.message}${this.context&&"string"==typeof this.context?": "+this.context:""}`:""} + + ${this.context&&Array.isArray(this.context)?this.context.map((e=>n(e))):"object"==typeof this.context?n(this.context):""} +
+
+
`}static get styles(){return o(_k)}};e([he({attribute:!1})],vk.prototype,"message",void 0),e([he({attribute:!1})],vk.prototype,"context",void 0),e([he({attribute:!1})],vk.prototype,"icon",void 0),e([he({attribute:!0,type:Boolean})],vk.prototype,"dotdotdot",void 0),vk=e([le("frigate-card-message")],vk);let yk=class extends se{render(){if(this.message)return q` ${V_("error.troubleshooting")}.`} + .icon=${this.message.icon??"mdi:alert-circle"} + .context=${this.message.context} + .dotdotdot=${this.message.dotdotdot} + > + `}static get styles(){return o(_k)}};e([he({attribute:!1})],yk.prototype,"message",void 0),yk=e([le("frigate-card-error-message")],yk);let bk=class extends se{constructor(){super(...arguments),this.message="",this.animated=!1,this.size="large"}render(){return q`
+ ${this.animated?q` + `:q``} + ${this.message?q`${this.message}`:q``} +
`}static get styles(){return o(_k)}};function wk(e){return"error"===e?.type?q` `:e?q` `:q``}function xk(e){return q` + + + `}function Ck(e,t,n,a){Bg(e,"message",{message:t,type:n,icon:a?.icon,context:a?.context})}function Mk(e,t,n){Ck(e,t,"error",{context:n?.context})}function kk(e,t){t instanceof Error&&Mk(e,t.message,{...t instanceof zs&&{context:t.context}})}e([he({attribute:!1})],bk.prototype,"message",void 0),e([he({attribute:!1})],bk.prototype,"animated",void 0),e([he({attribute:!1})],bk.prototype,"size",void 0),bk=e([le("frigate-card-progress-indicator")],bk);let Sk=class extends se{constructor(){super(...arguments),this._root=null}createRenderRoot(){return this}_createRoot(){const e=customElements.get("hui-conditional-element");if(!e||!this.hass)throw new Error(V_("error.could_not_render_elements"));const t=new e;t.hass=this.hass;const n={type:"conditional",conditions:[],elements:this.elements};try{t.setConfig(n)}catch(e){throw Gg(e,console.error),new zs(V_("error.invalid_elements_config"))}return t}willUpdate(e){try{!this.elements||this._root&&!e.has("elements")||(this._root=this._createRoot())}catch(e){return kk(this,e)}}render(){return q`${this._root||""}`}updated(){this.hass&&this._root&&(this._root.hass=this.hass)}};e([he({attribute:!1})],Sk.prototype,"elements",void 0),e([he({attribute:!1})],Sk.prototype,"conditionsManagerEpoch",void 0),e([he({attribute:!1})],Sk.prototype,"hass",void 0),Sk=e([le("frigate-card-elements-core")],Sk);let Ek=class extends se{constructor(){super(...arguments),this._menuRemoveHandler=e=>{Bg(this,"menu:remove",e.detail)},this._statusBarRemoveHandler=e=>{Bg(this,"status-bar:remove",e.detail)},this._menuAddHandler=e=>{const t=e.composedPath();t.length&&this._addHandler(t[0],"frigate-card:menu:remove",this._menuRemoveHandler)},this._statusBarAddHandler=e=>{const t=e.composedPath();t.length&&this._addHandler(t[0],"frigate-card:status-bar:add",this._statusBarRemoveHandler)}}_addHandler(e,t,n){e.removeEventListener(t,n),e.addEventListener(t,n)}connectedCallback(){super.connectedCallback(),this.addEventListener("frigate-card:menu:add",this._menuAddHandler),this.addEventListener("frigate-card:status-bar:add",this._statusBarAddHandler)}disconnectedCallback(){this.removeEventListener("frigate-card:menu:add",this._menuAddHandler),this.addEventListener("frigate-card:status-bar:add",this._statusBarAddHandler),super.disconnectedCallback()}render(){return q` + `}static get styles(){return o(":host {\n position: absolute;\n inset: 0;\n overflow: hidden;\n pointer-events: none;\n}\n\n.element {\n position: absolute;\n transform: translate(-50%, -50%);\n pointer-events: auto;\n}\n\nhui-error-card.element {\n inset: 0px;\n transform: unset;\n}")}};e([he({attribute:!1})],Ek.prototype,"hass",void 0),e([he({attribute:!1})],Ek.prototype,"conditionsManagerEpoch",void 0),e([he({attribute:!1})],Ek.prototype,"elements",void 0),Ek=e([le("frigate-card-elements")],Ek);let $k=class extends se{setConfig(e){this._config=e}createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),this.className=""}render(){if(function(e,t){if(!t)return!0;const n=new _w(t,{bubbles:!0,composed:!0});return e.dispatchEvent(n),n.evaluation??!1}(this,this._config?.conditions))return q` + `}};e([he({attribute:!1,hasChanged:()=>!0})],$k.prototype,"hass",void 0),$k=e([le("frigate-card-conditional")],$k);class Ak extends se{constructor(e){super(),this._config=null,this._eventCategory=e}setConfig(e){this._config=e}connectedCallback(){super.connectedCallback(),this._config&&Bg(this,`${this._eventCategory}:add`,this._config)}disconnectedCallback(){this._config&&Bg(this,`${this._eventCategory}:remove`,this._config),super.disconnectedCallback()}}e([pe()],Ak.prototype,"_config",void 0);class zk extends Ak{constructor(){super("menu")}}let Ik=class extends zk{};Ik=e([le("frigate-card-menu-icon")],Ik);let Tk=class extends zk{};Tk=e([le("frigate-card-menu-state-icon")],Tk);let jk=class extends zk{};jk=e([le("frigate-card-menu-submenu")],jk);let Ok=class extends zk{};Ok=e([le("frigate-card-menu-submenu-select")],Ok);class Dk extends Ak{constructor(){super("status-bar")}}let Rk=class extends Dk{};Rk=e([le("frigate-card-status-bar-icon")],Rk);let Pk=class extends Dk{};Pk=e([le("frigate-card-status-bar-image")],Pk);let Lk=class extends Dk{};Lk=e([le("frigate-card-status-bar-string")],Lk);let Nk=class extends se{render(){return q` `}static get styles(){return o(":host {\n width: intrinsic;\n height: intrinsic;\n display: flex;\n justify-content: center;\n align-items: center;\n pointer-events: none;\n}\n\nimg {\n width: 10%;\n animation: rotate 8s linear infinite;\n}\n\n@keyframes rotate {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}")}};Nk=e([le("frigate-card-loading")],Nk);const Fk=(e,t)=>{Bg(e,"action:execution-request",t)};class Vk{constructor(e){this._config=null,this._buttons=[],this._expanded=!1,this._host=e}setMenuConfig(e){this._config=e,this._host.style.setProperty("--frigate-card-menu-button-size",`${e.button_size}px`),this._host.setAttribute("data-style",e.style),this._host.setAttribute("data-position",e.position),this._host.setAttribute("data-alignment",e.alignment),this._sortButtons(),this._host.requestUpdate()}getMenuConfig(){return this._config}isExpanded(){return this._expanded}setButtons(e){this._buttons=e,this._sortButtons(),this._host.requestUpdate()}getButtons(e){const t=e=>!this._isHidingMenu()||this._expanded||!!e.permanent;return this._buttons.filter((n=>(e=>!1!==e.enabled)(n)&&(t=>t.alignment===e||"matching"===e&&!t.alignment)(n)&&t(n)))}setExpanded(e){this._expanded=e,of(this._host,e,"expanded"),this._host.requestUpdate()}toggleExpanded(){this.setExpanded(!this._expanded)}actionHandler(e,t){if(e.stopPropagation(),e.detail.config&&(t=e.detail.config),!t)return;const n=e.detail.action,a=yf(n,t);if(!a)return;const i=Wg(a);let r=!1;const o=i.filter((e=>sf(e)&&!this._isUnknownActionMenuToggleAction(e)));if(o.length!=i.length&&(r=!0),o.length&&Fk(this._host,{action:i,config:t}),this._isHidingMenu())if(r)this.setExpanded(!this._expanded);else{const e=yf("hold",t),a=yf("double_tap",t),i=yf("tap",t),r=yf("end_tap",t);"end_tap"!==n&&("start_tap"!==n||e||a||i||r)&&("end_tap"===n||r)||this.setExpanded(!1)}}getFreshButtonState(e,t){const n={...t};return e&&"custom:frigate-card-menu-state-icon"===t.type?Pb(e,n):n}_sortButtons(){this._buttons=Ev(this._buttons,(e=>(e.priority??0)+(this._isHidingMenu()&&e.permanent?Us:0)),["desc"])}_isHidingMenu(){return"hidden"===this._config?.style}_isUnknownActionMenuToggleAction(e){const t=mf(e);return!!t&&"menu_toggle"==t.frigate_card_action}}var Hk="data:image/svg+xml,%3c%3fxml version='1.0' encoding='UTF-8' standalone='no'%3f%3e%3csvg width='24' height='24' viewBox='0 0 24 24' fill='none' version='1.1' id='svg54' sodipodi:docname='frigate.svg' inkscape:version='1.2.2 (b0a8486541%2c 2022-12-01)' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg'%3e %3cdefs id='defs58' /%3e %3csodipodi:namedview id='namedview56' pagecolor='%23da4040' bordercolor='%23666666' borderopacity='1.0' inkscape:pageshadow='2' inkscape:pageopacity='0' inkscape:pagecheckerboard='0' showgrid='false' width='24px' inkscape:zoom='45.254834' inkscape:cx='-0.03314563' inkscape:cy='9.9768347' inkscape:window-width='3840' inkscape:window-height='1527' inkscape:window-x='1080' inkscape:window-y='227' inkscape:window-maximized='1' inkscape:current-layer='svg54' showguides='true' inkscape:showpageshadow='2' inkscape:deskcolor='%23d1d1d1' /%3e %3cpath d='m 4.8759466%2c22.743573 c 0.0866%2c0.69274 0.811811%2c1.16359 0.37885%2c1.27183 -0.43297%2c0.10824 -2.32718%2c-3.43665 -2.7601492%2c-4.95202 -0.4329602%2c-1.51538 -0.6764993%2c-3.22017 -0.5682593%2c-4.19434 0.1082301%2c-0.97417 5.7097085%2c-2.48955 5.7097085%2c-2.89545 0%2c-0.4059 -1.81304%2c-0.0271 -1.89422%2c-0.35178 -0.0812%2c-0.32472 1.36925%2c-0.12989 1.75892%2c-0.64945 0.60885%2c-0.81181 1.3800713%2c-0.6765 1.8671505%2c-1.1094696 0.4870902%2c-0.4329599 1.0824089%2c-2.0836399 1.1906589%2c-2.7871996 0.108241%2c-0.70357 -1.0824084%2c-1.51538 -1.4071389%2c-2.05658 -0.3247195%2c-0.54121 0.7035702%2c-0.92005 3.1931099%2c-1.94834 2.48954%2c-1.02829 10.39114%2c-3.30134994 10.49938%2c-3.03074994 0.10824%2c0.27061 -2.59779%2c1.40713994 -4.492%2c2.11069994 -1.89422%2c0.70357 -4.97909%2c2.05658 -4.97909%2c2.43542 0%2c0.37885 0.16236%2c0.67651 0.0541%2c1.54244 -0.10824%2c0.86593 -0.12123%2c1.2702597 -0.32472%2c1.8400997 -0.1353%2c0.37884 -0.2706%2c1.27183 0%2c2.0836295 0.21648%2c0.64945 0.92005%2c1.13653 1.24477%2c1.24478 0.2706%2c0.018 1.01746%2c0.0433 1.8401%2c0 1.02829%2c-0.0541 2.48954%2c0.0541 2.48954%2c0.32472 0%2c0.2706 -2.21894%2c0.10824 -2.21894%2c0.48708 0%2c0.37885 2.27306%2c-0.0541 2.21894%2c0.32473 -0.0541%2c0.37884 -1.89422%2c0.21648 -2.86839%2c0.21648 -0.77933%2c0 -1.93031%2c-0.0361 -2.43542%2c-0.21648 l -0.10824%2c0.37884 c -0.18038%2c0 -0.55744%2c0.10824 -0.94711%2c0.10824 -0.48708%2c0 -0.51414%2c0.16236 -1.40713%2c0.16236 -0.892989%2c0 -0.622391%2c-0.0541 -1.4341894%2c-0.10824 -0.81181%2c-0.0541 -3.842561%2c2.27306 -4.383761%2c3.03075 -0.54121%2c0.75768 -0.21649%2c2.59778 -0.21649%2c3.43665 0%2c0.75379 -0.10824%2c2.43542 0%2c3.30135 z' fill='black' id='path330' style='fill:white%3bfill-opacity:1%3bstroke:none%3bstroke-width:0.1%3bstroke-miterlimit:4%3bstroke-dasharray:none%3bstroke-opacity:1' sodipodi:nodetypes='csccscccccsscscccccsscsccssccscc' /%3e%3c/svg%3e",Bk="data:image/svg+xml,%3c%3fxml version='1.0' encoding='UTF-8' standalone='no'%3f%3e%3c!-- Created with Inkscape (http://www.inkscape.org/) --%3e%3csvg id='svg2' version='1.1' inkscape:version='1.2.2 (b0a8486541%2c 2022-12-01)' width='24' height='24' xml:space='preserve' sodipodi:docname='motioneye.svg' inkscape:export-filename='/home/ccrisan/projects/motioneye/static/img/motioneye-logo.png' inkscape:export-xdpi='960' inkscape:export-ydpi='960' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns%23' xmlns:cc='http://creativecommons.org/ns%23' xmlns:dc='http://purl.org/dc/elements/1.1/'%3e%3cmetadata id='metadata8'%3e%3crdf:RDF%3e%3ccc:Work rdf:about=''%3e%3cdc:format%3eimage/svg%2bxml%3c/dc:format%3e%3cdc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage' /%3e%3c/cc:Work%3e%3c/rdf:RDF%3e%3c/metadata%3e%3cdefs id='defs6'%3e%3clinearGradient inkscape:collect='always' id='linearGradient2058'%3e%3cstop style='stop-color:white%3bstop-opacity:1%3b' offset='0' id='stop2054' /%3e%3cstop style='stop-color:%23585858%3bstop-opacity:1' offset='1' id='stop2056' /%3e%3c/linearGradient%3e%3clinearGradient inkscape:collect='always' id='linearGradient2005'%3e%3cstop style='stop-color:white%3bstop-opacity:1%3b' offset='0' id='stop2001' /%3e%3cstop style='stop-color:grey%3bstop-opacity:1%3b' offset='1' id='stop2003' /%3e%3c/linearGradient%3e%3clinearGradient inkscape:collect='always' id='linearGradient4205'%3e%3cstop style='stop-color:%234aa3e0%3bstop-opacity:1' offset='0' id='stop4207' /%3e%3cstop style='stop-color:%233096db%3bstop-opacity:1' offset='1' id='stop4209' /%3e%3c/linearGradient%3e%3clinearGradient inkscape:collect='always' id='linearGradient4197'%3e%3cstop style='stop-color:white%3bstop-opacity:1%3b' offset='0' id='stop4199' /%3e%3cstop style='stop-color:%23585858%3bstop-opacity:1' offset='1' id='stop4201' /%3e%3c/linearGradient%3e%3clinearGradient inkscape:collect='always' xlink:href='%23linearGradient4205' id='linearGradient4211' x1='26.602072' y1='43.034946' x2='26.602072' y2='29.466328' gradientUnits='userSpaceOnUse' gradientTransform='matrix(0.96428571%2c0%2c0%2c0.96428571%2c0.91428571%2c0.91428571)' /%3e%3cfilter style='color-interpolation-filters:sRGB' inkscape:label='Drop Shadow' id='filter4285'%3e%3cfeFlood flood-opacity='0.588235' flood-color='rgb(0%2c0%2c0)' result='flood' id='feFlood4287' /%3e%3cfeComposite in='flood' in2='SourceGraphic' operator='in' result='composite1' id='feComposite4289' /%3e%3cfeGaussianBlur in='composite1' stdDeviation='0.6' result='blur' id='feGaussianBlur4291' /%3e%3cfeOffset dx='0' dy='-1' result='offset' id='feOffset4293' /%3e%3cfeComposite in='SourceGraphic' in2='offset' operator='over' result='composite2' id='feComposite4295' /%3e%3c/filter%3e%3clinearGradient inkscape:collect='always' xlink:href='%23linearGradient2005' id='linearGradient4309' gradientUnits='userSpaceOnUse' x1='26.445793' y1='47.517574' x2='26.445793' y2='3.8183768' /%3e%3clinearGradient inkscape:collect='always' xlink:href='%23linearGradient4197' id='linearGradient4311' gradientUnits='userSpaceOnUse' x1='26.445793' y1='47.517574' x2='26.445793' y2='3.8183768' /%3e%3clinearGradient inkscape:collect='always' xlink:href='%23linearGradient2058' id='linearGradient4313' gradientUnits='userSpaceOnUse' x1='26.445793' y1='47.517574' x2='26.445793' y2='3.8183768' /%3e%3cfilter style='color-interpolation-filters:sRGB' inkscape:label='Drop Shadow' id='filter4315' x='-0.03618178' y='-0.20783284' width='1.0723636' height='1.3304883'%3e%3cfeFlood flood-opacity='0.588235' flood-color='rgb(0%2c0%2c0)' result='flood' id='feFlood4317' /%3e%3cfeComposite in='flood' in2='SourceGraphic' operator='in' result='composite1' id='feComposite4319' /%3e%3cfeGaussianBlur in='composite1' stdDeviation='0.6' result='blur' id='feGaussianBlur4321' /%3e%3cfeOffset dx='0' dy='-1' result='offset' id='feOffset4323' /%3e%3cfeComposite in='SourceGraphic' in2='offset' operator='over' result='composite2' id='feComposite4325' /%3e%3c/filter%3e%3cfilter style='color-interpolation-filters:sRGB' inkscape:label='Drop Shadow' id='filter4327' x='-0.27857143' y='-0.4720238' width='1.5571429' height='1.7505952'%3e%3cfeFlood flood-opacity='0.588235' flood-color='rgb(0%2c0%2c0)' result='flood' id='feFlood4329' /%3e%3cfeComposite in='flood' in2='SourceGraphic' operator='in' result='composite1' id='feComposite4331' /%3e%3cfeGaussianBlur in='composite1' stdDeviation='0.6' result='blur' id='feGaussianBlur4333' /%3e%3cfeOffset dx='0' dy='-1' result='offset' id='feOffset4335' /%3e%3cfeComposite in='SourceGraphic' in2='offset' operator='over' result='composite2' id='feComposite4337' /%3e%3c/filter%3e%3cfilter style='color-interpolation-filters:sRGB' inkscape:label='Drop Shadow' id='filter4339' x='-0.0202507' y='-0.13980794' width='1.0405014' height='1.2082853'%3e%3cfeFlood flood-opacity='0.588235' flood-color='rgb(0%2c0%2c0)' result='flood' id='feFlood4341' /%3e%3cfeComposite in='flood' in2='SourceGraphic' operator='in' result='composite1' id='feComposite4343' /%3e%3cfeGaussianBlur in='composite1' stdDeviation='0.2' result='blur' id='feGaussianBlur4345' /%3e%3cfeOffset dx='0' dy='-0.5' result='offset' id='feOffset4347' /%3e%3cfeComposite in='SourceGraphic' in2='offset' operator='over' result='composite2' id='feComposite4349' /%3e%3c/filter%3e%3c/defs%3e%3csodipodi:namedview pagecolor='%23ff0d0d' bordercolor='%23666666' borderopacity='1' objecttolerance='10' gridtolerance='10' guidetolerance='10' inkscape:pageopacity='0' inkscape:pageshadow='2' inkscape:window-width='3840' inkscape:window-height='1527' id='namedview4' showgrid='false' inkscape:zoom='29.890116' inkscape:cx='19.973158' inkscape:cy='16.577386' inkscape:window-x='1080' inkscape:window-y='227' inkscape:window-maximized='1' inkscape:current-layer='g10' showguides='true' inkscape:guide-bbox='true' inkscape:showpageshadow='true' inkscape:pagecheckerboard='false' inkscape:deskcolor='%23d1d1d1' /%3e%3cg id='g10' inkscape:groupmode='layer' inkscape:label='ink_ext_XXXXXX' transform='matrix(1.25%2c0%2c0%2c-1.25%2c0%2c64)'%3e%3cg id='g4823' transform='matrix(1.0344694%2c0%2c0%2c1.0344694%2c-3.551886%2c-0.86695248)'%3e%3cpath id='path4244' d='M 8.9346154%2c40.515385 C 5.3647588%2c36.547307 3.2%2c31.357779 3.2%2c25.6 3.2%2c13.228821 13.228821%2c3.2 25.6%2c3.2 37.971179%2c3.2 48%2c13.228821 48%2c25.6 c 0%2c5.736682 -2.161128%2c10.952493 -5.707692%2c14.915385 -1.695935%2c-0.623286 -3.387833%2c-1.349065 -5.061539%2c-2.288462 3.2394%2c-0.937363 5.6%2c-3.937988 5.6%2c-7.457692 0%2c-4.260339 -3.469626%2c-7.753846 -7.753846%2c-7.753846 -3.633936%2c0 -6.690552%2c2.51055 -7.538461%2c5.869231 h -3.876924 c -0.840685%2c-3.360193 -3.903443%2c-5.869231 -7.538461%2c-5.869231 -4.284219%2c0 -7.7807693%2c3.493507 -7.7807693%2c7.753846 0%2c3.56112 2.4570323%2c6.5856 5.7615383%2c7.484616 -1.676267%2c0.912203 -3.404813%2c1.620556 -5.1692306%2c2.261538 z M 25.6%2c26.461538 c 0.532632%2c-1.981435 1.101793%2c-3.947553 3.446154%2c-5.16923 L 25.6%2c16.123077 22.153846%2c21.292308 c 2.053593%2c1.454966 3.000771%2c3.237758 3.446154%2c5.16923 z' style='fill:url(%23linearGradient4309)%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4327)' inkscape:connector-curvature='0' transform='matrix(0.38078533%2c0%2c0%2c0.38078533%2c2.9655495%2c31.335499)' /%3e%3cpath id='path4242' d='m 16.123077%2c33.353847 c -1.427443%2c0 -2.584616%2c-1.157173 -2.584616%2c-2.584616 0%2c-1.427444 1.157173%2c-2.584615 2.584616%2c-2.584615 1.427444%2c0 2.584615%2c1.157171 2.584615%2c2.584615 0%2c1.427443 -1.157171%2c2.584616 -2.584615%2c2.584616 z' style='fill:url(%23linearGradient4311)%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4327)' inkscape:connector-curvature='0' transform='matrix(0.38078533%2c0%2c0%2c0.38078533%2c2.9655495%2c31.335499)' /%3e%3cpath id='path4240' d='m 35.076923%2c33.353847 c -1.427443%2c0 -2.584615%2c-1.157173 -2.584615%2c-2.584616 0%2c-1.427444 1.157172%2c-2.584615 2.584615%2c-2.584615 1.427443%2c0 2.584616%2c1.157171 2.584616%2c2.584615 0%2c1.427443 -1.157173%2c2.584616 -2.584616%2c2.584616 z' style='fill:url(%23linearGradient4313)%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4327)' inkscape:connector-curvature='0' transform='matrix(0.38078533%2c0%2c0%2c0.38078533%2c2.9655495%2c31.335499)' /%3e%3cpath inkscape:connector-curvature='0' style='fill:%23d9d9d9%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4339)' d='m 25.6%2c47.2 c -4.373944%2c0 -8.437159%2c-1.399808 -11.838461%2c-3.634616 3.677605%2c-0.394237 7.305921%2c-1.342945 11.423077%2c-3.375 4.166157%2c2.122533 8.434154%2c3.008875 12.279808%2c3.452886 C 34.057131%2c45.890032 29.986674%2c47.2 25.6%2c47.2 Z' id='path4248' transform='matrix(0.39488848%2c0%2c0%2c0.39488848%2c2.6045087%2c30.974457)' /%3e%3cpath inkscape:connector-curvature='0' style='fill:url(%23linearGradient4211)%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4315)' d='M 39.723077%2c42.552884 C 35.394064%2c42.5242 29.479588%2c40.397223 25.184616%2c38.432418 20.668821%2c40.064102 16.035448%2c42.649343 10.801923%2c42.526924 10.453022%2c42.51873 10.118061%2c42.50105 9.7634616%2c42.475 L 5.6615384%2c42.1375 9.5557693%2c40.839424 c 5.3417977%2c-1.74056 10.0398397%2c-2.851302 14.1749997%2c-10.025963 0.959101%2c0 2.845924%2c-4.15e-4 3.738462%2c-4.15e-4 4.11884%2c7.134039 9.059296%2c8.324614 14.149039%2c10.026378 L 45.460577%2c42.085577 41.4625%2c42.475 c -0.544847%2c0.05181 -1.120992%2c0.08198 -1.739423%2c0.07788 z' id='path4246' sodipodi:nodetypes='cccccccccccc' transform='matrix(0.39488848%2c0%2c0%2c0.39488848%2c2.6045087%2c30.974457)' /%3e%3c/g%3e%3c/g%3e%3c/svg%3e",qk="data:image/svg+xml,%3c%3fxml version='1.0' encoding='UTF-8' standalone='no'%3f%3e%3c!-- Created with Inkscape (http://www.inkscape.org/) --%3e%3csvg version='1.1' id='svg62' width='24' height='24' viewBox='0 0 24 24' sodipodi:docname='reolink.svg' inkscape:version='1.2.2 (b0a8486541%2c 2022-12-01)' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg'%3e %3cdefs id='defs66' /%3e %3csodipodi:namedview id='namedview64' pagecolor='%23505050' bordercolor='%23eeeeee' borderopacity='1' inkscape:showpageshadow='0' inkscape:pageopacity='0' inkscape:pagecheckerboard='0' inkscape:deskcolor='%23505050' showgrid='true' inkscape:zoom='36.417984' inkscape:cx='18.191562' inkscape:cy='8.6633022' inkscape:window-width='3840' inkscape:window-height='1527' inkscape:window-x='1080' inkscape:window-y='227' inkscape:window-maximized='1' inkscape:current-layer='g68'%3e %3cinkscape:grid type='xygrid' id='grid1175' dotted='false' snapvisiblegridlinesonly='true' /%3e %3c/sodipodi:namedview%3e %3cg inkscape:groupmode='layer' inkscape:label='Reolink Logo' id='g68'%3e %3cpath style='fill:white%3bstroke-width:0.0393282%3bfill-opacity:1' d='M 17.037254%2c23.964909 C 16.764634%2c23.917573 16.561708%2c23.83617 16.325735%2c23.67954 16.196719%2c23.593913 14.543544%2c21.952905 12.217956%2c19.602014 10.077426%2c17.438191 8.2198993%2c15.582673 8.0901166%2c15.478642 7.6038998%2c15.088895 7.0877741%2c14.869424 6.4986827%2c14.801908 6.3140805%2c14.780765 5.079061%2c14.763305 3.7541964%2c14.763126 l -2.408845%2c-4.78e-4 0.00713%2c-7.3937713 v -7.3935985 l 6.2040046%2c3.536e-5 c 3.9799342%2c1.969e-5 6.3590882%2c0.01465833 6.6366112%2c0.0408227 2.331195%2c0.21982024 4.364771%2c1.49885914 5.578726%2c3.50085534 0.686043%2c1.1313823 1.020901%2c2.2783695 1.067186%2c3.6554196 0.06335%2c1.8844953 -0.57426%2c3.6597378 -1.831469%2c5.0992438 -0.756457%2c0.866146 -1.861127%2c1.62991 -2.928729%2c2.024919 l -0.319718%2c0.118287 -1.951287%2c-1.979284 -1.951286%2c-1.979278 1.046741%2c-0.02346 c 0.575706%2c-0.01291 1.099833%2c-0.03689 1.164724%2c-0.0533 0.596068%2c-0.150649 0.949703%2c-0.313968 1.322206%2c-0.6106282 0.643573%2c-0.5125401 1.046169%2c-1.2439257 1.137985%2c-2.0673522 0.167852%2c-1.505317 -0.771478%2c-2.8704888 -2.263547%2c-3.2897068 L 13.950001%2c4.3234481 9.7981831%2c4.3106846 5.6392389%2c4.29801 v 3.0692702 3.0692648 l 1.4185165%2c7.9e-4 c 1.6275801%2c8.87e-4 1.7789152%2c0.01912 2.3105245%2c0.27984 0.3095679%2c0.15183 0.389559%2c0.219499 1.0817441%2c0.915083 3.027399%2c3.042274 12.19404%2c12.30837 12.204589%2c12.337002 0.0161%2c0.04373 -5.364393%2c0.03953 -5.617359%2c-0.0045 z' id='path1173' inkscape:label='R' /%3e %3c/g%3e%3c/svg%3e";const Uk=e=>{switch(e){case"frigate":return Hk;case"motioneye":return Bk;case"reolink":return qk;default:return null}};const Wk=(e,t,n)=>{const a=e.states[t],i=n?.state?n.state:a?a.state:null;if(!i)return null;const r=Ye(t),o=a?a.attributes:null;return n?.entity?.translation_key&&e.localize(`component.${n.entity.platform}.entity.${r}.${n.entity.translation_key}.state.${i}`)||o?.device_class&&e.localize(`component.${r}.state.${o.device_class}.${i}`)||e.localize(`component.${r}.state._.${i}`)||i};let Zk=class extends se{_renderItem(e){if(!this.hass)return;const t=Pb(this.hass,{...e});return q` + {t.detail.config=e}} + .actionHandler=${kf({hasHold:bf(e.hold_action),hasDoubleClick:bf(e.double_tap_action)})} + > + ${t.title||""} + ${e.subtitle?q`${e.subtitle}`:""} + ${(e=>{if(e.icon){const t=Uk(e.icon);return t?q``:q` + `}return q``})(t)} + + `}render(){if(!this.submenu)return q``;const e=this.submenu.items;return q` + e.stopPropagation()} + @click=${e=>wf(e)} + > + + + + ${e.map(this._renderItem.bind(this))} + + `}static get styles(){return o("ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n pointer-events: auto;\n}\n\nmwc-list-item {\n z-index: 20;\n}")}};e([he({attribute:!1})],Zk.prototype,"hass",void 0),e([he({attribute:!1})],Zk.prototype,"submenu",void 0),Zk=e([le("frigate-card-submenu")],Zk);let Qk=class extends se{shouldUpdate(e){const t=e.get("hass");return!e.has("hass")||!t||!this.submenuSelect||jb(this.hass,t,[this.submenuSelect.entity])}async _refreshOptionTitles(){if(!this.hass||!this.submenuSelect)return;const e=this.submenuSelect.entity,t=this.hass.states[e],n=t?.attributes?.options,a=await(this.entityRegistryManager?.getEntity(this.hass,e))??null,i={};for(const t of n){const n=Wk(this.hass,e,{...a&&{entity:a},state:t});n&&(i[t]=n)}this._optionTitles=i}willUpdate(){if(!this.submenuSelect||!this.hass)return;this._optionTitles||this._refreshOptionTitles();const e=this.submenuSelect.entity,t=this.hass.states[e],n=t?.attributes?.options;if(!t||!n)return;const a={icon:zb("select"),...Pb(this.hass,this.submenuSelect),...this.submenuSelect,type:"custom:frigate-card-menu-submenu",items:[]};delete a.options;const i=a.items;for(const a of n){const n=this._optionTitles?.[a]??a;i.push({state_color:!0,selected:t.state===a,enabled:!0,title:n||a,...(e.startsWith("select.")||e.startsWith("input_select."))&&{tap_action:{action:"perform-action",perform_action:e.startsWith("select.")?"select.select_option":"input_select.select_option",target:{entity_id:e},data:{option:a}}},...this.submenuSelect.options&&this.submenuSelect.options[a]})}this._generatedSubmenu=a}render(){return q` `}};e([he({attribute:!1})],Qk.prototype,"hass",void 0),e([he({attribute:!1})],Qk.prototype,"submenuSelect",void 0),e([he({attribute:!1})],Qk.prototype,"entityRegistryManager",void 0),e([pe()],Qk.prototype,"_optionTitles",void 0),Qk=e([le("frigate-card-submenu-select")],Qk);let Gk=class extends se{constructor(){super(...arguments),this._controller=new Vk(this)}set menuConfig(e){this._controller.setMenuConfig(e)}set buttons(e){this._controller.setButtons(e)}set expanded(e){this._controller.setExpanded(e)}toggleMenu(){this._controller.toggleExpanded()}_renderButton(e){if(!this.hass)return;if("custom:frigate-card-menu-submenu"===e.type)return q` this._controller.actionHandler(e)} + > + `;if("custom:frigate-card-menu-submenu-select"===e.type)return q` this._controller.actionHandler(e)} + > + `;const t=this._controller.getFreshButtonState(this.hass,e),n=Uk(t.icon);return q` this._controller.actionHandler(t,e)} + > + ${n?q``:q``} + `}render(){const e=this._controller.getMenuConfig(),t=e?.style;if(!e||"none"===t)return;const n=this._controller.getButtons("matching"),a=this._controller.getButtons("opposing");return q`
+ ${n.map((e=>this._renderButton(e)))} +
+
+ ${a.map((e=>this._renderButton(e)))} +
`}static get styles(){return o('ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n --frigate-card-menu-button-size: 40px;\n --mdc-icon-button-size: var(--frigate-card-menu-button-size);\n --mdc-icon-size: calc(var(--mdc-icon-button-size) / 2);\n pointer-events: auto;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n}\n\n/*******************************************************\n * Non-hover styles should not interact with the pointer\n *******************************************************/\n:host(:not([data-style*=hover])) {\n pointer-events: none;\n}\n\n/***********************************\n * Aligned divs: matching & opposing\n ***********************************/\ndiv.matching,\ndiv.opposing {\n display: flex;\n flex-wrap: wrap;\n flex-direction: row;\n align-items: flex-start;\n min-width: 0px;\n min-height: 0px;\n}\n\ndiv.matching {\n justify-content: flex-start;\n}\n\ndiv.opposing {\n justify-content: flex-end;\n}\n\n/********************\n * Outside menu style\n ********************/\n:host([data-style=outside]) {\n width: 100%;\n background: var(--secondary-background-color);\n}\n\n/********************************************************\n * Hack: Ensure host & div expand for column flex layouts\n ********************************************************/\n:host(:not([data-style=outside])[data-position=left]) {\n writing-mode: vertical-lr;\n}\n\n:host(:not([data-style=outside])[data-position=right]) {\n writing-mode: vertical-rl;\n}\n\n:host(:not([data-style=outside])[data-style=overlay][data-position=left]) div > *,\n:host(:not([data-style=outside])[data-style=overlay][data-position=right]) div > *,\n:host(:not([data-style=outside])[data-style*=hover][data-position=left]) div > *,\n:host(:not([data-style=outside])[data-style*=hover][data-position=right]) div > *,\n:host(:not([data-style=outside])[data-style=hidden][data-position=left]) div > *,\n:host(:not([data-style=outside])[data-style=hidden][data-position=right]) div > * {\n writing-mode: horizontal-tb;\n}\n\n/**********************\n * "Reverse" alignments\n **********************/\n:host(:not([data-style=outside])[data-position=left][data-alignment=bottom]),\n:host(:not([data-style=outside])[data-position=right][data-alignment=bottom]),\n:host([data-position=top][data-alignment=right]),\n:host([data-position=bottom][data-alignment=right]),\n:host(:not([data-style=outside])[data-position=left][data-alignment=bottom]) div,\n:host(:not([data-style=outside])[data-position=right][data-alignment=bottom]) div,\n:host([data-position=top][data-alignment=right]) div,\n:host([data-position=bottom][data-alignment=right]) div {\n flex-direction: row-reverse;\n}\n\n/****************************\n * Wrap upwards on the bottom\n ****************************/\n:host(:not([data-style=outside])[data-position=bottom]) div {\n flex-wrap: wrap-reverse;\n}\n\n/********************************************\n * Positioning for absolute based menu styles\n ********************************************/\n:host([data-style=overlay]),\n:host([data-style*=hover]),\n:host([data-style=hidden]) {\n overflow: hidden;\n width: calc(var(--frigate-card-menu-button-size) + 6px);\n height: calc(var(--frigate-card-menu-button-size) + 6px);\n}\n\n:host([data-style=overlay]),\n:host([data-style*=hover]),\n:host([data-style=hidden][expanded]) {\n overflow: visible;\n}\n\n:host([data-style=overlay][data-position=top]),\n:host([data-style=overlay][data-position=bottom]),\n:host([data-style*=hover][data-position=top]),\n:host([data-style*=hover][data-position=bottom]),\n:host([data-style=hidden][data-position=top]),\n:host([data-style=hidden][data-position=bottom]) {\n width: 100%;\n height: auto;\n}\n\n:host([data-style=overlay][data-position=top][data-alignment=left]),\n:host([data-style=overlay][data-position=bottom][data-alignment=left]),\n:host([data-style*=hover][data-position=top][data-alignment=left]),\n:host([data-style*=hover][data-position=bottom][data-alignment=left]),\n:host([data-style=hidden][data-position=top][data-alignment=left][expanded]),\n:host([data-style=hidden][data-position=bottom][data-alignment=left][expanded]) {\n background: linear-gradient(90deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}\n\n:host([data-style=overlay][data-position=top][data-alignment=right]),\n:host([data-style=overlay][data-position=bottom][data-alignment=right]),\n:host([data-style*=hover][data-position=top][data-alignment=right]),\n:host([data-style*=hover][data-position=bottom][data-alignment=right]),\n:host([data-style=hidden][data-position=top][data-alignment=right][expanded]),\n:host([data-style=hidden][data-position=bottom][data-alignment=right][expanded]) {\n background: linear-gradient(270deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}\n\n:host([data-style=overlay][data-position=left]),\n:host([data-style=overlay][data-position=right]),\n:host([data-style*=hover][data-position=left]),\n:host([data-style*=hover][data-position=right]),\n:host([data-style=hidden][data-position=left]),\n:host([data-style=hidden][data-position=right]) {\n width: auto;\n height: 100%;\n}\n\n:host([data-style=overlay][data-position=left][data-alignment=top]),\n:host([data-style=overlay][data-position=right][data-alignment=top]),\n:host([data-style*=hover][data-position=left][data-alignment=top]),\n:host([data-style*=hover][data-position=right][data-alignment=top]),\n:host([data-style=hidden][data-position=left][data-alignment=top][expanded]),\n:host([data-style=hidden][data-position=right][data-alignment=top][expanded]) {\n background: linear-gradient(180deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}\n\n:host([data-style=overlay][data-position=left][data-alignment=bottom]),\n:host([data-style=overlay][data-position=right][data-alignment=bottom]),\n:host([data-style*=hover][data-position=left][data-alignment=bottom]),\n:host([data-style*=hover][data-position=right][data-alignment=bottom]),\n:host([data-style=hidden][data-position=left][data-alignment=bottom][expanded]),\n:host([data-style=hidden][data-position=right][data-alignment=bottom][expanded]) {\n background: linear-gradient(0deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}')}};e([he({attribute:!1})],Gk.prototype,"entityRegistryManager",void 0),e([he({attribute:!1})],Gk.prototype,"hass",void 0),Gk=e([le("frigate-card-menu")],Gk);let Yk=class extends se{render(){return q` + + + + + `}static get styles(){return o("ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n position: absolute;\n width: 100%;\n height: 100%;\n pointer-events: none;\n}\n\nslot {\n position: absolute;\n display: flex;\n}\n\n/***************\n * Slot position\n ***************/\nslot[name=top] {\n top: 0px;\n}\n\nslot[name=bottom] {\n bottom: 0px;\n}\n\nslot[name=left] {\n left: 0px;\n}\n\nslot[name=right] {\n right: 0px;\n}\n\n/***********\n * Slot size\n ***********/\nslot[name=top],\nslot[name=bottom] {\n width: 100%;\n flex-direction: column;\n}\n\nslot[name=left],\nslot[name=right] {\n height: 100%;\n flex-direction: row;\n}\n\nslot[name=top],\nslot[name=left] {\n justify-content: flex-start;\n}\n\nslot[name=bottom],\nslot[name=right] {\n justify-content: flex-end;\n}\n\n/*******************************\n * Match rounded corners to card\n *******************************/\n::slotted([slot=top]:first-child),\n::slotted([slot=left]:first-child) {\n border-top-left-radius: var(--ha-card-border-radius, 4px);\n}\n\n::slotted([slot=top]:first-child),\n::slotted([slot=right]:first-child) {\n border-top-right-radius: var(--ha-card-border-radius, 4px);\n}\n\n::slotted([slot=bottom]:last-child),\n::slotted([slot=left]:last-child) {\n border-bottom-left-radius: var(--ha-card-border-radius, 4px);\n}\n\n::slotted([slot=bottom]:last-child),\n::slotted([slot=right]:last-child) {\n border-bottom-right-radius: var(--ha-card-border-radius, 4px);\n}")}};Yk=e([le("frigate-card-overlay")],Yk);class Kk{constructor(e){this._config=null,this._popupTimer=new xf,this._items=[],this._host=e}getRenderItems(){return this._items}setItems(e){const t=e.filter((e=>!!e.exclusive)),n=Ev(t.length?t:e,(e=>e.priority??50),"desc"),a=this._getSufficientValues(this._items),i=this._getSufficientValues(n);this._items=n,"popup"!==this._config?.style||Dv(a,i)||(this._show(),this._popupTimer.start(this._config.popup_seconds,(()=>this._hide()))),this._host.requestUpdate()}setConfig(e){this._config=e,this._host.style.setProperty("--frigate-card-status-bar-height",`${e.height}px`),this._host.setAttribute("data-style",e.style),this._host.setAttribute("data-position",e.position),"popup"!==this._config?.style&&this._show(),this._host.requestUpdate()}shouldRender(){return this._items.some((e=>!1!==e.enabled&&e.sufficient))}actionHandler(e,t){e.stopPropagation();const n=yf(e.detail.action,t);n&&Fk(this._host,{action:Wg(n),config:t})}_getSufficientValue(e){ +/* istanbul ignore else: cannot happen -- @preserve */ +return"custom:frigate-card-status-bar-icon"===e.type?e.icon:"custom:frigate-card-status-bar-string"===e.type?e.string:"custom:frigate-card-status-bar-image"===e.type?e.image:null}_getSufficientValues(e){return e.filter((e=>!1!==e.enabled&&e.sufficient)).map((e=>this._getSufficientValue(e)))}_show(){of(this._host,!1,"hide")}_hide(){of(this._host,!0,"hide")}}let Xk=class extends se{constructor(){super(...arguments),this._controller=new Kk(this)}willUpdate(e){e.has("config")&&this.config&&this._controller.setConfig(this.config),e.has("items")&&this._controller.setItems(this.items??[])}render(){if(this._controller.shouldRender())return q` +
+ ${this._controller.getRenderItems().map((e=>{if(!1===e.enabled)return;const t=_e({item:!0,expand:!!e.expand,action:!!Object.keys(e.actions??{}).length}),n=kf({hasHold:bf(e.actions?.hold_action),hasDoubleClick:bf(e.actions?.double_tap_action)});if("custom:frigate-card-status-bar-string"===e.type)return q`
this._controller.actionHandler(t,e.actions)} + > + ${e.string} +
`;if("custom:frigate-card-status-bar-icon"===e.type){const a=Uk(e.icon);return a?q`this._controller.actionHandler(t,e.actions)} + />`:q`this._controller.actionHandler(t,e.actions)} + >`}return"custom:frigate-card-status-bar-image"===e.type?q`this._controller.actionHandler(t,e.actions)} + />`:void 0}))} +
+ `}static get styles(){return o("ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n --mdc-icon-button-size: calc(var(--frigate-card-status-bar-height) - 6px);\n --mdc-icon-size: calc(var(--mdc-icon-button-size) / 2);\n display: block;\n width: 100%;\n pointer-events: auto;\n opacity: 1;\n transition: opacity 1s;\n}\n\n/*******************************************************\n * Non-hover styles should not interact with the pointer\n *******************************************************/\n:host(:not([data-style*=hover])) {\n pointer-events: none;\n}\n\n/***************\n * Outside style\n ***************/\n:host([data-style=outside]) {\n color: var(--primary-text-color);\n background: var(--secondary-background-color);\n}\n\n/*******************\n * Non-outside style\n *******************/\n:host(:not([data-style=outside])) {\n color: white;\n background: linear-gradient(90deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}\n\n:host([data-style=popup][hide]) {\n opacity: 0;\n}\n\n/*********************\n * Status bar contents\n *********************/\n.status {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n overflow: hidden;\n width: 100%;\n height: var(--frigate-card-status-bar-height);\n}\n\n.item {\n display: inline-block;\n margin: 3px;\n padding: 3px;\n align-content: center;\n opacity: 0.7;\n}\n\n.item:first-child {\n margin-left: 10px;\n}\n\n.item:last-child {\n margin-right: 10px;\n}\n\n.item.expand {\n flex: 1;\n}\n\n.item.action {\n cursor: pointer;\n}\n\nimg.item {\n width: var(--mdc-icon-size, 24px);\n height: var(--mdc-icon-size, 24px);\n}")}};e([he({attribute:!1})],Xk.prototype,"items",void 0),e([he({attribute:!1})],Xk.prototype,"config",void 0),Xk=e([le("frigate-card-status-bar")],Xk);function Jk(e){return"number"==typeof e}function eS(e){return"string"==typeof e}function tS(e){return"boolean"==typeof e}function nS(e){return"[object Object]"===Object.prototype.toString.call(e)}function aS(e){return Math.abs(e)}function iS(e){return Math.sign(e)}function rS(e,t){return aS(e-t)}function oS(e){return uS(e).map(Number)}function sS(e){return e[cS(e)]}function cS(e){return Math.max(0,e.length-1)}function lS(e,t){return t===cS(e)}function dS(e,t=0){return Array.from(Array(e),((e,n)=>t+n))}function uS(e){return Object.keys(e)}function hS(e,t){return[e,t].reduce(((e,t)=>(uS(t).forEach((n=>{const a=e[n],i=t[n],r=nS(a)&&nS(i);e[n]=r?hS(a,i):i})),e)),{})}function pS(e,t){return void 0!==t.MouseEvent&&e instanceof t.MouseEvent}function mS(){let e=[];const t={add:function(n,a,i,r={passive:!0}){let o;if("addEventListener"in n)n.addEventListener(a,i,r),o=()=>n.removeEventListener(a,i,r);else{const e=n;e.addListener(i),o=()=>e.removeListener(i)}return e.push(o),t},clear:function(){e=e.filter((e=>e()))}};return t}function gS(e,t,n,a){const i=mS(),r=1e3/60;let o=null,s=0,c=0;function l(e){if(!c)return;o||(o=e);const i=e-o;for(o=e,s+=i;s>=r;)n(r),s-=r;a(s/r),c&&t.requestAnimationFrame(l)}function d(){t.cancelAnimationFrame(c),o=null,s=0,c=0}return{init:function(){i.add(e,"visibilitychange",(()=>{e.hidden&&(o=null,s=0)}))},destroy:function(){d(),i.clear()},start:function(){c||(c=t.requestAnimationFrame(l))},stop:d,update:()=>n(r),render:a}}function fS(e=0,t=0){const n=aS(e-t);function a(t){return tt}function r(e){return a(e)||i(e)}const o={length:n,max:t,min:e,constrain:function(n){return r(n)?a(n)?e:t:n},reachedAny:r,reachedMax:i,reachedMin:a,removeOffset:function(e){return n?e-n*Math.ceil((e-t)/n):e}};return o}function _S(e,t,n){const{constrain:a}=fS(0,e),i=e+1;let r=o(t);function o(e){return n?aS((i+e)%i):a(e)}function s(){return r}function c(){return _S(e,s(),n)}const l={get:s,set:function(e){return r=o(e),l},add:function(e){return c().set(s()+e)},clone:c};return l}function vS(e,t,n,a,i,r,o,s,c,l,d,u,h,p,m,g,f,_,v){const{cross:y,direction:b}=e,w=["INPUT","SELECT","TEXTAREA"],x={passive:!1},C=mS(),M=mS(),k=fS(50,225).constrain(p.measure(20)),S={mouse:300,touch:400},E={mouse:500,touch:600},$=m?43:25;let A=!1,z=0,I=0,T=!1,j=!1,O=!1,D=!1;function R(e){if(!pS(e,a)&&e.touches.length>=2)return P(e);const t=r.readPoint(e),n=r.readPoint(e,y),o=rS(t,z),c=rS(n,I);if(!j&&!D){if(!e.cancelable)return P(e);if(j=o>c,!j)return P(e)}const d=r.pointerMove(e);o>g&&(O=!0),l.useFriction(.3).useDuration(.75),s.start(),i.add(b(d)),e.preventDefault()}function P(e){const t=d.byDistance(0,!1).index!==u.get(),n=r.pointerUp(e)*(m?E:S)[D?"mouse":"touch"],a=function(e,t){const n=u.add(-1*iS(e)),a=d.byDistance(e,!m).distance;return m||aS(e)=2,s&&0!==e.button)return;if(function(e){const t=e.nodeName||"";return w.includes(t)}(e.target))return;T=!0,r.pointerDown(e),l.useFriction(0).useDuration(0),i.set(o),function(){const e=D?n:t;M.add(e,"touchmove",R,x).add(e,"touchend",P).add(e,"mousemove",R,x).add(e,"mouseup",P)}(),z=r.readPoint(e),I=r.readPoint(e,y),h.emit("pointerDown")}(s)}const c=t;C.add(c,"dragstart",(e=>e.preventDefault()),x).add(c,"touchmove",(()=>{}),x).add(c,"touchend",(()=>{})).add(c,"touchstart",s).add(c,"mousedown",s).add(c,"touchcancel",P).add(c,"contextmenu",P).add(c,"click",L,!0)},destroy:function(){C.clear(),M.clear()},pointerDown:function(){return T}}}function yS(e,t){let n,a;function i(e){return e.timeStamp}function r(n,a){const i="client"+("x"===(a||e.scroll)?"X":"Y");return(pS(n,t)?n:n.touches[0])[i]}return{pointerDown:function(e){return n=e,a=e,r(e)},pointerMove:function(e){const t=r(e)-r(a),o=i(e)-i(n)>170;return a=e,o&&(n=e),t},pointerUp:function(e){if(!n||!a)return 0;const t=r(a)-r(n),o=i(e)-i(n),s=i(e)-i(a)>170,c=t/o;return o&&!s&&aS(c)>.1?c:0},readPoint:r}}function bS(e,t,n,a,i,r,o){const s=[e].concat(a);let c,l,d=[],u=!1;function h(e){return i.measureSize(o.measure(e))}return{init:function(i){r&&(l=h(e),d=a.map(h),c=new ResizeObserver((n=>{(tS(r)||r(i,n))&&function(n){for(const r of n){if(u)return;const n=r.target===e,o=a.indexOf(r.target),s=n?l:d[o];if(aS(h(n?e:a[o])-s)>=.5){i.reInit(),t.emit("resize");break}}}(n)})),n.requestAnimationFrame((()=>{s.forEach((e=>c.observe(e)))})))},destroy:function(){u=!0,c&&c.disconnect()}}}function wS(e,t,n,a,i){const r=i.measure(10),o=i.measure(50),s=fS(.1,.99);let c=!1;function l(){return!c&&(!!e.reachedAny(n.get())&&!!e.reachedAny(t.get()))}return{shouldConstrain:l,constrain:function(i){if(!l())return;const c=e.reachedMin(t.get())?"min":"max",d=aS(e[c]-t.get()),u=n.get()-t.get(),h=s.constrain(d/o);n.subtract(u*h),!i&&aS(u)e.add(i)))}};return c}function CS(e,t,n,a,i){const{reachedAny:r,removeOffset:o,constrain:s}=a;function c(e){return e.concat().sort(((e,t)=>aS(e)-aS(t)))[0]}function l(t,a){const i=[t,t+n,t-n];if(!e)return t;if(!a)return c(i);const r=i.filter((e=>iS(e)===a));return r.length?c(r):sS(i)-n}return{byDistance:function(n,a){const c=i.get()+n,{index:d,distance:u}=function(n){const a=e?o(n):s(n),i=t.map(((e,t)=>({diff:l(e-a,0),index:t}))).sort(((e,t)=>aS(e.diff)-aS(t.diff))),{index:r}=i[0];return{index:r,distance:a}}(c),h=!e&&r(c);return!a||h?{index:d,distance:n}:{index:d,distance:n+l(t[d]-u,0)}},byIndex:function(e,n){return{index:e,distance:l(t[e]-i.get(),n)}},shortcut:l}}function MS(e,t,n,a,i,r,o,s){const c={passive:!0,capture:!0};let l=0;function d(e){"Tab"===e.code&&(l=(new Date).getTime())}return{init:function(u){s&&(r.add(document,"keydown",d,!1),t.forEach(((t,d)=>{r.add(t,"focus",(t=>{(tS(s)||s(u,t))&&function(t){if((new Date).getTime()-l>10)return;o.emit("slideFocusStart"),e.scrollLeft=0;const r=n.findIndex((e=>e.includes(t)));Jk(r)&&(i.useDuration(0),a.index(r,0),o.emit("slideFocus"))}(d)}),c)})))}}}function kS(e){let t=e;function n(e){return Jk(e)?e:e.get()}const a={get:function(){return t},set:function(e){t=n(e)},add:function(e){t+=n(e)},subtract:function(e){t-=n(e)}};return a}function SS(e,t){const n="x"===e.scroll?function(e){return`translate3d(${e}px,0px,0px)`}:function(e){return`translate3d(0px,${e}px,0px)`},a=t.style;let i=!1;return{clear:function(){i||(a.transform="",t.getAttribute("style")||t.removeAttribute("style"))},to:function(t){i||(a.transform=n(e.direction(t)))},toggleActive:function(e){i=!e}}}function ES(e,t,n,a,i,r,o,s,c){const l=.5,d=oS(i),u=oS(i).reverse(),h=function(){const e=o[0];return g(m(u,e),n,!1)}().concat(function(){const e=t-o[0]-1;return g(m(d,e),-n,!0)}());function p(e,t){return e.reduce(((e,t)=>e-i[t]),t)}function m(e,t){return e.reduce(((e,n)=>p(e,t)>0?e.concat([n]):e),[])}function g(i,o,d){const u=function(e){return r.map(((n,i)=>({start:n-a[i]+l+e,end:n+t-l+e})))}(o);return i.map((t=>{const a=d?0:-n,i=d?n:0,r=d?"end":"start",o=u[t][r];return{index:t,loopPoint:o,slideLocation:kS(-1),translate:SS(e,c[t]),target:()=>s.get()>o?a:i}}))}const f={canLoop:function(){return h.every((({index:e})=>{const n=d.filter((t=>t!==e));return p(n,t)<=.1}))},clear:function(){h.forEach((e=>e.translate.clear()))},loop:function(){h.forEach((e=>{const{target:t,translate:n,slideLocation:a}=e,i=t();i!==a.get()&&(n.to(i),a.set(i))}))},loopPoints:h};return f}function $S(e,t,n){let a,i=!1;return{init:function(r){n&&(a=new MutationObserver((e=>{i||(tS(n)||n(r,e))&&function(e){for(const n of e)if("childList"===n.type){r.reInit(),t.emit("slidesChanged");break}}(e)})),a.observe(e,{childList:!0}))},destroy:function(){a&&a.disconnect(),i=!0}}}function AS(e,t,n,a){const i={};let r,o=null,s=null,c=!1;return{init:function(){r=new IntersectionObserver((e=>{c||(e.forEach((e=>{const n=t.indexOf(e.target);i[n]=e})),o=null,s=null,n.emit("slidesInView"))}),{root:e.parentElement,threshold:a}),t.forEach((e=>r.observe(e)))},destroy:function(){r&&r.disconnect(),c=!0},get:function(e=!0){if(e&&o)return o;if(!e&&s)return s;const t=function(e){return uS(i).reduce(((t,n)=>{const a=parseInt(n),{isIntersecting:r}=i[a];return(e&&r||!e&&!r)&&t.push(a),t}),[])}(e);return e&&(o=t),e||(s=t),t}}}function zS(e,t,n,a,i,r,o,s,c){const{startEdge:l,endEdge:d,direction:u}=e,h=Jk(n);const p={groupSlides:function(e){return h?function(e,t){return oS(e).filter((e=>e%t==0)).map((n=>e.slice(n,n+t)))}(e,n):function(e){return e.length?oS(e).reduce(((n,h,p)=>{const m=sS(n)||0,g=0===m,f=h===cS(e),_=i[l]-r[m][l],v=i[l]-r[h][d],y=!a&&g?u(o):0,b=aS(v-(!a&&f?u(s):0)-(_+y));return p&&b>t+c&&n.push(h),f&&n.push(e.length),n}),[]).map(((t,n,a)=>{const i=Math.max(a[n-1]||0);return e.slice(i,t)})):[]}(e)}};return p}function IS(e,t,n,a,i,r,o){const{align:s,axis:c,direction:l,startIndex:d,loop:u,duration:h,dragFree:p,dragThreshold:m,inViewThreshold:g,slidesToScroll:f,skipSnaps:_,containScroll:v,watchResize:y,watchSlides:b,watchDrag:w,watchFocus:x}=r,C={measure:function(e){const{offsetTop:t,offsetLeft:n,offsetWidth:a,offsetHeight:i}=e;return{top:t,right:n+a,bottom:t+i,left:n,width:a,height:i}}},M=C.measure(t),k=n.map(C.measure),S=function(e,t){const n="rtl"===t,a="y"===e,i=!a&&n?-1:1,r={scroll:a?"y":"x",cross:a?"x":"y",startEdge:a?"top":n?"right":"left",endEdge:a?"bottom":n?"left":"right",measureSize:function(e){const{height:t,width:n}=e;return a?t:n},direction:function(e){return e*i}};return r}(c,l),E=S.measureSize(M),$=function(e){const t={measure:function(t){return e*(t/100)}};return t}(E),A=function(e,t){const n={start:function(){return 0},center:function(e){return a(e)/2},end:a};function a(e){return t-e}const i={measure:function(a,i){return eS(e)?n[e](a):e(t,a,i)}};return i}(s,E),z=!u&&!!v,I=u||!!v,{slideSizes:T,slideSizesWithGaps:j,startGap:O,endGap:D}=function(e,t,n,a,i,r){const{measureSize:o,startEdge:s,endEdge:c}=e,l=n[0]&&i,d=function(){if(!l)return 0;const e=n[0];return aS(t[s]-e[s])}(),u=function(){if(!l)return 0;const e=r.getComputedStyle(sS(a));return parseFloat(e.getPropertyValue(`margin-${c}`))}(),h=n.map(o),p=n.map(((e,t,n)=>{const a=!t,i=lS(n,t);return a?h[t]+d:i?h[t]+u:n[t+1][s]-e[s]})).map(aS);return{slideSizes:h,slideSizesWithGaps:p,startGap:d,endGap:u}}(S,M,k,n,I,i),R=zS(S,E,f,u,M,k,O,D,2),{snaps:P,snapsAligned:L}=function(e,t,n,a,i){const{startEdge:r,endEdge:o}=e,{groupSlides:s}=i,c=s(a).map((e=>sS(e)[o]-e[0][r])).map(aS).map(t.measure),l=a.map((e=>n[r]-e[r])).map((e=>-aS(e))),d=s(l).map((e=>e[0])).map(((e,t)=>e+c[t]));return{snaps:l,snapsAligned:d}}(S,A,M,k,R),N=-sS(P)+sS(j),{snapsContained:F,scrollContainLimit:V}=function(e,t,n,a,i){const r=fS(-t+e,0),o=n.map(((e,t)=>{const{min:a,max:i}=r,o=r.constrain(e),s=!t,l=lS(n,t);return s?i:l||c(a,o)?a:c(i,o)?i:o})).map((e=>parseFloat(e.toFixed(3)))),s=function(){const e=o[0],t=sS(o);return fS(o.lastIndexOf(e),o.indexOf(t)+1)}();function c(e,t){return rS(e,t)<1}return{snapsContained:function(){if(t<=e+i)return[r.max];if("keepSnaps"===a)return o;const{min:n,max:c}=s;return o.slice(n,c)}(),scrollContainLimit:s}}(E,N,L,v,2),H=z?F:L,{limit:B}=function(e,t,n){const a=t[0];return{limit:fS(n?a-e:sS(t),a)}}(N,H,u),q=_S(cS(H),d,u),U=q.clone(),W=oS(n),Z=gS(a,i,(e=>(({dragHandler:e,scrollBody:t,scrollBounds:n,options:{loop:a}},i)=>{a||n.constrain(e.pointerDown()),t.seek(i)})(se,e)),(e=>(({scrollBody:e,translate:t,location:n,offsetLocation:a,scrollLooper:i,slideLooper:r,dragHandler:o,animation:s,eventHandler:c,scrollBounds:l,options:{loop:d}},u)=>{const h=e.settled(),p=!l.shouldConstrain(),m=d?h:h&&p;m&&!o.pointerDown()&&(s.stop(),c.emit("settle")),m||c.emit("scroll");const g=n.get()*u+Y.get()*(1-u);a.set(g),d&&(i.loop(e.direction()),r.loop()),t.to(a.get())})(se,e))),Q=H[q.get()],G=kS(Q),Y=kS(Q),K=kS(Q),X=kS(Q),J=function(e,t,n,a,i,r){let o=0,s=0,c=i,l=r,d=e.get(),u=0;function h(e){return c=e,m}function p(e){return l=e,m}const m={direction:function(){return s},duration:function(){return c},velocity:function(){return o},seek:function(t){const i=t/1e3,r=c*i,h=a.get()-e.get();let p=0;return c?(n.set(e),o+=h/r,o*=l,d+=o,e.add(o*i),p=d-u):(o=0,n.set(a),e.set(a),p=h),s=iS(p),u=d,m},settled:function(){return aS(a.get()-t.get())<.001},useBaseFriction:function(){return p(r)},useBaseDuration:function(){return h(i)},useFriction:p,useDuration:h};return m}(G,K,Y,X,h,.68),ee=CS(u,H,N,B,X),te=function(e,t,n,a,i,r,o){function s(i){const s=i.distance,c=i.index!==t.get();r.add(s),s&&(a.duration()?e.start():(e.update(),e.render(1),e.update())),c&&(n.set(t.get()),t.set(i.index),o.emit("select"))}const c={distance:function(e,t){s(i.byDistance(e,t))},index:function(e,n){const a=t.clone().set(e);s(i.byIndex(a.get(),n))}};return c}(Z,q,U,J,ee,X,o),ne=function(e){const{max:t,length:n}=e,a={get:function(e){return n?(e-t)/-n:0}};return a}(B),ae=mS(),ie=AS(t,n,o,g),{slideRegistry:re}=function(e,t,n,a,i,r){const{groupSlides:o}=i,{min:s,max:c}=a;return{slideRegistry:function(){const a=o(r),i=!e||"keepSnaps"===t;return 1===n.length?[r]:i?a:a.slice(s,c).map(((e,t,n)=>{const a=!t,i=lS(n,t);return a?dS(sS(n[0])+1):i?dS(cS(r)-sS(n)[0]+1,sS(n)[0]):e}))}()}}(z,v,H,V,R,W),oe=MS(e,n,re,te,J,ae,o,x),se={ownerDocument:a,ownerWindow:i,eventHandler:o,containerRect:M,slideRects:k,animation:Z,axis:S,dragHandler:vS(S,e,a,i,X,yS(S,i),G,Z,te,J,ee,q,o,$,p,m,_,.68,w),eventStore:ae,percentOfView:$,index:q,indexPrevious:U,limit:B,location:G,offsetLocation:K,previousLocation:Y,options:r,resizeHandler:bS(t,o,i,n,S,y,C),scrollBody:J,scrollBounds:wS(B,K,X,J,$),scrollLooper:xS(N,B,K,[G,K,Y,X]),scrollProgress:ne,scrollSnapList:H.map(ne.get),scrollSnaps:H,scrollTarget:ee,scrollTo:te,slideLooper:ES(S,E,N,T,j,P,H,K,n),slideFocus:oe,slidesHandler:$S(t,o,b),slidesInView:ie,slideIndexes:W,slideRegistry:re,slidesToScroll:R,target:X,translate:SS(S,t)};return se}const TS={align:"center",axis:"x",container:null,slides:null,containScroll:"trimSnaps",direction:"ltr",slidesToScroll:1,inViewThreshold:0,breakpoints:{},dragFree:!1,dragThreshold:10,loop:!1,skipSnaps:!1,duration:25,startIndex:0,active:!0,watchDrag:!0,watchResize:!0,watchSlides:!0,watchFocus:!0};function jS(e){function t(e,t){return hS(e,t||{})}const n={mergeOptions:t,optionsAtMedia:function(n){const a=n.breakpoints||{},i=uS(a).filter((t=>e.matchMedia(t).matches)).map((e=>a[e])).reduce(((e,n)=>t(e,n)),{});return t(n,i)},optionsMediaQueries:function(t){return t.map((e=>uS(e.breakpoints||{}))).reduce(((e,t)=>e.concat(t)),[]).map(e.matchMedia)}};return n}function OS(e,t,n){const a=e.ownerDocument,i=a.defaultView,r=jS(i),o=function(e){let t=[];const n={init:function(n,a){return t=a.filter((({options:t})=>!1!==e.optionsAtMedia(t).active)),t.forEach((t=>t.init(n,e))),a.reduce(((e,t)=>Object.assign(e,{[t.name]:t})),{})},destroy:function(){t=t.filter((e=>e.destroy()))}};return n}(r),s=mS(),c=function(){let e,t={};function n(e){return t[e]||[]}const a={init:function(t){e=t},emit:function(t){return n(t).forEach((n=>n(e,t))),a},off:function(e,i){return t[e]=n(e).filter((e=>e!==i)),a},on:function(e,i){return t[e]=n(e).concat([i]),a},clear:function(){t={}}};return a}(),{mergeOptions:l,optionsAtMedia:d,optionsMediaQueries:u}=r,{on:h,off:p,emit:m}=c,g=S;let f,_,v,y,b=!1,w=l(TS,OS.globalOptions),x=l(w),C=[];function M(t){const n=IS(e,v,y,a,i,t,c);if(t.loop&&!n.slideLooper.canLoop()){return M(Object.assign({},t,{loop:!1}))}return n}function k(t,n){b||(w=l(w,t),x=d(w),C=n||C,function(){const{container:t,slides:n}=x,a=eS(t)?e.querySelector(t):t;v=a||e.children[0];const i=eS(n)?v.querySelectorAll(n):n;y=[].slice.call(i||v.children)}(),f=M(x),u([w,...C.map((({options:e})=>e))]).forEach((e=>s.add(e,"change",S))),x.active&&(f.translate.to(f.location.get()),f.animation.init(),f.slidesInView.init(),f.slideFocus.init(z),f.eventHandler.init(z),f.resizeHandler.init(z),f.slidesHandler.init(z),f.options.loop&&f.slideLooper.loop(),v.offsetParent&&y.length&&f.dragHandler.init(z),_=o.init(z,C)))}function S(e,t){const n=A();E(),k(l({startIndex:n},e),t),c.emit("reInit")}function E(){f.dragHandler.destroy(),f.eventStore.clear(),f.translate.clear(),f.slideLooper.clear(),f.resizeHandler.destroy(),f.slidesHandler.destroy(),f.slidesInView.destroy(),f.animation.destroy(),o.destroy(),s.clear()}function $(e,t,n){x.active&&!b&&(f.scrollBody.useBaseFriction().useDuration(!0===t?0:x.duration),f.scrollTo.index(e,n||0))}function A(){return f.index.get()}const z={canScrollNext:function(){return f.index.add(1).get()!==A()},canScrollPrev:function(){return f.index.add(-1).get()!==A()},containerNode:function(){return v},internalEngine:function(){return f},destroy:function(){b||(b=!0,s.clear(),E(),c.emit("destroy"),c.clear())},off:p,on:h,emit:m,plugins:function(){return _},previousScrollSnap:function(){return f.indexPrevious.get()},reInit:g,rootNode:function(){return e},scrollNext:function(e){$(f.index.add(1).get(),e,-1)},scrollPrev:function(e){$(f.index.add(-1).get(),e,1)},scrollProgress:function(){return f.scrollProgress.get(f.location.get())},scrollSnapList:function(){return f.scrollSnapList},scrollTo:$,selectedScrollSnap:A,slideNodes:function(){return y},slidesInView:function(){return f.slidesInView.get()},slidesNotInView:function(){return f.slidesInView.get(!1)}};return k(t,n),setTimeout((()=>c.emit("init")),0),z}function DS(){return DS=Object.assign||function(e){for(var t=1;t=e;case"y":return Math.abs(i)>=e;case"z":return Math.abs(r)>=e;default:return!1}}(r,a)&&e.preventDefault(),l.isStarted?l.isMomentum&&r>Math.max(2,2*l.lastAbsDelta)&&(M(!0),x()):x(),0===r&&Object.is&&Object.is(e.deltaX,-0)?d=!0:(t=e,l.axisMovement=PS(l.axisMovement,a),l.lastAbsDelta=r,l.scrollPointsToMerge.push({axisDelta:a,timeStamp:i}),g(),p({axisDelta:a,isStart:!l.isStartPublished}),l.isStartPublished=!0,C())},g=function(){var e;l.scrollPointsToMerge.length===US?(l.scrollPoints.unshift({axisDeltaSum:l.scrollPointsToMerge.map((function(e){return e.axisDelta})).reduce(PS),timeStamp:(e=l.scrollPointsToMerge.map((function(e){return e.timeStamp})),e.reduce((function(e,t){return e+t}))/e.length)}),_(),l.scrollPointsToMerge.length=0,l.scrollPoints.length=1,l.isMomentum||b()):l.isStartPublished||f()},f=function(){var e;l.axisVelocity=(e=l.scrollPointsToMerge,e[e.length-1]).axisDelta.map((function(e){return e/l.willEndTimeout}))},_=function(){var e=l.scrollPoints,t=e[0],n=e[1];if(n&&t){var a=t.timeStamp-n.timeStamp;if(!(a<=0)){var i=t.axisDeltaSum.map((function(e){return e/a})),r=i.map((function(e,t){return e/(l.axisVelocity[t]||1)}));l.axisVelocity=i,l.accelerationFactors.push(r),v(a)}}},v=function(e){var t=10*Math.ceil(e/10)*1.2;l.isMomentum||(t=Math.max(100,2*t)),l.willEndTimeout=Math.min(1e3,Math.round(t))},y=function(e){return 0===e||e<=qS&&e>=BS},b=function(){if(l.accelerationFactors.length>=WS){if(d&&(d=!1,LS(l.axisVelocity)>=.2))return void w();var e=l.accelerationFactors.slice(-1*WS);e.every((function(e){var t=!!e.reduce((function(e,t){return e&&e<1&&e===t?1:0})),n=e.filter(y).length===e.length;return t||n}))&&w(),l.accelerationFactors=e}},w=function(){l.isMomentum=!0},x=function(){(l=GS()).isStarted=!0,l.startTime=Date.now(),n=void 0,d=!1},C=function(){clearTimeout(a),a=setTimeout(M,l.willEndTimeout)},M=function(e){void 0===e&&(e=!1),l.isStarted&&(l.isMomentum&&e?p({isEnding:!0,isMomentumCancel:!0}):p({isEnding:!0}),l.isMomentum=!1,l.isStarted=!1)},k=function(e){var t=[],n=function(n){n.removeEventListener("wheel",e),t=t.filter((function(e){return e!==n}))};return NS({observe:function(a){return a.addEventListener("wheel",e,{passive:!1}),t.push(a),function(){return n(a)}},unobserve:n,disconnect:function(){t.forEach(n)}})}(u),S=k.observe,E=k.unobserve,$=k.disconnect;return h(e),NS({on:r,off:o,observe:S,unobserve:E,disconnect:$,feedWheel:u,updateOptions:h})}var KS={active:!0,breakpoints:{},wheelDraggingClass:"is-wheel-dragging",forceWheelAxis:void 0,target:void 0};function XS(e){var t;void 0===e&&(e={});var n=function(){};var a={name:"wheelGestures",options:e,init:function(a,i){var r,o,s=i.mergeOptions,c=i.optionsAtMedia,l=s(KS,XS.globalOptions),d=s(l,e);t=c(d);var u,h=a.internalEngine(),p=null!=(r=t.target)?r:a.containerNode().parentNode,m=null!=(o=t.forceWheelAxis)?o:h.options.axis,g=YS({preventWheelAction:m,reverseSign:[!0,!0,!1]}),f=g.observe(p),_=g.on("wheel",(function(e){var a=e.axisDelta,i=a[0],r=a[1],o="x"===m?i:r,s="x"===m?r:i,c=e.isMomentum&&e.previous&&!e.previous.isMomentum,l=e.isEnding&&!e.isMomentum||c;Math.abs(o)>Math.abs(s)&&!v&&!e.isMomentum&&function(e){try{x(u=new MouseEvent("mousedown",e.event))}catch(e){return n()}v=!0,document.documentElement.addEventListener("mousemove",b,!0),document.documentElement.addEventListener("mouseup",b,!0),void document.documentElement.addEventListener("mousedown",b,!0),t.wheelDraggingClass&&p.classList.add(t.wheelDraggingClass)}(e);if(!v)return;l?function(e){v=!1,x(w("mouseup",e)),y(),t.wheelDraggingClass&&p.classList.remove(t.wheelDraggingClass)}(e):x(w("mousemove",e))})),v=!1;function y(){document.documentElement.removeEventListener("mousemove",b,!0),document.documentElement.removeEventListener("mouseup",b,!0),document.documentElement.removeEventListener("mousedown",b,!0)}function b(e){v&&e.isTrusted&&e.stopImmediatePropagation()}function w(e,t){var n,a;if(m===h.options.axis){var i=t.axisMovement;n=i[0],a=i[1]}else{var r=t.axisMovement;a=r[0],n=r[1]}if(!h.options.skipSnaps&&!h.options.dragFree){var o=h.containerRect.width,s=h.containerRect.height;n=n<0?Math.max(n,-o):Math.min(n,o),a=a<0?Math.max(a,-s):Math.min(a,s)}return new MouseEvent(e,{clientX:u.clientX+n,clientY:u.clientY+a,screenX:u.screenX+n,screenY:u.screenY+a,movementX:n,movementY:a,button:0,bubbles:!0,cancelable:!0,composed:!0})}function x(e){a.containerNode().dispatchEvent(e)}n=function(){f(),_(),y()}},destroy:function(){return n()}};return a}XS.globalOptions=void 0;class JS{constructor(e,t,n){this._mutationObserver=new MutationObserver(((e,t)=>this._refreshCarouselContents())),this._refreshCarouselContents=()=>{const e=lf(this._parent);!Dv(this._carousel.slideNodes(),e)&&(this._carousel.destroy(),this._carousel=this._createCarousel(e))},this._root=e,this._parent=t,this._direction=n?.direction??"horizontal",this._transitionEffect=n?.transitionEffect??"slide",this._startIndex=n?.startIndex??0,this._dragFree=n?.dragFree??!1,this._loop=n?.loop??!1,this._draggable=n?.dragEnabled??!0,this._plugins=n?.plugins??[],this._carousel=this._createCarousel(lf(this._parent)),t instanceof HTMLSlotElement&&t.addEventListener("slotchange",this._refreshCarouselContents),this._mutationObserver.observe(this._parent,{childList:!0})}destroy(){this._parent instanceof HTMLSlotElement&&this._parent.removeEventListener("slotchange",this._refreshCarouselContents),this._mutationObserver.disconnect(),this._carousel.destroy()}getSlide(e){return this._carousel.slideNodes()[e]??null}getSelectedSlide(){return this.getSlide(this.getSelectedIndex())}getSelectedIndex(){return this._carousel.selectedScrollSnap()}selectSlide(e){this._carousel.scrollTo(e,"none"===this._transitionEffect);const t=this.getSlide(e);t&&Bg(this._parent,"carousel:force-select",{index:e,element:t})}_createCarousel(e){const t=OS(this._root,{slides:e,axis:"horizontal"===this._direction?"x":"y",duration:20,startIndex:this._startIndex,dragFree:this._dragFree,loop:this._loop,containScroll:"trimSnaps",watchSlides:!1,watchResize:!0,watchDrag:this._draggable},[...this._plugins,...e.length>1?[XS({forceWheelAxis:"y"})]:[]]),n=()=>{const e=(()=>{const e=t.selectedScrollSnap(),n=t.slideNodes()[e]??null;return n?{index:e,element:n}:null})();e&&Bg(this._parent,"carousel:select",e)};return t.on("select",(()=>n())),t}}let eE=class extends se{constructor(){super(...arguments),this.direction="horizontal",this.dragEnabled=!0,this.selected=0,this._refParent=ze(),this._refRoot=ze(),this._carousel=null}connectedCallback(){super.connectedCallback(),this.requestUpdate()}disconnectedCallback(){this._carousel?.destroy(),this._carousel=null,super.disconnectedCallback()}willUpdate(e){e.has("direction")&&this.setAttribute("direction",this.direction);["direction","dragEnabled","dragFree","loop","plugins","transitionEffect"].some((t=>e.has(t)))&&(this._carousel?.destroy(),this._carousel=null)}render(){return q`
+ +
+
+ +
+
+ +
`}updated(e){!this._carousel&&this._refRoot.value&&this._refParent.value?this._carousel=new JS(this._refRoot.value,this._refParent.value,{direction:this.direction,dragEnabled:this.dragEnabled,dragFree:this.dragFree,startIndex:this.selected,transitionEffect:this.transitionEffect,loop:this.loop,plugins:this.plugins}):e.has("selected")&&this._carousel?.selectSlide(this.selected)}static get styles(){return o(":host {\n display: block;\n height: 100%;\n width: 100%;\n position: relative;\n}\n\n.embla {\n width: 100%;\n height: 100%;\n margin-left: auto;\n margin-right: auto;\n}\n\n.embla__container {\n display: flex;\n width: 100%;\n height: 100%;\n user-select: none;\n -webkit-touch-callout: none;\n -khtml-user-select: none;\n -webkit-tap-highlight-color: transparent;\n}\n\n:host([direction=vertical]) .embla__container {\n flex-direction: column;\n}\n\n:host([direction=horizontal]) .embla__container {\n flex-direction: row;\n}\n\n.embla__viewport {\n width: 100%;\n height: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n.embla__viewport.is-draggable {\n cursor: move;\n cursor: grab;\n}\n\n.embla__viewport.is-dragging {\n cursor: grabbing;\n}\n\n:host([direction=vertical]) ::slotted(.embla__slide) {\n margin-bottom: 5px;\n}\n\n:host([direction=horizontal]) ::slotted(.embla__slide) {\n margin-right: 5px;\n}")}};e([he({attribute:!0,reflect:!0})],eE.prototype,"direction",void 0),e([he({attribute:!0})],eE.prototype,"transitionEffect",void 0),e([he({attribute:!1})],eE.prototype,"loop",void 0),e([he({attribute:!1})],eE.prototype,"dragFree",void 0),e([he({attribute:!1})],eE.prototype,"dragEnabled",void 0),e([he({attribute:!1})],eE.prototype,"plugins",void 0),e([he({attribute:!1})],eE.prototype,"selected",void 0),eE=e([le("frigate-card-carousel")],eE); +/** + * @license + * Copyright 2019 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const tE=window,nE=tE.ShadowRoot&&(void 0===tE.ShadyCSS||tE.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,aE=Symbol(),iE=new WeakMap;let rE=class{constructor(e,t,n){if(this._$cssResult$=!0,n!==aE)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(nE&&void 0===e){const n=void 0!==t&&1===t.length;n&&(e=iE.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),n&&iE.set(t,e))}return e}toString(){return this.cssText}};const oE=(e,t)=>{nE?e.adoptedStyleSheets=t.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet)):t.forEach((t=>{const n=document.createElement("style"),a=tE.litNonce;void 0!==a&&n.setAttribute("nonce",a),n.textContent=t.cssText,e.appendChild(n)}))},sE=nE?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const n of e.cssRules)t+=n.cssText;return(e=>new rE("string"==typeof e?e:e+"",void 0,aE))(t)})(e):e +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */;var cE;const lE=window,dE=lE.trustedTypes,uE=dE?dE.emptyScript:"",hE=lE.reactiveElementPolyfillSupport,pE={toAttribute(e,t){switch(t){case Boolean:e=e?uE:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let n=e;switch(t){case Boolean:n=null!==e;break;case Number:n=null===e?null:Number(e);break;case Object:case Array:try{n=JSON.parse(e)}catch(e){n=null}}return n}},mE=(e,t)=>t!==e&&(t==t||e==e),gE={attribute:!0,type:String,converter:pE,reflect:!1,hasChanged:mE},fE="finalized";class _E extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(e){var t;this.finalize(),(null!==(t=this.h)&&void 0!==t?t:this.h=[]).push(e)}static get observedAttributes(){this.finalize();const e=[];return this.elementProperties.forEach(((t,n)=>{const a=this._$Ep(n,t);void 0!==a&&(this._$Ev.set(a,n),e.push(a))})),e}static createProperty(e,t=gE){if(t.state&&(t.attribute=!1),this.finalize(),this.elementProperties.set(e,t),!t.noAccessor&&!this.prototype.hasOwnProperty(e)){const n="symbol"==typeof e?Symbol():"__"+e,a=this.getPropertyDescriptor(e,n,t);void 0!==a&&Object.defineProperty(this.prototype,e,a)}}static getPropertyDescriptor(e,t,n){return{get(){return this[t]},set(a){const i=this[e];this[t]=a,this.requestUpdate(e,i,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)||gE}static finalize(){if(this.hasOwnProperty(fE))return!1;this[fE]=!0;const e=Object.getPrototypeOf(this);if(e.finalize(),void 0!==e.h&&(this.h=[...e.h]),this.elementProperties=new Map(e.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){const e=this.properties,t=[...Object.getOwnPropertyNames(e),...Object.getOwnPropertySymbols(e)];for(const n of t)this.createProperty(n,e[n])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const n=new Set(e.flat(1/0).reverse());for(const e of n)t.unshift(sE(e))}else void 0!==e&&t.push(sE(e));return t}static _$Ep(e,t){const n=t.attribute;return!1===n?void 0:"string"==typeof n?n:"string"==typeof e?e.toLowerCase():void 0}_$Eu(){var e;this._$E_=new Promise((e=>this.enableUpdating=e)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(e=this.constructor.h)||void 0===e||e.forEach((e=>e(this)))}addController(e){var t,n;(null!==(t=this._$ES)&&void 0!==t?t:this._$ES=[]).push(e),void 0!==this.renderRoot&&this.isConnected&&(null===(n=e.hostConnected)||void 0===n||n.call(e))}removeController(e){var t;null===(t=this._$ES)||void 0===t||t.splice(this._$ES.indexOf(e)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((e,t)=>{this.hasOwnProperty(t)&&(this._$Ei.set(t,this[t]),delete this[t])}))}createRenderRoot(){var e;const t=null!==(e=this.shadowRoot)&&void 0!==e?e:this.attachShadow(this.constructor.shadowRootOptions);return oE(t,this.constructor.elementStyles),t}connectedCallback(){var e;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostConnected)||void 0===t?void 0:t.call(e)}))}enableUpdating(e){}disconnectedCallback(){var e;null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostDisconnected)||void 0===t?void 0:t.call(e)}))}attributeChangedCallback(e,t,n){this._$AK(e,n)}_$EO(e,t,n=gE){var a;const i=this.constructor._$Ep(e,n);if(void 0!==i&&!0===n.reflect){const r=(void 0!==(null===(a=n.converter)||void 0===a?void 0:a.toAttribute)?n.converter:pE).toAttribute(t,n.type);this._$El=e,null==r?this.removeAttribute(i):this.setAttribute(i,r),this._$El=null}}_$AK(e,t){var n;const a=this.constructor,i=a._$Ev.get(e);if(void 0!==i&&this._$El!==i){const e=a.getPropertyOptions(i),r="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==(null===(n=e.converter)||void 0===n?void 0:n.fromAttribute)?e.converter:pE;this._$El=i,this[i]=r.fromAttribute(t,e.type),this._$El=null}}requestUpdate(e,t,n){let a=!0;void 0!==e&&(((n=n||this.constructor.getPropertyOptions(e)).hasChanged||mE)(this[e],t)?(this._$AL.has(e)||this._$AL.set(e,t),!0===n.reflect&&this._$El!==e&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(e,n))):a=!1),!this.isUpdatePending&&a&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(e){Promise.reject(e)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var e;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((e,t)=>this[t]=e)),this._$Ei=void 0);let t=!1;const n=this._$AL;try{t=this.shouldUpdate(n),t?(this.willUpdate(n),null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostUpdate)||void 0===t?void 0:t.call(e)})),this.update(n)):this._$Ek()}catch(e){throw t=!1,this._$Ek(),e}t&&this._$AE(n)}willUpdate(e){}_$AE(e){var t;null===(t=this._$ES)||void 0===t||t.forEach((e=>{var t;return null===(t=e.hostUpdated)||void 0===t?void 0:t.call(e)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(e){return!0}update(e){void 0!==this._$EC&&(this._$EC.forEach(((e,t)=>this._$EO(t,this[t],e))),this._$EC=void 0),this._$Ek()}updated(e){}firstUpdated(e){}}_E[fE]=!0,_E.elementProperties=new Map,_E.elementStyles=[],_E.shadowRootOptions={mode:"open"},null==hE||hE({ReactiveElement:_E}),(null!==(cE=lE.reactiveElementVersions)&&void 0!==cE?cE:lE.reactiveElementVersions=[]).push("1.6.3"); +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const vE=0,yE=Symbol();class bE{constructor(e,t,n){this.o=0,this.status=0,this.autoRun=!0,this.i=e,this.i.addController(this);const a="object"==typeof t?t:{task:t,args:n};this.t=a.task,this.h=a.args,void 0!==a.autoRun&&(this.autoRun=a.autoRun),this.taskComplete=new Promise(((e,t)=>{this.l=e,this.u=t}))}hostUpdated(){this.performTask()}async performTask(){var e;const t=null===(e=this.h)||void 0===e?void 0:e.call(this);this.shouldRun(t)&&this.run(t)}shouldRun(e){return this.autoRun&&this.v(e)}async run(e){var t;let n,a;null!=e||(e=null===(t=this.h)||void 0===t?void 0:t.call(this)),2!==this.status&&3!==this.status||(this.taskComplete=new Promise(((e,t)=>{this.l=e,this.u=t}))),this.status=1,this._=void 0,this.m=void 0,this.i.requestUpdate();const i=++this.o;try{n=await this.t(e)}catch(e){a=e}this.o===i&&(n===yE?this.status=0:(void 0===a?(this.status=2,this.l(n)):(this.status=3,this.u(a)),this.m=n,this._=a),this.i.requestUpdate())}get value(){return this.m}get error(){return this._}render(e){var t,n,a,i;switch(this.status){case 0:return null===(t=e.initial)||void 0===t?void 0:t.call(e);case 1:return null===(n=e.pending)||void 0===n?void 0:n.call(e);case 2:return null===(a=e.complete)||void 0===a?void 0:a.call(e,this.value);case 3:return null===(i=e.error)||void 0===i?void 0:i.call(e,this.error);default:this.status}}v(e){const t=this.T;return this.T=e,Array.isArray(e)&&Array.isArray(t)?e.length===t.length&&e.some(((e,n)=>mE(e,t[n]))):e!==t}}class wE{constructor(e){this._keys=e}modify(e){this._keys.forEach((t=>e.removeContext(t)))}}var xE=":host {\n display: flex;\n flex-direction: column;\n width: 100%;\n margin-left: 5px;\n padding: 5px;\n color: var(--primary-text-color);\n overflow: hidden;\n column-gap: 5%;\n}\n\ndiv.title {\n font-size: 1.2rem;\n font-weight: bold;\n}\n\ndiv.details {\n flex: 1;\n justify-content: center;\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n --mdc-icon-size: 16px;\n min-height: 0px;\n}";const CE=(e,t,n,a)=>{const i={...a?.cardWideConfig&&{cardWideConfig:a.cardWideConfig}};return q` ${t.render({initial:()=>a?.inProgressFunc?.()??xk(i),pending:()=>a?.inProgressFunc?.()??xk(i),error:t=>{Gg(t),kk(e,t)},complete:n})}`},ME=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,kE=(e,t,n,a=!0)=>new bE(e,{args:()=>[!!t(),n()],task:async([e,n])=>{const a=t();return e&&a&&n?(async(e,t)=>e&&t?t.startsWith("data:")||t.match(ME)?t:new Promise(((n,a)=>{e?e.fetchWithAuth(t).then((e=>e.blob())).then((e=>{const t=new FileReader;t.onload=()=>{const e=t.result;n("string"==typeof e?e:null)},t.onerror=e=>a(e),t.readAsDataURL(e)})):a()})):null)(a,n):null},autoRun:a}),SE=300;let EE=class extends se{constructor(){super(),this._intersectionObserver=new IntersectionObserver(this._intersectionHandler.bind(this))}connectedCallback(){this._intersectionObserver.observe(this),super.connectedCallback()}disconnectedCallback(){super.disconnectedCallback(),this._intersectionObserver.disconnect()}willUpdate(e){e.has("thumbnail")&&(this._embedThumbnailTask=kE(this,(()=>this.hass),(()=>this.thumbnail),!1),this._intersectionObserver.unobserve(this),this._intersectionObserver.observe(this))}_intersectionHandler(e){this._embedThumbnailTask?.status===vE&&e.some((e=>e.isIntersecting))&&this._embedThumbnailTask?.run()}render(){const e=q` `;return this._embedThumbnailTask?q`${this.thumbnail?CE(this,this._embedThumbnailTask,(e=>e?q``:q``),{inProgressFunc:()=>e}):e} `:e}static get styles(){return o(":host {\n display: block;\n overflow: hidden;\n aspect-ratio: 1/1;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\nimg {\n display: block;\n}\n\nimg,\nha-icon {\n display: inline-block;\n vertical-align: top;\n margin: 0;\n border-radius: var(--frigate-card-css-border-radius, var(--ha-card-border-radius, 4px));\n width: var(--frigate-card-thumbnail-size);\n max-height: 100%;\n aspect-ratio: 1/1;\n object-fit: cover;\n}\n\nha-icon {\n --mdc-icon-size: 50%;\n color: var(--primary-text-color);\n display: flex;\n justify-content: center;\n align-items: center;\n border: 1px solid rgba(255, 255, 255, 0.3);\n box-sizing: border-box;\n opacity: 0.2;\n}")}};e([he({attribute:!1})],EE.prototype,"thumbnail",void 0),e([he({attribute:!1})],EE.prototype,"hass",void 0),EE=e([le("frigate-card-thumbnail-feature-thumbnail")],EE);let $E=class extends se{render(){if(this.date)return q` + ${this.cameraMetadata?.engineLogo?q``:""} +
+
${Wu(this.date,"HH:mm")}
+
${Wu(this.date,"MMM do")}
+ ${this.showCameraTitle&&this.cameraMetadata?.title?q`
${this.cameraMetadata.title}
`:q``} +
+ `}static get styles(){return o(":host {\n display: block;\n max-width: var(--frigate-card-thumbnail-size);\n max-height: var(--frigate-card-thumbnail-size);\n aspect-ratio: 1/1;\n border: 1px solid var(--secondary-color);\n background-color: var(--secondary-background-color);\n border-radius: var(--frigate-card-css-border-radius, var(--ha-card-border-radius, 4px));\n overflow: hidden;\n padding: 10px;\n box-sizing: border-box;\n position: relative;\n}\n\nimg.background {\n display: block;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n padding: 10%;\n box-sizing: border-box;\n pointer-events: none;\n opacity: 0.1;\n}\n\ndiv.content {\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n color: var(--primary-text-color);\n}\n\ndiv {\n text-align: center;\n}\n\ndiv.title {\n font-size: 1.5rem;\n}\n\ndiv.camera {\n font-size: 0.7em;\n}")}};e([he({attribute:!1})],$E.prototype,"date",void 0),e([he({attribute:!1})],$E.prototype,"cameraMetadata",void 0),e([he({attribute:!1})],$E.prototype,"showCameraTitle",void 0),$E=e([le("frigate-card-thumbnail-feature-text")],$E);let AE=class extends se{render(){if(!this.media)return;const e=this.media.getScore(),t=e?(100*e).toFixed(2)+"%":null,n=this.media.getStartTime(),a=n?Kg(n):null,i=this.media.getEndTime(),r=n&&i?ef(n,i):null,o=this.media.inProgress()?V_("event.in_progress"):null,s=qg(this.media.getWhat()?.join(", "))??null,c=qg(this.media.getWhere()?.join(", "))??null,l=qg(this.media.getTags()?.join(", "))??null,d=s||l?(s??"")+(s&&l?": ":"")+(l??""):null,u=this.seek?Wu(this.seek,"HH:mm:ss"):null;return q` + ${d?q`
+ ${d} + ${t?q`${t}`:""} +
`:""} +
+ ${a?q`
+ + ${a} +
+ ${r||o?q`
+ + ${r?q`${r}`:""} + ${o?q`${o}`:""} +
`:""}`:""} + ${this.cameraTitle?q`
+ + ${this.cameraTitle} +
`:""} + ${c?q`
+ + ${c} +
`:q``} + ${l?q`
+ + ${l} +
`:q``} + ${u?q`
+ + ${u} +
`:q``} +
+ `}static get styles(){return o(xE)}};e([he({attribute:!1})],AE.prototype,"media",void 0),e([he({attribute:!1})],AE.prototype,"seek",void 0),e([he({attribute:!1})],AE.prototype,"cameraTitle",void 0),AE=e([le("frigate-card-thumbnail-details-event")],AE);let zE=class extends se{render(){if(!this.media)return;const e=this.media.getStartTime(),t=e?Kg(e):null,n=this.media.getEndTime(),a=e&&n?ef(e,n):null,i=this.media.inProgress()?V_("recording.in_progress"):null,r=this.seek?Wu(this.seek,"HH:mm:ss"):null,o=this.media.getEventCount();return q` + ${this.cameraTitle?q`
+ ${this.cameraTitle} +
`:""} +
+ ${t?q`
+ + ${t} +
+ ${a||i?q`
+ + ${a?q`${a}`:""} + ${i?q`${i}`:""} +
`:""}`:""} + ${r?q`
+ + ${r} +
`:q``} + ${null!==o?q`
+ + ${o} +
`:""} +
+ `}static get styles(){return o(xE)}};e([he({attribute:!1})],zE.prototype,"media",void 0),e([he({attribute:!1})],zE.prototype,"seek",void 0),e([he({attribute:!1})],zE.prototype,"cameraTitle",void 0),zE=e([le("frigate-card-thumbnail-details-recording")],zE);let IE=class extends se{constructor(){super(...arguments),this.details=!1,this.show_favorite_control=!1,this.show_timeline_control=!1,this.show_download_control=!1}render(){if(!this.media||!this.cameraManager||!this.hass)return;const e=this.media.getThumbnail(),t=this.media.getTitle()??"",n={star:!0,starred:!!this.media?.isFavorite()},a=this.show_timeline_control&&(!tx.isRecording(this.media)||this.media.getStartTime()&&this.media.getEndTime()),i=this.cameraManager?.getMediaCapabilities(this.media),r=this.show_favorite_control&&this.media&&this.hass&&i?.canFavorite,o=this.show_download_control&&this.hass&&this.media.getID()&&i?.canDownload,s=this.cameraManager.getCameraMetadata(this.media.getCameraID());return q` + ${tx.isEvent(this.media)&&e?q``:tx.isEvent(this.media)||tx.isRecording(this.media)?q``:q``} + ${r?q` {if(wf(e),this.hass&&this.media){try{await(this.cameraManager?.favoriteMedia(this.media,!this.media?.isFavorite()))}catch(e){return void Gg(e)}this.requestUpdate()}}} + />`:""} + ${this.details&&tx.isEvent(this.media)?q``:this.details&&tx.isRecording(this.media)?q``:q``} + ${a?q`{wf(e),this.viewManagerEpoch&&this.media&&this.viewManagerEpoch.manager.setViewByParameters({params:{view:"timeline",queryResults:this.viewManagerEpoch?.manager.getView()?.queryResults?.clone().selectResultIfFound((e=>e===this.media))},modifiers:[new wE(["timeline"])]})}} + >`:""} + ${o?q` {if(wf(e),this.hass&&this.cameraManager&&this.media)try{await Ew(this.hass,this.cameraManager,this.media)}catch(e){kk(this,e)}}} + >`:""} + `}static get styles(){return o(":host {\n display: flex;\n flex-direction: row;\n box-sizing: border-box;\n position: relative;\n overflow: hidden;\n transition: transform 0.2s linear;\n}\n\n:host(:not([details])) {\n aspect-ratio: 1/1;\n}\n\n:host([details]) {\n border: 1px solid var(--primary-color);\n border-radius: var(--frigate-card-css-border-radius, var(--ha-card-border-radius, 4px));\n padding: 2px;\n background-color: var(--primary-background-color, black);\n}\n\n:host(:hover) {\n transform: scale(1.04);\n}\n\nha-icon {\n position: absolute;\n border-radius: 50%;\n opacity: 0.5;\n color: var(--primary-color);\n cursor: pointer;\n transition: opacity 0.2s ease-in-out, color 0.2s ease-in-out;\n}\n\nha-icon:hover {\n opacity: 1;\n}\n\nha-icon.star {\n top: 3px;\n left: 3px;\n}\n\nha-icon.star.starred {\n color: gold;\n}\n\nha-icon.timeline {\n top: 3px;\n right: 3px;\n}\n\nha-icon.download {\n right: 3px;\n bottom: 3px;\n}\n\nfrigate-card-thumbnail-details-event,\nfrigate-card-thumbnail-details-recording {\n flex: 1;\n}")}};e([he({attribute:!1})],IE.prototype,"cameraManager",void 0),e([he({attribute:!1})],IE.prototype,"media",void 0),e([he({attribute:!0,type:Boolean})],IE.prototype,"details",void 0),e([he({attribute:!0,type:Boolean})],IE.prototype,"show_favorite_control",void 0),e([he({attribute:!0,type:Boolean})],IE.prototype,"show_timeline_control",void 0),e([he({attribute:!0,type:Boolean})],IE.prototype,"show_download_control",void 0),e([he({attribute:!1})],IE.prototype,"seek",void 0),IE=e([le("frigate-card-thumbnail")],IE);let TE=class extends se{constructor(){super(...arguments),this.fadeThumbnails=!1,this._thumbnailSlides=[]}willUpdate(e){if(e.has("config")){this.config?.size&&this.style.setProperty("--frigate-card-thumbnail-size",`${this.config.size}px`);const e=this._getDirection();e?this.setAttribute("direction",e):this.removeAttribute("direction")}["cameraManager","config","transitionEffect","viewManagerEpoch"].some((t=>e.has(t)))&&(this._thumbnailSlides=this._renderSlides()),e.has("viewManagerEpoch")&&this.style.setProperty("--frigate-card-carousel-thumbnail-opacity",this.fadeThumbnails&&null!==this._getSelectedSlide()?"0.4":"1.0")}_getSelectedSlide(){return this.viewManagerEpoch?.manager.getView()?.queryResults?.getSelectedIndex()??null}_renderSlides(){const e=[],t=this.viewManagerEpoch?.manager.getView(),n=t?.context?.mediaViewer?.seek,a=this._getSelectedSlide();for(const i of t?.queryResults?.getResults()??[]){const t=e.length,r={embla__slide:!0,"slide-selected":a===t};e.push(q` {const n=this.viewManagerEpoch?.manager.getView();n&&n.queryResults&&Bg(this,"thumbnail-carousel:tap",{queryResults:n.queryResults.clone().selectIndex(t)}),wf(e)}} + > + `)}return e}_getDirection(){return"left"===this.config?.mode||"right"===this.config?.mode?"vertical":"above"===this.config?.mode||"below"===this.config?.mode?"horizontal":null}render(){const e=this._getDirection();if(this._thumbnailSlides.length&&this.config&&e)return q` + ${this._thumbnailSlides} + `}static get styles(){return o(":host {\n --frigate-card-thumbnail-size-max: 300px;\n --frigate-card-thumbnail-details-width: calc(\n var(--frigate-card-thumbnail-size) + 200px\n );\n}\n\n:host {\n display: block;\n width: 100%;\n height: 100%;\n --frigate-card-carousel-thumbnail-opacity: 1;\n}\n\n:host([direction=vertical]) {\n height: 100%;\n}\n\n:host([direction=horizontal]) {\n height: auto;\n}\n\n.embla__slide {\n flex: 0 0 auto;\n opacity: var(--frigate-card-carousel-thumbnail-opacity);\n}\n\n.embla__slide.slide-selected {\n opacity: 1;\n}\n\nfrigate-card-thumbnail {\n width: var(--frigate-card-thumbnail-size);\n height: var(--frigate-card-thumbnail-size);\n max-width: 100%;\n}\n\nfrigate-card-thumbnail[details] {\n width: var(--frigate-card-thumbnail-details-width);\n}")}};e([he({attribute:!1})],TE.prototype,"hass",void 0),e([he({attribute:!1})],TE.prototype,"viewManagerEpoch",void 0),e([he({attribute:!1})],TE.prototype,"cameraManager",void 0),e([he({attribute:!1})],TE.prototype,"config",void 0),e([he({attribute:!1})],TE.prototype,"fadeThumbnails",void 0),TE=e([le("frigate-card-thumbnail-carousel")],TE);var jE=":host {\n width: 100%;\n height: 100%;\n display: block;\n}";const OE=document.createElement("template");OE.innerHTML='\n
\n
\n';class DE extends HTMLElement{constructor(){super();const e=this.attachShadow({mode:"open"});e.appendChild(OE.content.cloneNode(!0)),this._freeSpaceDiv=e.getElementById("fs")}connectedCallback(){this._freeSpaceDiv&&this._freeSpaceDiv.addEventListener("click",this.handleFreeSpaceDivClick),this.upgradeProperty("open")}disconnectedCallback(){document.removeEventListener("keyup",this.handleKeyUp)}upgradeProperty(e){if(this.hasOwnProperty(e)){let t=this[e];delete this[e],this[e]=t}}handleKeyUp=e=>{if(!e.altKey&&"Escape"===e.key)e.preventDefault(),this.open=!1};get open(){return this.hasAttribute("open")}set open(e){e?this.hasAttribute("open")||this.setAttribute("open",""):this.hasAttribute("open")&&this.removeAttribute("open")}static get observedAttributes(){return["open"]}attributeChangedCallback(e,t,n){"open"===e&&(this.open?(this.setAttribute("tabindex","0"),this.setAttribute("aria-disabled","false"),this.focus({preventScroll:!0}),document.addEventListener("keyup",this.handleKeyUp),this.dispatchEvent(new CustomEvent("open",{bubbles:!0}))):(this.setAttribute("tabindex","-1"),this.setAttribute("aria-disabled","true"),document.removeEventListener("keyup",this.handleKeyUp),this.dispatchEvent(new CustomEvent("close",{bubbles:!0}))))}handleFreeSpaceDivClick=()=>{this.open=!1}}customElements.define("side-drawer",DE);let RE=class extends se{constructor(){super(...arguments),this.location="left",this.control=!0,this.open=!1,this.empty=!0,this._refDrawer=ze(),this._refSlot=ze(),this._resizeObserver=new ResizeObserver((()=>this._hideDrawerIfNecessary())),this._isHoverableDevice=Yg()}firstUpdated(e){super.firstUpdated(e);const t=document.createElement("style");t.innerHTML=":host {\n width: unset;\n}\n\n#fs {\n display: none;\n width: 100%;\n inset: 0;\n}\n\n#d,\n#fs {\n height: 100%;\n position: absolute;\n}\n\n#d {\n overflow: visible;\n max-width: 90%;\n z-index: 10;\n}\n\n:host([location=right]) #d {\n left: unset;\n right: 0;\n transform: translateX(100%);\n}\n\n:host([location=right][open]) #d {\n transform: none;\n box-shadow: var(--frigate-card-css-box-shadow, 0px 0px 25px 0px black);\n}\n\n#ifs {\n height: 100%;\n}",this._refDrawer.value?.shadowRoot?.appendChild(t)}_slotChanged(){const e=this._refSlot.value?lf(this._refSlot.value):[];this._resizeObserver.disconnect();for(const t of e)this._resizeObserver.observe(t);this._hideDrawerIfNecessary()}_hideDrawerIfNecessary(){if(!this._refDrawer.value)return;const e=this._refSlot.value?lf(this._refSlot.value):null;this.empty=!e||!e.length||e.every((e=>{const t=e.getBoundingClientRect();return!t.width||!t.height}))}render(){return q` + {this.open&&(this.open=!1)}} + > + ${this.control?q` +
{wf(e),this.open=!this.open}} + > + {this._isHoverableDevice&&!this.open&&(this.open=!0)}} + > + +
+ `:""} + this._slotChanged()}> +
+ `}static get styles(){return o("side-drawer {\n background-color: var(--card-background-color);\n}\n\ndiv.control-surround {\n position: absolute;\n bottom: 50%;\n transform: translateY(50%);\n z-index: 0;\n padding-top: 20px;\n padding-bottom: 20px;\n}\n\n:host([location=left]) div.control-surround {\n padding-right: 12px;\n left: 100%;\n}\n\n:host([location=right]) div.control-surround {\n padding-left: 12px;\n right: 100%;\n}\n\n:host([empty]),\n:host([empty]) > * {\n visibility: hidden;\n}\n\n:host(:not([empty])),\n:host(:not([empty])) > * {\n visibility: visible;\n}\n\nha-icon.control {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.7);\n opacity: 0.5;\n pointer-events: all;\n --mdc-icon-size: 20px;\n padding-top: 20px;\n padding-bottom: 20px;\n transition: opacity 0.5s ease;\n}\n\n:host([open]) ha-icon.control,\nha-icon.control:hover {\n opacity: 1;\n background-color: black;\n}\n\n:host([location=left]) ha-icon.control {\n border-top-right-radius: 20px;\n border-bottom-right-radius: 20px;\n}\n\n:host([location=right]) ha-icon.control {\n border-top-left-radius: 20px;\n border-bottom-left-radius: 20px;\n}")}};e([he({attribute:!0,reflect:!0})],RE.prototype,"location",void 0),e([he({attribute:!0,reflect:!0,type:Boolean})],RE.prototype,"control",void 0),e([he({type:Boolean,reflect:!0,attribute:!0})],RE.prototype,"open",void 0),e([he({attribute:!1})],RE.prototype,"icons",void 0),e([he({type:Boolean,reflect:!0,attribute:!0})],RE.prototype,"empty",void 0),RE=e([le("frigate-card-drawer")],RE);let PE=class extends se{constructor(){super(...arguments),this._refDrawerLeft=ze(),this._refDrawerRight=ze(),this._boundDrawerHandler=this._drawerHandler.bind(this)}connectedCallback(){super.connectedCallback(),this.addEventListener("frigate-card:drawer:open",this._boundDrawerHandler),this.addEventListener("frigate-card:drawer:close",this._boundDrawerHandler)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("frigate-card:drawer:open",this._boundDrawerHandler),this.removeEventListener("frigate-card:drawer:close",this._boundDrawerHandler)}_drawerHandler(e){const t=e.detail.drawer,n=e.type.endsWith(":open");"left"===t&&this._refDrawerLeft.value?this._refDrawerLeft.value.open=n:"right"===t&&this._refDrawerRight.value&&(this._refDrawerRight.value.open=n)}render(){return q` + + + + + + + + `}static get styles(){return o(":host {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n position: relative;\n overflow: hidden;\n}\n\n::slotted(:not([slot])) {\n flex: 1;\n min-height: 0px;\n}")}};e([he({attribute:!1})],PE.prototype,"drawerIcons",void 0),PE=e([le("frigate-card-surround-basic")],PE);let LE=class extends se{_hasDrawer(){return!!this.thumbnailConfig&&["left","right"].includes(this.thumbnailConfig.mode)}willUpdate(e){this.timelineConfig?.mode&&"none"!==this.timelineConfig.mode&&import("./timeline-core-744686a3.js");const t=this.viewManagerEpoch?.manager.getView();e.has("viewManagerEpoch")&&(this.viewManagerEpoch?.manager.hasMajorMediaChange(this.viewManagerEpoch?.oldView)||this.viewManagerEpoch?.oldView?.displayMode!==t?.displayMode)&&(this._cameraIDsForTimeline=this._getCameraIDsForTimeline()??void 0)}_getCameraIDsForTimeline(){const e=this.viewManagerEpoch?.manager.getView();if(!e||!this.cameraManager)return null;if(e.is("live")){const t={anyCapabilities:["clips","snapshots","recordings"]};return e.supportsMultipleDisplayModes()&&e.isGrid()?this.cameraManager.getStore().getCameraIDsWithCapability(t):this.cameraManager.getStore().getAllDependentCameras(e.camera,t)}return e.isViewerView()?e.query?.getQueryCameraIDs()??null:null}render(){const e=this.viewManagerEpoch?.manager.getView();if(!this.hass||!e)return;const t=(e,t)=>{this.thumbnailConfig&&this._hasDrawer()&&Bg(e.composedPath()[0],"drawer:"+t,{drawer:this.thumbnailConfig.mode})};return q` t(e,"open")} + @frigate-card:thumbnails:close=${e=>t(e,"close")} + > + ${this.thumbnailConfig&&"none"!==this.thumbnailConfig.mode?q` {const n=e.detail.queryResults.getSelectedResult();n&&(this.viewManagerEpoch?.manager.setViewByParameters({params:{view:"media",queryResults:e.detail.queryResults,...n.getCameraID()&&{camera:n.getCameraID()}},modifiers:[new wE(["timeline","mediaViewer"])]}),t(e,"close"))}} + > + `:""} + ${this.timelineConfig&&"none"!==this.timelineConfig.mode?q` + `:""} + + `}static get styles(){return o(jE)}};e([he({attribute:!1})],LE.prototype,"hass",void 0),e([he({attribute:!1})],LE.prototype,"viewManagerEpoch",void 0),e([he({attribute:!1,hasChanged:Qg})],LE.prototype,"thumbnailConfig",void 0),e([he({attribute:!1,hasChanged:Qg})],LE.prototype,"timelineConfig",void 0),e([he({attribute:!1})],LE.prototype,"cameraManager",void 0),e([he({attribute:!1})],LE.prototype,"cardWideConfig",void 0),LE=e([le("frigate-card-surround")],LE);var NE="Thu, 12 Dec 2024 04:43:25 GMT",FE="1992db2",VE="Wed, 11 Dec 2024 20:42:05 -0800";const HE=ba.object({domain:ba.string(),version:ba.string().optional()}).passthrough(),BE="hass_web_proxy",qE=(e,t)=>`/api/${BE}/v${t??0}/?url=${encodeURIComponent(e)}`,UE=(e,t,n="media")=>(e=>e.config.components.includes(BE))(e)&&!!t[n];async function WE(e,t,n){await e.callService(BE,"create_proxied_url",{url_pattern:t,...n&&{url_id:n.urlID,ssl_verification:n.sslVerification,ssl_ciphers:n.sslCiphers,open_limit:n.openLimit,ttl:n.ttl,allow_unauthenticated:n.allowUnauthenticated}})}const ZE=async(e,t)=>{let n=null;if(t)try{n=await(async(e,t)=>await $v(e,HE,{type:"manifest/get",integration:t}))(t,e)}catch(e){}return{detected:!!n,...n?.version&&{version:n.version}}};let QE=class extends se{constructor(){super(...arguments),this._diagnostics=null}async _fetchDiagnostics(){this._diagnostics=await(async(e,t,n)=>{const a=e&&t?await t.getMatchingDevices(e,(e=>"Frigate"===e.manufacturer)):[],i=new Map;return a?.forEach((e=>{e.config_entries.forEach((t=>{e.model&&i.set(t,e.model)}))})),{card_version:"6.0.4",browser:navigator.userAgent,date:new Date,lang:F_(),timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,git:{hash:FE,build_date:NE,commit_date:VE},...e&&{ha_version:e.config.version},integrations:{reolink:await ZE("reolink",e),frigate:{...await ZE("frigate",e),...i.size&&{devices:Object.fromEntries(i)}},hass_web_proxy:await ZE(BE,e),motioneye:await ZE("motioneye",e)},...n&&{config:n}}})(this.hass,this.deviceRegistryManager,this.rawConfig)}shouldUpdate(){return!!this._diagnostics||(this._fetchDiagnostics().then((()=>this.requestUpdate())),!1)}render(){return wk({message:V_("error.diagnostics"),type:"diagnostics",icon:"mdi:information",context:this._diagnostics})}static get styles(){return o(jE)}};e([he({attribute:!1})],QE.prototype,"hass",void 0),e([he({attribute:!1})],QE.prototype,"deviceRegistryManager",void 0),e([he({attribute:!1})],QE.prototype,"rawConfig",void 0),e([pe()],QE.prototype,"_diagnostics",void 0),QE=e([le("frigate-card-diagnostics")],QE);let GE=class extends se{willUpdate(e){if(e.has("viewManagerEpoch")||e.has("config")){const e=this.viewManagerEpoch?.manager.getView();(e?.is("live")||this._shouldLivePreload())&&import("./index-9b434861.js").then((function(e){return e.i})),e?.isGalleryView()?import("./gallery-15a600d2.js"):e?.isViewerView()?import("./index-37750213.js"):e?.is("image")?import("./image-632882b9.js"):e?.is("timeline")&&import("./timeline-116cbe0a.js")}e.has("hide")&&(this.hide?this.setAttribute("hidden",""):this.removeAttribute("hidden"))}shouldUpdate(e){return!0}_shouldLivePreload(){const e=this.viewManagerEpoch?.manager.getView();return!!this.overriddenConfig?.live.preload&&!e?.is("diagnostics")}render(){if(!(this.hass&&this.overriddenConfig&&this.nonOverriddenConfig&&this.cardWideConfig))return q``;const e=this.viewManagerEpoch?.manager.getView(),t={hidden:this._shouldLivePreload()&&!e?.is("live")},n={hidden:!!this.hide},a=e?.is("live")?this.overriddenConfig.live.controls.thumbnails:e?.isViewerView()?this.overriddenConfig.media_viewer.controls.thumbnails:e?.is("timeline")?this.overriddenConfig.timeline.controls.thumbnails:void 0,i=e?.is("live")?this.overriddenConfig.live.controls.timeline:e?.isViewerView()?this.overriddenConfig.media_viewer.controls.timeline:void 0,r=e?this.cameraManager?.getStore().getCameraConfig(e.camera)??null:null;return q` + ${!this.hide&&e?.is("image")&&r?q` + `:""} + ${!this.hide&&e?.isGalleryView()?q` + `:""} + ${!this.hide&&e?.isViewerView()?q` + + + `:""} + ${!this.hide&&e?.is("timeline")?q` + `:""} + ${!this.hide&&e?.is("diagnostics")?q` + `:""} + ${this._shouldLivePreload()||!this.hide&&e?.is("live")?q` + + + `:""} + `}static get styles(){return o(":host {\n width: 100%;\n height: 100%;\n display: block;\n}\n\n:host([hidden]),\n.hidden {\n display: none;\n}")}};e([he({attribute:!1})],GE.prototype,"hass",void 0),e([he({attribute:!1})],GE.prototype,"viewManagerEpoch",void 0),e([he({attribute:!1})],GE.prototype,"cameraManager",void 0),e([he({attribute:!1})],GE.prototype,"nonOverriddenConfig",void 0),e([he({attribute:!1})],GE.prototype,"overriddenConfig",void 0),e([he({attribute:!1})],GE.prototype,"cardWideConfig",void 0),e([he({attribute:!1})],GE.prototype,"rawConfig",void 0),e([he({attribute:!1})],GE.prototype,"resolvedMediaCache",void 0),e([he({attribute:!1})],GE.prototype,"conditionsManagerEpoch",void 0),e([he({attribute:!1})],GE.prototype,"hide",void 0),e([he({attribute:!1})],GE.prototype,"microphoneManager",void 0),e([he({attribute:!1})],GE.prototype,"triggeredCameraIDs",void 0),e([he({attribute:!1})],GE.prototype,"deviceRegistryManager",void 0),GE=e([le("frigate-card-views")],GE);console.info(`%c FRIGATE-HASS-CARD \n%c ${V_("common.version")} 6.0.4`,"color: pink; font-weight: bold; background: black","color: white; font-weight: bold; background: dimgray"),window.customCards=window.customCards||[],window.customCards.push({type:"frigate-card",name:V_("common.frigate_card"),description:V_("common.frigate_card_description"),preview:!0,documentationURL:wa});let YE=class extends se{constructor(){super(...arguments),this._controller=new Ax(this,(()=>this._refMain.value?.scroll({top:0})),(()=>this._refMenu.value?.toggleMenu()),this._requestUpdateForComponentsThatUseConditions.bind(this)),this._menuButtonController=new zx,this._refMenu=ze(),this._refOverlay=ze(),this._refMain=ze(),this._refElements=ze(),this._refViews=ze()}get _config(){return this._controller.getConfigManager().getConfig()}get _hass(){return this._controller.getHASSManager().getHASS()}set hass(e){this._controller.getHASSManager().setHASS(e),this._refMenu.value&&(this._refMenu.value.hass=e),this._refElements.value&&(this._refElements.value.hass=e),this._refViews.value&&(this._refViews.value.hass=e)}static async getConfigElement(){return await Ax.getConfigElement()}static getStubConfig(e,t){return Ax.getStubConfig(t)}_requestUpdateForComponentsThatUseConditions(){this._refViews.value&&(this._refViews.value.conditionsManagerEpoch=this._controller.getConditionsManager().getEpoch()??void 0),this._refElements.value&&(this._refElements.value.conditionsManagerEpoch=this._controller.getConditionsManager().getEpoch()??void 0)}setConfig(e){this._controller.getConfigManager().setConfig(e)}shouldUpdate(){return!!this.isConnected&&(this._controller.getMessageManager().hasMessage()||this._controller.getInitializationManager().isInitializedMandatory()||this._controller.getInitializationManager().initializeMandatory(),!0)}_renderMenuStatusContainer(e){if(!this._config)return;const t=this._config.menu.style,n=this._config.menu.position,a=this._config.status_bar.style,i=this._config.status_bar.position;if("none"===t&&"none"===a||"overlay"===e&&"outside"===t&&"outside"===a||"overlay"!==e&&("outside"!==t||n!==e)&&("outside"!==a||i!==e))return;const r=e=>{const r="none"!==t&&("outside"===t&&"outerlay"===e||"outside"!==t&&"overlay"===e),o="none"!==a&&("outside"===a&&"outerlay"===e||"outside"!==a&&"overlay"===e),s="left"===n||"right"===n||"bottom"===n&&"hidden"===t&&"popup"!==a||"top"===n&&("hidden"!==t||"popup"===a);return q` + ${r&&s?this._renderMenu(n):""} + ${o?this._renderStatusBar(i):""} + ${r&&!s?this._renderMenu(n):""} + `};return q` + ${"overlay"===e?q`${r("overlay")}`:q`
+ ${r("outerlay")} +
`} + `}_renderMenu(e){const t=this._controller.getViewManager().getView();if(this._hass&&this._config)return q` + + `}_renderStatusBar(e){if(this._config)return q` + + `}updated(){this._controller.getInitializationManager().isInitializedMandatory()&&this._controller.getQueryStringManager().executeIfNecessary()}_renderInDialogIfNecessary(e){return this._controller.getExpandManager().isExpanded()?q` {this._controller.getExpandManager().setExpanded(!1)}} + > + ${e} + `:e}render(){if(!this._hass)return;const e={main:!0,"curve-top":"outside"!==this._config?.menu.style||"top"!==this._config?.menu.position,"curve-bottom":"outside"!==this._config?.menu.style||"top"===this._config?.menu.position},t=this._controller.getActionsManager().getMergedActions(),n=this._controller.getCameraManager(),a=!1!==this._config?.performance?.features.animated_progress_indicator&&!this._controller.getInitializationManager().wasEverInitialized()&&!this._controller.getMessageManager().hasMessage();return this._renderInDialogIfNecessary(q` this._controller.getMessageManager().setMessageIfHigherPriority(e.detail)} + @frigate-card:media:loaded=${e=>this._controller.getMediaLoadedInfoManager().set(e.detail)} + @frigate-card:media:unloaded=${()=>this._controller.getMediaLoadedInfoManager().clear()} + @frigate-card:media:volumechange=${()=>this.requestUpdate()} + @frigate-card:media:play=${()=>this.requestUpdate()} + @frigate-card:media:pause=${()=>this.requestUpdate()} + @frigate-card:focus=${()=>this.focus()} + > + ${a?q``:""} + ${this._renderMenuStatusContainer("top")} + ${this._renderMenuStatusContainer("overlay")} +
+ + ${wk(this._controller.getMessageManager().getMessage())} +
+ ${this._renderMenuStatusContainer("bottom")} + ${this._config?.elements?q` {this._menuButtonController.addDynamicMenuButton(e.detail),this.requestUpdate()}} + @frigate-card:menu:remove=${e=>{this._menuButtonController.removeDynamicMenuButton(e.detail),this.requestUpdate()}} + @frigate-card:status-bar:add=${e=>{this._controller.getStatusBarItemManager().addDynamicStatusBarItem(e.detail)}} + @frigate-card:status-bar:remove=${e=>{this._controller.getStatusBarItemManager().removeDynamicStatusBarItem(e.detail)}} + @frigate-card:conditions:evaluate=${e=>{e.evaluation=this._controller.getConditionsManager()?.evaluateConditions(e.conditions)}} + > + `:""} +
`)}static get styles(){return o(':host {\n display: block;\n position: relative;\n background-color: var(--card-background-color);\n border-radius: var(--ha-card-border-radius, 4px);\n height: var(--frigate-card-height);\n min-height: 100px;\n pointer-events: all;\n --frigate-card-expand-max-height: calc((100vh - (2 * 56px)) * 0.85);\n --frigate-card-expand-max-width: 85vw;\n --frigate-card-expand-width: none;\n --frigate-card-expand-height: none;\n --frigate-card-expand-aspect-ratio: unset;\n --frigate-card-height: auto;\n}\n\nfrigate-card-loading {\n position: absolute;\n inset: 0;\n z-index: 1;\n}\n\n:host([dark]) {\n filter: brightness(75%);\n}\n\n:host([panel]) {\n height: calc(100vh - var(--header-height));\n}\n\ndiv.main {\n position: relative;\n overflow: auto;\n width: 100%;\n height: 100%;\n margin: auto;\n display: block;\n transform: translateZ(0);\n scrollbar-width: none;\n -ms-overflow-style: none;\n}\n\n/* Hide scrollbar for Chrome, Safari and Opera */\ndiv.main::-webkit-scrollbar {\n display: none;\n}\n\ndiv.main.curve-top {\n border-top-left-radius: var(--ha-card-border-radius, 4px);\n border-top-right-radius: var(--ha-card-border-radius, 4px);\n}\n\ndiv.main.curve-bottom {\n border-bottom-left-radius: var(--ha-card-border-radius, 4px);\n border-bottom-right-radius: var(--ha-card-border-radius, 4px);\n}\n\nha-card {\n display: flex;\n flex-direction: column;\n margin: auto;\n border: 0px;\n overflow: visible;\n width: 100%;\n height: 100%;\n position: static;\n color: var(--secondary-text-color, white);\n}\n\n/************\n * Fullscreen\n *************/\n:host(:fullscreen) #ha-card {\n border-radius: 0px;\n box-shadow: none;\n margin: 0;\n}\n\n:host(:-webkit-full-screen) #ha-card {\n border-radius: 0px;\n box-shadow: none;\n margin: 0;\n}\n\n:host(:fullscreen) div.main,\n:host(:fullscreen) frigate-card-menu {\n border-radius: 0px;\n}\n\n:host(:-webkit-full-screen) div.main,\n:host(:-webkit-full-screen) frigate-card-menu {\n border-radius: 0px;\n}\n\n/***************\n * Expanded mode\n ***************/\nweb-dialog {\n --dialog-padding: 0px;\n --dialog-container-padding: 0px;\n --dialog-max-height: var(--frigate-card-expand-max-height);\n --dialog-max-width: var(--frigate-card-expand-max-width);\n --dialog-width: var(--frigate-card-expand-width);\n --dialog-height: var(--frigate-card-expand-height);\n --dialog-overflow-x: visible;\n --dialog-overflow-y: visible;\n max-height: 100vh;\n}\n\nweb-dialog::part(dialog) {\n aspect-ratio: var(--frigate-card-expand-aspect-ratio);\n border-radius: 0px;\n background: transparent;\n}\n\n/*************************************\n * "Outside" style for menu/status bar\n *************************************/\n.outerlay[data-position=top] > *:first-child {\n border-top-left-radius: var(--ha-card-border-radius, 4px);\n border-top-right-radius: var(--ha-card-border-radius, 4px);\n}\n\n.outerlay[data-position=bottom] > *:last-child {\n border-bottom-left-radius: var(--ha-card-border-radius, 4px);\n border-bottom-right-radius: var(--ha-card-border-radius, 4px);\n}\n\n/*******************\n * Menu hover styles\n *******************/\nfrigate-card-menu {\n z-index: 2;\n}\n\nfrigate-card-menu[data-style*=hover] {\n transition: opacity 0.5s ease;\n opacity: 0;\n}\n\nfrigate-card-menu[data-style*=hover]:hover,\nha-card:hover > frigate-card-overlay > frigate-card-menu[data-style=hover-card] {\n opacity: 1;\n}\n\n/*************************\n * Status bar hover styles\n *************************/\nfrigate-card-status-bar {\n z-index: 1;\n}\n\nfrigate-card-status-bar[data-style*=hover] {\n transition: opacity 0.5s ease;\n opacity: 0;\n}\n\nfrigate-card-status-bar[data-style*=hover]:hover,\nha-card:hover > frigate-card-overlay > frigate-card-status-bar[data-style=hover-card] {\n opacity: 1;\n}')}getCardSize(){return 6}};YE=e([le("frigate-card")],YE);export{Il as $,tr as A,nr as B,Zi as C,ar as D,ir as E,rr as F,Pi as G,Li as H,Ni as I,Fi as J,Vi as K,Hi as L,Bi as M,qi as N,Ui as O,gs as P,Ws as Q,ns as R,Us as S,qo as T,Fo as U,Vo as V,Ho as W,Bo as X,Bs as Y,zl as Z,e as _,se as a,dr as a$,H_ as a0,tw as a1,et as a2,nw as a3,$s as a4,Di as a5,ji as a6,Oi as a7,Ri as a8,Wi as a9,Yr as aA,oo as aB,so as aC,lo as aD,uo as aE,co as aF,ao as aG,io as aH,ro as aI,mo as aJ,_o as aK,vo as aL,ho as aM,po as aN,fo as aO,go as aP,eo as aQ,no as aR,to as aS,Xr as aT,Jr as aU,Kr as aV,Ao as aW,Io as aX,zo as aY,hr as aZ,cr as a_,es as aa,Jo as ab,Xo as ac,ts as ad,hs as ae,us as af,ms as ag,qs as ah,ps as ai,So as aj,Co as ak,To as al,Mo as am,ko as an,qr as ao,Ur as ap,Wr as aq,Zr as ar,Eo as as,$o as at,yo as au,xo as av,bo as aw,wo as ax,Qr as ay,Gr as az,pe as b,ja as b$,ur as b0,lr as b1,sr as b2,mr as b3,gr as b4,fr as b5,_r as b6,xr as b7,Hr as b8,Cr as b9,Po as bA,Wo as bB,Zo as bC,Go as bD,Yo as bE,Qo as bF,Uo as bG,vs as bH,_s as bI,ys as bJ,xs as bK,Cs as bL,As as bM,Ms as bN,Es as bO,Ss as bP,Jb as bQ,Kb as bR,Uk as bS,Ug as bT,Ma as bU,Ja as bV,Ya as bW,La as bX,Na as bY,ka as bZ,Oa as b_,kr as ba,Mr as bb,vr as bc,wr as bd,yr as be,br as bf,Sr as bg,Er as bh,$r as bi,Or as bj,zr as bk,Tr as bl,jr as bm,Ir as bn,Ar as bo,Pr as bp,Fr as bq,Vr as br,Dr as bs,Rr as bt,Nr as bu,Lr as bv,Ro as bw,Lo as bx,Oo as by,Do as bz,ew as c,wf as c$,Da as c0,Ta as c1,Ga as c2,Ua as c3,Wa as c4,Za as c5,Qa as c6,_i as c7,fi as c8,Ra as c9,ai as cA,ii as cB,Sa as cC,Ea as cD,pi as cE,hi as cF,gi as cG,mi as cH,Fd as cI,Ca as cJ,ks as cK,ge as cL,fe as cM,W as cN,xe as cO,Gw as cP,Mk as cQ,ze as cR,Yw as cS,df as cT,wk as cU,je as cV,Qg as cW,vw as cX,td as cY,kk as cZ,Ky as c_,Pa as ca,Ha as cb,qa as cc,Fa as cd,Va as ce,Ba as cf,Ka as cg,Xa as ch,ti as ci,ei as cj,yi as ck,vi as cl,bi as cm,wi as cn,$a as co,Aa as cp,za as cq,Ia as cr,ni as cs,ri as ct,oi as cu,si as cv,ci as cw,li as cx,di as cy,ui as cz,aw as d,ba as d$,My as d0,ve as d1,jE as d2,Vd as d3,nu as d4,c as d5,ux as d6,Qv as d7,hx as d8,lx as d9,wx as dA,Ck as dB,U as dC,xf as dD,Bw as dE,kE as dF,CE as dG,yf as dH,Fk as dI,vf as dJ,kf as dK,bf as dL,p_ as dM,h_ as dN,Pv as dO,Lv as dP,Ud as dQ,Vv as dR,Yg as dS,Kg as dT,Cx as dU,Gy as dV,gx as dW,su as dX,sf as dY,Fv as dZ,Hg as d_,px as da,Gg as db,Ev as dc,Wu as dd,Xg as de,Qu as df,Bg as dg,qw as dh,af as di,SE as dj,kx as dk,xk as dl,$w as dm,tx as dn,hy as dp,Bb as dq,qb as dr,UE as ds,WE as dt,Ib as du,qE as dv,Qw as dw,Kw as dx,Xw as dy,Jw as dz,_e as e,nf as e0,$v as e1,zs as e2,Kv as e3,Wv as e4,Z_ as e5,Q_ as e6,Yv as e7,Jg as e8,tf as e9,Lu as eA,Vb as eB,Zv as eC,Nb as eD,lf as eE,qy as eF,Uy as eG,Wy as eH,pf as eI,Qy as eJ,Rg as eK,Zy as eL,s as eM,Ae as eN,ye as eO,Zw as eP,bE as eQ,me as eR,be as eS,jb as eT,Gv as ea,Hk as eb,Hv as ec,rf as ed,Tv as ee,Bk as ef,Iv as eg,zv as eh,jv as ei,qk as ej,Xd as ek,Hd as el,Gd as em,Qd as en,Yd as eo,vu as ep,Jd as eq,eu as er,yu as es,_u as et,Bd as eu,au as ev,gu as ew,Ou as ex,Nu as ey,Fu as ez,ww as f,Fb as g,Xb as h,Dv as i,Lb as j,qg as k,V_ as l,Ki as m,he as n,Gi as o,Ld as p,Qi as q,o as r,of as s,le as t,Yi as u,Hb as v,Xi as w,q as x,er as y,Ji as z}; diff --git a/config/www/community/frigate-hass-card/card-769e2b91.js.gz b/config/www/community/frigate-hass-card/card-769e2b91.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..6d564222020964f5dcfb2b6024db37f176e4251a GIT binary patch literal 142699 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�I*srEqI=x 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 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/card-7cd05290.js b/config/www/community/frigate-hass-card/card-7cd05290.js new file mode 100644 index 00000000..624bc399 --- /dev/null +++ b/config/www/community/frigate-hass-card/card-7cd05290.js @@ -0,0 +1,650 @@ +function e(e,t,n,a){var i,r=arguments.length,o=r<3?t:null===a?a=Object.getOwnPropertyDescriptor(t,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,a);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(r<3?i(o):r>3?i(t,n,o):i(t,n))||o);return r>3&&o&&Object.defineProperty(t,n,o),o}"function"==typeof SuppressedError&&SuppressedError; +/** + * @license + * Copyright 2019 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const t=globalThis,n=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,a=Symbol(),i=new WeakMap;let r=class{constructor(e,t,n){if(this._$cssResult$=!0,n!==a)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(n&&void 0===e){const n=void 0!==t&&1===t.length;n&&(e=i.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),n&&i.set(t,e))}return e}toString(){return this.cssText}};const o=e=>new r("string"==typeof e?e:e+"",void 0,a),s=(e,...t)=>{const n=1===e.length?e[0]:t.reduce(((t,n,a)=>t+(e=>{if(!0===e._$cssResult$)return e.cssText;if("number"==typeof e)return e;throw Error("Value passed to 'css' function must be a 'css' function result: "+e+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(n)+e[a+1]),e[0]);return new r(n,e,a)},c=(e,a)=>{if(n)e.adoptedStyleSheets=a.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet));else for(const n of a){const a=document.createElement("style"),i=t.litNonce;void 0!==i&&a.setAttribute("nonce",i),a.textContent=n.cssText,e.appendChild(a)}},l=n?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const n of e.cssRules)t+=n.cssText;return o(t)})(e):e +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */,{is:d,defineProperty:u,getOwnPropertyDescriptor:h,getOwnPropertyNames:p,getOwnPropertySymbols:m,getPrototypeOf:g}=Object,f=globalThis,_=f.trustedTypes,v=_?_.emptyScript:"",y=f.reactiveElementPolyfillSupport,b=(e,t)=>e,w={toAttribute(e,t){switch(t){case Boolean:e=e?v:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let n=e;switch(t){case Boolean:n=null!==e;break;case Number:n=null===e?null:Number(e);break;case Object:case Array:try{n=JSON.parse(e)}catch(e){n=null}}return n}},x=(e,t)=>!d(e,t),C={attribute:!0,type:String,converter:w,reflect:!1,hasChanged:x};Symbol.metadata??=Symbol("metadata"),f.litPropertyMetadata??=new WeakMap;class M extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=C){if(t.state&&(t.attribute=!1),this._$Ei(),this.elementProperties.set(e,t),!t.noAccessor){const n=Symbol(),a=this.getPropertyDescriptor(e,n,t);void 0!==a&&u(this.prototype,e,a)}}static getPropertyDescriptor(e,t,n){const{get:a,set:i}=h(this.prototype,e)??{get(){return this[t]},set(e){this[t]=e}};return{get(){return a?.call(this)},set(t){const r=a?.call(this);i.call(this,t),this.requestUpdate(e,r,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??C}static _$Ei(){if(this.hasOwnProperty(b("elementProperties")))return;const e=g(this);e.finalize(),void 0!==e.l&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(b("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(b("properties"))){const e=this.properties,t=[...p(e),...m(e)];for(const n of t)this.createProperty(n,e[n])}const e=this[Symbol.metadata];if(null!==e){const t=litPropertyMetadata.get(e);if(void 0!==t)for(const[e,n]of t)this.elementProperties.set(e,n)}this._$Eh=new Map;for(const[e,t]of this.elementProperties){const n=this._$Eu(e,t);void 0!==n&&this._$Eh.set(n,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const n=new Set(e.flat(1/0).reverse());for(const e of n)t.unshift(l(e))}else void 0!==e&&t.push(l(e));return t}static _$Eu(e,t){const n=t.attribute;return!1===n?void 0:"string"==typeof n?n:"string"==typeof e?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((e=>this.enableUpdating=e)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((e=>e(this)))}addController(e){(this._$EO??=new Set).add(e),void 0!==this.renderRoot&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){const e=new Map,t=this.constructor.elementProperties;for(const n of t.keys())this.hasOwnProperty(n)&&(e.set(n,this[n]),delete this[n]);e.size>0&&(this._$Ep=e)}createRenderRoot(){const e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return c(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((e=>e.hostConnected?.()))}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach((e=>e.hostDisconnected?.()))}attributeChangedCallback(e,t,n){this._$AK(e,n)}_$EC(e,t){const n=this.constructor.elementProperties.get(e),a=this.constructor._$Eu(e,n);if(void 0!==a&&!0===n.reflect){const i=(void 0!==n.converter?.toAttribute?n.converter:w).toAttribute(t,n.type);this._$Em=e,null==i?this.removeAttribute(a):this.setAttribute(a,i),this._$Em=null}}_$AK(e,t){const n=this.constructor,a=n._$Eh.get(e);if(void 0!==a&&this._$Em!==a){const e=n.getPropertyOptions(a),i="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==e.converter?.fromAttribute?e.converter:w;this._$Em=a,this[a]=i.fromAttribute(t,e.type),this._$Em=null}}requestUpdate(e,t,n){if(void 0!==e){if(n??=this.constructor.getPropertyOptions(e),!(n.hasChanged??x)(this[e],t))return;this.P(e,t,n)}!1===this.isUpdatePending&&(this._$ES=this._$ET())}P(e,t,n){this._$AL.has(e)||this._$AL.set(e,t),!0===n.reflect&&this._$Em!==e&&(this._$Ej??=new Set).add(e)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[e,t]of this._$Ep)this[e]=t;this._$Ep=void 0}const e=this.constructor.elementProperties;if(e.size>0)for(const[t,n]of e)!0!==n.wrapped||this._$AL.has(t)||void 0===this[t]||this.P(t,this[t],n)}let e=!1;const t=this._$AL;try{e=this.shouldUpdate(t),e?(this.willUpdate(t),this._$EO?.forEach((e=>e.hostUpdate?.())),this.update(t)):this._$EU()}catch(t){throw e=!1,this._$EU(),t}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach((e=>e.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Ej&&=this._$Ej.forEach((e=>this._$EC(e,this[e]))),this._$EU()}updated(e){}firstUpdated(e){}}M.elementStyles=[],M.shadowRootOptions={mode:"open"},M[b("elementProperties")]=new Map,M[b("finalized")]=new Map,y?.({ReactiveElement:M}),(f.reactiveElementVersions??=[]).push("2.0.4"); +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const k=globalThis,S=k.trustedTypes,E=S?S.createPolicy("lit-html",{createHTML:e=>e}):void 0,$="$lit$",A=`lit$${(Math.random()+"").slice(9)}$`,z="?"+A,I=`<${z}>`,T=document,j=()=>T.createComment(""),O=e=>null===e||"object"!=typeof e&&"function"!=typeof e,D=Array.isArray,R="[ \t\n\f\r]",P=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,L=/-->/g,N=/>/g,F=RegExp(`>|${R}(?:([^\\s"'>=/]+)(${R}*=${R}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),V=/'/g,H=/"/g,B=/^(?:script|style|textarea|title)$/i,q=(e=>(t,...n)=>({_$litType$:e,strings:t,values:n}))(1),U=Symbol.for("lit-noChange"),W=Symbol.for("lit-nothing"),Z=new WeakMap,Q=T.createTreeWalker(T,129);function G(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==E?E.createHTML(t):t}const Y=(e,t)=>{const n=e.length-1,a=[];let i,r=2===t?"":"",o=P;for(let t=0;t"===c[0]?(o=i??P,l=-1):void 0===c[1]?l=-2:(l=o.lastIndex-c[2].length,s=c[1],o=void 0===c[3]?F:'"'===c[3]?H:V):o===H||o===V?o=F:o===L||o===N?o=P:(o=F,i=void 0);const u=o===F&&e[t+1].startsWith("/>")?" ":"";r+=o===P?n+I:l>=0?(a.push(s),n.slice(0,l)+$+n.slice(l)+A+u):n+A+(-2===l?t:u)}return[G(e,r+(e[n]||"")+(2===t?"":"")),a]};class K{constructor({strings:e,_$litType$:t},n){let a;this.parts=[];let i=0,r=0;const o=e.length-1,s=this.parts,[c,l]=Y(e,t);if(this.el=K.createElement(c,n),Q.currentNode=this.el.content,2===t){const e=this.el.content.firstChild;e.replaceWith(...e.childNodes)}for(;null!==(a=Q.nextNode())&&s.length0){a.textContent=S?S.emptyScript:"";for(let n=0;nD(e)||"function"==typeof e?.[Symbol.iterator])(e)?this.k(e):this._(e)}S(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.S(e))}_(e){this._$AH!==W&&O(this._$AH)?this._$AA.nextSibling.data=e:this.T(T.createTextNode(e)),this._$AH=e}$(e){const{values:t,_$litType$:n}=e,a="number"==typeof n?this._$AC(e):(void 0===n.el&&(n.el=K.createElement(G(n.h,n.h[0]),this.options)),n);if(this._$AH?._$AD===a)this._$AH.p(t);else{const e=new J(a,this),n=e.u(this.options);e.p(t),this.T(n),this._$AH=e}}_$AC(e){let t=Z.get(e.strings);return void 0===t&&Z.set(e.strings,t=new K(e)),t}k(e){D(this._$AH)||(this._$AH=[],this._$AR());const t=this._$AH;let n,a=0;for(const i of e)a===t.length?t.push(n=new ee(this.S(j()),this.S(j()),this,this.options)):n=t[a],n._$AI(i),a++;a2||""!==n[0]||""!==n[1]?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=W}_$AI(e,t=this,n,a){const i=this.strings;let r=!1;if(void 0===i)e=X(this,e,t,0),r=!O(e)||e!==this._$AH&&e!==U,r&&(this._$AH=e);else{const a=e;let o,s;for(e=i[0],o=0;o{const a=n?.renderBefore??t;let i=a._$litPart$;if(void 0===i){const e=n?.renderBefore??null;a._$litPart$=i=new ee(t.insertBefore(j(),e),e,void 0,n??{})}return i._$AI(e),i})(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return U}};se._$litElement$=!0,se.finalized=!0,globalThis.litElementHydrateSupport?.({LitElement:se});const ce=globalThis.litElementPolyfillSupport;ce?.({LitElement:se}),(globalThis.litElementVersions??=[]).push("4.0.4"); +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const le=e=>(t,n)=>{void 0!==n?n.addInitializer((()=>{customElements.define(e,t)})):customElements.define(e,t)} +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */,de={attribute:!0,type:String,converter:w,reflect:!1,hasChanged:x},ue=(e=de,t,n)=>{const{kind:a,metadata:i}=n;let r=globalThis.litPropertyMetadata.get(i);if(void 0===r&&globalThis.litPropertyMetadata.set(i,r=new Map),r.set(n.name,e),"accessor"===a){const{name:a}=n;return{set(n){const i=t.get.call(this);t.set.call(this,n),this.requestUpdate(a,i,e)},init(t){return void 0!==t&&this.P(a,void 0,e),t}}}if("setter"===a){const{name:a}=n;return function(n){const i=this[a];t.call(this,n),this.requestUpdate(a,i,e)}}throw Error("Unsupported decorator location: "+a)};function he(e){return(t,n)=>"object"==typeof n?ue(e,t,n):((e,t,n)=>{const a=t.hasOwnProperty(n);return t.constructor.createProperty(n,a?{...e,wrapped:!0}:e),a?Object.getOwnPropertyDescriptor(t,n):void 0})(e,t,n) +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */}function pe(e){return he({...e,state:!0,attribute:!1})} +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const me={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},ge=e=>(...t)=>({_$litDirective$:e,values:t});let fe=class{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,n){this._$Ct=e,this._$AM=t,this._$Ci=n}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}}; +/** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const _e=ge(class extends fe{constructor(e){if(super(e),e.type!==me.ATTRIBUTE||"class"!==e.name||e.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(e){return" "+Object.keys(e).filter((t=>e[t])).join(" ")+" "}update(e,[t]){if(void 0===this.st){this.st=new Set,void 0!==e.strings&&(this.nt=new Set(e.strings.join(" ").split(/\s/).filter((e=>""!==e))));for(const e in t)t[e]&&!this.nt?.has(e)&&this.st.add(e);return this.render(t)}const n=e.element.classList;for(const e of this.st)e in t||(n.remove(e),this.st.delete(e));for(const e in t){const a=!!t[e];a===this.st.has(e)||this.nt?.has(e)||(a?(n.add(e),this.st.add(e)):(n.remove(e),this.st.delete(e)))}return U}}),ve=e=>e??W +/** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */,ye=e=>null===e||"object"!=typeof e&&"function"!=typeof e,be=e=>void 0===e.strings,we={},xe=(e,t=we)=>e._$AH=t +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */,Ce=(e,t)=>{const n=e._$AN;if(void 0===n)return!1;for(const e of n)e._$AO?.(t,!1),Ce(e,t);return!0},Me=e=>{let t,n;do{if(void 0===(t=e._$AM))break;n=t._$AN,n.delete(e),e=t}while(0===n?.size)},ke=e=>{for(let t;t=e._$AM;e=t){let n=t._$AN;if(void 0===n)t._$AN=n=new Set;else if(n.has(e))break;n.add(e),$e(t)}}; +/** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */function Se(e){void 0!==this._$AN?(Me(this),this._$AM=e,ke(this)):this._$AM=e}function Ee(e,t=!1,n=0){const a=this._$AH,i=this._$AN;if(void 0!==i&&0!==i.size)if(t)if(Array.isArray(a))for(let e=n;e{e.type==me.CHILD&&(e._$AP??=Ee,e._$AQ??=Se)};class Ae extends fe{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,t,n){super._$AT(e,t,n),ke(this),this.isConnected=e._$AU}_$AO(e,t=!0){e!==this.isConnected&&(this.isConnected=e,e?this.reconnected?.():this.disconnected?.()),t&&(Ce(this,e),Me(this))}setValue(e){if(be(this._$Ct))this._$Ct._$AI(e,this);else{const t=[...this._$Ct._$AH];t[this._$Ci]=e,this._$Ct._$AI(t,this,0)}}disconnected(){}reconnected(){}} +/** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const ze=()=>new Ie;let Ie=class{};const Te=new WeakMap,je=ge(class extends Ae{render(e){return W}update(e,[t]){const n=t!==this.Y;return n&&void 0!==this.Y&&this.rt(void 0),(n||this.lt!==this.ct)&&(this.Y=t,this.ht=e.options?.host,this.rt(this.ct=e.element)),W}rt(e){if("function"==typeof this.Y){const t=this.ht??globalThis;let n=Te.get(t);void 0===n&&(n=new WeakMap,Te.set(t,n)),void 0!==n.get(this.Y)&&this.Y.call(this.ht,void 0),n.set(this.Y,e),void 0!==e&&this.Y.call(this.ht,e)}else this.Y.value=e}get lt(){return"function"==typeof this.Y?Te.get(this.ht??globalThis)?.get(this.Y):this.Y?.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}}),Oe="important",De=" !"+Oe,Re=ge(class extends fe{constructor(e){if(super(e),e.type!==me.ATTRIBUTE||"style"!==e.name||e.strings?.length>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(e){return Object.keys(e).reduce(((t,n)=>{const a=e[n];return null==a?t:t+`${n=n.includes("-")?n:n.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${a};`}),"")}update(e,[t]){const{style:n}=e.element;if(void 0===this.ft)return this.ft=new Set(Object.keys(t)),this.render(t);for(const e of this.ft)null==t[e]&&(this.ft.delete(e),e.includes("-")?n.removeProperty(e):n[e]=null);for(const e in t){const a=t[e];if(null!=a){this.ft.add(e);const t="string"==typeof a&&a.endsWith(De);e.includes("-")||t?n.setProperty(e,t?a.slice(0,-11):a,t?Oe:""):n[e]=a}}return U}}); +/** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */function Pe(e,t,n,a=20,i=0){let r=[];if(i>=a)return r;const o=e=>{const r=e.assignedNodes().filter((e=>1===e.nodeType));return r.length>0?Pe(r[0].parentElement,t,n,a,i+1):[]},s=Array.from(e.children||[]);for(const e of s)t(e)||(n(e)&&r.push(e),null!=e.shadowRoot?r.push(...Pe(e.shadowRoot,t,n,a,i+1)):"SLOT"===e.tagName?r.push(...o(e)):r.push(...Pe(e,t,n,a,i+1)));return r}function Le(e){return e.hasAttribute("hidden")||e.hasAttribute("aria-hidden")&&"false"!==e.getAttribute("aria-hidden")||"none"===e.style.display||"0"===e.style.opacity||"hidden"===e.style.visibility||"collapse"===e.style.visibility}function Ne(e){return"-1"!==e.getAttribute("tabindex")&&!Le(e)&&!function(e){return e.hasAttribute("disabled")||e.hasAttribute("aria-disabled")&&"false"!==e.getAttribute("aria-disabled")}(e)&&(e.hasAttribute("tabindex")||(e instanceof HTMLAnchorElement||e instanceof HTMLAreaElement)&&e.hasAttribute("href")||e instanceof HTMLButtonElement||e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement||e instanceof HTMLIFrameElement)}const Fe=new Map;const Ve=document.createElement("template");Ve.innerHTML='\n\t
\n\t
\n\t\n\t
\n';class He extends HTMLElement{constructor(){super(),this.debounceId=Math.random().toString(),this._focused=!1;const e=this.attachShadow({mode:"open"});e.appendChild(Ve.content.cloneNode(!0)),this.$backup=e.querySelector("#backup"),this.$start=e.querySelector("#start"),this.$end=e.querySelector("#end"),this.focusLastElement=this.focusLastElement.bind(this),this.focusFirstElement=this.focusFirstElement.bind(this),this.onFocusIn=this.onFocusIn.bind(this),this.onFocusOut=this.onFocusOut.bind(this)}static get observedAttributes(){return["inactive"]}get inactive(){return this.hasAttribute("inactive")}set inactive(e){e?this.setAttribute("inactive",""):this.removeAttribute("inactive")}get focused(){return this._focused}connectedCallback(){this.$start.addEventListener("focus",this.focusLastElement),this.$end.addEventListener("focus",this.focusFirstElement),this.addEventListener("focusin",this.onFocusIn),this.addEventListener("focusout",this.onFocusOut),this.render()}disconnectedCallback(){this.$start.removeEventListener("focus",this.focusLastElement),this.$end.removeEventListener("focus",this.focusFirstElement),this.removeEventListener("focusin",this.onFocusIn),this.removeEventListener("focusout",this.onFocusOut)}attributeChangedCallback(){this.render()}focusFirstElement(){this.trapFocus()}focusLastElement(){this.trapFocus(!0)}getFocusableElements(){return Pe(this,Le,Ne)}trapFocus(e){if(this.inactive)return;let t=this.getFocusableElements();t.length>0?(e?t[t.length-1].focus():t[0].focus(),this.$backup.setAttribute("tabindex","-1")):(this.$backup.setAttribute("tabindex","0"),this.$backup.focus())}onFocusIn(){this.updateFocused(!0)}onFocusOut(){this.updateFocused(!1)}updateFocused(e){!function(e,t,n){const a=Fe.get(n);null!=a&&window.clearTimeout(a),Fe.set(n,window.setTimeout((()=>{e(),Fe.delete(n)}),t))}((()=>{this.focused!==e&&(this._focused=e,this.render())}),0,this.debounceId)}render(){this.$start.setAttribute("tabindex",!this.focused||this.inactive?"-1":"0"),this.$end.setAttribute("tabindex",!this.focused||this.inactive?"-1":"0"),this.focused?this.setAttribute("focused",""):this.removeAttribute("focused")}}function Be(e){return Number(e.getAttribute("data-dialog-count"))||0}function qe(e,t){e.setAttribute("data-dialog-count",t.toString())}function Ue(e=document.activeElement){return null!=e&&null!=e.shadowRoot&&null!=e.shadowRoot.activeElement?Ue(e.shadowRoot.activeElement):e}window.customElements.define("focus-trap",He);const We=document.createElement("template");We.innerHTML='\n \n
\n \n \n \n';class Ze extends HTMLElement{constructor(){super(),this.$scrollContainer=document.documentElement,this.$previousActiveElement=null;const e=this.attachShadow({mode:"open"});e.appendChild(We.content.cloneNode(!0)),this.$dialog=e.querySelector("#dialog"),this.$backdrop=e.querySelector("#backdrop"),this.onBackdropClick=this.onBackdropClick.bind(this),this.onKeyDown=this.onKeyDown.bind(this),this.setAttribute("aria-modal","true"),this.$dialog.setAttribute("role","alertdialog")}static get observedAttributes(){return["open","center"]}get open(){return this.hasAttribute("open")}set open(e){e?this.setAttribute("open",""):this.removeAttribute("open")}get center(){return this.hasAttribute("center")}set center(e){e?this.setAttribute("center",""):this.removeAttribute("center")}connectedCallback(){this.$backdrop.addEventListener("click",this.onBackdropClick)}disconnectedCallback(){this.$backdrop.removeEventListener("click",this.onBackdropClick),this.open&&this.didClose()}show(){this.open=!0}close(e){this.result=e,this.open=!1}onBackdropClick(){this.assertClosing()&&this.close()}onKeyDown(e){if("Escape"===e.code)this.assertClosing()&&(this.close(),e.stopImmediatePropagation())}assertClosing(){return this.dispatchEvent(new CustomEvent("closing",{cancelable:!0}))}didOpen(){this.$previousActiveElement=Ue(document.activeElement),requestAnimationFrame((()=>{this.$dialog.focusFirstElement()})),this.tabIndex=0,this.$scrollContainer.style.overflow="hidden",this.addEventListener("keydown",this.onKeyDown,{capture:!0,passive:!0}),qe(this.$scrollContainer,Be(this.$scrollContainer)+1),this.dispatchEvent(new CustomEvent("open"))}didClose(){this.removeEventListener("keydown",this.onKeyDown,{capture:!0}),qe(this.$scrollContainer,Math.max(0,Be(this.$scrollContainer)-1)),Be(this.$scrollContainer)<=0&&(this.$scrollContainer.style.overflow=""),this.tabIndex=-1,null!=this.$previousActiveElement&&(this.$previousActiveElement.focus(),this.$previousActiveElement=null),this.dispatchEvent(new CustomEvent("close",{detail:this.result}))}attributeChangedCallback(e,t,n){if("open"===e)this.open?this.didOpen():this.didClose()}}var Qe,Ge;function Ye(e){return e.substr(0,e.indexOf("."))}customElements.define("web-dialog",Ze),function(e){e.language="language",e.system="system",e.comma_decimal="comma_decimal",e.decimal_comma="decimal_comma",e.space_comma="space_comma",e.none="none"}(Qe||(Qe={})),function(e){e.language="language",e.system="system",e.am_pm="12",e.twenty_four="24"}(Ge||(Ge={}));var Ke,Xe,Je=["closed","locked","off"],et=function(e,t,n,a){a=a||{},n=null==n?{}:n;var i=new Event(t,{bubbles:void 0===a.bubbles||a.bubbles,cancelable:Boolean(a.cancelable),composed:void 0===a.composed||a.composed});return i.detail=n,e.dispatchEvent(i),i},tt=function(e){et(window,"haptic",e)},nt=function(e,t){return function(e,t,n){void 0===n&&(n=!0);var a,i=Ye(t),r="group"===i?"homeassistant":i;switch(i){case"lock":a=n?"unlock":"lock";break;case"cover":a=n?"open_cover":"close_cover";break;default:a=n?"turn_on":"turn_off"}return e.callService(r,a,{entity_id:t})}(e,t,Je.includes(e.states[t].state))},at=function(e,t,n,a){if(a||(a={action:"more-info"}),!a.confirmation||a.confirmation.exemptions&&a.confirmation.exemptions.some((function(e){return e.user===t.user.id}))||(tt("warning"),confirm(a.confirmation.text||"Are you sure you want to "+a.action+"?")))switch(a.action){case"more-info":(n.entity||n.camera_image)&&et(e,"hass-more-info",{entityId:n.entity?n.entity:n.camera_image});break;case"navigate":a.navigation_path&&function(e,t,n){void 0===n&&(n=!1),n?history.replaceState(null,"",t):history.pushState(null,"",t),et(window,"location-changed",{replace:n})}(0,a.navigation_path);break;case"url":a.url_path&&window.open(a.url_path);break;case"toggle":n.entity&&(nt(t,n.entity),tt("success"));break;case"perform-action":if(!a.perform_action)return void tt("failure");var i=a.perform_action.split(".",2);t.callService(i[0],i[1],a.data,a.target),tt("success");break;case"call-service":if(!a.service)return void tt("failure");var r=a.service.split(".",2);t.callService(r[0],r[1],a.data,a.target),tt("success");break;case"fire-dom-event":et(e,"ll-custom",a)}};!function(e){e.assertEqual=e=>e,e.assertIs=function(e){},e.assertNever=function(e){throw new Error},e.arrayToEnum=e=>{const t={};for(const n of e)t[n]=n;return t},e.getValidEnumValues=t=>{const n=e.objectKeys(t).filter((e=>"number"!=typeof t[t[e]])),a={};for(const e of n)a[e]=t[e];return e.objectValues(a)},e.objectValues=t=>e.objectKeys(t).map((function(e){return t[e]})),e.objectKeys="function"==typeof Object.keys?e=>Object.keys(e):e=>{const t=[];for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(const n of e)if(t(n))return n},e.isInteger="function"==typeof Number.isInteger?e=>Number.isInteger(e):e=>"number"==typeof e&&isFinite(e)&&Math.floor(e)===e,e.joinValues=function(e,t=" | "){return e.map((e=>"string"==typeof e?`'${e}'`:e)).join(t)},e.jsonStringifyReplacer=(e,t)=>"bigint"==typeof t?t.toString():t}(Ke||(Ke={})),function(e){e.mergeShapes=(e,t)=>({...e,...t})}(Xe||(Xe={}));const it=Ke.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),rt=e=>{switch(typeof e){case"undefined":return it.undefined;case"string":return it.string;case"number":return isNaN(e)?it.nan:it.number;case"boolean":return it.boolean;case"function":return it.function;case"bigint":return it.bigint;case"symbol":return it.symbol;case"object":return Array.isArray(e)?it.array:null===e?it.null:e.then&&"function"==typeof e.then&&e.catch&&"function"==typeof e.catch?it.promise:"undefined"!=typeof Map&&e instanceof Map?it.map:"undefined"!=typeof Set&&e instanceof Set?it.set:"undefined"!=typeof Date&&e instanceof Date?it.date:it.object;default:return it.unknown}},ot=Ke.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class st extends Error{constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}get errors(){return this.issues}format(e){const t=e||function(e){return e.message},n={_errors:[]},a=e=>{for(const i of e.issues)if("invalid_union"===i.code)i.unionErrors.map(a);else if("invalid_return_type"===i.code)a(i.returnTypeError);else if("invalid_arguments"===i.code)a(i.argumentsError);else if(0===i.path.length)n._errors.push(t(i));else{let e=n,a=0;for(;ae.message)){const t={},n=[];for(const a of this.issues)a.path.length>0?(t[a.path[0]]=t[a.path[0]]||[],t[a.path[0]].push(e(a))):n.push(e(a));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}st.create=e=>new st(e);const ct=(e,t)=>{let n;switch(e.code){case ot.invalid_type:n=e.received===it.undefined?"Required":`Expected ${e.expected}, received ${e.received}`;break;case ot.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,Ke.jsonStringifyReplacer)}`;break;case ot.unrecognized_keys:n=`Unrecognized key(s) in object: ${Ke.joinValues(e.keys,", ")}`;break;case ot.invalid_union:n="Invalid input";break;case ot.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Ke.joinValues(e.options)}`;break;case ot.invalid_enum_value:n=`Invalid enum value. Expected ${Ke.joinValues(e.options)}, received '${e.received}'`;break;case ot.invalid_arguments:n="Invalid function arguments";break;case ot.invalid_return_type:n="Invalid function return type";break;case ot.invalid_date:n="Invalid date";break;case ot.invalid_string:"object"==typeof e.validation?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,"number"==typeof e.validation.position&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:Ke.assertNever(e.validation):n="regex"!==e.validation?`Invalid ${e.validation}`:"Invalid";break;case ot.too_small:n="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:"date"===e.type?`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:"Invalid input";break;case ot.too_big:n="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"bigint"===e.type?`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"date"===e.type?`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:"Invalid input";break;case ot.custom:n="Invalid input";break;case ot.invalid_intersection_types:n="Intersection results could not be merged";break;case ot.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case ot.not_finite:n="Number must be finite";break;default:n=t.defaultError,Ke.assertNever(e)}return{message:n}};let lt=ct;function dt(){return lt}const ut=e=>{const{data:t,path:n,errorMaps:a,issueData:i}=e,r=[...n,...i.path||[]],o={...i,path:r};if(void 0!==i.message)return{...i,path:r,message:i.message};let s="";const c=a.filter((e=>!!e)).slice().reverse();for(const e of c)s=e(o,{data:t,defaultError:s}).message;return{...i,path:r,message:s}};function ht(e,t){const n=dt(),a=ut({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===ct?void 0:ct].filter((e=>!!e))});e.common.issues.push(a)}class pt{constructor(){this.value="valid"}dirty(){"valid"===this.value&&(this.value="dirty")}abort(){"aborted"!==this.value&&(this.value="aborted")}static mergeArray(e,t){const n=[];for(const a of t){if("aborted"===a.status)return mt;"dirty"===a.status&&e.dirty(),n.push(a.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,t){const n=[];for(const e of t){const t=await e.key,a=await e.value;n.push({key:t,value:a})}return pt.mergeObjectSync(e,n)}static mergeObjectSync(e,t){const n={};for(const a of t){const{key:t,value:i}=a;if("aborted"===t.status)return mt;if("aborted"===i.status)return mt;"dirty"===t.status&&e.dirty(),"dirty"===i.status&&e.dirty(),"__proto__"===t.value||void 0===i.value&&!a.alwaysSet||(n[t.value]=i.value)}return{status:e.value,value:n}}}const mt=Object.freeze({status:"aborted"}),gt=e=>({status:"dirty",value:e}),ft=e=>({status:"valid",value:e}),_t=e=>"aborted"===e.status,vt=e=>"dirty"===e.status,yt=e=>"valid"===e.status,bt=e=>"undefined"!=typeof Promise&&e instanceof Promise;function wt(e,t,n,a){if("a"===n&&!a)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?a:"a"===n?a.call(e):a?a.value:t.get(e)}function xt(e,t,n,a,i){if("m"===a)throw new TypeError("Private method is not writable");if("a"===a&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===a?i.call(e,n):i?i.value=n:t.set(e,n),n}var Ct,Mt,kt;"function"==typeof SuppressedError&&SuppressedError,function(e){e.errToObj=e=>"string"==typeof e?{message:e}:e||{},e.toString=e=>"string"==typeof e?e:null==e?void 0:e.message}(Ct||(Ct={}));class St{constructor(e,t,n,a){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=a}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const Et=(e,t)=>{if(yt(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new st(e.common.issues);return this._error=t,this._error}}};function $t(e){if(!e)return{};const{errorMap:t,invalid_type_error:n,required_error:a,description:i}=e;if(t&&(n||a))throw new Error('Can\'t use "invalid_type_error" or "required_error" in conjunction with custom error map.');if(t)return{errorMap:t,description:i};return{errorMap:(t,i)=>{var r,o;const{message:s}=e;return"invalid_enum_value"===t.code?{message:null!=s?s:i.defaultError}:void 0===i.data?{message:null!==(r=null!=s?s:a)&&void 0!==r?r:i.defaultError}:"invalid_type"!==t.code?{message:i.defaultError}:{message:null!==(o=null!=s?s:n)&&void 0!==o?o:i.defaultError}},description:i}}class At{constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(e){return rt(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:rt(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new pt,ctx:{common:e.parent.common,data:e.data,parsedType:rt(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(bt(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){var n;const a={common:{issues:[],async:null!==(n=null==t?void 0:t.async)&&void 0!==n&&n,contextualErrorMap:null==t?void 0:t.errorMap},path:(null==t?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:rt(e)},i=this._parseSync({data:e,path:a.path,parent:a});return Et(a,i)}async parseAsync(e,t){const n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){const n={common:{issues:[],contextualErrorMap:null==t?void 0:t.errorMap,async:!0},path:(null==t?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:rt(e)},a=this._parse({data:e,path:n.path,parent:n}),i=await(bt(a)?a:Promise.resolve(a));return Et(n,i)}refine(e,t){const n=e=>"string"==typeof t||void 0===t?{message:t}:"function"==typeof t?t(e):t;return this._refinement(((t,a)=>{const i=e(t),r=()=>a.addIssue({code:ot.custom,...n(t)});return"undefined"!=typeof Promise&&i instanceof Promise?i.then((e=>!!e||(r(),!1))):!!i||(r(),!1)}))}refinement(e,t){return this._refinement(((n,a)=>!!e(n)||(a.addIssue("function"==typeof t?t(n,a):t),!1)))}_refinement(e){return new kn({schema:this,typeName:Pn.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return Sn.create(this,this._def)}nullable(){return En.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return on.create(this,this._def)}promise(){return Mn.create(this,this._def)}or(e){return ln.create([this,e],this._def)}and(e){return pn.create(this,e,this._def)}transform(e){return new kn({...$t(this._def),schema:this,typeName:Pn.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t="function"==typeof e?e:()=>e;return new $n({...$t(this._def),innerType:this,defaultValue:t,typeName:Pn.ZodDefault})}brand(){return new Tn({typeName:Pn.ZodBranded,type:this,...$t(this._def)})}catch(e){const t="function"==typeof e?e:()=>e;return new An({...$t(this._def),innerType:this,catchValue:t,typeName:Pn.ZodCatch})}describe(e){return new(0,this.constructor)({...this._def,description:e})}pipe(e){return jn.create(this,e)}readonly(){return On.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const zt=/^c[^\s-]{8,}$/i,It=/^[0-9a-z]+$/,Tt=/^[0-9A-HJKMNP-TV-Z]{26}$/,jt=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Ot=/^[a-z0-9_-]{21}$/i,Dt=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Rt=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;let Pt;const Lt=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Nt=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,Ft=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Vt="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Ht=new RegExp(`^${Vt}$`);function Bt(e){let t="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return e.precision?t=`${t}\\.\\d{${e.precision}}`:null==e.precision&&(t=`${t}(\\.\\d+)?`),t}function qt(e){let t=`${Vt}T${Bt(e)}`;const n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function Ut(e,t){return!("v4"!==t&&t||!Lt.test(e))||!("v6"!==t&&t||!Nt.test(e))}class Wt extends At{_parse(e){this._def.coerce&&(e.data=String(e.data));if(this._getType(e)!==it.string){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.string,received:t.parsedType}),mt}const t=new pt;let n;for(const a of this._def.checks)if("min"===a.kind)e.data.lengtha.value&&(n=this._getOrReturnCtx(e,n),ht(n,{code:ot.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),t.dirty());else if("length"===a.kind){const i=e.data.length>a.value,r=e.data.lengthe.test(t)),{validation:t,code:ot.invalid_string,...Ct.errToObj(n)})}_addCheck(e){return new Wt({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...Ct.errToObj(e)})}url(e){return this._addCheck({kind:"url",...Ct.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...Ct.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...Ct.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...Ct.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...Ct.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...Ct.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...Ct.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...Ct.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...Ct.errToObj(e)})}datetime(e){var t,n;return"string"==typeof e?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:void 0===(null==e?void 0:e.precision)?null:null==e?void 0:e.precision,offset:null!==(t=null==e?void 0:e.offset)&&void 0!==t&&t,local:null!==(n=null==e?void 0:e.local)&&void 0!==n&&n,...Ct.errToObj(null==e?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return"string"==typeof e?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:void 0===(null==e?void 0:e.precision)?null:null==e?void 0:e.precision,...Ct.errToObj(null==e?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...Ct.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...Ct.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:null==t?void 0:t.position,...Ct.errToObj(null==t?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...Ct.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...Ct.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...Ct.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...Ct.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...Ct.errToObj(t)})}nonempty(e){return this.min(1,Ct.errToObj(e))}trim(){return new Wt({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Wt({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Wt({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((e=>"datetime"===e.kind))}get isDate(){return!!this._def.checks.find((e=>"date"===e.kind))}get isTime(){return!!this._def.checks.find((e=>"time"===e.kind))}get isDuration(){return!!this._def.checks.find((e=>"duration"===e.kind))}get isEmail(){return!!this._def.checks.find((e=>"email"===e.kind))}get isURL(){return!!this._def.checks.find((e=>"url"===e.kind))}get isEmoji(){return!!this._def.checks.find((e=>"emoji"===e.kind))}get isUUID(){return!!this._def.checks.find((e=>"uuid"===e.kind))}get isNANOID(){return!!this._def.checks.find((e=>"nanoid"===e.kind))}get isCUID(){return!!this._def.checks.find((e=>"cuid"===e.kind))}get isCUID2(){return!!this._def.checks.find((e=>"cuid2"===e.kind))}get isULID(){return!!this._def.checks.find((e=>"ulid"===e.kind))}get isIP(){return!!this._def.checks.find((e=>"ip"===e.kind))}get isBase64(){return!!this._def.checks.find((e=>"base64"===e.kind))}get minLength(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.valuea?n:a;return parseInt(e.toFixed(i).replace(".",""))%parseInt(t.toFixed(i).replace(".",""))/Math.pow(10,i)}Wt.create=e=>{var t;return new Wt({checks:[],typeName:Pn.ZodString,coerce:null!==(t=null==e?void 0:e.coerce)&&void 0!==t&&t,...$t(e)})};class Qt extends At{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){this._def.coerce&&(e.data=Number(e.data));if(this._getType(e)!==it.number){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.number,received:t.parsedType}),mt}let t;const n=new pt;for(const a of this._def.checks)if("int"===a.kind)Ke.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.invalid_type,expected:"integer",received:"float",message:a.message}),n.dirty());else if("min"===a.kind){(a.inclusive?e.dataa.value:e.data>=a.value)&&(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),n.dirty())}else"multipleOf"===a.kind?0!==Zt(e.data,a.value)&&(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.not_multiple_of,multipleOf:a.value,message:a.message}),n.dirty()):"finite"===a.kind?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.not_finite,message:a.message}),n.dirty()):Ke.assertNever(a);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,Ct.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Ct.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Ct.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Ct.toString(t))}setLimit(e,t,n,a){return new Qt({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Ct.toString(a)}]})}_addCheck(e){return new Qt({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:Ct.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:Ct.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:Ct.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:Ct.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:Ct.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Ct.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:Ct.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Ct.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Ct.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value"int"===e.kind||"multipleOf"===e.kind&&Ke.isInteger(e.value)))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if("finite"===n.kind||"int"===n.kind||"multipleOf"===n.kind)return!0;"min"===n.kind?(null===t||n.value>t)&&(t=n.value):"max"===n.kind&&(null===e||n.valuenew Qt({checks:[],typeName:Pn.ZodNumber,coerce:(null==e?void 0:e.coerce)||!1,...$t(e)});class Gt extends At{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){this._def.coerce&&(e.data=BigInt(e.data));if(this._getType(e)!==it.bigint){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.bigint,received:t.parsedType}),mt}let t;const n=new pt;for(const a of this._def.checks)if("min"===a.kind){(a.inclusive?e.dataa.value:e.data>=a.value)&&(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),n.dirty())}else"multipleOf"===a.kind?e.data%a.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.not_multiple_of,multipleOf:a.value,message:a.message}),n.dirty()):Ke.assertNever(a);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,Ct.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Ct.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Ct.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Ct.toString(t))}setLimit(e,t,n,a){return new Gt({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Ct.toString(a)}]})}_addCheck(e){return new Gt({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:Ct.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:Ct.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:Ct.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:Ct.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Ct.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value{var t;return new Gt({checks:[],typeName:Pn.ZodBigInt,coerce:null!==(t=null==e?void 0:e.coerce)&&void 0!==t&&t,...$t(e)})};class Yt extends At{_parse(e){this._def.coerce&&(e.data=Boolean(e.data));if(this._getType(e)!==it.boolean){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.boolean,received:t.parsedType}),mt}return ft(e.data)}}Yt.create=e=>new Yt({typeName:Pn.ZodBoolean,coerce:(null==e?void 0:e.coerce)||!1,...$t(e)});class Kt extends At{_parse(e){this._def.coerce&&(e.data=new Date(e.data));if(this._getType(e)!==it.date){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.date,received:t.parsedType}),mt}if(isNaN(e.data.getTime())){return ht(this._getOrReturnCtx(e),{code:ot.invalid_date}),mt}const t=new pt;let n;for(const a of this._def.checks)"min"===a.kind?e.data.getTime()a.value&&(n=this._getOrReturnCtx(e,n),ht(n,{code:ot.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),t.dirty()):Ke.assertNever(a);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Kt({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:Ct.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:Ct.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return null!=e?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.valuenew Kt({checks:[],coerce:(null==e?void 0:e.coerce)||!1,typeName:Pn.ZodDate,...$t(e)});class Xt extends At{_parse(e){if(this._getType(e)!==it.symbol){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.symbol,received:t.parsedType}),mt}return ft(e.data)}}Xt.create=e=>new Xt({typeName:Pn.ZodSymbol,...$t(e)});class Jt extends At{_parse(e){if(this._getType(e)!==it.undefined){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.undefined,received:t.parsedType}),mt}return ft(e.data)}}Jt.create=e=>new Jt({typeName:Pn.ZodUndefined,...$t(e)});class en extends At{_parse(e){if(this._getType(e)!==it.null){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.null,received:t.parsedType}),mt}return ft(e.data)}}en.create=e=>new en({typeName:Pn.ZodNull,...$t(e)});class tn extends At{constructor(){super(...arguments),this._any=!0}_parse(e){return ft(e.data)}}tn.create=e=>new tn({typeName:Pn.ZodAny,...$t(e)});class nn extends At{constructor(){super(...arguments),this._unknown=!0}_parse(e){return ft(e.data)}}nn.create=e=>new nn({typeName:Pn.ZodUnknown,...$t(e)});class an extends At{_parse(e){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.never,received:t.parsedType}),mt}}an.create=e=>new an({typeName:Pn.ZodNever,...$t(e)});class rn extends At{_parse(e){if(this._getType(e)!==it.undefined){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.void,received:t.parsedType}),mt}return ft(e.data)}}rn.create=e=>new rn({typeName:Pn.ZodVoid,...$t(e)});class on extends At{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),a=this._def;if(t.parsedType!==it.array)return ht(t,{code:ot.invalid_type,expected:it.array,received:t.parsedType}),mt;if(null!==a.exactLength){const e=t.data.length>a.exactLength.value,i=t.data.lengtha.maxLength.value&&(ht(t,{code:ot.too_big,maximum:a.maxLength.value,type:"array",inclusive:!0,exact:!1,message:a.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map(((e,n)=>a.type._parseAsync(new St(t,e,t.path,n))))).then((e=>pt.mergeArray(n,e)));const i=[...t.data].map(((e,n)=>a.type._parseSync(new St(t,e,t.path,n))));return pt.mergeArray(n,i)}get element(){return this._def.type}min(e,t){return new on({...this._def,minLength:{value:e,message:Ct.toString(t)}})}max(e,t){return new on({...this._def,maxLength:{value:e,message:Ct.toString(t)}})}length(e,t){return new on({...this._def,exactLength:{value:e,message:Ct.toString(t)}})}nonempty(e){return this.min(1,e)}}function sn(e){if(e instanceof cn){const t={};for(const n in e.shape){const a=e.shape[n];t[n]=Sn.create(sn(a))}return new cn({...e._def,shape:()=>t})}return e instanceof on?new on({...e._def,type:sn(e.element)}):e instanceof Sn?Sn.create(sn(e.unwrap())):e instanceof En?En.create(sn(e.unwrap())):e instanceof mn?mn.create(e.items.map((e=>sn(e)))):e}on.create=(e,t)=>new on({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Pn.ZodArray,...$t(t)});class cn extends At{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(null!==this._cached)return this._cached;const e=this._def.shape(),t=Ke.objectKeys(e);return this._cached={shape:e,keys:t}}_parse(e){if(this._getType(e)!==it.object){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.object,received:t.parsedType}),mt}const{status:t,ctx:n}=this._processInputParams(e),{shape:a,keys:i}=this._getCached(),r=[];if(!(this._def.catchall instanceof an&&"strip"===this._def.unknownKeys))for(const e in n.data)i.includes(e)||r.push(e);const o=[];for(const e of i){const t=a[e],i=n.data[e];o.push({key:{status:"valid",value:e},value:t._parse(new St(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof an){const e=this._def.unknownKeys;if("passthrough"===e)for(const e of r)o.push({key:{status:"valid",value:e},value:{status:"valid",value:n.data[e]}});else if("strict"===e)r.length>0&&(ht(n,{code:ot.unrecognized_keys,keys:r}),t.dirty());else if("strip"!==e)throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const e=this._def.catchall;for(const t of r){const a=n.data[t];o.push({key:{status:"valid",value:t},value:e._parse(new St(n,a,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then((async()=>{const e=[];for(const t of o){const n=await t.key,a=await t.value;e.push({key:n,value:a,alwaysSet:t.alwaysSet})}return e})).then((e=>pt.mergeObjectSync(t,e))):pt.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(e){return Ct.errToObj,new cn({...this._def,unknownKeys:"strict",...void 0!==e?{errorMap:(t,n)=>{var a,i,r,o;const s=null!==(r=null===(i=(a=this._def).errorMap)||void 0===i?void 0:i.call(a,t,n).message)&&void 0!==r?r:n.defaultError;return"unrecognized_keys"===t.code?{message:null!==(o=Ct.errToObj(e).message)&&void 0!==o?o:s}:{message:s}}}:{}})}strip(){return new cn({...this._def,unknownKeys:"strip"})}passthrough(){return new cn({...this._def,unknownKeys:"passthrough"})}extend(e){return new cn({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new cn({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Pn.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new cn({...this._def,catchall:e})}pick(e){const t={};return Ke.objectKeys(e).forEach((n=>{e[n]&&this.shape[n]&&(t[n]=this.shape[n])})),new cn({...this._def,shape:()=>t})}omit(e){const t={};return Ke.objectKeys(this.shape).forEach((n=>{e[n]||(t[n]=this.shape[n])})),new cn({...this._def,shape:()=>t})}deepPartial(){return sn(this)}partial(e){const t={};return Ke.objectKeys(this.shape).forEach((n=>{const a=this.shape[n];e&&!e[n]?t[n]=a:t[n]=a.optional()})),new cn({...this._def,shape:()=>t})}required(e){const t={};return Ke.objectKeys(this.shape).forEach((n=>{if(e&&!e[n])t[n]=this.shape[n];else{let e=this.shape[n];for(;e instanceof Sn;)e=e._def.innerType;t[n]=e}})),new cn({...this._def,shape:()=>t})}keyof(){return wn(Ke.objectKeys(this.shape))}}cn.create=(e,t)=>new cn({shape:()=>e,unknownKeys:"strip",catchall:an.create(),typeName:Pn.ZodObject,...$t(t)}),cn.strictCreate=(e,t)=>new cn({shape:()=>e,unknownKeys:"strict",catchall:an.create(),typeName:Pn.ZodObject,...$t(t)}),cn.lazycreate=(e,t)=>new cn({shape:e,unknownKeys:"strip",catchall:an.create(),typeName:Pn.ZodObject,...$t(t)});class ln extends At{_parse(e){const{ctx:t}=this._processInputParams(e),n=this._def.options;if(t.common.async)return Promise.all(n.map((async e=>{const n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}}))).then((function(e){for(const t of e)if("valid"===t.result.status)return t.result;for(const n of e)if("dirty"===n.result.status)return t.common.issues.push(...n.ctx.common.issues),n.result;const n=e.map((e=>new st(e.ctx.common.issues)));return ht(t,{code:ot.invalid_union,unionErrors:n}),mt}));{let e;const a=[];for(const i of n){const n={...t,common:{...t.common,issues:[]},parent:null},r=i._parseSync({data:t.data,path:t.path,parent:n});if("valid"===r.status)return r;"dirty"!==r.status||e||(e={result:r,ctx:n}),n.common.issues.length&&a.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;const i=a.map((e=>new st(e)));return ht(t,{code:ot.invalid_union,unionErrors:i}),mt}}get options(){return this._def.options}}ln.create=(e,t)=>new ln({options:e,typeName:Pn.ZodUnion,...$t(t)});const dn=e=>e instanceof yn?dn(e.schema):e instanceof kn?dn(e.innerType()):e instanceof bn?[e.value]:e instanceof xn?e.options:e instanceof Cn?Ke.objectValues(e.enum):e instanceof $n?dn(e._def.innerType):e instanceof Jt?[void 0]:e instanceof en?[null]:e instanceof Sn?[void 0,...dn(e.unwrap())]:e instanceof En?[null,...dn(e.unwrap())]:e instanceof Tn||e instanceof On?dn(e.unwrap()):e instanceof An?dn(e._def.innerType):[];class un extends At{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==it.object)return ht(t,{code:ot.invalid_type,expected:it.object,received:t.parsedType}),mt;const n=this.discriminator,a=t.data[n],i=this.optionsMap.get(a);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(ht(t,{code:ot.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),mt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,n){const a=new Map;for(const n of t){const t=dn(n.shape[e]);if(!t.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(const i of t){if(a.has(i))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(i)}`);a.set(i,n)}}return new un({typeName:Pn.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:a,...$t(n)})}}function hn(e,t){const n=rt(e),a=rt(t);if(e===t)return{valid:!0,data:e};if(n===it.object&&a===it.object){const n=Ke.objectKeys(t),a=Ke.objectKeys(e).filter((e=>-1!==n.indexOf(e))),i={...e,...t};for(const n of a){const a=hn(e[n],t[n]);if(!a.valid)return{valid:!1};i[n]=a.data}return{valid:!0,data:i}}if(n===it.array&&a===it.array){if(e.length!==t.length)return{valid:!1};const n=[];for(let a=0;a{if(_t(e)||_t(a))return mt;const i=hn(e.value,a.value);return i.valid?((vt(e)||vt(a))&&t.dirty(),{status:t.value,value:i.data}):(ht(n,{code:ot.invalid_intersection_types}),mt)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then((([e,t])=>a(e,t))):a(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}pn.create=(e,t,n)=>new pn({left:e,right:t,typeName:Pn.ZodIntersection,...$t(n)});class mn extends At{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==it.array)return ht(n,{code:ot.invalid_type,expected:it.array,received:n.parsedType}),mt;if(n.data.lengththis._def.items.length&&(ht(n,{code:ot.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const a=[...n.data].map(((e,t)=>{const a=this._def.items[t]||this._def.rest;return a?a._parse(new St(n,e,n.path,t)):null})).filter((e=>!!e));return n.common.async?Promise.all(a).then((e=>pt.mergeArray(t,e))):pt.mergeArray(t,a)}get items(){return this._def.items}rest(e){return new mn({...this._def,rest:e})}}mn.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new mn({items:e,typeName:Pn.ZodTuple,rest:null,...$t(t)})};class gn extends At{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==it.object)return ht(n,{code:ot.invalid_type,expected:it.object,received:n.parsedType}),mt;const a=[],i=this._def.keyType,r=this._def.valueType;for(const e in n.data)a.push({key:i._parse(new St(n,e,n.path,e)),value:r._parse(new St(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?pt.mergeObjectAsync(t,a):pt.mergeObjectSync(t,a)}get element(){return this._def.valueType}static create(e,t,n){return new gn(t instanceof At?{keyType:e,valueType:t,typeName:Pn.ZodRecord,...$t(n)}:{keyType:Wt.create(),valueType:e,typeName:Pn.ZodRecord,...$t(t)})}}class fn extends At{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==it.map)return ht(n,{code:ot.invalid_type,expected:it.map,received:n.parsedType}),mt;const a=this._def.keyType,i=this._def.valueType,r=[...n.data.entries()].map((([e,t],r)=>({key:a._parse(new St(n,e,n.path,[r,"key"])),value:i._parse(new St(n,t,n.path,[r,"value"]))})));if(n.common.async){const e=new Map;return Promise.resolve().then((async()=>{for(const n of r){const a=await n.key,i=await n.value;if("aborted"===a.status||"aborted"===i.status)return mt;"dirty"!==a.status&&"dirty"!==i.status||t.dirty(),e.set(a.value,i.value)}return{status:t.value,value:e}}))}{const e=new Map;for(const n of r){const a=n.key,i=n.value;if("aborted"===a.status||"aborted"===i.status)return mt;"dirty"!==a.status&&"dirty"!==i.status||t.dirty(),e.set(a.value,i.value)}return{status:t.value,value:e}}}}fn.create=(e,t,n)=>new fn({valueType:t,keyType:e,typeName:Pn.ZodMap,...$t(n)});class _n extends At{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==it.set)return ht(n,{code:ot.invalid_type,expected:it.set,received:n.parsedType}),mt;const a=this._def;null!==a.minSize&&n.data.sizea.maxSize.value&&(ht(n,{code:ot.too_big,maximum:a.maxSize.value,type:"set",inclusive:!0,exact:!1,message:a.maxSize.message}),t.dirty());const i=this._def.valueType;function r(e){const n=new Set;for(const a of e){if("aborted"===a.status)return mt;"dirty"===a.status&&t.dirty(),n.add(a.value)}return{status:t.value,value:n}}const o=[...n.data.values()].map(((e,t)=>i._parse(new St(n,e,n.path,t))));return n.common.async?Promise.all(o).then((e=>r(e))):r(o)}min(e,t){return new _n({...this._def,minSize:{value:e,message:Ct.toString(t)}})}max(e,t){return new _n({...this._def,maxSize:{value:e,message:Ct.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}_n.create=(e,t)=>new _n({valueType:e,minSize:null,maxSize:null,typeName:Pn.ZodSet,...$t(t)});class vn extends At{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==it.function)return ht(t,{code:ot.invalid_type,expected:it.function,received:t.parsedType}),mt;function n(e,n){return ut({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,dt(),ct].filter((e=>!!e)),issueData:{code:ot.invalid_arguments,argumentsError:n}})}function a(e,n){return ut({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,dt(),ct].filter((e=>!!e)),issueData:{code:ot.invalid_return_type,returnTypeError:n}})}const i={errorMap:t.common.contextualErrorMap},r=t.data;if(this._def.returns instanceof Mn){const e=this;return ft((async function(...t){const o=new st([]),s=await e._def.args.parseAsync(t,i).catch((e=>{throw o.addIssue(n(t,e)),o})),c=await Reflect.apply(r,this,s),l=await e._def.returns._def.type.parseAsync(c,i).catch((e=>{throw o.addIssue(a(c,e)),o}));return l}))}{const e=this;return ft((function(...t){const o=e._def.args.safeParse(t,i);if(!o.success)throw new st([n(t,o.error)]);const s=Reflect.apply(r,this,o.data),c=e._def.returns.safeParse(s,i);if(!c.success)throw new st([a(s,c.error)]);return c.data}))}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new vn({...this._def,args:mn.create(e).rest(nn.create())})}returns(e){return new vn({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,n){return new vn({args:e||mn.create([]).rest(nn.create()),returns:t||nn.create(),typeName:Pn.ZodFunction,...$t(n)})}}class yn extends At{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}yn.create=(e,t)=>new yn({getter:e,typeName:Pn.ZodLazy,...$t(t)});class bn extends At{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return ht(t,{received:t.data,code:ot.invalid_literal,expected:this._def.value}),mt}return{status:"valid",value:e.data}}get value(){return this._def.value}}function wn(e,t){return new xn({values:e,typeName:Pn.ZodEnum,...$t(t)})}bn.create=(e,t)=>new bn({value:e,typeName:Pn.ZodLiteral,...$t(t)});class xn extends At{constructor(){super(...arguments),Mt.set(this,void 0)}_parse(e){if("string"!=typeof e.data){const t=this._getOrReturnCtx(e),n=this._def.values;return ht(t,{expected:Ke.joinValues(n),received:t.parsedType,code:ot.invalid_type}),mt}if(wt(this,Mt,"f")||xt(this,Mt,new Set(this._def.values),"f"),!wt(this,Mt,"f").has(e.data)){const t=this._getOrReturnCtx(e),n=this._def.values;return ht(t,{received:t.data,code:ot.invalid_enum_value,options:n}),mt}return ft(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return xn.create(e,{...this._def,...t})}exclude(e,t=this._def){return xn.create(this.options.filter((t=>!e.includes(t))),{...this._def,...t})}}Mt=new WeakMap,xn.create=wn;class Cn extends At{constructor(){super(...arguments),kt.set(this,void 0)}_parse(e){const t=Ke.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==it.string&&n.parsedType!==it.number){const e=Ke.objectValues(t);return ht(n,{expected:Ke.joinValues(e),received:n.parsedType,code:ot.invalid_type}),mt}if(wt(this,kt,"f")||xt(this,kt,new Set(Ke.getValidEnumValues(this._def.values)),"f"),!wt(this,kt,"f").has(e.data)){const e=Ke.objectValues(t);return ht(n,{received:n.data,code:ot.invalid_enum_value,options:e}),mt}return ft(e.data)}get enum(){return this._def.values}}kt=new WeakMap,Cn.create=(e,t)=>new Cn({values:e,typeName:Pn.ZodNativeEnum,...$t(t)});class Mn extends At{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==it.promise&&!1===t.common.async)return ht(t,{code:ot.invalid_type,expected:it.promise,received:t.parsedType}),mt;const n=t.parsedType===it.promise?t.data:Promise.resolve(t.data);return ft(n.then((e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap}))))}}Mn.create=(e,t)=>new Mn({type:e,typeName:Pn.ZodPromise,...$t(t)});class kn extends At{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Pn.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:n}=this._processInputParams(e),a=this._def.effect||null,i={addIssue:e=>{ht(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),"preprocess"===a.type){const e=a.transform(n.data,i);if(n.common.async)return Promise.resolve(e).then((async e=>{if("aborted"===t.value)return mt;const a=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return"aborted"===a.status?mt:"dirty"===a.status||"dirty"===t.value?gt(a.value):a}));{if("aborted"===t.value)return mt;const a=this._def.schema._parseSync({data:e,path:n.path,parent:n});return"aborted"===a.status?mt:"dirty"===a.status||"dirty"===t.value?gt(a.value):a}}if("refinement"===a.type){const e=e=>{const t=a.refinement(e,i);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return e};if(!1===n.common.async){const a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return"aborted"===a.status?mt:("dirty"===a.status&&t.dirty(),e(a.value),{status:t.value,value:a.value})}return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then((n=>"aborted"===n.status?mt:("dirty"===n.status&&t.dirty(),e(n.value).then((()=>({status:t.value,value:n.value}))))))}if("transform"===a.type){if(!1===n.common.async){const e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!yt(e))return e;const r=a.transform(e.value,i);if(r instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:r}}return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then((e=>yt(e)?Promise.resolve(a.transform(e.value,i)).then((e=>({status:t.value,value:e}))):e))}Ke.assertNever(a)}}kn.create=(e,t,n)=>new kn({schema:e,typeName:Pn.ZodEffects,effect:t,...$t(n)}),kn.createWithPreprocess=(e,t,n)=>new kn({schema:t,effect:{type:"preprocess",transform:e},typeName:Pn.ZodEffects,...$t(n)});class Sn extends At{_parse(e){return this._getType(e)===it.undefined?ft(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Sn.create=(e,t)=>new Sn({innerType:e,typeName:Pn.ZodOptional,...$t(t)});class En extends At{_parse(e){return this._getType(e)===it.null?ft(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}En.create=(e,t)=>new En({innerType:e,typeName:Pn.ZodNullable,...$t(t)});class $n extends At{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===it.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}$n.create=(e,t)=>new $n({innerType:e,typeName:Pn.ZodDefault,defaultValue:"function"==typeof t.default?t.default:()=>t.default,...$t(t)});class An extends At{_parse(e){const{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},a=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return bt(a)?a.then((e=>({status:"valid",value:"valid"===e.status?e.value:this._def.catchValue({get error(){return new st(n.common.issues)},input:n.data})}))):{status:"valid",value:"valid"===a.status?a.value:this._def.catchValue({get error(){return new st(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}An.create=(e,t)=>new An({innerType:e,typeName:Pn.ZodCatch,catchValue:"function"==typeof t.catch?t.catch:()=>t.catch,...$t(t)});class zn extends At{_parse(e){if(this._getType(e)!==it.nan){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.nan,received:t.parsedType}),mt}return{status:"valid",value:e.data}}}zn.create=e=>new zn({typeName:Pn.ZodNaN,...$t(e)});const In=Symbol("zod_brand");class Tn extends At{_parse(e){const{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}class jn extends At{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async){return(async()=>{const e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return"aborted"===e.status?mt:"dirty"===e.status?(t.dirty(),gt(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})()}{const e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return"aborted"===e.status?mt:"dirty"===e.status?(t.dirty(),{status:"dirty",value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(e,t){return new jn({in:e,out:t,typeName:Pn.ZodPipeline})}}class On extends At{_parse(e){const t=this._def.innerType._parse(e),n=e=>(yt(e)&&(e.value=Object.freeze(e.value)),e);return bt(t)?t.then((e=>n(e))):n(t)}unwrap(){return this._def.innerType}}function Dn(e,t={},n){return e?tn.create().superRefine(((a,i)=>{var r,o;if(!e(a)){const e="function"==typeof t?t(a):"string"==typeof t?{message:t}:t,s=null===(o=null!==(r=e.fatal)&&void 0!==r?r:n)||void 0===o||o,c="string"==typeof e?{message:e}:e;i.addIssue({code:"custom",...c,fatal:s})}})):tn.create()}On.create=(e,t)=>new On({innerType:e,typeName:Pn.ZodReadonly,...$t(t)});const Rn={object:cn.lazycreate};var Pn;!function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"}(Pn||(Pn={}));const Ln=Wt.create,Nn=Qt.create,Fn=zn.create,Vn=Gt.create,Hn=Yt.create,Bn=Kt.create,qn=Xt.create,Un=Jt.create,Wn=en.create,Zn=tn.create,Qn=nn.create,Gn=an.create,Yn=rn.create,Kn=on.create,Xn=cn.create,Jn=cn.strictCreate,ea=ln.create,ta=un.create,na=pn.create,aa=mn.create,ia=gn.create,ra=fn.create,oa=_n.create,sa=vn.create,ca=yn.create,la=bn.create,da=xn.create,ua=Cn.create,ha=Mn.create,pa=kn.create,ma=Sn.create,ga=En.create,fa=kn.createWithPreprocess,_a=jn.create,va={string:e=>Wt.create({...e,coerce:!0}),number:e=>Qt.create({...e,coerce:!0}),boolean:e=>Yt.create({...e,coerce:!0}),bigint:e=>Gt.create({...e,coerce:!0}),date:e=>Kt.create({...e,coerce:!0})},ya=mt;var ba=Object.freeze({__proto__:null,defaultErrorMap:ct,setErrorMap:function(e){lt=e},getErrorMap:dt,makeIssue:ut,EMPTY_PATH:[],addIssueToContext:ht,ParseStatus:pt,INVALID:mt,DIRTY:gt,OK:ft,isAborted:_t,isDirty:vt,isValid:yt,isAsync:bt,get util(){return Ke},get objectUtil(){return Xe},ZodParsedType:it,getParsedType:rt,ZodType:At,datetimeRegex:qt,ZodString:Wt,ZodNumber:Qt,ZodBigInt:Gt,ZodBoolean:Yt,ZodDate:Kt,ZodSymbol:Xt,ZodUndefined:Jt,ZodNull:en,ZodAny:tn,ZodUnknown:nn,ZodNever:an,ZodVoid:rn,ZodArray:on,ZodObject:cn,ZodUnion:ln,ZodDiscriminatedUnion:un,ZodIntersection:pn,ZodTuple:mn,ZodRecord:gn,ZodMap:fn,ZodSet:_n,ZodFunction:vn,ZodLazy:yn,ZodLiteral:bn,ZodEnum:xn,ZodNativeEnum:Cn,ZodPromise:Mn,ZodEffects:kn,ZodTransformer:kn,ZodOptional:Sn,ZodNullable:En,ZodDefault:$n,ZodCatch:An,ZodNaN:zn,BRAND:In,ZodBranded:Tn,ZodPipeline:jn,ZodReadonly:On,custom:Dn,Schema:At,ZodSchema:At,late:Rn,get ZodFirstPartyTypeKind(){return Pn},coerce:va,any:Zn,array:Kn,bigint:Vn,boolean:Hn,date:Bn,discriminatedUnion:ta,effect:pa,enum:da,function:sa,instanceof:(e,t={message:`Input not instance of ${e.name}`})=>Dn((t=>t instanceof e),t),intersection:na,lazy:ca,literal:la,map:ra,nan:Fn,nativeEnum:ua,never:Gn,null:Wn,nullable:ga,number:Nn,object:Xn,oboolean:()=>Hn().optional(),onumber:()=>Nn().optional(),optional:ma,ostring:()=>Ln().optional(),pipeline:_a,preprocess:fa,promise:ha,record:ia,set:oa,strictObject:Jn,string:Ln,symbol:qn,transformer:pa,tuple:aa,undefined:Un,union:ea,unknown:Qn,void:Yn,NEVER:ya,ZodIssueCode:ot,quotelessJson:e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),ZodError:st});const wa="https://github.com/dermotduffy/frigate-hass-card",xa=`${wa}#troubleshooting`,Ca="cameras",Ma=`${Ca}.#.camera_entity`,ka=`${Ca}.#.frigate.camera_name`,Sa=`${Ca}.#.capabilities.disable`,Ea=`${Ca}.#.capabilities.disable_except`,$a=`${Ca}.#.cast.method`,Aa=`${Ca}.#.cast.dashboard.dashboard_path`,za=`${Ca}.#.cast.dashboard.view_path`,Ia=`${Ca}.#.dimensions.aspect_ratio`,Ta=`${Ca}.#.frigate.client_id`,ja=`${Ca}.#.frigate.labels`,Oa=`${Ca}.#.frigate.url`,Da=`${Ca}.#.frigate.zones`,Ra=`${Ca}.#.go2rtc.modes`,Pa=`${Ca}.#.go2rtc.stream`,La=`${Ca}.#.icon`,Na=`${Ca}.#.id`,Fa=`${Ca}.#.image.entity`,Va=`${Ca}.#.image.entity_parameters`,Ha=`${Ca}.#.image.mode`,Ba=`${Ca}.#.image.refresh_seconds`,qa=`${Ca}.#.image.url`,Ua=`${Ca}.#.motioneye.images.directory_pattern`,Wa=`${Ca}.#.motioneye.images.file_pattern`,Za=`${Ca}.#.motioneye.movies.directory_pattern`,Qa=`${Ca}.#.motioneye.movies.file_pattern`,Ga=`${Ca}.#.motioneye.url`,Ya=`${Ca}.#.title`,Ka=`${Ca}.#.webrtc_card.entity`,Xa=`${Ca}.#.webrtc_card.url`,Ja=`${Ca}.#.live_provider`,ei=`${Ca}.#.dependencies.cameras`,ti=`${Ca}.#.dependencies.all_cameras`,ni=`${Ca}.#.dimensions.layout.fit`,ai=`${Ca}.#.dimensions.layout.pan.x`,ii=`${Ca}.#.dimensions.layout.pan.y`,ri=`${Ca}.#.dimensions.layout.position.x`,oi=`${Ca}.#.dimensions.layout.position.y`,si=`${Ca}.#.dimensions.layout.view_box.top`,ci=`${Ca}.#.dimensions.layout.view_box.bottom`,li=`${Ca}.#.dimensions.layout.view_box.left`,di=`${Ca}.#.dimensions.layout.view_box.right`,ui=`${Ca}.#.dimensions.layout.zoom`,hi=`${Ca}.#.proxy.dynamic`,pi=`${Ca}.#.proxy.media`,mi=`${Ca}.#.proxy.ssl_ciphers`,gi=`${Ca}.#.proxy.ssl_verification`,fi=`${Ca}.#.reolink.media_resolution`,_i=`${Ca}.#.reolink.url`,vi=`${Ca}.#.triggers.motion`,yi=`${Ca}.#.triggers.occupancy`,bi=`${Ca}.#.triggers.entities`,wi=`${Ca}.#.triggers.events`,xi="cameras_global",Ci=`${xi}.image`,Mi=`${xi}.live_provider`,ki=`${xi}.jsmpeg`,Si=`${xi}.webrtc_card`,Ei=`${xi}.triggers.occupancy`,$i=`${xi}.image.refresh_seconds`,Ai=`${xi}.dimensions.layout`,zi=`${xi}.ptz`,Ii="elements",Ti="view",ji=`${Ti}.camera_select`,Oi=`${Ti}.dark_mode`,Di=`${Ti}.default`,Ri=`${Ti}.interaction_seconds`,Pi=`${Ti}.keyboard_shortcuts`,Li=`${Ti}.keyboard_shortcuts.enabled`,Ni=`${Pi}.ptz_left`,Fi=`${Pi}.ptz_right`,Vi=`${Pi}.ptz_up`,Hi=`${Pi}.ptz_down`,Bi=`${Pi}.ptz_zoom_in`,qi=`${Pi}.ptz_zoom_out`,Ui=`${Pi}.ptz_home`,Wi=`${Ti}.default_cycle_camera`,Zi=`${Ti}.default_reset`,Qi=`${Zi}.interaction_mode`,Gi=`${Zi}.every_seconds`,Yi=`${Zi}.entities`,Ki=`${Zi}.after_interaction`,Xi=`${Ti}.triggers`,Ji=`${Xi}.show_trigger_status`,er=`${Xi}.filter_selected_camera`,tr=`${Xi}.untrigger_seconds`,nr=`${Xi}.actions`,ar=`${nr}.trigger`,ir=`${nr}.untrigger`,rr=`${nr}.interaction_mode`,or="media_gallery",sr=`${or}.controls.filter.mode`,cr=`${or}.controls.thumbnails.show_details`,lr=`${or}.controls.thumbnails.show_download_control`,dr=`${or}.controls.thumbnails.show_favorite_control`,ur=`${or}.controls.thumbnails.show_timeline_control`,hr=`${or}.controls.thumbnails.size`,pr="media_viewer",mr=`${pr}.auto_play`,gr=`${pr}.auto_pause`,fr=`${pr}.auto_mute`,_r=`${pr}.auto_unmute`,vr=`${pr}.display.mode`,yr=`${pr}.display.grid_columns`,br=`${pr}.display.grid_max_columns`,wr=`${pr}.display.grid_selected_width_factor`,xr=`${pr}.draggable`,Cr=`${pr}.lazy_load`,Mr=`${pr}.snapshot_click_plays_clip`,kr=`${pr}.transition_effect`,Sr=`${pr}.controls.builtin`,Er=`${pr}.controls.next_previous.style`,$r=`${pr}.controls.next_previous.size`,Ar=`${pr}.controls.thumbnails.mode`,zr=`${pr}.controls.thumbnails.show_details`,Ir=`${pr}.controls.thumbnails.show_download_control`,Tr=`${pr}.controls.thumbnails.show_favorite_control`,jr=`${pr}.controls.thumbnails.show_timeline_control`,Or=`${pr}.controls.thumbnails.size`,Dr=`${pr}.controls.timeline.clustering_threshold`,Rr=`${pr}.controls.timeline.events_media_type`,Pr=`${pr}.controls.timeline.mode`,Lr=`${pr}.controls.timeline.pan_mode`,Nr=`${pr}.controls.timeline.show_recordings`,Fr=`${pr}.controls.timeline.style`,Vr=`${pr}.controls.timeline.window_seconds`,Hr=`${pr}.zoomable`,Br="live",qr=`${Br}.auto_play`,Ur=`${Br}.auto_pause`,Wr=`${Br}.auto_mute`,Zr=`${Br}.auto_unmute`,Qr=`${Br}.controls.builtin`,Gr=`${Br}.controls.next_previous.style`,Yr=`${Br}.controls.next_previous.size`,Kr=`${Br}.controls.ptz.hide_home`,Xr=`${Br}.controls.ptz.hide_pan_tilt`,Jr=`${Br}.controls.ptz.hide_zoom`,eo=`${Br}.controls.ptz.mode`,to=`${Br}.controls.ptz.orientation`,no=`${Br}.controls.ptz.position`,ao=`${Br}.controls.thumbnails.media_type`,io=`${Br}.controls.thumbnails.events_media_type`,ro=`${Br}.controls.thumbnails.mode`,oo=`${Br}.controls.thumbnails.size`,so=`${Br}.controls.thumbnails.show_details`,co=`${Br}.controls.thumbnails.show_download_control`,lo=`${Br}.controls.thumbnails.show_favorite_control`,uo=`${Br}.controls.thumbnails.show_timeline_control`,ho=`${Br}.controls.timeline.clustering_threshold`,po=`${Br}.controls.timeline.events_media_type`,mo=`${Br}.controls.timeline.mode`,go=`${Br}.controls.timeline.pan_mode`,fo=`${Br}.controls.timeline.show_recordings`,_o=`${Br}.controls.timeline.style`,vo=`${Br}.controls.timeline.window_seconds`,yo=`${Br}.display.mode`,bo=`${Br}.display.grid_columns`,wo=`${Br}.display.grid_max_columns`,xo=`${Br}.display.grid_selected_width_factor`,Co=`${Br}.draggable`,Mo=`${Br}.lazy_load`,ko=`${Br}.lazy_unload`,So=`${Br}.preload`,Eo=`${Br}.transition_effect`,$o=`${Br}.show_image_during_load`,Ao=`${Br}.microphone.disconnect_seconds`,zo=`${Br}.microphone.mute_after_microphone_mute_seconds`,Io=`${Br}.microphone.always_connected`,To=`${Br}.zoomable`,jo="image",Oo=`${jo}.entity`,Do=`${jo}.entity_parameters`,Ro=`${jo}.mode`,Po=`${jo}.refresh_seconds`,Lo=`${jo}.url`,No="timeline",Fo=`${No}.window_seconds`,Vo=`${No}.clustering_threshold`,Ho=`${No}.events_media_type`,Bo=`${No}.show_recordings`,qo=`${No}.style`,Uo=`${No}.controls.thumbnails.mode`,Wo=`${No}.controls.thumbnails.size`,Zo=`${No}.controls.thumbnails.show_details`,Qo=`${No}.controls.thumbnails.show_download_control`,Go=`${No}.controls.thumbnails.show_favorite_control`,Yo=`${No}.controls.thumbnails.show_timeline_control`,Ko="menu",Xo=`${Ko}.alignment`,Jo=`${Ko}.position`,es=`${Ko}.style`,ts=`${Ko}.button_size`,ns=`${Ko}.buttons`,as=`${ns}.frigate`,is=`${ns}.camera_ui`,rs=`${ns}.fullscreen`,os=`${ns}.play`,ss=`${ns}.mute`,cs=`${ns}.media_player`,ls=`${ns}.timeline`,ds="status_bar",us=`${ds}.position`,hs=`${ds}.style`,ps=`${ds}.popup_seconds`,ms=`${ds}.height`,gs=`${ds}.items`,fs="dimensions",_s=`${fs}.aspect_ratio`,vs=`${fs}.aspect_ratio_mode`,ys=`${fs}.height`,bs="overrides",ws="performance",xs=`${ws}.features.animated_progress_indicator`,Cs=`${ws}.features.media_chunk_size`,Ms=`${ws}.features.max_simultaneous_engine_requests`,ks=`${ws}.profile`,Ss=`${ws}.style.box_shadow`,Es=`${ws}.style.border_radius`,$s="profiles",As=1e3;class zs extends Error{constructor(e,t){super(e),this.context=t}}const Is={info:10,error:20,connection:30,diagnostics:40},Ts=["clips","favorite-events","favorite-recordings","live","menu","ptz","recordings","seek","snapshots","substream"],js=ba.object({url:ba.string(),mime_type:ba.string()}),Os=ba.object({path:ba.string()});function Ds(e){if(e instanceof ba.ZodDefault)return Ds(e.removeDefault());if(e instanceof ba.ZodObject){const t={};for(const n in e.shape){const a=e.shape[n];t[n]=ba.ZodOptional.create(Ds(a))}return new ba.ZodObject({...e._def,shape:()=>t})}return e instanceof ba.ZodArray?ba.ZodArray.create(Ds(e.element)).min(e._def.minLength?.value,e._def.minLength?.message).max(e._def.maxLength?.value,e._def.maxLength?.message).length(e._def.exactLength?.value,e._def.exactLength?.message):e instanceof ba.ZodOptional?ba.ZodOptional.create(Ds(e.unwrap())):e instanceof ba.ZodNullable?ba.ZodNullable.create(Ds(e.unwrap())):e instanceof ba.ZodTuple?ba.ZodTuple.create(e.items.map((e=>Ds(e)))):e}function Rs(e){const t=e.format();return Object.keys(t).filter((e=>!e.startsWith("_")))}const Ps=e=>{const t=new Set;if(e.issues.length)for(const n of e.issues)if("invalid_union"===n.code){const e=n.unionErrors;for(const n of e)Ps(n).forEach(t.add,t)}else t.add(Ls(n.path));return t},Ls=e=>{let t="";for(let n=0;n"fire-dom-event")).or(ba.literal("fire-dom-event")),card_id:ba.string().regex(tc,"card_id parameter can only contain [a-z][A-Z][0-9_]-").optional()}),_c=fc.extend({frigate_card_action:ba.enum(Zs)}),vc=fc.extend({frigate_card_action:ba.enum(["camera_ui","default","download","expand","fullscreen","live_substream_off","live_substream_on","menu_toggle","microphone_connect","microphone_disconnect","microphone_mute","microphone_unmute","mute","pause","play","screenshot","unmute"])}),yc=fc.extend({frigate_card_action:ba.literal("camera_select"),camera:ba.string().optional(),triggered:ba.boolean().optional()}),bc=fc.extend({frigate_card_action:ba.literal("live_substream_select"),camera:ba.string()}),wc=fc.extend({frigate_card_action:ba.literal("media_player"),media_player:ba.string(),media_player_action:ba.enum(["play","stop"])}),xc=fc.extend({frigate_card_action:ba.literal("display_mode_select"),display_mode:ic}),Cc=fc.extend({frigate_card_action:ba.literal("ptz"),camera:ba.string().optional(),ptz_action:ba.enum(Hs).optional(),ptz_phase:ba.enum(Js).optional(),ptz_preset:ba.string().optional()}),Mc=fc.extend({frigate_card_action:ba.literal("ptz_digital"),target_id:ba.string().optional(),absolute:ba.object({zoom:ac.optional(),pan:nc.optional()}).optional(),ptz_action:ba.enum(Hs).optional(),ptz_phase:ba.enum(Js).optional()}),kc=fc.extend({frigate_card_action:ba.literal("ptz_multi"),target_id:ba.string().optional(),ptz_action:ba.enum(Hs).optional(),ptz_phase:ba.enum(Js).optional(),ptz_preset:ba.string().optional()}),Sc=fc.extend({frigate_card_action:ba.literal("ptz_controls"),enabled:ba.boolean()}),Ec=ba.object({ms:ba.number().optional(),s:ba.number().optional(),m:ba.number().optional(),h:ba.number().optional()}),$c=fc.extend({frigate_card_action:ba.literal("sleep"),duration:Ec.optional().default({s:1})}),Ac=fc.extend({frigate_card_action:ba.literal("status_bar"),status_bar_action:ba.enum(["add","remove","reset"]),items:ba.lazy((()=>ol)).array().optional()}),zc=fc.extend({frigate_card_action:ba.literal("log"),message:ba.string(),level:ba.enum(["debug","info","warn","error"]).default("info")}),Ic=ba.union([yc,vc,bc,zc,wc,Cc,Mc,kc,Sc,_c,xc,$c,Ac]),Tc=ba.union([sc,dc,lc,uc,hc,pc,gc,mc,Ic]),jc=ba.object({tap_action:Tc.or(Tc.array()).optional(),hold_action:Tc.or(Tc.array()).optional(),double_tap_action:Tc.or(Tc.array()).optional(),start_tap_action:Tc.or(Tc.array()).optional(),end_tap_action:Tc.or(Tc.array()).optional()}).passthrough(),Oc=ba.object({actions:jc.optional()}),Dc=jc.extend({style:ba.record(ba.string().nullable().or(ba.undefined()).or(ba.number())).optional(),title:ba.string().nullable().optional()}),Rc=Dc.extend({type:ba.literal("state-badge"),entity:ba.string()}),Pc=Dc.extend({type:ba.literal("state-icon"),entity:ba.string(),icon:ba.string().optional(),state_color:ba.boolean().default(!0)}),Lc=Dc.extend({type:ba.literal("state-label"),entity:ba.string(),attribute:ba.string().optional(),prefix:ba.string().optional(),suffix:ba.string().optional()}),Nc=Dc.extend({type:ba.literal("service-button"),title:ba.string(),service:ba.string(),service_data:ba.object({}).passthrough().optional()}),Fc=Dc.extend({type:ba.literal("icon"),icon:ba.string(),entity:ba.string().optional()}),Vc=Dc.extend({type:ba.literal("image"),entity:ba.string().optional(),image:ba.string().optional(),camera_image:ba.string().optional(),camera_view:ba.string().optional(),state_image:ba.object({}).passthrough().optional(),filter:ba.string().optional(),state_filter:ba.object({}).passthrough().optional(),aspect_ratio:ba.string().optional()}),Hc=ba.object({condition:ba.literal("state").optional(),entity:ba.string(),state:ba.string().or(ba.string().array()).optional(),state_not:ba.string().or(ba.string().array()).optional()}),Bc=ba.object({condition:ba.literal("numeric_state"),entity:ba.string(),above:ba.number().optional(),below:ba.number().optional()}),qc=ba.object({condition:ba.literal("screen"),media_query:ba.string()}),Uc=ba.object({condition:ba.literal("user"),users:ba.string().array().min(1)}),Wc=ba.discriminatedUnion("condition",[Hc,Bc,qc,Uc]),Zc=ba.object({type:ba.literal("conditional"),conditions:Wc.array(),elements:ba.lazy((()=>yl))}),Qc=ba.object({type:ba.string().superRefine(((e,t)=>{e.match(/^custom:(?!frigate-card).+/)||t.addIssue({code:ba.ZodIssueCode.custom,message:"Frigate-card custom elements must match specific schemas",fatal:!0})}))}).passthrough(),Gc=ba.object({enabled:ba.boolean().default(!0).optional(),priority:ba.number().min(0).max(Us).default(50).optional(),alignment:ba.enum(["matching","opposing"]).default("matching").optional(),icon:ba.string().optional(),permanent:ba.boolean().default(!1).optional()}),Yc=Gc.merge(Fc).extend({type:ba.literal("custom:frigate-card-menu-icon")}),Kc=Gc.merge(Pc).extend({type:ba.literal("custom:frigate-card-menu-state-icon")}).merge(Gc),Xc=Dc.extend({entity:ba.string().optional(),icon:ba.string().optional(),state_color:ba.boolean().default(!0),selected:ba.boolean().default(!1),subtitle:ba.string().optional(),enabled:ba.boolean().default(!0)}),Jc=Gc.merge(Fc).extend({type:ba.literal("custom:frigate-card-menu-submenu"),items:Xc.array()}),el=Gc.merge(Pc).extend({type:ba.literal("custom:frigate-card-menu-submenu-select"),options:ba.record(Xc.deepPartial()).optional()}),tl=ba.object({enabled:ba.boolean().default(!0).optional(),priority:ba.number().min(0).max(100).default(50).optional()}),nl=tl.extend({sufficient:ba.boolean().default(!1).optional(),exclusive:ba.boolean().default(!1).optional(),expand:ba.boolean().default(!1).optional(),actions:jc.optional()}),al=nl.extend({type:ba.literal("custom:frigate-card-status-bar-icon"),icon:ba.string()}),il=nl.extend({type:ba.literal("custom:frigate-card-status-bar-image"),image:ba.string()}),rl=nl.extend({type:ba.literal("custom:frigate-card-status-bar-string"),string:ba.string()}),ol=ba.union([al,il,rl]),sl=ba.object({condition:ba.literal("view"),views:ba.string().array()}),cl=ba.object({condition:ba.literal("fullscreen"),fullscreen:ba.boolean()}),ll=ba.object({condition:ba.literal("expand"),expand:ba.boolean()}),dl=ba.object({condition:ba.literal("camera"),cameras:ba.string().array()}),ul=ba.object({condition:ba.literal("media_loaded"),media_loaded:ba.boolean()}),hl=ba.object({condition:ba.literal("display_mode"),display_mode:ic}),pl=ba.object({condition:ba.literal("triggered"),triggered:ba.string().array()}),ml=ba.object({condition:ba.literal("interaction"),interaction:ba.boolean()}),gl=ba.object({condition:ba.literal("microphone"),connected:ba.boolean().optional(),muted:ba.boolean().optional()}),fl=ba.object({condition:ba.literal("key"),key:ba.string(),state:ba.enum(["down","up"]).optional(),ctrl:ba.boolean().optional(),shift:ba.boolean().optional(),alt:ba.boolean().optional(),meta:ba.boolean().optional()}),_l=ba.discriminatedUnion("condition",[Hc,Bc,qc,Uc,sl,cl,ll,dl,ul,hl,pl,ml,gl,fl]),vl=ba.object({type:ba.literal("custom:frigate-card-conditional"),conditions:_l.array(),elements:ba.lazy((()=>yl))}),yl=ba.union([Zc,Qc,vl,Fc,Vc,Yc,Kc,Jc,el,Nc,Rc,Pc,Lc,al,il,rl]).array().optional(),bl=ba.object({fit:ba.enum(["contain","cover","fill"]).optional(),position:ba.object({x:ba.number().min(0).max(100).optional(),y:ba.number().min(0).max(100).optional()}).optional(),view_box:ba.object({bottom:ba.number().min(0).max(100).optional().default(0),left:ba.number().min(0).max(100).optional().default(0),right:ba.number().min(0).max(100).optional().default(0),top:ba.number().min(0).max(100).optional().default(0)}).optional(),pan:nc.optional(),zoom:ac.optional()}),wl=ba.number().array().length(2).or(ba.string().regex(/^\s*\d+\.?\d*\s*[:/]\s*\d+\.?\d*\s*$/).transform((e=>e.split(/[:\/]/).map((e=>Number(e)))))),xl={r2c_delay_between_calls_seconds:.5,c2r_delay_between_calls_seconds:.2},Cl=function(e){return t=>{if(!t||"object"!=typeof t||!t.service)return t;const n={...t};return Object.keys(t).forEach((a=>{const i=a.match(/^data_(.+)$/),r=i?.[1];r&&!(`${e}${r}`in t)&&(n[`${e}${r}`]={action:"perform-action",perform_action:t.service,data:t[a]},delete n[a],delete n.service)})),n}},Ml=ba.preprocess(Cl("actions_"),ba.object({actions_left:lc.optional(),actions_left_start:lc.optional(),actions_left_stop:lc.optional(),actions_right:lc.optional(),actions_right_start:lc.optional(),actions_right_stop:lc.optional(),actions_up:lc.optional(),actions_up_start:lc.optional(),actions_up_stop:lc.optional(),actions_down:lc.optional(),actions_down_start:lc.optional(),actions_down_stop:lc.optional(),actions_zoom_in:lc.optional(),actions_zoom_in_start:lc.optional(),actions_zoom_in_stop:lc.optional(),actions_zoom_out:lc.optional(),actions_zoom_out_start:lc.optional(),actions_zoom_out_stop:lc.optional(),r2c_delay_between_calls_seconds:ba.number().default(xl.r2c_delay_between_calls_seconds),c2r_delay_between_calls_seconds:ba.number().default(xl.c2r_delay_between_calls_seconds),presets:ba.preprocess(Cl(""),ba.union([ba.record(lc),ba.object({service:ba.string().optional()})])).optional(),service:ba.string().optional()}).passthrough()),kl={orientation:"horizontal",mode:"auto",hide_pan_tilt:!1,hide_zoom:!1,hide_home:!1,position:"bottom-right"},Sl=ba.object({mode:ba.enum(["off","auto","on"]).default(kl.mode),position:ba.enum(["top-left","top-right","bottom-left","bottom-right"]).default(kl.position),orientation:ba.enum(["vertical","horizontal"]).default(kl.orientation),hide_pan_tilt:ba.boolean().default(kl.hide_pan_tilt),hide_zoom:ba.boolean().default(kl.hide_zoom),hide_home:ba.boolean().default(kl.hide_home),style:ba.object({}).passthrough().optional()}),El={mode:"auto",refresh_seconds:1},$l=ba.object({mode:ba.enum(["auto","camera","entity","screensaver","url"]).default(El.mode),refresh_seconds:ba.number().min(0).default(El.refresh_seconds),url:ba.string().optional(),entity:ba.string().optional(),entity_parameters:ba.string().optional()}),Al=$l.merge(Oc).default(El),zl=75,Il=300,Tl={size:100,show_details:!0,show_favorite_control:!0,show_timeline_control:!0,show_download_control:!0},jl=ba.object({size:ba.number().min(75).max(300).default(Tl.size),show_details:ba.boolean().default(Tl.show_details),show_favorite_control:ba.boolean().default(Tl.show_favorite_control),show_timeline_control:ba.boolean().default(Tl.show_timeline_control),show_download_control:ba.boolean().default(Tl.show_download_control)}),Ol={...Tl,mode:"right"},Dl=jl.extend({mode:ba.enum(["none","above","below","left","right"]).default(Ol.mode)}),Rl=ba.enum(["all","clips","snapshots"]),Pl={clustering_threshold:3,events_media_type:"all",window_seconds:3600,show_recordings:!0,style:"stack",pan_mode:"pan"},Ll=ba.enum(["pan","seek","seek-in-media","seek-in-camera"]),Nl=ba.object({clustering_threshold:ba.number().optional().default(Pl.clustering_threshold),events_media_type:Rl.optional().default(Pl.events_media_type),window_seconds:ba.number().min(60).max(86400).optional().default(Pl.window_seconds),show_recordings:ba.boolean().optional().default(Pl.show_recordings),style:ba.enum(["stack","ribbon"]).optional().default(Pl.style),pan_mode:Ll.optional().default(Pl.pan_mode)}),Fl={...Pl,mode:"none",style:"ribbon"},Vl=Nl.extend({mode:ba.enum(["none","above","below"]).default(Fl.mode),style:Nl.shape.style.default(Fl.style)}),Hl={...Pl,controls:{thumbnails:Ol}},Bl=Nl.extend({controls:ba.object({thumbnails:Dl.default(Hl.controls.thumbnails)}).default(Hl.controls)}).default(Hl),ql=ba.object({style:ba.enum(["none","chevrons","icons","thumbnails"]),size:ba.number().min(20)}),Ul=ba.enum(["none","slide"]),Wl={always_connected:!1,disconnect_seconds:90,mute_after_microphone_mute_seconds:60},Zl=ba.object({always_connected:ba.boolean().default(Wl.always_connected),disconnect_seconds:ba.number().min(0).default(Wl.disconnect_seconds),mute_after_microphone_mute_seconds:ba.number().min(0).default(Wl.mute_after_microphone_mute_seconds)}).default(Wl),Ql=ba.object({url:ba.string().transform((e=>e.replace(/\/+$/,""))).optional(),host:ba.string().optional(),modes:ba.enum(["webrtc","mse","mp4","mjpeg"]).array().optional(),stream:ba.string().optional()}),Gl=ba.object({entity:ba.string().optional(),url:ba.string().optional()}).passthrough(),Yl=ba.object({options:ba.object({audio:ba.boolean().optional(),video:ba.boolean().optional(),pauseWhenHidden:ba.boolean().optional(),disableGl:ba.boolean().optional(),disableWebAssembly:ba.boolean().optional(),preserveDrawingBuffer:ba.boolean().optional(),progressive:ba.boolean().optional(),throttled:ba.boolean().optional(),chunkSize:ba.number().optional(),maxAudioLag:ba.number().optional(),videoBufferSize:ba.number().optional(),audioBufferSize:ba.number().optional()}).optional()}),Kl={...Ol,media_type:"events",events_media_type:"all"},Xl={auto_play:[...Ys],auto_pause:[],auto_mute:[...Xs],auto_unmute:["microphone"],preload:!1,lazy_load:!0,lazy_unload:[],draggable:!0,zoomable:!0,transition_effect:"slide",show_image_during_load:!0,mode:"single",controls:{builtin:!0,next_previous:{size:48,style:"chevrons"},ptz:kl,thumbnails:Kl,timeline:Fl},microphone:{...Wl}},Jl=Dl.extend({media_type:ba.enum(["events","recordings"]).default(Xl.controls.thumbnails.media_type),events_media_type:Rl.default(Xl.controls.thumbnails.events_media_type)}),ed=ba.object({auto_pause:ba.enum(Gs).array().default(Xl.auto_pause),auto_play:ba.enum(Ys).array().default(Xl.auto_play),auto_mute:ba.enum(Xs).array().default(Xl.auto_mute),auto_unmute:ba.enum(Ks).array().default(Xl.auto_unmute),controls:ba.object({builtin:ba.boolean().default(Xl.controls.builtin),next_previous:ql.extend({style:ba.enum(["none","chevrons","icons"]).default(Xl.controls.next_previous.style),size:ql.shape.size.default(Xl.controls.next_previous.size)}).default(Xl.controls.next_previous),ptz:Sl.default(Xl.controls.ptz),thumbnails:Jl.default(Xl.controls.thumbnails),timeline:Vl.default(Xl.controls.timeline)}).default(Xl.controls),display:rc,draggable:ba.boolean().default(Xl.draggable),lazy_load:ba.boolean().default(Xl.lazy_load),lazy_unload:ba.enum(Gs).array().default(Xl.lazy_unload),microphone:Zl.default(Xl.microphone),preload:ba.boolean().default(Xl.preload),show_image_during_load:ba.boolean().default(Xl.show_image_during_load),transition_effect:Ul.default(Xl.transition_effect),zoomable:ba.boolean().default(Xl.zoomable)}).merge(Oc).default(Xl),td=ba.object({live:ed}),nd=ba.object({method:ba.enum(["standard","dashboard"]).default("standard").optional(),dashboard:ba.object({dashboard_path:ba.string().optional(),view_path:ba.string().optional()}).optional()}),ad={dependencies:{all_cameras:!1,cameras:[]},engine:"auto",frigate:{client_id:"frigate"},live_provider:"auto",motioneye:{images:{directory_pattern:"%Y-%m-%d",file_pattern:"%H-%M-%S"},movies:{directory_pattern:"%Y-%m-%d",file_pattern:"%H-%M-%S"}},reolink:{media_resolution:"low"},ptz:xl,triggers:{motion:!1,occupancy:!1,events:[...ec],entities:[]},proxy:{media:"auto",dynamic:!0,ssl_verification:"auto",ssl_ciphers:"auto"}},id=ba.object({media:ba.boolean().or(ba.literal("auto")).default(ad.proxy.media),dynamic:ba.boolean().default(ad.proxy.dynamic),ssl_verification:ba.boolean().or(ba.literal("auto")).default(ad.proxy.ssl_verification),ssl_ciphers:ba.enum(["default","insecure","intermediate","modern"]).or(ba.literal("auto")).default(ad.proxy.ssl_ciphers)}),rd=ba.object({camera_entity:ba.string().optional(),icon:ba.string().optional(),title:ba.string().optional(),capabilities:ba.object({disable:ba.enum(Ts).array().optional(),disable_except:ba.enum(Ts).array().optional()}).optional(),id:ba.string().optional(),dependencies:ba.object({all_cameras:ba.boolean().default(ad.dependencies.all_cameras),cameras:ba.string().array().default(ad.dependencies.cameras)}).default(ad.dependencies),triggers:ba.object({motion:ba.boolean().default(ad.triggers.motion),occupancy:ba.boolean().default(ad.triggers.occupancy),entities:ba.string().array().default(ad.triggers.entities),events:ba.enum(ec).array().default(ad.triggers.events)}).default(ad.triggers),engine:ba.enum(["auto","frigate","generic","motioneye","reolink"]).default("auto"),frigate:ba.object({url:ba.string().optional(),client_id:ba.string().default(ad.frigate.client_id),camera_name:ba.string().optional(),labels:ba.string().array().optional(),zones:ba.string().array().optional()}).default(ad.frigate),motioneye:ba.object({url:ba.string().optional(),images:ba.object({directory_pattern:ba.string().includes("%").default(ad.motioneye.images.directory_pattern),file_pattern:ba.string().includes("%").default(ad.motioneye.images.file_pattern)}).default(ad.motioneye.images),movies:ba.object({directory_pattern:ba.string().includes("%").default(ad.motioneye.movies.directory_pattern),file_pattern:ba.string().includes("%").default(ad.motioneye.movies.file_pattern)}).default(ad.motioneye.movies)}).default(ad.motioneye),reolink:ba.object({url:ba.string().optional(),media_resolution:ba.enum(["high","low"]).default(ad.reolink.media_resolution)}).default(ad.reolink),live_provider:ba.enum(["auto","image","ha","jsmpeg","go2rtc","webrtc-card"]).default(ad.live_provider),go2rtc:Ql.optional(),image:$l.optional().default(El),jsmpeg:Yl.optional(),webrtc_card:Gl.optional(),cast:nd.optional(),ptz:Ml.default(ad.ptz),dimensions:ba.object({aspect_ratio:wl.optional(),layout:bl.optional()}).optional(),proxy:id.default(ad.proxy)}).default(ad),od=rd.array().min(1),sd={default:Qs,camera_select:"current",interaction_seconds:300,default_reset:{every_seconds:0,after_interaction:!1,entities:[],interaction_mode:"inactive"},default_cycle_camera:!1,dark_mode:"off",triggers:{show_trigger_status:!1,filter_selected_camera:!0,actions:{trigger:"update",untrigger:"none"},untrigger_seconds:0},keyboard_shortcuts:Fs},cd=ba.enum(["all","inactive","active"]).default("inactive"),ld=ba.object({actions:ba.object({interaction_mode:cd,trigger:ba.enum(["default","live","media","none","update"]).default(sd.triggers.actions.trigger),untrigger:ba.enum(["default","none"]).default(sd.triggers.actions.untrigger)}).default(sd.triggers.actions),filter_selected_camera:ba.boolean().default(sd.triggers.filter_selected_camera),show_trigger_status:ba.boolean().default(sd.triggers.show_trigger_status),untrigger_seconds:ba.number().default(sd.triggers.untrigger_seconds)}),dd=ba.object({default:ba.enum(Zs).default(sd.default),camera_select:ba.enum([...Zs,"current"]).default(sd.camera_select),interaction_seconds:ba.number().default(sd.interaction_seconds),default_cycle_camera:ba.boolean().default(sd.default_cycle_camera),default_reset:ba.object({after_interaction:ba.boolean().default(sd.default_reset.after_interaction),every_seconds:ba.number().default(sd.default_reset.every_seconds),entities:ba.string().array().default(sd.default_reset.entities),interaction_mode:cd.default(sd.default_reset.interaction_mode)}).default(sd.default_reset),render_entities:ba.string().array().optional(),dark_mode:ba.enum(["on","off","auto"]).optional(),triggers:ld.default(sd.triggers),keyboard_shortcuts:Vs.default(sd.keyboard_shortcuts)}).merge(Oc).default(sd),ud=["left","right","top","bottom"],hd=ud,pd={priority:50,enabled:!0},md={priority:50,enabled:!1},gd={alignment:"left",button_size:40,buttons:{camera_ui:pd,cameras:pd,clips:pd,ptz_home:md,display_mode:pd,download:pd,expand:md,frigate:pd,fullscreen:pd,image:md,live:pd,media_player:pd,microphone:{...md,type:"momentary"},mute:md,play:md,ptz_controls:md,recordings:md,screenshot:md,snapshots:pd,substreams:pd,timeline:pd},position:"top",style:"hidden"},fd=Gc.extend({enabled:Gc.shape.enabled.default(pd.enabled),priority:Gc.shape.priority.default(pd.priority)}),_d=Gc.extend({enabled:Gc.shape.enabled.default(md.enabled),priority:Gc.shape.priority.default(md.priority)}),vd=ba.object({style:ba.enum(["none","hidden","overlay","hover","hover-card","outside"]).default(gd.style),position:ba.enum(ud).default(gd.position),alignment:ba.enum(hd).default(gd.alignment),buttons:ba.object({camera_ui:fd.default(gd.buttons.camera_ui),cameras:fd.default(gd.buttons.cameras),clips:fd.default(gd.buttons.clips),ptz_home:_d.default(gd.buttons.ptz_home),display_mode:fd.default(gd.buttons.display_mode),download:fd.default(gd.buttons.download),expand:_d.default(gd.buttons.expand),frigate:fd.default(gd.buttons.frigate),fullscreen:fd.default(gd.buttons.fullscreen),image:_d.default(gd.buttons.image),live:fd.default(gd.buttons.live),media_player:fd.default(gd.buttons.media_player),microphone:_d.extend({type:ba.enum(["momentary","toggle"]).default(gd.buttons.microphone.type)}).default(gd.buttons.microphone),mute:_d.default(gd.buttons.mute),play:_d.default(gd.buttons.play),ptz_controls:_d.default(gd.buttons.ptz_controls),recordings:_d.default(gd.buttons.recordings),screenshot:_d.default(gd.buttons.screenshot),snapshots:fd.default(gd.buttons.snapshots),substreams:fd.default(gd.buttons.substreams),timeline:fd.default(gd.buttons.timeline)}).default(gd.buttons),button_size:ba.number().min(20).default(gd.button_size)}).default(gd),yd={priority:50,enabled:!0},bd={height:46,items:{engine:yd,resolution:yd,technology:yd,title:yd},position:"bottom",style:"popup",popup_seconds:3},wd=ba.object({position:ba.enum(["top","bottom"]).default(bd.position),style:ba.enum(["none","overlay","hover","hover-card","outside","popup"]).default(bd.style),popup_seconds:ba.number().min(0).max(60).default(bd.popup_seconds),height:ba.number().min(20).default(bd.height),items:ba.object({engine:tl.default(bd.items.engine),technology:tl.default(bd.items.technology),resolution:tl.default(bd.items.resolution),title:tl.default(bd.items.title)}).default(bd.items)}).default(bd),xd={auto_play:[...Ys],auto_pause:[...Gs],auto_mute:[...Gs],auto_unmute:[],lazy_load:!0,draggable:!0,zoomable:!0,transition_effect:"slide",snapshot_click_plays_clip:!0,display_mode:"single",controls:{builtin:!0,next_previous:{size:48,style:"thumbnails"},thumbnails:Ol,timeline:Fl,ptz:{...kl,mode:"off"}}},Cd=ql.extend({style:ba.enum(["none","thumbnails","chevrons"]).default(xd.controls.next_previous.style),size:ql.shape.size.default(xd.controls.next_previous.size)}),Md=ba.object({auto_play:ba.enum(Ys).array().default(xd.auto_play),auto_pause:ba.enum(Gs).array().default(xd.auto_pause),auto_mute:ba.enum(Gs).array().default(xd.auto_mute),auto_unmute:ba.enum(Ys).array().default(xd.auto_unmute),lazy_load:ba.boolean().default(xd.lazy_load),draggable:ba.boolean().default(xd.draggable),zoomable:ba.boolean().default(xd.zoomable),transition_effect:Ul.default(xd.transition_effect),snapshot_click_plays_clip:ba.boolean().default(xd.snapshot_click_plays_clip),display:rc,controls:ba.object({builtin:ba.boolean().default(xd.controls.builtin),next_previous:Cd.default(xd.controls.next_previous),ptz:Sl.extend({mode:ba.enum(["off","on"]).default(xd.controls.ptz.mode)}).default(xd.controls.ptz),thumbnails:Dl.default(xd.controls.thumbnails),timeline:Vl.default(xd.controls.timeline)}).default(xd.controls)}).merge(Oc).default(xd),kd={...Ol,show_details:!1},Sd={controls:{thumbnails:kd,filter:{mode:"right"}}},Ed=Dl.extend({show_details:ba.boolean().default(kd.show_details)}),$d=ba.object({controls:ba.object({thumbnails:Ed.default(Sd.controls.thumbnails),filter:ba.object({mode:ba.enum(["none","left","right"]).default(Sd.controls.filter.mode)}).default(Sd.controls.filter)}).default(Sd.controls)}).merge(Oc).default(Sd),Ad={aspect_ratio_mode:"dynamic",aspect_ratio:[16,9],height:"auto"},zd=ba.object({aspect_ratio_mode:ba.enum(["dynamic","static","unconstrained"]).default(Ad.aspect_ratio_mode),aspect_ratio:wl.default(Ad.aspect_ratio),height:ba.string().default(Ad.height)}).default(Ad),Id=ba.object({conditions:_l.array(),merge:ba.object({}).passthrough().optional(),set:ba.object({}).passthrough().optional(),delete:ba.string().array().optional()}).array().optional(),Td=Tc.array(),jd=ba.object({conditions:_l.array(),actions:Td.optional(),actions_not:Td.optional()}).refine((e=>e.actions?.length||e.actions_not?.length),"Automations must include at least one action").array(),Od={features:{animated_progress_indicator:!0,media_chunk_size:50},style:{border_radius:!0,box_shadow:!0}},Dd=ba.object({features:ba.object({animated_progress_indicator:ba.boolean().default(Od.features.animated_progress_indicator),media_chunk_size:ba.number().min(0).max(1e3).default(Od.features.media_chunk_size),max_simultaneous_engine_requests:ba.number().min(1).optional()}).default(Od.features),style:ba.object({border_radius:ba.boolean().default(Od.style.border_radius),box_shadow:ba.boolean().default(Od.style.box_shadow)}).default(Od.style)}).default(Od),Rd={logging:!1},Pd=ba.object({logging:ba.boolean().default(Rd.logging)}).default(Rd),Ld=ba.enum(["casting","low-performance","scrubbing"]).array().optional(),Nd=ba.object({cameras:Ds(od),cameras_global:rd,view:dd,menu:vd,status_bar:wd,live:ed,media_gallery:$d,media_viewer:Md,image:Al,elements:yl,dimensions:zd,timeline:Bl,performance:Dd,debug:Pd,automations:jd.optional(),profiles:Ld,overrides:Id,card_mod:ba.unknown(),card_id:ba.string().regex(tc).optional(),type:ba.string()}),Fd={cameras:ad,view:sd,menu:gd,status_bar:bd,live:Xl,media_gallery:Sd,media_viewer:xd,image:El,timeline:Hl,performance:Od,debug:Rd};function Vd(e){const t=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===t?new e.constructor(+e):"number"==typeof e||"[object Number]"===t||"string"==typeof e||"[object String]"===t?new Date(e):new Date(NaN)}function Hd(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function Bd(e,t){const n=Vd(e);return isNaN(t)?Hd(e,NaN):t?(n.setDate(n.getDate()+t),n):n}function qd(e,t){const n=Vd(e);if(isNaN(t))return Hd(e,NaN);if(!t)return n;const a=n.getDate(),i=Hd(e,n.getTime());i.setMonth(n.getMonth()+t+1,0);return a>=i.getDate()?i:(n.setFullYear(i.getFullYear(),i.getMonth(),a),n)}function Ud(e,t){const{years:n=0,months:a=0,weeks:i=0,days:r=0,hours:o=0,minutes:s=0,seconds:c=0}=t,l=Vd(e),d=a||n?qd(l,a+12*n):l,u=1e3*(c+60*(s+60*o));return Hd(e,(r||i?Bd(d,r+7*i):d).getTime()+u)}const Wd=6048e5,Zd=864e5,Qd=6e4,Gd=36e5,Yd=1e3;let Kd={};function Xd(){return Kd}function Jd(e,t){const n=Xd(),a=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=Vd(e),r=i.getDay(),o=(r=i.getTime()?n+1:t.getTime()>=o.getTime()?n:n-1}function nu(e){const t=Vd(e);return t.setHours(0,0,0,0),t}function au(e){const t=Vd(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function iu(e){if(!(t=e,t instanceof Date||"object"==typeof t&&"[object Date]"===Object.prototype.toString.call(t)||"number"==typeof e))return!1;var t;const n=Vd(e);return!isNaN(Number(n))}function ru(e){return t=>{const n=(e?Math[e]:Math.trunc)(t);return 0===n?0:n}}function ou(e,t){return+Vd(e)-+Vd(t)}function su(e,t,n){const a=ou(e,t)/1e3;return ru(n?.roundingMethod)(a)}const cu={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function lu(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const du={date:lu({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:lu({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:lu({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},uu={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function hu(e){return(t,n)=>{let a;if("formatting"===(n?.context?String(n.context):"standalone")&&e.formattingValues){const t=e.defaultFormattingWidth||e.defaultWidth,i=n?.width?String(n.width):t;a=e.formattingValues[i]||e.formattingValues[t]}else{const t=e.defaultWidth,i=n?.width?String(n.width):e.defaultWidth;a=e.values[i]||e.values[t]}return a[e.argumentCallback?e.argumentCallback(t):t]}}function pu(e){return(t,n={})=>{const a=n.width,i=a&&e.matchPatterns[a]||e.matchPatterns[e.defaultMatchWidth],r=t.match(i);if(!r)return null;const o=r[0],s=a&&e.parsePatterns[a]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(s)?function(e,t){for(let n=0;ne.test(o))):function(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n;return}(s,(e=>e.test(o)));let l;l=e.valueCallback?e.valueCallback(c):c,l=n.valueCallback?n.valueCallback(l):l;return{value:l,rest:t.slice(o.length)}}}var mu;const gu={code:"en-US",formatDistance:(e,t,n)=>{let a;const i=cu[e];return a="string"==typeof i?i:1===t?i.one:i.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+a:a+" ago":a},formatLong:du,formatRelative:(e,t,n,a)=>uu[e],localize:{ordinalNumber:(e,t)=>{const n=Number(e),a=n%100;if(a>20||a<10)switch(a%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:hu({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:hu({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:e=>e-1}),month:hu({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:hu({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:hu({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(mu={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)},(e,t={})=>{const n=e.match(mu.matchPattern);if(!n)return null;const a=n[0],i=e.match(mu.parsePattern);if(!i)return null;let r=mu.valueCallback?mu.valueCallback(i[0]):i[0];return r=t.valueCallback?t.valueCallback(r):r,{value:r,rest:e.slice(a.length)}}),era:pu({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:pu({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:e=>e+1}),month:pu({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:pu({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:pu({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function fu(e){const t=Vd(e),n=function(e,t){const n=nu(e),a=nu(t),i=+n-au(n),r=+a-au(a);return Math.round((i-r)/Zd)}(t,function(e){const t=Vd(e),n=Hd(e,0);return n.setFullYear(t.getFullYear(),0,1),n.setHours(0,0,0,0),n}(t));return n+1}function _u(e){const t=Vd(e),n=+eu(t)-+function(e){const t=tu(e),n=Hd(e,0);return n.setFullYear(t,0,4),n.setHours(0,0,0,0),eu(n)}(t);return Math.round(n/Wd)+1}function vu(e,t){const n=Vd(e),a=n.getFullYear(),i=Xd(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,o=Hd(e,0);o.setFullYear(a+1,0,r),o.setHours(0,0,0,0);const s=Jd(o,t),c=Hd(e,0);c.setFullYear(a,0,r),c.setHours(0,0,0,0);const l=Jd(c,t);return n.getTime()>=s.getTime()?a+1:n.getTime()>=l.getTime()?a:a-1}function yu(e,t){const n=Vd(e),a=+Jd(n,t)-+function(e,t){const n=Xd(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,i=vu(e,t),r=Hd(e,0);return r.setFullYear(i,0,a),r.setHours(0,0,0,0),Jd(r,t)}(n,t);return Math.round(a/Wd)+1}function bu(e,t){return(e<0?"-":"")+Math.abs(e).toString().padStart(t,"0")}const wu={y(e,t){const n=e.getFullYear(),a=n>0?n:1-n;return bu("yy"===t?a%100:a,t.length)},M(e,t){const n=e.getMonth();return"M"===t?String(n+1):bu(n+1,2)},d:(e,t)=>bu(e.getDate(),t.length),a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];default:return"am"===n?"a.m.":"p.m."}},h:(e,t)=>bu(e.getHours()%12||12,t.length),H:(e,t)=>bu(e.getHours(),t.length),m:(e,t)=>bu(e.getMinutes(),t.length),s:(e,t)=>bu(e.getSeconds(),t.length),S(e,t){const n=t.length,a=e.getMilliseconds();return bu(Math.trunc(a*Math.pow(10,n-3)),t.length)}},xu="midnight",Cu="noon",Mu="morning",ku="afternoon",Su="evening",Eu="night",$u={G:function(e,t,n){const a=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(a,{width:"abbreviated"});case"GGGGG":return n.era(a,{width:"narrow"});default:return n.era(a,{width:"wide"})}},y:function(e,t,n){if("yo"===t){const t=e.getFullYear(),a=t>0?t:1-t;return n.ordinalNumber(a,{unit:"year"})}return wu.y(e,t)},Y:function(e,t,n,a){const i=vu(e,a),r=i>0?i:1-i;if("YY"===t){return bu(r%100,2)}return"Yo"===t?n.ordinalNumber(r,{unit:"year"}):bu(r,t.length)},R:function(e,t){return bu(tu(e),t.length)},u:function(e,t){return bu(e.getFullYear(),t.length)},Q:function(e,t,n){const a=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(a);case"QQ":return bu(a,2);case"Qo":return n.ordinalNumber(a,{unit:"quarter"});case"QQQ":return n.quarter(a,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(a,{width:"narrow",context:"formatting"});default:return n.quarter(a,{width:"wide",context:"formatting"})}},q:function(e,t,n){const a=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(a);case"qq":return bu(a,2);case"qo":return n.ordinalNumber(a,{unit:"quarter"});case"qqq":return n.quarter(a,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(a,{width:"narrow",context:"standalone"});default:return n.quarter(a,{width:"wide",context:"standalone"})}},M:function(e,t,n){const a=e.getMonth();switch(t){case"M":case"MM":return wu.M(e,t);case"Mo":return n.ordinalNumber(a+1,{unit:"month"});case"MMM":return n.month(a,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(a,{width:"narrow",context:"formatting"});default:return n.month(a,{width:"wide",context:"formatting"})}},L:function(e,t,n){const a=e.getMonth();switch(t){case"L":return String(a+1);case"LL":return bu(a+1,2);case"Lo":return n.ordinalNumber(a+1,{unit:"month"});case"LLL":return n.month(a,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(a,{width:"narrow",context:"standalone"});default:return n.month(a,{width:"wide",context:"standalone"})}},w:function(e,t,n,a){const i=yu(e,a);return"wo"===t?n.ordinalNumber(i,{unit:"week"}):bu(i,t.length)},I:function(e,t,n){const a=_u(e);return"Io"===t?n.ordinalNumber(a,{unit:"week"}):bu(a,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getDate(),{unit:"date"}):wu.d(e,t)},D:function(e,t,n){const a=fu(e);return"Do"===t?n.ordinalNumber(a,{unit:"dayOfYear"}):bu(a,t.length)},E:function(e,t,n){const a=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(a,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(a,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},e:function(e,t,n,a){const i=e.getDay(),r=(i-a.weekStartsOn+8)%7||7;switch(t){case"e":return String(r);case"ee":return bu(r,2);case"eo":return n.ordinalNumber(r,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(e,t,n,a){const i=e.getDay(),r=(i-a.weekStartsOn+8)%7||7;switch(t){case"c":return String(r);case"cc":return bu(r,t.length);case"co":return n.ordinalNumber(r,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(e,t,n){const a=e.getDay(),i=0===a?7:a;switch(t){case"i":return String(i);case"ii":return bu(i,t.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(a,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(a,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},a:function(e,t,n){const a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(e,t,n){const a=e.getHours();let i;switch(i=12===a?Cu:0===a?xu:a/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(i,{width:"narrow",context:"formatting"});default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},B:function(e,t,n){const a=e.getHours();let i;switch(i=a>=17?Su:a>=12?ku:a>=4?Mu:Eu,t){case"B":case"BB":case"BBB":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(i,{width:"narrow",context:"formatting"});default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){let t=e.getHours()%12;return 0===t&&(t=12),n.ordinalNumber(t,{unit:"hour"})}return wu.h(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getHours(),{unit:"hour"}):wu.H(e,t)},K:function(e,t,n){const a=e.getHours()%12;return"Ko"===t?n.ordinalNumber(a,{unit:"hour"}):bu(a,t.length)},k:function(e,t,n){let a=e.getHours();return 0===a&&(a=24),"ko"===t?n.ordinalNumber(a,{unit:"hour"}):bu(a,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):wu.m(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getSeconds(),{unit:"second"}):wu.s(e,t)},S:function(e,t){return wu.S(e,t)},X:function(e,t,n){const a=e.getTimezoneOffset();if(0===a)return"Z";switch(t){case"X":return zu(a);case"XXXX":case"XX":return Iu(a);default:return Iu(a,":")}},x:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"x":return zu(a);case"xxxx":case"xx":return Iu(a);default:return Iu(a,":")}},O:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+Au(a,":");default:return"GMT"+Iu(a,":")}},z:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+Au(a,":");default:return"GMT"+Iu(a,":")}},t:function(e,t,n){return bu(Math.trunc(e.getTime()/1e3),t.length)},T:function(e,t,n){return bu(e.getTime(),t.length)}};function Au(e,t=""){const n=e>0?"-":"+",a=Math.abs(e),i=Math.trunc(a/60),r=a%60;return 0===r?n+String(i):n+String(i)+t+bu(r,2)}function zu(e,t){if(e%60==0){return(e>0?"-":"+")+bu(Math.abs(e)/60,2)}return Iu(e,t)}function Iu(e,t=""){const n=e>0?"-":"+",a=Math.abs(e);return n+bu(Math.trunc(a/60),2)+t+bu(a%60,2)}const Tu=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},ju=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},Ou={p:ju,P:(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],a=n[1],i=n[2];if(!i)return Tu(e,t);let r;switch(a){case"P":r=t.dateTime({width:"short"});break;case"PP":r=t.dateTime({width:"medium"});break;case"PPP":r=t.dateTime({width:"long"});break;default:r=t.dateTime({width:"full"})}return r.replace("{{date}}",Tu(a,t)).replace("{{time}}",ju(i,t))}},Du=/^D+$/,Ru=/^Y+$/,Pu=["D","DD","YY","YYYY"];function Lu(e){return Du.test(e)}function Nu(e){return Ru.test(e)}function Fu(e,t,n){const a=function(e,t,n){const a="Y"===e[0]?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${a} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}(e,t,n);if(console.warn(a),Pu.includes(e))throw new RangeError(a)}const Vu=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Hu=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Bu=/^'([^]*?)'?$/,qu=/''/g,Uu=/[a-zA-Z]/;function Wu(e,t,n){const a=Xd(),i=n?.locale??a.locale??gu,r=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,o=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??a.weekStartsOn??a.locale?.options?.weekStartsOn??0,s=Vd(e);if(!iu(s))throw new RangeError("Invalid time value");let c=t.match(Hu).map((e=>{const t=e[0];if("p"===t||"P"===t){return(0,Ou[t])(e,i.formatLong)}return e})).join("").match(Vu).map((e=>{if("''"===e)return{isToken:!1,value:"'"};const t=e[0];if("'"===t)return{isToken:!1,value:Zu(e)};if($u[t])return{isToken:!0,value:e};if(t.match(Uu))throw new RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return{isToken:!1,value:e}}));i.localize.preprocessor&&(c=i.localize.preprocessor(s,c));const l={firstWeekContainsDate:r,weekStartsOn:o,locale:i};return c.map((a=>{if(!a.isToken)return a.value;const r=a.value;(!n?.useAdditionalWeekYearTokens&&Nu(r)||!n?.useAdditionalDayOfYearTokens&&Lu(r))&&Fu(r,t,String(e));return(0,$u[r[0]])(s,r,i.localize,l)})).join("")}function Zu(e){const t=e.match(Bu);return t?t[1].replace(qu,"'"):e}function Qu(e,t){const{years:n=0,months:a=0,weeks:i=0,days:r=0,hours:o=0,minutes:s=0,seconds:c=0}=t,l=function(e,t){return qd(e,-t)}(e,a+12*n),d=function(e,t){return Bd(e,-t)}(l,r+7*i),u=1e3*(c+60*(s+60*o));return Hd(e,d.getTime()-u)}function Gu(e,t){return e===t||e!=e&&t!=t}function Yu(e,t){for(var n=e.length;n--;)if(Gu(e[n][0],t))return n;return-1}var Ku=Array.prototype.splice;function Xu(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1},Xu.prototype.set=function(e,t){var n=this.__data__,a=Yu(n,e);return a<0?(++this.size,n.push([e,t])):n[a][1]=t,this};var Ju="object"==typeof global&&global&&global.Object===Object&&global,eh="object"==typeof self&&self&&self.Object===Object&&self,th=Ju||eh||Function("return this")(),nh=th.Symbol,ah=Object.prototype,ih=ah.hasOwnProperty,rh=ah.toString,oh=nh?nh.toStringTag:void 0;var sh=Object.prototype.toString;var ch="[object Null]",lh="[object Undefined]",dh=nh?nh.toStringTag:void 0;function uh(e){return null==e?void 0===e?lh:ch:dh&&dh in Object(e)?function(e){var t=ih.call(e,oh),n=e[oh];try{e[oh]=void 0;var a=!0}catch(e){}var i=rh.call(e);return a&&(t?e[oh]=n:delete e[oh]),i}(e):function(e){return sh.call(e)}(e)}function hh(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}var ph="[object AsyncFunction]",mh="[object Function]",gh="[object GeneratorFunction]",fh="[object Proxy]";function _h(e){if(!hh(e))return!1;var t=uh(e);return t==mh||t==gh||t==ph||t==fh}var vh,yh=th["__core-js_shared__"],bh=(vh=/[^.]+$/.exec(yh&&yh.keys&&yh.keys.IE_PROTO||""))?"Symbol(src)_1."+vh:"";var wh=Function.prototype.toString;function xh(e){if(null!=e){try{return wh.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var Ch=/^\[object .+?Constructor\]$/,Mh=Function.prototype,kh=Object.prototype,Sh=Mh.toString,Eh=kh.hasOwnProperty,$h=RegExp("^"+Sh.call(Eh).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ah(e){return!(!hh(e)||(t=e,bh&&bh in t))&&(_h(e)?$h:Ch).test(xh(e));var t}function zh(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return Ah(n)?n:void 0}var Ih=zh(th,"Map"),Th=zh(Object,"create");var jh=Object.prototype.hasOwnProperty;var Oh=Object.prototype.hasOwnProperty;function Dh(e){var t=-1,n=null==e?0:e.length;for(this.clear();++ts))return!1;var l=r.get(e),d=r.get(t);if(l&&d)return l==t&&d==e;var u=-1,h=!0,p=n&Bh?new Nh:void 0;for(r.set(e,t),r.set(t,e);++u-1&&e%1==0&&e-1&&e%1==0&&e<=Ap}var Ip={};function Tp(e){return function(t){return e(t)}}Ip["[object Float32Array]"]=Ip["[object Float64Array]"]=Ip["[object Int8Array]"]=Ip["[object Int16Array]"]=Ip["[object Int32Array]"]=Ip["[object Uint8Array]"]=Ip["[object Uint8ClampedArray]"]=Ip["[object Uint16Array]"]=Ip["[object Uint32Array]"]=!0,Ip["[object Arguments]"]=Ip["[object Array]"]=Ip["[object ArrayBuffer]"]=Ip["[object Boolean]"]=Ip["[object DataView]"]=Ip["[object Date]"]=Ip["[object Error]"]=Ip["[object Function]"]=Ip["[object Map]"]=Ip["[object Number]"]=Ip["[object Object]"]=Ip["[object RegExp]"]=Ip["[object Set]"]=Ip["[object String]"]=Ip["[object WeakMap]"]=!1;var jp="object"==typeof exports&&exports&&!exports.nodeType&&exports,Op=jp&&"object"==typeof module&&module&&!module.nodeType&&module,Dp=Op&&Op.exports===jp&&Ju.process,Rp=function(){try{var e=Op&&Op.require&&Op.require("util").types;return e||Dp&&Dp.binding&&Dp.binding("util")}catch(e){}}(),Pp=Rp,Lp=Pp&&Pp.isTypedArray,Np=Lp?Tp(Lp):function(e){return fp(e)&&zp(e.length)&&!!Ip[uh(e)]},Fp=Object.prototype.hasOwnProperty;function Vp(e,t){var n=dp(e),a=!n&&wp(e),i=!n&&!a&&kp(e),r=!n&&!a&&!i&&Np(e),o=n||a||i||r,s=o?function(e,t){for(var n=-1,a=Array(e);++n0){if(++og>=800)return arguments[0]}else og=0;return rg.apply(void 0,arguments)});function lg(e,t){return cg(function(e,t,n){return t=tg(void 0===t?e.length-1:t,0),function(){for(var a=arguments,i=-1,r=tg(a.length-t,0),o=Array(r);++i1?n[i-1]:void 0,o=i>2?n[2]:void 0;for(r=e.length>3&&"function"==typeof r?(i--,r):void 0,o&&dg(n[0],n[1],o)&&(r=i<3?void 0:r,i=1),t=Object(t);++a-1}function Ng(e,t,n){for(var a=-1,i=null==e?0:e.length;++a=Vg){var l=t?null:Fg(e);if(l)return Zh(l);o=!1,i=Vh,c=new Nh}else c=t?[]:s;e:for(;++ae[0].toUpperCase()+e.substring(1))).join(" ")}function Ug(e,t,n){const a=e[t];return e.splice(t,1),e.splice(n,0,a),e}const Wg=e=>Array.isArray(e)?e:[e],Zg=e=>e instanceof Set?e:new Set(Wg(e));function Qg(e,t,n){return!function(e,t,n){var a=(n="function"==typeof n?n:void 0)?n(e,t):void 0;return void 0===a?bm(e,t,void 0,n):!!a}(e,t,n)}function Gg(e,t=console.warn){e instanceof zs&&e.context?t(e,e.context):t("object"==typeof e&&"message"in e?e.message:e)}const Yg=()=>window.matchMedia("(hover: hover) and (pointer: fine)").matches,Kg=(e,t)=>Wu(e,"yyyy-MM-dd HH:mm"+(t?":ss":"")),Xg=e=>Wu(e,"yyyy-MM-dd"),Jg=(e,t)=>{window.requestIdleCallback?window.requestIdleCallback(e,{...t&&{timeout:t}}):e()};function ef(e,t){const n=function(e,t,n){const a=ou(e,t)/Gd;return ru(n?.roundingMethod)(a)}(t,e),a=function(e,t,n){const a=ou(e,t)/Qd;return ru(n?.roundingMethod)(a)}(t,e)-60*n;let i="";return n&&(i+=`${n}h `),a&&(i+=`${a}m `),i+=`${su(t,e)-60*n*60-60*a}s`,i}const tf=async(e,t)=>await Promise.all(Array.from(e).map((e=>t(e)))),nf=e=>new Date(`${e}T00:00:00`),af=async e=>{await new Promise((t=>setTimeout(t,1e3*e)))},rf=e=>!isNaN(e.getTime()),of=(e,t,n,a)=>{t?e.setAttribute(n,a??""):e.removeAttribute(n)},sf=e=>!!e,cf=e=>e instanceof HTMLElement,lf=e=>(e instanceof HTMLSlotElement?e.assignedElements({flatten:!0}):[...e.children]).filter(cf),df=e=>e?.ratio&&2===e.ratio.length?`${e.ratio[0]} / ${e.ratio[1]}`:e?.defaultStatic?"16 / 9":"auto",uf=e=>({"aspect-ratio":df(e)}),hf=e=>{if(Array.isArray(e))return e.filter((e=>void 0!==e)).map((e=>hf(e)));if("object"==typeof e&&null!==e){const t={};for(const n in e)t[n]=hf(e[n]);return t}return e},pf=(e,t,n)=>Rg(e,n)===Rg(t,n);function mf(e){if(!e)return null;const t=Ic.safeParse(e);return t.success?t.data:null}function gf(e,t){return{action:"fire-dom-event",frigate_card_action:e,...t?.cardID&&{card_id:t.cardID}}}function ff(e,t,n){return{action:"fire-dom-event",frigate_card_action:e,camera:t,...n?.cardID&&{card_id:n.cardID}}}function _f(e,t,n){return{action:"fire-dom-event",frigate_card_action:"media_player",media_player:e,media_player_action:t,...n?.cardID&&{card_id:n.cardID}}}function vf(e){return{action:"fire-dom-event",frigate_card_action:"ptz_multi",...e?.cardID&&{card_id:e.cardID},...e?.ptzAction&&{ptz_action:e.ptzAction},...e?.ptzPhase&&{ptz_phase:e.ptzPhase},...e?.ptzPreset&&{ptz_preset:e.ptzPreset},...e?.targetID&&{target_id:e.targetID}}}function yf(e,t){return e&&t?"tap"===e&&t.tap_action?t.tap_action:"hold"===e&&t.hold_action?t.hold_action:"double_tap"===e&&t.double_tap_action?t.double_tap_action:"end_tap"===e&&t.end_tap_action?t.end_tap_action:"start_tap"===e&&t.start_tap_action?t.start_tap_action:null:null}const bf=e=>Wg(e).some((e=>function(e){return void 0!==e&&"none"!==e.action}(e))),wf=e=>{e.stopPropagation()};class xf{constructor(){this._timer=null,this._repeated=!1}stop(){this._timer&&(this._repeated?window.clearInterval(this._timer):window.clearTimeout(this._timer),this._timer=null)}isRunning(){return null!==this._timer}start(e,t){this.stop(),this._timer=window.setTimeout((()=>{this._timer=null,t()}),1e3*e),this._repeated=!1}startRepeated(e,t){this.stop(),this._timer=window.setInterval((()=>{t()}),1e3*e),this._repeated=!0}}class Cf extends HTMLElement{constructor(){super(...arguments),this.holdTime=.4,this.holdTimer=new xf,this.doubleClickTimer=new xf,this.held=!1,this.started=!1}connectedCallback(){["touchcancel","mouseout","mouseup","touchmove","mousewheel","wheel","scroll"].forEach((e=>{document.addEventListener(e,(()=>{this.holdTimer.stop()}),{passive:!0})}))}bind(e,t){if(e.actionHandlerOptions)return void(e.actionHandlerOptions=t);e.actionHandlerOptions=t,e.addEventListener("contextmenu",(e=>{const t=e||window.event;return t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation(),t.cancelBubble=!0,t.returnValue=!1,!1}));const n=()=>{this.held=!1,this.holdTimer.start(this.holdTime,(()=>{this.held=!0})),this.started||(this.started=!0,et(e,"action",{action:"start_tap"}))},a=t=>{this.holdTimer.stop(),this.started&&(this.started=!1,et(e,"action",{action:"end_tap"}))},i=t=>{const n=e.actionHandlerOptions;n?.allowPropagation||wf(t),["touchend","touchcancel"].includes(t.type)&&!this.held||(a(),n?.hasHold&&this.held?et(e,"action",{action:"hold"}):n?.hasDoubleClick?"click"===t.type&&t.detail<2||!this.doubleClickTimer.isRunning()?this.doubleClickTimer.start(.25,(()=>et(e,"action",{action:"tap"}))):(this.doubleClickTimer.stop(),et(e,"action",{action:"double_tap"})):et(e,"action",{action:"tap"}))};e.addEventListener("touchstart",n,{passive:!0}),e.addEventListener("touchend",i),e.addEventListener("touchcancel",i),e.addEventListener("mousedown",n,{passive:!0}),e.addEventListener("click",i),e.addEventListener("keyup",(e=>{"Enter"===e.key&&i(e)})),e.addEventListener("mouseleave",a)}}customElements.define("action-handler-frigate-card",Cf);const Mf=(e,t)=>{const n=(()=>{const e=document.body;if(e.querySelector("action-handler-frigate-card"))return e.querySelector("action-handler-frigate-card");const t=document.createElement("action-handler-frigate-card");return e.appendChild(t),t})();n&&n.bind(e,t)},kf=ge(class extends fe{update(e,[t]){return Mf(e.element,t),U}render(e){}});var Sf=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)lp(t,gp(e)),e=Pm(e);return t}:hp;function Ef(e){return up(e,Km,Sf)}var $f=Object.prototype.hasOwnProperty;var Af=/\w*$/;var zf=nh?nh.prototype:void 0,If=zf?zf.valueOf:void 0;var Tf="[object Boolean]",jf="[object Date]",Of="[object Map]",Df="[object Number]",Rf="[object RegExp]",Pf="[object Set]",Lf="[object String]",Nf="[object Symbol]",Ff="[object ArrayBuffer]",Vf="[object DataView]",Hf="[object Float32Array]",Bf="[object Float64Array]",qf="[object Int8Array]",Uf="[object Int16Array]",Wf="[object Int32Array]",Zf="[object Uint8Array]",Qf="[object Uint8ClampedArray]",Gf="[object Uint16Array]",Yf="[object Uint32Array]";function Kf(e,t,n){var a,i,r,o=e.constructor;switch(t){case Ff:return Tm(e);case Tf:case jf:return new o(+e);case Vf:return function(e,t){var n=t?Tm(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case Hf:case Bf:case qf:case Uf:case Wf:case Zf:case Qf:case Gf:case Yf:return jm(e,n);case Of:return new o;case Df:case Lf:return new o(e);case Rf:return(r=new(i=e).constructor(i.source,Af.exec(i))).lastIndex=i.lastIndex,r;case Pf:return new o;case Nf:return a=e,If?Object(If.call(a)):{}}}var Xf=Pp&&Pp.isMap,Jf=Xf?Tp(Xf):function(e){return fp(e)&&"[object Map]"==pm(e)};var e_=Pp&&Pp.isSet,t_=e_?Tp(e_):function(e){return fp(e)&&"[object Set]"==pm(e)},n_=1,a_=2,i_=4,r_="[object Arguments]",o_="[object Function]",s_="[object GeneratorFunction]",c_="[object Object]",l_={};function d_(e,t,n,a,i,r){var o,s=t&n_,c=t&a_,l=t&i_;if(n&&(o=i?n(e,a,i,r):n(e)),void 0!==o)return o;if(!hh(e))return e;var d=dp(e);if(d){if(o=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&$f.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!s)return Om(e,o)}else{var u=pm(e),h=u==o_||u==s_;if(kp(e))return Im(e,s);if(u==c_||u==r_||h&&!i){if(o=c||h?{}:Lm(e),!s)return c?function(e,t){return Qm(e,Sf(e),t)}(e,function(e,t){return e&&Qm(t,Km(t),e)}(o,e)):function(e,t){return Qm(e,gp(e),t)}(e,function(e,t){return e&&Qm(t,Qp(t),e)}(o,e))}else{if(!l_[u])return i?e:{};o=Kf(e,u,s)}}r||(r=new Lh);var p=r.get(e);if(p)return p;r.set(e,o),t_(e)?e.forEach((function(a){o.add(d_(a,t,n,a,e,r))})):Jf(e)&&e.forEach((function(a,i){o.set(i,d_(a,t,n,i,e,r))}));var m=d?void 0:(l?c?Ef:Gp:c?Km:Qp)(e);return function(e,t){for(var n=-1,a=null==e?0:e.length;++nvoid 0===globalThis.DOMException?new __(e):new DOMException(e),y_=e=>{const t=void 0===e.reason?v_("This operation was aborted."):e.reason;return t instanceof Error?t:v_(t)};class b_{#e=[];enqueue(e,t){const n={priority:(t={priority:0,...t}).priority,run:e};if(this.size&&this.#e[this.size-1].priority>=t.priority)return void this.#e.push(n);const a=function(e,t,n){let a=0,i=e.length;for(;i>0;){const r=Math.trunc(i/2);let o=a+r;n(e[o],t)<=0?(a=++o,i-=r+1):i=r}return a}(this.#e,n,((e,t)=>t.priority-e.priority));this.#e.splice(a,0,n)}dequeue(){const e=this.#e.shift();return e?.run}filter(e){return this.#e.filter((t=>t.priority===e.priority)).map((e=>e.run))}get size(){return this.#e.length}}class w_ extends g_{#t;#n;#a=0;#i;#r;#o=0;#s;#c;#e;#l;#d=0;#u;#h;#p;timeout;constructor(e){if(super(),!("number"==typeof(e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:b_,...e}).intervalCap&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${typeof e.intervalCap})`);if(void 0===e.interval||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??""}\` (${typeof e.interval})`);this.#t=e.carryoverConcurrencyCount,this.#n=e.intervalCap===Number.POSITIVE_INFINITY||0===e.interval,this.#i=e.intervalCap,this.#r=e.interval,this.#e=new e.queueClass,this.#l=e.queueClass,this.concurrency=e.concurrency,this.timeout=e.timeout,this.#p=!0===e.throwOnTimeout,this.#h=!1===e.autoStart}get#m(){return this.#n||this.#a{this.#v()}),t)),!0;this.#a=this.#t?this.#d:0}return!1}#_(){if(0===this.#e.size)return this.#s&&clearInterval(this.#s),this.#s=void 0,this.emit("empty"),0===this.#d&&this.emit("idle"),!1;if(!this.#h){const e=!this.#w;if(this.#m&&this.#g){const t=this.#e.dequeue();return!!t&&(this.emit("active"),t(),e&&this.#b(),!0)}}return!1}#b(){this.#n||void 0!==this.#s||(this.#s=setInterval((()=>{this.#y()}),this.#r),this.#o=Date.now()+this.#r)}#y(){0===this.#a&&0===this.#d&&this.#s&&(clearInterval(this.#s),this.#s=void 0),this.#a=this.#t?this.#d:0,this.#x()}#x(){for(;this.#_(););}get concurrency(){return this.#u}set concurrency(e){if(!("number"==typeof e&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#u=e,this.#x()}async#C(e){return new Promise(((t,n)=>{e.addEventListener("abort",(()=>{n(e.reason)}),{once:!0})}))}async add(e,t={}){return t={timeout:this.timeout,throwOnTimeout:this.#p,...t},new Promise(((n,a)=>{this.#e.enqueue((async()=>{this.#d++,this.#a++;try{t.signal?.throwIfAborted();let a=e({signal:t.signal});t.timeout&&(a=function(e,t){const{milliseconds:n,fallback:a,message:i,customTimers:r={setTimeout:setTimeout,clearTimeout:clearTimeout}}=t;let o;const s=new Promise(((s,c)=>{if("number"!=typeof n||1!==Math.sign(n))throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${n}\``);if(t.signal){const{signal:e}=t;e.aborted&&c(y_(e)),e.addEventListener("abort",(()=>{c(y_(e))}))}if(n===Number.POSITIVE_INFINITY)return void e.then(s,c);const l=new f_;o=r.setTimeout.call(void 0,(()=>{if(a)try{s(a())}catch(e){c(e)}else"function"==typeof e.cancel&&e.cancel(),!1===i?s():i instanceof Error?c(i):(l.message=i??`Promise timed out after ${n} milliseconds`,c(l))}),n),(async()=>{try{s(await e)}catch(e){c(e)}})()})),c=s.finally((()=>{c.clear()}));return c.clear=()=>{r.clearTimeout.call(void 0,o),o=void 0},c}(Promise.resolve(a),{milliseconds:t.timeout})),t.signal&&(a=Promise.race([a,this.#C(t.signal)]));const i=await a;n(i),this.emit("completed",i)}catch(e){if(e instanceof f_&&!t.throwOnTimeout)return void n();a(e),this.emit("error",e)}finally{this.#f()}}),t),this.emit("add"),this.#_()}))}async addAll(e,t){return Promise.all(e.map((async e=>this.add(e,t))))}start(){return this.#h?(this.#h=!1,this.#x(),this):this}pause(){this.#h=!0}clear(){this.#e=new this.#l}async onEmpty(){0!==this.#e.size&&await this.#M("empty")}async onSizeLessThan(e){this.#e.sizethis.#e.size{const a=()=>{t&&!t()||(this.off(e,a),n())};this.on(e,a)}))}get size(){return this.#e.size}sizeBy(e){return this.#e.filter(e).length}get pending(){return this.#d}get isPaused(){return this.#h}}var x_={frigate_card:"Frigate card",frigate_card_description:"A Lovelace card for use with Frigate",live:"Live",no_media:"No media to display",recordings:"Recordings",version:"Version"},C_={cameras:{camera_entity:"Camera Entity",capabilities:{capabilities:{clips:"Clips","favorite-events":"Favorite Events","favorite-recordings":"Favorite Recordings",live:"Live",menu:"Menu",ptz:"PTZ",recordings:"Recordings",seek:"Seeking",snapshots:"Snapshots",substream:"Substream"},disable:"Disable",disable_except:"Disable except",editor_label:"Camera capabilities"},cast:{dashboard:{dashboard_path:"Dashboard path",view_path:"View path"},editor_label:"Cast options",method:"Cast method",methods:{dashboard:"Dashboard",standard:"Standard"}},dependencies:{all_cameras:"Show events for all cameras with this camera",cameras:"Show events for specific cameras with this camera",editor_label:"Dependency options"},dimensions:{aspect_ratio:"Static aspect ratio",editor_label:"Camera dimensions",layout:{editor_label:"Camera Layout",fit:"Layout fit",fits:{contain:"Media is contained/letterboxed",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",y:"Vertical placement percentage"},view_box:{bottom:"Bottom inset percentage",editor_label:"Layout View Box",left:"Left inset percentage",right:"Right inset percentage",top:"Top inset percentage"},zoom:"Zoom factor"}},engines:{editor_label:"Camera engine options"},frigate:{camera_name:"Frigate camera name (Autodetected from entity)",client_id:"Frigate client id (For >1 Frigate server)",editor_label:"Frigate options",labels:"Frigate labels/object filters",url:"Frigate server URL",zones:"Frigate zones"},go2rtc:{editor_label:"go2rtc Options",modes:{editor_label:"go2rtc Modes",mjpeg:"Motion JPEG (MJPEG)",mp4:"MPEG-4 (MP4)",mse:"Media Source Extensions (MSE)",webrtc:"Web Real-Time Communication (WebRTC)"},stream:"go2rtc stream name"},icon:"Icon for this camera (Autodetected from entity)",id:"Unique id for this camera in this card",image:{editor_label:"Image Options",refresh_seconds:"Number of seconds after which to refresh live image (0=never)",url:"Image URL to use instead of camera entity snapshot"},live_provider:"Live view provider for this camera",live_provider_options:{editor_label:"Live provider options"},live_providers:{auto:"Automatic",go2rtc:"go2rtc",ha:"Home Assistant video stream (i.e. HLS, LL-HLS, WebRTC via HA)",image:"Home Assistant images",jsmpeg:"JSMpeg","webrtc-card":"WebRTC Card (i.e. AlexxIT's WebRTC Card)"},motioneye:{editor_label:"MotionEye options",images:{directory_pattern:"Images directory pattern",file_pattern:"Images file pattern"},movies:{directory_pattern:"Movies directory pattern",file_pattern:"Movies file pattern"},url:"MotionEye UI URL"},proxy:{dynamic:"Dynamic proxying",editor_label:"Camera proxying",media:{auto:"Media proxying automatically configured",editor_label:"Media proxying",false:"Media proxying disabled",true:"Media proxying enabled"},ssl_ciphers:{auto:"SSL ciphers automatically configured",default:"Default SSL ciphers",editor_label:"SSL ciphers",insecure:"Insecure SSL ciphers",intermediate:"Intermediate SSL ciphers",modern:"Modern SSL ciphers"},ssl_verification:{auto:"SSL verification automatically configured",editor_label:"SSL verification",false:"SSL verification disabled",true:"SSL verification enabled"}},reolink:{editor_label:"Reolink options",media_resolution:{editor_label:"Media Resolution",high:"High Resolution",low:"Low Resolution"},url:"Reolink UI URL"},title:"Title for this camera (Autodetected from entity)",triggers:{editor_label:"Trigger options",entities:"Trigger from other entities",events:{clips:"Events with new clips",editor_label:"Trigger Events",events:"All events",snapshots:"Events with new snapshots"},motion:"Trigger by auto-detecting the motion sensor",occupancy:"Trigger by auto-detecting the occupancy sensor"},webrtc_card:{editor_label:"WebRTC Card Options",entity:"WebRTC Card Camera Entity (Not a Frigate camera)",url:"WebRTC Card Camera URL"}},common:{controls:{builtin:"Built-in video controls",filter:{editor_label:"Media Filter",mode:"Filter mode",modes:{left:"Media filter in a drawer to the left",none:"No media filter",right:"Media filter in a drawer to the right"}},next_previous:{editor_label:"Next & Previous",size:"Next & previous control size in pixels",style:"Next & previous control style",styles:{chevrons:"Chevrons",icons:"Icons",none:"None",thumbnails:"Thumbnails"}},thumbnails:{editor_label:"Thumbnails",events_media_type:"Whether to show event thumbnails of clips or snapshots",events_media_types:{clips:"Clip thumbnails",snapshots:"Snapshot thumbnails"},media_type:"Whether to show thumnails of events or recordings",media_types:{events:"Events",recordings:"Recordings"},mode:"Thumbnails mode",modes:{above:"Thumbnails above",below:"Thumbnails below",left:"Thumbnails in a drawer to the left",none:"No thumbnails",right:"Thumbnails in a drawer to the right"},show_details:"Show details with thumbnails",show_download_control:"Show download control on thumbnails",show_favorite_control:"Show favorite control on thumbnails",show_timeline_control:"Show timeline control on thumbnails",size:"Thumbnails size in pixels"},timeline:{editor_label:"Mini Timeline",mode:"Mode",modes:{above:"Above",below:"Below",none:"None"},pan_mode:"Default pan mode",pan_modes:{pan:"Pan",seek:"Pan seeks across all media","seek-in-camera":"Pan seeks within selected camera only","seek-in-media":"Pan seeks within selected media item only"}}},display:{editor_label:"Display",grid_columns:"Exact number of grid columns",grid_max_columns:"Maximum number of grid columns",grid_selected_width_factor:"Increase selected media width by this factor",mode:"Mode"},image:{entity:"Entity for use with entity mode",entity_parameters:"Query parameters added to the entity-based picture URLs (e.g. width=1920&height=1080)",mode:"Image mode",modes:{camera:"Home Assistant camera snapshot of camera entity",entity:"Entity with entity_picture attribute",screensaver:"Embedded Frigate logo",url:"Arbitrary image specified by URL"},refresh_seconds:"Number of seconds after which to refresh (0=never)",url:"Static image URL"},media_action_conditions:{all:"All opportunities",hidden:"On browser/tab hiding",microphone_mute:"On microphone mute",microphone_unmute:"On microphone unmute",never:"Never",selected:"On selection",unselected:"On unselection",visible:"On browser/tab visibility"},timeline:{clustering_threshold:"The count of events at which they are clustered (0=no clustering)",events_media_type:"The events media the timeline displays",events_media_types:{all:"All event media types",clips:"Clips",snapshots:"Snapshots"},show_recordings:"Show recordings",style:"Timeline style",styles:{ribbon:"Events on a single ribbon",stack:"Stacked & clustered events"},window_seconds:"The default length of the timeline view in seconds"}},dimensions:{aspect_ratio:"Default aspect ratio (e.g. '16:9')",aspect_ratio_mode:"Aspect ratio mode",aspect_ratio_modes:{dynamic:"Aspect ratio adjusts to media",static:"Static aspect ratio",unconstrained:"Unconstrained aspect ratio"},height:"Card height in CSS units (e.g. '500px')"},live:{auto_mute:"Automatically mute live cameras",auto_pause:"Automatically pause live cameras",auto_play:"Automatically play live cameras",auto_unmute:"Automatically unmute live cameras",controls:{editor_label:"Live Controls",ptz:{editor_label:"PTZ",hide_home:"Hide home control",hide_pan_tilt:"Hide pan & tilt control",hide_zoom:"Hide zoom control",mode:"Mode",modes:{off:"Off",on:"On"},orientation:"Orientation",orientations:{horizontal:"Horizontal",vertical:"Vertical"},position:"Position",positions:{"bottom-left":"Bottom left","bottom-right":"Bottom right","top-left":"Top left","top-right":"Top right"}}},draggable:"Live cameras view can be dragged/swiped",lazy_load:"Live cameras are lazily loaded",lazy_unload:"Live cameras are lazily unloaded",microphone:{always_connected:"Always keep the microphone connected",disconnect_seconds:"Seconds after which to disconnect microphone (0=never)",editor_label:"Microphone",enabled:"Microphone enabled",mute_after_microphone_mute_seconds:"Seconds after microphone mute to mute inbound audio"},preload:"Preload live view in the background",show_image_during_load:"Show still image while the live stream is loading",transition_effect:"Live camera transition effect",zoomable:"Live cameras can be zoomed/panned"},media_viewer:{auto_mute:"Automatically mute media",auto_pause:"Automatically pause media",auto_play:"Automatically play media",auto_unmute:"Automatically unmute media",controls:{editor_label:"Media Viewer Controls"},draggable:"Media Viewer can be dragged/swiped",lazy_load:"Media Viewer media is lazily loaded in carousel",snapshot_click_plays_clip:"Clicking on a snapshot plays a related clip",transition_effect:"Media Viewer transition effect",transition_effects:{none:"No transition",slide:"Slide transition"},zoomable:"Media Viewer can be zoomed/panned"},menu:{alignment:"Menu alignment",alignments:{bottom:"Aligned to the bottom",left:"Aligned to the left",right:"Aligned to the right",top:"Aligned to the top"},button_size:"Menu button size in pixels",buttons:{alignment:"Button alignment",alignments:{matching:"Matching the menu alignment",opposing:"Opposing the menu alignment"},camera_ui:"Camera user interface",cameras:"Cameras",clips:"Clips",display_mode:"Display mode",download:"Download",enabled:"Button enabled",expand:"Expand",frigate:"Frigate menu / Default view",fullscreen:"Fullscreen",icon:"Icon",image:"Image",live:"Live",media_player:"Send to media player",microphone:"Microphone",mute:"Mute / Unmute",permanent:"Show when the menu is hidden",play:"Play / Pause",priority:"Priority",ptz_controls:"Show PTZ controls",ptz_home:"PTZ Home",recordings:"Recordings",screenshot:"Screenshot",snapshots:"Snapshots",substreams:"Substream(s)",timeline:"Timeline",type:"Button type",types:{momentary:"Momentary",toggle:"Toggle"}},position:"Menu position",positions:{bottom:"Positioned on the bottom",left:"Positioned on the left",right:"Positioned on the right",top:"Positioned on the top"},style:"Menu style",styles:{hidden:"Hidden menu",hover:"Hover menu","hover-card":"Hover menu (card-wide)",none:"No menu",outside:"Outside menu",overlay:"Overlay menu"}},overrides:{info:"This card configuration has manually specified overrides configured which may override values shown in the visual editor, please consult the code editor to view/modify these overrides"},performance:{features:{animated_progress_indicator:"Animated Progress Indicator",editor_label:"Feature Options",max_simultaneous_engine_requests:"Max simultaneous camera engine requests",media_chunk_size:"Media chunk size"},style:{border_radius:"Curves",box_shadow:"Shadows",editor_label:"Style Options"},warning:"This card is in low profile mode so defaults have changed to optimize performance"},profiles:{casting:"Casting",editor_label:"Configuration profiles","low-performance":"Low performance",scrubbing:"Video scrubbing"},status_bar:{height:"Status bar height in pixels",items:{enabled:"Item enabled",engine:"Camera engine",live_provider:"Live provider",priority:"Item priority",resolution:"Resolution",technology:"Technology",title:"Title"},popup_seconds:"Status bar popup seconds",position:"Status bar position",positions:{bottom:"Positioned on the bottom",top:"Positioned on the top"},style:"Status bar style",styles:{hover:"Hover status bar","hover-card":"Hover status bar (card-wide)",none:"No status bar",outside:"Outside status bar",overlay:"Overlay status bar",popup:"Popup status bar"}},view:{camera_select:"View for newly selected cameras",dark_mode:"Dark mode",dark_modes:{auto:"Auto",off:"Off",on:"On"},default:"Default view",default_cycle_camera:"Cycle through cameras when default view updates",default_reset:{after_interaction:"Reset to the default view after user interaction ends",editor_label:"Default view reset behavior",entities:"Reset to the default view on entity state change",every_seconds:"Reset to default view every X seconds (0=never)",interaction_mode:"How default reset behaves when the card has human interaction",interaction_modes:{active:"Only allow reset when card has active human interaction",all:"Reset regardless of human interaction",inactive:"Only reset when card has no human interaction"}},interaction_seconds:"Seconds after user action to remain interacted with (0=never)",keyboard_shortcuts:{editor_label:"Keyboard shortcuts",enabled:"Keyboard shortcuts enabled",ptz_down:"PTZ Down",ptz_home:"PTZ Home",ptz_left:"PTZ Left",ptz_right:"PTZ Right",ptz_up:"PTZ Up",ptz_zoom_in:"PTZ Zoom In",ptz_zoom_out:"PTZ Zoom Out"},triggers:{actions:{editor_label:"Trigger actions",interaction_mode:"How to handle actions when the card has human interaction",interaction_modes:{active:"Only trigger actions when card has human interaction",all:"Trigger actions regardless of human interaction",inactive:"Only trigger actions when card has no human interaction"},trigger:"Trigger action",triggers:{default:"Change to or update default view",live:"Change to or update live view",media:"Change to the relevant media view for new media",none:"No action"},untrigger:"Untrigger action",untriggers:{default:"Change to default view/camera",none:"No action"}},editor_label:"Trigger behavior",filter_selected_camera:"Only trigger on selected camera",show_trigger_status:"Show pulsing border when triggered",untrigger_seconds:"Seconds after inactive state change to untrigger"},views:{clip:"Most recent clip",clips:"Clips gallery",current:"Current view",image:"Static image",live:"Live view",recording:"Most recent recording",recordings:"Recordings gallery",snapshot:"Most recent snapshot",snapshots:"Snapshots gallery",timeline:"Timeline view"}}},M_={grid:"Show media viewer for each camera in a grid",single:"Show single media viewer"},k_={add_new_camera:"Add new camera",button:"Button",camera:"Camera",cameras:"Cameras",cameras_secondary:"What cameras to render on this card",delete:"Delete",dimensions:"Card dimensions",dimensions_secondary:"Card dimensions & shape options",image:"Image",image_secondary:"Static image view options",live:"Live",live_secondary:"Live camera view options",media_gallery:"Media gallery",media_gallery_secondary:"Media gallery options",media_viewer:"Media viewer",media_viewer_secondary:"Viewer for static media (clips, snapshots or recordings)",menu:"Menu",menu_secondary:"Menu look & feel options",move_down:"Move down",move_up:"Move up",overrides:"Overrides are active",overrides_secondary:"Dynamic configuration overrides detected",performance:"Performance",performance_secondary:"Card performance options",profiles:"Configuration profiles",profiles_secondary:"Choose pre-configured sets of defaults",status_bar:"Status bar",status_bar_secondary:"Status bar look & feel options",timeline:"Timeline",timeline_secondary:"Event timeline options",upgrade:"Upgrade",upgrade_available:"An automatic card configuration upgrade is available",view:"View",view_secondary:"What the card should show and how to show it"},S_={ptz:{down:"Down",home:"Home",left:"Left",right:"Right",up:"Up",zoom_in:"Zoom In",zoom_out:"Zoom Out"}},E_={awaiting_live:"Waiting for live stream to load ...",awaiting_media:"Waiting for media to load",camera_initialization:"Camera initialization failed",camera_initialization_reolink:"Could not initialize Reolink camera",could_not_render_elements:"Could not render picture elements",could_not_resolve:"Could not resolve media URL",diagnostics:"Card diagnostics. Please review for confidential information prior to sharing",download_no_media:"No media to download",download_sign_failed:"Could not sign media URL for download",duplicate_camera_id:"Duplicate Frigate camera id for the following camera, use the 'id' parameter to uniquely identify cameras",empty_response:"Received empty response from Home Assistant for request",failed_response:"Failed to receive response from Home Assistant for request",failed_retain:"Could not retain event",failed_sign:"Could not sign Home Assistant URL",image_load_error:"The image could not be loaded",invalid_configuration:"Invalid configuration",invalid_configuration_no_hint:"No location hint available (bad or missing type?)",invalid_configuration_override:"Invalid override configuration",invalid_elements_config:"Invalid picture elements configuration",invalid_response:"Received invalid response from Home Assistant for request",jsmpeg_no_player:"Could not start JSMPEG player",live_camera_no_endpoint:"Could not get camera endpoint for this live provider (incomplete configuration?)",live_camera_not_found:"The configured camera_entity was not found",live_camera_unavailable:"Camera unavailable",no_camera_engine:"Could not determine suitable engine for camera",no_camera_entity:"Could not find camera entity",no_camera_entity_for_triggers:"A camera entity is required in order to autodetect triggers",no_camera_id:"Could not determine camera id for the following camera, may need to set 'id' parameter manually",no_camera_name:"Could not determine a Frigate camera name for camera (or one of its dependents), please specify either 'camera_entity' or 'camera_name'",no_dashboard_or_view:"Both 'dashboard_path' and 'view_path' parameters are required for the 'dashboard' cast method",no_live_camera:"The camera_entity parameter must be set and valid for this live provider",no_supported_camera:"The selected camera does not support this view",no_supported_cameras:"No cameras support this view",reconnecting:"Reconnecting",too_many_automations:"Too many nested automation calls, please check your configuration for loops",troubleshooting:"Check troubleshooting",unknown:"Unknown error",upgrade_available:"An automated card configuration upgrade is available, please visit the visual card editor",webrtc_card_reported_error:"WebRTC Card reported an error",webrtc_card_waiting:"Waiting for WebRTC Card to load ..."},$_={camera:"Camera",duration:"Duration",in_progress:"In Progress",score:"Score",seek:"Seek",start:"Start",tag:"Tag",what:"What",where:"Where"},A_={assign:"Assign",assigning:"Assigning",modifiers:{alt:"Alt",ctrl:"Ctrl",meta:"Meta",shift:"Shift"},unassign:"Unassign"},z_={all:"All",camera:"Camera",favorite:"Favorite",media_type:"Media Type",media_types:{clips:"Clips",recordings:"Recordings",snapshots:"Snapshots"},not_favorite:"Not Favorite",select_camera:"Select camera...",select_favorite:"Select favorite...",select_media_type:"Select media type...",select_tag:"Select tag...",select_what:"Select what...",select_when:"Select when...",select_where:"Select where...",tag:"Tag",what:"What",when:"When",whens:{custom:"Custom",past_month:"Past Month",past_week:"Past Week",today:"Today",yesterday:"Yesterday"},where:"Where"},I_={unseekable:"Seek time not found in media"},T_={camera:"Camera",duration:"Duration",events:"Events",in_progress:"In Progress",seek:"Seek",start:"Start"},j_={download:"Download media",no_thumbnail:"No thumbnail available",retain_indefinitely:"Media will be indefinitely retained",timeline:"See media in timeline"},O_={select_date:"Choose date"},D_={common:x_,config:C_,display_modes:M_,editor:k_,elements:S_,error:E_,event:$_,key_assigner:A_,media_filter:z_,media_viewer:I_,recording:T_,thumbnail:j_,timeline:O_},R_=Object.freeze({__proto__:null,common:x_,config:C_,default:D_,display_modes:M_,editor:k_,elements:S_,error:E_,event:$_,key_assigner:A_,media_filter:z_,media_viewer:I_,recording:T_,thumbnail:j_,timeline:O_});const P_="en",L_={[P_]:R_};let N_;function F_(e){const t=e=>e.replace("-","_"),n=e?.language??e?.selectedLanguage;if(n)return t(n);const a=localStorage.getItem("selectedLanguage");if(a){const e=JSON.parse(a);if(e)return t(e)}for(const e of navigator.languages){const n=t(e);if(n&&n in L_)return n}return P_}function V_(e,t="",n=""){let a="";try{a=e.split(".").reduce(((e,t)=>e[t]),L_[N_??P_])}catch(e){}return a||(a=e.split(".").reduce(((e,t)=>e[t]),L_[P_])),""!==t&&""!==n&&(a=a.replace(t,n)),a}function H_(e){return"string"==typeof e?.id&&e.id||"string"==typeof e?.camera_entity&&e.camera_entity||"object"==typeof e?.webrtc_card&&e.webrtc_card&&("string"==typeof e.webrtc_card.entity&&e.webrtc_card.entity||"string"==typeof e.webrtc_card.url&&e.webrtc_card.url)||"object"==typeof e?.go2rtc&&e.go2rtc&&"string"==typeof e.go2rtc.url&&"string"==typeof e.go2rtc.stream&&`${e.go2rtc.url}#${e.go2rtc.stream}`||"object"==typeof e?.frigate&&e.frigate&&"string"==typeof e?.frigate.camera_name&&e.frigate.camera_name||""}const B_=(e,...t)=>{e?.debug?.logging&&console.debug(...t)},q_=(e,t,n)=>"preset"===t?(n?.preset?e.ptz.presets?.[n.preset]:null)??null:n?.phase?e.ptz[`actions_${t}_${n.phase}`]??null:e.ptz[`actions_${t}`]??null,U_=(e,t,n)=>!!q_(e,t,n),W_=(e,t)=>{const n=U_(e,t,{phase:"start"})&&U_(e,t,{phase:"stop"}),a=U_(e,t);return n||a?[...n?["continuous"]:[],...a?["relative"]:[]]:null},Z_=e=>{const t=W_(e,"left"),n=W_(e,"right"),a=W_(e,"up"),i=W_(e,"down"),r=W_(e,"zoom_in"),o=W_(e,"zoom_out"),s=e.ptz.presets?Object.keys(e.ptz.presets):void 0;return t?.length||n?.length||a?.length||i?.length||r?.length||o?.length||s?.length?{...t?{left:t}:{},...n?{right:n}:{},...a?{up:a}:{},...i?{down:i}:{},...r?{zoomIn:r}:{},...o?{zoomOut:o}:{},...s?{presets:s}:{}}:null};class Q_{constructor(e,t){this._capabilities=e;for(const e of t?.disable??[])this._disable(e);for(const e of Ts)t?.disableExcept?.length&&!t.disableExcept.includes(e)&&this._disable(e)}_disable(e){delete this._capabilities[e]}matches(e){let t=!0;return"string"==typeof e&&(t&&=this.has(e)),"object"==typeof e&&e.allCapabilities&&(t&&=e.allCapabilities.every((e=>this.has(e)))),"object"==typeof e&&e.anyCapabilities&&(t&&=e.anyCapabilities.some((e=>this.has(e)))),t}has(e){return!!this._capabilities[e]}getPTZCapabilities(){return this._capabilities.ptz??null}hasPTZCapability(){return!!(this._capabilities.ptz?.down?.length||this._capabilities.ptz?.up?.length||this._capabilities.ptz?.left?.length||this._capabilities.ptz?.right?.length||this._capabilities.ptz?.zoomIn?.length||this._capabilities.ptz?.zoomOut?.length||this._capabilities.ptz?.presets?.length)}getRawCapabilities(){return this._capabilities}}function G_(e,t,n){var a=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var r=Array(i);++at||r&&o&&c&&!s&&!l||a&&o&&c||!n&&c||!i)return 1;if(!a&&!r&&!l&&e=s?c:c*("desc"==n[a]?-1:1)}return e.index-t.index}(e,t,n)}))}function Ev(e,t,n,a){return null==e?[]:(dp(t)||(t=null==t?[]:[t]),dp(n=a?void 0:n)||(n=null==n?[]:[n]),Sv(e,t,n))}async function $v(e,t,n,a=!1){let i;try{i=await e.callWS(n)}catch(e){if(!(e instanceof Error))throw new zs(V_("error.failed_response"),{request:n,response:e});throw e}if(!i)throw new zs(V_("error.empty_response"),{request:n});const r=a?t.safeParse(JSON.parse(i)):t.safeParse(i);if(!r.success)throw new zs(V_("error.invalid_response"),{request:n,response:i,invalid_keys:Rs(r.error)});return r.data}const Av=ba.lazy((()=>ba.object({title:ba.string(),media_class:ba.string(),media_content_type:ba.string(),media_content_id:ba.string(),can_play:ba.boolean(),can_expand:ba.boolean(),children_media_class:ba.string().nullable().optional(),thumbnail:ba.string().nullable(),children:ba.array(Av).nullable().optional()}))),zv="video",Iv="image",Tv=60,jv=e=>Ev(e,(e=>e._metadata?.startDate),"desc");class Ov{async walkBrowseMedias(e,t,n){return t&&t.length?(await tf(t,(async t=>await this._walkBrowseMedia(e,t,n)))).flat():[]}async _walkBrowseMedia(e,t,n){let a=[];for(const i of function(e,t,n){t=(n?dg(e,t,n):void 0===t)?1:K_(Sg(t),0);var a=null==e?0:e.length;if(!a||t<1)return[];for(var i=0,r=0,o=Array(Y_(a/t));iawait this._browseMedia(e,a,{cache:n?.cache,matcher:t.matcher,metadataGenerator:t.metadataGenerator})));for(const e of r)for(const n of e.children??[])t.matcher(n)&&a.push(n);if(t.sorter&&(a=t.sorter(a)),t.earlyExit&&t.earlyExit(a))break}const i=t.advance?t.advance(a):null;return i?.length?await this.walkBrowseMedias(e,i,n):a}async _browseMedia(e,t,n){const a="object"==typeof t?t.media_content_id:t,i=n?.cache?n.cache.get(a):null;if(i)return i;const r={type:"media_source/browse_media",media_content_id:a},o=await $v(e,Av,r);if(n?.metadataGenerator)for(const e of o.children??[])e._metadata=n.metadataGenerator(e,"object"==typeof t?t:void 0)??void 0;return n?.cache&&n.cache.set(a,o,Ud(new Date,{seconds:60})),o}}function Dv(e,t){return bm(e,t)}function Rv(e,t){return e&&e.length?function(e,t){for(var n=-1,a=e.length,i=0,r=[];++nNv(t,e)))}add(e){this._ranges.push(e),this._ranges=Vv(this._ranges)}clear(){this._ranges=[]}}class Lv{constructor(e){this._ranges=e??[]}hasCoverage(e){const t=new Date;return this._ranges.some((n=>tet.start>=e.start&&t.end<=e.end,Fv=(e,t)=>e.start>=t.start&&e.start<=t.end||e.end>=t.start&&e.end<=t.end||e.start<=t.start&&e.end>=t.end,Vv=(e,t=0)=>{const n=[];e=Ev(e,(e=>e.start),"asc");let a=null;for(const i of e){const e=i.start instanceof Date?i.start.getTime():i.start;if(!a){a={...i};continue}(a.end instanceof Date?a.end.getTime():a.end)+1e3*t>=e?i.end>a.end&&(a.end=i.end):(n.push(a),a={...i})}return a&&n.push(a),n};class Hv{constructor(){this._data=[]}get(e){const t=new Date;for(const n of this._data)if((!n.expires||t<=n.expires)&&this._contains(e,n.request))return n.response;return null}clear(){this._data=[]}has(e){return!!this.get(e)}set(e,t,n){this._data.push({request:e,response:t,expires:n}),this._expireOldRequests()}_contains(e,t){return Dv(e,t)}_expireOldRequests(){const e=new Date;this._data=this._data.filter((t=>!t.expires||e=e.start.getTime()){if(a>e.end.getTime())break;t.push(n)}}return t}getSize(){return this._data.length}expireMatches(e){this._data=this._data.filter((t=>!e(t)))}}class Uv{constructor(){this._segments=new Map}add(e,t,n){let a=this._segments.get(e);a||(a=new qv((e=>1e3*e.start_time),(e=>e.id)),this._segments.set(e,a)),a.add(t,n)}clear(){this._segments.clear()}hasCoverage(e,t){return!!this._segments.get(e)?.hasCoverage(t)}get(e,t){return this._segments.get(e)?.get(t)??null}getSize(e){return this._segments.get(e)?.getSize()??null}getCameraIDs(){return[...this._segments.keys()]}expireMatches(e,t){this._segments.get(e)?.expireMatches(t)}}class Wv extends zs{}class Zv extends zs{}var Qv,Gv,Yv;!function(e){e.Event="event-query",e.Recording="recording-query",e.RecordingSegments="recording-segments-query",e.MediaMetadata="media-metadata"}(Qv||(Qv={})),function(e){e.Event="event-results",e.Recording="recording-results",e.RecordingSegments="recording-segments-results",e.MediaMetadata="media-metadata-results"}(Gv||(Gv={})),function(e){e.Frigate="frigate",e.Generic="generic",e.MotionEye="motioneye",e.Reolink="reolink"}(Yv||(Yv={}));const Kv=e=>e.camera_entity??e.webrtc_card?.entity??null;class Xv{constructor(e){this._entityRegistryManager=e}async createEngine(e,t){let n;switch(e){case Yv.Generic:const{GenericCameraManagerEngine:e}=await import("./engine-generic-96b32038.js").then((function(e){return e.e}));n=new e(t.stateWatcher,t.eventCallback);break;case Yv.Frigate:const{FrigateCameraManagerEngine:a}=await import("./engine-frigate-a6e3bd9e.js");n=new a(this._entityRegistryManager,t.stateWatcher,new Uv,new Bv,t.eventCallback);break;case Yv.MotionEye:const{MotionEyeCameraManagerEngine:i}=await import("./engine-motioneye-d04d1919.js");n=new i(this._entityRegistryManager,t.stateWatcher,new Ov,t.resolvedMediaCache,new Bv,t.eventCallback);break;case Yv.Reolink:const{ReolinkCameraManagerEngine:r}=await import("./engine-reolink-ec1b4246.js");n=new r(this._entityRegistryManager,t.stateWatcher,new Ov,t.resolvedMediaCache,new Bv,t.eventCallback)}return n}async getEngineForCamera(e,t){let n=null;if("frigate"===t.engine)n=Yv.Frigate;else if("motioneye"===t.engine)n=Yv.MotionEye;else if("generic"===t.engine)n=Yv.Generic;else if("reolink"===t.engine)n=Yv.Reolink;else{const a=Kv(t);if(a){const i=await this._entityRegistryManager.getEntity(e,a);if(!i){if(e.states[a])return Yv.Generic;throw new Wv(V_("error.no_camera_entity"),t)}switch(i?.platform){case"frigate":n=Yv.Frigate;break;case"motioneye":n=Yv.MotionEye;break;case"reolink":n=Yv.Reolink;break;default:n=Yv.Generic}}else t.frigate.camera_name?n=Yv.Frigate:(t.webrtc_card?.url||t.go2rtc?.url&&t.go2rtc?.stream)&&(n=Yv.Generic)}return n}}class Jv{constructor(){this._cameras=new Map,this._enginesByType=new Map}addCamera(e){this._cameras.set(e.getID(),e),this._enginesByType.set(e.getEngine().getEngineType(),e.getEngine())}async setCameras(e){for(const t of e){const e=this._cameras.get(t.getID());e!==t&&(this.addCamera(t),await(e?.destroy()))}for(const t of this._cameras.values())e.includes(t)||(await t.destroy(),this._cameras.delete(t.getID()))}async reset(){await tf(this._cameras.values(),(e=>e.destroy())),this._cameras.clear(),this._enginesByType.clear()}getCamera(e){return this._cameras.get(e)??null}getCameras(){return this._cameras}getCameraConfig(e){return this._cameras.get(e)?.getConfig()??null}hasCameraID(e){return this._cameras.has(e)}getCameraCount(){return this._cameras.size}getDefaultCameraID(){return this._cameras.keys().next().value??null}*getCameraConfigs(e){for(const[t,n]of this.getCameraConfigEntries(e))yield n}*getCameraConfigEntries(e){for(const t of e??this._cameras.keys()){const e=this.getCameraConfig(t);e&&(yield[t,e])}}getCameraIDs(){return new Set(this._cameras.keys())}getCameraIDsWithCapability(e){const t=new Set;for(const n of this._cameras.values())n.getCapabilities()?.matches(e)&&t.add(n.getID());return t}getCameraConfigForMedia(e){return this.getCameraConfig(e.getCameraID())}getEngineOfType(e){return this._enginesByType.get(e)??null}getEngineForCameraID(e){return this._cameras.get(e)?.getEngine()??null}getEnginesForCameraIDs(e){const t=new Map;for(const n of e){const e=this.getEngineForCameraID(n);e&&(t.has(e)||t.set(e,new Set),t.get(e)?.add(n))}return t.size?t:null}getEngineForMedia(e){return this.getEngineForCameraID(e.getCameraID())}getAllDependentCameras(e,t){const n=new Set,a=new Set,i=e=>{n.add(e);const r=this.getCamera(e),o=r?.getConfig();if(r&&o){t&&!r.getCapabilities()?.matches(t)||a.add(e);const s=new Set;o.dependencies.cameras.forEach((e=>s.add(e))),o.dependencies.all_cameras&&this.getCameraIDs().forEach((e=>s.add(e)));for(const e of s)n.has(e)||i(e)}};return i(e),a}}const ey=e=>{return Ev((n=e=>e.getID()??e,(t=e)&&t.length?Hg(t,xv(n)):[]),(e=>e.getStartTime()??e.getID()),"asc");var t,n};class ty{static isEventQuery(e){return e.type===Qv.Event}static isRecordingQuery(e){return e.type===Qv.Recording}static isRecordingSegmentsQuery(e){return e.type===Qv.RecordingSegments}static isMediaMetadataQuery(e){return e.type===Qv.MediaMetadata}}class ny{static isEventQueryResult(e){return e.type===Gv.Event}static isRecordingQueryResult(e){return e.type===Gv.Recording}static isRecordingSegmentsQueryResult(e){return e.type===Gv.RecordingSegments}static isMediaMetadataQueryResult(e){return e.type===Gv.MediaMetadata}}class ay{constructor(e,t){this._requestLimit=new w_,this._api=e,this._engineFactory=t?.factory??new Xv(this._api.getEntityRegistryManager()),this._store=t?.store??new Jv}async initializeCamerasFromConfig(){const e=this._api.getConfigManager().getConfig(),t=this._api.getHASSManager().getHASS();if(!e||!t)return!1;this._requestLimit.concurrency=e.performance.features.max_simultaneous_engine_requests??1/0;const n=e.cameras.map((t=>{return n={},a=u_(e?.cameras_global),hg(n,a,t,((e,t)=>Array.isArray(t)?t:void 0));var n,a}));try{await this._initializeCameras(n)}catch(e){return this._api.getMessageManager().setErrorIfHigherPriority(e,V_("error.camera_initialization")),!1}return!0}async reset(){await this._store.reset()}async _getEnginesForCameras(e){const t=new Map,n=new Map,a=this._api.getHASSManager().getHASS(); +/* istanbul ignore if: the if path cannot be reached -- @preserve */ +if(!a)return t;const i=await(async e=>await tf(e,(e=>this._engineFactory.getEngineForCamera(a,e))))(e);for(const[a,r]of e.entries()){const e=i[a],o=e?n.get(e)??await this._engineFactory.createEngine(e,{eventCallback:e=>this._api.getTriggersManager().handleCameraEvent(e),stateWatcher:this._api.getHASSManager().getStateWatcher(),resolvedMediaCache:this._api.getResolvedMediaCache()}):null;if(!o||!e)throw new Wv(V_("error.no_camera_engine"),u_(r));n.set(e,o),t.set(r,o)}return t}async _initializeCameras(e){const t=new Date,n=this._api.getHASSManager().getHASS(); +/* istanbul ignore if: the if path cannot be reached -- @preserve */ +if(!n)return;e.some((e=>(e=>e.triggers.motion||e.triggers.occupancy)(e)))&&await this._api.getEntityRegistryManager().fetchEntityList(n);const a=await this._getEnginesForCameras(e),i=await tf(a.entries(),(async([e,t])=>await t.createCamera(n,e))),r=async()=>{i.forEach((e=>e.destroy()))},o=new Set;for(const e of i){const t=H_(e.getConfig());if(!t)throw await r(),new Wv(V_("error.no_camera_id"),e.getConfig());if(o.has(t))throw await r(),new Wv(V_("error.duplicate_camera_id"),e.getConfig());e.setID(t),o.add(t)}await this._store.setCameras(i),B_(this._api.getConfigManager().getCardWideConfig(),"Frigate Card CameraManager initialized (Cameras: ",this._store.getCameras(),`, Duration: ${((new Date).getTime()-t.getTime())/1e3}s,`,")")}isInitialized(){return this._store.getCameraCount()>0}getStore(){return this._store}generateDefaultEventQueries(e,t){return this._generateDefaultQueries(e,{type:Qv.Event,...t})}generateDefaultRecordingQueries(e,t){return this._generateDefaultQueries(e,{type:Qv.Recording,...t})}generateDefaultRecordingSegmentsQueries(e,t){return this._generateDefaultQueries(e,{type:Qv.RecordingSegments,...t})}_generateDefaultQueries(e,t){const n=[],a=Zg(e),i=this._store.getEnginesForCameraIDs(a);if(!i)return null;for(const[e,a]of i){let i=null; +/* istanbul ignore else: the else path cannot be reached -- @preserve */ty.isEventQuery(t)?i=e.generateDefaultEventQuery(this._store,a,t):ty.isRecordingQuery(t)?i=e.generateDefaultRecordingQuery(this._store,a,t):ty.isRecordingSegmentsQuery(t)&&(i=e.generateDefaultRecordingSegmentsQuery(this._store,a,t));for(const e of i??[])n.push(e)}return n.length?n:null}async getMediaMetadata(){const e=new Set,t=new Set,n=new Set,a=new Set,i={type:Qv.MediaMetadata,cameraIDs:this._store.getCameraIDs()},r=await this._handleQuery(i);for(const i of r.values())i.metadata.tags&&i.metadata.tags.forEach(e.add,e),i.metadata.what&&i.metadata.what.forEach(t.add,t),i.metadata.where&&i.metadata.where.forEach(n.add,n),i.metadata.days&&i.metadata.days.forEach(a.add,a);return t.size||n.size||a.size||e.size?{...e.size&&{tags:e},...t.size&&{what:t},...n.size&&{where:n},...a.size&&{days:a}}:null}async getEvents(e,t){return await this._handleQuery(e,t)}async getRecordings(e,t){return await this._handleQuery(e,t)}async getRecordingSegments(e,t){return await this._handleQuery(e,t)}async executeMediaQueries(e,t){return this._convertQueryResultsToMedia(await this._handleQuery(e,t))}async extendMediaQueries(e,t,n,a){if(!this._api.getHASSManager().getHASS())return null;const i=e=>{let n=null;for(const a of t){const t=a.getStartTime();t&&(!n||"earliest"===e&&tn)&&(n=t)}return n},r=this._api.getConfigManager().getCardWideConfig()?.performance?.features.media_chunk_size??50,o=[],s=[];for(const t of e){const e={...t}; +/* istanbul ignore else: the else path cannot be reached -- @preserve */if("later"===n){const t=i("latest");t&&(e.start=t,delete e.end)}else if("earlier"===n){const t=i("earliest");t&&(e.end=t,delete e.start)}e.limit=r,s.push({...t,limit:(t.limit??0)+r}),o.push(e)}const c=this._convertQueryResultsToMedia(await this._handleQuery(o,a));if(!c.length)return null;const l=ey(t.concat(c));return l.length===t.length?null:{queries:s,results:l}}async getMediaDownloadPath(e){const t=this._store.getCameraConfigForMedia(e),n=this._store.getEngineForMedia(e),a=this._api.getHASSManager().getHASS();return t&&n&&a?await n.getMediaDownloadPath(a,t,e):null}getMediaCapabilities(e){const t=this._store.getEngineForMedia(e);return t?t.getMediaCapabilities(e):null}async favoriteMedia(e,t){const n=this._store.getCameraConfigForMedia(e),a=this._store.getEngineForMedia(e),i=this._api.getHASSManager().getHASS();if(!n||!a||!i)return;const r=new Date;await this._requestLimit.add((()=>a.favoriteMedia(i,n,e,t))),B_(this._api.getConfigManager().getCardWideConfig(),"Frigate Card CameraManager favorite request (",`Duration: ${((new Date).getTime()-r.getTime())/1e3}s,`,"Media:",e.getID(),", Favorite:",t,")")}areMediaQueriesResultsFresh(e,t){const n=new Date;for(const a of e){const e=this._store.getEnginesForCameraIDs(a.cameraIDs);for(const[i,r]of e??[]){const e=i.getQueryResultMaxAge({...a,cameraIDs:r});if(null!==e&&Ud(t,{seconds:e})a?null:await this._requestLimit.add((()=>i.getMediaSeekTime(r,this._store,e,t)))??null}async _handleQuery(e,t){const n=Wg(e),a=new Map,i=new Date,r=this._api.getHASSManager().getHASS();if(!r)return a;const o=async(e,n)=>{let i=null; +/* istanbul ignore else: the else path cannot be reached -- @preserve */ty.isEventQuery(n)?i=await e.getEvents(r,this._store,n,t):ty.isRecordingQuery(n)?i=await e.getRecordings(r,this._store,n,t):ty.isRecordingSegmentsQuery(n)?i=await e.getRecordingSegments(r,this._store,n,t):ty.isMediaMetadataQuery(n)&&(i=await e.getMediaMetadata(r,this._store,n,t)),i?.forEach(((e,t)=>a.set(t,e)))},s=async e=>{const t=this._store.getEnginesForCameraIDs(e.cameraIDs);t&&await Promise.all(Array.from(t.keys()).map((n=>this._requestLimit.add((()=>o(n,{...e,cameraIDs:t.get(n)}))))))};await Promise.all(n.map((e=>s(e))));const c=(l=Array.from(a.values()).map((e=>Number(e.cached??0))))&&l.length?function(e,t){for(var n,a=-1,i=e.length;++athis._store.getCamera(e))).filter(sf);return new Q_({live:t.some((e=>e.getCapabilities()?.has("live"))),clips:t.some((e=>e.getCapabilities()?.has("clips"))),recordings:t.some((e=>e.getCapabilities()?.has("recordings"))),snapshots:t.some((e=>e.getCapabilities()?.has("snapshots"))),"favorite-events":t.some((e=>e.getCapabilities()?.has("favorite-events"))),"favorite-recordings":t.some((e=>e.getCapabilities()?.has("favorite-recordings"))),seek:t.some((e=>e.getCapabilities()?.has("seek"))),menu:t.some((e=>e.getCapabilities()?.has("menu")))})}async executePTZAction(e,t,n){const a=this._store.getCameraConfig(e);if(!a)return;const i=q_(a,t,n);if(i)return await this._api.getActionsManager().executeActions(i);const r=this._api.getHASSManager().getHASS(),o=this._store.getEngineForCameraID(e);return o&&r?await this._requestLimit.add((()=>o.executePTZAction(r,a,t,n))):void 0}}class iy{constructor(e){this._cache=new Map,this._keyCallback=e}has(e){return this._cache.has(e)}getMatches(e){return[...this._cache.values()].filter(e)}get(e){return this._cache.get(e)??null}add(e){const t=e=>this._cache.set(this._keyCallback(e),e);Array.isArray(e)?e.forEach(t):t(e)}}const ry=ba.object({id:ba.string(),model:ba.string().nullable(),config_entries:ba.string().array(),manufacturer:ba.string().nullable()}).array();class oy{constructor(e){this._fetchedDeviceList=!1,this._cache=e}async getDevice(e,t){return this._cache.has(t)?this._cache.get(t):(await this._fetchDeviceList(e),this._cache.get(t)??null)}async getMatchingDevices(e,t){return await this._fetchDeviceList(e),this._cache.getMatches(t)}async _fetchDeviceList(e){if(this._fetchedDeviceList)return;let t=null;try{t=await $v(e,ry,{type:"config/device_registry/list"})}catch(e){return void Gg(e)}this._cache.add(t),this._fetchedDeviceList=!0}}const sy=ba.object({config_entry_id:ba.string().nullable(),device_id:ba.string().nullable(),disabled_by:ba.string().nullable(),entity_id:ba.string(),hidden_by:ba.string().nullable(),platform:ba.string(),translation_key:ba.string().nullable(),unique_id:ba.string().or(ba.number()).optional()}),cy=sy.array();class ly{constructor(e){this._fetchedEntityList=!1,this._cache=e}async getEntity(e,t){const n=this._cache.get(t);if(n)return n;let a=null;try{a=await $v(e,sy,{type:"config/entity_registry/get",entity_id:t})}catch(e){return Gg(e),null}return this._cache.add(a),a}async getMatchingEntities(e,t){return await this.fetchEntityList(e),this._cache.getMatches(t)}async getEntities(e,t){const n=new Map;return await Promise.all(t.map((async t=>{const a=await this.getEntity(e,t);a&&n.set(t,a)}))),n}async fetchEntityList(e){if(this._fetchedEntityList)return;let t=null;try{t=await $v(e,cy,{type:"config/entity_registry/list"})}catch(e){return void Gg(e)}this._cache.add(t),this._fetchedEntityList=!0}}class dy extends Map{constructor(e={}){if(super(),!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof e.maxAge&&0===e.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=e.maxSize,this.maxAge=e.maxAge||Number.POSITIVE_INFINITY,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(e){if("function"==typeof this.onEviction)for(const[t,n]of e)this.onEviction(t,n.value)}_deleteIfExpired(e,t){return"number"==typeof t.expiry&&t.expiry<=Date.now()&&("function"==typeof this.onEviction&&this.onEviction(e,t.value),this.delete(e))}_getOrDeleteIfExpired(e,t){if(!1===this._deleteIfExpired(e,t))return t.value}_getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.value}_peek(e,t){const n=t.get(e);return this._getItemValue(e,n)}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}*_entriesAscending(){for(const e of this.oldCache){const[t,n]=e;if(!this.cache.has(t)){!1===this._deleteIfExpired(t,n)&&(yield e)}}for(const e of this.cache){const[t,n]=e;!1===this._deleteIfExpired(t,n)&&(yield e)}}get(e){if(this.cache.has(e)){const t=this.cache.get(e);return this._getItemValue(e,t)}if(this.oldCache.has(e)){const t=this.oldCache.get(e);if(!1===this._deleteIfExpired(e,t))return this._moveToRecent(e,t),t.value}}set(e,t,{maxAge:n=this.maxAge}={}){const a="number"==typeof n&&n!==Number.POSITIVE_INFINITY?Date.now()+n:void 0;return this.cache.has(e)?this.cache.set(e,{value:t,expiry:a}):this._set(e,{value:t,expiry:a}),this}has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.get(e)):!!this.oldCache.has(e)&&!this._deleteIfExpired(e,this.oldCache.get(e))}peek(e){return this.cache.has(e)?this._peek(e,this.cache):this.oldCache.has(e)?this._peek(e,this.oldCache):void 0}delete(e){const t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");const t=[...this._entriesAscending()],n=t.length-e;n<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(n>0&&this._emitEvictions(t.slice(0,n)),this.oldCache=new Map(t.slice(n)),this.cache=new Map,this._size=0),this.maxSize=e}*keys(){for(const[e]of this)yield e}*values(){for(const[,e]of this)yield e}*[Symbol.iterator](){for(const e of this.cache){const[t,n]=e;!1===this._deleteIfExpired(t,n)&&(yield[t,n.value])}for(const e of this.oldCache){const[t,n]=e;if(!this.cache.has(t)){!1===this._deleteIfExpired(t,n)&&(yield[t,n.value])}}}*entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;--t){const n=e[t],[a,i]=n;!1===this._deleteIfExpired(a,i)&&(yield[a,i.value])}e=[...this.oldCache];for(let t=e.length-1;t>=0;--t){const n=e[t],[a,i]=n;if(!this.cache.has(a)){!1===this._deleteIfExpired(a,i)&&(yield[a,i.value])}}}*entriesAscending(){for(const[e,t]of this._entriesAscending())yield[e,t.value]}get size(){if(!this._size)return this.oldCache.size;let e=0;for(const t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}entries(){return this.entriesAscending()}forEach(e,t=this){for(const[n,a]of this.entriesAscending())e.call(t,a,n,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}}class uy{constructor(){this._cache=new dy({maxSize:1e3})}has(e){return this._cache.has(e)}get(e){return this._cache.get(e)}set(e,t){this._cache.set(e,t)}}const hy=async(e,t,n)=>{const a=n?n.get(t):void 0;if(a)return a;const i={type:"media_source/resolve_media",media_content_id:t};let r=null;try{r=await $v(e,js,i)}catch(e){Gg(e)}return n&&r&&n.set(t,r),r};class py{constructor(e,t,n){this._context=e,this._action=t,this._config=n}async execute(e){}async stop(){}}class my extends py{}class gy extends my{async execute(e){const t=this._action.camera??(this._action.triggered?e.getTriggersManager().getMostRecentlyTriggeredCameraID():null),n=e.getViewManager().getView(),a=e.getConfigManager().getConfig();if(t&&n){const i=a?.view.camera_select??"current",r="current"===i?n.view:i;await e.getViewManager().setViewByParametersWithNewQuery({params:{view:r,camera:t},failSafe:!0})}}}class fy extends my{async execute(e){e.getCameraURLManager().openURL()}}class _y extends my{async execute(e){e.getViewManager().setViewDefault()}}class vy extends my{async execute(e){await e.getViewManager().setViewByParametersWithNewQuery({params:{displayMode:this._action.display_mode}})}}class yy extends my{async execute(e){await e.getDownloadManager().downloadViewerMedia()}}class by extends my{async execute(e){e.getExpandManager().toggleExpanded()}}class wy extends my{async execute(e){e.getFullscreenManager().toggleFullscreen()}}class xy extends py{async execute(e){const t=e.getHASSManager().getHASS();t&&at(e.getCardElementManager().getElement(),t,this._config??{},this._action)}}class Cy extends my{async execute(e){console[this._action.level](this._action.message)}}const My=(e,t)=>e.context?.live?.overrides?.get(t??e.camera)??t??e.camera,ky=e=>My(e)!==e.camera,Sy=(e,t)=>{const n=e.context?.live?.overrides??new Map;n.set(e.camera,t),e.mergeInContext({live:{overrides:n}})};class Ey extends my{async execute(e){const t=this._action.media_player,n=e.getMediaPlayerManager(),a=e.getViewManager().getView(),i=a?.queryResults?.getSelectedResult()??null;"stop"===this._action.media_player_action?await n.stop(t):a?.is("live")?await n.playLive(t,My(a)):a?.isViewerView()&&i&&await n.playMedia(t,i)}}class $y extends my{async execute(e){e.getCardElementManager().toggleMenu()}}class Ay extends my{async execute(e){await e.getMicrophoneManager().connect()}}class zy extends my{async execute(e){e.getMicrophoneManager().disconnect()}}class Iy extends my{async execute(e){e.getMicrophoneManager().mute()}}class Ty extends my{async execute(e){await e.getMicrophoneManager().unmute()}}class jy extends my{async execute(e){await(e.getMediaLoadedInfoManager().get()?.player?.mute())}}class Oy extends my{async execute(e){await(e.getMediaLoadedInfoManager().get()?.player?.pause())}}class Dy extends my{async execute(e){await(e.getMediaLoadedInfoManager().get()?.player?.play())}}const Ry=(e,t)=>{if(e.isViewerView()){const n=e.queryResults?.getSelectedResult()?.getID()??null;return"ptz"!==t?.type&&n?{targetID:n,type:"digital"}:null}if(e.is("live")){const n=My(e);let a="digital";return"digital"!==t?.type&&t?.cameraManager&&(Py(t.cameraManager,n)&&(a="ptz"),"ptz"!==a&&"ptz"===t?.type)?null:{targetID:n,type:a}}return null},Py=(e,t)=>!!e.getStore().getCamera(t)?.getCapabilities()?.hasPTZCapability();var Ly=ug((function(e,t,n){Jm(e,t,n)}));const Ny=(e,t)=>{t?.[e]?.inProgressAction?.stop()},Fy=(e,t,n,a)=>{Ly(t,{[n]:{[e]:{inProgressAction:a}}})};class Vy extends my{constructor(){super(...arguments),this._timer=new xf}async stop(){this._timer.stop()}async execute(e){const t=e.getViewManager().getView();if(!t)return;const n=this._action.camera??Ry(t,{type:"ptz",cameraManager:e.getCameraManager()})?.targetID??null,a=n?e.getCameraManager().getCameraCapabilities(n)?.getPTZCapabilities():null,i=n?e.getCameraManager().getStore().getCameraConfig(n)?.ptz:null;if(!n||!a||!i)return;if(!this._action.ptz_action)return void(a.presets&&a.presets.length>=1&&await e.getCameraManager().executePTZAction(n,"preset",{phase:this._action.ptz_phase,preset:a.presets[0]}));const r=(e=>{switch(e){case"left":case"right":case"up":case"down":return e;case"zoom_in":return"zoomIn";case"zoom_out":return"zoomOut"}return null})(this._action.ptz_action);if(r&&a[r]?.includes(this._action.ptz_phase?"continuous":"relative")||"preset"===this._action.ptz_action)return await e.getCameraManager().executePTZAction(n,this._action.ptz_action,{phase:this._action.ptz_phase,preset:this._action.ptz_preset});if("start"===this._action.ptz_phase){Ny(n,this._context.ptz),Fy(n,this._context,"ptz",this);const t=async()=>{this._action.ptz_action&&await e.getCameraManager().executePTZAction(n,this._action.ptz_action,{preset:this._action.ptz_preset}),this._timer.start(i.r2c_delay_between_calls_seconds,t)};await t()}else"stop"===this._action.ptz_phase?Ny(n,this._context.ptz):(await e.getCameraManager().executePTZAction(n,this._action.ptz_action,{preset:this._action.ptz_preset,phase:"start"}),this._timer.start(i.c2r_delay_between_calls_seconds,(async()=>{this._action.ptz_action&&await e.getCameraManager().executePTZAction(n,this._action.ptz_action,{preset:this._action.ptz_preset,phase:"stop"})})))}}class Hy extends my{async execute(e){e.getViewManager().setViewWithMergedContext({ptzControls:{enabled:this._action.enabled}})}}function By(e,t,n){return void 0===n&&(n=t,t=void 0),void 0!==n&&(n=(n=Cg(n))==n?n:0),void 0!==t&&(t=(t=Cg(t))==t?t:0),function(e,t,n){return e==e&&(void 0!==n&&(e=e<=n?e:n),void 0!==t&&(e=e>=t?e:t)),e}(Cg(e),t,n)}const qy=50,Uy=50,Wy=1,Zy=4,Qy=e=>void 0===e?.pan?.x&&void 0===e?.pan?.y&&void 0===e?.zoom;class Gy{constructor(e){this._context=e}modify(e){e.mergeInContext(this._context)}}const Yy=(e,t)=>({zoom:{[e]:{observed:t?.observed??void 0,requested:t?.requested??null}}}),Ky=(e,t,n)=>{t&&n&&t.setViewByParameters({modifiers:[new Gy(Yy(n,{observed:e.detail}))]})};class Xy extends my{constructor(){super(...arguments),this._timer=new xf}async _stepChange(e,t){e.getViewManager().setViewWithMergedContext(Yy(t,{requested:this._convertActionToZoomSettings(e.getViewManager().getView()?.context?.zoom?.[t]?.observed)}))}async stop(){this._timer.stop()}async execute(e){const t=e.getViewManager().getView();if(!t)return;const n=this._action.target_id??Ry(t,{type:"digital",cameraManager:e.getCameraManager()})?.targetID;return n?this._action.absolute||!this._action.ptz_phase?await this._stepChange(e,n): +/* istanbul ignore else: the else path cannot be reached -- @preserve */ +void("start"===this._action.ptz_phase?(Ny(n,this._context.ptzDigital),Fy(n,this._context,"ptzDigital",this),await this._stepChange(e,n),this._timer.startRepeated(.1,(()=>this._stepChange(e,n)))):"stop"===this._action.ptz_phase&&(Ny(n,this._context.ptzDigital),delete this._context.ptzDigital?.[n])):void 0}_convertActionToZoomSettings(e){if(!this._action.absolute&&!this._action.ptz_action)return{};if(this._action.absolute)return this._action.absolute;const t=e?.zoom??1,n=e?.pan?.x??50,a=e?.pan?.y??50,i="zoom_in"===this._action.ptz_action?.1:"zoom_out"===this._action.ptz_action?-.1:0,r="left"===this._action.ptz_action?-5:"right"===this._action.ptz_action?5:0,o="up"===this._action.ptz_action?-5:"down"===this._action.ptz_action?5:0;return{zoom:By(t+i,1,10),pan:{x:By(n+r,0,100),y:By(a+o,0,100)}}}}class Jy extends my{async execute(e){const t=e.getViewManager().getView();let n=null,a=null;if(this._action.target_id)n=this._action.target_id,a=Py(e.getCameraManager(),n)?"ptz":"digital";else if(t){const i=Ry(t,{cameraManager:e.getCameraManager()});n=i?.targetID??null,a=i?.type??null}n&&null!==a&&("ptz"===a?this._toPTZAction(n):this._toPTZDigitalAction(n)).execute(e)}_toPTZAction(e){return new Vy(this._context,(t={cardID:this._action.card_id,cameraID:e,ptzAction:this._action.ptz_action,ptzPhase:this._action.ptz_phase,ptzPreset:this._action.ptz_preset},{action:"fire-dom-event",frigate_card_action:"ptz",...t?.cardID&&{card_id:t.cardID},...t?.ptzAction&&{ptz_action:t.ptzAction},...t?.ptzPhase&&{ptz_phase:t.ptzPhase},...t?.ptzPreset&&{ptz_preset:t.ptzPreset},...t?.cameraID&&{camera:t.cameraID}}),this._config);var t}_toPTZDigitalAction(e){return new Xy(this._context,(t={cardID:this._action.card_id,ptzPhase:this._action.ptz_phase,ptzAction:this._action.ptz_action,targetID:e},{action:"fire-dom-event",frigate_card_action:"ptz_digital",...t?.cardID&&{card_id:t.cardID},...t?.ptzAction&&{ptz_action:t.ptzAction},...t?.ptzPhase&&{ptz_phase:t.ptzPhase},...t?.absolute&&{absolute:t.absolute},...t?.targetID&&{target_id:t.targetID}}),this._config);var t}}class eb extends my{async execute(e){await e.getDownloadManager().downloadScreenshot()}}class tb extends my{async execute(e){var t;await af((t=this._action.duration,3600*(t.h??0)+60*(t.m??0)+(t.s??0)+(t.ms??0)/1e3))}}class nb extends my{async execute(e){switch(this._action.status_bar_action){case"reset":e.getStatusBarItemManager().removeAllDynamicStatusBarItems();break;case"add":this._action.items?.forEach((t=>e.getStatusBarItemManager().addDynamicStatusBarItem(t)));break;case"remove":this._action.items?.forEach((t=>e.getStatusBarItemManager().removeDynamicStatusBarItem(t)))}}}class ab{modify(e){(e=>{const t=e.context?.live?.overrides;t&&t.has(e.camera)&&e.context?.live?.overrides?.delete(e.camera)})(e)}}class ib extends my{async execute(e){e.getViewManager().setViewByParameters({modifiers:[new ab]})}}class rb{constructor(e){this._api=e}modify(e){const t=[...this._api.getCameraManager().getStore().getAllDependentCameras(e.camera,"substream")];if(t.length<=1)return;const n=My(e),a=t.indexOf(n),i=a<0?0:(a+1)%t.length;Sy(e,t[i])}}class ob extends my{async execute(e){e.getViewManager().setViewByParameters({modifiers:[new rb(e)]})}}class sb{constructor(e){this._substreamID=e}modify(e){Sy(e,this._substreamID)}}class cb extends my{async execute(e){e.getViewManager().setViewByParameters({modifiers:[new sb(this._action.camera)]})}}class lb extends my{async execute(e){await(e.getMediaLoadedInfoManager().get()?.player?.unmute())}}class db extends my{async execute(e){e.getViewManager().setViewByParametersWithNewQuery({params:{view:this._action.frigate_card_action}})}}class ub{createAction(e,t,n){const a=mf(t);if("fire-dom-event"!==t.action||!a)return new xy(e,t,n?.config);if(a.card_id&&a.card_id!==n?.cardID)return null;switch(a.frigate_card_action){case"default":return new _y(e,a,n?.config);case"clip":case"clips":case"image":case"live":case"recording":case"recordings":case"snapshot":case"snapshots":case"timeline":case"diagnostics":return new db(e,a,n?.config);case"sleep":return new tb(e,a,n?.config);case"download":return new yy(e,a,n?.config);case"camera_ui":return new fy(e,a,n?.config);case"expand":return new by(e,a,n?.config);case"fullscreen":return new wy(e,a,n?.config);case"menu_toggle":return new $y(e,a,n?.config);case"camera_select":return new gy(e,a,n?.config);case"live_substream_select":return new cb(e,a,n?.config);case"live_substream_off":return new ib(e,a,n?.config);case"live_substream_on":return new ob(e,a,n?.config);case"media_player":return new Ey(e,a,n?.config);case"microphone_connect":return new Ay(e,a,n?.config);case"microphone_disconnect":return new zy(e,a,n?.config);case"microphone_mute":return new Iy(e,a,n?.config);case"microphone_unmute":return new Ty(e,a,n?.config);case"mute":return new jy(e,a,n?.config);case"unmute":return new lb(e,a,n?.config);case"play":return new Dy(e,a,n?.config);case"pause":return new Oy(e,a,n?.config);case"screenshot":return new eb(e,a,n?.config);case"display_mode_select":return new vy(e,a,n?.config);case"ptz":return new Vy(e,a,n?.config);case"ptz_digital":return new Xy(e,a,n?.config);case"ptz_multi":return new Jy(e,a,n?.config);case"ptz_controls":return new Hy(e,a,n?.config);case"log":return new Cy(e,a,n?.config);case"status_bar":return new nb(e,a,n?.config)} +/* istanbul ignore next: this path cannot be reached -- @preserve */ +/* istanbul ignore next: this path cannot be reached -- @preserve */ +return console.warn(`Frigate card received unknown card action: ${a.frigate_card_action}`),null}}class hb{constructor(e,t,n){this._actions=[],this._factory=new ub,this._stopped=!1,this._context=e;for(const a of Wg(t)){const t=this._factory.createAction(e,a,n);t&&this._actions.push(t)}}async execute(e){for(const t of this._actions){if(this._stopped)break;await t.execute(e)}}async stop(){this._stopped=!0}}const pb=ba.object({action:ba.enum(["tap","double_tap","hold","start_tap","end_tap"])}),mb=ba.object({detail:pb});class gb{constructor(e){this._actionsInFlight=[],this._actionContext={},this.handleInteractionEvent=e=>{const t=mb.safeParse(e);if(!t.success)return;const n=t.data.detail.action,a=this.getMergedActions(),i=yf(n,a);a&&n&&i&&this.executeActions(i,a)},this.handleCustomActionEvent=e=>{"detail"in e&&this.executeActions(e.detail)},this.handleActionExecutionRequestEvent=async e=>{await this.executeActions(e.detail.action,e.detail.config)},this._api=e}getMergedActions(){const e=this._api.getViewManager().getView();if(this._api.getMessageManager().hasMessage())return{};const t=this._api.getConfigManager().getConfig();let n;if(e?.is("live"))n=t?.live.actions;else if(e?.isGalleryView())n=t?.media_gallery?.actions;else if(e?.isViewerView())n=t?.media_viewer.actions;else{if(!e?.is("image"))return{};n=t?.image?.actions}return{...t?.view.actions,...n}}uninitialize(){this._actionsInFlight.forEach((e=>e.stop()))}async executeActions(e,t){const n=new hb(this._actionContext,e,{config:t,cardID:this._api.getConfigManager().getConfig()?.card_id});this._actionsInFlight.push(n),await n.execute(this._api),this._actionsInFlight=this._actionsInFlight.filter((e=>e!==n))}}class fb{constructor(e){this._automations=[],this._priorEvaluations=new Map,this._nestedAutomationExecutions=0,this._api=e}deleteAutomations(e){this._automations=this._automations.filter((t=>t.tag!==e))}addAutomations(e){this._automations.push(...e)}execute(){if(!this._api.getHASSManager().hasHASS()||!this._api.getInitializationManager().isInitializedMandatory()||this._api.getMessageManager().hasErrorMessage())return;const e=[];for(const t of this._automations){const n=this._api.getConditionsManager().evaluateConditions(t.conditions),a=n?t.actions:t.actions_not,i=this._priorEvaluations.get(t);this._priorEvaluations.set(t,n),n!==i&&a&&e.push(...a)}if(!e.length)return;(async e=>{++this._nestedAutomationExecutions,this._nestedAutomationExecutions>10?this._api.getMessageManager().setMessageIfHigherPriority({type:"error",message:V_("error.too_many_automations")}):(await this._api.getActionsManager().executeActions(e),--this._nestedAutomationExecutions)})(e)}}class _b{constructor(e){this._api=e}openURL(){const e=this.getCameraURL();e&&window.open(e)}hasCameraURL(){return!!this.getCameraURL()}getCameraURL(){const e=this._api.getViewManager().getView(),t=e?.queryResults?.getSelectedResult()??null,n=e?.camera?this._api.getCameraManager().getCameraEndpoints(e.camera,{view:e.view,...t&&{media:t}})??null:null;return n?.ui?.endpoint??null}}const vb=(e,t)=>!!((e.attributes.supported_features??0)&t),yb=e=>(e=>vb(e,4)&&"number"==typeof e.attributes.in_progress)(e)||!!e.attributes.in_progress,bb=e=>{switch(e){case"armed_away":return"mdi:shield-lock";case"armed_vacation":return"mdi:shield-airplane";case"armed_home":return"mdi:shield-home";case"armed_night":return"mdi:shield-moon";case"armed_custom_bypass":return"mdi:security";case"pending":case"arming":return"mdi:shield-sync";case"triggered":return"mdi:bell-ring";case"disarmed":return"mdi:shield-off";default:return"mdi:shield"}},wb=(e,t)=>{const n="off"===e;switch(t?.attributes.device_class){case"battery":return n?"mdi:battery":"mdi:battery-outline";case"battery_charging":return n?"mdi:battery":"mdi:battery-charging";case"cold":return n?"mdi:thermometer":"mdi:snowflake";case"connectivity":return n?"mdi:close-network-outline":"mdi:check-network-outline";case"door":return n?"mdi:door-closed":"mdi:door-open";case"garage_door":return n?"mdi:garage":"mdi:garage-open";case"power":case"plug":return n?"mdi:power-plug-off":"mdi:power-plug";case"gas":case"problem":case"safety":case"tamper":return n?"mdi:check-circle":"mdi:alert-circle";case"smoke":return n?"mdi:check-circle":"mdi:smoke";case"heat":return n?"mdi:thermometer":"mdi:fire";case"light":return n?"mdi:brightness5":"mdi:brightness-7";case"lock":return n?"mdi:lock":"mdi:lock-open";case"moisture":return n?"mdi:water-off":"mdi:water";case"motion":return n?"mdi:motion-sensor-off":"mdi:motion-sensor";case"occupancy":case"presence":return n?"mdi:home-outline":"mdi:home";case"opening":return n?"mdi:square":"mdi:square-outline";case"running":return n?"mdi:stop":"mdi:play";case"sound":return n?"mdi:music-note-off":"mdi:music-note";case"update":return n?"mdi:package":"mdi:package-up";case"vibration":return n?"mdi:crop-portrait":"mdi:vibrate";case"window":return n?"mdi:window-closed":"mdi:window-open";default:return n?"mdi:radiobox-blank":"mdi:checkbox-marked-circle"}},xb=(e,t)=>{const n="closed"!==e;switch(t?.attributes.device_class){case"garage":switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:garage";default:return"mdi:garage-open"}case"gate":switch(e){case"opening":case"closing":return"mdi:gate-arrow-right";case"closed":return"mdi:gate";default:return"mdi:gate-open"}case"door":return n?"mdi:door-open":"mdi:door-closed";case"damper":return n?"md:circle":"mdi:circle-slice-8";case"shutter":switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:window-shutter";default:return"mdi:window-shutter-open"}case"curtain":switch(e){case"opening":return"mdi:arrow-split-vertical";case"closing":return"mdi:arrow-collapse-horizontal";case"closed":return"mdi:curtains-closed";default:return"mdi:curtains"}case"blind":case"shade":switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:blinds";default:return"mdi:blinds-open"}case"window":switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:window-closed";default:return"mdi:window-open"}}switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:window-closed";default:return"mdi:window-open"}},Cb={apparent_power:"mdi:flash",aqi:"mdi:air-filter",carbon_dioxide:"mdi:molecule-co2",carbon_monoxide:"mdi:molecule-co",current:"mdi:current-ac",date:"mdi:calendar",energy:"mdi:lightning-bolt",frequency:"mdi:sine-wave",gas:"mdi:gas-cylinder",humidity:"mdi:water-percent",illuminance:"mdi:brightness-5",monetary:"mdi:cash",nitrogen_dioxide:"mdi:molecule",nitrogen_monoxide:"mdi:molecule",nitrous_oxide:"mdi:molecule",ozone:"mdi:molecule",pm1:"mdi:molecule",pm10:"mdi:molecule",pm25:"mdi:molecule",power:"mdi:flash",power_factor:"mdi:angle-acute",pressure:"mdi:gauge",reactive_power:"mdi:flash",signal_strength:"mdi:wifi",sulphur_dioxide:"mdi:molecule",temperature:"mdi:thermometer",timestamp:"mdi:clock",volatile_organic_compounds:"mdi:molecule",voltage:"mdi:sine-wave"},Mb={10:"mdi:battery-10",20:"mdi:battery-20",30:"mdi:battery-30",40:"mdi:battery-40",50:"mdi:battery-50",60:"mdi:battery-60",70:"mdi:battery-70",80:"mdi:battery-80",90:"mdi:battery-90",100:"mdi:battery"},kb={10:"mdi:battery-charging-10",20:"mdi:battery-charging-20",30:"mdi:battery-charging-30",40:"mdi:battery-charging-40",50:"mdi:battery-charging-50",60:"mdi:battery-charging-60",70:"mdi:battery-charging-70",80:"mdi:battery-charging-80",90:"mdi:battery-charging-90",100:"mdi:battery-charging"},Sb=(e,t)=>{const n=Number(e);if(isNaN(n))return"off"===e?"mdi:battery":"on"===e?"mdi:battery-alert":"mdi:battery-unknown";const a=10*Math.round(n/10);return t&&n>=10?kb[a]:t?"mdi:battery-charging-outline":n<=5?"mdi:battery-alert-variant-outline":Mb[a]},Eb=e=>{const t=e?.attributes.device_class;if(t&&t in Cb)return Cb[t];if("battery"===t)return e?((e,t)=>{const n=e.state;return Sb(n,"on"===t?.state)})(e):"mdi:battery";const n=e?.attributes.unit_of_measurement;return"°C"===n||"°F"===n?"mdi:thermometer":void 0},$b="mdi:bookmark",Ab={alert:"mdi:alert",air_quality:"mdi:air-filter",automation:"mdi:robot",calendar:"mdi:calendar",camera:"mdi:video",climate:"mdi:thermostat",configurator:"mdi:cog",conversation:"mdi:text-to-speech",counter:"mdi:counter",fan:"mdi:fan",google_assistant:"mdi:google-assistant",group:"mdi:google-circles-communities",homeassistant:"mdi:home-assistant",homekit:"mdi:home-automation",image_processing:"mdi:image-filter-frames",input_button:"mdi:gesture-tap-button",input_datetime:"mdi:calendar-clock",input_number:"mdi:ray-vertex",input_select:"mdi:format-list-bulleted",input_text:"mdi:form-textbox",light:"mdi:lightbulb",mailbox:"mdi:mailbox",notify:"mdi:comment-alert",number:"mdi:ray-vertex",persistent_notification:"mdi:bell",person:"mdi:account",plant:"mdi:flower",proximity:"mdi:apple-safari",remote:"mdi:remote",scene:"mdi:palette",script:"mdi:script-text",select:"mdi:format-list-bulleted",sensor:"mdi:eye",siren:"mdi:bullhorn",simple_alarm:"mdi:bell",sun:"mdi:white-balance-sunny",timer:"mdi:timer-outline",updater:"mdi:cloud-upload",vacuum:"mdi:robot-vacuum",water_heater:"mdi:thermometer",weather:"mdi:weather-cloudy",zone:"mdi:map-marker-radius"};function zb(e,t,n,a){switch(e){case"alarm_control_panel":return bb(n);case"binary_sensor":return wb(n,t);case"button":switch(t?.attributes.device_class){case"restart":return"mdi:restart";case"update":return"mdi:package-up";default:return"mdi:gesture-tap-button"}case"cover":return xb(n,t);case"device_tracker":return"router"===t?.attributes.source_type?"home"===n?"mdi:lan-connect":"mdi:lan-disconnect":["bluetooth","bluetooth_le"].includes(t?.attributes.source_type)?"home"===n?"mdi:bluetooth-connect":"mdi:bluetooth":"not_home"===n?"mdi:account-arrow-right":"mdi:account";case"humidifier":return n&&"off"===n?"mdi:air-humidifier-off":"mdi:air-humidifier";case"input_boolean":return"on"===n?"mdi:check-circle-outline":"mdi:close-circle-outline";case"lock":switch(n){case"unlocked":return"mdi:lock-open";case"jammed":return"mdi:lock-alert";case"locking":case"unlocking":return"mdi:lock-clock";default:return"mdi:lock"}case"media_player":switch(t?.attributes.device_class){case"speaker":switch(n){case"playing":return"mdi:speaker-play";case"paused":return"mdi:speaker-pause";case"off":return"mdi:speaker-off";default:return"mdi:speaker"}case"tv":switch(n){case"playing":return"mdi:television-play";case"paused":return"mdi:television-pause";case"off":return"mdi:television-off";default:return"mdi:television"}default:switch(n){case"playing":case"paused":return"mdi:cast-connected";case"off":return"mdi:cast-off";default:return"mdi:cast"}}case"switch":switch(t?.attributes.device_class){case"outlet":return"on"===n?"mdi:power-plug":"mdi:power-plug-off";case"switch":return"on"===n?"mdi:toggle-switch":"mdi:toggle-switch-off";default:return"mdi:flash"}case"zwave":switch(n){case"dead":return"mdi:emoticon-dead";case"sleeping":return"mdi:sleep";case"initializing":return"mdi:timer-sand";default:return"mdi:z-wave"}case"sensor":{const e=Eb(t);if(e)return e;break}case"input_datetime":if(!t?.attributes.has_date)return"mdi:clock";if(!t.attributes.has_time)return"mdi:calendar";break;case"sun":return"above_horizon"===t?.state?Ab[e]:"mdi:weather-night";case"update":return"on"===t?.state?yb(t)?"mdi:package-down":"mdi:package-up":"mdi:package"}return e in Ab?Ab[e]:a??$b}async function Ib(e,t,n){const a={type:"auth/sign_path",path:t,expires:n},i=await $v(e,Os,a);return i?e.hassUrl(i.path):null}function Tb(e,t,n,a){if(!e||!n||!n.length)return[];const i=[];for(const r of n){const n=t?.states[r],o=e.states[r];if((a?.stateOnly&&n?.state!==o?.state||!a?.stateOnly&&n!==o)&&(i.push({entityID:r,oldState:n,newState:o}),a?.firstOnly))break}return i}function jb(e,t,n,a){return!!Tb(e,t,n,{...a,firstOnly:!0}).length}function Ob(e){if("off"===e.state||!e.attributes.brightness)return"";return`brightness(${(e.attributes.brightness+245)/5}%)`}function Db(e){return"off"===e.state?"":e.attributes.rgb_color?`rgb(${e.attributes.rgb_color.join(",")})`:""}function Rb(e){return{color:Db(e),filter:Ob(e)}}function Pb(e,t){if(!t.entity)return t;const n=e.states[t.entity];n&&t.state_color&&(t.style={...Rb(n),...t.style}),t.title=t.title??(n?.attributes?.friendly_name||t.entity),t.icon=t.icon??Nb(e,t.entity);const a=n?function(e){return Ye(e.entity_id)}(n):void 0;return t.data_domain=t.state_color||"light"===a&&!1!==t.state_color?a:void 0,n&&(t.data_state=(e=>{const t=e.entity_id.split(".")[0];let n=e.state;return"climate"===t&&(n=e.attributes.hvac_action),n})(n)),t}function Lb(e,t){return t?e?.states[t]?.attributes?.friendly_name:void 0}function Nb(e,t,n){const a=e.states[t];return a&&a.attributes.icon?a.attributes.icon:zb(Ye(t),a,a?.state,n)}const Fb=async()=>{if(["ha-button-menu","ha-button","ha-camera-stream","ha-card","ha-circular-progress","ha-hls-player","ha-icon-button","ha-icon","ha-menu-button","ha-selector","ha-web-rtc-player"].every((e=>customElements.get(e))))return!0;const e=await window.loadCardHelpers();await e.createCardElement({type:"picture-glance",entities:[],camera_image:"dummy-to-load-editor-components"}),await customElements.whenDefined("hui-picture-glance-card");const t=customElements.get("hui-picture-glance-card");if(!t)return!1;const n=new t;return await n.constructor.getConfigElement(),!0},Vb=e=>!!e&&["on","open"].includes(e),Hb=(e,t)=>{if(!e)return[];const n=Object.keys(e.states).filter((e=>!t||e.substr(0,e.indexOf("."))===t));return n.sort(),n};function Bb(e){return!!e?.startsWith("/")}function qb(e,t){return Bb(t)?e.hassUrl(t):t??null}class Ub{constructor(){this._initialized=new Set}async initializeMultipleIfNecessary(e){return(await tf(Object.entries(e),(async([e,t])=>await this.initializeIfNecessary(e,t)))).every(Boolean)}async initializeIfNecessary(e,t){return!!this._initialized.has(e)||(t?!!await t()&&(this._initialized.add(e),!0):(this._initialized.add(e),!0))}uninitialize(e){this._initialized.delete(e)}isInitialized(e){return this._initialized.has(e)}isInitializedMultiple(e){return e.every((e=>this.isInitialized(e)))}}var Wb;!function(e){e.LANGUAGES="languages",e.SIDE_LOAD_ELEMENTS="side-load-elements",e.CAMERAS="cameras",e.MICROPHONE_CONNECT="microphone-connect",e.VIEW="view"}(Wb||(Wb={}));class Zb{constructor(e,t){this._initializationQueue=new w_({concurrency:1}),this._everInitialized=!1,this._api=e,this._initializer=t??new Ub}wasEverInitialized(){return this._everInitialized}isInitializedMandatory(){return!!this._api.getConfigManager().getConfig()&&this._initializer.isInitializedMultiple([Wb.LANGUAGES,Wb.SIDE_LOAD_ELEMENTS,Wb.CAMERAS,...this._api.getMicrophoneManager().shouldConnectOnInitialization()?[Wb.MICROPHONE_CONNECT]:[],Wb.VIEW])}async initializeMandatory(){await this._initializationQueue.add((()=>this._initializeMandatory()))}async _initializeMandatory(){const e=this._api.getHASSManager().getHASS();if(!e||this.isInitializedMandatory())return;if(!await this._initializer.initializeMultipleIfNecessary({[Wb.LANGUAGES]:async()=>await(async e=>{const t=F_(e);return"ca"===t?L_[t]=await import("./lang-ca-449daa4a.js"):"it"===t?L_[t]=await import("./lang-it-2a20a319.js"):"pt"===t?L_[t]=await import("./lang-pt-PT-c4863423.js"):"pt_BR"===t?L_[t]=await import("./lang-pt-BR-83a703b9.js"):"fr"===t&&(L_[t]=await import("./lang-fr-674e5de5.js")),t&&(N_=t),!0})(e),[Wb.SIDE_LOAD_ELEMENTS]:async()=>await Fb()}))return;this._api.getConfigManager().getConfig()&&await this._initializer.initializeMultipleIfNecessary({[Wb.CAMERAS]:async()=>await this._api.getCameraManager().initializeCamerasFromConfig(),...this._api.getMicrophoneManager().shouldConnectOnInitialization()&&{[Wb.MICROPHONE_CONNECT]:async()=>await this._api.getMicrophoneManager().connect()}})&&!this._api.getMessageManager().hasMessage()&&await this._initializer.initializeIfNecessary(Wb.VIEW,this._api.getViewManager().initialize)&&(this._everInitialized=!0,this._api.getCardElementManager().update())}uninitialize(e){this._initializer.uninitialize(e)}}class Qb{constructor(e,t,n,a){this.update=()=>{this._element.requestUpdate()},this._api=e,this._element=t,this._scrollCallback=n,this._menuToggleCallback=a}getElement(){return this._element}scrollReset(){this._scrollCallback()}toggleMenu(){this._menuToggleCallback()}hasUpdated(){return this._element.hasUpdated}elementConnected(){this._api.getInteractionManager().initialize(),this._api.getFullscreenManager().initialize(),this._api.getExpandManager().initialize(),this._api.getMediaLoadedInfoManager().initialize(),this._api.getMicrophoneManager().initialize(),this._api.getKeyboardStateManager().initialize(),this._api.getDefaultManager().initialize(),this._api.getMediaPlayerManager().initialize(),this._api.getHASSManager().getStateWatcher()?.subscribe(this.update,[...this._api.getConfigManager().getConfig()?.view.render_entities??[],...this._api.getMediaPlayerManager().getMediaPlayers()??[]]),of(this._element,(e=>{const t=e.getRootNode();return!!(t&&t instanceof ShadowRoot&&"HUI-PANEL-VIEW"===t.host.tagName)})(this._element),"panel"),of(this._element,!0,"tabindex","0"),this._api.getFullscreenManager().connect(),this._element.addEventListener("mousemove",this._api.getInteractionManager().reportInteraction),this._element.addEventListener("wheel",this._api.getInteractionManager().reportInteraction),this._element.addEventListener("ll-custom",this._api.getActionsManager().handleCustomActionEvent),this._element.addEventListener("action",this._api.getActionsManager().handleInteractionEvent),this._element.addEventListener("action",this._api.getInteractionManager().reportInteraction),this._element.addEventListener("frigate-card:action:execution-request",this._api.getActionsManager().handleActionExecutionRequestEvent),window.addEventListener("location-changed",this._api.getQueryStringManager().requestExecution),window.addEventListener("popstate",this._api.getQueryStringManager().requestExecution),this._api.getQueryStringManager().requestExecution(),this._element.requestUpdate()}elementDisconnected(){of(this._element,!1,"panel"),of(this._element,!1,"tabindex"),this._api.getMediaLoadedInfoManager().clear(),this._api.getFullscreenManager().disconnect(),this._api.getKeyboardStateManager().uninitialize(),this._api.getActionsManager().uninitialize(),this._api.getDefaultManager().uninitialize(),this._api.getHASSManager().getStateWatcher()?.unsubscribe(this.update),this._api.getInitializationManager().uninitialize(Wb.CAMERAS),this._api.getCameraManager().reset(),this._element.removeEventListener("mousemove",this._api.getInteractionManager().reportInteraction),this._element.removeEventListener("wheel",this._api.getInteractionManager().reportInteraction),this._element.removeEventListener("ll-custom",this._api.getActionsManager().handleCustomActionEvent),this._element.removeEventListener("action",this._api.getActionsManager().handleInteractionEvent),this._element.removeEventListener("action",this._api.getInteractionManager().reportInteraction),this._element.removeEventListener("frigate-card:action:execution-request",this._api.getActionsManager().handleActionExecutionRequestEvent),window.removeEventListener("location-changed",this._api.getQueryStringManager().requestExecution),window.removeEventListener("popstate",this._api.getQueryStringManager().requestExecution)}}function Gb(e,t,n){return null==e?e:function(e,t,n,a){if(!hh(e))return e;for(var i=-1,r=(t=sv(t,e)).length,o=r-1,s=e;null!=s&&++i{Gb(e,t,n)},Xb=(e,t,n)=>fv(e,t,n),Jb=(e,t)=>{!function(e,t){null==e||Yb(e,t)}(e,t)},ew=e=>u_(e),tw=(e,t)=>e.replace("#",`[${t.toString()}]`),nw=function(e){let t=!1;for(let n=0;n{const i=Xb(e,t);if(void 0===i)return!1;const r=a?.transform?a.transform(i):i;return!(t===n&&Dv(i,r)||(null===r?a?.keepOriginal||(Jb(e,t),0):void 0===r||(a?.keepOriginal||Jb(e,t),Kb(e,n,r),0)))})(a,e,t,n)}},rw=function(e,t,n){return function(a){let i=iw(e,t,n)(a);return i=cw(bs,iw(e,t,n),(e=>e.overrides))(a)||i,i}},ow=function(e,t){return rw(e,e,{transform:t})},sw=function(e){return rw(e,e,{transform:e=>null})},cw=function(e,t,n){return function(a){let i=!1;const r=Xb(a,e);return Array.isArray(r)&&r.forEach((e=>{const a=n?n(e):e;a&&"object"==typeof a&&(i=t(a)||i)})),i}},lw=(e,t)=>{const n=a=>{let i=!1;if(a&&"object"==typeof a){const r=t?t(a):a;r&&(i=e(r)||i),Array.isArray(a)?a.forEach((e=>{i=n(e)||i})):Object.keys(a).forEach((e=>{i=n(a[e])||i}))}return i};return n},dw=e=>!("object"!=typeof e||!e||void 0===e.mediaLoaded)&&(e.media_loaded=e.mediaLoaded,delete e.mediaLoaded,!0),uw=e=>{if("object"!=typeof e||!e||"object"!=typeof e.conditions||!e.conditions)return!1;const t=e.conditions,n=[];if(void 0!==t.view&&n.push({condition:"view",views:t.view}),void 0!==t.fullscreen&&n.push({condition:"fullscreen",fullscreen:t.fullscreen}),void 0!==t.expand&&n.push({condition:"expand",expand:t.expand}),void 0!==t.camera&&n.push({condition:"camera",cameras:t.camera}),void 0!==t.media_loaded&&n.push({condition:"media_loaded",media_loaded:t.media_loaded}),void 0!==t.state&&Array.isArray(t.state))for(const e of t.state)"object"!=typeof e||!e||void 0===e.state&&void 0===e.state_not&&void 0===e.entity||n.push({condition:"state",...e.state&&{state:e.state},...e.state_not&&{state_not:e.state_not},...e.entity&&{entity:e.entity}});return void 0!==t.media_query&&n.push({condition:"screen",media_query:t.media_query}),!!n.length&&(e.conditions=n,!0)},hw=e=>!("object"!=typeof e||!e||"call-service"!==e.action||"string"!=typeof e.service)&&(e.action="perform-action",e.perform_action=e.service,delete e.service,!0),pw=e=>!("object"!=typeof e||!e||"call-service"!==e.action||void 0===e.service||void 0===e.service_data||void 0!==e.data)&&(e.data=e.service_data,delete e.service_data,!0),mw=e=>!("object"!=typeof e||!e||"custom:frigate-card-action"!==e.action||"frigate_ui"!==e.frigate_card_action)&&(e.frigate_card_action="camera_ui",!0),gw=[cw(bs,dw,(e=>e.conditions)),e=>lw(dw,(e=>e.conditions))("object"==typeof e&&e?e[Ii]:{}),rw("event_gallery",or),rw("menu.buttons.frigate_ui",is),e=>lw(mw)("object"==typeof e&&e?e:{}),cw(Ca,ow("live_provider",(e=>"frigate-jsmpeg"===e?"jsmpeg":e))),rw("live.jsmpeg",ki),rw("live.image",Ci),rw("live.webrtc_card",Si),cw(Ca,rw("frigate.zone","frigate.zones",{transform:e=>Wg(e)})),cw(Ca,rw("frigate.label","frigate.labels",{transform:e=>Wg(e)})),e=>lw(pw)("object"==typeof e&&e?e:{}),function(e){if("object"!=typeof e||!e||!(Ii in e)||!Array.isArray(e[Ii]))return!1;let t=!1;const n=n=>{if(!t){if(!fv(e,"live.controls.ptz")){const{type:t,...a}=n;Gb(e,"live.controls.ptz",a)}t=!0}},a=e=>{const t=[];for(const i of e)if("custom:frigate-card-ptz"===i.type)n(i);else if("conditional"!==i.type&&"custom:frigate-card-conditional"!==i.type||!Array.isArray(i.elements))t.push(i);else{const e=a(i.elements);e.length&&(i.elements=e,t.push(i))}return t},i=a(e[Ii]);return t&&(i.length?e[Ii]=i:delete e[Ii]),t},rw("view.timeout_seconds",Ri),ow("live.lazy_unload",(e=>"all"===e?["unselected","hidden"]:"never"===e?null:Wg(e))),ow("live.auto_play",(e=>"all"===e?null:"never"===e?[]:Wg(e))),ow("live.auto_pause",(e=>"all"===e?["unselected","hidden"]:"never"===e?null:Wg(e))),ow("live.auto_mute",(e=>"all"===e?null:"never"===e?[]:Wg(e))),ow("live.auto_unmute",(e=>"all"===e?["selected","visible","microphone"]:"never"===e?null:Wg(e))),ow("media_viewer.auto_play",(e=>"all"===e?null:"never"===e?[]:Wg(e))),ow("media_viewer.auto_pause",(e=>"all"===e?null:"never"===e?[]:Wg(e))),ow("media_viewer.auto_mute",(e=>"all"===e?null:"never"===e?[]:Wg(e))),ow("media_viewer.auto_unmute",(e=>"all"===e?["selected","visible"]:"never"===e?null:Wg(e))),rw("live.controls.thumbnails.media",io),rw("timeline.media",Ho),rw("live.controls.timeline.media",po),rw("media_viewer.controls.timeline.media",Rr),rw("view.scan",Xi),rw("view.triggers.enabled",ar,{transform:e=>!0===e?"live":null,keepOriginal:!0}),rw("view.triggers.enabled",er,{transform:e=>!0!==e&&null}),rw("view.triggers.untrigger_reset",ir,{transform:e=>e?"default":null}),rw("live.layout",Ai),sw("media_viewer.layout"),sw("image.layout"),cw(bs,uw),e=>lw(uw)("object"==typeof e&&e?e[Ii]:{}),e=>lw(uw)("object"==typeof e&&e?e.automations:{}),cw(Ca,rw("hide","capabilities",{transform:e=>!0===e?{disable_except:["substream"]}:null})),rw("performance.profile",$s,{transform:e=>"low"===e?["low-performance"]:null}),cw(bs,iw("overrides","merge")),rw("live.controls.ptz",zi,{transform:e=>{if("object"!=typeof e||!e)return;const t=["data_left","data_right","data_up","data_down","data_zoom_in","data_zoom_out","service"],n=["actions_left","actions_right","actions_up","actions_down","actions_zoom_in","actions_zoom_out"],a=[...t,...n,"data_home","actions_home"];if(!Object.keys(e).some((e=>a.includes(e))))return;const i={};t.filter((t=>t in e)).reduce(((t,n)=>(t[n]=e[n],t)),i),n.filter((t=>t in e)).reduce(((t,n)=>("object"==typeof e[n]&&"tap_action"in e[n]&&(t[n]=e[n].tap_action),t)),i);const r=()=>{i.presets="presets"in e&&"object"==typeof e.presets&&e.presets?e.presets:{}};return"actions_home"in e&&"object"==typeof e.actions_home&&e.actions_home&&"tap_action"in e.actions_home?(r(),i.presets.home=e.actions_home.tap_action):"data_home"in e&&"object"==typeof e.data_home&&e.data_home&&"string"==typeof e.service&&(r(),i.presets.service=e.service,i.presets.data_home=e.data_home),i},keepOriginal:!0}),ow("live.controls.ptz",(e=>{if("object"!=typeof e||!e)return e;const t=["mode","position","orientation","hide_pan_tilt","hide_zoom","hide_home","style"],n=Object.keys(e);return n.some((e=>!t.includes(e)))?n.filter((e=>t.includes(e))).reduce(((t,n)=>(t[n]=e[n],t)),{}):void 0})),rw("view.update_cycle_camera",Wi),rw("view.update_force",Qi,{transform:e=>!0===e?"all":null}),rw("view.update_seconds",Gi),rw("view.update_entities",Yi),iw("live.controls.title",ds,{transform:e=>"object"==typeof e&&e&&"string"==typeof e.mode?"none"===e.mode?{style:"none"}:e.mode.includes("bottom")?{position:"bottom"}:e.mode.includes("top")?{position:"top"}:null:null}),sw("live.controls.title"),sw("media_viewer.controls.title"),e=>lw(hw)("object"==typeof e&&e?e:{}),rw("dimensions.max_height",ys),sw("dimensions.min_height")];class fw extends zs{}class _w extends Event{constructor(e,t){super("frigate-card:conditions:evaluate",t),this.conditions=e}}function vw(e,t,n){let a=ew(t),i=!1;if(n?.configOverrides)for(const t of n.configOverrides)e.evaluateConditions(t.conditions,n?.stateOverrides)&&(t.delete?.forEach((e=>{Jb(a,e)})),Object.keys(t.set??{}).forEach((e=>{Kb(a,e,t.set?.[e])})),Object.keys(t.merge??{}).forEach((e=>{Kb(a,e,Ly({},Xb(a,e),t.merge?.[e]))})),i=!0);if(!i)return t;if(n?.configOverrides?.some((e=>e.delete?.length))&&(a=hf(a)),n?.schema){const e=n.schema.safeParse(a);if(!e.success)throw new fw(V_("error.invalid_configuration_override"),[e.error.errors,a]);return e.data}return a}class yw{constructor(e,t){this._state={},this._epoch=this._createEpoch(),this._hasHAStateConditions=!1,this._mediaQueries=[],this._mediaQueryTrigger=()=>this._triggerChange(),this._api=e,this._listeners=[()=>this._api.getConfigManager().computeOverrideConfig(),()=>this._api.getAutomationsManager().execute(),...t?[t]:[]]}removeConditions(){this._mediaQueries.forEach((e=>e.removeEventListener("change",this._mediaQueryTrigger))),this._mediaQueries=[]}setConditionsFromConfig(){this.removeConditions();const e=(()=>{const e=this._api.getConfigManager().getConfig(),t=[];e?.overrides?.forEach((e=>t.push(...e.conditions))),e?.automations?.forEach((e=>t.push(...e.conditions)));const n=e=>{const a=vl.safeParse(e);a.success?(t.push(...a.data.conditions),a.data.elements?.forEach(n)):e&&"object"==typeof e&&Object.keys(e).forEach((t=>n(e[t])))};return e?.elements?.forEach(n),t})();this._hasHAStateConditions=e.some((e=>!e.condition||["state","numeric_state","user"].includes(e.condition))),e.forEach((e=>{if("screen"===e.condition){const t=window.matchMedia(e.media_query);t.addEventListener("change",this._mediaQueryTrigger),this._mediaQueries.push(t)}}))}setState(e){Object.keys(e).every((t=>Dv(e[t],this._state[t])))||(this._state={...this._state,...e},this._triggerChange())}getState(){return this._state}hasHAStateConditions(){return this._hasHAStateConditions}getEpoch(){return this._epoch}evaluateConditions(e,t){return e.every((e=>this._evaluateCondition(e,t)))}_evaluateCondition(e,t){const n={...this._state,...t};switch(e.condition){case void 0:case"state":return!!n.state&&(!e.state&&!e.state_not||e.entity in n.state&&(!e.state||(Array.isArray(e.state)?e.state.includes(n.state[e.entity].state):e.state===n.state[e.entity].state))&&(!e.state_not||(Array.isArray(e.state_not)?!e.state_not.includes(n.state[e.entity].state):e.state_not!==n.state[e.entity].state)));case"view":return!!n?.view&&e.views.includes(n.view);case"fullscreen":return void 0!==n.fullscreen&&e.fullscreen===n.fullscreen;case"expand":return void 0!==n.expand&&e.expand===n.expand;case"camera":return!!n.camera&&e.cameras.includes(n.camera);case"numeric_state":return!!n.state&&e.entity in n.state&&void 0!==n.state[e.entity].state&&(void 0===e.above||Number(n.state[e.entity].state)>e.above)&&(void 0===e.below||Number(n.state[e.entity].state)n.triggered?.has(e)));case"interaction":return void 0!==n.interaction&&e.interaction===n.interaction;case"microphone":return!(void 0!==e.connected&&n.microphone?.connected!==e.connected||void 0!==e.muted&&n.microphone?.muted!==e.muted);case"key":return!(!n.keys||!(e.key in n.keys)||(e.state??"down")!==n.keys[e.key].state||void 0!==e.ctrl&&e.ctrl!==!!n.keys[e.key].ctrl||void 0!==e.alt&&e.alt!==!!n.keys[e.key].alt||void 0!==e.meta&&e.meta!==!!n.keys[e.key].meta||void 0!==e.shift&&e.shift!==!!n.keys[e.key].shift)}}_createEpoch(){return{manager:this}}_triggerChange(){this._epoch=this._createEpoch(),this._listeners.forEach((e=>e()))}}const bw={casting:{[Qr]:!1,[Sr]:!1,[es]:"none",[`${os}.enabled`]:!0,[`${ss}.enabled`]:!0,[`${rs}.enabled`]:!1,[`${cs}.enabled`]:!1,[Zr]:["selected","visible"],[vs]:"static",[_s]:"16:9",[$i]:1,[$o]:!0},"low-performance":{[ro]:"none",[Ar]:"none",[Uo]:"none",[fo]:!1,[Nr]:!1,[Bo]:!1,[Wr]:[],[mr]:[],[gr]:[],[fr]:[],[ko]:["unselected","hidden"],[Co]:!1,[xr]:!1,[Eo]:"none",[kr]:"none",[$o]:!1,[Er]:"chevrons",[hs]:"none",[es]:"outside",[`${as}.enabled`]:!1,[`${ls}.enabled`]:!1,[`${ls}.enabled`]:!1,[`${cs}.enabled`]:!1,[lr]:!1,[dr]:!1,[ur]:!1,[cr]:!1,[co]:!1,[lo]:!1,[uo]:!1,[so]:!1,[Ir]:!1,[Tr]:!1,[jr]:!1,[zr]:!1,[Qo]:!1,[Go]:!1,[Yo]:!1,[Zo]:!1,[xs]:!1,[Cs]:10,[Es]:!1,[Ss]:!1,[Mr]:!1,[Ei]:!1,[Mi]:"image",[$i]:10,[ar]:"none",[Ms]:1},scrubbing:{[mo]:"below",[_o]:"ribbon",[go]:"seek",[Pr]:"below",[Fr]:"ribbon",[Lr]:"seek"}},ww=(e,t,n)=>{const a=Ds(Nd).safeParse(e);if(!a.success)return t;const i=a.data;for(const e of n??[])e in bw&&Object.entries(bw[e]).forEach((([e,n])=>{return r=n,void(void 0===Xb(i,a=e)&&Kb(t,a,r));var a,r}));return t},xw=e=>{switch(e){case"ptz_left":return"left";case"ptz_right":return"right";case"ptz_up":return"up";case"ptz_down":return"down";case"ptz_zoom_in":return"zoom_in";case"ptz_zoom_out":return"zoom_out"} +/* istanbul ignore next: No (current) way to reach this code -- @preserve */return null},Cw=(e,t)=>{if(!t.enabled)return[];const n=[];for(const a of["ptz_down","ptz_left","ptz_right","ptz_up","ptz_zoom_in","ptz_zoom_out"]){const i=t[a],r=xw(a);i&&r&&(n.push({conditions:[{condition:"key",key:i.key,state:"down",shift:i.shift,ctrl:i.ctrl,alt:i.alt,meta:i.meta}],actions:[vf({ptzAction:r,ptzPhase:"start"})],tag:e}),n.push({conditions:[{condition:"key",key:i.key,state:"up"}],actions:[vf({ptzAction:r,ptzPhase:"stop"})],tag:e}))}const a=t.ptz_home;return a&&n.push({conditions:[{condition:"key",key:a.key,state:"down",shift:a.shift,ctrl:a.ctrl,alt:a.alt,meta:a.meta}],actions:[vf()],tag:e}),n};class Mw{constructor(e){this._config=null,this._overriddenConfig=null,this._rawConfig=null,this._cardWideConfig=null,this._api=e}hasConfig(){return!!this.getConfig()}getConfig(){return this._overriddenConfig??this._config}getCardWideConfig(){return this._cardWideConfig}getNonOverriddenConfig(){return this._config}getRawConfig(){return this._rawConfig}setConfig(e){if(!e)throw new Error(V_("error.invalid_configuration"));const t=Nd.safeParse(e);if(!t.success){const n=aw(e),a=Ps(t.error);let i="";throw n&&(i=`${V_("error.upgrade_available")}. `),new Error(i+`${V_("error.invalid_configuration")}: `+(a&&a.size?JSON.stringify([...a],null," "):V_("error.invalid_configuration_no_hint")))}const n=ww(e,t.data,t.data.profiles);var a;(this._rawConfig=e,Dv(this._config,n))||(this._config=n,this._cardWideConfig={performance:n.performance,debug:n.debug},this._api.getConditionsManager().setConditionsFromConfig(),this._api.getConditionsManager().setState({view:void 0,displayMode:void 0,camera:void 0}),this._api.getMediaLoadedInfoManager().clear(),this._api.getInitializationManager().uninitialize(Wb.VIEW),this._api.getViewManager().reset(),this._api.getMessageManager().reset(),this._api.getStyleManager().setPerformance(),this._api.getStatusBarItemManager().removeAllDynamicStatusBarItems(),((e,t)=>{e.getAutomationsManager().deleteAutomations(t);const n=e.getConfigManager().getConfig()?.view.keyboard_shortcuts;if(!n)return;const a=Cw(t,n);a.length&&e.getAutomationsManager().addAutomations(a)})(this._api,this),(a=this._api).getAutomationsManager().deleteAutomations(),a.getAutomationsManager().addAutomations(a.getConfigManager().getNonOverriddenConfig()?.automations??[]),this.computeOverrideConfig(),this._api.getCardElementManager().update())}computeOverrideConfig(){const e=this._api.getConditionsManager();if(!this._config)return;let t=null;try{t=vw(e,this._config,{configOverrides:this._config.overrides,schema:Nd})}catch(e){return void this._api.getMessageManager().setErrorIfHigherPriority(e)}if(Dv(t,this._overriddenConfig))return;const n=this._overriddenConfig;this._overriddenConfig=t,this._api.getStyleManager().setMinMaxHeight(),!n||Dv(n?.cameras,this._overriddenConfig?.cameras)&&Dv(n?.cameras_global,this._overriddenConfig?.cameras_global)||this._api.getInitializationManager().uninitialize(Wb.CAMERAS),n&&n?.live.microphone.always_connected!==this._overriddenConfig?.live.microphone.always_connected&&this._api.getInitializationManager().uninitialize(Wb.MICROPHONE_CONNECT),this._initializeBackground(n)}async _initializeBackground(e){await this._api.getDefaultManager().initializeIfNecessary(e),await this._api.getMediaPlayerManager().initializeIfNecessary(e),this._api.getCardElementManager().update()}}class kw{constructor(e){this._timer=new xf,this._stateChangeHandler=()=>{this._setToDefaultIfAllowed()},this._api=e}async initializeIfNecessary(e){Dv(e?.view.default_reset,this._api.getConfigManager().getConfig()?.view.default_reset)||await this.initialize()}async initialize(){this.uninitialize();const e=this._api.getConfigManager().getConfig()?.view.default_reset;e?.entities.length&&this._api.getHASSManager().getStateWatcher().subscribe(this._stateChangeHandler,e.entities);const t=this._api.getConfigManager().getConfig()?.view.default_reset.every_seconds;return t&&this._timer.startRepeated(t,(()=>this._setToDefaultIfAllowed())),this._api.getConfigManager().getConfig()?.view.default_reset.after_interaction&&this._api.getAutomationsManager().addAutomations([{actions:[gf("default")],conditions:[{condition:"interaction",interaction:!1}],tag:this}]),!0}uninitialize(){this._timer.stop(),this._api.getHASSManager().getStateWatcher().unsubscribe(this._stateChangeHandler),this._api.getAutomationsManager().deleteAutomations(this)}_setToDefaultIfAllowed(){this._isAutomatedUpdateAllowed()&&this._api.getViewManager().setViewDefault()}_isAutomatedUpdateAllowed(){const e=this._api.getConfigManager().getConfig()?.view.default_reset.interaction_mode;return!!e&&((e,t)=>{switch(e){case"all":return!0;case"active":return t;case"inactive":return!t}})(e,this._api.getInteractionManager().hasInteraction())}}const Sw=(e,t="download")=>{const n=new URL(e).origin===window.location.origin,a=e.startsWith("data:");if(navigator.userAgent.startsWith("Home Assistant/")||navigator.userAgent.startsWith("HomeAssistant/")||!n&&!a)window.open(e,"_blank");else{const n=document.createElement("a");n.setAttribute("download",t),n.href=e,n.click(),n.remove()}},Ew=async(e,t,n)=>{const a=await t.getMediaDownloadPath(n);if(!a)throw new zs(V_("error.download_no_media"));let i=a.endpoint;if(a.sign){let t;try{t=await Ib(e,a.endpoint)}catch(e){Gg(e)}if(!t)throw new zs(V_("error.download_sign_failed"));i=t}Sw(i)},$w=e=>{const t=document.createElement("canvas");t.width=e.videoWidth,t.height=e.videoHeight;const n=t.getContext("2d");return n?(n.drawImage(e,0,0,t.width,t.height),t.toDataURL("image/jpeg")):null};class Aw{constructor(e){this._api=e}async downloadViewerMedia(){const e=this._api.getViewManager().getView()?.queryResults?.getSelectedResult(),t=this._api.getHASSManager().getHASS();if(!e||!t)return!1;try{await Ew(t,this._api.getCameraManager(),e)}catch(e){return this._api.getMessageManager().setErrorIfHigherPriority(e),!1}return!0}async downloadScreenshot(){const e=await(this._api.getMediaLoadedInfoManager().get()?.player?.getScreenshotURL());e&&Sw(e,(e=>{if(e?.is("live")||e?.is("image"))return`${e.view}-${e.camera}-${Wu(new Date,"yyyy-MM-dd-HH-mm-ss")}.jpg`;if(e?.isViewerView()){const t=e.queryResults?.getSelectedResult(),n=t?.getID()??null;return`${e.view}-${e.camera}${n?`-${n}`:""}.jpg`}return"screenshot.jpg"})(this._api.getViewManager().getView()))}}class zw{constructor(e){this._expanded=!1,this._api=e}initialize(){this._setConditionState()}isExpanded(){return this._expanded}toggleExpanded(){this.setExpanded(!this._expanded)}setExpanded(e){e&&this._api.getFullscreenManager().isInFullscreen()&&this._api.getFullscreenManager().stopFullscreen(),this._expanded=e,this._setConditionState(),this._api.getCardElementManager().update()}_setConditionState(){this._api.getConditionsManager()?.setState({expand:this._expanded})}}const Iw=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],Tw=(()=>{if("undefined"==typeof document)return!1;const e=Iw[0],t={};for(const n of Iw){const a=n?.[1];if(a in document){for(const[a,i]of n.entries())t[e[a]]=i;return t}}return!1})(),jw={change:Tw.fullscreenchange,error:Tw.fullscreenerror};let Ow={request:(e=document.documentElement,t)=>new Promise(((n,a)=>{const i=()=>{Ow.off("change",i),n()};Ow.on("change",i);const r=e[Tw.requestFullscreen](t);r instanceof Promise&&r.then(i).catch(a)})),exit:()=>new Promise(((e,t)=>{if(!Ow.isFullscreen)return void e();const n=()=>{Ow.off("change",n),e()};Ow.on("change",n);const a=document[Tw.exitFullscreen]();a instanceof Promise&&a.then(n).catch(t)})),toggle:(e,t)=>Ow.isFullscreen?Ow.exit():Ow.request(e,t),onchange(e){Ow.on("change",e)},onerror(e){Ow.on("error",e)},on(e,t){const n=jw[e];n&&document.addEventListener(n,t,!1)},off(e,t){const n=jw[e];n&&document.removeEventListener(n,t,!1)},raw:Tw};Object.defineProperties(Ow,{isFullscreen:{get:()=>Boolean(document[Tw.fullscreenElement])},element:{enumerable:!0,get:()=>document[Tw.fullscreenElement]??void 0},isEnabled:{enumerable:!0,get:()=>Boolean(document[Tw.fullscreenEnabled])}}),Tw||(Ow={isEnabled:!1});var Dw=Ow;class Rw{constructor(e){this._fullscreenHandler=()=>{this._api.getExpandManager().setExpanded(!1),this._setConditionState(),this._api.getCardElementManager().update()},this._api=e}initialize(){this._setConditionState()}connect(){Dw.isEnabled&&Dw.on("change",this._fullscreenHandler)}disconnect(){Dw.isEnabled&&Dw.off("change",this._fullscreenHandler)}isInFullscreen(){return Dw.isEnabled&&Dw.isFullscreen}toggleFullscreen(){Dw.toggle(this._api.getCardElementManager().getElement())}stopFullscreen(){Dw.exit()}_setConditionState(){this._api.getConditionsManager()?.setState({fullscreen:this.isInFullscreen()})}}class Pw{constructor(){this._watcherCallbacks=new Map}setHASS(e,t){if(e)for(const[n,a]of this._watcherCallbacks.entries()){const i=Tb(t,e,a,{stateOnly:!0,firstOnly:!0});i.length&&n(i[0])}}subscribe(e,t){return!!t.length&&(this._watcherCallbacks.has(e)?this._watcherCallbacks.get(e)?.push(...t):this._watcherCallbacks.set(e,t),!0)}unsubscribe(e){this._watcherCallbacks.delete(e)}}class Lw{constructor(e){this._hass=null,this._stateWatcher=new Pw,this._api=e}getHASS(){return this._hass}hasHASS(){return!!this._hass}getStateWatcher(){return this._stateWatcher}setHASS(e){if(((e,t)=>e?.connected!==t?.connected)(this._hass,e)&&(e?.connected?this._api.getMessageManager().resetType("connection"):this._api.getMessageManager().setMessageIfHigherPriority({message:V_("error.reconnecting"),icon:"mdi:lan-disconnect",type:"connection",dotdotdot:!0})),!e)return;const t=this._hass;this._hass=e,this._api.getConditionsManager().hasHAStateConditions()&&this._api.getConditionsManager().setState({state:this._hass.states,user:this._hass.user}),this._api.getStyleManager().setLightOrDarkMode(),this._stateWatcher.setHASS(t,e)}}var Nw=function(){return th.Date.now()},Fw="Expected a function",Vw=Math.max,Hw=Math.min;function Bw(e,t,n){var a,i,r,o,s,c,l=0,d=!1,u=!1,h=!0;if("function"!=typeof e)throw new TypeError(Fw);function p(t){var n=a,r=i;return a=i=void 0,l=t,o=e.apply(r,n)}function m(e){var n=e-c;return void 0===c||n>=t||n<0||u&&e-l>=r}function g(){var e=Nw();if(m(e))return f(e);s=setTimeout(g,function(e){var n=t-(e-c);return u?Hw(n,r-(e-l)):n}(e))}function f(e){return s=void 0,h&&a?p(e):(a=i=void 0,o)}function _(){var e=Nw(),n=m(e);if(a=arguments,i=this,c=e,n){if(void 0===s)return function(e){return l=e,s=setTimeout(g,t),d?p(e):o}(c);if(u)return clearTimeout(s),s=setTimeout(g,t),p(c)}return void 0===s&&(s=setTimeout(g,t)),o}return t=Cg(t)||0,hh(n)&&(d=!!n.leading,r=(u="maxWait"in n)?Vw(Cg(n.maxWait)||0,t):r,h="trailing"in n?!!n.trailing:h),_.cancel=function(){void 0!==s&&clearTimeout(s),l=0,a=c=i=s=void 0},_.flush=function(){return void 0===s?o:f(Nw())},_}function qw(e,t,n){var a=!0,i=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return hh(n)&&(a="leading"in n?!!n.leading:a,i="trailing"in n?!!n.trailing:i),Bw(e,t,{leading:a,maxWait:t,trailing:i})}class Uw{constructor(e){this._timer=new xf,this.reportInteraction=qw((()=>{this._reportInteraction()}),1e3),this._api=e}initialize(){this._api.getConditionsManager().setState({interaction:!1})}hasInteraction(){return this._timer.isRunning()}_reportInteraction(){this._timer.stop();const e=this._api.getConfigManager().getConfig()?.view.interaction_seconds;e&&(this._api.getConditionsManager().setState({interaction:!0}),this._timer.start(e,(()=>{this._api.getConditionsManager().setState({interaction:!1}),this._api.getStyleManager().setLightOrDarkMode()})))}}class Ww{constructor(e){this._state={},this._handleKeydown=e=>{const t={state:"down",ctrl:e.ctrlKey,alt:e.altKey,meta:e.metaKey,shift:e.shiftKey};Dv(this._state[e.key],t)||(this._state[e.key]=t,this._processStateChange())},this._handleKeyup=e=>{e.key in this._state&&"down"===this._state[e.key].state&&(this._state[e.key].state="up",this._processStateChange())},this._handleBlur=()=>{Object.keys(this._state).length&&(this._state={},this._processStateChange())},this._api=e}initialize(){const e=this._api.getCardElementManager().getElement();e.addEventListener("keydown",this._handleKeydown),e.addEventListener("keyup",this._handleKeyup),e.addEventListener("blur",this._handleBlur)}uninitialize(){const e=this._api.getCardElementManager().getElement();e.removeEventListener("keydown",this._handleKeydown),e.removeEventListener("keyup",this._handleKeyup),e.removeEventListener("blur",this._handleBlur)}_processStateChange(){this._api.getConditionsManager().setState({keys:this._state})}}function Zw(e,t){let n;return n=e instanceof Event?e.composedPath()[0]:e,n instanceof HTMLImageElement?{width:n.naturalWidth,height:n.naturalHeight,...t}:n instanceof HTMLVideoElement?{width:n.videoWidth,height:n.videoHeight,...t}:n instanceof HTMLCanvasElement?{width:n.width,height:n.height,player:t?.player,...t}:null}function Qw(e,t,n){const a=Zw(t,n);a&&Gw(e,a)}function Gw(e,t){Bg(e,"media:loaded",t)}function Yw(e){Bg(e,"media:unloaded")}function Kw(e){Bg(e,"media:volumechange")}function Xw(e){Bg(e,"media:play")}function Jw(e){Bg(e,"media:pause")}class ex{constructor(e){this._current=null,this._lastKnown=null,this._api=e}initialize(){this.clear()}set(e){var t;(t=e).height>=50&&t.width>=50&&(B_(this._api.getConfigManager().getCardWideConfig(),"Frigate Card media load: ",e),this._current=e,this._lastKnown=e,this._api.getConditionsManager().setState({media_loaded:!0}),this._api.getStyleManager().setExpandedMode(),this._api.getCardElementManager().update())}get(){return this._current}getLastKnown(){return this._lastKnown}clear(){this._current=null,this._api.getConditionsManager().setState({media_loaded:!1})}has(){return!!this._current}}class tx{static isEvent(e){return this.isClip(e)||this.isSnapshot(e)}static isRecording(e){return"recording"===e.getMediaType()}static isClip(e){return"clip"===e.getMediaType()}static isSnapshot(e){return"snapshot"===e.getMediaType()}static isVideo(e){return this.isClip(e)||this.isRecording(e)}}class nx{constructor(e){this._mediaPlayers=[],this._api=e}getMediaPlayers(){return this._mediaPlayers}hasMediaPlayers(){return this._mediaPlayers.length>0}async initializeIfNecessary(e){e?.menu.buttons.media_player.enabled!==this._api.getConfigManager().getConfig()?.menu.buttons.media_player.enabled&&await this.initialize()}async initialize(){const e=this._api.getHASSManager().getHASS();if(!e||!this._api.getConfigManager().getConfig()?.menu.buttons.media_player.enabled)return!1;const t=Object.keys(e.states).filter((t=>{if(t.startsWith("media_player.")){const n=e.states[t];if(n&&"unavailable"!==n.state&&vb(n,131072))return!0}return!1}));let n=null;try{n=await this._api.getEntityRegistryManager().getEntities(e,t)}catch(e){Gg(e)}return this._mediaPlayers=t.filter((e=>{const t=n?.get(e);return!t||!t.hidden_by})),!0}async stop(e){const t=this._api.getHASSManager().getHASS(),n=t?.states[e];if(!n)return;let a;if(vb(n,4096))a="media_stop";else{if(!vb(n,256))return;a="turn_off"}await t.callService("media_player",a,{entity_id:e})}async playLive(e,t){const n=this._api.getCameraManager().getStore().getCameraConfig(t);n&&("dashboard"===n.cast?.method?await this._playLiveDashboard(e,n):await this._playLiveStandard(e,t,n))}async _playLiveStandard(e,t,n){const a=this._api.getHASSManager().getHASS(),i=n?.camera_entity??null;if(!a||!i)return;const r=this._api.getCameraManager().getCameraMetadata(t)?.title??null,o=a.states[i]?.attributes?.entity_picture??null;await a.callService("media_player","play_media",{entity_id:e,media_content_id:`media-source://camera/${i}`,media_content_type:"application/vnd.apple.mpegurl",extra:{...r&&{title:r},...o&&{thumb:o}}})}async _playLiveDashboard(e,t){const n=this._api.getHASSManager().getHASS();if(!n)return;const a=t.cast?.dashboard;a?.dashboard_path&&a?.view_path?await n.callService("cast","show_lovelace_view",{entity_id:e,dashboard_path:a.dashboard_path,view_path:a.view_path}):this._api.getMessageManager().setMessageIfHigherPriority({type:"error",icon:"mdi:cast",message:V_("error.no_dashboard_or_view")})}async playMedia(e,t){const n=this._api.getHASSManager().getHASS();if(!n||!t)return;const a=t.getTitle(),i=t.getThumbnail();await n.callService("media_player","play_media",{entity_id:e,media_content_id:t.getContentID(),media_content_type:tx.isVideo(t)?"video":"image",extra:{...a&&{title:a},...i&&{thumb:i}}})}}class ax{constructor(e){this._message=null,this._api=e}getMessage(){return this._message}hasMessage(){return!!this._message}hasErrorMessage(){return"error"===this._message?.type}reset(){const e=this.hasMessage();this._message=null,e&&this._api.getCardElementManager().update()}resetType(e){this._message?.type===e&&this.reset()}setErrorIfHigherPriority(e,t){e&&"object"==typeof e&&"message"in e&&(Gg(e),this.setMessageIfHigherPriority({message:t?`${t}: ${e.message}`:e.message,type:"error",...e instanceof zs&&{context:e.context}}))}setMessageIfHigherPriority(e){const t=this._message?Is[this._message.type]:0,n=Is[e.type];return!(this._message&&ne.stop())),this._stream=void 0,this._setConditionState(),this._api.getCardElementManager().update()}getStream(){return this._stream??void 0}mute(){const e=this.isMuted();this._mute=!0,this._setMute(),this._setConditionState(),e||this._callListeners("muted")}async unmute(){if(!this.isSupported())return;const e=!this.isMuted(),t=()=>{this._mute=!1,this._setMute()};this.isConnected()||this.isForbidden()?this.isConnected()&&t():(t(),await this.connect()),this._setConditionState(),e||this._callListeners("unmuted")}isConnected(){return!!this._stream}isForbidden(){return null===this._stream}isMuted(){return!this._stream||this._stream.getTracks().every((e=>!e.enabled))}addListener(e){this._listeners.push(e)}removeListener(e){this._listeners=this._listeners.filter((t=>t!==e))}_callListeners(e){this._listeners.forEach((t=>t(e)))}_setMute(){this._stream?.getTracks().forEach((e=>{e.enabled=!this._mute})),this._startTimer(),this._api.getCardElementManager().update()}_startTimer(){const e=this._api.getConfigManager().getConfig()?.live.microphone;if(e?.always_connected)return;const t=e?.disconnect_seconds??0;t&&this._timer.start(t,(()=>{this.disconnect()}))}_setConditionState(){this._api.getConditionsManager().setState({microphone:{muted:this.isMuted(),connected:this.isConnected()}})}}class rx{constructor(e){this._shouldRun=!0,this.requestExecution=()=>{this._shouldRun=!0,this._api.getCardElementManager().update()},this.executeIfNecessary=async()=>{this._shouldRun&&(this._shouldRun=!1,await this._executeViewRelated(this._calculateIntent()),await this._executeNonViewRelated(this._calculateIntent()))},this._isViewAction=e=>{switch(e.frigate_card_action){case"clip":case"clips":case"diagnostics":case"image":case"live":case"recording":case"recordings":case"snapshot":case"snapshots":case"timeline":return!0}return!1},this._api=e}hasViewRelatedActionsToRun(){return!!this._calculateIntent().view&&this._shouldRun}async _executeViewRelated(e){e.view&&(e.view.default?await this._api.getViewManager().setViewDefaultWithNewQuery({params:{camera:e.view.camera},...e.view.substream&&{modifiers:[new sb(e.view.substream)]}}):await this._api.getViewManager().setViewByParametersWithNewQuery({params:{...e.view.view&&{view:e.view.view},...e.view.camera&&{camera:e.view.camera}},...e.view.substream&&{modifiers:[new sb(e.view.substream)]}}))}async _executeNonViewRelated(e){e.other&&await this._api.getActionsManager().executeActions(e.other)}_calculateIntent(){const e={};for(const t of this._getActions())this._isViewAction(t)?((e.view??={}).view=t.frigate_card_action,(e.view??={}).default=void 0):"default"===t.frigate_card_action?((e.view??={}).default=!0,(e.view??={}).view=void 0):"camera_select"===t.frigate_card_action?(e.view??={}).camera=t.camera:"live_substream_select"===t.frigate_card_action?(e.view??={}).substream=t.camera:(e.other??=[]).push(t);return e}_getActions(){const e=new URLSearchParams(window.location.search),t=[],n=new RegExp(/^frigate-card-action([.:](?\w+))?[.:](?\w+)/);for(const[a,i]of e.entries()){const e=a.match(n);if(!e||!e.groups)continue;const r=e.groups.cardID,o=e.groups.action;let s=null;switch(o){case"camera_select":case"live_substream_select":i&&(s=ff(o,i,{cardID:r}));break;case"camera_ui":case"clip":case"clips":case"default":case"diagnostics":case"download":case"expand":case"image":case"live":case"menu_toggle":case"recording":case"recordings":case"snapshot":case"snapshots":case"timeline":s=gf(o,{cardID:r});break;default:console.warn(`Frigate card received unknown card action in query string: ${o}`)}s&&t.push(s)}return t}}class ox{constructor(e){this._items=[],this._dynamicItems=[],this._api=e}addDynamicStatusBarItem(e){this._dynamicItems.includes(e)||this._dynamicItems.push(e),this._api.getCardElementManager().update()}removeDynamicStatusBarItem(e){this._dynamicItems=this._dynamicItems.filter((t=>!Dv(t,e))),this._api.getCardElementManager().update()}removeAllDynamicStatusBarItems(){this._dynamicItems=[],this._api.getCardElementManager().update()}calculateItems(e){const t=e?.view?e?.cameraManager?.getCameraMetadata(e?.view?.camera):null,n=t?.engineLogo??null,a=e?.view?.is("live")?t?.title??null:e?.view?.isViewerView()?e?.view.queryResults?.getSelectedResult()?.getTitle()??null:null,i=e?.mediaLoadedInfo?this._calculateResolution(e?.mediaLoadedInfo):null,r=e?.mediaLoadedInfo?.technology?.length?e?.mediaLoadedInfo.technology[0]:null;return[...a?[{type:"custom:frigate-card-status-bar-string",string:a,expand:!0,sufficient:!0,...e?.statusConfig?.items.title}]:[],...i?[{type:"custom:frigate-card-status-bar-string",string:i,...e?.statusConfig?.items.resolution}]:[],...r&&"webrtc"===r?[{type:"custom:frigate-card-status-bar-icon",icon:"mdi:webrtc",...e?.statusConfig?.items.technology}]:r?[{type:"custom:frigate-card-status-bar-string",string:r.toUpperCase(),...e?.statusConfig?.items.technology}]:[],...n?[{type:"custom:frigate-card-status-bar-image",image:n,...e?.statusConfig?.items.engine}]:[],...this._dynamicItems]}_matchesWidthHeight(e,t,n){const a=.99*t,i=1.01*t,r=.99*n,o=1.01*n,s=(e,t,n)=>e>=t&&e<=n;return!!e&&(s(e.width,a,i)&&s(e.height,r,o)||s(e.height,a,i)&&s(e.width,r,o))}_calculateResolution(e){return this._matchesWidthHeight(e,1920,1080)?"1080p":this._matchesWidthHeight(e,1280,720)?"720p":this._matchesWidthHeight(e,640,480)?"VGA":this._matchesWidthHeight(e,3840,2160)?"4K":this._matchesWidthHeight(e,720,480)?"480p":this._matchesWidthHeight(e,720,576)?"576p":this._matchesWidthHeight(e,7680,4320)?"8K":`${e.width}x${e.height}`}}class sx{constructor(e){this.setLightOrDarkMode=()=>{const e=this._api.getConfigManager().getConfig(),t="on"===e?.view.dark_mode||"auto"===e?.view.dark_mode&&(!this._api.getInteractionManager().hasInteraction()||!!this._api.getHASSManager().getHASS()?.themes.darkMode);of(this._api.getCardElementManager().getElement(),t,"dark")},this._api=e}setExpandedMode(){const e=this._api.getCardElementManager().getElement(),t=this._api.getViewManager().getView(),n=this._api.getMediaLoadedInfoManager().getLastKnown();e.style.setProperty("--frigate-card-expand-aspect-ratio",t?.isAnyMediaView()&&n?`${n.width} / ${n.height}`:"unset");const a=t?.isGrid();e.style.setProperty("--frigate-card-expand-width",!a&&t?.isAnyMediaView()?"none":"var(--frigate-card-expand-max-width)"),e.style.setProperty("--frigate-card-expand-height",!a&&t?.isAnyMediaView()?"none":"var(--frigate-card-expand-max-height)")}setMinMaxHeight(){const e=this._api.getConfigManager().getConfig();if(e){this._api.getCardElementManager().getElement().style.setProperty("--frigate-card-height",e.dimensions.height)}}setPerformance(){const e={box_shadow:"none",border_radius:"0px"},t=this._api.getCardElementManager().getElement(),n=this._api.getConfigManager().getCardWideConfig()?.performance,a=n?.style??{};for(const n of Object.keys(a)){const i=`--frigate-card-css-${n.replaceAll("_","-")}`;!1===a[n]?t.style.setProperty(i,e[n]):t.style.removeProperty(i)}}_isAspectRatioEnforced(e,t){const n=e.dimensions.aspect_ratio_mode;return!(this._api.getFullscreenManager().isInFullscreen()||this._api.getExpandManager().isExpanded()||"unconstrained"===n||"dynamic"===n&&(!t||t?.isAnyMediaView()||t?.is("timeline")||t?.is("diagnostics")))}getAspectRatioStyle(){const e=this._api.getConfigManager().getConfig(),t=this._api.getViewManager().getView();if(e){if(!this._isAspectRatioEnforced(e,t))return uf();const n=e.dimensions.aspect_ratio_mode,a=this._api.getMediaLoadedInfoManager().getLastKnown();return uf(a&&"dynamic"===n?{ratio:[a.width,a.height]}:{ratio:e.dimensions.aspect_ratio})}return uf({defaultStatic:!0})}}class cx{constructor(e){this._triggeredCameras=new Map,this._triggeredCameraTimers=new Map,this._throttledTriggerAction=qw(this._triggerAction.bind(this),1e3,{trailing:!0}),this._api=e}getTriggeredCameraIDs(){return new Set(this._triggeredCameras.keys())}isTriggered(){return!!this._triggeredCameras.size}getMostRecentlyTriggeredCameraID(){const e=Ev([...this._triggeredCameras.entries()],(e=>e[1].getTime()),"desc");return e.length?e[0][0]:null}async handleCameraEvent(e){const t=this._api.getConfigManager().getConfig()?.view.triggers,n=this._api.getViewManager().getView()?.camera;if(!t||!n)return;const a=this._api.getCameraManager().getStore().getAllDependentCameras(n);t.filter_selected_camera&&!a.has(e.cameraID)||("end"!==e.type?(this._triggeredCameras.set(e.cameraID,new Date),this._setConditionStateIfNecessary(),await this._throttledTriggerAction(e)):this._startUntriggerTimer(e.cameraID))}_hasAllowableInteractionStateForAction(){const e=this._api.getConfigManager().getConfig()?.view.triggers,t=this._api.getInteractionManager().hasInteraction();return!!e&&("all"===e.actions.interaction_mode||"active"===e.actions.interaction_mode&&t||"inactive"===e.actions.interaction_mode&&!t)}async _triggerAction(e){const t=this._api.getConfigManager().getConfig()?.view.triggers.actions.trigger,n=this._api.getConfigManager().getConfig()?.view.default;("high"!==e.fidelity||e.snapshot||e.clip||"live"===t||"default"===t&&"live"===n)&&(this._hasAllowableInteractionStateForAction()&&("update"===t?await this._api.getViewManager().setViewByParametersWithNewQuery({queryExecutorOptions:{useCache:!1}}):"live"===t?await this._api.getViewManager().setViewByParametersWithNewQuery({params:{view:"live",camera:e.cameraID}}):"default"===t?await this._api.getViewManager().setViewDefaultWithNewQuery({params:{camera:e.cameraID}}):"high"===e.fidelity&&"media"===t&&await this._api.getViewManager().setViewByParametersWithNewQuery({params:{view:e.clip?"clip":"snapshot",camera:e.cameraID}})),this._api.getCardElementManager().update())}_setConditionStateIfNecessary(){const e=new Set(this._triggeredCameras.keys()),t=e.size?e:void 0;Dv(t,this._api.getConditionsManager().getState().triggered)||this._api.getConditionsManager().setState({triggered:t})}async _untriggerAction(e){const t=this._api.getConfigManager().getConfig()?.view.triggers.actions.untrigger;"default"===t&&this._hasAllowableInteractionStateForAction()&&await this._api.getViewManager().setViewDefaultWithNewQuery(),this._triggeredCameras.delete(e),this._deleteTimer(e),this._setConditionStateIfNecessary(),this._api.getCardElementManager().update()}_startUntriggerTimer(e){this._deleteTimer(e);const t=new xf;this._triggeredCameraTimers.set(e,t),t.start( +/* istanbul ignore next: the case of config being null here cannot be + reached, as there's no way to have the untrigger call happen without + a config. -- @preserve */ +this._api.getConfigManager().getConfig()?.view.triggers.untrigger_seconds??0,(async()=>{await this._untriggerAction(e)}))}_deleteTimer(e){this._triggeredCameraTimers.get(e)?.stop(),this._triggeredCameraTimers.delete(e)}}function lx(e,t){return t="function"==typeof t?t:void 0,e&&e.length?Hg(e,void 0,t):[]}class dx{constructor(e){this._queries=null,e&&(this._queries=e)}clone(){return u_(this)}getQueries(){return this._queries}setQueries(e){return this._queries=e,this}getQueryCameraIDs(){if(!this._queries)return null;const e=new Set;return this._queries.forEach((t=>[...t.cameraIDs].forEach((t=>e.add(t))))),e}setQueryCameraIDs(e){if(!this._queries)return this;const t=[];return this._queries.forEach((n=>t.push({...n,cameraIDs:Zg(e)}))),this._queries=lx(t,Dv),this}hasQueriesForCameraIDs(e){for(const t of e)if(!this._queries?.some((e=>e.cameraIDs.has(t))))return!1;return!0}}class ux extends dx{convertToClipsQueries(){for(const e of this._queries??[])delete e.hasSnapshot,e.hasClip=!0;return this}}class hx extends dx{}class px{static areEventQueries(e){return e instanceof ux}static areRecordingQueries(e){return e instanceof hx}static areClipsQueries(e){return this.areEventQueries(e)&&!!e?.getQueries()?.every((e=>e.hasClip))}static areSnapshotQueries(e){return this.areEventQueries(e)&&!!e?.getQueries()?.every((e=>e.hasSnapshot))}static getQueriesType(e){return this.areEventQueries(e)?"event":this.areRecordingQueries(e)?"recording":null}static getMediaType(e){return this.areClipsQueries(e)?"clips":this.areSnapshotQueries(e)?"snapshots":this.areRecordingQueries(e)?"recordings":null}}const mx=(e,t,n)=>{const a={anyCapabilities:["clips","snapshots","recordings"]};switch(t){case"image":case"diagnostics":return e.getStore().getCameraIDs();case"live":case"clip":case"clips":case"snapshot":case"snapshots":case"recording":case"recordings":const i="clip"===t?"clips":"snapshot"===t?"snapshots":"recording"===t?"recordings":t;return n?e.getStore().getAllDependentCameras(n,i):e.getStore().getCameraIDsWithCapability(i);case"timeline":return e.getStore().getCameraIDsWithCapability(a);case"media":return n?e.getStore().getAllDependentCameras(n,a):e.getStore().getCameraIDsWithCapability(a)}},gx=(e,t)=>Ly({},e,t);class fx{constructor(e){this.view=e.view,this.camera=e.camera,this.query=e.query??null,this.queryResults=e.queryResults??null,this.context=e.context??null,this.displayMode=e.displayMode??null}clone(){return new fx({view:this.view,camera:this.camera,query:this.query?.clone()??null,queryResults:this.queryResults?.clone()??null,context:this.context,displayMode:this.displayMode})}evolve(e){return new fx({view:void 0!==e.view?e.view:this.view,camera:void 0!==e.camera?e.camera:this.camera,query:void 0!==e.query?e.query:this.query?.clone()??null,queryResults:void 0!==e.queryResults?e.queryResults:this.queryResults?.clone()??null,context:void 0!==e.context?e.context:this.context,displayMode:void 0!==e.displayMode?e.displayMode:this.displayMode})}mergeInContext(e){return this.context=gx(this.context,e),this}removeContext(e){return this.context&&delete this.context[e],this}removeContextProperty(e,t){const n=this.context?.[e];return n&&delete n[t],this}is(e){return this.view==e}isGalleryView(){return["clips","snapshots","recordings"].includes(this.view)}isAnyMediaView(){return this.isViewerView()||this.is("live")||this.is("image")}isViewerView(){return["media","clip","snapshot","recording"].includes(this.view)}supportsMultipleDisplayModes(){return this.isViewerView()||this.is("live")}getDefaultMediaType(){return["clip","clips"].includes(this.view)?"clips":["snapshot","snapshots"].includes(this.view)?"snapshots":["recording","recordings"].includes(this.view)?"recordings":null}isGrid(){return"grid"===this.displayMode}}const _x=(e,t)=>{t?.forEach((t=>t.modify(e)))};class vx extends zs{}class yx extends zs{}class bx{constructor(e){this._api=e}getViewDefault(e){const t=this._api.getConfigManager().getConfig();if(!t)return null;let n=null;const a=e?.params?.view??t.view.default;if(e?.params?.camera)n=e.params.camera;else{const i=[...mx(this._api.getCameraManager(),a)];if(!i.length)return null;if(e?.baseView?.camera&&t.view.default_cycle_camera){const t=i.indexOf(e.baseView.camera);n=i[t+1>=i.length?0:t+1]}else n=i[0]}return this.getViewByParameters({params:{...e?.params,view:a,camera:n},baseView:e?.baseView})}getViewByParameters(e){const t=this._api.getConfigManager().getConfig();if(!t)return null;let n=e?.params?.camera??e?.baseView?.camera??null,a=e?.params?.view??e?.baseView?.view??t.view.default;const i=this._api.getCameraManager().getStore().getCameraIDs();if(!n||!i.has(n)){n=mx(this._api.getCameraManager(),a).keys().next().value??null}if(!n){const e=[...this._api.getCameraManager().getStore().getCameras()].reduce(((e,[t,n])=>{const a=n.getCapabilities()?.getRawCapabilities();return a&&(e[t]=a),e}),{});throw new vx(V_("error.no_supported_cameras"),{view:a,cameras_capabilities:e})}if(!this.isViewSupportedByCamera(n,a)){if(!e?.failSafe||!this.isViewSupportedByCamera(n,Qs)){const e=this._api.getCameraManager().getStore().getCamera(n)?.getCapabilities()?.getRawCapabilities();throw new yx(V_("error.no_supported_camera"),{view:a,camera:n,...e&&{camera_capabilities:e}})}a=Qs}const r=e?.params?.displayMode??e?.baseView?.displayMode??this._getDefaultDisplayModeForView(a,t),o={...e?.params,view:a,camera:n,displayMode:r},s=e?.baseView?e.baseView.evolve(o):new fx(o);return _x(s,e?.modifiers),s}isViewSupportedByCamera(e,t){return!!mx(this._api.getCameraManager(),t,e).size}_getDefaultDisplayModeForView(e,t){let n=null;switch(e){case"media":case"clip":case"recording":case"snapshot":n=t.media_viewer.display?.mode??null;break;case"live":n=t.live.display?.mode??null}return n??"single"}}class wx{constructor(e,t){this._key=e,this._property=t}modify(e){e.removeContextProperty(this._key,this._property)}}class xx{constructor(e){this._query=e?.query,this._queryResults=e?.queryResults}modify(e){void 0!==this._query&&(e.query=this._query),void 0!==this._queryResults&&(e.queryResults=this._queryResults)}}const Cx=(e,t,n)=>{let a;for(const[i,r]of e.entries()){const e=r.getStartTime(),o=r.getUsableEndTime();if(r.includesTime(t)&&e&&o){const t=o.getTime()-e.getTime();(!a||n&&a.cameraID!==n&&r.getCameraID()===n||t>a.duration&&(!n||a.cameraID!==n||r.getCameraID()===n))&&(a={index:i,duration:t,cameraID:r.getCameraID()})}}return a?a.index:null};class Mx{constructor(e){this._results=e?.results??[],this._selectedIndex=this._getInitialSelectedIndex(e)}_getInitialSelectedIndex(e){return null!=e?.selectedIndex?e.selectedIndex:e?.results&&e.results.length?e?.selectApproach&&"last"!==e?.selectApproach?0:e.results.length-1:null}clone(){return new Mx({results:this._results,selectedIndex:this._selectedIndex})}getResults(){return this._results}getSelectedIndex(){return this._selectedIndex}getResultsCount(){return this.getResults().length}hasResults(){return 0!==this.getResultsCount()}getResult(e){return void 0===e?null:this._results[e]}getSelectedResult(){const e=this.getSelectedIndex();return null!==e?this.getResult(e):null}hasSelectedResult(){return null!==this.getSelectedResult()}resetSelectedResult(){this._selectedIndex=null}selectIndex(e){(null===e||e>=0&&ee.getID()))),n=new Set(e._main.getResults()?.map((e=>e.getID())));return!(!t.size||!n.size||t.has(null)||n.has(null))&&((e,t)=>{for(const n of t)if(!e.has(n))return!1;return!0})(t,n)}getCameraIDs(){return new Set(this._cameras.keys())}getSlice(e){return e?this._cameras.get(e)??null:this._main}getResults(e){return this.getSlice(e)?.getResults()??null}getResultsCount(e){return this.getSlice(e)?.getResultsCount()??0}hasResults(e){return 0!==this.getSlice(e)?.getResultsCount()}getResult(e,t){return this.getSlice(t)?.getResult(e)??null}getSelectedIndex(e){return this.getSlice(e)?.getSelectedIndex()??null}getSelectedResult(e){return this.getSlice(e)?.getSelectedResult()??null}getMultipleSelectedResults(e){const t=[];if(!e||e.main){const e=this.getSelectedResult();e&&t.push(e)}const n=this._getCameraIDsFromCriteria(e);for(const e of n??[]){const n=this.getSelectedResult(e);n&&t.push(n)}return t}hasSelectedResult(e){return this.getSlice(e)?.hasSelectedResult()??!1}resetSelectedResult(e){return this.getSlice(e)?.resetSelectedResult(),this}getResultsTimestamp(){return this._resultsTimestamp}selectIndex(e,t){return this.getSlice(t)?.selectIndex(e),t||this.demoteMainSelectionToCameraSelection(),this}demoteMainSelectionToCameraSelection(){const e=this.getSelectedResult();if(e){const t=e.getCameraID();this.resetSelectedResult(t),this.selectResultIfFound((t=>t===e),{cameraID:t})}return this}promoteCameraSelectionToMainSelection(e){const t=this.getSelectedResult(e);return this.resetSelectedResult(),this.selectResultIfFound((e=>e===t)),this}_getCameraIDsFromCriteria(e){return e?.allCameras?this.getCameraIDs():e?.cameraID?new Set([e.cameraID]):null}selectResultIfFound(e,t){t&&!t?.main||(this._main.selectResultIfFound(e),this.demoteMainSelectionToCameraSelection());const n=this._getCameraIDsFromCriteria(t);for(const t of n??[])this.getSlice(t)?.selectResultIfFound(e);return this}selectBestResult(e,t){t&&!t.main||(this._main.selectBestResult(e),this.demoteMainSelectionToCameraSelection());const n=this._getCameraIDsFromCriteria(t);for(const t of n??[])this.getSlice(t)?.selectBestResult(e);return this}}class Sx{constructor(e){this._api=e}async executeDefaultEventQuery(e){const t=e?.eventsMediaType&&"all"!==e?.eventsMediaType?e.eventsMediaType:{anyCapabilities:["clips","snapshots"]},n=this._api.getCameraManager(),a=e?.cameraID?n.getStore().getAllDependentCameras(e.cameraID,t):n.getStore().getCameraIDsWithCapability(t);if(!a.size)return null;const i=n.generateDefaultEventQueries(a,{limit:this._getChunkLimit(),..."clips"===e?.eventsMediaType&&{hasClip:!0},..."snapshots"===e?.eventsMediaType&&{hasSnapshot:!0}});if(!i)return null;const r=new ux(i),o=await this.execute(r,e?.executorOptions);return o?{query:r,queryResults:o}:null}async executeDefaultRecordingQuery(e){const t=this._api.getCameraManager(),n=e?.cameraID?t.getStore().getAllDependentCameras(e.cameraID,"recordings"):t.getStore().getCameraIDsWithCapability("recordings");if(!n.size)return null;const a=t.generateDefaultRecordingQueries(n,{limit:this._getChunkLimit()});if(!a)return null;const i=new hx(a),r=await this.execute(i,e?.executorOptions);return r?{query:i,queryResults:r}:null}async execute(e,t){const n=e.getQueries();if(!n)return null;const a=await this._api.getCameraManager().executeMediaQueries(n,{useCache:t?.useCache});if(!a)return null;const i=new kx({results:a});return t?.rejectResults?.(i)?null:(t?.selectResult?.id?i.selectBestResult((e=>e.findIndex((e=>e.getID()===t.selectResult?.id)))):t?.selectResult?.func?i.selectResultIfFound(t.selectResult.func):t?.selectResult?.time&&i.selectBestResult((e=>Cx(e,t.selectResult?.time?.time,t.selectResult?.time?.favorCameraID))),i)}_getChunkLimit(){const e=this._api.getConfigManager().getCardWideConfig();return e?.performance?.features.media_chunk_size??50}}class Ex{constructor(e,t){this._api=e,this._executor=t??new Sx(e)}async getExistingQueryModifiers(e,t){return e.query?[new xx({queryResults:await this._executor.execute(e.query,t)})]:[]}async getNewQueryModifiers(e,t){return await this._executeNewQuery(e,{useCache:!1,...t})}async _executeNewQuery(e,t){const n=this._api.getConfigManager().getConfig();if(!n)return null;const a=e?.getDefaultMediaType(),i=[],r=async n=>{ +/* istanbul ignore if: this path cannot be reached -- @preserve */ +if(!n)return[];const a="recordings"===n?await this._executor.executeDefaultRecordingQuery({...!e.isGrid()&&{cameraID:e.camera},executorOptions:t}):"clips"===n||"snapshots"===n||"all"===n?await this._executor.executeDefaultEventQuery({...!e.isGrid()&&{cameraID:e.camera},eventsMediaType:n,executorOptions:t}):/* istanbul ignore next -- @preserve */ +null;return a?[new xx(a)]:[]};switch(e.view){case"live":"none"!==n.live.controls.thumbnails.mode&&i.push(...await r("recordings"===n.live.controls.thumbnails.media_type?"recordings":n.live.controls.thumbnails.events_media_type));break;case"media":i.push(...await r("clips"));break;case"clips":case"snapshots":case"recordings":i.push(...await r(a));break;case"clip":case"snapshot":case"recording":"none"!==n.media_viewer.controls.thumbnails.mode&&i.push(...await r(a))}return i.push(...this._getTimelineWindowViewModifier(e)),i.push(...this._getSeekTimeModifier(t?.selectResult?.time?.time)),i}_getTimelineWindowViewModifier(e){if(e.is("live")){const e=new Date,t=this._api.getConfigManager().getConfig()?.live; +/* istanbul ignore if: this if branch cannot be reached as if the config is + empty this function is never called -- @preserve */ +return t?[new Gy({timeline:{window:{start:Qu(e,{seconds:t.controls.timeline.window_seconds}),end:e}}})]:[]}return[new wx("timeline","window")]}_getSeekTimeModifier(e){return e?[new Gy({mediaViewer:{seek:e}})]:[new wx("mediaViewer","seek")]}}class $x{constructor(e,t){this._view=null,this._epoch=this._createEpoch(),this._loadingIndex=1,this.setViewDefault=e=>this._setViewGeneric(this._viewFactory.getViewDefault.bind(this._viewFactory),e),this.setViewByParameters=e=>this._setViewGeneric(this._viewFactory.getViewByParameters.bind(this._viewFactory),e),this.setViewDefaultWithNewQuery=async e=>await this._setViewThenModifyAsync(this._viewFactory.getViewDefault.bind(this._viewFactory),this._viewQueryExecutor.getNewQueryModifiers.bind(this._viewQueryExecutor),e),this.setViewByParametersWithNewQuery=async e=>await this._setViewThenModifyAsync(this._viewFactory.getViewByParameters.bind(this._viewFactory),this._viewQueryExecutor.getNewQueryModifiers.bind(this._viewQueryExecutor),e),this.setViewByParametersWithExistingQuery=async e=>await this._setViewThenModifyAsync(this._viewFactory.getViewByParameters.bind(this._viewFactory),this._viewQueryExecutor.getExistingQueryModifiers.bind(this._viewQueryExecutor),e),this.initialize=async()=>(this._api.getQueryStringManager().hasViewRelatedActionsToRun()||this.setViewDefaultWithNewQuery({failSafe:!0}),!0),this._api=e,this._viewFactory=t?.viewFactory??new bx(e),this._viewQueryExecutor=t?.viewQueryExecutor??new Ex(e)}getEpoch(){return this._epoch}_createEpoch(e){return{manager:this,...e&&{oldView:e}}}getView(){return this._view}hasView(){return!!this.getView()}reset(){this._view&&this._setView(null)}_setViewGeneric(e,t){let n=null;try{n=e({baseView:this._view,...t})}catch(e){this._api.getMessageManager().setErrorIfHigherPriority(e)}n&&this._setView(n)}_markViewLoadingQuery(e,t){return e.mergeInContext({loading:{query:t}})}_markViewAsNotLoadingQuery(e){return e.removeContextProperty("loading","query")}async _setViewThenModifyAsync(e,t,n){let a=null;try{a=e({baseView:this._view,...n,params:{query:null,queryResults:null,...n?.params}})}catch(e){this._api.getMessageManager().setErrorIfHigherPriority(e)}if(!a)return;if(this._view&&this._shouldAdoptQueryAndResults(a))return a.query=this._view.query,a.queryResults=this._view.queryResults,this._markViewAsNotLoadingQuery(a),void this._setView(a);const i=this._loadingIndex++;this._markViewLoadingQuery(a,i),this._setView(a);let r=null,o=null;try{r=await t(a,n?.queryExecutorOptions)}catch(e){o=e}if(this._view&&this.hasMajorMediaChange(this._view,a))return void(this._view.context?.loading?.query===i&&this._setView(this._markViewAsNotLoadingQuery(this._view.clone())));if(o)return void this._api.getMessageManager().setErrorIfHigherPriority(o); +/* istanbul ignore if: the if path cannot be reached as the view is set + above -- @preserve */if(!this._view)return;const s=this._view.clone();this._view.context?.loading?.query===i&&this._markViewAsNotLoadingQuery(s),_x(s,r),this._setView(s)}_shouldAdoptQueryAndResults(e){const t=this._view?.isViewerView()&&e?.isGalleryView(),n=e?.getDefaultMediaType(),a=px.getMediaType(this._view?.query)===n;return!!t&&a}setViewWithMergedContext(e){if(this._view)return this._setView(this._view?.clone().mergeInContext(e))}isViewSupportedByCamera(e,t){return!!mx(this._api.getCameraManager(),t,e).size}hasMajorMediaChange(e,t){const n=t??this._view;return!!e!=!!n||e?.view!==n?.view||e?.camera!==n?.camera||"live"===n?.view&&e&&My(e)!==My(n)||"live"!==n?.view&&e?.queryResults!==n?.queryResults}_setView(e){const t=this._view;B_(this._api.getConfigManager().getCardWideConfig(),"Frigate Card view change: ",e),this._view=e,this._epoch=this._createEpoch(t),this.hasMajorMediaChange(t)&&this._api.getMediaLoadedInfoManager().clear(),t?.view!==e?.view&&this._api.getCardElementManager().scrollReset(),this._api.getMessageManager().reset(),this._api.getStyleManager().setExpandedMode(),this._api.getConditionsManager()?.setState({view:e?.view,camera:e?.camera,displayMode:e?.displayMode??void 0}),this._api.getCardElementManager().update()}}class Ax{constructor(e,t,n,a){this._deviceRegistryManager=new oy(new iy((e=>e.id))),this._entityRegistryManager=new ly(new iy((e=>e.entity_id))),this._resolvedMediaCache=new uy,this._actionsManager=new gb(this),this._automationsManager=new fb(this),this._cameraManager=new ay(this),this._cameraURLManager=new _b(this),this._configManager=new Mw(this),this._defaultManager=new kw(this),this._downloadManager=new Aw(this),this._expandManager=new zw(this),this._fullscreenManager=new Rw(this),this._hassManager=new Lw(this),this._initializationManager=new Zb(this),this._interactionManager=new Uw(this),this._keyboardStateManager=new Ww(this),this._mediaLoadedInfoManager=new ex(this),this._mediaPlayerManager=new nx(this),this._messageManager=new ax(this),this._microphoneManager=new ix(this),this._queryStringManager=new rx(this),this._statusBarItemManager=new ox(this),this._styleManager=new sx(this),this._triggersManager=new cx(this),this._viewManager=new $x(this),e.addController(this),this._conditionsManager=new yw(this,a),this._cardElementManager=new Qb(this,e,t,n)}getActionsManager(){return this._actionsManager}getAutomationsManager(){return this._automationsManager}getCameraManager(){return this._cameraManager}getCameraURLManager(){return this._cameraURLManager}getCardElementManager(){return this._cardElementManager}getConditionsManager(){return this._conditionsManager}static async getConfigElement(){return await import("./editor-ce460dd0.js"),document.createElement("frigate-card-editor")}getConfigManager(){return this._configManager}getDefaultManager(){return this._defaultManager}getDeviceRegistryManager(){return this._deviceRegistryManager}getDownloadManager(){return this._downloadManager}getEntityRegistryManager(){return this._entityRegistryManager}getExpandManager(){return this._expandManager}getFullscreenManager(){return this._fullscreenManager}getHASSManager(){return this._hassManager}getInitializationManager(){return this._initializationManager}getInteractionManager(){return this._interactionManager}getKeyboardStateManager(){return this._keyboardStateManager}getMediaLoadedInfoManager(){return this._mediaLoadedInfoManager}getMediaPlayerManager(){return this._mediaPlayerManager}getMessageManager(){return this._messageManager}getMicrophoneManager(){return this._microphoneManager}getQueryStringManager(){return this._queryStringManager}getResolvedMediaCache(){return this._resolvedMediaCache}getStatusBarItemManager(){return this._statusBarItemManager}static getStubConfig(e){return{cameras:[{camera_entity:e.find((e=>e.startsWith("camera.")))??"camera.demo"}]}}getStyleManager(){return this._styleManager}getTriggersManager(){return this._triggersManager}getViewManager(){return this._viewManager}hostConnected(){this.getCardElementManager().elementConnected()}hostDisconnected(){this.getCardElementManager().elementDisconnected()}}class zx{constructor(){this._dynamicMenuButtons=[]}addDynamicMenuButton(e){this._dynamicMenuButtons.includes(e)||this._dynamicMenuButtons.push(e)}removeDynamicMenuButton(e){this._dynamicMenuButtons=this._dynamicMenuButtons.filter((t=>t!=e))}calculateButtons(e,t,n,a){return[this._getDefaultButton(t),this._getCamerasButton(t,n,a?.view),this._getSubstreamsButton(t,n,a?.view),this._getLiveButton(t,a?.view,a?.viewManager),this._getClipsButton(t,a?.view,a?.viewManager),this._getSnapshotsButton(t,a?.view,a?.viewManager),this._getRecordingsButton(t,a?.view,a?.viewManager),this._getImageButton(t,a?.view,a?.viewManager),this._getTimelineButton(t,a?.view,a?.viewManager),this._getDownloadButton(t,n,a?.view),this._getCameraUIButton(t,a?.showCameraUIButton),this._getMicrophoneButton(t,a?.microphoneManager,a?.currentMediaLoadedInfo),this._getExpandButton(t,a?.inExpandedMode),this._getFullscreenButton(t,a?.inFullscreenMode),this._getCastButton(e,t,n,a?.view,a?.mediaPlayerController),this._getPlayPauseButton(t,a?.currentMediaLoadedInfo),this._getMuteUnmuteButton(t,a?.currentMediaLoadedInfo),this._getScreenshotButton(t,a?.currentMediaLoadedInfo),this._getDisplayModeButton(t,n,a?.view),this._getPTZControlsButton(t,n,a?.view),this._getPTZHomeButton(t,n,a?.view),...this._dynamicMenuButtons.map((e=>({style:this._getStyleFromActions(t,e,a),...e})))].filter(sf)}_getDefaultButton(e){return{icon:"frigate",...e.menu.buttons.frigate,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.frigate"),permanent:!0,tap_action:"hidden"===e.menu?.style?gf("menu_toggle"):gf("default"),hold_action:gf("diagnostics")}}_getCamerasButton(e,t,n){const a=t.getStore().getCameraIDsWithCapability("menu");if(a.size>1){const i=Array.from(t.getStore().getCameraConfigEntries(a),(([e,a])=>{const i=ff("camera_select",e),r=t.getCameraMetadata(e);return{enabled:!0,icon:r?.icon,entity:a.camera_entity,state_color:!0,title:r?.title,selected:n?.camera===e,...i&&{tap_action:i}}}));return{icon:"mdi:video-switch",...e.menu.buttons.cameras,type:"custom:frigate-card-menu-submenu",title:V_("config.menu.buttons.cameras"),items:i}}return null}_getSubstreamsButton(e,t,n){if(!n)return null;const a=t.getStore().getAllDependentCameras(n.camera,"substream");if(a.size&&n.is("live")){const i=[...a].filter((e=>e!==n.camera)),r=[n.camera,...i],o=My(n);if(2===r.length)return{icon:"mdi:video-input-component",style:o!==n.camera?this._getEmphasizedStyle():{},title:V_("config.menu.buttons.substreams"),...e.menu.buttons.substreams,type:"custom:frigate-card-menu-icon",tap_action:gf(ky(n)?"live_substream_off":"live_substream_on")};if(r.length>2){const a=Array.from(r,(e=>{const n=ff("live_substream_select",e),a=t.getCameraMetadata(e)??void 0,i=t.getStore().getCameraConfig(e);return{enabled:!0,icon:a?.icon,entity:i?.camera_entity,state_color:!0,title:a?.title,selected:o===e,...n&&{tap_action:n}}}));return{icon:"mdi:video-input-component",title:V_("config.menu.buttons.substreams"),style:o!==n.camera?this._getEmphasizedStyle():{},...e.menu.buttons.substreams,type:"custom:frigate-card-menu-submenu",items:a}}}return null}_getLiveButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"live")?{icon:"mdi:cctv",...e.menu.buttons.live,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.live"),style:t.is("live")?this._getEmphasizedStyle():{},tap_action:gf("live")}:null}_getClipsButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"clips")?{icon:"mdi:filmstrip",...e.menu.buttons.clips,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.clips"),style:t?.is("clips")?this._getEmphasizedStyle():{},tap_action:gf("clips"),hold_action:gf("clip")}:null}_getSnapshotsButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"snapshots")?{icon:"mdi:camera",...e.menu.buttons.snapshots,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.snapshots"),style:t?.is("snapshots")?this._getEmphasizedStyle():{},tap_action:gf("snapshots"),hold_action:gf("snapshot")}:null}_getRecordingsButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"recordings")?{icon:"mdi:album",...e.menu.buttons.recordings,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.recordings"),style:t.is("recordings")?this._getEmphasizedStyle():{},tap_action:gf("recordings"),hold_action:gf("recording")}:null}_getImageButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"image")?{icon:"mdi:image",...e.menu.buttons.image,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.image"),style:t?.is("image")?this._getEmphasizedStyle():{},tap_action:gf("image")}:null}_getTimelineButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"timeline")?{icon:"mdi:chart-gantt",...e.menu.buttons.timeline,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.timeline"),style:t.is("timeline")?this._getEmphasizedStyle():{},tap_action:gf("timeline")}:null}_getDownloadButton(e,t,n){const a=n?.queryResults?.getSelectedResult(),i=a?t?.getMediaCapabilities(a):null;return n?.isViewerView()&&i?.canDownload&&!this._isBeingCasted()?{icon:"mdi:download",...e.menu.buttons.download,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.download"),tap_action:gf("download")}:null}_getCameraUIButton(e,t){return t?{icon:"mdi:web",...e.menu.buttons.camera_ui,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.camera_ui"),tap_action:gf("camera_ui")}:null}_getMicrophoneButton(e,t,n){if(t&&n?.capabilities?.supports2WayAudio){const n=t.isForbidden()||!t.isSupported(),a=t.isMuted(),i=e.menu.buttons.microphone.type;return{icon:n?"mdi:microphone-message-off":a?"mdi:microphone-off":"mdi:microphone",...e.menu.buttons.microphone,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.microphone"),style:n||a?{}:this._getEmphasizedStyle(!0),...!n&&"momentary"===i&&{start_tap_action:gf("microphone_unmute"),end_tap_action:gf("microphone_mute")},...!n&&"toggle"===i&&{tap_action:gf(a?"microphone_unmute":"microphone_mute")}}}return null}_getExpandButton(e,t){return{icon:t?"mdi:arrow-collapse-all":"mdi:arrow-expand-all",...e.menu.buttons.expand,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.expand"),tap_action:gf("expand"),style:t?this._getEmphasizedStyle():{}}}_getFullscreenButton(e,t){return this._isBeingCasted()?null:{icon:t?"mdi:fullscreen-exit":"mdi:fullscreen",...e.menu.buttons.fullscreen,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.fullscreen"),tap_action:gf("fullscreen"),style:t?this._getEmphasizedStyle():{}}}_getCastButton(e,t,n,a,i){if(!a)return null;const r=n.getStore().getCameraConfig(a.camera);if(i?.hasMediaPlayers()&&(a.isViewerView()||a.is("live")&&r?.camera_entity)){const n=i.getMediaPlayers().map((t=>{const n=Lb(e,t)||t,a=e.states[t],i=_f(t,"play"),r=_f(t,"stop"),o=!a||"unavailable"===a.state;return{enabled:!0,selected:!1,icon:Nb(e,t),entity:t,state_color:!1,title:n,disabled:o,...!o&&i&&{tap_action:i},...!o&&r&&{hold_action:r}}}));return{icon:"mdi:cast",...t.menu.buttons.media_player,type:"custom:frigate-card-menu-submenu",title:V_("config.menu.buttons.media_player"),items:n}}return null}_getPlayPauseButton(e,t){if(t&&t.player&&t.capabilities?.supportsPause){const n=t.player.isPaused();return{icon:n?"mdi:play":"mdi:pause",...e.menu.buttons.play,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.play"),tap_action:gf(n?"play":"pause")}}return null}_getMuteUnmuteButton(e,t){if(t&&t.player&&t?.capabilities?.hasAudio){const n=t.player.isMuted();return{icon:n?"mdi:volume-off":"mdi:volume-high",...e.menu.buttons.mute,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.mute"),tap_action:gf(n?"unmute":"mute")}}return null}_getScreenshotButton(e,t){return t&&t.player?{icon:"mdi:monitor-screenshot",...e.menu.buttons.screenshot,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.screenshot"),tap_action:gf("screenshot")}:null}_getDisplayModeButton(e,t,n){const a=n?mx(t,n.view):null;if(n?.supportsMultipleDisplayModes()&&a&&a.size>1){const t=n.isGrid();return{icon:t?"mdi:grid-off":"mdi:grid",...e.menu.buttons.display_mode,style:t?this._getEmphasizedStyle():{},type:"custom:frigate-card-menu-icon",title:V_(t?"display_modes.single":"display_modes.grid"),tap_action:(i=t?"single":"grid",{action:"fire-dom-event",frigate_card_action:"display_mode_select",display_mode:i,...r?.cardID&&{card_id:r.cardID}})}}var i,r;return null}_getPTZControlsButton(e,t,n){const a=n?.is("live")?e.live.controls.ptz:n?.isViewerView()?e.media_viewer.controls.ptz:null;if(!n||!a||"off"===a.mode)return null;const i=Ry(n,{cameraManager:t,..."auto"===a.mode&&{type:"ptz"}});if(i){const t=!1!==n.context?.ptzControls?.enabled&&("on"===a.mode||"auto"===a.mode&&"ptz"===i.type);return{icon:"mdi:pan",...e.menu.buttons.ptz_controls,style:t?this._getEmphasizedStyle():{},type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.ptz_controls"),tap_action:(r=!t,{action:"fire-dom-event",frigate_card_action:"ptz_controls",enabled:r,...o?.cardID&&{card_id:o.cardID}})}}var r,o;return null}_getPTZHomeButton(e,t,n){const a=n?Ry(n,{cameraManager:t}):null;return!a||(("digital"===a.type&&n?.context?.zoom?.[a.targetID]?.observed?.isDefault)??1)?null:{icon:"mdi:home",...e.menu.buttons.ptz_home,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.ptz_home"),tap_action:vf({targetID:a.targetID})}}_getEmphasizedStyle(e){return e?{animation:"pulse 3s infinite",color:"var(--error-color, white)"}:{color:"var(--primary-color, white)"}}_getStyleFromActions(e,t,n){for(const a of[t.tap_action,t.double_tap_action,t.hold_action,t.start_tap_action,t.end_tap_action]){const t=Array.isArray(a)?a:[a];for(const a of t){if(!a||"fire-dom-event"!==a.action||!("frigate_card_action"in a))continue;const t=a;if(Zs.some((e=>e===t.frigate_card_action&&n?.view?.is(t.frigate_card_action)))||"default"===t.frigate_card_action&&n?.view?.is(e.view.default)||"fullscreen"===t.frigate_card_action&&n?.inFullscreenMode||"camera_select"===t.frigate_card_action&&n?.view?.camera===t.camera)return this._getEmphasizedStyle()}}return{}}_isBeingCasted(){return!!navigator.userAgent.match(/CrKey\//)}} +/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */ +function Ix(e){return null==e}var Tx=function(e,t){var n,a="";for(n=0;ns&&(t=a-s+(r=" ... ").length),n-a>s&&(n=a+s-(o=" ...").length),{str:r+e.slice(t,n).replace(/\t/g,"→")+o,pos:a-t+r.length}}function Lx(e,t){return jx.repeat(" ",t-e.length)+e}var Nx=function(e,t){if(t=Object.create(t||null),!e.buffer)return null;t.maxLength||(t.maxLength=79),"number"!=typeof t.indent&&(t.indent=1),"number"!=typeof t.linesBefore&&(t.linesBefore=3),"number"!=typeof t.linesAfter&&(t.linesAfter=2);for(var n,a=/\r?\n|\r|\0/g,i=[0],r=[],o=-1;n=a.exec(e.buffer);)r.push(n.index),i.push(n.index+n[0].length),e.position<=n.index&&o<0&&(o=i.length-2);o<0&&(o=i.length-1);var s,c,l="",d=Math.min(e.line+t.linesAfter,r.length).toString().length,u=t.maxLength-(t.indent+d+3);for(s=1;s<=t.linesBefore&&!(o-s<0);s++)c=Px(e.buffer,i[o-s],r[o-s],e.position-(i[o]-i[o-s]),u),l=jx.repeat(" ",t.indent)+Lx((e.line-s+1).toString(),d)+" | "+c.str+"\n"+l;for(c=Px(e.buffer,i[o],r[o],e.position,u),l+=jx.repeat(" ",t.indent)+Lx((e.line+1).toString(),d)+" | "+c.str+"\n",l+=jx.repeat("-",t.indent+d+3+c.pos)+"^\n",s=1;s<=t.linesAfter&&!(o+s>=r.length);s++)c=Px(e.buffer,i[o+s],r[o+s],e.position-(i[o]-i[o+s]),u),l+=jx.repeat(" ",t.indent)+Lx((e.line+s+1).toString(),d)+" | "+c.str+"\n";return l.replace(/\n$/,"")},Fx=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],Vx=["scalar","sequence","mapping"];var Hx=function(e,t){if(t=t||{},Object.keys(t).forEach((function(t){if(-1===Fx.indexOf(t))throw new Rx('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.options=t,this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.representName=t.representName||null,this.defaultStyle=t.defaultStyle||null,this.multi=t.multi||!1,this.styleAliases=function(e){var t={};return null!==e&&Object.keys(e).forEach((function(n){e[n].forEach((function(e){t[String(e)]=n}))})),t}(t.styleAliases||null),-1===Vx.indexOf(this.kind))throw new Rx('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')};function Bx(e,t){var n=[];return e[t].forEach((function(e){var t=n.length;n.forEach((function(n,a){n.tag===e.tag&&n.kind===e.kind&&n.multi===e.multi&&(t=a)})),n[t]=e})),n}function qx(e){return this.extend(e)}qx.prototype.extend=function(e){var t=[],n=[];if(e instanceof Hx)n.push(e);else if(Array.isArray(e))n=n.concat(e);else{if(!e||!Array.isArray(e.implicit)&&!Array.isArray(e.explicit))throw new Rx("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");e.implicit&&(t=t.concat(e.implicit)),e.explicit&&(n=n.concat(e.explicit))}t.forEach((function(e){if(!(e instanceof Hx))throw new Rx("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(e.loadKind&&"scalar"!==e.loadKind)throw new Rx("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(e.multi)throw new Rx("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")})),n.forEach((function(e){if(!(e instanceof Hx))throw new Rx("Specified list of YAML types (or a single Type object) contains a non-Type object.")}));var a=Object.create(qx.prototype);return a.implicit=(this.implicit||[]).concat(t),a.explicit=(this.explicit||[]).concat(n),a.compiledImplicit=Bx(a,"implicit"),a.compiledExplicit=Bx(a,"explicit"),a.compiledTypeMap=function(){var e,t,n={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function a(e){e.multi?(n.multi[e.kind].push(e),n.multi.fallback.push(e)):n[e.kind][e.tag]=n.fallback[e.tag]=e}for(e=0,t=arguments.length;e=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),nC=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var aC=/^[-+]?[0-9]+e/;var iC=new Hx("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!nC.test(e)||"_"===e[e.length-1])},construct:function(e){var t,n;return n="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:n*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||jx.isNegativeZero(e))},represent:function(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(jx.isNegativeZero(e))return"-0.0";return n=e.toString(10),aC.test(n)?n.replace("e",".e"):n},defaultStyle:"lowercase"}),rC=Gx.extend({implicit:[Yx,Kx,tC,iC]}),oC=rC,sC=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),cC=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");var lC=new Hx("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==sC.exec(e)||null!==cC.exec(e))},construct:function(e){var t,n,a,i,r,o,s,c,l=0,d=null;if(null===(t=sC.exec(e))&&(t=cC.exec(e)),null===t)throw new Error("Date resolve error");if(n=+t[1],a=+t[2]-1,i=+t[3],!t[4])return new Date(Date.UTC(n,a,i));if(r=+t[4],o=+t[5],s=+t[6],t[7]){for(l=t[7].slice(0,3);l.length<3;)l+="0";l=+l}return t[9]&&(d=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(d=-d)),c=new Date(Date.UTC(n,a,i,r,o,s,l)),d&&c.setTime(c.getTime()-d),c},instanceOf:Date,represent:function(e){return e.toISOString()}});var dC=new Hx("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}}),uC="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";var hC=new Hx("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,a=0,i=e.length,r=uC;for(n=0;n64)){if(t<0)return!1;a+=6}return a%8==0},construct:function(e){var t,n,a=e.replace(/[\r\n=]/g,""),i=a.length,r=uC,o=0,s=[];for(t=0;t>16&255),s.push(o>>8&255),s.push(255&o)),o=o<<6|r.indexOf(a.charAt(t));return 0===(n=i%4*6)?(s.push(o>>16&255),s.push(o>>8&255),s.push(255&o)):18===n?(s.push(o>>10&255),s.push(o>>2&255)):12===n&&s.push(o>>4&255),new Uint8Array(s)},predicate:function(e){return"[object Uint8Array]"===Object.prototype.toString.call(e)},represent:function(e){var t,n,a="",i=0,r=e.length,o=uC;for(t=0;t>18&63],a+=o[i>>12&63],a+=o[i>>6&63],a+=o[63&i]),i=(i<<8)+e[t];return 0===(n=r%3)?(a+=o[i>>18&63],a+=o[i>>12&63],a+=o[i>>6&63],a+=o[63&i]):2===n?(a+=o[i>>10&63],a+=o[i>>4&63],a+=o[i<<2&63],a+=o[64]):1===n&&(a+=o[i>>2&63],a+=o[i<<4&63],a+=o[64],a+=o[64]),a}}),pC=Object.prototype.hasOwnProperty,mC=Object.prototype.toString;var gC=new Hx("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,n,a,i,r,o=[],s=e;for(t=0,n=s.length;t>10),56320+(e-65536&1023))}for(var qC=new Array(256),UC=new Array(256),WC=0;WC<256;WC++)qC[WC]=HC(WC)?1:0,UC[WC]=HC(WC);function ZC(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||bC,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function QC(e,t){var n={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return n.snippet=Nx(n),new Rx(t,n)}function GC(e,t){throw QC(e,t)}function YC(e,t){e.onWarning&&e.onWarning.call(null,QC(e,t))}var KC={YAML:function(e,t,n){var a,i,r;null!==e.version&&GC(e,"duplication of %YAML directive"),1!==n.length&&GC(e,"YAML directive accepts exactly one argument"),null===(a=/^([0-9]+)\.([0-9]+)$/.exec(n[0]))&&GC(e,"ill-formed argument of the YAML directive"),i=parseInt(a[1],10),r=parseInt(a[2],10),1!==i&&GC(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=r<2,1!==r&&2!==r&&YC(e,"unsupported YAML version of the document")},TAG:function(e,t,n){var a,i;2!==n.length&&GC(e,"TAG directive accepts exactly two arguments"),a=n[0],i=n[1],TC.test(a)||GC(e,"ill-formed tag handle (first argument) of the TAG directive"),wC.call(e.tagMap,a)&&GC(e,'there is a previously declared suffix for "'+a+'" tag handle'),jC.test(i)||GC(e,"ill-formed tag prefix (second argument) of the TAG directive");try{i=decodeURIComponent(i)}catch(t){GC(e,"tag prefix is malformed: "+i)}e.tagMap[a]=i}};function XC(e,t,n,a){var i,r,o,s;if(t1&&(e.result+=jx.repeat("\n",t-1))}function rM(e,t){var n,a,i=e.tag,r=e.anchor,o=[],s=!1;if(-1!==e.firstTabInLine)return!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=o),a=e.input.charCodeAt(e.position);0!==a&&(-1!==e.firstTabInLine&&(e.position=e.firstTabInLine,GC(e,"tab characters must not be used in indentation")),45===a)&&PC(e.input.charCodeAt(e.position+1));)if(s=!0,e.position++,nM(e,!0,-1)&&e.lineIndent<=t)o.push(null),a=e.input.charCodeAt(e.position);else if(n=e.line,cM(e,t,MC,!1,!0),o.push(e.result),nM(e,!0,-1),a=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&0!==a)GC(e,"bad indentation of a sequence entry");else if(e.lineIndentt?m=1:e.lineIndent===t?m=0:e.lineIndentt?m=1:e.lineIndent===t?m=0:e.lineIndentt)&&(_&&(o=e.line,s=e.lineStart,c=e.position),cM(e,t,kC,!0,i)&&(_?g=e.result:f=e.result),_||(eM(e,h,p,m,g,f,o,s,c),m=g=f=null),nM(e,!0,-1),l=e.input.charCodeAt(e.position)),(e.line===r||e.lineIndent>t)&&0!==l)GC(e,"bad indentation of a mapping entry");else if(e.lineIndent=0))break;0===i?GC(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):c?GC(e,"repeat of an indentation width identifier"):(l=t+i-1,c=!0)}if(RC(r)){do{r=e.input.charCodeAt(++e.position)}while(RC(r));if(35===r)do{r=e.input.charCodeAt(++e.position)}while(!DC(r)&&0!==r)}for(;0!==r;){for(tM(e),e.lineIndent=0,r=e.input.charCodeAt(e.position);(!c||e.lineIndentl&&(l=e.lineIndent),DC(r))d++;else{if(e.lineIndent0){for(i=o,r=0;i>0;i--)(o=NC(s=e.input.charCodeAt(++e.position)))>=0?r=(r<<4)+o:GC(e,"expected hexadecimal character");e.result+=BC(r),e.position++}else GC(e,"unknown escape sequence");n=a=e.position}else DC(s)?(XC(e,n,a,!0),iM(e,nM(e,!1,t)),n=a=e.position):e.position===e.lineStart&&aM(e)?GC(e,"unexpected end of the document within a double quoted scalar"):(e.position++,a=e.position)}GC(e,"unexpected end of the stream within a double quoted scalar")}(e,h)?f=!0:!function(e){var t,n,a;if(42!==(a=e.input.charCodeAt(e.position)))return!1;for(a=e.input.charCodeAt(++e.position),t=e.position;0!==a&&!PC(a)&&!LC(a);)a=e.input.charCodeAt(++e.position);return e.position===t&&GC(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),wC.call(e.anchorMap,n)||GC(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],nM(e,!0,-1),!0}(e)?function(e,t,n){var a,i,r,o,s,c,l,d,u=e.kind,h=e.result;if(PC(d=e.input.charCodeAt(e.position))||LC(d)||35===d||38===d||42===d||33===d||124===d||62===d||39===d||34===d||37===d||64===d||96===d)return!1;if((63===d||45===d)&&(PC(a=e.input.charCodeAt(e.position+1))||n&&LC(a)))return!1;for(e.kind="scalar",e.result="",i=r=e.position,o=!1;0!==d;){if(58===d){if(PC(a=e.input.charCodeAt(e.position+1))||n&&LC(a))break}else if(35===d){if(PC(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&aM(e)||n&&LC(d))break;if(DC(d)){if(s=e.line,c=e.lineStart,l=e.lineIndent,nM(e,!1,-1),e.lineIndent>=t){o=!0,d=e.input.charCodeAt(e.position);continue}e.position=r,e.line=s,e.lineStart=c,e.lineIndent=l;break}}o&&(XC(e,i,r,!1),iM(e,e.line-s),i=r=e.position,o=!1),RC(d)||(r=e.position+1),d=e.input.charCodeAt(++e.position)}return XC(e,i,r,!1),!!e.result||(e.kind=u,e.result=h,!1)}(e,h,xC===n)&&(f=!0,null===e.tag&&(e.tag="?")):(f=!0,null===e.tag&&null===e.anchor||GC(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===m&&(f=s&&rM(e,p))),null===e.tag)null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);else if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&GC(e,'unacceptable node kind for ! tag; it should be "scalar", not "'+e.kind+'"'),c=0,l=e.implicitTypes.length;c"),null!==e.result&&u.kind!==e.kind&&GC(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+u.kind+'", not "'+e.kind+'"'),u.resolve(e.result,e.tag)?(e.result=u.construct(e.result,e.tag),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):GC(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||f}function lM(e){var t,n,a,i,r=e.position,o=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);0!==(i=e.input.charCodeAt(e.position))&&(nM(e,!0,-1),i=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==i));){for(o=!0,i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!PC(i);)i=e.input.charCodeAt(++e.position);for(a=[],(n=e.input.slice(t,e.position)).length<1&&GC(e,"directive name must not be less than one character in length");0!==i;){for(;RC(i);)i=e.input.charCodeAt(++e.position);if(35===i){do{i=e.input.charCodeAt(++e.position)}while(0!==i&&!DC(i));break}if(DC(i))break;for(t=e.position;0!==i&&!PC(i);)i=e.input.charCodeAt(++e.position);a.push(e.input.slice(t,e.position))}0!==i&&tM(e),wC.call(KC,n)?KC[n](e,n,a):YC(e,'unknown document directive "'+n+'"')}nM(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,nM(e,!0,-1)):o&&GC(e,"directives end mark is expected"),cM(e,e.lineIndent-1,kC,!1,!0),nM(e,!0,-1),e.checkLineBreaks&&zC.test(e.input.slice(r,e.position))&&YC(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&aM(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,nM(e,!0,-1)):e.position=55296&&a<=56319&&t+1=56320&&n<=57343?1024*(a-55296)+n-56320+65536:a}function JM(e){return/^\n* /.test(e)}var ek=1,tk=2,nk=3,ak=4,ik=5;function rk(e,t,n,a,i,r,o,s){var c,l=0,d=null,u=!1,h=!1,p=-1!==a,m=-1,g=function(e){return GM(e)&&e!==mM&&!QM(e)&&e!==EM&&e!==IM&&e!==$M&&e!==SM&&e!==jM&&e!==OM&&e!==RM&&e!==LM&&e!==wM&&e!==CM&&e!==kM&&e!==yM&&e!==PM&&e!==AM&&e!==zM&&e!==MM&&e!==bM&&e!==xM&&e!==TM&&e!==DM}(XM(e,0))&&function(e){return!QM(e)&&e!==$M}(XM(e,e.length-1));if(t||o)for(c=0;c=65536?c+=2:c++){if(!GM(l=XM(e,c)))return ik;g=g&&KM(l,d,s),d=l}else{for(c=0;c=65536?c+=2:c++){if((l=XM(e,c))===fM)u=!0,p&&(h=h||c-m-1>a&&" "!==e[m+1],m=c);else if(!GM(l))return ik;g=g&&KM(l,d,s),d=l}h=h||p&&c-m-1>a&&" "!==e[m+1]}return u||h?n>9&&JM(e)?ik:o?r===qM?ik:tk:h?ak:nk:!g||o||i(e)?r===qM?ik:tk:ek}function ok(e,t,n,a,i){e.dump=function(){if(0===t.length)return e.quotingType===qM?'""':"''";if(!e.noCompatMode&&(-1!==FM.indexOf(t)||VM.test(t)))return e.quotingType===qM?'"'+t+'"':"'"+t+"'";var r=e.indent*Math.max(1,n),o=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-r),s=a||e.flowLevel>-1&&n>=e.flowLevel;switch(rk(t,s,e.indent,o,(function(t){return function(e,t){var n,a;for(n=0,a=e.implicitTypes.length;n"+sk(t,e.indent)+ck(WM(function(e,t){var n,a,i=/(\n+)([^\n]*)/g,r=(s=e.indexOf("\n"),s=-1!==s?s:e.length,i.lastIndex=s,lk(e.slice(0,s),t)),o="\n"===e[0]||" "===e[0];var s;for(;a=i.exec(e);){var c=a[1],l=a[2];n=" "===l[0],r+=c+(o||n||""===l?"":"\n")+lk(l,t),o=n}return r}(t,o),r));case ik:return'"'+function(e){for(var t,n="",a=0,i=0;i=65536?i+=2:i++)a=XM(e,i),!(t=NM[a])&&GM(a)?(n+=e[i],a>=65536&&(n+=e[i+1])):n+=t||HM(a);return n}(t)+'"';default:throw new Rx("impossible error: invalid scalar style")}}()}function sk(e,t){var n=JM(e)?String(t):"",a="\n"===e[e.length-1];return n+(a&&("\n"===e[e.length-2]||"\n"===e)?"+":a?"":"-")+"\n"}function ck(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function lk(e,t){if(""===e||" "===e[0])return e;for(var n,a,i=/ [^ ]/g,r=0,o=0,s=0,c="";n=i.exec(e);)(s=n.index)-r>t&&(a=o>r?o:s,c+="\n"+e.slice(r,a),r=a+1),o=s;return c+="\n",e.length-r>t&&o>r?c+=e.slice(r,o)+"\n"+e.slice(o+1):c+=e.slice(r),c.slice(1)}function dk(e,t,n,a){var i,r,o,s="",c=e.tag;for(i=0,r=n.length;i tag resolver accepts not "'+c+'" style');a=s.represent[c](t,c)}e.dump=a}return!0}return!1}function hk(e,t,n,a,i,r,o){e.tag=null,e.dump=n,uk(e,n,!1)||uk(e,n,!0);var s,c=hM.call(e.dump),l=a;a&&(a=e.flowLevel<0||e.flowLevel>t);var d,u,h="[object Object]"===c||"[object Array]"===c;if(h&&(u=-1!==(d=e.duplicates.indexOf(n))),(null!==e.tag&&"?"!==e.tag||u||2!==e.indent&&t>0)&&(i=!1),u&&e.usedDuplicates[d])e.dump="*ref_"+d;else{if(h&&u&&!e.usedDuplicates[d]&&(e.usedDuplicates[d]=!0),"[object Object]"===c)a&&0!==Object.keys(e.dump).length?(!function(e,t,n,a){var i,r,o,s,c,l,d="",u=e.tag,h=Object.keys(n);if(!0===e.sortKeys)h.sort();else if("function"==typeof e.sortKeys)h.sort(e.sortKeys);else if(e.sortKeys)throw new Rx("sortKeys must be a boolean or a function");for(i=0,r=h.length;i1024)&&(e.dump&&fM===e.dump.charCodeAt(0)?l+="?":l+="? "),l+=e.dump,c&&(l+=ZM(e,t)),hk(e,t+1,s,!0,c)&&(e.dump&&fM===e.dump.charCodeAt(0)?l+=":":l+=": ",d+=l+=e.dump));e.tag=u,e.dump=d||"{}"}(e,t,e.dump,i),u&&(e.dump="&ref_"+d+e.dump)):(!function(e,t,n){var a,i,r,o,s,c="",l=e.tag,d=Object.keys(n);for(a=0,i=d.length;a1024&&(s+="? "),s+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),hk(e,t,o,!1,!1)&&(c+=s+=e.dump));e.tag=l,e.dump="{"+c+"}"}(e,t,e.dump),u&&(e.dump="&ref_"+d+" "+e.dump));else if("[object Array]"===c)a&&0!==e.dump.length?(e.noArrayIndent&&!o&&t>0?dk(e,t-1,e.dump,i):dk(e,t,e.dump,i),u&&(e.dump="&ref_"+d+e.dump)):(!function(e,t,n){var a,i,r,o="",s=e.tag;for(a=0,i=n.length;a",e.dump=s+" "+e.dump)}return!0}function pk(e,t){var n,a,i=[],r=[];for(mk(e,i,r),n=0,a=r.length;nq`
${fk.dump(e)}
`;return q`
+
+
+ +
+
+ + ${this.message?q`${this.message}${this.context&&"string"==typeof this.context?": "+this.context:""}`:""} + + ${this.context&&Array.isArray(this.context)?this.context.map((e=>n(e))):"object"==typeof this.context?n(this.context):""} +
+
+
`}static get styles(){return o(_k)}};e([he({attribute:!1})],vk.prototype,"message",void 0),e([he({attribute:!1})],vk.prototype,"context",void 0),e([he({attribute:!1})],vk.prototype,"icon",void 0),e([he({attribute:!0,type:Boolean})],vk.prototype,"dotdotdot",void 0),vk=e([le("frigate-card-message")],vk);let yk=class extends se{render(){if(this.message)return q` ${V_("error.troubleshooting")}
.`} + .icon=${this.message.icon??"mdi:alert-circle"} + .context=${this.message.context} + .dotdotdot=${this.message.dotdotdot} + > + `}static get styles(){return o(_k)}};e([he({attribute:!1})],yk.prototype,"message",void 0),yk=e([le("frigate-card-error-message")],yk);let bk=class extends se{constructor(){super(...arguments),this.message="",this.animated=!1,this.size="large"}render(){return q`
+ ${this.animated?q` + `:q``} + ${this.message?q`${this.message}`:q``} +
`}static get styles(){return o(_k)}};function wk(e){return"error"===e?.type?q` `:e?q` `:q``}function xk(e){return q` + + + `}function Ck(e,t,n,a){Bg(e,"message",{message:t,type:n,icon:a?.icon,context:a?.context})}function Mk(e,t,n){Ck(e,t,"error",{context:n?.context})}function kk(e,t){t instanceof Error&&Mk(e,t.message,{...t instanceof zs&&{context:t.context}})}e([he({attribute:!1})],bk.prototype,"message",void 0),e([he({attribute:!1})],bk.prototype,"animated",void 0),e([he({attribute:!1})],bk.prototype,"size",void 0),bk=e([le("frigate-card-progress-indicator")],bk);let Sk=class extends se{constructor(){super(...arguments),this._root=null}createRenderRoot(){return this}_createRoot(){const e=customElements.get("hui-conditional-element");if(!e||!this.hass)throw new Error(V_("error.could_not_render_elements"));const t=new e;t.hass=this.hass;const n={type:"conditional",conditions:[],elements:this.elements};try{t.setConfig(n)}catch(e){throw Gg(e,console.error),new zs(V_("error.invalid_elements_config"))}return t}willUpdate(e){try{!this.elements||this._root&&!e.has("elements")||(this._root=this._createRoot())}catch(e){return kk(this,e)}}render(){return q`${this._root||""}`}updated(){this.hass&&this._root&&(this._root.hass=this.hass)}};e([he({attribute:!1})],Sk.prototype,"elements",void 0),e([he({attribute:!1})],Sk.prototype,"conditionsManagerEpoch",void 0),e([he({attribute:!1})],Sk.prototype,"hass",void 0),Sk=e([le("frigate-card-elements-core")],Sk);let Ek=class extends se{constructor(){super(...arguments),this._menuRemoveHandler=e=>{Bg(this,"menu:remove",e.detail)},this._statusBarRemoveHandler=e=>{Bg(this,"status-bar:remove",e.detail)},this._menuAddHandler=e=>{const t=e.composedPath();t.length&&this._addHandler(t[0],"frigate-card:menu:remove",this._menuRemoveHandler)},this._statusBarAddHandler=e=>{const t=e.composedPath();t.length&&this._addHandler(t[0],"frigate-card:status-bar:add",this._statusBarRemoveHandler)}}_addHandler(e,t,n){e.removeEventListener(t,n),e.addEventListener(t,n)}connectedCallback(){super.connectedCallback(),this.addEventListener("frigate-card:menu:add",this._menuAddHandler),this.addEventListener("frigate-card:status-bar:add",this._statusBarAddHandler)}disconnectedCallback(){this.removeEventListener("frigate-card:menu:add",this._menuAddHandler),this.addEventListener("frigate-card:status-bar:add",this._statusBarAddHandler),super.disconnectedCallback()}render(){return q` + `}static get styles(){return o(":host {\n position: absolute;\n inset: 0;\n overflow: hidden;\n pointer-events: none;\n}\n\n.element {\n position: absolute;\n transform: translate(-50%, -50%);\n pointer-events: auto;\n}\n\nhui-error-card.element {\n inset: 0px;\n transform: unset;\n}")}};e([he({attribute:!1})],Ek.prototype,"hass",void 0),e([he({attribute:!1})],Ek.prototype,"conditionsManagerEpoch",void 0),e([he({attribute:!1})],Ek.prototype,"elements",void 0),Ek=e([le("frigate-card-elements")],Ek);let $k=class extends se{setConfig(e){this._config=e}createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),this.className=""}render(){if(function(e,t){if(!t)return!0;const n=new _w(t,{bubbles:!0,composed:!0});return e.dispatchEvent(n),n.evaluation??!1}(this,this._config?.conditions))return q` + `}};e([he({attribute:!1,hasChanged:()=>!0})],$k.prototype,"hass",void 0),$k=e([le("frigate-card-conditional")],$k);class Ak extends se{constructor(e){super(),this._config=null,this._eventCategory=e}setConfig(e){this._config=e}connectedCallback(){super.connectedCallback(),this._config&&Bg(this,`${this._eventCategory}:add`,this._config)}disconnectedCallback(){this._config&&Bg(this,`${this._eventCategory}:remove`,this._config),super.disconnectedCallback()}}e([pe()],Ak.prototype,"_config",void 0);class zk extends Ak{constructor(){super("menu")}}let Ik=class extends zk{};Ik=e([le("frigate-card-menu-icon")],Ik);let Tk=class extends zk{};Tk=e([le("frigate-card-menu-state-icon")],Tk);let jk=class extends zk{};jk=e([le("frigate-card-menu-submenu")],jk);let Ok=class extends zk{};Ok=e([le("frigate-card-menu-submenu-select")],Ok);class Dk extends Ak{constructor(){super("status-bar")}}let Rk=class extends Dk{};Rk=e([le("frigate-card-status-bar-icon")],Rk);let Pk=class extends Dk{};Pk=e([le("frigate-card-status-bar-image")],Pk);let Lk=class extends Dk{};Lk=e([le("frigate-card-status-bar-string")],Lk);let Nk=class extends se{render(){return q` `}static get styles(){return o(":host {\n width: intrinsic;\n height: intrinsic;\n display: flex;\n justify-content: center;\n align-items: center;\n pointer-events: none;\n}\n\nimg {\n width: 10%;\n animation: rotate 8s linear infinite;\n}\n\n@keyframes rotate {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}")}};Nk=e([le("frigate-card-loading")],Nk);const Fk=(e,t)=>{Bg(e,"action:execution-request",t)};class Vk{constructor(e){this._config=null,this._buttons=[],this._expanded=!1,this._host=e}setMenuConfig(e){this._config=e,this._host.style.setProperty("--frigate-card-menu-button-size",`${e.button_size}px`),this._host.setAttribute("data-style",e.style),this._host.setAttribute("data-position",e.position),this._host.setAttribute("data-alignment",e.alignment),this._sortButtons(),this._host.requestUpdate()}getMenuConfig(){return this._config}isExpanded(){return this._expanded}setButtons(e){this._buttons=e,this._sortButtons(),this._host.requestUpdate()}getButtons(e){const t=e=>!this._isHidingMenu()||this._expanded||!!e.permanent;return this._buttons.filter((n=>(e=>!1!==e.enabled)(n)&&(t=>t.alignment===e||"matching"===e&&!t.alignment)(n)&&t(n)))}setExpanded(e){this._expanded=e,of(this._host,e,"expanded"),this._host.requestUpdate()}toggleExpanded(){this.setExpanded(!this._expanded)}actionHandler(e,t){if(e.stopPropagation(),e.detail.config&&(t=e.detail.config),!t)return;const n=e.detail.action,a=yf(n,t);if(!a)return;const i=Wg(a);let r=!1;const o=i.filter((e=>sf(e)&&!this._isUnknownActionMenuToggleAction(e)));if(o.length!=i.length&&(r=!0),o.length&&Fk(this._host,{action:i,config:t}),this._isHidingMenu())if(r)this.setExpanded(!this._expanded);else{const e=yf("hold",t),a=yf("double_tap",t),i=yf("tap",t),r=yf("end_tap",t);"end_tap"!==n&&("start_tap"!==n||e||a||i||r)&&("end_tap"===n||r)||this.setExpanded(!1)}}getFreshButtonState(e,t){const n={...t};return e&&"custom:frigate-card-menu-state-icon"===t.type?Pb(e,n):n}_sortButtons(){this._buttons=Ev(this._buttons,(e=>(e.priority??0)+(this._isHidingMenu()&&e.permanent?Us:0)),["desc"])}_isHidingMenu(){return"hidden"===this._config?.style}_isUnknownActionMenuToggleAction(e){const t=mf(e);return!!t&&"menu_toggle"==t.frigate_card_action}}var Hk="data:image/svg+xml,%3c%3fxml version='1.0' encoding='UTF-8' standalone='no'%3f%3e%3csvg width='24' height='24' viewBox='0 0 24 24' fill='none' version='1.1' id='svg54' sodipodi:docname='frigate.svg' inkscape:version='1.2.2 (b0a8486541%2c 2022-12-01)' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg'%3e %3cdefs id='defs58' /%3e %3csodipodi:namedview id='namedview56' pagecolor='%23da4040' bordercolor='%23666666' borderopacity='1.0' inkscape:pageshadow='2' inkscape:pageopacity='0' inkscape:pagecheckerboard='0' showgrid='false' width='24px' inkscape:zoom='45.254834' inkscape:cx='-0.03314563' inkscape:cy='9.9768347' inkscape:window-width='3840' inkscape:window-height='1527' inkscape:window-x='1080' inkscape:window-y='227' inkscape:window-maximized='1' inkscape:current-layer='svg54' showguides='true' inkscape:showpageshadow='2' inkscape:deskcolor='%23d1d1d1' /%3e %3cpath d='m 4.8759466%2c22.743573 c 0.0866%2c0.69274 0.811811%2c1.16359 0.37885%2c1.27183 -0.43297%2c0.10824 -2.32718%2c-3.43665 -2.7601492%2c-4.95202 -0.4329602%2c-1.51538 -0.6764993%2c-3.22017 -0.5682593%2c-4.19434 0.1082301%2c-0.97417 5.7097085%2c-2.48955 5.7097085%2c-2.89545 0%2c-0.4059 -1.81304%2c-0.0271 -1.89422%2c-0.35178 -0.0812%2c-0.32472 1.36925%2c-0.12989 1.75892%2c-0.64945 0.60885%2c-0.81181 1.3800713%2c-0.6765 1.8671505%2c-1.1094696 0.4870902%2c-0.4329599 1.0824089%2c-2.0836399 1.1906589%2c-2.7871996 0.108241%2c-0.70357 -1.0824084%2c-1.51538 -1.4071389%2c-2.05658 -0.3247195%2c-0.54121 0.7035702%2c-0.92005 3.1931099%2c-1.94834 2.48954%2c-1.02829 10.39114%2c-3.30134994 10.49938%2c-3.03074994 0.10824%2c0.27061 -2.59779%2c1.40713994 -4.492%2c2.11069994 -1.89422%2c0.70357 -4.97909%2c2.05658 -4.97909%2c2.43542 0%2c0.37885 0.16236%2c0.67651 0.0541%2c1.54244 -0.10824%2c0.86593 -0.12123%2c1.2702597 -0.32472%2c1.8400997 -0.1353%2c0.37884 -0.2706%2c1.27183 0%2c2.0836295 0.21648%2c0.64945 0.92005%2c1.13653 1.24477%2c1.24478 0.2706%2c0.018 1.01746%2c0.0433 1.8401%2c0 1.02829%2c-0.0541 2.48954%2c0.0541 2.48954%2c0.32472 0%2c0.2706 -2.21894%2c0.10824 -2.21894%2c0.48708 0%2c0.37885 2.27306%2c-0.0541 2.21894%2c0.32473 -0.0541%2c0.37884 -1.89422%2c0.21648 -2.86839%2c0.21648 -0.77933%2c0 -1.93031%2c-0.0361 -2.43542%2c-0.21648 l -0.10824%2c0.37884 c -0.18038%2c0 -0.55744%2c0.10824 -0.94711%2c0.10824 -0.48708%2c0 -0.51414%2c0.16236 -1.40713%2c0.16236 -0.892989%2c0 -0.622391%2c-0.0541 -1.4341894%2c-0.10824 -0.81181%2c-0.0541 -3.842561%2c2.27306 -4.383761%2c3.03075 -0.54121%2c0.75768 -0.21649%2c2.59778 -0.21649%2c3.43665 0%2c0.75379 -0.10824%2c2.43542 0%2c3.30135 z' fill='black' id='path330' style='fill:white%3bfill-opacity:1%3bstroke:none%3bstroke-width:0.1%3bstroke-miterlimit:4%3bstroke-dasharray:none%3bstroke-opacity:1' sodipodi:nodetypes='csccscccccsscscccccsscsccssccscc' /%3e%3c/svg%3e",Bk="data:image/svg+xml,%3c%3fxml version='1.0' encoding='UTF-8' standalone='no'%3f%3e%3c!-- Created with Inkscape (http://www.inkscape.org/) --%3e%3csvg id='svg2' version='1.1' inkscape:version='1.2.2 (b0a8486541%2c 2022-12-01)' width='24' height='24' xml:space='preserve' sodipodi:docname='motioneye.svg' inkscape:export-filename='/home/ccrisan/projects/motioneye/static/img/motioneye-logo.png' inkscape:export-xdpi='960' inkscape:export-ydpi='960' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns%23' xmlns:cc='http://creativecommons.org/ns%23' xmlns:dc='http://purl.org/dc/elements/1.1/'%3e%3cmetadata id='metadata8'%3e%3crdf:RDF%3e%3ccc:Work rdf:about=''%3e%3cdc:format%3eimage/svg%2bxml%3c/dc:format%3e%3cdc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage' /%3e%3c/cc:Work%3e%3c/rdf:RDF%3e%3c/metadata%3e%3cdefs id='defs6'%3e%3clinearGradient inkscape:collect='always' id='linearGradient2058'%3e%3cstop style='stop-color:white%3bstop-opacity:1%3b' offset='0' id='stop2054' /%3e%3cstop style='stop-color:%23585858%3bstop-opacity:1' offset='1' id='stop2056' /%3e%3c/linearGradient%3e%3clinearGradient inkscape:collect='always' id='linearGradient2005'%3e%3cstop style='stop-color:white%3bstop-opacity:1%3b' offset='0' id='stop2001' /%3e%3cstop style='stop-color:grey%3bstop-opacity:1%3b' offset='1' id='stop2003' /%3e%3c/linearGradient%3e%3clinearGradient inkscape:collect='always' id='linearGradient4205'%3e%3cstop style='stop-color:%234aa3e0%3bstop-opacity:1' offset='0' id='stop4207' /%3e%3cstop style='stop-color:%233096db%3bstop-opacity:1' offset='1' id='stop4209' /%3e%3c/linearGradient%3e%3clinearGradient inkscape:collect='always' id='linearGradient4197'%3e%3cstop style='stop-color:white%3bstop-opacity:1%3b' offset='0' id='stop4199' /%3e%3cstop style='stop-color:%23585858%3bstop-opacity:1' offset='1' id='stop4201' /%3e%3c/linearGradient%3e%3clinearGradient inkscape:collect='always' xlink:href='%23linearGradient4205' id='linearGradient4211' x1='26.602072' y1='43.034946' x2='26.602072' y2='29.466328' gradientUnits='userSpaceOnUse' gradientTransform='matrix(0.96428571%2c0%2c0%2c0.96428571%2c0.91428571%2c0.91428571)' /%3e%3cfilter style='color-interpolation-filters:sRGB' inkscape:label='Drop Shadow' id='filter4285'%3e%3cfeFlood flood-opacity='0.588235' flood-color='rgb(0%2c0%2c0)' result='flood' id='feFlood4287' /%3e%3cfeComposite in='flood' in2='SourceGraphic' operator='in' result='composite1' id='feComposite4289' /%3e%3cfeGaussianBlur in='composite1' stdDeviation='0.6' result='blur' id='feGaussianBlur4291' /%3e%3cfeOffset dx='0' dy='-1' result='offset' id='feOffset4293' /%3e%3cfeComposite in='SourceGraphic' in2='offset' operator='over' result='composite2' id='feComposite4295' /%3e%3c/filter%3e%3clinearGradient inkscape:collect='always' xlink:href='%23linearGradient2005' id='linearGradient4309' gradientUnits='userSpaceOnUse' x1='26.445793' y1='47.517574' x2='26.445793' y2='3.8183768' /%3e%3clinearGradient inkscape:collect='always' xlink:href='%23linearGradient4197' id='linearGradient4311' gradientUnits='userSpaceOnUse' x1='26.445793' y1='47.517574' x2='26.445793' y2='3.8183768' /%3e%3clinearGradient inkscape:collect='always' xlink:href='%23linearGradient2058' id='linearGradient4313' gradientUnits='userSpaceOnUse' x1='26.445793' y1='47.517574' x2='26.445793' y2='3.8183768' /%3e%3cfilter style='color-interpolation-filters:sRGB' inkscape:label='Drop Shadow' id='filter4315' x='-0.03618178' y='-0.20783284' width='1.0723636' height='1.3304883'%3e%3cfeFlood flood-opacity='0.588235' flood-color='rgb(0%2c0%2c0)' result='flood' id='feFlood4317' /%3e%3cfeComposite in='flood' in2='SourceGraphic' operator='in' result='composite1' id='feComposite4319' /%3e%3cfeGaussianBlur in='composite1' stdDeviation='0.6' result='blur' id='feGaussianBlur4321' /%3e%3cfeOffset dx='0' dy='-1' result='offset' id='feOffset4323' /%3e%3cfeComposite in='SourceGraphic' in2='offset' operator='over' result='composite2' id='feComposite4325' /%3e%3c/filter%3e%3cfilter style='color-interpolation-filters:sRGB' inkscape:label='Drop Shadow' id='filter4327' x='-0.27857143' y='-0.4720238' width='1.5571429' height='1.7505952'%3e%3cfeFlood flood-opacity='0.588235' flood-color='rgb(0%2c0%2c0)' result='flood' id='feFlood4329' /%3e%3cfeComposite in='flood' in2='SourceGraphic' operator='in' result='composite1' id='feComposite4331' /%3e%3cfeGaussianBlur in='composite1' stdDeviation='0.6' result='blur' id='feGaussianBlur4333' /%3e%3cfeOffset dx='0' dy='-1' result='offset' id='feOffset4335' /%3e%3cfeComposite in='SourceGraphic' in2='offset' operator='over' result='composite2' id='feComposite4337' /%3e%3c/filter%3e%3cfilter style='color-interpolation-filters:sRGB' inkscape:label='Drop Shadow' id='filter4339' x='-0.0202507' y='-0.13980794' width='1.0405014' height='1.2082853'%3e%3cfeFlood flood-opacity='0.588235' flood-color='rgb(0%2c0%2c0)' result='flood' id='feFlood4341' /%3e%3cfeComposite in='flood' in2='SourceGraphic' operator='in' result='composite1' id='feComposite4343' /%3e%3cfeGaussianBlur in='composite1' stdDeviation='0.2' result='blur' id='feGaussianBlur4345' /%3e%3cfeOffset dx='0' dy='-0.5' result='offset' id='feOffset4347' /%3e%3cfeComposite in='SourceGraphic' in2='offset' operator='over' result='composite2' id='feComposite4349' /%3e%3c/filter%3e%3c/defs%3e%3csodipodi:namedview pagecolor='%23ff0d0d' bordercolor='%23666666' borderopacity='1' objecttolerance='10' gridtolerance='10' guidetolerance='10' inkscape:pageopacity='0' inkscape:pageshadow='2' inkscape:window-width='3840' inkscape:window-height='1527' id='namedview4' showgrid='false' inkscape:zoom='29.890116' inkscape:cx='19.973158' inkscape:cy='16.577386' inkscape:window-x='1080' inkscape:window-y='227' inkscape:window-maximized='1' inkscape:current-layer='g10' showguides='true' inkscape:guide-bbox='true' inkscape:showpageshadow='true' inkscape:pagecheckerboard='false' inkscape:deskcolor='%23d1d1d1' /%3e%3cg id='g10' inkscape:groupmode='layer' inkscape:label='ink_ext_XXXXXX' transform='matrix(1.25%2c0%2c0%2c-1.25%2c0%2c64)'%3e%3cg id='g4823' transform='matrix(1.0344694%2c0%2c0%2c1.0344694%2c-3.551886%2c-0.86695248)'%3e%3cpath id='path4244' d='M 8.9346154%2c40.515385 C 5.3647588%2c36.547307 3.2%2c31.357779 3.2%2c25.6 3.2%2c13.228821 13.228821%2c3.2 25.6%2c3.2 37.971179%2c3.2 48%2c13.228821 48%2c25.6 c 0%2c5.736682 -2.161128%2c10.952493 -5.707692%2c14.915385 -1.695935%2c-0.623286 -3.387833%2c-1.349065 -5.061539%2c-2.288462 3.2394%2c-0.937363 5.6%2c-3.937988 5.6%2c-7.457692 0%2c-4.260339 -3.469626%2c-7.753846 -7.753846%2c-7.753846 -3.633936%2c0 -6.690552%2c2.51055 -7.538461%2c5.869231 h -3.876924 c -0.840685%2c-3.360193 -3.903443%2c-5.869231 -7.538461%2c-5.869231 -4.284219%2c0 -7.7807693%2c3.493507 -7.7807693%2c7.753846 0%2c3.56112 2.4570323%2c6.5856 5.7615383%2c7.484616 -1.676267%2c0.912203 -3.404813%2c1.620556 -5.1692306%2c2.261538 z M 25.6%2c26.461538 c 0.532632%2c-1.981435 1.101793%2c-3.947553 3.446154%2c-5.16923 L 25.6%2c16.123077 22.153846%2c21.292308 c 2.053593%2c1.454966 3.000771%2c3.237758 3.446154%2c5.16923 z' style='fill:url(%23linearGradient4309)%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4327)' inkscape:connector-curvature='0' transform='matrix(0.38078533%2c0%2c0%2c0.38078533%2c2.9655495%2c31.335499)' /%3e%3cpath id='path4242' d='m 16.123077%2c33.353847 c -1.427443%2c0 -2.584616%2c-1.157173 -2.584616%2c-2.584616 0%2c-1.427444 1.157173%2c-2.584615 2.584616%2c-2.584615 1.427444%2c0 2.584615%2c1.157171 2.584615%2c2.584615 0%2c1.427443 -1.157171%2c2.584616 -2.584615%2c2.584616 z' style='fill:url(%23linearGradient4311)%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4327)' inkscape:connector-curvature='0' transform='matrix(0.38078533%2c0%2c0%2c0.38078533%2c2.9655495%2c31.335499)' /%3e%3cpath id='path4240' d='m 35.076923%2c33.353847 c -1.427443%2c0 -2.584615%2c-1.157173 -2.584615%2c-2.584616 0%2c-1.427444 1.157172%2c-2.584615 2.584615%2c-2.584615 1.427443%2c0 2.584616%2c1.157171 2.584616%2c2.584615 0%2c1.427443 -1.157173%2c2.584616 -2.584616%2c2.584616 z' style='fill:url(%23linearGradient4313)%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4327)' inkscape:connector-curvature='0' transform='matrix(0.38078533%2c0%2c0%2c0.38078533%2c2.9655495%2c31.335499)' /%3e%3cpath inkscape:connector-curvature='0' style='fill:%23d9d9d9%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4339)' d='m 25.6%2c47.2 c -4.373944%2c0 -8.437159%2c-1.399808 -11.838461%2c-3.634616 3.677605%2c-0.394237 7.305921%2c-1.342945 11.423077%2c-3.375 4.166157%2c2.122533 8.434154%2c3.008875 12.279808%2c3.452886 C 34.057131%2c45.890032 29.986674%2c47.2 25.6%2c47.2 Z' id='path4248' transform='matrix(0.39488848%2c0%2c0%2c0.39488848%2c2.6045087%2c30.974457)' /%3e%3cpath inkscape:connector-curvature='0' style='fill:url(%23linearGradient4211)%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4315)' d='M 39.723077%2c42.552884 C 35.394064%2c42.5242 29.479588%2c40.397223 25.184616%2c38.432418 20.668821%2c40.064102 16.035448%2c42.649343 10.801923%2c42.526924 10.453022%2c42.51873 10.118061%2c42.50105 9.7634616%2c42.475 L 5.6615384%2c42.1375 9.5557693%2c40.839424 c 5.3417977%2c-1.74056 10.0398397%2c-2.851302 14.1749997%2c-10.025963 0.959101%2c0 2.845924%2c-4.15e-4 3.738462%2c-4.15e-4 4.11884%2c7.134039 9.059296%2c8.324614 14.149039%2c10.026378 L 45.460577%2c42.085577 41.4625%2c42.475 c -0.544847%2c0.05181 -1.120992%2c0.08198 -1.739423%2c0.07788 z' id='path4246' sodipodi:nodetypes='cccccccccccc' transform='matrix(0.39488848%2c0%2c0%2c0.39488848%2c2.6045087%2c30.974457)' /%3e%3c/g%3e%3c/g%3e%3c/svg%3e",qk="data:image/svg+xml,%3c%3fxml version='1.0' encoding='UTF-8' standalone='no'%3f%3e%3c!-- Created with Inkscape (http://www.inkscape.org/) --%3e%3csvg version='1.1' id='svg62' width='24' height='24' viewBox='0 0 24 24' sodipodi:docname='reolink.svg' inkscape:version='1.2.2 (b0a8486541%2c 2022-12-01)' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg'%3e %3cdefs id='defs66' /%3e %3csodipodi:namedview id='namedview64' pagecolor='%23505050' bordercolor='%23eeeeee' borderopacity='1' inkscape:showpageshadow='0' inkscape:pageopacity='0' inkscape:pagecheckerboard='0' inkscape:deskcolor='%23505050' showgrid='true' inkscape:zoom='36.417984' inkscape:cx='18.191562' inkscape:cy='8.6633022' inkscape:window-width='3840' inkscape:window-height='1527' inkscape:window-x='1080' inkscape:window-y='227' inkscape:window-maximized='1' inkscape:current-layer='g68'%3e %3cinkscape:grid type='xygrid' id='grid1175' dotted='false' snapvisiblegridlinesonly='true' /%3e %3c/sodipodi:namedview%3e %3cg inkscape:groupmode='layer' inkscape:label='Reolink Logo' id='g68'%3e %3cpath style='fill:white%3bstroke-width:0.0393282%3bfill-opacity:1' d='M 17.037254%2c23.964909 C 16.764634%2c23.917573 16.561708%2c23.83617 16.325735%2c23.67954 16.196719%2c23.593913 14.543544%2c21.952905 12.217956%2c19.602014 10.077426%2c17.438191 8.2198993%2c15.582673 8.0901166%2c15.478642 7.6038998%2c15.088895 7.0877741%2c14.869424 6.4986827%2c14.801908 6.3140805%2c14.780765 5.079061%2c14.763305 3.7541964%2c14.763126 l -2.408845%2c-4.78e-4 0.00713%2c-7.3937713 v -7.3935985 l 6.2040046%2c3.536e-5 c 3.9799342%2c1.969e-5 6.3590882%2c0.01465833 6.6366112%2c0.0408227 2.331195%2c0.21982024 4.364771%2c1.49885914 5.578726%2c3.50085534 0.686043%2c1.1313823 1.020901%2c2.2783695 1.067186%2c3.6554196 0.06335%2c1.8844953 -0.57426%2c3.6597378 -1.831469%2c5.0992438 -0.756457%2c0.866146 -1.861127%2c1.62991 -2.928729%2c2.024919 l -0.319718%2c0.118287 -1.951287%2c-1.979284 -1.951286%2c-1.979278 1.046741%2c-0.02346 c 0.575706%2c-0.01291 1.099833%2c-0.03689 1.164724%2c-0.0533 0.596068%2c-0.150649 0.949703%2c-0.313968 1.322206%2c-0.6106282 0.643573%2c-0.5125401 1.046169%2c-1.2439257 1.137985%2c-2.0673522 0.167852%2c-1.505317 -0.771478%2c-2.8704888 -2.263547%2c-3.2897068 L 13.950001%2c4.3234481 9.7981831%2c4.3106846 5.6392389%2c4.29801 v 3.0692702 3.0692648 l 1.4185165%2c7.9e-4 c 1.6275801%2c8.87e-4 1.7789152%2c0.01912 2.3105245%2c0.27984 0.3095679%2c0.15183 0.389559%2c0.219499 1.0817441%2c0.915083 3.027399%2c3.042274 12.19404%2c12.30837 12.204589%2c12.337002 0.0161%2c0.04373 -5.364393%2c0.03953 -5.617359%2c-0.0045 z' id='path1173' inkscape:label='R' /%3e %3c/g%3e%3c/svg%3e";const Uk=e=>{switch(e){case"frigate":return Hk;case"motioneye":return Bk;case"reolink":return qk;default:return null}};const Wk=(e,t,n)=>{const a=e.states[t],i=n?.state?n.state:a?a.state:null;if(!i)return null;const r=Ye(t),o=a?a.attributes:null;return n?.entity?.translation_key&&e.localize(`component.${n.entity.platform}.entity.${r}.${n.entity.translation_key}.state.${i}`)||o?.device_class&&e.localize(`component.${r}.state.${o.device_class}.${i}`)||e.localize(`component.${r}.state._.${i}`)||i};let Zk=class extends se{_renderItem(e){if(!this.hass)return;const t=Pb(this.hass,{...e});return q` + {t.detail.config=e}} + .actionHandler=${kf({hasHold:bf(e.hold_action),hasDoubleClick:bf(e.double_tap_action)})} + > + ${t.title||""} + ${e.subtitle?q`${e.subtitle}`:""} + ${(e=>{if(e.icon){const t=Uk(e.icon);return t?q``:q` + `}return q``})(t)} + + `}render(){if(!this.submenu)return q``;const e=this.submenu.items;return q` + e.stopPropagation()} + @click=${e=>wf(e)} + > + + + + ${e.map(this._renderItem.bind(this))} + + `}static get styles(){return o("ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n pointer-events: auto;\n}\n\nmwc-list-item {\n z-index: 20;\n}")}};e([he({attribute:!1})],Zk.prototype,"hass",void 0),e([he({attribute:!1})],Zk.prototype,"submenu",void 0),Zk=e([le("frigate-card-submenu")],Zk);let Qk=class extends se{shouldUpdate(e){const t=e.get("hass");return!e.has("hass")||!t||!this.submenuSelect||jb(this.hass,t,[this.submenuSelect.entity])}async _refreshOptionTitles(){if(!this.hass||!this.submenuSelect)return;const e=this.submenuSelect.entity,t=this.hass.states[e],n=t?.attributes?.options,a=await(this.entityRegistryManager?.getEntity(this.hass,e))??null,i={};for(const t of n){const n=Wk(this.hass,e,{...a&&{entity:a},state:t});n&&(i[t]=n)}this._optionTitles=i}willUpdate(){if(!this.submenuSelect||!this.hass)return;this._optionTitles||this._refreshOptionTitles();const e=this.submenuSelect.entity,t=this.hass.states[e],n=t?.attributes?.options;if(!t||!n)return;const a={icon:zb("select"),...Pb(this.hass,this.submenuSelect),...this.submenuSelect,type:"custom:frigate-card-menu-submenu",items:[]};delete a.options;const i=a.items;for(const a of n){const n=this._optionTitles?.[a]??a;i.push({state_color:!0,selected:t.state===a,enabled:!0,title:n||a,...(e.startsWith("select.")||e.startsWith("input_select."))&&{tap_action:{action:"perform-action",perform_action:e.startsWith("select.")?"select.select_option":"input_select.select_option",target:{entity_id:e},data:{option:a}}},...this.submenuSelect.options&&this.submenuSelect.options[a]})}this._generatedSubmenu=a}render(){return q` `}};e([he({attribute:!1})],Qk.prototype,"hass",void 0),e([he({attribute:!1})],Qk.prototype,"submenuSelect",void 0),e([he({attribute:!1})],Qk.prototype,"entityRegistryManager",void 0),e([pe()],Qk.prototype,"_optionTitles",void 0),Qk=e([le("frigate-card-submenu-select")],Qk);let Gk=class extends se{constructor(){super(...arguments),this._controller=new Vk(this)}set menuConfig(e){this._controller.setMenuConfig(e)}set buttons(e){this._controller.setButtons(e)}set expanded(e){this._controller.setExpanded(e)}toggleMenu(){this._controller.toggleExpanded()}_renderButton(e){if(!this.hass)return;if("custom:frigate-card-menu-submenu"===e.type)return q` this._controller.actionHandler(e)} + > + `;if("custom:frigate-card-menu-submenu-select"===e.type)return q` this._controller.actionHandler(e)} + > + `;const t=this._controller.getFreshButtonState(this.hass,e),n=Uk(t.icon);return q` this._controller.actionHandler(t,e)} + > + ${n?q``:q``} + `}render(){const e=this._controller.getMenuConfig(),t=e?.style;if(!e||"none"===t)return;const n=this._controller.getButtons("matching"),a=this._controller.getButtons("opposing");return q`
+ ${n.map((e=>this._renderButton(e)))} +
+
+ ${a.map((e=>this._renderButton(e)))} +
`}static get styles(){return o('ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n --frigate-card-menu-button-size: 40px;\n --mdc-icon-button-size: var(--frigate-card-menu-button-size);\n --mdc-icon-size: calc(var(--mdc-icon-button-size) / 2);\n pointer-events: auto;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n}\n\n/*******************************************************\n * Non-hover styles should not interact with the pointer\n *******************************************************/\n:host(:not([data-style*=hover])) {\n pointer-events: none;\n}\n\n/***********************************\n * Aligned divs: matching & opposing\n ***********************************/\ndiv.matching,\ndiv.opposing {\n display: flex;\n flex-wrap: wrap;\n flex-direction: row;\n align-items: flex-start;\n min-width: 0px;\n min-height: 0px;\n}\n\ndiv.matching {\n justify-content: flex-start;\n}\n\ndiv.opposing {\n justify-content: flex-end;\n}\n\n/********************\n * Outside menu style\n ********************/\n:host([data-style=outside]) {\n width: 100%;\n background: var(--secondary-background-color);\n}\n\n/********************************************************\n * Hack: Ensure host & div expand for column flex layouts\n ********************************************************/\n:host(:not([data-style=outside])[data-position=left]) {\n writing-mode: vertical-lr;\n}\n\n:host(:not([data-style=outside])[data-position=right]) {\n writing-mode: vertical-rl;\n}\n\n:host(:not([data-style=outside])[data-style=overlay][data-position=left]) div > *,\n:host(:not([data-style=outside])[data-style=overlay][data-position=right]) div > *,\n:host(:not([data-style=outside])[data-style*=hover][data-position=left]) div > *,\n:host(:not([data-style=outside])[data-style*=hover][data-position=right]) div > *,\n:host(:not([data-style=outside])[data-style=hidden][data-position=left]) div > *,\n:host(:not([data-style=outside])[data-style=hidden][data-position=right]) div > * {\n writing-mode: horizontal-tb;\n}\n\n/**********************\n * "Reverse" alignments\n **********************/\n:host(:not([data-style=outside])[data-position=left][data-alignment=bottom]),\n:host(:not([data-style=outside])[data-position=right][data-alignment=bottom]),\n:host([data-position=top][data-alignment=right]),\n:host([data-position=bottom][data-alignment=right]),\n:host(:not([data-style=outside])[data-position=left][data-alignment=bottom]) div,\n:host(:not([data-style=outside])[data-position=right][data-alignment=bottom]) div,\n:host([data-position=top][data-alignment=right]) div,\n:host([data-position=bottom][data-alignment=right]) div {\n flex-direction: row-reverse;\n}\n\n/****************************\n * Wrap upwards on the bottom\n ****************************/\n:host(:not([data-style=outside])[data-position=bottom]) div {\n flex-wrap: wrap-reverse;\n}\n\n/********************************************\n * Positioning for absolute based menu styles\n ********************************************/\n:host([data-style=overlay]),\n:host([data-style*=hover]),\n:host([data-style=hidden]) {\n overflow: hidden;\n width: calc(var(--frigate-card-menu-button-size) + 6px);\n height: calc(var(--frigate-card-menu-button-size) + 6px);\n}\n\n:host([data-style=overlay]),\n:host([data-style*=hover]),\n:host([data-style=hidden][expanded]) {\n overflow: visible;\n}\n\n:host([data-style=overlay][data-position=top]),\n:host([data-style=overlay][data-position=bottom]),\n:host([data-style*=hover][data-position=top]),\n:host([data-style*=hover][data-position=bottom]),\n:host([data-style=hidden][data-position=top]),\n:host([data-style=hidden][data-position=bottom]) {\n width: 100%;\n height: auto;\n}\n\n:host([data-style=overlay][data-position=top][data-alignment=left]),\n:host([data-style=overlay][data-position=bottom][data-alignment=left]),\n:host([data-style*=hover][data-position=top][data-alignment=left]),\n:host([data-style*=hover][data-position=bottom][data-alignment=left]),\n:host([data-style=hidden][data-position=top][data-alignment=left][expanded]),\n:host([data-style=hidden][data-position=bottom][data-alignment=left][expanded]) {\n background: linear-gradient(90deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}\n\n:host([data-style=overlay][data-position=top][data-alignment=right]),\n:host([data-style=overlay][data-position=bottom][data-alignment=right]),\n:host([data-style*=hover][data-position=top][data-alignment=right]),\n:host([data-style*=hover][data-position=bottom][data-alignment=right]),\n:host([data-style=hidden][data-position=top][data-alignment=right][expanded]),\n:host([data-style=hidden][data-position=bottom][data-alignment=right][expanded]) {\n background: linear-gradient(270deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}\n\n:host([data-style=overlay][data-position=left]),\n:host([data-style=overlay][data-position=right]),\n:host([data-style*=hover][data-position=left]),\n:host([data-style*=hover][data-position=right]),\n:host([data-style=hidden][data-position=left]),\n:host([data-style=hidden][data-position=right]) {\n width: auto;\n height: 100%;\n}\n\n:host([data-style=overlay][data-position=left][data-alignment=top]),\n:host([data-style=overlay][data-position=right][data-alignment=top]),\n:host([data-style*=hover][data-position=left][data-alignment=top]),\n:host([data-style*=hover][data-position=right][data-alignment=top]),\n:host([data-style=hidden][data-position=left][data-alignment=top][expanded]),\n:host([data-style=hidden][data-position=right][data-alignment=top][expanded]) {\n background: linear-gradient(180deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}\n\n:host([data-style=overlay][data-position=left][data-alignment=bottom]),\n:host([data-style=overlay][data-position=right][data-alignment=bottom]),\n:host([data-style*=hover][data-position=left][data-alignment=bottom]),\n:host([data-style*=hover][data-position=right][data-alignment=bottom]),\n:host([data-style=hidden][data-position=left][data-alignment=bottom][expanded]),\n:host([data-style=hidden][data-position=right][data-alignment=bottom][expanded]) {\n background: linear-gradient(0deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}')}};e([he({attribute:!1})],Gk.prototype,"entityRegistryManager",void 0),e([he({attribute:!1})],Gk.prototype,"hass",void 0),Gk=e([le("frigate-card-menu")],Gk);let Yk=class extends se{render(){return q` + + + + + `}static get styles(){return o("ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n position: absolute;\n width: 100%;\n height: 100%;\n pointer-events: none;\n}\n\nslot {\n position: absolute;\n display: flex;\n}\n\n/***************\n * Slot position\n ***************/\nslot[name=top] {\n top: 0px;\n}\n\nslot[name=bottom] {\n bottom: 0px;\n}\n\nslot[name=left] {\n left: 0px;\n}\n\nslot[name=right] {\n right: 0px;\n}\n\n/***********\n * Slot size\n ***********/\nslot[name=top],\nslot[name=bottom] {\n width: 100%;\n flex-direction: column;\n}\n\nslot[name=left],\nslot[name=right] {\n height: 100%;\n flex-direction: row;\n}\n\nslot[name=top],\nslot[name=left] {\n justify-content: flex-start;\n}\n\nslot[name=bottom],\nslot[name=right] {\n justify-content: flex-end;\n}\n\n/*******************************\n * Match rounded corners to card\n *******************************/\n::slotted([slot=top]:first-child),\n::slotted([slot=left]:first-child) {\n border-top-left-radius: var(--ha-card-border-radius, 4px);\n}\n\n::slotted([slot=top]:first-child),\n::slotted([slot=right]:first-child) {\n border-top-right-radius: var(--ha-card-border-radius, 4px);\n}\n\n::slotted([slot=bottom]:last-child),\n::slotted([slot=left]:last-child) {\n border-bottom-left-radius: var(--ha-card-border-radius, 4px);\n}\n\n::slotted([slot=bottom]:last-child),\n::slotted([slot=right]:last-child) {\n border-bottom-right-radius: var(--ha-card-border-radius, 4px);\n}")}};Yk=e([le("frigate-card-overlay")],Yk);class Kk{constructor(e){this._config=null,this._popupTimer=new xf,this._items=[],this._host=e}getRenderItems(){return this._items}setItems(e){const t=e.filter((e=>!!e.exclusive)),n=Ev(t.length?t:e,(e=>e.priority??50),"desc"),a=this._getSufficientValues(this._items),i=this._getSufficientValues(n);this._items=n,"popup"!==this._config?.style||Dv(a,i)||(this._show(),this._popupTimer.start(this._config.popup_seconds,(()=>this._hide()))),this._host.requestUpdate()}setConfig(e){this._config=e,this._host.style.setProperty("--frigate-card-status-bar-height",`${e.height}px`),this._host.setAttribute("data-style",e.style),this._host.setAttribute("data-position",e.position),"popup"!==this._config?.style&&this._show(),this._host.requestUpdate()}shouldRender(){return this._items.some((e=>!1!==e.enabled&&e.sufficient))}actionHandler(e,t){e.stopPropagation();const n=yf(e.detail.action,t);n&&Fk(this._host,{action:Wg(n),config:t})}_getSufficientValue(e){ +/* istanbul ignore else: cannot happen -- @preserve */ +return"custom:frigate-card-status-bar-icon"===e.type?e.icon:"custom:frigate-card-status-bar-string"===e.type?e.string:"custom:frigate-card-status-bar-image"===e.type?e.image:null}_getSufficientValues(e){return e.filter((e=>!1!==e.enabled&&e.sufficient)).map((e=>this._getSufficientValue(e)))}_show(){of(this._host,!1,"hide")}_hide(){of(this._host,!0,"hide")}}let Xk=class extends se{constructor(){super(...arguments),this._controller=new Kk(this)}willUpdate(e){e.has("config")&&this.config&&this._controller.setConfig(this.config),e.has("items")&&this._controller.setItems(this.items??[])}render(){if(this._controller.shouldRender())return q` +
+ ${this._controller.getRenderItems().map((e=>{if(!1===e.enabled)return;const t=_e({item:!0,expand:!!e.expand,action:!!Object.keys(e.actions??{}).length}),n=kf({hasHold:bf(e.actions?.hold_action),hasDoubleClick:bf(e.actions?.double_tap_action)});if("custom:frigate-card-status-bar-string"===e.type)return q`
this._controller.actionHandler(t,e.actions)} + > + ${e.string} +
`;if("custom:frigate-card-status-bar-icon"===e.type){const a=Uk(e.icon);return a?q`this._controller.actionHandler(t,e.actions)} + />`:q`this._controller.actionHandler(t,e.actions)} + >`}return"custom:frigate-card-status-bar-image"===e.type?q`this._controller.actionHandler(t,e.actions)} + />`:void 0}))} +
+ `}static get styles(){return o("ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n --mdc-icon-button-size: calc(var(--frigate-card-status-bar-height) - 6px);\n --mdc-icon-size: calc(var(--mdc-icon-button-size) / 2);\n display: block;\n width: 100%;\n pointer-events: auto;\n opacity: 1;\n transition: opacity 1s;\n}\n\n/*******************************************************\n * Non-hover styles should not interact with the pointer\n *******************************************************/\n:host(:not([data-style*=hover])) {\n pointer-events: none;\n}\n\n/***************\n * Outside style\n ***************/\n:host([data-style=outside]) {\n color: var(--primary-text-color);\n background: var(--secondary-background-color);\n}\n\n/*******************\n * Non-outside style\n *******************/\n:host(:not([data-style=outside])) {\n color: white;\n background: linear-gradient(90deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}\n\n:host([data-style=popup][hide]) {\n opacity: 0;\n}\n\n/*********************\n * Status bar contents\n *********************/\n.status {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n overflow: hidden;\n width: 100%;\n height: var(--frigate-card-status-bar-height);\n}\n\n.item {\n display: inline-block;\n margin: 3px;\n padding: 3px;\n align-content: center;\n opacity: 0.7;\n}\n\n.item:first-child {\n margin-left: 10px;\n}\n\n.item:last-child {\n margin-right: 10px;\n}\n\n.item.expand {\n flex: 1;\n}\n\n.item.action {\n cursor: pointer;\n}\n\nimg.item {\n width: var(--mdc-icon-size, 24px);\n height: var(--mdc-icon-size, 24px);\n}")}};e([he({attribute:!1})],Xk.prototype,"items",void 0),e([he({attribute:!1})],Xk.prototype,"config",void 0),Xk=e([le("frigate-card-status-bar")],Xk);function Jk(e){return"number"==typeof e}function eS(e){return"string"==typeof e}function tS(e){return"boolean"==typeof e}function nS(e){return"[object Object]"===Object.prototype.toString.call(e)}function aS(e){return Math.abs(e)}function iS(e){return Math.sign(e)}function rS(e,t){return aS(e-t)}function oS(e){return uS(e).map(Number)}function sS(e){return e[cS(e)]}function cS(e){return Math.max(0,e.length-1)}function lS(e,t){return t===cS(e)}function dS(e,t=0){return Array.from(Array(e),((e,n)=>t+n))}function uS(e){return Object.keys(e)}function hS(e,t){return[e,t].reduce(((e,t)=>(uS(t).forEach((n=>{const a=e[n],i=t[n],r=nS(a)&&nS(i);e[n]=r?hS(a,i):i})),e)),{})}function pS(e,t){return void 0!==t.MouseEvent&&e instanceof t.MouseEvent}function mS(){let e=[];const t={add:function(n,a,i,r={passive:!0}){let o;if("addEventListener"in n)n.addEventListener(a,i,r),o=()=>n.removeEventListener(a,i,r);else{const e=n;e.addListener(i),o=()=>e.removeListener(i)}return e.push(o),t},clear:function(){e=e.filter((e=>e()))}};return t}function gS(e,t,n,a){const i=mS(),r=1e3/60;let o=null,s=0,c=0;function l(e){if(!c)return;o||(o=e);const i=e-o;for(o=e,s+=i;s>=r;)n(r),s-=r;a(s/r),c&&t.requestAnimationFrame(l)}function d(){t.cancelAnimationFrame(c),o=null,s=0,c=0}return{init:function(){i.add(e,"visibilitychange",(()=>{e.hidden&&(o=null,s=0)}))},destroy:function(){d(),i.clear()},start:function(){c||(c=t.requestAnimationFrame(l))},stop:d,update:()=>n(r),render:a}}function fS(e=0,t=0){const n=aS(e-t);function a(t){return tt}function r(e){return a(e)||i(e)}const o={length:n,max:t,min:e,constrain:function(n){return r(n)?a(n)?e:t:n},reachedAny:r,reachedMax:i,reachedMin:a,removeOffset:function(e){return n?e-n*Math.ceil((e-t)/n):e}};return o}function _S(e,t,n){const{constrain:a}=fS(0,e),i=e+1;let r=o(t);function o(e){return n?aS((i+e)%i):a(e)}function s(){return r}function c(){return _S(e,s(),n)}const l={get:s,set:function(e){return r=o(e),l},add:function(e){return c().set(s()+e)},clone:c};return l}function vS(e,t,n,a,i,r,o,s,c,l,d,u,h,p,m,g,f,_,v){const{cross:y,direction:b}=e,w=["INPUT","SELECT","TEXTAREA"],x={passive:!1},C=mS(),M=mS(),k=fS(50,225).constrain(p.measure(20)),S={mouse:300,touch:400},E={mouse:500,touch:600},$=m?43:25;let A=!1,z=0,I=0,T=!1,j=!1,O=!1,D=!1;function R(e){if(!pS(e,a)&&e.touches.length>=2)return P(e);const t=r.readPoint(e),n=r.readPoint(e,y),o=rS(t,z),c=rS(n,I);if(!j&&!D){if(!e.cancelable)return P(e);if(j=o>c,!j)return P(e)}const d=r.pointerMove(e);o>g&&(O=!0),l.useFriction(.3).useDuration(.75),s.start(),i.add(b(d)),e.preventDefault()}function P(e){const t=d.byDistance(0,!1).index!==u.get(),n=r.pointerUp(e)*(m?E:S)[D?"mouse":"touch"],a=function(e,t){const n=u.add(-1*iS(e)),a=d.byDistance(e,!m).distance;return m||aS(e)=2,s&&0!==e.button)return;if(function(e){const t=e.nodeName||"";return w.includes(t)}(e.target))return;T=!0,r.pointerDown(e),l.useFriction(0).useDuration(0),i.set(o),function(){const e=D?n:t;M.add(e,"touchmove",R,x).add(e,"touchend",P).add(e,"mousemove",R,x).add(e,"mouseup",P)}(),z=r.readPoint(e),I=r.readPoint(e,y),h.emit("pointerDown")}(s)}const c=t;C.add(c,"dragstart",(e=>e.preventDefault()),x).add(c,"touchmove",(()=>{}),x).add(c,"touchend",(()=>{})).add(c,"touchstart",s).add(c,"mousedown",s).add(c,"touchcancel",P).add(c,"contextmenu",P).add(c,"click",L,!0)},destroy:function(){C.clear(),M.clear()},pointerDown:function(){return T}}}function yS(e,t){let n,a;function i(e){return e.timeStamp}function r(n,a){const i="client"+("x"===(a||e.scroll)?"X":"Y");return(pS(n,t)?n:n.touches[0])[i]}return{pointerDown:function(e){return n=e,a=e,r(e)},pointerMove:function(e){const t=r(e)-r(a),o=i(e)-i(n)>170;return a=e,o&&(n=e),t},pointerUp:function(e){if(!n||!a)return 0;const t=r(a)-r(n),o=i(e)-i(n),s=i(e)-i(a)>170,c=t/o;return o&&!s&&aS(c)>.1?c:0},readPoint:r}}function bS(e,t,n,a,i,r,o){const s=[e].concat(a);let c,l,d=[],u=!1;function h(e){return i.measureSize(o.measure(e))}return{init:function(i){r&&(l=h(e),d=a.map(h),c=new ResizeObserver((n=>{(tS(r)||r(i,n))&&function(n){for(const r of n){if(u)return;const n=r.target===e,o=a.indexOf(r.target),s=n?l:d[o];if(aS(h(n?e:a[o])-s)>=.5){i.reInit(),t.emit("resize");break}}}(n)})),n.requestAnimationFrame((()=>{s.forEach((e=>c.observe(e)))})))},destroy:function(){u=!0,c&&c.disconnect()}}}function wS(e,t,n,a,i){const r=i.measure(10),o=i.measure(50),s=fS(.1,.99);let c=!1;function l(){return!c&&(!!e.reachedAny(n.get())&&!!e.reachedAny(t.get()))}return{shouldConstrain:l,constrain:function(i){if(!l())return;const c=e.reachedMin(t.get())?"min":"max",d=aS(e[c]-t.get()),u=n.get()-t.get(),h=s.constrain(d/o);n.subtract(u*h),!i&&aS(u)e.add(i)))}};return c}function CS(e,t,n,a,i){const{reachedAny:r,removeOffset:o,constrain:s}=a;function c(e){return e.concat().sort(((e,t)=>aS(e)-aS(t)))[0]}function l(t,a){const i=[t,t+n,t-n];if(!e)return t;if(!a)return c(i);const r=i.filter((e=>iS(e)===a));return r.length?c(r):sS(i)-n}return{byDistance:function(n,a){const c=i.get()+n,{index:d,distance:u}=function(n){const a=e?o(n):s(n),i=t.map(((e,t)=>({diff:l(e-a,0),index:t}))).sort(((e,t)=>aS(e.diff)-aS(t.diff))),{index:r}=i[0];return{index:r,distance:a}}(c),h=!e&&r(c);return!a||h?{index:d,distance:n}:{index:d,distance:n+l(t[d]-u,0)}},byIndex:function(e,n){return{index:e,distance:l(t[e]-i.get(),n)}},shortcut:l}}function MS(e,t,n,a,i,r,o,s){const c={passive:!0,capture:!0};let l=0;function d(e){"Tab"===e.code&&(l=(new Date).getTime())}return{init:function(u){s&&(r.add(document,"keydown",d,!1),t.forEach(((t,d)=>{r.add(t,"focus",(t=>{(tS(s)||s(u,t))&&function(t){if((new Date).getTime()-l>10)return;o.emit("slideFocusStart"),e.scrollLeft=0;const r=n.findIndex((e=>e.includes(t)));Jk(r)&&(i.useDuration(0),a.index(r,0),o.emit("slideFocus"))}(d)}),c)})))}}}function kS(e){let t=e;function n(e){return Jk(e)?e:e.get()}const a={get:function(){return t},set:function(e){t=n(e)},add:function(e){t+=n(e)},subtract:function(e){t-=n(e)}};return a}function SS(e,t){const n="x"===e.scroll?function(e){return`translate3d(${e}px,0px,0px)`}:function(e){return`translate3d(0px,${e}px,0px)`},a=t.style;let i=!1;return{clear:function(){i||(a.transform="",t.getAttribute("style")||t.removeAttribute("style"))},to:function(t){i||(a.transform=n(e.direction(t)))},toggleActive:function(e){i=!e}}}function ES(e,t,n,a,i,r,o,s,c){const l=.5,d=oS(i),u=oS(i).reverse(),h=function(){const e=o[0];return g(m(u,e),n,!1)}().concat(function(){const e=t-o[0]-1;return g(m(d,e),-n,!0)}());function p(e,t){return e.reduce(((e,t)=>e-i[t]),t)}function m(e,t){return e.reduce(((e,n)=>p(e,t)>0?e.concat([n]):e),[])}function g(i,o,d){const u=function(e){return r.map(((n,i)=>({start:n-a[i]+l+e,end:n+t-l+e})))}(o);return i.map((t=>{const a=d?0:-n,i=d?n:0,r=d?"end":"start",o=u[t][r];return{index:t,loopPoint:o,slideLocation:kS(-1),translate:SS(e,c[t]),target:()=>s.get()>o?a:i}}))}const f={canLoop:function(){return h.every((({index:e})=>{const n=d.filter((t=>t!==e));return p(n,t)<=.1}))},clear:function(){h.forEach((e=>e.translate.clear()))},loop:function(){h.forEach((e=>{const{target:t,translate:n,slideLocation:a}=e,i=t();i!==a.get()&&(n.to(i),a.set(i))}))},loopPoints:h};return f}function $S(e,t,n){let a,i=!1;return{init:function(r){n&&(a=new MutationObserver((e=>{i||(tS(n)||n(r,e))&&function(e){for(const n of e)if("childList"===n.type){r.reInit(),t.emit("slidesChanged");break}}(e)})),a.observe(e,{childList:!0}))},destroy:function(){a&&a.disconnect(),i=!0}}}function AS(e,t,n,a){const i={};let r,o=null,s=null,c=!1;return{init:function(){r=new IntersectionObserver((e=>{c||(e.forEach((e=>{const n=t.indexOf(e.target);i[n]=e})),o=null,s=null,n.emit("slidesInView"))}),{root:e.parentElement,threshold:a}),t.forEach((e=>r.observe(e)))},destroy:function(){r&&r.disconnect(),c=!0},get:function(e=!0){if(e&&o)return o;if(!e&&s)return s;const t=function(e){return uS(i).reduce(((t,n)=>{const a=parseInt(n),{isIntersecting:r}=i[a];return(e&&r||!e&&!r)&&t.push(a),t}),[])}(e);return e&&(o=t),e||(s=t),t}}}function zS(e,t,n,a,i,r,o,s,c){const{startEdge:l,endEdge:d,direction:u}=e,h=Jk(n);const p={groupSlides:function(e){return h?function(e,t){return oS(e).filter((e=>e%t==0)).map((n=>e.slice(n,n+t)))}(e,n):function(e){return e.length?oS(e).reduce(((n,h,p)=>{const m=sS(n)||0,g=0===m,f=h===cS(e),_=i[l]-r[m][l],v=i[l]-r[h][d],y=!a&&g?u(o):0,b=aS(v-(!a&&f?u(s):0)-(_+y));return p&&b>t+c&&n.push(h),f&&n.push(e.length),n}),[]).map(((t,n,a)=>{const i=Math.max(a[n-1]||0);return e.slice(i,t)})):[]}(e)}};return p}function IS(e,t,n,a,i,r,o){const{align:s,axis:c,direction:l,startIndex:d,loop:u,duration:h,dragFree:p,dragThreshold:m,inViewThreshold:g,slidesToScroll:f,skipSnaps:_,containScroll:v,watchResize:y,watchSlides:b,watchDrag:w,watchFocus:x}=r,C={measure:function(e){const{offsetTop:t,offsetLeft:n,offsetWidth:a,offsetHeight:i}=e;return{top:t,right:n+a,bottom:t+i,left:n,width:a,height:i}}},M=C.measure(t),k=n.map(C.measure),S=function(e,t){const n="rtl"===t,a="y"===e,i=!a&&n?-1:1,r={scroll:a?"y":"x",cross:a?"x":"y",startEdge:a?"top":n?"right":"left",endEdge:a?"bottom":n?"left":"right",measureSize:function(e){const{height:t,width:n}=e;return a?t:n},direction:function(e){return e*i}};return r}(c,l),E=S.measureSize(M),$=function(e){const t={measure:function(t){return e*(t/100)}};return t}(E),A=function(e,t){const n={start:function(){return 0},center:function(e){return a(e)/2},end:a};function a(e){return t-e}const i={measure:function(a,i){return eS(e)?n[e](a):e(t,a,i)}};return i}(s,E),z=!u&&!!v,I=u||!!v,{slideSizes:T,slideSizesWithGaps:j,startGap:O,endGap:D}=function(e,t,n,a,i,r){const{measureSize:o,startEdge:s,endEdge:c}=e,l=n[0]&&i,d=function(){if(!l)return 0;const e=n[0];return aS(t[s]-e[s])}(),u=function(){if(!l)return 0;const e=r.getComputedStyle(sS(a));return parseFloat(e.getPropertyValue(`margin-${c}`))}(),h=n.map(o),p=n.map(((e,t,n)=>{const a=!t,i=lS(n,t);return a?h[t]+d:i?h[t]+u:n[t+1][s]-e[s]})).map(aS);return{slideSizes:h,slideSizesWithGaps:p,startGap:d,endGap:u}}(S,M,k,n,I,i),R=zS(S,E,f,u,M,k,O,D,2),{snaps:P,snapsAligned:L}=function(e,t,n,a,i){const{startEdge:r,endEdge:o}=e,{groupSlides:s}=i,c=s(a).map((e=>sS(e)[o]-e[0][r])).map(aS).map(t.measure),l=a.map((e=>n[r]-e[r])).map((e=>-aS(e))),d=s(l).map((e=>e[0])).map(((e,t)=>e+c[t]));return{snaps:l,snapsAligned:d}}(S,A,M,k,R),N=-sS(P)+sS(j),{snapsContained:F,scrollContainLimit:V}=function(e,t,n,a,i){const r=fS(-t+e,0),o=n.map(((e,t)=>{const{min:a,max:i}=r,o=r.constrain(e),s=!t,l=lS(n,t);return s?i:l||c(a,o)?a:c(i,o)?i:o})).map((e=>parseFloat(e.toFixed(3)))),s=function(){const e=o[0],t=sS(o);return fS(o.lastIndexOf(e),o.indexOf(t)+1)}();function c(e,t){return rS(e,t)<1}return{snapsContained:function(){if(t<=e+i)return[r.max];if("keepSnaps"===a)return o;const{min:n,max:c}=s;return o.slice(n,c)}(),scrollContainLimit:s}}(E,N,L,v,2),H=z?F:L,{limit:B}=function(e,t,n){const a=t[0];return{limit:fS(n?a-e:sS(t),a)}}(N,H,u),q=_S(cS(H),d,u),U=q.clone(),W=oS(n),Z=gS(a,i,(e=>(({dragHandler:e,scrollBody:t,scrollBounds:n,options:{loop:a}},i)=>{a||n.constrain(e.pointerDown()),t.seek(i)})(se,e)),(e=>(({scrollBody:e,translate:t,location:n,offsetLocation:a,scrollLooper:i,slideLooper:r,dragHandler:o,animation:s,eventHandler:c,scrollBounds:l,options:{loop:d}},u)=>{const h=e.settled(),p=!l.shouldConstrain(),m=d?h:h&&p;m&&!o.pointerDown()&&(s.stop(),c.emit("settle")),m||c.emit("scroll");const g=n.get()*u+Y.get()*(1-u);a.set(g),d&&(i.loop(e.direction()),r.loop()),t.to(a.get())})(se,e))),Q=H[q.get()],G=kS(Q),Y=kS(Q),K=kS(Q),X=kS(Q),J=function(e,t,n,a,i,r){let o=0,s=0,c=i,l=r,d=e.get(),u=0;function h(e){return c=e,m}function p(e){return l=e,m}const m={direction:function(){return s},duration:function(){return c},velocity:function(){return o},seek:function(t){const i=t/1e3,r=c*i,h=a.get()-e.get();let p=0;return c?(n.set(e),o+=h/r,o*=l,d+=o,e.add(o*i),p=d-u):(o=0,n.set(a),e.set(a),p=h),s=iS(p),u=d,m},settled:function(){return aS(a.get()-t.get())<.001},useBaseFriction:function(){return p(r)},useBaseDuration:function(){return h(i)},useFriction:p,useDuration:h};return m}(G,K,Y,X,h,.68),ee=CS(u,H,N,B,X),te=function(e,t,n,a,i,r,o){function s(i){const s=i.distance,c=i.index!==t.get();r.add(s),s&&(a.duration()?e.start():(e.update(),e.render(1),e.update())),c&&(n.set(t.get()),t.set(i.index),o.emit("select"))}const c={distance:function(e,t){s(i.byDistance(e,t))},index:function(e,n){const a=t.clone().set(e);s(i.byIndex(a.get(),n))}};return c}(Z,q,U,J,ee,X,o),ne=function(e){const{max:t,length:n}=e,a={get:function(e){return n?(e-t)/-n:0}};return a}(B),ae=mS(),ie=AS(t,n,o,g),{slideRegistry:re}=function(e,t,n,a,i,r){const{groupSlides:o}=i,{min:s,max:c}=a;return{slideRegistry:function(){const a=o(r),i=!e||"keepSnaps"===t;return 1===n.length?[r]:i?a:a.slice(s,c).map(((e,t,n)=>{const a=!t,i=lS(n,t);return a?dS(sS(n[0])+1):i?dS(cS(r)-sS(n)[0]+1,sS(n)[0]):e}))}()}}(z,v,H,V,R,W),oe=MS(e,n,re,te,J,ae,o,x),se={ownerDocument:a,ownerWindow:i,eventHandler:o,containerRect:M,slideRects:k,animation:Z,axis:S,dragHandler:vS(S,e,a,i,X,yS(S,i),G,Z,te,J,ee,q,o,$,p,m,_,.68,w),eventStore:ae,percentOfView:$,index:q,indexPrevious:U,limit:B,location:G,offsetLocation:K,previousLocation:Y,options:r,resizeHandler:bS(t,o,i,n,S,y,C),scrollBody:J,scrollBounds:wS(B,K,X,J,$),scrollLooper:xS(N,B,K,[G,K,Y,X]),scrollProgress:ne,scrollSnapList:H.map(ne.get),scrollSnaps:H,scrollTarget:ee,scrollTo:te,slideLooper:ES(S,E,N,T,j,P,H,K,n),slideFocus:oe,slidesHandler:$S(t,o,b),slidesInView:ie,slideIndexes:W,slideRegistry:re,slidesToScroll:R,target:X,translate:SS(S,t)};return se}const TS={align:"center",axis:"x",container:null,slides:null,containScroll:"trimSnaps",direction:"ltr",slidesToScroll:1,inViewThreshold:0,breakpoints:{},dragFree:!1,dragThreshold:10,loop:!1,skipSnaps:!1,duration:25,startIndex:0,active:!0,watchDrag:!0,watchResize:!0,watchSlides:!0,watchFocus:!0};function jS(e){function t(e,t){return hS(e,t||{})}const n={mergeOptions:t,optionsAtMedia:function(n){const a=n.breakpoints||{},i=uS(a).filter((t=>e.matchMedia(t).matches)).map((e=>a[e])).reduce(((e,n)=>t(e,n)),{});return t(n,i)},optionsMediaQueries:function(t){return t.map((e=>uS(e.breakpoints||{}))).reduce(((e,t)=>e.concat(t)),[]).map(e.matchMedia)}};return n}function OS(e,t,n){const a=e.ownerDocument,i=a.defaultView,r=jS(i),o=function(e){let t=[];const n={init:function(n,a){return t=a.filter((({options:t})=>!1!==e.optionsAtMedia(t).active)),t.forEach((t=>t.init(n,e))),a.reduce(((e,t)=>Object.assign(e,{[t.name]:t})),{})},destroy:function(){t=t.filter((e=>e.destroy()))}};return n}(r),s=mS(),c=function(){let e,t={};function n(e){return t[e]||[]}const a={init:function(t){e=t},emit:function(t){return n(t).forEach((n=>n(e,t))),a},off:function(e,i){return t[e]=n(e).filter((e=>e!==i)),a},on:function(e,i){return t[e]=n(e).concat([i]),a},clear:function(){t={}}};return a}(),{mergeOptions:l,optionsAtMedia:d,optionsMediaQueries:u}=r,{on:h,off:p,emit:m}=c,g=S;let f,_,v,y,b=!1,w=l(TS,OS.globalOptions),x=l(w),C=[];function M(t){const n=IS(e,v,y,a,i,t,c);if(t.loop&&!n.slideLooper.canLoop()){return M(Object.assign({},t,{loop:!1}))}return n}function k(t,n){b||(w=l(w,t),x=d(w),C=n||C,function(){const{container:t,slides:n}=x,a=eS(t)?e.querySelector(t):t;v=a||e.children[0];const i=eS(n)?v.querySelectorAll(n):n;y=[].slice.call(i||v.children)}(),f=M(x),u([w,...C.map((({options:e})=>e))]).forEach((e=>s.add(e,"change",S))),x.active&&(f.translate.to(f.location.get()),f.animation.init(),f.slidesInView.init(),f.slideFocus.init(z),f.eventHandler.init(z),f.resizeHandler.init(z),f.slidesHandler.init(z),f.options.loop&&f.slideLooper.loop(),v.offsetParent&&y.length&&f.dragHandler.init(z),_=o.init(z,C)))}function S(e,t){const n=A();E(),k(l({startIndex:n},e),t),c.emit("reInit")}function E(){f.dragHandler.destroy(),f.eventStore.clear(),f.translate.clear(),f.slideLooper.clear(),f.resizeHandler.destroy(),f.slidesHandler.destroy(),f.slidesInView.destroy(),f.animation.destroy(),o.destroy(),s.clear()}function $(e,t,n){x.active&&!b&&(f.scrollBody.useBaseFriction().useDuration(!0===t?0:x.duration),f.scrollTo.index(e,n||0))}function A(){return f.index.get()}const z={canScrollNext:function(){return f.index.add(1).get()!==A()},canScrollPrev:function(){return f.index.add(-1).get()!==A()},containerNode:function(){return v},internalEngine:function(){return f},destroy:function(){b||(b=!0,s.clear(),E(),c.emit("destroy"),c.clear())},off:p,on:h,emit:m,plugins:function(){return _},previousScrollSnap:function(){return f.indexPrevious.get()},reInit:g,rootNode:function(){return e},scrollNext:function(e){$(f.index.add(1).get(),e,-1)},scrollPrev:function(e){$(f.index.add(-1).get(),e,1)},scrollProgress:function(){return f.scrollProgress.get(f.location.get())},scrollSnapList:function(){return f.scrollSnapList},scrollTo:$,selectedScrollSnap:A,slideNodes:function(){return y},slidesInView:function(){return f.slidesInView.get()},slidesNotInView:function(){return f.slidesInView.get(!1)}};return k(t,n),setTimeout((()=>c.emit("init")),0),z}function DS(){return DS=Object.assign||function(e){for(var t=1;t=e;case"y":return Math.abs(i)>=e;case"z":return Math.abs(r)>=e;default:return!1}}(r,a)&&e.preventDefault(),l.isStarted?l.isMomentum&&r>Math.max(2,2*l.lastAbsDelta)&&(M(!0),x()):x(),0===r&&Object.is&&Object.is(e.deltaX,-0)?d=!0:(t=e,l.axisMovement=PS(l.axisMovement,a),l.lastAbsDelta=r,l.scrollPointsToMerge.push({axisDelta:a,timeStamp:i}),g(),p({axisDelta:a,isStart:!l.isStartPublished}),l.isStartPublished=!0,C())},g=function(){var e;l.scrollPointsToMerge.length===US?(l.scrollPoints.unshift({axisDeltaSum:l.scrollPointsToMerge.map((function(e){return e.axisDelta})).reduce(PS),timeStamp:(e=l.scrollPointsToMerge.map((function(e){return e.timeStamp})),e.reduce((function(e,t){return e+t}))/e.length)}),_(),l.scrollPointsToMerge.length=0,l.scrollPoints.length=1,l.isMomentum||b()):l.isStartPublished||f()},f=function(){var e;l.axisVelocity=(e=l.scrollPointsToMerge,e[e.length-1]).axisDelta.map((function(e){return e/l.willEndTimeout}))},_=function(){var e=l.scrollPoints,t=e[0],n=e[1];if(n&&t){var a=t.timeStamp-n.timeStamp;if(!(a<=0)){var i=t.axisDeltaSum.map((function(e){return e/a})),r=i.map((function(e,t){return e/(l.axisVelocity[t]||1)}));l.axisVelocity=i,l.accelerationFactors.push(r),v(a)}}},v=function(e){var t=10*Math.ceil(e/10)*1.2;l.isMomentum||(t=Math.max(100,2*t)),l.willEndTimeout=Math.min(1e3,Math.round(t))},y=function(e){return 0===e||e<=qS&&e>=BS},b=function(){if(l.accelerationFactors.length>=WS){if(d&&(d=!1,LS(l.axisVelocity)>=.2))return void w();var e=l.accelerationFactors.slice(-1*WS);e.every((function(e){var t=!!e.reduce((function(e,t){return e&&e<1&&e===t?1:0})),n=e.filter(y).length===e.length;return t||n}))&&w(),l.accelerationFactors=e}},w=function(){l.isMomentum=!0},x=function(){(l=GS()).isStarted=!0,l.startTime=Date.now(),n=void 0,d=!1},C=function(){clearTimeout(a),a=setTimeout(M,l.willEndTimeout)},M=function(e){void 0===e&&(e=!1),l.isStarted&&(l.isMomentum&&e?p({isEnding:!0,isMomentumCancel:!0}):p({isEnding:!0}),l.isMomentum=!1,l.isStarted=!1)},k=function(e){var t=[],n=function(n){n.removeEventListener("wheel",e),t=t.filter((function(e){return e!==n}))};return NS({observe:function(a){return a.addEventListener("wheel",e,{passive:!1}),t.push(a),function(){return n(a)}},unobserve:n,disconnect:function(){t.forEach(n)}})}(u),S=k.observe,E=k.unobserve,$=k.disconnect;return h(e),NS({on:r,off:o,observe:S,unobserve:E,disconnect:$,feedWheel:u,updateOptions:h})}var KS={active:!0,breakpoints:{},wheelDraggingClass:"is-wheel-dragging",forceWheelAxis:void 0,target:void 0};function XS(e){var t;void 0===e&&(e={});var n=function(){};var a={name:"wheelGestures",options:e,init:function(a,i){var r,o,s=i.mergeOptions,c=i.optionsAtMedia,l=s(KS,XS.globalOptions),d=s(l,e);t=c(d);var u,h=a.internalEngine(),p=null!=(r=t.target)?r:a.containerNode().parentNode,m=null!=(o=t.forceWheelAxis)?o:h.options.axis,g=YS({preventWheelAction:m,reverseSign:[!0,!0,!1]}),f=g.observe(p),_=g.on("wheel",(function(e){var a=e.axisDelta,i=a[0],r=a[1],o="x"===m?i:r,s="x"===m?r:i,c=e.isMomentum&&e.previous&&!e.previous.isMomentum,l=e.isEnding&&!e.isMomentum||c;Math.abs(o)>Math.abs(s)&&!v&&!e.isMomentum&&function(e){try{x(u=new MouseEvent("mousedown",e.event))}catch(e){return n()}v=!0,document.documentElement.addEventListener("mousemove",b,!0),document.documentElement.addEventListener("mouseup",b,!0),void document.documentElement.addEventListener("mousedown",b,!0),t.wheelDraggingClass&&p.classList.add(t.wheelDraggingClass)}(e);if(!v)return;l?function(e){v=!1,x(w("mouseup",e)),y(),t.wheelDraggingClass&&p.classList.remove(t.wheelDraggingClass)}(e):x(w("mousemove",e))})),v=!1;function y(){document.documentElement.removeEventListener("mousemove",b,!0),document.documentElement.removeEventListener("mouseup",b,!0),document.documentElement.removeEventListener("mousedown",b,!0)}function b(e){v&&e.isTrusted&&e.stopImmediatePropagation()}function w(e,t){var n,a;if(m===h.options.axis){var i=t.axisMovement;n=i[0],a=i[1]}else{var r=t.axisMovement;a=r[0],n=r[1]}if(!h.options.skipSnaps&&!h.options.dragFree){var o=h.containerRect.width,s=h.containerRect.height;n=n<0?Math.max(n,-o):Math.min(n,o),a=a<0?Math.max(a,-s):Math.min(a,s)}return new MouseEvent(e,{clientX:u.clientX+n,clientY:u.clientY+a,screenX:u.screenX+n,screenY:u.screenY+a,movementX:n,movementY:a,button:0,bubbles:!0,cancelable:!0,composed:!0})}function x(e){a.containerNode().dispatchEvent(e)}n=function(){f(),_(),y()}},destroy:function(){return n()}};return a}XS.globalOptions=void 0;class JS{constructor(e,t,n){this._mutationObserver=new MutationObserver(((e,t)=>this._refreshCarouselContents())),this._refreshCarouselContents=()=>{const e=lf(this._parent);!Dv(this._carousel.slideNodes(),e)&&(this._carousel.destroy(),this._carousel=this._createCarousel(e))},this._root=e,this._parent=t,this._direction=n?.direction??"horizontal",this._transitionEffect=n?.transitionEffect??"slide",this._startIndex=n?.startIndex??0,this._dragFree=n?.dragFree??!1,this._loop=n?.loop??!1,this._draggable=n?.dragEnabled??!0,this._plugins=n?.plugins??[],this._carousel=this._createCarousel(lf(this._parent)),t instanceof HTMLSlotElement&&t.addEventListener("slotchange",this._refreshCarouselContents),this._mutationObserver.observe(this._parent,{childList:!0})}destroy(){this._parent instanceof HTMLSlotElement&&this._parent.removeEventListener("slotchange",this._refreshCarouselContents),this._mutationObserver.disconnect(),this._carousel.destroy()}getSlide(e){return this._carousel.slideNodes()[e]??null}getSelectedSlide(){return this.getSlide(this.getSelectedIndex())}getSelectedIndex(){return this._carousel.selectedScrollSnap()}selectSlide(e){this._carousel.scrollTo(e,"none"===this._transitionEffect);const t=this.getSlide(e);t&&Bg(this._parent,"carousel:force-select",{index:e,element:t})}_createCarousel(e){const t=OS(this._root,{slides:e,axis:"horizontal"===this._direction?"x":"y",duration:20,startIndex:this._startIndex,dragFree:this._dragFree,loop:this._loop,containScroll:"trimSnaps",watchSlides:!1,watchResize:!0,watchDrag:this._draggable},[...this._plugins,...e.length>1?[XS({forceWheelAxis:"y"})]:[]]),n=()=>{const e=(()=>{const e=t.selectedScrollSnap(),n=t.slideNodes()[e]??null;return n?{index:e,element:n}:null})();e&&Bg(this._parent,"carousel:select",e)};return t.on("select",(()=>n())),t}}let eE=class extends se{constructor(){super(...arguments),this.direction="horizontal",this.dragEnabled=!0,this.selected=0,this._refParent=ze(),this._refRoot=ze(),this._carousel=null}connectedCallback(){super.connectedCallback(),this.requestUpdate()}disconnectedCallback(){this._carousel?.destroy(),this._carousel=null,super.disconnectedCallback()}willUpdate(e){e.has("direction")&&this.setAttribute("direction",this.direction);["direction","dragEnabled","dragFree","loop","plugins","transitionEffect"].some((t=>e.has(t)))&&(this._carousel?.destroy(),this._carousel=null)}render(){return q`
+ +
+
+ +
+
+ +
`}updated(e){!this._carousel&&this._refRoot.value&&this._refParent.value?this._carousel=new JS(this._refRoot.value,this._refParent.value,{direction:this.direction,dragEnabled:this.dragEnabled,dragFree:this.dragFree,startIndex:this.selected,transitionEffect:this.transitionEffect,loop:this.loop,plugins:this.plugins}):e.has("selected")&&this._carousel?.selectSlide(this.selected)}static get styles(){return o(":host {\n display: block;\n height: 100%;\n width: 100%;\n position: relative;\n}\n\n.embla {\n width: 100%;\n height: 100%;\n margin-left: auto;\n margin-right: auto;\n}\n\n.embla__container {\n display: flex;\n width: 100%;\n height: 100%;\n user-select: none;\n -webkit-touch-callout: none;\n -khtml-user-select: none;\n -webkit-tap-highlight-color: transparent;\n}\n\n:host([direction=vertical]) .embla__container {\n flex-direction: column;\n}\n\n:host([direction=horizontal]) .embla__container {\n flex-direction: row;\n}\n\n.embla__viewport {\n width: 100%;\n height: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n.embla__viewport.is-draggable {\n cursor: move;\n cursor: grab;\n}\n\n.embla__viewport.is-dragging {\n cursor: grabbing;\n}\n\n:host([direction=vertical]) ::slotted(.embla__slide) {\n margin-bottom: 5px;\n}\n\n:host([direction=horizontal]) ::slotted(.embla__slide) {\n margin-right: 5px;\n}")}};e([he({attribute:!0,reflect:!0})],eE.prototype,"direction",void 0),e([he({attribute:!0})],eE.prototype,"transitionEffect",void 0),e([he({attribute:!1})],eE.prototype,"loop",void 0),e([he({attribute:!1})],eE.prototype,"dragFree",void 0),e([he({attribute:!1})],eE.prototype,"dragEnabled",void 0),e([he({attribute:!1})],eE.prototype,"plugins",void 0),e([he({attribute:!1})],eE.prototype,"selected",void 0),eE=e([le("frigate-card-carousel")],eE); +/** + * @license + * Copyright 2019 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const tE=window,nE=tE.ShadowRoot&&(void 0===tE.ShadyCSS||tE.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,aE=Symbol(),iE=new WeakMap;let rE=class{constructor(e,t,n){if(this._$cssResult$=!0,n!==aE)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(nE&&void 0===e){const n=void 0!==t&&1===t.length;n&&(e=iE.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),n&&iE.set(t,e))}return e}toString(){return this.cssText}};const oE=(e,t)=>{nE?e.adoptedStyleSheets=t.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet)):t.forEach((t=>{const n=document.createElement("style"),a=tE.litNonce;void 0!==a&&n.setAttribute("nonce",a),n.textContent=t.cssText,e.appendChild(n)}))},sE=nE?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const n of e.cssRules)t+=n.cssText;return(e=>new rE("string"==typeof e?e:e+"",void 0,aE))(t)})(e):e +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */;var cE;const lE=window,dE=lE.trustedTypes,uE=dE?dE.emptyScript:"",hE=lE.reactiveElementPolyfillSupport,pE={toAttribute(e,t){switch(t){case Boolean:e=e?uE:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let n=e;switch(t){case Boolean:n=null!==e;break;case Number:n=null===e?null:Number(e);break;case Object:case Array:try{n=JSON.parse(e)}catch(e){n=null}}return n}},mE=(e,t)=>t!==e&&(t==t||e==e),gE={attribute:!0,type:String,converter:pE,reflect:!1,hasChanged:mE},fE="finalized";class _E extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(e){var t;this.finalize(),(null!==(t=this.h)&&void 0!==t?t:this.h=[]).push(e)}static get observedAttributes(){this.finalize();const e=[];return this.elementProperties.forEach(((t,n)=>{const a=this._$Ep(n,t);void 0!==a&&(this._$Ev.set(a,n),e.push(a))})),e}static createProperty(e,t=gE){if(t.state&&(t.attribute=!1),this.finalize(),this.elementProperties.set(e,t),!t.noAccessor&&!this.prototype.hasOwnProperty(e)){const n="symbol"==typeof e?Symbol():"__"+e,a=this.getPropertyDescriptor(e,n,t);void 0!==a&&Object.defineProperty(this.prototype,e,a)}}static getPropertyDescriptor(e,t,n){return{get(){return this[t]},set(a){const i=this[e];this[t]=a,this.requestUpdate(e,i,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)||gE}static finalize(){if(this.hasOwnProperty(fE))return!1;this[fE]=!0;const e=Object.getPrototypeOf(this);if(e.finalize(),void 0!==e.h&&(this.h=[...e.h]),this.elementProperties=new Map(e.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){const e=this.properties,t=[...Object.getOwnPropertyNames(e),...Object.getOwnPropertySymbols(e)];for(const n of t)this.createProperty(n,e[n])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const n=new Set(e.flat(1/0).reverse());for(const e of n)t.unshift(sE(e))}else void 0!==e&&t.push(sE(e));return t}static _$Ep(e,t){const n=t.attribute;return!1===n?void 0:"string"==typeof n?n:"string"==typeof e?e.toLowerCase():void 0}_$Eu(){var e;this._$E_=new Promise((e=>this.enableUpdating=e)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(e=this.constructor.h)||void 0===e||e.forEach((e=>e(this)))}addController(e){var t,n;(null!==(t=this._$ES)&&void 0!==t?t:this._$ES=[]).push(e),void 0!==this.renderRoot&&this.isConnected&&(null===(n=e.hostConnected)||void 0===n||n.call(e))}removeController(e){var t;null===(t=this._$ES)||void 0===t||t.splice(this._$ES.indexOf(e)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((e,t)=>{this.hasOwnProperty(t)&&(this._$Ei.set(t,this[t]),delete this[t])}))}createRenderRoot(){var e;const t=null!==(e=this.shadowRoot)&&void 0!==e?e:this.attachShadow(this.constructor.shadowRootOptions);return oE(t,this.constructor.elementStyles),t}connectedCallback(){var e;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostConnected)||void 0===t?void 0:t.call(e)}))}enableUpdating(e){}disconnectedCallback(){var e;null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostDisconnected)||void 0===t?void 0:t.call(e)}))}attributeChangedCallback(e,t,n){this._$AK(e,n)}_$EO(e,t,n=gE){var a;const i=this.constructor._$Ep(e,n);if(void 0!==i&&!0===n.reflect){const r=(void 0!==(null===(a=n.converter)||void 0===a?void 0:a.toAttribute)?n.converter:pE).toAttribute(t,n.type);this._$El=e,null==r?this.removeAttribute(i):this.setAttribute(i,r),this._$El=null}}_$AK(e,t){var n;const a=this.constructor,i=a._$Ev.get(e);if(void 0!==i&&this._$El!==i){const e=a.getPropertyOptions(i),r="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==(null===(n=e.converter)||void 0===n?void 0:n.fromAttribute)?e.converter:pE;this._$El=i,this[i]=r.fromAttribute(t,e.type),this._$El=null}}requestUpdate(e,t,n){let a=!0;void 0!==e&&(((n=n||this.constructor.getPropertyOptions(e)).hasChanged||mE)(this[e],t)?(this._$AL.has(e)||this._$AL.set(e,t),!0===n.reflect&&this._$El!==e&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(e,n))):a=!1),!this.isUpdatePending&&a&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(e){Promise.reject(e)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var e;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((e,t)=>this[t]=e)),this._$Ei=void 0);let t=!1;const n=this._$AL;try{t=this.shouldUpdate(n),t?(this.willUpdate(n),null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostUpdate)||void 0===t?void 0:t.call(e)})),this.update(n)):this._$Ek()}catch(e){throw t=!1,this._$Ek(),e}t&&this._$AE(n)}willUpdate(e){}_$AE(e){var t;null===(t=this._$ES)||void 0===t||t.forEach((e=>{var t;return null===(t=e.hostUpdated)||void 0===t?void 0:t.call(e)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(e){return!0}update(e){void 0!==this._$EC&&(this._$EC.forEach(((e,t)=>this._$EO(t,this[t],e))),this._$EC=void 0),this._$Ek()}updated(e){}firstUpdated(e){}}_E[fE]=!0,_E.elementProperties=new Map,_E.elementStyles=[],_E.shadowRootOptions={mode:"open"},null==hE||hE({ReactiveElement:_E}),(null!==(cE=lE.reactiveElementVersions)&&void 0!==cE?cE:lE.reactiveElementVersions=[]).push("1.6.3"); +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const vE=0,yE=Symbol();class bE{constructor(e,t,n){this.o=0,this.status=0,this.autoRun=!0,this.i=e,this.i.addController(this);const a="object"==typeof t?t:{task:t,args:n};this.t=a.task,this.h=a.args,void 0!==a.autoRun&&(this.autoRun=a.autoRun),this.taskComplete=new Promise(((e,t)=>{this.l=e,this.u=t}))}hostUpdated(){this.performTask()}async performTask(){var e;const t=null===(e=this.h)||void 0===e?void 0:e.call(this);this.shouldRun(t)&&this.run(t)}shouldRun(e){return this.autoRun&&this.v(e)}async run(e){var t;let n,a;null!=e||(e=null===(t=this.h)||void 0===t?void 0:t.call(this)),2!==this.status&&3!==this.status||(this.taskComplete=new Promise(((e,t)=>{this.l=e,this.u=t}))),this.status=1,this._=void 0,this.m=void 0,this.i.requestUpdate();const i=++this.o;try{n=await this.t(e)}catch(e){a=e}this.o===i&&(n===yE?this.status=0:(void 0===a?(this.status=2,this.l(n)):(this.status=3,this.u(a)),this.m=n,this._=a),this.i.requestUpdate())}get value(){return this.m}get error(){return this._}render(e){var t,n,a,i;switch(this.status){case 0:return null===(t=e.initial)||void 0===t?void 0:t.call(e);case 1:return null===(n=e.pending)||void 0===n?void 0:n.call(e);case 2:return null===(a=e.complete)||void 0===a?void 0:a.call(e,this.value);case 3:return null===(i=e.error)||void 0===i?void 0:i.call(e,this.error);default:this.status}}v(e){const t=this.T;return this.T=e,Array.isArray(e)&&Array.isArray(t)?e.length===t.length&&e.some(((e,n)=>mE(e,t[n]))):e!==t}}class wE{constructor(e){this._keys=e}modify(e){this._keys.forEach((t=>e.removeContext(t)))}}var xE=":host {\n display: flex;\n flex-direction: column;\n width: 100%;\n margin-left: 5px;\n padding: 5px;\n color: var(--primary-text-color);\n overflow: hidden;\n column-gap: 5%;\n}\n\ndiv.title {\n font-size: 1.2rem;\n font-weight: bold;\n}\n\ndiv.details {\n flex: 1;\n justify-content: center;\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n --mdc-icon-size: 16px;\n min-height: 0px;\n}";const CE=(e,t,n,a)=>{const i={...a?.cardWideConfig&&{cardWideConfig:a.cardWideConfig}};return q` ${t.render({initial:()=>a?.inProgressFunc?.()??xk(i),pending:()=>a?.inProgressFunc?.()??xk(i),error:t=>{Gg(t),kk(e,t)},complete:n})}`},ME=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,kE=(e,t,n,a=!0)=>new bE(e,{args:()=>[!!t(),n()],task:async([e,n])=>{const a=t();return e&&a&&n?(async(e,t)=>e&&t?t.startsWith("data:")||t.match(ME)?t:new Promise(((n,a)=>{e?e.fetchWithAuth(t).then((e=>e.blob())).then((e=>{const t=new FileReader;t.onload=()=>{const e=t.result;n("string"==typeof e?e:null)},t.onerror=e=>a(e),t.readAsDataURL(e)})):a()})):null)(a,n):null},autoRun:a}),SE=300;let EE=class extends se{constructor(){super(),this._intersectionObserver=new IntersectionObserver(this._intersectionHandler.bind(this))}connectedCallback(){this._intersectionObserver.observe(this),super.connectedCallback()}disconnectedCallback(){super.disconnectedCallback(),this._intersectionObserver.disconnect()}willUpdate(e){e.has("thumbnail")&&(this._embedThumbnailTask=kE(this,(()=>this.hass),(()=>this.thumbnail),!1),this._intersectionObserver.unobserve(this),this._intersectionObserver.observe(this))}_intersectionHandler(e){this._embedThumbnailTask?.status===vE&&e.some((e=>e.isIntersecting))&&this._embedThumbnailTask?.run()}render(){const e=q` `;return this._embedThumbnailTask?q`${this.thumbnail?CE(this,this._embedThumbnailTask,(e=>e?q``:q``),{inProgressFunc:()=>e}):e} `:e}static get styles(){return o(":host {\n display: block;\n overflow: hidden;\n aspect-ratio: 1/1;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\nimg {\n display: block;\n}\n\nimg,\nha-icon {\n display: inline-block;\n vertical-align: top;\n margin: 0;\n border-radius: var(--frigate-card-css-border-radius, var(--ha-card-border-radius, 4px));\n width: var(--frigate-card-thumbnail-size);\n max-height: 100%;\n aspect-ratio: 1/1;\n object-fit: cover;\n}\n\nha-icon {\n --mdc-icon-size: 50%;\n color: var(--primary-text-color);\n display: flex;\n justify-content: center;\n align-items: center;\n border: 1px solid rgba(255, 255, 255, 0.3);\n box-sizing: border-box;\n opacity: 0.2;\n}")}};e([he({attribute:!1})],EE.prototype,"thumbnail",void 0),e([he({attribute:!1})],EE.prototype,"hass",void 0),EE=e([le("frigate-card-thumbnail-feature-thumbnail")],EE);let $E=class extends se{render(){if(this.date)return q` + ${this.cameraMetadata?.engineLogo?q``:""} +
+
${Wu(this.date,"HH:mm")}
+
${Wu(this.date,"MMM do")}
+ ${this.showCameraTitle&&this.cameraMetadata?.title?q`
${this.cameraMetadata.title}
`:q``} +
+ `}static get styles(){return o(":host {\n display: block;\n max-width: var(--frigate-card-thumbnail-size);\n max-height: var(--frigate-card-thumbnail-size);\n aspect-ratio: 1/1;\n border: 1px solid var(--secondary-color);\n background-color: var(--secondary-background-color);\n border-radius: var(--frigate-card-css-border-radius, var(--ha-card-border-radius, 4px));\n overflow: hidden;\n padding: 10px;\n box-sizing: border-box;\n position: relative;\n}\n\nimg.background {\n display: block;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n padding: 10%;\n box-sizing: border-box;\n pointer-events: none;\n opacity: 0.1;\n}\n\ndiv.content {\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n color: var(--primary-text-color);\n}\n\ndiv {\n text-align: center;\n}\n\ndiv.title {\n font-size: 1.5rem;\n}\n\ndiv.camera {\n font-size: 0.7em;\n}")}};e([he({attribute:!1})],$E.prototype,"date",void 0),e([he({attribute:!1})],$E.prototype,"cameraMetadata",void 0),e([he({attribute:!1})],$E.prototype,"showCameraTitle",void 0),$E=e([le("frigate-card-thumbnail-feature-text")],$E);let AE=class extends se{render(){if(!this.media)return;const e=this.media.getScore(),t=e?(100*e).toFixed(2)+"%":null,n=this.media.getStartTime(),a=n?Kg(n):null,i=this.media.getEndTime(),r=n&&i?ef(n,i):null,o=this.media.inProgress()?V_("event.in_progress"):null,s=qg(this.media.getWhat()?.join(", "))??null,c=qg(this.media.getWhere()?.join(", "))??null,l=qg(this.media.getTags()?.join(", "))??null,d=s||l?(s??"")+(s&&l?": ":"")+(l??""):null,u=this.seek?Wu(this.seek,"HH:mm:ss"):null;return q` + ${d?q`
+ ${d} + ${t?q`${t}`:""} +
`:""} +
+ ${a?q`
+ + ${a} +
+ ${r||o?q`
+ + ${r?q`${r}`:""} + ${o?q`${o}`:""} +
`:""}`:""} + ${this.cameraTitle?q`
+ + ${this.cameraTitle} +
`:""} + ${c?q`
+ + ${c} +
`:q``} + ${l?q`
+ + ${l} +
`:q``} + ${u?q`
+ + ${u} +
`:q``} +
+ `}static get styles(){return o(xE)}};e([he({attribute:!1})],AE.prototype,"media",void 0),e([he({attribute:!1})],AE.prototype,"seek",void 0),e([he({attribute:!1})],AE.prototype,"cameraTitle",void 0),AE=e([le("frigate-card-thumbnail-details-event")],AE);let zE=class extends se{render(){if(!this.media)return;const e=this.media.getStartTime(),t=e?Kg(e):null,n=this.media.getEndTime(),a=e&&n?ef(e,n):null,i=this.media.inProgress()?V_("recording.in_progress"):null,r=this.seek?Wu(this.seek,"HH:mm:ss"):null,o=this.media.getEventCount();return q` + ${this.cameraTitle?q`
+ ${this.cameraTitle} +
`:""} +
+ ${t?q`
+ + ${t} +
+ ${a||i?q`
+ + ${a?q`${a}`:""} + ${i?q`${i}`:""} +
`:""}`:""} + ${r?q`
+ + ${r} +
`:q``} + ${null!==o?q`
+ + ${o} +
`:""} +
+ `}static get styles(){return o(xE)}};e([he({attribute:!1})],zE.prototype,"media",void 0),e([he({attribute:!1})],zE.prototype,"seek",void 0),e([he({attribute:!1})],zE.prototype,"cameraTitle",void 0),zE=e([le("frigate-card-thumbnail-details-recording")],zE);let IE=class extends se{constructor(){super(...arguments),this.details=!1,this.show_favorite_control=!1,this.show_timeline_control=!1,this.show_download_control=!1}render(){if(!this.media||!this.cameraManager||!this.hass)return;const e=this.media.getThumbnail(),t=this.media.getTitle()??"",n={star:!0,starred:!!this.media?.isFavorite()},a=this.show_timeline_control&&(!tx.isRecording(this.media)||this.media.getStartTime()&&this.media.getEndTime()),i=this.cameraManager?.getMediaCapabilities(this.media),r=this.show_favorite_control&&this.media&&this.hass&&i?.canFavorite,o=this.show_download_control&&this.hass&&this.media.getID()&&i?.canDownload,s=this.cameraManager.getCameraMetadata(this.media.getCameraID());return q` + ${tx.isEvent(this.media)&&e?q``:tx.isEvent(this.media)||tx.isRecording(this.media)?q``:q``} + ${r?q` {if(wf(e),this.hass&&this.media){try{await(this.cameraManager?.favoriteMedia(this.media,!this.media?.isFavorite()))}catch(e){return void Gg(e)}this.requestUpdate()}}} + />`:""} + ${this.details&&tx.isEvent(this.media)?q``:this.details&&tx.isRecording(this.media)?q``:q``} + ${a?q`{wf(e),this.viewManagerEpoch&&this.media&&this.viewManagerEpoch.manager.setViewByParameters({params:{view:"timeline",queryResults:this.viewManagerEpoch?.manager.getView()?.queryResults?.clone().selectResultIfFound((e=>e===this.media))},modifiers:[new wE(["timeline"])]})}} + >`:""} + ${o?q` {if(wf(e),this.hass&&this.cameraManager&&this.media)try{await Ew(this.hass,this.cameraManager,this.media)}catch(e){kk(this,e)}}} + >`:""} + `}static get styles(){return o(":host {\n display: flex;\n flex-direction: row;\n box-sizing: border-box;\n position: relative;\n overflow: hidden;\n transition: transform 0.2s linear;\n}\n\n:host(:not([details])) {\n aspect-ratio: 1/1;\n}\n\n:host([details]) {\n border: 1px solid var(--primary-color);\n border-radius: var(--frigate-card-css-border-radius, var(--ha-card-border-radius, 4px));\n padding: 2px;\n background-color: var(--primary-background-color, black);\n}\n\n:host(:hover) {\n transform: scale(1.04);\n}\n\nha-icon {\n position: absolute;\n border-radius: 50%;\n opacity: 0.5;\n color: var(--primary-color);\n cursor: pointer;\n transition: opacity 0.2s ease-in-out, color 0.2s ease-in-out;\n}\n\nha-icon:hover {\n opacity: 1;\n}\n\nha-icon.star {\n top: 3px;\n left: 3px;\n}\n\nha-icon.star.starred {\n color: gold;\n}\n\nha-icon.timeline {\n top: 3px;\n right: 3px;\n}\n\nha-icon.download {\n right: 3px;\n bottom: 3px;\n}\n\nfrigate-card-thumbnail-details-event,\nfrigate-card-thumbnail-details-recording {\n flex: 1;\n}")}};e([he({attribute:!1})],IE.prototype,"cameraManager",void 0),e([he({attribute:!1})],IE.prototype,"media",void 0),e([he({attribute:!0,type:Boolean})],IE.prototype,"details",void 0),e([he({attribute:!0,type:Boolean})],IE.prototype,"show_favorite_control",void 0),e([he({attribute:!0,type:Boolean})],IE.prototype,"show_timeline_control",void 0),e([he({attribute:!0,type:Boolean})],IE.prototype,"show_download_control",void 0),e([he({attribute:!1})],IE.prototype,"seek",void 0),IE=e([le("frigate-card-thumbnail")],IE);let TE=class extends se{constructor(){super(...arguments),this.fadeThumbnails=!1,this._thumbnailSlides=[]}willUpdate(e){if(e.has("config")){this.config?.size&&this.style.setProperty("--frigate-card-thumbnail-size",`${this.config.size}px`);const e=this._getDirection();e?this.setAttribute("direction",e):this.removeAttribute("direction")}["cameraManager","config","transitionEffect","viewManagerEpoch"].some((t=>e.has(t)))&&(this._thumbnailSlides=this._renderSlides()),e.has("viewManagerEpoch")&&this.style.setProperty("--frigate-card-carousel-thumbnail-opacity",this.fadeThumbnails&&null!==this._getSelectedSlide()?"0.4":"1.0")}_getSelectedSlide(){return this.viewManagerEpoch?.manager.getView()?.queryResults?.getSelectedIndex()??null}_renderSlides(){const e=[],t=this.viewManagerEpoch?.manager.getView(),n=t?.context?.mediaViewer?.seek,a=this._getSelectedSlide();for(const i of t?.queryResults?.getResults()??[]){const t=e.length,r={embla__slide:!0,"slide-selected":a===t};e.push(q` {const n=this.viewManagerEpoch?.manager.getView();n&&n.queryResults&&Bg(this,"thumbnail-carousel:tap",{queryResults:n.queryResults.clone().selectIndex(t)}),wf(e)}} + > + `)}return e}_getDirection(){return"left"===this.config?.mode||"right"===this.config?.mode?"vertical":"above"===this.config?.mode||"below"===this.config?.mode?"horizontal":null}render(){const e=this._getDirection();if(this._thumbnailSlides.length&&this.config&&e)return q` + ${this._thumbnailSlides} + `}static get styles(){return o(":host {\n --frigate-card-thumbnail-size-max: 300px;\n --frigate-card-thumbnail-details-width: calc(\n var(--frigate-card-thumbnail-size) + 200px\n );\n}\n\n:host {\n display: block;\n width: 100%;\n height: 100%;\n --frigate-card-carousel-thumbnail-opacity: 1;\n}\n\n:host([direction=vertical]) {\n height: 100%;\n}\n\n:host([direction=horizontal]) {\n height: auto;\n}\n\n.embla__slide {\n flex: 0 0 auto;\n opacity: var(--frigate-card-carousel-thumbnail-opacity);\n}\n\n.embla__slide.slide-selected {\n opacity: 1;\n}\n\nfrigate-card-thumbnail {\n width: var(--frigate-card-thumbnail-size);\n height: var(--frigate-card-thumbnail-size);\n max-width: 100%;\n}\n\nfrigate-card-thumbnail[details] {\n width: var(--frigate-card-thumbnail-details-width);\n}")}};e([he({attribute:!1})],TE.prototype,"hass",void 0),e([he({attribute:!1})],TE.prototype,"viewManagerEpoch",void 0),e([he({attribute:!1})],TE.prototype,"cameraManager",void 0),e([he({attribute:!1})],TE.prototype,"config",void 0),e([he({attribute:!1})],TE.prototype,"fadeThumbnails",void 0),TE=e([le("frigate-card-thumbnail-carousel")],TE);var jE=":host {\n width: 100%;\n height: 100%;\n display: block;\n}";const OE=document.createElement("template");OE.innerHTML='\n
\n
\n';class DE extends HTMLElement{constructor(){super();const e=this.attachShadow({mode:"open"});e.appendChild(OE.content.cloneNode(!0)),this._freeSpaceDiv=e.getElementById("fs")}connectedCallback(){this._freeSpaceDiv&&this._freeSpaceDiv.addEventListener("click",this.handleFreeSpaceDivClick),this.upgradeProperty("open")}disconnectedCallback(){document.removeEventListener("keyup",this.handleKeyUp)}upgradeProperty(e){if(this.hasOwnProperty(e)){let t=this[e];delete this[e],this[e]=t}}handleKeyUp=e=>{if(!e.altKey&&"Escape"===e.key)e.preventDefault(),this.open=!1};get open(){return this.hasAttribute("open")}set open(e){e?this.hasAttribute("open")||this.setAttribute("open",""):this.hasAttribute("open")&&this.removeAttribute("open")}static get observedAttributes(){return["open"]}attributeChangedCallback(e,t,n){"open"===e&&(this.open?(this.setAttribute("tabindex","0"),this.setAttribute("aria-disabled","false"),this.focus({preventScroll:!0}),document.addEventListener("keyup",this.handleKeyUp),this.dispatchEvent(new CustomEvent("open",{bubbles:!0}))):(this.setAttribute("tabindex","-1"),this.setAttribute("aria-disabled","true"),document.removeEventListener("keyup",this.handleKeyUp),this.dispatchEvent(new CustomEvent("close",{bubbles:!0}))))}handleFreeSpaceDivClick=()=>{this.open=!1}}customElements.define("side-drawer",DE);let RE=class extends se{constructor(){super(...arguments),this.location="left",this.control=!0,this.open=!1,this.empty=!0,this._refDrawer=ze(),this._refSlot=ze(),this._resizeObserver=new ResizeObserver((()=>this._hideDrawerIfNecessary())),this._isHoverableDevice=Yg()}firstUpdated(e){super.firstUpdated(e);const t=document.createElement("style");t.innerHTML=":host {\n width: unset;\n}\n\n#fs {\n display: none;\n width: 100%;\n inset: 0;\n}\n\n#d,\n#fs {\n height: 100%;\n position: absolute;\n}\n\n#d {\n overflow: visible;\n max-width: 90%;\n z-index: 10;\n}\n\n:host([location=right]) #d {\n left: unset;\n right: 0;\n transform: translateX(100%);\n}\n\n:host([location=right][open]) #d {\n transform: none;\n box-shadow: var(--frigate-card-css-box-shadow, 0px 0px 25px 0px black);\n}\n\n#ifs {\n height: 100%;\n}",this._refDrawer.value?.shadowRoot?.appendChild(t)}_slotChanged(){const e=this._refSlot.value?lf(this._refSlot.value):[];this._resizeObserver.disconnect();for(const t of e)this._resizeObserver.observe(t);this._hideDrawerIfNecessary()}_hideDrawerIfNecessary(){if(!this._refDrawer.value)return;const e=this._refSlot.value?lf(this._refSlot.value):null;this.empty=!e||!e.length||e.every((e=>{const t=e.getBoundingClientRect();return!t.width||!t.height}))}render(){return q` + {this.open&&(this.open=!1)}} + > + ${this.control?q` +
{wf(e),this.open=!this.open}} + > + {this._isHoverableDevice&&!this.open&&(this.open=!0)}} + > + +
+ `:""} + this._slotChanged()}> +
+ `}static get styles(){return o("side-drawer {\n background-color: var(--card-background-color);\n}\n\ndiv.control-surround {\n position: absolute;\n bottom: 50%;\n transform: translateY(50%);\n z-index: 0;\n padding-top: 20px;\n padding-bottom: 20px;\n}\n\n:host([location=left]) div.control-surround {\n padding-right: 12px;\n left: 100%;\n}\n\n:host([location=right]) div.control-surround {\n padding-left: 12px;\n right: 100%;\n}\n\n:host([empty]),\n:host([empty]) > * {\n visibility: hidden;\n}\n\n:host(:not([empty])),\n:host(:not([empty])) > * {\n visibility: visible;\n}\n\nha-icon.control {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.7);\n opacity: 0.5;\n pointer-events: all;\n --mdc-icon-size: 20px;\n padding-top: 20px;\n padding-bottom: 20px;\n transition: opacity 0.5s ease;\n}\n\n:host([open]) ha-icon.control,\nha-icon.control:hover {\n opacity: 1;\n background-color: black;\n}\n\n:host([location=left]) ha-icon.control {\n border-top-right-radius: 20px;\n border-bottom-right-radius: 20px;\n}\n\n:host([location=right]) ha-icon.control {\n border-top-left-radius: 20px;\n border-bottom-left-radius: 20px;\n}")}};e([he({attribute:!0,reflect:!0})],RE.prototype,"location",void 0),e([he({attribute:!0,reflect:!0,type:Boolean})],RE.prototype,"control",void 0),e([he({type:Boolean,reflect:!0,attribute:!0})],RE.prototype,"open",void 0),e([he({attribute:!1})],RE.prototype,"icons",void 0),e([he({type:Boolean,reflect:!0,attribute:!0})],RE.prototype,"empty",void 0),RE=e([le("frigate-card-drawer")],RE);let PE=class extends se{constructor(){super(...arguments),this._refDrawerLeft=ze(),this._refDrawerRight=ze(),this._boundDrawerHandler=this._drawerHandler.bind(this)}connectedCallback(){super.connectedCallback(),this.addEventListener("frigate-card:drawer:open",this._boundDrawerHandler),this.addEventListener("frigate-card:drawer:close",this._boundDrawerHandler)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("frigate-card:drawer:open",this._boundDrawerHandler),this.removeEventListener("frigate-card:drawer:close",this._boundDrawerHandler)}_drawerHandler(e){const t=e.detail.drawer,n=e.type.endsWith(":open");"left"===t&&this._refDrawerLeft.value?this._refDrawerLeft.value.open=n:"right"===t&&this._refDrawerRight.value&&(this._refDrawerRight.value.open=n)}render(){return q` + + + + + + + + `}static get styles(){return o(":host {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n position: relative;\n overflow: hidden;\n}\n\n::slotted(:not([slot])) {\n flex: 1;\n min-height: 0px;\n}")}};e([he({attribute:!1})],PE.prototype,"drawerIcons",void 0),PE=e([le("frigate-card-surround-basic")],PE);let LE=class extends se{_hasDrawer(){return!!this.thumbnailConfig&&["left","right"].includes(this.thumbnailConfig.mode)}willUpdate(e){this.timelineConfig?.mode&&"none"!==this.timelineConfig.mode&&import("./timeline-core-99ac5d81.js");const t=this.viewManagerEpoch?.manager.getView();e.has("viewManagerEpoch")&&(this.viewManagerEpoch?.manager.hasMajorMediaChange(this.viewManagerEpoch?.oldView)||this.viewManagerEpoch?.oldView?.displayMode!==t?.displayMode)&&(this._cameraIDsForTimeline=this._getCameraIDsForTimeline()??void 0)}_getCameraIDsForTimeline(){const e=this.viewManagerEpoch?.manager.getView();if(!e||!this.cameraManager)return null;if(e.is("live")){const t={anyCapabilities:["clips","snapshots","recordings"]};return e.supportsMultipleDisplayModes()&&e.isGrid()?this.cameraManager.getStore().getCameraIDsWithCapability(t):this.cameraManager.getStore().getAllDependentCameras(e.camera,t)}return e.isViewerView()?e.query?.getQueryCameraIDs()??null:null}render(){const e=this.viewManagerEpoch?.manager.getView();if(!this.hass||!e)return;const t=(e,t)=>{this.thumbnailConfig&&this._hasDrawer()&&Bg(e.composedPath()[0],"drawer:"+t,{drawer:this.thumbnailConfig.mode})};return q` t(e,"open")} + @frigate-card:thumbnails:close=${e=>t(e,"close")} + > + ${this.thumbnailConfig&&"none"!==this.thumbnailConfig.mode?q` {const n=e.detail.queryResults.getSelectedResult();n&&(this.viewManagerEpoch?.manager.setViewByParameters({params:{view:"media",queryResults:e.detail.queryResults,...n.getCameraID()&&{camera:n.getCameraID()}},modifiers:[new wE(["timeline","mediaViewer"])]}),t(e,"close"))}} + > + `:""} + ${this.timelineConfig&&"none"!==this.timelineConfig.mode?q` + `:""} + + `}static get styles(){return o(jE)}};e([he({attribute:!1})],LE.prototype,"hass",void 0),e([he({attribute:!1})],LE.prototype,"viewManagerEpoch",void 0),e([he({attribute:!1,hasChanged:Qg})],LE.prototype,"thumbnailConfig",void 0),e([he({attribute:!1,hasChanged:Qg})],LE.prototype,"timelineConfig",void 0),e([he({attribute:!1})],LE.prototype,"cameraManager",void 0),e([he({attribute:!1})],LE.prototype,"cardWideConfig",void 0),LE=e([le("frigate-card-surround")],LE);var NE="6.0.0",FE="Mon, 09 Dec 2024 00:16:17 GMT",VE="4590558",HE="Sun, 8 Dec 2024 16:05:13 -0800";const BE=ba.object({domain:ba.string(),version:ba.string().optional()}).passthrough(),qE="hass_web_proxy",UE=(e,t)=>`/api/${qE}/v${t??0}/?url=${encodeURIComponent(e)}`,WE=(e,t,n="media")=>(e=>e.config.components.includes(qE))(e)&&!!t[n];async function ZE(e,t,n){await e.callService(qE,"create_proxied_url",{url_pattern:t,...n&&{url_id:n.urlID,ssl_verification:n.sslVerification,ssl_ciphers:n.sslCiphers,open_limit:n.openLimit,ttl:n.ttl,allow_unauthenticated:n.allowUnauthenticated}})}const QE=()=>NE,GE=async(e,t)=>{let n=null;if(t)try{n=await(async(e,t)=>await $v(e,BE,{type:"manifest/get",integration:t}))(t,e)}catch(e){}return{detected:!!n,...n?.version&&{version:n.version}}};let YE=class extends se{constructor(){super(...arguments),this._diagnostics=null}async _fetchDiagnostics(){this._diagnostics=await(async(e,t,n)=>{const a=e&&t?await t.getMatchingDevices(e,(e=>"Frigate"===e.manufacturer)):[],i=new Map;return a?.forEach((e=>{e.config_entries.forEach((t=>{e.model&&i.set(t,e.model)}))})),{card_version:QE(),browser:navigator.userAgent,date:new Date,lang:F_(),timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,git:{hash:VE,build_date:FE,commit_date:HE},...e&&{ha_version:e.config.version},integrations:{reolink:await GE("reolink",e),frigate:{...await GE("frigate",e),...i.size&&{devices:Object.fromEntries(i)}},hass_web_proxy:await GE(qE,e),motioneye:await GE("motioneye",e)},...n&&{config:n}}})(this.hass,this.deviceRegistryManager,this.rawConfig)}shouldUpdate(){return!!this._diagnostics||(this._fetchDiagnostics().then((()=>this.requestUpdate())),!1)}render(){return wk({message:V_("error.diagnostics"),type:"diagnostics",icon:"mdi:information",context:this._diagnostics})}static get styles(){return o(jE)}};e([he({attribute:!1})],YE.prototype,"hass",void 0),e([he({attribute:!1})],YE.prototype,"deviceRegistryManager",void 0),e([he({attribute:!1})],YE.prototype,"rawConfig",void 0),e([pe()],YE.prototype,"_diagnostics",void 0),YE=e([le("frigate-card-diagnostics")],YE);let KE=class extends se{willUpdate(e){if(e.has("viewManagerEpoch")||e.has("config")){const e=this.viewManagerEpoch?.manager.getView();(e?.is("live")||this._shouldLivePreload())&&import("./index-3c9b9749.js").then((function(e){return e.i})),e?.isGalleryView()?import("./gallery-149d4f41.js"):e?.isViewerView()?import("./index-961f10b9.js"):e?.is("image")?import("./image-5371a090.js"):e?.is("timeline")&&import("./timeline-dfcd5e4d.js")}e.has("hide")&&(this.hide?this.setAttribute("hidden",""):this.removeAttribute("hidden"))}shouldUpdate(e){return!0}_shouldLivePreload(){const e=this.viewManagerEpoch?.manager.getView();return!!this.overriddenConfig?.live.preload&&!e?.is("diagnostics")}render(){if(!(this.hass&&this.overriddenConfig&&this.nonOverriddenConfig&&this.cardWideConfig))return q``;const e=this.viewManagerEpoch?.manager.getView(),t={hidden:this._shouldLivePreload()&&!e?.is("live")},n={hidden:!!this.hide},a=e?.is("live")?this.overriddenConfig.live.controls.thumbnails:e?.isViewerView()?this.overriddenConfig.media_viewer.controls.thumbnails:e?.is("timeline")?this.overriddenConfig.timeline.controls.thumbnails:void 0,i=e?.is("live")?this.overriddenConfig.live.controls.timeline:e?.isViewerView()?this.overriddenConfig.media_viewer.controls.timeline:void 0,r=e?this.cameraManager?.getStore().getCameraConfig(e.camera)??null:null;return q` + ${!this.hide&&e?.is("image")&&r?q` + `:""} + ${!this.hide&&e?.isGalleryView()?q` + `:""} + ${!this.hide&&e?.isViewerView()?q` + + + `:""} + ${!this.hide&&e?.is("timeline")?q` + `:""} + ${!this.hide&&e?.is("diagnostics")?q` + `:""} + ${this._shouldLivePreload()||!this.hide&&e?.is("live")?q` + + + `:""} + `}static get styles(){return o(":host {\n width: 100%;\n height: 100%;\n display: block;\n}\n\n:host([hidden]),\n.hidden {\n display: none;\n}")}};e([he({attribute:!1})],KE.prototype,"hass",void 0),e([he({attribute:!1})],KE.prototype,"viewManagerEpoch",void 0),e([he({attribute:!1})],KE.prototype,"cameraManager",void 0),e([he({attribute:!1})],KE.prototype,"nonOverriddenConfig",void 0),e([he({attribute:!1})],KE.prototype,"overriddenConfig",void 0),e([he({attribute:!1})],KE.prototype,"cardWideConfig",void 0),e([he({attribute:!1})],KE.prototype,"rawConfig",void 0),e([he({attribute:!1})],KE.prototype,"resolvedMediaCache",void 0),e([he({attribute:!1})],KE.prototype,"conditionsManagerEpoch",void 0),e([he({attribute:!1})],KE.prototype,"hide",void 0),e([he({attribute:!1})],KE.prototype,"microphoneManager",void 0),e([he({attribute:!1})],KE.prototype,"triggeredCameraIDs",void 0),e([he({attribute:!1})],KE.prototype,"deviceRegistryManager",void 0),KE=e([le("frigate-card-views")],KE);console.info(`%c FRIGATE-HASS-CARD \n%c ${V_("common.version")} `+QE(),"color: pink; font-weight: bold; background: black","color: white; font-weight: bold; background: dimgray"),window.customCards=window.customCards||[],window.customCards.push({type:"frigate-card",name:V_("common.frigate_card"),description:V_("common.frigate_card_description"),preview:!0,documentationURL:wa});let XE=class extends se{constructor(){super(...arguments),this._controller=new Ax(this,(()=>this._refMain.value?.scroll({top:0})),(()=>this._refMenu.value?.toggleMenu()),this._requestUpdateForComponentsThatUseConditions.bind(this)),this._menuButtonController=new zx,this._refMenu=ze(),this._refOverlay=ze(),this._refMain=ze(),this._refElements=ze(),this._refViews=ze()}get _config(){return this._controller.getConfigManager().getConfig()}get _hass(){return this._controller.getHASSManager().getHASS()}set hass(e){this._controller.getHASSManager().setHASS(e),this._refMenu.value&&(this._refMenu.value.hass=e),this._refElements.value&&(this._refElements.value.hass=e),this._refViews.value&&(this._refViews.value.hass=e)}static async getConfigElement(){return await Ax.getConfigElement()}static getStubConfig(e,t){return Ax.getStubConfig(t)}_requestUpdateForComponentsThatUseConditions(){this._refViews.value&&(this._refViews.value.conditionsManagerEpoch=this._controller.getConditionsManager().getEpoch()??void 0),this._refElements.value&&(this._refElements.value.conditionsManagerEpoch=this._controller.getConditionsManager().getEpoch()??void 0)}setConfig(e){this._controller.getConfigManager().setConfig(e)}shouldUpdate(){return!!this.isConnected&&(this._controller.getMessageManager().hasMessage()||this._controller.getInitializationManager().isInitializedMandatory()||this._controller.getInitializationManager().initializeMandatory(),!0)}_renderMenuStatusContainer(e){if(!this._config)return;const t=this._config.menu.style,n=this._config.menu.position,a=this._config.status_bar.style,i=this._config.status_bar.position;if("none"===t&&"none"===a||"overlay"===e&&"outside"===t&&"outside"===a||"overlay"!==e&&("outside"!==t||n!==e)&&("outside"!==a||i!==e))return;const r=e=>{const r="none"!==t&&("outside"===t&&"outerlay"===e||"outside"!==t&&"overlay"===e),o="none"!==a&&("outside"===a&&"outerlay"===e||"outside"!==a&&"overlay"===e),s="left"===n||"right"===n||"bottom"===n&&"hidden"===t&&"popup"!==a||"top"===n&&("hidden"!==t||"popup"===a);return q` + ${r&&s?this._renderMenu(n):""} + ${o?this._renderStatusBar(i):""} + ${r&&!s?this._renderMenu(n):""} + `};return q` + ${"overlay"===e?q`${r("overlay")}`:q`
+ ${r("outerlay")} +
`} + `}_renderMenu(e){const t=this._controller.getViewManager().getView();if(this._hass&&this._config)return q` + + `}_renderStatusBar(e){if(this._config)return q` + + `}updated(){this._controller.getInitializationManager().isInitializedMandatory()&&this._controller.getQueryStringManager().executeIfNecessary()}_renderInDialogIfNecessary(e){return this._controller.getExpandManager().isExpanded()?q` {this._controller.getExpandManager().setExpanded(!1)}} + > + ${e} + `:e}render(){if(!this._hass)return;const e={main:!0,"curve-top":"outside"!==this._config?.menu.style||"top"!==this._config?.menu.position,"curve-bottom":"outside"!==this._config?.menu.style||"top"===this._config?.menu.position},t=this._controller.getActionsManager().getMergedActions(),n=this._controller.getCameraManager(),a=!1!==this._config?.performance?.features.animated_progress_indicator&&!this._controller.getInitializationManager().wasEverInitialized()&&!this._controller.getMessageManager().hasMessage();return this._renderInDialogIfNecessary(q` this._controller.getMessageManager().setMessageIfHigherPriority(e.detail)} + @frigate-card:media:loaded=${e=>this._controller.getMediaLoadedInfoManager().set(e.detail)} + @frigate-card:media:unloaded=${()=>this._controller.getMediaLoadedInfoManager().clear()} + @frigate-card:media:volumechange=${()=>this.requestUpdate()} + @frigate-card:media:play=${()=>this.requestUpdate()} + @frigate-card:media:pause=${()=>this.requestUpdate()} + @frigate-card:focus=${()=>this.focus()} + > + ${a?q``:""} + ${this._renderMenuStatusContainer("top")} + ${this._renderMenuStatusContainer("overlay")} +
+ + ${wk(this._controller.getMessageManager().getMessage())} +
+ ${this._renderMenuStatusContainer("bottom")} + ${this._config?.elements?q` {this._menuButtonController.addDynamicMenuButton(e.detail),this.requestUpdate()}} + @frigate-card:menu:remove=${e=>{this._menuButtonController.removeDynamicMenuButton(e.detail),this.requestUpdate()}} + @frigate-card:status-bar:add=${e=>{this._controller.getStatusBarItemManager().addDynamicStatusBarItem(e.detail)}} + @frigate-card:status-bar:remove=${e=>{this._controller.getStatusBarItemManager().removeDynamicStatusBarItem(e.detail)}} + @frigate-card:conditions:evaluate=${e=>{e.evaluation=this._controller.getConditionsManager()?.evaluateConditions(e.conditions)}} + > + `:""} +
`)}static get styles(){return o(':host {\n display: block;\n position: relative;\n background-color: var(--card-background-color);\n border-radius: var(--ha-card-border-radius, 4px);\n height: var(--frigate-card-height);\n min-height: 100px;\n pointer-events: all;\n --frigate-card-expand-max-height: calc((100vh - (2 * 56px)) * 0.85);\n --frigate-card-expand-max-width: 85vw;\n --frigate-card-expand-width: none;\n --frigate-card-expand-height: none;\n --frigate-card-expand-aspect-ratio: unset;\n --frigate-card-height: auto;\n}\n\nfrigate-card-loading {\n position: absolute;\n inset: 0;\n z-index: 1;\n}\n\n:host([dark]) {\n filter: brightness(75%);\n}\n\n:host([panel]) {\n height: 100%;\n}\n\ndiv.main {\n position: relative;\n overflow: auto;\n width: 100%;\n height: 100%;\n margin: auto;\n display: block;\n transform: translateZ(0);\n scrollbar-width: none;\n -ms-overflow-style: none;\n}\n\n/* Hide scrollbar for Chrome, Safari and Opera */\ndiv.main::-webkit-scrollbar {\n display: none;\n}\n\ndiv.main.curve-top {\n border-top-left-radius: var(--ha-card-border-radius, 4px);\n border-top-right-radius: var(--ha-card-border-radius, 4px);\n}\n\ndiv.main.curve-bottom {\n border-bottom-left-radius: var(--ha-card-border-radius, 4px);\n border-bottom-right-radius: var(--ha-card-border-radius, 4px);\n}\n\nha-card {\n display: flex;\n flex-direction: column;\n margin: auto;\n border: 0px;\n overflow: visible;\n width: 100%;\n height: 100%;\n position: static;\n color: var(--secondary-text-color, white);\n}\n\n/************\n * Fullscreen\n *************/\n:host(:fullscreen) #ha-card {\n border-radius: 0px;\n box-shadow: none;\n margin: 0;\n}\n\n:host(:-webkit-full-screen) #ha-card {\n border-radius: 0px;\n box-shadow: none;\n margin: 0;\n}\n\n:host(:fullscreen) div.main,\n:host(:fullscreen) frigate-card-menu {\n border-radius: 0px;\n}\n\n:host(:-webkit-full-screen) div.main,\n:host(:-webkit-full-screen) frigate-card-menu {\n border-radius: 0px;\n}\n\n/***************\n * Expanded mode\n ***************/\nweb-dialog {\n --dialog-padding: 0px;\n --dialog-container-padding: 0px;\n --dialog-max-height: var(--frigate-card-expand-max-height);\n --dialog-max-width: var(--frigate-card-expand-max-width);\n --dialog-width: var(--frigate-card-expand-width);\n --dialog-height: var(--frigate-card-expand-height);\n --dialog-overflow-x: visible;\n --dialog-overflow-y: visible;\n max-height: 100vh;\n}\n\nweb-dialog::part(dialog) {\n aspect-ratio: var(--frigate-card-expand-aspect-ratio);\n border-radius: 0px;\n background: transparent;\n}\n\n/*************************************\n * "Outside" style for menu/status bar\n *************************************/\n.outerlay[data-position=top] > *:first-child {\n border-top-left-radius: var(--ha-card-border-radius, 4px);\n border-top-right-radius: var(--ha-card-border-radius, 4px);\n}\n\n.outerlay[data-position=bottom] > *:last-child {\n border-bottom-left-radius: var(--ha-card-border-radius, 4px);\n border-bottom-right-radius: var(--ha-card-border-radius, 4px);\n}\n\n/*******************\n * Menu hover styles\n *******************/\nfrigate-card-menu {\n z-index: 2;\n}\n\nfrigate-card-menu[data-style*=hover] {\n transition: opacity 0.5s ease;\n opacity: 0;\n}\n\nfrigate-card-menu[data-style*=hover]:hover,\n.main:hover > frigate-card-overlay > frigate-card-menu[data-style=hover-card] {\n opacity: 1;\n}\n\n/*************************\n * Status bar hover styles\n *************************/\nfrigate-card-status-bar {\n z-index: 1;\n}\n\nfrigate-card-status-bar[data-style*=hover] {\n transition: opacity 0.5s ease;\n opacity: 0;\n}\n\nfrigate-card-status-bar[data-style*=hover]:hover,\n.main:hover > frigate-card-overlay > frigate-card-status-bar[data-style=hover-card] {\n opacity: 1;\n}')}getCardSize(){return 6}};XE=e([le("frigate-card")],XE);export{Il as $,tr as A,nr as B,Zi as C,ar as D,ir as E,rr as F,Pi as G,Li as H,Ni as I,Fi as J,Vi as K,Hi as L,Bi as M,qi as N,Ui as O,gs as P,Ws as Q,ns as R,Us as S,qo as T,Fo as U,Vo as V,Ho as W,Bo as X,Bs as Y,zl as Z,e as _,se as a,dr as a$,H_ as a0,tw as a1,et as a2,nw as a3,$s as a4,Di as a5,ji as a6,Oi as a7,Ri as a8,Wi as a9,Yr as aA,oo as aB,so as aC,lo as aD,uo as aE,co as aF,ao as aG,io as aH,ro as aI,mo as aJ,_o as aK,vo as aL,ho as aM,po as aN,fo as aO,go as aP,eo as aQ,no as aR,to as aS,Xr as aT,Jr as aU,Kr as aV,Ao as aW,Io as aX,zo as aY,hr as aZ,cr as a_,es as aa,Jo as ab,Xo as ac,ts as ad,hs as ae,us as af,ms as ag,qs as ah,ps as ai,So as aj,Co as ak,To as al,Mo as am,ko as an,qr as ao,Ur as ap,Wr as aq,Zr as ar,Eo as as,$o as at,yo as au,xo as av,bo as aw,wo as ax,Qr as ay,Gr as az,pe as b,ja as b$,ur as b0,lr as b1,sr as b2,mr as b3,gr as b4,fr as b5,_r as b6,xr as b7,Hr as b8,Cr as b9,Po as bA,Wo as bB,Zo as bC,Go as bD,Yo as bE,Qo as bF,Uo as bG,vs as bH,_s as bI,ys as bJ,xs as bK,Cs as bL,As as bM,Ms as bN,Es as bO,Ss as bP,Jb as bQ,Kb as bR,Uk as bS,Ug as bT,Ma as bU,Ja as bV,Ya as bW,La as bX,Na as bY,ka as bZ,Oa as b_,kr as ba,Mr as bb,vr as bc,wr as bd,yr as be,br as bf,Sr as bg,Er as bh,$r as bi,Or as bj,zr as bk,Tr as bl,jr as bm,Ir as bn,Ar as bo,Pr as bp,Fr as bq,Vr as br,Dr as bs,Rr as bt,Nr as bu,Lr as bv,Ro as bw,Lo as bx,Oo as by,Do as bz,ew as c,wf as c$,Da as c0,Ta as c1,Ga as c2,Ua as c3,Wa as c4,Za as c5,Qa as c6,_i as c7,fi as c8,Ra as c9,ai as cA,ii as cB,Sa as cC,Ea as cD,pi as cE,hi as cF,gi as cG,mi as cH,Fd as cI,Ca as cJ,ks as cK,ge as cL,fe as cM,W as cN,xe as cO,Gw as cP,Mk as cQ,ze as cR,Yw as cS,df as cT,wk as cU,je as cV,Qg as cW,vw as cX,td as cY,kk as cZ,Ky as c_,Pa as ca,Ha as cb,qa as cc,Fa as cd,Va as ce,Ba as cf,Ka as cg,Xa as ch,ti as ci,ei as cj,yi as ck,vi as cl,bi as cm,wi as cn,$a as co,Aa as cp,za as cq,Ia as cr,ni as cs,ri as ct,oi as cu,si as cv,ci as cw,li as cx,di as cy,ui as cz,aw as d,ba as d$,My as d0,ve as d1,jE as d2,Vd as d3,nu as d4,c as d5,ux as d6,Qv as d7,hx as d8,lx as d9,wx as dA,Ck as dB,U as dC,xf as dD,Bw as dE,kE as dF,CE as dG,yf as dH,Fk as dI,vf as dJ,kf as dK,bf as dL,p_ as dM,h_ as dN,Pv as dO,Lv as dP,Ud as dQ,Vv as dR,Yg as dS,Kg as dT,Cx as dU,Gy as dV,gx as dW,su as dX,sf as dY,Fv as dZ,Hg as d_,px as da,Gg as db,Ev as dc,Wu as dd,Xg as de,Qu as df,Bg as dg,qw as dh,af as di,SE as dj,kx as dk,xk as dl,$w as dm,tx as dn,hy as dp,Bb as dq,qb as dr,WE as ds,ZE as dt,Ib as du,UE as dv,Qw as dw,Kw as dx,Xw as dy,Jw as dz,_e as e,nf as e0,$v as e1,zs as e2,Kv as e3,Wv as e4,Z_ as e5,Q_ as e6,Yv as e7,Jg as e8,tf as e9,Lu as eA,Vb as eB,Zv as eC,Nb as eD,lf as eE,qy as eF,Uy as eG,Wy as eH,pf as eI,Qy as eJ,Rg as eK,Zy as eL,s as eM,Ae as eN,ye as eO,bE as eP,me as eQ,be as eR,jb as eS,Zw as eT,Gv as ea,Hk as eb,Hv as ec,rf as ed,Tv as ee,Bk as ef,Iv as eg,zv as eh,jv as ei,qk as ej,Xd as ek,Hd as el,Gd as em,Qd as en,Yd as eo,vu as ep,Jd as eq,eu as er,yu as es,_u as et,Bd as eu,au as ev,gu as ew,Ou as ex,Nu as ey,Fu as ez,ww as f,Fb as g,Xb as h,Dv as i,Lb as j,qg as k,V_ as l,Ki as m,he as n,Gi as o,Ld as p,Qi as q,o as r,of as s,le as t,Yi as u,Hb as v,Xi as w,q as x,er as y,Ji as z}; diff --git a/config/www/community/frigate-hass-card/card-7cd05290.js.gz b/config/www/community/frigate-hass-card/card-7cd05290.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..9e6e3ec173acd41ebcc9ea0398b0d3658e4a267a GIT binary patch literal 142695 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�mIvCxjcpRl|))uS7DZxIi!>N3BO5k3DR@#pW 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 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/card-c642ee74.js b/config/www/community/frigate-hass-card/card-c642ee74.js new file mode 100644 index 00000000..a52d5fd4 --- /dev/null +++ b/config/www/community/frigate-hass-card/card-c642ee74.js @@ -0,0 +1,650 @@ +function e(e,t,n,a){var i,r=arguments.length,o=r<3?t:null===a?a=Object.getOwnPropertyDescriptor(t,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,a);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(r<3?i(o):r>3?i(t,n,o):i(t,n))||o);return r>3&&o&&Object.defineProperty(t,n,o),o}"function"==typeof SuppressedError&&SuppressedError; +/** + * @license + * Copyright 2019 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const t=globalThis,n=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,a=Symbol(),i=new WeakMap;let r=class{constructor(e,t,n){if(this._$cssResult$=!0,n!==a)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(n&&void 0===e){const n=void 0!==t&&1===t.length;n&&(e=i.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),n&&i.set(t,e))}return e}toString(){return this.cssText}};const o=e=>new r("string"==typeof e?e:e+"",void 0,a),s=(e,...t)=>{const n=1===e.length?e[0]:t.reduce(((t,n,a)=>t+(e=>{if(!0===e._$cssResult$)return e.cssText;if("number"==typeof e)return e;throw Error("Value passed to 'css' function must be a 'css' function result: "+e+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(n)+e[a+1]),e[0]);return new r(n,e,a)},c=(e,a)=>{if(n)e.adoptedStyleSheets=a.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet));else for(const n of a){const a=document.createElement("style"),i=t.litNonce;void 0!==i&&a.setAttribute("nonce",i),a.textContent=n.cssText,e.appendChild(a)}},l=n?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const n of e.cssRules)t+=n.cssText;return o(t)})(e):e +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */,{is:d,defineProperty:u,getOwnPropertyDescriptor:h,getOwnPropertyNames:p,getOwnPropertySymbols:m,getPrototypeOf:g}=Object,f=globalThis,_=f.trustedTypes,v=_?_.emptyScript:"",y=f.reactiveElementPolyfillSupport,b=(e,t)=>e,w={toAttribute(e,t){switch(t){case Boolean:e=e?v:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let n=e;switch(t){case Boolean:n=null!==e;break;case Number:n=null===e?null:Number(e);break;case Object:case Array:try{n=JSON.parse(e)}catch(e){n=null}}return n}},x=(e,t)=>!d(e,t),C={attribute:!0,type:String,converter:w,reflect:!1,hasChanged:x};Symbol.metadata??=Symbol("metadata"),f.litPropertyMetadata??=new WeakMap;class M extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=C){if(t.state&&(t.attribute=!1),this._$Ei(),this.elementProperties.set(e,t),!t.noAccessor){const n=Symbol(),a=this.getPropertyDescriptor(e,n,t);void 0!==a&&u(this.prototype,e,a)}}static getPropertyDescriptor(e,t,n){const{get:a,set:i}=h(this.prototype,e)??{get(){return this[t]},set(e){this[t]=e}};return{get(){return a?.call(this)},set(t){const r=a?.call(this);i.call(this,t),this.requestUpdate(e,r,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??C}static _$Ei(){if(this.hasOwnProperty(b("elementProperties")))return;const e=g(this);e.finalize(),void 0!==e.l&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(b("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(b("properties"))){const e=this.properties,t=[...p(e),...m(e)];for(const n of t)this.createProperty(n,e[n])}const e=this[Symbol.metadata];if(null!==e){const t=litPropertyMetadata.get(e);if(void 0!==t)for(const[e,n]of t)this.elementProperties.set(e,n)}this._$Eh=new Map;for(const[e,t]of this.elementProperties){const n=this._$Eu(e,t);void 0!==n&&this._$Eh.set(n,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const n=new Set(e.flat(1/0).reverse());for(const e of n)t.unshift(l(e))}else void 0!==e&&t.push(l(e));return t}static _$Eu(e,t){const n=t.attribute;return!1===n?void 0:"string"==typeof n?n:"string"==typeof e?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((e=>this.enableUpdating=e)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((e=>e(this)))}addController(e){(this._$EO??=new Set).add(e),void 0!==this.renderRoot&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){const e=new Map,t=this.constructor.elementProperties;for(const n of t.keys())this.hasOwnProperty(n)&&(e.set(n,this[n]),delete this[n]);e.size>0&&(this._$Ep=e)}createRenderRoot(){const e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return c(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((e=>e.hostConnected?.()))}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach((e=>e.hostDisconnected?.()))}attributeChangedCallback(e,t,n){this._$AK(e,n)}_$EC(e,t){const n=this.constructor.elementProperties.get(e),a=this.constructor._$Eu(e,n);if(void 0!==a&&!0===n.reflect){const i=(void 0!==n.converter?.toAttribute?n.converter:w).toAttribute(t,n.type);this._$Em=e,null==i?this.removeAttribute(a):this.setAttribute(a,i),this._$Em=null}}_$AK(e,t){const n=this.constructor,a=n._$Eh.get(e);if(void 0!==a&&this._$Em!==a){const e=n.getPropertyOptions(a),i="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==e.converter?.fromAttribute?e.converter:w;this._$Em=a,this[a]=i.fromAttribute(t,e.type),this._$Em=null}}requestUpdate(e,t,n){if(void 0!==e){if(n??=this.constructor.getPropertyOptions(e),!(n.hasChanged??x)(this[e],t))return;this.P(e,t,n)}!1===this.isUpdatePending&&(this._$ES=this._$ET())}P(e,t,n){this._$AL.has(e)||this._$AL.set(e,t),!0===n.reflect&&this._$Em!==e&&(this._$Ej??=new Set).add(e)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[e,t]of this._$Ep)this[e]=t;this._$Ep=void 0}const e=this.constructor.elementProperties;if(e.size>0)for(const[t,n]of e)!0!==n.wrapped||this._$AL.has(t)||void 0===this[t]||this.P(t,this[t],n)}let e=!1;const t=this._$AL;try{e=this.shouldUpdate(t),e?(this.willUpdate(t),this._$EO?.forEach((e=>e.hostUpdate?.())),this.update(t)):this._$EU()}catch(t){throw e=!1,this._$EU(),t}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach((e=>e.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Ej&&=this._$Ej.forEach((e=>this._$EC(e,this[e]))),this._$EU()}updated(e){}firstUpdated(e){}}M.elementStyles=[],M.shadowRootOptions={mode:"open"},M[b("elementProperties")]=new Map,M[b("finalized")]=new Map,y?.({ReactiveElement:M}),(f.reactiveElementVersions??=[]).push("2.0.4"); +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const k=globalThis,S=k.trustedTypes,E=S?S.createPolicy("lit-html",{createHTML:e=>e}):void 0,$="$lit$",A=`lit$${(Math.random()+"").slice(9)}$`,z="?"+A,I=`<${z}>`,T=document,j=()=>T.createComment(""),O=e=>null===e||"object"!=typeof e&&"function"!=typeof e,D=Array.isArray,R="[ \t\n\f\r]",P=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,L=/-->/g,N=/>/g,F=RegExp(`>|${R}(?:([^\\s"'>=/]+)(${R}*=${R}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),V=/'/g,H=/"/g,B=/^(?:script|style|textarea|title)$/i,q=(e=>(t,...n)=>({_$litType$:e,strings:t,values:n}))(1),U=Symbol.for("lit-noChange"),W=Symbol.for("lit-nothing"),Z=new WeakMap,Q=T.createTreeWalker(T,129);function G(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==E?E.createHTML(t):t}const Y=(e,t)=>{const n=e.length-1,a=[];let i,r=2===t?"":"",o=P;for(let t=0;t"===c[0]?(o=i??P,l=-1):void 0===c[1]?l=-2:(l=o.lastIndex-c[2].length,s=c[1],o=void 0===c[3]?F:'"'===c[3]?H:V):o===H||o===V?o=F:o===L||o===N?o=P:(o=F,i=void 0);const u=o===F&&e[t+1].startsWith("/>")?" ":"";r+=o===P?n+I:l>=0?(a.push(s),n.slice(0,l)+$+n.slice(l)+A+u):n+A+(-2===l?t:u)}return[G(e,r+(e[n]||"")+(2===t?"":"")),a]};class K{constructor({strings:e,_$litType$:t},n){let a;this.parts=[];let i=0,r=0;const o=e.length-1,s=this.parts,[c,l]=Y(e,t);if(this.el=K.createElement(c,n),Q.currentNode=this.el.content,2===t){const e=this.el.content.firstChild;e.replaceWith(...e.childNodes)}for(;null!==(a=Q.nextNode())&&s.length0){a.textContent=S?S.emptyScript:"";for(let n=0;nD(e)||"function"==typeof e?.[Symbol.iterator])(e)?this.k(e):this._(e)}S(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.S(e))}_(e){this._$AH!==W&&O(this._$AH)?this._$AA.nextSibling.data=e:this.T(T.createTextNode(e)),this._$AH=e}$(e){const{values:t,_$litType$:n}=e,a="number"==typeof n?this._$AC(e):(void 0===n.el&&(n.el=K.createElement(G(n.h,n.h[0]),this.options)),n);if(this._$AH?._$AD===a)this._$AH.p(t);else{const e=new J(a,this),n=e.u(this.options);e.p(t),this.T(n),this._$AH=e}}_$AC(e){let t=Z.get(e.strings);return void 0===t&&Z.set(e.strings,t=new K(e)),t}k(e){D(this._$AH)||(this._$AH=[],this._$AR());const t=this._$AH;let n,a=0;for(const i of e)a===t.length?t.push(n=new ee(this.S(j()),this.S(j()),this,this.options)):n=t[a],n._$AI(i),a++;a2||""!==n[0]||""!==n[1]?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=W}_$AI(e,t=this,n,a){const i=this.strings;let r=!1;if(void 0===i)e=X(this,e,t,0),r=!O(e)||e!==this._$AH&&e!==U,r&&(this._$AH=e);else{const a=e;let o,s;for(e=i[0],o=0;o{const a=n?.renderBefore??t;let i=a._$litPart$;if(void 0===i){const e=n?.renderBefore??null;a._$litPart$=i=new ee(t.insertBefore(j(),e),e,void 0,n??{})}return i._$AI(e),i})(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return U}};se._$litElement$=!0,se.finalized=!0,globalThis.litElementHydrateSupport?.({LitElement:se});const ce=globalThis.litElementPolyfillSupport;ce?.({LitElement:se}),(globalThis.litElementVersions??=[]).push("4.0.4"); +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const le=e=>(t,n)=>{void 0!==n?n.addInitializer((()=>{customElements.define(e,t)})):customElements.define(e,t)} +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */,de={attribute:!0,type:String,converter:w,reflect:!1,hasChanged:x},ue=(e=de,t,n)=>{const{kind:a,metadata:i}=n;let r=globalThis.litPropertyMetadata.get(i);if(void 0===r&&globalThis.litPropertyMetadata.set(i,r=new Map),r.set(n.name,e),"accessor"===a){const{name:a}=n;return{set(n){const i=t.get.call(this);t.set.call(this,n),this.requestUpdate(a,i,e)},init(t){return void 0!==t&&this.P(a,void 0,e),t}}}if("setter"===a){const{name:a}=n;return function(n){const i=this[a];t.call(this,n),this.requestUpdate(a,i,e)}}throw Error("Unsupported decorator location: "+a)};function he(e){return(t,n)=>"object"==typeof n?ue(e,t,n):((e,t,n)=>{const a=t.hasOwnProperty(n);return t.constructor.createProperty(n,a?{...e,wrapped:!0}:e),a?Object.getOwnPropertyDescriptor(t,n):void 0})(e,t,n) +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */}function pe(e){return he({...e,state:!0,attribute:!1})} +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const me={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},ge=e=>(...t)=>({_$litDirective$:e,values:t});let fe=class{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,n){this._$Ct=e,this._$AM=t,this._$Ci=n}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}}; +/** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const _e=ge(class extends fe{constructor(e){if(super(e),e.type!==me.ATTRIBUTE||"class"!==e.name||e.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(e){return" "+Object.keys(e).filter((t=>e[t])).join(" ")+" "}update(e,[t]){if(void 0===this.st){this.st=new Set,void 0!==e.strings&&(this.nt=new Set(e.strings.join(" ").split(/\s/).filter((e=>""!==e))));for(const e in t)t[e]&&!this.nt?.has(e)&&this.st.add(e);return this.render(t)}const n=e.element.classList;for(const e of this.st)e in t||(n.remove(e),this.st.delete(e));for(const e in t){const a=!!t[e];a===this.st.has(e)||this.nt?.has(e)||(a?(n.add(e),this.st.add(e)):(n.remove(e),this.st.delete(e)))}return U}}),ve=e=>e??W +/** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */,ye=e=>null===e||"object"!=typeof e&&"function"!=typeof e,be=e=>void 0===e.strings,we={},xe=(e,t=we)=>e._$AH=t +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */,Ce=(e,t)=>{const n=e._$AN;if(void 0===n)return!1;for(const e of n)e._$AO?.(t,!1),Ce(e,t);return!0},Me=e=>{let t,n;do{if(void 0===(t=e._$AM))break;n=t._$AN,n.delete(e),e=t}while(0===n?.size)},ke=e=>{for(let t;t=e._$AM;e=t){let n=t._$AN;if(void 0===n)t._$AN=n=new Set;else if(n.has(e))break;n.add(e),$e(t)}}; +/** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */function Se(e){void 0!==this._$AN?(Me(this),this._$AM=e,ke(this)):this._$AM=e}function Ee(e,t=!1,n=0){const a=this._$AH,i=this._$AN;if(void 0!==i&&0!==i.size)if(t)if(Array.isArray(a))for(let e=n;e{e.type==me.CHILD&&(e._$AP??=Ee,e._$AQ??=Se)};class Ae extends fe{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,t,n){super._$AT(e,t,n),ke(this),this.isConnected=e._$AU}_$AO(e,t=!0){e!==this.isConnected&&(this.isConnected=e,e?this.reconnected?.():this.disconnected?.()),t&&(Ce(this,e),Me(this))}setValue(e){if(be(this._$Ct))this._$Ct._$AI(e,this);else{const t=[...this._$Ct._$AH];t[this._$Ci]=e,this._$Ct._$AI(t,this,0)}}disconnected(){}reconnected(){}} +/** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const ze=()=>new Ie;let Ie=class{};const Te=new WeakMap,je=ge(class extends Ae{render(e){return W}update(e,[t]){const n=t!==this.Y;return n&&void 0!==this.Y&&this.rt(void 0),(n||this.lt!==this.ct)&&(this.Y=t,this.ht=e.options?.host,this.rt(this.ct=e.element)),W}rt(e){if("function"==typeof this.Y){const t=this.ht??globalThis;let n=Te.get(t);void 0===n&&(n=new WeakMap,Te.set(t,n)),void 0!==n.get(this.Y)&&this.Y.call(this.ht,void 0),n.set(this.Y,e),void 0!==e&&this.Y.call(this.ht,e)}else this.Y.value=e}get lt(){return"function"==typeof this.Y?Te.get(this.ht??globalThis)?.get(this.Y):this.Y?.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}}),Oe="important",De=" !"+Oe,Re=ge(class extends fe{constructor(e){if(super(e),e.type!==me.ATTRIBUTE||"style"!==e.name||e.strings?.length>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(e){return Object.keys(e).reduce(((t,n)=>{const a=e[n];return null==a?t:t+`${n=n.includes("-")?n:n.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${a};`}),"")}update(e,[t]){const{style:n}=e.element;if(void 0===this.ft)return this.ft=new Set(Object.keys(t)),this.render(t);for(const e of this.ft)null==t[e]&&(this.ft.delete(e),e.includes("-")?n.removeProperty(e):n[e]=null);for(const e in t){const a=t[e];if(null!=a){this.ft.add(e);const t="string"==typeof a&&a.endsWith(De);e.includes("-")||t?n.setProperty(e,t?a.slice(0,-11):a,t?Oe:""):n[e]=a}}return U}}); +/** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */function Pe(e,t,n,a=20,i=0){let r=[];if(i>=a)return r;const o=e=>{const r=e.assignedNodes().filter((e=>1===e.nodeType));return r.length>0?Pe(r[0].parentElement,t,n,a,i+1):[]},s=Array.from(e.children||[]);for(const e of s)t(e)||(n(e)&&r.push(e),null!=e.shadowRoot?r.push(...Pe(e.shadowRoot,t,n,a,i+1)):"SLOT"===e.tagName?r.push(...o(e)):r.push(...Pe(e,t,n,a,i+1)));return r}function Le(e){return e.hasAttribute("hidden")||e.hasAttribute("aria-hidden")&&"false"!==e.getAttribute("aria-hidden")||"none"===e.style.display||"0"===e.style.opacity||"hidden"===e.style.visibility||"collapse"===e.style.visibility}function Ne(e){return"-1"!==e.getAttribute("tabindex")&&!Le(e)&&!function(e){return e.hasAttribute("disabled")||e.hasAttribute("aria-disabled")&&"false"!==e.getAttribute("aria-disabled")}(e)&&(e.hasAttribute("tabindex")||(e instanceof HTMLAnchorElement||e instanceof HTMLAreaElement)&&e.hasAttribute("href")||e instanceof HTMLButtonElement||e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement||e instanceof HTMLIFrameElement)}const Fe=new Map;const Ve=document.createElement("template");Ve.innerHTML='\n\t
\n\t
\n\t\n\t
\n';class He extends HTMLElement{constructor(){super(),this.debounceId=Math.random().toString(),this._focused=!1;const e=this.attachShadow({mode:"open"});e.appendChild(Ve.content.cloneNode(!0)),this.$backup=e.querySelector("#backup"),this.$start=e.querySelector("#start"),this.$end=e.querySelector("#end"),this.focusLastElement=this.focusLastElement.bind(this),this.focusFirstElement=this.focusFirstElement.bind(this),this.onFocusIn=this.onFocusIn.bind(this),this.onFocusOut=this.onFocusOut.bind(this)}static get observedAttributes(){return["inactive"]}get inactive(){return this.hasAttribute("inactive")}set inactive(e){e?this.setAttribute("inactive",""):this.removeAttribute("inactive")}get focused(){return this._focused}connectedCallback(){this.$start.addEventListener("focus",this.focusLastElement),this.$end.addEventListener("focus",this.focusFirstElement),this.addEventListener("focusin",this.onFocusIn),this.addEventListener("focusout",this.onFocusOut),this.render()}disconnectedCallback(){this.$start.removeEventListener("focus",this.focusLastElement),this.$end.removeEventListener("focus",this.focusFirstElement),this.removeEventListener("focusin",this.onFocusIn),this.removeEventListener("focusout",this.onFocusOut)}attributeChangedCallback(){this.render()}focusFirstElement(){this.trapFocus()}focusLastElement(){this.trapFocus(!0)}getFocusableElements(){return Pe(this,Le,Ne)}trapFocus(e){if(this.inactive)return;let t=this.getFocusableElements();t.length>0?(e?t[t.length-1].focus():t[0].focus(),this.$backup.setAttribute("tabindex","-1")):(this.$backup.setAttribute("tabindex","0"),this.$backup.focus())}onFocusIn(){this.updateFocused(!0)}onFocusOut(){this.updateFocused(!1)}updateFocused(e){!function(e,t,n){const a=Fe.get(n);null!=a&&window.clearTimeout(a),Fe.set(n,window.setTimeout((()=>{e(),Fe.delete(n)}),t))}((()=>{this.focused!==e&&(this._focused=e,this.render())}),0,this.debounceId)}render(){this.$start.setAttribute("tabindex",!this.focused||this.inactive?"-1":"0"),this.$end.setAttribute("tabindex",!this.focused||this.inactive?"-1":"0"),this.focused?this.setAttribute("focused",""):this.removeAttribute("focused")}}function Be(e){return Number(e.getAttribute("data-dialog-count"))||0}function qe(e,t){e.setAttribute("data-dialog-count",t.toString())}function Ue(e=document.activeElement){return null!=e&&null!=e.shadowRoot&&null!=e.shadowRoot.activeElement?Ue(e.shadowRoot.activeElement):e}window.customElements.define("focus-trap",He);const We=document.createElement("template");We.innerHTML='\n \n
\n \n \n \n';class Ze extends HTMLElement{constructor(){super(),this.$scrollContainer=document.documentElement,this.$previousActiveElement=null;const e=this.attachShadow({mode:"open"});e.appendChild(We.content.cloneNode(!0)),this.$dialog=e.querySelector("#dialog"),this.$backdrop=e.querySelector("#backdrop"),this.onBackdropClick=this.onBackdropClick.bind(this),this.onKeyDown=this.onKeyDown.bind(this),this.setAttribute("aria-modal","true"),this.$dialog.setAttribute("role","alertdialog")}static get observedAttributes(){return["open","center"]}get open(){return this.hasAttribute("open")}set open(e){e?this.setAttribute("open",""):this.removeAttribute("open")}get center(){return this.hasAttribute("center")}set center(e){e?this.setAttribute("center",""):this.removeAttribute("center")}connectedCallback(){this.$backdrop.addEventListener("click",this.onBackdropClick)}disconnectedCallback(){this.$backdrop.removeEventListener("click",this.onBackdropClick),this.open&&this.didClose()}show(){this.open=!0}close(e){this.result=e,this.open=!1}onBackdropClick(){this.assertClosing()&&this.close()}onKeyDown(e){if("Escape"===e.code)this.assertClosing()&&(this.close(),e.stopImmediatePropagation())}assertClosing(){return this.dispatchEvent(new CustomEvent("closing",{cancelable:!0}))}didOpen(){this.$previousActiveElement=Ue(document.activeElement),requestAnimationFrame((()=>{this.$dialog.focusFirstElement()})),this.tabIndex=0,this.$scrollContainer.style.overflow="hidden",this.addEventListener("keydown",this.onKeyDown,{capture:!0,passive:!0}),qe(this.$scrollContainer,Be(this.$scrollContainer)+1),this.dispatchEvent(new CustomEvent("open"))}didClose(){this.removeEventListener("keydown",this.onKeyDown,{capture:!0}),qe(this.$scrollContainer,Math.max(0,Be(this.$scrollContainer)-1)),Be(this.$scrollContainer)<=0&&(this.$scrollContainer.style.overflow=""),this.tabIndex=-1,null!=this.$previousActiveElement&&(this.$previousActiveElement.focus(),this.$previousActiveElement=null),this.dispatchEvent(new CustomEvent("close",{detail:this.result}))}attributeChangedCallback(e,t,n){if("open"===e)this.open?this.didOpen():this.didClose()}}var Qe,Ge;function Ye(e){return e.substr(0,e.indexOf("."))}customElements.define("web-dialog",Ze),function(e){e.language="language",e.system="system",e.comma_decimal="comma_decimal",e.decimal_comma="decimal_comma",e.space_comma="space_comma",e.none="none"}(Qe||(Qe={})),function(e){e.language="language",e.system="system",e.am_pm="12",e.twenty_four="24"}(Ge||(Ge={}));var Ke,Xe,Je=["closed","locked","off"],et=function(e,t,n,a){a=a||{},n=null==n?{}:n;var i=new Event(t,{bubbles:void 0===a.bubbles||a.bubbles,cancelable:Boolean(a.cancelable),composed:void 0===a.composed||a.composed});return i.detail=n,e.dispatchEvent(i),i},tt=function(e){et(window,"haptic",e)},nt=function(e,t){return function(e,t,n){void 0===n&&(n=!0);var a,i=Ye(t),r="group"===i?"homeassistant":i;switch(i){case"lock":a=n?"unlock":"lock";break;case"cover":a=n?"open_cover":"close_cover";break;default:a=n?"turn_on":"turn_off"}return e.callService(r,a,{entity_id:t})}(e,t,Je.includes(e.states[t].state))},at=function(e,t,n,a){if(a||(a={action:"more-info"}),!a.confirmation||a.confirmation.exemptions&&a.confirmation.exemptions.some((function(e){return e.user===t.user.id}))||(tt("warning"),confirm(a.confirmation.text||"Are you sure you want to "+a.action+"?")))switch(a.action){case"more-info":(n.entity||n.camera_image)&&et(e,"hass-more-info",{entityId:n.entity?n.entity:n.camera_image});break;case"navigate":a.navigation_path&&function(e,t,n){void 0===n&&(n=!1),n?history.replaceState(null,"",t):history.pushState(null,"",t),et(window,"location-changed",{replace:n})}(0,a.navigation_path);break;case"url":a.url_path&&window.open(a.url_path);break;case"toggle":n.entity&&(nt(t,n.entity),tt("success"));break;case"perform-action":if(!a.perform_action)return void tt("failure");var i=a.perform_action.split(".",2);t.callService(i[0],i[1],a.data,a.target),tt("success");break;case"call-service":if(!a.service)return void tt("failure");var r=a.service.split(".",2);t.callService(r[0],r[1],a.data,a.target),tt("success");break;case"fire-dom-event":et(e,"ll-custom",a)}};!function(e){e.assertEqual=e=>e,e.assertIs=function(e){},e.assertNever=function(e){throw new Error},e.arrayToEnum=e=>{const t={};for(const n of e)t[n]=n;return t},e.getValidEnumValues=t=>{const n=e.objectKeys(t).filter((e=>"number"!=typeof t[t[e]])),a={};for(const e of n)a[e]=t[e];return e.objectValues(a)},e.objectValues=t=>e.objectKeys(t).map((function(e){return t[e]})),e.objectKeys="function"==typeof Object.keys?e=>Object.keys(e):e=>{const t=[];for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(const n of e)if(t(n))return n},e.isInteger="function"==typeof Number.isInteger?e=>Number.isInteger(e):e=>"number"==typeof e&&isFinite(e)&&Math.floor(e)===e,e.joinValues=function(e,t=" | "){return e.map((e=>"string"==typeof e?`'${e}'`:e)).join(t)},e.jsonStringifyReplacer=(e,t)=>"bigint"==typeof t?t.toString():t}(Ke||(Ke={})),function(e){e.mergeShapes=(e,t)=>({...e,...t})}(Xe||(Xe={}));const it=Ke.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),rt=e=>{switch(typeof e){case"undefined":return it.undefined;case"string":return it.string;case"number":return isNaN(e)?it.nan:it.number;case"boolean":return it.boolean;case"function":return it.function;case"bigint":return it.bigint;case"symbol":return it.symbol;case"object":return Array.isArray(e)?it.array:null===e?it.null:e.then&&"function"==typeof e.then&&e.catch&&"function"==typeof e.catch?it.promise:"undefined"!=typeof Map&&e instanceof Map?it.map:"undefined"!=typeof Set&&e instanceof Set?it.set:"undefined"!=typeof Date&&e instanceof Date?it.date:it.object;default:return it.unknown}},ot=Ke.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class st extends Error{constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}get errors(){return this.issues}format(e){const t=e||function(e){return e.message},n={_errors:[]},a=e=>{for(const i of e.issues)if("invalid_union"===i.code)i.unionErrors.map(a);else if("invalid_return_type"===i.code)a(i.returnTypeError);else if("invalid_arguments"===i.code)a(i.argumentsError);else if(0===i.path.length)n._errors.push(t(i));else{let e=n,a=0;for(;ae.message)){const t={},n=[];for(const a of this.issues)a.path.length>0?(t[a.path[0]]=t[a.path[0]]||[],t[a.path[0]].push(e(a))):n.push(e(a));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}st.create=e=>new st(e);const ct=(e,t)=>{let n;switch(e.code){case ot.invalid_type:n=e.received===it.undefined?"Required":`Expected ${e.expected}, received ${e.received}`;break;case ot.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,Ke.jsonStringifyReplacer)}`;break;case ot.unrecognized_keys:n=`Unrecognized key(s) in object: ${Ke.joinValues(e.keys,", ")}`;break;case ot.invalid_union:n="Invalid input";break;case ot.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Ke.joinValues(e.options)}`;break;case ot.invalid_enum_value:n=`Invalid enum value. Expected ${Ke.joinValues(e.options)}, received '${e.received}'`;break;case ot.invalid_arguments:n="Invalid function arguments";break;case ot.invalid_return_type:n="Invalid function return type";break;case ot.invalid_date:n="Invalid date";break;case ot.invalid_string:"object"==typeof e.validation?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,"number"==typeof e.validation.position&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:Ke.assertNever(e.validation):n="regex"!==e.validation?`Invalid ${e.validation}`:"Invalid";break;case ot.too_small:n="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:"date"===e.type?`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:"Invalid input";break;case ot.too_big:n="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"bigint"===e.type?`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"date"===e.type?`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:"Invalid input";break;case ot.custom:n="Invalid input";break;case ot.invalid_intersection_types:n="Intersection results could not be merged";break;case ot.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case ot.not_finite:n="Number must be finite";break;default:n=t.defaultError,Ke.assertNever(e)}return{message:n}};let lt=ct;function dt(){return lt}const ut=e=>{const{data:t,path:n,errorMaps:a,issueData:i}=e,r=[...n,...i.path||[]],o={...i,path:r};if(void 0!==i.message)return{...i,path:r,message:i.message};let s="";const c=a.filter((e=>!!e)).slice().reverse();for(const e of c)s=e(o,{data:t,defaultError:s}).message;return{...i,path:r,message:s}};function ht(e,t){const n=dt(),a=ut({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===ct?void 0:ct].filter((e=>!!e))});e.common.issues.push(a)}class pt{constructor(){this.value="valid"}dirty(){"valid"===this.value&&(this.value="dirty")}abort(){"aborted"!==this.value&&(this.value="aborted")}static mergeArray(e,t){const n=[];for(const a of t){if("aborted"===a.status)return mt;"dirty"===a.status&&e.dirty(),n.push(a.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,t){const n=[];for(const e of t){const t=await e.key,a=await e.value;n.push({key:t,value:a})}return pt.mergeObjectSync(e,n)}static mergeObjectSync(e,t){const n={};for(const a of t){const{key:t,value:i}=a;if("aborted"===t.status)return mt;if("aborted"===i.status)return mt;"dirty"===t.status&&e.dirty(),"dirty"===i.status&&e.dirty(),"__proto__"===t.value||void 0===i.value&&!a.alwaysSet||(n[t.value]=i.value)}return{status:e.value,value:n}}}const mt=Object.freeze({status:"aborted"}),gt=e=>({status:"dirty",value:e}),ft=e=>({status:"valid",value:e}),_t=e=>"aborted"===e.status,vt=e=>"dirty"===e.status,yt=e=>"valid"===e.status,bt=e=>"undefined"!=typeof Promise&&e instanceof Promise;function wt(e,t,n,a){if("a"===n&&!a)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?a:"a"===n?a.call(e):a?a.value:t.get(e)}function xt(e,t,n,a,i){if("m"===a)throw new TypeError("Private method is not writable");if("a"===a&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===a?i.call(e,n):i?i.value=n:t.set(e,n),n}var Ct,Mt,kt;"function"==typeof SuppressedError&&SuppressedError,function(e){e.errToObj=e=>"string"==typeof e?{message:e}:e||{},e.toString=e=>"string"==typeof e?e:null==e?void 0:e.message}(Ct||(Ct={}));class St{constructor(e,t,n,a){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=a}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const Et=(e,t)=>{if(yt(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new st(e.common.issues);return this._error=t,this._error}}};function $t(e){if(!e)return{};const{errorMap:t,invalid_type_error:n,required_error:a,description:i}=e;if(t&&(n||a))throw new Error('Can\'t use "invalid_type_error" or "required_error" in conjunction with custom error map.');if(t)return{errorMap:t,description:i};return{errorMap:(t,i)=>{var r,o;const{message:s}=e;return"invalid_enum_value"===t.code?{message:null!=s?s:i.defaultError}:void 0===i.data?{message:null!==(r=null!=s?s:a)&&void 0!==r?r:i.defaultError}:"invalid_type"!==t.code?{message:i.defaultError}:{message:null!==(o=null!=s?s:n)&&void 0!==o?o:i.defaultError}},description:i}}class At{constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(e){return rt(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:rt(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new pt,ctx:{common:e.parent.common,data:e.data,parsedType:rt(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(bt(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){var n;const a={common:{issues:[],async:null!==(n=null==t?void 0:t.async)&&void 0!==n&&n,contextualErrorMap:null==t?void 0:t.errorMap},path:(null==t?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:rt(e)},i=this._parseSync({data:e,path:a.path,parent:a});return Et(a,i)}async parseAsync(e,t){const n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){const n={common:{issues:[],contextualErrorMap:null==t?void 0:t.errorMap,async:!0},path:(null==t?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:rt(e)},a=this._parse({data:e,path:n.path,parent:n}),i=await(bt(a)?a:Promise.resolve(a));return Et(n,i)}refine(e,t){const n=e=>"string"==typeof t||void 0===t?{message:t}:"function"==typeof t?t(e):t;return this._refinement(((t,a)=>{const i=e(t),r=()=>a.addIssue({code:ot.custom,...n(t)});return"undefined"!=typeof Promise&&i instanceof Promise?i.then((e=>!!e||(r(),!1))):!!i||(r(),!1)}))}refinement(e,t){return this._refinement(((n,a)=>!!e(n)||(a.addIssue("function"==typeof t?t(n,a):t),!1)))}_refinement(e){return new kn({schema:this,typeName:Pn.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return Sn.create(this,this._def)}nullable(){return En.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return on.create(this,this._def)}promise(){return Mn.create(this,this._def)}or(e){return ln.create([this,e],this._def)}and(e){return pn.create(this,e,this._def)}transform(e){return new kn({...$t(this._def),schema:this,typeName:Pn.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t="function"==typeof e?e:()=>e;return new $n({...$t(this._def),innerType:this,defaultValue:t,typeName:Pn.ZodDefault})}brand(){return new Tn({typeName:Pn.ZodBranded,type:this,...$t(this._def)})}catch(e){const t="function"==typeof e?e:()=>e;return new An({...$t(this._def),innerType:this,catchValue:t,typeName:Pn.ZodCatch})}describe(e){return new(0,this.constructor)({...this._def,description:e})}pipe(e){return jn.create(this,e)}readonly(){return On.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const zt=/^c[^\s-]{8,}$/i,It=/^[0-9a-z]+$/,Tt=/^[0-9A-HJKMNP-TV-Z]{26}$/,jt=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Ot=/^[a-z0-9_-]{21}$/i,Dt=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Rt=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;let Pt;const Lt=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Nt=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,Ft=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Vt="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Ht=new RegExp(`^${Vt}$`);function Bt(e){let t="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return e.precision?t=`${t}\\.\\d{${e.precision}}`:null==e.precision&&(t=`${t}(\\.\\d+)?`),t}function qt(e){let t=`${Vt}T${Bt(e)}`;const n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function Ut(e,t){return!("v4"!==t&&t||!Lt.test(e))||!("v6"!==t&&t||!Nt.test(e))}class Wt extends At{_parse(e){this._def.coerce&&(e.data=String(e.data));if(this._getType(e)!==it.string){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.string,received:t.parsedType}),mt}const t=new pt;let n;for(const a of this._def.checks)if("min"===a.kind)e.data.lengtha.value&&(n=this._getOrReturnCtx(e,n),ht(n,{code:ot.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),t.dirty());else if("length"===a.kind){const i=e.data.length>a.value,r=e.data.lengthe.test(t)),{validation:t,code:ot.invalid_string,...Ct.errToObj(n)})}_addCheck(e){return new Wt({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...Ct.errToObj(e)})}url(e){return this._addCheck({kind:"url",...Ct.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...Ct.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...Ct.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...Ct.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...Ct.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...Ct.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...Ct.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...Ct.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...Ct.errToObj(e)})}datetime(e){var t,n;return"string"==typeof e?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:void 0===(null==e?void 0:e.precision)?null:null==e?void 0:e.precision,offset:null!==(t=null==e?void 0:e.offset)&&void 0!==t&&t,local:null!==(n=null==e?void 0:e.local)&&void 0!==n&&n,...Ct.errToObj(null==e?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return"string"==typeof e?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:void 0===(null==e?void 0:e.precision)?null:null==e?void 0:e.precision,...Ct.errToObj(null==e?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...Ct.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...Ct.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:null==t?void 0:t.position,...Ct.errToObj(null==t?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...Ct.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...Ct.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...Ct.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...Ct.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...Ct.errToObj(t)})}nonempty(e){return this.min(1,Ct.errToObj(e))}trim(){return new Wt({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Wt({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Wt({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((e=>"datetime"===e.kind))}get isDate(){return!!this._def.checks.find((e=>"date"===e.kind))}get isTime(){return!!this._def.checks.find((e=>"time"===e.kind))}get isDuration(){return!!this._def.checks.find((e=>"duration"===e.kind))}get isEmail(){return!!this._def.checks.find((e=>"email"===e.kind))}get isURL(){return!!this._def.checks.find((e=>"url"===e.kind))}get isEmoji(){return!!this._def.checks.find((e=>"emoji"===e.kind))}get isUUID(){return!!this._def.checks.find((e=>"uuid"===e.kind))}get isNANOID(){return!!this._def.checks.find((e=>"nanoid"===e.kind))}get isCUID(){return!!this._def.checks.find((e=>"cuid"===e.kind))}get isCUID2(){return!!this._def.checks.find((e=>"cuid2"===e.kind))}get isULID(){return!!this._def.checks.find((e=>"ulid"===e.kind))}get isIP(){return!!this._def.checks.find((e=>"ip"===e.kind))}get isBase64(){return!!this._def.checks.find((e=>"base64"===e.kind))}get minLength(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.valuea?n:a;return parseInt(e.toFixed(i).replace(".",""))%parseInt(t.toFixed(i).replace(".",""))/Math.pow(10,i)}Wt.create=e=>{var t;return new Wt({checks:[],typeName:Pn.ZodString,coerce:null!==(t=null==e?void 0:e.coerce)&&void 0!==t&&t,...$t(e)})};class Qt extends At{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){this._def.coerce&&(e.data=Number(e.data));if(this._getType(e)!==it.number){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.number,received:t.parsedType}),mt}let t;const n=new pt;for(const a of this._def.checks)if("int"===a.kind)Ke.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.invalid_type,expected:"integer",received:"float",message:a.message}),n.dirty());else if("min"===a.kind){(a.inclusive?e.dataa.value:e.data>=a.value)&&(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),n.dirty())}else"multipleOf"===a.kind?0!==Zt(e.data,a.value)&&(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.not_multiple_of,multipleOf:a.value,message:a.message}),n.dirty()):"finite"===a.kind?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.not_finite,message:a.message}),n.dirty()):Ke.assertNever(a);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,Ct.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Ct.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Ct.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Ct.toString(t))}setLimit(e,t,n,a){return new Qt({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Ct.toString(a)}]})}_addCheck(e){return new Qt({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:Ct.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:Ct.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:Ct.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:Ct.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:Ct.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Ct.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:Ct.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Ct.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Ct.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value"int"===e.kind||"multipleOf"===e.kind&&Ke.isInteger(e.value)))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if("finite"===n.kind||"int"===n.kind||"multipleOf"===n.kind)return!0;"min"===n.kind?(null===t||n.value>t)&&(t=n.value):"max"===n.kind&&(null===e||n.valuenew Qt({checks:[],typeName:Pn.ZodNumber,coerce:(null==e?void 0:e.coerce)||!1,...$t(e)});class Gt extends At{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){this._def.coerce&&(e.data=BigInt(e.data));if(this._getType(e)!==it.bigint){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.bigint,received:t.parsedType}),mt}let t;const n=new pt;for(const a of this._def.checks)if("min"===a.kind){(a.inclusive?e.dataa.value:e.data>=a.value)&&(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),n.dirty())}else"multipleOf"===a.kind?e.data%a.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),ht(t,{code:ot.not_multiple_of,multipleOf:a.value,message:a.message}),n.dirty()):Ke.assertNever(a);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,Ct.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Ct.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Ct.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Ct.toString(t))}setLimit(e,t,n,a){return new Gt({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Ct.toString(a)}]})}_addCheck(e){return new Gt({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:Ct.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:Ct.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:Ct.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:Ct.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Ct.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value{var t;return new Gt({checks:[],typeName:Pn.ZodBigInt,coerce:null!==(t=null==e?void 0:e.coerce)&&void 0!==t&&t,...$t(e)})};class Yt extends At{_parse(e){this._def.coerce&&(e.data=Boolean(e.data));if(this._getType(e)!==it.boolean){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.boolean,received:t.parsedType}),mt}return ft(e.data)}}Yt.create=e=>new Yt({typeName:Pn.ZodBoolean,coerce:(null==e?void 0:e.coerce)||!1,...$t(e)});class Kt extends At{_parse(e){this._def.coerce&&(e.data=new Date(e.data));if(this._getType(e)!==it.date){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.date,received:t.parsedType}),mt}if(isNaN(e.data.getTime())){return ht(this._getOrReturnCtx(e),{code:ot.invalid_date}),mt}const t=new pt;let n;for(const a of this._def.checks)"min"===a.kind?e.data.getTime()a.value&&(n=this._getOrReturnCtx(e,n),ht(n,{code:ot.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),t.dirty()):Ke.assertNever(a);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Kt({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:Ct.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:Ct.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return null!=e?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.valuenew Kt({checks:[],coerce:(null==e?void 0:e.coerce)||!1,typeName:Pn.ZodDate,...$t(e)});class Xt extends At{_parse(e){if(this._getType(e)!==it.symbol){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.symbol,received:t.parsedType}),mt}return ft(e.data)}}Xt.create=e=>new Xt({typeName:Pn.ZodSymbol,...$t(e)});class Jt extends At{_parse(e){if(this._getType(e)!==it.undefined){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.undefined,received:t.parsedType}),mt}return ft(e.data)}}Jt.create=e=>new Jt({typeName:Pn.ZodUndefined,...$t(e)});class en extends At{_parse(e){if(this._getType(e)!==it.null){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.null,received:t.parsedType}),mt}return ft(e.data)}}en.create=e=>new en({typeName:Pn.ZodNull,...$t(e)});class tn extends At{constructor(){super(...arguments),this._any=!0}_parse(e){return ft(e.data)}}tn.create=e=>new tn({typeName:Pn.ZodAny,...$t(e)});class nn extends At{constructor(){super(...arguments),this._unknown=!0}_parse(e){return ft(e.data)}}nn.create=e=>new nn({typeName:Pn.ZodUnknown,...$t(e)});class an extends At{_parse(e){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.never,received:t.parsedType}),mt}}an.create=e=>new an({typeName:Pn.ZodNever,...$t(e)});class rn extends At{_parse(e){if(this._getType(e)!==it.undefined){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.void,received:t.parsedType}),mt}return ft(e.data)}}rn.create=e=>new rn({typeName:Pn.ZodVoid,...$t(e)});class on extends At{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),a=this._def;if(t.parsedType!==it.array)return ht(t,{code:ot.invalid_type,expected:it.array,received:t.parsedType}),mt;if(null!==a.exactLength){const e=t.data.length>a.exactLength.value,i=t.data.lengtha.maxLength.value&&(ht(t,{code:ot.too_big,maximum:a.maxLength.value,type:"array",inclusive:!0,exact:!1,message:a.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map(((e,n)=>a.type._parseAsync(new St(t,e,t.path,n))))).then((e=>pt.mergeArray(n,e)));const i=[...t.data].map(((e,n)=>a.type._parseSync(new St(t,e,t.path,n))));return pt.mergeArray(n,i)}get element(){return this._def.type}min(e,t){return new on({...this._def,minLength:{value:e,message:Ct.toString(t)}})}max(e,t){return new on({...this._def,maxLength:{value:e,message:Ct.toString(t)}})}length(e,t){return new on({...this._def,exactLength:{value:e,message:Ct.toString(t)}})}nonempty(e){return this.min(1,e)}}function sn(e){if(e instanceof cn){const t={};for(const n in e.shape){const a=e.shape[n];t[n]=Sn.create(sn(a))}return new cn({...e._def,shape:()=>t})}return e instanceof on?new on({...e._def,type:sn(e.element)}):e instanceof Sn?Sn.create(sn(e.unwrap())):e instanceof En?En.create(sn(e.unwrap())):e instanceof mn?mn.create(e.items.map((e=>sn(e)))):e}on.create=(e,t)=>new on({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Pn.ZodArray,...$t(t)});class cn extends At{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(null!==this._cached)return this._cached;const e=this._def.shape(),t=Ke.objectKeys(e);return this._cached={shape:e,keys:t}}_parse(e){if(this._getType(e)!==it.object){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.object,received:t.parsedType}),mt}const{status:t,ctx:n}=this._processInputParams(e),{shape:a,keys:i}=this._getCached(),r=[];if(!(this._def.catchall instanceof an&&"strip"===this._def.unknownKeys))for(const e in n.data)i.includes(e)||r.push(e);const o=[];for(const e of i){const t=a[e],i=n.data[e];o.push({key:{status:"valid",value:e},value:t._parse(new St(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof an){const e=this._def.unknownKeys;if("passthrough"===e)for(const e of r)o.push({key:{status:"valid",value:e},value:{status:"valid",value:n.data[e]}});else if("strict"===e)r.length>0&&(ht(n,{code:ot.unrecognized_keys,keys:r}),t.dirty());else if("strip"!==e)throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const e=this._def.catchall;for(const t of r){const a=n.data[t];o.push({key:{status:"valid",value:t},value:e._parse(new St(n,a,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then((async()=>{const e=[];for(const t of o){const n=await t.key,a=await t.value;e.push({key:n,value:a,alwaysSet:t.alwaysSet})}return e})).then((e=>pt.mergeObjectSync(t,e))):pt.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(e){return Ct.errToObj,new cn({...this._def,unknownKeys:"strict",...void 0!==e?{errorMap:(t,n)=>{var a,i,r,o;const s=null!==(r=null===(i=(a=this._def).errorMap)||void 0===i?void 0:i.call(a,t,n).message)&&void 0!==r?r:n.defaultError;return"unrecognized_keys"===t.code?{message:null!==(o=Ct.errToObj(e).message)&&void 0!==o?o:s}:{message:s}}}:{}})}strip(){return new cn({...this._def,unknownKeys:"strip"})}passthrough(){return new cn({...this._def,unknownKeys:"passthrough"})}extend(e){return new cn({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new cn({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Pn.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new cn({...this._def,catchall:e})}pick(e){const t={};return Ke.objectKeys(e).forEach((n=>{e[n]&&this.shape[n]&&(t[n]=this.shape[n])})),new cn({...this._def,shape:()=>t})}omit(e){const t={};return Ke.objectKeys(this.shape).forEach((n=>{e[n]||(t[n]=this.shape[n])})),new cn({...this._def,shape:()=>t})}deepPartial(){return sn(this)}partial(e){const t={};return Ke.objectKeys(this.shape).forEach((n=>{const a=this.shape[n];e&&!e[n]?t[n]=a:t[n]=a.optional()})),new cn({...this._def,shape:()=>t})}required(e){const t={};return Ke.objectKeys(this.shape).forEach((n=>{if(e&&!e[n])t[n]=this.shape[n];else{let e=this.shape[n];for(;e instanceof Sn;)e=e._def.innerType;t[n]=e}})),new cn({...this._def,shape:()=>t})}keyof(){return wn(Ke.objectKeys(this.shape))}}cn.create=(e,t)=>new cn({shape:()=>e,unknownKeys:"strip",catchall:an.create(),typeName:Pn.ZodObject,...$t(t)}),cn.strictCreate=(e,t)=>new cn({shape:()=>e,unknownKeys:"strict",catchall:an.create(),typeName:Pn.ZodObject,...$t(t)}),cn.lazycreate=(e,t)=>new cn({shape:e,unknownKeys:"strip",catchall:an.create(),typeName:Pn.ZodObject,...$t(t)});class ln extends At{_parse(e){const{ctx:t}=this._processInputParams(e),n=this._def.options;if(t.common.async)return Promise.all(n.map((async e=>{const n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}}))).then((function(e){for(const t of e)if("valid"===t.result.status)return t.result;for(const n of e)if("dirty"===n.result.status)return t.common.issues.push(...n.ctx.common.issues),n.result;const n=e.map((e=>new st(e.ctx.common.issues)));return ht(t,{code:ot.invalid_union,unionErrors:n}),mt}));{let e;const a=[];for(const i of n){const n={...t,common:{...t.common,issues:[]},parent:null},r=i._parseSync({data:t.data,path:t.path,parent:n});if("valid"===r.status)return r;"dirty"!==r.status||e||(e={result:r,ctx:n}),n.common.issues.length&&a.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;const i=a.map((e=>new st(e)));return ht(t,{code:ot.invalid_union,unionErrors:i}),mt}}get options(){return this._def.options}}ln.create=(e,t)=>new ln({options:e,typeName:Pn.ZodUnion,...$t(t)});const dn=e=>e instanceof yn?dn(e.schema):e instanceof kn?dn(e.innerType()):e instanceof bn?[e.value]:e instanceof xn?e.options:e instanceof Cn?Ke.objectValues(e.enum):e instanceof $n?dn(e._def.innerType):e instanceof Jt?[void 0]:e instanceof en?[null]:e instanceof Sn?[void 0,...dn(e.unwrap())]:e instanceof En?[null,...dn(e.unwrap())]:e instanceof Tn||e instanceof On?dn(e.unwrap()):e instanceof An?dn(e._def.innerType):[];class un extends At{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==it.object)return ht(t,{code:ot.invalid_type,expected:it.object,received:t.parsedType}),mt;const n=this.discriminator,a=t.data[n],i=this.optionsMap.get(a);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(ht(t,{code:ot.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),mt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,n){const a=new Map;for(const n of t){const t=dn(n.shape[e]);if(!t.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(const i of t){if(a.has(i))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(i)}`);a.set(i,n)}}return new un({typeName:Pn.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:a,...$t(n)})}}function hn(e,t){const n=rt(e),a=rt(t);if(e===t)return{valid:!0,data:e};if(n===it.object&&a===it.object){const n=Ke.objectKeys(t),a=Ke.objectKeys(e).filter((e=>-1!==n.indexOf(e))),i={...e,...t};for(const n of a){const a=hn(e[n],t[n]);if(!a.valid)return{valid:!1};i[n]=a.data}return{valid:!0,data:i}}if(n===it.array&&a===it.array){if(e.length!==t.length)return{valid:!1};const n=[];for(let a=0;a{if(_t(e)||_t(a))return mt;const i=hn(e.value,a.value);return i.valid?((vt(e)||vt(a))&&t.dirty(),{status:t.value,value:i.data}):(ht(n,{code:ot.invalid_intersection_types}),mt)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then((([e,t])=>a(e,t))):a(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}pn.create=(e,t,n)=>new pn({left:e,right:t,typeName:Pn.ZodIntersection,...$t(n)});class mn extends At{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==it.array)return ht(n,{code:ot.invalid_type,expected:it.array,received:n.parsedType}),mt;if(n.data.lengththis._def.items.length&&(ht(n,{code:ot.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const a=[...n.data].map(((e,t)=>{const a=this._def.items[t]||this._def.rest;return a?a._parse(new St(n,e,n.path,t)):null})).filter((e=>!!e));return n.common.async?Promise.all(a).then((e=>pt.mergeArray(t,e))):pt.mergeArray(t,a)}get items(){return this._def.items}rest(e){return new mn({...this._def,rest:e})}}mn.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new mn({items:e,typeName:Pn.ZodTuple,rest:null,...$t(t)})};class gn extends At{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==it.object)return ht(n,{code:ot.invalid_type,expected:it.object,received:n.parsedType}),mt;const a=[],i=this._def.keyType,r=this._def.valueType;for(const e in n.data)a.push({key:i._parse(new St(n,e,n.path,e)),value:r._parse(new St(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?pt.mergeObjectAsync(t,a):pt.mergeObjectSync(t,a)}get element(){return this._def.valueType}static create(e,t,n){return new gn(t instanceof At?{keyType:e,valueType:t,typeName:Pn.ZodRecord,...$t(n)}:{keyType:Wt.create(),valueType:e,typeName:Pn.ZodRecord,...$t(t)})}}class fn extends At{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==it.map)return ht(n,{code:ot.invalid_type,expected:it.map,received:n.parsedType}),mt;const a=this._def.keyType,i=this._def.valueType,r=[...n.data.entries()].map((([e,t],r)=>({key:a._parse(new St(n,e,n.path,[r,"key"])),value:i._parse(new St(n,t,n.path,[r,"value"]))})));if(n.common.async){const e=new Map;return Promise.resolve().then((async()=>{for(const n of r){const a=await n.key,i=await n.value;if("aborted"===a.status||"aborted"===i.status)return mt;"dirty"!==a.status&&"dirty"!==i.status||t.dirty(),e.set(a.value,i.value)}return{status:t.value,value:e}}))}{const e=new Map;for(const n of r){const a=n.key,i=n.value;if("aborted"===a.status||"aborted"===i.status)return mt;"dirty"!==a.status&&"dirty"!==i.status||t.dirty(),e.set(a.value,i.value)}return{status:t.value,value:e}}}}fn.create=(e,t,n)=>new fn({valueType:t,keyType:e,typeName:Pn.ZodMap,...$t(n)});class _n extends At{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==it.set)return ht(n,{code:ot.invalid_type,expected:it.set,received:n.parsedType}),mt;const a=this._def;null!==a.minSize&&n.data.sizea.maxSize.value&&(ht(n,{code:ot.too_big,maximum:a.maxSize.value,type:"set",inclusive:!0,exact:!1,message:a.maxSize.message}),t.dirty());const i=this._def.valueType;function r(e){const n=new Set;for(const a of e){if("aborted"===a.status)return mt;"dirty"===a.status&&t.dirty(),n.add(a.value)}return{status:t.value,value:n}}const o=[...n.data.values()].map(((e,t)=>i._parse(new St(n,e,n.path,t))));return n.common.async?Promise.all(o).then((e=>r(e))):r(o)}min(e,t){return new _n({...this._def,minSize:{value:e,message:Ct.toString(t)}})}max(e,t){return new _n({...this._def,maxSize:{value:e,message:Ct.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}_n.create=(e,t)=>new _n({valueType:e,minSize:null,maxSize:null,typeName:Pn.ZodSet,...$t(t)});class vn extends At{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==it.function)return ht(t,{code:ot.invalid_type,expected:it.function,received:t.parsedType}),mt;function n(e,n){return ut({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,dt(),ct].filter((e=>!!e)),issueData:{code:ot.invalid_arguments,argumentsError:n}})}function a(e,n){return ut({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,dt(),ct].filter((e=>!!e)),issueData:{code:ot.invalid_return_type,returnTypeError:n}})}const i={errorMap:t.common.contextualErrorMap},r=t.data;if(this._def.returns instanceof Mn){const e=this;return ft((async function(...t){const o=new st([]),s=await e._def.args.parseAsync(t,i).catch((e=>{throw o.addIssue(n(t,e)),o})),c=await Reflect.apply(r,this,s),l=await e._def.returns._def.type.parseAsync(c,i).catch((e=>{throw o.addIssue(a(c,e)),o}));return l}))}{const e=this;return ft((function(...t){const o=e._def.args.safeParse(t,i);if(!o.success)throw new st([n(t,o.error)]);const s=Reflect.apply(r,this,o.data),c=e._def.returns.safeParse(s,i);if(!c.success)throw new st([a(s,c.error)]);return c.data}))}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new vn({...this._def,args:mn.create(e).rest(nn.create())})}returns(e){return new vn({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,n){return new vn({args:e||mn.create([]).rest(nn.create()),returns:t||nn.create(),typeName:Pn.ZodFunction,...$t(n)})}}class yn extends At{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}yn.create=(e,t)=>new yn({getter:e,typeName:Pn.ZodLazy,...$t(t)});class bn extends At{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return ht(t,{received:t.data,code:ot.invalid_literal,expected:this._def.value}),mt}return{status:"valid",value:e.data}}get value(){return this._def.value}}function wn(e,t){return new xn({values:e,typeName:Pn.ZodEnum,...$t(t)})}bn.create=(e,t)=>new bn({value:e,typeName:Pn.ZodLiteral,...$t(t)});class xn extends At{constructor(){super(...arguments),Mt.set(this,void 0)}_parse(e){if("string"!=typeof e.data){const t=this._getOrReturnCtx(e),n=this._def.values;return ht(t,{expected:Ke.joinValues(n),received:t.parsedType,code:ot.invalid_type}),mt}if(wt(this,Mt,"f")||xt(this,Mt,new Set(this._def.values),"f"),!wt(this,Mt,"f").has(e.data)){const t=this._getOrReturnCtx(e),n=this._def.values;return ht(t,{received:t.data,code:ot.invalid_enum_value,options:n}),mt}return ft(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return xn.create(e,{...this._def,...t})}exclude(e,t=this._def){return xn.create(this.options.filter((t=>!e.includes(t))),{...this._def,...t})}}Mt=new WeakMap,xn.create=wn;class Cn extends At{constructor(){super(...arguments),kt.set(this,void 0)}_parse(e){const t=Ke.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==it.string&&n.parsedType!==it.number){const e=Ke.objectValues(t);return ht(n,{expected:Ke.joinValues(e),received:n.parsedType,code:ot.invalid_type}),mt}if(wt(this,kt,"f")||xt(this,kt,new Set(Ke.getValidEnumValues(this._def.values)),"f"),!wt(this,kt,"f").has(e.data)){const e=Ke.objectValues(t);return ht(n,{received:n.data,code:ot.invalid_enum_value,options:e}),mt}return ft(e.data)}get enum(){return this._def.values}}kt=new WeakMap,Cn.create=(e,t)=>new Cn({values:e,typeName:Pn.ZodNativeEnum,...$t(t)});class Mn extends At{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==it.promise&&!1===t.common.async)return ht(t,{code:ot.invalid_type,expected:it.promise,received:t.parsedType}),mt;const n=t.parsedType===it.promise?t.data:Promise.resolve(t.data);return ft(n.then((e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap}))))}}Mn.create=(e,t)=>new Mn({type:e,typeName:Pn.ZodPromise,...$t(t)});class kn extends At{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Pn.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:n}=this._processInputParams(e),a=this._def.effect||null,i={addIssue:e=>{ht(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),"preprocess"===a.type){const e=a.transform(n.data,i);if(n.common.async)return Promise.resolve(e).then((async e=>{if("aborted"===t.value)return mt;const a=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return"aborted"===a.status?mt:"dirty"===a.status||"dirty"===t.value?gt(a.value):a}));{if("aborted"===t.value)return mt;const a=this._def.schema._parseSync({data:e,path:n.path,parent:n});return"aborted"===a.status?mt:"dirty"===a.status||"dirty"===t.value?gt(a.value):a}}if("refinement"===a.type){const e=e=>{const t=a.refinement(e,i);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return e};if(!1===n.common.async){const a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return"aborted"===a.status?mt:("dirty"===a.status&&t.dirty(),e(a.value),{status:t.value,value:a.value})}return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then((n=>"aborted"===n.status?mt:("dirty"===n.status&&t.dirty(),e(n.value).then((()=>({status:t.value,value:n.value}))))))}if("transform"===a.type){if(!1===n.common.async){const e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!yt(e))return e;const r=a.transform(e.value,i);if(r instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:r}}return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then((e=>yt(e)?Promise.resolve(a.transform(e.value,i)).then((e=>({status:t.value,value:e}))):e))}Ke.assertNever(a)}}kn.create=(e,t,n)=>new kn({schema:e,typeName:Pn.ZodEffects,effect:t,...$t(n)}),kn.createWithPreprocess=(e,t,n)=>new kn({schema:t,effect:{type:"preprocess",transform:e},typeName:Pn.ZodEffects,...$t(n)});class Sn extends At{_parse(e){return this._getType(e)===it.undefined?ft(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Sn.create=(e,t)=>new Sn({innerType:e,typeName:Pn.ZodOptional,...$t(t)});class En extends At{_parse(e){return this._getType(e)===it.null?ft(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}En.create=(e,t)=>new En({innerType:e,typeName:Pn.ZodNullable,...$t(t)});class $n extends At{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===it.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}$n.create=(e,t)=>new $n({innerType:e,typeName:Pn.ZodDefault,defaultValue:"function"==typeof t.default?t.default:()=>t.default,...$t(t)});class An extends At{_parse(e){const{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},a=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return bt(a)?a.then((e=>({status:"valid",value:"valid"===e.status?e.value:this._def.catchValue({get error(){return new st(n.common.issues)},input:n.data})}))):{status:"valid",value:"valid"===a.status?a.value:this._def.catchValue({get error(){return new st(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}An.create=(e,t)=>new An({innerType:e,typeName:Pn.ZodCatch,catchValue:"function"==typeof t.catch?t.catch:()=>t.catch,...$t(t)});class zn extends At{_parse(e){if(this._getType(e)!==it.nan){const t=this._getOrReturnCtx(e);return ht(t,{code:ot.invalid_type,expected:it.nan,received:t.parsedType}),mt}return{status:"valid",value:e.data}}}zn.create=e=>new zn({typeName:Pn.ZodNaN,...$t(e)});const In=Symbol("zod_brand");class Tn extends At{_parse(e){const{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}class jn extends At{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async){return(async()=>{const e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return"aborted"===e.status?mt:"dirty"===e.status?(t.dirty(),gt(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})()}{const e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return"aborted"===e.status?mt:"dirty"===e.status?(t.dirty(),{status:"dirty",value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(e,t){return new jn({in:e,out:t,typeName:Pn.ZodPipeline})}}class On extends At{_parse(e){const t=this._def.innerType._parse(e),n=e=>(yt(e)&&(e.value=Object.freeze(e.value)),e);return bt(t)?t.then((e=>n(e))):n(t)}unwrap(){return this._def.innerType}}function Dn(e,t={},n){return e?tn.create().superRefine(((a,i)=>{var r,o;if(!e(a)){const e="function"==typeof t?t(a):"string"==typeof t?{message:t}:t,s=null===(o=null!==(r=e.fatal)&&void 0!==r?r:n)||void 0===o||o,c="string"==typeof e?{message:e}:e;i.addIssue({code:"custom",...c,fatal:s})}})):tn.create()}On.create=(e,t)=>new On({innerType:e,typeName:Pn.ZodReadonly,...$t(t)});const Rn={object:cn.lazycreate};var Pn;!function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"}(Pn||(Pn={}));const Ln=Wt.create,Nn=Qt.create,Fn=zn.create,Vn=Gt.create,Hn=Yt.create,Bn=Kt.create,qn=Xt.create,Un=Jt.create,Wn=en.create,Zn=tn.create,Qn=nn.create,Gn=an.create,Yn=rn.create,Kn=on.create,Xn=cn.create,Jn=cn.strictCreate,ea=ln.create,ta=un.create,na=pn.create,aa=mn.create,ia=gn.create,ra=fn.create,oa=_n.create,sa=vn.create,ca=yn.create,la=bn.create,da=xn.create,ua=Cn.create,ha=Mn.create,pa=kn.create,ma=Sn.create,ga=En.create,fa=kn.createWithPreprocess,_a=jn.create,va={string:e=>Wt.create({...e,coerce:!0}),number:e=>Qt.create({...e,coerce:!0}),boolean:e=>Yt.create({...e,coerce:!0}),bigint:e=>Gt.create({...e,coerce:!0}),date:e=>Kt.create({...e,coerce:!0})},ya=mt;var ba=Object.freeze({__proto__:null,defaultErrorMap:ct,setErrorMap:function(e){lt=e},getErrorMap:dt,makeIssue:ut,EMPTY_PATH:[],addIssueToContext:ht,ParseStatus:pt,INVALID:mt,DIRTY:gt,OK:ft,isAborted:_t,isDirty:vt,isValid:yt,isAsync:bt,get util(){return Ke},get objectUtil(){return Xe},ZodParsedType:it,getParsedType:rt,ZodType:At,datetimeRegex:qt,ZodString:Wt,ZodNumber:Qt,ZodBigInt:Gt,ZodBoolean:Yt,ZodDate:Kt,ZodSymbol:Xt,ZodUndefined:Jt,ZodNull:en,ZodAny:tn,ZodUnknown:nn,ZodNever:an,ZodVoid:rn,ZodArray:on,ZodObject:cn,ZodUnion:ln,ZodDiscriminatedUnion:un,ZodIntersection:pn,ZodTuple:mn,ZodRecord:gn,ZodMap:fn,ZodSet:_n,ZodFunction:vn,ZodLazy:yn,ZodLiteral:bn,ZodEnum:xn,ZodNativeEnum:Cn,ZodPromise:Mn,ZodEffects:kn,ZodTransformer:kn,ZodOptional:Sn,ZodNullable:En,ZodDefault:$n,ZodCatch:An,ZodNaN:zn,BRAND:In,ZodBranded:Tn,ZodPipeline:jn,ZodReadonly:On,custom:Dn,Schema:At,ZodSchema:At,late:Rn,get ZodFirstPartyTypeKind(){return Pn},coerce:va,any:Zn,array:Kn,bigint:Vn,boolean:Hn,date:Bn,discriminatedUnion:ta,effect:pa,enum:da,function:sa,instanceof:(e,t={message:`Input not instance of ${e.name}`})=>Dn((t=>t instanceof e),t),intersection:na,lazy:ca,literal:la,map:ra,nan:Fn,nativeEnum:ua,never:Gn,null:Wn,nullable:ga,number:Nn,object:Xn,oboolean:()=>Hn().optional(),onumber:()=>Nn().optional(),optional:ma,ostring:()=>Ln().optional(),pipeline:_a,preprocess:fa,promise:ha,record:ia,set:oa,strictObject:Jn,string:Ln,symbol:qn,transformer:pa,tuple:aa,undefined:Un,union:ea,unknown:Qn,void:Yn,NEVER:ya,ZodIssueCode:ot,quotelessJson:e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),ZodError:st});const wa="https://github.com/dermotduffy/frigate-hass-card",xa=`${wa}#troubleshooting`,Ca="cameras",Ma=`${Ca}.#.camera_entity`,ka=`${Ca}.#.frigate.camera_name`,Sa=`${Ca}.#.capabilities.disable`,Ea=`${Ca}.#.capabilities.disable_except`,$a=`${Ca}.#.cast.method`,Aa=`${Ca}.#.cast.dashboard.dashboard_path`,za=`${Ca}.#.cast.dashboard.view_path`,Ia=`${Ca}.#.dimensions.aspect_ratio`,Ta=`${Ca}.#.frigate.client_id`,ja=`${Ca}.#.frigate.labels`,Oa=`${Ca}.#.frigate.url`,Da=`${Ca}.#.frigate.zones`,Ra=`${Ca}.#.go2rtc.modes`,Pa=`${Ca}.#.go2rtc.stream`,La=`${Ca}.#.icon`,Na=`${Ca}.#.id`,Fa=`${Ca}.#.image.entity`,Va=`${Ca}.#.image.entity_parameters`,Ha=`${Ca}.#.image.mode`,Ba=`${Ca}.#.image.refresh_seconds`,qa=`${Ca}.#.image.url`,Ua=`${Ca}.#.motioneye.images.directory_pattern`,Wa=`${Ca}.#.motioneye.images.file_pattern`,Za=`${Ca}.#.motioneye.movies.directory_pattern`,Qa=`${Ca}.#.motioneye.movies.file_pattern`,Ga=`${Ca}.#.motioneye.url`,Ya=`${Ca}.#.title`,Ka=`${Ca}.#.webrtc_card.entity`,Xa=`${Ca}.#.webrtc_card.url`,Ja=`${Ca}.#.live_provider`,ei=`${Ca}.#.dependencies.cameras`,ti=`${Ca}.#.dependencies.all_cameras`,ni=`${Ca}.#.dimensions.layout.fit`,ai=`${Ca}.#.dimensions.layout.pan.x`,ii=`${Ca}.#.dimensions.layout.pan.y`,ri=`${Ca}.#.dimensions.layout.position.x`,oi=`${Ca}.#.dimensions.layout.position.y`,si=`${Ca}.#.dimensions.layout.view_box.top`,ci=`${Ca}.#.dimensions.layout.view_box.bottom`,li=`${Ca}.#.dimensions.layout.view_box.left`,di=`${Ca}.#.dimensions.layout.view_box.right`,ui=`${Ca}.#.dimensions.layout.zoom`,hi=`${Ca}.#.proxy.dynamic`,pi=`${Ca}.#.proxy.media`,mi=`${Ca}.#.proxy.ssl_ciphers`,gi=`${Ca}.#.proxy.ssl_verification`,fi=`${Ca}.#.reolink.media_resolution`,_i=`${Ca}.#.reolink.url`,vi=`${Ca}.#.triggers.motion`,yi=`${Ca}.#.triggers.occupancy`,bi=`${Ca}.#.triggers.entities`,wi=`${Ca}.#.triggers.events`,xi="cameras_global",Ci=`${xi}.image`,Mi=`${xi}.live_provider`,ki=`${xi}.jsmpeg`,Si=`${xi}.webrtc_card`,Ei=`${xi}.triggers.occupancy`,$i=`${xi}.image.refresh_seconds`,Ai=`${xi}.dimensions.layout`,zi=`${xi}.ptz`,Ii="elements",Ti="view",ji=`${Ti}.camera_select`,Oi=`${Ti}.dark_mode`,Di=`${Ti}.default`,Ri=`${Ti}.interaction_seconds`,Pi=`${Ti}.keyboard_shortcuts`,Li=`${Ti}.keyboard_shortcuts.enabled`,Ni=`${Pi}.ptz_left`,Fi=`${Pi}.ptz_right`,Vi=`${Pi}.ptz_up`,Hi=`${Pi}.ptz_down`,Bi=`${Pi}.ptz_zoom_in`,qi=`${Pi}.ptz_zoom_out`,Ui=`${Pi}.ptz_home`,Wi=`${Ti}.default_cycle_camera`,Zi=`${Ti}.default_reset`,Qi=`${Zi}.interaction_mode`,Gi=`${Zi}.every_seconds`,Yi=`${Zi}.entities`,Ki=`${Zi}.after_interaction`,Xi=`${Ti}.triggers`,Ji=`${Xi}.show_trigger_status`,er=`${Xi}.filter_selected_camera`,tr=`${Xi}.untrigger_seconds`,nr=`${Xi}.actions`,ar=`${nr}.trigger`,ir=`${nr}.untrigger`,rr=`${nr}.interaction_mode`,or="media_gallery",sr=`${or}.controls.filter.mode`,cr=`${or}.controls.thumbnails.show_details`,lr=`${or}.controls.thumbnails.show_download_control`,dr=`${or}.controls.thumbnails.show_favorite_control`,ur=`${or}.controls.thumbnails.show_timeline_control`,hr=`${or}.controls.thumbnails.size`,pr="media_viewer",mr=`${pr}.auto_play`,gr=`${pr}.auto_pause`,fr=`${pr}.auto_mute`,_r=`${pr}.auto_unmute`,vr=`${pr}.display.mode`,yr=`${pr}.display.grid_columns`,br=`${pr}.display.grid_max_columns`,wr=`${pr}.display.grid_selected_width_factor`,xr=`${pr}.draggable`,Cr=`${pr}.lazy_load`,Mr=`${pr}.snapshot_click_plays_clip`,kr=`${pr}.transition_effect`,Sr=`${pr}.controls.builtin`,Er=`${pr}.controls.next_previous.style`,$r=`${pr}.controls.next_previous.size`,Ar=`${pr}.controls.thumbnails.mode`,zr=`${pr}.controls.thumbnails.show_details`,Ir=`${pr}.controls.thumbnails.show_download_control`,Tr=`${pr}.controls.thumbnails.show_favorite_control`,jr=`${pr}.controls.thumbnails.show_timeline_control`,Or=`${pr}.controls.thumbnails.size`,Dr=`${pr}.controls.timeline.clustering_threshold`,Rr=`${pr}.controls.timeline.events_media_type`,Pr=`${pr}.controls.timeline.mode`,Lr=`${pr}.controls.timeline.pan_mode`,Nr=`${pr}.controls.timeline.show_recordings`,Fr=`${pr}.controls.timeline.style`,Vr=`${pr}.controls.timeline.window_seconds`,Hr=`${pr}.zoomable`,Br="live",qr=`${Br}.auto_play`,Ur=`${Br}.auto_pause`,Wr=`${Br}.auto_mute`,Zr=`${Br}.auto_unmute`,Qr=`${Br}.controls.builtin`,Gr=`${Br}.controls.next_previous.style`,Yr=`${Br}.controls.next_previous.size`,Kr=`${Br}.controls.ptz.hide_home`,Xr=`${Br}.controls.ptz.hide_pan_tilt`,Jr=`${Br}.controls.ptz.hide_zoom`,eo=`${Br}.controls.ptz.mode`,to=`${Br}.controls.ptz.orientation`,no=`${Br}.controls.ptz.position`,ao=`${Br}.controls.thumbnails.media_type`,io=`${Br}.controls.thumbnails.events_media_type`,ro=`${Br}.controls.thumbnails.mode`,oo=`${Br}.controls.thumbnails.size`,so=`${Br}.controls.thumbnails.show_details`,co=`${Br}.controls.thumbnails.show_download_control`,lo=`${Br}.controls.thumbnails.show_favorite_control`,uo=`${Br}.controls.thumbnails.show_timeline_control`,ho=`${Br}.controls.timeline.clustering_threshold`,po=`${Br}.controls.timeline.events_media_type`,mo=`${Br}.controls.timeline.mode`,go=`${Br}.controls.timeline.pan_mode`,fo=`${Br}.controls.timeline.show_recordings`,_o=`${Br}.controls.timeline.style`,vo=`${Br}.controls.timeline.window_seconds`,yo=`${Br}.display.mode`,bo=`${Br}.display.grid_columns`,wo=`${Br}.display.grid_max_columns`,xo=`${Br}.display.grid_selected_width_factor`,Co=`${Br}.draggable`,Mo=`${Br}.lazy_load`,ko=`${Br}.lazy_unload`,So=`${Br}.preload`,Eo=`${Br}.transition_effect`,$o=`${Br}.show_image_during_load`,Ao=`${Br}.microphone.disconnect_seconds`,zo=`${Br}.microphone.mute_after_microphone_mute_seconds`,Io=`${Br}.microphone.always_connected`,To=`${Br}.zoomable`,jo="image",Oo=`${jo}.entity`,Do=`${jo}.entity_parameters`,Ro=`${jo}.mode`,Po=`${jo}.refresh_seconds`,Lo=`${jo}.url`,No="timeline",Fo=`${No}.window_seconds`,Vo=`${No}.clustering_threshold`,Ho=`${No}.events_media_type`,Bo=`${No}.show_recordings`,qo=`${No}.style`,Uo=`${No}.controls.thumbnails.mode`,Wo=`${No}.controls.thumbnails.size`,Zo=`${No}.controls.thumbnails.show_details`,Qo=`${No}.controls.thumbnails.show_download_control`,Go=`${No}.controls.thumbnails.show_favorite_control`,Yo=`${No}.controls.thumbnails.show_timeline_control`,Ko="menu",Xo=`${Ko}.alignment`,Jo=`${Ko}.position`,es=`${Ko}.style`,ts=`${Ko}.button_size`,ns=`${Ko}.buttons`,as=`${ns}.frigate`,is=`${ns}.camera_ui`,rs=`${ns}.fullscreen`,os=`${ns}.play`,ss=`${ns}.mute`,cs=`${ns}.media_player`,ls=`${ns}.timeline`,ds="status_bar",us=`${ds}.position`,hs=`${ds}.style`,ps=`${ds}.popup_seconds`,ms=`${ds}.height`,gs=`${ds}.items`,fs="dimensions",_s=`${fs}.aspect_ratio`,vs=`${fs}.aspect_ratio_mode`,ys=`${fs}.height`,bs="overrides",ws="performance",xs=`${ws}.features.animated_progress_indicator`,Cs=`${ws}.features.media_chunk_size`,Ms=`${ws}.features.max_simultaneous_engine_requests`,ks=`${ws}.profile`,Ss=`${ws}.style.box_shadow`,Es=`${ws}.style.border_radius`,$s="profiles",As=1e3;class zs extends Error{constructor(e,t){super(e),this.context=t}}const Is={info:10,error:20,connection:30,diagnostics:40},Ts=["clips","favorite-events","favorite-recordings","live","menu","ptz","recordings","seek","snapshots","substream"],js=ba.object({url:ba.string(),mime_type:ba.string()}),Os=ba.object({path:ba.string()});function Ds(e){if(e instanceof ba.ZodDefault)return Ds(e.removeDefault());if(e instanceof ba.ZodObject){const t={};for(const n in e.shape){const a=e.shape[n];t[n]=ba.ZodOptional.create(Ds(a))}return new ba.ZodObject({...e._def,shape:()=>t})}return e instanceof ba.ZodArray?ba.ZodArray.create(Ds(e.element)).min(e._def.minLength?.value,e._def.minLength?.message).max(e._def.maxLength?.value,e._def.maxLength?.message).length(e._def.exactLength?.value,e._def.exactLength?.message):e instanceof ba.ZodOptional?ba.ZodOptional.create(Ds(e.unwrap())):e instanceof ba.ZodNullable?ba.ZodNullable.create(Ds(e.unwrap())):e instanceof ba.ZodTuple?ba.ZodTuple.create(e.items.map((e=>Ds(e)))):e}function Rs(e){const t=e.format();return Object.keys(t).filter((e=>!e.startsWith("_")))}const Ps=e=>{const t=new Set;if(e.issues.length)for(const n of e.issues)if("invalid_union"===n.code){const e=n.unionErrors;for(const n of e)Ps(n).forEach(t.add,t)}else t.add(Ls(n.path));return t},Ls=e=>{let t="";for(let n=0;n"fire-dom-event")).or(ba.literal("fire-dom-event")),card_id:ba.string().regex(tc,"card_id parameter can only contain [a-z][A-Z][0-9_]-").optional()}),_c=fc.extend({frigate_card_action:ba.enum(Zs)}),vc=fc.extend({frigate_card_action:ba.enum(["camera_ui","default","download","expand","fullscreen","live_substream_off","live_substream_on","menu_toggle","microphone_connect","microphone_disconnect","microphone_mute","microphone_unmute","mute","pause","play","screenshot","unmute"])}),yc=fc.extend({frigate_card_action:ba.literal("camera_select"),camera:ba.string().optional(),triggered:ba.boolean().optional()}),bc=fc.extend({frigate_card_action:ba.literal("live_substream_select"),camera:ba.string()}),wc=fc.extend({frigate_card_action:ba.literal("media_player"),media_player:ba.string(),media_player_action:ba.enum(["play","stop"])}),xc=fc.extend({frigate_card_action:ba.literal("display_mode_select"),display_mode:ic}),Cc=fc.extend({frigate_card_action:ba.literal("ptz"),camera:ba.string().optional(),ptz_action:ba.enum(Hs).optional(),ptz_phase:ba.enum(Js).optional(),ptz_preset:ba.string().optional()}),Mc=fc.extend({frigate_card_action:ba.literal("ptz_digital"),target_id:ba.string().optional(),absolute:ba.object({zoom:ac.optional(),pan:nc.optional()}).optional(),ptz_action:ba.enum(Hs).optional(),ptz_phase:ba.enum(Js).optional()}),kc=fc.extend({frigate_card_action:ba.literal("ptz_multi"),target_id:ba.string().optional(),ptz_action:ba.enum(Hs).optional(),ptz_phase:ba.enum(Js).optional(),ptz_preset:ba.string().optional()}),Sc=fc.extend({frigate_card_action:ba.literal("ptz_controls"),enabled:ba.boolean()}),Ec=ba.object({ms:ba.number().optional(),s:ba.number().optional(),m:ba.number().optional(),h:ba.number().optional()}),$c=fc.extend({frigate_card_action:ba.literal("sleep"),duration:Ec.optional().default({s:1})}),Ac=fc.extend({frigate_card_action:ba.literal("status_bar"),status_bar_action:ba.enum(["add","remove","reset"]),items:ba.lazy((()=>ol)).array().optional()}),zc=fc.extend({frigate_card_action:ba.literal("log"),message:ba.string(),level:ba.enum(["debug","info","warn","error"]).default("info")}),Ic=ba.union([yc,vc,bc,zc,wc,Cc,Mc,kc,Sc,_c,xc,$c,Ac]),Tc=ba.union([sc,dc,lc,uc,hc,pc,gc,mc,Ic]),jc=ba.object({tap_action:Tc.or(Tc.array()).optional(),hold_action:Tc.or(Tc.array()).optional(),double_tap_action:Tc.or(Tc.array()).optional(),start_tap_action:Tc.or(Tc.array()).optional(),end_tap_action:Tc.or(Tc.array()).optional()}).passthrough(),Oc=ba.object({actions:jc.optional()}),Dc=jc.extend({style:ba.record(ba.string().nullable().or(ba.undefined()).or(ba.number())).optional(),title:ba.string().nullable().optional()}),Rc=Dc.extend({type:ba.literal("state-badge"),entity:ba.string()}),Pc=Dc.extend({type:ba.literal("state-icon"),entity:ba.string(),icon:ba.string().optional(),state_color:ba.boolean().default(!0)}),Lc=Dc.extend({type:ba.literal("state-label"),entity:ba.string(),attribute:ba.string().optional(),prefix:ba.string().optional(),suffix:ba.string().optional()}),Nc=Dc.extend({type:ba.literal("service-button"),title:ba.string(),service:ba.string(),service_data:ba.object({}).passthrough().optional()}),Fc=Dc.extend({type:ba.literal("icon"),icon:ba.string(),entity:ba.string().optional()}),Vc=Dc.extend({type:ba.literal("image"),entity:ba.string().optional(),image:ba.string().optional(),camera_image:ba.string().optional(),camera_view:ba.string().optional(),state_image:ba.object({}).passthrough().optional(),filter:ba.string().optional(),state_filter:ba.object({}).passthrough().optional(),aspect_ratio:ba.string().optional()}),Hc=ba.object({condition:ba.literal("state").optional(),entity:ba.string(),state:ba.string().or(ba.string().array()).optional(),state_not:ba.string().or(ba.string().array()).optional()}),Bc=ba.object({condition:ba.literal("numeric_state"),entity:ba.string(),above:ba.number().optional(),below:ba.number().optional()}),qc=ba.object({condition:ba.literal("screen"),media_query:ba.string()}),Uc=ba.object({condition:ba.literal("user"),users:ba.string().array().min(1)}),Wc=ba.discriminatedUnion("condition",[Hc,Bc,qc,Uc]),Zc=ba.object({type:ba.literal("conditional"),conditions:Wc.array(),elements:ba.lazy((()=>yl))}),Qc=ba.object({type:ba.string().superRefine(((e,t)=>{e.match(/^custom:(?!frigate-card).+/)||t.addIssue({code:ba.ZodIssueCode.custom,message:"Frigate-card custom elements must match specific schemas",fatal:!0})}))}).passthrough(),Gc=ba.object({enabled:ba.boolean().default(!0).optional(),priority:ba.number().min(0).max(Us).default(50).optional(),alignment:ba.enum(["matching","opposing"]).default("matching").optional(),icon:ba.string().optional(),permanent:ba.boolean().default(!1).optional()}),Yc=Gc.merge(Fc).extend({type:ba.literal("custom:frigate-card-menu-icon")}),Kc=Gc.merge(Pc).extend({type:ba.literal("custom:frigate-card-menu-state-icon")}).merge(Gc),Xc=Dc.extend({entity:ba.string().optional(),icon:ba.string().optional(),state_color:ba.boolean().default(!0),selected:ba.boolean().default(!1),subtitle:ba.string().optional(),enabled:ba.boolean().default(!0)}),Jc=Gc.merge(Fc).extend({type:ba.literal("custom:frigate-card-menu-submenu"),items:Xc.array()}),el=Gc.merge(Pc).extend({type:ba.literal("custom:frigate-card-menu-submenu-select"),options:ba.record(Xc.deepPartial()).optional()}),tl=ba.object({enabled:ba.boolean().default(!0).optional(),priority:ba.number().min(0).max(100).default(50).optional()}),nl=tl.extend({sufficient:ba.boolean().default(!1).optional(),exclusive:ba.boolean().default(!1).optional(),expand:ba.boolean().default(!1).optional(),actions:jc.optional()}),al=nl.extend({type:ba.literal("custom:frigate-card-status-bar-icon"),icon:ba.string()}),il=nl.extend({type:ba.literal("custom:frigate-card-status-bar-image"),image:ba.string()}),rl=nl.extend({type:ba.literal("custom:frigate-card-status-bar-string"),string:ba.string()}),ol=ba.union([al,il,rl]),sl=ba.object({condition:ba.literal("view"),views:ba.string().array()}),cl=ba.object({condition:ba.literal("fullscreen"),fullscreen:ba.boolean()}),ll=ba.object({condition:ba.literal("expand"),expand:ba.boolean()}),dl=ba.object({condition:ba.literal("camera"),cameras:ba.string().array()}),ul=ba.object({condition:ba.literal("media_loaded"),media_loaded:ba.boolean()}),hl=ba.object({condition:ba.literal("display_mode"),display_mode:ic}),pl=ba.object({condition:ba.literal("triggered"),triggered:ba.string().array()}),ml=ba.object({condition:ba.literal("interaction"),interaction:ba.boolean()}),gl=ba.object({condition:ba.literal("microphone"),connected:ba.boolean().optional(),muted:ba.boolean().optional()}),fl=ba.object({condition:ba.literal("key"),key:ba.string(),state:ba.enum(["down","up"]).optional(),ctrl:ba.boolean().optional(),shift:ba.boolean().optional(),alt:ba.boolean().optional(),meta:ba.boolean().optional()}),_l=ba.discriminatedUnion("condition",[Hc,Bc,qc,Uc,sl,cl,ll,dl,ul,hl,pl,ml,gl,fl]),vl=ba.object({type:ba.literal("custom:frigate-card-conditional"),conditions:_l.array(),elements:ba.lazy((()=>yl))}),yl=ba.union([Zc,Qc,vl,Fc,Vc,Yc,Kc,Jc,el,Nc,Rc,Pc,Lc,al,il,rl]).array().optional(),bl=ba.object({fit:ba.enum(["contain","cover","fill"]).optional(),position:ba.object({x:ba.number().min(0).max(100).optional(),y:ba.number().min(0).max(100).optional()}).optional(),view_box:ba.object({bottom:ba.number().min(0).max(100).optional().default(0),left:ba.number().min(0).max(100).optional().default(0),right:ba.number().min(0).max(100).optional().default(0),top:ba.number().min(0).max(100).optional().default(0)}).optional(),pan:nc.optional(),zoom:ac.optional()}),wl=ba.number().array().length(2).or(ba.string().regex(/^\s*\d+\.?\d*\s*[:/]\s*\d+\.?\d*\s*$/).transform((e=>e.split(/[:\/]/).map((e=>Number(e)))))),xl={r2c_delay_between_calls_seconds:.5,c2r_delay_between_calls_seconds:.2},Cl=function(e){return t=>{if(!t||"object"!=typeof t||!t.service)return t;const n={...t};return Object.keys(t).forEach((a=>{const i=a.match(/^data_(.+)$/),r=i?.[1];r&&!(`${e}${r}`in t)&&(n[`${e}${r}`]={action:"perform-action",perform_action:t.service,data:t[a]},delete n[a],delete n.service)})),n}},Ml=ba.preprocess(Cl("actions_"),ba.object({actions_left:lc.optional(),actions_left_start:lc.optional(),actions_left_stop:lc.optional(),actions_right:lc.optional(),actions_right_start:lc.optional(),actions_right_stop:lc.optional(),actions_up:lc.optional(),actions_up_start:lc.optional(),actions_up_stop:lc.optional(),actions_down:lc.optional(),actions_down_start:lc.optional(),actions_down_stop:lc.optional(),actions_zoom_in:lc.optional(),actions_zoom_in_start:lc.optional(),actions_zoom_in_stop:lc.optional(),actions_zoom_out:lc.optional(),actions_zoom_out_start:lc.optional(),actions_zoom_out_stop:lc.optional(),r2c_delay_between_calls_seconds:ba.number().default(xl.r2c_delay_between_calls_seconds),c2r_delay_between_calls_seconds:ba.number().default(xl.c2r_delay_between_calls_seconds),presets:ba.preprocess(Cl(""),ba.union([ba.record(lc),ba.object({service:ba.string().optional()})])).optional(),service:ba.string().optional()}).passthrough()),kl={orientation:"horizontal",mode:"auto",hide_pan_tilt:!1,hide_zoom:!1,hide_home:!1,position:"bottom-right"},Sl=ba.object({mode:ba.enum(["off","auto","on"]).default(kl.mode),position:ba.enum(["top-left","top-right","bottom-left","bottom-right"]).default(kl.position),orientation:ba.enum(["vertical","horizontal"]).default(kl.orientation),hide_pan_tilt:ba.boolean().default(kl.hide_pan_tilt),hide_zoom:ba.boolean().default(kl.hide_zoom),hide_home:ba.boolean().default(kl.hide_home),style:ba.object({}).passthrough().optional()}),El={mode:"auto",refresh_seconds:1},$l=ba.object({mode:ba.enum(["auto","camera","entity","screensaver","url"]).default(El.mode),refresh_seconds:ba.number().min(0).default(El.refresh_seconds),url:ba.string().optional(),entity:ba.string().optional(),entity_parameters:ba.string().optional()}),Al=$l.merge(Oc).default(El),zl=75,Il=300,Tl={size:100,show_details:!0,show_favorite_control:!0,show_timeline_control:!0,show_download_control:!0},jl=ba.object({size:ba.number().min(75).max(300).default(Tl.size),show_details:ba.boolean().default(Tl.show_details),show_favorite_control:ba.boolean().default(Tl.show_favorite_control),show_timeline_control:ba.boolean().default(Tl.show_timeline_control),show_download_control:ba.boolean().default(Tl.show_download_control)}),Ol={...Tl,mode:"right"},Dl=jl.extend({mode:ba.enum(["none","above","below","left","right"]).default(Ol.mode)}),Rl=ba.enum(["all","clips","snapshots"]),Pl={clustering_threshold:3,events_media_type:"all",window_seconds:3600,show_recordings:!0,style:"stack",pan_mode:"pan"},Ll=ba.enum(["pan","seek","seek-in-media","seek-in-camera"]),Nl=ba.object({clustering_threshold:ba.number().optional().default(Pl.clustering_threshold),events_media_type:Rl.optional().default(Pl.events_media_type),window_seconds:ba.number().min(60).max(86400).optional().default(Pl.window_seconds),show_recordings:ba.boolean().optional().default(Pl.show_recordings),style:ba.enum(["stack","ribbon"]).optional().default(Pl.style),pan_mode:Ll.optional().default(Pl.pan_mode)}),Fl={...Pl,mode:"none",style:"ribbon"},Vl=Nl.extend({mode:ba.enum(["none","above","below"]).default(Fl.mode),style:Nl.shape.style.default(Fl.style)}),Hl={...Pl,controls:{thumbnails:Ol}},Bl=Nl.extend({controls:ba.object({thumbnails:Dl.default(Hl.controls.thumbnails)}).default(Hl.controls)}).default(Hl),ql=ba.object({style:ba.enum(["none","chevrons","icons","thumbnails"]),size:ba.number().min(20)}),Ul=ba.enum(["none","slide"]),Wl={always_connected:!1,disconnect_seconds:90,mute_after_microphone_mute_seconds:60},Zl=ba.object({always_connected:ba.boolean().default(Wl.always_connected),disconnect_seconds:ba.number().min(0).default(Wl.disconnect_seconds),mute_after_microphone_mute_seconds:ba.number().min(0).default(Wl.mute_after_microphone_mute_seconds)}).default(Wl),Ql=ba.object({url:ba.string().transform((e=>e.replace(/\/+$/,""))).optional(),host:ba.string().optional(),modes:ba.enum(["webrtc","mse","mp4","mjpeg"]).array().optional(),stream:ba.string().optional()}),Gl=ba.object({entity:ba.string().optional(),url:ba.string().optional()}).passthrough(),Yl=ba.object({options:ba.object({audio:ba.boolean().optional(),video:ba.boolean().optional(),pauseWhenHidden:ba.boolean().optional(),disableGl:ba.boolean().optional(),disableWebAssembly:ba.boolean().optional(),preserveDrawingBuffer:ba.boolean().optional(),progressive:ba.boolean().optional(),throttled:ba.boolean().optional(),chunkSize:ba.number().optional(),maxAudioLag:ba.number().optional(),videoBufferSize:ba.number().optional(),audioBufferSize:ba.number().optional()}).optional()}),Kl={...Ol,media_type:"events",events_media_type:"all"},Xl={auto_play:[...Ys],auto_pause:[],auto_mute:[...Xs],auto_unmute:["microphone"],preload:!1,lazy_load:!0,lazy_unload:[],draggable:!0,zoomable:!0,transition_effect:"slide",show_image_during_load:!0,mode:"single",controls:{builtin:!0,next_previous:{size:48,style:"chevrons"},ptz:kl,thumbnails:Kl,timeline:Fl},microphone:{...Wl}},Jl=Dl.extend({media_type:ba.enum(["events","recordings"]).default(Xl.controls.thumbnails.media_type),events_media_type:Rl.default(Xl.controls.thumbnails.events_media_type)}),ed=ba.object({auto_pause:ba.enum(Gs).array().default(Xl.auto_pause),auto_play:ba.enum(Ys).array().default(Xl.auto_play),auto_mute:ba.enum(Xs).array().default(Xl.auto_mute),auto_unmute:ba.enum(Ks).array().default(Xl.auto_unmute),controls:ba.object({builtin:ba.boolean().default(Xl.controls.builtin),next_previous:ql.extend({style:ba.enum(["none","chevrons","icons"]).default(Xl.controls.next_previous.style),size:ql.shape.size.default(Xl.controls.next_previous.size)}).default(Xl.controls.next_previous),ptz:Sl.default(Xl.controls.ptz),thumbnails:Jl.default(Xl.controls.thumbnails),timeline:Vl.default(Xl.controls.timeline)}).default(Xl.controls),display:rc,draggable:ba.boolean().default(Xl.draggable),lazy_load:ba.boolean().default(Xl.lazy_load),lazy_unload:ba.enum(Gs).array().default(Xl.lazy_unload),microphone:Zl.default(Xl.microphone),preload:ba.boolean().default(Xl.preload),show_image_during_load:ba.boolean().default(Xl.show_image_during_load),transition_effect:Ul.default(Xl.transition_effect),zoomable:ba.boolean().default(Xl.zoomable)}).merge(Oc).default(Xl),td=ba.object({live:ed}),nd=ba.object({method:ba.enum(["standard","dashboard"]).default("standard").optional(),dashboard:ba.object({dashboard_path:ba.string().optional(),view_path:ba.string().optional()}).optional()}),ad={dependencies:{all_cameras:!1,cameras:[]},engine:"auto",frigate:{client_id:"frigate"},live_provider:"auto",motioneye:{images:{directory_pattern:"%Y-%m-%d",file_pattern:"%H-%M-%S"},movies:{directory_pattern:"%Y-%m-%d",file_pattern:"%H-%M-%S"}},reolink:{media_resolution:"low"},ptz:xl,triggers:{motion:!1,occupancy:!1,events:[...ec],entities:[]},proxy:{media:"auto",dynamic:!0,ssl_verification:"auto",ssl_ciphers:"auto"}},id=ba.object({media:ba.boolean().or(ba.literal("auto")).default(ad.proxy.media),dynamic:ba.boolean().default(ad.proxy.dynamic),ssl_verification:ba.boolean().or(ba.literal("auto")).default(ad.proxy.ssl_verification),ssl_ciphers:ba.enum(["default","insecure","intermediate","modern"]).or(ba.literal("auto")).default(ad.proxy.ssl_ciphers)}),rd=ba.object({camera_entity:ba.string().optional(),icon:ba.string().optional(),title:ba.string().optional(),capabilities:ba.object({disable:ba.enum(Ts).array().optional(),disable_except:ba.enum(Ts).array().optional()}).optional(),id:ba.string().optional(),dependencies:ba.object({all_cameras:ba.boolean().default(ad.dependencies.all_cameras),cameras:ba.string().array().default(ad.dependencies.cameras)}).default(ad.dependencies),triggers:ba.object({motion:ba.boolean().default(ad.triggers.motion),occupancy:ba.boolean().default(ad.triggers.occupancy),entities:ba.string().array().default(ad.triggers.entities),events:ba.enum(ec).array().default(ad.triggers.events)}).default(ad.triggers),engine:ba.enum(["auto","frigate","generic","motioneye","reolink"]).default("auto"),frigate:ba.object({url:ba.string().optional(),client_id:ba.string().default(ad.frigate.client_id),camera_name:ba.string().optional(),labels:ba.string().array().optional(),zones:ba.string().array().optional()}).default(ad.frigate),motioneye:ba.object({url:ba.string().optional(),images:ba.object({directory_pattern:ba.string().includes("%").default(ad.motioneye.images.directory_pattern),file_pattern:ba.string().includes("%").default(ad.motioneye.images.file_pattern)}).default(ad.motioneye.images),movies:ba.object({directory_pattern:ba.string().includes("%").default(ad.motioneye.movies.directory_pattern),file_pattern:ba.string().includes("%").default(ad.motioneye.movies.file_pattern)}).default(ad.motioneye.movies)}).default(ad.motioneye),reolink:ba.object({url:ba.string().optional(),media_resolution:ba.enum(["high","low"]).default(ad.reolink.media_resolution)}).default(ad.reolink),live_provider:ba.enum(["auto","image","ha","jsmpeg","go2rtc","webrtc-card"]).default(ad.live_provider),go2rtc:Ql.optional(),image:$l.optional().default(El),jsmpeg:Yl.optional(),webrtc_card:Gl.optional(),cast:nd.optional(),ptz:Ml.default(ad.ptz),dimensions:ba.object({aspect_ratio:wl.optional(),layout:bl.optional()}).optional(),proxy:id.default(ad.proxy)}).default(ad),od=rd.array().min(1),sd={default:Qs,camera_select:"current",interaction_seconds:300,default_reset:{every_seconds:0,after_interaction:!1,entities:[],interaction_mode:"inactive"},default_cycle_camera:!1,dark_mode:"off",triggers:{show_trigger_status:!1,filter_selected_camera:!0,actions:{trigger:"update",untrigger:"none"},untrigger_seconds:0},keyboard_shortcuts:Fs},cd=ba.enum(["all","inactive","active"]).default("inactive"),ld=ba.object({actions:ba.object({interaction_mode:cd,trigger:ba.enum(["default","live","media","none","update"]).default(sd.triggers.actions.trigger),untrigger:ba.enum(["default","none"]).default(sd.triggers.actions.untrigger)}).default(sd.triggers.actions),filter_selected_camera:ba.boolean().default(sd.triggers.filter_selected_camera),show_trigger_status:ba.boolean().default(sd.triggers.show_trigger_status),untrigger_seconds:ba.number().default(sd.triggers.untrigger_seconds)}),dd=ba.object({default:ba.enum(Zs).default(sd.default),camera_select:ba.enum([...Zs,"current"]).default(sd.camera_select),interaction_seconds:ba.number().default(sd.interaction_seconds),default_cycle_camera:ba.boolean().default(sd.default_cycle_camera),default_reset:ba.object({after_interaction:ba.boolean().default(sd.default_reset.after_interaction),every_seconds:ba.number().default(sd.default_reset.every_seconds),entities:ba.string().array().default(sd.default_reset.entities),interaction_mode:cd.default(sd.default_reset.interaction_mode)}).default(sd.default_reset),render_entities:ba.string().array().optional(),dark_mode:ba.enum(["on","off","auto"]).optional(),triggers:ld.default(sd.triggers),keyboard_shortcuts:Vs.default(sd.keyboard_shortcuts)}).merge(Oc).default(sd),ud=["left","right","top","bottom"],hd=ud,pd={priority:50,enabled:!0},md={priority:50,enabled:!1},gd={alignment:"left",button_size:40,buttons:{camera_ui:pd,cameras:pd,clips:pd,ptz_home:md,display_mode:pd,download:pd,expand:md,frigate:pd,fullscreen:pd,image:md,live:pd,media_player:pd,microphone:{...md,type:"momentary"},mute:md,play:md,ptz_controls:md,recordings:md,screenshot:md,snapshots:pd,substreams:pd,timeline:pd},position:"top",style:"hidden"},fd=Gc.extend({enabled:Gc.shape.enabled.default(pd.enabled),priority:Gc.shape.priority.default(pd.priority)}),_d=Gc.extend({enabled:Gc.shape.enabled.default(md.enabled),priority:Gc.shape.priority.default(md.priority)}),vd=ba.object({style:ba.enum(["none","hidden","overlay","hover","hover-card","outside"]).default(gd.style),position:ba.enum(ud).default(gd.position),alignment:ba.enum(hd).default(gd.alignment),buttons:ba.object({camera_ui:fd.default(gd.buttons.camera_ui),cameras:fd.default(gd.buttons.cameras),clips:fd.default(gd.buttons.clips),ptz_home:_d.default(gd.buttons.ptz_home),display_mode:fd.default(gd.buttons.display_mode),download:fd.default(gd.buttons.download),expand:_d.default(gd.buttons.expand),frigate:fd.default(gd.buttons.frigate),fullscreen:fd.default(gd.buttons.fullscreen),image:_d.default(gd.buttons.image),live:fd.default(gd.buttons.live),media_player:fd.default(gd.buttons.media_player),microphone:_d.extend({type:ba.enum(["momentary","toggle"]).default(gd.buttons.microphone.type)}).default(gd.buttons.microphone),mute:_d.default(gd.buttons.mute),play:_d.default(gd.buttons.play),ptz_controls:_d.default(gd.buttons.ptz_controls),recordings:_d.default(gd.buttons.recordings),screenshot:_d.default(gd.buttons.screenshot),snapshots:fd.default(gd.buttons.snapshots),substreams:fd.default(gd.buttons.substreams),timeline:fd.default(gd.buttons.timeline)}).default(gd.buttons),button_size:ba.number().min(20).default(gd.button_size)}).default(gd),yd={priority:50,enabled:!0},bd={height:46,items:{engine:yd,resolution:yd,technology:yd,title:yd},position:"bottom",style:"popup",popup_seconds:3},wd=ba.object({position:ba.enum(["top","bottom"]).default(bd.position),style:ba.enum(["none","overlay","hover","hover-card","outside","popup"]).default(bd.style),popup_seconds:ba.number().min(0).max(60).default(bd.popup_seconds),height:ba.number().min(20).default(bd.height),items:ba.object({engine:tl.default(bd.items.engine),technology:tl.default(bd.items.technology),resolution:tl.default(bd.items.resolution),title:tl.default(bd.items.title)}).default(bd.items)}).default(bd),xd={auto_play:[...Ys],auto_pause:[...Gs],auto_mute:[...Gs],auto_unmute:[],lazy_load:!0,draggable:!0,zoomable:!0,transition_effect:"slide",snapshot_click_plays_clip:!0,display_mode:"single",controls:{builtin:!0,next_previous:{size:48,style:"thumbnails"},thumbnails:Ol,timeline:Fl,ptz:{...kl,mode:"off"}}},Cd=ql.extend({style:ba.enum(["none","thumbnails","chevrons"]).default(xd.controls.next_previous.style),size:ql.shape.size.default(xd.controls.next_previous.size)}),Md=ba.object({auto_play:ba.enum(Ys).array().default(xd.auto_play),auto_pause:ba.enum(Gs).array().default(xd.auto_pause),auto_mute:ba.enum(Gs).array().default(xd.auto_mute),auto_unmute:ba.enum(Ys).array().default(xd.auto_unmute),lazy_load:ba.boolean().default(xd.lazy_load),draggable:ba.boolean().default(xd.draggable),zoomable:ba.boolean().default(xd.zoomable),transition_effect:Ul.default(xd.transition_effect),snapshot_click_plays_clip:ba.boolean().default(xd.snapshot_click_plays_clip),display:rc,controls:ba.object({builtin:ba.boolean().default(xd.controls.builtin),next_previous:Cd.default(xd.controls.next_previous),ptz:Sl.extend({mode:ba.enum(["off","on"]).default(xd.controls.ptz.mode)}).default(xd.controls.ptz),thumbnails:Dl.default(xd.controls.thumbnails),timeline:Vl.default(xd.controls.timeline)}).default(xd.controls)}).merge(Oc).default(xd),kd={...Ol,show_details:!1},Sd={controls:{thumbnails:kd,filter:{mode:"right"}}},Ed=Dl.extend({show_details:ba.boolean().default(kd.show_details)}),$d=ba.object({controls:ba.object({thumbnails:Ed.default(Sd.controls.thumbnails),filter:ba.object({mode:ba.enum(["none","left","right"]).default(Sd.controls.filter.mode)}).default(Sd.controls.filter)}).default(Sd.controls)}).merge(Oc).default(Sd),Ad={aspect_ratio_mode:"dynamic",aspect_ratio:[16,9],height:"auto"},zd=ba.object({aspect_ratio_mode:ba.enum(["dynamic","static","unconstrained"]).default(Ad.aspect_ratio_mode),aspect_ratio:wl.default(Ad.aspect_ratio),height:ba.string().default(Ad.height)}).default(Ad),Id=ba.object({conditions:_l.array(),merge:ba.object({}).passthrough().optional(),set:ba.object({}).passthrough().optional(),delete:ba.string().array().optional()}).array().optional(),Td=Tc.array(),jd=ba.object({conditions:_l.array(),actions:Td.optional(),actions_not:Td.optional()}).refine((e=>e.actions?.length||e.actions_not?.length),"Automations must include at least one action").array(),Od={features:{animated_progress_indicator:!0,media_chunk_size:50},style:{border_radius:!0,box_shadow:!0}},Dd=ba.object({features:ba.object({animated_progress_indicator:ba.boolean().default(Od.features.animated_progress_indicator),media_chunk_size:ba.number().min(0).max(1e3).default(Od.features.media_chunk_size),max_simultaneous_engine_requests:ba.number().min(1).optional()}).default(Od.features),style:ba.object({border_radius:ba.boolean().default(Od.style.border_radius),box_shadow:ba.boolean().default(Od.style.box_shadow)}).default(Od.style)}).default(Od),Rd={logging:!1},Pd=ba.object({logging:ba.boolean().default(Rd.logging)}).default(Rd),Ld=ba.enum(["casting","low-performance","scrubbing"]).array().optional(),Nd=ba.object({cameras:Ds(od),cameras_global:rd,view:dd,menu:vd,status_bar:wd,live:ed,media_gallery:$d,media_viewer:Md,image:Al,elements:yl,dimensions:zd,timeline:Bl,performance:Dd,debug:Pd,automations:jd.optional(),profiles:Ld,overrides:Id,card_mod:ba.unknown(),card_id:ba.string().regex(tc).optional(),type:ba.string()}),Fd={cameras:ad,view:sd,menu:gd,status_bar:bd,live:Xl,media_gallery:Sd,media_viewer:xd,image:El,timeline:Hl,performance:Od,debug:Rd};function Vd(e){const t=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===t?new e.constructor(+e):"number"==typeof e||"[object Number]"===t||"string"==typeof e||"[object String]"===t?new Date(e):new Date(NaN)}function Hd(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function Bd(e,t){const n=Vd(e);return isNaN(t)?Hd(e,NaN):t?(n.setDate(n.getDate()+t),n):n}function qd(e,t){const n=Vd(e);if(isNaN(t))return Hd(e,NaN);if(!t)return n;const a=n.getDate(),i=Hd(e,n.getTime());i.setMonth(n.getMonth()+t+1,0);return a>=i.getDate()?i:(n.setFullYear(i.getFullYear(),i.getMonth(),a),n)}function Ud(e,t){const{years:n=0,months:a=0,weeks:i=0,days:r=0,hours:o=0,minutes:s=0,seconds:c=0}=t,l=Vd(e),d=a||n?qd(l,a+12*n):l,u=1e3*(c+60*(s+60*o));return Hd(e,(r||i?Bd(d,r+7*i):d).getTime()+u)}const Wd=6048e5,Zd=864e5,Qd=6e4,Gd=36e5,Yd=1e3;let Kd={};function Xd(){return Kd}function Jd(e,t){const n=Xd(),a=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=Vd(e),r=i.getDay(),o=(r=i.getTime()?n+1:t.getTime()>=o.getTime()?n:n-1}function nu(e){const t=Vd(e);return t.setHours(0,0,0,0),t}function au(e){const t=Vd(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function iu(e){if(!(t=e,t instanceof Date||"object"==typeof t&&"[object Date]"===Object.prototype.toString.call(t)||"number"==typeof e))return!1;var t;const n=Vd(e);return!isNaN(Number(n))}function ru(e){return t=>{const n=(e?Math[e]:Math.trunc)(t);return 0===n?0:n}}function ou(e,t){return+Vd(e)-+Vd(t)}function su(e,t,n){const a=ou(e,t)/1e3;return ru(n?.roundingMethod)(a)}const cu={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function lu(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const du={date:lu({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:lu({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:lu({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},uu={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function hu(e){return(t,n)=>{let a;if("formatting"===(n?.context?String(n.context):"standalone")&&e.formattingValues){const t=e.defaultFormattingWidth||e.defaultWidth,i=n?.width?String(n.width):t;a=e.formattingValues[i]||e.formattingValues[t]}else{const t=e.defaultWidth,i=n?.width?String(n.width):e.defaultWidth;a=e.values[i]||e.values[t]}return a[e.argumentCallback?e.argumentCallback(t):t]}}function pu(e){return(t,n={})=>{const a=n.width,i=a&&e.matchPatterns[a]||e.matchPatterns[e.defaultMatchWidth],r=t.match(i);if(!r)return null;const o=r[0],s=a&&e.parsePatterns[a]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(s)?function(e,t){for(let n=0;ne.test(o))):function(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n;return}(s,(e=>e.test(o)));let l;l=e.valueCallback?e.valueCallback(c):c,l=n.valueCallback?n.valueCallback(l):l;return{value:l,rest:t.slice(o.length)}}}var mu;const gu={code:"en-US",formatDistance:(e,t,n)=>{let a;const i=cu[e];return a="string"==typeof i?i:1===t?i.one:i.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+a:a+" ago":a},formatLong:du,formatRelative:(e,t,n,a)=>uu[e],localize:{ordinalNumber:(e,t)=>{const n=Number(e),a=n%100;if(a>20||a<10)switch(a%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:hu({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:hu({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:e=>e-1}),month:hu({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:hu({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:hu({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(mu={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)},(e,t={})=>{const n=e.match(mu.matchPattern);if(!n)return null;const a=n[0],i=e.match(mu.parsePattern);if(!i)return null;let r=mu.valueCallback?mu.valueCallback(i[0]):i[0];return r=t.valueCallback?t.valueCallback(r):r,{value:r,rest:e.slice(a.length)}}),era:pu({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:pu({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:e=>e+1}),month:pu({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:pu({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:pu({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function fu(e){const t=Vd(e),n=function(e,t){const n=nu(e),a=nu(t),i=+n-au(n),r=+a-au(a);return Math.round((i-r)/Zd)}(t,function(e){const t=Vd(e),n=Hd(e,0);return n.setFullYear(t.getFullYear(),0,1),n.setHours(0,0,0,0),n}(t));return n+1}function _u(e){const t=Vd(e),n=+eu(t)-+function(e){const t=tu(e),n=Hd(e,0);return n.setFullYear(t,0,4),n.setHours(0,0,0,0),eu(n)}(t);return Math.round(n/Wd)+1}function vu(e,t){const n=Vd(e),a=n.getFullYear(),i=Xd(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,o=Hd(e,0);o.setFullYear(a+1,0,r),o.setHours(0,0,0,0);const s=Jd(o,t),c=Hd(e,0);c.setFullYear(a,0,r),c.setHours(0,0,0,0);const l=Jd(c,t);return n.getTime()>=s.getTime()?a+1:n.getTime()>=l.getTime()?a:a-1}function yu(e,t){const n=Vd(e),a=+Jd(n,t)-+function(e,t){const n=Xd(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,i=vu(e,t),r=Hd(e,0);return r.setFullYear(i,0,a),r.setHours(0,0,0,0),Jd(r,t)}(n,t);return Math.round(a/Wd)+1}function bu(e,t){return(e<0?"-":"")+Math.abs(e).toString().padStart(t,"0")}const wu={y(e,t){const n=e.getFullYear(),a=n>0?n:1-n;return bu("yy"===t?a%100:a,t.length)},M(e,t){const n=e.getMonth();return"M"===t?String(n+1):bu(n+1,2)},d:(e,t)=>bu(e.getDate(),t.length),a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];default:return"am"===n?"a.m.":"p.m."}},h:(e,t)=>bu(e.getHours()%12||12,t.length),H:(e,t)=>bu(e.getHours(),t.length),m:(e,t)=>bu(e.getMinutes(),t.length),s:(e,t)=>bu(e.getSeconds(),t.length),S(e,t){const n=t.length,a=e.getMilliseconds();return bu(Math.trunc(a*Math.pow(10,n-3)),t.length)}},xu="midnight",Cu="noon",Mu="morning",ku="afternoon",Su="evening",Eu="night",$u={G:function(e,t,n){const a=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(a,{width:"abbreviated"});case"GGGGG":return n.era(a,{width:"narrow"});default:return n.era(a,{width:"wide"})}},y:function(e,t,n){if("yo"===t){const t=e.getFullYear(),a=t>0?t:1-t;return n.ordinalNumber(a,{unit:"year"})}return wu.y(e,t)},Y:function(e,t,n,a){const i=vu(e,a),r=i>0?i:1-i;if("YY"===t){return bu(r%100,2)}return"Yo"===t?n.ordinalNumber(r,{unit:"year"}):bu(r,t.length)},R:function(e,t){return bu(tu(e),t.length)},u:function(e,t){return bu(e.getFullYear(),t.length)},Q:function(e,t,n){const a=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(a);case"QQ":return bu(a,2);case"Qo":return n.ordinalNumber(a,{unit:"quarter"});case"QQQ":return n.quarter(a,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(a,{width:"narrow",context:"formatting"});default:return n.quarter(a,{width:"wide",context:"formatting"})}},q:function(e,t,n){const a=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(a);case"qq":return bu(a,2);case"qo":return n.ordinalNumber(a,{unit:"quarter"});case"qqq":return n.quarter(a,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(a,{width:"narrow",context:"standalone"});default:return n.quarter(a,{width:"wide",context:"standalone"})}},M:function(e,t,n){const a=e.getMonth();switch(t){case"M":case"MM":return wu.M(e,t);case"Mo":return n.ordinalNumber(a+1,{unit:"month"});case"MMM":return n.month(a,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(a,{width:"narrow",context:"formatting"});default:return n.month(a,{width:"wide",context:"formatting"})}},L:function(e,t,n){const a=e.getMonth();switch(t){case"L":return String(a+1);case"LL":return bu(a+1,2);case"Lo":return n.ordinalNumber(a+1,{unit:"month"});case"LLL":return n.month(a,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(a,{width:"narrow",context:"standalone"});default:return n.month(a,{width:"wide",context:"standalone"})}},w:function(e,t,n,a){const i=yu(e,a);return"wo"===t?n.ordinalNumber(i,{unit:"week"}):bu(i,t.length)},I:function(e,t,n){const a=_u(e);return"Io"===t?n.ordinalNumber(a,{unit:"week"}):bu(a,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getDate(),{unit:"date"}):wu.d(e,t)},D:function(e,t,n){const a=fu(e);return"Do"===t?n.ordinalNumber(a,{unit:"dayOfYear"}):bu(a,t.length)},E:function(e,t,n){const a=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(a,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(a,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},e:function(e,t,n,a){const i=e.getDay(),r=(i-a.weekStartsOn+8)%7||7;switch(t){case"e":return String(r);case"ee":return bu(r,2);case"eo":return n.ordinalNumber(r,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(e,t,n,a){const i=e.getDay(),r=(i-a.weekStartsOn+8)%7||7;switch(t){case"c":return String(r);case"cc":return bu(r,t.length);case"co":return n.ordinalNumber(r,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(e,t,n){const a=e.getDay(),i=0===a?7:a;switch(t){case"i":return String(i);case"ii":return bu(i,t.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(a,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(a,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},a:function(e,t,n){const a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(e,t,n){const a=e.getHours();let i;switch(i=12===a?Cu:0===a?xu:a/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(i,{width:"narrow",context:"formatting"});default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},B:function(e,t,n){const a=e.getHours();let i;switch(i=a>=17?Su:a>=12?ku:a>=4?Mu:Eu,t){case"B":case"BB":case"BBB":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(i,{width:"narrow",context:"formatting"});default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){let t=e.getHours()%12;return 0===t&&(t=12),n.ordinalNumber(t,{unit:"hour"})}return wu.h(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getHours(),{unit:"hour"}):wu.H(e,t)},K:function(e,t,n){const a=e.getHours()%12;return"Ko"===t?n.ordinalNumber(a,{unit:"hour"}):bu(a,t.length)},k:function(e,t,n){let a=e.getHours();return 0===a&&(a=24),"ko"===t?n.ordinalNumber(a,{unit:"hour"}):bu(a,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):wu.m(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getSeconds(),{unit:"second"}):wu.s(e,t)},S:function(e,t){return wu.S(e,t)},X:function(e,t,n){const a=e.getTimezoneOffset();if(0===a)return"Z";switch(t){case"X":return zu(a);case"XXXX":case"XX":return Iu(a);default:return Iu(a,":")}},x:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"x":return zu(a);case"xxxx":case"xx":return Iu(a);default:return Iu(a,":")}},O:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+Au(a,":");default:return"GMT"+Iu(a,":")}},z:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+Au(a,":");default:return"GMT"+Iu(a,":")}},t:function(e,t,n){return bu(Math.trunc(e.getTime()/1e3),t.length)},T:function(e,t,n){return bu(e.getTime(),t.length)}};function Au(e,t=""){const n=e>0?"-":"+",a=Math.abs(e),i=Math.trunc(a/60),r=a%60;return 0===r?n+String(i):n+String(i)+t+bu(r,2)}function zu(e,t){if(e%60==0){return(e>0?"-":"+")+bu(Math.abs(e)/60,2)}return Iu(e,t)}function Iu(e,t=""){const n=e>0?"-":"+",a=Math.abs(e);return n+bu(Math.trunc(a/60),2)+t+bu(a%60,2)}const Tu=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},ju=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},Ou={p:ju,P:(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],a=n[1],i=n[2];if(!i)return Tu(e,t);let r;switch(a){case"P":r=t.dateTime({width:"short"});break;case"PP":r=t.dateTime({width:"medium"});break;case"PPP":r=t.dateTime({width:"long"});break;default:r=t.dateTime({width:"full"})}return r.replace("{{date}}",Tu(a,t)).replace("{{time}}",ju(i,t))}},Du=/^D+$/,Ru=/^Y+$/,Pu=["D","DD","YY","YYYY"];function Lu(e){return Du.test(e)}function Nu(e){return Ru.test(e)}function Fu(e,t,n){const a=function(e,t,n){const a="Y"===e[0]?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${a} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}(e,t,n);if(console.warn(a),Pu.includes(e))throw new RangeError(a)}const Vu=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Hu=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Bu=/^'([^]*?)'?$/,qu=/''/g,Uu=/[a-zA-Z]/;function Wu(e,t,n){const a=Xd(),i=n?.locale??a.locale??gu,r=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,o=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??a.weekStartsOn??a.locale?.options?.weekStartsOn??0,s=Vd(e);if(!iu(s))throw new RangeError("Invalid time value");let c=t.match(Hu).map((e=>{const t=e[0];if("p"===t||"P"===t){return(0,Ou[t])(e,i.formatLong)}return e})).join("").match(Vu).map((e=>{if("''"===e)return{isToken:!1,value:"'"};const t=e[0];if("'"===t)return{isToken:!1,value:Zu(e)};if($u[t])return{isToken:!0,value:e};if(t.match(Uu))throw new RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return{isToken:!1,value:e}}));i.localize.preprocessor&&(c=i.localize.preprocessor(s,c));const l={firstWeekContainsDate:r,weekStartsOn:o,locale:i};return c.map((a=>{if(!a.isToken)return a.value;const r=a.value;(!n?.useAdditionalWeekYearTokens&&Nu(r)||!n?.useAdditionalDayOfYearTokens&&Lu(r))&&Fu(r,t,String(e));return(0,$u[r[0]])(s,r,i.localize,l)})).join("")}function Zu(e){const t=e.match(Bu);return t?t[1].replace(qu,"'"):e}function Qu(e,t){const{years:n=0,months:a=0,weeks:i=0,days:r=0,hours:o=0,minutes:s=0,seconds:c=0}=t,l=function(e,t){return qd(e,-t)}(e,a+12*n),d=function(e,t){return Bd(e,-t)}(l,r+7*i),u=1e3*(c+60*(s+60*o));return Hd(e,d.getTime()-u)}function Gu(e,t){return e===t||e!=e&&t!=t}function Yu(e,t){for(var n=e.length;n--;)if(Gu(e[n][0],t))return n;return-1}var Ku=Array.prototype.splice;function Xu(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1},Xu.prototype.set=function(e,t){var n=this.__data__,a=Yu(n,e);return a<0?(++this.size,n.push([e,t])):n[a][1]=t,this};var Ju="object"==typeof global&&global&&global.Object===Object&&global,eh="object"==typeof self&&self&&self.Object===Object&&self,th=Ju||eh||Function("return this")(),nh=th.Symbol,ah=Object.prototype,ih=ah.hasOwnProperty,rh=ah.toString,oh=nh?nh.toStringTag:void 0;var sh=Object.prototype.toString;var ch="[object Null]",lh="[object Undefined]",dh=nh?nh.toStringTag:void 0;function uh(e){return null==e?void 0===e?lh:ch:dh&&dh in Object(e)?function(e){var t=ih.call(e,oh),n=e[oh];try{e[oh]=void 0;var a=!0}catch(e){}var i=rh.call(e);return a&&(t?e[oh]=n:delete e[oh]),i}(e):function(e){return sh.call(e)}(e)}function hh(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}var ph="[object AsyncFunction]",mh="[object Function]",gh="[object GeneratorFunction]",fh="[object Proxy]";function _h(e){if(!hh(e))return!1;var t=uh(e);return t==mh||t==gh||t==ph||t==fh}var vh,yh=th["__core-js_shared__"],bh=(vh=/[^.]+$/.exec(yh&&yh.keys&&yh.keys.IE_PROTO||""))?"Symbol(src)_1."+vh:"";var wh=Function.prototype.toString;function xh(e){if(null!=e){try{return wh.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var Ch=/^\[object .+?Constructor\]$/,Mh=Function.prototype,kh=Object.prototype,Sh=Mh.toString,Eh=kh.hasOwnProperty,$h=RegExp("^"+Sh.call(Eh).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ah(e){return!(!hh(e)||(t=e,bh&&bh in t))&&(_h(e)?$h:Ch).test(xh(e));var t}function zh(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return Ah(n)?n:void 0}var Ih=zh(th,"Map"),Th=zh(Object,"create");var jh=Object.prototype.hasOwnProperty;var Oh=Object.prototype.hasOwnProperty;function Dh(e){var t=-1,n=null==e?0:e.length;for(this.clear();++ts))return!1;var l=r.get(e),d=r.get(t);if(l&&d)return l==t&&d==e;var u=-1,h=!0,p=n&Bh?new Nh:void 0;for(r.set(e,t),r.set(t,e);++u-1&&e%1==0&&e-1&&e%1==0&&e<=Ap}var Ip={};function Tp(e){return function(t){return e(t)}}Ip["[object Float32Array]"]=Ip["[object Float64Array]"]=Ip["[object Int8Array]"]=Ip["[object Int16Array]"]=Ip["[object Int32Array]"]=Ip["[object Uint8Array]"]=Ip["[object Uint8ClampedArray]"]=Ip["[object Uint16Array]"]=Ip["[object Uint32Array]"]=!0,Ip["[object Arguments]"]=Ip["[object Array]"]=Ip["[object ArrayBuffer]"]=Ip["[object Boolean]"]=Ip["[object DataView]"]=Ip["[object Date]"]=Ip["[object Error]"]=Ip["[object Function]"]=Ip["[object Map]"]=Ip["[object Number]"]=Ip["[object Object]"]=Ip["[object RegExp]"]=Ip["[object Set]"]=Ip["[object String]"]=Ip["[object WeakMap]"]=!1;var jp="object"==typeof exports&&exports&&!exports.nodeType&&exports,Op=jp&&"object"==typeof module&&module&&!module.nodeType&&module,Dp=Op&&Op.exports===jp&&Ju.process,Rp=function(){try{var e=Op&&Op.require&&Op.require("util").types;return e||Dp&&Dp.binding&&Dp.binding("util")}catch(e){}}(),Pp=Rp,Lp=Pp&&Pp.isTypedArray,Np=Lp?Tp(Lp):function(e){return fp(e)&&zp(e.length)&&!!Ip[uh(e)]},Fp=Object.prototype.hasOwnProperty;function Vp(e,t){var n=dp(e),a=!n&&wp(e),i=!n&&!a&&kp(e),r=!n&&!a&&!i&&Np(e),o=n||a||i||r,s=o?function(e,t){for(var n=-1,a=Array(e);++n0){if(++og>=800)return arguments[0]}else og=0;return rg.apply(void 0,arguments)});function lg(e,t){return cg(function(e,t,n){return t=tg(void 0===t?e.length-1:t,0),function(){for(var a=arguments,i=-1,r=tg(a.length-t,0),o=Array(r);++i1?n[i-1]:void 0,o=i>2?n[2]:void 0;for(r=e.length>3&&"function"==typeof r?(i--,r):void 0,o&&dg(n[0],n[1],o)&&(r=i<3?void 0:r,i=1),t=Object(t);++a-1}function Ng(e,t,n){for(var a=-1,i=null==e?0:e.length;++a=Vg){var l=t?null:Fg(e);if(l)return Zh(l);o=!1,i=Vh,c=new Nh}else c=t?[]:s;e:for(;++ae[0].toUpperCase()+e.substring(1))).join(" ")}function Ug(e,t,n){const a=e[t];return e.splice(t,1),e.splice(n,0,a),e}const Wg=e=>Array.isArray(e)?e:[e],Zg=e=>e instanceof Set?e:new Set(Wg(e));function Qg(e,t,n){return!function(e,t,n){var a=(n="function"==typeof n?n:void 0)?n(e,t):void 0;return void 0===a?bm(e,t,void 0,n):!!a}(e,t,n)}function Gg(e,t=console.warn){e instanceof zs&&e.context?t(e,e.context):t("object"==typeof e&&"message"in e?e.message:e)}const Yg=()=>window.matchMedia("(hover: hover) and (pointer: fine)").matches,Kg=(e,t)=>Wu(e,"yyyy-MM-dd HH:mm"+(t?":ss":"")),Xg=e=>Wu(e,"yyyy-MM-dd"),Jg=(e,t)=>{window.requestIdleCallback?window.requestIdleCallback(e,{...t&&{timeout:t}}):e()};function ef(e,t){const n=function(e,t,n){const a=ou(e,t)/Gd;return ru(n?.roundingMethod)(a)}(t,e),a=function(e,t,n){const a=ou(e,t)/Qd;return ru(n?.roundingMethod)(a)}(t,e)-60*n;let i="";return n&&(i+=`${n}h `),a&&(i+=`${a}m `),i+=`${su(t,e)-60*n*60-60*a}s`,i}const tf=async(e,t)=>await Promise.all(Array.from(e).map((e=>t(e)))),nf=e=>new Date(`${e}T00:00:00`),af=async e=>{await new Promise((t=>setTimeout(t,1e3*e)))},rf=e=>!isNaN(e.getTime()),of=(e,t,n,a)=>{t?e.setAttribute(n,a??""):e.removeAttribute(n)},sf=e=>!!e,cf=e=>e instanceof HTMLElement,lf=e=>(e instanceof HTMLSlotElement?e.assignedElements({flatten:!0}):[...e.children]).filter(cf),df=e=>e?.ratio&&2===e.ratio.length?`${e.ratio[0]} / ${e.ratio[1]}`:e?.defaultStatic?"16 / 9":"auto",uf=e=>({"aspect-ratio":df(e)}),hf=e=>{if(Array.isArray(e))return e.filter((e=>void 0!==e)).map((e=>hf(e)));if("object"==typeof e&&null!==e){const t={};for(const n in e)t[n]=hf(e[n]);return t}return e},pf=(e,t,n)=>Rg(e,n)===Rg(t,n);function mf(e){if(!e)return null;const t=Ic.safeParse(e);return t.success?t.data:null}function gf(e,t){return{action:"fire-dom-event",frigate_card_action:e,...t?.cardID&&{card_id:t.cardID}}}function ff(e,t,n){return{action:"fire-dom-event",frigate_card_action:e,camera:t,...n?.cardID&&{card_id:n.cardID}}}function _f(e,t,n){return{action:"fire-dom-event",frigate_card_action:"media_player",media_player:e,media_player_action:t,...n?.cardID&&{card_id:n.cardID}}}function vf(e){return{action:"fire-dom-event",frigate_card_action:"ptz_multi",...e?.cardID&&{card_id:e.cardID},...e?.ptzAction&&{ptz_action:e.ptzAction},...e?.ptzPhase&&{ptz_phase:e.ptzPhase},...e?.ptzPreset&&{ptz_preset:e.ptzPreset},...e?.targetID&&{target_id:e.targetID}}}function yf(e,t){return e&&t?"tap"===e&&t.tap_action?t.tap_action:"hold"===e&&t.hold_action?t.hold_action:"double_tap"===e&&t.double_tap_action?t.double_tap_action:"end_tap"===e&&t.end_tap_action?t.end_tap_action:"start_tap"===e&&t.start_tap_action?t.start_tap_action:null:null}const bf=e=>Wg(e).some((e=>function(e){return void 0!==e&&"none"!==e.action}(e))),wf=e=>{e.stopPropagation()};class xf{constructor(){this._timer=null,this._repeated=!1}stop(){this._timer&&(this._repeated?window.clearInterval(this._timer):window.clearTimeout(this._timer),this._timer=null)}isRunning(){return null!==this._timer}start(e,t){this.stop(),this._timer=window.setTimeout((()=>{this._timer=null,t()}),1e3*e),this._repeated=!1}startRepeated(e,t){this.stop(),this._timer=window.setInterval((()=>{t()}),1e3*e),this._repeated=!0}}class Cf extends HTMLElement{constructor(){super(...arguments),this.holdTime=.4,this.holdTimer=new xf,this.doubleClickTimer=new xf,this.held=!1,this.started=!1}connectedCallback(){["touchcancel","mouseout","mouseup","touchmove","mousewheel","wheel","scroll"].forEach((e=>{document.addEventListener(e,(()=>{this.holdTimer.stop()}),{passive:!0})}))}bind(e,t){if(e.actionHandlerOptions)return void(e.actionHandlerOptions=t);e.actionHandlerOptions=t,e.addEventListener("contextmenu",(e=>{const t=e||window.event;return t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation(),t.cancelBubble=!0,t.returnValue=!1,!1}));const n=()=>{this.held=!1,this.holdTimer.start(this.holdTime,(()=>{this.held=!0})),this.started||(this.started=!0,et(e,"action",{action:"start_tap"}))},a=t=>{this.holdTimer.stop(),this.started&&(this.started=!1,et(e,"action",{action:"end_tap"}))},i=t=>{const n=e.actionHandlerOptions;n?.allowPropagation||wf(t),["touchend","touchcancel"].includes(t.type)&&!this.held||(a(),n?.hasHold&&this.held?et(e,"action",{action:"hold"}):n?.hasDoubleClick?"click"===t.type&&t.detail<2||!this.doubleClickTimer.isRunning()?this.doubleClickTimer.start(.25,(()=>et(e,"action",{action:"tap"}))):(this.doubleClickTimer.stop(),et(e,"action",{action:"double_tap"})):et(e,"action",{action:"tap"}))};e.addEventListener("touchstart",n,{passive:!0}),e.addEventListener("touchend",i),e.addEventListener("touchcancel",i),e.addEventListener("mousedown",n,{passive:!0}),e.addEventListener("click",i),e.addEventListener("keyup",(e=>{"Enter"===e.key&&i(e)})),e.addEventListener("mouseleave",a)}}customElements.define("action-handler-frigate-card",Cf);const Mf=(e,t)=>{const n=(()=>{const e=document.body;if(e.querySelector("action-handler-frigate-card"))return e.querySelector("action-handler-frigate-card");const t=document.createElement("action-handler-frigate-card");return e.appendChild(t),t})();n&&n.bind(e,t)},kf=ge(class extends fe{update(e,[t]){return Mf(e.element,t),U}render(e){}});var Sf=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)lp(t,gp(e)),e=Pm(e);return t}:hp;function Ef(e){return up(e,Km,Sf)}var $f=Object.prototype.hasOwnProperty;var Af=/\w*$/;var zf=nh?nh.prototype:void 0,If=zf?zf.valueOf:void 0;var Tf="[object Boolean]",jf="[object Date]",Of="[object Map]",Df="[object Number]",Rf="[object RegExp]",Pf="[object Set]",Lf="[object String]",Nf="[object Symbol]",Ff="[object ArrayBuffer]",Vf="[object DataView]",Hf="[object Float32Array]",Bf="[object Float64Array]",qf="[object Int8Array]",Uf="[object Int16Array]",Wf="[object Int32Array]",Zf="[object Uint8Array]",Qf="[object Uint8ClampedArray]",Gf="[object Uint16Array]",Yf="[object Uint32Array]";function Kf(e,t,n){var a,i,r,o=e.constructor;switch(t){case Ff:return Tm(e);case Tf:case jf:return new o(+e);case Vf:return function(e,t){var n=t?Tm(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case Hf:case Bf:case qf:case Uf:case Wf:case Zf:case Qf:case Gf:case Yf:return jm(e,n);case Of:return new o;case Df:case Lf:return new o(e);case Rf:return(r=new(i=e).constructor(i.source,Af.exec(i))).lastIndex=i.lastIndex,r;case Pf:return new o;case Nf:return a=e,If?Object(If.call(a)):{}}}var Xf=Pp&&Pp.isMap,Jf=Xf?Tp(Xf):function(e){return fp(e)&&"[object Map]"==pm(e)};var e_=Pp&&Pp.isSet,t_=e_?Tp(e_):function(e){return fp(e)&&"[object Set]"==pm(e)},n_=1,a_=2,i_=4,r_="[object Arguments]",o_="[object Function]",s_="[object GeneratorFunction]",c_="[object Object]",l_={};function d_(e,t,n,a,i,r){var o,s=t&n_,c=t&a_,l=t&i_;if(n&&(o=i?n(e,a,i,r):n(e)),void 0!==o)return o;if(!hh(e))return e;var d=dp(e);if(d){if(o=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&$f.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!s)return Om(e,o)}else{var u=pm(e),h=u==o_||u==s_;if(kp(e))return Im(e,s);if(u==c_||u==r_||h&&!i){if(o=c||h?{}:Lm(e),!s)return c?function(e,t){return Qm(e,Sf(e),t)}(e,function(e,t){return e&&Qm(t,Km(t),e)}(o,e)):function(e,t){return Qm(e,gp(e),t)}(e,function(e,t){return e&&Qm(t,Qp(t),e)}(o,e))}else{if(!l_[u])return i?e:{};o=Kf(e,u,s)}}r||(r=new Lh);var p=r.get(e);if(p)return p;r.set(e,o),t_(e)?e.forEach((function(a){o.add(d_(a,t,n,a,e,r))})):Jf(e)&&e.forEach((function(a,i){o.set(i,d_(a,t,n,i,e,r))}));var m=d?void 0:(l?c?Ef:Gp:c?Km:Qp)(e);return function(e,t){for(var n=-1,a=null==e?0:e.length;++nvoid 0===globalThis.DOMException?new __(e):new DOMException(e),y_=e=>{const t=void 0===e.reason?v_("This operation was aborted."):e.reason;return t instanceof Error?t:v_(t)};class b_{#e=[];enqueue(e,t){const n={priority:(t={priority:0,...t}).priority,run:e};if(this.size&&this.#e[this.size-1].priority>=t.priority)return void this.#e.push(n);const a=function(e,t,n){let a=0,i=e.length;for(;i>0;){const r=Math.trunc(i/2);let o=a+r;n(e[o],t)<=0?(a=++o,i-=r+1):i=r}return a}(this.#e,n,((e,t)=>t.priority-e.priority));this.#e.splice(a,0,n)}dequeue(){const e=this.#e.shift();return e?.run}filter(e){return this.#e.filter((t=>t.priority===e.priority)).map((e=>e.run))}get size(){return this.#e.length}}class w_ extends g_{#t;#n;#a=0;#i;#r;#o=0;#s;#c;#e;#l;#d=0;#u;#h;#p;timeout;constructor(e){if(super(),!("number"==typeof(e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:b_,...e}).intervalCap&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${typeof e.intervalCap})`);if(void 0===e.interval||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??""}\` (${typeof e.interval})`);this.#t=e.carryoverConcurrencyCount,this.#n=e.intervalCap===Number.POSITIVE_INFINITY||0===e.interval,this.#i=e.intervalCap,this.#r=e.interval,this.#e=new e.queueClass,this.#l=e.queueClass,this.concurrency=e.concurrency,this.timeout=e.timeout,this.#p=!0===e.throwOnTimeout,this.#h=!1===e.autoStart}get#m(){return this.#n||this.#a{this.#v()}),t)),!0;this.#a=this.#t?this.#d:0}return!1}#_(){if(0===this.#e.size)return this.#s&&clearInterval(this.#s),this.#s=void 0,this.emit("empty"),0===this.#d&&this.emit("idle"),!1;if(!this.#h){const e=!this.#w;if(this.#m&&this.#g){const t=this.#e.dequeue();return!!t&&(this.emit("active"),t(),e&&this.#b(),!0)}}return!1}#b(){this.#n||void 0!==this.#s||(this.#s=setInterval((()=>{this.#y()}),this.#r),this.#o=Date.now()+this.#r)}#y(){0===this.#a&&0===this.#d&&this.#s&&(clearInterval(this.#s),this.#s=void 0),this.#a=this.#t?this.#d:0,this.#x()}#x(){for(;this.#_(););}get concurrency(){return this.#u}set concurrency(e){if(!("number"==typeof e&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#u=e,this.#x()}async#C(e){return new Promise(((t,n)=>{e.addEventListener("abort",(()=>{n(e.reason)}),{once:!0})}))}async add(e,t={}){return t={timeout:this.timeout,throwOnTimeout:this.#p,...t},new Promise(((n,a)=>{this.#e.enqueue((async()=>{this.#d++,this.#a++;try{t.signal?.throwIfAborted();let a=e({signal:t.signal});t.timeout&&(a=function(e,t){const{milliseconds:n,fallback:a,message:i,customTimers:r={setTimeout:setTimeout,clearTimeout:clearTimeout}}=t;let o;const s=new Promise(((s,c)=>{if("number"!=typeof n||1!==Math.sign(n))throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${n}\``);if(t.signal){const{signal:e}=t;e.aborted&&c(y_(e)),e.addEventListener("abort",(()=>{c(y_(e))}))}if(n===Number.POSITIVE_INFINITY)return void e.then(s,c);const l=new f_;o=r.setTimeout.call(void 0,(()=>{if(a)try{s(a())}catch(e){c(e)}else"function"==typeof e.cancel&&e.cancel(),!1===i?s():i instanceof Error?c(i):(l.message=i??`Promise timed out after ${n} milliseconds`,c(l))}),n),(async()=>{try{s(await e)}catch(e){c(e)}})()})),c=s.finally((()=>{c.clear()}));return c.clear=()=>{r.clearTimeout.call(void 0,o),o=void 0},c}(Promise.resolve(a),{milliseconds:t.timeout})),t.signal&&(a=Promise.race([a,this.#C(t.signal)]));const i=await a;n(i),this.emit("completed",i)}catch(e){if(e instanceof f_&&!t.throwOnTimeout)return void n();a(e),this.emit("error",e)}finally{this.#f()}}),t),this.emit("add"),this.#_()}))}async addAll(e,t){return Promise.all(e.map((async e=>this.add(e,t))))}start(){return this.#h?(this.#h=!1,this.#x(),this):this}pause(){this.#h=!0}clear(){this.#e=new this.#l}async onEmpty(){0!==this.#e.size&&await this.#M("empty")}async onSizeLessThan(e){this.#e.sizethis.#e.size{const a=()=>{t&&!t()||(this.off(e,a),n())};this.on(e,a)}))}get size(){return this.#e.size}sizeBy(e){return this.#e.filter(e).length}get pending(){return this.#d}get isPaused(){return this.#h}}var x_={frigate_card:"Frigate card",frigate_card_description:"A Lovelace card for use with Frigate",live:"Live",no_media:"No media to display",recordings:"Recordings",version:"Version"},C_={cameras:{camera_entity:"Camera Entity",capabilities:{capabilities:{clips:"Clips","favorite-events":"Favorite Events","favorite-recordings":"Favorite Recordings",live:"Live",menu:"Menu",ptz:"PTZ",recordings:"Recordings",seek:"Seeking",snapshots:"Snapshots",substream:"Substream"},disable:"Disable",disable_except:"Disable except",editor_label:"Camera capabilities"},cast:{dashboard:{dashboard_path:"Dashboard path",view_path:"View path"},editor_label:"Cast options",method:"Cast method",methods:{dashboard:"Dashboard",standard:"Standard"}},dependencies:{all_cameras:"Show events for all cameras with this camera",cameras:"Show events for specific cameras with this camera",editor_label:"Dependency options"},dimensions:{aspect_ratio:"Static aspect ratio",editor_label:"Camera dimensions",layout:{editor_label:"Camera Layout",fit:"Layout fit",fits:{contain:"Media is contained/letterboxed",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",y:"Vertical placement percentage"},view_box:{bottom:"Bottom inset percentage",editor_label:"Layout View Box",left:"Left inset percentage",right:"Right inset percentage",top:"Top inset percentage"},zoom:"Zoom factor"}},engines:{editor_label:"Camera engine options"},frigate:{camera_name:"Frigate camera name (Autodetected from entity)",client_id:"Frigate client id (For >1 Frigate server)",editor_label:"Frigate options",labels:"Frigate labels/object filters",url:"Frigate server URL",zones:"Frigate zones"},go2rtc:{editor_label:"go2rtc Options",modes:{editor_label:"go2rtc Modes",mjpeg:"Motion JPEG (MJPEG)",mp4:"MPEG-4 (MP4)",mse:"Media Source Extensions (MSE)",webrtc:"Web Real-Time Communication (WebRTC)"},stream:"go2rtc stream name"},icon:"Icon for this camera (Autodetected from entity)",id:"Unique id for this camera in this card",image:{editor_label:"Image Options",refresh_seconds:"Number of seconds after which to refresh live image (0=never)",url:"Image URL to use instead of camera entity snapshot"},live_provider:"Live view provider for this camera",live_provider_options:{editor_label:"Live provider options"},live_providers:{auto:"Automatic",go2rtc:"go2rtc",ha:"Home Assistant video stream (i.e. HLS, LL-HLS, WebRTC via HA)",image:"Home Assistant images",jsmpeg:"JSMpeg","webrtc-card":"WebRTC Card (i.e. AlexxIT's WebRTC Card)"},motioneye:{editor_label:"MotionEye options",images:{directory_pattern:"Images directory pattern",file_pattern:"Images file pattern"},movies:{directory_pattern:"Movies directory pattern",file_pattern:"Movies file pattern"},url:"MotionEye UI URL"},proxy:{dynamic:"Dynamic proxying",editor_label:"Camera proxying",media:{auto:"Media proxying automatically configured",editor_label:"Media proxying",false:"Media proxying disabled",true:"Media proxying enabled"},ssl_ciphers:{auto:"SSL ciphers automatically configured",default:"Default SSL ciphers",editor_label:"SSL ciphers",insecure:"Insecure SSL ciphers",intermediate:"Intermediate SSL ciphers",modern:"Modern SSL ciphers"},ssl_verification:{auto:"SSL verification automatically configured",editor_label:"SSL verification",false:"SSL verification disabled",true:"SSL verification enabled"}},reolink:{editor_label:"Reolink options",media_resolution:{editor_label:"Media Resolution",high:"High Resolution",low:"Low Resolution"},url:"Reolink UI URL"},title:"Title for this camera (Autodetected from entity)",triggers:{editor_label:"Trigger options",entities:"Trigger from other entities",events:{clips:"Events with new clips",editor_label:"Trigger Events",events:"All events",snapshots:"Events with new snapshots"},motion:"Trigger by auto-detecting the motion sensor",occupancy:"Trigger by auto-detecting the occupancy sensor"},webrtc_card:{editor_label:"WebRTC Card Options",entity:"WebRTC Card Camera Entity (Not a Frigate camera)",url:"WebRTC Card Camera URL"}},common:{controls:{builtin:"Built-in video controls",filter:{editor_label:"Media Filter",mode:"Filter mode",modes:{left:"Media filter in a drawer to the left",none:"No media filter",right:"Media filter in a drawer to the right"}},next_previous:{editor_label:"Next & Previous",size:"Next & previous control size in pixels",style:"Next & previous control style",styles:{chevrons:"Chevrons",icons:"Icons",none:"None",thumbnails:"Thumbnails"}},thumbnails:{editor_label:"Thumbnails",events_media_type:"Whether to show event thumbnails of clips or snapshots",events_media_types:{clips:"Clip thumbnails",snapshots:"Snapshot thumbnails"},media_type:"Whether to show thumnails of events or recordings",media_types:{events:"Events",recordings:"Recordings"},mode:"Thumbnails mode",modes:{above:"Thumbnails above",below:"Thumbnails below",left:"Thumbnails in a drawer to the left",none:"No thumbnails",right:"Thumbnails in a drawer to the right"},show_details:"Show details with thumbnails",show_download_control:"Show download control on thumbnails",show_favorite_control:"Show favorite control on thumbnails",show_timeline_control:"Show timeline control on thumbnails",size:"Thumbnails size in pixels"},timeline:{editor_label:"Mini Timeline",mode:"Mode",modes:{above:"Above",below:"Below",none:"None"},pan_mode:"Default pan mode",pan_modes:{pan:"Pan",seek:"Pan seeks across all media","seek-in-camera":"Pan seeks within selected camera only","seek-in-media":"Pan seeks within selected media item only"}}},display:{editor_label:"Display",grid_columns:"Exact number of grid columns",grid_max_columns:"Maximum number of grid columns",grid_selected_width_factor:"Increase selected media width by this factor",mode:"Mode"},image:{entity:"Entity for use with entity mode",entity_parameters:"Query parameters added to the entity-based picture URLs (e.g. width=1920&height=1080)",mode:"Image mode",modes:{camera:"Home Assistant camera snapshot of camera entity",entity:"Entity with entity_picture attribute",screensaver:"Embedded Frigate logo",url:"Arbitrary image specified by URL"},refresh_seconds:"Number of seconds after which to refresh (0=never)",url:"Static image URL"},media_action_conditions:{all:"All opportunities",hidden:"On browser/tab hiding",microphone_mute:"On microphone mute",microphone_unmute:"On microphone unmute",never:"Never",selected:"On selection",unselected:"On unselection",visible:"On browser/tab visibility"},timeline:{clustering_threshold:"The count of events at which they are clustered (0=no clustering)",events_media_type:"The events media the timeline displays",events_media_types:{all:"All event media types",clips:"Clips",snapshots:"Snapshots"},show_recordings:"Show recordings",style:"Timeline style",styles:{ribbon:"Events on a single ribbon",stack:"Stacked & clustered events"},window_seconds:"The default length of the timeline view in seconds"}},dimensions:{aspect_ratio:"Default aspect ratio (e.g. '16:9')",aspect_ratio_mode:"Aspect ratio mode",aspect_ratio_modes:{dynamic:"Aspect ratio adjusts to media",static:"Static aspect ratio",unconstrained:"Unconstrained aspect ratio"},height:"Card height in CSS units (e.g. '500px')"},live:{auto_mute:"Automatically mute live cameras",auto_pause:"Automatically pause live cameras",auto_play:"Automatically play live cameras",auto_unmute:"Automatically unmute live cameras",controls:{editor_label:"Live Controls",ptz:{editor_label:"PTZ",hide_home:"Hide home control",hide_pan_tilt:"Hide pan & tilt control",hide_zoom:"Hide zoom control",mode:"Mode",modes:{off:"Off",on:"On"},orientation:"Orientation",orientations:{horizontal:"Horizontal",vertical:"Vertical"},position:"Position",positions:{"bottom-left":"Bottom left","bottom-right":"Bottom right","top-left":"Top left","top-right":"Top right"}}},draggable:"Live cameras view can be dragged/swiped",lazy_load:"Live cameras are lazily loaded",lazy_unload:"Live cameras are lazily unloaded",microphone:{always_connected:"Always keep the microphone connected",disconnect_seconds:"Seconds after which to disconnect microphone (0=never)",editor_label:"Microphone",enabled:"Microphone enabled",mute_after_microphone_mute_seconds:"Seconds after microphone mute to mute inbound audio"},preload:"Preload live view in the background",show_image_during_load:"Show still image while the live stream is loading",transition_effect:"Live camera transition effect",zoomable:"Live cameras can be zoomed/panned"},media_viewer:{auto_mute:"Automatically mute media",auto_pause:"Automatically pause media",auto_play:"Automatically play media",auto_unmute:"Automatically unmute media",controls:{editor_label:"Media Viewer Controls"},draggable:"Media Viewer can be dragged/swiped",lazy_load:"Media Viewer media is lazily loaded in carousel",snapshot_click_plays_clip:"Clicking on a snapshot plays a related clip",transition_effect:"Media Viewer transition effect",transition_effects:{none:"No transition",slide:"Slide transition"},zoomable:"Media Viewer can be zoomed/panned"},menu:{alignment:"Menu alignment",alignments:{bottom:"Aligned to the bottom",left:"Aligned to the left",right:"Aligned to the right",top:"Aligned to the top"},button_size:"Menu button size in pixels",buttons:{alignment:"Button alignment",alignments:{matching:"Matching the menu alignment",opposing:"Opposing the menu alignment"},camera_ui:"Camera user interface",cameras:"Cameras",clips:"Clips",display_mode:"Display mode",download:"Download",enabled:"Button enabled",expand:"Expand",frigate:"Frigate menu / Default view",fullscreen:"Fullscreen",icon:"Icon",image:"Image",live:"Live",media_player:"Send to media player",microphone:"Microphone",mute:"Mute / Unmute",permanent:"Show when the menu is hidden",play:"Play / Pause",priority:"Priority",ptz_controls:"Show PTZ controls",ptz_home:"PTZ Home",recordings:"Recordings",screenshot:"Screenshot",snapshots:"Snapshots",substreams:"Substream(s)",timeline:"Timeline",type:"Button type",types:{momentary:"Momentary",toggle:"Toggle"}},position:"Menu position",positions:{bottom:"Positioned on the bottom",left:"Positioned on the left",right:"Positioned on the right",top:"Positioned on the top"},style:"Menu style",styles:{hidden:"Hidden menu",hover:"Hover menu","hover-card":"Hover menu (card-wide)",none:"No menu",outside:"Outside menu",overlay:"Overlay menu"}},overrides:{info:"This card configuration has manually specified overrides configured which may override values shown in the visual editor, please consult the code editor to view/modify these overrides"},performance:{features:{animated_progress_indicator:"Animated Progress Indicator",editor_label:"Feature Options",max_simultaneous_engine_requests:"Max simultaneous camera engine requests",media_chunk_size:"Media chunk size"},style:{border_radius:"Curves",box_shadow:"Shadows",editor_label:"Style Options"},warning:"This card is in low profile mode so defaults have changed to optimize performance"},profiles:{casting:"Casting",editor_label:"Configuration profiles","low-performance":"Low performance",scrubbing:"Video scrubbing"},status_bar:{height:"Status bar height in pixels",items:{enabled:"Item enabled",engine:"Camera engine",live_provider:"Live provider",priority:"Item priority",resolution:"Resolution",technology:"Technology",title:"Title"},popup_seconds:"Status bar popup seconds",position:"Status bar position",positions:{bottom:"Positioned on the bottom",top:"Positioned on the top"},style:"Status bar style",styles:{hover:"Hover status bar","hover-card":"Hover status bar (card-wide)",none:"No status bar",outside:"Outside status bar",overlay:"Overlay status bar",popup:"Popup status bar"}},view:{camera_select:"View for newly selected cameras",dark_mode:"Dark mode",dark_modes:{auto:"Auto",off:"Off",on:"On"},default:"Default view",default_cycle_camera:"Cycle through cameras when default view updates",default_reset:{after_interaction:"Reset to the default view after user interaction ends",editor_label:"Default view reset behavior",entities:"Reset to the default view on entity state change",every_seconds:"Reset to default view every X seconds (0=never)",interaction_mode:"How default reset behaves when the card has human interaction",interaction_modes:{active:"Only allow reset when card has active human interaction",all:"Reset regardless of human interaction",inactive:"Only reset when card has no human interaction"}},interaction_seconds:"Seconds after user action to remain interacted with (0=never)",keyboard_shortcuts:{editor_label:"Keyboard shortcuts",enabled:"Keyboard shortcuts enabled",ptz_down:"PTZ Down",ptz_home:"PTZ Home",ptz_left:"PTZ Left",ptz_right:"PTZ Right",ptz_up:"PTZ Up",ptz_zoom_in:"PTZ Zoom In",ptz_zoom_out:"PTZ Zoom Out"},triggers:{actions:{editor_label:"Trigger actions",interaction_mode:"How to handle actions when the card has human interaction",interaction_modes:{active:"Only trigger actions when card has human interaction",all:"Trigger actions regardless of human interaction",inactive:"Only trigger actions when card has no human interaction"},trigger:"Trigger action",triggers:{default:"Change to or update default view",live:"Change to or update live view",media:"Change to the relevant media view for new media",none:"No action"},untrigger:"Untrigger action",untriggers:{default:"Change to default view/camera",none:"No action"}},editor_label:"Trigger behavior",filter_selected_camera:"Only trigger on selected camera",show_trigger_status:"Show pulsing border when triggered",untrigger_seconds:"Seconds after inactive state change to untrigger"},views:{clip:"Most recent clip",clips:"Clips gallery",current:"Current view",image:"Static image",live:"Live view",recording:"Most recent recording",recordings:"Recordings gallery",snapshot:"Most recent snapshot",snapshots:"Snapshots gallery",timeline:"Timeline view"}}},M_={grid:"Show media viewer for each camera in a grid",single:"Show single media viewer"},k_={add_new_camera:"Add new camera",button:"Button",camera:"Camera",cameras:"Cameras",cameras_secondary:"What cameras to render on this card",delete:"Delete",dimensions:"Card dimensions",dimensions_secondary:"Card dimensions & shape options",image:"Image",image_secondary:"Static image view options",live:"Live",live_secondary:"Live camera view options",media_gallery:"Media gallery",media_gallery_secondary:"Media gallery options",media_viewer:"Media viewer",media_viewer_secondary:"Viewer for static media (clips, snapshots or recordings)",menu:"Menu",menu_secondary:"Menu look & feel options",move_down:"Move down",move_up:"Move up",overrides:"Overrides are active",overrides_secondary:"Dynamic configuration overrides detected",performance:"Performance",performance_secondary:"Card performance options",profiles:"Configuration profiles",profiles_secondary:"Choose pre-configured sets of defaults",status_bar:"Status bar",status_bar_secondary:"Status bar look & feel options",timeline:"Timeline",timeline_secondary:"Event timeline options",upgrade:"Upgrade",upgrade_available:"An automatic card configuration upgrade is available",view:"View",view_secondary:"What the card should show and how to show it"},S_={ptz:{down:"Down",home:"Home",left:"Left",right:"Right",up:"Up",zoom_in:"Zoom In",zoom_out:"Zoom Out"}},E_={awaiting_live:"Waiting for live stream to load ...",awaiting_media:"Waiting for media to load",camera_initialization:"Camera initialization failed",camera_initialization_reolink:"Could not initialize Reolink camera",could_not_render_elements:"Could not render picture elements",could_not_resolve:"Could not resolve media URL",diagnostics:"Card diagnostics. Please review for confidential information prior to sharing",download_no_media:"No media to download",download_sign_failed:"Could not sign media URL for download",duplicate_camera_id:"Duplicate Frigate camera id for the following camera, use the 'id' parameter to uniquely identify cameras",empty_response:"Received empty response from Home Assistant for request",failed_response:"Failed to receive response from Home Assistant for request",failed_retain:"Could not retain event",failed_sign:"Could not sign Home Assistant URL",image_load_error:"The image could not be loaded",invalid_configuration:"Invalid configuration",invalid_configuration_no_hint:"No location hint available (bad or missing type?)",invalid_configuration_override:"Invalid override configuration",invalid_elements_config:"Invalid picture elements configuration",invalid_response:"Received invalid response from Home Assistant for request",jsmpeg_no_player:"Could not start JSMPEG player",live_camera_no_endpoint:"Could not get camera endpoint for this live provider (incomplete configuration?)",live_camera_not_found:"The configured camera_entity was not found",live_camera_unavailable:"Camera unavailable",no_camera_engine:"Could not determine suitable engine for camera",no_camera_entity:"Could not find camera entity",no_camera_entity_for_triggers:"A camera entity is required in order to autodetect triggers",no_camera_id:"Could not determine camera id for the following camera, may need to set 'id' parameter manually",no_camera_name:"Could not determine a Frigate camera name for camera (or one of its dependents), please specify either 'camera_entity' or 'camera_name'",no_dashboard_or_view:"Both 'dashboard_path' and 'view_path' parameters are required for the 'dashboard' cast method",no_live_camera:"The camera_entity parameter must be set and valid for this live provider",no_supported_camera:"The selected camera does not support this view",no_supported_cameras:"No cameras support this view",reconnecting:"Reconnecting",too_many_automations:"Too many nested automation calls, please check your configuration for loops",troubleshooting:"Check troubleshooting",unknown:"Unknown error",upgrade_available:"An automated card configuration upgrade is available, please visit the visual card editor",webrtc_card_reported_error:"WebRTC Card reported an error",webrtc_card_waiting:"Waiting for WebRTC Card to load ..."},$_={camera:"Camera",duration:"Duration",in_progress:"In Progress",score:"Score",seek:"Seek",start:"Start",tag:"Tag",what:"What",where:"Where"},A_={assign:"Assign",assigning:"Assigning",modifiers:{alt:"Alt",ctrl:"Ctrl",meta:"Meta",shift:"Shift"},unassign:"Unassign"},z_={all:"All",camera:"Camera",favorite:"Favorite",media_type:"Media Type",media_types:{clips:"Clips",recordings:"Recordings",snapshots:"Snapshots"},not_favorite:"Not Favorite",select_camera:"Select camera...",select_favorite:"Select favorite...",select_media_type:"Select media type...",select_tag:"Select tag...",select_what:"Select what...",select_when:"Select when...",select_where:"Select where...",tag:"Tag",what:"What",when:"When",whens:{custom:"Custom",past_month:"Past Month",past_week:"Past Week",today:"Today",yesterday:"Yesterday"},where:"Where"},I_={unseekable:"Seek time not found in media"},T_={camera:"Camera",duration:"Duration",events:"Events",in_progress:"In Progress",seek:"Seek",start:"Start"},j_={download:"Download media",no_thumbnail:"No thumbnail available",retain_indefinitely:"Media will be indefinitely retained",timeline:"See media in timeline"},O_={select_date:"Choose date"},D_={common:x_,config:C_,display_modes:M_,editor:k_,elements:S_,error:E_,event:$_,key_assigner:A_,media_filter:z_,media_viewer:I_,recording:T_,thumbnail:j_,timeline:O_},R_=Object.freeze({__proto__:null,common:x_,config:C_,default:D_,display_modes:M_,editor:k_,elements:S_,error:E_,event:$_,key_assigner:A_,media_filter:z_,media_viewer:I_,recording:T_,thumbnail:j_,timeline:O_});const P_="en",L_={[P_]:R_};let N_;function F_(e){const t=e=>e.replace("-","_"),n=e?.language??e?.selectedLanguage;if(n)return t(n);const a=localStorage.getItem("selectedLanguage");if(a){const e=JSON.parse(a);if(e)return t(e)}for(const e of navigator.languages){const n=t(e);if(n&&n in L_)return n}return P_}function V_(e,t="",n=""){let a="";try{a=e.split(".").reduce(((e,t)=>e[t]),L_[N_??P_])}catch(e){}return a||(a=e.split(".").reduce(((e,t)=>e[t]),L_[P_])),""!==t&&""!==n&&(a=a.replace(t,n)),a}function H_(e){return"string"==typeof e?.id&&e.id||"string"==typeof e?.camera_entity&&e.camera_entity||"object"==typeof e?.webrtc_card&&e.webrtc_card&&("string"==typeof e.webrtc_card.entity&&e.webrtc_card.entity||"string"==typeof e.webrtc_card.url&&e.webrtc_card.url)||"object"==typeof e?.go2rtc&&e.go2rtc&&"string"==typeof e.go2rtc.url&&"string"==typeof e.go2rtc.stream&&`${e.go2rtc.url}#${e.go2rtc.stream}`||"object"==typeof e?.frigate&&e.frigate&&"string"==typeof e?.frigate.camera_name&&e.frigate.camera_name||""}const B_=(e,...t)=>{e?.debug?.logging&&console.debug(...t)},q_=(e,t,n)=>"preset"===t?(n?.preset?e.ptz.presets?.[n.preset]:null)??null:n?.phase?e.ptz[`actions_${t}_${n.phase}`]??null:e.ptz[`actions_${t}`]??null,U_=(e,t,n)=>!!q_(e,t,n),W_=(e,t)=>{const n=U_(e,t,{phase:"start"})&&U_(e,t,{phase:"stop"}),a=U_(e,t);return n||a?[...n?["continuous"]:[],...a?["relative"]:[]]:null},Z_=e=>{const t=W_(e,"left"),n=W_(e,"right"),a=W_(e,"up"),i=W_(e,"down"),r=W_(e,"zoom_in"),o=W_(e,"zoom_out"),s=e.ptz.presets?Object.keys(e.ptz.presets):void 0;return t?.length||n?.length||a?.length||i?.length||r?.length||o?.length||s?.length?{...t?{left:t}:{},...n?{right:n}:{},...a?{up:a}:{},...i?{down:i}:{},...r?{zoomIn:r}:{},...o?{zoomOut:o}:{},...s?{presets:s}:{}}:null};class Q_{constructor(e,t){this._capabilities=e;for(const e of t?.disable??[])this._disable(e);for(const e of Ts)t?.disableExcept?.length&&!t.disableExcept.includes(e)&&this._disable(e)}_disable(e){delete this._capabilities[e]}matches(e){let t=!0;return"string"==typeof e&&(t&&=this.has(e)),"object"==typeof e&&e.allCapabilities&&(t&&=e.allCapabilities.every((e=>this.has(e)))),"object"==typeof e&&e.anyCapabilities&&(t&&=e.anyCapabilities.some((e=>this.has(e)))),t}has(e){return!!this._capabilities[e]}getPTZCapabilities(){return this._capabilities.ptz??null}hasPTZCapability(){return!!(this._capabilities.ptz?.down?.length||this._capabilities.ptz?.up?.length||this._capabilities.ptz?.left?.length||this._capabilities.ptz?.right?.length||this._capabilities.ptz?.zoomIn?.length||this._capabilities.ptz?.zoomOut?.length||this._capabilities.ptz?.presets?.length)}getRawCapabilities(){return this._capabilities}}function G_(e,t,n){var a=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var r=Array(i);++at||r&&o&&c&&!s&&!l||a&&o&&c||!n&&c||!i)return 1;if(!a&&!r&&!l&&e=s?c:c*("desc"==n[a]?-1:1)}return e.index-t.index}(e,t,n)}))}function Ev(e,t,n,a){return null==e?[]:(dp(t)||(t=null==t?[]:[t]),dp(n=a?void 0:n)||(n=null==n?[]:[n]),Sv(e,t,n))}async function $v(e,t,n,a=!1){let i;try{i=await e.callWS(n)}catch(e){if(!(e instanceof Error))throw new zs(V_("error.failed_response"),{request:n,response:e});throw e}if(!i)throw new zs(V_("error.empty_response"),{request:n});const r=a?t.safeParse(JSON.parse(i)):t.safeParse(i);if(!r.success)throw new zs(V_("error.invalid_response"),{request:n,response:i,invalid_keys:Rs(r.error)});return r.data}const Av=ba.lazy((()=>ba.object({title:ba.string(),media_class:ba.string(),media_content_type:ba.string(),media_content_id:ba.string(),can_play:ba.boolean(),can_expand:ba.boolean(),children_media_class:ba.string().nullable().optional(),thumbnail:ba.string().nullable(),children:ba.array(Av).nullable().optional()}))),zv="video",Iv="image",Tv=60,jv=e=>Ev(e,(e=>e._metadata?.startDate),"desc");class Ov{async walkBrowseMedias(e,t,n){return t&&t.length?(await tf(t,(async t=>await this._walkBrowseMedia(e,t,n)))).flat():[]}async _walkBrowseMedia(e,t,n){let a=[];for(const i of function(e,t,n){t=(n?dg(e,t,n):void 0===t)?1:K_(Sg(t),0);var a=null==e?0:e.length;if(!a||t<1)return[];for(var i=0,r=0,o=Array(Y_(a/t));iawait this._browseMedia(e,a,{cache:n?.cache,matcher:t.matcher,metadataGenerator:t.metadataGenerator})));for(const e of r)for(const n of e.children??[])t.matcher(n)&&a.push(n);if(t.sorter&&(a=t.sorter(a)),t.earlyExit&&t.earlyExit(a))break}const i=t.advance?t.advance(a):null;return i?.length?await this.walkBrowseMedias(e,i,n):a}async _browseMedia(e,t,n){const a="object"==typeof t?t.media_content_id:t,i=n?.cache?n.cache.get(a):null;if(i)return i;const r={type:"media_source/browse_media",media_content_id:a},o=await $v(e,Av,r);if(n?.metadataGenerator)for(const e of o.children??[])e._metadata=n.metadataGenerator(e,"object"==typeof t?t:void 0)??void 0;return n?.cache&&n.cache.set(a,o,Ud(new Date,{seconds:60})),o}}function Dv(e,t){return bm(e,t)}function Rv(e,t){return e&&e.length?function(e,t){for(var n=-1,a=e.length,i=0,r=[];++nNv(t,e)))}add(e){this._ranges.push(e),this._ranges=Vv(this._ranges)}clear(){this._ranges=[]}}class Lv{constructor(e){this._ranges=e??[]}hasCoverage(e){const t=new Date;return this._ranges.some((n=>tet.start>=e.start&&t.end<=e.end,Fv=(e,t)=>e.start>=t.start&&e.start<=t.end||e.end>=t.start&&e.end<=t.end||e.start<=t.start&&e.end>=t.end,Vv=(e,t=0)=>{const n=[];e=Ev(e,(e=>e.start),"asc");let a=null;for(const i of e){const e=i.start instanceof Date?i.start.getTime():i.start;if(!a){a={...i};continue}(a.end instanceof Date?a.end.getTime():a.end)+1e3*t>=e?i.end>a.end&&(a.end=i.end):(n.push(a),a={...i})}return a&&n.push(a),n};class Hv{constructor(){this._data=[]}get(e){const t=new Date;for(const n of this._data)if((!n.expires||t<=n.expires)&&this._contains(e,n.request))return n.response;return null}clear(){this._data=[]}has(e){return!!this.get(e)}set(e,t,n){this._data.push({request:e,response:t,expires:n}),this._expireOldRequests()}_contains(e,t){return Dv(e,t)}_expireOldRequests(){const e=new Date;this._data=this._data.filter((t=>!t.expires||e=e.start.getTime()){if(a>e.end.getTime())break;t.push(n)}}return t}getSize(){return this._data.length}expireMatches(e){this._data=this._data.filter((t=>!e(t)))}}class Uv{constructor(){this._segments=new Map}add(e,t,n){let a=this._segments.get(e);a||(a=new qv((e=>1e3*e.start_time),(e=>e.id)),this._segments.set(e,a)),a.add(t,n)}clear(){this._segments.clear()}hasCoverage(e,t){return!!this._segments.get(e)?.hasCoverage(t)}get(e,t){return this._segments.get(e)?.get(t)??null}getSize(e){return this._segments.get(e)?.getSize()??null}getCameraIDs(){return[...this._segments.keys()]}expireMatches(e,t){this._segments.get(e)?.expireMatches(t)}}class Wv extends zs{}class Zv extends zs{}var Qv,Gv,Yv;!function(e){e.Event="event-query",e.Recording="recording-query",e.RecordingSegments="recording-segments-query",e.MediaMetadata="media-metadata"}(Qv||(Qv={})),function(e){e.Event="event-results",e.Recording="recording-results",e.RecordingSegments="recording-segments-results",e.MediaMetadata="media-metadata-results"}(Gv||(Gv={})),function(e){e.Frigate="frigate",e.Generic="generic",e.MotionEye="motioneye",e.Reolink="reolink"}(Yv||(Yv={}));const Kv=e=>e.camera_entity??e.webrtc_card?.entity??null;class Xv{constructor(e){this._entityRegistryManager=e}async createEngine(e,t){let n;switch(e){case Yv.Generic:const{GenericCameraManagerEngine:e}=await import("./engine-generic-bb62ddef.js").then((function(e){return e.e}));n=new e(t.stateWatcher,t.eventCallback);break;case Yv.Frigate:const{FrigateCameraManagerEngine:a}=await import("./engine-frigate-1cc4bb56.js");n=new a(this._entityRegistryManager,t.stateWatcher,new Uv,new Bv,t.eventCallback);break;case Yv.MotionEye:const{MotionEyeCameraManagerEngine:i}=await import("./engine-motioneye-381004ee.js");n=new i(this._entityRegistryManager,t.stateWatcher,new Ov,t.resolvedMediaCache,new Bv,t.eventCallback);break;case Yv.Reolink:const{ReolinkCameraManagerEngine:r}=await import("./engine-reolink-72a91bc6.js");n=new r(this._entityRegistryManager,t.stateWatcher,new Ov,t.resolvedMediaCache,new Bv,t.eventCallback)}return n}async getEngineForCamera(e,t){let n=null;if("frigate"===t.engine)n=Yv.Frigate;else if("motioneye"===t.engine)n=Yv.MotionEye;else if("generic"===t.engine)n=Yv.Generic;else if("reolink"===t.engine)n=Yv.Reolink;else{const a=Kv(t);if(a){const i=await this._entityRegistryManager.getEntity(e,a);if(!i){if(e.states[a])return Yv.Generic;throw new Wv(V_("error.no_camera_entity"),t)}switch(i?.platform){case"frigate":n=Yv.Frigate;break;case"motioneye":n=Yv.MotionEye;break;case"reolink":n=Yv.Reolink;break;default:n=Yv.Generic}}else t.frigate.camera_name?n=Yv.Frigate:(t.webrtc_card?.url||t.go2rtc?.url&&t.go2rtc?.stream)&&(n=Yv.Generic)}return n}}class Jv{constructor(){this._cameras=new Map,this._enginesByType=new Map}addCamera(e){this._cameras.set(e.getID(),e),this._enginesByType.set(e.getEngine().getEngineType(),e.getEngine())}async setCameras(e){for(const t of e){const e=this._cameras.get(t.getID());e!==t&&(this.addCamera(t),await(e?.destroy()))}for(const t of this._cameras.values())e.includes(t)||(await t.destroy(),this._cameras.delete(t.getID()))}async reset(){await tf(this._cameras.values(),(e=>e.destroy())),this._cameras.clear(),this._enginesByType.clear()}getCamera(e){return this._cameras.get(e)??null}getCameras(){return this._cameras}getCameraConfig(e){return this._cameras.get(e)?.getConfig()??null}hasCameraID(e){return this._cameras.has(e)}getCameraCount(){return this._cameras.size}getDefaultCameraID(){return this._cameras.keys().next().value??null}*getCameraConfigs(e){for(const[t,n]of this.getCameraConfigEntries(e))yield n}*getCameraConfigEntries(e){for(const t of e??this._cameras.keys()){const e=this.getCameraConfig(t);e&&(yield[t,e])}}getCameraIDs(){return new Set(this._cameras.keys())}getCameraIDsWithCapability(e){const t=new Set;for(const n of this._cameras.values())n.getCapabilities()?.matches(e)&&t.add(n.getID());return t}getCameraConfigForMedia(e){return this.getCameraConfig(e.getCameraID())}getEngineOfType(e){return this._enginesByType.get(e)??null}getEngineForCameraID(e){return this._cameras.get(e)?.getEngine()??null}getEnginesForCameraIDs(e){const t=new Map;for(const n of e){const e=this.getEngineForCameraID(n);e&&(t.has(e)||t.set(e,new Set),t.get(e)?.add(n))}return t.size?t:null}getEngineForMedia(e){return this.getEngineForCameraID(e.getCameraID())}getAllDependentCameras(e,t){const n=new Set,a=new Set,i=e=>{n.add(e);const r=this.getCamera(e),o=r?.getConfig();if(r&&o){t&&!r.getCapabilities()?.matches(t)||a.add(e);const s=new Set;o.dependencies.cameras.forEach((e=>s.add(e))),o.dependencies.all_cameras&&this.getCameraIDs().forEach((e=>s.add(e)));for(const e of s)n.has(e)||i(e)}};return i(e),a}}const ey=e=>{return Ev((n=e=>e.getID()??e,(t=e)&&t.length?Hg(t,xv(n)):[]),(e=>e.getStartTime()??e.getID()),"asc");var t,n};class ty{static isEventQuery(e){return e.type===Qv.Event}static isRecordingQuery(e){return e.type===Qv.Recording}static isRecordingSegmentsQuery(e){return e.type===Qv.RecordingSegments}static isMediaMetadataQuery(e){return e.type===Qv.MediaMetadata}}class ny{static isEventQueryResult(e){return e.type===Gv.Event}static isRecordingQueryResult(e){return e.type===Gv.Recording}static isRecordingSegmentsQueryResult(e){return e.type===Gv.RecordingSegments}static isMediaMetadataQueryResult(e){return e.type===Gv.MediaMetadata}}class ay{constructor(e,t){this._requestLimit=new w_,this._api=e,this._engineFactory=t?.factory??new Xv(this._api.getEntityRegistryManager()),this._store=t?.store??new Jv}async initializeCamerasFromConfig(){const e=this._api.getConfigManager().getConfig(),t=this._api.getHASSManager().getHASS();if(!e||!t)return!1;this._requestLimit.concurrency=e.performance.features.max_simultaneous_engine_requests??1/0;const n=e.cameras.map((t=>{return n={},a=u_(e?.cameras_global),hg(n,a,t,((e,t)=>Array.isArray(t)?t:void 0));var n,a}));try{await this._initializeCameras(n)}catch(e){return this._api.getMessageManager().setErrorIfHigherPriority(e,V_("error.camera_initialization")),!1}return!0}async reset(){await this._store.reset()}async _getEnginesForCameras(e){const t=new Map,n=new Map,a=this._api.getHASSManager().getHASS(); +/* istanbul ignore if: the if path cannot be reached -- @preserve */ +if(!a)return t;const i=await(async e=>await tf(e,(e=>this._engineFactory.getEngineForCamera(a,e))))(e);for(const[a,r]of e.entries()){const e=i[a],o=e?n.get(e)??await this._engineFactory.createEngine(e,{eventCallback:e=>this._api.getTriggersManager().handleCameraEvent(e),stateWatcher:this._api.getHASSManager().getStateWatcher(),resolvedMediaCache:this._api.getResolvedMediaCache()}):null;if(!o||!e)throw new Wv(V_("error.no_camera_engine"),u_(r));n.set(e,o),t.set(r,o)}return t}async _initializeCameras(e){const t=new Date,n=this._api.getHASSManager().getHASS(); +/* istanbul ignore if: the if path cannot be reached -- @preserve */ +if(!n)return;e.some((e=>(e=>e.triggers.motion||e.triggers.occupancy)(e)))&&await this._api.getEntityRegistryManager().fetchEntityList(n);const a=await this._getEnginesForCameras(e),i=await tf(a.entries(),(async([e,t])=>await t.createCamera(n,e))),r=async()=>{i.forEach((e=>e.destroy()))},o=new Set;for(const e of i){const t=H_(e.getConfig());if(!t)throw await r(),new Wv(V_("error.no_camera_id"),e.getConfig());if(o.has(t))throw await r(),new Wv(V_("error.duplicate_camera_id"),e.getConfig());e.setID(t),o.add(t)}await this._store.setCameras(i),B_(this._api.getConfigManager().getCardWideConfig(),"Frigate Card CameraManager initialized (Cameras: ",this._store.getCameras(),`, Duration: ${((new Date).getTime()-t.getTime())/1e3}s,`,")")}isInitialized(){return this._store.getCameraCount()>0}getStore(){return this._store}generateDefaultEventQueries(e,t){return this._generateDefaultQueries(e,{type:Qv.Event,...t})}generateDefaultRecordingQueries(e,t){return this._generateDefaultQueries(e,{type:Qv.Recording,...t})}generateDefaultRecordingSegmentsQueries(e,t){return this._generateDefaultQueries(e,{type:Qv.RecordingSegments,...t})}_generateDefaultQueries(e,t){const n=[],a=Zg(e),i=this._store.getEnginesForCameraIDs(a);if(!i)return null;for(const[e,a]of i){let i=null; +/* istanbul ignore else: the else path cannot be reached -- @preserve */ty.isEventQuery(t)?i=e.generateDefaultEventQuery(this._store,a,t):ty.isRecordingQuery(t)?i=e.generateDefaultRecordingQuery(this._store,a,t):ty.isRecordingSegmentsQuery(t)&&(i=e.generateDefaultRecordingSegmentsQuery(this._store,a,t));for(const e of i??[])n.push(e)}return n.length?n:null}async getMediaMetadata(){const e=new Set,t=new Set,n=new Set,a=new Set,i={type:Qv.MediaMetadata,cameraIDs:this._store.getCameraIDs()},r=await this._handleQuery(i);for(const i of r.values())i.metadata.tags&&i.metadata.tags.forEach(e.add,e),i.metadata.what&&i.metadata.what.forEach(t.add,t),i.metadata.where&&i.metadata.where.forEach(n.add,n),i.metadata.days&&i.metadata.days.forEach(a.add,a);return t.size||n.size||a.size||e.size?{...e.size&&{tags:e},...t.size&&{what:t},...n.size&&{where:n},...a.size&&{days:a}}:null}async getEvents(e,t){return await this._handleQuery(e,t)}async getRecordings(e,t){return await this._handleQuery(e,t)}async getRecordingSegments(e,t){return await this._handleQuery(e,t)}async executeMediaQueries(e,t){return this._convertQueryResultsToMedia(await this._handleQuery(e,t))}async extendMediaQueries(e,t,n,a){if(!this._api.getHASSManager().getHASS())return null;const i=e=>{let n=null;for(const a of t){const t=a.getStartTime();t&&(!n||"earliest"===e&&tn)&&(n=t)}return n},r=this._api.getConfigManager().getCardWideConfig()?.performance?.features.media_chunk_size??50,o=[],s=[];for(const t of e){const e={...t}; +/* istanbul ignore else: the else path cannot be reached -- @preserve */if("later"===n){const t=i("latest");t&&(e.start=t,delete e.end)}else if("earlier"===n){const t=i("earliest");t&&(e.end=t,delete e.start)}e.limit=r,s.push({...t,limit:(t.limit??0)+r}),o.push(e)}const c=this._convertQueryResultsToMedia(await this._handleQuery(o,a));if(!c.length)return null;const l=ey(t.concat(c));return l.length===t.length?null:{queries:s,results:l}}async getMediaDownloadPath(e){const t=this._store.getCameraConfigForMedia(e),n=this._store.getEngineForMedia(e),a=this._api.getHASSManager().getHASS();return t&&n&&a?await n.getMediaDownloadPath(a,t,e):null}getMediaCapabilities(e){const t=this._store.getEngineForMedia(e);return t?t.getMediaCapabilities(e):null}async favoriteMedia(e,t){const n=this._store.getCameraConfigForMedia(e),a=this._store.getEngineForMedia(e),i=this._api.getHASSManager().getHASS();if(!n||!a||!i)return;const r=new Date;await this._requestLimit.add((()=>a.favoriteMedia(i,n,e,t))),B_(this._api.getConfigManager().getCardWideConfig(),"Frigate Card CameraManager favorite request (",`Duration: ${((new Date).getTime()-r.getTime())/1e3}s,`,"Media:",e.getID(),", Favorite:",t,")")}areMediaQueriesResultsFresh(e,t){const n=new Date;for(const a of e){const e=this._store.getEnginesForCameraIDs(a.cameraIDs);for(const[i,r]of e??[]){const e=i.getQueryResultMaxAge({...a,cameraIDs:r});if(null!==e&&Ud(t,{seconds:e})a?null:await this._requestLimit.add((()=>i.getMediaSeekTime(r,this._store,e,t)))??null}async _handleQuery(e,t){const n=Wg(e),a=new Map,i=new Date,r=this._api.getHASSManager().getHASS();if(!r)return a;const o=async(e,n)=>{let i=null; +/* istanbul ignore else: the else path cannot be reached -- @preserve */ty.isEventQuery(n)?i=await e.getEvents(r,this._store,n,t):ty.isRecordingQuery(n)?i=await e.getRecordings(r,this._store,n,t):ty.isRecordingSegmentsQuery(n)?i=await e.getRecordingSegments(r,this._store,n,t):ty.isMediaMetadataQuery(n)&&(i=await e.getMediaMetadata(r,this._store,n,t)),i?.forEach(((e,t)=>a.set(t,e)))},s=async e=>{const t=this._store.getEnginesForCameraIDs(e.cameraIDs);t&&await Promise.all(Array.from(t.keys()).map((n=>this._requestLimit.add((()=>o(n,{...e,cameraIDs:t.get(n)}))))))};await Promise.all(n.map((e=>s(e))));const c=(l=Array.from(a.values()).map((e=>Number(e.cached??0))))&&l.length?function(e,t){for(var n,a=-1,i=e.length;++athis._store.getCamera(e))).filter(sf);return new Q_({live:t.some((e=>e.getCapabilities()?.has("live"))),clips:t.some((e=>e.getCapabilities()?.has("clips"))),recordings:t.some((e=>e.getCapabilities()?.has("recordings"))),snapshots:t.some((e=>e.getCapabilities()?.has("snapshots"))),"favorite-events":t.some((e=>e.getCapabilities()?.has("favorite-events"))),"favorite-recordings":t.some((e=>e.getCapabilities()?.has("favorite-recordings"))),seek:t.some((e=>e.getCapabilities()?.has("seek"))),menu:t.some((e=>e.getCapabilities()?.has("menu")))})}async executePTZAction(e,t,n){const a=this._store.getCameraConfig(e);if(!a)return;const i=q_(a,t,n);if(i)return await this._api.getActionsManager().executeActions(i);const r=this._api.getHASSManager().getHASS(),o=this._store.getEngineForCameraID(e);return o&&r?await this._requestLimit.add((()=>o.executePTZAction(r,a,t,n))):void 0}}class iy{constructor(e){this._cache=new Map,this._keyCallback=e}has(e){return this._cache.has(e)}getMatches(e){return[...this._cache.values()].filter(e)}get(e){return this._cache.get(e)??null}add(e){const t=e=>this._cache.set(this._keyCallback(e),e);Array.isArray(e)?e.forEach(t):t(e)}}const ry=ba.object({id:ba.string(),model:ba.string().nullable(),config_entries:ba.string().array(),manufacturer:ba.string().nullable()}).array();class oy{constructor(e){this._fetchedDeviceList=!1,this._cache=e}async getDevice(e,t){return this._cache.has(t)?this._cache.get(t):(await this._fetchDeviceList(e),this._cache.get(t)??null)}async getMatchingDevices(e,t){return await this._fetchDeviceList(e),this._cache.getMatches(t)}async _fetchDeviceList(e){if(this._fetchedDeviceList)return;let t=null;try{t=await $v(e,ry,{type:"config/device_registry/list"})}catch(e){return void Gg(e)}this._cache.add(t),this._fetchedDeviceList=!0}}const sy=ba.object({config_entry_id:ba.string().nullable(),device_id:ba.string().nullable(),disabled_by:ba.string().nullable(),entity_id:ba.string(),hidden_by:ba.string().nullable(),platform:ba.string(),translation_key:ba.string().nullable(),unique_id:ba.string().or(ba.number()).optional()}),cy=sy.array();class ly{constructor(e){this._fetchedEntityList=!1,this._cache=e}async getEntity(e,t){const n=this._cache.get(t);if(n)return n;let a=null;try{a=await $v(e,sy,{type:"config/entity_registry/get",entity_id:t})}catch(e){return Gg(e),null}return this._cache.add(a),a}async getMatchingEntities(e,t){return await this.fetchEntityList(e),this._cache.getMatches(t)}async getEntities(e,t){const n=new Map;return await Promise.all(t.map((async t=>{const a=await this.getEntity(e,t);a&&n.set(t,a)}))),n}async fetchEntityList(e){if(this._fetchedEntityList)return;let t=null;try{t=await $v(e,cy,{type:"config/entity_registry/list"})}catch(e){return void Gg(e)}this._cache.add(t),this._fetchedEntityList=!0}}class dy extends Map{constructor(e={}){if(super(),!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof e.maxAge&&0===e.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=e.maxSize,this.maxAge=e.maxAge||Number.POSITIVE_INFINITY,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(e){if("function"==typeof this.onEviction)for(const[t,n]of e)this.onEviction(t,n.value)}_deleteIfExpired(e,t){return"number"==typeof t.expiry&&t.expiry<=Date.now()&&("function"==typeof this.onEviction&&this.onEviction(e,t.value),this.delete(e))}_getOrDeleteIfExpired(e,t){if(!1===this._deleteIfExpired(e,t))return t.value}_getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.value}_peek(e,t){const n=t.get(e);return this._getItemValue(e,n)}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}*_entriesAscending(){for(const e of this.oldCache){const[t,n]=e;if(!this.cache.has(t)){!1===this._deleteIfExpired(t,n)&&(yield e)}}for(const e of this.cache){const[t,n]=e;!1===this._deleteIfExpired(t,n)&&(yield e)}}get(e){if(this.cache.has(e)){const t=this.cache.get(e);return this._getItemValue(e,t)}if(this.oldCache.has(e)){const t=this.oldCache.get(e);if(!1===this._deleteIfExpired(e,t))return this._moveToRecent(e,t),t.value}}set(e,t,{maxAge:n=this.maxAge}={}){const a="number"==typeof n&&n!==Number.POSITIVE_INFINITY?Date.now()+n:void 0;return this.cache.has(e)?this.cache.set(e,{value:t,expiry:a}):this._set(e,{value:t,expiry:a}),this}has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.get(e)):!!this.oldCache.has(e)&&!this._deleteIfExpired(e,this.oldCache.get(e))}peek(e){return this.cache.has(e)?this._peek(e,this.cache):this.oldCache.has(e)?this._peek(e,this.oldCache):void 0}delete(e){const t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");const t=[...this._entriesAscending()],n=t.length-e;n<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(n>0&&this._emitEvictions(t.slice(0,n)),this.oldCache=new Map(t.slice(n)),this.cache=new Map,this._size=0),this.maxSize=e}*keys(){for(const[e]of this)yield e}*values(){for(const[,e]of this)yield e}*[Symbol.iterator](){for(const e of this.cache){const[t,n]=e;!1===this._deleteIfExpired(t,n)&&(yield[t,n.value])}for(const e of this.oldCache){const[t,n]=e;if(!this.cache.has(t)){!1===this._deleteIfExpired(t,n)&&(yield[t,n.value])}}}*entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;--t){const n=e[t],[a,i]=n;!1===this._deleteIfExpired(a,i)&&(yield[a,i.value])}e=[...this.oldCache];for(let t=e.length-1;t>=0;--t){const n=e[t],[a,i]=n;if(!this.cache.has(a)){!1===this._deleteIfExpired(a,i)&&(yield[a,i.value])}}}*entriesAscending(){for(const[e,t]of this._entriesAscending())yield[e,t.value]}get size(){if(!this._size)return this.oldCache.size;let e=0;for(const t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}entries(){return this.entriesAscending()}forEach(e,t=this){for(const[n,a]of this.entriesAscending())e.call(t,a,n,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}}class uy{constructor(){this._cache=new dy({maxSize:1e3})}has(e){return this._cache.has(e)}get(e){return this._cache.get(e)}set(e,t){this._cache.set(e,t)}}const hy=async(e,t,n)=>{const a=n?n.get(t):void 0;if(a)return a;const i={type:"media_source/resolve_media",media_content_id:t};let r=null;try{r=await $v(e,js,i)}catch(e){Gg(e)}return n&&r&&n.set(t,r),r};class py{constructor(e,t,n){this._context=e,this._action=t,this._config=n}async execute(e){}async stop(){}}class my extends py{}class gy extends my{async execute(e){const t=this._action.camera??(this._action.triggered?e.getTriggersManager().getMostRecentlyTriggeredCameraID():null),n=e.getViewManager().getView(),a=e.getConfigManager().getConfig();if(t&&n){const i=a?.view.camera_select??"current",r="current"===i?n.view:i;await e.getViewManager().setViewByParametersWithNewQuery({params:{view:r,camera:t},failSafe:!0})}}}class fy extends my{async execute(e){e.getCameraURLManager().openURL()}}class _y extends my{async execute(e){e.getViewManager().setViewDefault()}}class vy extends my{async execute(e){await e.getViewManager().setViewByParametersWithNewQuery({params:{displayMode:this._action.display_mode}})}}class yy extends my{async execute(e){await e.getDownloadManager().downloadViewerMedia()}}class by extends my{async execute(e){e.getExpandManager().toggleExpanded()}}class wy extends my{async execute(e){e.getFullscreenManager().toggleFullscreen()}}class xy extends py{async execute(e){const t=e.getHASSManager().getHASS();t&&at(e.getCardElementManager().getElement(),t,this._config??{},this._action)}}class Cy extends my{async execute(e){console[this._action.level](this._action.message)}}const My=(e,t)=>e.context?.live?.overrides?.get(t??e.camera)??t??e.camera,ky=e=>My(e)!==e.camera,Sy=(e,t)=>{const n=e.context?.live?.overrides??new Map;n.set(e.camera,t),e.mergeInContext({live:{overrides:n}})};class Ey extends my{async execute(e){const t=this._action.media_player,n=e.getMediaPlayerManager(),a=e.getViewManager().getView(),i=a?.queryResults?.getSelectedResult()??null;"stop"===this._action.media_player_action?await n.stop(t):a?.is("live")?await n.playLive(t,My(a)):a?.isViewerView()&&i&&await n.playMedia(t,i)}}class $y extends my{async execute(e){e.getCardElementManager().toggleMenu()}}class Ay extends my{async execute(e){await e.getMicrophoneManager().connect()}}class zy extends my{async execute(e){e.getMicrophoneManager().disconnect()}}class Iy extends my{async execute(e){e.getMicrophoneManager().mute()}}class Ty extends my{async execute(e){await e.getMicrophoneManager().unmute()}}class jy extends my{async execute(e){await(e.getMediaLoadedInfoManager().get()?.player?.mute())}}class Oy extends my{async execute(e){await(e.getMediaLoadedInfoManager().get()?.player?.pause())}}class Dy extends my{async execute(e){await(e.getMediaLoadedInfoManager().get()?.player?.play())}}const Ry=(e,t)=>{if(e.isViewerView()){const n=e.queryResults?.getSelectedResult()?.getID()??null;return"ptz"!==t?.type&&n?{targetID:n,type:"digital"}:null}if(e.is("live")){const n=My(e);let a="digital";return"digital"!==t?.type&&t?.cameraManager&&(Py(t.cameraManager,n)&&(a="ptz"),"ptz"!==a&&"ptz"===t?.type)?null:{targetID:n,type:a}}return null},Py=(e,t)=>!!e.getStore().getCamera(t)?.getCapabilities()?.hasPTZCapability();var Ly=ug((function(e,t,n){Jm(e,t,n)}));const Ny=(e,t)=>{t?.[e]?.inProgressAction?.stop()},Fy=(e,t,n,a)=>{Ly(t,{[n]:{[e]:{inProgressAction:a}}})};class Vy extends my{constructor(){super(...arguments),this._timer=new xf}async stop(){this._timer.stop()}async execute(e){const t=e.getViewManager().getView();if(!t)return;const n=this._action.camera??Ry(t,{type:"ptz",cameraManager:e.getCameraManager()})?.targetID??null,a=n?e.getCameraManager().getCameraCapabilities(n)?.getPTZCapabilities():null,i=n?e.getCameraManager().getStore().getCameraConfig(n)?.ptz:null;if(!n||!a||!i)return;if(!this._action.ptz_action)return void(a.presets&&a.presets.length>=1&&await e.getCameraManager().executePTZAction(n,"preset",{phase:this._action.ptz_phase,preset:a.presets[0]}));const r=(e=>{switch(e){case"left":case"right":case"up":case"down":return e;case"zoom_in":return"zoomIn";case"zoom_out":return"zoomOut"}return null})(this._action.ptz_action);if(r&&a[r]?.includes(this._action.ptz_phase?"continuous":"relative")||"preset"===this._action.ptz_action)return await e.getCameraManager().executePTZAction(n,this._action.ptz_action,{phase:this._action.ptz_phase,preset:this._action.ptz_preset});if("start"===this._action.ptz_phase){Ny(n,this._context.ptz),Fy(n,this._context,"ptz",this);const t=async()=>{this._action.ptz_action&&await e.getCameraManager().executePTZAction(n,this._action.ptz_action,{preset:this._action.ptz_preset}),this._timer.start(i.r2c_delay_between_calls_seconds,t)};await t()}else"stop"===this._action.ptz_phase?Ny(n,this._context.ptz):(await e.getCameraManager().executePTZAction(n,this._action.ptz_action,{preset:this._action.ptz_preset,phase:"start"}),this._timer.start(i.c2r_delay_between_calls_seconds,(async()=>{this._action.ptz_action&&await e.getCameraManager().executePTZAction(n,this._action.ptz_action,{preset:this._action.ptz_preset,phase:"stop"})})))}}class Hy extends my{async execute(e){e.getViewManager().setViewWithMergedContext({ptzControls:{enabled:this._action.enabled}})}}function By(e,t,n){return void 0===n&&(n=t,t=void 0),void 0!==n&&(n=(n=Cg(n))==n?n:0),void 0!==t&&(t=(t=Cg(t))==t?t:0),function(e,t,n){return e==e&&(void 0!==n&&(e=e<=n?e:n),void 0!==t&&(e=e>=t?e:t)),e}(Cg(e),t,n)}const qy=50,Uy=50,Wy=1,Zy=4,Qy=e=>void 0===e?.pan?.x&&void 0===e?.pan?.y&&void 0===e?.zoom;class Gy{constructor(e){this._context=e}modify(e){e.mergeInContext(this._context)}}const Yy=(e,t)=>({zoom:{[e]:{observed:t?.observed??void 0,requested:t?.requested??null}}}),Ky=(e,t,n)=>{t&&n&&t.setViewByParameters({modifiers:[new Gy(Yy(n,{observed:e.detail}))]})};class Xy extends my{constructor(){super(...arguments),this._timer=new xf}async _stepChange(e,t){e.getViewManager().setViewWithMergedContext(Yy(t,{requested:this._convertActionToZoomSettings(e.getViewManager().getView()?.context?.zoom?.[t]?.observed)}))}async stop(){this._timer.stop()}async execute(e){const t=e.getViewManager().getView();if(!t)return;const n=this._action.target_id??Ry(t,{type:"digital",cameraManager:e.getCameraManager()})?.targetID;return n?this._action.absolute||!this._action.ptz_phase?await this._stepChange(e,n): +/* istanbul ignore else: the else path cannot be reached -- @preserve */ +void("start"===this._action.ptz_phase?(Ny(n,this._context.ptzDigital),Fy(n,this._context,"ptzDigital",this),await this._stepChange(e,n),this._timer.startRepeated(.1,(()=>this._stepChange(e,n)))):"stop"===this._action.ptz_phase&&(Ny(n,this._context.ptzDigital),delete this._context.ptzDigital?.[n])):void 0}_convertActionToZoomSettings(e){if(!this._action.absolute&&!this._action.ptz_action)return{};if(this._action.absolute)return this._action.absolute;const t=e?.zoom??1,n=e?.pan?.x??50,a=e?.pan?.y??50,i="zoom_in"===this._action.ptz_action?.1:"zoom_out"===this._action.ptz_action?-.1:0,r="left"===this._action.ptz_action?-5:"right"===this._action.ptz_action?5:0,o="up"===this._action.ptz_action?-5:"down"===this._action.ptz_action?5:0;return{zoom:By(t+i,1,10),pan:{x:By(n+r,0,100),y:By(a+o,0,100)}}}}class Jy extends my{async execute(e){const t=e.getViewManager().getView();let n=null,a=null;if(this._action.target_id)n=this._action.target_id,a=Py(e.getCameraManager(),n)?"ptz":"digital";else if(t){const i=Ry(t,{cameraManager:e.getCameraManager()});n=i?.targetID??null,a=i?.type??null}n&&null!==a&&("ptz"===a?this._toPTZAction(n):this._toPTZDigitalAction(n)).execute(e)}_toPTZAction(e){return new Vy(this._context,(t={cardID:this._action.card_id,cameraID:e,ptzAction:this._action.ptz_action,ptzPhase:this._action.ptz_phase,ptzPreset:this._action.ptz_preset},{action:"fire-dom-event",frigate_card_action:"ptz",...t?.cardID&&{card_id:t.cardID},...t?.ptzAction&&{ptz_action:t.ptzAction},...t?.ptzPhase&&{ptz_phase:t.ptzPhase},...t?.ptzPreset&&{ptz_preset:t.ptzPreset},...t?.cameraID&&{camera:t.cameraID}}),this._config);var t}_toPTZDigitalAction(e){return new Xy(this._context,(t={cardID:this._action.card_id,ptzPhase:this._action.ptz_phase,ptzAction:this._action.ptz_action,targetID:e},{action:"fire-dom-event",frigate_card_action:"ptz_digital",...t?.cardID&&{card_id:t.cardID},...t?.ptzAction&&{ptz_action:t.ptzAction},...t?.ptzPhase&&{ptz_phase:t.ptzPhase},...t?.absolute&&{absolute:t.absolute},...t?.targetID&&{target_id:t.targetID}}),this._config);var t}}class eb extends my{async execute(e){await e.getDownloadManager().downloadScreenshot()}}class tb extends my{async execute(e){var t;await af((t=this._action.duration,3600*(t.h??0)+60*(t.m??0)+(t.s??0)+(t.ms??0)/1e3))}}class nb extends my{async execute(e){switch(this._action.status_bar_action){case"reset":e.getStatusBarItemManager().removeAllDynamicStatusBarItems();break;case"add":this._action.items?.forEach((t=>e.getStatusBarItemManager().addDynamicStatusBarItem(t)));break;case"remove":this._action.items?.forEach((t=>e.getStatusBarItemManager().removeDynamicStatusBarItem(t)))}}}class ab{modify(e){(e=>{const t=e.context?.live?.overrides;t&&t.has(e.camera)&&e.context?.live?.overrides?.delete(e.camera)})(e)}}class ib extends my{async execute(e){e.getViewManager().setViewByParameters({modifiers:[new ab]})}}class rb{constructor(e){this._api=e}modify(e){const t=[...this._api.getCameraManager().getStore().getAllDependentCameras(e.camera,"substream")];if(t.length<=1)return;const n=My(e),a=t.indexOf(n),i=a<0?0:(a+1)%t.length;Sy(e,t[i])}}class ob extends my{async execute(e){e.getViewManager().setViewByParameters({modifiers:[new rb(e)]})}}class sb{constructor(e){this._substreamID=e}modify(e){Sy(e,this._substreamID)}}class cb extends my{async execute(e){e.getViewManager().setViewByParameters({modifiers:[new sb(this._action.camera)]})}}class lb extends my{async execute(e){await(e.getMediaLoadedInfoManager().get()?.player?.unmute())}}class db extends my{async execute(e){e.getViewManager().setViewByParametersWithNewQuery({params:{view:this._action.frigate_card_action}})}}class ub{createAction(e,t,n){const a=mf(t);if("fire-dom-event"!==t.action||!a)return new xy(e,t,n?.config);if(a.card_id&&a.card_id!==n?.cardID)return null;switch(a.frigate_card_action){case"default":return new _y(e,a,n?.config);case"clip":case"clips":case"image":case"live":case"recording":case"recordings":case"snapshot":case"snapshots":case"timeline":case"diagnostics":return new db(e,a,n?.config);case"sleep":return new tb(e,a,n?.config);case"download":return new yy(e,a,n?.config);case"camera_ui":return new fy(e,a,n?.config);case"expand":return new by(e,a,n?.config);case"fullscreen":return new wy(e,a,n?.config);case"menu_toggle":return new $y(e,a,n?.config);case"camera_select":return new gy(e,a,n?.config);case"live_substream_select":return new cb(e,a,n?.config);case"live_substream_off":return new ib(e,a,n?.config);case"live_substream_on":return new ob(e,a,n?.config);case"media_player":return new Ey(e,a,n?.config);case"microphone_connect":return new Ay(e,a,n?.config);case"microphone_disconnect":return new zy(e,a,n?.config);case"microphone_mute":return new Iy(e,a,n?.config);case"microphone_unmute":return new Ty(e,a,n?.config);case"mute":return new jy(e,a,n?.config);case"unmute":return new lb(e,a,n?.config);case"play":return new Dy(e,a,n?.config);case"pause":return new Oy(e,a,n?.config);case"screenshot":return new eb(e,a,n?.config);case"display_mode_select":return new vy(e,a,n?.config);case"ptz":return new Vy(e,a,n?.config);case"ptz_digital":return new Xy(e,a,n?.config);case"ptz_multi":return new Jy(e,a,n?.config);case"ptz_controls":return new Hy(e,a,n?.config);case"log":return new Cy(e,a,n?.config);case"status_bar":return new nb(e,a,n?.config)} +/* istanbul ignore next: this path cannot be reached -- @preserve */ +/* istanbul ignore next: this path cannot be reached -- @preserve */ +return console.warn(`Frigate card received unknown card action: ${a.frigate_card_action}`),null}}class hb{constructor(e,t,n){this._actions=[],this._factory=new ub,this._stopped=!1,this._context=e;for(const a of Wg(t)){const t=this._factory.createAction(e,a,n);t&&this._actions.push(t)}}async execute(e){for(const t of this._actions){if(this._stopped)break;await t.execute(e)}}async stop(){this._stopped=!0}}const pb=ba.object({action:ba.enum(["tap","double_tap","hold","start_tap","end_tap"])}),mb=ba.object({detail:pb});class gb{constructor(e){this._actionsInFlight=[],this._actionContext={},this.handleInteractionEvent=e=>{const t=mb.safeParse(e);if(!t.success)return;const n=t.data.detail.action,a=this.getMergedActions(),i=yf(n,a);a&&n&&i&&this.executeActions(i,a)},this.handleCustomActionEvent=e=>{"detail"in e&&this.executeActions(e.detail)},this.handleActionExecutionRequestEvent=async e=>{await this.executeActions(e.detail.action,e.detail.config)},this._api=e}getMergedActions(){const e=this._api.getViewManager().getView();if(this._api.getMessageManager().hasMessage())return{};const t=this._api.getConfigManager().getConfig();let n;if(e?.is("live"))n=t?.live.actions;else if(e?.isGalleryView())n=t?.media_gallery?.actions;else if(e?.isViewerView())n=t?.media_viewer.actions;else{if(!e?.is("image"))return{};n=t?.image?.actions}return{...t?.view.actions,...n}}uninitialize(){this._actionsInFlight.forEach((e=>e.stop()))}async executeActions(e,t){const n=new hb(this._actionContext,e,{config:t,cardID:this._api.getConfigManager().getConfig()?.card_id});this._actionsInFlight.push(n),await n.execute(this._api),this._actionsInFlight=this._actionsInFlight.filter((e=>e!==n))}}class fb{constructor(e){this._automations=[],this._priorEvaluations=new Map,this._nestedAutomationExecutions=0,this._api=e}deleteAutomations(e){this._automations=this._automations.filter((t=>t.tag!==e))}addAutomations(e){this._automations.push(...e)}execute(){if(!this._api.getHASSManager().hasHASS()||!this._api.getInitializationManager().isInitializedMandatory()||this._api.getMessageManager().hasErrorMessage())return;const e=[];for(const t of this._automations){const n=this._api.getConditionsManager().evaluateConditions(t.conditions),a=n?t.actions:t.actions_not,i=this._priorEvaluations.get(t);this._priorEvaluations.set(t,n),n!==i&&a&&e.push(...a)}if(!e.length)return;(async e=>{++this._nestedAutomationExecutions,this._nestedAutomationExecutions>10?this._api.getMessageManager().setMessageIfHigherPriority({type:"error",message:V_("error.too_many_automations")}):(await this._api.getActionsManager().executeActions(e),--this._nestedAutomationExecutions)})(e)}}class _b{constructor(e){this._api=e}openURL(){const e=this.getCameraURL();e&&window.open(e)}hasCameraURL(){return!!this.getCameraURL()}getCameraURL(){const e=this._api.getViewManager().getView(),t=e?.queryResults?.getSelectedResult()??null,n=e?.camera?this._api.getCameraManager().getCameraEndpoints(e.camera,{view:e.view,...t&&{media:t}})??null:null;return n?.ui?.endpoint??null}}const vb=(e,t)=>!!((e.attributes.supported_features??0)&t),yb=e=>(e=>vb(e,4)&&"number"==typeof e.attributes.in_progress)(e)||!!e.attributes.in_progress,bb=e=>{switch(e){case"armed_away":return"mdi:shield-lock";case"armed_vacation":return"mdi:shield-airplane";case"armed_home":return"mdi:shield-home";case"armed_night":return"mdi:shield-moon";case"armed_custom_bypass":return"mdi:security";case"pending":case"arming":return"mdi:shield-sync";case"triggered":return"mdi:bell-ring";case"disarmed":return"mdi:shield-off";default:return"mdi:shield"}},wb=(e,t)=>{const n="off"===e;switch(t?.attributes.device_class){case"battery":return n?"mdi:battery":"mdi:battery-outline";case"battery_charging":return n?"mdi:battery":"mdi:battery-charging";case"cold":return n?"mdi:thermometer":"mdi:snowflake";case"connectivity":return n?"mdi:close-network-outline":"mdi:check-network-outline";case"door":return n?"mdi:door-closed":"mdi:door-open";case"garage_door":return n?"mdi:garage":"mdi:garage-open";case"power":case"plug":return n?"mdi:power-plug-off":"mdi:power-plug";case"gas":case"problem":case"safety":case"tamper":return n?"mdi:check-circle":"mdi:alert-circle";case"smoke":return n?"mdi:check-circle":"mdi:smoke";case"heat":return n?"mdi:thermometer":"mdi:fire";case"light":return n?"mdi:brightness5":"mdi:brightness-7";case"lock":return n?"mdi:lock":"mdi:lock-open";case"moisture":return n?"mdi:water-off":"mdi:water";case"motion":return n?"mdi:motion-sensor-off":"mdi:motion-sensor";case"occupancy":case"presence":return n?"mdi:home-outline":"mdi:home";case"opening":return n?"mdi:square":"mdi:square-outline";case"running":return n?"mdi:stop":"mdi:play";case"sound":return n?"mdi:music-note-off":"mdi:music-note";case"update":return n?"mdi:package":"mdi:package-up";case"vibration":return n?"mdi:crop-portrait":"mdi:vibrate";case"window":return n?"mdi:window-closed":"mdi:window-open";default:return n?"mdi:radiobox-blank":"mdi:checkbox-marked-circle"}},xb=(e,t)=>{const n="closed"!==e;switch(t?.attributes.device_class){case"garage":switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:garage";default:return"mdi:garage-open"}case"gate":switch(e){case"opening":case"closing":return"mdi:gate-arrow-right";case"closed":return"mdi:gate";default:return"mdi:gate-open"}case"door":return n?"mdi:door-open":"mdi:door-closed";case"damper":return n?"md:circle":"mdi:circle-slice-8";case"shutter":switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:window-shutter";default:return"mdi:window-shutter-open"}case"curtain":switch(e){case"opening":return"mdi:arrow-split-vertical";case"closing":return"mdi:arrow-collapse-horizontal";case"closed":return"mdi:curtains-closed";default:return"mdi:curtains"}case"blind":case"shade":switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:blinds";default:return"mdi:blinds-open"}case"window":switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:window-closed";default:return"mdi:window-open"}}switch(e){case"opening":return"mdi:arrow-up-box";case"closing":return"mdi:arrow-down-box";case"closed":return"mdi:window-closed";default:return"mdi:window-open"}},Cb={apparent_power:"mdi:flash",aqi:"mdi:air-filter",carbon_dioxide:"mdi:molecule-co2",carbon_monoxide:"mdi:molecule-co",current:"mdi:current-ac",date:"mdi:calendar",energy:"mdi:lightning-bolt",frequency:"mdi:sine-wave",gas:"mdi:gas-cylinder",humidity:"mdi:water-percent",illuminance:"mdi:brightness-5",monetary:"mdi:cash",nitrogen_dioxide:"mdi:molecule",nitrogen_monoxide:"mdi:molecule",nitrous_oxide:"mdi:molecule",ozone:"mdi:molecule",pm1:"mdi:molecule",pm10:"mdi:molecule",pm25:"mdi:molecule",power:"mdi:flash",power_factor:"mdi:angle-acute",pressure:"mdi:gauge",reactive_power:"mdi:flash",signal_strength:"mdi:wifi",sulphur_dioxide:"mdi:molecule",temperature:"mdi:thermometer",timestamp:"mdi:clock",volatile_organic_compounds:"mdi:molecule",voltage:"mdi:sine-wave"},Mb={10:"mdi:battery-10",20:"mdi:battery-20",30:"mdi:battery-30",40:"mdi:battery-40",50:"mdi:battery-50",60:"mdi:battery-60",70:"mdi:battery-70",80:"mdi:battery-80",90:"mdi:battery-90",100:"mdi:battery"},kb={10:"mdi:battery-charging-10",20:"mdi:battery-charging-20",30:"mdi:battery-charging-30",40:"mdi:battery-charging-40",50:"mdi:battery-charging-50",60:"mdi:battery-charging-60",70:"mdi:battery-charging-70",80:"mdi:battery-charging-80",90:"mdi:battery-charging-90",100:"mdi:battery-charging"},Sb=(e,t)=>{const n=Number(e);if(isNaN(n))return"off"===e?"mdi:battery":"on"===e?"mdi:battery-alert":"mdi:battery-unknown";const a=10*Math.round(n/10);return t&&n>=10?kb[a]:t?"mdi:battery-charging-outline":n<=5?"mdi:battery-alert-variant-outline":Mb[a]},Eb=e=>{const t=e?.attributes.device_class;if(t&&t in Cb)return Cb[t];if("battery"===t)return e?((e,t)=>{const n=e.state;return Sb(n,"on"===t?.state)})(e):"mdi:battery";const n=e?.attributes.unit_of_measurement;return"°C"===n||"°F"===n?"mdi:thermometer":void 0},$b="mdi:bookmark",Ab={alert:"mdi:alert",air_quality:"mdi:air-filter",automation:"mdi:robot",calendar:"mdi:calendar",camera:"mdi:video",climate:"mdi:thermostat",configurator:"mdi:cog",conversation:"mdi:text-to-speech",counter:"mdi:counter",fan:"mdi:fan",google_assistant:"mdi:google-assistant",group:"mdi:google-circles-communities",homeassistant:"mdi:home-assistant",homekit:"mdi:home-automation",image_processing:"mdi:image-filter-frames",input_button:"mdi:gesture-tap-button",input_datetime:"mdi:calendar-clock",input_number:"mdi:ray-vertex",input_select:"mdi:format-list-bulleted",input_text:"mdi:form-textbox",light:"mdi:lightbulb",mailbox:"mdi:mailbox",notify:"mdi:comment-alert",number:"mdi:ray-vertex",persistent_notification:"mdi:bell",person:"mdi:account",plant:"mdi:flower",proximity:"mdi:apple-safari",remote:"mdi:remote",scene:"mdi:palette",script:"mdi:script-text",select:"mdi:format-list-bulleted",sensor:"mdi:eye",siren:"mdi:bullhorn",simple_alarm:"mdi:bell",sun:"mdi:white-balance-sunny",timer:"mdi:timer-outline",updater:"mdi:cloud-upload",vacuum:"mdi:robot-vacuum",water_heater:"mdi:thermometer",weather:"mdi:weather-cloudy",zone:"mdi:map-marker-radius"};function zb(e,t,n,a){switch(e){case"alarm_control_panel":return bb(n);case"binary_sensor":return wb(n,t);case"button":switch(t?.attributes.device_class){case"restart":return"mdi:restart";case"update":return"mdi:package-up";default:return"mdi:gesture-tap-button"}case"cover":return xb(n,t);case"device_tracker":return"router"===t?.attributes.source_type?"home"===n?"mdi:lan-connect":"mdi:lan-disconnect":["bluetooth","bluetooth_le"].includes(t?.attributes.source_type)?"home"===n?"mdi:bluetooth-connect":"mdi:bluetooth":"not_home"===n?"mdi:account-arrow-right":"mdi:account";case"humidifier":return n&&"off"===n?"mdi:air-humidifier-off":"mdi:air-humidifier";case"input_boolean":return"on"===n?"mdi:check-circle-outline":"mdi:close-circle-outline";case"lock":switch(n){case"unlocked":return"mdi:lock-open";case"jammed":return"mdi:lock-alert";case"locking":case"unlocking":return"mdi:lock-clock";default:return"mdi:lock"}case"media_player":switch(t?.attributes.device_class){case"speaker":switch(n){case"playing":return"mdi:speaker-play";case"paused":return"mdi:speaker-pause";case"off":return"mdi:speaker-off";default:return"mdi:speaker"}case"tv":switch(n){case"playing":return"mdi:television-play";case"paused":return"mdi:television-pause";case"off":return"mdi:television-off";default:return"mdi:television"}default:switch(n){case"playing":case"paused":return"mdi:cast-connected";case"off":return"mdi:cast-off";default:return"mdi:cast"}}case"switch":switch(t?.attributes.device_class){case"outlet":return"on"===n?"mdi:power-plug":"mdi:power-plug-off";case"switch":return"on"===n?"mdi:toggle-switch":"mdi:toggle-switch-off";default:return"mdi:flash"}case"zwave":switch(n){case"dead":return"mdi:emoticon-dead";case"sleeping":return"mdi:sleep";case"initializing":return"mdi:timer-sand";default:return"mdi:z-wave"}case"sensor":{const e=Eb(t);if(e)return e;break}case"input_datetime":if(!t?.attributes.has_date)return"mdi:clock";if(!t.attributes.has_time)return"mdi:calendar";break;case"sun":return"above_horizon"===t?.state?Ab[e]:"mdi:weather-night";case"update":return"on"===t?.state?yb(t)?"mdi:package-down":"mdi:package-up":"mdi:package"}return e in Ab?Ab[e]:a??$b}async function Ib(e,t,n){const a={type:"auth/sign_path",path:t,expires:n},i=await $v(e,Os,a);return i?e.hassUrl(i.path):null}function Tb(e,t,n,a){if(!e||!n||!n.length)return[];const i=[];for(const r of n){const n=t?.states[r],o=e.states[r];if((a?.stateOnly&&n?.state!==o?.state||!a?.stateOnly&&n!==o)&&(i.push({entityID:r,oldState:n,newState:o}),a?.firstOnly))break}return i}function jb(e,t,n,a){return!!Tb(e,t,n,{...a,firstOnly:!0}).length}function Ob(e){if("off"===e.state||!e.attributes.brightness)return"";return`brightness(${(e.attributes.brightness+245)/5}%)`}function Db(e){return"off"===e.state?"":e.attributes.rgb_color?`rgb(${e.attributes.rgb_color.join(",")})`:""}function Rb(e){return{color:Db(e),filter:Ob(e)}}function Pb(e,t){if(!t.entity)return t;const n=e.states[t.entity];n&&t.state_color&&(t.style={...Rb(n),...t.style}),t.title=t.title??(n?.attributes?.friendly_name||t.entity),t.icon=t.icon??Nb(e,t.entity);const a=n?function(e){return Ye(e.entity_id)}(n):void 0;return t.data_domain=t.state_color||"light"===a&&!1!==t.state_color?a:void 0,n&&(t.data_state=(e=>{const t=e.entity_id.split(".")[0];let n=e.state;return"climate"===t&&(n=e.attributes.hvac_action),n})(n)),t}function Lb(e,t){return t?e?.states[t]?.attributes?.friendly_name:void 0}function Nb(e,t,n){const a=e.states[t];return a&&a.attributes.icon?a.attributes.icon:zb(Ye(t),a,a?.state,n)}const Fb=async()=>{if(["ha-button-menu","ha-button","ha-camera-stream","ha-card","ha-circular-progress","ha-hls-player","ha-icon-button","ha-icon","ha-menu-button","ha-selector","ha-web-rtc-player"].every((e=>customElements.get(e))))return!0;const e=await window.loadCardHelpers();await e.createCardElement({type:"picture-glance",entities:[],camera_image:"dummy-to-load-editor-components"}),await customElements.whenDefined("hui-picture-glance-card");const t=customElements.get("hui-picture-glance-card");if(!t)return!1;const n=new t;return await n.constructor.getConfigElement(),!0},Vb=e=>!!e&&["on","open"].includes(e),Hb=(e,t)=>{if(!e)return[];const n=Object.keys(e.states).filter((e=>!t||e.substr(0,e.indexOf("."))===t));return n.sort(),n};function Bb(e){return!!e?.startsWith("/")}function qb(e,t){return Bb(t)?e.hassUrl(t):t??null}class Ub{constructor(){this._initialized=new Set}async initializeMultipleIfNecessary(e){return(await tf(Object.entries(e),(async([e,t])=>await this.initializeIfNecessary(e,t)))).every(Boolean)}async initializeIfNecessary(e,t){return!!this._initialized.has(e)||(t?!!await t()&&(this._initialized.add(e),!0):(this._initialized.add(e),!0))}uninitialize(e){this._initialized.delete(e)}isInitialized(e){return this._initialized.has(e)}isInitializedMultiple(e){return e.every((e=>this.isInitialized(e)))}}var Wb;!function(e){e.LANGUAGES="languages",e.SIDE_LOAD_ELEMENTS="side-load-elements",e.CAMERAS="cameras",e.MICROPHONE_CONNECT="microphone-connect",e.VIEW="view"}(Wb||(Wb={}));class Zb{constructor(e,t){this._initializationQueue=new w_({concurrency:1}),this._everInitialized=!1,this._api=e,this._initializer=t??new Ub}wasEverInitialized(){return this._everInitialized}isInitializedMandatory(){return!!this._api.getConfigManager().getConfig()&&this._initializer.isInitializedMultiple([Wb.LANGUAGES,Wb.SIDE_LOAD_ELEMENTS,Wb.CAMERAS,...this._api.getMicrophoneManager().shouldConnectOnInitialization()?[Wb.MICROPHONE_CONNECT]:[],Wb.VIEW])}async initializeMandatory(){await this._initializationQueue.add((()=>this._initializeMandatory()))}async _initializeMandatory(){const e=this._api.getHASSManager().getHASS();if(!e||this.isInitializedMandatory())return;if(!await this._initializer.initializeMultipleIfNecessary({[Wb.LANGUAGES]:async()=>await(async e=>{const t=F_(e);return"ca"===t?L_[t]=await import("./lang-ca-449daa4a.js"):"it"===t?L_[t]=await import("./lang-it-2a20a319.js"):"pt"===t?L_[t]=await import("./lang-pt-PT-c4863423.js"):"pt_BR"===t?L_[t]=await import("./lang-pt-BR-83a703b9.js"):"fr"===t&&(L_[t]=await import("./lang-fr-674e5de5.js")),t&&(N_=t),!0})(e),[Wb.SIDE_LOAD_ELEMENTS]:async()=>await Fb()}))return;this._api.getConfigManager().getConfig()&&await this._initializer.initializeMultipleIfNecessary({[Wb.CAMERAS]:async()=>await this._api.getCameraManager().initializeCamerasFromConfig(),...this._api.getMicrophoneManager().shouldConnectOnInitialization()&&{[Wb.MICROPHONE_CONNECT]:async()=>await this._api.getMicrophoneManager().connect()}})&&!this._api.getMessageManager().hasMessage()&&await this._initializer.initializeIfNecessary(Wb.VIEW,this._api.getViewManager().initialize)&&(this._everInitialized=!0,this._api.getCardElementManager().update())}uninitialize(e){this._initializer.uninitialize(e)}}class Qb{constructor(e,t,n,a){this.update=()=>{this._element.requestUpdate()},this._api=e,this._element=t,this._scrollCallback=n,this._menuToggleCallback=a}getElement(){return this._element}scrollReset(){this._scrollCallback()}toggleMenu(){this._menuToggleCallback()}hasUpdated(){return this._element.hasUpdated}elementConnected(){this._api.getInteractionManager().initialize(),this._api.getFullscreenManager().initialize(),this._api.getExpandManager().initialize(),this._api.getMediaLoadedInfoManager().initialize(),this._api.getMicrophoneManager().initialize(),this._api.getKeyboardStateManager().initialize(),this._api.getDefaultManager().initialize(),this._api.getMediaPlayerManager().initialize(),this._api.getHASSManager().getStateWatcher()?.subscribe(this.update,[...this._api.getConfigManager().getConfig()?.view.render_entities??[],...this._api.getMediaPlayerManager().getMediaPlayers()??[]]),of(this._element,(e=>{const t=e.getRootNode();return!!(t&&t instanceof ShadowRoot&&"HUI-PANEL-VIEW"===t.host.tagName)})(this._element),"panel"),of(this._element,!0,"tabindex","0"),this._api.getFullscreenManager().connect(),this._element.addEventListener("mousemove",this._api.getInteractionManager().reportInteraction),this._element.addEventListener("wheel",this._api.getInteractionManager().reportInteraction),this._element.addEventListener("ll-custom",this._api.getActionsManager().handleCustomActionEvent),this._element.addEventListener("action",this._api.getActionsManager().handleInteractionEvent),this._element.addEventListener("action",this._api.getInteractionManager().reportInteraction),this._element.addEventListener("frigate-card:action:execution-request",this._api.getActionsManager().handleActionExecutionRequestEvent),window.addEventListener("location-changed",this._api.getQueryStringManager().requestExecution),window.addEventListener("popstate",this._api.getQueryStringManager().requestExecution),this._api.getQueryStringManager().requestExecution(),this._element.requestUpdate()}elementDisconnected(){of(this._element,!1,"panel"),of(this._element,!1,"tabindex"),this._api.getMediaLoadedInfoManager().clear(),this._api.getFullscreenManager().disconnect(),this._api.getKeyboardStateManager().uninitialize(),this._api.getActionsManager().uninitialize(),this._api.getDefaultManager().uninitialize(),this._api.getHASSManager().getStateWatcher()?.unsubscribe(this.update),this._api.getInitializationManager().uninitialize(Wb.CAMERAS),this._api.getCameraManager().reset(),this._element.removeEventListener("mousemove",this._api.getInteractionManager().reportInteraction),this._element.removeEventListener("wheel",this._api.getInteractionManager().reportInteraction),this._element.removeEventListener("ll-custom",this._api.getActionsManager().handleCustomActionEvent),this._element.removeEventListener("action",this._api.getActionsManager().handleInteractionEvent),this._element.removeEventListener("action",this._api.getInteractionManager().reportInteraction),this._element.removeEventListener("frigate-card:action:execution-request",this._api.getActionsManager().handleActionExecutionRequestEvent),window.removeEventListener("location-changed",this._api.getQueryStringManager().requestExecution),window.removeEventListener("popstate",this._api.getQueryStringManager().requestExecution)}}function Gb(e,t,n){return null==e?e:function(e,t,n,a){if(!hh(e))return e;for(var i=-1,r=(t=sv(t,e)).length,o=r-1,s=e;null!=s&&++i{Gb(e,t,n)},Xb=(e,t,n)=>fv(e,t,n),Jb=(e,t)=>{!function(e,t){null==e||Yb(e,t)}(e,t)},ew=e=>u_(e),tw=(e,t)=>e.replace("#",`[${t.toString()}]`),nw=function(e){let t=!1;for(let n=0;n{const i=Xb(e,t);if(void 0===i)return!1;const r=a?.transform?a.transform(i):i;return!(t===n&&Dv(i,r)||(null===r?a?.keepOriginal||(Jb(e,t),0):void 0===r||(a?.keepOriginal||Jb(e,t),Kb(e,n,r),0)))})(a,e,t,n)}},rw=function(e,t,n){return function(a){let i=iw(e,t,n)(a);return i=cw(bs,iw(e,t,n),(e=>e.overrides))(a)||i,i}},ow=function(e,t){return rw(e,e,{transform:t})},sw=function(e){return rw(e,e,{transform:e=>null})},cw=function(e,t,n){return function(a){let i=!1;const r=Xb(a,e);return Array.isArray(r)&&r.forEach((e=>{const a=n?n(e):e;a&&"object"==typeof a&&(i=t(a)||i)})),i}},lw=(e,t)=>{const n=a=>{let i=!1;if(a&&"object"==typeof a){const r=t?t(a):a;r&&(i=e(r)||i),Array.isArray(a)?a.forEach((e=>{i=n(e)||i})):Object.keys(a).forEach((e=>{i=n(a[e])||i}))}return i};return n},dw=e=>!("object"!=typeof e||!e||void 0===e.mediaLoaded)&&(e.media_loaded=e.mediaLoaded,delete e.mediaLoaded,!0),uw=e=>{if("object"!=typeof e||!e||"object"!=typeof e.conditions||!e.conditions)return!1;const t=e.conditions,n=[];if(void 0!==t.view&&n.push({condition:"view",views:t.view}),void 0!==t.fullscreen&&n.push({condition:"fullscreen",fullscreen:t.fullscreen}),void 0!==t.expand&&n.push({condition:"expand",expand:t.expand}),void 0!==t.camera&&n.push({condition:"camera",cameras:t.camera}),void 0!==t.media_loaded&&n.push({condition:"media_loaded",media_loaded:t.media_loaded}),void 0!==t.state&&Array.isArray(t.state))for(const e of t.state)"object"!=typeof e||!e||void 0===e.state&&void 0===e.state_not&&void 0===e.entity||n.push({condition:"state",...e.state&&{state:e.state},...e.state_not&&{state_not:e.state_not},...e.entity&&{entity:e.entity}});return void 0!==t.media_query&&n.push({condition:"screen",media_query:t.media_query}),!!n.length&&(e.conditions=n,!0)},hw=e=>!("object"!=typeof e||!e||"call-service"!==e.action||"string"!=typeof e.service)&&(e.action="perform-action",e.perform_action=e.service,delete e.service,!0),pw=e=>!("object"!=typeof e||!e||"call-service"!==e.action||void 0===e.service||void 0===e.service_data||void 0!==e.data)&&(e.data=e.service_data,delete e.service_data,!0),mw=e=>!("object"!=typeof e||!e||"custom:frigate-card-action"!==e.action||"frigate_ui"!==e.frigate_card_action)&&(e.frigate_card_action="camera_ui",!0),gw=[cw(bs,dw,(e=>e.conditions)),e=>lw(dw,(e=>e.conditions))("object"==typeof e&&e?e[Ii]:{}),rw("event_gallery",or),rw("menu.buttons.frigate_ui",is),e=>lw(mw)("object"==typeof e&&e?e:{}),cw(Ca,ow("live_provider",(e=>"frigate-jsmpeg"===e?"jsmpeg":e))),rw("live.jsmpeg",ki),rw("live.image",Ci),rw("live.webrtc_card",Si),cw(Ca,rw("frigate.zone","frigate.zones",{transform:e=>Wg(e)})),cw(Ca,rw("frigate.label","frigate.labels",{transform:e=>Wg(e)})),e=>lw(pw)("object"==typeof e&&e?e:{}),function(e){if("object"!=typeof e||!e||!(Ii in e)||!Array.isArray(e[Ii]))return!1;let t=!1;const n=n=>{if(!t){if(!fv(e,"live.controls.ptz")){const{type:t,...a}=n;Gb(e,"live.controls.ptz",a)}t=!0}},a=e=>{const t=[];for(const i of e)if("custom:frigate-card-ptz"===i.type)n(i);else if("conditional"!==i.type&&"custom:frigate-card-conditional"!==i.type||!Array.isArray(i.elements))t.push(i);else{const e=a(i.elements);e.length&&(i.elements=e,t.push(i))}return t},i=a(e[Ii]);return t&&(i.length?e[Ii]=i:delete e[Ii]),t},rw("view.timeout_seconds",Ri),ow("live.lazy_unload",(e=>"all"===e?["unselected","hidden"]:"never"===e?null:Wg(e))),ow("live.auto_play",(e=>"all"===e?null:"never"===e?[]:Wg(e))),ow("live.auto_pause",(e=>"all"===e?["unselected","hidden"]:"never"===e?null:Wg(e))),ow("live.auto_mute",(e=>"all"===e?null:"never"===e?[]:Wg(e))),ow("live.auto_unmute",(e=>"all"===e?["selected","visible","microphone"]:"never"===e?null:Wg(e))),ow("media_viewer.auto_play",(e=>"all"===e?null:"never"===e?[]:Wg(e))),ow("media_viewer.auto_pause",(e=>"all"===e?null:"never"===e?[]:Wg(e))),ow("media_viewer.auto_mute",(e=>"all"===e?null:"never"===e?[]:Wg(e))),ow("media_viewer.auto_unmute",(e=>"all"===e?["selected","visible"]:"never"===e?null:Wg(e))),rw("live.controls.thumbnails.media",io),rw("timeline.media",Ho),rw("live.controls.timeline.media",po),rw("media_viewer.controls.timeline.media",Rr),rw("view.scan",Xi),rw("view.triggers.enabled",ar,{transform:e=>!0===e?"live":null,keepOriginal:!0}),rw("view.triggers.enabled",er,{transform:e=>!0!==e&&null}),rw("view.triggers.untrigger_reset",ir,{transform:e=>e?"default":null}),rw("live.layout",Ai),sw("media_viewer.layout"),sw("image.layout"),cw(bs,uw),e=>lw(uw)("object"==typeof e&&e?e[Ii]:{}),e=>lw(uw)("object"==typeof e&&e?e.automations:{}),cw(Ca,rw("hide","capabilities",{transform:e=>!0===e?{disable_except:["substream"]}:null})),rw("performance.profile",$s,{transform:e=>"low"===e?["low-performance"]:null}),cw(bs,iw("overrides","merge")),rw("live.controls.ptz",zi,{transform:e=>{if("object"!=typeof e||!e)return;const t=["data_left","data_right","data_up","data_down","data_zoom_in","data_zoom_out","service"],n=["actions_left","actions_right","actions_up","actions_down","actions_zoom_in","actions_zoom_out"],a=[...t,...n,"data_home","actions_home"];if(!Object.keys(e).some((e=>a.includes(e))))return;const i={};t.filter((t=>t in e)).reduce(((t,n)=>(t[n]=e[n],t)),i),n.filter((t=>t in e)).reduce(((t,n)=>("object"==typeof e[n]&&"tap_action"in e[n]&&(t[n]=e[n].tap_action),t)),i);const r=()=>{i.presets="presets"in e&&"object"==typeof e.presets&&e.presets?e.presets:{}};return"actions_home"in e&&"object"==typeof e.actions_home&&e.actions_home&&"tap_action"in e.actions_home?(r(),i.presets.home=e.actions_home.tap_action):"data_home"in e&&"object"==typeof e.data_home&&e.data_home&&"string"==typeof e.service&&(r(),i.presets.service=e.service,i.presets.data_home=e.data_home),i},keepOriginal:!0}),ow("live.controls.ptz",(e=>{if("object"!=typeof e||!e)return e;const t=["mode","position","orientation","hide_pan_tilt","hide_zoom","hide_home","style"],n=Object.keys(e);return n.some((e=>!t.includes(e)))?n.filter((e=>t.includes(e))).reduce(((t,n)=>(t[n]=e[n],t)),{}):void 0})),rw("view.update_cycle_camera",Wi),rw("view.update_force",Qi,{transform:e=>!0===e?"all":null}),rw("view.update_seconds",Gi),rw("view.update_entities",Yi),iw("live.controls.title",ds,{transform:e=>"object"==typeof e&&e&&"string"==typeof e.mode?"none"===e.mode?{style:"none"}:e.mode.includes("bottom")?{position:"bottom"}:e.mode.includes("top")?{position:"top"}:null:null}),sw("live.controls.title"),sw("media_viewer.controls.title"),e=>lw(hw)("object"==typeof e&&e?e:{}),rw("dimensions.max_height",ys),sw("dimensions.min_height")];class fw extends zs{}class _w extends Event{constructor(e,t){super("frigate-card:conditions:evaluate",t),this.conditions=e}}function vw(e,t,n){let a=ew(t),i=!1;if(n?.configOverrides)for(const t of n.configOverrides)e.evaluateConditions(t.conditions,n?.stateOverrides)&&(t.delete?.forEach((e=>{Jb(a,e)})),Object.keys(t.set??{}).forEach((e=>{Kb(a,e,t.set?.[e])})),Object.keys(t.merge??{}).forEach((e=>{Kb(a,e,Ly({},Xb(a,e),t.merge?.[e]))})),i=!0);if(!i)return t;if(n?.configOverrides?.some((e=>e.delete?.length))&&(a=hf(a)),n?.schema){const e=n.schema.safeParse(a);if(!e.success)throw new fw(V_("error.invalid_configuration_override"),[e.error.errors,a]);return e.data}return a}class yw{constructor(e,t){this._state={},this._epoch=this._createEpoch(),this._hasHAStateConditions=!1,this._mediaQueries=[],this._mediaQueryTrigger=()=>this._triggerChange(),this._api=e,this._listeners=[()=>this._api.getConfigManager().computeOverrideConfig(),()=>this._api.getAutomationsManager().execute(),...t?[t]:[]]}removeConditions(){this._mediaQueries.forEach((e=>e.removeEventListener("change",this._mediaQueryTrigger))),this._mediaQueries=[]}setConditionsFromConfig(){this.removeConditions();const e=(()=>{const e=this._api.getConfigManager().getConfig(),t=[];e?.overrides?.forEach((e=>t.push(...e.conditions))),e?.automations?.forEach((e=>t.push(...e.conditions)));const n=e=>{const a=vl.safeParse(e);a.success?(t.push(...a.data.conditions),a.data.elements?.forEach(n)):e&&"object"==typeof e&&Object.keys(e).forEach((t=>n(e[t])))};return e?.elements?.forEach(n),t})();this._hasHAStateConditions=e.some((e=>!e.condition||["state","numeric_state","user"].includes(e.condition))),e.forEach((e=>{if("screen"===e.condition){const t=window.matchMedia(e.media_query);t.addEventListener("change",this._mediaQueryTrigger),this._mediaQueries.push(t)}}))}setState(e){Object.keys(e).every((t=>Dv(e[t],this._state[t])))||(this._state={...this._state,...e},this._triggerChange())}getState(){return this._state}hasHAStateConditions(){return this._hasHAStateConditions}getEpoch(){return this._epoch}evaluateConditions(e,t){return e.every((e=>this._evaluateCondition(e,t)))}_evaluateCondition(e,t){const n={...this._state,...t};switch(e.condition){case void 0:case"state":return!!n.state&&(!e.state&&!e.state_not||e.entity in n.state&&(!e.state||(Array.isArray(e.state)?e.state.includes(n.state[e.entity].state):e.state===n.state[e.entity].state))&&(!e.state_not||(Array.isArray(e.state_not)?!e.state_not.includes(n.state[e.entity].state):e.state_not!==n.state[e.entity].state)));case"view":return!!n?.view&&e.views.includes(n.view);case"fullscreen":return void 0!==n.fullscreen&&e.fullscreen===n.fullscreen;case"expand":return void 0!==n.expand&&e.expand===n.expand;case"camera":return!!n.camera&&e.cameras.includes(n.camera);case"numeric_state":return!!n.state&&e.entity in n.state&&void 0!==n.state[e.entity].state&&(void 0===e.above||Number(n.state[e.entity].state)>e.above)&&(void 0===e.below||Number(n.state[e.entity].state)n.triggered?.has(e)));case"interaction":return void 0!==n.interaction&&e.interaction===n.interaction;case"microphone":return!(void 0!==e.connected&&n.microphone?.connected!==e.connected||void 0!==e.muted&&n.microphone?.muted!==e.muted);case"key":return!(!n.keys||!(e.key in n.keys)||(e.state??"down")!==n.keys[e.key].state||void 0!==e.ctrl&&e.ctrl!==!!n.keys[e.key].ctrl||void 0!==e.alt&&e.alt!==!!n.keys[e.key].alt||void 0!==e.meta&&e.meta!==!!n.keys[e.key].meta||void 0!==e.shift&&e.shift!==!!n.keys[e.key].shift)}}_createEpoch(){return{manager:this}}_triggerChange(){this._epoch=this._createEpoch(),this._listeners.forEach((e=>e()))}}const bw={casting:{[Qr]:!1,[Sr]:!1,[es]:"none",[`${os}.enabled`]:!0,[`${ss}.enabled`]:!0,[`${rs}.enabled`]:!1,[`${cs}.enabled`]:!1,[Zr]:["selected","visible"],[vs]:"static",[_s]:"16:9",[$i]:1,[$o]:!0},"low-performance":{[ro]:"none",[Ar]:"none",[Uo]:"none",[fo]:!1,[Nr]:!1,[Bo]:!1,[Wr]:[],[mr]:[],[gr]:[],[fr]:[],[ko]:["unselected","hidden"],[Co]:!1,[xr]:!1,[Eo]:"none",[kr]:"none",[$o]:!1,[Er]:"chevrons",[hs]:"none",[es]:"outside",[`${as}.enabled`]:!1,[`${ls}.enabled`]:!1,[`${ls}.enabled`]:!1,[`${cs}.enabled`]:!1,[lr]:!1,[dr]:!1,[ur]:!1,[cr]:!1,[co]:!1,[lo]:!1,[uo]:!1,[so]:!1,[Ir]:!1,[Tr]:!1,[jr]:!1,[zr]:!1,[Qo]:!1,[Go]:!1,[Yo]:!1,[Zo]:!1,[xs]:!1,[Cs]:10,[Es]:!1,[Ss]:!1,[Mr]:!1,[Ei]:!1,[Mi]:"image",[$i]:10,[ar]:"none",[Ms]:1},scrubbing:{[mo]:"below",[_o]:"ribbon",[go]:"seek",[Pr]:"below",[Fr]:"ribbon",[Lr]:"seek"}},ww=(e,t,n)=>{const a=Ds(Nd).safeParse(e);if(!a.success)return t;const i=a.data;for(const e of n??[])e in bw&&Object.entries(bw[e]).forEach((([e,n])=>{return r=n,void(void 0===Xb(i,a=e)&&Kb(t,a,r));var a,r}));return t},xw=e=>{switch(e){case"ptz_left":return"left";case"ptz_right":return"right";case"ptz_up":return"up";case"ptz_down":return"down";case"ptz_zoom_in":return"zoom_in";case"ptz_zoom_out":return"zoom_out"} +/* istanbul ignore next: No (current) way to reach this code -- @preserve */return null},Cw=(e,t)=>{if(!t.enabled)return[];const n=[];for(const a of["ptz_down","ptz_left","ptz_right","ptz_up","ptz_zoom_in","ptz_zoom_out"]){const i=t[a],r=xw(a);i&&r&&(n.push({conditions:[{condition:"key",key:i.key,state:"down",shift:i.shift,ctrl:i.ctrl,alt:i.alt,meta:i.meta}],actions:[vf({ptzAction:r,ptzPhase:"start"})],tag:e}),n.push({conditions:[{condition:"key",key:i.key,state:"up"}],actions:[vf({ptzAction:r,ptzPhase:"stop"})],tag:e}))}const a=t.ptz_home;return a&&n.push({conditions:[{condition:"key",key:a.key,state:"down",shift:a.shift,ctrl:a.ctrl,alt:a.alt,meta:a.meta}],actions:[vf()],tag:e}),n};class Mw{constructor(e){this._config=null,this._overriddenConfig=null,this._rawConfig=null,this._cardWideConfig=null,this._api=e}hasConfig(){return!!this.getConfig()}getConfig(){return this._overriddenConfig??this._config}getCardWideConfig(){return this._cardWideConfig}getNonOverriddenConfig(){return this._config}getRawConfig(){return this._rawConfig}setConfig(e){if(!e)throw new Error(V_("error.invalid_configuration"));const t=Nd.safeParse(e);if(!t.success){const n=aw(e),a=Ps(t.error);let i="";throw n&&(i=`${V_("error.upgrade_available")}. `),new Error(i+`${V_("error.invalid_configuration")}: `+(a&&a.size?JSON.stringify([...a],null," "):V_("error.invalid_configuration_no_hint")))}const n=ww(e,t.data,t.data.profiles);var a;(this._rawConfig=e,Dv(this._config,n))||(this._config=n,this._cardWideConfig={performance:n.performance,debug:n.debug},this._api.getConditionsManager().setConditionsFromConfig(),this._api.getConditionsManager().setState({view:void 0,displayMode:void 0,camera:void 0}),this._api.getMediaLoadedInfoManager().clear(),this._api.getInitializationManager().uninitialize(Wb.VIEW),this._api.getViewManager().reset(),this._api.getMessageManager().reset(),this._api.getStyleManager().setPerformance(),this._api.getStatusBarItemManager().removeAllDynamicStatusBarItems(),((e,t)=>{e.getAutomationsManager().deleteAutomations(t);const n=e.getConfigManager().getConfig()?.view.keyboard_shortcuts;if(!n)return;const a=Cw(t,n);a.length&&e.getAutomationsManager().addAutomations(a)})(this._api,this),(a=this._api).getAutomationsManager().deleteAutomations(),a.getAutomationsManager().addAutomations(a.getConfigManager().getNonOverriddenConfig()?.automations??[]),this.computeOverrideConfig(),this._api.getCardElementManager().update())}computeOverrideConfig(){const e=this._api.getConditionsManager();if(!this._config)return;let t=null;try{t=vw(e,this._config,{configOverrides:this._config.overrides,schema:Nd})}catch(e){return void this._api.getMessageManager().setErrorIfHigherPriority(e)}if(Dv(t,this._overriddenConfig))return;const n=this._overriddenConfig;this._overriddenConfig=t,this._api.getStyleManager().setMinMaxHeight(),!n||Dv(n?.cameras,this._overriddenConfig?.cameras)&&Dv(n?.cameras_global,this._overriddenConfig?.cameras_global)||this._api.getInitializationManager().uninitialize(Wb.CAMERAS),n&&n?.live.microphone.always_connected!==this._overriddenConfig?.live.microphone.always_connected&&this._api.getInitializationManager().uninitialize(Wb.MICROPHONE_CONNECT),this._initializeBackground(n)}async _initializeBackground(e){await this._api.getDefaultManager().initializeIfNecessary(e),await this._api.getMediaPlayerManager().initializeIfNecessary(e),this._api.getCardElementManager().update()}}class kw{constructor(e){this._timer=new xf,this._stateChangeHandler=()=>{this._setToDefaultIfAllowed()},this._api=e}async initializeIfNecessary(e){Dv(e?.view.default_reset,this._api.getConfigManager().getConfig()?.view.default_reset)||await this.initialize()}async initialize(){this.uninitialize();const e=this._api.getConfigManager().getConfig()?.view.default_reset;e?.entities.length&&this._api.getHASSManager().getStateWatcher().subscribe(this._stateChangeHandler,e.entities);const t=this._api.getConfigManager().getConfig()?.view.default_reset.every_seconds;return t&&this._timer.startRepeated(t,(()=>this._setToDefaultIfAllowed())),this._api.getConfigManager().getConfig()?.view.default_reset.after_interaction&&this._api.getAutomationsManager().addAutomations([{actions:[gf("default")],conditions:[{condition:"interaction",interaction:!1}],tag:this}]),!0}uninitialize(){this._timer.stop(),this._api.getHASSManager().getStateWatcher().unsubscribe(this._stateChangeHandler),this._api.getAutomationsManager().deleteAutomations(this)}_setToDefaultIfAllowed(){this._isAutomatedUpdateAllowed()&&this._api.getViewManager().setViewDefault()}_isAutomatedUpdateAllowed(){const e=this._api.getConfigManager().getConfig()?.view.default_reset.interaction_mode;return!!e&&((e,t)=>{switch(e){case"all":return!0;case"active":return t;case"inactive":return!t}})(e,this._api.getInteractionManager().hasInteraction())}}const Sw=(e,t="download")=>{const n=new URL(e).origin===window.location.origin,a=e.startsWith("data:");if(navigator.userAgent.startsWith("Home Assistant/")||navigator.userAgent.startsWith("HomeAssistant/")||!n&&!a)window.open(e,"_blank");else{const n=document.createElement("a");n.setAttribute("download",t),n.href=e,n.click(),n.remove()}},Ew=async(e,t,n)=>{const a=await t.getMediaDownloadPath(n);if(!a)throw new zs(V_("error.download_no_media"));let i=a.endpoint;if(a.sign){let t;try{t=await Ib(e,a.endpoint)}catch(e){Gg(e)}if(!t)throw new zs(V_("error.download_sign_failed"));i=t}Sw(i)},$w=e=>{const t=document.createElement("canvas");t.width=e.videoWidth,t.height=e.videoHeight;const n=t.getContext("2d");return n?(n.drawImage(e,0,0,t.width,t.height),t.toDataURL("image/jpeg")):null};class Aw{constructor(e){this._api=e}async downloadViewerMedia(){const e=this._api.getViewManager().getView()?.queryResults?.getSelectedResult(),t=this._api.getHASSManager().getHASS();if(!e||!t)return!1;try{await Ew(t,this._api.getCameraManager(),e)}catch(e){return this._api.getMessageManager().setErrorIfHigherPriority(e),!1}return!0}async downloadScreenshot(){const e=await(this._api.getMediaLoadedInfoManager().get()?.player?.getScreenshotURL());e&&Sw(e,(e=>{if(e?.is("live")||e?.is("image"))return`${e.view}-${e.camera}-${Wu(new Date,"yyyy-MM-dd-HH-mm-ss")}.jpg`;if(e?.isViewerView()){const t=e.queryResults?.getSelectedResult(),n=t?.getID()??null;return`${e.view}-${e.camera}${n?`-${n}`:""}.jpg`}return"screenshot.jpg"})(this._api.getViewManager().getView()))}}class zw{constructor(e){this._expanded=!1,this._api=e}initialize(){this._setConditionState()}isExpanded(){return this._expanded}toggleExpanded(){this.setExpanded(!this._expanded)}setExpanded(e){e&&this._api.getFullscreenManager().isInFullscreen()&&this._api.getFullscreenManager().stopFullscreen(),this._expanded=e,this._setConditionState(),this._api.getCardElementManager().update()}_setConditionState(){this._api.getConditionsManager()?.setState({expand:this._expanded})}}const Iw=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],Tw=(()=>{if("undefined"==typeof document)return!1;const e=Iw[0],t={};for(const n of Iw){const a=n?.[1];if(a in document){for(const[a,i]of n.entries())t[e[a]]=i;return t}}return!1})(),jw={change:Tw.fullscreenchange,error:Tw.fullscreenerror};let Ow={request:(e=document.documentElement,t)=>new Promise(((n,a)=>{const i=()=>{Ow.off("change",i),n()};Ow.on("change",i);const r=e[Tw.requestFullscreen](t);r instanceof Promise&&r.then(i).catch(a)})),exit:()=>new Promise(((e,t)=>{if(!Ow.isFullscreen)return void e();const n=()=>{Ow.off("change",n),e()};Ow.on("change",n);const a=document[Tw.exitFullscreen]();a instanceof Promise&&a.then(n).catch(t)})),toggle:(e,t)=>Ow.isFullscreen?Ow.exit():Ow.request(e,t),onchange(e){Ow.on("change",e)},onerror(e){Ow.on("error",e)},on(e,t){const n=jw[e];n&&document.addEventListener(n,t,!1)},off(e,t){const n=jw[e];n&&document.removeEventListener(n,t,!1)},raw:Tw};Object.defineProperties(Ow,{isFullscreen:{get:()=>Boolean(document[Tw.fullscreenElement])},element:{enumerable:!0,get:()=>document[Tw.fullscreenElement]??void 0},isEnabled:{enumerable:!0,get:()=>Boolean(document[Tw.fullscreenEnabled])}}),Tw||(Ow={isEnabled:!1});var Dw=Ow;class Rw{constructor(e){this._fullscreenHandler=()=>{this._api.getExpandManager().setExpanded(!1),this._setConditionState(),this._api.getCardElementManager().update()},this._api=e}initialize(){this._setConditionState()}connect(){Dw.isEnabled&&Dw.on("change",this._fullscreenHandler)}disconnect(){Dw.isEnabled&&Dw.off("change",this._fullscreenHandler)}isInFullscreen(){return Dw.isEnabled&&Dw.isFullscreen}toggleFullscreen(){Dw.toggle(this._api.getCardElementManager().getElement())}stopFullscreen(){Dw.exit()}_setConditionState(){this._api.getConditionsManager()?.setState({fullscreen:this.isInFullscreen()})}}class Pw{constructor(){this._watcherCallbacks=new Map}setHASS(e,t){if(e)for(const[n,a]of this._watcherCallbacks.entries()){const i=Tb(t,e,a,{stateOnly:!0,firstOnly:!0});i.length&&n(i[0])}}subscribe(e,t){return!!t.length&&(this._watcherCallbacks.has(e)?this._watcherCallbacks.get(e)?.push(...t):this._watcherCallbacks.set(e,t),!0)}unsubscribe(e){this._watcherCallbacks.delete(e)}}class Lw{constructor(e){this._hass=null,this._stateWatcher=new Pw,this._api=e}getHASS(){return this._hass}hasHASS(){return!!this._hass}getStateWatcher(){return this._stateWatcher}setHASS(e){if(((e,t)=>e?.connected!==t?.connected)(this._hass,e)&&(e?.connected?this._api.getMessageManager().resetType("connection"):this._api.getMessageManager().setMessageIfHigherPriority({message:V_("error.reconnecting"),icon:"mdi:lan-disconnect",type:"connection",dotdotdot:!0})),!e)return;const t=this._hass;this._hass=e,this._api.getConditionsManager().hasHAStateConditions()&&this._api.getConditionsManager().setState({state:this._hass.states,user:this._hass.user}),this._api.getStyleManager().setLightOrDarkMode(),this._stateWatcher.setHASS(t,e)}}var Nw=function(){return th.Date.now()},Fw="Expected a function",Vw=Math.max,Hw=Math.min;function Bw(e,t,n){var a,i,r,o,s,c,l=0,d=!1,u=!1,h=!0;if("function"!=typeof e)throw new TypeError(Fw);function p(t){var n=a,r=i;return a=i=void 0,l=t,o=e.apply(r,n)}function m(e){var n=e-c;return void 0===c||n>=t||n<0||u&&e-l>=r}function g(){var e=Nw();if(m(e))return f(e);s=setTimeout(g,function(e){var n=t-(e-c);return u?Hw(n,r-(e-l)):n}(e))}function f(e){return s=void 0,h&&a?p(e):(a=i=void 0,o)}function _(){var e=Nw(),n=m(e);if(a=arguments,i=this,c=e,n){if(void 0===s)return function(e){return l=e,s=setTimeout(g,t),d?p(e):o}(c);if(u)return clearTimeout(s),s=setTimeout(g,t),p(c)}return void 0===s&&(s=setTimeout(g,t)),o}return t=Cg(t)||0,hh(n)&&(d=!!n.leading,r=(u="maxWait"in n)?Vw(Cg(n.maxWait)||0,t):r,h="trailing"in n?!!n.trailing:h),_.cancel=function(){void 0!==s&&clearTimeout(s),l=0,a=c=i=s=void 0},_.flush=function(){return void 0===s?o:f(Nw())},_}function qw(e,t,n){var a=!0,i=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return hh(n)&&(a="leading"in n?!!n.leading:a,i="trailing"in n?!!n.trailing:i),Bw(e,t,{leading:a,maxWait:t,trailing:i})}class Uw{constructor(e){this._timer=new xf,this.reportInteraction=qw((()=>{this._reportInteraction()}),1e3),this._api=e}initialize(){this._api.getConditionsManager().setState({interaction:!1})}hasInteraction(){return this._timer.isRunning()}_reportInteraction(){this._timer.stop();const e=this._api.getConfigManager().getConfig()?.view.interaction_seconds;e&&(this._api.getConditionsManager().setState({interaction:!0}),this._timer.start(e,(()=>{this._api.getConditionsManager().setState({interaction:!1}),this._api.getStyleManager().setLightOrDarkMode()})))}}class Ww{constructor(e){this._state={},this._handleKeydown=e=>{const t={state:"down",ctrl:e.ctrlKey,alt:e.altKey,meta:e.metaKey,shift:e.shiftKey};Dv(this._state[e.key],t)||(this._state[e.key]=t,this._processStateChange())},this._handleKeyup=e=>{e.key in this._state&&"down"===this._state[e.key].state&&(this._state[e.key].state="up",this._processStateChange())},this._handleBlur=()=>{Object.keys(this._state).length&&(this._state={},this._processStateChange())},this._api=e}initialize(){const e=this._api.getCardElementManager().getElement();e.addEventListener("keydown",this._handleKeydown),e.addEventListener("keyup",this._handleKeyup),e.addEventListener("blur",this._handleBlur)}uninitialize(){const e=this._api.getCardElementManager().getElement();e.removeEventListener("keydown",this._handleKeydown),e.removeEventListener("keyup",this._handleKeyup),e.removeEventListener("blur",this._handleBlur)}_processStateChange(){this._api.getConditionsManager().setState({keys:this._state})}}function Zw(e,t){let n;return n=e instanceof Event?e.composedPath()[0]:e,n instanceof HTMLImageElement?{width:n.naturalWidth,height:n.naturalHeight,...t}:n instanceof HTMLVideoElement?{width:n.videoWidth,height:n.videoHeight,...t}:n instanceof HTMLCanvasElement?{width:n.width,height:n.height,player:t?.player,...t}:null}function Qw(e,t,n){const a=Zw(t,n);a&&Gw(e,a)}function Gw(e,t){Bg(e,"media:loaded",t)}function Yw(e){Bg(e,"media:unloaded")}function Kw(e){Bg(e,"media:volumechange")}function Xw(e){Bg(e,"media:play")}function Jw(e){Bg(e,"media:pause")}class ex{constructor(e){this._current=null,this._lastKnown=null,this._api=e}initialize(){this.clear()}set(e){var t;(t=e).height>=50&&t.width>=50&&(B_(this._api.getConfigManager().getCardWideConfig(),"Frigate Card media load: ",e),this._current=e,this._lastKnown=e,this._api.getConditionsManager().setState({media_loaded:!0}),this._api.getStyleManager().setExpandedMode(),this._api.getCardElementManager().update())}get(){return this._current}getLastKnown(){return this._lastKnown}clear(){this._current=null,this._api.getConditionsManager().setState({media_loaded:!1})}has(){return!!this._current}}class tx{static isEvent(e){return this.isClip(e)||this.isSnapshot(e)}static isRecording(e){return"recording"===e.getMediaType()}static isClip(e){return"clip"===e.getMediaType()}static isSnapshot(e){return"snapshot"===e.getMediaType()}static isVideo(e){return this.isClip(e)||this.isRecording(e)}}class nx{constructor(e){this._mediaPlayers=[],this._api=e}getMediaPlayers(){return this._mediaPlayers}hasMediaPlayers(){return this._mediaPlayers.length>0}async initializeIfNecessary(e){e?.menu.buttons.media_player.enabled!==this._api.getConfigManager().getConfig()?.menu.buttons.media_player.enabled&&await this.initialize()}async initialize(){const e=this._api.getHASSManager().getHASS();if(!e||!this._api.getConfigManager().getConfig()?.menu.buttons.media_player.enabled)return!1;const t=Object.keys(e.states).filter((t=>{if(t.startsWith("media_player.")){const n=e.states[t];if(n&&"unavailable"!==n.state&&vb(n,131072))return!0}return!1}));let n=null;try{n=await this._api.getEntityRegistryManager().getEntities(e,t)}catch(e){Gg(e)}return this._mediaPlayers=t.filter((e=>{const t=n?.get(e);return!t||!t.hidden_by})),!0}async stop(e){const t=this._api.getHASSManager().getHASS(),n=t?.states[e];if(!n)return;let a;if(vb(n,4096))a="media_stop";else{if(!vb(n,256))return;a="turn_off"}await t.callService("media_player",a,{entity_id:e})}async playLive(e,t){const n=this._api.getCameraManager().getStore().getCameraConfig(t);n&&("dashboard"===n.cast?.method?await this._playLiveDashboard(e,n):await this._playLiveStandard(e,t,n))}async _playLiveStandard(e,t,n){const a=this._api.getHASSManager().getHASS(),i=n?.camera_entity??null;if(!a||!i)return;const r=this._api.getCameraManager().getCameraMetadata(t)?.title??null,o=a.states[i]?.attributes?.entity_picture??null;await a.callService("media_player","play_media",{entity_id:e,media_content_id:`media-source://camera/${i}`,media_content_type:"application/vnd.apple.mpegurl",extra:{...r&&{title:r},...o&&{thumb:o}}})}async _playLiveDashboard(e,t){const n=this._api.getHASSManager().getHASS();if(!n)return;const a=t.cast?.dashboard;a?.dashboard_path&&a?.view_path?await n.callService("cast","show_lovelace_view",{entity_id:e,dashboard_path:a.dashboard_path,view_path:a.view_path}):this._api.getMessageManager().setMessageIfHigherPriority({type:"error",icon:"mdi:cast",message:V_("error.no_dashboard_or_view")})}async playMedia(e,t){const n=this._api.getHASSManager().getHASS();if(!n||!t)return;const a=t.getTitle(),i=t.getThumbnail();await n.callService("media_player","play_media",{entity_id:e,media_content_id:t.getContentID(),media_content_type:tx.isVideo(t)?"video":"image",extra:{...a&&{title:a},...i&&{thumb:i}}})}}class ax{constructor(e){this._message=null,this._api=e}getMessage(){return this._message}hasMessage(){return!!this._message}hasErrorMessage(){return"error"===this._message?.type}reset(){const e=this.hasMessage();this._message=null,e&&this._api.getCardElementManager().update()}resetType(e){this._message?.type===e&&this.reset()}setErrorIfHigherPriority(e,t){e&&"object"==typeof e&&"message"in e&&(Gg(e),this.setMessageIfHigherPriority({message:t?`${t}: ${e.message}`:e.message,type:"error",...e instanceof zs&&{context:e.context}}))}setMessageIfHigherPriority(e){const t=this._message?Is[this._message.type]:0,n=Is[e.type];return!(this._message&&ne.stop())),this._stream=void 0,this._setConditionState(),this._api.getCardElementManager().update()}getStream(){return this._stream??void 0}mute(){const e=this.isMuted();this._mute=!0,this._setMute(),this._setConditionState(),e||this._callListeners("muted")}async unmute(){if(!this.isSupported())return;const e=!this.isMuted(),t=()=>{this._mute=!1,this._setMute()};this.isConnected()||this.isForbidden()?this.isConnected()&&t():(t(),await this.connect()),this._setConditionState(),e||this._callListeners("unmuted")}isConnected(){return!!this._stream}isForbidden(){return null===this._stream}isMuted(){return!this._stream||this._stream.getTracks().every((e=>!e.enabled))}addListener(e){this._listeners.push(e)}removeListener(e){this._listeners=this._listeners.filter((t=>t!==e))}_callListeners(e){this._listeners.forEach((t=>t(e)))}_setMute(){this._stream?.getTracks().forEach((e=>{e.enabled=!this._mute})),this._startTimer(),this._api.getCardElementManager().update()}_startTimer(){const e=this._api.getConfigManager().getConfig()?.live.microphone;if(e?.always_connected)return;const t=e?.disconnect_seconds??0;t&&this._timer.start(t,(()=>{this.disconnect()}))}_setConditionState(){this._api.getConditionsManager().setState({microphone:{muted:this.isMuted(),connected:this.isConnected()}})}}class rx{constructor(e){this._shouldRun=!0,this.requestExecution=()=>{this._shouldRun=!0,this._api.getCardElementManager().update()},this.executeIfNecessary=async()=>{this._shouldRun&&(this._shouldRun=!1,await this._executeViewRelated(this._calculateIntent()),await this._executeNonViewRelated(this._calculateIntent()))},this._isViewAction=e=>{switch(e.frigate_card_action){case"clip":case"clips":case"diagnostics":case"image":case"live":case"recording":case"recordings":case"snapshot":case"snapshots":case"timeline":return!0}return!1},this._api=e}hasViewRelatedActionsToRun(){return!!this._calculateIntent().view&&this._shouldRun}async _executeViewRelated(e){e.view&&(e.view.default?await this._api.getViewManager().setViewDefaultWithNewQuery({params:{camera:e.view.camera},...e.view.substream&&{modifiers:[new sb(e.view.substream)]}}):await this._api.getViewManager().setViewByParametersWithNewQuery({params:{...e.view.view&&{view:e.view.view},...e.view.camera&&{camera:e.view.camera}},...e.view.substream&&{modifiers:[new sb(e.view.substream)]}}))}async _executeNonViewRelated(e){e.other&&await this._api.getActionsManager().executeActions(e.other)}_calculateIntent(){const e={};for(const t of this._getActions())this._isViewAction(t)?((e.view??={}).view=t.frigate_card_action,(e.view??={}).default=void 0):"default"===t.frigate_card_action?((e.view??={}).default=!0,(e.view??={}).view=void 0):"camera_select"===t.frigate_card_action?(e.view??={}).camera=t.camera:"live_substream_select"===t.frigate_card_action?(e.view??={}).substream=t.camera:(e.other??=[]).push(t);return e}_getActions(){const e=new URLSearchParams(window.location.search),t=[],n=new RegExp(/^frigate-card-action([.:](?\w+))?[.:](?\w+)/);for(const[a,i]of e.entries()){const e=a.match(n);if(!e||!e.groups)continue;const r=e.groups.cardID,o=e.groups.action;let s=null;switch(o){case"camera_select":case"live_substream_select":i&&(s=ff(o,i,{cardID:r}));break;case"camera_ui":case"clip":case"clips":case"default":case"diagnostics":case"download":case"expand":case"image":case"live":case"menu_toggle":case"recording":case"recordings":case"snapshot":case"snapshots":case"timeline":s=gf(o,{cardID:r});break;default:console.warn(`Frigate card received unknown card action in query string: ${o}`)}s&&t.push(s)}return t}}class ox{constructor(e){this._items=[],this._dynamicItems=[],this._api=e}addDynamicStatusBarItem(e){this._dynamicItems.includes(e)||this._dynamicItems.push(e),this._api.getCardElementManager().update()}removeDynamicStatusBarItem(e){this._dynamicItems=this._dynamicItems.filter((t=>!Dv(t,e))),this._api.getCardElementManager().update()}removeAllDynamicStatusBarItems(){this._dynamicItems=[],this._api.getCardElementManager().update()}calculateItems(e){const t=e?.view?e?.cameraManager?.getCameraMetadata(e?.view?.camera):null,n=t?.engineLogo??null,a=e?.view?.is("live")?t?.title??null:e?.view?.isViewerView()?e?.view.queryResults?.getSelectedResult()?.getTitle()??null:null,i=e?.mediaLoadedInfo?this._calculateResolution(e?.mediaLoadedInfo):null,r=e?.mediaLoadedInfo?.technology?.length?e?.mediaLoadedInfo.technology[0]:null;return[...a?[{type:"custom:frigate-card-status-bar-string",string:a,expand:!0,sufficient:!0,...e?.statusConfig?.items.title}]:[],...i?[{type:"custom:frigate-card-status-bar-string",string:i,...e?.statusConfig?.items.resolution}]:[],...r&&"webrtc"===r?[{type:"custom:frigate-card-status-bar-icon",icon:"mdi:webrtc",...e?.statusConfig?.items.technology}]:r?[{type:"custom:frigate-card-status-bar-string",string:r.toUpperCase(),...e?.statusConfig?.items.technology}]:[],...n?[{type:"custom:frigate-card-status-bar-image",image:n,...e?.statusConfig?.items.engine}]:[],...this._dynamicItems]}_matchesWidthHeight(e,t,n){const a=.99*t,i=1.01*t,r=.99*n,o=1.01*n,s=(e,t,n)=>e>=t&&e<=n;return!!e&&(s(e.width,a,i)&&s(e.height,r,o)||s(e.height,a,i)&&s(e.width,r,o))}_calculateResolution(e){return this._matchesWidthHeight(e,1920,1080)?"1080p":this._matchesWidthHeight(e,1280,720)?"720p":this._matchesWidthHeight(e,640,480)?"VGA":this._matchesWidthHeight(e,3840,2160)?"4K":this._matchesWidthHeight(e,720,480)?"480p":this._matchesWidthHeight(e,720,576)?"576p":this._matchesWidthHeight(e,7680,4320)?"8K":`${e.width}x${e.height}`}}class sx{constructor(e){this.setLightOrDarkMode=()=>{const e=this._api.getConfigManager().getConfig(),t="on"===e?.view.dark_mode||"auto"===e?.view.dark_mode&&(!this._api.getInteractionManager().hasInteraction()||!!this._api.getHASSManager().getHASS()?.themes.darkMode);of(this._api.getCardElementManager().getElement(),t,"dark")},this._api=e}setExpandedMode(){const e=this._api.getCardElementManager().getElement(),t=this._api.getViewManager().getView(),n=this._api.getMediaLoadedInfoManager().getLastKnown();e.style.setProperty("--frigate-card-expand-aspect-ratio",t?.isAnyMediaView()&&n?`${n.width} / ${n.height}`:"unset");const a=t?.isGrid();e.style.setProperty("--frigate-card-expand-width",!a&&t?.isAnyMediaView()?"none":"var(--frigate-card-expand-max-width)"),e.style.setProperty("--frigate-card-expand-height",!a&&t?.isAnyMediaView()?"none":"var(--frigate-card-expand-max-height)")}setMinMaxHeight(){const e=this._api.getConfigManager().getConfig();if(e){this._api.getCardElementManager().getElement().style.setProperty("--frigate-card-height",e.dimensions.height)}}setPerformance(){const e={box_shadow:"none",border_radius:"0px"},t=this._api.getCardElementManager().getElement(),n=this._api.getConfigManager().getCardWideConfig()?.performance,a=n?.style??{};for(const n of Object.keys(a)){const i=`--frigate-card-css-${n.replaceAll("_","-")}`;!1===a[n]?t.style.setProperty(i,e[n]):t.style.removeProperty(i)}}_isAspectRatioEnforced(e,t){const n=e.dimensions.aspect_ratio_mode;return!(this._api.getFullscreenManager().isInFullscreen()||this._api.getExpandManager().isExpanded()||"unconstrained"===n||"dynamic"===n&&(!t||t?.isAnyMediaView()||t?.is("timeline")||t?.is("diagnostics")))}getAspectRatioStyle(){const e=this._api.getConfigManager().getConfig(),t=this._api.getViewManager().getView();if(e){if(!this._isAspectRatioEnforced(e,t))return uf();const n=e.dimensions.aspect_ratio_mode,a=this._api.getMediaLoadedInfoManager().getLastKnown();return uf(a&&"dynamic"===n?{ratio:[a.width,a.height]}:{ratio:e.dimensions.aspect_ratio})}return uf({defaultStatic:!0})}}class cx{constructor(e){this._triggeredCameras=new Map,this._triggeredCameraTimers=new Map,this._throttledTriggerAction=qw(this._triggerAction.bind(this),1e3,{trailing:!0}),this._api=e}getTriggeredCameraIDs(){return new Set(this._triggeredCameras.keys())}isTriggered(){return!!this._triggeredCameras.size}getMostRecentlyTriggeredCameraID(){const e=Ev([...this._triggeredCameras.entries()],(e=>e[1].getTime()),"desc");return e.length?e[0][0]:null}async handleCameraEvent(e){const t=this._api.getConfigManager().getConfig()?.view.triggers,n=this._api.getViewManager().getView()?.camera;if(!t||!n)return;const a=this._api.getCameraManager().getStore().getAllDependentCameras(n);t.filter_selected_camera&&!a.has(e.cameraID)||("end"!==e.type?(this._triggeredCameras.set(e.cameraID,new Date),this._setConditionStateIfNecessary(),await this._throttledTriggerAction(e)):this._startUntriggerTimer(e.cameraID))}_hasAllowableInteractionStateForAction(){const e=this._api.getConfigManager().getConfig()?.view.triggers,t=this._api.getInteractionManager().hasInteraction();return!!e&&("all"===e.actions.interaction_mode||"active"===e.actions.interaction_mode&&t||"inactive"===e.actions.interaction_mode&&!t)}async _triggerAction(e){const t=this._api.getConfigManager().getConfig()?.view.triggers.actions.trigger,n=this._api.getConfigManager().getConfig()?.view.default;("high"!==e.fidelity||e.snapshot||e.clip||"live"===t||"default"===t&&"live"===n)&&(this._hasAllowableInteractionStateForAction()&&("update"===t?await this._api.getViewManager().setViewByParametersWithNewQuery({queryExecutorOptions:{useCache:!1}}):"live"===t?await this._api.getViewManager().setViewByParametersWithNewQuery({params:{view:"live",camera:e.cameraID}}):"default"===t?await this._api.getViewManager().setViewDefaultWithNewQuery({params:{camera:e.cameraID}}):"high"===e.fidelity&&"media"===t&&await this._api.getViewManager().setViewByParametersWithNewQuery({params:{view:e.clip?"clip":"snapshot",camera:e.cameraID}})),this._api.getCardElementManager().update())}_setConditionStateIfNecessary(){const e=new Set(this._triggeredCameras.keys()),t=e.size?e:void 0;Dv(t,this._api.getConditionsManager().getState().triggered)||this._api.getConditionsManager().setState({triggered:t})}async _untriggerAction(e){const t=this._api.getConfigManager().getConfig()?.view.triggers.actions.untrigger;"default"===t&&this._hasAllowableInteractionStateForAction()&&await this._api.getViewManager().setViewDefaultWithNewQuery(),this._triggeredCameras.delete(e),this._deleteTimer(e),this._setConditionStateIfNecessary(),this._api.getCardElementManager().update()}_startUntriggerTimer(e){this._deleteTimer(e);const t=new xf;this._triggeredCameraTimers.set(e,t),t.start( +/* istanbul ignore next: the case of config being null here cannot be + reached, as there's no way to have the untrigger call happen without + a config. -- @preserve */ +this._api.getConfigManager().getConfig()?.view.triggers.untrigger_seconds??0,(async()=>{await this._untriggerAction(e)}))}_deleteTimer(e){this._triggeredCameraTimers.get(e)?.stop(),this._triggeredCameraTimers.delete(e)}}function lx(e,t){return t="function"==typeof t?t:void 0,e&&e.length?Hg(e,void 0,t):[]}class dx{constructor(e){this._queries=null,e&&(this._queries=e)}clone(){return u_(this)}getQueries(){return this._queries}setQueries(e){return this._queries=e,this}getQueryCameraIDs(){if(!this._queries)return null;const e=new Set;return this._queries.forEach((t=>[...t.cameraIDs].forEach((t=>e.add(t))))),e}setQueryCameraIDs(e){if(!this._queries)return this;const t=[];return this._queries.forEach((n=>t.push({...n,cameraIDs:Zg(e)}))),this._queries=lx(t,Dv),this}hasQueriesForCameraIDs(e){for(const t of e)if(!this._queries?.some((e=>e.cameraIDs.has(t))))return!1;return!0}}class ux extends dx{convertToClipsQueries(){for(const e of this._queries??[])delete e.hasSnapshot,e.hasClip=!0;return this}}class hx extends dx{}class px{static areEventQueries(e){return e instanceof ux}static areRecordingQueries(e){return e instanceof hx}static areClipsQueries(e){return this.areEventQueries(e)&&!!e?.getQueries()?.every((e=>e.hasClip))}static areSnapshotQueries(e){return this.areEventQueries(e)&&!!e?.getQueries()?.every((e=>e.hasSnapshot))}static getQueriesType(e){return this.areEventQueries(e)?"event":this.areRecordingQueries(e)?"recording":null}static getMediaType(e){return this.areClipsQueries(e)?"clips":this.areSnapshotQueries(e)?"snapshots":this.areRecordingQueries(e)?"recordings":null}}const mx=(e,t,n)=>{const a={anyCapabilities:["clips","snapshots","recordings"]};switch(t){case"image":case"diagnostics":return e.getStore().getCameraIDs();case"live":case"clip":case"clips":case"snapshot":case"snapshots":case"recording":case"recordings":const i="clip"===t?"clips":"snapshot"===t?"snapshots":"recording"===t?"recordings":t;return n?e.getStore().getAllDependentCameras(n,i):e.getStore().getCameraIDsWithCapability(i);case"timeline":return e.getStore().getCameraIDsWithCapability(a);case"media":return n?e.getStore().getAllDependentCameras(n,a):e.getStore().getCameraIDsWithCapability(a)}},gx=(e,t)=>Ly({},e,t);class fx{constructor(e){this.view=e.view,this.camera=e.camera,this.query=e.query??null,this.queryResults=e.queryResults??null,this.context=e.context??null,this.displayMode=e.displayMode??null}clone(){return new fx({view:this.view,camera:this.camera,query:this.query?.clone()??null,queryResults:this.queryResults?.clone()??null,context:this.context,displayMode:this.displayMode})}evolve(e){return new fx({view:void 0!==e.view?e.view:this.view,camera:void 0!==e.camera?e.camera:this.camera,query:void 0!==e.query?e.query:this.query?.clone()??null,queryResults:void 0!==e.queryResults?e.queryResults:this.queryResults?.clone()??null,context:void 0!==e.context?e.context:this.context,displayMode:void 0!==e.displayMode?e.displayMode:this.displayMode})}mergeInContext(e){return this.context=gx(this.context,e),this}removeContext(e){return this.context&&delete this.context[e],this}removeContextProperty(e,t){const n=this.context?.[e];return n&&delete n[t],this}is(e){return this.view==e}isGalleryView(){return["clips","snapshots","recordings"].includes(this.view)}isAnyMediaView(){return this.isViewerView()||this.is("live")||this.is("image")}isViewerView(){return["media","clip","snapshot","recording"].includes(this.view)}supportsMultipleDisplayModes(){return this.isViewerView()||this.is("live")}getDefaultMediaType(){return["clip","clips"].includes(this.view)?"clips":["snapshot","snapshots"].includes(this.view)?"snapshots":["recording","recordings"].includes(this.view)?"recordings":null}isGrid(){return"grid"===this.displayMode}}const _x=(e,t)=>{t?.forEach((t=>t.modify(e)))};class vx extends zs{}class yx extends zs{}class bx{constructor(e){this._api=e}getViewDefault(e){const t=this._api.getConfigManager().getConfig();if(!t)return null;let n=null;const a=e?.params?.view??t.view.default;if(e?.params?.camera)n=e.params.camera;else{const i=[...mx(this._api.getCameraManager(),a)];if(!i.length)return null;if(e?.baseView?.camera&&t.view.default_cycle_camera){const t=i.indexOf(e.baseView.camera);n=i[t+1>=i.length?0:t+1]}else n=i[0]}return this.getViewByParameters({params:{...e?.params,view:a,camera:n},baseView:e?.baseView})}getViewByParameters(e){const t=this._api.getConfigManager().getConfig();if(!t)return null;let n=e?.params?.camera??e?.baseView?.camera??null,a=e?.params?.view??e?.baseView?.view??t.view.default;const i=this._api.getCameraManager().getStore().getCameraIDs();if(!n||!i.has(n)){n=mx(this._api.getCameraManager(),a).keys().next().value??null}if(!n){const e=[...this._api.getCameraManager().getStore().getCameras()].reduce(((e,[t,n])=>{const a=n.getCapabilities()?.getRawCapabilities();return a&&(e[t]=a),e}),{});throw new vx(V_("error.no_supported_cameras"),{view:a,cameras_capabilities:e})}if(!this.isViewSupportedByCamera(n,a)){if(!e?.failSafe||!this.isViewSupportedByCamera(n,Qs)){const e=this._api.getCameraManager().getStore().getCamera(n)?.getCapabilities()?.getRawCapabilities();throw new yx(V_("error.no_supported_camera"),{view:a,camera:n,...e&&{camera_capabilities:e}})}a=Qs}const r=e?.params?.displayMode??e?.baseView?.displayMode??this._getDefaultDisplayModeForView(a,t),o={...e?.params,view:a,camera:n,displayMode:r},s=e?.baseView?e.baseView.evolve(o):new fx(o);return _x(s,e?.modifiers),s}isViewSupportedByCamera(e,t){return!!mx(this._api.getCameraManager(),t,e).size}_getDefaultDisplayModeForView(e,t){let n=null;switch(e){case"media":case"clip":case"recording":case"snapshot":n=t.media_viewer.display?.mode??null;break;case"live":n=t.live.display?.mode??null}return n??"single"}}class wx{constructor(e,t){this._key=e,this._property=t}modify(e){e.removeContextProperty(this._key,this._property)}}class xx{constructor(e){this._query=e?.query,this._queryResults=e?.queryResults}modify(e){void 0!==this._query&&(e.query=this._query),void 0!==this._queryResults&&(e.queryResults=this._queryResults)}}const Cx=(e,t,n)=>{let a;for(const[i,r]of e.entries()){const e=r.getStartTime(),o=r.getUsableEndTime();if(r.includesTime(t)&&e&&o){const t=o.getTime()-e.getTime();(!a||n&&a.cameraID!==n&&r.getCameraID()===n||t>a.duration&&(!n||a.cameraID!==n||r.getCameraID()===n))&&(a={index:i,duration:t,cameraID:r.getCameraID()})}}return a?a.index:null};class Mx{constructor(e){this._results=e?.results??[],this._selectedIndex=this._getInitialSelectedIndex(e)}_getInitialSelectedIndex(e){return null!=e?.selectedIndex?e.selectedIndex:e?.results&&e.results.length?e?.selectApproach&&"last"!==e?.selectApproach?0:e.results.length-1:null}clone(){return new Mx({results:this._results,selectedIndex:this._selectedIndex})}getResults(){return this._results}getSelectedIndex(){return this._selectedIndex}getResultsCount(){return this.getResults().length}hasResults(){return 0!==this.getResultsCount()}getResult(e){return void 0===e?null:this._results[e]}getSelectedResult(){const e=this.getSelectedIndex();return null!==e?this.getResult(e):null}hasSelectedResult(){return null!==this.getSelectedResult()}resetSelectedResult(){this._selectedIndex=null}selectIndex(e){(null===e||e>=0&&ee.getID()))),n=new Set(e._main.getResults()?.map((e=>e.getID())));return!(!t.size||!n.size||t.has(null)||n.has(null))&&((e,t)=>{for(const n of t)if(!e.has(n))return!1;return!0})(t,n)}getCameraIDs(){return new Set(this._cameras.keys())}getSlice(e){return e?this._cameras.get(e)??null:this._main}getResults(e){return this.getSlice(e)?.getResults()??null}getResultsCount(e){return this.getSlice(e)?.getResultsCount()??0}hasResults(e){return 0!==this.getSlice(e)?.getResultsCount()}getResult(e,t){return this.getSlice(t)?.getResult(e)??null}getSelectedIndex(e){return this.getSlice(e)?.getSelectedIndex()??null}getSelectedResult(e){return this.getSlice(e)?.getSelectedResult()??null}getMultipleSelectedResults(e){const t=[];if(!e||e.main){const e=this.getSelectedResult();e&&t.push(e)}const n=this._getCameraIDsFromCriteria(e);for(const e of n??[]){const n=this.getSelectedResult(e);n&&t.push(n)}return t}hasSelectedResult(e){return this.getSlice(e)?.hasSelectedResult()??!1}resetSelectedResult(e){return this.getSlice(e)?.resetSelectedResult(),this}getResultsTimestamp(){return this._resultsTimestamp}selectIndex(e,t){return this.getSlice(t)?.selectIndex(e),t||this.demoteMainSelectionToCameraSelection(),this}demoteMainSelectionToCameraSelection(){const e=this.getSelectedResult();if(e){const t=e.getCameraID();this.resetSelectedResult(t),this.selectResultIfFound((t=>t===e),{cameraID:t})}return this}promoteCameraSelectionToMainSelection(e){const t=this.getSelectedResult(e);return this.resetSelectedResult(),this.selectResultIfFound((e=>e===t)),this}_getCameraIDsFromCriteria(e){return e?.allCameras?this.getCameraIDs():e?.cameraID?new Set([e.cameraID]):null}selectResultIfFound(e,t){t&&!t?.main||(this._main.selectResultIfFound(e),this.demoteMainSelectionToCameraSelection());const n=this._getCameraIDsFromCriteria(t);for(const t of n??[])this.getSlice(t)?.selectResultIfFound(e);return this}selectBestResult(e,t){t&&!t.main||(this._main.selectBestResult(e),this.demoteMainSelectionToCameraSelection());const n=this._getCameraIDsFromCriteria(t);for(const t of n??[])this.getSlice(t)?.selectBestResult(e);return this}}class Sx{constructor(e){this._api=e}async executeDefaultEventQuery(e){const t=e?.eventsMediaType&&"all"!==e?.eventsMediaType?e.eventsMediaType:{anyCapabilities:["clips","snapshots"]},n=this._api.getCameraManager(),a=e?.cameraID?n.getStore().getAllDependentCameras(e.cameraID,t):n.getStore().getCameraIDsWithCapability(t);if(!a.size)return null;const i=n.generateDefaultEventQueries(a,{limit:this._getChunkLimit(),..."clips"===e?.eventsMediaType&&{hasClip:!0},..."snapshots"===e?.eventsMediaType&&{hasSnapshot:!0}});if(!i)return null;const r=new ux(i),o=await this.execute(r,e?.executorOptions);return o?{query:r,queryResults:o}:null}async executeDefaultRecordingQuery(e){const t=this._api.getCameraManager(),n=e?.cameraID?t.getStore().getAllDependentCameras(e.cameraID,"recordings"):t.getStore().getCameraIDsWithCapability("recordings");if(!n.size)return null;const a=t.generateDefaultRecordingQueries(n,{limit:this._getChunkLimit()});if(!a)return null;const i=new hx(a),r=await this.execute(i,e?.executorOptions);return r?{query:i,queryResults:r}:null}async execute(e,t){const n=e.getQueries();if(!n)return null;const a=await this._api.getCameraManager().executeMediaQueries(n,{useCache:t?.useCache});if(!a)return null;const i=new kx({results:a});return t?.rejectResults?.(i)?null:(t?.selectResult?.id?i.selectBestResult((e=>e.findIndex((e=>e.getID()===t.selectResult?.id)))):t?.selectResult?.func?i.selectResultIfFound(t.selectResult.func):t?.selectResult?.time&&i.selectBestResult((e=>Cx(e,t.selectResult?.time?.time,t.selectResult?.time?.favorCameraID))),i)}_getChunkLimit(){const e=this._api.getConfigManager().getCardWideConfig();return e?.performance?.features.media_chunk_size??50}}class Ex{constructor(e,t){this._api=e,this._executor=t??new Sx(e)}async getExistingQueryModifiers(e,t){return e.query?[new xx({queryResults:await this._executor.execute(e.query,t)})]:[]}async getNewQueryModifiers(e,t){return await this._executeNewQuery(e,{useCache:!1,...t})}async _executeNewQuery(e,t){const n=this._api.getConfigManager().getConfig();if(!n)return null;const a=e?.getDefaultMediaType(),i=[],r=async n=>{ +/* istanbul ignore if: this path cannot be reached -- @preserve */ +if(!n)return[];const a="recordings"===n?await this._executor.executeDefaultRecordingQuery({...!e.isGrid()&&{cameraID:e.camera},executorOptions:t}):"clips"===n||"snapshots"===n||"all"===n?await this._executor.executeDefaultEventQuery({...!e.isGrid()&&{cameraID:e.camera},eventsMediaType:n,executorOptions:t}):/* istanbul ignore next -- @preserve */ +null;return a?[new xx(a)]:[]};switch(e.view){case"live":"none"!==n.live.controls.thumbnails.mode&&i.push(...await r("recordings"===n.live.controls.thumbnails.media_type?"recordings":n.live.controls.thumbnails.events_media_type));break;case"media":i.push(...await r("clips"));break;case"clips":case"snapshots":case"recordings":i.push(...await r(a));break;case"clip":case"snapshot":case"recording":"none"!==n.media_viewer.controls.thumbnails.mode&&i.push(...await r(a))}return i.push(...this._getTimelineWindowViewModifier(e)),i.push(...this._getSeekTimeModifier(t?.selectResult?.time?.time)),i}_getTimelineWindowViewModifier(e){if(e.is("live")){const e=new Date,t=this._api.getConfigManager().getConfig()?.live; +/* istanbul ignore if: this if branch cannot be reached as if the config is + empty this function is never called -- @preserve */ +return t?[new Gy({timeline:{window:{start:Qu(e,{seconds:t.controls.timeline.window_seconds}),end:e}}})]:[]}return[new wx("timeline","window")]}_getSeekTimeModifier(e){return e?[new Gy({mediaViewer:{seek:e}})]:[new wx("mediaViewer","seek")]}}class $x{constructor(e,t){this._view=null,this._epoch=this._createEpoch(),this._loadingIndex=1,this.setViewDefault=e=>this._setViewGeneric(this._viewFactory.getViewDefault.bind(this._viewFactory),e),this.setViewByParameters=e=>this._setViewGeneric(this._viewFactory.getViewByParameters.bind(this._viewFactory),e),this.setViewDefaultWithNewQuery=async e=>await this._setViewThenModifyAsync(this._viewFactory.getViewDefault.bind(this._viewFactory),this._viewQueryExecutor.getNewQueryModifiers.bind(this._viewQueryExecutor),e),this.setViewByParametersWithNewQuery=async e=>await this._setViewThenModifyAsync(this._viewFactory.getViewByParameters.bind(this._viewFactory),this._viewQueryExecutor.getNewQueryModifiers.bind(this._viewQueryExecutor),e),this.setViewByParametersWithExistingQuery=async e=>await this._setViewThenModifyAsync(this._viewFactory.getViewByParameters.bind(this._viewFactory),this._viewQueryExecutor.getExistingQueryModifiers.bind(this._viewQueryExecutor),e),this.initialize=async()=>(this._api.getQueryStringManager().hasViewRelatedActionsToRun()||this.setViewDefaultWithNewQuery({failSafe:!0}),!0),this._api=e,this._viewFactory=t?.viewFactory??new bx(e),this._viewQueryExecutor=t?.viewQueryExecutor??new Ex(e)}getEpoch(){return this._epoch}_createEpoch(e){return{manager:this,...e&&{oldView:e}}}getView(){return this._view}hasView(){return!!this.getView()}reset(){this._view&&this._setView(null)}_setViewGeneric(e,t){let n=null;try{n=e({baseView:this._view,...t})}catch(e){this._api.getMessageManager().setErrorIfHigherPriority(e)}n&&this._setView(n)}_markViewLoadingQuery(e,t){return e.mergeInContext({loading:{query:t}})}_markViewAsNotLoadingQuery(e){return e.removeContextProperty("loading","query")}async _setViewThenModifyAsync(e,t,n){let a=null;try{a=e({baseView:this._view,...n,params:{query:null,queryResults:null,...n?.params}})}catch(e){this._api.getMessageManager().setErrorIfHigherPriority(e)}if(!a)return;if(this._view&&this._shouldAdoptQueryAndResults(a))return a.query=this._view.query,a.queryResults=this._view.queryResults,this._markViewAsNotLoadingQuery(a),void this._setView(a);const i=this._loadingIndex++;this._markViewLoadingQuery(a,i),this._setView(a);let r=null,o=null;try{r=await t(a,n?.queryExecutorOptions)}catch(e){o=e}if(this._view&&this.hasMajorMediaChange(this._view,a))return void(this._view.context?.loading?.query===i&&this._setView(this._markViewAsNotLoadingQuery(this._view.clone())));if(o)return void this._api.getMessageManager().setErrorIfHigherPriority(o); +/* istanbul ignore if: the if path cannot be reached as the view is set + above -- @preserve */if(!this._view)return;const s=this._view.clone();this._view.context?.loading?.query===i&&this._markViewAsNotLoadingQuery(s),_x(s,r),this._setView(s)}_shouldAdoptQueryAndResults(e){const t=this._view?.isViewerView()&&e?.isGalleryView(),n=e?.getDefaultMediaType(),a=px.getMediaType(this._view?.query)===n;return!!t&&a}setViewWithMergedContext(e){if(this._view)return this._setView(this._view?.clone().mergeInContext(e))}isViewSupportedByCamera(e,t){return!!mx(this._api.getCameraManager(),t,e).size}hasMajorMediaChange(e,t){const n=t??this._view;return!!e!=!!n||e?.view!==n?.view||e?.camera!==n?.camera||"live"===n?.view&&e&&My(e)!==My(n)||"live"!==n?.view&&e?.queryResults!==n?.queryResults}_setView(e){const t=this._view;B_(this._api.getConfigManager().getCardWideConfig(),"Frigate Card view change: ",e),this._view=e,this._epoch=this._createEpoch(t),this.hasMajorMediaChange(t)&&this._api.getMediaLoadedInfoManager().clear(),t?.view!==e?.view&&this._api.getCardElementManager().scrollReset(),this._api.getMessageManager().reset(),this._api.getStyleManager().setExpandedMode(),this._api.getConditionsManager()?.setState({view:e?.view,camera:e?.camera,displayMode:e?.displayMode??void 0}),this._api.getCardElementManager().update()}}class Ax{constructor(e,t,n,a){this._deviceRegistryManager=new oy(new iy((e=>e.id))),this._entityRegistryManager=new ly(new iy((e=>e.entity_id))),this._resolvedMediaCache=new uy,this._actionsManager=new gb(this),this._automationsManager=new fb(this),this._cameraManager=new ay(this),this._cameraURLManager=new _b(this),this._configManager=new Mw(this),this._defaultManager=new kw(this),this._downloadManager=new Aw(this),this._expandManager=new zw(this),this._fullscreenManager=new Rw(this),this._hassManager=new Lw(this),this._initializationManager=new Zb(this),this._interactionManager=new Uw(this),this._keyboardStateManager=new Ww(this),this._mediaLoadedInfoManager=new ex(this),this._mediaPlayerManager=new nx(this),this._messageManager=new ax(this),this._microphoneManager=new ix(this),this._queryStringManager=new rx(this),this._statusBarItemManager=new ox(this),this._styleManager=new sx(this),this._triggersManager=new cx(this),this._viewManager=new $x(this),e.addController(this),this._conditionsManager=new yw(this,a),this._cardElementManager=new Qb(this,e,t,n)}getActionsManager(){return this._actionsManager}getAutomationsManager(){return this._automationsManager}getCameraManager(){return this._cameraManager}getCameraURLManager(){return this._cameraURLManager}getCardElementManager(){return this._cardElementManager}getConditionsManager(){return this._conditionsManager}static async getConfigElement(){return await import("./editor-c3e576d8.js"),document.createElement("frigate-card-editor")}getConfigManager(){return this._configManager}getDefaultManager(){return this._defaultManager}getDeviceRegistryManager(){return this._deviceRegistryManager}getDownloadManager(){return this._downloadManager}getEntityRegistryManager(){return this._entityRegistryManager}getExpandManager(){return this._expandManager}getFullscreenManager(){return this._fullscreenManager}getHASSManager(){return this._hassManager}getInitializationManager(){return this._initializationManager}getInteractionManager(){return this._interactionManager}getKeyboardStateManager(){return this._keyboardStateManager}getMediaLoadedInfoManager(){return this._mediaLoadedInfoManager}getMediaPlayerManager(){return this._mediaPlayerManager}getMessageManager(){return this._messageManager}getMicrophoneManager(){return this._microphoneManager}getQueryStringManager(){return this._queryStringManager}getResolvedMediaCache(){return this._resolvedMediaCache}getStatusBarItemManager(){return this._statusBarItemManager}static getStubConfig(e){return{cameras:[{camera_entity:e.find((e=>e.startsWith("camera.")))??"camera.demo"}]}}getStyleManager(){return this._styleManager}getTriggersManager(){return this._triggersManager}getViewManager(){return this._viewManager}hostConnected(){this.getCardElementManager().elementConnected()}hostDisconnected(){this.getCardElementManager().elementDisconnected()}}class zx{constructor(){this._dynamicMenuButtons=[]}addDynamicMenuButton(e){this._dynamicMenuButtons.includes(e)||this._dynamicMenuButtons.push(e)}removeDynamicMenuButton(e){this._dynamicMenuButtons=this._dynamicMenuButtons.filter((t=>t!=e))}calculateButtons(e,t,n,a){return[this._getDefaultButton(t),this._getCamerasButton(t,n,a?.view),this._getSubstreamsButton(t,n,a?.view),this._getLiveButton(t,a?.view,a?.viewManager),this._getClipsButton(t,a?.view,a?.viewManager),this._getSnapshotsButton(t,a?.view,a?.viewManager),this._getRecordingsButton(t,a?.view,a?.viewManager),this._getImageButton(t,a?.view,a?.viewManager),this._getTimelineButton(t,a?.view,a?.viewManager),this._getDownloadButton(t,n,a?.view),this._getCameraUIButton(t,a?.showCameraUIButton),this._getMicrophoneButton(t,a?.microphoneManager,a?.currentMediaLoadedInfo),this._getExpandButton(t,a?.inExpandedMode),this._getFullscreenButton(t,a?.inFullscreenMode),this._getCastButton(e,t,n,a?.view,a?.mediaPlayerController),this._getPlayPauseButton(t,a?.currentMediaLoadedInfo),this._getMuteUnmuteButton(t,a?.currentMediaLoadedInfo),this._getScreenshotButton(t,a?.currentMediaLoadedInfo),this._getDisplayModeButton(t,n,a?.view),this._getPTZControlsButton(t,n,a?.view),this._getPTZHomeButton(t,n,a?.view),...this._dynamicMenuButtons.map((e=>({style:this._getStyleFromActions(t,e,a),...e})))].filter(sf)}_getDefaultButton(e){return{icon:"frigate",...e.menu.buttons.frigate,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.frigate"),permanent:!0,tap_action:"hidden"===e.menu?.style?gf("menu_toggle"):gf("default"),hold_action:gf("diagnostics")}}_getCamerasButton(e,t,n){const a=t.getStore().getCameraIDsWithCapability("menu");if(a.size>1){const i=Array.from(t.getStore().getCameraConfigEntries(a),(([e,a])=>{const i=ff("camera_select",e),r=t.getCameraMetadata(e);return{enabled:!0,icon:r?.icon,entity:a.camera_entity,state_color:!0,title:r?.title,selected:n?.camera===e,...i&&{tap_action:i}}}));return{icon:"mdi:video-switch",...e.menu.buttons.cameras,type:"custom:frigate-card-menu-submenu",title:V_("config.menu.buttons.cameras"),items:i}}return null}_getSubstreamsButton(e,t,n){if(!n)return null;const a=t.getStore().getAllDependentCameras(n.camera,"substream");if(a.size&&n.is("live")){const i=[...a].filter((e=>e!==n.camera)),r=[n.camera,...i],o=My(n);if(2===r.length)return{icon:"mdi:video-input-component",style:o!==n.camera?this._getEmphasizedStyle():{},title:V_("config.menu.buttons.substreams"),...e.menu.buttons.substreams,type:"custom:frigate-card-menu-icon",tap_action:gf(ky(n)?"live_substream_off":"live_substream_on")};if(r.length>2){const a=Array.from(r,(e=>{const n=ff("live_substream_select",e),a=t.getCameraMetadata(e)??void 0,i=t.getStore().getCameraConfig(e);return{enabled:!0,icon:a?.icon,entity:i?.camera_entity,state_color:!0,title:a?.title,selected:o===e,...n&&{tap_action:n}}}));return{icon:"mdi:video-input-component",title:V_("config.menu.buttons.substreams"),style:o!==n.camera?this._getEmphasizedStyle():{},...e.menu.buttons.substreams,type:"custom:frigate-card-menu-submenu",items:a}}}return null}_getLiveButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"live")?{icon:"mdi:cctv",...e.menu.buttons.live,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.live"),style:t.is("live")?this._getEmphasizedStyle():{},tap_action:gf("live")}:null}_getClipsButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"clips")?{icon:"mdi:filmstrip",...e.menu.buttons.clips,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.clips"),style:t?.is("clips")?this._getEmphasizedStyle():{},tap_action:gf("clips"),hold_action:gf("clip")}:null}_getSnapshotsButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"snapshots")?{icon:"mdi:camera",...e.menu.buttons.snapshots,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.snapshots"),style:t?.is("snapshots")?this._getEmphasizedStyle():{},tap_action:gf("snapshots"),hold_action:gf("snapshot")}:null}_getRecordingsButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"recordings")?{icon:"mdi:album",...e.menu.buttons.recordings,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.recordings"),style:t.is("recordings")?this._getEmphasizedStyle():{},tap_action:gf("recordings"),hold_action:gf("recording")}:null}_getImageButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"image")?{icon:"mdi:image",...e.menu.buttons.image,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.image"),style:t?.is("image")?this._getEmphasizedStyle():{},tap_action:gf("image")}:null}_getTimelineButton(e,t,n){return t&&n?.isViewSupportedByCamera(t.camera,"timeline")?{icon:"mdi:chart-gantt",...e.menu.buttons.timeline,type:"custom:frigate-card-menu-icon",title:V_("config.view.views.timeline"),style:t.is("timeline")?this._getEmphasizedStyle():{},tap_action:gf("timeline")}:null}_getDownloadButton(e,t,n){const a=n?.queryResults?.getSelectedResult(),i=a?t?.getMediaCapabilities(a):null;return n?.isViewerView()&&i?.canDownload&&!this._isBeingCasted()?{icon:"mdi:download",...e.menu.buttons.download,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.download"),tap_action:gf("download")}:null}_getCameraUIButton(e,t){return t?{icon:"mdi:web",...e.menu.buttons.camera_ui,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.camera_ui"),tap_action:gf("camera_ui")}:null}_getMicrophoneButton(e,t,n){if(t&&n?.capabilities?.supports2WayAudio){const n=t.isForbidden()||!t.isSupported(),a=t.isMuted(),i=e.menu.buttons.microphone.type;return{icon:n?"mdi:microphone-message-off":a?"mdi:microphone-off":"mdi:microphone",...e.menu.buttons.microphone,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.microphone"),style:n||a?{}:this._getEmphasizedStyle(!0),...!n&&"momentary"===i&&{start_tap_action:gf("microphone_unmute"),end_tap_action:gf("microphone_mute")},...!n&&"toggle"===i&&{tap_action:gf(a?"microphone_unmute":"microphone_mute")}}}return null}_getExpandButton(e,t){return{icon:t?"mdi:arrow-collapse-all":"mdi:arrow-expand-all",...e.menu.buttons.expand,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.expand"),tap_action:gf("expand"),style:t?this._getEmphasizedStyle():{}}}_getFullscreenButton(e,t){return this._isBeingCasted()?null:{icon:t?"mdi:fullscreen-exit":"mdi:fullscreen",...e.menu.buttons.fullscreen,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.fullscreen"),tap_action:gf("fullscreen"),style:t?this._getEmphasizedStyle():{}}}_getCastButton(e,t,n,a,i){if(!a)return null;const r=n.getStore().getCameraConfig(a.camera);if(i?.hasMediaPlayers()&&(a.isViewerView()||a.is("live")&&r?.camera_entity)){const n=i.getMediaPlayers().map((t=>{const n=Lb(e,t)||t,a=e.states[t],i=_f(t,"play"),r=_f(t,"stop"),o=!a||"unavailable"===a.state;return{enabled:!0,selected:!1,icon:Nb(e,t),entity:t,state_color:!1,title:n,disabled:o,...!o&&i&&{tap_action:i},...!o&&r&&{hold_action:r}}}));return{icon:"mdi:cast",...t.menu.buttons.media_player,type:"custom:frigate-card-menu-submenu",title:V_("config.menu.buttons.media_player"),items:n}}return null}_getPlayPauseButton(e,t){if(t&&t.player&&t.capabilities?.supportsPause){const n=t.player.isPaused();return{icon:n?"mdi:play":"mdi:pause",...e.menu.buttons.play,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.play"),tap_action:gf(n?"play":"pause")}}return null}_getMuteUnmuteButton(e,t){if(t&&t.player&&t?.capabilities?.hasAudio){const n=t.player.isMuted();return{icon:n?"mdi:volume-off":"mdi:volume-high",...e.menu.buttons.mute,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.mute"),tap_action:gf(n?"unmute":"mute")}}return null}_getScreenshotButton(e,t){return t&&t.player?{icon:"mdi:monitor-screenshot",...e.menu.buttons.screenshot,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.screenshot"),tap_action:gf("screenshot")}:null}_getDisplayModeButton(e,t,n){const a=n?mx(t,n.view):null;if(n?.supportsMultipleDisplayModes()&&a&&a.size>1){const t=n.isGrid();return{icon:t?"mdi:grid-off":"mdi:grid",...e.menu.buttons.display_mode,style:t?this._getEmphasizedStyle():{},type:"custom:frigate-card-menu-icon",title:V_(t?"display_modes.single":"display_modes.grid"),tap_action:(i=t?"single":"grid",{action:"fire-dom-event",frigate_card_action:"display_mode_select",display_mode:i,...r?.cardID&&{card_id:r.cardID}})}}var i,r;return null}_getPTZControlsButton(e,t,n){const a=n?.is("live")?e.live.controls.ptz:n?.isViewerView()?e.media_viewer.controls.ptz:null;if(!n||!a||"off"===a.mode)return null;const i=Ry(n,{cameraManager:t,..."auto"===a.mode&&{type:"ptz"}});if(i){const t=!1!==n.context?.ptzControls?.enabled&&("on"===a.mode||"auto"===a.mode&&"ptz"===i.type);return{icon:"mdi:pan",...e.menu.buttons.ptz_controls,style:t?this._getEmphasizedStyle():{},type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.ptz_controls"),tap_action:(r=!t,{action:"fire-dom-event",frigate_card_action:"ptz_controls",enabled:r,...o?.cardID&&{card_id:o.cardID}})}}var r,o;return null}_getPTZHomeButton(e,t,n){const a=n?Ry(n,{cameraManager:t}):null;return!a||(("digital"===a.type&&n?.context?.zoom?.[a.targetID]?.observed?.isDefault)??1)?null:{icon:"mdi:home",...e.menu.buttons.ptz_home,type:"custom:frigate-card-menu-icon",title:V_("config.menu.buttons.ptz_home"),tap_action:vf({targetID:a.targetID})}}_getEmphasizedStyle(e){return e?{animation:"pulse 3s infinite",color:"var(--error-color, white)"}:{color:"var(--primary-color, white)"}}_getStyleFromActions(e,t,n){for(const a of[t.tap_action,t.double_tap_action,t.hold_action,t.start_tap_action,t.end_tap_action]){const t=Array.isArray(a)?a:[a];for(const a of t){if(!a||"fire-dom-event"!==a.action||!("frigate_card_action"in a))continue;const t=a;if(Zs.some((e=>e===t.frigate_card_action&&n?.view?.is(t.frigate_card_action)))||"default"===t.frigate_card_action&&n?.view?.is(e.view.default)||"fullscreen"===t.frigate_card_action&&n?.inFullscreenMode||"camera_select"===t.frigate_card_action&&n?.view?.camera===t.camera)return this._getEmphasizedStyle()}}return{}}_isBeingCasted(){return!!navigator.userAgent.match(/CrKey\//)}} +/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */ +function Ix(e){return null==e}var Tx=function(e,t){var n,a="";for(n=0;ns&&(t=a-s+(r=" ... ").length),n-a>s&&(n=a+s-(o=" ...").length),{str:r+e.slice(t,n).replace(/\t/g,"→")+o,pos:a-t+r.length}}function Lx(e,t){return jx.repeat(" ",t-e.length)+e}var Nx=function(e,t){if(t=Object.create(t||null),!e.buffer)return null;t.maxLength||(t.maxLength=79),"number"!=typeof t.indent&&(t.indent=1),"number"!=typeof t.linesBefore&&(t.linesBefore=3),"number"!=typeof t.linesAfter&&(t.linesAfter=2);for(var n,a=/\r?\n|\r|\0/g,i=[0],r=[],o=-1;n=a.exec(e.buffer);)r.push(n.index),i.push(n.index+n[0].length),e.position<=n.index&&o<0&&(o=i.length-2);o<0&&(o=i.length-1);var s,c,l="",d=Math.min(e.line+t.linesAfter,r.length).toString().length,u=t.maxLength-(t.indent+d+3);for(s=1;s<=t.linesBefore&&!(o-s<0);s++)c=Px(e.buffer,i[o-s],r[o-s],e.position-(i[o]-i[o-s]),u),l=jx.repeat(" ",t.indent)+Lx((e.line-s+1).toString(),d)+" | "+c.str+"\n"+l;for(c=Px(e.buffer,i[o],r[o],e.position,u),l+=jx.repeat(" ",t.indent)+Lx((e.line+1).toString(),d)+" | "+c.str+"\n",l+=jx.repeat("-",t.indent+d+3+c.pos)+"^\n",s=1;s<=t.linesAfter&&!(o+s>=r.length);s++)c=Px(e.buffer,i[o+s],r[o+s],e.position-(i[o]-i[o+s]),u),l+=jx.repeat(" ",t.indent)+Lx((e.line+s+1).toString(),d)+" | "+c.str+"\n";return l.replace(/\n$/,"")},Fx=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],Vx=["scalar","sequence","mapping"];var Hx=function(e,t){if(t=t||{},Object.keys(t).forEach((function(t){if(-1===Fx.indexOf(t))throw new Rx('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.options=t,this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.representName=t.representName||null,this.defaultStyle=t.defaultStyle||null,this.multi=t.multi||!1,this.styleAliases=function(e){var t={};return null!==e&&Object.keys(e).forEach((function(n){e[n].forEach((function(e){t[String(e)]=n}))})),t}(t.styleAliases||null),-1===Vx.indexOf(this.kind))throw new Rx('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')};function Bx(e,t){var n=[];return e[t].forEach((function(e){var t=n.length;n.forEach((function(n,a){n.tag===e.tag&&n.kind===e.kind&&n.multi===e.multi&&(t=a)})),n[t]=e})),n}function qx(e){return this.extend(e)}qx.prototype.extend=function(e){var t=[],n=[];if(e instanceof Hx)n.push(e);else if(Array.isArray(e))n=n.concat(e);else{if(!e||!Array.isArray(e.implicit)&&!Array.isArray(e.explicit))throw new Rx("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");e.implicit&&(t=t.concat(e.implicit)),e.explicit&&(n=n.concat(e.explicit))}t.forEach((function(e){if(!(e instanceof Hx))throw new Rx("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(e.loadKind&&"scalar"!==e.loadKind)throw new Rx("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(e.multi)throw new Rx("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")})),n.forEach((function(e){if(!(e instanceof Hx))throw new Rx("Specified list of YAML types (or a single Type object) contains a non-Type object.")}));var a=Object.create(qx.prototype);return a.implicit=(this.implicit||[]).concat(t),a.explicit=(this.explicit||[]).concat(n),a.compiledImplicit=Bx(a,"implicit"),a.compiledExplicit=Bx(a,"explicit"),a.compiledTypeMap=function(){var e,t,n={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function a(e){e.multi?(n.multi[e.kind].push(e),n.multi.fallback.push(e)):n[e.kind][e.tag]=n.fallback[e.tag]=e}for(e=0,t=arguments.length;e=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),nC=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var aC=/^[-+]?[0-9]+e/;var iC=new Hx("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!nC.test(e)||"_"===e[e.length-1])},construct:function(e){var t,n;return n="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:n*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||jx.isNegativeZero(e))},represent:function(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(jx.isNegativeZero(e))return"-0.0";return n=e.toString(10),aC.test(n)?n.replace("e",".e"):n},defaultStyle:"lowercase"}),rC=Gx.extend({implicit:[Yx,Kx,tC,iC]}),oC=rC,sC=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),cC=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");var lC=new Hx("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==sC.exec(e)||null!==cC.exec(e))},construct:function(e){var t,n,a,i,r,o,s,c,l=0,d=null;if(null===(t=sC.exec(e))&&(t=cC.exec(e)),null===t)throw new Error("Date resolve error");if(n=+t[1],a=+t[2]-1,i=+t[3],!t[4])return new Date(Date.UTC(n,a,i));if(r=+t[4],o=+t[5],s=+t[6],t[7]){for(l=t[7].slice(0,3);l.length<3;)l+="0";l=+l}return t[9]&&(d=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(d=-d)),c=new Date(Date.UTC(n,a,i,r,o,s,l)),d&&c.setTime(c.getTime()-d),c},instanceOf:Date,represent:function(e){return e.toISOString()}});var dC=new Hx("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}}),uC="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";var hC=new Hx("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,a=0,i=e.length,r=uC;for(n=0;n64)){if(t<0)return!1;a+=6}return a%8==0},construct:function(e){var t,n,a=e.replace(/[\r\n=]/g,""),i=a.length,r=uC,o=0,s=[];for(t=0;t>16&255),s.push(o>>8&255),s.push(255&o)),o=o<<6|r.indexOf(a.charAt(t));return 0===(n=i%4*6)?(s.push(o>>16&255),s.push(o>>8&255),s.push(255&o)):18===n?(s.push(o>>10&255),s.push(o>>2&255)):12===n&&s.push(o>>4&255),new Uint8Array(s)},predicate:function(e){return"[object Uint8Array]"===Object.prototype.toString.call(e)},represent:function(e){var t,n,a="",i=0,r=e.length,o=uC;for(t=0;t>18&63],a+=o[i>>12&63],a+=o[i>>6&63],a+=o[63&i]),i=(i<<8)+e[t];return 0===(n=r%3)?(a+=o[i>>18&63],a+=o[i>>12&63],a+=o[i>>6&63],a+=o[63&i]):2===n?(a+=o[i>>10&63],a+=o[i>>4&63],a+=o[i<<2&63],a+=o[64]):1===n&&(a+=o[i>>2&63],a+=o[i<<4&63],a+=o[64],a+=o[64]),a}}),pC=Object.prototype.hasOwnProperty,mC=Object.prototype.toString;var gC=new Hx("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,n,a,i,r,o=[],s=e;for(t=0,n=s.length;t>10),56320+(e-65536&1023))}for(var qC=new Array(256),UC=new Array(256),WC=0;WC<256;WC++)qC[WC]=HC(WC)?1:0,UC[WC]=HC(WC);function ZC(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||bC,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function QC(e,t){var n={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return n.snippet=Nx(n),new Rx(t,n)}function GC(e,t){throw QC(e,t)}function YC(e,t){e.onWarning&&e.onWarning.call(null,QC(e,t))}var KC={YAML:function(e,t,n){var a,i,r;null!==e.version&&GC(e,"duplication of %YAML directive"),1!==n.length&&GC(e,"YAML directive accepts exactly one argument"),null===(a=/^([0-9]+)\.([0-9]+)$/.exec(n[0]))&&GC(e,"ill-formed argument of the YAML directive"),i=parseInt(a[1],10),r=parseInt(a[2],10),1!==i&&GC(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=r<2,1!==r&&2!==r&&YC(e,"unsupported YAML version of the document")},TAG:function(e,t,n){var a,i;2!==n.length&&GC(e,"TAG directive accepts exactly two arguments"),a=n[0],i=n[1],TC.test(a)||GC(e,"ill-formed tag handle (first argument) of the TAG directive"),wC.call(e.tagMap,a)&&GC(e,'there is a previously declared suffix for "'+a+'" tag handle'),jC.test(i)||GC(e,"ill-formed tag prefix (second argument) of the TAG directive");try{i=decodeURIComponent(i)}catch(t){GC(e,"tag prefix is malformed: "+i)}e.tagMap[a]=i}};function XC(e,t,n,a){var i,r,o,s;if(t1&&(e.result+=jx.repeat("\n",t-1))}function rM(e,t){var n,a,i=e.tag,r=e.anchor,o=[],s=!1;if(-1!==e.firstTabInLine)return!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=o),a=e.input.charCodeAt(e.position);0!==a&&(-1!==e.firstTabInLine&&(e.position=e.firstTabInLine,GC(e,"tab characters must not be used in indentation")),45===a)&&PC(e.input.charCodeAt(e.position+1));)if(s=!0,e.position++,nM(e,!0,-1)&&e.lineIndent<=t)o.push(null),a=e.input.charCodeAt(e.position);else if(n=e.line,cM(e,t,MC,!1,!0),o.push(e.result),nM(e,!0,-1),a=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&0!==a)GC(e,"bad indentation of a sequence entry");else if(e.lineIndentt?m=1:e.lineIndent===t?m=0:e.lineIndentt?m=1:e.lineIndent===t?m=0:e.lineIndentt)&&(_&&(o=e.line,s=e.lineStart,c=e.position),cM(e,t,kC,!0,i)&&(_?g=e.result:f=e.result),_||(eM(e,h,p,m,g,f,o,s,c),m=g=f=null),nM(e,!0,-1),l=e.input.charCodeAt(e.position)),(e.line===r||e.lineIndent>t)&&0!==l)GC(e,"bad indentation of a mapping entry");else if(e.lineIndent=0))break;0===i?GC(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):c?GC(e,"repeat of an indentation width identifier"):(l=t+i-1,c=!0)}if(RC(r)){do{r=e.input.charCodeAt(++e.position)}while(RC(r));if(35===r)do{r=e.input.charCodeAt(++e.position)}while(!DC(r)&&0!==r)}for(;0!==r;){for(tM(e),e.lineIndent=0,r=e.input.charCodeAt(e.position);(!c||e.lineIndentl&&(l=e.lineIndent),DC(r))d++;else{if(e.lineIndent0){for(i=o,r=0;i>0;i--)(o=NC(s=e.input.charCodeAt(++e.position)))>=0?r=(r<<4)+o:GC(e,"expected hexadecimal character");e.result+=BC(r),e.position++}else GC(e,"unknown escape sequence");n=a=e.position}else DC(s)?(XC(e,n,a,!0),iM(e,nM(e,!1,t)),n=a=e.position):e.position===e.lineStart&&aM(e)?GC(e,"unexpected end of the document within a double quoted scalar"):(e.position++,a=e.position)}GC(e,"unexpected end of the stream within a double quoted scalar")}(e,h)?f=!0:!function(e){var t,n,a;if(42!==(a=e.input.charCodeAt(e.position)))return!1;for(a=e.input.charCodeAt(++e.position),t=e.position;0!==a&&!PC(a)&&!LC(a);)a=e.input.charCodeAt(++e.position);return e.position===t&&GC(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),wC.call(e.anchorMap,n)||GC(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],nM(e,!0,-1),!0}(e)?function(e,t,n){var a,i,r,o,s,c,l,d,u=e.kind,h=e.result;if(PC(d=e.input.charCodeAt(e.position))||LC(d)||35===d||38===d||42===d||33===d||124===d||62===d||39===d||34===d||37===d||64===d||96===d)return!1;if((63===d||45===d)&&(PC(a=e.input.charCodeAt(e.position+1))||n&&LC(a)))return!1;for(e.kind="scalar",e.result="",i=r=e.position,o=!1;0!==d;){if(58===d){if(PC(a=e.input.charCodeAt(e.position+1))||n&&LC(a))break}else if(35===d){if(PC(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&aM(e)||n&&LC(d))break;if(DC(d)){if(s=e.line,c=e.lineStart,l=e.lineIndent,nM(e,!1,-1),e.lineIndent>=t){o=!0,d=e.input.charCodeAt(e.position);continue}e.position=r,e.line=s,e.lineStart=c,e.lineIndent=l;break}}o&&(XC(e,i,r,!1),iM(e,e.line-s),i=r=e.position,o=!1),RC(d)||(r=e.position+1),d=e.input.charCodeAt(++e.position)}return XC(e,i,r,!1),!!e.result||(e.kind=u,e.result=h,!1)}(e,h,xC===n)&&(f=!0,null===e.tag&&(e.tag="?")):(f=!0,null===e.tag&&null===e.anchor||GC(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===m&&(f=s&&rM(e,p))),null===e.tag)null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);else if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&GC(e,'unacceptable node kind for ! tag; it should be "scalar", not "'+e.kind+'"'),c=0,l=e.implicitTypes.length;c"),null!==e.result&&u.kind!==e.kind&&GC(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+u.kind+'", not "'+e.kind+'"'),u.resolve(e.result,e.tag)?(e.result=u.construct(e.result,e.tag),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):GC(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||f}function lM(e){var t,n,a,i,r=e.position,o=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);0!==(i=e.input.charCodeAt(e.position))&&(nM(e,!0,-1),i=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==i));){for(o=!0,i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!PC(i);)i=e.input.charCodeAt(++e.position);for(a=[],(n=e.input.slice(t,e.position)).length<1&&GC(e,"directive name must not be less than one character in length");0!==i;){for(;RC(i);)i=e.input.charCodeAt(++e.position);if(35===i){do{i=e.input.charCodeAt(++e.position)}while(0!==i&&!DC(i));break}if(DC(i))break;for(t=e.position;0!==i&&!PC(i);)i=e.input.charCodeAt(++e.position);a.push(e.input.slice(t,e.position))}0!==i&&tM(e),wC.call(KC,n)?KC[n](e,n,a):YC(e,'unknown document directive "'+n+'"')}nM(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,nM(e,!0,-1)):o&&GC(e,"directives end mark is expected"),cM(e,e.lineIndent-1,kC,!1,!0),nM(e,!0,-1),e.checkLineBreaks&&zC.test(e.input.slice(r,e.position))&&YC(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&aM(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,nM(e,!0,-1)):e.position=55296&&a<=56319&&t+1=56320&&n<=57343?1024*(a-55296)+n-56320+65536:a}function JM(e){return/^\n* /.test(e)}var ek=1,tk=2,nk=3,ak=4,ik=5;function rk(e,t,n,a,i,r,o,s){var c,l=0,d=null,u=!1,h=!1,p=-1!==a,m=-1,g=function(e){return GM(e)&&e!==mM&&!QM(e)&&e!==EM&&e!==IM&&e!==$M&&e!==SM&&e!==jM&&e!==OM&&e!==RM&&e!==LM&&e!==wM&&e!==CM&&e!==kM&&e!==yM&&e!==PM&&e!==AM&&e!==zM&&e!==MM&&e!==bM&&e!==xM&&e!==TM&&e!==DM}(XM(e,0))&&function(e){return!QM(e)&&e!==$M}(XM(e,e.length-1));if(t||o)for(c=0;c=65536?c+=2:c++){if(!GM(l=XM(e,c)))return ik;g=g&&KM(l,d,s),d=l}else{for(c=0;c=65536?c+=2:c++){if((l=XM(e,c))===fM)u=!0,p&&(h=h||c-m-1>a&&" "!==e[m+1],m=c);else if(!GM(l))return ik;g=g&&KM(l,d,s),d=l}h=h||p&&c-m-1>a&&" "!==e[m+1]}return u||h?n>9&&JM(e)?ik:o?r===qM?ik:tk:h?ak:nk:!g||o||i(e)?r===qM?ik:tk:ek}function ok(e,t,n,a,i){e.dump=function(){if(0===t.length)return e.quotingType===qM?'""':"''";if(!e.noCompatMode&&(-1!==FM.indexOf(t)||VM.test(t)))return e.quotingType===qM?'"'+t+'"':"'"+t+"'";var r=e.indent*Math.max(1,n),o=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-r),s=a||e.flowLevel>-1&&n>=e.flowLevel;switch(rk(t,s,e.indent,o,(function(t){return function(e,t){var n,a;for(n=0,a=e.implicitTypes.length;n"+sk(t,e.indent)+ck(WM(function(e,t){var n,a,i=/(\n+)([^\n]*)/g,r=(s=e.indexOf("\n"),s=-1!==s?s:e.length,i.lastIndex=s,lk(e.slice(0,s),t)),o="\n"===e[0]||" "===e[0];var s;for(;a=i.exec(e);){var c=a[1],l=a[2];n=" "===l[0],r+=c+(o||n||""===l?"":"\n")+lk(l,t),o=n}return r}(t,o),r));case ik:return'"'+function(e){for(var t,n="",a=0,i=0;i=65536?i+=2:i++)a=XM(e,i),!(t=NM[a])&&GM(a)?(n+=e[i],a>=65536&&(n+=e[i+1])):n+=t||HM(a);return n}(t)+'"';default:throw new Rx("impossible error: invalid scalar style")}}()}function sk(e,t){var n=JM(e)?String(t):"",a="\n"===e[e.length-1];return n+(a&&("\n"===e[e.length-2]||"\n"===e)?"+":a?"":"-")+"\n"}function ck(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function lk(e,t){if(""===e||" "===e[0])return e;for(var n,a,i=/ [^ ]/g,r=0,o=0,s=0,c="";n=i.exec(e);)(s=n.index)-r>t&&(a=o>r?o:s,c+="\n"+e.slice(r,a),r=a+1),o=s;return c+="\n",e.length-r>t&&o>r?c+=e.slice(r,o)+"\n"+e.slice(o+1):c+=e.slice(r),c.slice(1)}function dk(e,t,n,a){var i,r,o,s="",c=e.tag;for(i=0,r=n.length;i tag resolver accepts not "'+c+'" style');a=s.represent[c](t,c)}e.dump=a}return!0}return!1}function hk(e,t,n,a,i,r,o){e.tag=null,e.dump=n,uk(e,n,!1)||uk(e,n,!0);var s,c=hM.call(e.dump),l=a;a&&(a=e.flowLevel<0||e.flowLevel>t);var d,u,h="[object Object]"===c||"[object Array]"===c;if(h&&(u=-1!==(d=e.duplicates.indexOf(n))),(null!==e.tag&&"?"!==e.tag||u||2!==e.indent&&t>0)&&(i=!1),u&&e.usedDuplicates[d])e.dump="*ref_"+d;else{if(h&&u&&!e.usedDuplicates[d]&&(e.usedDuplicates[d]=!0),"[object Object]"===c)a&&0!==Object.keys(e.dump).length?(!function(e,t,n,a){var i,r,o,s,c,l,d="",u=e.tag,h=Object.keys(n);if(!0===e.sortKeys)h.sort();else if("function"==typeof e.sortKeys)h.sort(e.sortKeys);else if(e.sortKeys)throw new Rx("sortKeys must be a boolean or a function");for(i=0,r=h.length;i1024)&&(e.dump&&fM===e.dump.charCodeAt(0)?l+="?":l+="? "),l+=e.dump,c&&(l+=ZM(e,t)),hk(e,t+1,s,!0,c)&&(e.dump&&fM===e.dump.charCodeAt(0)?l+=":":l+=": ",d+=l+=e.dump));e.tag=u,e.dump=d||"{}"}(e,t,e.dump,i),u&&(e.dump="&ref_"+d+e.dump)):(!function(e,t,n){var a,i,r,o,s,c="",l=e.tag,d=Object.keys(n);for(a=0,i=d.length;a1024&&(s+="? "),s+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),hk(e,t,o,!1,!1)&&(c+=s+=e.dump));e.tag=l,e.dump="{"+c+"}"}(e,t,e.dump),u&&(e.dump="&ref_"+d+" "+e.dump));else if("[object Array]"===c)a&&0!==e.dump.length?(e.noArrayIndent&&!o&&t>0?dk(e,t-1,e.dump,i):dk(e,t,e.dump,i),u&&(e.dump="&ref_"+d+e.dump)):(!function(e,t,n){var a,i,r,o="",s=e.tag;for(a=0,i=n.length;a",e.dump=s+" "+e.dump)}return!0}function pk(e,t){var n,a,i=[],r=[];for(mk(e,i,r),n=0,a=r.length;nq`
${fk.dump(e)}
`;return q`
+
+
+ +
+
+ + ${this.message?q`${this.message}${this.context&&"string"==typeof this.context?": "+this.context:""}`:""} + + ${this.context&&Array.isArray(this.context)?this.context.map((e=>n(e))):"object"==typeof this.context?n(this.context):""} +
+
+
`}static get styles(){return o(_k)}};e([he({attribute:!1})],vk.prototype,"message",void 0),e([he({attribute:!1})],vk.prototype,"context",void 0),e([he({attribute:!1})],vk.prototype,"icon",void 0),e([he({attribute:!0,type:Boolean})],vk.prototype,"dotdotdot",void 0),vk=e([le("frigate-card-message")],vk);let yk=class extends se{render(){if(this.message)return q` ${V_("error.troubleshooting")}.`} + .icon=${this.message.icon??"mdi:alert-circle"} + .context=${this.message.context} + .dotdotdot=${this.message.dotdotdot} + > + `}static get styles(){return o(_k)}};e([he({attribute:!1})],yk.prototype,"message",void 0),yk=e([le("frigate-card-error-message")],yk);let bk=class extends se{constructor(){super(...arguments),this.message="",this.animated=!1,this.size="large"}render(){return q`
+ ${this.animated?q` + `:q``} + ${this.message?q`${this.message}`:q``} +
`}static get styles(){return o(_k)}};function wk(e){return"error"===e?.type?q` `:e?q` `:q``}function xk(e){return q` + + + `}function Ck(e,t,n,a){Bg(e,"message",{message:t,type:n,icon:a?.icon,context:a?.context})}function Mk(e,t,n){Ck(e,t,"error",{context:n?.context})}function kk(e,t){t instanceof Error&&Mk(e,t.message,{...t instanceof zs&&{context:t.context}})}e([he({attribute:!1})],bk.prototype,"message",void 0),e([he({attribute:!1})],bk.prototype,"animated",void 0),e([he({attribute:!1})],bk.prototype,"size",void 0),bk=e([le("frigate-card-progress-indicator")],bk);let Sk=class extends se{constructor(){super(...arguments),this._root=null}createRenderRoot(){return this}_createRoot(){const e=customElements.get("hui-conditional-element");if(!e||!this.hass)throw new Error(V_("error.could_not_render_elements"));const t=new e;t.hass=this.hass;const n={type:"conditional",conditions:[],elements:this.elements};try{t.setConfig(n)}catch(e){throw Gg(e,console.error),new zs(V_("error.invalid_elements_config"))}return t}willUpdate(e){try{!this.elements||this._root&&!e.has("elements")||(this._root=this._createRoot())}catch(e){return kk(this,e)}}render(){return q`${this._root||""}`}updated(){this.hass&&this._root&&(this._root.hass=this.hass)}};e([he({attribute:!1})],Sk.prototype,"elements",void 0),e([he({attribute:!1})],Sk.prototype,"conditionsManagerEpoch",void 0),e([he({attribute:!1})],Sk.prototype,"hass",void 0),Sk=e([le("frigate-card-elements-core")],Sk);let Ek=class extends se{constructor(){super(...arguments),this._menuRemoveHandler=e=>{Bg(this,"menu:remove",e.detail)},this._statusBarRemoveHandler=e=>{Bg(this,"status-bar:remove",e.detail)},this._menuAddHandler=e=>{const t=e.composedPath();t.length&&this._addHandler(t[0],"frigate-card:menu:remove",this._menuRemoveHandler)},this._statusBarAddHandler=e=>{const t=e.composedPath();t.length&&this._addHandler(t[0],"frigate-card:status-bar:add",this._statusBarRemoveHandler)}}_addHandler(e,t,n){e.removeEventListener(t,n),e.addEventListener(t,n)}connectedCallback(){super.connectedCallback(),this.addEventListener("frigate-card:menu:add",this._menuAddHandler),this.addEventListener("frigate-card:status-bar:add",this._statusBarAddHandler)}disconnectedCallback(){this.removeEventListener("frigate-card:menu:add",this._menuAddHandler),this.addEventListener("frigate-card:status-bar:add",this._statusBarAddHandler),super.disconnectedCallback()}render(){return q` + `}static get styles(){return o(":host {\n position: absolute;\n inset: 0;\n overflow: hidden;\n pointer-events: none;\n}\n\n.element {\n position: absolute;\n transform: translate(-50%, -50%);\n pointer-events: auto;\n}\n\nhui-error-card.element {\n inset: 0px;\n transform: unset;\n}")}};e([he({attribute:!1})],Ek.prototype,"hass",void 0),e([he({attribute:!1})],Ek.prototype,"conditionsManagerEpoch",void 0),e([he({attribute:!1})],Ek.prototype,"elements",void 0),Ek=e([le("frigate-card-elements")],Ek);let $k=class extends se{setConfig(e){this._config=e}createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),this.className=""}render(){if(function(e,t){if(!t)return!0;const n=new _w(t,{bubbles:!0,composed:!0});return e.dispatchEvent(n),n.evaluation??!1}(this,this._config?.conditions))return q` + `}};e([he({attribute:!1,hasChanged:()=>!0})],$k.prototype,"hass",void 0),$k=e([le("frigate-card-conditional")],$k);class Ak extends se{constructor(e){super(),this._config=null,this._eventCategory=e}setConfig(e){this._config=e}connectedCallback(){super.connectedCallback(),this._config&&Bg(this,`${this._eventCategory}:add`,this._config)}disconnectedCallback(){this._config&&Bg(this,`${this._eventCategory}:remove`,this._config),super.disconnectedCallback()}}e([pe()],Ak.prototype,"_config",void 0);class zk extends Ak{constructor(){super("menu")}}let Ik=class extends zk{};Ik=e([le("frigate-card-menu-icon")],Ik);let Tk=class extends zk{};Tk=e([le("frigate-card-menu-state-icon")],Tk);let jk=class extends zk{};jk=e([le("frigate-card-menu-submenu")],jk);let Ok=class extends zk{};Ok=e([le("frigate-card-menu-submenu-select")],Ok);class Dk extends Ak{constructor(){super("status-bar")}}let Rk=class extends Dk{};Rk=e([le("frigate-card-status-bar-icon")],Rk);let Pk=class extends Dk{};Pk=e([le("frigate-card-status-bar-image")],Pk);let Lk=class extends Dk{};Lk=e([le("frigate-card-status-bar-string")],Lk);let Nk=class extends se{render(){return q` `}static get styles(){return o(":host {\n width: intrinsic;\n height: intrinsic;\n display: flex;\n justify-content: center;\n align-items: center;\n pointer-events: none;\n}\n\nimg {\n width: 10%;\n animation: rotate 8s linear infinite;\n}\n\n@keyframes rotate {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}")}};Nk=e([le("frigate-card-loading")],Nk);const Fk=(e,t)=>{Bg(e,"action:execution-request",t)};class Vk{constructor(e){this._config=null,this._buttons=[],this._expanded=!1,this._host=e}setMenuConfig(e){this._config=e,this._host.style.setProperty("--frigate-card-menu-button-size",`${e.button_size}px`),this._host.setAttribute("data-style",e.style),this._host.setAttribute("data-position",e.position),this._host.setAttribute("data-alignment",e.alignment),this._sortButtons(),this._host.requestUpdate()}getMenuConfig(){return this._config}isExpanded(){return this._expanded}setButtons(e){this._buttons=e,this._sortButtons(),this._host.requestUpdate()}getButtons(e){const t=e=>!this._isHidingMenu()||this._expanded||!!e.permanent;return this._buttons.filter((n=>(e=>!1!==e.enabled)(n)&&(t=>t.alignment===e||"matching"===e&&!t.alignment)(n)&&t(n)))}setExpanded(e){this._expanded=e,of(this._host,e,"expanded"),this._host.requestUpdate()}toggleExpanded(){this.setExpanded(!this._expanded)}actionHandler(e,t){if(e.stopPropagation(),e.detail.config&&(t=e.detail.config),!t)return;const n=e.detail.action,a=yf(n,t);if(!a)return;const i=Wg(a);let r=!1;const o=i.filter((e=>sf(e)&&!this._isUnknownActionMenuToggleAction(e)));if(o.length!=i.length&&(r=!0),o.length&&Fk(this._host,{action:i,config:t}),this._isHidingMenu())if(r)this.setExpanded(!this._expanded);else{const e=yf("hold",t),a=yf("double_tap",t),i=yf("tap",t),r=yf("end_tap",t);"end_tap"!==n&&("start_tap"!==n||e||a||i||r)&&("end_tap"===n||r)||this.setExpanded(!1)}}getFreshButtonState(e,t){const n={...t};return e&&"custom:frigate-card-menu-state-icon"===t.type?Pb(e,n):n}_sortButtons(){this._buttons=Ev(this._buttons,(e=>(e.priority??0)+(this._isHidingMenu()&&e.permanent?Us:0)),["desc"])}_isHidingMenu(){return"hidden"===this._config?.style}_isUnknownActionMenuToggleAction(e){const t=mf(e);return!!t&&"menu_toggle"==t.frigate_card_action}}var Hk="data:image/svg+xml,%3c%3fxml version='1.0' encoding='UTF-8' standalone='no'%3f%3e%3csvg width='24' height='24' viewBox='0 0 24 24' fill='none' version='1.1' id='svg54' sodipodi:docname='frigate.svg' inkscape:version='1.2.2 (b0a8486541%2c 2022-12-01)' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg'%3e %3cdefs id='defs58' /%3e %3csodipodi:namedview id='namedview56' pagecolor='%23da4040' bordercolor='%23666666' borderopacity='1.0' inkscape:pageshadow='2' inkscape:pageopacity='0' inkscape:pagecheckerboard='0' showgrid='false' width='24px' inkscape:zoom='45.254834' inkscape:cx='-0.03314563' inkscape:cy='9.9768347' inkscape:window-width='3840' inkscape:window-height='1527' inkscape:window-x='1080' inkscape:window-y='227' inkscape:window-maximized='1' inkscape:current-layer='svg54' showguides='true' inkscape:showpageshadow='2' inkscape:deskcolor='%23d1d1d1' /%3e %3cpath d='m 4.8759466%2c22.743573 c 0.0866%2c0.69274 0.811811%2c1.16359 0.37885%2c1.27183 -0.43297%2c0.10824 -2.32718%2c-3.43665 -2.7601492%2c-4.95202 -0.4329602%2c-1.51538 -0.6764993%2c-3.22017 -0.5682593%2c-4.19434 0.1082301%2c-0.97417 5.7097085%2c-2.48955 5.7097085%2c-2.89545 0%2c-0.4059 -1.81304%2c-0.0271 -1.89422%2c-0.35178 -0.0812%2c-0.32472 1.36925%2c-0.12989 1.75892%2c-0.64945 0.60885%2c-0.81181 1.3800713%2c-0.6765 1.8671505%2c-1.1094696 0.4870902%2c-0.4329599 1.0824089%2c-2.0836399 1.1906589%2c-2.7871996 0.108241%2c-0.70357 -1.0824084%2c-1.51538 -1.4071389%2c-2.05658 -0.3247195%2c-0.54121 0.7035702%2c-0.92005 3.1931099%2c-1.94834 2.48954%2c-1.02829 10.39114%2c-3.30134994 10.49938%2c-3.03074994 0.10824%2c0.27061 -2.59779%2c1.40713994 -4.492%2c2.11069994 -1.89422%2c0.70357 -4.97909%2c2.05658 -4.97909%2c2.43542 0%2c0.37885 0.16236%2c0.67651 0.0541%2c1.54244 -0.10824%2c0.86593 -0.12123%2c1.2702597 -0.32472%2c1.8400997 -0.1353%2c0.37884 -0.2706%2c1.27183 0%2c2.0836295 0.21648%2c0.64945 0.92005%2c1.13653 1.24477%2c1.24478 0.2706%2c0.018 1.01746%2c0.0433 1.8401%2c0 1.02829%2c-0.0541 2.48954%2c0.0541 2.48954%2c0.32472 0%2c0.2706 -2.21894%2c0.10824 -2.21894%2c0.48708 0%2c0.37885 2.27306%2c-0.0541 2.21894%2c0.32473 -0.0541%2c0.37884 -1.89422%2c0.21648 -2.86839%2c0.21648 -0.77933%2c0 -1.93031%2c-0.0361 -2.43542%2c-0.21648 l -0.10824%2c0.37884 c -0.18038%2c0 -0.55744%2c0.10824 -0.94711%2c0.10824 -0.48708%2c0 -0.51414%2c0.16236 -1.40713%2c0.16236 -0.892989%2c0 -0.622391%2c-0.0541 -1.4341894%2c-0.10824 -0.81181%2c-0.0541 -3.842561%2c2.27306 -4.383761%2c3.03075 -0.54121%2c0.75768 -0.21649%2c2.59778 -0.21649%2c3.43665 0%2c0.75379 -0.10824%2c2.43542 0%2c3.30135 z' fill='black' id='path330' style='fill:white%3bfill-opacity:1%3bstroke:none%3bstroke-width:0.1%3bstroke-miterlimit:4%3bstroke-dasharray:none%3bstroke-opacity:1' sodipodi:nodetypes='csccscccccsscscccccsscsccssccscc' /%3e%3c/svg%3e",Bk="data:image/svg+xml,%3c%3fxml version='1.0' encoding='UTF-8' standalone='no'%3f%3e%3c!-- Created with Inkscape (http://www.inkscape.org/) --%3e%3csvg id='svg2' version='1.1' inkscape:version='1.2.2 (b0a8486541%2c 2022-12-01)' width='24' height='24' xml:space='preserve' sodipodi:docname='motioneye.svg' inkscape:export-filename='/home/ccrisan/projects/motioneye/static/img/motioneye-logo.png' inkscape:export-xdpi='960' inkscape:export-ydpi='960' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns%23' xmlns:cc='http://creativecommons.org/ns%23' xmlns:dc='http://purl.org/dc/elements/1.1/'%3e%3cmetadata id='metadata8'%3e%3crdf:RDF%3e%3ccc:Work rdf:about=''%3e%3cdc:format%3eimage/svg%2bxml%3c/dc:format%3e%3cdc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage' /%3e%3c/cc:Work%3e%3c/rdf:RDF%3e%3c/metadata%3e%3cdefs id='defs6'%3e%3clinearGradient inkscape:collect='always' id='linearGradient2058'%3e%3cstop style='stop-color:white%3bstop-opacity:1%3b' offset='0' id='stop2054' /%3e%3cstop style='stop-color:%23585858%3bstop-opacity:1' offset='1' id='stop2056' /%3e%3c/linearGradient%3e%3clinearGradient inkscape:collect='always' id='linearGradient2005'%3e%3cstop style='stop-color:white%3bstop-opacity:1%3b' offset='0' id='stop2001' /%3e%3cstop style='stop-color:grey%3bstop-opacity:1%3b' offset='1' id='stop2003' /%3e%3c/linearGradient%3e%3clinearGradient inkscape:collect='always' id='linearGradient4205'%3e%3cstop style='stop-color:%234aa3e0%3bstop-opacity:1' offset='0' id='stop4207' /%3e%3cstop style='stop-color:%233096db%3bstop-opacity:1' offset='1' id='stop4209' /%3e%3c/linearGradient%3e%3clinearGradient inkscape:collect='always' id='linearGradient4197'%3e%3cstop style='stop-color:white%3bstop-opacity:1%3b' offset='0' id='stop4199' /%3e%3cstop style='stop-color:%23585858%3bstop-opacity:1' offset='1' id='stop4201' /%3e%3c/linearGradient%3e%3clinearGradient inkscape:collect='always' xlink:href='%23linearGradient4205' id='linearGradient4211' x1='26.602072' y1='43.034946' x2='26.602072' y2='29.466328' gradientUnits='userSpaceOnUse' gradientTransform='matrix(0.96428571%2c0%2c0%2c0.96428571%2c0.91428571%2c0.91428571)' /%3e%3cfilter style='color-interpolation-filters:sRGB' inkscape:label='Drop Shadow' id='filter4285'%3e%3cfeFlood flood-opacity='0.588235' flood-color='rgb(0%2c0%2c0)' result='flood' id='feFlood4287' /%3e%3cfeComposite in='flood' in2='SourceGraphic' operator='in' result='composite1' id='feComposite4289' /%3e%3cfeGaussianBlur in='composite1' stdDeviation='0.6' result='blur' id='feGaussianBlur4291' /%3e%3cfeOffset dx='0' dy='-1' result='offset' id='feOffset4293' /%3e%3cfeComposite in='SourceGraphic' in2='offset' operator='over' result='composite2' id='feComposite4295' /%3e%3c/filter%3e%3clinearGradient inkscape:collect='always' xlink:href='%23linearGradient2005' id='linearGradient4309' gradientUnits='userSpaceOnUse' x1='26.445793' y1='47.517574' x2='26.445793' y2='3.8183768' /%3e%3clinearGradient inkscape:collect='always' xlink:href='%23linearGradient4197' id='linearGradient4311' gradientUnits='userSpaceOnUse' x1='26.445793' y1='47.517574' x2='26.445793' y2='3.8183768' /%3e%3clinearGradient inkscape:collect='always' xlink:href='%23linearGradient2058' id='linearGradient4313' gradientUnits='userSpaceOnUse' x1='26.445793' y1='47.517574' x2='26.445793' y2='3.8183768' /%3e%3cfilter style='color-interpolation-filters:sRGB' inkscape:label='Drop Shadow' id='filter4315' x='-0.03618178' y='-0.20783284' width='1.0723636' height='1.3304883'%3e%3cfeFlood flood-opacity='0.588235' flood-color='rgb(0%2c0%2c0)' result='flood' id='feFlood4317' /%3e%3cfeComposite in='flood' in2='SourceGraphic' operator='in' result='composite1' id='feComposite4319' /%3e%3cfeGaussianBlur in='composite1' stdDeviation='0.6' result='blur' id='feGaussianBlur4321' /%3e%3cfeOffset dx='0' dy='-1' result='offset' id='feOffset4323' /%3e%3cfeComposite in='SourceGraphic' in2='offset' operator='over' result='composite2' id='feComposite4325' /%3e%3c/filter%3e%3cfilter style='color-interpolation-filters:sRGB' inkscape:label='Drop Shadow' id='filter4327' x='-0.27857143' y='-0.4720238' width='1.5571429' height='1.7505952'%3e%3cfeFlood flood-opacity='0.588235' flood-color='rgb(0%2c0%2c0)' result='flood' id='feFlood4329' /%3e%3cfeComposite in='flood' in2='SourceGraphic' operator='in' result='composite1' id='feComposite4331' /%3e%3cfeGaussianBlur in='composite1' stdDeviation='0.6' result='blur' id='feGaussianBlur4333' /%3e%3cfeOffset dx='0' dy='-1' result='offset' id='feOffset4335' /%3e%3cfeComposite in='SourceGraphic' in2='offset' operator='over' result='composite2' id='feComposite4337' /%3e%3c/filter%3e%3cfilter style='color-interpolation-filters:sRGB' inkscape:label='Drop Shadow' id='filter4339' x='-0.0202507' y='-0.13980794' width='1.0405014' height='1.2082853'%3e%3cfeFlood flood-opacity='0.588235' flood-color='rgb(0%2c0%2c0)' result='flood' id='feFlood4341' /%3e%3cfeComposite in='flood' in2='SourceGraphic' operator='in' result='composite1' id='feComposite4343' /%3e%3cfeGaussianBlur in='composite1' stdDeviation='0.2' result='blur' id='feGaussianBlur4345' /%3e%3cfeOffset dx='0' dy='-0.5' result='offset' id='feOffset4347' /%3e%3cfeComposite in='SourceGraphic' in2='offset' operator='over' result='composite2' id='feComposite4349' /%3e%3c/filter%3e%3c/defs%3e%3csodipodi:namedview pagecolor='%23ff0d0d' bordercolor='%23666666' borderopacity='1' objecttolerance='10' gridtolerance='10' guidetolerance='10' inkscape:pageopacity='0' inkscape:pageshadow='2' inkscape:window-width='3840' inkscape:window-height='1527' id='namedview4' showgrid='false' inkscape:zoom='29.890116' inkscape:cx='19.973158' inkscape:cy='16.577386' inkscape:window-x='1080' inkscape:window-y='227' inkscape:window-maximized='1' inkscape:current-layer='g10' showguides='true' inkscape:guide-bbox='true' inkscape:showpageshadow='true' inkscape:pagecheckerboard='false' inkscape:deskcolor='%23d1d1d1' /%3e%3cg id='g10' inkscape:groupmode='layer' inkscape:label='ink_ext_XXXXXX' transform='matrix(1.25%2c0%2c0%2c-1.25%2c0%2c64)'%3e%3cg id='g4823' transform='matrix(1.0344694%2c0%2c0%2c1.0344694%2c-3.551886%2c-0.86695248)'%3e%3cpath id='path4244' d='M 8.9346154%2c40.515385 C 5.3647588%2c36.547307 3.2%2c31.357779 3.2%2c25.6 3.2%2c13.228821 13.228821%2c3.2 25.6%2c3.2 37.971179%2c3.2 48%2c13.228821 48%2c25.6 c 0%2c5.736682 -2.161128%2c10.952493 -5.707692%2c14.915385 -1.695935%2c-0.623286 -3.387833%2c-1.349065 -5.061539%2c-2.288462 3.2394%2c-0.937363 5.6%2c-3.937988 5.6%2c-7.457692 0%2c-4.260339 -3.469626%2c-7.753846 -7.753846%2c-7.753846 -3.633936%2c0 -6.690552%2c2.51055 -7.538461%2c5.869231 h -3.876924 c -0.840685%2c-3.360193 -3.903443%2c-5.869231 -7.538461%2c-5.869231 -4.284219%2c0 -7.7807693%2c3.493507 -7.7807693%2c7.753846 0%2c3.56112 2.4570323%2c6.5856 5.7615383%2c7.484616 -1.676267%2c0.912203 -3.404813%2c1.620556 -5.1692306%2c2.261538 z M 25.6%2c26.461538 c 0.532632%2c-1.981435 1.101793%2c-3.947553 3.446154%2c-5.16923 L 25.6%2c16.123077 22.153846%2c21.292308 c 2.053593%2c1.454966 3.000771%2c3.237758 3.446154%2c5.16923 z' style='fill:url(%23linearGradient4309)%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4327)' inkscape:connector-curvature='0' transform='matrix(0.38078533%2c0%2c0%2c0.38078533%2c2.9655495%2c31.335499)' /%3e%3cpath id='path4242' d='m 16.123077%2c33.353847 c -1.427443%2c0 -2.584616%2c-1.157173 -2.584616%2c-2.584616 0%2c-1.427444 1.157173%2c-2.584615 2.584616%2c-2.584615 1.427444%2c0 2.584615%2c1.157171 2.584615%2c2.584615 0%2c1.427443 -1.157171%2c2.584616 -2.584615%2c2.584616 z' style='fill:url(%23linearGradient4311)%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4327)' inkscape:connector-curvature='0' transform='matrix(0.38078533%2c0%2c0%2c0.38078533%2c2.9655495%2c31.335499)' /%3e%3cpath id='path4240' d='m 35.076923%2c33.353847 c -1.427443%2c0 -2.584615%2c-1.157173 -2.584615%2c-2.584616 0%2c-1.427444 1.157172%2c-2.584615 2.584615%2c-2.584615 1.427443%2c0 2.584616%2c1.157171 2.584616%2c2.584615 0%2c1.427443 -1.157173%2c2.584616 -2.584616%2c2.584616 z' style='fill:url(%23linearGradient4313)%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4327)' inkscape:connector-curvature='0' transform='matrix(0.38078533%2c0%2c0%2c0.38078533%2c2.9655495%2c31.335499)' /%3e%3cpath inkscape:connector-curvature='0' style='fill:%23d9d9d9%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4339)' d='m 25.6%2c47.2 c -4.373944%2c0 -8.437159%2c-1.399808 -11.838461%2c-3.634616 3.677605%2c-0.394237 7.305921%2c-1.342945 11.423077%2c-3.375 4.166157%2c2.122533 8.434154%2c3.008875 12.279808%2c3.452886 C 34.057131%2c45.890032 29.986674%2c47.2 25.6%2c47.2 Z' id='path4248' transform='matrix(0.39488848%2c0%2c0%2c0.39488848%2c2.6045087%2c30.974457)' /%3e%3cpath inkscape:connector-curvature='0' style='fill:url(%23linearGradient4211)%3bfill-opacity:1%3bstroke:none%3bfilter:url(%23filter4315)' d='M 39.723077%2c42.552884 C 35.394064%2c42.5242 29.479588%2c40.397223 25.184616%2c38.432418 20.668821%2c40.064102 16.035448%2c42.649343 10.801923%2c42.526924 10.453022%2c42.51873 10.118061%2c42.50105 9.7634616%2c42.475 L 5.6615384%2c42.1375 9.5557693%2c40.839424 c 5.3417977%2c-1.74056 10.0398397%2c-2.851302 14.1749997%2c-10.025963 0.959101%2c0 2.845924%2c-4.15e-4 3.738462%2c-4.15e-4 4.11884%2c7.134039 9.059296%2c8.324614 14.149039%2c10.026378 L 45.460577%2c42.085577 41.4625%2c42.475 c -0.544847%2c0.05181 -1.120992%2c0.08198 -1.739423%2c0.07788 z' id='path4246' sodipodi:nodetypes='cccccccccccc' transform='matrix(0.39488848%2c0%2c0%2c0.39488848%2c2.6045087%2c30.974457)' /%3e%3c/g%3e%3c/g%3e%3c/svg%3e",qk="data:image/svg+xml,%3c%3fxml version='1.0' encoding='UTF-8' standalone='no'%3f%3e%3c!-- Created with Inkscape (http://www.inkscape.org/) --%3e%3csvg version='1.1' id='svg62' width='24' height='24' viewBox='0 0 24 24' sodipodi:docname='reolink.svg' inkscape:version='1.2.2 (b0a8486541%2c 2022-12-01)' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg'%3e %3cdefs id='defs66' /%3e %3csodipodi:namedview id='namedview64' pagecolor='%23505050' bordercolor='%23eeeeee' borderopacity='1' inkscape:showpageshadow='0' inkscape:pageopacity='0' inkscape:pagecheckerboard='0' inkscape:deskcolor='%23505050' showgrid='true' inkscape:zoom='36.417984' inkscape:cx='18.191562' inkscape:cy='8.6633022' inkscape:window-width='3840' inkscape:window-height='1527' inkscape:window-x='1080' inkscape:window-y='227' inkscape:window-maximized='1' inkscape:current-layer='g68'%3e %3cinkscape:grid type='xygrid' id='grid1175' dotted='false' snapvisiblegridlinesonly='true' /%3e %3c/sodipodi:namedview%3e %3cg inkscape:groupmode='layer' inkscape:label='Reolink Logo' id='g68'%3e %3cpath style='fill:white%3bstroke-width:0.0393282%3bfill-opacity:1' d='M 17.037254%2c23.964909 C 16.764634%2c23.917573 16.561708%2c23.83617 16.325735%2c23.67954 16.196719%2c23.593913 14.543544%2c21.952905 12.217956%2c19.602014 10.077426%2c17.438191 8.2198993%2c15.582673 8.0901166%2c15.478642 7.6038998%2c15.088895 7.0877741%2c14.869424 6.4986827%2c14.801908 6.3140805%2c14.780765 5.079061%2c14.763305 3.7541964%2c14.763126 l -2.408845%2c-4.78e-4 0.00713%2c-7.3937713 v -7.3935985 l 6.2040046%2c3.536e-5 c 3.9799342%2c1.969e-5 6.3590882%2c0.01465833 6.6366112%2c0.0408227 2.331195%2c0.21982024 4.364771%2c1.49885914 5.578726%2c3.50085534 0.686043%2c1.1313823 1.020901%2c2.2783695 1.067186%2c3.6554196 0.06335%2c1.8844953 -0.57426%2c3.6597378 -1.831469%2c5.0992438 -0.756457%2c0.866146 -1.861127%2c1.62991 -2.928729%2c2.024919 l -0.319718%2c0.118287 -1.951287%2c-1.979284 -1.951286%2c-1.979278 1.046741%2c-0.02346 c 0.575706%2c-0.01291 1.099833%2c-0.03689 1.164724%2c-0.0533 0.596068%2c-0.150649 0.949703%2c-0.313968 1.322206%2c-0.6106282 0.643573%2c-0.5125401 1.046169%2c-1.2439257 1.137985%2c-2.0673522 0.167852%2c-1.505317 -0.771478%2c-2.8704888 -2.263547%2c-3.2897068 L 13.950001%2c4.3234481 9.7981831%2c4.3106846 5.6392389%2c4.29801 v 3.0692702 3.0692648 l 1.4185165%2c7.9e-4 c 1.6275801%2c8.87e-4 1.7789152%2c0.01912 2.3105245%2c0.27984 0.3095679%2c0.15183 0.389559%2c0.219499 1.0817441%2c0.915083 3.027399%2c3.042274 12.19404%2c12.30837 12.204589%2c12.337002 0.0161%2c0.04373 -5.364393%2c0.03953 -5.617359%2c-0.0045 z' id='path1173' inkscape:label='R' /%3e %3c/g%3e%3c/svg%3e";const Uk=e=>{switch(e){case"frigate":return Hk;case"motioneye":return Bk;case"reolink":return qk;default:return null}};const Wk=(e,t,n)=>{const a=e.states[t],i=n?.state?n.state:a?a.state:null;if(!i)return null;const r=Ye(t),o=a?a.attributes:null;return n?.entity?.translation_key&&e.localize(`component.${n.entity.platform}.entity.${r}.${n.entity.translation_key}.state.${i}`)||o?.device_class&&e.localize(`component.${r}.state.${o.device_class}.${i}`)||e.localize(`component.${r}.state._.${i}`)||i};let Zk=class extends se{_renderItem(e){if(!this.hass)return;const t=Pb(this.hass,{...e});return q` + {t.detail.config=e}} + .actionHandler=${kf({hasHold:bf(e.hold_action),hasDoubleClick:bf(e.double_tap_action)})} + > + ${t.title||""} + ${e.subtitle?q`${e.subtitle}`:""} + ${(e=>{if(e.icon){const t=Uk(e.icon);return t?q``:q` + `}return q``})(t)} + + `}render(){if(!this.submenu)return q``;const e=this.submenu.items;return q` + e.stopPropagation()} + @click=${e=>wf(e)} + > + + + + ${e.map(this._renderItem.bind(this))} + + `}static get styles(){return o("ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n pointer-events: auto;\n}\n\nmwc-list-item {\n z-index: 20;\n}")}};e([he({attribute:!1})],Zk.prototype,"hass",void 0),e([he({attribute:!1})],Zk.prototype,"submenu",void 0),Zk=e([le("frigate-card-submenu")],Zk);let Qk=class extends se{shouldUpdate(e){const t=e.get("hass");return!e.has("hass")||!t||!this.submenuSelect||jb(this.hass,t,[this.submenuSelect.entity])}async _refreshOptionTitles(){if(!this.hass||!this.submenuSelect)return;const e=this.submenuSelect.entity,t=this.hass.states[e],n=t?.attributes?.options,a=await(this.entityRegistryManager?.getEntity(this.hass,e))??null,i={};for(const t of n){const n=Wk(this.hass,e,{...a&&{entity:a},state:t});n&&(i[t]=n)}this._optionTitles=i}willUpdate(){if(!this.submenuSelect||!this.hass)return;this._optionTitles||this._refreshOptionTitles();const e=this.submenuSelect.entity,t=this.hass.states[e],n=t?.attributes?.options;if(!t||!n)return;const a={icon:zb("select"),...Pb(this.hass,this.submenuSelect),...this.submenuSelect,type:"custom:frigate-card-menu-submenu",items:[]};delete a.options;const i=a.items;for(const a of n){const n=this._optionTitles?.[a]??a;i.push({state_color:!0,selected:t.state===a,enabled:!0,title:n||a,...(e.startsWith("select.")||e.startsWith("input_select."))&&{tap_action:{action:"perform-action",perform_action:e.startsWith("select.")?"select.select_option":"input_select.select_option",target:{entity_id:e},data:{option:a}}},...this.submenuSelect.options&&this.submenuSelect.options[a]})}this._generatedSubmenu=a}render(){return q` `}};e([he({attribute:!1})],Qk.prototype,"hass",void 0),e([he({attribute:!1})],Qk.prototype,"submenuSelect",void 0),e([he({attribute:!1})],Qk.prototype,"entityRegistryManager",void 0),e([pe()],Qk.prototype,"_optionTitles",void 0),Qk=e([le("frigate-card-submenu-select")],Qk);let Gk=class extends se{constructor(){super(...arguments),this._controller=new Vk(this)}set menuConfig(e){this._controller.setMenuConfig(e)}set buttons(e){this._controller.setButtons(e)}set expanded(e){this._controller.setExpanded(e)}toggleMenu(){this._controller.toggleExpanded()}_renderButton(e){if(!this.hass)return;if("custom:frigate-card-menu-submenu"===e.type)return q` this._controller.actionHandler(e)} + > + `;if("custom:frigate-card-menu-submenu-select"===e.type)return q` this._controller.actionHandler(e)} + > + `;const t=this._controller.getFreshButtonState(this.hass,e),n=Uk(t.icon);return q` this._controller.actionHandler(t,e)} + > + ${n?q``:q``} + `}render(){const e=this._controller.getMenuConfig(),t=e?.style;if(!e||"none"===t)return;const n=this._controller.getButtons("matching"),a=this._controller.getButtons("opposing");return q`
+ ${n.map((e=>this._renderButton(e)))} +
+
+ ${a.map((e=>this._renderButton(e)))} +
`}static get styles(){return o('ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n --frigate-card-menu-button-size: 40px;\n --mdc-icon-button-size: var(--frigate-card-menu-button-size);\n --mdc-icon-size: calc(var(--mdc-icon-button-size) / 2);\n pointer-events: auto;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n}\n\n/*******************************************************\n * Non-hover styles should not interact with the pointer\n *******************************************************/\n:host(:not([data-style*=hover])) {\n pointer-events: none;\n}\n\n/***********************************\n * Aligned divs: matching & opposing\n ***********************************/\ndiv.matching,\ndiv.opposing {\n display: flex;\n flex-wrap: wrap;\n flex-direction: row;\n align-items: flex-start;\n min-width: 0px;\n min-height: 0px;\n}\n\ndiv.matching {\n justify-content: flex-start;\n}\n\ndiv.opposing {\n justify-content: flex-end;\n}\n\n/********************\n * Outside menu style\n ********************/\n:host([data-style=outside]) {\n width: 100%;\n background: var(--secondary-background-color);\n}\n\n/********************************************************\n * Hack: Ensure host & div expand for column flex layouts\n ********************************************************/\n:host(:not([data-style=outside])[data-position=left]) {\n writing-mode: vertical-lr;\n}\n\n:host(:not([data-style=outside])[data-position=right]) {\n writing-mode: vertical-rl;\n}\n\n:host(:not([data-style=outside])[data-style=overlay][data-position=left]) div > *,\n:host(:not([data-style=outside])[data-style=overlay][data-position=right]) div > *,\n:host(:not([data-style=outside])[data-style*=hover][data-position=left]) div > *,\n:host(:not([data-style=outside])[data-style*=hover][data-position=right]) div > *,\n:host(:not([data-style=outside])[data-style=hidden][data-position=left]) div > *,\n:host(:not([data-style=outside])[data-style=hidden][data-position=right]) div > * {\n writing-mode: horizontal-tb;\n}\n\n/**********************\n * "Reverse" alignments\n **********************/\n:host(:not([data-style=outside])[data-position=left][data-alignment=bottom]),\n:host(:not([data-style=outside])[data-position=right][data-alignment=bottom]),\n:host([data-position=top][data-alignment=right]),\n:host([data-position=bottom][data-alignment=right]),\n:host(:not([data-style=outside])[data-position=left][data-alignment=bottom]) div,\n:host(:not([data-style=outside])[data-position=right][data-alignment=bottom]) div,\n:host([data-position=top][data-alignment=right]) div,\n:host([data-position=bottom][data-alignment=right]) div {\n flex-direction: row-reverse;\n}\n\n/****************************\n * Wrap upwards on the bottom\n ****************************/\n:host(:not([data-style=outside])[data-position=bottom]) div {\n flex-wrap: wrap-reverse;\n}\n\n/********************************************\n * Positioning for absolute based menu styles\n ********************************************/\n:host([data-style=overlay]),\n:host([data-style*=hover]),\n:host([data-style=hidden]) {\n overflow: hidden;\n width: calc(var(--frigate-card-menu-button-size) + 6px);\n height: calc(var(--frigate-card-menu-button-size) + 6px);\n}\n\n:host([data-style=overlay]),\n:host([data-style*=hover]),\n:host([data-style=hidden][expanded]) {\n overflow: visible;\n}\n\n:host([data-style=overlay][data-position=top]),\n:host([data-style=overlay][data-position=bottom]),\n:host([data-style*=hover][data-position=top]),\n:host([data-style*=hover][data-position=bottom]),\n:host([data-style=hidden][data-position=top]),\n:host([data-style=hidden][data-position=bottom]) {\n width: 100%;\n height: auto;\n}\n\n:host([data-style=overlay][data-position=top][data-alignment=left]),\n:host([data-style=overlay][data-position=bottom][data-alignment=left]),\n:host([data-style*=hover][data-position=top][data-alignment=left]),\n:host([data-style*=hover][data-position=bottom][data-alignment=left]),\n:host([data-style=hidden][data-position=top][data-alignment=left][expanded]),\n:host([data-style=hidden][data-position=bottom][data-alignment=left][expanded]) {\n background: linear-gradient(90deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}\n\n:host([data-style=overlay][data-position=top][data-alignment=right]),\n:host([data-style=overlay][data-position=bottom][data-alignment=right]),\n:host([data-style*=hover][data-position=top][data-alignment=right]),\n:host([data-style*=hover][data-position=bottom][data-alignment=right]),\n:host([data-style=hidden][data-position=top][data-alignment=right][expanded]),\n:host([data-style=hidden][data-position=bottom][data-alignment=right][expanded]) {\n background: linear-gradient(270deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}\n\n:host([data-style=overlay][data-position=left]),\n:host([data-style=overlay][data-position=right]),\n:host([data-style*=hover][data-position=left]),\n:host([data-style*=hover][data-position=right]),\n:host([data-style=hidden][data-position=left]),\n:host([data-style=hidden][data-position=right]) {\n width: auto;\n height: 100%;\n}\n\n:host([data-style=overlay][data-position=left][data-alignment=top]),\n:host([data-style=overlay][data-position=right][data-alignment=top]),\n:host([data-style*=hover][data-position=left][data-alignment=top]),\n:host([data-style*=hover][data-position=right][data-alignment=top]),\n:host([data-style=hidden][data-position=left][data-alignment=top][expanded]),\n:host([data-style=hidden][data-position=right][data-alignment=top][expanded]) {\n background: linear-gradient(180deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}\n\n:host([data-style=overlay][data-position=left][data-alignment=bottom]),\n:host([data-style=overlay][data-position=right][data-alignment=bottom]),\n:host([data-style*=hover][data-position=left][data-alignment=bottom]),\n:host([data-style*=hover][data-position=right][data-alignment=bottom]),\n:host([data-style=hidden][data-position=left][data-alignment=bottom][expanded]),\n:host([data-style=hidden][data-position=right][data-alignment=bottom][expanded]) {\n background: linear-gradient(0deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}')}};e([he({attribute:!1})],Gk.prototype,"entityRegistryManager",void 0),e([he({attribute:!1})],Gk.prototype,"hass",void 0),Gk=e([le("frigate-card-menu")],Gk);let Yk=class extends se{render(){return q` + + + + + `}static get styles(){return o("ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n position: absolute;\n width: 100%;\n height: 100%;\n pointer-events: none;\n}\n\nslot {\n position: absolute;\n display: flex;\n}\n\n/***************\n * Slot position\n ***************/\nslot[name=top] {\n top: 0px;\n}\n\nslot[name=bottom] {\n bottom: 0px;\n}\n\nslot[name=left] {\n left: 0px;\n}\n\nslot[name=right] {\n right: 0px;\n}\n\n/***********\n * Slot size\n ***********/\nslot[name=top],\nslot[name=bottom] {\n width: 100%;\n flex-direction: column;\n}\n\nslot[name=left],\nslot[name=right] {\n height: 100%;\n flex-direction: row;\n}\n\nslot[name=top],\nslot[name=left] {\n justify-content: flex-start;\n}\n\nslot[name=bottom],\nslot[name=right] {\n justify-content: flex-end;\n}\n\n/*******************************\n * Match rounded corners to card\n *******************************/\n::slotted([slot=top]:first-child),\n::slotted([slot=left]:first-child) {\n border-top-left-radius: var(--ha-card-border-radius, 4px);\n}\n\n::slotted([slot=top]:first-child),\n::slotted([slot=right]:first-child) {\n border-top-right-radius: var(--ha-card-border-radius, 4px);\n}\n\n::slotted([slot=bottom]:last-child),\n::slotted([slot=left]:last-child) {\n border-bottom-left-radius: var(--ha-card-border-radius, 4px);\n}\n\n::slotted([slot=bottom]:last-child),\n::slotted([slot=right]:last-child) {\n border-bottom-right-radius: var(--ha-card-border-radius, 4px);\n}")}};Yk=e([le("frigate-card-overlay")],Yk);class Kk{constructor(e){this._config=null,this._popupTimer=new xf,this._items=[],this._host=e}getRenderItems(){return this._items}setItems(e){const t=e.filter((e=>!!e.exclusive)),n=Ev(t.length?t:e,(e=>e.priority??50),"desc"),a=this._getSufficientValues(this._items),i=this._getSufficientValues(n);this._items=n,"popup"!==this._config?.style||Dv(a,i)||(this._show(),this._popupTimer.start(this._config.popup_seconds,(()=>this._hide()))),this._host.requestUpdate()}setConfig(e){this._config=e,this._host.style.setProperty("--frigate-card-status-bar-height",`${e.height}px`),this._host.setAttribute("data-style",e.style),this._host.setAttribute("data-position",e.position),"popup"!==this._config?.style&&this._show(),this._host.requestUpdate()}shouldRender(){return this._items.some((e=>!1!==e.enabled&&e.sufficient))}actionHandler(e,t){e.stopPropagation();const n=yf(e.detail.action,t);n&&Fk(this._host,{action:Wg(n),config:t})}_getSufficientValue(e){ +/* istanbul ignore else: cannot happen -- @preserve */ +return"custom:frigate-card-status-bar-icon"===e.type?e.icon:"custom:frigate-card-status-bar-string"===e.type?e.string:"custom:frigate-card-status-bar-image"===e.type?e.image:null}_getSufficientValues(e){return e.filter((e=>!1!==e.enabled&&e.sufficient)).map((e=>this._getSufficientValue(e)))}_show(){of(this._host,!1,"hide")}_hide(){of(this._host,!0,"hide")}}let Xk=class extends se{constructor(){super(...arguments),this._controller=new Kk(this)}willUpdate(e){e.has("config")&&this.config&&this._controller.setConfig(this.config),e.has("items")&&this._controller.setItems(this.items??[])}render(){if(this._controller.shouldRender())return q` +
+ ${this._controller.getRenderItems().map((e=>{if(!1===e.enabled)return;const t=_e({item:!0,expand:!!e.expand,action:!!Object.keys(e.actions??{}).length}),n=kf({hasHold:bf(e.actions?.hold_action),hasDoubleClick:bf(e.actions?.double_tap_action)});if("custom:frigate-card-status-bar-string"===e.type)return q`
this._controller.actionHandler(t,e.actions)} + > + ${e.string} +
`;if("custom:frigate-card-status-bar-icon"===e.type){const a=Uk(e.icon);return a?q`this._controller.actionHandler(t,e.actions)} + />`:q`this._controller.actionHandler(t,e.actions)} + >`}return"custom:frigate-card-status-bar-image"===e.type?q`this._controller.actionHandler(t,e.actions)} + />`:void 0}))} +
+ `}static get styles(){return o("ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n --mdc-icon-button-size: calc(var(--frigate-card-status-bar-height) - 6px);\n --mdc-icon-size: calc(var(--mdc-icon-button-size) / 2);\n display: block;\n width: 100%;\n pointer-events: auto;\n opacity: 1;\n transition: opacity 1s;\n}\n\n/*******************************************************\n * Non-hover styles should not interact with the pointer\n *******************************************************/\n:host(:not([data-style*=hover])) {\n pointer-events: none;\n}\n\n/***************\n * Outside style\n ***************/\n:host([data-style=outside]) {\n color: var(--primary-text-color);\n background: var(--secondary-background-color);\n}\n\n/*******************\n * Non-outside style\n *******************/\n:host(:not([data-style=outside])) {\n color: white;\n background: linear-gradient(90deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n}\n\n:host([data-style=popup][hide]) {\n opacity: 0;\n}\n\n/*********************\n * Status bar contents\n *********************/\n.status {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n overflow: hidden;\n width: 100%;\n height: var(--frigate-card-status-bar-height);\n}\n\n.item {\n display: inline-block;\n margin: 3px;\n padding: 3px;\n align-content: center;\n opacity: 0.7;\n}\n\n.item:first-child {\n margin-left: 10px;\n}\n\n.item:last-child {\n margin-right: 10px;\n}\n\n.item.expand {\n flex: 1;\n}\n\n.item.action {\n cursor: pointer;\n}\n\nimg.item {\n width: var(--mdc-icon-size, 24px);\n height: var(--mdc-icon-size, 24px);\n}")}};e([he({attribute:!1})],Xk.prototype,"items",void 0),e([he({attribute:!1})],Xk.prototype,"config",void 0),Xk=e([le("frigate-card-status-bar")],Xk);function Jk(e){return"number"==typeof e}function eS(e){return"string"==typeof e}function tS(e){return"boolean"==typeof e}function nS(e){return"[object Object]"===Object.prototype.toString.call(e)}function aS(e){return Math.abs(e)}function iS(e){return Math.sign(e)}function rS(e,t){return aS(e-t)}function oS(e){return uS(e).map(Number)}function sS(e){return e[cS(e)]}function cS(e){return Math.max(0,e.length-1)}function lS(e,t){return t===cS(e)}function dS(e,t=0){return Array.from(Array(e),((e,n)=>t+n))}function uS(e){return Object.keys(e)}function hS(e,t){return[e,t].reduce(((e,t)=>(uS(t).forEach((n=>{const a=e[n],i=t[n],r=nS(a)&&nS(i);e[n]=r?hS(a,i):i})),e)),{})}function pS(e,t){return void 0!==t.MouseEvent&&e instanceof t.MouseEvent}function mS(){let e=[];const t={add:function(n,a,i,r={passive:!0}){let o;if("addEventListener"in n)n.addEventListener(a,i,r),o=()=>n.removeEventListener(a,i,r);else{const e=n;e.addListener(i),o=()=>e.removeListener(i)}return e.push(o),t},clear:function(){e=e.filter((e=>e()))}};return t}function gS(e,t,n,a){const i=mS(),r=1e3/60;let o=null,s=0,c=0;function l(e){if(!c)return;o||(o=e);const i=e-o;for(o=e,s+=i;s>=r;)n(r),s-=r;a(s/r),c&&t.requestAnimationFrame(l)}function d(){t.cancelAnimationFrame(c),o=null,s=0,c=0}return{init:function(){i.add(e,"visibilitychange",(()=>{e.hidden&&(o=null,s=0)}))},destroy:function(){d(),i.clear()},start:function(){c||(c=t.requestAnimationFrame(l))},stop:d,update:()=>n(r),render:a}}function fS(e=0,t=0){const n=aS(e-t);function a(t){return tt}function r(e){return a(e)||i(e)}const o={length:n,max:t,min:e,constrain:function(n){return r(n)?a(n)?e:t:n},reachedAny:r,reachedMax:i,reachedMin:a,removeOffset:function(e){return n?e-n*Math.ceil((e-t)/n):e}};return o}function _S(e,t,n){const{constrain:a}=fS(0,e),i=e+1;let r=o(t);function o(e){return n?aS((i+e)%i):a(e)}function s(){return r}function c(){return _S(e,s(),n)}const l={get:s,set:function(e){return r=o(e),l},add:function(e){return c().set(s()+e)},clone:c};return l}function vS(e,t,n,a,i,r,o,s,c,l,d,u,h,p,m,g,f,_,v){const{cross:y,direction:b}=e,w=["INPUT","SELECT","TEXTAREA"],x={passive:!1},C=mS(),M=mS(),k=fS(50,225).constrain(p.measure(20)),S={mouse:300,touch:400},E={mouse:500,touch:600},$=m?43:25;let A=!1,z=0,I=0,T=!1,j=!1,O=!1,D=!1;function R(e){if(!pS(e,a)&&e.touches.length>=2)return P(e);const t=r.readPoint(e),n=r.readPoint(e,y),o=rS(t,z),c=rS(n,I);if(!j&&!D){if(!e.cancelable)return P(e);if(j=o>c,!j)return P(e)}const d=r.pointerMove(e);o>g&&(O=!0),l.useFriction(.3).useDuration(.75),s.start(),i.add(b(d)),e.preventDefault()}function P(e){const t=d.byDistance(0,!1).index!==u.get(),n=r.pointerUp(e)*(m?E:S)[D?"mouse":"touch"],a=function(e,t){const n=u.add(-1*iS(e)),a=d.byDistance(e,!m).distance;return m||aS(e)=2,s&&0!==e.button)return;if(function(e){const t=e.nodeName||"";return w.includes(t)}(e.target))return;T=!0,r.pointerDown(e),l.useFriction(0).useDuration(0),i.set(o),function(){const e=D?n:t;M.add(e,"touchmove",R,x).add(e,"touchend",P).add(e,"mousemove",R,x).add(e,"mouseup",P)}(),z=r.readPoint(e),I=r.readPoint(e,y),h.emit("pointerDown")}(s)}const c=t;C.add(c,"dragstart",(e=>e.preventDefault()),x).add(c,"touchmove",(()=>{}),x).add(c,"touchend",(()=>{})).add(c,"touchstart",s).add(c,"mousedown",s).add(c,"touchcancel",P).add(c,"contextmenu",P).add(c,"click",L,!0)},destroy:function(){C.clear(),M.clear()},pointerDown:function(){return T}}}function yS(e,t){let n,a;function i(e){return e.timeStamp}function r(n,a){const i="client"+("x"===(a||e.scroll)?"X":"Y");return(pS(n,t)?n:n.touches[0])[i]}return{pointerDown:function(e){return n=e,a=e,r(e)},pointerMove:function(e){const t=r(e)-r(a),o=i(e)-i(n)>170;return a=e,o&&(n=e),t},pointerUp:function(e){if(!n||!a)return 0;const t=r(a)-r(n),o=i(e)-i(n),s=i(e)-i(a)>170,c=t/o;return o&&!s&&aS(c)>.1?c:0},readPoint:r}}function bS(e,t,n,a,i,r,o){const s=[e].concat(a);let c,l,d=[],u=!1;function h(e){return i.measureSize(o.measure(e))}return{init:function(i){r&&(l=h(e),d=a.map(h),c=new ResizeObserver((n=>{(tS(r)||r(i,n))&&function(n){for(const r of n){if(u)return;const n=r.target===e,o=a.indexOf(r.target),s=n?l:d[o];if(aS(h(n?e:a[o])-s)>=.5){i.reInit(),t.emit("resize");break}}}(n)})),n.requestAnimationFrame((()=>{s.forEach((e=>c.observe(e)))})))},destroy:function(){u=!0,c&&c.disconnect()}}}function wS(e,t,n,a,i){const r=i.measure(10),o=i.measure(50),s=fS(.1,.99);let c=!1;function l(){return!c&&(!!e.reachedAny(n.get())&&!!e.reachedAny(t.get()))}return{shouldConstrain:l,constrain:function(i){if(!l())return;const c=e.reachedMin(t.get())?"min":"max",d=aS(e[c]-t.get()),u=n.get()-t.get(),h=s.constrain(d/o);n.subtract(u*h),!i&&aS(u)e.add(i)))}};return c}function CS(e,t,n,a,i){const{reachedAny:r,removeOffset:o,constrain:s}=a;function c(e){return e.concat().sort(((e,t)=>aS(e)-aS(t)))[0]}function l(t,a){const i=[t,t+n,t-n];if(!e)return t;if(!a)return c(i);const r=i.filter((e=>iS(e)===a));return r.length?c(r):sS(i)-n}return{byDistance:function(n,a){const c=i.get()+n,{index:d,distance:u}=function(n){const a=e?o(n):s(n),i=t.map(((e,t)=>({diff:l(e-a,0),index:t}))).sort(((e,t)=>aS(e.diff)-aS(t.diff))),{index:r}=i[0];return{index:r,distance:a}}(c),h=!e&&r(c);return!a||h?{index:d,distance:n}:{index:d,distance:n+l(t[d]-u,0)}},byIndex:function(e,n){return{index:e,distance:l(t[e]-i.get(),n)}},shortcut:l}}function MS(e,t,n,a,i,r,o,s){const c={passive:!0,capture:!0};let l=0;function d(e){"Tab"===e.code&&(l=(new Date).getTime())}return{init:function(u){s&&(r.add(document,"keydown",d,!1),t.forEach(((t,d)=>{r.add(t,"focus",(t=>{(tS(s)||s(u,t))&&function(t){if((new Date).getTime()-l>10)return;o.emit("slideFocusStart"),e.scrollLeft=0;const r=n.findIndex((e=>e.includes(t)));Jk(r)&&(i.useDuration(0),a.index(r,0),o.emit("slideFocus"))}(d)}),c)})))}}}function kS(e){let t=e;function n(e){return Jk(e)?e:e.get()}const a={get:function(){return t},set:function(e){t=n(e)},add:function(e){t+=n(e)},subtract:function(e){t-=n(e)}};return a}function SS(e,t){const n="x"===e.scroll?function(e){return`translate3d(${e}px,0px,0px)`}:function(e){return`translate3d(0px,${e}px,0px)`},a=t.style;let i=!1;return{clear:function(){i||(a.transform="",t.getAttribute("style")||t.removeAttribute("style"))},to:function(t){i||(a.transform=n(e.direction(t)))},toggleActive:function(e){i=!e}}}function ES(e,t,n,a,i,r,o,s,c){const l=.5,d=oS(i),u=oS(i).reverse(),h=function(){const e=o[0];return g(m(u,e),n,!1)}().concat(function(){const e=t-o[0]-1;return g(m(d,e),-n,!0)}());function p(e,t){return e.reduce(((e,t)=>e-i[t]),t)}function m(e,t){return e.reduce(((e,n)=>p(e,t)>0?e.concat([n]):e),[])}function g(i,o,d){const u=function(e){return r.map(((n,i)=>({start:n-a[i]+l+e,end:n+t-l+e})))}(o);return i.map((t=>{const a=d?0:-n,i=d?n:0,r=d?"end":"start",o=u[t][r];return{index:t,loopPoint:o,slideLocation:kS(-1),translate:SS(e,c[t]),target:()=>s.get()>o?a:i}}))}const f={canLoop:function(){return h.every((({index:e})=>{const n=d.filter((t=>t!==e));return p(n,t)<=.1}))},clear:function(){h.forEach((e=>e.translate.clear()))},loop:function(){h.forEach((e=>{const{target:t,translate:n,slideLocation:a}=e,i=t();i!==a.get()&&(n.to(i),a.set(i))}))},loopPoints:h};return f}function $S(e,t,n){let a,i=!1;return{init:function(r){n&&(a=new MutationObserver((e=>{i||(tS(n)||n(r,e))&&function(e){for(const n of e)if("childList"===n.type){r.reInit(),t.emit("slidesChanged");break}}(e)})),a.observe(e,{childList:!0}))},destroy:function(){a&&a.disconnect(),i=!0}}}function AS(e,t,n,a){const i={};let r,o=null,s=null,c=!1;return{init:function(){r=new IntersectionObserver((e=>{c||(e.forEach((e=>{const n=t.indexOf(e.target);i[n]=e})),o=null,s=null,n.emit("slidesInView"))}),{root:e.parentElement,threshold:a}),t.forEach((e=>r.observe(e)))},destroy:function(){r&&r.disconnect(),c=!0},get:function(e=!0){if(e&&o)return o;if(!e&&s)return s;const t=function(e){return uS(i).reduce(((t,n)=>{const a=parseInt(n),{isIntersecting:r}=i[a];return(e&&r||!e&&!r)&&t.push(a),t}),[])}(e);return e&&(o=t),e||(s=t),t}}}function zS(e,t,n,a,i,r,o,s,c){const{startEdge:l,endEdge:d,direction:u}=e,h=Jk(n);const p={groupSlides:function(e){return h?function(e,t){return oS(e).filter((e=>e%t==0)).map((n=>e.slice(n,n+t)))}(e,n):function(e){return e.length?oS(e).reduce(((n,h,p)=>{const m=sS(n)||0,g=0===m,f=h===cS(e),_=i[l]-r[m][l],v=i[l]-r[h][d],y=!a&&g?u(o):0,b=aS(v-(!a&&f?u(s):0)-(_+y));return p&&b>t+c&&n.push(h),f&&n.push(e.length),n}),[]).map(((t,n,a)=>{const i=Math.max(a[n-1]||0);return e.slice(i,t)})):[]}(e)}};return p}function IS(e,t,n,a,i,r,o){const{align:s,axis:c,direction:l,startIndex:d,loop:u,duration:h,dragFree:p,dragThreshold:m,inViewThreshold:g,slidesToScroll:f,skipSnaps:_,containScroll:v,watchResize:y,watchSlides:b,watchDrag:w,watchFocus:x}=r,C={measure:function(e){const{offsetTop:t,offsetLeft:n,offsetWidth:a,offsetHeight:i}=e;return{top:t,right:n+a,bottom:t+i,left:n,width:a,height:i}}},M=C.measure(t),k=n.map(C.measure),S=function(e,t){const n="rtl"===t,a="y"===e,i=!a&&n?-1:1,r={scroll:a?"y":"x",cross:a?"x":"y",startEdge:a?"top":n?"right":"left",endEdge:a?"bottom":n?"left":"right",measureSize:function(e){const{height:t,width:n}=e;return a?t:n},direction:function(e){return e*i}};return r}(c,l),E=S.measureSize(M),$=function(e){const t={measure:function(t){return e*(t/100)}};return t}(E),A=function(e,t){const n={start:function(){return 0},center:function(e){return a(e)/2},end:a};function a(e){return t-e}const i={measure:function(a,i){return eS(e)?n[e](a):e(t,a,i)}};return i}(s,E),z=!u&&!!v,I=u||!!v,{slideSizes:T,slideSizesWithGaps:j,startGap:O,endGap:D}=function(e,t,n,a,i,r){const{measureSize:o,startEdge:s,endEdge:c}=e,l=n[0]&&i,d=function(){if(!l)return 0;const e=n[0];return aS(t[s]-e[s])}(),u=function(){if(!l)return 0;const e=r.getComputedStyle(sS(a));return parseFloat(e.getPropertyValue(`margin-${c}`))}(),h=n.map(o),p=n.map(((e,t,n)=>{const a=!t,i=lS(n,t);return a?h[t]+d:i?h[t]+u:n[t+1][s]-e[s]})).map(aS);return{slideSizes:h,slideSizesWithGaps:p,startGap:d,endGap:u}}(S,M,k,n,I,i),R=zS(S,E,f,u,M,k,O,D,2),{snaps:P,snapsAligned:L}=function(e,t,n,a,i){const{startEdge:r,endEdge:o}=e,{groupSlides:s}=i,c=s(a).map((e=>sS(e)[o]-e[0][r])).map(aS).map(t.measure),l=a.map((e=>n[r]-e[r])).map((e=>-aS(e))),d=s(l).map((e=>e[0])).map(((e,t)=>e+c[t]));return{snaps:l,snapsAligned:d}}(S,A,M,k,R),N=-sS(P)+sS(j),{snapsContained:F,scrollContainLimit:V}=function(e,t,n,a,i){const r=fS(-t+e,0),o=n.map(((e,t)=>{const{min:a,max:i}=r,o=r.constrain(e),s=!t,l=lS(n,t);return s?i:l||c(a,o)?a:c(i,o)?i:o})).map((e=>parseFloat(e.toFixed(3)))),s=function(){const e=o[0],t=sS(o);return fS(o.lastIndexOf(e),o.indexOf(t)+1)}();function c(e,t){return rS(e,t)<1}return{snapsContained:function(){if(t<=e+i)return[r.max];if("keepSnaps"===a)return o;const{min:n,max:c}=s;return o.slice(n,c)}(),scrollContainLimit:s}}(E,N,L,v,2),H=z?F:L,{limit:B}=function(e,t,n){const a=t[0];return{limit:fS(n?a-e:sS(t),a)}}(N,H,u),q=_S(cS(H),d,u),U=q.clone(),W=oS(n),Z=gS(a,i,(e=>(({dragHandler:e,scrollBody:t,scrollBounds:n,options:{loop:a}},i)=>{a||n.constrain(e.pointerDown()),t.seek(i)})(se,e)),(e=>(({scrollBody:e,translate:t,location:n,offsetLocation:a,scrollLooper:i,slideLooper:r,dragHandler:o,animation:s,eventHandler:c,scrollBounds:l,options:{loop:d}},u)=>{const h=e.settled(),p=!l.shouldConstrain(),m=d?h:h&&p;m&&!o.pointerDown()&&(s.stop(),c.emit("settle")),m||c.emit("scroll");const g=n.get()*u+Y.get()*(1-u);a.set(g),d&&(i.loop(e.direction()),r.loop()),t.to(a.get())})(se,e))),Q=H[q.get()],G=kS(Q),Y=kS(Q),K=kS(Q),X=kS(Q),J=function(e,t,n,a,i,r){let o=0,s=0,c=i,l=r,d=e.get(),u=0;function h(e){return c=e,m}function p(e){return l=e,m}const m={direction:function(){return s},duration:function(){return c},velocity:function(){return o},seek:function(t){const i=t/1e3,r=c*i,h=a.get()-e.get();let p=0;return c?(n.set(e),o+=h/r,o*=l,d+=o,e.add(o*i),p=d-u):(o=0,n.set(a),e.set(a),p=h),s=iS(p),u=d,m},settled:function(){return aS(a.get()-t.get())<.001},useBaseFriction:function(){return p(r)},useBaseDuration:function(){return h(i)},useFriction:p,useDuration:h};return m}(G,K,Y,X,h,.68),ee=CS(u,H,N,B,X),te=function(e,t,n,a,i,r,o){function s(i){const s=i.distance,c=i.index!==t.get();r.add(s),s&&(a.duration()?e.start():(e.update(),e.render(1),e.update())),c&&(n.set(t.get()),t.set(i.index),o.emit("select"))}const c={distance:function(e,t){s(i.byDistance(e,t))},index:function(e,n){const a=t.clone().set(e);s(i.byIndex(a.get(),n))}};return c}(Z,q,U,J,ee,X,o),ne=function(e){const{max:t,length:n}=e,a={get:function(e){return n?(e-t)/-n:0}};return a}(B),ae=mS(),ie=AS(t,n,o,g),{slideRegistry:re}=function(e,t,n,a,i,r){const{groupSlides:o}=i,{min:s,max:c}=a;return{slideRegistry:function(){const a=o(r),i=!e||"keepSnaps"===t;return 1===n.length?[r]:i?a:a.slice(s,c).map(((e,t,n)=>{const a=!t,i=lS(n,t);return a?dS(sS(n[0])+1):i?dS(cS(r)-sS(n)[0]+1,sS(n)[0]):e}))}()}}(z,v,H,V,R,W),oe=MS(e,n,re,te,J,ae,o,x),se={ownerDocument:a,ownerWindow:i,eventHandler:o,containerRect:M,slideRects:k,animation:Z,axis:S,dragHandler:vS(S,e,a,i,X,yS(S,i),G,Z,te,J,ee,q,o,$,p,m,_,.68,w),eventStore:ae,percentOfView:$,index:q,indexPrevious:U,limit:B,location:G,offsetLocation:K,previousLocation:Y,options:r,resizeHandler:bS(t,o,i,n,S,y,C),scrollBody:J,scrollBounds:wS(B,K,X,J,$),scrollLooper:xS(N,B,K,[G,K,Y,X]),scrollProgress:ne,scrollSnapList:H.map(ne.get),scrollSnaps:H,scrollTarget:ee,scrollTo:te,slideLooper:ES(S,E,N,T,j,P,H,K,n),slideFocus:oe,slidesHandler:$S(t,o,b),slidesInView:ie,slideIndexes:W,slideRegistry:re,slidesToScroll:R,target:X,translate:SS(S,t)};return se}const TS={align:"center",axis:"x",container:null,slides:null,containScroll:"trimSnaps",direction:"ltr",slidesToScroll:1,inViewThreshold:0,breakpoints:{},dragFree:!1,dragThreshold:10,loop:!1,skipSnaps:!1,duration:25,startIndex:0,active:!0,watchDrag:!0,watchResize:!0,watchSlides:!0,watchFocus:!0};function jS(e){function t(e,t){return hS(e,t||{})}const n={mergeOptions:t,optionsAtMedia:function(n){const a=n.breakpoints||{},i=uS(a).filter((t=>e.matchMedia(t).matches)).map((e=>a[e])).reduce(((e,n)=>t(e,n)),{});return t(n,i)},optionsMediaQueries:function(t){return t.map((e=>uS(e.breakpoints||{}))).reduce(((e,t)=>e.concat(t)),[]).map(e.matchMedia)}};return n}function OS(e,t,n){const a=e.ownerDocument,i=a.defaultView,r=jS(i),o=function(e){let t=[];const n={init:function(n,a){return t=a.filter((({options:t})=>!1!==e.optionsAtMedia(t).active)),t.forEach((t=>t.init(n,e))),a.reduce(((e,t)=>Object.assign(e,{[t.name]:t})),{})},destroy:function(){t=t.filter((e=>e.destroy()))}};return n}(r),s=mS(),c=function(){let e,t={};function n(e){return t[e]||[]}const a={init:function(t){e=t},emit:function(t){return n(t).forEach((n=>n(e,t))),a},off:function(e,i){return t[e]=n(e).filter((e=>e!==i)),a},on:function(e,i){return t[e]=n(e).concat([i]),a},clear:function(){t={}}};return a}(),{mergeOptions:l,optionsAtMedia:d,optionsMediaQueries:u}=r,{on:h,off:p,emit:m}=c,g=S;let f,_,v,y,b=!1,w=l(TS,OS.globalOptions),x=l(w),C=[];function M(t){const n=IS(e,v,y,a,i,t,c);if(t.loop&&!n.slideLooper.canLoop()){return M(Object.assign({},t,{loop:!1}))}return n}function k(t,n){b||(w=l(w,t),x=d(w),C=n||C,function(){const{container:t,slides:n}=x,a=eS(t)?e.querySelector(t):t;v=a||e.children[0];const i=eS(n)?v.querySelectorAll(n):n;y=[].slice.call(i||v.children)}(),f=M(x),u([w,...C.map((({options:e})=>e))]).forEach((e=>s.add(e,"change",S))),x.active&&(f.translate.to(f.location.get()),f.animation.init(),f.slidesInView.init(),f.slideFocus.init(z),f.eventHandler.init(z),f.resizeHandler.init(z),f.slidesHandler.init(z),f.options.loop&&f.slideLooper.loop(),v.offsetParent&&y.length&&f.dragHandler.init(z),_=o.init(z,C)))}function S(e,t){const n=A();E(),k(l({startIndex:n},e),t),c.emit("reInit")}function E(){f.dragHandler.destroy(),f.eventStore.clear(),f.translate.clear(),f.slideLooper.clear(),f.resizeHandler.destroy(),f.slidesHandler.destroy(),f.slidesInView.destroy(),f.animation.destroy(),o.destroy(),s.clear()}function $(e,t,n){x.active&&!b&&(f.scrollBody.useBaseFriction().useDuration(!0===t?0:x.duration),f.scrollTo.index(e,n||0))}function A(){return f.index.get()}const z={canScrollNext:function(){return f.index.add(1).get()!==A()},canScrollPrev:function(){return f.index.add(-1).get()!==A()},containerNode:function(){return v},internalEngine:function(){return f},destroy:function(){b||(b=!0,s.clear(),E(),c.emit("destroy"),c.clear())},off:p,on:h,emit:m,plugins:function(){return _},previousScrollSnap:function(){return f.indexPrevious.get()},reInit:g,rootNode:function(){return e},scrollNext:function(e){$(f.index.add(1).get(),e,-1)},scrollPrev:function(e){$(f.index.add(-1).get(),e,1)},scrollProgress:function(){return f.scrollProgress.get(f.location.get())},scrollSnapList:function(){return f.scrollSnapList},scrollTo:$,selectedScrollSnap:A,slideNodes:function(){return y},slidesInView:function(){return f.slidesInView.get()},slidesNotInView:function(){return f.slidesInView.get(!1)}};return k(t,n),setTimeout((()=>c.emit("init")),0),z}function DS(){return DS=Object.assign||function(e){for(var t=1;t=e;case"y":return Math.abs(i)>=e;case"z":return Math.abs(r)>=e;default:return!1}}(r,a)&&e.preventDefault(),l.isStarted?l.isMomentum&&r>Math.max(2,2*l.lastAbsDelta)&&(M(!0),x()):x(),0===r&&Object.is&&Object.is(e.deltaX,-0)?d=!0:(t=e,l.axisMovement=PS(l.axisMovement,a),l.lastAbsDelta=r,l.scrollPointsToMerge.push({axisDelta:a,timeStamp:i}),g(),p({axisDelta:a,isStart:!l.isStartPublished}),l.isStartPublished=!0,C())},g=function(){var e;l.scrollPointsToMerge.length===US?(l.scrollPoints.unshift({axisDeltaSum:l.scrollPointsToMerge.map((function(e){return e.axisDelta})).reduce(PS),timeStamp:(e=l.scrollPointsToMerge.map((function(e){return e.timeStamp})),e.reduce((function(e,t){return e+t}))/e.length)}),_(),l.scrollPointsToMerge.length=0,l.scrollPoints.length=1,l.isMomentum||b()):l.isStartPublished||f()},f=function(){var e;l.axisVelocity=(e=l.scrollPointsToMerge,e[e.length-1]).axisDelta.map((function(e){return e/l.willEndTimeout}))},_=function(){var e=l.scrollPoints,t=e[0],n=e[1];if(n&&t){var a=t.timeStamp-n.timeStamp;if(!(a<=0)){var i=t.axisDeltaSum.map((function(e){return e/a})),r=i.map((function(e,t){return e/(l.axisVelocity[t]||1)}));l.axisVelocity=i,l.accelerationFactors.push(r),v(a)}}},v=function(e){var t=10*Math.ceil(e/10)*1.2;l.isMomentum||(t=Math.max(100,2*t)),l.willEndTimeout=Math.min(1e3,Math.round(t))},y=function(e){return 0===e||e<=qS&&e>=BS},b=function(){if(l.accelerationFactors.length>=WS){if(d&&(d=!1,LS(l.axisVelocity)>=.2))return void w();var e=l.accelerationFactors.slice(-1*WS);e.every((function(e){var t=!!e.reduce((function(e,t){return e&&e<1&&e===t?1:0})),n=e.filter(y).length===e.length;return t||n}))&&w(),l.accelerationFactors=e}},w=function(){l.isMomentum=!0},x=function(){(l=GS()).isStarted=!0,l.startTime=Date.now(),n=void 0,d=!1},C=function(){clearTimeout(a),a=setTimeout(M,l.willEndTimeout)},M=function(e){void 0===e&&(e=!1),l.isStarted&&(l.isMomentum&&e?p({isEnding:!0,isMomentumCancel:!0}):p({isEnding:!0}),l.isMomentum=!1,l.isStarted=!1)},k=function(e){var t=[],n=function(n){n.removeEventListener("wheel",e),t=t.filter((function(e){return e!==n}))};return NS({observe:function(a){return a.addEventListener("wheel",e,{passive:!1}),t.push(a),function(){return n(a)}},unobserve:n,disconnect:function(){t.forEach(n)}})}(u),S=k.observe,E=k.unobserve,$=k.disconnect;return h(e),NS({on:r,off:o,observe:S,unobserve:E,disconnect:$,feedWheel:u,updateOptions:h})}var KS={active:!0,breakpoints:{},wheelDraggingClass:"is-wheel-dragging",forceWheelAxis:void 0,target:void 0};function XS(e){var t;void 0===e&&(e={});var n=function(){};var a={name:"wheelGestures",options:e,init:function(a,i){var r,o,s=i.mergeOptions,c=i.optionsAtMedia,l=s(KS,XS.globalOptions),d=s(l,e);t=c(d);var u,h=a.internalEngine(),p=null!=(r=t.target)?r:a.containerNode().parentNode,m=null!=(o=t.forceWheelAxis)?o:h.options.axis,g=YS({preventWheelAction:m,reverseSign:[!0,!0,!1]}),f=g.observe(p),_=g.on("wheel",(function(e){var a=e.axisDelta,i=a[0],r=a[1],o="x"===m?i:r,s="x"===m?r:i,c=e.isMomentum&&e.previous&&!e.previous.isMomentum,l=e.isEnding&&!e.isMomentum||c;Math.abs(o)>Math.abs(s)&&!v&&!e.isMomentum&&function(e){try{x(u=new MouseEvent("mousedown",e.event))}catch(e){return n()}v=!0,document.documentElement.addEventListener("mousemove",b,!0),document.documentElement.addEventListener("mouseup",b,!0),void document.documentElement.addEventListener("mousedown",b,!0),t.wheelDraggingClass&&p.classList.add(t.wheelDraggingClass)}(e);if(!v)return;l?function(e){v=!1,x(w("mouseup",e)),y(),t.wheelDraggingClass&&p.classList.remove(t.wheelDraggingClass)}(e):x(w("mousemove",e))})),v=!1;function y(){document.documentElement.removeEventListener("mousemove",b,!0),document.documentElement.removeEventListener("mouseup",b,!0),document.documentElement.removeEventListener("mousedown",b,!0)}function b(e){v&&e.isTrusted&&e.stopImmediatePropagation()}function w(e,t){var n,a;if(m===h.options.axis){var i=t.axisMovement;n=i[0],a=i[1]}else{var r=t.axisMovement;a=r[0],n=r[1]}if(!h.options.skipSnaps&&!h.options.dragFree){var o=h.containerRect.width,s=h.containerRect.height;n=n<0?Math.max(n,-o):Math.min(n,o),a=a<0?Math.max(a,-s):Math.min(a,s)}return new MouseEvent(e,{clientX:u.clientX+n,clientY:u.clientY+a,screenX:u.screenX+n,screenY:u.screenY+a,movementX:n,movementY:a,button:0,bubbles:!0,cancelable:!0,composed:!0})}function x(e){a.containerNode().dispatchEvent(e)}n=function(){f(),_(),y()}},destroy:function(){return n()}};return a}XS.globalOptions=void 0;class JS{constructor(e,t,n){this._mutationObserver=new MutationObserver(((e,t)=>this._refreshCarouselContents())),this._refreshCarouselContents=()=>{const e=lf(this._parent);!Dv(this._carousel.slideNodes(),e)&&(this._carousel.destroy(),this._carousel=this._createCarousel(e))},this._root=e,this._parent=t,this._direction=n?.direction??"horizontal",this._transitionEffect=n?.transitionEffect??"slide",this._startIndex=n?.startIndex??0,this._dragFree=n?.dragFree??!1,this._loop=n?.loop??!1,this._draggable=n?.dragEnabled??!0,this._plugins=n?.plugins??[],this._carousel=this._createCarousel(lf(this._parent)),t instanceof HTMLSlotElement&&t.addEventListener("slotchange",this._refreshCarouselContents),this._mutationObserver.observe(this._parent,{childList:!0})}destroy(){this._parent instanceof HTMLSlotElement&&this._parent.removeEventListener("slotchange",this._refreshCarouselContents),this._mutationObserver.disconnect(),this._carousel.destroy()}getSlide(e){return this._carousel.slideNodes()[e]??null}getSelectedSlide(){return this.getSlide(this.getSelectedIndex())}getSelectedIndex(){return this._carousel.selectedScrollSnap()}selectSlide(e){this._carousel.scrollTo(e,"none"===this._transitionEffect);const t=this.getSlide(e);t&&Bg(this._parent,"carousel:force-select",{index:e,element:t})}_createCarousel(e){const t=OS(this._root,{slides:e,axis:"horizontal"===this._direction?"x":"y",duration:20,startIndex:this._startIndex,dragFree:this._dragFree,loop:this._loop,containScroll:"trimSnaps",watchSlides:!1,watchResize:!0,watchDrag:this._draggable},[...this._plugins,...e.length>1?[XS({forceWheelAxis:"y"})]:[]]),n=()=>{const e=(()=>{const e=t.selectedScrollSnap(),n=t.slideNodes()[e]??null;return n?{index:e,element:n}:null})();e&&Bg(this._parent,"carousel:select",e)};return t.on("select",(()=>n())),t}}let eE=class extends se{constructor(){super(...arguments),this.direction="horizontal",this.dragEnabled=!0,this.selected=0,this._refParent=ze(),this._refRoot=ze(),this._carousel=null}connectedCallback(){super.connectedCallback(),this.requestUpdate()}disconnectedCallback(){this._carousel?.destroy(),this._carousel=null,super.disconnectedCallback()}willUpdate(e){e.has("direction")&&this.setAttribute("direction",this.direction);["direction","dragEnabled","dragFree","loop","plugins","transitionEffect"].some((t=>e.has(t)))&&(this._carousel?.destroy(),this._carousel=null)}render(){return q`
+ +
+
+ +
+
+ +
`}updated(e){!this._carousel&&this._refRoot.value&&this._refParent.value?this._carousel=new JS(this._refRoot.value,this._refParent.value,{direction:this.direction,dragEnabled:this.dragEnabled,dragFree:this.dragFree,startIndex:this.selected,transitionEffect:this.transitionEffect,loop:this.loop,plugins:this.plugins}):e.has("selected")&&this._carousel?.selectSlide(this.selected)}static get styles(){return o(":host {\n display: block;\n height: 100%;\n width: 100%;\n position: relative;\n}\n\n.embla {\n width: 100%;\n height: 100%;\n margin-left: auto;\n margin-right: auto;\n}\n\n.embla__container {\n display: flex;\n width: 100%;\n height: 100%;\n user-select: none;\n -webkit-touch-callout: none;\n -khtml-user-select: none;\n -webkit-tap-highlight-color: transparent;\n}\n\n:host([direction=vertical]) .embla__container {\n flex-direction: column;\n}\n\n:host([direction=horizontal]) .embla__container {\n flex-direction: row;\n}\n\n.embla__viewport {\n width: 100%;\n height: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n.embla__viewport.is-draggable {\n cursor: move;\n cursor: grab;\n}\n\n.embla__viewport.is-dragging {\n cursor: grabbing;\n}\n\n:host([direction=vertical]) ::slotted(.embla__slide) {\n margin-bottom: 5px;\n}\n\n:host([direction=horizontal]) ::slotted(.embla__slide) {\n margin-right: 5px;\n}")}};e([he({attribute:!0,reflect:!0})],eE.prototype,"direction",void 0),e([he({attribute:!0})],eE.prototype,"transitionEffect",void 0),e([he({attribute:!1})],eE.prototype,"loop",void 0),e([he({attribute:!1})],eE.prototype,"dragFree",void 0),e([he({attribute:!1})],eE.prototype,"dragEnabled",void 0),e([he({attribute:!1})],eE.prototype,"plugins",void 0),e([he({attribute:!1})],eE.prototype,"selected",void 0),eE=e([le("frigate-card-carousel")],eE); +/** + * @license + * Copyright 2019 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const tE=window,nE=tE.ShadowRoot&&(void 0===tE.ShadyCSS||tE.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,aE=Symbol(),iE=new WeakMap;let rE=class{constructor(e,t,n){if(this._$cssResult$=!0,n!==aE)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(nE&&void 0===e){const n=void 0!==t&&1===t.length;n&&(e=iE.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),n&&iE.set(t,e))}return e}toString(){return this.cssText}};const oE=(e,t)=>{nE?e.adoptedStyleSheets=t.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet)):t.forEach((t=>{const n=document.createElement("style"),a=tE.litNonce;void 0!==a&&n.setAttribute("nonce",a),n.textContent=t.cssText,e.appendChild(n)}))},sE=nE?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const n of e.cssRules)t+=n.cssText;return(e=>new rE("string"==typeof e?e:e+"",void 0,aE))(t)})(e):e +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */;var cE;const lE=window,dE=lE.trustedTypes,uE=dE?dE.emptyScript:"",hE=lE.reactiveElementPolyfillSupport,pE={toAttribute(e,t){switch(t){case Boolean:e=e?uE:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let n=e;switch(t){case Boolean:n=null!==e;break;case Number:n=null===e?null:Number(e);break;case Object:case Array:try{n=JSON.parse(e)}catch(e){n=null}}return n}},mE=(e,t)=>t!==e&&(t==t||e==e),gE={attribute:!0,type:String,converter:pE,reflect:!1,hasChanged:mE},fE="finalized";class _E extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(e){var t;this.finalize(),(null!==(t=this.h)&&void 0!==t?t:this.h=[]).push(e)}static get observedAttributes(){this.finalize();const e=[];return this.elementProperties.forEach(((t,n)=>{const a=this._$Ep(n,t);void 0!==a&&(this._$Ev.set(a,n),e.push(a))})),e}static createProperty(e,t=gE){if(t.state&&(t.attribute=!1),this.finalize(),this.elementProperties.set(e,t),!t.noAccessor&&!this.prototype.hasOwnProperty(e)){const n="symbol"==typeof e?Symbol():"__"+e,a=this.getPropertyDescriptor(e,n,t);void 0!==a&&Object.defineProperty(this.prototype,e,a)}}static getPropertyDescriptor(e,t,n){return{get(){return this[t]},set(a){const i=this[e];this[t]=a,this.requestUpdate(e,i,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)||gE}static finalize(){if(this.hasOwnProperty(fE))return!1;this[fE]=!0;const e=Object.getPrototypeOf(this);if(e.finalize(),void 0!==e.h&&(this.h=[...e.h]),this.elementProperties=new Map(e.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){const e=this.properties,t=[...Object.getOwnPropertyNames(e),...Object.getOwnPropertySymbols(e)];for(const n of t)this.createProperty(n,e[n])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const n=new Set(e.flat(1/0).reverse());for(const e of n)t.unshift(sE(e))}else void 0!==e&&t.push(sE(e));return t}static _$Ep(e,t){const n=t.attribute;return!1===n?void 0:"string"==typeof n?n:"string"==typeof e?e.toLowerCase():void 0}_$Eu(){var e;this._$E_=new Promise((e=>this.enableUpdating=e)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(e=this.constructor.h)||void 0===e||e.forEach((e=>e(this)))}addController(e){var t,n;(null!==(t=this._$ES)&&void 0!==t?t:this._$ES=[]).push(e),void 0!==this.renderRoot&&this.isConnected&&(null===(n=e.hostConnected)||void 0===n||n.call(e))}removeController(e){var t;null===(t=this._$ES)||void 0===t||t.splice(this._$ES.indexOf(e)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((e,t)=>{this.hasOwnProperty(t)&&(this._$Ei.set(t,this[t]),delete this[t])}))}createRenderRoot(){var e;const t=null!==(e=this.shadowRoot)&&void 0!==e?e:this.attachShadow(this.constructor.shadowRootOptions);return oE(t,this.constructor.elementStyles),t}connectedCallback(){var e;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostConnected)||void 0===t?void 0:t.call(e)}))}enableUpdating(e){}disconnectedCallback(){var e;null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostDisconnected)||void 0===t?void 0:t.call(e)}))}attributeChangedCallback(e,t,n){this._$AK(e,n)}_$EO(e,t,n=gE){var a;const i=this.constructor._$Ep(e,n);if(void 0!==i&&!0===n.reflect){const r=(void 0!==(null===(a=n.converter)||void 0===a?void 0:a.toAttribute)?n.converter:pE).toAttribute(t,n.type);this._$El=e,null==r?this.removeAttribute(i):this.setAttribute(i,r),this._$El=null}}_$AK(e,t){var n;const a=this.constructor,i=a._$Ev.get(e);if(void 0!==i&&this._$El!==i){const e=a.getPropertyOptions(i),r="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==(null===(n=e.converter)||void 0===n?void 0:n.fromAttribute)?e.converter:pE;this._$El=i,this[i]=r.fromAttribute(t,e.type),this._$El=null}}requestUpdate(e,t,n){let a=!0;void 0!==e&&(((n=n||this.constructor.getPropertyOptions(e)).hasChanged||mE)(this[e],t)?(this._$AL.has(e)||this._$AL.set(e,t),!0===n.reflect&&this._$El!==e&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(e,n))):a=!1),!this.isUpdatePending&&a&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(e){Promise.reject(e)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var e;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((e,t)=>this[t]=e)),this._$Ei=void 0);let t=!1;const n=this._$AL;try{t=this.shouldUpdate(n),t?(this.willUpdate(n),null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostUpdate)||void 0===t?void 0:t.call(e)})),this.update(n)):this._$Ek()}catch(e){throw t=!1,this._$Ek(),e}t&&this._$AE(n)}willUpdate(e){}_$AE(e){var t;null===(t=this._$ES)||void 0===t||t.forEach((e=>{var t;return null===(t=e.hostUpdated)||void 0===t?void 0:t.call(e)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(e){return!0}update(e){void 0!==this._$EC&&(this._$EC.forEach(((e,t)=>this._$EO(t,this[t],e))),this._$EC=void 0),this._$Ek()}updated(e){}firstUpdated(e){}}_E[fE]=!0,_E.elementProperties=new Map,_E.elementStyles=[],_E.shadowRootOptions={mode:"open"},null==hE||hE({ReactiveElement:_E}),(null!==(cE=lE.reactiveElementVersions)&&void 0!==cE?cE:lE.reactiveElementVersions=[]).push("1.6.3"); +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +const vE=0,yE=Symbol();class bE{constructor(e,t,n){this.o=0,this.status=0,this.autoRun=!0,this.i=e,this.i.addController(this);const a="object"==typeof t?t:{task:t,args:n};this.t=a.task,this.h=a.args,void 0!==a.autoRun&&(this.autoRun=a.autoRun),this.taskComplete=new Promise(((e,t)=>{this.l=e,this.u=t}))}hostUpdated(){this.performTask()}async performTask(){var e;const t=null===(e=this.h)||void 0===e?void 0:e.call(this);this.shouldRun(t)&&this.run(t)}shouldRun(e){return this.autoRun&&this.v(e)}async run(e){var t;let n,a;null!=e||(e=null===(t=this.h)||void 0===t?void 0:t.call(this)),2!==this.status&&3!==this.status||(this.taskComplete=new Promise(((e,t)=>{this.l=e,this.u=t}))),this.status=1,this._=void 0,this.m=void 0,this.i.requestUpdate();const i=++this.o;try{n=await this.t(e)}catch(e){a=e}this.o===i&&(n===yE?this.status=0:(void 0===a?(this.status=2,this.l(n)):(this.status=3,this.u(a)),this.m=n,this._=a),this.i.requestUpdate())}get value(){return this.m}get error(){return this._}render(e){var t,n,a,i;switch(this.status){case 0:return null===(t=e.initial)||void 0===t?void 0:t.call(e);case 1:return null===(n=e.pending)||void 0===n?void 0:n.call(e);case 2:return null===(a=e.complete)||void 0===a?void 0:a.call(e,this.value);case 3:return null===(i=e.error)||void 0===i?void 0:i.call(e,this.error);default:this.status}}v(e){const t=this.T;return this.T=e,Array.isArray(e)&&Array.isArray(t)?e.length===t.length&&e.some(((e,n)=>mE(e,t[n]))):e!==t}}class wE{constructor(e){this._keys=e}modify(e){this._keys.forEach((t=>e.removeContext(t)))}}var xE=":host {\n display: flex;\n flex-direction: column;\n width: 100%;\n margin-left: 5px;\n padding: 5px;\n color: var(--primary-text-color);\n overflow: hidden;\n column-gap: 5%;\n}\n\ndiv.title {\n font-size: 1.2rem;\n font-weight: bold;\n}\n\ndiv.details {\n flex: 1;\n justify-content: center;\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n --mdc-icon-size: 16px;\n min-height: 0px;\n}";const CE=(e,t,n,a)=>{const i={...a?.cardWideConfig&&{cardWideConfig:a.cardWideConfig}};return q` ${t.render({initial:()=>a?.inProgressFunc?.()??xk(i),pending:()=>a?.inProgressFunc?.()??xk(i),error:t=>{Gg(t),kk(e,t)},complete:n})}`},ME=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,kE=(e,t,n,a=!0)=>new bE(e,{args:()=>[!!t(),n()],task:async([e,n])=>{const a=t();return e&&a&&n?(async(e,t)=>e&&t?t.startsWith("data:")||t.match(ME)?t:new Promise(((n,a)=>{e?e.fetchWithAuth(t).then((e=>e.blob())).then((e=>{const t=new FileReader;t.onload=()=>{const e=t.result;n("string"==typeof e?e:null)},t.onerror=e=>a(e),t.readAsDataURL(e)})):a()})):null)(a,n):null},autoRun:a}),SE=300;let EE=class extends se{constructor(){super(),this._intersectionObserver=new IntersectionObserver(this._intersectionHandler.bind(this))}connectedCallback(){this._intersectionObserver.observe(this),super.connectedCallback()}disconnectedCallback(){super.disconnectedCallback(),this._intersectionObserver.disconnect()}willUpdate(e){e.has("thumbnail")&&(this._embedThumbnailTask=kE(this,(()=>this.hass),(()=>this.thumbnail),!1),this._intersectionObserver.unobserve(this),this._intersectionObserver.observe(this))}_intersectionHandler(e){this._embedThumbnailTask?.status===vE&&e.some((e=>e.isIntersecting))&&this._embedThumbnailTask?.run()}render(){const e=q` `;return this._embedThumbnailTask?q`${this.thumbnail?CE(this,this._embedThumbnailTask,(e=>e?q``:q``),{inProgressFunc:()=>e}):e} `:e}static get styles(){return o(":host {\n display: block;\n overflow: hidden;\n aspect-ratio: 1/1;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\nimg {\n display: block;\n}\n\nimg,\nha-icon {\n display: inline-block;\n vertical-align: top;\n margin: 0;\n border-radius: var(--frigate-card-css-border-radius, var(--ha-card-border-radius, 4px));\n width: var(--frigate-card-thumbnail-size);\n max-height: 100%;\n aspect-ratio: 1/1;\n object-fit: cover;\n}\n\nha-icon {\n --mdc-icon-size: 50%;\n color: var(--primary-text-color);\n display: flex;\n justify-content: center;\n align-items: center;\n border: 1px solid rgba(255, 255, 255, 0.3);\n box-sizing: border-box;\n opacity: 0.2;\n}")}};e([he({attribute:!1})],EE.prototype,"thumbnail",void 0),e([he({attribute:!1})],EE.prototype,"hass",void 0),EE=e([le("frigate-card-thumbnail-feature-thumbnail")],EE);let $E=class extends se{render(){if(this.date)return q` + ${this.cameraMetadata?.engineLogo?q``:""} +
+
${Wu(this.date,"HH:mm")}
+
${Wu(this.date,"MMM do")}
+ ${this.showCameraTitle&&this.cameraMetadata?.title?q`
${this.cameraMetadata.title}
`:q``} +
+ `}static get styles(){return o(":host {\n display: block;\n max-width: var(--frigate-card-thumbnail-size);\n max-height: var(--frigate-card-thumbnail-size);\n aspect-ratio: 1/1;\n border: 1px solid var(--secondary-color);\n background-color: var(--secondary-background-color);\n border-radius: var(--frigate-card-css-border-radius, var(--ha-card-border-radius, 4px));\n overflow: hidden;\n padding: 10px;\n box-sizing: border-box;\n position: relative;\n}\n\nimg.background {\n display: block;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n padding: 10%;\n box-sizing: border-box;\n pointer-events: none;\n opacity: 0.1;\n}\n\ndiv.content {\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n color: var(--primary-text-color);\n}\n\ndiv {\n text-align: center;\n}\n\ndiv.title {\n font-size: 1.5rem;\n}\n\ndiv.camera {\n font-size: 0.7em;\n}")}};e([he({attribute:!1})],$E.prototype,"date",void 0),e([he({attribute:!1})],$E.prototype,"cameraMetadata",void 0),e([he({attribute:!1})],$E.prototype,"showCameraTitle",void 0),$E=e([le("frigate-card-thumbnail-feature-text")],$E);let AE=class extends se{render(){if(!this.media)return;const e=this.media.getScore(),t=e?(100*e).toFixed(2)+"%":null,n=this.media.getStartTime(),a=n?Kg(n):null,i=this.media.getEndTime(),r=n&&i?ef(n,i):null,o=this.media.inProgress()?V_("event.in_progress"):null,s=qg(this.media.getWhat()?.join(", "))??null,c=qg(this.media.getWhere()?.join(", "))??null,l=qg(this.media.getTags()?.join(", "))??null,d=s||l?(s??"")+(s&&l?": ":"")+(l??""):null,u=this.seek?Wu(this.seek,"HH:mm:ss"):null;return q` + ${d?q`
+ ${d} + ${t?q`${t}`:""} +
`:""} +
+ ${a?q`
+ + ${a} +
+ ${r||o?q`
+ + ${r?q`${r}`:""} + ${o?q`${o}`:""} +
`:""}`:""} + ${this.cameraTitle?q`
+ + ${this.cameraTitle} +
`:""} + ${c?q`
+ + ${c} +
`:q``} + ${l?q`
+ + ${l} +
`:q``} + ${u?q`
+ + ${u} +
`:q``} +
+ `}static get styles(){return o(xE)}};e([he({attribute:!1})],AE.prototype,"media",void 0),e([he({attribute:!1})],AE.prototype,"seek",void 0),e([he({attribute:!1})],AE.prototype,"cameraTitle",void 0),AE=e([le("frigate-card-thumbnail-details-event")],AE);let zE=class extends se{render(){if(!this.media)return;const e=this.media.getStartTime(),t=e?Kg(e):null,n=this.media.getEndTime(),a=e&&n?ef(e,n):null,i=this.media.inProgress()?V_("recording.in_progress"):null,r=this.seek?Wu(this.seek,"HH:mm:ss"):null,o=this.media.getEventCount();return q` + ${this.cameraTitle?q`
+ ${this.cameraTitle} +
`:""} +
+ ${t?q`
+ + ${t} +
+ ${a||i?q`
+ + ${a?q`${a}`:""} + ${i?q`${i}`:""} +
`:""}`:""} + ${r?q`
+ + ${r} +
`:q``} + ${null!==o?q`
+ + ${o} +
`:""} +
+ `}static get styles(){return o(xE)}};e([he({attribute:!1})],zE.prototype,"media",void 0),e([he({attribute:!1})],zE.prototype,"seek",void 0),e([he({attribute:!1})],zE.prototype,"cameraTitle",void 0),zE=e([le("frigate-card-thumbnail-details-recording")],zE);let IE=class extends se{constructor(){super(...arguments),this.details=!1,this.show_favorite_control=!1,this.show_timeline_control=!1,this.show_download_control=!1}render(){if(!this.media||!this.cameraManager||!this.hass)return;const e=this.media.getThumbnail(),t=this.media.getTitle()??"",n={star:!0,starred:!!this.media?.isFavorite()},a=this.show_timeline_control&&(!tx.isRecording(this.media)||this.media.getStartTime()&&this.media.getEndTime()),i=this.cameraManager?.getMediaCapabilities(this.media),r=this.show_favorite_control&&this.media&&this.hass&&i?.canFavorite,o=this.show_download_control&&this.hass&&this.media.getID()&&i?.canDownload,s=this.cameraManager.getCameraMetadata(this.media.getCameraID());return q` + ${tx.isEvent(this.media)&&e?q``:tx.isEvent(this.media)||tx.isRecording(this.media)?q``:q``} + ${r?q` {if(wf(e),this.hass&&this.media){try{await(this.cameraManager?.favoriteMedia(this.media,!this.media?.isFavorite()))}catch(e){return void Gg(e)}this.requestUpdate()}}} + />`:""} + ${this.details&&tx.isEvent(this.media)?q``:this.details&&tx.isRecording(this.media)?q``:q``} + ${a?q`{wf(e),this.viewManagerEpoch&&this.media&&this.viewManagerEpoch.manager.setViewByParameters({params:{view:"timeline",queryResults:this.viewManagerEpoch?.manager.getView()?.queryResults?.clone().selectResultIfFound((e=>e===this.media))},modifiers:[new wE(["timeline"])]})}} + >`:""} + ${o?q` {if(wf(e),this.hass&&this.cameraManager&&this.media)try{await Ew(this.hass,this.cameraManager,this.media)}catch(e){kk(this,e)}}} + >`:""} + `}static get styles(){return o(":host {\n display: flex;\n flex-direction: row;\n box-sizing: border-box;\n position: relative;\n overflow: hidden;\n transition: transform 0.2s linear;\n}\n\n:host(:not([details])) {\n aspect-ratio: 1/1;\n}\n\n:host([details]) {\n border: 1px solid var(--primary-color);\n border-radius: var(--frigate-card-css-border-radius, var(--ha-card-border-radius, 4px));\n padding: 2px;\n background-color: var(--primary-background-color, black);\n}\n\n:host(:hover) {\n transform: scale(1.04);\n}\n\nha-icon {\n position: absolute;\n border-radius: 50%;\n opacity: 0.5;\n color: var(--primary-color);\n cursor: pointer;\n transition: opacity 0.2s ease-in-out, color 0.2s ease-in-out;\n}\n\nha-icon:hover {\n opacity: 1;\n}\n\nha-icon.star {\n top: 3px;\n left: 3px;\n}\n\nha-icon.star.starred {\n color: gold;\n}\n\nha-icon.timeline {\n top: 3px;\n right: 3px;\n}\n\nha-icon.download {\n right: 3px;\n bottom: 3px;\n}\n\nfrigate-card-thumbnail-details-event,\nfrigate-card-thumbnail-details-recording {\n flex: 1;\n}")}};e([he({attribute:!1})],IE.prototype,"cameraManager",void 0),e([he({attribute:!1})],IE.prototype,"media",void 0),e([he({attribute:!0,type:Boolean})],IE.prototype,"details",void 0),e([he({attribute:!0,type:Boolean})],IE.prototype,"show_favorite_control",void 0),e([he({attribute:!0,type:Boolean})],IE.prototype,"show_timeline_control",void 0),e([he({attribute:!0,type:Boolean})],IE.prototype,"show_download_control",void 0),e([he({attribute:!1})],IE.prototype,"seek",void 0),IE=e([le("frigate-card-thumbnail")],IE);let TE=class extends se{constructor(){super(...arguments),this.fadeThumbnails=!1,this._thumbnailSlides=[]}willUpdate(e){if(e.has("config")){this.config?.size&&this.style.setProperty("--frigate-card-thumbnail-size",`${this.config.size}px`);const e=this._getDirection();e?this.setAttribute("direction",e):this.removeAttribute("direction")}["cameraManager","config","transitionEffect","viewManagerEpoch"].some((t=>e.has(t)))&&(this._thumbnailSlides=this._renderSlides()),e.has("viewManagerEpoch")&&this.style.setProperty("--frigate-card-carousel-thumbnail-opacity",this.fadeThumbnails&&null!==this._getSelectedSlide()?"0.4":"1.0")}_getSelectedSlide(){return this.viewManagerEpoch?.manager.getView()?.queryResults?.getSelectedIndex()??null}_renderSlides(){const e=[],t=this.viewManagerEpoch?.manager.getView(),n=t?.context?.mediaViewer?.seek,a=this._getSelectedSlide();for(const i of t?.queryResults?.getResults()??[]){const t=e.length,r={embla__slide:!0,"slide-selected":a===t};e.push(q` {const n=this.viewManagerEpoch?.manager.getView();n&&n.queryResults&&Bg(this,"thumbnail-carousel:tap",{queryResults:n.queryResults.clone().selectIndex(t)}),wf(e)}} + > + `)}return e}_getDirection(){return"left"===this.config?.mode||"right"===this.config?.mode?"vertical":"above"===this.config?.mode||"below"===this.config?.mode?"horizontal":null}render(){const e=this._getDirection();if(this._thumbnailSlides.length&&this.config&&e)return q` + ${this._thumbnailSlides} + `}static get styles(){return o(":host {\n --frigate-card-thumbnail-size-max: 300px;\n --frigate-card-thumbnail-details-width: calc(\n var(--frigate-card-thumbnail-size) + 200px\n );\n}\n\n:host {\n display: block;\n width: 100%;\n height: 100%;\n --frigate-card-carousel-thumbnail-opacity: 1;\n}\n\n:host([direction=vertical]) {\n height: 100%;\n}\n\n:host([direction=horizontal]) {\n height: auto;\n}\n\n.embla__slide {\n flex: 0 0 auto;\n opacity: var(--frigate-card-carousel-thumbnail-opacity);\n}\n\n.embla__slide.slide-selected {\n opacity: 1;\n}\n\nfrigate-card-thumbnail {\n width: var(--frigate-card-thumbnail-size);\n height: var(--frigate-card-thumbnail-size);\n max-width: 100%;\n}\n\nfrigate-card-thumbnail[details] {\n width: var(--frigate-card-thumbnail-details-width);\n}")}};e([he({attribute:!1})],TE.prototype,"hass",void 0),e([he({attribute:!1})],TE.prototype,"viewManagerEpoch",void 0),e([he({attribute:!1})],TE.prototype,"cameraManager",void 0),e([he({attribute:!1})],TE.prototype,"config",void 0),e([he({attribute:!1})],TE.prototype,"fadeThumbnails",void 0),TE=e([le("frigate-card-thumbnail-carousel")],TE);var jE=":host {\n width: 100%;\n height: 100%;\n display: block;\n}";const OE=document.createElement("template");OE.innerHTML='\n
\n
\n';class DE extends HTMLElement{constructor(){super();const e=this.attachShadow({mode:"open"});e.appendChild(OE.content.cloneNode(!0)),this._freeSpaceDiv=e.getElementById("fs")}connectedCallback(){this._freeSpaceDiv&&this._freeSpaceDiv.addEventListener("click",this.handleFreeSpaceDivClick),this.upgradeProperty("open")}disconnectedCallback(){document.removeEventListener("keyup",this.handleKeyUp)}upgradeProperty(e){if(this.hasOwnProperty(e)){let t=this[e];delete this[e],this[e]=t}}handleKeyUp=e=>{if(!e.altKey&&"Escape"===e.key)e.preventDefault(),this.open=!1};get open(){return this.hasAttribute("open")}set open(e){e?this.hasAttribute("open")||this.setAttribute("open",""):this.hasAttribute("open")&&this.removeAttribute("open")}static get observedAttributes(){return["open"]}attributeChangedCallback(e,t,n){"open"===e&&(this.open?(this.setAttribute("tabindex","0"),this.setAttribute("aria-disabled","false"),this.focus({preventScroll:!0}),document.addEventListener("keyup",this.handleKeyUp),this.dispatchEvent(new CustomEvent("open",{bubbles:!0}))):(this.setAttribute("tabindex","-1"),this.setAttribute("aria-disabled","true"),document.removeEventListener("keyup",this.handleKeyUp),this.dispatchEvent(new CustomEvent("close",{bubbles:!0}))))}handleFreeSpaceDivClick=()=>{this.open=!1}}customElements.define("side-drawer",DE);let RE=class extends se{constructor(){super(...arguments),this.location="left",this.control=!0,this.open=!1,this.empty=!0,this._refDrawer=ze(),this._refSlot=ze(),this._resizeObserver=new ResizeObserver((()=>this._hideDrawerIfNecessary())),this._isHoverableDevice=Yg()}firstUpdated(e){super.firstUpdated(e);const t=document.createElement("style");t.innerHTML=":host {\n width: unset;\n}\n\n#fs {\n display: none;\n width: 100%;\n inset: 0;\n}\n\n#d,\n#fs {\n height: 100%;\n position: absolute;\n}\n\n#d {\n overflow: visible;\n max-width: 90%;\n z-index: 10;\n}\n\n:host([location=right]) #d {\n left: unset;\n right: 0;\n transform: translateX(100%);\n}\n\n:host([location=right][open]) #d {\n transform: none;\n box-shadow: var(--frigate-card-css-box-shadow, 0px 0px 25px 0px black);\n}\n\n#ifs {\n height: 100%;\n}",this._refDrawer.value?.shadowRoot?.appendChild(t)}_slotChanged(){const e=this._refSlot.value?lf(this._refSlot.value):[];this._resizeObserver.disconnect();for(const t of e)this._resizeObserver.observe(t);this._hideDrawerIfNecessary()}_hideDrawerIfNecessary(){if(!this._refDrawer.value)return;const e=this._refSlot.value?lf(this._refSlot.value):null;this.empty=!e||!e.length||e.every((e=>{const t=e.getBoundingClientRect();return!t.width||!t.height}))}render(){return q` + {this.open&&(this.open=!1)}} + > + ${this.control?q` +
{wf(e),this.open=!this.open}} + > + {this._isHoverableDevice&&!this.open&&(this.open=!0)}} + > + +
+ `:""} + this._slotChanged()}> +
+ `}static get styles(){return o("side-drawer {\n background-color: var(--card-background-color);\n}\n\ndiv.control-surround {\n position: absolute;\n bottom: 50%;\n transform: translateY(50%);\n z-index: 0;\n padding-top: 20px;\n padding-bottom: 20px;\n}\n\n:host([location=left]) div.control-surround {\n padding-right: 12px;\n left: 100%;\n}\n\n:host([location=right]) div.control-surround {\n padding-left: 12px;\n right: 100%;\n}\n\n:host([empty]),\n:host([empty]) > * {\n visibility: hidden;\n}\n\n:host(:not([empty])),\n:host(:not([empty])) > * {\n visibility: visible;\n}\n\nha-icon.control {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.7);\n opacity: 0.5;\n pointer-events: all;\n --mdc-icon-size: 20px;\n padding-top: 20px;\n padding-bottom: 20px;\n transition: opacity 0.5s ease;\n}\n\n:host([open]) ha-icon.control,\nha-icon.control:hover {\n opacity: 1;\n background-color: black;\n}\n\n:host([location=left]) ha-icon.control {\n border-top-right-radius: 20px;\n border-bottom-right-radius: 20px;\n}\n\n:host([location=right]) ha-icon.control {\n border-top-left-radius: 20px;\n border-bottom-left-radius: 20px;\n}")}};e([he({attribute:!0,reflect:!0})],RE.prototype,"location",void 0),e([he({attribute:!0,reflect:!0,type:Boolean})],RE.prototype,"control",void 0),e([he({type:Boolean,reflect:!0,attribute:!0})],RE.prototype,"open",void 0),e([he({attribute:!1})],RE.prototype,"icons",void 0),e([he({type:Boolean,reflect:!0,attribute:!0})],RE.prototype,"empty",void 0),RE=e([le("frigate-card-drawer")],RE);let PE=class extends se{constructor(){super(...arguments),this._refDrawerLeft=ze(),this._refDrawerRight=ze(),this._boundDrawerHandler=this._drawerHandler.bind(this)}connectedCallback(){super.connectedCallback(),this.addEventListener("frigate-card:drawer:open",this._boundDrawerHandler),this.addEventListener("frigate-card:drawer:close",this._boundDrawerHandler)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("frigate-card:drawer:open",this._boundDrawerHandler),this.removeEventListener("frigate-card:drawer:close",this._boundDrawerHandler)}_drawerHandler(e){const t=e.detail.drawer,n=e.type.endsWith(":open");"left"===t&&this._refDrawerLeft.value?this._refDrawerLeft.value.open=n:"right"===t&&this._refDrawerRight.value&&(this._refDrawerRight.value.open=n)}render(){return q` + + + + + + + + `}static get styles(){return o(":host {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n position: relative;\n overflow: hidden;\n}\n\n::slotted(:not([slot])) {\n flex: 1;\n min-height: 0px;\n}")}};e([he({attribute:!1})],PE.prototype,"drawerIcons",void 0),PE=e([le("frigate-card-surround-basic")],PE);let LE=class extends se{_hasDrawer(){return!!this.thumbnailConfig&&["left","right"].includes(this.thumbnailConfig.mode)}willUpdate(e){this.timelineConfig?.mode&&"none"!==this.timelineConfig.mode&&import("./timeline-core-fabd0153.js");const t=this.viewManagerEpoch?.manager.getView();e.has("viewManagerEpoch")&&(this.viewManagerEpoch?.manager.hasMajorMediaChange(this.viewManagerEpoch?.oldView)||this.viewManagerEpoch?.oldView?.displayMode!==t?.displayMode)&&(this._cameraIDsForTimeline=this._getCameraIDsForTimeline()??void 0)}_getCameraIDsForTimeline(){const e=this.viewManagerEpoch?.manager.getView();if(!e||!this.cameraManager)return null;if(e.is("live")){const t={anyCapabilities:["clips","snapshots","recordings"]};return e.supportsMultipleDisplayModes()&&e.isGrid()?this.cameraManager.getStore().getCameraIDsWithCapability(t):this.cameraManager.getStore().getAllDependentCameras(e.camera,t)}return e.isViewerView()?e.query?.getQueryCameraIDs()??null:null}render(){const e=this.viewManagerEpoch?.manager.getView();if(!this.hass||!e)return;const t=(e,t)=>{this.thumbnailConfig&&this._hasDrawer()&&Bg(e.composedPath()[0],"drawer:"+t,{drawer:this.thumbnailConfig.mode})};return q` t(e,"open")} + @frigate-card:thumbnails:close=${e=>t(e,"close")} + > + ${this.thumbnailConfig&&"none"!==this.thumbnailConfig.mode?q` {const n=e.detail.queryResults.getSelectedResult();n&&(this.viewManagerEpoch?.manager.setViewByParameters({params:{view:"media",queryResults:e.detail.queryResults,...n.getCameraID()&&{camera:n.getCameraID()}},modifiers:[new wE(["timeline","mediaViewer"])]}),t(e,"close"))}} + > + `:""} + ${this.timelineConfig&&"none"!==this.timelineConfig.mode?q` + `:""} + + `}static get styles(){return o(jE)}};e([he({attribute:!1})],LE.prototype,"hass",void 0),e([he({attribute:!1})],LE.prototype,"viewManagerEpoch",void 0),e([he({attribute:!1,hasChanged:Qg})],LE.prototype,"thumbnailConfig",void 0),e([he({attribute:!1,hasChanged:Qg})],LE.prototype,"timelineConfig",void 0),e([he({attribute:!1})],LE.prototype,"cameraManager",void 0),e([he({attribute:!1})],LE.prototype,"cardWideConfig",void 0),LE=e([le("frigate-card-surround")],LE);var NE="Wed, 11 Dec 2024 03:36:17 GMT",FE="47fdfbc",VE="Tue, 10 Dec 2024 19:35:09 -0800";const HE=ba.object({domain:ba.string(),version:ba.string().optional()}).passthrough(),BE="hass_web_proxy",qE=(e,t)=>`/api/${BE}/v${t??0}/?url=${encodeURIComponent(e)}`,UE=(e,t,n="media")=>(e=>e.config.components.includes(BE))(e)&&!!t[n];async function WE(e,t,n){await e.callService(BE,"create_proxied_url",{url_pattern:t,...n&&{url_id:n.urlID,ssl_verification:n.sslVerification,ssl_ciphers:n.sslCiphers,open_limit:n.openLimit,ttl:n.ttl,allow_unauthenticated:n.allowUnauthenticated}})}const ZE=async(e,t)=>{let n=null;if(t)try{n=await(async(e,t)=>await $v(e,HE,{type:"manifest/get",integration:t}))(t,e)}catch(e){}return{detected:!!n,...n?.version&&{version:n.version}}};let QE=class extends se{constructor(){super(...arguments),this._diagnostics=null}async _fetchDiagnostics(){this._diagnostics=await(async(e,t,n)=>{const a=e&&t?await t.getMatchingDevices(e,(e=>"Frigate"===e.manufacturer)):[],i=new Map;return a?.forEach((e=>{e.config_entries.forEach((t=>{e.model&&i.set(t,e.model)}))})),{card_version:"6.0.3",browser:navigator.userAgent,date:new Date,lang:F_(),timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,git:{hash:FE,build_date:NE,commit_date:VE},...e&&{ha_version:e.config.version},integrations:{reolink:await ZE("reolink",e),frigate:{...await ZE("frigate",e),...i.size&&{devices:Object.fromEntries(i)}},hass_web_proxy:await ZE(BE,e),motioneye:await ZE("motioneye",e)},...n&&{config:n}}})(this.hass,this.deviceRegistryManager,this.rawConfig)}shouldUpdate(){return!!this._diagnostics||(this._fetchDiagnostics().then((()=>this.requestUpdate())),!1)}render(){return wk({message:V_("error.diagnostics"),type:"diagnostics",icon:"mdi:information",context:this._diagnostics})}static get styles(){return o(jE)}};e([he({attribute:!1})],QE.prototype,"hass",void 0),e([he({attribute:!1})],QE.prototype,"deviceRegistryManager",void 0),e([he({attribute:!1})],QE.prototype,"rawConfig",void 0),e([pe()],QE.prototype,"_diagnostics",void 0),QE=e([le("frigate-card-diagnostics")],QE);let GE=class extends se{willUpdate(e){if(e.has("viewManagerEpoch")||e.has("config")){const e=this.viewManagerEpoch?.manager.getView();(e?.is("live")||this._shouldLivePreload())&&import("./index-0a012f43.js").then((function(e){return e.i})),e?.isGalleryView()?import("./gallery-c718155d.js"):e?.isViewerView()?import("./index-0197eb89.js"):e?.is("image")?import("./image-cbfd7ccb.js"):e?.is("timeline")&&import("./timeline-62b72e11.js")}e.has("hide")&&(this.hide?this.setAttribute("hidden",""):this.removeAttribute("hidden"))}shouldUpdate(e){return!0}_shouldLivePreload(){const e=this.viewManagerEpoch?.manager.getView();return!!this.overriddenConfig?.live.preload&&!e?.is("diagnostics")}render(){if(!(this.hass&&this.overriddenConfig&&this.nonOverriddenConfig&&this.cardWideConfig))return q``;const e=this.viewManagerEpoch?.manager.getView(),t={hidden:this._shouldLivePreload()&&!e?.is("live")},n={hidden:!!this.hide},a=e?.is("live")?this.overriddenConfig.live.controls.thumbnails:e?.isViewerView()?this.overriddenConfig.media_viewer.controls.thumbnails:e?.is("timeline")?this.overriddenConfig.timeline.controls.thumbnails:void 0,i=e?.is("live")?this.overriddenConfig.live.controls.timeline:e?.isViewerView()?this.overriddenConfig.media_viewer.controls.timeline:void 0,r=e?this.cameraManager?.getStore().getCameraConfig(e.camera)??null:null;return q` + ${!this.hide&&e?.is("image")&&r?q` + `:""} + ${!this.hide&&e?.isGalleryView()?q` + `:""} + ${!this.hide&&e?.isViewerView()?q` + + + `:""} + ${!this.hide&&e?.is("timeline")?q` + `:""} + ${!this.hide&&e?.is("diagnostics")?q` + `:""} + ${this._shouldLivePreload()||!this.hide&&e?.is("live")?q` + + + `:""} + `}static get styles(){return o(":host {\n width: 100%;\n height: 100%;\n display: block;\n}\n\n:host([hidden]),\n.hidden {\n display: none;\n}")}};e([he({attribute:!1})],GE.prototype,"hass",void 0),e([he({attribute:!1})],GE.prototype,"viewManagerEpoch",void 0),e([he({attribute:!1})],GE.prototype,"cameraManager",void 0),e([he({attribute:!1})],GE.prototype,"nonOverriddenConfig",void 0),e([he({attribute:!1})],GE.prototype,"overriddenConfig",void 0),e([he({attribute:!1})],GE.prototype,"cardWideConfig",void 0),e([he({attribute:!1})],GE.prototype,"rawConfig",void 0),e([he({attribute:!1})],GE.prototype,"resolvedMediaCache",void 0),e([he({attribute:!1})],GE.prototype,"conditionsManagerEpoch",void 0),e([he({attribute:!1})],GE.prototype,"hide",void 0),e([he({attribute:!1})],GE.prototype,"microphoneManager",void 0),e([he({attribute:!1})],GE.prototype,"triggeredCameraIDs",void 0),e([he({attribute:!1})],GE.prototype,"deviceRegistryManager",void 0),GE=e([le("frigate-card-views")],GE);console.info(`%c FRIGATE-HASS-CARD \n%c ${V_("common.version")} 6.0.3`,"color: pink; font-weight: bold; background: black","color: white; font-weight: bold; background: dimgray"),window.customCards=window.customCards||[],window.customCards.push({type:"frigate-card",name:V_("common.frigate_card"),description:V_("common.frigate_card_description"),preview:!0,documentationURL:wa});let YE=class extends se{constructor(){super(...arguments),this._controller=new Ax(this,(()=>this._refMain.value?.scroll({top:0})),(()=>this._refMenu.value?.toggleMenu()),this._requestUpdateForComponentsThatUseConditions.bind(this)),this._menuButtonController=new zx,this._refMenu=ze(),this._refOverlay=ze(),this._refMain=ze(),this._refElements=ze(),this._refViews=ze()}get _config(){return this._controller.getConfigManager().getConfig()}get _hass(){return this._controller.getHASSManager().getHASS()}set hass(e){this._controller.getHASSManager().setHASS(e),this._refMenu.value&&(this._refMenu.value.hass=e),this._refElements.value&&(this._refElements.value.hass=e),this._refViews.value&&(this._refViews.value.hass=e)}static async getConfigElement(){return await Ax.getConfigElement()}static getStubConfig(e,t){return Ax.getStubConfig(t)}_requestUpdateForComponentsThatUseConditions(){this._refViews.value&&(this._refViews.value.conditionsManagerEpoch=this._controller.getConditionsManager().getEpoch()??void 0),this._refElements.value&&(this._refElements.value.conditionsManagerEpoch=this._controller.getConditionsManager().getEpoch()??void 0)}setConfig(e){this._controller.getConfigManager().setConfig(e)}shouldUpdate(){return!!this.isConnected&&(this._controller.getMessageManager().hasMessage()||this._controller.getInitializationManager().isInitializedMandatory()||this._controller.getInitializationManager().initializeMandatory(),!0)}_renderMenuStatusContainer(e){if(!this._config)return;const t=this._config.menu.style,n=this._config.menu.position,a=this._config.status_bar.style,i=this._config.status_bar.position;if("none"===t&&"none"===a||"overlay"===e&&"outside"===t&&"outside"===a||"overlay"!==e&&("outside"!==t||n!==e)&&("outside"!==a||i!==e))return;const r=e=>{const r="none"!==t&&("outside"===t&&"outerlay"===e||"outside"!==t&&"overlay"===e),o="none"!==a&&("outside"===a&&"outerlay"===e||"outside"!==a&&"overlay"===e),s="left"===n||"right"===n||"bottom"===n&&"hidden"===t&&"popup"!==a||"top"===n&&("hidden"!==t||"popup"===a);return q` + ${r&&s?this._renderMenu(n):""} + ${o?this._renderStatusBar(i):""} + ${r&&!s?this._renderMenu(n):""} + `};return q` + ${"overlay"===e?q`${r("overlay")}`:q`
+ ${r("outerlay")} +
`} + `}_renderMenu(e){const t=this._controller.getViewManager().getView();if(this._hass&&this._config)return q` + + `}_renderStatusBar(e){if(this._config)return q` + + `}updated(){this._controller.getInitializationManager().isInitializedMandatory()&&this._controller.getQueryStringManager().executeIfNecessary()}_renderInDialogIfNecessary(e){return this._controller.getExpandManager().isExpanded()?q` {this._controller.getExpandManager().setExpanded(!1)}} + > + ${e} + `:e}render(){if(!this._hass)return;const e={main:!0,"curve-top":"outside"!==this._config?.menu.style||"top"!==this._config?.menu.position,"curve-bottom":"outside"!==this._config?.menu.style||"top"===this._config?.menu.position},t=this._controller.getActionsManager().getMergedActions(),n=this._controller.getCameraManager(),a=!1!==this._config?.performance?.features.animated_progress_indicator&&!this._controller.getInitializationManager().wasEverInitialized()&&!this._controller.getMessageManager().hasMessage();return this._renderInDialogIfNecessary(q` this._controller.getMessageManager().setMessageIfHigherPriority(e.detail)} + @frigate-card:media:loaded=${e=>this._controller.getMediaLoadedInfoManager().set(e.detail)} + @frigate-card:media:unloaded=${()=>this._controller.getMediaLoadedInfoManager().clear()} + @frigate-card:media:volumechange=${()=>this.requestUpdate()} + @frigate-card:media:play=${()=>this.requestUpdate()} + @frigate-card:media:pause=${()=>this.requestUpdate()} + @frigate-card:focus=${()=>this.focus()} + > + ${a?q``:""} + ${this._renderMenuStatusContainer("top")} + ${this._renderMenuStatusContainer("overlay")} +
+ + ${wk(this._controller.getMessageManager().getMessage())} +
+ ${this._renderMenuStatusContainer("bottom")} + ${this._config?.elements?q` {this._menuButtonController.addDynamicMenuButton(e.detail),this.requestUpdate()}} + @frigate-card:menu:remove=${e=>{this._menuButtonController.removeDynamicMenuButton(e.detail),this.requestUpdate()}} + @frigate-card:status-bar:add=${e=>{this._controller.getStatusBarItemManager().addDynamicStatusBarItem(e.detail)}} + @frigate-card:status-bar:remove=${e=>{this._controller.getStatusBarItemManager().removeDynamicStatusBarItem(e.detail)}} + @frigate-card:conditions:evaluate=${e=>{e.evaluation=this._controller.getConditionsManager()?.evaluateConditions(e.conditions)}} + > + `:""} +
`)}static get styles(){return o(':host {\n display: block;\n position: relative;\n background-color: var(--card-background-color);\n border-radius: var(--ha-card-border-radius, 4px);\n height: var(--frigate-card-height);\n min-height: 100px;\n pointer-events: all;\n --frigate-card-expand-max-height: calc((100vh - (2 * 56px)) * 0.85);\n --frigate-card-expand-max-width: 85vw;\n --frigate-card-expand-width: none;\n --frigate-card-expand-height: none;\n --frigate-card-expand-aspect-ratio: unset;\n --frigate-card-height: auto;\n}\n\nfrigate-card-loading {\n position: absolute;\n inset: 0;\n z-index: 1;\n}\n\n:host([dark]) {\n filter: brightness(75%);\n}\n\n:host([panel]) {\n height: 100%;\n}\n\ndiv.main {\n position: relative;\n overflow: auto;\n width: 100%;\n height: 100%;\n margin: auto;\n display: block;\n transform: translateZ(0);\n scrollbar-width: none;\n -ms-overflow-style: none;\n}\n\n/* Hide scrollbar for Chrome, Safari and Opera */\ndiv.main::-webkit-scrollbar {\n display: none;\n}\n\ndiv.main.curve-top {\n border-top-left-radius: var(--ha-card-border-radius, 4px);\n border-top-right-radius: var(--ha-card-border-radius, 4px);\n}\n\ndiv.main.curve-bottom {\n border-bottom-left-radius: var(--ha-card-border-radius, 4px);\n border-bottom-right-radius: var(--ha-card-border-radius, 4px);\n}\n\nha-card {\n display: flex;\n flex-direction: column;\n margin: auto;\n border: 0px;\n overflow: visible;\n width: 100%;\n height: 100%;\n position: static;\n color: var(--secondary-text-color, white);\n}\n\n/************\n * Fullscreen\n *************/\n:host(:fullscreen) #ha-card {\n border-radius: 0px;\n box-shadow: none;\n margin: 0;\n}\n\n:host(:-webkit-full-screen) #ha-card {\n border-radius: 0px;\n box-shadow: none;\n margin: 0;\n}\n\n:host(:fullscreen) div.main,\n:host(:fullscreen) frigate-card-menu {\n border-radius: 0px;\n}\n\n:host(:-webkit-full-screen) div.main,\n:host(:-webkit-full-screen) frigate-card-menu {\n border-radius: 0px;\n}\n\n/***************\n * Expanded mode\n ***************/\nweb-dialog {\n --dialog-padding: 0px;\n --dialog-container-padding: 0px;\n --dialog-max-height: var(--frigate-card-expand-max-height);\n --dialog-max-width: var(--frigate-card-expand-max-width);\n --dialog-width: var(--frigate-card-expand-width);\n --dialog-height: var(--frigate-card-expand-height);\n --dialog-overflow-x: visible;\n --dialog-overflow-y: visible;\n max-height: 100vh;\n}\n\nweb-dialog::part(dialog) {\n aspect-ratio: var(--frigate-card-expand-aspect-ratio);\n border-radius: 0px;\n background: transparent;\n}\n\n/*************************************\n * "Outside" style for menu/status bar\n *************************************/\n.outerlay[data-position=top] > *:first-child {\n border-top-left-radius: var(--ha-card-border-radius, 4px);\n border-top-right-radius: var(--ha-card-border-radius, 4px);\n}\n\n.outerlay[data-position=bottom] > *:last-child {\n border-bottom-left-radius: var(--ha-card-border-radius, 4px);\n border-bottom-right-radius: var(--ha-card-border-radius, 4px);\n}\n\n/*******************\n * Menu hover styles\n *******************/\nfrigate-card-menu {\n z-index: 2;\n}\n\nfrigate-card-menu[data-style*=hover] {\n transition: opacity 0.5s ease;\n opacity: 0;\n}\n\nfrigate-card-menu[data-style*=hover]:hover,\nha-card:hover > frigate-card-overlay > frigate-card-menu[data-style=hover-card] {\n opacity: 1;\n}\n\n/*************************\n * Status bar hover styles\n *************************/\nfrigate-card-status-bar {\n z-index: 1;\n}\n\nfrigate-card-status-bar[data-style*=hover] {\n transition: opacity 0.5s ease;\n opacity: 0;\n}\n\nfrigate-card-status-bar[data-style*=hover]:hover,\nha-card:hover > frigate-card-overlay > frigate-card-status-bar[data-style=hover-card] {\n opacity: 1;\n}')}getCardSize(){return 6}};YE=e([le("frigate-card")],YE);export{Il as $,tr as A,nr as B,Zi as C,ar as D,ir as E,rr as F,Pi as G,Li as H,Ni as I,Fi as J,Vi as K,Hi as L,Bi as M,qi as N,Ui as O,gs as P,Ws as Q,ns as R,Us as S,qo as T,Fo as U,Vo as V,Ho as W,Bo as X,Bs as Y,zl as Z,e as _,se as a,dr as a$,H_ as a0,tw as a1,et as a2,nw as a3,$s as a4,Di as a5,ji as a6,Oi as a7,Ri as a8,Wi as a9,Yr as aA,oo as aB,so as aC,lo as aD,uo as aE,co as aF,ao as aG,io as aH,ro as aI,mo as aJ,_o as aK,vo as aL,ho as aM,po as aN,fo as aO,go as aP,eo as aQ,no as aR,to as aS,Xr as aT,Jr as aU,Kr as aV,Ao as aW,Io as aX,zo as aY,hr as aZ,cr as a_,es as aa,Jo as ab,Xo as ac,ts as ad,hs as ae,us as af,ms as ag,qs as ah,ps as ai,So as aj,Co as ak,To as al,Mo as am,ko as an,qr as ao,Ur as ap,Wr as aq,Zr as ar,Eo as as,$o as at,yo as au,xo as av,bo as aw,wo as ax,Qr as ay,Gr as az,pe as b,ja as b$,ur as b0,lr as b1,sr as b2,mr as b3,gr as b4,fr as b5,_r as b6,xr as b7,Hr as b8,Cr as b9,Po as bA,Wo as bB,Zo as bC,Go as bD,Yo as bE,Qo as bF,Uo as bG,vs as bH,_s as bI,ys as bJ,xs as bK,Cs as bL,As as bM,Ms as bN,Es as bO,Ss as bP,Jb as bQ,Kb as bR,Uk as bS,Ug as bT,Ma as bU,Ja as bV,Ya as bW,La as bX,Na as bY,ka as bZ,Oa as b_,kr as ba,Mr as bb,vr as bc,wr as bd,yr as be,br as bf,Sr as bg,Er as bh,$r as bi,Or as bj,zr as bk,Tr as bl,jr as bm,Ir as bn,Ar as bo,Pr as bp,Fr as bq,Vr as br,Dr as bs,Rr as bt,Nr as bu,Lr as bv,Ro as bw,Lo as bx,Oo as by,Do as bz,ew as c,wf as c$,Da as c0,Ta as c1,Ga as c2,Ua as c3,Wa as c4,Za as c5,Qa as c6,_i as c7,fi as c8,Ra as c9,ai as cA,ii as cB,Sa as cC,Ea as cD,pi as cE,hi as cF,gi as cG,mi as cH,Fd as cI,Ca as cJ,ks as cK,ge as cL,fe as cM,W as cN,xe as cO,Gw as cP,Mk as cQ,ze as cR,Yw as cS,df as cT,wk as cU,je as cV,Qg as cW,vw as cX,td as cY,kk as cZ,Ky as c_,Pa as ca,Ha as cb,qa as cc,Fa as cd,Va as ce,Ba as cf,Ka as cg,Xa as ch,ti as ci,ei as cj,yi as ck,vi as cl,bi as cm,wi as cn,$a as co,Aa as cp,za as cq,Ia as cr,ni as cs,ri as ct,oi as cu,si as cv,ci as cw,li as cx,di as cy,ui as cz,aw as d,ba as d$,My as d0,ve as d1,jE as d2,Vd as d3,nu as d4,c as d5,ux as d6,Qv as d7,hx as d8,lx as d9,wx as dA,Ck as dB,U as dC,xf as dD,Bw as dE,kE as dF,CE as dG,yf as dH,Fk as dI,vf as dJ,kf as dK,bf as dL,p_ as dM,h_ as dN,Pv as dO,Lv as dP,Ud as dQ,Vv as dR,Yg as dS,Kg as dT,Cx as dU,Gy as dV,gx as dW,su as dX,sf as dY,Fv as dZ,Hg as d_,px as da,Gg as db,Ev as dc,Wu as dd,Xg as de,Qu as df,Bg as dg,qw as dh,af as di,SE as dj,kx as dk,xk as dl,$w as dm,tx as dn,hy as dp,Bb as dq,qb as dr,UE as ds,WE as dt,Ib as du,qE as dv,Qw as dw,Kw as dx,Xw as dy,Jw as dz,_e as e,nf as e0,$v as e1,zs as e2,Kv as e3,Wv as e4,Z_ as e5,Q_ as e6,Yv as e7,Jg as e8,tf as e9,Lu as eA,Vb as eB,Zv as eC,Nb as eD,lf as eE,qy as eF,Uy as eG,Wy as eH,pf as eI,Qy as eJ,Rg as eK,Zy as eL,s as eM,Ae as eN,ye as eO,Zw as eP,bE as eQ,me as eR,be as eS,jb as eT,Gv as ea,Hk as eb,Hv as ec,rf as ed,Tv as ee,Bk as ef,Iv as eg,zv as eh,jv as ei,qk as ej,Xd as ek,Hd as el,Gd as em,Qd as en,Yd as eo,vu as ep,Jd as eq,eu as er,yu as es,_u as et,Bd as eu,au as ev,gu as ew,Ou as ex,Nu as ey,Fu as ez,ww as f,Fb as g,Xb as h,Dv as i,Lb as j,qg as k,V_ as l,Ki as m,he as n,Gi as o,Ld as p,Qi as q,o as r,of as s,le as t,Yi as u,Hb as v,Xi as w,q as x,er as y,Ji as z}; diff --git a/config/www/community/frigate-hass-card/card-c642ee74.js.gz b/config/www/community/frigate-hass-card/card-c642ee74.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..050ed8d90e2b6626f5e546369636860c112a5932 GIT binary patch literal 142679 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

tdIO@){Ou^brQFjTC&jJQ8 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 e=this._refInput.value?.value;h(this,"date-picker:change",{date:e?new Date(e):null})};return l`e()} + @change=${()=>e()} + /> + {r(e),this._refInput.value?.showPicker()}} + > + `}static get styles(){return c(":host {\n display: inline-block;\n position: relative;\n width: var(--mdc-icon-size, 24px);\n height: var(--mdc-icon-size, 24px);\n}\n\ninput {\n display: block;\n height: 100%;\n width: 100%;\n position: absolute;\n padding: 0px;\n border: 0px;\n}\n\n/**\n * Hack warning: Safari on iOS does not support showPicker with\n * datetime-local:\n * https://caniuse.com/mdn-api_htmlinputelement_showpicker_datetime_local_input\n *\n * The hack is to render the input element in front of the icon, with an\n * opacity of 0. This only works if the underlying input element accepts the\n * click at the exact place the user happens to click. From trial and error,\n * this seems to work better than expected / quite reliably, but had the user\n * manually changed icon sizes with Safari iOS their experience may vary.\n */\n@supports (-webkit-touch-callout: none) {\n input {\n opacity: 0;\n z-index: 1;\n }\n}\n@supports not (-webkit-touch-callout: none) {\n input {\n visibility: hidden;\n }\n}\nha-icon {\n display: block;\n height: 100%;\n width: 100%;\n position: absolute;\n}")}};e([t({attribute:!1})],p.prototype,"icon",void 0),p=e([n("frigate-card-date-picker")],p);export{p as F}; diff --git a/config/www/community/frigate-hass-card/date-picker-3dacab82.js.gz b/config/www/community/frigate-hass-card/date-picker-3dacab82.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e22753d7775eb2554395c5ee5edd0aa1a01e5f8 GIT binary patch literal 1020 zcmVdR%7$|72lwWi4=NV{2t{Ei+_cV_{-AGA?R!0KHaAkJ~m7zUNo4 z!Zwf=lkJD8I5@q%Ba?2aiO~eDnG^ zlyjhcMhn2ToR!yYv zO*#EuzFvw3s^3F4(-4`PODzIA+(s}B`q)crLiD|i*5}1O^bUMpRh97Tz5^3O!DFjJ zweYa|$+$kwMP3YRgnAUZ2Q={zdvDm6T2P7j z%a>oVpJ!Qt)}{eUBPGRPo)`0*)5}*PoV5v>XAMSKIwc>#*RmC64H@6lVttXtG1y|5 z9g^3d-Y5cn!45y+l_<4Xf}Uqr`;cc*b)c1jDu4zV7lersXD5rOqK1E}e6_bvYEcYl zq@6<`vLT#OTPgI}^ezQDzuHr6uzzQ}yD{OvZcT0u4{usgDlF&!m1afGFrJhuJ>TAD zU88DD2sHhS7j#4ax)qNbJ zbfRgLS=VgpwrOE$J)W`Sd-6QFzQ&zv_M?ywY$Lo$2JgiR>A|dF>gV^Yv4DfkVikKw zbB~=nfT6@T0es2XI<2)ax=>GWo*C5#sHE*CU1Lh&)S``@PH7{5Xjm->bUeL_Bi15e zEs`1mCeUA7U@b+faOhe#&J7%4z{V;b@bHb{IK>CM8h5ewJjKg|Nl4ZSsp5_lrWN8M zpf!5OHr7Ajcpc4pg4a7N%M*MdCAb(!DWN6yG7*y%Y=y*$t%ZaUC18xLa1Kn0Iw@D| zEzWxu@gU;$U>XMATh9|3QJ)2XE~!&QYzZ-@Ooc&who=r2HerACDgx0{iKX6gw!|1) z(VW~SxK5Z}Xv}S#6HTfHBPNEiB!`YuyU|ej*G-cwNyH} zX;ssJxqvhz84Yui9LY&n^!~e8+VoSHd-3&JR{#3f3&J$(}KG> qnwUIWd9|jyD_#2+w^&Bz#SA+^9~+K75#A277k>iPFVZ!A2mk>3*5pk9 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/date-picker-40111fdc.js b/config/www/community/frigate-hass-card/date-picker-40111fdc.js new file mode 100644 index 00000000..304d5917 --- /dev/null +++ b/config/www/community/frigate-hass-card/date-picker-40111fdc.js @@ -0,0 +1,15 @@ +import{_ as e,n as t,t as n,a as i,cR as a,x as l,l as s,cV as o,c$ as r,r as c,dg as h}from"./card-45855f1f.js";let p=class extends i{constructor(){super(...arguments),this._refInput=a()}get value(){return this._refInput.value?.value?new Date(this._refInput.value.value):null}reset(){this._refInput.value&&(this._refInput.value.value="")}render(){const e=()=>{const e=this._refInput.value?.value;h(this,"date-picker:change",{date:e?new Date(e):null})};return l`e()} + @change=${()=>e()} + /> + {r(e),this._refInput.value?.showPicker()}} + > + `}static get styles(){return c(":host {\n display: inline-block;\n position: relative;\n width: var(--mdc-icon-size, 24px);\n height: var(--mdc-icon-size, 24px);\n}\n\ninput {\n display: block;\n height: 100%;\n width: 100%;\n position: absolute;\n padding: 0px;\n border: 0px;\n}\n\n/**\n * Hack warning: Safari on iOS does not support showPicker with\n * datetime-local:\n * https://caniuse.com/mdn-api_htmlinputelement_showpicker_datetime_local_input\n *\n * The hack is to render the input element in front of the icon, with an\n * opacity of 0. This only works if the underlying input element accepts the\n * click at the exact place the user happens to click. From trial and error,\n * this seems to work better than expected / quite reliably, but had the user\n * manually changed icon sizes with Safari iOS their experience may vary.\n */\n@supports (-webkit-touch-callout: none) {\n input {\n opacity: 0;\n z-index: 1;\n }\n}\n@supports not (-webkit-touch-callout: none) {\n input {\n visibility: hidden;\n }\n}\nha-icon {\n display: block;\n height: 100%;\n width: 100%;\n position: absolute;\n}")}};e([t({attribute:!1})],p.prototype,"icon",void 0),p=e([n("frigate-card-date-picker")],p);export{p as F}; diff --git a/config/www/community/frigate-hass-card/date-picker-40111fdc.js.gz b/config/www/community/frigate-hass-card/date-picker-40111fdc.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..009dbb19ab7ad8580f10a90dbedb41e7327ae6c4 GIT binary patch literal 1023 zcmVI;_K9mcgZ|v&ESrIg*O)8v5UNN7=EP1>FV=^Mg+!@4ox> z@hH_f>*IdTL}0)TiO3@f!vzV&A zzNGm2^%v}CSyrI6X@Js5Nimq^#q9R!|Cbx%&x2-4@mh=Bgvm$30PfC@Z z@9wg$Q8gxnoff_fAiQj|^Bgob4^03Y@3B+-<*tX;ZhlN{#x#%SPiamLdER~;LKIO+ zMuZP>ry-meFY~N!EmCX$U>Ivua9ZqYrVQm&F0k(FDeX8LR8-c~%!5X>M@Y*X)x@^O zW90L)>>8OomO*_2&c1o$wnfrvL9N>OH)_L!c`&K3&tf?Ram2a4y88Ou{nPs?O0fu5 z_i>EUiKbCzRkJI%O$!U_@r)hcljq6hCGK3Z?}c2mjqoNJd=N{d2eXE$_a9he0SBAK zD)x@%9y@gaLy2ty_?)wKT5Dr;p`PG8GpY|zN!v}j#+1UTc^f;O(nkK!u$mL-czWkY zta-wkCp7|0pg*_3T8dWT(6wxw8#uy%ja5A0;TywoiVt=cI-2zauXk9MXZS)&a50clLQCvrA|@-?3W*b23kf4iz!+QM9GDb! zQm)uLocAo^LB#99Gz`4Ao+mV-J_`U{Qm2U60%A;=3WN9#PaQOD!v5%01fr)B3%%oP zfibqCd2*ZJI$?UDF}HC}G^rYlm>9;A96CQel0!$mO&!BvzjAiFE(g$D;~r zp>%T7s-^*R27MR~|M5{9aPkdP$bXIbUPSCC_5kXyu7~0`?keYPv^3axM!qxtXjQ|m t3hriTV)AV1)r#(}bnTzrVi}niQ|ttNY&iNvcsER6{Ru#;Cq;b-007U^_YnX9 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/date-picker-576d50a8.js b/config/www/community/frigate-hass-card/date-picker-576d50a8.js new file mode 100644 index 00000000..b3acf888 --- /dev/null +++ b/config/www/community/frigate-hass-card/date-picker-576d50a8.js @@ -0,0 +1,15 @@ +import{_ as e,n as t,t as n,a as i,cM as a,x as l,l as s,cQ as c,cX as o,r,dc as h}from"./card-320adb66.js";let p=class extends i{constructor(){super(...arguments),this._refInput=a()}get value(){return this._refInput.value?.value?new Date(this._refInput.value.value):null}reset(){this._refInput.value&&(this._refInput.value.value="")}render(){const e=()=>{const e=this._refInput.value?.value;h(this,"date-picker:change",{date:e?new Date(e):null})};return l`e()} + @change=${()=>e()} + /> + {o(e),this._refInput.value?.showPicker()}} + > + `}static get styles(){return r(":host {\n display: inline-block;\n position: relative;\n width: var(--mdc-icon-size, 24px);\n height: var(--mdc-icon-size, 24px);\n}\n\ninput {\n display: block;\n height: 100%;\n width: 100%;\n position: absolute;\n padding: 0px;\n border: 0px;\n}\n\n/**\n * Hack warning: Safari on iOS does not support showPicker with\n * datetime-local:\n * https://caniuse.com/mdn-api_htmlinputelement_showpicker_datetime_local_input\n *\n * The hack is to render the input element in front of the icon, with an\n * opacity of 0. This only works if the underlying input element accepts the\n * click at the exact place the user happens to click. From trial and error,\n * this seems to work better than expected / quite reliably, but had the user\n * manually changed icon sizes with Safari iOS their experience may vary.\n */\n@supports (-webkit-touch-callout: none) {\n input {\n opacity: 0;\n z-index: 1;\n }\n}\n@supports not (-webkit-touch-callout: none) {\n input {\n visibility: hidden;\n }\n}\nha-icon {\n display: block;\n height: 100%;\n width: 100%;\n position: absolute;\n}")}};e([t({attribute:!1})],p.prototype,"icon",void 0),p=e([n("frigate-card-date-picker")],p);export{p as F}; diff --git a/config/www/community/frigate-hass-card/date-picker-576d50a8.js.gz b/config/www/community/frigate-hass-card/date-picker-576d50a8.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..0099ac91940597c2b29091ce089368671cae8d83 GIT binary patch literal 1021 zcmVSs(WcCISO)NJJh<7%oUCF25%!_?Cp`nnd98Cz6uOUr1W+c_Znm9ai3USv8Tu zH|1Bar=nTDc~ku!vYCd+++1oA(APGCX%K!dtqIZhGFqP(`_Mb^c~w=yulo*63O155I2U;_tP$!_=pN9-L+rg_pK4WU_x2zRY}hv+sq)ocKB+}9 zoRM}8fyjn%N^PakXVbeB==^F=wZZLYOW`fIl>l2!|9-NwIB8}7}$Nqv11%Q=W6&a3J4%S-pC_j8nD8LaN( z7^M?Uqs+QyQ@2eEOY8BB9p97Z$@MkvT(fV5d|(^lO)_{dR!9$K4O2h7XN?7%X%?&4 zI~sZH+yM+Fwh7=<&emzIjnRdAg7eI%K0qaHH|ZKv3a1ur>~u;S`9s5ML7?O5T^z9% z32Twm2rz;E+yZMUT7~o0vT<(U2m>}&@qmYK496)x*wwg;wdW~bCQL%IPDmAZq%f@z z7Xhu&JGQa@0mtiT))TzmVOgHw3n{_HKuQTMv6qRMtY9l7PHZhCj3@zPY=v`RQq)Pg zV()O?vxo-~ZwAva@ZNf!(1`jh0CY*6B4SI3F=Z+Y;yXNb(69;nqgN4#o=PnBj z$xW-82FwNYVL1H9M{U5#H_RaaHRgK}v7gujsK0nM6u)s-Id7w-!Ok=Co$*Jj8a6Gs ro1=-zvz1qCy1UY~e{qXtWM0g$6ZD{const e=this._refInput.value?.value;h(this,"date-picker:change",{date:e?new Date(e):null})};return l`e()} + @change=${()=>e()} + /> + {r(e),this._refInput.value?.showPicker()}} + > + `}static get styles(){return c(":host {\n display: inline-block;\n position: relative;\n width: var(--mdc-icon-size, 24px);\n height: var(--mdc-icon-size, 24px);\n}\n\ninput {\n display: block;\n height: 100%;\n width: 100%;\n position: absolute;\n padding: 0px;\n border: 0px;\n}\n\n/**\n * Hack warning: Safari on iOS does not support showPicker with\n * datetime-local:\n * https://caniuse.com/mdn-api_htmlinputelement_showpicker_datetime_local_input\n *\n * The hack is to render the input element in front of the icon, with an\n * opacity of 0. This only works if the underlying input element accepts the\n * click at the exact place the user happens to click. From trial and error,\n * this seems to work better than expected / quite reliably, but had the user\n * manually changed icon sizes with Safari iOS their experience may vary.\n */\n@supports (-webkit-touch-callout: none) {\n input {\n opacity: 0;\n z-index: 1;\n }\n}\n@supports not (-webkit-touch-callout: none) {\n input {\n visibility: hidden;\n }\n}\nha-icon {\n display: block;\n height: 100%;\n width: 100%;\n position: absolute;\n}")}};e([t({attribute:!1})],p.prototype,"icon",void 0),p=e([n("frigate-card-date-picker")],p);export{p as F}; diff --git a/config/www/community/frigate-hass-card/date-picker-8102261e.js.gz b/config/www/community/frigate-hass-card/date-picker-8102261e.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..aa8f1891eb62a6fa2523f3eb347a5a7c104f5bc5 GIT binary patch literal 1023 zcmVHmt*5mcgZ|i^Z8DIg*O)8v5UNN7=EP1>FV|^@C3$@4ox> z@hH_f>*IdGL}0)TiO3@f!vzV&TC5zI_d^mang>KSMUt5Sg1xEdn~+MlcQf*h_0d^u3JM=fyts4t!o!mGG;+0~15R zW2-{7@Noa5aebVNyckvp^&oT)XyPIE-ms6gsF&$0roO#_rhN{YceFXq>eFQ15T)+T74H5g^-lw5hVo$Zf{+;Y@$Atg6HMu@KylF+Lu$*5i&5E31JSkOr zzPZV|M%9=Qc3Su{fbg=-&U4V%JTw7pyvI)Q=er(SyZJe_8PhzPKc+c3EUiKbCzRkNwvriG>Tc*c(J$@Ap$5_c}y4??clMtGA9-idpp2eXE$pWd;?0uDBd zRqP$jJ$C8g=blD3<4jVXmwi#B#TrH%ZdVYML8@$@c^ zSc`@K0!#9TG6d&yUxQn&tDPAT_Lb6Us6?ddC ztq>Oht{const e=this._refInput.value?.value;h(this,"date-picker:change",{date:e?new Date(e):null})};return l`e()} + @change=${()=>e()} + /> + {r(e),this._refInput.value?.showPicker()}} + > + `}static get styles(){return c(":host {\n display: inline-block;\n position: relative;\n width: var(--mdc-icon-size, 24px);\n height: var(--mdc-icon-size, 24px);\n}\n\ninput {\n display: block;\n height: 100%;\n width: 100%;\n position: absolute;\n padding: 0px;\n border: 0px;\n}\n\n/**\n * Hack warning: Safari on iOS does not support showPicker with\n * datetime-local:\n * https://caniuse.com/mdn-api_htmlinputelement_showpicker_datetime_local_input\n *\n * The hack is to render the input element in front of the icon, with an\n * opacity of 0. This only works if the underlying input element accepts the\n * click at the exact place the user happens to click. From trial and error,\n * this seems to work better than expected / quite reliably, but had the user\n * manually changed icon sizes with Safari iOS their experience may vary.\n */\n@supports (-webkit-touch-callout: none) {\n input {\n opacity: 0;\n z-index: 1;\n }\n}\n@supports not (-webkit-touch-callout: none) {\n input {\n visibility: hidden;\n }\n}\nha-icon {\n display: block;\n height: 100%;\n width: 100%;\n position: absolute;\n}")}};e([t({attribute:!1})],p.prototype,"icon",void 0),p=e([n("frigate-card-date-picker")],p);export{p as F}; diff --git a/config/www/community/frigate-hass-card/date-picker-86e47001.js.gz b/config/www/community/frigate-hass-card/date-picker-86e47001.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..0ee9cf2ad1a464cf8e0b2cc14e8bfdfcc093990b GIT binary patch literal 1022 zcmV@^PE=VXYe(y^Pl9#Xj^7d|p+R@aw(<6GOpc zt3tK#uzF`)ALk-3hBZPx3f%*mc!<3>>{G2O?cN@QfergkM98008vl#h^jZ%d0z?FT zPVwc-&)CnitUzni0Hu+VVldB(`OWF&GZD_(1kJMsqb!}058!Lr3bTfc?`g5V$l@4m zG0YCh>kn@ffxcjepYTeQS}Z}&v#Wi`v#2`I%0LxBgNzHp#E7$#MO0D4KUKck+b6Xs zhBMO6ArRRRPN}UF`fPfa0-ay&sW#ZZv)$d8@L#tkH;0Eettb_i^Z!b-B4-#+N|l~( zZ?mpZH710e7QPH1ylk_}95gl$O#mD3u~Yo{u7}oceoSq~G>_(|G$)5VZ$1nmil`(b z!iTui5YCL3c~-X;skOg1j5R7aEp|0ihH@&GSoen+?Km4$RMynYgGRJRNXr}5#J0v` zs~rVmSwK#CbKHetGHs^nQ*~EQ8g3 z9HVriX_Q&lZ0fdYVQD>{vEzI4Jh{Hcoon{JkPmDlyh#S{#R}=ctYPYh_pGsigUw(Nl?~-f_0X z7+cYt+$OkAm|keiZJZNLss{const e=this._refInput.value?.value;h(this,"date-picker:change",{date:e?new Date(e):null})};return l`e()} + @change=${()=>e()} + /> + {r(e),this._refInput.value?.showPicker()}} + > + `}static get styles(){return c(":host {\n display: inline-block;\n position: relative;\n width: var(--mdc-icon-size, 24px);\n height: var(--mdc-icon-size, 24px);\n}\n\ninput {\n display: block;\n height: 100%;\n width: 100%;\n position: absolute;\n padding: 0px;\n border: 0px;\n}\n\n/**\n * Hack warning: Safari on iOS does not support showPicker with\n * datetime-local:\n * https://caniuse.com/mdn-api_htmlinputelement_showpicker_datetime_local_input\n *\n * The hack is to render the input element in front of the icon, with an\n * opacity of 0. This only works if the underlying input element accepts the\n * click at the exact place the user happens to click. From trial and error,\n * this seems to work better than expected / quite reliably, but had the user\n * manually changed icon sizes with Safari iOS their experience may vary.\n */\n@supports (-webkit-touch-callout: none) {\n input {\n opacity: 0;\n z-index: 1;\n }\n}\n@supports not (-webkit-touch-callout: none) {\n input {\n visibility: hidden;\n }\n}\nha-icon {\n display: block;\n height: 100%;\n width: 100%;\n position: absolute;\n}")}};e([t({attribute:!1})],p.prototype,"icon",void 0),p=e([n("frigate-card-date-picker")],p);export{p as F}; diff --git a/config/www/community/frigate-hass-card/date-picker-cfd85f75.js.gz b/config/www/community/frigate-hass-card/date-picker-cfd85f75.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..6a07b4421b098a29d39c8aeea698d8e1a6891d01 GIT binary patch literal 1022 zcmVI;=xqn!%;1i^Z8DIg*O)8v5UNN7=EP1>FV=^Mg+!@4ox> z@hH_f>*IdGL}0)TiO3@f!vzV&wb_gB^LA)9H4%*~}10Ud55m$<0H2xR0>9rm_1c(Uw zoZ`!uU$LKOS%KE30ZJn!#bBNn^Xtc#uS7U&6Ex2njIwk}uEE!`6=nq)-_v4!mc=pH zVwfG0*Pq@f0)4>_KjD=qwOE3lXBYdBXHj*am4PaN1{oKGi4kXy7EwhF|5W*6Z=ckn z7*0q#hd^XQIHk5y=#%Mf3Uq$4r`lluPIk9r!hhYGTpu3Zw4zj4&i^aTikx9QDOGyD zxyial)tC@=TKF=6@UqR$bI{m4Gy!b9$4>F*yB=D*`8l;2(>$6#ra3v}dHrb!QA8yf z5kAD7hHzrM%(J?+NUi;yVXRTXX|b!BGL%!f#JaC%wBu}0QCU+n4;s-PAT4iH6Wbb( zk*!qR#?W5@U8d2)G)JD2Q7A=hjpyh#S{#XZu4S;N%3_pGsigUw`B^p0(;U*mWk&3b~@J1ol+d?6*c7)U9hCH68AlND@*#EGqigb^iRjID4EOo}=w zSL`j$dlvB^;`Lw}2HsoG6B<#U1%NK8Q$%bDF{Vs~L41d&4jMLLfAlH>(Nl?~-f_0X z7+cXix=nDMFul;2+c+nhR1HQ<3}Z#Q*>R literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/dispatch-live-error-c649b480.js b/config/www/community/frigate-hass-card/dispatch-live-error-c649b480.js new file mode 100644 index 00000000..027ea950 --- /dev/null +++ b/config/www/community/frigate-hass-card/dispatch-live-error-c649b480.js @@ -0,0 +1,33 @@ +import{dx as t,dy as a,dz as n,dA as i,cL as o,dB as e,_ as r,n as s,b as l,t as d,a as c,dC as h,x as m,e as u,dD as p,r as g,dE as _,dF as f,dG as v,dH as b,dI as y,l as z,dc as w}from"./card-320adb66.js"; +/** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const C={},x=t(class extends a{constructor(){super(...arguments),this.ot=C}render(t,a){return a()}update(t,[a,i]){if(Array.isArray(a)){if(Array.isArray(this.ot)&&this.ot.length===a.length&&a.every(((t,a)=>t===this.ot[a])))return n}else if(this.ot===a)return n;return this.ot=Array.isArray(a)?Array.from(a):a,this.render(a,i)}});class I{constructor(){this._options=null,this._viewportIntersecting=null,this._microphoneMuteTimer=new i,this._root=null,this._eventListeners=new Map,this._children=[],this._target=null,this._mutationObserver=new MutationObserver(this._mutationHandler.bind(this)),this._intersectionObserver=new IntersectionObserver(this._intersectionHandler.bind(this)),this._mediaLoadedHandler=async t=>{this._target?.index===t&&(await this._unmuteTargetIfConfigured(this._target.selected?"selected":"visible"),await this._playTargetIfConfigured(this._target.selected?"selected":"visible"))},this._visibilityHandler=async()=>{await this._changeVisibility("visible"===document.visibilityState)},this._changeVisibility=async t=>{t?(await this._unmuteTargetIfConfigured("visible"),await this._playTargetIfConfigured("visible")):(await this._pauseAllIfConfigured("hidden"),await this._muteAllIfConfigured("hidden"))},this._microphoneChangeHandler=async t=>{"unmuted"===t?await this._unmuteTargetIfConfigured("microphone"):"muted"===t&&this._options?.autoMuteConditions?.includes("microphone")&&this._microphoneMuteTimer.start(this._options.microphoneMuteSeconds??60,(async()=>{await this._muteTargetIfConfigured("microphone")}))}}setOptions(t){this._options=t,this._options?.microphoneManager&&(this._options.microphoneManager.removeListener(this._microphoneChangeHandler),this._options.microphoneManager.addListener(this._microphoneChangeHandler))}hasRoot(){return!!this._root}destroy(){this._viewportIntersecting=null,this._microphoneMuteTimer.stop(),this._root=null,this._removeChildHandlers(),this._children=[],this._target=null,this._mutationObserver.disconnect(),this._intersectionObserver.disconnect(),this._options?.microphoneManager?.removeListener(this._microphoneChangeHandler),document.removeEventListener("visibilitychange",this._visibilityHandler)}async setTarget(t,a){this._target?.index===t&&this._target?.selected===a||(this._target?.selected&&(await this._pauseTargetIfConfigured("unselected"),await this._muteTargetIfConfigured("unselected"),this._microphoneMuteTimer.stop()),this._target={selected:a,index:t},a?(await this._unmuteTargetIfConfigured("selected"),await this._playTargetIfConfigured("selected")):(await this._unmuteTargetIfConfigured("visible"),await this._playTargetIfConfigured("visible")))}unsetTarget(){this._target=null}async _playTargetIfConfigured(t){null!==this._target&&this._options?.autoPlayConditions?.includes(t)&&await this._play(this._target.index)}async _play(t){await(this._children[t]?.play())}async _unmuteTargetIfConfigured(t){null!==this._target&&this._options?.autoUnmuteConditions?.includes(t)&&await this._unmute(this._target.index)}async _unmute(t){await(this._children[t]?.unmute())}async _pauseAllIfConfigured(t){if(this._options?.autoPauseConditions?.includes(t))for(const t of this._children.keys())await this._pause(t)}async _pauseTargetIfConfigured(t){null!==this._target&&this._options?.autoPauseConditions?.includes(t)&&await this._pause(this._target.index)}async _pause(t){await(this._children[t]?.pause())}async _muteAllIfConfigured(t){if(this._options?.autoMuteConditions?.includes(t))for(const t of this._children.keys())await this._mute(t)}async _muteTargetIfConfigured(t){null!==this._target&&this._options?.autoMuteConditions?.includes(t)&&await this._mute(this._target.index)}async _mute(t){await(this._children[t]?.mute())}_mutationHandler(t,a){this._initializeRoot()}_removeChildHandlers(){for(const[t,a]of this._eventListeners.entries())t.removeEventListener("frigate-card:media:loaded",a);this._eventListeners.clear()}initialize(t){this._root=t,this._initializeRoot(),document.addEventListener("visibilitychange",this._visibilityHandler),this._intersectionObserver.disconnect(),this._intersectionObserver.observe(t),this._mutationObserver.disconnect(),this._mutationObserver.observe(this._root,{childList:!0,subtree:!0})}_initializeRoot(){if(this._options&&this._root){this._removeChildHandlers(),this._children=[...this._root.querySelectorAll(this._options.playerSelector)];for(const[t,a]of this._children.entries()){const n=()=>this._mediaLoadedHandler(t);this._eventListeners.set(a,n),a.addEventListener("frigate-card:media:loaded",n)}}}async _intersectionHandler(t){const a=this._viewportIntersecting;this._viewportIntersecting=t.some((t=>t.isIntersecting)),null!==a&&a!==this._viewportIntersecting&&await this._changeVisibility(this._viewportIntersecting)}}const A={active:!0,breakpoints:{},lazyLoadCount:0};function L(t={}){let a,n,i;const o=new Set,e=["init","select"],r=["select"];function s(){"hidden"===document.visibilityState&&a.lazyUnloadConditions?.includes("hidden")?o.forEach((t=>{a.lazyUnloadCallback&&(a.lazyUnloadCallback(t,i[t]),o.delete(t))})):"visible"===document.visibilityState&&a.lazyLoadCallback&&d()}function l(t){return o.has(t)}function d(){const t=a.lazyLoadCount,e=n.selectedScrollSnap(),r=new Set;for(let a=1;a<=t&&e-a>=0;a++)r.add(e-a);r.add(e);for(let a=1;a<=t&&e+a{!l(t)&&a.lazyLoadCallback&&(o.add(t),a.lazyLoadCallback(t,i[t]))}))}function c(){const t=n.previousScrollSnap();l(t)&&a.lazyUnloadCallback&&(a.lazyUnloadCallback(t,i[t]),o.delete(t))}return{name:"autoLazyLoad",options:t,init:function(o,l){const{mergeOptions:h,optionsAtMedia:m}=l,u=h(A,t);a=m(u),n=o,i=n.slideNodes(),a.lazyLoadCallback&&e.forEach((t=>n.on(t,d))),a.lazyUnloadCallback&&a.lazyUnloadConditions?.includes("unselected")&&r.forEach((t=>n.on(t,c))),document.addEventListener("visibilitychange",s)},destroy:function(){a.lazyLoadCallback&&e.forEach((t=>n.off(t,d))),a.lazyUnloadCallback&&r.forEach((t=>n.off(t,c))),document.removeEventListener("visibilitychange",s)}}}function S(){let t,a=[];const n=[];function i(i){const o=i.composedPath();for(const[e,r]of[...a.entries()].reverse())if(o.includes(r)){n[e]=i.detail,e!==t.selectedScrollSnap()&&i.stopPropagation();break}}function e(i){const o=i.composedPath();for(const[e,r]of a.entries())if(o.includes(r)){delete n[e],e!==t.selectedScrollSnap()&&i.stopPropagation();break}}function r(){const i=t.selectedScrollSnap(),e=n[i];e&&o(a[i],e)}return{name:"autoMediaLoadedInfo",options:{},init:function(n){t=n,a=t.slideNodes();for(const t of a)t.addEventListener("frigate-card:media:loaded",i),t.addEventListener("frigate-card:media:unloaded",e);t.on("init",r),t.containerNode().addEventListener("frigate-card:carousel:force-select",r)},destroy:function(){for(const t of a)t.removeEventListener("frigate-card:media:loaded",i),t.removeEventListener("frigate-card:media:unloaded",e);t.off("init",r),t.containerNode().removeEventListener("frigate-card:carousel:force-select",r)}}}class T{constructor(t){this._scrolling=!1,this._shouldReInitOnScrollStop=!1,this._scrollingStart=()=>{this._scrolling=!0},this._scrollingStop=()=>{this._scrolling=!1,this._shouldReInitOnScrollStop&&(this._shouldReInitOnScrollStop=!1,this._debouncedReInit())},this._debouncedReInit=e((()=>{this._scrolling=!1,this._shouldReInitOnScrollStop=!1,this._emblaApi?.reInit()}),500,{trailing:!0}),this._emblaApi=t,this._emblaApi.on("scroll",this._scrollingStart),this._emblaApi.on("settle",this._scrollingStop),this._emblaApi.on("destroy",this.destroy)}destroy(){this._emblaApi.off("scroll",this._scrollingStart),this._emblaApi.off("settle",this._scrollingStop),this._emblaApi.off("destroy",this.destroy)}reinit(){this._scrolling?this._shouldReInitOnScrollStop=!0:this._debouncedReInit()}}function $(){let t,a=null,n=null;const i=new Map,o=new ResizeObserver((function(t){let a=!1;for(const n of t){const t={height:n.contentRect.height,width:n.contentRect.width},o=i.get(n.target);t.width&&t.height&&(o?.height!==t.height||o?.width!==t.width)&&(i.set(n.target,t),a=!0)}a&&s()})),r=new IntersectionObserver((function(t){const i=t.some((t=>t.isIntersecting));if(i!==n){const t=i&&null!==n;n=i,t&&a?.reinit()}})),s=e((()=>function(){const{slideRegistry:n,options:{axis:i}}=t.internalEngine();if("y"===i)return;t.containerNode().style.removeProperty("max-height");const o=n[t.selectedScrollSnap()],e=t.slideNodes(),r=Math.max(...o.map((t=>e[t].getBoundingClientRect().height)));!isNaN(r)&&r>0&&(t.containerNode().style.maxHeight=`${r}px`);a?.reinit()}()),200,{trailing:!0});return{name:"autoSize",options:{},init:function(n){t=n,a=new T(t),r.observe(t.containerNode()),o.observe(t.containerNode());for(const a of t.slideNodes())o.observe(a);t.containerNode().addEventListener("frigate-card:media:loaded",s),t.on("settle",s)},destroy:function(){r.disconnect(),o.disconnect(),a?.destroy(),t.containerNode().removeEventListener("frigate-card:media:loaded",s),t.off("settle",s)}}}let P=class extends c{constructor(){super(...arguments),this.disabled=!1,this.label="",this._thumbnailError=!1,this._embedThumbnailTask=h(this,(()=>this.hass),(()=>this.thumbnail))}set controlConfig(t){t?.size&&this.style.setProperty("--frigate-card-next-prev-size",`${t.size}px`),this._controlConfig=t}render(){if(this.disabled||!this._controlConfig||"none"==this._controlConfig.style)return m``;const t=!this.thumbnail||["chevrons","icons"].includes(this._controlConfig.style)||this._thumbnailError,a={controls:!0,left:"left"===this.side,right:"right"===this.side,thumbnails:!t,icons:t,button:t};if(t){const t=this.thumbnail&&this.icon&&"chevrons"!==this._controlConfig.style&&!this._thumbnailError?this.icon:"left"===this.side?"mdi:chevron-left":"mdi:chevron-right";return m` + + `}return p(this._embedThumbnailTask,(t=>t?m``:m``),{inProgressFunc:()=>m`

`,errorFunc:t=>{this._thumbnailError=!0}})}static get styles(){return g("ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n --frigate-card-next-prev-size: 48px;\n --frigate-card-next-prev-size-hover: calc(var(--frigate-card-next-prev-size) * 2);\n --frigate-card-left-position: 45px;\n --frigate-card-right-position: 45px;\n --mdc-icon-button-size: var(--frigate-card-next-prev-size);\n --mdc-icon-size: calc(var(--mdc-icon-button-size) / 2);\n}\n\n.controls {\n position: absolute;\n z-index: 1;\n overflow: hidden;\n}\n\n.controls.left {\n left: var(--frigate-card-left-position);\n}\n\n.controls.right {\n right: var(--frigate-card-right-position);\n}\n\n.controls.icons {\n top: calc(50% - var(--frigate-card-next-prev-size) / 2);\n}\n\n.controls.thumbnails {\n border-radius: 50%;\n height: var(--frigate-card-next-prev-size);\n top: calc(50% - var(--frigate-card-next-prev-size) / 2);\n box-shadow: var(--frigate-card-css-box-shadow, 0px 0px 20px 5px black);\n transition: all 0.2s ease-out;\n opacity: 0.8;\n aspect-ratio: 1/1;\n}\n\n.controls.thumbnails:hover {\n opacity: 1 !important;\n height: var(--frigate-card-next-prev-size-hover);\n top: calc(50% - var(--frigate-card-next-prev-size-hover) / 2);\n}\n\n.controls.left.thumbnails:hover {\n left: calc(var(--frigate-card-left-position) - (var(--frigate-card-next-prev-size-hover) - var(--frigate-card-next-prev-size)) / 2);\n}\n\n.controls.right.thumbnails:hover {\n right: calc(var(--frigate-card-right-position) - (var(--frigate-card-next-prev-size-hover) - var(--frigate-card-next-prev-size)) / 2);\n}")}};r([s({attribute:!1})],P.prototype,"side",void 0),r([s({attribute:!1})],P.prototype,"hass",void 0),r([l()],P.prototype,"_controlConfig",void 0),r([s({attribute:!1})],P.prototype,"thumbnail",void 0),r([s({attribute:!1})],P.prototype,"icon",void 0),r([s({attribute:!0,type:Boolean})],P.prototype,"disabled",void 0),r([s()],P.prototype,"label",void 0),r([l()],P.prototype,"_thumbnailError",void 0),P=r([d("frigate-card-next-previous-control")],P);class k{constructor(t){this._config=null,this._hass=null,this._cameraManager=null,this._cameraID=null,this._host=t}setConfig(t){this._config=t??null,this._host.setAttribute("data-orientation",t?.orientation??"horizontal"),this._host.setAttribute("data-position",t?.position??"bottom-right"),this._host.setAttribute("style",Object.entries(t?.style??{}).map((([t,a])=>`${t}:${a}`)).join(";"))}getConfig(){return this._config}setCamera(t,a){this._cameraManager=t??null,this._cameraID=a??null}setForceVisibility(t){this._forceVisibility=t}handleAction(t,a){t.stopPropagation();const n=t.detail.action,i=_(n,a);i&&f(this._host,{action:i,...a&&{config:a}})}hasUsefulAction(){const t={pt:!0,z:!0,home:!0};if(!this._cameraID)return t;const a=this._cameraManager?.getCameraCapabilities(this._cameraID);if(!a||!a.hasPTZCapability())return t;const n=a.getPTZCapabilities();return{pt:!!(n?.up||n?.down||n?.left||n?.right),z:!!n?.zoomIn||!!n?.zoomOut,home:!!n?.presets?.length}}shouldDisplay(){return void 0!==this._forceVisibility?this._forceVisibility:"auto"===this._config?.mode?!!this._cameraID&&!!this._cameraManager?.getCameraCapabilities(this._cameraID)?.hasPTZCapability():"on"===this._config?.mode}getPTZActions(){const t=t=>({start_tap_action:v({ptzAction:t?.ptzAction,ptzPhase:"start",ptzPreset:t?.preset}),end_tap_action:v({ptzAction:t?.ptzAction,ptzPhase:"stop",ptzPreset:t?.preset})}),a={};return a.up=t({ptzAction:"up"}),a.down=t({ptzAction:"down"}),a.left=t({ptzAction:"left"}),a.right=t({ptzAction:"right"}),a.zoom_in=t({ptzAction:"zoom_in"}),a.zoom_out=t({ptzAction:"zoom_out"}),a.home={tap_action:v()},a}}let E=class extends c{constructor(){super(...arguments),this._controller=new k(this),this._actions=this._controller.getPTZActions(),this._actionPresence=null}willUpdate(t){t.has("config")&&this._controller.setConfig(this.config),(t.has("cameraManager")||t.has("cameraID"))&&this._controller.setCamera(this.cameraManager,this.cameraID),t.has("forceVisibility")&&this._controller.setForceVisibility(this.forceVisibility),(t.has("cameraID")||t.has("cameraManager"))&&(this._actionPresence=this._controller.hasUsefulAction())}render(){if(!this._controller.shouldDisplay())return;const t=(t,a,n)=>n?m`this._controller.handleAction(t,n)} + >`:m``,a=this._controller.getConfig();return m`
+ ${!a?.hide_pan_tilt&&this._actionPresence?.pt?m`
+ ${t("right","mdi:arrow-right",this._actions.right)} + ${t("left","mdi:arrow-left",this._actions.left)} + ${t("up","mdi:arrow-up",this._actions.up)} + ${t("down","mdi:arrow-down",this._actions.down)} +
`:""} + ${!a?.hide_zoom&&this._actionPresence?.z?m`
+ ${t("zoom_in","mdi:plus",this._actions.zoom_in)} + ${t("zoom_out","mdi:minus",this._actions.zoom_out)} +
`:m``} + ${!a?.hide_home&&this._actionPresence?.home?m`
+ ${t("home","mdi:home",this._actions.home)} +
`:m``} +
`}static get styles(){return g(":host {\n position: absolute;\n width: fit-content;\n height: fit-content;\n --frigate-card-ptz-icon-size: 24px;\n}\n\n:host([data-position$=-left]) {\n left: 5%;\n}\n\n:host([data-position$=-right]) {\n right: 5%;\n}\n\n:host([data-position^=top-]) {\n top: 5%;\n}\n\n:host([data-position^=bottom-]) {\n bottom: 5%;\n}\n\n/*****************\n * Main Containers\n *****************/\n.ptz {\n display: flex;\n gap: 10px;\n color: var(--light-primary-color);\n opacity: 0.4;\n transition: opacity 0.3s ease-in-out;\n}\n\n:host([data-orientation=vertical]) .ptz {\n flex-direction: column;\n}\n\n:host([data-orientation=horizontal]) .ptz {\n flex-direction: row;\n}\n\n.ptz:hover {\n opacity: 1;\n}\n\n:host([data-orientation=vertical]) .ptz div {\n width: calc(var(--frigate-card-ptz-icon-size) * 3);\n}\n\n:host([data-orientation=horizontal]) .ptz div {\n height: calc(var(--frigate-card-ptz-icon-size) * 3);\n}\n\n.ptz-move,\n.ptz-zoom,\n.ptz-home {\n position: relative;\n background-color: rgba(0, 0, 0, 0.3);\n}\n\n.ptz-move {\n height: calc(var(--frigate-card-ptz-icon-size) * 3);\n width: calc(var(--frigate-card-ptz-icon-size) * 3);\n border-radius: 50%;\n}\n\n:host([data-orientation=horizontal]) .ptz .ptz-zoom,\n:host([data-orientation=horizontal]) .ptz .ptz-home {\n width: calc(var(--frigate-card-ptz-icon-size) * 1.5);\n}\n\n:host([data-orientation=vertical]) .ptz .ptz-zoom,\n:host([data-orientation=vertical]) .ptz .ptz-home {\n height: calc(var(--frigate-card-ptz-icon-size) * 1.5);\n}\n\n.ptz-zoom,\n.ptz-home {\n border-radius: var(--ha-card-border-radius, 4px);\n}\n\n/***********\n * PTZ Icons\n ***********/\nha-icon {\n position: absolute;\n --mdc-icon-size: var(--frigate-card-ptz-icon-size);\n}\n\nha-icon:not(.disabled) {\n cursor: pointer;\n}\n\n.disabled {\n color: var(--disabled-text-color);\n}\n\n.up {\n top: 5px;\n left: 50%;\n transform: translateX(-50%);\n}\n\n.down {\n bottom: 5px;\n left: 50%;\n transform: translateX(-50%);\n}\n\n.left {\n left: 5px;\n top: 50%;\n transform: translateY(-50%);\n}\n\n.right {\n right: 5px;\n top: 50%;\n transform: translateY(-50%);\n}\n\n:host([data-orientation=vertical]) .zoom_in {\n right: 5px;\n top: 50%;\n}\n\n:host([data-orientation=vertical]) .zoom_out {\n left: 5px;\n top: 50%;\n}\n\n:host([data-orientation=horizontal]) .zoom_in {\n left: 50%;\n top: 5px;\n}\n\n:host([data-orientation=horizontal]) .zoom_out {\n left: 50%;\n bottom: 5px;\n}\n\n:host([data-orientation=vertical]) .zoom_in,\n:host([data-orientation=vertical]) .zoom_out {\n transform: translateY(-50%);\n}\n\n:host([data-orientation=horizontal]) .zoom_in,\n:host([data-orientation=horizontal]) .zoom_out {\n transform: translateX(-50%);\n}\n\n.home {\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n}")}};r([s({attribute:!1})],E.prototype,"config",void 0),r([s({attribute:!1})],E.prototype,"cameraManager",void 0),r([s({attribute:!1})],E.prototype,"cameraID",void 0),r([s({attribute:!1})],E.prototype,"forceVisibility",void 0),E=r([d("frigate-card-ptz")],E);const M=(t,a)=>{void 0!==a?.fit?t.style.setProperty("--frigate-card-media-layout-fit",a.fit):t.style.removeProperty("--frigate-card-media-layout-fit");for(const n of["x","y"])void 0!==a?.position?.[n]?t.style.setProperty(`--frigate-card-media-layout-position-${n}`,`${a.position[n]}%`):t.style.removeProperty(`--frigate-card-media-layout-position-${n}`);for(const n of["top","bottom","left","right"])void 0!==a?.view_box?.[n]?t.style.setProperty(`--frigate-card-media-layout-view-box-${n}`,`${a.view_box[n]}%`):t.style.removeProperty(`--frigate-card-media-layout-view-box-${n}`)},H=2,O=(t,a)=>{t._controlsHideTimer&&(t._controlsHideTimer.stop(),delete t._controlsHideTimer,delete t._controlsOriginalValue),t.controls=a},R=(t,a=1)=>{const n=t._controlsOriginalValue??t.controls;O(t,!1),t._controlsHideTimer??=new i,t._controlsOriginalValue=n;const o=()=>{O(t,n),t.removeEventListener("loadstart",o)};t.addEventListener("loadstart",o),t._controlsHideTimer.start(a,(()=>{O(t,n)}))},N=async(t,a)=>{if(a?.play)try{await a.play()}catch(n){if("NotAllowedError"===n.name&&!t.isMuted()){await t.mute();try{await a.play()}catch(t){}}}};function D(t){w(t,"live:error")}export{L as A,I as M,S as a,$ as b,H as c,D as d,R as h,x as i,N as p,O as s,M as u}; diff --git a/config/www/community/frigate-hass-card/dispatch-live-error-c649b480.js.gz b/config/www/community/frigate-hass-card/dispatch-live-error-c649b480.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..c2e598ebdd4b448131176997aecebc82ce126ae4 GIT binary patch literal 6281 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 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/editor-0c0425c2.js b/config/www/community/frigate-hass-card/editor-0c0425c2.js new file mode 100644 index 00000000..2c7a83b1 --- /dev/null +++ b/config/www/community/frigate-hass-card/editor-0c0425c2.js @@ -0,0 +1,462 @@ +import{i as e,s as a,_ as t,n as i,t as n,a as s,x as o,e as r,l,r as c,b as d,c as m,d as u,p as h,f as _,g,h as b,j as p,k as v,C as f,m as $,o as y,q as w,u as S,v as x,w as M,y as I,z as k,A as O,B as C,D as z,E as A,F as N,G as T,H as B,I as E,J as P,K as H,L,M as V,N as K,O as U,P as j,Q as q,R,S as D,T as F,U as G,V as J,W as Q,X as W,Y as X,Z as Y,$ as Z,a0 as ee,a1 as ae,a2 as te,a3 as ie,a4 as ne,a5 as se,a6 as oe,a7 as re,a8 as le,a9 as ce,aa as de,ab as me,ac as ue,ad as he,ae as _e,af as ge,ag as be,ah as pe,ai as ve,aj as fe,ak as $e,al as ye,am as we,an as Se,ao as xe,ap as Me,aq as Ie,ar as ke,as as Oe,at as Ce,au as ze,av as Ae,aw as Ne,ax as Te,ay as Be,az as Ee,aA as Pe,aB as He,aC as Le,aD as Ve,aE as Ke,aF as Ue,aG as je,aH as qe,aI as Re,aJ as De,aK as Fe,aL as Ge,aM as Je,aN as Qe,aO as We,aP as Xe,aQ as Ye,aR as Ze,aS as ea,aT as aa,aU as ta,aV as ia,aW as na,aX as sa,aY as oa,aZ as ra,a_ as la,a$ as ca,b0 as da,b1 as ma,b2 as ua,b3 as ha,b4 as _a,b5 as ga,b6 as ba,b7 as pa,b8 as va,b9 as fa,ba as $a,bb as ya,bc as wa,bd as Sa,be as xa,bf as Ma,bg as Ia,bh as ka,bi as Oa,bj as Ca,bk as za,bl as Aa,bm as Na,bn as Ta,bo as Ba,bp as Ea,bq as Pa,br as Ha,bs as La,bt as Va,bu as Ka,bv as Ua,bw as ja,bx as qa,by as Ra,bz as Da,bA as Fa,bB as Ga,bC as Ja,bD as Qa,bE as Wa,bF as Xa,bG as Ya,bH as Za,bI as et,bJ as at,bK as tt,bL as it,bM as nt,bN as st,bO as ot,bP as rt,bQ as lt,bR as ct,bS as dt,bT as mt,bU as ut,bV as ht,bW as _t,bX as gt,bY as bt,bZ as pt,b_ as vt,b$ as ft,c0 as $t,c1 as yt,c2 as wt,c3 as St,c4 as xt,c5 as Mt,c6 as It,c7 as kt,c8 as Ot,c9 as Ct,ca as zt,cb as At,cc as Nt,cd as Tt,ce as Bt,cf as Et,cg as Pt,ch as Ht,ci as Lt,cj as Vt,ck as Kt,cl as Ut,cm as jt,cn as qt,co as Rt,cp as Dt,cq as Ft,cr as Gt,cs as Jt,ct as Qt,cu as Wt,cv as Xt,cw as Yt,cx as Zt,cy as ei,cz as ai,cA as ti,cB as ii,cC as ni,cD as si,cE as oi,cF as ri,cG as li,cH as ci,cI as di,cJ as mi,cK as ui}from"./card-320adb66.js";class hi{constructor(e){this._assigning=!1,this._value=null,this._blurEventHandler=()=>{this._setAssigning(!1)},this._keydownEventHandler=e=>{e.key&&!["Control","Alt","Shift","Meta"].includes(e.key)&&(this.setValue({key:e.key,ctrl:e.ctrlKey,alt:e.altKey,shift:e.shiftKey,meta:e.metaKey}),this._setAssigning(!1))},this._host=e,this._host.addController(this)}setValue(a){e(a,this._value)||(this._value=a,this._host.requestUpdate(),this._host.dispatchEvent(new CustomEvent("value-changed",{detail:{value:this._value}})))}getValue(){return this._value}hasValue(){return!!this._value}isAssigning(){return this._assigning}toggleAssigning(){this._setAssigning(!this._assigning)}_setAssigning(e){this._assigning=e,a(this._host,this._assigning,"assigning"),this._assigning?this._host.addEventListener("keydown",this._keydownEventHandler):this._host.removeEventListener("keydown",this._keydownEventHandler),this._host.requestUpdate()}hostConnected(){this._host.addEventListener("blur",this._blurEventHandler)}hostDisconnected(){this._host.removeEventListener("blur",this._blurEventHandler)}}let _i=class extends s{constructor(){super(...arguments),this._controller=new hi(this)}willUpdate(e){e.has("value")&&this._controller.setValue(this.value??null)}render(){if(!this.label)return;const e=e=>o`
+
${e}
+
`;return o` +
${this.label}
+ {this._controller.toggleAssigning()}} + > + + + ${this._controller.isAssigning()?l("key_assigner.assigning"):l("key_assigner.assign")} + + + ${this._controller.hasValue()?o`{this._controller.setValue(null)}} + > + + ${l("key_assigner.unassign")} + `:""} +
+ ${this.value?.ctrl?e(l("key_assigner.modifiers.ctrl")):""} + ${this.value?.shift?e(l("key_assigner.modifiers.shift")):""} + ${this.value?.meta?e(l("key_assigner.modifiers.meta")):""} + ${this.value?.alt?e(l("key_assigner.modifiers.alt")):""} + ${this.value?.key?e(this.value.key):""} +
+ `}static get styles(){return c('.dotdotdot:after {\n animation: dots 2s linear infinite;\n content: "";\n display: inline-block;\n width: 3em;\n}\n@keyframes dots {\n 0%, 20% {\n content: ".";\n }\n 40% {\n content: "..";\n }\n 60% {\n content: "...";\n }\n 90%, 100% {\n content: "";\n }\n}\n\n:host {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 10px;\n height: 56px;\n border: 1px solid var(--divider-color);\n}\n\n:host([assigning]) ha-button.assign span,\n:host([assigning]) ha-button.assign ha-icon {\n color: var(--warning-color);\n}\n\nha-icon {\n padding: 10px;\n}\n\ndiv.label {\n width: 100px;\n margin-left: 4px;\n}\n\ndiv.key-row {\n flex: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n padding-left: 10px;\n padding-right: 10px;\n}\n\ndiv.key {\n display: flex;\n align-items: center;\n height: 90%;\n width: min-content;\n margin-left: 5px;\n margin-right: 5px;\n}\n\ndiv.key-inner {\n height: 100%;\n width: 100%;\n padding-top: 2px;\n padding-bottom: 2px;\n padding-left: 4px;\n padding-right: 4px;\n border: 2px;\n border-radius: 4px;\n border-style: outset;\n border-color: var(--divider-color);\n font-family: monospace;\n text-transform: capitalize;\n}\n\ndiv.unassigned {\n font-style: italic;\n}\n\ndiv.key + div.key:before {\n display: flex;\n align-items: center;\n margin-right: 5px;\n content: " + ";\n}')}};t([i({attribute:!1})],_i.prototype,"label",void 0),t([i({attribute:!1})],_i.prototype,"value",void 0),_i=t([n("frigate-card-key-assigner")],_i);const gi="cameras",bi="options",pi={cameras:{icon:"video",name:l("editor.cameras"),secondary:l("editor.cameras_secondary")},view:{icon:"eye",name:l("editor.view"),secondary:l("editor.view_secondary")},menu:{icon:"menu",name:l("editor.menu"),secondary:l("editor.menu_secondary")},status_bar:{icon:"sign-text",name:l("editor.status_bar"),secondary:l("editor.status_bar_secondary")},live:{icon:"cctv",name:l("editor.live"),secondary:l("editor.live_secondary")},media_gallery:{icon:"grid",name:l("editor.media_gallery"),secondary:l("editor.media_gallery_secondary")},media_viewer:{icon:"filmstrip",name:l("editor.media_viewer"),secondary:l("editor.media_viewer_secondary")},image:{icon:"image",name:l("editor.image"),secondary:l("editor.image_secondary")},timeline:{icon:"chart-gantt",name:l("editor.timeline"),secondary:l("editor.timeline_secondary")},dimensions:{icon:"aspect-ratio",name:l("editor.dimensions"),secondary:l("editor.dimensions_secondary")},performance:{icon:"speedometer",name:l("editor.performance"),secondary:l("editor.performance_secondary")},profiles:{icon:"folder-wrench-outline",name:l("editor.profiles"),secondary:l("editor.profiles_secondary")},overrides:{icon:"file-replace",name:l("editor.overrides"),secondary:l("editor.overrides_secondary")}};let vi=class extends s{constructor(){super(...arguments),this._defaults=m(di),this._initialized=!1,this._configUpgradeable=!1,this._expandedMenus={},this._viewModes=[{value:"",label:""},{value:"live",label:l("config.view.views.live")},{value:"clips",label:l("config.view.views.clips")},{value:"snapshots",label:l("config.view.views.snapshots")},{value:"recordings",label:l("config.view.views.recordings")},{value:"clip",label:l("config.view.views.clip")},{value:"snapshot",label:l("config.view.views.snapshot")},{value:"recording",label:l("config.view.views.recording")},{value:"image",label:l("config.view.views.image")},{value:"timeline",label:l("config.view.views.timeline")}],this._cameraSelectViewModes=[...this._viewModes,{value:"current",label:l("config.view.views.current")}],this._filterModes=[{value:"",label:""},{value:"none",label:l("config.common.controls.filter.modes.none")},{value:"left",label:l("config.common.controls.filter.modes.left")},{value:"right",label:l("config.common.controls.filter.modes.right")}],this._menuStyles=[{value:"",label:""},{value:"none",label:l("config.menu.styles.none")},{value:"hidden",label:l("config.menu.styles.hidden")},{value:"overlay",label:l("config.menu.styles.overlay")},{value:"hover",label:l("config.menu.styles.hover")},{value:"hover-card",label:l("config.menu.styles.hover-card")},{value:"outside",label:l("config.menu.styles.outside")}],this._menuPositions=[{value:"",label:""},{value:"left",label:l("config.menu.positions.left")},{value:"right",label:l("config.menu.positions.right")},{value:"top",label:l("config.menu.positions.top")},{value:"bottom",label:l("config.menu.positions.bottom")}],this._menuAlignments=[{value:"",label:""},{value:"left",label:l("config.menu.alignments.left")},{value:"right",label:l("config.menu.alignments.right")},{value:"top",label:l("config.menu.alignments.top")},{value:"bottom",label:l("config.menu.alignments.bottom")}],this._nextPreviousControlStyles=[{value:"",label:""},{value:"chevrons",label:l("config.common.controls.next_previous.styles.chevrons")},{value:"icons",label:l("config.common.controls.next_previous.styles.icons")},{value:"none",label:l("config.common.controls.next_previous.styles.none")},{value:"thumbnails",label:l("config.common.controls.next_previous.styles.thumbnails")}],this._aspectRatioModes=[{value:"",label:""},{value:"dynamic",label:l("config.dimensions.aspect_ratio_modes.dynamic")},{value:"static",label:l("config.dimensions.aspect_ratio_modes.static")},{value:"unconstrained",label:l("config.dimensions.aspect_ratio_modes.unconstrained")}],this._thumbnailModes=[{value:"",label:""},{value:"none",label:l("config.common.controls.thumbnails.modes.none")},{value:"above",label:l("config.common.controls.thumbnails.modes.above")},{value:"below",label:l("config.common.controls.thumbnails.modes.below")},{value:"left",label:l("config.common.controls.thumbnails.modes.left")},{value:"right",label:l("config.common.controls.thumbnails.modes.right")}],this._thumbnailMediaTypes=[{value:"",label:""},{value:"events",label:l("config.common.controls.thumbnails.media_types.events")},{value:"recordings",label:l("config.common.controls.thumbnails.media_types.recordings")}],this._thumbnailEventsMediaTypes=[{value:"",label:""},{value:"clips",label:l("config.common.controls.thumbnails.events_media_types.clips")},{value:"snapshots",label:l("config.common.controls.thumbnails.events_media_types.snapshots")}],this._transitionEffects=[{value:"",label:""},{value:"none",label:l("config.media_viewer.transition_effects.none")},{value:"slide",label:l("config.media_viewer.transition_effects.slide")}],this._imageModes=[{value:"",label:""},{value:"camera",label:l("config.common.image.modes.camera")},{value:"entity",label:l("config.common.image.modes.entity")},{value:"screensaver",label:l("config.common.image.modes.screensaver")},{value:"url",label:l("config.common.image.modes.url")}],this._timelineEventsMediaTypes=[{value:"",label:""},{value:"all",label:l("config.common.timeline.events_media_types.all")},{value:"clips",label:l("config.common.timeline.events_media_types.clips")},{value:"snapshots",label:l("config.common.timeline.events_media_types.snapshots")}],this._timelineStyleTypes=[{value:"",label:""},{value:"ribbon",label:l("config.common.timeline.styles.ribbon")},{value:"stack",label:l("config.common.timeline.styles.stack")}],this._darkModes=[{value:"",label:""},{value:"on",label:l("config.view.dark_modes.on")},{value:"off",label:l("config.view.dark_modes.off")},{value:"auto",label:l("config.view.dark_modes.auto")}],this._mediaActionNegativeConditions=[{value:"",label:""},{value:"unselected",label:l("config.common.media_action_conditions.unselected")},{value:"hidden",label:l("config.common.media_action_conditions.hidden")}],this._mediaActionPositiveConditions=[{value:"",label:""},{value:"selected",label:l("config.common.media_action_conditions.selected")},{value:"visible",label:l("config.common.media_action_conditions.visible")}],this._mediaLiveUnmuteConditions=[...this._mediaActionPositiveConditions,{value:"microphone",label:l("config.common.media_action_conditions.microphone_unmute")}],this._mediaLiveMuteConditions=[...this._mediaActionNegativeConditions,{value:"microphone",label:l("config.common.media_action_conditions.microphone_mute")}],this._layoutFits=[{value:"",label:""},{value:"contain",label:l("config.cameras.dimensions.layout.fits.contain")},{value:"cover",label:l("config.cameras.dimensions.layout.fits.cover")},{value:"fill",label:l("config.cameras.dimensions.layout.fits.fill")}],this._miniTimelineModes=[{value:"",label:""},{value:"none",label:l("config.common.controls.timeline.modes.none")},{value:"above",label:l("config.common.controls.timeline.modes.above")},{value:"below",label:l("config.common.controls.timeline.modes.below")}],this._profiles=[{value:"",label:""},{value:"casting",label:l("config.profiles.casting")},{value:"low-performance",label:l("config.profiles.low-performance")},{value:"scrubbing",label:l("config.profiles.scrubbing")}],this._go2rtcModes=[{value:"",label:""},{value:"mse",label:l("config.cameras.go2rtc.modes.mse")},{value:"webrtc",label:l("config.cameras.go2rtc.modes.webrtc")},{value:"mp4",label:l("config.cameras.go2rtc.modes.mp4")},{value:"mjpeg",label:l("config.cameras.go2rtc.modes.mjpeg")}],this._microphoneButtonTypes=[{value:"",label:""},{value:"momentary",label:l("config.menu.buttons.types.momentary")},{value:"toggle",label:l("config.menu.buttons.types.toggle")}],this._displayModes=[{value:"",label:""},{value:"single",label:l("display_modes.single")},{value:"grid",label:l("display_modes.grid")}],this._castMethods=[{value:"",label:""},{value:"standard",label:l("config.cameras.cast.methods.standard")},{value:"dashboard",label:l("config.cameras.cast.methods.dashboard")}],this._ptzModes=[{value:"",label:""},{value:"on",label:l("config.live.controls.ptz.modes.on")},{value:"off",label:l("config.live.controls.ptz.modes.off")}],this._ptzOrientations=[{value:"",label:""},{value:"vertical",label:l("config.live.controls.ptz.orientations.vertical")},{value:"horizontal",label:l("config.live.controls.ptz.orientations.horizontal")}],this._ptzPositions=[{value:"",label:""},{value:"top-left",label:l("config.live.controls.ptz.positions.top-left")},{value:"top-right",label:l("config.live.controls.ptz.positions.top-right")},{value:"bottom-left",label:l("config.live.controls.ptz.positions.bottom-left")},{value:"bottom-right",label:l("config.live.controls.ptz.positions.bottom-right")}],this._triggersActionsInteractionModes=[{value:"",label:""},{value:"all",label:l("config.view.triggers.actions.interaction_modes.all")},{value:"inactive",label:l("config.view.triggers.actions.interaction_modes.inactive")},{value:"active",label:l("config.view.triggers.actions.interaction_modes.active")}],this._triggersActionsTrigger=[{value:"",label:""},{value:"default",label:l("config.view.triggers.actions.triggers.default")},{value:"live",label:l("config.view.triggers.actions.triggers.live")},{value:"media",label:l("config.view.triggers.actions.triggers.media")},{value:"none",label:l("config.view.triggers.actions.triggers.none")}],this._triggersActionsUntrigger=[{value:"",label:""},{value:"default",label:l("config.view.triggers.actions.untriggers.default")},{value:"none",label:l("config.view.triggers.actions.untriggers.none")}],this._triggersEvents=[{value:"",label:""},{value:"events",label:l("config.cameras.triggers.events.events")},{value:"clips",label:l("config.cameras.triggers.events.clips")},{value:"snapshots",label:l("config.cameras.triggers.events.snapshots")}],this._timelinePanModes=[{value:"",label:""},{value:"pan",label:l("config.common.controls.timeline.pan_modes.pan")},{value:"seek",label:l("config.common.controls.timeline.pan_modes.seek")},{value:"seek-in-media",label:l("config.common.controls.timeline.pan_modes.seek-in-media")},{value:"seek-in-camera",label:l("config.common.controls.timeline.pan_modes.seek-in-camera")}],this._capabilities=[{value:"",label:""},{value:"live",label:l("config.cameras.capabilities.capabilities.live")},{value:"substream",label:l("config.cameras.capabilities.capabilities.substream")},{value:"clips",label:l("config.cameras.capabilities.capabilities.clips")},{value:"recordings",label:l("config.cameras.capabilities.capabilities.recordings")},{value:"snapshots",label:l("config.cameras.capabilities.capabilities.snapshots")},{value:"favorite-events",label:l("config.cameras.capabilities.capabilities.favorite-events")},{value:"favorite-recordings",label:l("config.cameras.capabilities.capabilities.favorite-recordings")},{value:"seek",label:l("config.cameras.capabilities.capabilities.seek")},{value:"ptz",label:l("config.cameras.capabilities.capabilities.ptz")},{value:"menu",label:l("config.cameras.capabilities.capabilities.menu")}],this._defaultResetInteractionModes=[{value:"",label:""},{value:"all",label:l("config.view.default_reset.interaction_modes.all")},{value:"inactive",label:l("config.view.default_reset.interaction_modes.inactive")},{value:"active",label:l("config.view.default_reset.interaction_modes.active")}],this._proxyMedia=[{value:"",label:""},{value:"auto",label:l("config.cameras.proxy.media.auto")},{value:!0,label:l("config.cameras.proxy.media.true")},{value:!1,label:l("config.cameras.proxy.media.false")}],this._proxySSLCiphers=[{value:"",label:""},{value:"auto",label:l("config.cameras.proxy.ssl_ciphers.auto")},{value:"default",label:l("config.cameras.proxy.ssl_ciphers.default")},{value:"insecure",label:l("config.cameras.proxy.ssl_ciphers.insecure")},{value:"intermediate",label:l("config.cameras.proxy.ssl_ciphers.intermediate")},{value:"modern",label:l("config.cameras.proxy.ssl_ciphers.modern")}],this._proxySSLVerification=[{value:"",label:""},{value:"auto",label:l("config.cameras.proxy.ssl_verification.auto")},{value:!0,label:l("config.cameras.proxy.ssl_verification.true")},{value:!1,label:l("config.cameras.proxy.ssl_verification.false")}],this._reolinkMediaResolution=[{value:"",label:""},{value:"high",label:l("config.cameras.reolink.media_resolution.high")},{value:"low",label:l("config.cameras.reolink.media_resolution.low")}],this._statusBarStyles=[{value:"",label:""},{value:"hover",label:l("config.status_bar.styles.hover")},{value:"hover-card",label:l("config.status_bar.styles.hover-card")},{value:"none",label:l("config.status_bar.styles.none")},{value:"outside",label:l("config.status_bar.styles.outside")},{value:"overlay",label:l("config.status_bar.styles.overlay")},{value:"popup",label:l("config.status_bar.styles.popup")}],this._statusBarPositions=[{value:"",label:""},{value:"top",label:l("config.status_bar.positions.top")},{value:"bottom",label:l("config.status_bar.positions.bottom")}]}setConfig(e){this._config=e,this._configUpgradeable=u(e);const a=h.safeParse(this._config.profiles);if(a.success){const e=m(di);_(this._config,e,a.data),this._defaults=e}}willUpdate(){this._initialized||g().then((e=>{e&&(this._initialized=!0)}))}_renderOptionSetHeader(e,a){const t=pi[e];return o` +
+
+ +
${t.name}
+
+
${t.secondary}
+
+ `}_getLabel(e){const a=e.split(".").filter((e=>!e.match(/^\[[0-9]+\]$/))).join(".");return l(`config.${a}`)}_renderEntitySelector(e,a){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_renderOptionSelector(e,a=[],t){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_renderIconSelector(e,a){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_renderNumberInput(e,a){if(!this._config)return;const t=b(this._config,e),i=void 0===a?.max?"box":"slider";return o` + this._valueChangedHandler(e,a)} + > + + `}_renderInfo(e){return o` ${e}`}_getEditorCameraTitle(e,a){return"string"==typeof a?.title&&a.title||("string"==typeof a?.camera_entity?p(this.hass,a.camera_entity):"")||"object"==typeof a?.webrtc_card&&a.webrtc_card&&"string"==typeof a.webrtc_card.entity&&a.webrtc_card.entity||("object"==typeof a?.frigate&&a.frigate&&"string"==typeof a?.frigate.camera_name&&a.frigate.camera_name?v(a.frigate.camera_name):"")||"string"==typeof a?.id&&a.id||l("editor.camera")+" #"+e}_renderViewDefaultResetMenu(){return this._putInSubmenu("view.default_reset",!0,`config.${f}.editor_label`,"mdi:restart",o` + ${this._renderSwitch($,this._defaults.view.default_reset.after_interaction)} + ${this._renderNumberInput(y)} + ${this._renderOptionSelector(w,this._defaultResetInteractionModes,{label:l("config.view.default_reset.interaction_mode")})}, + ${this._renderOptionSelector(S,this.hass?x(this.hass):[],{multiple:!0})} + `)}_renderViewTriggersMenu(){return this._putInSubmenu("view.triggers",!0,`config.${M}.editor_label`,"mdi:target-account",o` + ${this._renderSwitch(I,this._defaults.view.triggers.filter_selected_camera,{label:l(`config.${I}`)})} + ${this._renderSwitch(k,this._defaults.view.triggers.show_trigger_status,{label:l(`config.${k}`)})} + ${this._renderNumberInput(O,{default:this._defaults.view.triggers.untrigger_seconds})} + ${this._putInSubmenu("view.triggers.actions",!0,`config.${C}.editor_label`,"mdi:cogs",o` ${this._renderOptionSelector(z,this._triggersActionsTrigger,{label:l("config.view.triggers.actions.trigger")})} + ${this._renderOptionSelector(A,this._triggersActionsUntrigger,{label:l("config.view.triggers.actions.untrigger")})} + ${this._renderOptionSelector(N,this._triggersActionsInteractionModes,{label:l("config.view.triggers.actions.interaction_mode")})}`)} + `)}_renderKeyAssigner(e,a){return o` this._valueChangedHandler(e,a)} + >`}_renderViewKeyboardShortcutMenu(){return this._putInSubmenu("view.keyboard_shortcuts",!0,`config.${T}.editor_label`,"mdi:keyboard",o` + ${this._renderSwitch(B,this._defaults.view.keyboard_shortcuts.enabled,{label:l(`config.${B}`)})} + ${this._renderKeyAssigner(E,this._defaults.view.keyboard_shortcuts.ptz_left)} + ${this._renderKeyAssigner(P,this._defaults.view.keyboard_shortcuts.ptz_right)} + ${this._renderKeyAssigner(H,this._defaults.view.keyboard_shortcuts.ptz_up)} + ${this._renderKeyAssigner(L,this._defaults.view.keyboard_shortcuts.ptz_down)} + ${this._renderKeyAssigner(V,this._defaults.view.keyboard_shortcuts.ptz_zoom_in)} + ${this._renderKeyAssigner(K,this._defaults.view.keyboard_shortcuts.ptz_zoom_out)} + ${this._renderKeyAssigner(U,this._defaults.view.keyboard_shortcuts.ptz_home)} + `)}_renderStatusBarItem(e){return o` ${this._putInSubmenu("status_bar.items",e,`config.status_bar.items.${e}`,"mdi:feature-search",o` + ${this._renderSwitch(`${j}.${e}.enabled`,this._defaults.status_bar.items[e]?.enabled??!0,{label:l("config.status_bar.items.enabled")})} + ${this._renderNumberInput(`${j}.${e}.priority`,{max:q,default:this._defaults.status_bar.items[e]?.priority,label:l("config.status_bar.items.priority")})} + `)}`}_renderMenuButton(e,a){const t=[{value:"",label:""},{value:"matching",label:l("config.menu.buttons.alignments.matching")},{value:"opposing",label:l("config.menu.buttons.alignments.opposing")}];return o` ${this._putInSubmenu("menu.buttons",e,`config.menu.buttons.${e}`,"mdi:gesture-tap-button",o` + ${this._renderSwitch(`${R}.${e}.enabled`,this._defaults.menu.buttons[e]?.enabled??!0,{label:l("config.menu.buttons.enabled")})} + ${this._renderOptionSelector(`${R}.${e}.alignment`,t,{label:l("config.menu.buttons.alignment")})} + ${this._renderSwitch(`${R}.${e}.permanent`,this._defaults.menu.buttons[e]?.permanent??!1,{label:l("config.menu.buttons.permanent")})} + ${this._renderNumberInput(`${R}.${e}.priority`,{max:D,default:this._defaults.menu.buttons[e]?.priority,label:l("config.menu.buttons.priority")})} + ${this._renderIconSelector(`${R}.${e}.icon`,{label:l("config.menu.buttons.icon")})} + ${a} + `)}`}_putInSubmenu(e,a,t,i,n){const s=this._expandedMenus[e]===a,c={submenu:!0,selected:s},d=dt(i);return o`
+ + ${s?o`
${n}
`:""} +
`}_renderMediaLayout(e,a,t,i,n,s,r,c,d,m,u,h){return this._putInSubmenu(e,!0,a,"mdi:page-layout-body",o` + ${this._renderNumberInput(m,{min:0,max:10,label:l("config.cameras.dimensions.layout.zoom"),step:.1})} + ${this._renderNumberInput(u,{min:0,max:100,label:l("config.cameras.dimensions.layout.pan.x")})} + ${this._renderNumberInput(h,{min:0,max:100,label:l("config.cameras.dimensions.layout.pan.y")})} + ${this._renderOptionSelector(t,this._layoutFits,{label:l("config.cameras.dimensions.layout.fit")})} + ${this._putInSubmenu(`${e}.position`,!0,"config.cameras.dimensions.layout.position.editor_label","mdi:aspect-ratio",o` ${this._renderNumberInput(i,{min:0,max:100,label:l("config.cameras.dimensions.layout.position.x")})} + ${this._renderNumberInput(n,{min:0,max:100,label:l("config.cameras.dimensions.layout.position.y")})}`)} + ${this._putInSubmenu(`${e}.view_box`,!0,"config.cameras.dimensions.layout.view_box.editor_label","mdi:crop",o` + ${this._renderNumberInput(s,{min:0,max:100,label:l("config.cameras.dimensions.layout.view_box.top")})} + ${this._renderNumberInput(r,{min:0,max:100,label:l("config.cameras.dimensions.layout.view_box.bottom")})} + ${this._renderNumberInput(c,{min:0,max:100,label:l("config.cameras.dimensions.layout.view_box.left")})} + ${this._renderNumberInput(d,{min:0,max:100,label:l("config.cameras.dimensions.layout.view_box.right")})} + `)} + `)}_renderTimelineCoreControls(e,a,t,i,n,s,r){return o` + ${this._renderOptionSelector(e,this._timelineStyleTypes,{label:l(`config.common.${F}`)})} + ${r?this._renderOptionSelector(r,this._timelinePanModes,{label:l("config.common.controls.timeline.pan_mode")}):""} + ${this._renderNumberInput(a,{label:l(`config.common.${G}`)})} + ${this._renderNumberInput(t,{label:l(`config.common.${J}`)})} + ${this._renderOptionSelector(i,this._timelineEventsMediaTypes,{label:l(`config.common.${Q}`)})} + ${this._renderSwitch(n,s,{label:l(`config.common.${W}`)})} + `}_renderMiniTimeline(e,a,t,i,n,s,r,c,d){return this._putInSubmenu(e,!0,"config.common.controls.timeline.editor_label","mdi:chart-gantt",o` ${this._renderOptionSelector(a,this._miniTimelineModes,{label:l("config.common.controls.timeline.mode")})} + ${this._renderTimelineCoreControls(t,i,n,s,r,c,d)}`)}_renderViewDisplay(e,a,t,i,n){return this._putInSubmenu(e,!0,"config.common.display.editor_label","mdi:palette-swatch",o` + ${this._renderOptionSelector(a,this._displayModes,{label:l("config.common.display.mode")})} + ${this._renderNumberInput(t,{min:0,label:l("config.common.display.grid_selected_width_factor")})} + ${this._renderNumberInput(i,{min:0,label:l("config.common.display.grid_columns")})} + ${this._renderNumberInput(n,{min:0,label:l("config.common.display.grid_max_columns")})} + `)}_renderNextPreviousControls(e,a,t,i){return this._putInSubmenu(e,!0,"config.common.controls.next_previous.editor_label","mdi:arrow-right-bold-circle",o` + ${this._renderOptionSelector(a,this._nextPreviousControlStyles.filter((e=>!(!i?.allowThumbnails&&"thumbnails"===e.value||!i?.allowIcons&&"icons"===e.value))),{label:l("config.common.controls.next_previous.style")})} + ${this._renderNumberInput(t,{min:X,label:l("config.common.controls.next_previous.size")})} + `)}_renderThumbnailsControls(e,a,t,i,n,s,r,c){return this._putInSubmenu(e,!0,"config.common.controls.thumbnails.editor_label","mdi:image-text",o` + ${c?.configPathMode?o`${this._renderOptionSelector(c.configPathMode,this._thumbnailModes,{label:l("config.common.controls.thumbnails.mode")})}`:o``} + ${c?.configPathMediaType?o`${this._renderOptionSelector(c.configPathMediaType,this._thumbnailMediaTypes,{label:l("config.common.controls.thumbnails.media_type")})}`:o``} + ${c?.configPathEventsMediaType?o`${this._renderOptionSelector(c.configPathEventsMediaType,this._thumbnailEventsMediaTypes,{label:l("config.common.controls.thumbnails.events_media_type")})}`:o``} + ${this._renderNumberInput(a,{min:Y,max:Z,label:l("config.common.controls.thumbnails.size")})} + ${this._renderSwitch(t,r.show_details,{label:l("config.common.controls.thumbnails.show_details")})} + ${this._renderSwitch(i,r.show_favorite_control,{label:l("config.common.controls.thumbnails.show_favorite_control")})} + ${this._renderSwitch(n,r.show_timeline_control,{label:l("config.common.controls.thumbnails.show_timeline_control")})} + ${this._renderSwitch(s,r.show_download_control,{label:l("config.common.controls.thumbnails.show_download_control")})} + `)}_renderFilterControls(e,a){return this._putInSubmenu(e,!0,"config.common.controls.filter.editor_label","mdi:filter-cog",o` + ${a?o`${this._renderOptionSelector(a,this._filterModes,{label:l("config.common.controls.filter.mode")})}`:o``} + `)}_renderImageOptions(e,a,t,i,n){return o` + ${this._renderOptionSelector(e,this._imageModes,{label:l("config.common.image.mode")})} + ${this._renderStringInput(a,{label:l("config.common.image.url")})} + ${this._renderOptionSelector(t,this.hass?x(this.hass):[],{label:l("config.common.image.entity")})} + ${this._renderStringInput(i,{label:l("config.common.image.entity_parameters")})} + ${this._renderNumberInput(n,{label:l("config.common.image.refresh_seconds")})} + `}_renderCamera(e,a,t,i){const n=[{value:"",label:""},{value:"auto",label:l("config.cameras.live_providers.auto")},{value:"ha",label:l("config.cameras.live_providers.ha")},{value:"image",label:l("config.cameras.live_providers.image")},{value:"jsmpeg",label:l("config.cameras.live_providers.jsmpeg")},{value:"go2rtc",label:l("config.cameras.live_providers.go2rtc")},{value:"webrtc-card",label:l("config.cameras.live_providers.webrtc-card")}],s=[];e.forEach(((e,t)=>{t!==a&&s.push({value:ee(e),label:this._getEditorCameraTitle(t,e)})}));const c=e=>{if(this._config){const a=m(this._config);e(a)&&this._updateConfig(a)}},d={submenu:!0,selected:this._expandedMenus[gi]===a};return o` +
+ + ${this._expandedMenus[gi]===a?o`
+
+ !i&&c((e=>!!(Array.isArray(e.cameras)&&a>0)&&(mt(e.cameras,a,a-1),this._openMenu(gi,a-1),!0)))} + > + + + =this._config.cameras.length-1} + @click=${()=>!i&&c((e=>!!(Array.isArray(e.cameras)&&a + + + {c((e=>!!Array.isArray(e.cameras)&&(e.cameras.splice(a,1),this._closeMenu(gi),!0)))}} + > + + +
+ ${this._renderEntitySelector(ae(ut,a),"camera")} + ${this._renderOptionSelector(ae(ht,a),n)} + ${this._renderStringInput(ae(_t,a))} + ${this._renderIconSelector(ae(gt,a),{label:l("config.cameras.icon")})} + ${this._renderStringInput(ae(bt,a))} + ${this._putInSubmenu("cameras.engine",!0,"config.cameras.engines.editor_label","mdi:engine",o`${this._putInSubmenu("cameras.frigate",a,"config.cameras.frigate.editor_label","frigate",o` + ${this._renderStringInput(ae(pt,a))} + ${this._renderStringInput(ae(vt,a))} + ${this._renderOptionSelector(ae(ft,a),[],{multiple:!0,label:l("config.cameras.frigate.labels")})} + ${this._renderOptionSelector(ae($t,a),[],{multiple:!0,label:l("config.cameras.frigate.zones")})} + ${this._renderStringInput(ae(yt,a))} + `)} + ${this._putInSubmenu("cameras.motioneye",a,"config.cameras.motioneye.editor_label","motioneye",o` ${this._renderStringInput(ae(wt,a))} + ${this._renderStringInput(ae(St,a))} + ${this._renderStringInput(ae(xt,a))} + ${this._renderStringInput(ae(Mt,a))} + ${this._renderStringInput(ae(It,a))}`)} + ${this._putInSubmenu("cameras.reolink",a,"config.cameras.reolink.editor_label","reolink",o` ${this._renderStringInput(ae(kt,a))} + ${this._renderOptionSelector(ae(Ot,a),this._reolinkMediaResolution,{label:l("config.cameras.reolink.media_resolution.editor_label")})}`)}`)} + ${this._putInSubmenu("cameras.live_provider",!0,"config.cameras.live_provider_options.editor_label","mdi:cctv",o` ${this._putInSubmenu("cameras.go2rtc",a,"config.cameras.go2rtc.editor_label","mdi:alpha-g-circle",o`${this._renderOptionSelector(ae(Ct,a),this._go2rtcModes,{multiple:!0,label:l("config.cameras.go2rtc.modes.editor_label")})} + ${this._renderStringInput(ae(zt,a))}`)} + ${this._putInSubmenu("cameras.image",!0,"config.cameras.image.editor_label","mdi:image",this._renderImageOptions(ae(At,a),ae(Nt,a),ae(Tt,a),ae(Bt,a),ae(Et,a)))} + ${this._putInSubmenu("cameras.webrtc_card",a,"config.cameras.webrtc_card.editor_label","mdi:webrtc",o`${this._renderEntitySelector(ae(Pt,a),"camera")} + ${this._renderStringInput(ae(Ht,a))}`)}`)} + ${this._putInSubmenu("cameras.dependencies",a,"config.cameras.dependencies.editor_label","mdi:graph",o` ${this._renderSwitch(ae(Lt,a),this._defaults.cameras.dependencies.all_cameras)} + ${this._renderOptionSelector(ae(Vt,a),s,{multiple:!0})}`)} + ${this._putInSubmenu("cameras.triggers",a,"config.cameras.triggers.editor_label","mdi:magnify-scan",o` + ${this._renderSwitch(ae(Kt,a),this._defaults.cameras.triggers.occupancy)} + ${this._renderSwitch(ae(Ut,a),this._defaults.cameras.triggers.motion)} + ${this._renderOptionSelector(ae(jt,a),t,{multiple:!0})} + ${this._renderOptionSelector(ae(qt,a),this._triggersEvents,{multiple:!0,label:l("config.cameras.triggers.events.editor_label")})} + `)} + ${this._putInSubmenu("cameras.cast",a,"config.cameras.cast.editor_label","mdi:cast",o` + ${this._renderOptionSelector(ae(Rt,a),this._castMethods)} + ${this._renderStringInput(ae(Dt,a))} + ${this._renderStringInput(ae(Ft,a))} + `)} + ${this._putInSubmenu("cameras.dimensions",a,"config.cameras.dimensions.editor_label","mdi:aspect-ratio",o` + ${this._renderStringInput(ae(Gt,a))} + ${this._renderMediaLayout("cameras.dimensions.layout","config.cameras.dimensions.layout.editor_label",ae(Jt,a),ae(Qt,a),ae(Wt,a),ae(Xt,a),ae(Yt,a),ae(Zt,a),ae(ei,a),ae(ai,a),ae(ti,a),ae(ii,a))} + `)} + ${this._putInSubmenu("cameras.capabilities",a,"config.cameras.capabilities.editor_label","mdi:cog-stop",o` + ${this._renderOptionSelector(ae(ni,a),this._capabilities,{multiple:!0})} + ${this._renderOptionSelector(ae(si,a),this._capabilities,{multiple:!0})} + `)} + ${this._putInSubmenu("cameras.proxy",a,"config.cameras.proxy.editor_label","mdi:arrow-decision",o` + ${this._renderOptionSelector(ae(oi,a),this._proxyMedia,{label:l("config.cameras.proxy.media.editor_label")})} + ${this._renderSwitch(ae(ri,a),this._defaults.cameras.proxy.dynamic)} + ${this._renderOptionSelector(ae(li,a),this._proxySSLVerification,{label:l("config.cameras.proxy.ssl_verification.editor_label")})} + ${this._renderOptionSelector(ae(ci,a),this._proxySSLCiphers,{label:l("config.cameras.proxy.ssl_ciphers.editor_label")})} + `)} +
`:""} +
+ `}_renderStringInput(e,a){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_renderSwitch(e,a,t){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_updateConfig(e){this._config=e,te(this,"config-changed",{config:this._config})}render(){if(!this.hass||!this._config)return o``;const e=x(this.hass),a=b(this._config,mi)||[];return o` + ${this._configUpgradeable?o`
+ ${l("editor.upgrade_available")} + + {if(this._config){const e=m(this._config);ie(e),this._updateConfig(e)}}} + > + + +
+
`:o``} +
+ ${this._renderOptionSetHeader("cameras")} + ${"cameras"===this._expandedMenus[bi]?o` +
+ ${a.map(((t,i)=>this._renderCamera(a,i,e)))} + ${this._renderCamera(a,a.length,e,!0)} +
+ `:""} + ${this._renderOptionSetHeader("profiles")} + ${"profiles"===this._expandedMenus[bi]?o`
+ ${this._renderOptionSelector(ne,this._profiles,{multiple:!0,label:l("config.profiles.editor_label")})} +
`:""} + ${this._renderOptionSetHeader("view")} + ${"view"===this._expandedMenus[bi]?o` +
+ ${this._renderOptionSelector(se,this._viewModes)} + ${this._renderOptionSelector(oe,this._cameraSelectViewModes)} + ${this._renderOptionSelector(re,this._darkModes)} + ${this._renderNumberInput(le)} + ${this._renderSwitch(ce,this._defaults.view.default_cycle_camera)} + ${this._renderViewDefaultResetMenu()} ${this._renderViewTriggersMenu()} + ${this._renderViewKeyboardShortcutMenu()} +
+ `:""} + ${this._renderOptionSetHeader("menu")} + ${"menu"===this._expandedMenus[bi]?o` +
+ ${this._renderOptionSelector(de,this._menuStyles)} + ${this._renderOptionSelector(me,this._menuPositions)} + ${this._renderOptionSelector(ue,this._menuAlignments)} + ${this._renderNumberInput(he,{min:X})} + ${this._renderMenuButton("frigate")} + ${this._renderMenuButton("cameras")} + ${this._renderMenuButton("substreams")} + ${this._renderMenuButton("live")} + ${this._renderMenuButton("clips")} + ${this._renderMenuButton("snapshots")} + ${this._renderMenuButton("recordings")} + ${this._renderMenuButton("image")} + ${this._renderMenuButton("download")} + ${this._renderMenuButton("camera_ui")} + ${this._renderMenuButton("fullscreen")} + ${this._renderMenuButton("expand")} + ${this._renderMenuButton("timeline")} + ${this._renderMenuButton("media_player")} + ${this._renderMenuButton("microphone",o`${this._renderOptionSelector(`${R}.microphone.type`,this._microphoneButtonTypes,{label:l("config.menu.buttons.type")})}`)} + ${this._renderMenuButton("play")} + ${this._renderMenuButton("mute")} + ${this._renderMenuButton("screenshot")} + ${this._renderMenuButton("display_mode")} + ${this._renderMenuButton("ptz_controls")} + ${this._renderMenuButton("ptz_home")} +
+ `:""} + ${this._renderOptionSetHeader("status_bar")} + ${"status_bar"===this._expandedMenus[bi]?o` +
+ ${this._renderOptionSelector(_e,this._statusBarStyles)} + ${this._renderOptionSelector(ge,this._statusBarPositions)} + ${this._renderNumberInput(be,{min:pe,label:l("config.status_bar.height")})} + ${this._renderNumberInput(ve,{min:0,max:60,default:this._defaults.status_bar.popup_seconds,label:l("config.status_bar.popup_seconds")})} + ${this._renderStatusBarItem("title")} + ${this._renderStatusBarItem("resolution")} + ${this._renderStatusBarItem("technology")} + ${this._renderStatusBarItem("engine")} +
+ `:""} + ${this._renderOptionSetHeader("live")} + ${"live"===this._expandedMenus[bi]?o` +
+ ${this._renderSwitch(fe,this._defaults.live.preload)} + ${this._renderSwitch($e,this._defaults.live.draggable)} + ${this._renderSwitch(ye,this._defaults.live.zoomable)} + ${this._renderSwitch(we,this._defaults.live.lazy_load)} + ${this._renderOptionSelector(Se,this._mediaActionNegativeConditions,{multiple:!0})} + ${this._renderOptionSelector(xe,this._mediaActionPositiveConditions,{multiple:!0})} + ${this._renderOptionSelector(Me,this._mediaActionNegativeConditions,{multiple:!0})} + ${this._renderOptionSelector(Ie,this._mediaLiveMuteConditions,{multiple:!0})} + ${this._renderOptionSelector(ke,this._mediaLiveUnmuteConditions,{multiple:!0})} + ${this._renderOptionSelector(Oe,this._transitionEffects)} + ${this._renderSwitch(Ce,this._defaults.live.show_image_during_load)} + ${this._renderViewDisplay("live.display",ze,Ae,Ne,Te)} + ${this._putInSubmenu("live.controls",!0,"config.live.controls.editor_label","mdi:gamepad",o` + ${this._renderSwitch(Be,this._defaults.live.controls.builtin,{label:l("config.common.controls.builtin")})} + ${this._renderNextPreviousControls("live.controls.next_previous",Ee,Pe,{allowIcons:!0})} + ${this._renderThumbnailsControls("live.controls.thumbnails",He,Le,Ve,Ke,Ue,this._defaults.live.controls.thumbnails,{configPathMediaType:je,configPathEventsMediaType:qe,configPathMode:Re})} + ${this._renderMiniTimeline("live.controls.timeline",De,Fe,Ge,Je,Qe,We,this._defaults.live.controls.timeline.show_recordings,Xe)} + ${this._putInSubmenu("live.controls.ptz",!0,"config.live.controls.ptz.editor_label","mdi:pan",o` + ${this._renderOptionSelector(Ye,this._ptzModes)} + ${this._renderOptionSelector(Ze,this._ptzPositions)} + ${this._renderOptionSelector(ea,this._ptzOrientations)} + ${this._renderSwitch(aa,this._defaults.live.controls.ptz.hide_pan_tilt,{label:l("config.live.controls.ptz.hide_pan_tilt")})} + ${this._renderSwitch(ta,this._defaults.live.controls.ptz.hide_pan_tilt,{label:l("config.live.controls.ptz.hide_zoom")})} + ${this._renderSwitch(ia,this._defaults.live.controls.ptz.hide_home,{label:l("config.live.controls.ptz.hide_home")})} + `)} + `)} + ${this._putInSubmenu("live.microphone",!0,"config.live.microphone.editor_label","mdi:microphone",o` + ${this._renderNumberInput(na)} + ${this._renderSwitch(sa,this._defaults.live.microphone.always_connected)} + ${this._renderNumberInput(oa)} + `)} +
+ `:""} + ${this._renderOptionSetHeader("media_gallery")} + ${"media_gallery"===this._expandedMenus[bi]?o`
+ ${this._renderThumbnailsControls("media_gallery.controls.thumbnails",ra,la,ca,da,ma,this._defaults.media_gallery.controls.thumbnails)} + ${this._renderFilterControls("media_gallery.controls.filter",ua)} +
`:""} + ${this._renderOptionSetHeader("media_viewer")} + ${"media_viewer"===this._expandedMenus[bi]?o`
+ ${this._renderOptionSelector(ha,this._mediaActionPositiveConditions,{multiple:!0})} + ${this._renderOptionSelector(_a,this._mediaActionNegativeConditions,{multiple:!0})} + ${this._renderOptionSelector(ga,this._mediaActionNegativeConditions,{multiple:!0})} + ${this._renderOptionSelector(ba,this._mediaActionPositiveConditions,{multiple:!0})} + ${this._renderSwitch(pa,this._defaults.media_viewer.draggable)} + ${this._renderSwitch(va,this._defaults.media_viewer.zoomable)} + ${this._renderSwitch(fa,this._defaults.media_viewer.lazy_load)} + ${this._renderOptionSelector($a,this._transitionEffects)} + ${this._renderSwitch(ya,this._defaults.media_viewer.snapshot_click_plays_clip)} + ${this._renderViewDisplay("media_viewer.display",wa,Sa,xa,Ma)} + ${this._putInSubmenu("media_viewer.controls",!0,"config.media_viewer.controls.editor_label","mdi:gamepad",o` + ${this._renderSwitch(Ia,this._defaults.media_viewer.controls.builtin,{label:l("config.common.controls.builtin")})} + ${this._renderNextPreviousControls("media_viewer.controls.next_previous",ka,Oa,{allowThumbnails:!0})} + ${this._renderThumbnailsControls("media_viewer.controls.thumbnails",Ca,za,Aa,Na,Ta,this._defaults.media_viewer.controls.thumbnails,{configPathMode:Ba})} + ${this._renderMiniTimeline("media_viewer.controls.timeline",Ea,Pa,Ha,La,Va,Ka,this._defaults.media_viewer.controls.timeline.show_recordings,Ua)} + `)} +
`:""} + ${this._renderOptionSetHeader("image")} + ${"image"===this._expandedMenus[bi]?o`
+ ${this._renderImageOptions(ja,qa,Ra,Da,Fa)} +
`:""} + ${this._renderOptionSetHeader("timeline")} + ${"timeline"===this._expandedMenus[bi]?o`
+ ${this._renderTimelineCoreControls(F,G,J,Q,W,this._defaults.timeline.show_recordings)} + ${this._renderThumbnailsControls("timeline.controls.thumbnails",Ga,Ja,Qa,Wa,Xa,this._defaults.timeline.controls.thumbnails,{configPathMode:Ya})} +
`:""} + ${this._renderOptionSetHeader("dimensions")} + ${"dimensions"===this._expandedMenus[bi]?o`
+ ${this._renderOptionSelector(Za,this._aspectRatioModes)} + ${this._renderStringInput(et)} + ${this._renderStringInput(at)} +
`:""} + ${this._renderOptionSetHeader("performance","low"===b(this._config,ui)?"warning":void 0)} + ${"performance"===this._expandedMenus[bi]?o`
+ ${"low"===b(this._config,ui)?this._renderInfo(l("config.performance.warning")):o``} + ${this._putInSubmenu("performance.features",!0,"config.performance.features.editor_label","mdi:feature-search",o` + ${this._renderSwitch(tt,this._defaults.performance.features.animated_progress_indicator)} + ${this._renderNumberInput(it,{max:nt})} + ${this._renderNumberInput(st,{min:1})} + `)} + ${this._putInSubmenu("performance.style",!0,"config.performance.style.editor_label","mdi:palette-swatch-variant",o` + ${this._renderSwitch(ot,this._defaults.performance.style.border_radius)} + ${this._renderSwitch(rt,this._defaults.performance.style.box_shadow)} + `)} +
`:""} + ${void 0!==this._config.overrides?o` ${this._renderOptionSetHeader("overrides")} + ${"overrides"===this._expandedMenus[bi]?o`
+ ${this._renderInfo(l("config.overrides.info"))} +
`:""}`:o``} +
+ `}_closeMenu(e){delete this._expandedMenus[e],this.requestUpdate()}_openMenu(e,a){this._expandedMenus[e]=a,this.requestUpdate()}_toggleMenu(e){if(e&&e.target){const a=e.target.domain,t=e.target.key;this._expandedMenus[a]===t?this._closeMenu(a):this._openMenu(a,t)}}_valueChangedHandler(e,a){if(!this._config||!this.hass)return;let t;if(a.detail&&void 0!==a.detail.value&&(t=a.detail.value,"string"==typeof t&&(t=t.trim())),b(this._config,e)===t)return;const i=m(this._config);""===t||void 0===t?lt(i,e):ct(i,e,t),this._updateConfig(i)}static get styles(){return c('ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n.option {\n padding: 4px 4px;\n cursor: pointer;\n}\n\n.option.option-overrides .title {\n color: var(--warning-color);\n}\n\n.row {\n display: flex;\n margin-bottom: -14px;\n pointer-events: none;\n}\n\n.title {\n padding-left: 16px;\n margin-top: -6px;\n pointer-events: none;\n}\n\n.title.warning {\n color: var(--warning-color);\n}\n\n.secondary {\n padding-left: 40px;\n color: var(--secondary-text-color);\n pointer-events: none;\n}\n\n.values {\n background: var(--secondary-background-color);\n display: grid;\n}\n\n.values + .option,\n.submenu + .option {\n margin-top: 10px;\n}\n\ndiv.upgrade {\n width: auto;\n border: 1px dotted var(--primary-color);\n margin: 10px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\ndiv.upgrade span {\n padding: 10px;\n}\n\n.submenu-header {\n display: flex;\n padding: 10px;\n cursor: pointer;\n}\n\n.submenu.selected > .submenu-header {\n background-color: var(--primary-color);\n color: var(--primary-text-color);\n}\n\n.submenu-header * {\n flex-basis: auto;\n pointer-events: none;\n}\n\n.submenu-header .new-camera {\n font-style: italic;\n}\n\n.submenu:not(.selected) > .submenu-header .new-camera {\n color: var(--secondary-text-color, "black");\n}\n\n.submenu-header ha-icon,\n.submenu-header img {\n padding-right: 15px;\n}\n\n.submenu.selected {\n border: 1px solid var(--primary-color);\n}\n\n.submenu {\n width: calc(100% - 20px);\n margin-left: auto;\n margin-right: auto;\n margin-bottom: 10px;\n}\n\n.submenu:first-child,\n:not(.submenu) + .submenu {\n margin-top: 10px;\n}\n\n.submenu .controls {\n display: inline-block;\n margin-left: auto;\n margin-right: 0px;\n margin-bottom: 5px;\n}\n\n.submenu .controls ha-icon-button.button {\n --mdc-icon-button-size: 32px;\n --mdc-icon-size: calc(var(--mdc-icon-button-size) / 2);\n}\n\nspan.info {\n padding: 10px;\n}\n\nha-selector {\n padding: 10px;\n border: 1px solid var(--divider-color);\n}')}};t([i({attribute:!1})],vi.prototype,"hass",void 0),t([d()],vi.prototype,"_config",void 0),t([d()],vi.prototype,"_defaults",void 0),t([d()],vi.prototype,"_expandedMenus",void 0),vi=t([n("frigate-card-editor")],vi);export{vi as FrigateCardEditor}; diff --git a/config/www/community/frigate-hass-card/editor-0c0425c2.js.gz b/config/www/community/frigate-hass-card/editor-0c0425c2.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..b2fc5064671f45e7ca795fb0b08f396af037cb0f GIT binary patch literal 11530 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 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/editor-13524f00.js b/config/www/community/frigate-hass-card/editor-13524f00.js new file mode 100644 index 00000000..6e09e984 --- /dev/null +++ b/config/www/community/frigate-hass-card/editor-13524f00.js @@ -0,0 +1,462 @@ +import{i as e,s as a,_ as t,n as i,t as n,a as s,x as o,e as r,l,r as c,b as d,c as m,d as u,p as h,f as _,g,h as b,j as p,k as v,C as f,m as $,o as y,q as w,u as S,v as x,w as M,y as I,z as k,A as O,B as C,D as z,E as A,F as N,G as T,H as B,I as E,J as P,K as H,L,M as V,N as K,O as U,P as j,Q as q,R,S as D,T as F,U as G,V as J,W as Q,X as W,Y as X,Z as Y,$ as Z,a0 as ee,a1 as ae,a2 as te,a3 as ie,a4 as ne,a5 as se,a6 as oe,a7 as re,a8 as le,a9 as ce,aa as de,ab as me,ac as ue,ad as he,ae as _e,af as ge,ag as be,ah as pe,ai as ve,aj as fe,ak as $e,al as ye,am as we,an as Se,ao as xe,ap as Me,aq as Ie,ar as ke,as as Oe,at as Ce,au as ze,av as Ae,aw as Ne,ax as Te,ay as Be,az as Ee,aA as Pe,aB as He,aC as Le,aD as Ve,aE as Ke,aF as Ue,aG as je,aH as qe,aI as Re,aJ as De,aK as Fe,aL as Ge,aM as Je,aN as Qe,aO as We,aP as Xe,aQ as Ye,aR as Ze,aS as ea,aT as aa,aU as ta,aV as ia,aW as na,aX as sa,aY as oa,aZ as ra,a_ as la,a$ as ca,b0 as da,b1 as ma,b2 as ua,b3 as ha,b4 as _a,b5 as ga,b6 as ba,b7 as pa,b8 as va,b9 as fa,ba as $a,bb as ya,bc as wa,bd as Sa,be as xa,bf as Ma,bg as Ia,bh as ka,bi as Oa,bj as Ca,bk as za,bl as Aa,bm as Na,bn as Ta,bo as Ba,bp as Ea,bq as Pa,br as Ha,bs as La,bt as Va,bu as Ka,bv as Ua,bw as ja,bx as qa,by as Ra,bz as Da,bA as Fa,bB as Ga,bC as Ja,bD as Qa,bE as Wa,bF as Xa,bG as Ya,bH as Za,bI as et,bJ as at,bK as tt,bL as it,bM as nt,bN as st,bO as ot,bP as rt,bQ as lt,bR as ct,bS as dt,bT as mt,bU as ut,bV as ht,bW as _t,bX as gt,bY as bt,bZ as pt,b_ as vt,b$ as ft,c0 as $t,c1 as yt,c2 as wt,c3 as St,c4 as xt,c5 as Mt,c6 as It,c7 as kt,c8 as Ot,c9 as Ct,ca as zt,cb as At,cc as Nt,cd as Tt,ce as Bt,cf as Et,cg as Pt,ch as Ht,ci as Lt,cj as Vt,ck as Kt,cl as Ut,cm as jt,cn as qt,co as Rt,cp as Dt,cq as Ft,cr as Gt,cs as Jt,ct as Qt,cu as Wt,cv as Xt,cw as Yt,cx as Zt,cy as ei,cz as ai,cA as ti,cB as ii,cC as ni,cD as si,cE as oi,cF as ri,cG as li,cH as ci,cI as di,cJ as mi,cK as ui}from"./card-769e2b91.js";class hi{constructor(e){this._assigning=!1,this._value=null,this._blurEventHandler=()=>{this._setAssigning(!1)},this._keydownEventHandler=e=>{e.key&&!["Control","Alt","Shift","Meta"].includes(e.key)&&(this.setValue({key:e.key,ctrl:e.ctrlKey,alt:e.altKey,shift:e.shiftKey,meta:e.metaKey}),this._setAssigning(!1))},this._host=e,this._host.addController(this)}setValue(a){e(a,this._value)||(this._value=a,this._host.requestUpdate(),this._host.dispatchEvent(new CustomEvent("value-changed",{detail:{value:this._value}})))}getValue(){return this._value}hasValue(){return!!this._value}isAssigning(){return this._assigning}toggleAssigning(){this._setAssigning(!this._assigning)}_setAssigning(e){this._assigning=e,a(this._host,this._assigning,"assigning"),this._assigning?this._host.addEventListener("keydown",this._keydownEventHandler):this._host.removeEventListener("keydown",this._keydownEventHandler),this._host.requestUpdate()}hostConnected(){this._host.addEventListener("blur",this._blurEventHandler)}hostDisconnected(){this._host.removeEventListener("blur",this._blurEventHandler)}}let _i=class extends s{constructor(){super(...arguments),this._controller=new hi(this)}willUpdate(e){e.has("value")&&this._controller.setValue(this.value??null)}render(){if(!this.label)return;const e=e=>o`
+
${e}
+
`;return o` +
${this.label}
+ {this._controller.toggleAssigning()}} + > + + + ${this._controller.isAssigning()?l("key_assigner.assigning"):l("key_assigner.assign")} + + + ${this._controller.hasValue()?o`{this._controller.setValue(null)}} + > + + ${l("key_assigner.unassign")} + `:""} +
+ ${this.value?.ctrl?e(l("key_assigner.modifiers.ctrl")):""} + ${this.value?.shift?e(l("key_assigner.modifiers.shift")):""} + ${this.value?.meta?e(l("key_assigner.modifiers.meta")):""} + ${this.value?.alt?e(l("key_assigner.modifiers.alt")):""} + ${this.value?.key?e(this.value.key):""} +
+ `}static get styles(){return c('.dotdotdot:after {\n animation: dots 2s linear infinite;\n content: "";\n display: inline-block;\n width: 3em;\n}\n@keyframes dots {\n 0%, 20% {\n content: ".";\n }\n 40% {\n content: "..";\n }\n 60% {\n content: "...";\n }\n 90%, 100% {\n content: "";\n }\n}\n\n:host {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 10px;\n height: 56px;\n border: 1px solid var(--divider-color);\n}\n\n:host([assigning]) ha-button.assign span,\n:host([assigning]) ha-button.assign ha-icon {\n color: var(--warning-color);\n}\n\nha-icon {\n padding: 10px;\n}\n\ndiv.label {\n width: 100px;\n margin-left: 4px;\n}\n\ndiv.key-row {\n flex: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n padding-left: 10px;\n padding-right: 10px;\n}\n\ndiv.key {\n display: flex;\n align-items: center;\n height: 90%;\n width: min-content;\n margin-left: 5px;\n margin-right: 5px;\n}\n\ndiv.key-inner {\n height: 100%;\n width: 100%;\n padding-top: 2px;\n padding-bottom: 2px;\n padding-left: 4px;\n padding-right: 4px;\n border: 2px;\n border-radius: 4px;\n border-style: outset;\n border-color: var(--divider-color);\n font-family: monospace;\n text-transform: capitalize;\n}\n\ndiv.unassigned {\n font-style: italic;\n}\n\ndiv.key + div.key:before {\n display: flex;\n align-items: center;\n margin-right: 5px;\n content: " + ";\n}')}};t([i({attribute:!1})],_i.prototype,"label",void 0),t([i({attribute:!1})],_i.prototype,"value",void 0),_i=t([n("frigate-card-key-assigner")],_i);const gi="cameras",bi="options",pi={cameras:{icon:"video",name:l("editor.cameras"),secondary:l("editor.cameras_secondary")},view:{icon:"eye",name:l("editor.view"),secondary:l("editor.view_secondary")},menu:{icon:"menu",name:l("editor.menu"),secondary:l("editor.menu_secondary")},status_bar:{icon:"sign-text",name:l("editor.status_bar"),secondary:l("editor.status_bar_secondary")},live:{icon:"cctv",name:l("editor.live"),secondary:l("editor.live_secondary")},media_gallery:{icon:"grid",name:l("editor.media_gallery"),secondary:l("editor.media_gallery_secondary")},media_viewer:{icon:"filmstrip",name:l("editor.media_viewer"),secondary:l("editor.media_viewer_secondary")},image:{icon:"image",name:l("editor.image"),secondary:l("editor.image_secondary")},timeline:{icon:"chart-gantt",name:l("editor.timeline"),secondary:l("editor.timeline_secondary")},dimensions:{icon:"aspect-ratio",name:l("editor.dimensions"),secondary:l("editor.dimensions_secondary")},performance:{icon:"speedometer",name:l("editor.performance"),secondary:l("editor.performance_secondary")},profiles:{icon:"folder-wrench-outline",name:l("editor.profiles"),secondary:l("editor.profiles_secondary")},overrides:{icon:"file-replace",name:l("editor.overrides"),secondary:l("editor.overrides_secondary")}};let vi=class extends s{constructor(){super(...arguments),this._defaults=m(di),this._initialized=!1,this._configUpgradeable=!1,this._expandedMenus={},this._viewModes=[{value:"",label:""},{value:"live",label:l("config.view.views.live")},{value:"clips",label:l("config.view.views.clips")},{value:"snapshots",label:l("config.view.views.snapshots")},{value:"recordings",label:l("config.view.views.recordings")},{value:"clip",label:l("config.view.views.clip")},{value:"snapshot",label:l("config.view.views.snapshot")},{value:"recording",label:l("config.view.views.recording")},{value:"image",label:l("config.view.views.image")},{value:"timeline",label:l("config.view.views.timeline")}],this._cameraSelectViewModes=[...this._viewModes,{value:"current",label:l("config.view.views.current")}],this._filterModes=[{value:"",label:""},{value:"none",label:l("config.common.controls.filter.modes.none")},{value:"left",label:l("config.common.controls.filter.modes.left")},{value:"right",label:l("config.common.controls.filter.modes.right")}],this._menuStyles=[{value:"",label:""},{value:"none",label:l("config.menu.styles.none")},{value:"hidden",label:l("config.menu.styles.hidden")},{value:"overlay",label:l("config.menu.styles.overlay")},{value:"hover",label:l("config.menu.styles.hover")},{value:"hover-card",label:l("config.menu.styles.hover-card")},{value:"outside",label:l("config.menu.styles.outside")}],this._menuPositions=[{value:"",label:""},{value:"left",label:l("config.menu.positions.left")},{value:"right",label:l("config.menu.positions.right")},{value:"top",label:l("config.menu.positions.top")},{value:"bottom",label:l("config.menu.positions.bottom")}],this._menuAlignments=[{value:"",label:""},{value:"left",label:l("config.menu.alignments.left")},{value:"right",label:l("config.menu.alignments.right")},{value:"top",label:l("config.menu.alignments.top")},{value:"bottom",label:l("config.menu.alignments.bottom")}],this._nextPreviousControlStyles=[{value:"",label:""},{value:"chevrons",label:l("config.common.controls.next_previous.styles.chevrons")},{value:"icons",label:l("config.common.controls.next_previous.styles.icons")},{value:"none",label:l("config.common.controls.next_previous.styles.none")},{value:"thumbnails",label:l("config.common.controls.next_previous.styles.thumbnails")}],this._aspectRatioModes=[{value:"",label:""},{value:"dynamic",label:l("config.dimensions.aspect_ratio_modes.dynamic")},{value:"static",label:l("config.dimensions.aspect_ratio_modes.static")},{value:"unconstrained",label:l("config.dimensions.aspect_ratio_modes.unconstrained")}],this._thumbnailModes=[{value:"",label:""},{value:"none",label:l("config.common.controls.thumbnails.modes.none")},{value:"above",label:l("config.common.controls.thumbnails.modes.above")},{value:"below",label:l("config.common.controls.thumbnails.modes.below")},{value:"left",label:l("config.common.controls.thumbnails.modes.left")},{value:"right",label:l("config.common.controls.thumbnails.modes.right")}],this._thumbnailMediaTypes=[{value:"",label:""},{value:"events",label:l("config.common.controls.thumbnails.media_types.events")},{value:"recordings",label:l("config.common.controls.thumbnails.media_types.recordings")}],this._thumbnailEventsMediaTypes=[{value:"",label:""},{value:"clips",label:l("config.common.controls.thumbnails.events_media_types.clips")},{value:"snapshots",label:l("config.common.controls.thumbnails.events_media_types.snapshots")}],this._transitionEffects=[{value:"",label:""},{value:"none",label:l("config.media_viewer.transition_effects.none")},{value:"slide",label:l("config.media_viewer.transition_effects.slide")}],this._imageModes=[{value:"",label:""},{value:"camera",label:l("config.common.image.modes.camera")},{value:"entity",label:l("config.common.image.modes.entity")},{value:"screensaver",label:l("config.common.image.modes.screensaver")},{value:"url",label:l("config.common.image.modes.url")}],this._timelineEventsMediaTypes=[{value:"",label:""},{value:"all",label:l("config.common.timeline.events_media_types.all")},{value:"clips",label:l("config.common.timeline.events_media_types.clips")},{value:"snapshots",label:l("config.common.timeline.events_media_types.snapshots")}],this._timelineStyleTypes=[{value:"",label:""},{value:"ribbon",label:l("config.common.timeline.styles.ribbon")},{value:"stack",label:l("config.common.timeline.styles.stack")}],this._darkModes=[{value:"",label:""},{value:"on",label:l("config.view.dark_modes.on")},{value:"off",label:l("config.view.dark_modes.off")},{value:"auto",label:l("config.view.dark_modes.auto")}],this._mediaActionNegativeConditions=[{value:"",label:""},{value:"unselected",label:l("config.common.media_action_conditions.unselected")},{value:"hidden",label:l("config.common.media_action_conditions.hidden")}],this._mediaActionPositiveConditions=[{value:"",label:""},{value:"selected",label:l("config.common.media_action_conditions.selected")},{value:"visible",label:l("config.common.media_action_conditions.visible")}],this._mediaLiveUnmuteConditions=[...this._mediaActionPositiveConditions,{value:"microphone",label:l("config.common.media_action_conditions.microphone_unmute")}],this._mediaLiveMuteConditions=[...this._mediaActionNegativeConditions,{value:"microphone",label:l("config.common.media_action_conditions.microphone_mute")}],this._layoutFits=[{value:"",label:""},{value:"contain",label:l("config.cameras.dimensions.layout.fits.contain")},{value:"cover",label:l("config.cameras.dimensions.layout.fits.cover")},{value:"fill",label:l("config.cameras.dimensions.layout.fits.fill")}],this._miniTimelineModes=[{value:"",label:""},{value:"none",label:l("config.common.controls.timeline.modes.none")},{value:"above",label:l("config.common.controls.timeline.modes.above")},{value:"below",label:l("config.common.controls.timeline.modes.below")}],this._profiles=[{value:"",label:""},{value:"casting",label:l("config.profiles.casting")},{value:"low-performance",label:l("config.profiles.low-performance")},{value:"scrubbing",label:l("config.profiles.scrubbing")}],this._go2rtcModes=[{value:"",label:""},{value:"mse",label:l("config.cameras.go2rtc.modes.mse")},{value:"webrtc",label:l("config.cameras.go2rtc.modes.webrtc")},{value:"mp4",label:l("config.cameras.go2rtc.modes.mp4")},{value:"mjpeg",label:l("config.cameras.go2rtc.modes.mjpeg")}],this._microphoneButtonTypes=[{value:"",label:""},{value:"momentary",label:l("config.menu.buttons.types.momentary")},{value:"toggle",label:l("config.menu.buttons.types.toggle")}],this._displayModes=[{value:"",label:""},{value:"single",label:l("display_modes.single")},{value:"grid",label:l("display_modes.grid")}],this._castMethods=[{value:"",label:""},{value:"standard",label:l("config.cameras.cast.methods.standard")},{value:"dashboard",label:l("config.cameras.cast.methods.dashboard")}],this._ptzModes=[{value:"",label:""},{value:"on",label:l("config.live.controls.ptz.modes.on")},{value:"off",label:l("config.live.controls.ptz.modes.off")}],this._ptzOrientations=[{value:"",label:""},{value:"vertical",label:l("config.live.controls.ptz.orientations.vertical")},{value:"horizontal",label:l("config.live.controls.ptz.orientations.horizontal")}],this._ptzPositions=[{value:"",label:""},{value:"top-left",label:l("config.live.controls.ptz.positions.top-left")},{value:"top-right",label:l("config.live.controls.ptz.positions.top-right")},{value:"bottom-left",label:l("config.live.controls.ptz.positions.bottom-left")},{value:"bottom-right",label:l("config.live.controls.ptz.positions.bottom-right")}],this._triggersActionsInteractionModes=[{value:"",label:""},{value:"all",label:l("config.view.triggers.actions.interaction_modes.all")},{value:"inactive",label:l("config.view.triggers.actions.interaction_modes.inactive")},{value:"active",label:l("config.view.triggers.actions.interaction_modes.active")}],this._triggersActionsTrigger=[{value:"",label:""},{value:"default",label:l("config.view.triggers.actions.triggers.default")},{value:"live",label:l("config.view.triggers.actions.triggers.live")},{value:"media",label:l("config.view.triggers.actions.triggers.media")},{value:"none",label:l("config.view.triggers.actions.triggers.none")}],this._triggersActionsUntrigger=[{value:"",label:""},{value:"default",label:l("config.view.triggers.actions.untriggers.default")},{value:"none",label:l("config.view.triggers.actions.untriggers.none")}],this._triggersEvents=[{value:"",label:""},{value:"events",label:l("config.cameras.triggers.events.events")},{value:"clips",label:l("config.cameras.triggers.events.clips")},{value:"snapshots",label:l("config.cameras.triggers.events.snapshots")}],this._timelinePanModes=[{value:"",label:""},{value:"pan",label:l("config.common.controls.timeline.pan_modes.pan")},{value:"seek",label:l("config.common.controls.timeline.pan_modes.seek")},{value:"seek-in-media",label:l("config.common.controls.timeline.pan_modes.seek-in-media")},{value:"seek-in-camera",label:l("config.common.controls.timeline.pan_modes.seek-in-camera")}],this._capabilities=[{value:"",label:""},{value:"live",label:l("config.cameras.capabilities.capabilities.live")},{value:"substream",label:l("config.cameras.capabilities.capabilities.substream")},{value:"clips",label:l("config.cameras.capabilities.capabilities.clips")},{value:"recordings",label:l("config.cameras.capabilities.capabilities.recordings")},{value:"snapshots",label:l("config.cameras.capabilities.capabilities.snapshots")},{value:"favorite-events",label:l("config.cameras.capabilities.capabilities.favorite-events")},{value:"favorite-recordings",label:l("config.cameras.capabilities.capabilities.favorite-recordings")},{value:"seek",label:l("config.cameras.capabilities.capabilities.seek")},{value:"ptz",label:l("config.cameras.capabilities.capabilities.ptz")},{value:"menu",label:l("config.cameras.capabilities.capabilities.menu")}],this._defaultResetInteractionModes=[{value:"",label:""},{value:"all",label:l("config.view.default_reset.interaction_modes.all")},{value:"inactive",label:l("config.view.default_reset.interaction_modes.inactive")},{value:"active",label:l("config.view.default_reset.interaction_modes.active")}],this._proxyMedia=[{value:"",label:""},{value:"auto",label:l("config.cameras.proxy.media.auto")},{value:!0,label:l("config.cameras.proxy.media.true")},{value:!1,label:l("config.cameras.proxy.media.false")}],this._proxySSLCiphers=[{value:"",label:""},{value:"auto",label:l("config.cameras.proxy.ssl_ciphers.auto")},{value:"default",label:l("config.cameras.proxy.ssl_ciphers.default")},{value:"insecure",label:l("config.cameras.proxy.ssl_ciphers.insecure")},{value:"intermediate",label:l("config.cameras.proxy.ssl_ciphers.intermediate")},{value:"modern",label:l("config.cameras.proxy.ssl_ciphers.modern")}],this._proxySSLVerification=[{value:"",label:""},{value:"auto",label:l("config.cameras.proxy.ssl_verification.auto")},{value:!0,label:l("config.cameras.proxy.ssl_verification.true")},{value:!1,label:l("config.cameras.proxy.ssl_verification.false")}],this._reolinkMediaResolution=[{value:"",label:""},{value:"high",label:l("config.cameras.reolink.media_resolution.high")},{value:"low",label:l("config.cameras.reolink.media_resolution.low")}],this._statusBarStyles=[{value:"",label:""},{value:"hover",label:l("config.status_bar.styles.hover")},{value:"hover-card",label:l("config.status_bar.styles.hover-card")},{value:"none",label:l("config.status_bar.styles.none")},{value:"outside",label:l("config.status_bar.styles.outside")},{value:"overlay",label:l("config.status_bar.styles.overlay")},{value:"popup",label:l("config.status_bar.styles.popup")}],this._statusBarPositions=[{value:"",label:""},{value:"top",label:l("config.status_bar.positions.top")},{value:"bottom",label:l("config.status_bar.positions.bottom")}]}setConfig(e){this._config=e,this._configUpgradeable=u(e);const a=h.safeParse(this._config.profiles);if(a.success){const e=m(di);_(this._config,e,a.data),this._defaults=e}}willUpdate(){this._initialized||g().then((e=>{e&&(this._initialized=!0)}))}_renderOptionSetHeader(e,a){const t=pi[e];return o` +
+
+ +
${t.name}
+
+
${t.secondary}
+
+ `}_getLabel(e){const a=e.split(".").filter((e=>!e.match(/^\[[0-9]+\]$/))).join(".");return l(`config.${a}`)}_renderEntitySelector(e,a){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_renderOptionSelector(e,a=[],t){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_renderIconSelector(e,a){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_renderNumberInput(e,a){if(!this._config)return;const t=b(this._config,e),i=void 0===a?.max?"box":"slider";return o` + this._valueChangedHandler(e,a)} + > + + `}_renderInfo(e){return o` ${e}`}_getEditorCameraTitle(e,a){return"string"==typeof a?.title&&a.title||("string"==typeof a?.camera_entity?p(this.hass,a.camera_entity):"")||"object"==typeof a?.webrtc_card&&a.webrtc_card&&"string"==typeof a.webrtc_card.entity&&a.webrtc_card.entity||("object"==typeof a?.frigate&&a.frigate&&"string"==typeof a?.frigate.camera_name&&a.frigate.camera_name?v(a.frigate.camera_name):"")||"string"==typeof a?.id&&a.id||l("editor.camera")+" #"+e}_renderViewDefaultResetMenu(){return this._putInSubmenu("view.default_reset",!0,`config.${f}.editor_label`,"mdi:restart",o` + ${this._renderSwitch($,this._defaults.view.default_reset.after_interaction)} + ${this._renderNumberInput(y)} + ${this._renderOptionSelector(w,this._defaultResetInteractionModes,{label:l("config.view.default_reset.interaction_mode")})}, + ${this._renderOptionSelector(S,this.hass?x(this.hass):[],{multiple:!0})} + `)}_renderViewTriggersMenu(){return this._putInSubmenu("view.triggers",!0,`config.${M}.editor_label`,"mdi:target-account",o` + ${this._renderSwitch(I,this._defaults.view.triggers.filter_selected_camera,{label:l(`config.${I}`)})} + ${this._renderSwitch(k,this._defaults.view.triggers.show_trigger_status,{label:l(`config.${k}`)})} + ${this._renderNumberInput(O,{default:this._defaults.view.triggers.untrigger_seconds})} + ${this._putInSubmenu("view.triggers.actions",!0,`config.${C}.editor_label`,"mdi:cogs",o` ${this._renderOptionSelector(z,this._triggersActionsTrigger,{label:l("config.view.triggers.actions.trigger")})} + ${this._renderOptionSelector(A,this._triggersActionsUntrigger,{label:l("config.view.triggers.actions.untrigger")})} + ${this._renderOptionSelector(N,this._triggersActionsInteractionModes,{label:l("config.view.triggers.actions.interaction_mode")})}`)} + `)}_renderKeyAssigner(e,a){return o` this._valueChangedHandler(e,a)} + >`}_renderViewKeyboardShortcutMenu(){return this._putInSubmenu("view.keyboard_shortcuts",!0,`config.${T}.editor_label`,"mdi:keyboard",o` + ${this._renderSwitch(B,this._defaults.view.keyboard_shortcuts.enabled,{label:l(`config.${B}`)})} + ${this._renderKeyAssigner(E,this._defaults.view.keyboard_shortcuts.ptz_left)} + ${this._renderKeyAssigner(P,this._defaults.view.keyboard_shortcuts.ptz_right)} + ${this._renderKeyAssigner(H,this._defaults.view.keyboard_shortcuts.ptz_up)} + ${this._renderKeyAssigner(L,this._defaults.view.keyboard_shortcuts.ptz_down)} + ${this._renderKeyAssigner(V,this._defaults.view.keyboard_shortcuts.ptz_zoom_in)} + ${this._renderKeyAssigner(K,this._defaults.view.keyboard_shortcuts.ptz_zoom_out)} + ${this._renderKeyAssigner(U,this._defaults.view.keyboard_shortcuts.ptz_home)} + `)}_renderStatusBarItem(e){return o` ${this._putInSubmenu("status_bar.items",e,`config.status_bar.items.${e}`,"mdi:feature-search",o` + ${this._renderSwitch(`${j}.${e}.enabled`,this._defaults.status_bar.items[e]?.enabled??!0,{label:l("config.status_bar.items.enabled")})} + ${this._renderNumberInput(`${j}.${e}.priority`,{max:q,default:this._defaults.status_bar.items[e]?.priority,label:l("config.status_bar.items.priority")})} + `)}`}_renderMenuButton(e,a){const t=[{value:"",label:""},{value:"matching",label:l("config.menu.buttons.alignments.matching")},{value:"opposing",label:l("config.menu.buttons.alignments.opposing")}];return o` ${this._putInSubmenu("menu.buttons",e,`config.menu.buttons.${e}`,"mdi:gesture-tap-button",o` + ${this._renderSwitch(`${R}.${e}.enabled`,this._defaults.menu.buttons[e]?.enabled??!0,{label:l("config.menu.buttons.enabled")})} + ${this._renderOptionSelector(`${R}.${e}.alignment`,t,{label:l("config.menu.buttons.alignment")})} + ${this._renderSwitch(`${R}.${e}.permanent`,this._defaults.menu.buttons[e]?.permanent??!1,{label:l("config.menu.buttons.permanent")})} + ${this._renderNumberInput(`${R}.${e}.priority`,{max:D,default:this._defaults.menu.buttons[e]?.priority,label:l("config.menu.buttons.priority")})} + ${this._renderIconSelector(`${R}.${e}.icon`,{label:l("config.menu.buttons.icon")})} + ${a} + `)}`}_putInSubmenu(e,a,t,i,n){const s=this._expandedMenus[e]===a,c={submenu:!0,selected:s},d=dt(i);return o`
+ + ${s?o`
${n}
`:""} +
`}_renderMediaLayout(e,a,t,i,n,s,r,c,d,m,u,h){return this._putInSubmenu(e,!0,a,"mdi:page-layout-body",o` + ${this._renderNumberInput(m,{min:0,max:10,label:l("config.cameras.dimensions.layout.zoom"),step:.1})} + ${this._renderNumberInput(u,{min:0,max:100,label:l("config.cameras.dimensions.layout.pan.x")})} + ${this._renderNumberInput(h,{min:0,max:100,label:l("config.cameras.dimensions.layout.pan.y")})} + ${this._renderOptionSelector(t,this._layoutFits,{label:l("config.cameras.dimensions.layout.fit")})} + ${this._putInSubmenu(`${e}.position`,!0,"config.cameras.dimensions.layout.position.editor_label","mdi:aspect-ratio",o` ${this._renderNumberInput(i,{min:0,max:100,label:l("config.cameras.dimensions.layout.position.x")})} + ${this._renderNumberInput(n,{min:0,max:100,label:l("config.cameras.dimensions.layout.position.y")})}`)} + ${this._putInSubmenu(`${e}.view_box`,!0,"config.cameras.dimensions.layout.view_box.editor_label","mdi:crop",o` + ${this._renderNumberInput(s,{min:0,max:100,label:l("config.cameras.dimensions.layout.view_box.top")})} + ${this._renderNumberInput(r,{min:0,max:100,label:l("config.cameras.dimensions.layout.view_box.bottom")})} + ${this._renderNumberInput(c,{min:0,max:100,label:l("config.cameras.dimensions.layout.view_box.left")})} + ${this._renderNumberInput(d,{min:0,max:100,label:l("config.cameras.dimensions.layout.view_box.right")})} + `)} + `)}_renderTimelineCoreControls(e,a,t,i,n,s,r){return o` + ${this._renderOptionSelector(e,this._timelineStyleTypes,{label:l(`config.common.${F}`)})} + ${r?this._renderOptionSelector(r,this._timelinePanModes,{label:l("config.common.controls.timeline.pan_mode")}):""} + ${this._renderNumberInput(a,{label:l(`config.common.${G}`)})} + ${this._renderNumberInput(t,{label:l(`config.common.${J}`)})} + ${this._renderOptionSelector(i,this._timelineEventsMediaTypes,{label:l(`config.common.${Q}`)})} + ${this._renderSwitch(n,s,{label:l(`config.common.${W}`)})} + `}_renderMiniTimeline(e,a,t,i,n,s,r,c,d){return this._putInSubmenu(e,!0,"config.common.controls.timeline.editor_label","mdi:chart-gantt",o` ${this._renderOptionSelector(a,this._miniTimelineModes,{label:l("config.common.controls.timeline.mode")})} + ${this._renderTimelineCoreControls(t,i,n,s,r,c,d)}`)}_renderViewDisplay(e,a,t,i,n){return this._putInSubmenu(e,!0,"config.common.display.editor_label","mdi:palette-swatch",o` + ${this._renderOptionSelector(a,this._displayModes,{label:l("config.common.display.mode")})} + ${this._renderNumberInput(t,{min:0,label:l("config.common.display.grid_selected_width_factor")})} + ${this._renderNumberInput(i,{min:0,label:l("config.common.display.grid_columns")})} + ${this._renderNumberInput(n,{min:0,label:l("config.common.display.grid_max_columns")})} + `)}_renderNextPreviousControls(e,a,t,i){return this._putInSubmenu(e,!0,"config.common.controls.next_previous.editor_label","mdi:arrow-right-bold-circle",o` + ${this._renderOptionSelector(a,this._nextPreviousControlStyles.filter((e=>!(!i?.allowThumbnails&&"thumbnails"===e.value||!i?.allowIcons&&"icons"===e.value))),{label:l("config.common.controls.next_previous.style")})} + ${this._renderNumberInput(t,{min:X,label:l("config.common.controls.next_previous.size")})} + `)}_renderThumbnailsControls(e,a,t,i,n,s,r,c){return this._putInSubmenu(e,!0,"config.common.controls.thumbnails.editor_label","mdi:image-text",o` + ${c?.configPathMode?o`${this._renderOptionSelector(c.configPathMode,this._thumbnailModes,{label:l("config.common.controls.thumbnails.mode")})}`:o``} + ${c?.configPathMediaType?o`${this._renderOptionSelector(c.configPathMediaType,this._thumbnailMediaTypes,{label:l("config.common.controls.thumbnails.media_type")})}`:o``} + ${c?.configPathEventsMediaType?o`${this._renderOptionSelector(c.configPathEventsMediaType,this._thumbnailEventsMediaTypes,{label:l("config.common.controls.thumbnails.events_media_type")})}`:o``} + ${this._renderNumberInput(a,{min:Y,max:Z,label:l("config.common.controls.thumbnails.size")})} + ${this._renderSwitch(t,r.show_details,{label:l("config.common.controls.thumbnails.show_details")})} + ${this._renderSwitch(i,r.show_favorite_control,{label:l("config.common.controls.thumbnails.show_favorite_control")})} + ${this._renderSwitch(n,r.show_timeline_control,{label:l("config.common.controls.thumbnails.show_timeline_control")})} + ${this._renderSwitch(s,r.show_download_control,{label:l("config.common.controls.thumbnails.show_download_control")})} + `)}_renderFilterControls(e,a){return this._putInSubmenu(e,!0,"config.common.controls.filter.editor_label","mdi:filter-cog",o` + ${a?o`${this._renderOptionSelector(a,this._filterModes,{label:l("config.common.controls.filter.mode")})}`:o``} + `)}_renderImageOptions(e,a,t,i,n){return o` + ${this._renderOptionSelector(e,this._imageModes,{label:l("config.common.image.mode")})} + ${this._renderStringInput(a,{label:l("config.common.image.url")})} + ${this._renderOptionSelector(t,this.hass?x(this.hass):[],{label:l("config.common.image.entity")})} + ${this._renderStringInput(i,{label:l("config.common.image.entity_parameters")})} + ${this._renderNumberInput(n,{label:l("config.common.image.refresh_seconds")})} + `}_renderCamera(e,a,t,i){const n=[{value:"",label:""},{value:"auto",label:l("config.cameras.live_providers.auto")},{value:"ha",label:l("config.cameras.live_providers.ha")},{value:"image",label:l("config.cameras.live_providers.image")},{value:"jsmpeg",label:l("config.cameras.live_providers.jsmpeg")},{value:"go2rtc",label:l("config.cameras.live_providers.go2rtc")},{value:"webrtc-card",label:l("config.cameras.live_providers.webrtc-card")}],s=[];e.forEach(((e,t)=>{t!==a&&s.push({value:ee(e),label:this._getEditorCameraTitle(t,e)})}));const c=e=>{if(this._config){const a=m(this._config);e(a)&&this._updateConfig(a)}},d={submenu:!0,selected:this._expandedMenus[gi]===a};return o` +
+ + ${this._expandedMenus[gi]===a?o`
+
+ !i&&c((e=>!!(Array.isArray(e.cameras)&&a>0)&&(mt(e.cameras,a,a-1),this._openMenu(gi,a-1),!0)))} + > + + + =this._config.cameras.length-1} + @click=${()=>!i&&c((e=>!!(Array.isArray(e.cameras)&&a + + + {c((e=>!!Array.isArray(e.cameras)&&(e.cameras.splice(a,1),this._closeMenu(gi),!0)))}} + > + + +
+ ${this._renderEntitySelector(ae(ut,a),"camera")} + ${this._renderOptionSelector(ae(ht,a),n)} + ${this._renderStringInput(ae(_t,a))} + ${this._renderIconSelector(ae(gt,a),{label:l("config.cameras.icon")})} + ${this._renderStringInput(ae(bt,a))} + ${this._putInSubmenu("cameras.engine",!0,"config.cameras.engines.editor_label","mdi:engine",o`${this._putInSubmenu("cameras.frigate",a,"config.cameras.frigate.editor_label","frigate",o` + ${this._renderStringInput(ae(pt,a))} + ${this._renderStringInput(ae(vt,a))} + ${this._renderOptionSelector(ae(ft,a),[],{multiple:!0,label:l("config.cameras.frigate.labels")})} + ${this._renderOptionSelector(ae($t,a),[],{multiple:!0,label:l("config.cameras.frigate.zones")})} + ${this._renderStringInput(ae(yt,a))} + `)} + ${this._putInSubmenu("cameras.motioneye",a,"config.cameras.motioneye.editor_label","motioneye",o` ${this._renderStringInput(ae(wt,a))} + ${this._renderStringInput(ae(St,a))} + ${this._renderStringInput(ae(xt,a))} + ${this._renderStringInput(ae(Mt,a))} + ${this._renderStringInput(ae(It,a))}`)} + ${this._putInSubmenu("cameras.reolink",a,"config.cameras.reolink.editor_label","reolink",o` ${this._renderStringInput(ae(kt,a))} + ${this._renderOptionSelector(ae(Ot,a),this._reolinkMediaResolution,{label:l("config.cameras.reolink.media_resolution.editor_label")})}`)}`)} + ${this._putInSubmenu("cameras.live_provider",!0,"config.cameras.live_provider_options.editor_label","mdi:cctv",o` ${this._putInSubmenu("cameras.go2rtc",a,"config.cameras.go2rtc.editor_label","mdi:alpha-g-circle",o`${this._renderOptionSelector(ae(Ct,a),this._go2rtcModes,{multiple:!0,label:l("config.cameras.go2rtc.modes.editor_label")})} + ${this._renderStringInput(ae(zt,a))}`)} + ${this._putInSubmenu("cameras.image",!0,"config.cameras.image.editor_label","mdi:image",this._renderImageOptions(ae(At,a),ae(Nt,a),ae(Tt,a),ae(Bt,a),ae(Et,a)))} + ${this._putInSubmenu("cameras.webrtc_card",a,"config.cameras.webrtc_card.editor_label","mdi:webrtc",o`${this._renderEntitySelector(ae(Pt,a),"camera")} + ${this._renderStringInput(ae(Ht,a))}`)}`)} + ${this._putInSubmenu("cameras.dependencies",a,"config.cameras.dependencies.editor_label","mdi:graph",o` ${this._renderSwitch(ae(Lt,a),this._defaults.cameras.dependencies.all_cameras)} + ${this._renderOptionSelector(ae(Vt,a),s,{multiple:!0})}`)} + ${this._putInSubmenu("cameras.triggers",a,"config.cameras.triggers.editor_label","mdi:magnify-scan",o` + ${this._renderSwitch(ae(Kt,a),this._defaults.cameras.triggers.occupancy)} + ${this._renderSwitch(ae(Ut,a),this._defaults.cameras.triggers.motion)} + ${this._renderOptionSelector(ae(jt,a),t,{multiple:!0})} + ${this._renderOptionSelector(ae(qt,a),this._triggersEvents,{multiple:!0,label:l("config.cameras.triggers.events.editor_label")})} + `)} + ${this._putInSubmenu("cameras.cast",a,"config.cameras.cast.editor_label","mdi:cast",o` + ${this._renderOptionSelector(ae(Rt,a),this._castMethods)} + ${this._renderStringInput(ae(Dt,a))} + ${this._renderStringInput(ae(Ft,a))} + `)} + ${this._putInSubmenu("cameras.dimensions",a,"config.cameras.dimensions.editor_label","mdi:aspect-ratio",o` + ${this._renderStringInput(ae(Gt,a))} + ${this._renderMediaLayout("cameras.dimensions.layout","config.cameras.dimensions.layout.editor_label",ae(Jt,a),ae(Qt,a),ae(Wt,a),ae(Xt,a),ae(Yt,a),ae(Zt,a),ae(ei,a),ae(ai,a),ae(ti,a),ae(ii,a))} + `)} + ${this._putInSubmenu("cameras.capabilities",a,"config.cameras.capabilities.editor_label","mdi:cog-stop",o` + ${this._renderOptionSelector(ae(ni,a),this._capabilities,{multiple:!0})} + ${this._renderOptionSelector(ae(si,a),this._capabilities,{multiple:!0})} + `)} + ${this._putInSubmenu("cameras.proxy",a,"config.cameras.proxy.editor_label","mdi:arrow-decision",o` + ${this._renderOptionSelector(ae(oi,a),this._proxyMedia,{label:l("config.cameras.proxy.media.editor_label")})} + ${this._renderSwitch(ae(ri,a),this._defaults.cameras.proxy.dynamic)} + ${this._renderOptionSelector(ae(li,a),this._proxySSLVerification,{label:l("config.cameras.proxy.ssl_verification.editor_label")})} + ${this._renderOptionSelector(ae(ci,a),this._proxySSLCiphers,{label:l("config.cameras.proxy.ssl_ciphers.editor_label")})} + `)} +
`:""} +
+ `}_renderStringInput(e,a){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_renderSwitch(e,a,t){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_updateConfig(e){this._config=e,te(this,"config-changed",{config:this._config})}render(){if(!this.hass||!this._config)return o``;const e=x(this.hass),a=b(this._config,mi)||[];return o` + ${this._configUpgradeable?o`
+ ${l("editor.upgrade_available")} + + {if(this._config){const e=m(this._config);ie(e),this._updateConfig(e)}}} + > + + +
+
`:o``} +
+ ${this._renderOptionSetHeader("cameras")} + ${"cameras"===this._expandedMenus[bi]?o` +
+ ${a.map(((t,i)=>this._renderCamera(a,i,e)))} + ${this._renderCamera(a,a.length,e,!0)} +
+ `:""} + ${this._renderOptionSetHeader("profiles")} + ${"profiles"===this._expandedMenus[bi]?o`
+ ${this._renderOptionSelector(ne,this._profiles,{multiple:!0,label:l("config.profiles.editor_label")})} +
`:""} + ${this._renderOptionSetHeader("view")} + ${"view"===this._expandedMenus[bi]?o` +
+ ${this._renderOptionSelector(se,this._viewModes)} + ${this._renderOptionSelector(oe,this._cameraSelectViewModes)} + ${this._renderOptionSelector(re,this._darkModes)} + ${this._renderNumberInput(le)} + ${this._renderSwitch(ce,this._defaults.view.default_cycle_camera)} + ${this._renderViewDefaultResetMenu()} ${this._renderViewTriggersMenu()} + ${this._renderViewKeyboardShortcutMenu()} +
+ `:""} + ${this._renderOptionSetHeader("menu")} + ${"menu"===this._expandedMenus[bi]?o` +
+ ${this._renderOptionSelector(de,this._menuStyles)} + ${this._renderOptionSelector(me,this._menuPositions)} + ${this._renderOptionSelector(ue,this._menuAlignments)} + ${this._renderNumberInput(he,{min:X})} + ${this._renderMenuButton("frigate")} + ${this._renderMenuButton("cameras")} + ${this._renderMenuButton("substreams")} + ${this._renderMenuButton("live")} + ${this._renderMenuButton("clips")} + ${this._renderMenuButton("snapshots")} + ${this._renderMenuButton("recordings")} + ${this._renderMenuButton("image")} + ${this._renderMenuButton("download")} + ${this._renderMenuButton("camera_ui")} + ${this._renderMenuButton("fullscreen")} + ${this._renderMenuButton("expand")} + ${this._renderMenuButton("timeline")} + ${this._renderMenuButton("media_player")} + ${this._renderMenuButton("microphone",o`${this._renderOptionSelector(`${R}.microphone.type`,this._microphoneButtonTypes,{label:l("config.menu.buttons.type")})}`)} + ${this._renderMenuButton("play")} + ${this._renderMenuButton("mute")} + ${this._renderMenuButton("screenshot")} + ${this._renderMenuButton("display_mode")} + ${this._renderMenuButton("ptz_controls")} + ${this._renderMenuButton("ptz_home")} +
+ `:""} + ${this._renderOptionSetHeader("status_bar")} + ${"status_bar"===this._expandedMenus[bi]?o` +
+ ${this._renderOptionSelector(_e,this._statusBarStyles)} + ${this._renderOptionSelector(ge,this._statusBarPositions)} + ${this._renderNumberInput(be,{min:pe,label:l("config.status_bar.height")})} + ${this._renderNumberInput(ve,{min:0,max:60,default:this._defaults.status_bar.popup_seconds,label:l("config.status_bar.popup_seconds")})} + ${this._renderStatusBarItem("title")} + ${this._renderStatusBarItem("resolution")} + ${this._renderStatusBarItem("technology")} + ${this._renderStatusBarItem("engine")} +
+ `:""} + ${this._renderOptionSetHeader("live")} + ${"live"===this._expandedMenus[bi]?o` +
+ ${this._renderSwitch(fe,this._defaults.live.preload)} + ${this._renderSwitch($e,this._defaults.live.draggable)} + ${this._renderSwitch(ye,this._defaults.live.zoomable)} + ${this._renderSwitch(we,this._defaults.live.lazy_load)} + ${this._renderOptionSelector(Se,this._mediaActionNegativeConditions,{multiple:!0})} + ${this._renderOptionSelector(xe,this._mediaActionPositiveConditions,{multiple:!0})} + ${this._renderOptionSelector(Me,this._mediaActionNegativeConditions,{multiple:!0})} + ${this._renderOptionSelector(Ie,this._mediaLiveMuteConditions,{multiple:!0})} + ${this._renderOptionSelector(ke,this._mediaLiveUnmuteConditions,{multiple:!0})} + ${this._renderOptionSelector(Oe,this._transitionEffects)} + ${this._renderSwitch(Ce,this._defaults.live.show_image_during_load)} + ${this._renderViewDisplay("live.display",ze,Ae,Ne,Te)} + ${this._putInSubmenu("live.controls",!0,"config.live.controls.editor_label","mdi:gamepad",o` + ${this._renderSwitch(Be,this._defaults.live.controls.builtin,{label:l("config.common.controls.builtin")})} + ${this._renderNextPreviousControls("live.controls.next_previous",Ee,Pe,{allowIcons:!0})} + ${this._renderThumbnailsControls("live.controls.thumbnails",He,Le,Ve,Ke,Ue,this._defaults.live.controls.thumbnails,{configPathMediaType:je,configPathEventsMediaType:qe,configPathMode:Re})} + ${this._renderMiniTimeline("live.controls.timeline",De,Fe,Ge,Je,Qe,We,this._defaults.live.controls.timeline.show_recordings,Xe)} + ${this._putInSubmenu("live.controls.ptz",!0,"config.live.controls.ptz.editor_label","mdi:pan",o` + ${this._renderOptionSelector(Ye,this._ptzModes)} + ${this._renderOptionSelector(Ze,this._ptzPositions)} + ${this._renderOptionSelector(ea,this._ptzOrientations)} + ${this._renderSwitch(aa,this._defaults.live.controls.ptz.hide_pan_tilt,{label:l("config.live.controls.ptz.hide_pan_tilt")})} + ${this._renderSwitch(ta,this._defaults.live.controls.ptz.hide_pan_tilt,{label:l("config.live.controls.ptz.hide_zoom")})} + ${this._renderSwitch(ia,this._defaults.live.controls.ptz.hide_home,{label:l("config.live.controls.ptz.hide_home")})} + `)} + `)} + ${this._putInSubmenu("live.microphone",!0,"config.live.microphone.editor_label","mdi:microphone",o` + ${this._renderNumberInput(na)} + ${this._renderSwitch(sa,this._defaults.live.microphone.always_connected)} + ${this._renderNumberInput(oa)} + `)} +
+ `:""} + ${this._renderOptionSetHeader("media_gallery")} + ${"media_gallery"===this._expandedMenus[bi]?o`
+ ${this._renderThumbnailsControls("media_gallery.controls.thumbnails",ra,la,ca,da,ma,this._defaults.media_gallery.controls.thumbnails)} + ${this._renderFilterControls("media_gallery.controls.filter",ua)} +
`:""} + ${this._renderOptionSetHeader("media_viewer")} + ${"media_viewer"===this._expandedMenus[bi]?o`
+ ${this._renderOptionSelector(ha,this._mediaActionPositiveConditions,{multiple:!0})} + ${this._renderOptionSelector(_a,this._mediaActionNegativeConditions,{multiple:!0})} + ${this._renderOptionSelector(ga,this._mediaActionNegativeConditions,{multiple:!0})} + ${this._renderOptionSelector(ba,this._mediaActionPositiveConditions,{multiple:!0})} + ${this._renderSwitch(pa,this._defaults.media_viewer.draggable)} + ${this._renderSwitch(va,this._defaults.media_viewer.zoomable)} + ${this._renderSwitch(fa,this._defaults.media_viewer.lazy_load)} + ${this._renderOptionSelector($a,this._transitionEffects)} + ${this._renderSwitch(ya,this._defaults.media_viewer.snapshot_click_plays_clip)} + ${this._renderViewDisplay("media_viewer.display",wa,Sa,xa,Ma)} + ${this._putInSubmenu("media_viewer.controls",!0,"config.media_viewer.controls.editor_label","mdi:gamepad",o` + ${this._renderSwitch(Ia,this._defaults.media_viewer.controls.builtin,{label:l("config.common.controls.builtin")})} + ${this._renderNextPreviousControls("media_viewer.controls.next_previous",ka,Oa,{allowThumbnails:!0})} + ${this._renderThumbnailsControls("media_viewer.controls.thumbnails",Ca,za,Aa,Na,Ta,this._defaults.media_viewer.controls.thumbnails,{configPathMode:Ba})} + ${this._renderMiniTimeline("media_viewer.controls.timeline",Ea,Pa,Ha,La,Va,Ka,this._defaults.media_viewer.controls.timeline.show_recordings,Ua)} + `)} +
`:""} + ${this._renderOptionSetHeader("image")} + ${"image"===this._expandedMenus[bi]?o`
+ ${this._renderImageOptions(ja,qa,Ra,Da,Fa)} +
`:""} + ${this._renderOptionSetHeader("timeline")} + ${"timeline"===this._expandedMenus[bi]?o`
+ ${this._renderTimelineCoreControls(F,G,J,Q,W,this._defaults.timeline.show_recordings)} + ${this._renderThumbnailsControls("timeline.controls.thumbnails",Ga,Ja,Qa,Wa,Xa,this._defaults.timeline.controls.thumbnails,{configPathMode:Ya})} +
`:""} + ${this._renderOptionSetHeader("dimensions")} + ${"dimensions"===this._expandedMenus[bi]?o`
+ ${this._renderOptionSelector(Za,this._aspectRatioModes)} + ${this._renderStringInput(et)} + ${this._renderStringInput(at)} +
`:""} + ${this._renderOptionSetHeader("performance","low"===b(this._config,ui)?"warning":void 0)} + ${"performance"===this._expandedMenus[bi]?o`
+ ${"low"===b(this._config,ui)?this._renderInfo(l("config.performance.warning")):o``} + ${this._putInSubmenu("performance.features",!0,"config.performance.features.editor_label","mdi:feature-search",o` + ${this._renderSwitch(tt,this._defaults.performance.features.animated_progress_indicator)} + ${this._renderNumberInput(it,{max:nt})} + ${this._renderNumberInput(st,{min:1})} + `)} + ${this._putInSubmenu("performance.style",!0,"config.performance.style.editor_label","mdi:palette-swatch-variant",o` + ${this._renderSwitch(ot,this._defaults.performance.style.border_radius)} + ${this._renderSwitch(rt,this._defaults.performance.style.box_shadow)} + `)} +
`:""} + ${void 0!==this._config.overrides?o` ${this._renderOptionSetHeader("overrides")} + ${"overrides"===this._expandedMenus[bi]?o`
+ ${this._renderInfo(l("config.overrides.info"))} +
`:""}`:o``} +
+ `}_closeMenu(e){delete this._expandedMenus[e],this.requestUpdate()}_openMenu(e,a){this._expandedMenus[e]=a,this.requestUpdate()}_toggleMenu(e){if(e&&e.target){const a=e.target.domain,t=e.target.key;this._expandedMenus[a]===t?this._closeMenu(a):this._openMenu(a,t)}}_valueChangedHandler(e,a){if(!this._config||!this.hass)return;let t;if(a.detail&&void 0!==a.detail.value&&(t=a.detail.value,"string"==typeof t&&(t=t.trim())),b(this._config,e)===t)return;const i=m(this._config);""===t||void 0===t?lt(i,e):ct(i,e,t),this._updateConfig(i)}static get styles(){return c('ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n.option {\n padding: 4px 4px;\n cursor: pointer;\n}\n\n.option.option-overrides .title {\n color: var(--warning-color);\n}\n\n.row {\n display: flex;\n margin-bottom: -14px;\n pointer-events: none;\n}\n\n.title {\n padding-left: 16px;\n margin-top: -6px;\n pointer-events: none;\n}\n\n.title.warning {\n color: var(--warning-color);\n}\n\n.secondary {\n padding-left: 40px;\n color: var(--secondary-text-color);\n pointer-events: none;\n}\n\n.values {\n background: var(--secondary-background-color);\n display: grid;\n}\n\n.values + .option,\n.submenu + .option {\n margin-top: 10px;\n}\n\ndiv.upgrade {\n width: auto;\n border: 1px dotted var(--primary-color);\n margin: 10px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\ndiv.upgrade span {\n padding: 10px;\n}\n\n.submenu-header {\n display: flex;\n padding: 10px;\n cursor: pointer;\n}\n\n.submenu.selected > .submenu-header {\n background-color: var(--primary-color);\n color: var(--primary-text-color);\n}\n\n.submenu-header * {\n flex-basis: auto;\n pointer-events: none;\n}\n\n.submenu-header .new-camera {\n font-style: italic;\n}\n\n.submenu:not(.selected) > .submenu-header .new-camera {\n color: var(--secondary-text-color, "black");\n}\n\n.submenu-header ha-icon,\n.submenu-header img {\n padding-right: 15px;\n}\n\n.submenu.selected {\n border: 1px solid var(--primary-color);\n}\n\n.submenu {\n width: calc(100% - 20px);\n margin-left: auto;\n margin-right: auto;\n margin-bottom: 10px;\n}\n\n.submenu:first-child,\n:not(.submenu) + .submenu {\n margin-top: 10px;\n}\n\n.submenu .controls {\n display: inline-block;\n margin-left: auto;\n margin-right: 0px;\n margin-bottom: 5px;\n}\n\n.submenu .controls ha-icon-button.button {\n --mdc-icon-button-size: 32px;\n --mdc-icon-size: calc(var(--mdc-icon-button-size) / 2);\n}\n\nspan.info {\n padding: 10px;\n}\n\nha-selector {\n padding: 10px;\n border: 1px solid var(--divider-color);\n}')}};t([i({attribute:!1})],vi.prototype,"hass",void 0),t([d()],vi.prototype,"_config",void 0),t([d()],vi.prototype,"_defaults",void 0),t([d()],vi.prototype,"_expandedMenus",void 0),vi=t([n("frigate-card-editor")],vi);export{vi as FrigateCardEditor}; diff --git a/config/www/community/frigate-hass-card/editor-13524f00.js.gz b/config/www/community/frigate-hass-card/editor-13524f00.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..d819494d9fbc6ce8513fc12aa793fff242d21f63 GIT binary patch literal 11530 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._setAssigning(!1)},this._keydownEventHandler=e=>{e.key&&!["Control","Alt","Shift","Meta"].includes(e.key)&&(this.setValue({key:e.key,ctrl:e.ctrlKey,alt:e.altKey,shift:e.shiftKey,meta:e.metaKey}),this._setAssigning(!1))},this._host=e,this._host.addController(this)}setValue(a){e(a,this._value)||(this._value=a,this._host.requestUpdate(),this._host.dispatchEvent(new CustomEvent("value-changed",{detail:{value:this._value}})))}getValue(){return this._value}hasValue(){return!!this._value}isAssigning(){return this._assigning}toggleAssigning(){this._setAssigning(!this._assigning)}_setAssigning(e){this._assigning=e,a(this._host,this._assigning,"assigning"),this._assigning?this._host.addEventListener("keydown",this._keydownEventHandler):this._host.removeEventListener("keydown",this._keydownEventHandler),this._host.requestUpdate()}hostConnected(){this._host.addEventListener("blur",this._blurEventHandler)}hostDisconnected(){this._host.removeEventListener("blur",this._blurEventHandler)}}let _i=class extends s{constructor(){super(...arguments),this._controller=new hi(this)}willUpdate(e){e.has("value")&&this._controller.setValue(this.value??null)}render(){if(!this.label)return;const e=e=>o`
+
${e}
+
`;return o` +
${this.label}
+ {this._controller.toggleAssigning()}} + > + + + ${this._controller.isAssigning()?l("key_assigner.assigning"):l("key_assigner.assign")} + + + ${this._controller.hasValue()?o`{this._controller.setValue(null)}} + > + + ${l("key_assigner.unassign")} + `:""} +
+ ${this.value?.ctrl?e(l("key_assigner.modifiers.ctrl")):""} + ${this.value?.shift?e(l("key_assigner.modifiers.shift")):""} + ${this.value?.meta?e(l("key_assigner.modifiers.meta")):""} + ${this.value?.alt?e(l("key_assigner.modifiers.alt")):""} + ${this.value?.key?e(this.value.key):""} +
+ `}static get styles(){return c('.dotdotdot:after {\n animation: dots 2s linear infinite;\n content: "";\n display: inline-block;\n width: 3em;\n}\n@keyframes dots {\n 0%, 20% {\n content: ".";\n }\n 40% {\n content: "..";\n }\n 60% {\n content: "...";\n }\n 90%, 100% {\n content: "";\n }\n}\n\n:host {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 10px;\n height: 56px;\n border: 1px solid var(--divider-color);\n}\n\n:host([assigning]) ha-button.assign span,\n:host([assigning]) ha-button.assign ha-icon {\n color: var(--warning-color);\n}\n\nha-icon {\n padding: 10px;\n}\n\ndiv.label {\n width: 100px;\n margin-left: 4px;\n}\n\ndiv.key-row {\n flex: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n padding-left: 10px;\n padding-right: 10px;\n}\n\ndiv.key {\n display: flex;\n align-items: center;\n height: 90%;\n width: min-content;\n margin-left: 5px;\n margin-right: 5px;\n}\n\ndiv.key-inner {\n height: 100%;\n width: 100%;\n padding-top: 2px;\n padding-bottom: 2px;\n padding-left: 4px;\n padding-right: 4px;\n border: 2px;\n border-radius: 4px;\n border-style: outset;\n border-color: var(--divider-color);\n font-family: monospace;\n text-transform: capitalize;\n}\n\ndiv.unassigned {\n font-style: italic;\n}\n\ndiv.key + div.key:before {\n display: flex;\n align-items: center;\n margin-right: 5px;\n content: " + ";\n}')}};t([i({attribute:!1})],_i.prototype,"label",void 0),t([i({attribute:!1})],_i.prototype,"value",void 0),_i=t([n("frigate-card-key-assigner")],_i);const gi="cameras",bi="options",pi={cameras:{icon:"video",name:l("editor.cameras"),secondary:l("editor.cameras_secondary")},view:{icon:"eye",name:l("editor.view"),secondary:l("editor.view_secondary")},menu:{icon:"menu",name:l("editor.menu"),secondary:l("editor.menu_secondary")},status_bar:{icon:"sign-text",name:l("editor.status_bar"),secondary:l("editor.status_bar_secondary")},live:{icon:"cctv",name:l("editor.live"),secondary:l("editor.live_secondary")},media_gallery:{icon:"grid",name:l("editor.media_gallery"),secondary:l("editor.media_gallery_secondary")},media_viewer:{icon:"filmstrip",name:l("editor.media_viewer"),secondary:l("editor.media_viewer_secondary")},image:{icon:"image",name:l("editor.image"),secondary:l("editor.image_secondary")},timeline:{icon:"chart-gantt",name:l("editor.timeline"),secondary:l("editor.timeline_secondary")},dimensions:{icon:"aspect-ratio",name:l("editor.dimensions"),secondary:l("editor.dimensions_secondary")},performance:{icon:"speedometer",name:l("editor.performance"),secondary:l("editor.performance_secondary")},profiles:{icon:"folder-wrench-outline",name:l("editor.profiles"),secondary:l("editor.profiles_secondary")},overrides:{icon:"file-replace",name:l("editor.overrides"),secondary:l("editor.overrides_secondary")}};let vi=class extends s{constructor(){super(...arguments),this._defaults=m(di),this._initialized=!1,this._configUpgradeable=!1,this._expandedMenus={},this._viewModes=[{value:"",label:""},{value:"live",label:l("config.view.views.live")},{value:"clips",label:l("config.view.views.clips")},{value:"snapshots",label:l("config.view.views.snapshots")},{value:"recordings",label:l("config.view.views.recordings")},{value:"clip",label:l("config.view.views.clip")},{value:"snapshot",label:l("config.view.views.snapshot")},{value:"recording",label:l("config.view.views.recording")},{value:"image",label:l("config.view.views.image")},{value:"timeline",label:l("config.view.views.timeline")}],this._cameraSelectViewModes=[...this._viewModes,{value:"current",label:l("config.view.views.current")}],this._filterModes=[{value:"",label:""},{value:"none",label:l("config.common.controls.filter.modes.none")},{value:"left",label:l("config.common.controls.filter.modes.left")},{value:"right",label:l("config.common.controls.filter.modes.right")}],this._menuStyles=[{value:"",label:""},{value:"none",label:l("config.menu.styles.none")},{value:"hidden",label:l("config.menu.styles.hidden")},{value:"overlay",label:l("config.menu.styles.overlay")},{value:"hover",label:l("config.menu.styles.hover")},{value:"hover-card",label:l("config.menu.styles.hover-card")},{value:"outside",label:l("config.menu.styles.outside")}],this._menuPositions=[{value:"",label:""},{value:"left",label:l("config.menu.positions.left")},{value:"right",label:l("config.menu.positions.right")},{value:"top",label:l("config.menu.positions.top")},{value:"bottom",label:l("config.menu.positions.bottom")}],this._menuAlignments=[{value:"",label:""},{value:"left",label:l("config.menu.alignments.left")},{value:"right",label:l("config.menu.alignments.right")},{value:"top",label:l("config.menu.alignments.top")},{value:"bottom",label:l("config.menu.alignments.bottom")}],this._nextPreviousControlStyles=[{value:"",label:""},{value:"chevrons",label:l("config.common.controls.next_previous.styles.chevrons")},{value:"icons",label:l("config.common.controls.next_previous.styles.icons")},{value:"none",label:l("config.common.controls.next_previous.styles.none")},{value:"thumbnails",label:l("config.common.controls.next_previous.styles.thumbnails")}],this._aspectRatioModes=[{value:"",label:""},{value:"dynamic",label:l("config.dimensions.aspect_ratio_modes.dynamic")},{value:"static",label:l("config.dimensions.aspect_ratio_modes.static")},{value:"unconstrained",label:l("config.dimensions.aspect_ratio_modes.unconstrained")}],this._thumbnailModes=[{value:"",label:""},{value:"none",label:l("config.common.controls.thumbnails.modes.none")},{value:"above",label:l("config.common.controls.thumbnails.modes.above")},{value:"below",label:l("config.common.controls.thumbnails.modes.below")},{value:"left",label:l("config.common.controls.thumbnails.modes.left")},{value:"right",label:l("config.common.controls.thumbnails.modes.right")}],this._thumbnailMediaTypes=[{value:"",label:""},{value:"events",label:l("config.common.controls.thumbnails.media_types.events")},{value:"recordings",label:l("config.common.controls.thumbnails.media_types.recordings")}],this._thumbnailEventsMediaTypes=[{value:"",label:""},{value:"clips",label:l("config.common.controls.thumbnails.events_media_types.clips")},{value:"snapshots",label:l("config.common.controls.thumbnails.events_media_types.snapshots")}],this._transitionEffects=[{value:"",label:""},{value:"none",label:l("config.media_viewer.transition_effects.none")},{value:"slide",label:l("config.media_viewer.transition_effects.slide")}],this._imageModes=[{value:"",label:""},{value:"camera",label:l("config.common.image.modes.camera")},{value:"entity",label:l("config.common.image.modes.entity")},{value:"screensaver",label:l("config.common.image.modes.screensaver")},{value:"url",label:l("config.common.image.modes.url")}],this._timelineEventsMediaTypes=[{value:"",label:""},{value:"all",label:l("config.common.timeline.events_media_types.all")},{value:"clips",label:l("config.common.timeline.events_media_types.clips")},{value:"snapshots",label:l("config.common.timeline.events_media_types.snapshots")}],this._timelineStyleTypes=[{value:"",label:""},{value:"ribbon",label:l("config.common.timeline.styles.ribbon")},{value:"stack",label:l("config.common.timeline.styles.stack")}],this._darkModes=[{value:"",label:""},{value:"on",label:l("config.view.dark_modes.on")},{value:"off",label:l("config.view.dark_modes.off")},{value:"auto",label:l("config.view.dark_modes.auto")}],this._mediaActionNegativeConditions=[{value:"",label:""},{value:"unselected",label:l("config.common.media_action_conditions.unselected")},{value:"hidden",label:l("config.common.media_action_conditions.hidden")}],this._mediaActionPositiveConditions=[{value:"",label:""},{value:"selected",label:l("config.common.media_action_conditions.selected")},{value:"visible",label:l("config.common.media_action_conditions.visible")}],this._mediaLiveUnmuteConditions=[...this._mediaActionPositiveConditions,{value:"microphone",label:l("config.common.media_action_conditions.microphone_unmute")}],this._mediaLiveMuteConditions=[...this._mediaActionNegativeConditions,{value:"microphone",label:l("config.common.media_action_conditions.microphone_mute")}],this._layoutFits=[{value:"",label:""},{value:"contain",label:l("config.cameras.dimensions.layout.fits.contain")},{value:"cover",label:l("config.cameras.dimensions.layout.fits.cover")},{value:"fill",label:l("config.cameras.dimensions.layout.fits.fill")}],this._miniTimelineModes=[{value:"",label:""},{value:"none",label:l("config.common.controls.timeline.modes.none")},{value:"above",label:l("config.common.controls.timeline.modes.above")},{value:"below",label:l("config.common.controls.timeline.modes.below")}],this._profiles=[{value:"",label:""},{value:"casting",label:l("config.profiles.casting")},{value:"low-performance",label:l("config.profiles.low-performance")},{value:"scrubbing",label:l("config.profiles.scrubbing")}],this._go2rtcModes=[{value:"",label:""},{value:"mse",label:l("config.cameras.go2rtc.modes.mse")},{value:"webrtc",label:l("config.cameras.go2rtc.modes.webrtc")},{value:"mp4",label:l("config.cameras.go2rtc.modes.mp4")},{value:"mjpeg",label:l("config.cameras.go2rtc.modes.mjpeg")}],this._microphoneButtonTypes=[{value:"",label:""},{value:"momentary",label:l("config.menu.buttons.types.momentary")},{value:"toggle",label:l("config.menu.buttons.types.toggle")}],this._displayModes=[{value:"",label:""},{value:"single",label:l("display_modes.single")},{value:"grid",label:l("display_modes.grid")}],this._castMethods=[{value:"",label:""},{value:"standard",label:l("config.cameras.cast.methods.standard")},{value:"dashboard",label:l("config.cameras.cast.methods.dashboard")}],this._ptzModes=[{value:"",label:""},{value:"on",label:l("config.live.controls.ptz.modes.on")},{value:"off",label:l("config.live.controls.ptz.modes.off")}],this._ptzOrientations=[{value:"",label:""},{value:"vertical",label:l("config.live.controls.ptz.orientations.vertical")},{value:"horizontal",label:l("config.live.controls.ptz.orientations.horizontal")}],this._ptzPositions=[{value:"",label:""},{value:"top-left",label:l("config.live.controls.ptz.positions.top-left")},{value:"top-right",label:l("config.live.controls.ptz.positions.top-right")},{value:"bottom-left",label:l("config.live.controls.ptz.positions.bottom-left")},{value:"bottom-right",label:l("config.live.controls.ptz.positions.bottom-right")}],this._triggersActionsInteractionModes=[{value:"",label:""},{value:"all",label:l("config.view.triggers.actions.interaction_modes.all")},{value:"inactive",label:l("config.view.triggers.actions.interaction_modes.inactive")},{value:"active",label:l("config.view.triggers.actions.interaction_modes.active")}],this._triggersActionsTrigger=[{value:"",label:""},{value:"default",label:l("config.view.triggers.actions.triggers.default")},{value:"live",label:l("config.view.triggers.actions.triggers.live")},{value:"media",label:l("config.view.triggers.actions.triggers.media")},{value:"none",label:l("config.view.triggers.actions.triggers.none")}],this._triggersActionsUntrigger=[{value:"",label:""},{value:"default",label:l("config.view.triggers.actions.untriggers.default")},{value:"none",label:l("config.view.triggers.actions.untriggers.none")}],this._triggersEvents=[{value:"",label:""},{value:"events",label:l("config.cameras.triggers.events.events")},{value:"clips",label:l("config.cameras.triggers.events.clips")},{value:"snapshots",label:l("config.cameras.triggers.events.snapshots")}],this._timelinePanModes=[{value:"",label:""},{value:"pan",label:l("config.common.controls.timeline.pan_modes.pan")},{value:"seek",label:l("config.common.controls.timeline.pan_modes.seek")},{value:"seek-in-media",label:l("config.common.controls.timeline.pan_modes.seek-in-media")},{value:"seek-in-camera",label:l("config.common.controls.timeline.pan_modes.seek-in-camera")}],this._capabilities=[{value:"",label:""},{value:"live",label:l("config.cameras.capabilities.capabilities.live")},{value:"substream",label:l("config.cameras.capabilities.capabilities.substream")},{value:"clips",label:l("config.cameras.capabilities.capabilities.clips")},{value:"recordings",label:l("config.cameras.capabilities.capabilities.recordings")},{value:"snapshots",label:l("config.cameras.capabilities.capabilities.snapshots")},{value:"favorite-events",label:l("config.cameras.capabilities.capabilities.favorite-events")},{value:"favorite-recordings",label:l("config.cameras.capabilities.capabilities.favorite-recordings")},{value:"seek",label:l("config.cameras.capabilities.capabilities.seek")},{value:"ptz",label:l("config.cameras.capabilities.capabilities.ptz")},{value:"menu",label:l("config.cameras.capabilities.capabilities.menu")}],this._defaultResetInteractionModes=[{value:"",label:""},{value:"all",label:l("config.view.default_reset.interaction_modes.all")},{value:"inactive",label:l("config.view.default_reset.interaction_modes.inactive")},{value:"active",label:l("config.view.default_reset.interaction_modes.active")}],this._proxyMedia=[{value:"",label:""},{value:"auto",label:l("config.cameras.proxy.media.auto")},{value:!0,label:l("config.cameras.proxy.media.true")},{value:!1,label:l("config.cameras.proxy.media.false")}],this._proxySSLCiphers=[{value:"",label:""},{value:"auto",label:l("config.cameras.proxy.ssl_ciphers.auto")},{value:"default",label:l("config.cameras.proxy.ssl_ciphers.default")},{value:"insecure",label:l("config.cameras.proxy.ssl_ciphers.insecure")},{value:"intermediate",label:l("config.cameras.proxy.ssl_ciphers.intermediate")},{value:"modern",label:l("config.cameras.proxy.ssl_ciphers.modern")}],this._proxySSLVerification=[{value:"",label:""},{value:"auto",label:l("config.cameras.proxy.ssl_verification.auto")},{value:!0,label:l("config.cameras.proxy.ssl_verification.true")},{value:!1,label:l("config.cameras.proxy.ssl_verification.false")}],this._reolinkMediaResolution=[{value:"",label:""},{value:"high",label:l("config.cameras.reolink.media_resolution.high")},{value:"low",label:l("config.cameras.reolink.media_resolution.low")}],this._statusBarStyles=[{value:"",label:""},{value:"hover",label:l("config.status_bar.styles.hover")},{value:"hover-card",label:l("config.status_bar.styles.hover-card")},{value:"none",label:l("config.status_bar.styles.none")},{value:"outside",label:l("config.status_bar.styles.outside")},{value:"overlay",label:l("config.status_bar.styles.overlay")},{value:"popup",label:l("config.status_bar.styles.popup")}],this._statusBarPositions=[{value:"",label:""},{value:"top",label:l("config.status_bar.positions.top")},{value:"bottom",label:l("config.status_bar.positions.bottom")}]}setConfig(e){this._config=e,this._configUpgradeable=u(e);const a=h.safeParse(this._config.profiles);if(a.success){const e=m(di);_(this._config,e,a.data),this._defaults=e}}willUpdate(){this._initialized||g().then((e=>{e&&(this._initialized=!0)}))}_renderOptionSetHeader(e,a){const t=pi[e];return o` +
+
+ +
${t.name}
+
+
${t.secondary}
+
+ `}_getLabel(e){const a=e.split(".").filter((e=>!e.match(/^\[[0-9]+\]$/))).join(".");return l(`config.${a}`)}_renderEntitySelector(e,a){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_renderOptionSelector(e,a=[],t){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_renderIconSelector(e,a){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_renderNumberInput(e,a){if(!this._config)return;const t=b(this._config,e),i=void 0===a?.max?"box":"slider";return o` + this._valueChangedHandler(e,a)} + > + + `}_renderInfo(e){return o` ${e}`}_getEditorCameraTitle(e,a){return"string"==typeof a?.title&&a.title||("string"==typeof a?.camera_entity?p(this.hass,a.camera_entity):"")||"object"==typeof a?.webrtc_card&&a.webrtc_card&&"string"==typeof a.webrtc_card.entity&&a.webrtc_card.entity||("object"==typeof a?.frigate&&a.frigate&&"string"==typeof a?.frigate.camera_name&&a.frigate.camera_name?v(a.frigate.camera_name):"")||"string"==typeof a?.id&&a.id||l("editor.camera")+" #"+e}_renderViewDefaultResetMenu(){return this._putInSubmenu("view.default_reset",!0,`config.${f}.editor_label`,"mdi:restart",o` + ${this._renderSwitch($,this._defaults.view.default_reset.after_interaction)} + ${this._renderNumberInput(y)} + ${this._renderOptionSelector(w,this._defaultResetInteractionModes,{label:l("config.view.default_reset.interaction_mode")})}, + ${this._renderOptionSelector(S,this.hass?x(this.hass):[],{multiple:!0})} + `)}_renderViewTriggersMenu(){return this._putInSubmenu("view.triggers",!0,`config.${M}.editor_label`,"mdi:target-account",o` + ${this._renderSwitch(I,this._defaults.view.triggers.filter_selected_camera,{label:l(`config.${I}`)})} + ${this._renderSwitch(k,this._defaults.view.triggers.show_trigger_status,{label:l(`config.${k}`)})} + ${this._renderNumberInput(O,{default:this._defaults.view.triggers.untrigger_seconds})} + ${this._putInSubmenu("view.triggers.actions",!0,`config.${C}.editor_label`,"mdi:cogs",o` ${this._renderOptionSelector(z,this._triggersActionsTrigger,{label:l("config.view.triggers.actions.trigger")})} + ${this._renderOptionSelector(A,this._triggersActionsUntrigger,{label:l("config.view.triggers.actions.untrigger")})} + ${this._renderOptionSelector(N,this._triggersActionsInteractionModes,{label:l("config.view.triggers.actions.interaction_mode")})}`)} + `)}_renderKeyAssigner(e,a){return o` this._valueChangedHandler(e,a)} + >`}_renderViewKeyboardShortcutMenu(){return this._putInSubmenu("view.keyboard_shortcuts",!0,`config.${T}.editor_label`,"mdi:keyboard",o` + ${this._renderSwitch(B,this._defaults.view.keyboard_shortcuts.enabled,{label:l(`config.${B}`)})} + ${this._renderKeyAssigner(E,this._defaults.view.keyboard_shortcuts.ptz_left)} + ${this._renderKeyAssigner(P,this._defaults.view.keyboard_shortcuts.ptz_right)} + ${this._renderKeyAssigner(H,this._defaults.view.keyboard_shortcuts.ptz_up)} + ${this._renderKeyAssigner(L,this._defaults.view.keyboard_shortcuts.ptz_down)} + ${this._renderKeyAssigner(V,this._defaults.view.keyboard_shortcuts.ptz_zoom_in)} + ${this._renderKeyAssigner(K,this._defaults.view.keyboard_shortcuts.ptz_zoom_out)} + ${this._renderKeyAssigner(U,this._defaults.view.keyboard_shortcuts.ptz_home)} + `)}_renderStatusBarItem(e){return o` ${this._putInSubmenu("status_bar.items",e,`config.status_bar.items.${e}`,"mdi:feature-search",o` + ${this._renderSwitch(`${j}.${e}.enabled`,this._defaults.status_bar.items[e]?.enabled??!0,{label:l("config.status_bar.items.enabled")})} + ${this._renderNumberInput(`${j}.${e}.priority`,{max:q,default:this._defaults.status_bar.items[e]?.priority,label:l("config.status_bar.items.priority")})} + `)}`}_renderMenuButton(e,a){const t=[{value:"",label:""},{value:"matching",label:l("config.menu.buttons.alignments.matching")},{value:"opposing",label:l("config.menu.buttons.alignments.opposing")}];return o` ${this._putInSubmenu("menu.buttons",e,`config.menu.buttons.${e}`,"mdi:gesture-tap-button",o` + ${this._renderSwitch(`${R}.${e}.enabled`,this._defaults.menu.buttons[e]?.enabled??!0,{label:l("config.menu.buttons.enabled")})} + ${this._renderOptionSelector(`${R}.${e}.alignment`,t,{label:l("config.menu.buttons.alignment")})} + ${this._renderSwitch(`${R}.${e}.permanent`,this._defaults.menu.buttons[e]?.permanent??!1,{label:l("config.menu.buttons.permanent")})} + ${this._renderNumberInput(`${R}.${e}.priority`,{max:D,default:this._defaults.menu.buttons[e]?.priority,label:l("config.menu.buttons.priority")})} + ${this._renderIconSelector(`${R}.${e}.icon`,{label:l("config.menu.buttons.icon")})} + ${a} + `)}`}_putInSubmenu(e,a,t,i,n){const s=this._expandedMenus[e]===a,c={submenu:!0,selected:s},d=dt(i);return o`
+ + ${s?o`
${n}
`:""} +
`}_renderMediaLayout(e,a,t,i,n,s,r,c,d,m,u,h){return this._putInSubmenu(e,!0,a,"mdi:page-layout-body",o` + ${this._renderNumberInput(m,{min:0,max:10,label:l("config.cameras.dimensions.layout.zoom"),step:.1})} + ${this._renderNumberInput(u,{min:0,max:100,label:l("config.cameras.dimensions.layout.pan.x")})} + ${this._renderNumberInput(h,{min:0,max:100,label:l("config.cameras.dimensions.layout.pan.y")})} + ${this._renderOptionSelector(t,this._layoutFits,{label:l("config.cameras.dimensions.layout.fit")})} + ${this._putInSubmenu(`${e}.position`,!0,"config.cameras.dimensions.layout.position.editor_label","mdi:aspect-ratio",o` ${this._renderNumberInput(i,{min:0,max:100,label:l("config.cameras.dimensions.layout.position.x")})} + ${this._renderNumberInput(n,{min:0,max:100,label:l("config.cameras.dimensions.layout.position.y")})}`)} + ${this._putInSubmenu(`${e}.view_box`,!0,"config.cameras.dimensions.layout.view_box.editor_label","mdi:crop",o` + ${this._renderNumberInput(s,{min:0,max:100,label:l("config.cameras.dimensions.layout.view_box.top")})} + ${this._renderNumberInput(r,{min:0,max:100,label:l("config.cameras.dimensions.layout.view_box.bottom")})} + ${this._renderNumberInput(c,{min:0,max:100,label:l("config.cameras.dimensions.layout.view_box.left")})} + ${this._renderNumberInput(d,{min:0,max:100,label:l("config.cameras.dimensions.layout.view_box.right")})} + `)} + `)}_renderTimelineCoreControls(e,a,t,i,n,s,r){return o` + ${this._renderOptionSelector(e,this._timelineStyleTypes,{label:l(`config.common.${F}`)})} + ${r?this._renderOptionSelector(r,this._timelinePanModes,{label:l("config.common.controls.timeline.pan_mode")}):""} + ${this._renderNumberInput(a,{label:l(`config.common.${G}`)})} + ${this._renderNumberInput(t,{label:l(`config.common.${J}`)})} + ${this._renderOptionSelector(i,this._timelineEventsMediaTypes,{label:l(`config.common.${Q}`)})} + ${this._renderSwitch(n,s,{label:l(`config.common.${W}`)})} + `}_renderMiniTimeline(e,a,t,i,n,s,r,c,d){return this._putInSubmenu(e,!0,"config.common.controls.timeline.editor_label","mdi:chart-gantt",o` ${this._renderOptionSelector(a,this._miniTimelineModes,{label:l("config.common.controls.timeline.mode")})} + ${this._renderTimelineCoreControls(t,i,n,s,r,c,d)}`)}_renderViewDisplay(e,a,t,i,n){return this._putInSubmenu(e,!0,"config.common.display.editor_label","mdi:palette-swatch",o` + ${this._renderOptionSelector(a,this._displayModes,{label:l("config.common.display.mode")})} + ${this._renderNumberInput(t,{min:0,label:l("config.common.display.grid_selected_width_factor")})} + ${this._renderNumberInput(i,{min:0,label:l("config.common.display.grid_columns")})} + ${this._renderNumberInput(n,{min:0,label:l("config.common.display.grid_max_columns")})} + `)}_renderNextPreviousControls(e,a,t,i){return this._putInSubmenu(e,!0,"config.common.controls.next_previous.editor_label","mdi:arrow-right-bold-circle",o` + ${this._renderOptionSelector(a,this._nextPreviousControlStyles.filter((e=>!(!i?.allowThumbnails&&"thumbnails"===e.value||!i?.allowIcons&&"icons"===e.value))),{label:l("config.common.controls.next_previous.style")})} + ${this._renderNumberInput(t,{min:X,label:l("config.common.controls.next_previous.size")})} + `)}_renderThumbnailsControls(e,a,t,i,n,s,r,c){return this._putInSubmenu(e,!0,"config.common.controls.thumbnails.editor_label","mdi:image-text",o` + ${c?.configPathMode?o`${this._renderOptionSelector(c.configPathMode,this._thumbnailModes,{label:l("config.common.controls.thumbnails.mode")})}`:o``} + ${c?.configPathMediaType?o`${this._renderOptionSelector(c.configPathMediaType,this._thumbnailMediaTypes,{label:l("config.common.controls.thumbnails.media_type")})}`:o``} + ${c?.configPathEventsMediaType?o`${this._renderOptionSelector(c.configPathEventsMediaType,this._thumbnailEventsMediaTypes,{label:l("config.common.controls.thumbnails.events_media_type")})}`:o``} + ${this._renderNumberInput(a,{min:Y,max:Z,label:l("config.common.controls.thumbnails.size")})} + ${this._renderSwitch(t,r.show_details,{label:l("config.common.controls.thumbnails.show_details")})} + ${this._renderSwitch(i,r.show_favorite_control,{label:l("config.common.controls.thumbnails.show_favorite_control")})} + ${this._renderSwitch(n,r.show_timeline_control,{label:l("config.common.controls.thumbnails.show_timeline_control")})} + ${this._renderSwitch(s,r.show_download_control,{label:l("config.common.controls.thumbnails.show_download_control")})} + `)}_renderFilterControls(e,a){return this._putInSubmenu(e,!0,"config.common.controls.filter.editor_label","mdi:filter-cog",o` + ${a?o`${this._renderOptionSelector(a,this._filterModes,{label:l("config.common.controls.filter.mode")})}`:o``} + `)}_renderImageOptions(e,a,t,i,n){return o` + ${this._renderOptionSelector(e,this._imageModes,{label:l("config.common.image.mode")})} + ${this._renderStringInput(a,{label:l("config.common.image.url")})} + ${this._renderOptionSelector(t,this.hass?x(this.hass):[],{label:l("config.common.image.entity")})} + ${this._renderStringInput(i,{label:l("config.common.image.entity_parameters")})} + ${this._renderNumberInput(n,{label:l("config.common.image.refresh_seconds")})} + `}_renderCamera(e,a,t,i){const n=[{value:"",label:""},{value:"auto",label:l("config.cameras.live_providers.auto")},{value:"ha",label:l("config.cameras.live_providers.ha")},{value:"image",label:l("config.cameras.live_providers.image")},{value:"jsmpeg",label:l("config.cameras.live_providers.jsmpeg")},{value:"go2rtc",label:l("config.cameras.live_providers.go2rtc")},{value:"webrtc-card",label:l("config.cameras.live_providers.webrtc-card")}],s=[];e.forEach(((e,t)=>{t!==a&&s.push({value:ee(e),label:this._getEditorCameraTitle(t,e)})}));const c=e=>{if(this._config){const a=m(this._config);e(a)&&this._updateConfig(a)}},d={submenu:!0,selected:this._expandedMenus[gi]===a};return o` +
+ + ${this._expandedMenus[gi]===a?o`
+
+ !i&&c((e=>!!(Array.isArray(e.cameras)&&a>0)&&(mt(e.cameras,a,a-1),this._openMenu(gi,a-1),!0)))} + > + + + =this._config.cameras.length-1} + @click=${()=>!i&&c((e=>!!(Array.isArray(e.cameras)&&a + + + {c((e=>!!Array.isArray(e.cameras)&&(e.cameras.splice(a,1),this._closeMenu(gi),!0)))}} + > + + +
+ ${this._renderEntitySelector(ae(ut,a),"camera")} + ${this._renderOptionSelector(ae(ht,a),n)} + ${this._renderStringInput(ae(_t,a))} + ${this._renderIconSelector(ae(gt,a),{label:l("config.cameras.icon")})} + ${this._renderStringInput(ae(bt,a))} + ${this._putInSubmenu("cameras.engine",!0,"config.cameras.engines.editor_label","mdi:engine",o`${this._putInSubmenu("cameras.frigate",a,"config.cameras.frigate.editor_label","frigate",o` + ${this._renderStringInput(ae(pt,a))} + ${this._renderStringInput(ae(vt,a))} + ${this._renderOptionSelector(ae(ft,a),[],{multiple:!0,label:l("config.cameras.frigate.labels")})} + ${this._renderOptionSelector(ae($t,a),[],{multiple:!0,label:l("config.cameras.frigate.zones")})} + ${this._renderStringInput(ae(yt,a))} + `)} + ${this._putInSubmenu("cameras.motioneye",a,"config.cameras.motioneye.editor_label","motioneye",o` ${this._renderStringInput(ae(wt,a))} + ${this._renderStringInput(ae(St,a))} + ${this._renderStringInput(ae(xt,a))} + ${this._renderStringInput(ae(Mt,a))} + ${this._renderStringInput(ae(It,a))}`)} + ${this._putInSubmenu("cameras.reolink",a,"config.cameras.reolink.editor_label","reolink",o` ${this._renderStringInput(ae(kt,a))} + ${this._renderOptionSelector(ae(Ot,a),this._reolinkMediaResolution,{label:l("config.cameras.reolink.media_resolution.editor_label")})}`)}`)} + ${this._putInSubmenu("cameras.live_provider",!0,"config.cameras.live_provider_options.editor_label","mdi:cctv",o` ${this._putInSubmenu("cameras.go2rtc",a,"config.cameras.go2rtc.editor_label","mdi:alpha-g-circle",o`${this._renderOptionSelector(ae(Ct,a),this._go2rtcModes,{multiple:!0,label:l("config.cameras.go2rtc.modes.editor_label")})} + ${this._renderStringInput(ae(zt,a))}`)} + ${this._putInSubmenu("cameras.image",!0,"config.cameras.image.editor_label","mdi:image",this._renderImageOptions(ae(At,a),ae(Nt,a),ae(Tt,a),ae(Bt,a),ae(Et,a)))} + ${this._putInSubmenu("cameras.webrtc_card",a,"config.cameras.webrtc_card.editor_label","mdi:webrtc",o`${this._renderEntitySelector(ae(Pt,a),"camera")} + ${this._renderStringInput(ae(Ht,a))}`)}`)} + ${this._putInSubmenu("cameras.dependencies",a,"config.cameras.dependencies.editor_label","mdi:graph",o` ${this._renderSwitch(ae(Lt,a),this._defaults.cameras.dependencies.all_cameras)} + ${this._renderOptionSelector(ae(Vt,a),s,{multiple:!0})}`)} + ${this._putInSubmenu("cameras.triggers",a,"config.cameras.triggers.editor_label","mdi:magnify-scan",o` + ${this._renderSwitch(ae(Kt,a),this._defaults.cameras.triggers.occupancy)} + ${this._renderSwitch(ae(Ut,a),this._defaults.cameras.triggers.motion)} + ${this._renderOptionSelector(ae(jt,a),t,{multiple:!0})} + ${this._renderOptionSelector(ae(qt,a),this._triggersEvents,{multiple:!0,label:l("config.cameras.triggers.events.editor_label")})} + `)} + ${this._putInSubmenu("cameras.cast",a,"config.cameras.cast.editor_label","mdi:cast",o` + ${this._renderOptionSelector(ae(Rt,a),this._castMethods)} + ${this._renderStringInput(ae(Dt,a))} + ${this._renderStringInput(ae(Ft,a))} + `)} + ${this._putInSubmenu("cameras.dimensions",a,"config.cameras.dimensions.editor_label","mdi:aspect-ratio",o` + ${this._renderStringInput(ae(Gt,a))} + ${this._renderMediaLayout("cameras.dimensions.layout","config.cameras.dimensions.layout.editor_label",ae(Jt,a),ae(Qt,a),ae(Wt,a),ae(Xt,a),ae(Yt,a),ae(Zt,a),ae(ei,a),ae(ai,a),ae(ti,a),ae(ii,a))} + `)} + ${this._putInSubmenu("cameras.capabilities",a,"config.cameras.capabilities.editor_label","mdi:cog-stop",o` + ${this._renderOptionSelector(ae(ni,a),this._capabilities,{multiple:!0})} + ${this._renderOptionSelector(ae(si,a),this._capabilities,{multiple:!0})} + `)} + ${this._putInSubmenu("cameras.proxy",a,"config.cameras.proxy.editor_label","mdi:arrow-decision",o` + ${this._renderOptionSelector(ae(oi,a),this._proxyMedia,{label:l("config.cameras.proxy.media.editor_label")})} + ${this._renderSwitch(ae(ri,a),this._defaults.cameras.proxy.dynamic)} + ${this._renderOptionSelector(ae(li,a),this._proxySSLVerification,{label:l("config.cameras.proxy.ssl_verification.editor_label")})} + ${this._renderOptionSelector(ae(ci,a),this._proxySSLCiphers,{label:l("config.cameras.proxy.ssl_ciphers.editor_label")})} + `)} +
`:""} +
+ `}_renderStringInput(e,a){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_renderSwitch(e,a,t){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_updateConfig(e){this._config=e,te(this,"config-changed",{config:this._config})}render(){if(!this.hass||!this._config)return o``;const e=x(this.hass),a=b(this._config,mi)||[];return o` + ${this._configUpgradeable?o`
+ ${l("editor.upgrade_available")} + + {if(this._config){const e=m(this._config);ie(e),this._updateConfig(e)}}} + > + + +
+
`:o``} +
+ ${this._renderOptionSetHeader("cameras")} + ${"cameras"===this._expandedMenus[bi]?o` +
+ ${a.map(((t,i)=>this._renderCamera(a,i,e)))} + ${this._renderCamera(a,a.length,e,!0)} +
+ `:""} + ${this._renderOptionSetHeader("profiles")} + ${"profiles"===this._expandedMenus[bi]?o`
+ ${this._renderOptionSelector(ne,this._profiles,{multiple:!0,label:l("config.profiles.editor_label")})} +
`:""} + ${this._renderOptionSetHeader("view")} + ${"view"===this._expandedMenus[bi]?o` +
+ ${this._renderOptionSelector(se,this._viewModes)} + ${this._renderOptionSelector(oe,this._cameraSelectViewModes)} + ${this._renderOptionSelector(re,this._darkModes)} + ${this._renderNumberInput(le)} + ${this._renderSwitch(ce,this._defaults.view.default_cycle_camera)} + ${this._renderViewDefaultResetMenu()} ${this._renderViewTriggersMenu()} + ${this._renderViewKeyboardShortcutMenu()} +
+ `:""} + ${this._renderOptionSetHeader("menu")} + ${"menu"===this._expandedMenus[bi]?o` +
+ ${this._renderOptionSelector(de,this._menuStyles)} + ${this._renderOptionSelector(me,this._menuPositions)} + ${this._renderOptionSelector(ue,this._menuAlignments)} + ${this._renderNumberInput(he,{min:X})} + ${this._renderMenuButton("frigate")} + ${this._renderMenuButton("cameras")} + ${this._renderMenuButton("substreams")} + ${this._renderMenuButton("live")} + ${this._renderMenuButton("clips")} + ${this._renderMenuButton("snapshots")} + ${this._renderMenuButton("recordings")} + ${this._renderMenuButton("image")} + ${this._renderMenuButton("download")} + ${this._renderMenuButton("camera_ui")} + ${this._renderMenuButton("fullscreen")} + ${this._renderMenuButton("expand")} + ${this._renderMenuButton("timeline")} + ${this._renderMenuButton("media_player")} + ${this._renderMenuButton("microphone",o`${this._renderOptionSelector(`${R}.microphone.type`,this._microphoneButtonTypes,{label:l("config.menu.buttons.type")})}`)} + ${this._renderMenuButton("play")} + ${this._renderMenuButton("mute")} + ${this._renderMenuButton("screenshot")} + ${this._renderMenuButton("display_mode")} + ${this._renderMenuButton("ptz_controls")} + ${this._renderMenuButton("ptz_home")} +
+ `:""} + ${this._renderOptionSetHeader("status_bar")} + ${"status_bar"===this._expandedMenus[bi]?o` +
+ ${this._renderOptionSelector(_e,this._statusBarStyles)} + ${this._renderOptionSelector(ge,this._statusBarPositions)} + ${this._renderNumberInput(be,{min:pe,label:l("config.status_bar.height")})} + ${this._renderNumberInput(ve,{min:0,max:60,default:this._defaults.status_bar.popup_seconds,label:l("config.status_bar.popup_seconds")})} + ${this._renderStatusBarItem("title")} + ${this._renderStatusBarItem("resolution")} + ${this._renderStatusBarItem("technology")} + ${this._renderStatusBarItem("engine")} +
+ `:""} + ${this._renderOptionSetHeader("live")} + ${"live"===this._expandedMenus[bi]?o` +
+ ${this._renderSwitch(fe,this._defaults.live.preload)} + ${this._renderSwitch($e,this._defaults.live.draggable)} + ${this._renderSwitch(ye,this._defaults.live.zoomable)} + ${this._renderSwitch(we,this._defaults.live.lazy_load)} + ${this._renderOptionSelector(Se,this._mediaActionNegativeConditions,{multiple:!0})} + ${this._renderOptionSelector(xe,this._mediaActionPositiveConditions,{multiple:!0})} + ${this._renderOptionSelector(Me,this._mediaActionNegativeConditions,{multiple:!0})} + ${this._renderOptionSelector(Ie,this._mediaLiveMuteConditions,{multiple:!0})} + ${this._renderOptionSelector(ke,this._mediaLiveUnmuteConditions,{multiple:!0})} + ${this._renderOptionSelector(Oe,this._transitionEffects)} + ${this._renderSwitch(Ce,this._defaults.live.show_image_during_load)} + ${this._renderViewDisplay("live.display",ze,Ae,Ne,Te)} + ${this._putInSubmenu("live.controls",!0,"config.live.controls.editor_label","mdi:gamepad",o` + ${this._renderSwitch(Be,this._defaults.live.controls.builtin,{label:l("config.common.controls.builtin")})} + ${this._renderNextPreviousControls("live.controls.next_previous",Ee,Pe,{allowIcons:!0})} + ${this._renderThumbnailsControls("live.controls.thumbnails",He,Le,Ve,Ke,Ue,this._defaults.live.controls.thumbnails,{configPathMediaType:je,configPathEventsMediaType:qe,configPathMode:Re})} + ${this._renderMiniTimeline("live.controls.timeline",De,Fe,Ge,Je,Qe,We,this._defaults.live.controls.timeline.show_recordings,Xe)} + ${this._putInSubmenu("live.controls.ptz",!0,"config.live.controls.ptz.editor_label","mdi:pan",o` + ${this._renderOptionSelector(Ye,this._ptzModes)} + ${this._renderOptionSelector(Ze,this._ptzPositions)} + ${this._renderOptionSelector(ea,this._ptzOrientations)} + ${this._renderSwitch(aa,this._defaults.live.controls.ptz.hide_pan_tilt,{label:l("config.live.controls.ptz.hide_pan_tilt")})} + ${this._renderSwitch(ta,this._defaults.live.controls.ptz.hide_pan_tilt,{label:l("config.live.controls.ptz.hide_zoom")})} + ${this._renderSwitch(ia,this._defaults.live.controls.ptz.hide_home,{label:l("config.live.controls.ptz.hide_home")})} + `)} + `)} + ${this._putInSubmenu("live.microphone",!0,"config.live.microphone.editor_label","mdi:microphone",o` + ${this._renderNumberInput(na)} + ${this._renderSwitch(sa,this._defaults.live.microphone.always_connected)} + ${this._renderNumberInput(oa)} + `)} +
+ `:""} + ${this._renderOptionSetHeader("media_gallery")} + ${"media_gallery"===this._expandedMenus[bi]?o`
+ ${this._renderThumbnailsControls("media_gallery.controls.thumbnails",ra,la,ca,da,ma,this._defaults.media_gallery.controls.thumbnails)} + ${this._renderFilterControls("media_gallery.controls.filter",ua)} +
`:""} + ${this._renderOptionSetHeader("media_viewer")} + ${"media_viewer"===this._expandedMenus[bi]?o`
+ ${this._renderOptionSelector(ha,this._mediaActionPositiveConditions,{multiple:!0})} + ${this._renderOptionSelector(_a,this._mediaActionNegativeConditions,{multiple:!0})} + ${this._renderOptionSelector(ga,this._mediaActionNegativeConditions,{multiple:!0})} + ${this._renderOptionSelector(ba,this._mediaActionPositiveConditions,{multiple:!0})} + ${this._renderSwitch(pa,this._defaults.media_viewer.draggable)} + ${this._renderSwitch(va,this._defaults.media_viewer.zoomable)} + ${this._renderSwitch(fa,this._defaults.media_viewer.lazy_load)} + ${this._renderOptionSelector($a,this._transitionEffects)} + ${this._renderSwitch(ya,this._defaults.media_viewer.snapshot_click_plays_clip)} + ${this._renderViewDisplay("media_viewer.display",wa,Sa,xa,Ma)} + ${this._putInSubmenu("media_viewer.controls",!0,"config.media_viewer.controls.editor_label","mdi:gamepad",o` + ${this._renderSwitch(Ia,this._defaults.media_viewer.controls.builtin,{label:l("config.common.controls.builtin")})} + ${this._renderNextPreviousControls("media_viewer.controls.next_previous",ka,Oa,{allowThumbnails:!0})} + ${this._renderThumbnailsControls("media_viewer.controls.thumbnails",Ca,za,Aa,Na,Ta,this._defaults.media_viewer.controls.thumbnails,{configPathMode:Ba})} + ${this._renderMiniTimeline("media_viewer.controls.timeline",Ea,Pa,Ha,La,Va,Ka,this._defaults.media_viewer.controls.timeline.show_recordings,Ua)} + `)} +
`:""} + ${this._renderOptionSetHeader("image")} + ${"image"===this._expandedMenus[bi]?o`
+ ${this._renderImageOptions(ja,qa,Ra,Da,Fa)} +
`:""} + ${this._renderOptionSetHeader("timeline")} + ${"timeline"===this._expandedMenus[bi]?o`
+ ${this._renderTimelineCoreControls(F,G,J,Q,W,this._defaults.timeline.show_recordings)} + ${this._renderThumbnailsControls("timeline.controls.thumbnails",Ga,Ja,Qa,Wa,Xa,this._defaults.timeline.controls.thumbnails,{configPathMode:Ya})} +
`:""} + ${this._renderOptionSetHeader("dimensions")} + ${"dimensions"===this._expandedMenus[bi]?o`
+ ${this._renderOptionSelector(Za,this._aspectRatioModes)} + ${this._renderStringInput(et)} + ${this._renderStringInput(at)} +
`:""} + ${this._renderOptionSetHeader("performance","low"===b(this._config,ui)?"warning":void 0)} + ${"performance"===this._expandedMenus[bi]?o`
+ ${"low"===b(this._config,ui)?this._renderInfo(l("config.performance.warning")):o``} + ${this._putInSubmenu("performance.features",!0,"config.performance.features.editor_label","mdi:feature-search",o` + ${this._renderSwitch(tt,this._defaults.performance.features.animated_progress_indicator)} + ${this._renderNumberInput(it,{max:nt})} + ${this._renderNumberInput(st,{min:1})} + `)} + ${this._putInSubmenu("performance.style",!0,"config.performance.style.editor_label","mdi:palette-swatch-variant",o` + ${this._renderSwitch(ot,this._defaults.performance.style.border_radius)} + ${this._renderSwitch(rt,this._defaults.performance.style.box_shadow)} + `)} +
`:""} + ${void 0!==this._config.overrides?o` ${this._renderOptionSetHeader("overrides")} + ${"overrides"===this._expandedMenus[bi]?o`
+ ${this._renderInfo(l("config.overrides.info"))} +
`:""}`:o``} +
+ `}_closeMenu(e){delete this._expandedMenus[e],this.requestUpdate()}_openMenu(e,a){this._expandedMenus[e]=a,this.requestUpdate()}_toggleMenu(e){if(e&&e.target){const a=e.target.domain,t=e.target.key;this._expandedMenus[a]===t?this._closeMenu(a):this._openMenu(a,t)}}_valueChangedHandler(e,a){if(!this._config||!this.hass)return;let t;if(a.detail&&void 0!==a.detail.value&&(t=a.detail.value,"string"==typeof t&&(t=t.trim())),b(this._config,e)===t)return;const i=m(this._config);""===t||void 0===t?lt(i,e):ct(i,e,t),this._updateConfig(i)}static get styles(){return c('ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n.option {\n padding: 4px 4px;\n cursor: pointer;\n}\n\n.option.option-overrides .title {\n color: var(--warning-color);\n}\n\n.row {\n display: flex;\n margin-bottom: -14px;\n pointer-events: none;\n}\n\n.title {\n padding-left: 16px;\n margin-top: -6px;\n pointer-events: none;\n}\n\n.title.warning {\n color: var(--warning-color);\n}\n\n.secondary {\n padding-left: 40px;\n color: var(--secondary-text-color);\n pointer-events: none;\n}\n\n.values {\n background: var(--secondary-background-color);\n display: grid;\n}\n\n.values + .option,\n.submenu + .option {\n margin-top: 10px;\n}\n\ndiv.upgrade {\n width: auto;\n border: 1px dotted var(--primary-color);\n margin: 10px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\ndiv.upgrade span {\n padding: 10px;\n}\n\n.submenu-header {\n display: flex;\n padding: 10px;\n cursor: pointer;\n}\n\n.submenu.selected > .submenu-header {\n background-color: var(--primary-color);\n color: var(--primary-text-color);\n}\n\n.submenu-header * {\n flex-basis: auto;\n pointer-events: none;\n}\n\n.submenu-header .new-camera {\n font-style: italic;\n}\n\n.submenu:not(.selected) > .submenu-header .new-camera {\n color: var(--secondary-text-color, "black");\n}\n\n.submenu-header ha-icon,\n.submenu-header img {\n padding-right: 15px;\n}\n\n.submenu.selected {\n border: 1px solid var(--primary-color);\n}\n\n.submenu {\n width: calc(100% - 20px);\n margin-left: auto;\n margin-right: auto;\n margin-bottom: 10px;\n}\n\n.submenu:first-child,\n:not(.submenu) + .submenu {\n margin-top: 10px;\n}\n\n.submenu .controls {\n display: inline-block;\n margin-left: auto;\n margin-right: 0px;\n margin-bottom: 5px;\n}\n\n.submenu .controls ha-icon-button.button {\n --mdc-icon-button-size: 32px;\n --mdc-icon-size: calc(var(--mdc-icon-button-size) / 2);\n}\n\nspan.info {\n padding: 10px;\n}\n\nha-selector {\n padding: 10px;\n border: 1px solid var(--divider-color);\n}')}};t([i({attribute:!1})],vi.prototype,"hass",void 0),t([d()],vi.prototype,"_config",void 0),t([d()],vi.prototype,"_defaults",void 0),t([d()],vi.prototype,"_expandedMenus",void 0),vi=t([n("frigate-card-editor")],vi);export{vi as FrigateCardEditor}; diff --git a/config/www/community/frigate-hass-card/editor-5368ad86.js.gz b/config/www/community/frigate-hass-card/editor-5368ad86.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..e693fb2b2bbdd4d7644ef529adb76291ec46aa92 GIT binary patch literal 11532 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 Z?cQ-Rdg4tTkBfgHN{this._setAssigning(!1)},this._keydownEventHandler=e=>{e.key&&!["Control","Alt","Shift","Meta"].includes(e.key)&&(this.setValue({key:e.key,ctrl:e.ctrlKey,alt:e.altKey,shift:e.shiftKey,meta:e.metaKey}),this._setAssigning(!1))},this._host=e,this._host.addController(this)}setValue(a){e(a,this._value)||(this._value=a,this._host.requestUpdate(),this._host.dispatchEvent(new CustomEvent("value-changed",{detail:{value:this._value}})))}getValue(){return this._value}hasValue(){return!!this._value}isAssigning(){return this._assigning}toggleAssigning(){this._setAssigning(!this._assigning)}_setAssigning(e){this._assigning=e,a(this._host,this._assigning,"assigning"),this._assigning?this._host.addEventListener("keydown",this._keydownEventHandler):this._host.removeEventListener("keydown",this._keydownEventHandler),this._host.requestUpdate()}hostConnected(){this._host.addEventListener("blur",this._blurEventHandler)}hostDisconnected(){this._host.removeEventListener("blur",this._blurEventHandler)}}let _i=class extends s{constructor(){super(...arguments),this._controller=new hi(this)}willUpdate(e){e.has("value")&&this._controller.setValue(this.value??null)}render(){if(!this.label)return;const e=e=>o`
+
${e}
+
`;return o` +
${this.label}
+ {this._controller.toggleAssigning()}} + > + + + ${this._controller.isAssigning()?l("key_assigner.assigning"):l("key_assigner.assign")} + + + ${this._controller.hasValue()?o`{this._controller.setValue(null)}} + > + + ${l("key_assigner.unassign")} + `:""} +
+ ${this.value?.ctrl?e(l("key_assigner.modifiers.ctrl")):""} + ${this.value?.shift?e(l("key_assigner.modifiers.shift")):""} + ${this.value?.meta?e(l("key_assigner.modifiers.meta")):""} + ${this.value?.alt?e(l("key_assigner.modifiers.alt")):""} + ${this.value?.key?e(this.value.key):""} +
+ `}static get styles(){return c('.dotdotdot:after {\n animation: dots 2s linear infinite;\n content: "";\n display: inline-block;\n width: 3em;\n}\n@keyframes dots {\n 0%, 20% {\n content: ".";\n }\n 40% {\n content: "..";\n }\n 60% {\n content: "...";\n }\n 90%, 100% {\n content: "";\n }\n}\n\n:host {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 10px;\n height: 56px;\n border: 1px solid var(--divider-color);\n}\n\n:host([assigning]) ha-button.assign span,\n:host([assigning]) ha-button.assign ha-icon {\n color: var(--warning-color);\n}\n\nha-icon {\n padding: 10px;\n}\n\ndiv.label {\n width: 100px;\n margin-left: 4px;\n}\n\ndiv.key-row {\n flex: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n padding-left: 10px;\n padding-right: 10px;\n}\n\ndiv.key {\n display: flex;\n align-items: center;\n height: 90%;\n width: min-content;\n margin-left: 5px;\n margin-right: 5px;\n}\n\ndiv.key-inner {\n height: 100%;\n width: 100%;\n padding-top: 2px;\n padding-bottom: 2px;\n padding-left: 4px;\n padding-right: 4px;\n border: 2px;\n border-radius: 4px;\n border-style: outset;\n border-color: var(--divider-color);\n font-family: monospace;\n text-transform: capitalize;\n}\n\ndiv.unassigned {\n font-style: italic;\n}\n\ndiv.key + div.key:before {\n display: flex;\n align-items: center;\n margin-right: 5px;\n content: " + ";\n}')}};t([i({attribute:!1})],_i.prototype,"label",void 0),t([i({attribute:!1})],_i.prototype,"value",void 0),_i=t([n("frigate-card-key-assigner")],_i);const gi="cameras",bi="options",pi={cameras:{icon:"video",name:l("editor.cameras"),secondary:l("editor.cameras_secondary")},view:{icon:"eye",name:l("editor.view"),secondary:l("editor.view_secondary")},menu:{icon:"menu",name:l("editor.menu"),secondary:l("editor.menu_secondary")},status_bar:{icon:"sign-text",name:l("editor.status_bar"),secondary:l("editor.status_bar_secondary")},live:{icon:"cctv",name:l("editor.live"),secondary:l("editor.live_secondary")},media_gallery:{icon:"grid",name:l("editor.media_gallery"),secondary:l("editor.media_gallery_secondary")},media_viewer:{icon:"filmstrip",name:l("editor.media_viewer"),secondary:l("editor.media_viewer_secondary")},image:{icon:"image",name:l("editor.image"),secondary:l("editor.image_secondary")},timeline:{icon:"chart-gantt",name:l("editor.timeline"),secondary:l("editor.timeline_secondary")},dimensions:{icon:"aspect-ratio",name:l("editor.dimensions"),secondary:l("editor.dimensions_secondary")},performance:{icon:"speedometer",name:l("editor.performance"),secondary:l("editor.performance_secondary")},profiles:{icon:"folder-wrench-outline",name:l("editor.profiles"),secondary:l("editor.profiles_secondary")},overrides:{icon:"file-replace",name:l("editor.overrides"),secondary:l("editor.overrides_secondary")}};let vi=class extends s{constructor(){super(...arguments),this._defaults=m(di),this._initialized=!1,this._configUpgradeable=!1,this._expandedMenus={},this._viewModes=[{value:"",label:""},{value:"live",label:l("config.view.views.live")},{value:"clips",label:l("config.view.views.clips")},{value:"snapshots",label:l("config.view.views.snapshots")},{value:"recordings",label:l("config.view.views.recordings")},{value:"clip",label:l("config.view.views.clip")},{value:"snapshot",label:l("config.view.views.snapshot")},{value:"recording",label:l("config.view.views.recording")},{value:"image",label:l("config.view.views.image")},{value:"timeline",label:l("config.view.views.timeline")}],this._cameraSelectViewModes=[...this._viewModes,{value:"current",label:l("config.view.views.current")}],this._filterModes=[{value:"",label:""},{value:"none",label:l("config.common.controls.filter.modes.none")},{value:"left",label:l("config.common.controls.filter.modes.left")},{value:"right",label:l("config.common.controls.filter.modes.right")}],this._menuStyles=[{value:"",label:""},{value:"none",label:l("config.menu.styles.none")},{value:"hidden",label:l("config.menu.styles.hidden")},{value:"overlay",label:l("config.menu.styles.overlay")},{value:"hover",label:l("config.menu.styles.hover")},{value:"hover-card",label:l("config.menu.styles.hover-card")},{value:"outside",label:l("config.menu.styles.outside")}],this._menuPositions=[{value:"",label:""},{value:"left",label:l("config.menu.positions.left")},{value:"right",label:l("config.menu.positions.right")},{value:"top",label:l("config.menu.positions.top")},{value:"bottom",label:l("config.menu.positions.bottom")}],this._menuAlignments=[{value:"",label:""},{value:"left",label:l("config.menu.alignments.left")},{value:"right",label:l("config.menu.alignments.right")},{value:"top",label:l("config.menu.alignments.top")},{value:"bottom",label:l("config.menu.alignments.bottom")}],this._nextPreviousControlStyles=[{value:"",label:""},{value:"chevrons",label:l("config.common.controls.next_previous.styles.chevrons")},{value:"icons",label:l("config.common.controls.next_previous.styles.icons")},{value:"none",label:l("config.common.controls.next_previous.styles.none")},{value:"thumbnails",label:l("config.common.controls.next_previous.styles.thumbnails")}],this._aspectRatioModes=[{value:"",label:""},{value:"dynamic",label:l("config.dimensions.aspect_ratio_modes.dynamic")},{value:"static",label:l("config.dimensions.aspect_ratio_modes.static")},{value:"unconstrained",label:l("config.dimensions.aspect_ratio_modes.unconstrained")}],this._thumbnailModes=[{value:"",label:""},{value:"none",label:l("config.common.controls.thumbnails.modes.none")},{value:"above",label:l("config.common.controls.thumbnails.modes.above")},{value:"below",label:l("config.common.controls.thumbnails.modes.below")},{value:"left",label:l("config.common.controls.thumbnails.modes.left")},{value:"right",label:l("config.common.controls.thumbnails.modes.right")}],this._thumbnailMediaTypes=[{value:"",label:""},{value:"events",label:l("config.common.controls.thumbnails.media_types.events")},{value:"recordings",label:l("config.common.controls.thumbnails.media_types.recordings")}],this._thumbnailEventsMediaTypes=[{value:"",label:""},{value:"clips",label:l("config.common.controls.thumbnails.events_media_types.clips")},{value:"snapshots",label:l("config.common.controls.thumbnails.events_media_types.snapshots")}],this._transitionEffects=[{value:"",label:""},{value:"none",label:l("config.media_viewer.transition_effects.none")},{value:"slide",label:l("config.media_viewer.transition_effects.slide")}],this._imageModes=[{value:"",label:""},{value:"camera",label:l("config.common.image.modes.camera")},{value:"entity",label:l("config.common.image.modes.entity")},{value:"screensaver",label:l("config.common.image.modes.screensaver")},{value:"url",label:l("config.common.image.modes.url")}],this._timelineEventsMediaTypes=[{value:"",label:""},{value:"all",label:l("config.common.timeline.events_media_types.all")},{value:"clips",label:l("config.common.timeline.events_media_types.clips")},{value:"snapshots",label:l("config.common.timeline.events_media_types.snapshots")}],this._timelineStyleTypes=[{value:"",label:""},{value:"ribbon",label:l("config.common.timeline.styles.ribbon")},{value:"stack",label:l("config.common.timeline.styles.stack")}],this._darkModes=[{value:"",label:""},{value:"on",label:l("config.view.dark_modes.on")},{value:"off",label:l("config.view.dark_modes.off")},{value:"auto",label:l("config.view.dark_modes.auto")}],this._mediaActionNegativeConditions=[{value:"",label:""},{value:"unselected",label:l("config.common.media_action_conditions.unselected")},{value:"hidden",label:l("config.common.media_action_conditions.hidden")}],this._mediaActionPositiveConditions=[{value:"",label:""},{value:"selected",label:l("config.common.media_action_conditions.selected")},{value:"visible",label:l("config.common.media_action_conditions.visible")}],this._mediaLiveUnmuteConditions=[...this._mediaActionPositiveConditions,{value:"microphone",label:l("config.common.media_action_conditions.microphone_unmute")}],this._mediaLiveMuteConditions=[...this._mediaActionNegativeConditions,{value:"microphone",label:l("config.common.media_action_conditions.microphone_mute")}],this._layoutFits=[{value:"",label:""},{value:"contain",label:l("config.cameras.dimensions.layout.fits.contain")},{value:"cover",label:l("config.cameras.dimensions.layout.fits.cover")},{value:"fill",label:l("config.cameras.dimensions.layout.fits.fill")}],this._miniTimelineModes=[{value:"",label:""},{value:"none",label:l("config.common.controls.timeline.modes.none")},{value:"above",label:l("config.common.controls.timeline.modes.above")},{value:"below",label:l("config.common.controls.timeline.modes.below")}],this._profiles=[{value:"",label:""},{value:"casting",label:l("config.profiles.casting")},{value:"low-performance",label:l("config.profiles.low-performance")},{value:"scrubbing",label:l("config.profiles.scrubbing")}],this._go2rtcModes=[{value:"",label:""},{value:"mse",label:l("config.cameras.go2rtc.modes.mse")},{value:"webrtc",label:l("config.cameras.go2rtc.modes.webrtc")},{value:"mp4",label:l("config.cameras.go2rtc.modes.mp4")},{value:"mjpeg",label:l("config.cameras.go2rtc.modes.mjpeg")}],this._microphoneButtonTypes=[{value:"",label:""},{value:"momentary",label:l("config.menu.buttons.types.momentary")},{value:"toggle",label:l("config.menu.buttons.types.toggle")}],this._displayModes=[{value:"",label:""},{value:"single",label:l("display_modes.single")},{value:"grid",label:l("display_modes.grid")}],this._castMethods=[{value:"",label:""},{value:"standard",label:l("config.cameras.cast.methods.standard")},{value:"dashboard",label:l("config.cameras.cast.methods.dashboard")}],this._ptzModes=[{value:"",label:""},{value:"on",label:l("config.live.controls.ptz.modes.on")},{value:"off",label:l("config.live.controls.ptz.modes.off")}],this._ptzOrientations=[{value:"",label:""},{value:"vertical",label:l("config.live.controls.ptz.orientations.vertical")},{value:"horizontal",label:l("config.live.controls.ptz.orientations.horizontal")}],this._ptzPositions=[{value:"",label:""},{value:"top-left",label:l("config.live.controls.ptz.positions.top-left")},{value:"top-right",label:l("config.live.controls.ptz.positions.top-right")},{value:"bottom-left",label:l("config.live.controls.ptz.positions.bottom-left")},{value:"bottom-right",label:l("config.live.controls.ptz.positions.bottom-right")}],this._triggersActionsInteractionModes=[{value:"",label:""},{value:"all",label:l("config.view.triggers.actions.interaction_modes.all")},{value:"inactive",label:l("config.view.triggers.actions.interaction_modes.inactive")},{value:"active",label:l("config.view.triggers.actions.interaction_modes.active")}],this._triggersActionsTrigger=[{value:"",label:""},{value:"default",label:l("config.view.triggers.actions.triggers.default")},{value:"live",label:l("config.view.triggers.actions.triggers.live")},{value:"media",label:l("config.view.triggers.actions.triggers.media")},{value:"none",label:l("config.view.triggers.actions.triggers.none")}],this._triggersActionsUntrigger=[{value:"",label:""},{value:"default",label:l("config.view.triggers.actions.untriggers.default")},{value:"none",label:l("config.view.triggers.actions.untriggers.none")}],this._triggersEvents=[{value:"",label:""},{value:"events",label:l("config.cameras.triggers.events.events")},{value:"clips",label:l("config.cameras.triggers.events.clips")},{value:"snapshots",label:l("config.cameras.triggers.events.snapshots")}],this._timelinePanModes=[{value:"",label:""},{value:"pan",label:l("config.common.controls.timeline.pan_modes.pan")},{value:"seek",label:l("config.common.controls.timeline.pan_modes.seek")},{value:"seek-in-media",label:l("config.common.controls.timeline.pan_modes.seek-in-media")},{value:"seek-in-camera",label:l("config.common.controls.timeline.pan_modes.seek-in-camera")}],this._capabilities=[{value:"",label:""},{value:"live",label:l("config.cameras.capabilities.capabilities.live")},{value:"substream",label:l("config.cameras.capabilities.capabilities.substream")},{value:"clips",label:l("config.cameras.capabilities.capabilities.clips")},{value:"recordings",label:l("config.cameras.capabilities.capabilities.recordings")},{value:"snapshots",label:l("config.cameras.capabilities.capabilities.snapshots")},{value:"favorite-events",label:l("config.cameras.capabilities.capabilities.favorite-events")},{value:"favorite-recordings",label:l("config.cameras.capabilities.capabilities.favorite-recordings")},{value:"seek",label:l("config.cameras.capabilities.capabilities.seek")},{value:"ptz",label:l("config.cameras.capabilities.capabilities.ptz")},{value:"menu",label:l("config.cameras.capabilities.capabilities.menu")}],this._defaultResetInteractionModes=[{value:"",label:""},{value:"all",label:l("config.view.default_reset.interaction_modes.all")},{value:"inactive",label:l("config.view.default_reset.interaction_modes.inactive")},{value:"active",label:l("config.view.default_reset.interaction_modes.active")}],this._proxyMedia=[{value:"",label:""},{value:"auto",label:l("config.cameras.proxy.media.auto")},{value:!0,label:l("config.cameras.proxy.media.true")},{value:!1,label:l("config.cameras.proxy.media.false")}],this._proxySSLCiphers=[{value:"",label:""},{value:"auto",label:l("config.cameras.proxy.ssl_ciphers.auto")},{value:"default",label:l("config.cameras.proxy.ssl_ciphers.default")},{value:"insecure",label:l("config.cameras.proxy.ssl_ciphers.insecure")},{value:"intermediate",label:l("config.cameras.proxy.ssl_ciphers.intermediate")},{value:"modern",label:l("config.cameras.proxy.ssl_ciphers.modern")}],this._proxySSLVerification=[{value:"",label:""},{value:"auto",label:l("config.cameras.proxy.ssl_verification.auto")},{value:!0,label:l("config.cameras.proxy.ssl_verification.true")},{value:!1,label:l("config.cameras.proxy.ssl_verification.false")}],this._reolinkMediaResolution=[{value:"",label:""},{value:"high",label:l("config.cameras.reolink.media_resolution.high")},{value:"low",label:l("config.cameras.reolink.media_resolution.low")}],this._statusBarStyles=[{value:"",label:""},{value:"hover",label:l("config.status_bar.styles.hover")},{value:"hover-card",label:l("config.status_bar.styles.hover-card")},{value:"none",label:l("config.status_bar.styles.none")},{value:"outside",label:l("config.status_bar.styles.outside")},{value:"overlay",label:l("config.status_bar.styles.overlay")},{value:"popup",label:l("config.status_bar.styles.popup")}],this._statusBarPositions=[{value:"",label:""},{value:"top",label:l("config.status_bar.positions.top")},{value:"bottom",label:l("config.status_bar.positions.bottom")}]}setConfig(e){this._config=e,this._configUpgradeable=u(e);const a=h.safeParse(this._config.profiles);if(a.success){const e=m(di);_(this._config,e,a.data),this._defaults=e}}willUpdate(){this._initialized||g().then((e=>{e&&(this._initialized=!0)}))}_renderOptionSetHeader(e,a){const t=pi[e];return o` +
+
+ +
${t.name}
+
+
${t.secondary}
+
+ `}_getLabel(e){const a=e.split(".").filter((e=>!e.match(/^\[[0-9]+\]$/))).join(".");return l(`config.${a}`)}_renderEntitySelector(e,a){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_renderOptionSelector(e,a=[],t){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_renderIconSelector(e,a){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_renderNumberInput(e,a){if(!this._config)return;const t=b(this._config,e),i=void 0===a?.max?"box":"slider";return o` + this._valueChangedHandler(e,a)} + > + + `}_renderInfo(e){return o` ${e}`}_getEditorCameraTitle(e,a){return"string"==typeof a?.title&&a.title||("string"==typeof a?.camera_entity?p(this.hass,a.camera_entity):"")||"object"==typeof a?.webrtc_card&&a.webrtc_card&&"string"==typeof a.webrtc_card.entity&&a.webrtc_card.entity||("object"==typeof a?.frigate&&a.frigate&&"string"==typeof a?.frigate.camera_name&&a.frigate.camera_name?v(a.frigate.camera_name):"")||"string"==typeof a?.id&&a.id||l("editor.camera")+" #"+e}_renderViewDefaultResetMenu(){return this._putInSubmenu("view.default_reset",!0,`config.${f}.editor_label`,"mdi:restart",o` + ${this._renderSwitch($,this._defaults.view.default_reset.after_interaction)} + ${this._renderNumberInput(y)} + ${this._renderOptionSelector(w,this._defaultResetInteractionModes,{label:l("config.view.default_reset.interaction_mode")})}, + ${this._renderOptionSelector(S,this.hass?x(this.hass):[],{multiple:!0})} + `)}_renderViewTriggersMenu(){return this._putInSubmenu("view.triggers",!0,`config.${M}.editor_label`,"mdi:target-account",o` + ${this._renderSwitch(I,this._defaults.view.triggers.filter_selected_camera,{label:l(`config.${I}`)})} + ${this._renderSwitch(k,this._defaults.view.triggers.show_trigger_status,{label:l(`config.${k}`)})} + ${this._renderNumberInput(O,{default:this._defaults.view.triggers.untrigger_seconds})} + ${this._putInSubmenu("view.triggers.actions",!0,`config.${C}.editor_label`,"mdi:cogs",o` ${this._renderOptionSelector(z,this._triggersActionsTrigger,{label:l("config.view.triggers.actions.trigger")})} + ${this._renderOptionSelector(A,this._triggersActionsUntrigger,{label:l("config.view.triggers.actions.untrigger")})} + ${this._renderOptionSelector(N,this._triggersActionsInteractionModes,{label:l("config.view.triggers.actions.interaction_mode")})}`)} + `)}_renderKeyAssigner(e,a){return o` this._valueChangedHandler(e,a)} + >`}_renderViewKeyboardShortcutMenu(){return this._putInSubmenu("view.keyboard_shortcuts",!0,`config.${T}.editor_label`,"mdi:keyboard",o` + ${this._renderSwitch(B,this._defaults.view.keyboard_shortcuts.enabled,{label:l(`config.${B}`)})} + ${this._renderKeyAssigner(E,this._defaults.view.keyboard_shortcuts.ptz_left)} + ${this._renderKeyAssigner(P,this._defaults.view.keyboard_shortcuts.ptz_right)} + ${this._renderKeyAssigner(H,this._defaults.view.keyboard_shortcuts.ptz_up)} + ${this._renderKeyAssigner(L,this._defaults.view.keyboard_shortcuts.ptz_down)} + ${this._renderKeyAssigner(V,this._defaults.view.keyboard_shortcuts.ptz_zoom_in)} + ${this._renderKeyAssigner(K,this._defaults.view.keyboard_shortcuts.ptz_zoom_out)} + ${this._renderKeyAssigner(U,this._defaults.view.keyboard_shortcuts.ptz_home)} + `)}_renderStatusBarItem(e){return o` ${this._putInSubmenu("status_bar.items",e,`config.status_bar.items.${e}`,"mdi:feature-search",o` + ${this._renderSwitch(`${j}.${e}.enabled`,this._defaults.status_bar.items[e]?.enabled??!0,{label:l("config.status_bar.items.enabled")})} + ${this._renderNumberInput(`${j}.${e}.priority`,{max:q,default:this._defaults.status_bar.items[e]?.priority,label:l("config.status_bar.items.priority")})} + `)}`}_renderMenuButton(e,a){const t=[{value:"",label:""},{value:"matching",label:l("config.menu.buttons.alignments.matching")},{value:"opposing",label:l("config.menu.buttons.alignments.opposing")}];return o` ${this._putInSubmenu("menu.buttons",e,`config.menu.buttons.${e}`,"mdi:gesture-tap-button",o` + ${this._renderSwitch(`${R}.${e}.enabled`,this._defaults.menu.buttons[e]?.enabled??!0,{label:l("config.menu.buttons.enabled")})} + ${this._renderOptionSelector(`${R}.${e}.alignment`,t,{label:l("config.menu.buttons.alignment")})} + ${this._renderSwitch(`${R}.${e}.permanent`,this._defaults.menu.buttons[e]?.permanent??!1,{label:l("config.menu.buttons.permanent")})} + ${this._renderNumberInput(`${R}.${e}.priority`,{max:D,default:this._defaults.menu.buttons[e]?.priority,label:l("config.menu.buttons.priority")})} + ${this._renderIconSelector(`${R}.${e}.icon`,{label:l("config.menu.buttons.icon")})} + ${a} + `)}`}_putInSubmenu(e,a,t,i,n){const s=this._expandedMenus[e]===a,c={submenu:!0,selected:s},d=dt(i);return o`
+ + ${s?o`
${n}
`:""} +
`}_renderMediaLayout(e,a,t,i,n,s,r,c,d,m,u,h){return this._putInSubmenu(e,!0,a,"mdi:page-layout-body",o` + ${this._renderNumberInput(m,{min:0,max:10,label:l("config.cameras.dimensions.layout.zoom"),step:.1})} + ${this._renderNumberInput(u,{min:0,max:100,label:l("config.cameras.dimensions.layout.pan.x")})} + ${this._renderNumberInput(h,{min:0,max:100,label:l("config.cameras.dimensions.layout.pan.y")})} + ${this._renderOptionSelector(t,this._layoutFits,{label:l("config.cameras.dimensions.layout.fit")})} + ${this._putInSubmenu(`${e}.position`,!0,"config.cameras.dimensions.layout.position.editor_label","mdi:aspect-ratio",o` ${this._renderNumberInput(i,{min:0,max:100,label:l("config.cameras.dimensions.layout.position.x")})} + ${this._renderNumberInput(n,{min:0,max:100,label:l("config.cameras.dimensions.layout.position.y")})}`)} + ${this._putInSubmenu(`${e}.view_box`,!0,"config.cameras.dimensions.layout.view_box.editor_label","mdi:crop",o` + ${this._renderNumberInput(s,{min:0,max:100,label:l("config.cameras.dimensions.layout.view_box.top")})} + ${this._renderNumberInput(r,{min:0,max:100,label:l("config.cameras.dimensions.layout.view_box.bottom")})} + ${this._renderNumberInput(c,{min:0,max:100,label:l("config.cameras.dimensions.layout.view_box.left")})} + ${this._renderNumberInput(d,{min:0,max:100,label:l("config.cameras.dimensions.layout.view_box.right")})} + `)} + `)}_renderTimelineCoreControls(e,a,t,i,n,s,r){return o` + ${this._renderOptionSelector(e,this._timelineStyleTypes,{label:l(`config.common.${F}`)})} + ${r?this._renderOptionSelector(r,this._timelinePanModes,{label:l("config.common.controls.timeline.pan_mode")}):""} + ${this._renderNumberInput(a,{label:l(`config.common.${G}`)})} + ${this._renderNumberInput(t,{label:l(`config.common.${J}`)})} + ${this._renderOptionSelector(i,this._timelineEventsMediaTypes,{label:l(`config.common.${Q}`)})} + ${this._renderSwitch(n,s,{label:l(`config.common.${W}`)})} + `}_renderMiniTimeline(e,a,t,i,n,s,r,c,d){return this._putInSubmenu(e,!0,"config.common.controls.timeline.editor_label","mdi:chart-gantt",o` ${this._renderOptionSelector(a,this._miniTimelineModes,{label:l("config.common.controls.timeline.mode")})} + ${this._renderTimelineCoreControls(t,i,n,s,r,c,d)}`)}_renderViewDisplay(e,a,t,i,n){return this._putInSubmenu(e,!0,"config.common.display.editor_label","mdi:palette-swatch",o` + ${this._renderOptionSelector(a,this._displayModes,{label:l("config.common.display.mode")})} + ${this._renderNumberInput(t,{min:0,label:l("config.common.display.grid_selected_width_factor")})} + ${this._renderNumberInput(i,{min:0,label:l("config.common.display.grid_columns")})} + ${this._renderNumberInput(n,{min:0,label:l("config.common.display.grid_max_columns")})} + `)}_renderNextPreviousControls(e,a,t,i){return this._putInSubmenu(e,!0,"config.common.controls.next_previous.editor_label","mdi:arrow-right-bold-circle",o` + ${this._renderOptionSelector(a,this._nextPreviousControlStyles.filter((e=>!(!i?.allowThumbnails&&"thumbnails"===e.value||!i?.allowIcons&&"icons"===e.value))),{label:l("config.common.controls.next_previous.style")})} + ${this._renderNumberInput(t,{min:X,label:l("config.common.controls.next_previous.size")})} + `)}_renderThumbnailsControls(e,a,t,i,n,s,r,c){return this._putInSubmenu(e,!0,"config.common.controls.thumbnails.editor_label","mdi:image-text",o` + ${c?.configPathMode?o`${this._renderOptionSelector(c.configPathMode,this._thumbnailModes,{label:l("config.common.controls.thumbnails.mode")})}`:o``} + ${c?.configPathMediaType?o`${this._renderOptionSelector(c.configPathMediaType,this._thumbnailMediaTypes,{label:l("config.common.controls.thumbnails.media_type")})}`:o``} + ${c?.configPathEventsMediaType?o`${this._renderOptionSelector(c.configPathEventsMediaType,this._thumbnailEventsMediaTypes,{label:l("config.common.controls.thumbnails.events_media_type")})}`:o``} + ${this._renderNumberInput(a,{min:Y,max:Z,label:l("config.common.controls.thumbnails.size")})} + ${this._renderSwitch(t,r.show_details,{label:l("config.common.controls.thumbnails.show_details")})} + ${this._renderSwitch(i,r.show_favorite_control,{label:l("config.common.controls.thumbnails.show_favorite_control")})} + ${this._renderSwitch(n,r.show_timeline_control,{label:l("config.common.controls.thumbnails.show_timeline_control")})} + ${this._renderSwitch(s,r.show_download_control,{label:l("config.common.controls.thumbnails.show_download_control")})} + `)}_renderFilterControls(e,a){return this._putInSubmenu(e,!0,"config.common.controls.filter.editor_label","mdi:filter-cog",o` + ${a?o`${this._renderOptionSelector(a,this._filterModes,{label:l("config.common.controls.filter.mode")})}`:o``} + `)}_renderImageOptions(e,a,t,i,n){return o` + ${this._renderOptionSelector(e,this._imageModes,{label:l("config.common.image.mode")})} + ${this._renderStringInput(a,{label:l("config.common.image.url")})} + ${this._renderOptionSelector(t,this.hass?x(this.hass):[],{label:l("config.common.image.entity")})} + ${this._renderStringInput(i,{label:l("config.common.image.entity_parameters")})} + ${this._renderNumberInput(n,{label:l("config.common.image.refresh_seconds")})} + `}_renderCamera(e,a,t,i){const n=[{value:"",label:""},{value:"auto",label:l("config.cameras.live_providers.auto")},{value:"ha",label:l("config.cameras.live_providers.ha")},{value:"image",label:l("config.cameras.live_providers.image")},{value:"jsmpeg",label:l("config.cameras.live_providers.jsmpeg")},{value:"go2rtc",label:l("config.cameras.live_providers.go2rtc")},{value:"webrtc-card",label:l("config.cameras.live_providers.webrtc-card")}],s=[];e.forEach(((e,t)=>{t!==a&&s.push({value:ee(e),label:this._getEditorCameraTitle(t,e)})}));const c=e=>{if(this._config){const a=m(this._config);e(a)&&this._updateConfig(a)}},d={submenu:!0,selected:this._expandedMenus[gi]===a};return o` +
+ + ${this._expandedMenus[gi]===a?o`
+
+ !i&&c((e=>!!(Array.isArray(e.cameras)&&a>0)&&(mt(e.cameras,a,a-1),this._openMenu(gi,a-1),!0)))} + > + + + =this._config.cameras.length-1} + @click=${()=>!i&&c((e=>!!(Array.isArray(e.cameras)&&a + + + {c((e=>!!Array.isArray(e.cameras)&&(e.cameras.splice(a,1),this._closeMenu(gi),!0)))}} + > + + +
+ ${this._renderEntitySelector(ae(ut,a),"camera")} + ${this._renderOptionSelector(ae(ht,a),n)} + ${this._renderStringInput(ae(_t,a))} + ${this._renderIconSelector(ae(gt,a),{label:l("config.cameras.icon")})} + ${this._renderStringInput(ae(bt,a))} + ${this._putInSubmenu("cameras.engine",!0,"config.cameras.engines.editor_label","mdi:engine",o`${this._putInSubmenu("cameras.frigate",a,"config.cameras.frigate.editor_label","frigate",o` + ${this._renderStringInput(ae(pt,a))} + ${this._renderStringInput(ae(vt,a))} + ${this._renderOptionSelector(ae(ft,a),[],{multiple:!0,label:l("config.cameras.frigate.labels")})} + ${this._renderOptionSelector(ae($t,a),[],{multiple:!0,label:l("config.cameras.frigate.zones")})} + ${this._renderStringInput(ae(yt,a))} + `)} + ${this._putInSubmenu("cameras.motioneye",a,"config.cameras.motioneye.editor_label","motioneye",o` ${this._renderStringInput(ae(wt,a))} + ${this._renderStringInput(ae(St,a))} + ${this._renderStringInput(ae(xt,a))} + ${this._renderStringInput(ae(Mt,a))} + ${this._renderStringInput(ae(It,a))}`)} + ${this._putInSubmenu("cameras.reolink",a,"config.cameras.reolink.editor_label","reolink",o` ${this._renderStringInput(ae(kt,a))} + ${this._renderOptionSelector(ae(Ot,a),this._reolinkMediaResolution,{label:l("config.cameras.reolink.media_resolution.editor_label")})}`)}`)} + ${this._putInSubmenu("cameras.live_provider",!0,"config.cameras.live_provider_options.editor_label","mdi:cctv",o` ${this._putInSubmenu("cameras.go2rtc",a,"config.cameras.go2rtc.editor_label","mdi:alpha-g-circle",o`${this._renderOptionSelector(ae(Ct,a),this._go2rtcModes,{multiple:!0,label:l("config.cameras.go2rtc.modes.editor_label")})} + ${this._renderStringInput(ae(zt,a))}`)} + ${this._putInSubmenu("cameras.image",!0,"config.cameras.image.editor_label","mdi:image",this._renderImageOptions(ae(At,a),ae(Nt,a),ae(Tt,a),ae(Bt,a),ae(Et,a)))} + ${this._putInSubmenu("cameras.webrtc_card",a,"config.cameras.webrtc_card.editor_label","mdi:webrtc",o`${this._renderEntitySelector(ae(Pt,a),"camera")} + ${this._renderStringInput(ae(Ht,a))}`)}`)} + ${this._putInSubmenu("cameras.dependencies",a,"config.cameras.dependencies.editor_label","mdi:graph",o` ${this._renderSwitch(ae(Lt,a),this._defaults.cameras.dependencies.all_cameras)} + ${this._renderOptionSelector(ae(Vt,a),s,{multiple:!0})}`)} + ${this._putInSubmenu("cameras.triggers",a,"config.cameras.triggers.editor_label","mdi:magnify-scan",o` + ${this._renderSwitch(ae(Kt,a),this._defaults.cameras.triggers.occupancy)} + ${this._renderSwitch(ae(Ut,a),this._defaults.cameras.triggers.motion)} + ${this._renderOptionSelector(ae(jt,a),t,{multiple:!0})} + ${this._renderOptionSelector(ae(qt,a),this._triggersEvents,{multiple:!0,label:l("config.cameras.triggers.events.editor_label")})} + `)} + ${this._putInSubmenu("cameras.cast",a,"config.cameras.cast.editor_label","mdi:cast",o` + ${this._renderOptionSelector(ae(Rt,a),this._castMethods)} + ${this._renderStringInput(ae(Dt,a))} + ${this._renderStringInput(ae(Ft,a))} + `)} + ${this._putInSubmenu("cameras.dimensions",a,"config.cameras.dimensions.editor_label","mdi:aspect-ratio",o` + ${this._renderStringInput(ae(Gt,a))} + ${this._renderMediaLayout("cameras.dimensions.layout","config.cameras.dimensions.layout.editor_label",ae(Jt,a),ae(Qt,a),ae(Wt,a),ae(Xt,a),ae(Yt,a),ae(Zt,a),ae(ei,a),ae(ai,a),ae(ti,a),ae(ii,a))} + `)} + ${this._putInSubmenu("cameras.capabilities",a,"config.cameras.capabilities.editor_label","mdi:cog-stop",o` + ${this._renderOptionSelector(ae(ni,a),this._capabilities,{multiple:!0})} + ${this._renderOptionSelector(ae(si,a),this._capabilities,{multiple:!0})} + `)} + ${this._putInSubmenu("cameras.proxy",a,"config.cameras.proxy.editor_label","mdi:arrow-decision",o` + ${this._renderOptionSelector(ae(oi,a),this._proxyMedia,{label:l("config.cameras.proxy.media.editor_label")})} + ${this._renderSwitch(ae(ri,a),this._defaults.cameras.proxy.dynamic)} + ${this._renderOptionSelector(ae(li,a),this._proxySSLVerification,{label:l("config.cameras.proxy.ssl_verification.editor_label")})} + ${this._renderOptionSelector(ae(ci,a),this._proxySSLCiphers,{label:l("config.cameras.proxy.ssl_ciphers.editor_label")})} + `)} +
`:""} +
+ `}_renderStringInput(e,a){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_renderSwitch(e,a,t){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_updateConfig(e){this._config=e,te(this,"config-changed",{config:this._config})}render(){if(!this.hass||!this._config)return o``;const e=x(this.hass),a=b(this._config,mi)||[];return o` + ${this._configUpgradeable?o`
+ ${l("editor.upgrade_available")} + + {if(this._config){const e=m(this._config);ie(e),this._updateConfig(e)}}} + > + + +
+
`:o``} +
+ ${this._renderOptionSetHeader("cameras")} + ${"cameras"===this._expandedMenus[bi]?o` +
+ ${a.map(((t,i)=>this._renderCamera(a,i,e)))} + ${this._renderCamera(a,a.length,e,!0)} +
+ `:""} + ${this._renderOptionSetHeader("profiles")} + ${"profiles"===this._expandedMenus[bi]?o`
+ ${this._renderOptionSelector(ne,this._profiles,{multiple:!0,label:l("config.profiles.editor_label")})} +
`:""} + ${this._renderOptionSetHeader("view")} + ${"view"===this._expandedMenus[bi]?o` +
+ ${this._renderOptionSelector(se,this._viewModes)} + ${this._renderOptionSelector(oe,this._cameraSelectViewModes)} + ${this._renderOptionSelector(re,this._darkModes)} + ${this._renderNumberInput(le)} + ${this._renderSwitch(ce,this._defaults.view.default_cycle_camera)} + ${this._renderViewDefaultResetMenu()} ${this._renderViewTriggersMenu()} + ${this._renderViewKeyboardShortcutMenu()} +
+ `:""} + ${this._renderOptionSetHeader("menu")} + ${"menu"===this._expandedMenus[bi]?o` +
+ ${this._renderOptionSelector(de,this._menuStyles)} + ${this._renderOptionSelector(me,this._menuPositions)} + ${this._renderOptionSelector(ue,this._menuAlignments)} + ${this._renderNumberInput(he,{min:X})} + ${this._renderMenuButton("frigate")} + ${this._renderMenuButton("cameras")} + ${this._renderMenuButton("substreams")} + ${this._renderMenuButton("live")} + ${this._renderMenuButton("clips")} + ${this._renderMenuButton("snapshots")} + ${this._renderMenuButton("recordings")} + ${this._renderMenuButton("image")} + ${this._renderMenuButton("download")} + ${this._renderMenuButton("camera_ui")} + ${this._renderMenuButton("fullscreen")} + ${this._renderMenuButton("expand")} + ${this._renderMenuButton("timeline")} + ${this._renderMenuButton("media_player")} + ${this._renderMenuButton("microphone",o`${this._renderOptionSelector(`${R}.microphone.type`,this._microphoneButtonTypes,{label:l("config.menu.buttons.type")})}`)} + ${this._renderMenuButton("play")} + ${this._renderMenuButton("mute")} + ${this._renderMenuButton("screenshot")} + ${this._renderMenuButton("display_mode")} + ${this._renderMenuButton("ptz_controls")} + ${this._renderMenuButton("ptz_home")} +
+ `:""} + ${this._renderOptionSetHeader("status_bar")} + ${"status_bar"===this._expandedMenus[bi]?o` +
+ ${this._renderOptionSelector(_e,this._statusBarStyles)} + ${this._renderOptionSelector(ge,this._statusBarPositions)} + ${this._renderNumberInput(be,{min:pe,label:l("config.status_bar.height")})} + ${this._renderNumberInput(ve,{min:0,max:60,default:this._defaults.status_bar.popup_seconds,label:l("config.status_bar.popup_seconds")})} + ${this._renderStatusBarItem("title")} + ${this._renderStatusBarItem("resolution")} + ${this._renderStatusBarItem("technology")} + ${this._renderStatusBarItem("engine")} +
+ `:""} + ${this._renderOptionSetHeader("live")} + ${"live"===this._expandedMenus[bi]?o` +
+ ${this._renderSwitch(fe,this._defaults.live.preload)} + ${this._renderSwitch($e,this._defaults.live.draggable)} + ${this._renderSwitch(ye,this._defaults.live.zoomable)} + ${this._renderSwitch(we,this._defaults.live.lazy_load)} + ${this._renderOptionSelector(Se,this._mediaActionNegativeConditions,{multiple:!0})} + ${this._renderOptionSelector(xe,this._mediaActionPositiveConditions,{multiple:!0})} + ${this._renderOptionSelector(Me,this._mediaActionNegativeConditions,{multiple:!0})} + ${this._renderOptionSelector(Ie,this._mediaLiveMuteConditions,{multiple:!0})} + ${this._renderOptionSelector(ke,this._mediaLiveUnmuteConditions,{multiple:!0})} + ${this._renderOptionSelector(Oe,this._transitionEffects)} + ${this._renderSwitch(Ce,this._defaults.live.show_image_during_load)} + ${this._renderViewDisplay("live.display",ze,Ae,Ne,Te)} + ${this._putInSubmenu("live.controls",!0,"config.live.controls.editor_label","mdi:gamepad",o` + ${this._renderSwitch(Be,this._defaults.live.controls.builtin,{label:l("config.common.controls.builtin")})} + ${this._renderNextPreviousControls("live.controls.next_previous",Ee,Pe,{allowIcons:!0})} + ${this._renderThumbnailsControls("live.controls.thumbnails",He,Le,Ve,Ke,Ue,this._defaults.live.controls.thumbnails,{configPathMediaType:je,configPathEventsMediaType:qe,configPathMode:Re})} + ${this._renderMiniTimeline("live.controls.timeline",De,Fe,Ge,Je,Qe,We,this._defaults.live.controls.timeline.show_recordings,Xe)} + ${this._putInSubmenu("live.controls.ptz",!0,"config.live.controls.ptz.editor_label","mdi:pan",o` + ${this._renderOptionSelector(Ye,this._ptzModes)} + ${this._renderOptionSelector(Ze,this._ptzPositions)} + ${this._renderOptionSelector(ea,this._ptzOrientations)} + ${this._renderSwitch(aa,this._defaults.live.controls.ptz.hide_pan_tilt,{label:l("config.live.controls.ptz.hide_pan_tilt")})} + ${this._renderSwitch(ta,this._defaults.live.controls.ptz.hide_pan_tilt,{label:l("config.live.controls.ptz.hide_zoom")})} + ${this._renderSwitch(ia,this._defaults.live.controls.ptz.hide_home,{label:l("config.live.controls.ptz.hide_home")})} + `)} + `)} + ${this._putInSubmenu("live.microphone",!0,"config.live.microphone.editor_label","mdi:microphone",o` + ${this._renderNumberInput(na)} + ${this._renderSwitch(sa,this._defaults.live.microphone.always_connected)} + ${this._renderNumberInput(oa)} + `)} +
+ `:""} + ${this._renderOptionSetHeader("media_gallery")} + ${"media_gallery"===this._expandedMenus[bi]?o`
+ ${this._renderThumbnailsControls("media_gallery.controls.thumbnails",ra,la,ca,da,ma,this._defaults.media_gallery.controls.thumbnails)} + ${this._renderFilterControls("media_gallery.controls.filter",ua)} +
`:""} + ${this._renderOptionSetHeader("media_viewer")} + ${"media_viewer"===this._expandedMenus[bi]?o`
+ ${this._renderOptionSelector(ha,this._mediaActionPositiveConditions,{multiple:!0})} + ${this._renderOptionSelector(_a,this._mediaActionNegativeConditions,{multiple:!0})} + ${this._renderOptionSelector(ga,this._mediaActionNegativeConditions,{multiple:!0})} + ${this._renderOptionSelector(ba,this._mediaActionPositiveConditions,{multiple:!0})} + ${this._renderSwitch(pa,this._defaults.media_viewer.draggable)} + ${this._renderSwitch(va,this._defaults.media_viewer.zoomable)} + ${this._renderSwitch(fa,this._defaults.media_viewer.lazy_load)} + ${this._renderOptionSelector($a,this._transitionEffects)} + ${this._renderSwitch(ya,this._defaults.media_viewer.snapshot_click_plays_clip)} + ${this._renderViewDisplay("media_viewer.display",wa,Sa,xa,Ma)} + ${this._putInSubmenu("media_viewer.controls",!0,"config.media_viewer.controls.editor_label","mdi:gamepad",o` + ${this._renderSwitch(Ia,this._defaults.media_viewer.controls.builtin,{label:l("config.common.controls.builtin")})} + ${this._renderNextPreviousControls("media_viewer.controls.next_previous",ka,Oa,{allowThumbnails:!0})} + ${this._renderThumbnailsControls("media_viewer.controls.thumbnails",Ca,za,Aa,Na,Ta,this._defaults.media_viewer.controls.thumbnails,{configPathMode:Ba})} + ${this._renderMiniTimeline("media_viewer.controls.timeline",Ea,Pa,Ha,La,Va,Ka,this._defaults.media_viewer.controls.timeline.show_recordings,Ua)} + `)} +
`:""} + ${this._renderOptionSetHeader("image")} + ${"image"===this._expandedMenus[bi]?o`
+ ${this._renderImageOptions(ja,qa,Ra,Da,Fa)} +
`:""} + ${this._renderOptionSetHeader("timeline")} + ${"timeline"===this._expandedMenus[bi]?o`
+ ${this._renderTimelineCoreControls(F,G,J,Q,W,this._defaults.timeline.show_recordings)} + ${this._renderThumbnailsControls("timeline.controls.thumbnails",Ga,Ja,Qa,Wa,Xa,this._defaults.timeline.controls.thumbnails,{configPathMode:Ya})} +
`:""} + ${this._renderOptionSetHeader("dimensions")} + ${"dimensions"===this._expandedMenus[bi]?o`
+ ${this._renderOptionSelector(Za,this._aspectRatioModes)} + ${this._renderStringInput(et)} + ${this._renderStringInput(at)} +
`:""} + ${this._renderOptionSetHeader("performance","low"===b(this._config,ui)?"warning":void 0)} + ${"performance"===this._expandedMenus[bi]?o`
+ ${"low"===b(this._config,ui)?this._renderInfo(l("config.performance.warning")):o``} + ${this._putInSubmenu("performance.features",!0,"config.performance.features.editor_label","mdi:feature-search",o` + ${this._renderSwitch(tt,this._defaults.performance.features.animated_progress_indicator)} + ${this._renderNumberInput(it,{max:nt})} + ${this._renderNumberInput(st,{min:1})} + `)} + ${this._putInSubmenu("performance.style",!0,"config.performance.style.editor_label","mdi:palette-swatch-variant",o` + ${this._renderSwitch(ot,this._defaults.performance.style.border_radius)} + ${this._renderSwitch(rt,this._defaults.performance.style.box_shadow)} + `)} +
`:""} + ${void 0!==this._config.overrides?o` ${this._renderOptionSetHeader("overrides")} + ${"overrides"===this._expandedMenus[bi]?o`
+ ${this._renderInfo(l("config.overrides.info"))} +
`:""}`:o``} +
+ `}_closeMenu(e){delete this._expandedMenus[e],this.requestUpdate()}_openMenu(e,a){this._expandedMenus[e]=a,this.requestUpdate()}_toggleMenu(e){if(e&&e.target){const a=e.target.domain,t=e.target.key;this._expandedMenus[a]===t?this._closeMenu(a):this._openMenu(a,t)}}_valueChangedHandler(e,a){if(!this._config||!this.hass)return;let t;if(a.detail&&void 0!==a.detail.value&&(t=a.detail.value,"string"==typeof t&&(t=t.trim())),b(this._config,e)===t)return;const i=m(this._config);""===t||void 0===t?lt(i,e):ct(i,e,t),this._updateConfig(i)}static get styles(){return c('ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n.option {\n padding: 4px 4px;\n cursor: pointer;\n}\n\n.option.option-overrides .title {\n color: var(--warning-color);\n}\n\n.row {\n display: flex;\n margin-bottom: -14px;\n pointer-events: none;\n}\n\n.title {\n padding-left: 16px;\n margin-top: -6px;\n pointer-events: none;\n}\n\n.title.warning {\n color: var(--warning-color);\n}\n\n.secondary {\n padding-left: 40px;\n color: var(--secondary-text-color);\n pointer-events: none;\n}\n\n.values {\n background: var(--secondary-background-color);\n display: grid;\n}\n\n.values + .option,\n.submenu + .option {\n margin-top: 10px;\n}\n\ndiv.upgrade {\n width: auto;\n border: 1px dotted var(--primary-color);\n margin: 10px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\ndiv.upgrade span {\n padding: 10px;\n}\n\n.submenu-header {\n display: flex;\n padding: 10px;\n cursor: pointer;\n}\n\n.submenu.selected > .submenu-header {\n background-color: var(--primary-color);\n color: var(--primary-text-color);\n}\n\n.submenu-header * {\n flex-basis: auto;\n pointer-events: none;\n}\n\n.submenu-header .new-camera {\n font-style: italic;\n}\n\n.submenu:not(.selected) > .submenu-header .new-camera {\n color: var(--secondary-text-color, "black");\n}\n\n.submenu-header ha-icon,\n.submenu-header img {\n padding-right: 15px;\n}\n\n.submenu.selected {\n border: 1px solid var(--primary-color);\n}\n\n.submenu {\n width: calc(100% - 20px);\n margin-left: auto;\n margin-right: auto;\n margin-bottom: 10px;\n}\n\n.submenu:first-child,\n:not(.submenu) + .submenu {\n margin-top: 10px;\n}\n\n.submenu .controls {\n display: inline-block;\n margin-left: auto;\n margin-right: 0px;\n margin-bottom: 5px;\n}\n\n.submenu .controls ha-icon-button.button {\n --mdc-icon-button-size: 32px;\n --mdc-icon-size: calc(var(--mdc-icon-button-size) / 2);\n}\n\nspan.info {\n padding: 10px;\n}\n\nha-selector {\n padding: 10px;\n border: 1px solid var(--divider-color);\n}')}};t([i({attribute:!1})],vi.prototype,"hass",void 0),t([d()],vi.prototype,"_config",void 0),t([d()],vi.prototype,"_defaults",void 0),t([d()],vi.prototype,"_expandedMenus",void 0),vi=t([n("frigate-card-editor")],vi);export{vi as FrigateCardEditor}; diff --git a/config/www/community/frigate-hass-card/editor-837da8b4.js.gz b/config/www/community/frigate-hass-card/editor-837da8b4.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..8564fb46a4e52ac4c4de3b897cd3ad65ca6e0f71 GIT binary patch literal 11529 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 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/editor-c3e576d8.js b/config/www/community/frigate-hass-card/editor-c3e576d8.js new file mode 100644 index 00000000..78ff1291 --- /dev/null +++ b/config/www/community/frigate-hass-card/editor-c3e576d8.js @@ -0,0 +1,462 @@ +import{i as e,s as a,_ as t,n as i,t as n,a as s,x as o,e as r,l,r as c,b as d,c as m,d as u,p as h,f as _,g,h as b,j as p,k as v,C as f,m as $,o as y,q as w,u as S,v as x,w as M,y as I,z as k,A as O,B as C,D as z,E as A,F as N,G as T,H as B,I as E,J as P,K as H,L,M as V,N as K,O as U,P as j,Q as q,R,S as D,T as F,U as G,V as J,W as Q,X as W,Y as X,Z as Y,$ as Z,a0 as ee,a1 as ae,a2 as te,a3 as ie,a4 as ne,a5 as se,a6 as oe,a7 as re,a8 as le,a9 as ce,aa as de,ab as me,ac as ue,ad as he,ae as _e,af as ge,ag as be,ah as pe,ai as ve,aj as fe,ak as $e,al as ye,am as we,an as Se,ao as xe,ap as Me,aq as Ie,ar as ke,as as Oe,at as Ce,au as ze,av as Ae,aw as Ne,ax as Te,ay as Be,az as Ee,aA as Pe,aB as He,aC as Le,aD as Ve,aE as Ke,aF as Ue,aG as je,aH as qe,aI as Re,aJ as De,aK as Fe,aL as Ge,aM as Je,aN as Qe,aO as We,aP as Xe,aQ as Ye,aR as Ze,aS as ea,aT as aa,aU as ta,aV as ia,aW as na,aX as sa,aY as oa,aZ as ra,a_ as la,a$ as ca,b0 as da,b1 as ma,b2 as ua,b3 as ha,b4 as _a,b5 as ga,b6 as ba,b7 as pa,b8 as va,b9 as fa,ba as $a,bb as ya,bc as wa,bd as Sa,be as xa,bf as Ma,bg as Ia,bh as ka,bi as Oa,bj as Ca,bk as za,bl as Aa,bm as Na,bn as Ta,bo as Ba,bp as Ea,bq as Pa,br as Ha,bs as La,bt as Va,bu as Ka,bv as Ua,bw as ja,bx as qa,by as Ra,bz as Da,bA as Fa,bB as Ga,bC as Ja,bD as Qa,bE as Wa,bF as Xa,bG as Ya,bH as Za,bI as et,bJ as at,bK as tt,bL as it,bM as nt,bN as st,bO as ot,bP as rt,bQ as lt,bR as ct,bS as dt,bT as mt,bU as ut,bV as ht,bW as _t,bX as gt,bY as bt,bZ as pt,b_ as vt,b$ as ft,c0 as $t,c1 as yt,c2 as wt,c3 as St,c4 as xt,c5 as Mt,c6 as It,c7 as kt,c8 as Ot,c9 as Ct,ca as zt,cb as At,cc as Nt,cd as Tt,ce as Bt,cf as Et,cg as Pt,ch as Ht,ci as Lt,cj as Vt,ck as Kt,cl as Ut,cm as jt,cn as qt,co as Rt,cp as Dt,cq as Ft,cr as Gt,cs as Jt,ct as Qt,cu as Wt,cv as Xt,cw as Yt,cx as Zt,cy as ei,cz as ai,cA as ti,cB as ii,cC as ni,cD as si,cE as oi,cF as ri,cG as li,cH as ci,cI as di,cJ as mi,cK as ui}from"./card-c642ee74.js";class hi{constructor(e){this._assigning=!1,this._value=null,this._blurEventHandler=()=>{this._setAssigning(!1)},this._keydownEventHandler=e=>{e.key&&!["Control","Alt","Shift","Meta"].includes(e.key)&&(this.setValue({key:e.key,ctrl:e.ctrlKey,alt:e.altKey,shift:e.shiftKey,meta:e.metaKey}),this._setAssigning(!1))},this._host=e,this._host.addController(this)}setValue(a){e(a,this._value)||(this._value=a,this._host.requestUpdate(),this._host.dispatchEvent(new CustomEvent("value-changed",{detail:{value:this._value}})))}getValue(){return this._value}hasValue(){return!!this._value}isAssigning(){return this._assigning}toggleAssigning(){this._setAssigning(!this._assigning)}_setAssigning(e){this._assigning=e,a(this._host,this._assigning,"assigning"),this._assigning?this._host.addEventListener("keydown",this._keydownEventHandler):this._host.removeEventListener("keydown",this._keydownEventHandler),this._host.requestUpdate()}hostConnected(){this._host.addEventListener("blur",this._blurEventHandler)}hostDisconnected(){this._host.removeEventListener("blur",this._blurEventHandler)}}let _i=class extends s{constructor(){super(...arguments),this._controller=new hi(this)}willUpdate(e){e.has("value")&&this._controller.setValue(this.value??null)}render(){if(!this.label)return;const e=e=>o`
+
${e}
+
`;return o` +
${this.label}
+ {this._controller.toggleAssigning()}} + > + + + ${this._controller.isAssigning()?l("key_assigner.assigning"):l("key_assigner.assign")} + + + ${this._controller.hasValue()?o`{this._controller.setValue(null)}} + > + + ${l("key_assigner.unassign")} + `:""} +
+ ${this.value?.ctrl?e(l("key_assigner.modifiers.ctrl")):""} + ${this.value?.shift?e(l("key_assigner.modifiers.shift")):""} + ${this.value?.meta?e(l("key_assigner.modifiers.meta")):""} + ${this.value?.alt?e(l("key_assigner.modifiers.alt")):""} + ${this.value?.key?e(this.value.key):""} +
+ `}static get styles(){return c('.dotdotdot:after {\n animation: dots 2s linear infinite;\n content: "";\n display: inline-block;\n width: 3em;\n}\n@keyframes dots {\n 0%, 20% {\n content: ".";\n }\n 40% {\n content: "..";\n }\n 60% {\n content: "...";\n }\n 90%, 100% {\n content: "";\n }\n}\n\n:host {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 10px;\n height: 56px;\n border: 1px solid var(--divider-color);\n}\n\n:host([assigning]) ha-button.assign span,\n:host([assigning]) ha-button.assign ha-icon {\n color: var(--warning-color);\n}\n\nha-icon {\n padding: 10px;\n}\n\ndiv.label {\n width: 100px;\n margin-left: 4px;\n}\n\ndiv.key-row {\n flex: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n padding-left: 10px;\n padding-right: 10px;\n}\n\ndiv.key {\n display: flex;\n align-items: center;\n height: 90%;\n width: min-content;\n margin-left: 5px;\n margin-right: 5px;\n}\n\ndiv.key-inner {\n height: 100%;\n width: 100%;\n padding-top: 2px;\n padding-bottom: 2px;\n padding-left: 4px;\n padding-right: 4px;\n border: 2px;\n border-radius: 4px;\n border-style: outset;\n border-color: var(--divider-color);\n font-family: monospace;\n text-transform: capitalize;\n}\n\ndiv.unassigned {\n font-style: italic;\n}\n\ndiv.key + div.key:before {\n display: flex;\n align-items: center;\n margin-right: 5px;\n content: " + ";\n}')}};t([i({attribute:!1})],_i.prototype,"label",void 0),t([i({attribute:!1})],_i.prototype,"value",void 0),_i=t([n("frigate-card-key-assigner")],_i);const gi="cameras",bi="options",pi={cameras:{icon:"video",name:l("editor.cameras"),secondary:l("editor.cameras_secondary")},view:{icon:"eye",name:l("editor.view"),secondary:l("editor.view_secondary")},menu:{icon:"menu",name:l("editor.menu"),secondary:l("editor.menu_secondary")},status_bar:{icon:"sign-text",name:l("editor.status_bar"),secondary:l("editor.status_bar_secondary")},live:{icon:"cctv",name:l("editor.live"),secondary:l("editor.live_secondary")},media_gallery:{icon:"grid",name:l("editor.media_gallery"),secondary:l("editor.media_gallery_secondary")},media_viewer:{icon:"filmstrip",name:l("editor.media_viewer"),secondary:l("editor.media_viewer_secondary")},image:{icon:"image",name:l("editor.image"),secondary:l("editor.image_secondary")},timeline:{icon:"chart-gantt",name:l("editor.timeline"),secondary:l("editor.timeline_secondary")},dimensions:{icon:"aspect-ratio",name:l("editor.dimensions"),secondary:l("editor.dimensions_secondary")},performance:{icon:"speedometer",name:l("editor.performance"),secondary:l("editor.performance_secondary")},profiles:{icon:"folder-wrench-outline",name:l("editor.profiles"),secondary:l("editor.profiles_secondary")},overrides:{icon:"file-replace",name:l("editor.overrides"),secondary:l("editor.overrides_secondary")}};let vi=class extends s{constructor(){super(...arguments),this._defaults=m(di),this._initialized=!1,this._configUpgradeable=!1,this._expandedMenus={},this._viewModes=[{value:"",label:""},{value:"live",label:l("config.view.views.live")},{value:"clips",label:l("config.view.views.clips")},{value:"snapshots",label:l("config.view.views.snapshots")},{value:"recordings",label:l("config.view.views.recordings")},{value:"clip",label:l("config.view.views.clip")},{value:"snapshot",label:l("config.view.views.snapshot")},{value:"recording",label:l("config.view.views.recording")},{value:"image",label:l("config.view.views.image")},{value:"timeline",label:l("config.view.views.timeline")}],this._cameraSelectViewModes=[...this._viewModes,{value:"current",label:l("config.view.views.current")}],this._filterModes=[{value:"",label:""},{value:"none",label:l("config.common.controls.filter.modes.none")},{value:"left",label:l("config.common.controls.filter.modes.left")},{value:"right",label:l("config.common.controls.filter.modes.right")}],this._menuStyles=[{value:"",label:""},{value:"none",label:l("config.menu.styles.none")},{value:"hidden",label:l("config.menu.styles.hidden")},{value:"overlay",label:l("config.menu.styles.overlay")},{value:"hover",label:l("config.menu.styles.hover")},{value:"hover-card",label:l("config.menu.styles.hover-card")},{value:"outside",label:l("config.menu.styles.outside")}],this._menuPositions=[{value:"",label:""},{value:"left",label:l("config.menu.positions.left")},{value:"right",label:l("config.menu.positions.right")},{value:"top",label:l("config.menu.positions.top")},{value:"bottom",label:l("config.menu.positions.bottom")}],this._menuAlignments=[{value:"",label:""},{value:"left",label:l("config.menu.alignments.left")},{value:"right",label:l("config.menu.alignments.right")},{value:"top",label:l("config.menu.alignments.top")},{value:"bottom",label:l("config.menu.alignments.bottom")}],this._nextPreviousControlStyles=[{value:"",label:""},{value:"chevrons",label:l("config.common.controls.next_previous.styles.chevrons")},{value:"icons",label:l("config.common.controls.next_previous.styles.icons")},{value:"none",label:l("config.common.controls.next_previous.styles.none")},{value:"thumbnails",label:l("config.common.controls.next_previous.styles.thumbnails")}],this._aspectRatioModes=[{value:"",label:""},{value:"dynamic",label:l("config.dimensions.aspect_ratio_modes.dynamic")},{value:"static",label:l("config.dimensions.aspect_ratio_modes.static")},{value:"unconstrained",label:l("config.dimensions.aspect_ratio_modes.unconstrained")}],this._thumbnailModes=[{value:"",label:""},{value:"none",label:l("config.common.controls.thumbnails.modes.none")},{value:"above",label:l("config.common.controls.thumbnails.modes.above")},{value:"below",label:l("config.common.controls.thumbnails.modes.below")},{value:"left",label:l("config.common.controls.thumbnails.modes.left")},{value:"right",label:l("config.common.controls.thumbnails.modes.right")}],this._thumbnailMediaTypes=[{value:"",label:""},{value:"events",label:l("config.common.controls.thumbnails.media_types.events")},{value:"recordings",label:l("config.common.controls.thumbnails.media_types.recordings")}],this._thumbnailEventsMediaTypes=[{value:"",label:""},{value:"clips",label:l("config.common.controls.thumbnails.events_media_types.clips")},{value:"snapshots",label:l("config.common.controls.thumbnails.events_media_types.snapshots")}],this._transitionEffects=[{value:"",label:""},{value:"none",label:l("config.media_viewer.transition_effects.none")},{value:"slide",label:l("config.media_viewer.transition_effects.slide")}],this._imageModes=[{value:"",label:""},{value:"camera",label:l("config.common.image.modes.camera")},{value:"entity",label:l("config.common.image.modes.entity")},{value:"screensaver",label:l("config.common.image.modes.screensaver")},{value:"url",label:l("config.common.image.modes.url")}],this._timelineEventsMediaTypes=[{value:"",label:""},{value:"all",label:l("config.common.timeline.events_media_types.all")},{value:"clips",label:l("config.common.timeline.events_media_types.clips")},{value:"snapshots",label:l("config.common.timeline.events_media_types.snapshots")}],this._timelineStyleTypes=[{value:"",label:""},{value:"ribbon",label:l("config.common.timeline.styles.ribbon")},{value:"stack",label:l("config.common.timeline.styles.stack")}],this._darkModes=[{value:"",label:""},{value:"on",label:l("config.view.dark_modes.on")},{value:"off",label:l("config.view.dark_modes.off")},{value:"auto",label:l("config.view.dark_modes.auto")}],this._mediaActionNegativeConditions=[{value:"",label:""},{value:"unselected",label:l("config.common.media_action_conditions.unselected")},{value:"hidden",label:l("config.common.media_action_conditions.hidden")}],this._mediaActionPositiveConditions=[{value:"",label:""},{value:"selected",label:l("config.common.media_action_conditions.selected")},{value:"visible",label:l("config.common.media_action_conditions.visible")}],this._mediaLiveUnmuteConditions=[...this._mediaActionPositiveConditions,{value:"microphone",label:l("config.common.media_action_conditions.microphone_unmute")}],this._mediaLiveMuteConditions=[...this._mediaActionNegativeConditions,{value:"microphone",label:l("config.common.media_action_conditions.microphone_mute")}],this._layoutFits=[{value:"",label:""},{value:"contain",label:l("config.cameras.dimensions.layout.fits.contain")},{value:"cover",label:l("config.cameras.dimensions.layout.fits.cover")},{value:"fill",label:l("config.cameras.dimensions.layout.fits.fill")}],this._miniTimelineModes=[{value:"",label:""},{value:"none",label:l("config.common.controls.timeline.modes.none")},{value:"above",label:l("config.common.controls.timeline.modes.above")},{value:"below",label:l("config.common.controls.timeline.modes.below")}],this._profiles=[{value:"",label:""},{value:"casting",label:l("config.profiles.casting")},{value:"low-performance",label:l("config.profiles.low-performance")},{value:"scrubbing",label:l("config.profiles.scrubbing")}],this._go2rtcModes=[{value:"",label:""},{value:"mse",label:l("config.cameras.go2rtc.modes.mse")},{value:"webrtc",label:l("config.cameras.go2rtc.modes.webrtc")},{value:"mp4",label:l("config.cameras.go2rtc.modes.mp4")},{value:"mjpeg",label:l("config.cameras.go2rtc.modes.mjpeg")}],this._microphoneButtonTypes=[{value:"",label:""},{value:"momentary",label:l("config.menu.buttons.types.momentary")},{value:"toggle",label:l("config.menu.buttons.types.toggle")}],this._displayModes=[{value:"",label:""},{value:"single",label:l("display_modes.single")},{value:"grid",label:l("display_modes.grid")}],this._castMethods=[{value:"",label:""},{value:"standard",label:l("config.cameras.cast.methods.standard")},{value:"dashboard",label:l("config.cameras.cast.methods.dashboard")}],this._ptzModes=[{value:"",label:""},{value:"on",label:l("config.live.controls.ptz.modes.on")},{value:"off",label:l("config.live.controls.ptz.modes.off")}],this._ptzOrientations=[{value:"",label:""},{value:"vertical",label:l("config.live.controls.ptz.orientations.vertical")},{value:"horizontal",label:l("config.live.controls.ptz.orientations.horizontal")}],this._ptzPositions=[{value:"",label:""},{value:"top-left",label:l("config.live.controls.ptz.positions.top-left")},{value:"top-right",label:l("config.live.controls.ptz.positions.top-right")},{value:"bottom-left",label:l("config.live.controls.ptz.positions.bottom-left")},{value:"bottom-right",label:l("config.live.controls.ptz.positions.bottom-right")}],this._triggersActionsInteractionModes=[{value:"",label:""},{value:"all",label:l("config.view.triggers.actions.interaction_modes.all")},{value:"inactive",label:l("config.view.triggers.actions.interaction_modes.inactive")},{value:"active",label:l("config.view.triggers.actions.interaction_modes.active")}],this._triggersActionsTrigger=[{value:"",label:""},{value:"default",label:l("config.view.triggers.actions.triggers.default")},{value:"live",label:l("config.view.triggers.actions.triggers.live")},{value:"media",label:l("config.view.triggers.actions.triggers.media")},{value:"none",label:l("config.view.triggers.actions.triggers.none")}],this._triggersActionsUntrigger=[{value:"",label:""},{value:"default",label:l("config.view.triggers.actions.untriggers.default")},{value:"none",label:l("config.view.triggers.actions.untriggers.none")}],this._triggersEvents=[{value:"",label:""},{value:"events",label:l("config.cameras.triggers.events.events")},{value:"clips",label:l("config.cameras.triggers.events.clips")},{value:"snapshots",label:l("config.cameras.triggers.events.snapshots")}],this._timelinePanModes=[{value:"",label:""},{value:"pan",label:l("config.common.controls.timeline.pan_modes.pan")},{value:"seek",label:l("config.common.controls.timeline.pan_modes.seek")},{value:"seek-in-media",label:l("config.common.controls.timeline.pan_modes.seek-in-media")},{value:"seek-in-camera",label:l("config.common.controls.timeline.pan_modes.seek-in-camera")}],this._capabilities=[{value:"",label:""},{value:"live",label:l("config.cameras.capabilities.capabilities.live")},{value:"substream",label:l("config.cameras.capabilities.capabilities.substream")},{value:"clips",label:l("config.cameras.capabilities.capabilities.clips")},{value:"recordings",label:l("config.cameras.capabilities.capabilities.recordings")},{value:"snapshots",label:l("config.cameras.capabilities.capabilities.snapshots")},{value:"favorite-events",label:l("config.cameras.capabilities.capabilities.favorite-events")},{value:"favorite-recordings",label:l("config.cameras.capabilities.capabilities.favorite-recordings")},{value:"seek",label:l("config.cameras.capabilities.capabilities.seek")},{value:"ptz",label:l("config.cameras.capabilities.capabilities.ptz")},{value:"menu",label:l("config.cameras.capabilities.capabilities.menu")}],this._defaultResetInteractionModes=[{value:"",label:""},{value:"all",label:l("config.view.default_reset.interaction_modes.all")},{value:"inactive",label:l("config.view.default_reset.interaction_modes.inactive")},{value:"active",label:l("config.view.default_reset.interaction_modes.active")}],this._proxyMedia=[{value:"",label:""},{value:"auto",label:l("config.cameras.proxy.media.auto")},{value:!0,label:l("config.cameras.proxy.media.true")},{value:!1,label:l("config.cameras.proxy.media.false")}],this._proxySSLCiphers=[{value:"",label:""},{value:"auto",label:l("config.cameras.proxy.ssl_ciphers.auto")},{value:"default",label:l("config.cameras.proxy.ssl_ciphers.default")},{value:"insecure",label:l("config.cameras.proxy.ssl_ciphers.insecure")},{value:"intermediate",label:l("config.cameras.proxy.ssl_ciphers.intermediate")},{value:"modern",label:l("config.cameras.proxy.ssl_ciphers.modern")}],this._proxySSLVerification=[{value:"",label:""},{value:"auto",label:l("config.cameras.proxy.ssl_verification.auto")},{value:!0,label:l("config.cameras.proxy.ssl_verification.true")},{value:!1,label:l("config.cameras.proxy.ssl_verification.false")}],this._reolinkMediaResolution=[{value:"",label:""},{value:"high",label:l("config.cameras.reolink.media_resolution.high")},{value:"low",label:l("config.cameras.reolink.media_resolution.low")}],this._statusBarStyles=[{value:"",label:""},{value:"hover",label:l("config.status_bar.styles.hover")},{value:"hover-card",label:l("config.status_bar.styles.hover-card")},{value:"none",label:l("config.status_bar.styles.none")},{value:"outside",label:l("config.status_bar.styles.outside")},{value:"overlay",label:l("config.status_bar.styles.overlay")},{value:"popup",label:l("config.status_bar.styles.popup")}],this._statusBarPositions=[{value:"",label:""},{value:"top",label:l("config.status_bar.positions.top")},{value:"bottom",label:l("config.status_bar.positions.bottom")}]}setConfig(e){this._config=e,this._configUpgradeable=u(e);const a=h.safeParse(this._config.profiles);if(a.success){const e=m(di);_(this._config,e,a.data),this._defaults=e}}willUpdate(){this._initialized||g().then((e=>{e&&(this._initialized=!0)}))}_renderOptionSetHeader(e,a){const t=pi[e];return o` +
+
+ +
${t.name}
+
+
${t.secondary}
+
+ `}_getLabel(e){const a=e.split(".").filter((e=>!e.match(/^\[[0-9]+\]$/))).join(".");return l(`config.${a}`)}_renderEntitySelector(e,a){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_renderOptionSelector(e,a=[],t){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_renderIconSelector(e,a){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_renderNumberInput(e,a){if(!this._config)return;const t=b(this._config,e),i=void 0===a?.max?"box":"slider";return o` + this._valueChangedHandler(e,a)} + > + + `}_renderInfo(e){return o` ${e}`}_getEditorCameraTitle(e,a){return"string"==typeof a?.title&&a.title||("string"==typeof a?.camera_entity?p(this.hass,a.camera_entity):"")||"object"==typeof a?.webrtc_card&&a.webrtc_card&&"string"==typeof a.webrtc_card.entity&&a.webrtc_card.entity||("object"==typeof a?.frigate&&a.frigate&&"string"==typeof a?.frigate.camera_name&&a.frigate.camera_name?v(a.frigate.camera_name):"")||"string"==typeof a?.id&&a.id||l("editor.camera")+" #"+e}_renderViewDefaultResetMenu(){return this._putInSubmenu("view.default_reset",!0,`config.${f}.editor_label`,"mdi:restart",o` + ${this._renderSwitch($,this._defaults.view.default_reset.after_interaction)} + ${this._renderNumberInput(y)} + ${this._renderOptionSelector(w,this._defaultResetInteractionModes,{label:l("config.view.default_reset.interaction_mode")})}, + ${this._renderOptionSelector(S,this.hass?x(this.hass):[],{multiple:!0})} + `)}_renderViewTriggersMenu(){return this._putInSubmenu("view.triggers",!0,`config.${M}.editor_label`,"mdi:target-account",o` + ${this._renderSwitch(I,this._defaults.view.triggers.filter_selected_camera,{label:l(`config.${I}`)})} + ${this._renderSwitch(k,this._defaults.view.triggers.show_trigger_status,{label:l(`config.${k}`)})} + ${this._renderNumberInput(O,{default:this._defaults.view.triggers.untrigger_seconds})} + ${this._putInSubmenu("view.triggers.actions",!0,`config.${C}.editor_label`,"mdi:cogs",o` ${this._renderOptionSelector(z,this._triggersActionsTrigger,{label:l("config.view.triggers.actions.trigger")})} + ${this._renderOptionSelector(A,this._triggersActionsUntrigger,{label:l("config.view.triggers.actions.untrigger")})} + ${this._renderOptionSelector(N,this._triggersActionsInteractionModes,{label:l("config.view.triggers.actions.interaction_mode")})}`)} + `)}_renderKeyAssigner(e,a){return o` this._valueChangedHandler(e,a)} + >`}_renderViewKeyboardShortcutMenu(){return this._putInSubmenu("view.keyboard_shortcuts",!0,`config.${T}.editor_label`,"mdi:keyboard",o` + ${this._renderSwitch(B,this._defaults.view.keyboard_shortcuts.enabled,{label:l(`config.${B}`)})} + ${this._renderKeyAssigner(E,this._defaults.view.keyboard_shortcuts.ptz_left)} + ${this._renderKeyAssigner(P,this._defaults.view.keyboard_shortcuts.ptz_right)} + ${this._renderKeyAssigner(H,this._defaults.view.keyboard_shortcuts.ptz_up)} + ${this._renderKeyAssigner(L,this._defaults.view.keyboard_shortcuts.ptz_down)} + ${this._renderKeyAssigner(V,this._defaults.view.keyboard_shortcuts.ptz_zoom_in)} + ${this._renderKeyAssigner(K,this._defaults.view.keyboard_shortcuts.ptz_zoom_out)} + ${this._renderKeyAssigner(U,this._defaults.view.keyboard_shortcuts.ptz_home)} + `)}_renderStatusBarItem(e){return o` ${this._putInSubmenu("status_bar.items",e,`config.status_bar.items.${e}`,"mdi:feature-search",o` + ${this._renderSwitch(`${j}.${e}.enabled`,this._defaults.status_bar.items[e]?.enabled??!0,{label:l("config.status_bar.items.enabled")})} + ${this._renderNumberInput(`${j}.${e}.priority`,{max:q,default:this._defaults.status_bar.items[e]?.priority,label:l("config.status_bar.items.priority")})} + `)}`}_renderMenuButton(e,a){const t=[{value:"",label:""},{value:"matching",label:l("config.menu.buttons.alignments.matching")},{value:"opposing",label:l("config.menu.buttons.alignments.opposing")}];return o` ${this._putInSubmenu("menu.buttons",e,`config.menu.buttons.${e}`,"mdi:gesture-tap-button",o` + ${this._renderSwitch(`${R}.${e}.enabled`,this._defaults.menu.buttons[e]?.enabled??!0,{label:l("config.menu.buttons.enabled")})} + ${this._renderOptionSelector(`${R}.${e}.alignment`,t,{label:l("config.menu.buttons.alignment")})} + ${this._renderSwitch(`${R}.${e}.permanent`,this._defaults.menu.buttons[e]?.permanent??!1,{label:l("config.menu.buttons.permanent")})} + ${this._renderNumberInput(`${R}.${e}.priority`,{max:D,default:this._defaults.menu.buttons[e]?.priority,label:l("config.menu.buttons.priority")})} + ${this._renderIconSelector(`${R}.${e}.icon`,{label:l("config.menu.buttons.icon")})} + ${a} + `)}`}_putInSubmenu(e,a,t,i,n){const s=this._expandedMenus[e]===a,c={submenu:!0,selected:s},d=dt(i);return o`
+ + ${s?o`
${n}
`:""} +
`}_renderMediaLayout(e,a,t,i,n,s,r,c,d,m,u,h){return this._putInSubmenu(e,!0,a,"mdi:page-layout-body",o` + ${this._renderNumberInput(m,{min:0,max:10,label:l("config.cameras.dimensions.layout.zoom"),step:.1})} + ${this._renderNumberInput(u,{min:0,max:100,label:l("config.cameras.dimensions.layout.pan.x")})} + ${this._renderNumberInput(h,{min:0,max:100,label:l("config.cameras.dimensions.layout.pan.y")})} + ${this._renderOptionSelector(t,this._layoutFits,{label:l("config.cameras.dimensions.layout.fit")})} + ${this._putInSubmenu(`${e}.position`,!0,"config.cameras.dimensions.layout.position.editor_label","mdi:aspect-ratio",o` ${this._renderNumberInput(i,{min:0,max:100,label:l("config.cameras.dimensions.layout.position.x")})} + ${this._renderNumberInput(n,{min:0,max:100,label:l("config.cameras.dimensions.layout.position.y")})}`)} + ${this._putInSubmenu(`${e}.view_box`,!0,"config.cameras.dimensions.layout.view_box.editor_label","mdi:crop",o` + ${this._renderNumberInput(s,{min:0,max:100,label:l("config.cameras.dimensions.layout.view_box.top")})} + ${this._renderNumberInput(r,{min:0,max:100,label:l("config.cameras.dimensions.layout.view_box.bottom")})} + ${this._renderNumberInput(c,{min:0,max:100,label:l("config.cameras.dimensions.layout.view_box.left")})} + ${this._renderNumberInput(d,{min:0,max:100,label:l("config.cameras.dimensions.layout.view_box.right")})} + `)} + `)}_renderTimelineCoreControls(e,a,t,i,n,s,r){return o` + ${this._renderOptionSelector(e,this._timelineStyleTypes,{label:l(`config.common.${F}`)})} + ${r?this._renderOptionSelector(r,this._timelinePanModes,{label:l("config.common.controls.timeline.pan_mode")}):""} + ${this._renderNumberInput(a,{label:l(`config.common.${G}`)})} + ${this._renderNumberInput(t,{label:l(`config.common.${J}`)})} + ${this._renderOptionSelector(i,this._timelineEventsMediaTypes,{label:l(`config.common.${Q}`)})} + ${this._renderSwitch(n,s,{label:l(`config.common.${W}`)})} + `}_renderMiniTimeline(e,a,t,i,n,s,r,c,d){return this._putInSubmenu(e,!0,"config.common.controls.timeline.editor_label","mdi:chart-gantt",o` ${this._renderOptionSelector(a,this._miniTimelineModes,{label:l("config.common.controls.timeline.mode")})} + ${this._renderTimelineCoreControls(t,i,n,s,r,c,d)}`)}_renderViewDisplay(e,a,t,i,n){return this._putInSubmenu(e,!0,"config.common.display.editor_label","mdi:palette-swatch",o` + ${this._renderOptionSelector(a,this._displayModes,{label:l("config.common.display.mode")})} + ${this._renderNumberInput(t,{min:0,label:l("config.common.display.grid_selected_width_factor")})} + ${this._renderNumberInput(i,{min:0,label:l("config.common.display.grid_columns")})} + ${this._renderNumberInput(n,{min:0,label:l("config.common.display.grid_max_columns")})} + `)}_renderNextPreviousControls(e,a,t,i){return this._putInSubmenu(e,!0,"config.common.controls.next_previous.editor_label","mdi:arrow-right-bold-circle",o` + ${this._renderOptionSelector(a,this._nextPreviousControlStyles.filter((e=>!(!i?.allowThumbnails&&"thumbnails"===e.value||!i?.allowIcons&&"icons"===e.value))),{label:l("config.common.controls.next_previous.style")})} + ${this._renderNumberInput(t,{min:X,label:l("config.common.controls.next_previous.size")})} + `)}_renderThumbnailsControls(e,a,t,i,n,s,r,c){return this._putInSubmenu(e,!0,"config.common.controls.thumbnails.editor_label","mdi:image-text",o` + ${c?.configPathMode?o`${this._renderOptionSelector(c.configPathMode,this._thumbnailModes,{label:l("config.common.controls.thumbnails.mode")})}`:o``} + ${c?.configPathMediaType?o`${this._renderOptionSelector(c.configPathMediaType,this._thumbnailMediaTypes,{label:l("config.common.controls.thumbnails.media_type")})}`:o``} + ${c?.configPathEventsMediaType?o`${this._renderOptionSelector(c.configPathEventsMediaType,this._thumbnailEventsMediaTypes,{label:l("config.common.controls.thumbnails.events_media_type")})}`:o``} + ${this._renderNumberInput(a,{min:Y,max:Z,label:l("config.common.controls.thumbnails.size")})} + ${this._renderSwitch(t,r.show_details,{label:l("config.common.controls.thumbnails.show_details")})} + ${this._renderSwitch(i,r.show_favorite_control,{label:l("config.common.controls.thumbnails.show_favorite_control")})} + ${this._renderSwitch(n,r.show_timeline_control,{label:l("config.common.controls.thumbnails.show_timeline_control")})} + ${this._renderSwitch(s,r.show_download_control,{label:l("config.common.controls.thumbnails.show_download_control")})} + `)}_renderFilterControls(e,a){return this._putInSubmenu(e,!0,"config.common.controls.filter.editor_label","mdi:filter-cog",o` + ${a?o`${this._renderOptionSelector(a,this._filterModes,{label:l("config.common.controls.filter.mode")})}`:o``} + `)}_renderImageOptions(e,a,t,i,n){return o` + ${this._renderOptionSelector(e,this._imageModes,{label:l("config.common.image.mode")})} + ${this._renderStringInput(a,{label:l("config.common.image.url")})} + ${this._renderOptionSelector(t,this.hass?x(this.hass):[],{label:l("config.common.image.entity")})} + ${this._renderStringInput(i,{label:l("config.common.image.entity_parameters")})} + ${this._renderNumberInput(n,{label:l("config.common.image.refresh_seconds")})} + `}_renderCamera(e,a,t,i){const n=[{value:"",label:""},{value:"auto",label:l("config.cameras.live_providers.auto")},{value:"ha",label:l("config.cameras.live_providers.ha")},{value:"image",label:l("config.cameras.live_providers.image")},{value:"jsmpeg",label:l("config.cameras.live_providers.jsmpeg")},{value:"go2rtc",label:l("config.cameras.live_providers.go2rtc")},{value:"webrtc-card",label:l("config.cameras.live_providers.webrtc-card")}],s=[];e.forEach(((e,t)=>{t!==a&&s.push({value:ee(e),label:this._getEditorCameraTitle(t,e)})}));const c=e=>{if(this._config){const a=m(this._config);e(a)&&this._updateConfig(a)}},d={submenu:!0,selected:this._expandedMenus[gi]===a};return o` +
+ + ${this._expandedMenus[gi]===a?o`
+
+ !i&&c((e=>!!(Array.isArray(e.cameras)&&a>0)&&(mt(e.cameras,a,a-1),this._openMenu(gi,a-1),!0)))} + > + + + =this._config.cameras.length-1} + @click=${()=>!i&&c((e=>!!(Array.isArray(e.cameras)&&a + + + {c((e=>!!Array.isArray(e.cameras)&&(e.cameras.splice(a,1),this._closeMenu(gi),!0)))}} + > + + +
+ ${this._renderEntitySelector(ae(ut,a),"camera")} + ${this._renderOptionSelector(ae(ht,a),n)} + ${this._renderStringInput(ae(_t,a))} + ${this._renderIconSelector(ae(gt,a),{label:l("config.cameras.icon")})} + ${this._renderStringInput(ae(bt,a))} + ${this._putInSubmenu("cameras.engine",!0,"config.cameras.engines.editor_label","mdi:engine",o`${this._putInSubmenu("cameras.frigate",a,"config.cameras.frigate.editor_label","frigate",o` + ${this._renderStringInput(ae(pt,a))} + ${this._renderStringInput(ae(vt,a))} + ${this._renderOptionSelector(ae(ft,a),[],{multiple:!0,label:l("config.cameras.frigate.labels")})} + ${this._renderOptionSelector(ae($t,a),[],{multiple:!0,label:l("config.cameras.frigate.zones")})} + ${this._renderStringInput(ae(yt,a))} + `)} + ${this._putInSubmenu("cameras.motioneye",a,"config.cameras.motioneye.editor_label","motioneye",o` ${this._renderStringInput(ae(wt,a))} + ${this._renderStringInput(ae(St,a))} + ${this._renderStringInput(ae(xt,a))} + ${this._renderStringInput(ae(Mt,a))} + ${this._renderStringInput(ae(It,a))}`)} + ${this._putInSubmenu("cameras.reolink",a,"config.cameras.reolink.editor_label","reolink",o` ${this._renderStringInput(ae(kt,a))} + ${this._renderOptionSelector(ae(Ot,a),this._reolinkMediaResolution,{label:l("config.cameras.reolink.media_resolution.editor_label")})}`)}`)} + ${this._putInSubmenu("cameras.live_provider",!0,"config.cameras.live_provider_options.editor_label","mdi:cctv",o` ${this._putInSubmenu("cameras.go2rtc",a,"config.cameras.go2rtc.editor_label","mdi:alpha-g-circle",o`${this._renderOptionSelector(ae(Ct,a),this._go2rtcModes,{multiple:!0,label:l("config.cameras.go2rtc.modes.editor_label")})} + ${this._renderStringInput(ae(zt,a))}`)} + ${this._putInSubmenu("cameras.image",!0,"config.cameras.image.editor_label","mdi:image",this._renderImageOptions(ae(At,a),ae(Nt,a),ae(Tt,a),ae(Bt,a),ae(Et,a)))} + ${this._putInSubmenu("cameras.webrtc_card",a,"config.cameras.webrtc_card.editor_label","mdi:webrtc",o`${this._renderEntitySelector(ae(Pt,a),"camera")} + ${this._renderStringInput(ae(Ht,a))}`)}`)} + ${this._putInSubmenu("cameras.dependencies",a,"config.cameras.dependencies.editor_label","mdi:graph",o` ${this._renderSwitch(ae(Lt,a),this._defaults.cameras.dependencies.all_cameras)} + ${this._renderOptionSelector(ae(Vt,a),s,{multiple:!0})}`)} + ${this._putInSubmenu("cameras.triggers",a,"config.cameras.triggers.editor_label","mdi:magnify-scan",o` + ${this._renderSwitch(ae(Kt,a),this._defaults.cameras.triggers.occupancy)} + ${this._renderSwitch(ae(Ut,a),this._defaults.cameras.triggers.motion)} + ${this._renderOptionSelector(ae(jt,a),t,{multiple:!0})} + ${this._renderOptionSelector(ae(qt,a),this._triggersEvents,{multiple:!0,label:l("config.cameras.triggers.events.editor_label")})} + `)} + ${this._putInSubmenu("cameras.cast",a,"config.cameras.cast.editor_label","mdi:cast",o` + ${this._renderOptionSelector(ae(Rt,a),this._castMethods)} + ${this._renderStringInput(ae(Dt,a))} + ${this._renderStringInput(ae(Ft,a))} + `)} + ${this._putInSubmenu("cameras.dimensions",a,"config.cameras.dimensions.editor_label","mdi:aspect-ratio",o` + ${this._renderStringInput(ae(Gt,a))} + ${this._renderMediaLayout("cameras.dimensions.layout","config.cameras.dimensions.layout.editor_label",ae(Jt,a),ae(Qt,a),ae(Wt,a),ae(Xt,a),ae(Yt,a),ae(Zt,a),ae(ei,a),ae(ai,a),ae(ti,a),ae(ii,a))} + `)} + ${this._putInSubmenu("cameras.capabilities",a,"config.cameras.capabilities.editor_label","mdi:cog-stop",o` + ${this._renderOptionSelector(ae(ni,a),this._capabilities,{multiple:!0})} + ${this._renderOptionSelector(ae(si,a),this._capabilities,{multiple:!0})} + `)} + ${this._putInSubmenu("cameras.proxy",a,"config.cameras.proxy.editor_label","mdi:arrow-decision",o` + ${this._renderOptionSelector(ae(oi,a),this._proxyMedia,{label:l("config.cameras.proxy.media.editor_label")})} + ${this._renderSwitch(ae(ri,a),this._defaults.cameras.proxy.dynamic)} + ${this._renderOptionSelector(ae(li,a),this._proxySSLVerification,{label:l("config.cameras.proxy.ssl_verification.editor_label")})} + ${this._renderOptionSelector(ae(ci,a),this._proxySSLCiphers,{label:l("config.cameras.proxy.ssl_ciphers.editor_label")})} + `)} +
`:""} +
+ `}_renderStringInput(e,a){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_renderSwitch(e,a,t){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_updateConfig(e){this._config=e,te(this,"config-changed",{config:this._config})}render(){if(!this.hass||!this._config)return o``;const e=x(this.hass),a=b(this._config,mi)||[];return o` + ${this._configUpgradeable?o`
+ ${l("editor.upgrade_available")} + + {if(this._config){const e=m(this._config);ie(e),this._updateConfig(e)}}} + > + + +
+
`:o``} +
+ ${this._renderOptionSetHeader("cameras")} + ${"cameras"===this._expandedMenus[bi]?o` +
+ ${a.map(((t,i)=>this._renderCamera(a,i,e)))} + ${this._renderCamera(a,a.length,e,!0)} +
+ `:""} + ${this._renderOptionSetHeader("profiles")} + ${"profiles"===this._expandedMenus[bi]?o`
+ ${this._renderOptionSelector(ne,this._profiles,{multiple:!0,label:l("config.profiles.editor_label")})} +
`:""} + ${this._renderOptionSetHeader("view")} + ${"view"===this._expandedMenus[bi]?o` +
+ ${this._renderOptionSelector(se,this._viewModes)} + ${this._renderOptionSelector(oe,this._cameraSelectViewModes)} + ${this._renderOptionSelector(re,this._darkModes)} + ${this._renderNumberInput(le)} + ${this._renderSwitch(ce,this._defaults.view.default_cycle_camera)} + ${this._renderViewDefaultResetMenu()} ${this._renderViewTriggersMenu()} + ${this._renderViewKeyboardShortcutMenu()} +
+ `:""} + ${this._renderOptionSetHeader("menu")} + ${"menu"===this._expandedMenus[bi]?o` +
+ ${this._renderOptionSelector(de,this._menuStyles)} + ${this._renderOptionSelector(me,this._menuPositions)} + ${this._renderOptionSelector(ue,this._menuAlignments)} + ${this._renderNumberInput(he,{min:X})} + ${this._renderMenuButton("frigate")} + ${this._renderMenuButton("cameras")} + ${this._renderMenuButton("substreams")} + ${this._renderMenuButton("live")} + ${this._renderMenuButton("clips")} + ${this._renderMenuButton("snapshots")} + ${this._renderMenuButton("recordings")} + ${this._renderMenuButton("image")} + ${this._renderMenuButton("download")} + ${this._renderMenuButton("camera_ui")} + ${this._renderMenuButton("fullscreen")} + ${this._renderMenuButton("expand")} + ${this._renderMenuButton("timeline")} + ${this._renderMenuButton("media_player")} + ${this._renderMenuButton("microphone",o`${this._renderOptionSelector(`${R}.microphone.type`,this._microphoneButtonTypes,{label:l("config.menu.buttons.type")})}`)} + ${this._renderMenuButton("play")} + ${this._renderMenuButton("mute")} + ${this._renderMenuButton("screenshot")} + ${this._renderMenuButton("display_mode")} + ${this._renderMenuButton("ptz_controls")} + ${this._renderMenuButton("ptz_home")} +
+ `:""} + ${this._renderOptionSetHeader("status_bar")} + ${"status_bar"===this._expandedMenus[bi]?o` +
+ ${this._renderOptionSelector(_e,this._statusBarStyles)} + ${this._renderOptionSelector(ge,this._statusBarPositions)} + ${this._renderNumberInput(be,{min:pe,label:l("config.status_bar.height")})} + ${this._renderNumberInput(ve,{min:0,max:60,default:this._defaults.status_bar.popup_seconds,label:l("config.status_bar.popup_seconds")})} + ${this._renderStatusBarItem("title")} + ${this._renderStatusBarItem("resolution")} + ${this._renderStatusBarItem("technology")} + ${this._renderStatusBarItem("engine")} +
+ `:""} + ${this._renderOptionSetHeader("live")} + ${"live"===this._expandedMenus[bi]?o` +
+ ${this._renderSwitch(fe,this._defaults.live.preload)} + ${this._renderSwitch($e,this._defaults.live.draggable)} + ${this._renderSwitch(ye,this._defaults.live.zoomable)} + ${this._renderSwitch(we,this._defaults.live.lazy_load)} + ${this._renderOptionSelector(Se,this._mediaActionNegativeConditions,{multiple:!0})} + ${this._renderOptionSelector(xe,this._mediaActionPositiveConditions,{multiple:!0})} + ${this._renderOptionSelector(Me,this._mediaActionNegativeConditions,{multiple:!0})} + ${this._renderOptionSelector(Ie,this._mediaLiveMuteConditions,{multiple:!0})} + ${this._renderOptionSelector(ke,this._mediaLiveUnmuteConditions,{multiple:!0})} + ${this._renderOptionSelector(Oe,this._transitionEffects)} + ${this._renderSwitch(Ce,this._defaults.live.show_image_during_load)} + ${this._renderViewDisplay("live.display",ze,Ae,Ne,Te)} + ${this._putInSubmenu("live.controls",!0,"config.live.controls.editor_label","mdi:gamepad",o` + ${this._renderSwitch(Be,this._defaults.live.controls.builtin,{label:l("config.common.controls.builtin")})} + ${this._renderNextPreviousControls("live.controls.next_previous",Ee,Pe,{allowIcons:!0})} + ${this._renderThumbnailsControls("live.controls.thumbnails",He,Le,Ve,Ke,Ue,this._defaults.live.controls.thumbnails,{configPathMediaType:je,configPathEventsMediaType:qe,configPathMode:Re})} + ${this._renderMiniTimeline("live.controls.timeline",De,Fe,Ge,Je,Qe,We,this._defaults.live.controls.timeline.show_recordings,Xe)} + ${this._putInSubmenu("live.controls.ptz",!0,"config.live.controls.ptz.editor_label","mdi:pan",o` + ${this._renderOptionSelector(Ye,this._ptzModes)} + ${this._renderOptionSelector(Ze,this._ptzPositions)} + ${this._renderOptionSelector(ea,this._ptzOrientations)} + ${this._renderSwitch(aa,this._defaults.live.controls.ptz.hide_pan_tilt,{label:l("config.live.controls.ptz.hide_pan_tilt")})} + ${this._renderSwitch(ta,this._defaults.live.controls.ptz.hide_pan_tilt,{label:l("config.live.controls.ptz.hide_zoom")})} + ${this._renderSwitch(ia,this._defaults.live.controls.ptz.hide_home,{label:l("config.live.controls.ptz.hide_home")})} + `)} + `)} + ${this._putInSubmenu("live.microphone",!0,"config.live.microphone.editor_label","mdi:microphone",o` + ${this._renderNumberInput(na)} + ${this._renderSwitch(sa,this._defaults.live.microphone.always_connected)} + ${this._renderNumberInput(oa)} + `)} +
+ `:""} + ${this._renderOptionSetHeader("media_gallery")} + ${"media_gallery"===this._expandedMenus[bi]?o`
+ ${this._renderThumbnailsControls("media_gallery.controls.thumbnails",ra,la,ca,da,ma,this._defaults.media_gallery.controls.thumbnails)} + ${this._renderFilterControls("media_gallery.controls.filter",ua)} +
`:""} + ${this._renderOptionSetHeader("media_viewer")} + ${"media_viewer"===this._expandedMenus[bi]?o`
+ ${this._renderOptionSelector(ha,this._mediaActionPositiveConditions,{multiple:!0})} + ${this._renderOptionSelector(_a,this._mediaActionNegativeConditions,{multiple:!0})} + ${this._renderOptionSelector(ga,this._mediaActionNegativeConditions,{multiple:!0})} + ${this._renderOptionSelector(ba,this._mediaActionPositiveConditions,{multiple:!0})} + ${this._renderSwitch(pa,this._defaults.media_viewer.draggable)} + ${this._renderSwitch(va,this._defaults.media_viewer.zoomable)} + ${this._renderSwitch(fa,this._defaults.media_viewer.lazy_load)} + ${this._renderOptionSelector($a,this._transitionEffects)} + ${this._renderSwitch(ya,this._defaults.media_viewer.snapshot_click_plays_clip)} + ${this._renderViewDisplay("media_viewer.display",wa,Sa,xa,Ma)} + ${this._putInSubmenu("media_viewer.controls",!0,"config.media_viewer.controls.editor_label","mdi:gamepad",o` + ${this._renderSwitch(Ia,this._defaults.media_viewer.controls.builtin,{label:l("config.common.controls.builtin")})} + ${this._renderNextPreviousControls("media_viewer.controls.next_previous",ka,Oa,{allowThumbnails:!0})} + ${this._renderThumbnailsControls("media_viewer.controls.thumbnails",Ca,za,Aa,Na,Ta,this._defaults.media_viewer.controls.thumbnails,{configPathMode:Ba})} + ${this._renderMiniTimeline("media_viewer.controls.timeline",Ea,Pa,Ha,La,Va,Ka,this._defaults.media_viewer.controls.timeline.show_recordings,Ua)} + `)} +
`:""} + ${this._renderOptionSetHeader("image")} + ${"image"===this._expandedMenus[bi]?o`
+ ${this._renderImageOptions(ja,qa,Ra,Da,Fa)} +
`:""} + ${this._renderOptionSetHeader("timeline")} + ${"timeline"===this._expandedMenus[bi]?o`
+ ${this._renderTimelineCoreControls(F,G,J,Q,W,this._defaults.timeline.show_recordings)} + ${this._renderThumbnailsControls("timeline.controls.thumbnails",Ga,Ja,Qa,Wa,Xa,this._defaults.timeline.controls.thumbnails,{configPathMode:Ya})} +
`:""} + ${this._renderOptionSetHeader("dimensions")} + ${"dimensions"===this._expandedMenus[bi]?o`
+ ${this._renderOptionSelector(Za,this._aspectRatioModes)} + ${this._renderStringInput(et)} + ${this._renderStringInput(at)} +
`:""} + ${this._renderOptionSetHeader("performance","low"===b(this._config,ui)?"warning":void 0)} + ${"performance"===this._expandedMenus[bi]?o`
+ ${"low"===b(this._config,ui)?this._renderInfo(l("config.performance.warning")):o``} + ${this._putInSubmenu("performance.features",!0,"config.performance.features.editor_label","mdi:feature-search",o` + ${this._renderSwitch(tt,this._defaults.performance.features.animated_progress_indicator)} + ${this._renderNumberInput(it,{max:nt})} + ${this._renderNumberInput(st,{min:1})} + `)} + ${this._putInSubmenu("performance.style",!0,"config.performance.style.editor_label","mdi:palette-swatch-variant",o` + ${this._renderSwitch(ot,this._defaults.performance.style.border_radius)} + ${this._renderSwitch(rt,this._defaults.performance.style.box_shadow)} + `)} +
`:""} + ${void 0!==this._config.overrides?o` ${this._renderOptionSetHeader("overrides")} + ${"overrides"===this._expandedMenus[bi]?o`
+ ${this._renderInfo(l("config.overrides.info"))} +
`:""}`:o``} +
+ `}_closeMenu(e){delete this._expandedMenus[e],this.requestUpdate()}_openMenu(e,a){this._expandedMenus[e]=a,this.requestUpdate()}_toggleMenu(e){if(e&&e.target){const a=e.target.domain,t=e.target.key;this._expandedMenus[a]===t?this._closeMenu(a):this._openMenu(a,t)}}_valueChangedHandler(e,a){if(!this._config||!this.hass)return;let t;if(a.detail&&void 0!==a.detail.value&&(t=a.detail.value,"string"==typeof t&&(t=t.trim())),b(this._config,e)===t)return;const i=m(this._config);""===t||void 0===t?lt(i,e):ct(i,e,t),this._updateConfig(i)}static get styles(){return c('ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n.option {\n padding: 4px 4px;\n cursor: pointer;\n}\n\n.option.option-overrides .title {\n color: var(--warning-color);\n}\n\n.row {\n display: flex;\n margin-bottom: -14px;\n pointer-events: none;\n}\n\n.title {\n padding-left: 16px;\n margin-top: -6px;\n pointer-events: none;\n}\n\n.title.warning {\n color: var(--warning-color);\n}\n\n.secondary {\n padding-left: 40px;\n color: var(--secondary-text-color);\n pointer-events: none;\n}\n\n.values {\n background: var(--secondary-background-color);\n display: grid;\n}\n\n.values + .option,\n.submenu + .option {\n margin-top: 10px;\n}\n\ndiv.upgrade {\n width: auto;\n border: 1px dotted var(--primary-color);\n margin: 10px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\ndiv.upgrade span {\n padding: 10px;\n}\n\n.submenu-header {\n display: flex;\n padding: 10px;\n cursor: pointer;\n}\n\n.submenu.selected > .submenu-header {\n background-color: var(--primary-color);\n color: var(--primary-text-color);\n}\n\n.submenu-header * {\n flex-basis: auto;\n pointer-events: none;\n}\n\n.submenu-header .new-camera {\n font-style: italic;\n}\n\n.submenu:not(.selected) > .submenu-header .new-camera {\n color: var(--secondary-text-color, "black");\n}\n\n.submenu-header ha-icon,\n.submenu-header img {\n padding-right: 15px;\n}\n\n.submenu.selected {\n border: 1px solid var(--primary-color);\n}\n\n.submenu {\n width: calc(100% - 20px);\n margin-left: auto;\n margin-right: auto;\n margin-bottom: 10px;\n}\n\n.submenu:first-child,\n:not(.submenu) + .submenu {\n margin-top: 10px;\n}\n\n.submenu .controls {\n display: inline-block;\n margin-left: auto;\n margin-right: 0px;\n margin-bottom: 5px;\n}\n\n.submenu .controls ha-icon-button.button {\n --mdc-icon-button-size: 32px;\n --mdc-icon-size: calc(var(--mdc-icon-button-size) / 2);\n}\n\nspan.info {\n padding: 10px;\n}\n\nha-selector {\n padding: 10px;\n border: 1px solid var(--divider-color);\n}')}};t([i({attribute:!1})],vi.prototype,"hass",void 0),t([d()],vi.prototype,"_config",void 0),t([d()],vi.prototype,"_defaults",void 0),t([d()],vi.prototype,"_expandedMenus",void 0),vi=t([n("frigate-card-editor")],vi);export{vi as FrigateCardEditor}; diff --git a/config/www/community/frigate-hass-card/editor-c3e576d8.js.gz b/config/www/community/frigate-hass-card/editor-c3e576d8.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..8dc7cbdfa7bdbdc22ca755d0645974b1d92804de GIT binary patch literal 11531 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 VF&A$T`ab;y#Nw_#l$-$o{{z2FSegI; literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/editor-ce460dd0.js b/config/www/community/frigate-hass-card/editor-ce460dd0.js new file mode 100644 index 00000000..74131d68 --- /dev/null +++ b/config/www/community/frigate-hass-card/editor-ce460dd0.js @@ -0,0 +1,462 @@ +import{i as e,s as a,_ as t,n as i,t as n,a as s,x as o,e as r,l,r as c,b as d,c as m,d as u,p as h,f as _,g,h as b,j as p,k as v,C as f,m as $,o as y,q as w,u as S,v as x,w as M,y as I,z as k,A as O,B as C,D as z,E as A,F as N,G as T,H as B,I as E,J as P,K as H,L,M as V,N as K,O as U,P as j,Q as q,R,S as D,T as F,U as G,V as J,W as Q,X as W,Y as X,Z as Y,$ as Z,a0 as ee,a1 as ae,a2 as te,a3 as ie,a4 as ne,a5 as se,a6 as oe,a7 as re,a8 as le,a9 as ce,aa as de,ab as me,ac as ue,ad as he,ae as _e,af as ge,ag as be,ah as pe,ai as ve,aj as fe,ak as $e,al as ye,am as we,an as Se,ao as xe,ap as Me,aq as Ie,ar as ke,as as Oe,at as Ce,au as ze,av as Ae,aw as Ne,ax as Te,ay as Be,az as Ee,aA as Pe,aB as He,aC as Le,aD as Ve,aE as Ke,aF as Ue,aG as je,aH as qe,aI as Re,aJ as De,aK as Fe,aL as Ge,aM as Je,aN as Qe,aO as We,aP as Xe,aQ as Ye,aR as Ze,aS as ea,aT as aa,aU as ta,aV as ia,aW as na,aX as sa,aY as oa,aZ as ra,a_ as la,a$ as ca,b0 as da,b1 as ma,b2 as ua,b3 as ha,b4 as _a,b5 as ga,b6 as ba,b7 as pa,b8 as va,b9 as fa,ba as $a,bb as ya,bc as wa,bd as Sa,be as xa,bf as Ma,bg as Ia,bh as ka,bi as Oa,bj as Ca,bk as za,bl as Aa,bm as Na,bn as Ta,bo as Ba,bp as Ea,bq as Pa,br as Ha,bs as La,bt as Va,bu as Ka,bv as Ua,bw as ja,bx as qa,by as Ra,bz as Da,bA as Fa,bB as Ga,bC as Ja,bD as Qa,bE as Wa,bF as Xa,bG as Ya,bH as Za,bI as et,bJ as at,bK as tt,bL as it,bM as nt,bN as st,bO as ot,bP as rt,bQ as lt,bR as ct,bS as dt,bT as mt,bU as ut,bV as ht,bW as _t,bX as gt,bY as bt,bZ as pt,b_ as vt,b$ as ft,c0 as $t,c1 as yt,c2 as wt,c3 as St,c4 as xt,c5 as Mt,c6 as It,c7 as kt,c8 as Ot,c9 as Ct,ca as zt,cb as At,cc as Nt,cd as Tt,ce as Bt,cf as Et,cg as Pt,ch as Ht,ci as Lt,cj as Vt,ck as Kt,cl as Ut,cm as jt,cn as qt,co as Rt,cp as Dt,cq as Ft,cr as Gt,cs as Jt,ct as Qt,cu as Wt,cv as Xt,cw as Yt,cx as Zt,cy as ei,cz as ai,cA as ti,cB as ii,cC as ni,cD as si,cE as oi,cF as ri,cG as li,cH as ci,cI as di,cJ as mi,cK as ui}from"./card-7cd05290.js";class hi{constructor(e){this._assigning=!1,this._value=null,this._blurEventHandler=()=>{this._setAssigning(!1)},this._keydownEventHandler=e=>{e.key&&!["Control","Alt","Shift","Meta"].includes(e.key)&&(this.setValue({key:e.key,ctrl:e.ctrlKey,alt:e.altKey,shift:e.shiftKey,meta:e.metaKey}),this._setAssigning(!1))},this._host=e,this._host.addController(this)}setValue(a){e(a,this._value)||(this._value=a,this._host.requestUpdate(),this._host.dispatchEvent(new CustomEvent("value-changed",{detail:{value:this._value}})))}getValue(){return this._value}hasValue(){return!!this._value}isAssigning(){return this._assigning}toggleAssigning(){this._setAssigning(!this._assigning)}_setAssigning(e){this._assigning=e,a(this._host,this._assigning,"assigning"),this._assigning?this._host.addEventListener("keydown",this._keydownEventHandler):this._host.removeEventListener("keydown",this._keydownEventHandler),this._host.requestUpdate()}hostConnected(){this._host.addEventListener("blur",this._blurEventHandler)}hostDisconnected(){this._host.removeEventListener("blur",this._blurEventHandler)}}let _i=class extends s{constructor(){super(...arguments),this._controller=new hi(this)}willUpdate(e){e.has("value")&&this._controller.setValue(this.value??null)}render(){if(!this.label)return;const e=e=>o`
+
${e}
+
`;return o` +
${this.label}
+ {this._controller.toggleAssigning()}} + > + + + ${this._controller.isAssigning()?l("key_assigner.assigning"):l("key_assigner.assign")} + + + ${this._controller.hasValue()?o`{this._controller.setValue(null)}} + > + + ${l("key_assigner.unassign")} + `:""} +
+ ${this.value?.ctrl?e(l("key_assigner.modifiers.ctrl")):""} + ${this.value?.shift?e(l("key_assigner.modifiers.shift")):""} + ${this.value?.meta?e(l("key_assigner.modifiers.meta")):""} + ${this.value?.alt?e(l("key_assigner.modifiers.alt")):""} + ${this.value?.key?e(this.value.key):""} +
+ `}static get styles(){return c('.dotdotdot:after {\n animation: dots 2s linear infinite;\n content: "";\n display: inline-block;\n width: 3em;\n}\n@keyframes dots {\n 0%, 20% {\n content: ".";\n }\n 40% {\n content: "..";\n }\n 60% {\n content: "...";\n }\n 90%, 100% {\n content: "";\n }\n}\n\n:host {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 10px;\n height: 56px;\n border: 1px solid var(--divider-color);\n}\n\n:host([assigning]) ha-button.assign span,\n:host([assigning]) ha-button.assign ha-icon {\n color: var(--warning-color);\n}\n\nha-icon {\n padding: 10px;\n}\n\ndiv.label {\n width: 100px;\n margin-left: 4px;\n}\n\ndiv.key-row {\n flex: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n padding-left: 10px;\n padding-right: 10px;\n}\n\ndiv.key {\n display: flex;\n align-items: center;\n height: 90%;\n width: min-content;\n margin-left: 5px;\n margin-right: 5px;\n}\n\ndiv.key-inner {\n height: 100%;\n width: 100%;\n padding-top: 2px;\n padding-bottom: 2px;\n padding-left: 4px;\n padding-right: 4px;\n border: 2px;\n border-radius: 4px;\n border-style: outset;\n border-color: var(--divider-color);\n font-family: monospace;\n text-transform: capitalize;\n}\n\ndiv.unassigned {\n font-style: italic;\n}\n\ndiv.key + div.key:before {\n display: flex;\n align-items: center;\n margin-right: 5px;\n content: " + ";\n}')}};t([i({attribute:!1})],_i.prototype,"label",void 0),t([i({attribute:!1})],_i.prototype,"value",void 0),_i=t([n("frigate-card-key-assigner")],_i);const gi="cameras",bi="options",pi={cameras:{icon:"video",name:l("editor.cameras"),secondary:l("editor.cameras_secondary")},view:{icon:"eye",name:l("editor.view"),secondary:l("editor.view_secondary")},menu:{icon:"menu",name:l("editor.menu"),secondary:l("editor.menu_secondary")},status_bar:{icon:"sign-text",name:l("editor.status_bar"),secondary:l("editor.status_bar_secondary")},live:{icon:"cctv",name:l("editor.live"),secondary:l("editor.live_secondary")},media_gallery:{icon:"grid",name:l("editor.media_gallery"),secondary:l("editor.media_gallery_secondary")},media_viewer:{icon:"filmstrip",name:l("editor.media_viewer"),secondary:l("editor.media_viewer_secondary")},image:{icon:"image",name:l("editor.image"),secondary:l("editor.image_secondary")},timeline:{icon:"chart-gantt",name:l("editor.timeline"),secondary:l("editor.timeline_secondary")},dimensions:{icon:"aspect-ratio",name:l("editor.dimensions"),secondary:l("editor.dimensions_secondary")},performance:{icon:"speedometer",name:l("editor.performance"),secondary:l("editor.performance_secondary")},profiles:{icon:"folder-wrench-outline",name:l("editor.profiles"),secondary:l("editor.profiles_secondary")},overrides:{icon:"file-replace",name:l("editor.overrides"),secondary:l("editor.overrides_secondary")}};let vi=class extends s{constructor(){super(...arguments),this._defaults=m(di),this._initialized=!1,this._configUpgradeable=!1,this._expandedMenus={},this._viewModes=[{value:"",label:""},{value:"live",label:l("config.view.views.live")},{value:"clips",label:l("config.view.views.clips")},{value:"snapshots",label:l("config.view.views.snapshots")},{value:"recordings",label:l("config.view.views.recordings")},{value:"clip",label:l("config.view.views.clip")},{value:"snapshot",label:l("config.view.views.snapshot")},{value:"recording",label:l("config.view.views.recording")},{value:"image",label:l("config.view.views.image")},{value:"timeline",label:l("config.view.views.timeline")}],this._cameraSelectViewModes=[...this._viewModes,{value:"current",label:l("config.view.views.current")}],this._filterModes=[{value:"",label:""},{value:"none",label:l("config.common.controls.filter.modes.none")},{value:"left",label:l("config.common.controls.filter.modes.left")},{value:"right",label:l("config.common.controls.filter.modes.right")}],this._menuStyles=[{value:"",label:""},{value:"none",label:l("config.menu.styles.none")},{value:"hidden",label:l("config.menu.styles.hidden")},{value:"overlay",label:l("config.menu.styles.overlay")},{value:"hover",label:l("config.menu.styles.hover")},{value:"hover-card",label:l("config.menu.styles.hover-card")},{value:"outside",label:l("config.menu.styles.outside")}],this._menuPositions=[{value:"",label:""},{value:"left",label:l("config.menu.positions.left")},{value:"right",label:l("config.menu.positions.right")},{value:"top",label:l("config.menu.positions.top")},{value:"bottom",label:l("config.menu.positions.bottom")}],this._menuAlignments=[{value:"",label:""},{value:"left",label:l("config.menu.alignments.left")},{value:"right",label:l("config.menu.alignments.right")},{value:"top",label:l("config.menu.alignments.top")},{value:"bottom",label:l("config.menu.alignments.bottom")}],this._nextPreviousControlStyles=[{value:"",label:""},{value:"chevrons",label:l("config.common.controls.next_previous.styles.chevrons")},{value:"icons",label:l("config.common.controls.next_previous.styles.icons")},{value:"none",label:l("config.common.controls.next_previous.styles.none")},{value:"thumbnails",label:l("config.common.controls.next_previous.styles.thumbnails")}],this._aspectRatioModes=[{value:"",label:""},{value:"dynamic",label:l("config.dimensions.aspect_ratio_modes.dynamic")},{value:"static",label:l("config.dimensions.aspect_ratio_modes.static")},{value:"unconstrained",label:l("config.dimensions.aspect_ratio_modes.unconstrained")}],this._thumbnailModes=[{value:"",label:""},{value:"none",label:l("config.common.controls.thumbnails.modes.none")},{value:"above",label:l("config.common.controls.thumbnails.modes.above")},{value:"below",label:l("config.common.controls.thumbnails.modes.below")},{value:"left",label:l("config.common.controls.thumbnails.modes.left")},{value:"right",label:l("config.common.controls.thumbnails.modes.right")}],this._thumbnailMediaTypes=[{value:"",label:""},{value:"events",label:l("config.common.controls.thumbnails.media_types.events")},{value:"recordings",label:l("config.common.controls.thumbnails.media_types.recordings")}],this._thumbnailEventsMediaTypes=[{value:"",label:""},{value:"clips",label:l("config.common.controls.thumbnails.events_media_types.clips")},{value:"snapshots",label:l("config.common.controls.thumbnails.events_media_types.snapshots")}],this._transitionEffects=[{value:"",label:""},{value:"none",label:l("config.media_viewer.transition_effects.none")},{value:"slide",label:l("config.media_viewer.transition_effects.slide")}],this._imageModes=[{value:"",label:""},{value:"camera",label:l("config.common.image.modes.camera")},{value:"entity",label:l("config.common.image.modes.entity")},{value:"screensaver",label:l("config.common.image.modes.screensaver")},{value:"url",label:l("config.common.image.modes.url")}],this._timelineEventsMediaTypes=[{value:"",label:""},{value:"all",label:l("config.common.timeline.events_media_types.all")},{value:"clips",label:l("config.common.timeline.events_media_types.clips")},{value:"snapshots",label:l("config.common.timeline.events_media_types.snapshots")}],this._timelineStyleTypes=[{value:"",label:""},{value:"ribbon",label:l("config.common.timeline.styles.ribbon")},{value:"stack",label:l("config.common.timeline.styles.stack")}],this._darkModes=[{value:"",label:""},{value:"on",label:l("config.view.dark_modes.on")},{value:"off",label:l("config.view.dark_modes.off")},{value:"auto",label:l("config.view.dark_modes.auto")}],this._mediaActionNegativeConditions=[{value:"",label:""},{value:"unselected",label:l("config.common.media_action_conditions.unselected")},{value:"hidden",label:l("config.common.media_action_conditions.hidden")}],this._mediaActionPositiveConditions=[{value:"",label:""},{value:"selected",label:l("config.common.media_action_conditions.selected")},{value:"visible",label:l("config.common.media_action_conditions.visible")}],this._mediaLiveUnmuteConditions=[...this._mediaActionPositiveConditions,{value:"microphone",label:l("config.common.media_action_conditions.microphone_unmute")}],this._mediaLiveMuteConditions=[...this._mediaActionNegativeConditions,{value:"microphone",label:l("config.common.media_action_conditions.microphone_mute")}],this._layoutFits=[{value:"",label:""},{value:"contain",label:l("config.cameras.dimensions.layout.fits.contain")},{value:"cover",label:l("config.cameras.dimensions.layout.fits.cover")},{value:"fill",label:l("config.cameras.dimensions.layout.fits.fill")}],this._miniTimelineModes=[{value:"",label:""},{value:"none",label:l("config.common.controls.timeline.modes.none")},{value:"above",label:l("config.common.controls.timeline.modes.above")},{value:"below",label:l("config.common.controls.timeline.modes.below")}],this._profiles=[{value:"",label:""},{value:"casting",label:l("config.profiles.casting")},{value:"low-performance",label:l("config.profiles.low-performance")},{value:"scrubbing",label:l("config.profiles.scrubbing")}],this._go2rtcModes=[{value:"",label:""},{value:"mse",label:l("config.cameras.go2rtc.modes.mse")},{value:"webrtc",label:l("config.cameras.go2rtc.modes.webrtc")},{value:"mp4",label:l("config.cameras.go2rtc.modes.mp4")},{value:"mjpeg",label:l("config.cameras.go2rtc.modes.mjpeg")}],this._microphoneButtonTypes=[{value:"",label:""},{value:"momentary",label:l("config.menu.buttons.types.momentary")},{value:"toggle",label:l("config.menu.buttons.types.toggle")}],this._displayModes=[{value:"",label:""},{value:"single",label:l("display_modes.single")},{value:"grid",label:l("display_modes.grid")}],this._castMethods=[{value:"",label:""},{value:"standard",label:l("config.cameras.cast.methods.standard")},{value:"dashboard",label:l("config.cameras.cast.methods.dashboard")}],this._ptzModes=[{value:"",label:""},{value:"on",label:l("config.live.controls.ptz.modes.on")},{value:"off",label:l("config.live.controls.ptz.modes.off")}],this._ptzOrientations=[{value:"",label:""},{value:"vertical",label:l("config.live.controls.ptz.orientations.vertical")},{value:"horizontal",label:l("config.live.controls.ptz.orientations.horizontal")}],this._ptzPositions=[{value:"",label:""},{value:"top-left",label:l("config.live.controls.ptz.positions.top-left")},{value:"top-right",label:l("config.live.controls.ptz.positions.top-right")},{value:"bottom-left",label:l("config.live.controls.ptz.positions.bottom-left")},{value:"bottom-right",label:l("config.live.controls.ptz.positions.bottom-right")}],this._triggersActionsInteractionModes=[{value:"",label:""},{value:"all",label:l("config.view.triggers.actions.interaction_modes.all")},{value:"inactive",label:l("config.view.triggers.actions.interaction_modes.inactive")},{value:"active",label:l("config.view.triggers.actions.interaction_modes.active")}],this._triggersActionsTrigger=[{value:"",label:""},{value:"default",label:l("config.view.triggers.actions.triggers.default")},{value:"live",label:l("config.view.triggers.actions.triggers.live")},{value:"media",label:l("config.view.triggers.actions.triggers.media")},{value:"none",label:l("config.view.triggers.actions.triggers.none")}],this._triggersActionsUntrigger=[{value:"",label:""},{value:"default",label:l("config.view.triggers.actions.untriggers.default")},{value:"none",label:l("config.view.triggers.actions.untriggers.none")}],this._triggersEvents=[{value:"",label:""},{value:"events",label:l("config.cameras.triggers.events.events")},{value:"clips",label:l("config.cameras.triggers.events.clips")},{value:"snapshots",label:l("config.cameras.triggers.events.snapshots")}],this._timelinePanModes=[{value:"",label:""},{value:"pan",label:l("config.common.controls.timeline.pan_modes.pan")},{value:"seek",label:l("config.common.controls.timeline.pan_modes.seek")},{value:"seek-in-media",label:l("config.common.controls.timeline.pan_modes.seek-in-media")},{value:"seek-in-camera",label:l("config.common.controls.timeline.pan_modes.seek-in-camera")}],this._capabilities=[{value:"",label:""},{value:"live",label:l("config.cameras.capabilities.capabilities.live")},{value:"substream",label:l("config.cameras.capabilities.capabilities.substream")},{value:"clips",label:l("config.cameras.capabilities.capabilities.clips")},{value:"recordings",label:l("config.cameras.capabilities.capabilities.recordings")},{value:"snapshots",label:l("config.cameras.capabilities.capabilities.snapshots")},{value:"favorite-events",label:l("config.cameras.capabilities.capabilities.favorite-events")},{value:"favorite-recordings",label:l("config.cameras.capabilities.capabilities.favorite-recordings")},{value:"seek",label:l("config.cameras.capabilities.capabilities.seek")},{value:"ptz",label:l("config.cameras.capabilities.capabilities.ptz")},{value:"menu",label:l("config.cameras.capabilities.capabilities.menu")}],this._defaultResetInteractionModes=[{value:"",label:""},{value:"all",label:l("config.view.default_reset.interaction_modes.all")},{value:"inactive",label:l("config.view.default_reset.interaction_modes.inactive")},{value:"active",label:l("config.view.default_reset.interaction_modes.active")}],this._proxyMedia=[{value:"",label:""},{value:"auto",label:l("config.cameras.proxy.media.auto")},{value:!0,label:l("config.cameras.proxy.media.true")},{value:!1,label:l("config.cameras.proxy.media.false")}],this._proxySSLCiphers=[{value:"",label:""},{value:"auto",label:l("config.cameras.proxy.ssl_ciphers.auto")},{value:"default",label:l("config.cameras.proxy.ssl_ciphers.default")},{value:"insecure",label:l("config.cameras.proxy.ssl_ciphers.insecure")},{value:"intermediate",label:l("config.cameras.proxy.ssl_ciphers.intermediate")},{value:"modern",label:l("config.cameras.proxy.ssl_ciphers.modern")}],this._proxySSLVerification=[{value:"",label:""},{value:"auto",label:l("config.cameras.proxy.ssl_verification.auto")},{value:!0,label:l("config.cameras.proxy.ssl_verification.true")},{value:!1,label:l("config.cameras.proxy.ssl_verification.false")}],this._reolinkMediaResolution=[{value:"",label:""},{value:"high",label:l("config.cameras.reolink.media_resolution.high")},{value:"low",label:l("config.cameras.reolink.media_resolution.low")}],this._statusBarStyles=[{value:"",label:""},{value:"hover",label:l("config.status_bar.styles.hover")},{value:"hover-card",label:l("config.status_bar.styles.hover-card")},{value:"none",label:l("config.status_bar.styles.none")},{value:"outside",label:l("config.status_bar.styles.outside")},{value:"overlay",label:l("config.status_bar.styles.overlay")},{value:"popup",label:l("config.status_bar.styles.popup")}],this._statusBarPositions=[{value:"",label:""},{value:"top",label:l("config.status_bar.positions.top")},{value:"bottom",label:l("config.status_bar.positions.bottom")}]}setConfig(e){this._config=e,this._configUpgradeable=u(e);const a=h.safeParse(this._config.profiles);if(a.success){const e=m(di);_(this._config,e,a.data),this._defaults=e}}willUpdate(){this._initialized||g().then((e=>{e&&(this._initialized=!0)}))}_renderOptionSetHeader(e,a){const t=pi[e];return o` +
+
+ +
${t.name}
+
+
${t.secondary}
+
+ `}_getLabel(e){const a=e.split(".").filter((e=>!e.match(/^\[[0-9]+\]$/))).join(".");return l(`config.${a}`)}_renderEntitySelector(e,a){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_renderOptionSelector(e,a=[],t){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_renderIconSelector(e,a){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_renderNumberInput(e,a){if(!this._config)return;const t=b(this._config,e),i=void 0===a?.max?"box":"slider";return o` + this._valueChangedHandler(e,a)} + > + + `}_renderInfo(e){return o` ${e}`}_getEditorCameraTitle(e,a){return"string"==typeof a?.title&&a.title||("string"==typeof a?.camera_entity?p(this.hass,a.camera_entity):"")||"object"==typeof a?.webrtc_card&&a.webrtc_card&&"string"==typeof a.webrtc_card.entity&&a.webrtc_card.entity||("object"==typeof a?.frigate&&a.frigate&&"string"==typeof a?.frigate.camera_name&&a.frigate.camera_name?v(a.frigate.camera_name):"")||"string"==typeof a?.id&&a.id||l("editor.camera")+" #"+e}_renderViewDefaultResetMenu(){return this._putInSubmenu("view.default_reset",!0,`config.${f}.editor_label`,"mdi:restart",o` + ${this._renderSwitch($,this._defaults.view.default_reset.after_interaction)} + ${this._renderNumberInput(y)} + ${this._renderOptionSelector(w,this._defaultResetInteractionModes,{label:l("config.view.default_reset.interaction_mode")})}, + ${this._renderOptionSelector(S,this.hass?x(this.hass):[],{multiple:!0})} + `)}_renderViewTriggersMenu(){return this._putInSubmenu("view.triggers",!0,`config.${M}.editor_label`,"mdi:target-account",o` + ${this._renderSwitch(I,this._defaults.view.triggers.filter_selected_camera,{label:l(`config.${I}`)})} + ${this._renderSwitch(k,this._defaults.view.triggers.show_trigger_status,{label:l(`config.${k}`)})} + ${this._renderNumberInput(O,{default:this._defaults.view.triggers.untrigger_seconds})} + ${this._putInSubmenu("view.triggers.actions",!0,`config.${C}.editor_label`,"mdi:cogs",o` ${this._renderOptionSelector(z,this._triggersActionsTrigger,{label:l("config.view.triggers.actions.trigger")})} + ${this._renderOptionSelector(A,this._triggersActionsUntrigger,{label:l("config.view.triggers.actions.untrigger")})} + ${this._renderOptionSelector(N,this._triggersActionsInteractionModes,{label:l("config.view.triggers.actions.interaction_mode")})}`)} + `)}_renderKeyAssigner(e,a){return o` this._valueChangedHandler(e,a)} + >`}_renderViewKeyboardShortcutMenu(){return this._putInSubmenu("view.keyboard_shortcuts",!0,`config.${T}.editor_label`,"mdi:keyboard",o` + ${this._renderSwitch(B,this._defaults.view.keyboard_shortcuts.enabled,{label:l(`config.${B}`)})} + ${this._renderKeyAssigner(E,this._defaults.view.keyboard_shortcuts.ptz_left)} + ${this._renderKeyAssigner(P,this._defaults.view.keyboard_shortcuts.ptz_right)} + ${this._renderKeyAssigner(H,this._defaults.view.keyboard_shortcuts.ptz_up)} + ${this._renderKeyAssigner(L,this._defaults.view.keyboard_shortcuts.ptz_down)} + ${this._renderKeyAssigner(V,this._defaults.view.keyboard_shortcuts.ptz_zoom_in)} + ${this._renderKeyAssigner(K,this._defaults.view.keyboard_shortcuts.ptz_zoom_out)} + ${this._renderKeyAssigner(U,this._defaults.view.keyboard_shortcuts.ptz_home)} + `)}_renderStatusBarItem(e){return o` ${this._putInSubmenu("status_bar.items",e,`config.status_bar.items.${e}`,"mdi:feature-search",o` + ${this._renderSwitch(`${j}.${e}.enabled`,this._defaults.status_bar.items[e]?.enabled??!0,{label:l("config.status_bar.items.enabled")})} + ${this._renderNumberInput(`${j}.${e}.priority`,{max:q,default:this._defaults.status_bar.items[e]?.priority,label:l("config.status_bar.items.priority")})} + `)}`}_renderMenuButton(e,a){const t=[{value:"",label:""},{value:"matching",label:l("config.menu.buttons.alignments.matching")},{value:"opposing",label:l("config.menu.buttons.alignments.opposing")}];return o` ${this._putInSubmenu("menu.buttons",e,`config.menu.buttons.${e}`,"mdi:gesture-tap-button",o` + ${this._renderSwitch(`${R}.${e}.enabled`,this._defaults.menu.buttons[e]?.enabled??!0,{label:l("config.menu.buttons.enabled")})} + ${this._renderOptionSelector(`${R}.${e}.alignment`,t,{label:l("config.menu.buttons.alignment")})} + ${this._renderSwitch(`${R}.${e}.permanent`,this._defaults.menu.buttons[e]?.permanent??!1,{label:l("config.menu.buttons.permanent")})} + ${this._renderNumberInput(`${R}.${e}.priority`,{max:D,default:this._defaults.menu.buttons[e]?.priority,label:l("config.menu.buttons.priority")})} + ${this._renderIconSelector(`${R}.${e}.icon`,{label:l("config.menu.buttons.icon")})} + ${a} + `)}`}_putInSubmenu(e,a,t,i,n){const s=this._expandedMenus[e]===a,c={submenu:!0,selected:s},d=dt(i);return o`
+ + ${s?o`
${n}
`:""} +
`}_renderMediaLayout(e,a,t,i,n,s,r,c,d,m,u,h){return this._putInSubmenu(e,!0,a,"mdi:page-layout-body",o` + ${this._renderNumberInput(m,{min:0,max:10,label:l("config.cameras.dimensions.layout.zoom"),step:.1})} + ${this._renderNumberInput(u,{min:0,max:100,label:l("config.cameras.dimensions.layout.pan.x")})} + ${this._renderNumberInput(h,{min:0,max:100,label:l("config.cameras.dimensions.layout.pan.y")})} + ${this._renderOptionSelector(t,this._layoutFits,{label:l("config.cameras.dimensions.layout.fit")})} + ${this._putInSubmenu(`${e}.position`,!0,"config.cameras.dimensions.layout.position.editor_label","mdi:aspect-ratio",o` ${this._renderNumberInput(i,{min:0,max:100,label:l("config.cameras.dimensions.layout.position.x")})} + ${this._renderNumberInput(n,{min:0,max:100,label:l("config.cameras.dimensions.layout.position.y")})}`)} + ${this._putInSubmenu(`${e}.view_box`,!0,"config.cameras.dimensions.layout.view_box.editor_label","mdi:crop",o` + ${this._renderNumberInput(s,{min:0,max:100,label:l("config.cameras.dimensions.layout.view_box.top")})} + ${this._renderNumberInput(r,{min:0,max:100,label:l("config.cameras.dimensions.layout.view_box.bottom")})} + ${this._renderNumberInput(c,{min:0,max:100,label:l("config.cameras.dimensions.layout.view_box.left")})} + ${this._renderNumberInput(d,{min:0,max:100,label:l("config.cameras.dimensions.layout.view_box.right")})} + `)} + `)}_renderTimelineCoreControls(e,a,t,i,n,s,r){return o` + ${this._renderOptionSelector(e,this._timelineStyleTypes,{label:l(`config.common.${F}`)})} + ${r?this._renderOptionSelector(r,this._timelinePanModes,{label:l("config.common.controls.timeline.pan_mode")}):""} + ${this._renderNumberInput(a,{label:l(`config.common.${G}`)})} + ${this._renderNumberInput(t,{label:l(`config.common.${J}`)})} + ${this._renderOptionSelector(i,this._timelineEventsMediaTypes,{label:l(`config.common.${Q}`)})} + ${this._renderSwitch(n,s,{label:l(`config.common.${W}`)})} + `}_renderMiniTimeline(e,a,t,i,n,s,r,c,d){return this._putInSubmenu(e,!0,"config.common.controls.timeline.editor_label","mdi:chart-gantt",o` ${this._renderOptionSelector(a,this._miniTimelineModes,{label:l("config.common.controls.timeline.mode")})} + ${this._renderTimelineCoreControls(t,i,n,s,r,c,d)}`)}_renderViewDisplay(e,a,t,i,n){return this._putInSubmenu(e,!0,"config.common.display.editor_label","mdi:palette-swatch",o` + ${this._renderOptionSelector(a,this._displayModes,{label:l("config.common.display.mode")})} + ${this._renderNumberInput(t,{min:0,label:l("config.common.display.grid_selected_width_factor")})} + ${this._renderNumberInput(i,{min:0,label:l("config.common.display.grid_columns")})} + ${this._renderNumberInput(n,{min:0,label:l("config.common.display.grid_max_columns")})} + `)}_renderNextPreviousControls(e,a,t,i){return this._putInSubmenu(e,!0,"config.common.controls.next_previous.editor_label","mdi:arrow-right-bold-circle",o` + ${this._renderOptionSelector(a,this._nextPreviousControlStyles.filter((e=>!(!i?.allowThumbnails&&"thumbnails"===e.value||!i?.allowIcons&&"icons"===e.value))),{label:l("config.common.controls.next_previous.style")})} + ${this._renderNumberInput(t,{min:X,label:l("config.common.controls.next_previous.size")})} + `)}_renderThumbnailsControls(e,a,t,i,n,s,r,c){return this._putInSubmenu(e,!0,"config.common.controls.thumbnails.editor_label","mdi:image-text",o` + ${c?.configPathMode?o`${this._renderOptionSelector(c.configPathMode,this._thumbnailModes,{label:l("config.common.controls.thumbnails.mode")})}`:o``} + ${c?.configPathMediaType?o`${this._renderOptionSelector(c.configPathMediaType,this._thumbnailMediaTypes,{label:l("config.common.controls.thumbnails.media_type")})}`:o``} + ${c?.configPathEventsMediaType?o`${this._renderOptionSelector(c.configPathEventsMediaType,this._thumbnailEventsMediaTypes,{label:l("config.common.controls.thumbnails.events_media_type")})}`:o``} + ${this._renderNumberInput(a,{min:Y,max:Z,label:l("config.common.controls.thumbnails.size")})} + ${this._renderSwitch(t,r.show_details,{label:l("config.common.controls.thumbnails.show_details")})} + ${this._renderSwitch(i,r.show_favorite_control,{label:l("config.common.controls.thumbnails.show_favorite_control")})} + ${this._renderSwitch(n,r.show_timeline_control,{label:l("config.common.controls.thumbnails.show_timeline_control")})} + ${this._renderSwitch(s,r.show_download_control,{label:l("config.common.controls.thumbnails.show_download_control")})} + `)}_renderFilterControls(e,a){return this._putInSubmenu(e,!0,"config.common.controls.filter.editor_label","mdi:filter-cog",o` + ${a?o`${this._renderOptionSelector(a,this._filterModes,{label:l("config.common.controls.filter.mode")})}`:o``} + `)}_renderImageOptions(e,a,t,i,n){return o` + ${this._renderOptionSelector(e,this._imageModes,{label:l("config.common.image.mode")})} + ${this._renderStringInput(a,{label:l("config.common.image.url")})} + ${this._renderOptionSelector(t,this.hass?x(this.hass):[],{label:l("config.common.image.entity")})} + ${this._renderStringInput(i,{label:l("config.common.image.entity_parameters")})} + ${this._renderNumberInput(n,{label:l("config.common.image.refresh_seconds")})} + `}_renderCamera(e,a,t,i){const n=[{value:"",label:""},{value:"auto",label:l("config.cameras.live_providers.auto")},{value:"ha",label:l("config.cameras.live_providers.ha")},{value:"image",label:l("config.cameras.live_providers.image")},{value:"jsmpeg",label:l("config.cameras.live_providers.jsmpeg")},{value:"go2rtc",label:l("config.cameras.live_providers.go2rtc")},{value:"webrtc-card",label:l("config.cameras.live_providers.webrtc-card")}],s=[];e.forEach(((e,t)=>{t!==a&&s.push({value:ee(e),label:this._getEditorCameraTitle(t,e)})}));const c=e=>{if(this._config){const a=m(this._config);e(a)&&this._updateConfig(a)}},d={submenu:!0,selected:this._expandedMenus[gi]===a};return o` +
+ + ${this._expandedMenus[gi]===a?o`
+
+ !i&&c((e=>!!(Array.isArray(e.cameras)&&a>0)&&(mt(e.cameras,a,a-1),this._openMenu(gi,a-1),!0)))} + > + + + =this._config.cameras.length-1} + @click=${()=>!i&&c((e=>!!(Array.isArray(e.cameras)&&a + + + {c((e=>!!Array.isArray(e.cameras)&&(e.cameras.splice(a,1),this._closeMenu(gi),!0)))}} + > + + +
+ ${this._renderEntitySelector(ae(ut,a),"camera")} + ${this._renderOptionSelector(ae(ht,a),n)} + ${this._renderStringInput(ae(_t,a))} + ${this._renderIconSelector(ae(gt,a),{label:l("config.cameras.icon")})} + ${this._renderStringInput(ae(bt,a))} + ${this._putInSubmenu("cameras.engine",!0,"config.cameras.engines.editor_label","mdi:engine",o`${this._putInSubmenu("cameras.frigate",a,"config.cameras.frigate.editor_label","frigate",o` + ${this._renderStringInput(ae(pt,a))} + ${this._renderStringInput(ae(vt,a))} + ${this._renderOptionSelector(ae(ft,a),[],{multiple:!0,label:l("config.cameras.frigate.labels")})} + ${this._renderOptionSelector(ae($t,a),[],{multiple:!0,label:l("config.cameras.frigate.zones")})} + ${this._renderStringInput(ae(yt,a))} + `)} + ${this._putInSubmenu("cameras.motioneye",a,"config.cameras.motioneye.editor_label","motioneye",o` ${this._renderStringInput(ae(wt,a))} + ${this._renderStringInput(ae(St,a))} + ${this._renderStringInput(ae(xt,a))} + ${this._renderStringInput(ae(Mt,a))} + ${this._renderStringInput(ae(It,a))}`)} + ${this._putInSubmenu("cameras.reolink",a,"config.cameras.reolink.editor_label","reolink",o` ${this._renderStringInput(ae(kt,a))} + ${this._renderOptionSelector(ae(Ot,a),this._reolinkMediaResolution,{label:l("config.cameras.reolink.media_resolution.editor_label")})}`)}`)} + ${this._putInSubmenu("cameras.live_provider",!0,"config.cameras.live_provider_options.editor_label","mdi:cctv",o` ${this._putInSubmenu("cameras.go2rtc",a,"config.cameras.go2rtc.editor_label","mdi:alpha-g-circle",o`${this._renderOptionSelector(ae(Ct,a),this._go2rtcModes,{multiple:!0,label:l("config.cameras.go2rtc.modes.editor_label")})} + ${this._renderStringInput(ae(zt,a))}`)} + ${this._putInSubmenu("cameras.image",!0,"config.cameras.image.editor_label","mdi:image",this._renderImageOptions(ae(At,a),ae(Nt,a),ae(Tt,a),ae(Bt,a),ae(Et,a)))} + ${this._putInSubmenu("cameras.webrtc_card",a,"config.cameras.webrtc_card.editor_label","mdi:webrtc",o`${this._renderEntitySelector(ae(Pt,a),"camera")} + ${this._renderStringInput(ae(Ht,a))}`)}`)} + ${this._putInSubmenu("cameras.dependencies",a,"config.cameras.dependencies.editor_label","mdi:graph",o` ${this._renderSwitch(ae(Lt,a),this._defaults.cameras.dependencies.all_cameras)} + ${this._renderOptionSelector(ae(Vt,a),s,{multiple:!0})}`)} + ${this._putInSubmenu("cameras.triggers",a,"config.cameras.triggers.editor_label","mdi:magnify-scan",o` + ${this._renderSwitch(ae(Kt,a),this._defaults.cameras.triggers.occupancy)} + ${this._renderSwitch(ae(Ut,a),this._defaults.cameras.triggers.motion)} + ${this._renderOptionSelector(ae(jt,a),t,{multiple:!0})} + ${this._renderOptionSelector(ae(qt,a),this._triggersEvents,{multiple:!0,label:l("config.cameras.triggers.events.editor_label")})} + `)} + ${this._putInSubmenu("cameras.cast",a,"config.cameras.cast.editor_label","mdi:cast",o` + ${this._renderOptionSelector(ae(Rt,a),this._castMethods)} + ${this._renderStringInput(ae(Dt,a))} + ${this._renderStringInput(ae(Ft,a))} + `)} + ${this._putInSubmenu("cameras.dimensions",a,"config.cameras.dimensions.editor_label","mdi:aspect-ratio",o` + ${this._renderStringInput(ae(Gt,a))} + ${this._renderMediaLayout("cameras.dimensions.layout","config.cameras.dimensions.layout.editor_label",ae(Jt,a),ae(Qt,a),ae(Wt,a),ae(Xt,a),ae(Yt,a),ae(Zt,a),ae(ei,a),ae(ai,a),ae(ti,a),ae(ii,a))} + `)} + ${this._putInSubmenu("cameras.capabilities",a,"config.cameras.capabilities.editor_label","mdi:cog-stop",o` + ${this._renderOptionSelector(ae(ni,a),this._capabilities,{multiple:!0})} + ${this._renderOptionSelector(ae(si,a),this._capabilities,{multiple:!0})} + `)} + ${this._putInSubmenu("cameras.proxy",a,"config.cameras.proxy.editor_label","mdi:arrow-decision",o` + ${this._renderOptionSelector(ae(oi,a),this._proxyMedia,{label:l("config.cameras.proxy.media.editor_label")})} + ${this._renderSwitch(ae(ri,a),this._defaults.cameras.proxy.dynamic)} + ${this._renderOptionSelector(ae(li,a),this._proxySSLVerification,{label:l("config.cameras.proxy.ssl_verification.editor_label")})} + ${this._renderOptionSelector(ae(ci,a),this._proxySSLCiphers,{label:l("config.cameras.proxy.ssl_ciphers.editor_label")})} + `)} +
`:""} +
+ `}_renderStringInput(e,a){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_renderSwitch(e,a,t){if(this._config)return o` + this._valueChangedHandler(e,a)} + > + + `}_updateConfig(e){this._config=e,te(this,"config-changed",{config:this._config})}render(){if(!this.hass||!this._config)return o``;const e=x(this.hass),a=b(this._config,mi)||[];return o` + ${this._configUpgradeable?o`
+ ${l("editor.upgrade_available")} + + {if(this._config){const e=m(this._config);ie(e),this._updateConfig(e)}}} + > + + +
+
`:o``} +
+ ${this._renderOptionSetHeader("cameras")} + ${"cameras"===this._expandedMenus[bi]?o` +
+ ${a.map(((t,i)=>this._renderCamera(a,i,e)))} + ${this._renderCamera(a,a.length,e,!0)} +
+ `:""} + ${this._renderOptionSetHeader("profiles")} + ${"profiles"===this._expandedMenus[bi]?o`
+ ${this._renderOptionSelector(ne,this._profiles,{multiple:!0,label:l("config.profiles.editor_label")})} +
`:""} + ${this._renderOptionSetHeader("view")} + ${"view"===this._expandedMenus[bi]?o` +
+ ${this._renderOptionSelector(se,this._viewModes)} + ${this._renderOptionSelector(oe,this._cameraSelectViewModes)} + ${this._renderOptionSelector(re,this._darkModes)} + ${this._renderNumberInput(le)} + ${this._renderSwitch(ce,this._defaults.view.default_cycle_camera)} + ${this._renderViewDefaultResetMenu()} ${this._renderViewTriggersMenu()} + ${this._renderViewKeyboardShortcutMenu()} +
+ `:""} + ${this._renderOptionSetHeader("menu")} + ${"menu"===this._expandedMenus[bi]?o` +
+ ${this._renderOptionSelector(de,this._menuStyles)} + ${this._renderOptionSelector(me,this._menuPositions)} + ${this._renderOptionSelector(ue,this._menuAlignments)} + ${this._renderNumberInput(he,{min:X})} + ${this._renderMenuButton("frigate")} + ${this._renderMenuButton("cameras")} + ${this._renderMenuButton("substreams")} + ${this._renderMenuButton("live")} + ${this._renderMenuButton("clips")} + ${this._renderMenuButton("snapshots")} + ${this._renderMenuButton("recordings")} + ${this._renderMenuButton("image")} + ${this._renderMenuButton("download")} + ${this._renderMenuButton("camera_ui")} + ${this._renderMenuButton("fullscreen")} + ${this._renderMenuButton("expand")} + ${this._renderMenuButton("timeline")} + ${this._renderMenuButton("media_player")} + ${this._renderMenuButton("microphone",o`${this._renderOptionSelector(`${R}.microphone.type`,this._microphoneButtonTypes,{label:l("config.menu.buttons.type")})}`)} + ${this._renderMenuButton("play")} + ${this._renderMenuButton("mute")} + ${this._renderMenuButton("screenshot")} + ${this._renderMenuButton("display_mode")} + ${this._renderMenuButton("ptz_controls")} + ${this._renderMenuButton("ptz_home")} +
+ `:""} + ${this._renderOptionSetHeader("status_bar")} + ${"status_bar"===this._expandedMenus[bi]?o` +
+ ${this._renderOptionSelector(_e,this._statusBarStyles)} + ${this._renderOptionSelector(ge,this._statusBarPositions)} + ${this._renderNumberInput(be,{min:pe,label:l("config.status_bar.height")})} + ${this._renderNumberInput(ve,{min:0,max:60,default:this._defaults.status_bar.popup_seconds,label:l("config.status_bar.popup_seconds")})} + ${this._renderStatusBarItem("title")} + ${this._renderStatusBarItem("resolution")} + ${this._renderStatusBarItem("technology")} + ${this._renderStatusBarItem("engine")} +
+ `:""} + ${this._renderOptionSetHeader("live")} + ${"live"===this._expandedMenus[bi]?o` +
+ ${this._renderSwitch(fe,this._defaults.live.preload)} + ${this._renderSwitch($e,this._defaults.live.draggable)} + ${this._renderSwitch(ye,this._defaults.live.zoomable)} + ${this._renderSwitch(we,this._defaults.live.lazy_load)} + ${this._renderOptionSelector(Se,this._mediaActionNegativeConditions,{multiple:!0})} + ${this._renderOptionSelector(xe,this._mediaActionPositiveConditions,{multiple:!0})} + ${this._renderOptionSelector(Me,this._mediaActionNegativeConditions,{multiple:!0})} + ${this._renderOptionSelector(Ie,this._mediaLiveMuteConditions,{multiple:!0})} + ${this._renderOptionSelector(ke,this._mediaLiveUnmuteConditions,{multiple:!0})} + ${this._renderOptionSelector(Oe,this._transitionEffects)} + ${this._renderSwitch(Ce,this._defaults.live.show_image_during_load)} + ${this._renderViewDisplay("live.display",ze,Ae,Ne,Te)} + ${this._putInSubmenu("live.controls",!0,"config.live.controls.editor_label","mdi:gamepad",o` + ${this._renderSwitch(Be,this._defaults.live.controls.builtin,{label:l("config.common.controls.builtin")})} + ${this._renderNextPreviousControls("live.controls.next_previous",Ee,Pe,{allowIcons:!0})} + ${this._renderThumbnailsControls("live.controls.thumbnails",He,Le,Ve,Ke,Ue,this._defaults.live.controls.thumbnails,{configPathMediaType:je,configPathEventsMediaType:qe,configPathMode:Re})} + ${this._renderMiniTimeline("live.controls.timeline",De,Fe,Ge,Je,Qe,We,this._defaults.live.controls.timeline.show_recordings,Xe)} + ${this._putInSubmenu("live.controls.ptz",!0,"config.live.controls.ptz.editor_label","mdi:pan",o` + ${this._renderOptionSelector(Ye,this._ptzModes)} + ${this._renderOptionSelector(Ze,this._ptzPositions)} + ${this._renderOptionSelector(ea,this._ptzOrientations)} + ${this._renderSwitch(aa,this._defaults.live.controls.ptz.hide_pan_tilt,{label:l("config.live.controls.ptz.hide_pan_tilt")})} + ${this._renderSwitch(ta,this._defaults.live.controls.ptz.hide_pan_tilt,{label:l("config.live.controls.ptz.hide_zoom")})} + ${this._renderSwitch(ia,this._defaults.live.controls.ptz.hide_home,{label:l("config.live.controls.ptz.hide_home")})} + `)} + `)} + ${this._putInSubmenu("live.microphone",!0,"config.live.microphone.editor_label","mdi:microphone",o` + ${this._renderNumberInput(na)} + ${this._renderSwitch(sa,this._defaults.live.microphone.always_connected)} + ${this._renderNumberInput(oa)} + `)} +
+ `:""} + ${this._renderOptionSetHeader("media_gallery")} + ${"media_gallery"===this._expandedMenus[bi]?o`
+ ${this._renderThumbnailsControls("media_gallery.controls.thumbnails",ra,la,ca,da,ma,this._defaults.media_gallery.controls.thumbnails)} + ${this._renderFilterControls("media_gallery.controls.filter",ua)} +
`:""} + ${this._renderOptionSetHeader("media_viewer")} + ${"media_viewer"===this._expandedMenus[bi]?o`
+ ${this._renderOptionSelector(ha,this._mediaActionPositiveConditions,{multiple:!0})} + ${this._renderOptionSelector(_a,this._mediaActionNegativeConditions,{multiple:!0})} + ${this._renderOptionSelector(ga,this._mediaActionNegativeConditions,{multiple:!0})} + ${this._renderOptionSelector(ba,this._mediaActionPositiveConditions,{multiple:!0})} + ${this._renderSwitch(pa,this._defaults.media_viewer.draggable)} + ${this._renderSwitch(va,this._defaults.media_viewer.zoomable)} + ${this._renderSwitch(fa,this._defaults.media_viewer.lazy_load)} + ${this._renderOptionSelector($a,this._transitionEffects)} + ${this._renderSwitch(ya,this._defaults.media_viewer.snapshot_click_plays_clip)} + ${this._renderViewDisplay("media_viewer.display",wa,Sa,xa,Ma)} + ${this._putInSubmenu("media_viewer.controls",!0,"config.media_viewer.controls.editor_label","mdi:gamepad",o` + ${this._renderSwitch(Ia,this._defaults.media_viewer.controls.builtin,{label:l("config.common.controls.builtin")})} + ${this._renderNextPreviousControls("media_viewer.controls.next_previous",ka,Oa,{allowThumbnails:!0})} + ${this._renderThumbnailsControls("media_viewer.controls.thumbnails",Ca,za,Aa,Na,Ta,this._defaults.media_viewer.controls.thumbnails,{configPathMode:Ba})} + ${this._renderMiniTimeline("media_viewer.controls.timeline",Ea,Pa,Ha,La,Va,Ka,this._defaults.media_viewer.controls.timeline.show_recordings,Ua)} + `)} +
`:""} + ${this._renderOptionSetHeader("image")} + ${"image"===this._expandedMenus[bi]?o`
+ ${this._renderImageOptions(ja,qa,Ra,Da,Fa)} +
`:""} + ${this._renderOptionSetHeader("timeline")} + ${"timeline"===this._expandedMenus[bi]?o`
+ ${this._renderTimelineCoreControls(F,G,J,Q,W,this._defaults.timeline.show_recordings)} + ${this._renderThumbnailsControls("timeline.controls.thumbnails",Ga,Ja,Qa,Wa,Xa,this._defaults.timeline.controls.thumbnails,{configPathMode:Ya})} +
`:""} + ${this._renderOptionSetHeader("dimensions")} + ${"dimensions"===this._expandedMenus[bi]?o`
+ ${this._renderOptionSelector(Za,this._aspectRatioModes)} + ${this._renderStringInput(et)} + ${this._renderStringInput(at)} +
`:""} + ${this._renderOptionSetHeader("performance","low"===b(this._config,ui)?"warning":void 0)} + ${"performance"===this._expandedMenus[bi]?o`
+ ${"low"===b(this._config,ui)?this._renderInfo(l("config.performance.warning")):o``} + ${this._putInSubmenu("performance.features",!0,"config.performance.features.editor_label","mdi:feature-search",o` + ${this._renderSwitch(tt,this._defaults.performance.features.animated_progress_indicator)} + ${this._renderNumberInput(it,{max:nt})} + ${this._renderNumberInput(st,{min:1})} + `)} + ${this._putInSubmenu("performance.style",!0,"config.performance.style.editor_label","mdi:palette-swatch-variant",o` + ${this._renderSwitch(ot,this._defaults.performance.style.border_radius)} + ${this._renderSwitch(rt,this._defaults.performance.style.box_shadow)} + `)} +
`:""} + ${void 0!==this._config.overrides?o` ${this._renderOptionSetHeader("overrides")} + ${"overrides"===this._expandedMenus[bi]?o`
+ ${this._renderInfo(l("config.overrides.info"))} +
`:""}`:o``} +
+ `}_closeMenu(e){delete this._expandedMenus[e],this.requestUpdate()}_openMenu(e,a){this._expandedMenus[e]=a,this.requestUpdate()}_toggleMenu(e){if(e&&e.target){const a=e.target.domain,t=e.target.key;this._expandedMenus[a]===t?this._closeMenu(a):this._openMenu(a,t)}}_valueChangedHandler(e,a){if(!this._config||!this.hass)return;let t;if(a.detail&&void 0!==a.detail.value&&(t=a.detail.value,"string"==typeof t&&(t=t.trim())),b(this._config,e)===t)return;const i=m(this._config);""===t||void 0===t?lt(i,e):ct(i,e,t),this._updateConfig(i)}static get styles(){return c('ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n.option {\n padding: 4px 4px;\n cursor: pointer;\n}\n\n.option.option-overrides .title {\n color: var(--warning-color);\n}\n\n.row {\n display: flex;\n margin-bottom: -14px;\n pointer-events: none;\n}\n\n.title {\n padding-left: 16px;\n margin-top: -6px;\n pointer-events: none;\n}\n\n.title.warning {\n color: var(--warning-color);\n}\n\n.secondary {\n padding-left: 40px;\n color: var(--secondary-text-color);\n pointer-events: none;\n}\n\n.values {\n background: var(--secondary-background-color);\n display: grid;\n}\n\n.values + .option,\n.submenu + .option {\n margin-top: 10px;\n}\n\ndiv.upgrade {\n width: auto;\n border: 1px dotted var(--primary-color);\n margin: 10px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\ndiv.upgrade span {\n padding: 10px;\n}\n\n.submenu-header {\n display: flex;\n padding: 10px;\n cursor: pointer;\n}\n\n.submenu.selected > .submenu-header {\n background-color: var(--primary-color);\n color: var(--primary-text-color);\n}\n\n.submenu-header * {\n flex-basis: auto;\n pointer-events: none;\n}\n\n.submenu-header .new-camera {\n font-style: italic;\n}\n\n.submenu:not(.selected) > .submenu-header .new-camera {\n color: var(--secondary-text-color, "black");\n}\n\n.submenu-header ha-icon,\n.submenu-header img {\n padding-right: 15px;\n}\n\n.submenu.selected {\n border: 1px solid var(--primary-color);\n}\n\n.submenu {\n width: calc(100% - 20px);\n margin-left: auto;\n margin-right: auto;\n margin-bottom: 10px;\n}\n\n.submenu:first-child,\n:not(.submenu) + .submenu {\n margin-top: 10px;\n}\n\n.submenu .controls {\n display: inline-block;\n margin-left: auto;\n margin-right: 0px;\n margin-bottom: 5px;\n}\n\n.submenu .controls ha-icon-button.button {\n --mdc-icon-button-size: 32px;\n --mdc-icon-size: calc(var(--mdc-icon-button-size) / 2);\n}\n\nspan.info {\n padding: 10px;\n}\n\nha-selector {\n padding: 10px;\n border: 1px solid var(--divider-color);\n}')}};t([i({attribute:!1})],vi.prototype,"hass",void 0),t([d()],vi.prototype,"_config",void 0),t([d()],vi.prototype,"_defaults",void 0),t([d()],vi.prototype,"_expandedMenus",void 0),vi=t([n("frigate-card-editor")],vi);export{vi as FrigateCardEditor}; diff --git a/config/www/community/frigate-hass-card/editor-ce460dd0.js.gz b/config/www/community/frigate-hass-card/editor-ce460dd0.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..ea45d48ee56540944979956ea47a33ba854404e4 GIT binary patch literal 11531 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 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/endOfDay-086a6977.js b/config/www/community/frigate-hass-card/endOfDay-086a6977.js new file mode 100644 index 00000000..21673a2a --- /dev/null +++ b/config/www/community/frigate-hass-card/endOfDay-086a6977.js @@ -0,0 +1 @@ +import{c$ as r}from"./card-320adb66.js";function o(o){const s=r(o);return s.setHours(23,59,59,999),s}export{o as e}; diff --git a/config/www/community/frigate-hass-card/endOfDay-086a6977.js.gz b/config/www/community/frigate-hass-card/endOfDay-086a6977.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..efe6a589e4c36efac17aa1bd508b2e3a4cff41a2 GIT binary patch literal 148 zcmV;F0BipriwFoDf?;O@|7C7uPi916c`YzFHeoh7H#aV7a{wL9Jqm;{5J2I6Pcevv zf<{pkLfGDG#27)r%rY~91$8ylb5yVK)FC~_$ADR)L5V39~hwDY?F+#S*4+~66b#(v$0Qs0e AzyJUM literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/endOfDay-24d35e3f.js b/config/www/community/frigate-hass-card/endOfDay-24d35e3f.js new file mode 100644 index 00000000..94c721c6 --- /dev/null +++ b/config/www/community/frigate-hass-card/endOfDay-24d35e3f.js @@ -0,0 +1 @@ +import{d3 as r}from"./card-45855f1f.js";function o(o){const s=r(o);return s.setHours(23,59,59,999),s}export{o as e}; diff --git a/config/www/community/frigate-hass-card/endOfDay-24d35e3f.js.gz b/config/www/community/frigate-hass-card/endOfDay-24d35e3f.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..90d088de6e43335e96e9231d370b7a727694e4d7 GIT binary patch literal 146 zcmV;D0B!#tiwFqNQ&?vL|7C7uPi916c`Y(DWHU8oGiEMoa{wL9K?;O03_#JnrwFbT zv@$vcOL6Ztq_*IIjU*`u(z~kzfAd#w+YcnU)&Uj<%7Jh%Rp%C3+piwA4xgZYT-uPL zlMN$ah4tkyvH(x?j3qCLBCujFGbZAy9~y1mj4^e?*`I#|U&Cix+~dlod368)0DV3^ A1poj5 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/endOfDay-696ac7f4.js b/config/www/community/frigate-hass-card/endOfDay-696ac7f4.js new file mode 100644 index 00000000..32f96c36 --- /dev/null +++ b/config/www/community/frigate-hass-card/endOfDay-696ac7f4.js @@ -0,0 +1 @@ +import{d3 as r}from"./card-769e2b91.js";function o(o){const s=r(o);return s.setHours(23,59,59,999),s}export{o as e}; diff --git a/config/www/community/frigate-hass-card/endOfDay-696ac7f4.js.gz b/config/www/community/frigate-hass-card/endOfDay-696ac7f4.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..a5c10156475d7c92416f3ee6c6e26c0459fece29 GIT binary patch literal 147 zcmV;E0BrvsiwFowdR%7$|7C7uPi916c`Y_MHeq8oW;8Bpa{wL9K?;LF3_#I+PZ3-x z*b$Xh!q9!MVaEsxP9(`dLFVq&!r%PWTeh9Wj;V)HLGmoT6|M=RO!wi5)P1mZs}_Dv zG1$Tpxa8^x9MwQya*h|WBoWjp*_)GS+4c1UuMn}SHPiQx@MTc;w;v|4R=9Nl008dR%7$|7C7uPi916c`Z0%Wi(`AF=8%ia{wL9!3u*g41nSLo+5Zs zaNU^h5X$bpM%PAAuo+1T1L?av2mj?iearS?u{{kC6r|3=TjOpqNV?uJj_;7jt=jmx zd2pa{wL9O$viB5J2I5PcdW_ z!A9_}gy6o{kT`+`Gi7E1g5>V4!rQ#nx9wkIJ(mt<0WK@kZd?;*UY>F6Tf|rIK4QX} zQ`C(TkfrL3lte)${!d`k%n8H^>YFl)ZM%B#SKj-omV(EP&}Co=j~^a96CQN{007FW BK%4*o literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/endpoint-760ea36f.js b/config/www/community/frigate-hass-card/endpoint-760ea36f.js new file mode 100644 index 00000000..530d2b54 --- /dev/null +++ b/config/www/community/frigate-hass-card/endpoint-760ea36f.js @@ -0,0 +1 @@ +import{du as r,db as t,cQ as n,l as a}from"./card-7cd05290.js";const e=async(e,s,i,l)=>{if(!i.sign)return i.endpoint;let c;try{c=await r(s,i.endpoint,l)}catch(r){return t(r),null}return c?c.replace(/^http/i,"ws"):(n(e,a("error.failed_sign")),null)};export{e as g}; diff --git a/config/www/community/frigate-hass-card/endpoint-760ea36f.js.gz b/config/www/community/frigate-hass-card/endpoint-760ea36f.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..e8462676ddbe46b5837791650cc249e5bf04e1ca GIT binary patch literal 238 zcmVMHgM?7CUy8W zQ8`OHfT!^A3}N^5__DKKRXQlSvcS>TYX*g;nrM<9-_|&(`)F%CW=+ToWf3jrFqfFw zC1e4P>AJ$`FFvv$wK@L{if(!i.sign)return i.endpoint;let c;try{c=await r(s,i.endpoint,l)}catch(r){return t(r),null}return c?c.replace(/^http/i,"ws"):(n(e,a("error.failed_sign")),null)};export{e as g}; diff --git a/config/www/community/frigate-hass-card/endpoint-9c79ab63.js.gz b/config/www/community/frigate-hass-card/endpoint-9c79ab63.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..6c01d22b601a8bbdd19b8660410d1215002a38c3 GIT binary patch literal 239 zcmVRx_iSc%BRK8W!QJAQSeTY~Z6ao7Cak zMCB~)0G`6b%kvJO_Pa-Ws?tHpl?9HzUNa~()kKr@__oGL-A7yFA!|ZjD2r$@hq=Ve zE+GqWOxG1gfANt8sm=K>*diKuhNB|A-t4^HCNC+q+XLRg63)p3s^Rm{if(!a.sign)return a.endpoint;let s;try{s=await t(r,a.endpoint,e)}catch(t){n(t)}return s?s.replace(/^http/i,"ws"):null};export{r as c}; diff --git a/config/www/community/frigate-hass-card/endpoint-a6d38c7a.js.gz b/config/www/community/frigate-hass-card/endpoint-a6d38c7a.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..71f4d1d400b7b966da15163c724d6e599fc0ff7b GIT binary patch literal 203 zcmV;+05ty}iwFoDf?;O@|7C7uaBpdDbS+^vWHUHpH(@Sna{xV#(F%e<5Jlhnip?hl zTcg0B#rl(A+Ff(QMw^*1k^T2HqL+JL?me9F=sS|hJr%H$+#Qz2SX1{%bYX$qX208l zyOyQCb7E|VEQ%`N5p7C2fE5Xbv~b$jggRf%fS7E})p!i((@*PF%qNL6j`d z|6oQ$3u2p8vI*yiKL(#!lkZ!wJ}oYdNMD3J892#~_-fl|{QGN9i?oeq^#Pzhftt<$ F003~zU+w?^ literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/endpoint-cc3caf82.js b/config/www/community/frigate-hass-card/endpoint-cc3caf82.js new file mode 100644 index 00000000..187ccce3 --- /dev/null +++ b/config/www/community/frigate-hass-card/endpoint-cc3caf82.js @@ -0,0 +1 @@ +import{du as r,db as t,cQ as n,l as a}from"./card-c642ee74.js";const e=async(e,s,i,l)=>{if(!i.sign)return i.endpoint;let c;try{c=await r(s,i.endpoint,l)}catch(r){return t(r),null}return c?c.replace(/^http/i,"ws"):(n(e,a("error.failed_sign")),null)};export{e as g}; diff --git a/config/www/community/frigate-hass-card/endpoint-cc3caf82.js.gz b/config/www/community/frigate-hass-card/endpoint-cc3caf82.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..97b79225a7b806f063013104f07f50ab96a0d23a GIT binary patch literal 238 zcmVeE}tI_S%#*IW~LLa^&5;Xz|y#EHlGQyv&7o4U6zqkO^O%Y~awDP3rJ% zqH>XT08ilwUUtujuRD9L(m~0U1&+SnGAK0FM3eORzQ##CMqA@CYeHTqi)b;2xx~ya zAq#L!w-rWz^^pas&G|3bA{uyxlOny|?Y!M4FDbSA1NLAE=i~v^@Nr_EhiK%rO8utt oR>docM1}0+W5V#+yGZ?)p_{|+-{IH?9-Djk0SF@rjR^q&00~2L00000 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/endpoint-e9cb8034.js b/config/www/community/frigate-hass-card/endpoint-e9cb8034.js new file mode 100644 index 00000000..a15c8d0b --- /dev/null +++ b/config/www/community/frigate-hass-card/endpoint-e9cb8034.js @@ -0,0 +1 @@ +import{du as r,db as t,cQ as n,l as a}from"./card-09c4bade.js";const e=async(e,s,i,l)=>{if(!i.sign)return i.endpoint;let c;try{c=await r(s,i.endpoint,l)}catch(r){return t(r),null}return c?c.replace(/^http/i,"ws"):(n(e,a("error.failed_sign")),null)};export{e as g}; diff --git a/config/www/community/frigate-hass-card/endpoint-e9cb8034.js.gz b/config/www/community/frigate-hass-card/endpoint-e9cb8034.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..1b3903b93f71454625a01810997893a10e53e3bb GIT binary patch literal 237 zcmVdR%7$|7C7uaBpdDbS-5$V`4ZkGc+!0a{xV$!A`_53`FmIMaU_U zLdt;)RE2Ng2S8rO-3`hnmE&qzRrz-sSaEumH8Yxt=cTZ0VO3BSyKv|fhwq))r4DE_ zm$UW*0*8mkXM8$9ApceMh$UB1G(o*)G~}v_F4^gIi?g|pzQ$v=OtNxT(NhjfiCM-( zqHq+xZaBdOq9``I^Ixz>Gz7tuVY}VzvfnPRDYe@J-_SEH36RY2aS~aE==7y(`(pB5 n1&k)}2ABt&o6 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/endpoint-f74ef6db.js b/config/www/community/frigate-hass-card/endpoint-f74ef6db.js new file mode 100644 index 00000000..757d0868 --- /dev/null +++ b/config/www/community/frigate-hass-card/endpoint-f74ef6db.js @@ -0,0 +1 @@ +import{du as r,db as t,cQ as n,l as a}from"./card-45855f1f.js";const e=async(e,s,i,l)=>{if(!i.sign)return i.endpoint;let c;try{c=await r(s,i.endpoint,l)}catch(r){return t(r),null}return c?c.replace(/^http/i,"ws"):(n(e,a("error.failed_sign")),null)};export{e as g}; diff --git a/config/www/community/frigate-hass-card/endpoint-f74ef6db.js.gz b/config/www/community/frigate-hass-card/endpoint-f74ef6db.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..110d4957eec41fc9441d41b0884c4cac96a0cb6b GIT binary patch literal 238 zcmVy^GX;8M-Number(e)),n.number().min(0).max(23)),duration:n.number().min(0),events:n.number().min(0)}),U=n.object({day:n.preprocess((e=>"string"==typeof e?a(e):e),n.date()),events:n.number(),hours:q.array()}).array(),W=n.object({start_time:n.number(),end_time:n.number(),id:n.string()}).array(),Q=n.object({success:n.boolean(),message:n.string()}),k=n.object({camera:n.string(),day:n.string(),label:n.string(),sub_label:n.string().nullable(),zones:n.string().array()}).array(),P=n.object({name:n.string().optional(),features:n.string().array().optional(),presets:n.string().array().optional()}),A=n.object({camera:n.string(),snapshot:n.object({frame_time:n.number()}).nullable(),has_clip:n.boolean(),has_snapshot:n.boolean(),label:n.string(),current_zones:n.string().array()}),O=n.object({before:A,after:A,type:n.enum(["new","update","end"])});const L=async(e,t)=>await r(e,Z,{type:"frigate/events/get",...t},!0),V=e=>"birdseye"===e.frigate.camera_name;class G extends z{constructor(e,t,n){super(e,t,n),this._frigateEventHandler=e=>{const t=!e.before.has_snapshot&&e.after.has_snapshot||e.before.snapshot?.frame_time!==e.after.snapshot?.frame_time,n=!e.before.has_clip&&e.after.has_clip,a=this.getConfig();if(a.frigate.zones?.length&&!a.frigate.zones.some((t=>e.after.current_zones.includes(t)))||a.frigate.labels?.length&&!a.frigate.labels.includes(e.after.label))return;const r=a.triggers.events;(r.includes("events")||r.includes("snapshots")&&t||r.includes("clips")&&n)&&this._eventCallback?.({fidelity:"high",cameraID:this.getID(),type:e.type,clip:n&&r.includes("clips"),snapshot:t&&r.includes("snapshots")})}}async initialize(e){return await this._initializeConfig(e.hass,e.entityRegistryManager),await this._initializeCapabilities(e.hass),await this._subscribeToEvents(e.hass,e.frigateEventWatcher),await super.initialize(e)}async _initializeConfig(e,n){const a=this.getConfig(),r=!!a.frigate?.camera_name,i=a.triggers.motion||a.triggers.occupancy;let g=null;const l=o(a);if(l&&(!r||i)&&(g=await n.getEntity(e,l),!g))throw new c(s("error.no_camera_entity"),a);if(g&&!r){const e=this._getFrigateCameraNameFromEntity(g);e&&(this._config.frigate.camera_name=e)}if(i){const r=await n.getMatchingEntities(e,(e=>e.config_entry_id===g?.config_entry_id&&!e.disabled_by&&e.entity_id.startsWith("binary_sensor.")));if(a.triggers.motion){const e=this._getMotionSensor(a,[...r.values()]);e&&a.triggers.entities.push(e)}if(a.triggers.occupancy){const e=this._getOccupancySensor(a,[...r.values()]);e&&a.triggers.entities.push(...e)}a.triggers.entities=(u=a.triggers.entities)&&u.length?t(u):[]}var u}async _initializeCapabilities(e){const t=this.getConfig(),n=g(this.getConfig()),a=await this._getPTZCapabilities(e,t),r=n||a?{...a,...n}:null,i=V(t);this._capabilities=new l({"favorite-events":!i,"favorite-recordings":!1,seek:!i,clips:!i,snapshots:!i,recordings:!i,live:!0,menu:!0,substream:!0,...r&&{ptz:r}},{disable:t.capabilities?.disable,disableExcept:t.capabilities?.disable_except})}_getFrigateCameraNameFromEntity(e){if("frigate"===e.platform&&e.unique_id&&"string"==typeof e.unique_id){const t=e.unique_id.match(/:camera:(?[^:]+)$/);if(t&&t.groups)return t.groups.camera}return null}async _getPTZCapabilities(e,t){if(!t.frigate.camera_name||V(t))return null;let n=null;try{n=await(async(e,t,n)=>await r(e,P,{type:"frigate/ptz/info",instance_id:t,camera:n},!0))(e,t.frigate.client_id,t.frigate.camera_name)}catch(e){return u(e),null}const a=[...n.features?.includes("pt")?["continuous"]:[]],i=[...n.features?.includes("zoom")?["continuous"]:[]],s=n.presets;return a.length||i.length||s?.length?{...a&&{left:a,right:a,up:a,down:a},...i&&{zoomIn:i,zoomOut:i},...s&&{presets:s}}:null}_getMotionSensor(e,t){return e.frigate.camera_name?t.find((t=>"string"==typeof t.unique_id&&!!t.unique_id?.match(new RegExp(`:motion_sensor:${e.frigate.camera_name}`))))?.entity_id??null:null}_getOccupancySensor(e,t){const n=[],a=(e,a)=>{const r=t.find((t=>"string"==typeof t.unique_id&&!!t.unique_id?.match(new RegExp(`:occupancy_sensor:${e}_${a}`))))?.entity_id??null;r&&n.push(r)};if(e.frigate.camera_name){const t=e.frigate.zones?.length?e.frigate.zones:[e.frigate.camera_name],r=e.frigate.labels?.length?e.frigate.labels:["all"];for(const e of t)for(const t of r)a(e,t);if(n.length)return n}return null}async _subscribeToEvents(e,t){const n=this.getConfig();if(!n.triggers.events.length||!n.frigate.camera_name)return; +/* istanbul ignore next -- exercising the matcher is not possible when the + test uses an event watcher -- @preserve */const a={instanceID:n.frigate.client_id,callback:e=>this._frigateEventHandler(e),matcher:e=>e.after.camera===n.frigate.camera_name};await t.subscribe(e,a),this._onDestroy((()=>t.unsubscribe(a)))}}class J{constructor(){this._requests=[],this._unsubscribeCallback={}}async subscribe(e,t){const n=!this._hasSubscribers(t.instanceID);this._requests.push(t),n&&(this._unsubscribeCallback[t.instanceID]=await e.connection.subscribeMessage((e=>this._receiveHandler(t.instanceID,e)),{type:"frigate/events/subscribe",instance_id:t.instanceID}))}async unsubscribe(e){this._requests=this._requests.filter((t=>t!==e)),this._hasSubscribers(e.instanceID)||(await this._unsubscribeCallback[e.instanceID](),delete this._unsubscribeCallback[e.instanceID])}_hasSubscribers(e){return!!this._requests.filter((t=>t.instanceID===e)).length}_receiveHandler(e,t){let n;try{n=JSON.parse(t)}catch(e){return void console.warn("Received non-JSON payload as Frigate event",t)}const a=O.safeParse(n);if(a.success)for(const t of this._requests)t.instanceID!==e||t.matcher&&!t.matcher(a.data)||t.callback(a.data);else console.warn("Received malformed Frigate event from Home Assistant",t)}}function B(e,t){const n=function(e){if(!X[e]){const t=new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:"America/New_York",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date("2014-06-25T04:00:00.123Z")),n="06/25/2014, 00:00:00"===t||"‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00"===t;X[e]=n?new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:e,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:e,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}return X[e]}(t);return"formatToParts"in n?function(e,t){try{const n=e.formatToParts(t),a=[];for(let e=0;e=0?i:1e3+i,a-r}function se(e,t){return-23<=e&&e<=23&&(null==t||0<=t&&t<=59)}const oe={};function ce(e){const t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),+e-+t}const ge=36e5,le=6e4,ue=2,me={dateTimePattern:/^([0-9W+-]+)(T| )(.*)/,datePattern:/^([0-9W+-]+)(.*)/,plainTime:/:/,YY:/^(\d{2})$/,YYY:[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],YYYY:/^(\d{4})/,YYYYY:[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],MM:/^-(\d{2})$/,DDD:/^-?(\d{3})$/,MMDD:/^-?(\d{2})-?(\d{2})$/,Www:/^-?W(\d{2})$/,WwwD:/^-?W(\d{2})-?(\d{1})$/,HH:/^(\d{2}([.,]\d*)?)$/,HHMM:/^(\d{2}):?(\d{2}([.,]\d*)?)$/,HHMMSS:/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,timeZone:/(Z|[+-]\d{2}(?::?\d{2})?| UTC| [a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?)$/};function de(e,t={}){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");if(null===e)return new Date(NaN);const n=null==t.additionalDigits?ue:Number(t.additionalDigits);if(2!==n&&1!==n&&0!==n)throw new RangeError("additionalDigits must be 0, 1 or 2");if(e instanceof Date||"object"==typeof e&&"[object Date]"===Object.prototype.toString.call(e))return new Date(e.getTime());if("number"==typeof e||"[object Number]"===Object.prototype.toString.call(e))return new Date(e);if("[object String]"!==Object.prototype.toString.call(e))return new Date(NaN);const a=function(e){const t={};let n,a=me.dateTimePattern.exec(e);a?(t.date=a[1],n=a[3]):(a=me.datePattern.exec(e),a?(t.date=a[1],n=a[2]):(t.date=null,n=e));if(n){const e=me.timeZone.exec(n);e?(t.time=n.replace(e[1],""),t.timeZone=e[1].trim()):t.time=n}return t}(e),{year:r,restDateString:i}=function(e,t){if(e){const n=me.YYY[t],a=me.YYYYY[t];let r=me.YYYY.exec(e)||a.exec(e);if(r){const t=r[1];return{year:parseInt(t,10),restDateString:e.slice(t.length)}}if(r=me.YY.exec(e)||n.exec(e),r){const t=r[1];return{year:100*parseInt(t,10),restDateString:e.slice(t.length)}}}return{year:null}}(a.date,n),s=function(e,t){if(null===t)return null;let n,a,r;if(!e||!e.length)return n=new Date(0),n.setUTCFullYear(t),n;let i=me.MM.exec(e);if(i)return n=new Date(0),a=parseInt(i[1],10)-1,ye(t,a)?(n.setUTCFullYear(t,a),n):new Date(NaN);if(i=me.DDD.exec(e),i){n=new Date(0);const e=parseInt(i[1],10);return function(e,t){if(t<1)return!1;const n=_e(e);if(n&&t>366)return!1;if(!n&&t>365)return!1;return!0}(t,e)?(n.setUTCFullYear(t,0,e),n):new Date(NaN)}if(i=me.MMDD.exec(e),i){n=new Date(0),a=parseInt(i[1],10)-1;const e=parseInt(i[2],10);return ye(t,a,e)?(n.setUTCFullYear(t,a,e),n):new Date(NaN)}if(i=me.Www.exec(e),i)return r=parseInt(i[1],10)-1,be(r)?fe(t,r):new Date(NaN);if(i=me.WwwD.exec(e),i){r=parseInt(i[1],10)-1;const e=parseInt(i[2],10)-1;return be(r,e)?fe(t,r,e):new Date(NaN)}return null}(i,r);if(null===s||isNaN(s.getTime()))return new Date(NaN);if(s){const e=s.getTime();let n,r=0;if(a.time&&(r=function(e){let t,n,a=me.HH.exec(e);if(a)return t=parseFloat(a[1].replace(",",".")),we(t)?t%24*ge:NaN;if(a=me.HHMM.exec(e),a)return t=parseInt(a[1],10),n=parseFloat(a[2].replace(",",".")),we(t,n)?t%24*ge+n*le:NaN;if(a=me.HHMMSS.exec(e),a){t=parseInt(a[1],10),n=parseInt(a[2],10);const e=parseFloat(a[3].replace(",","."));return we(t,n,e)?t%24*ge+n*le+1e3*e:NaN}return null}(a.time),null===r||isNaN(r)))return new Date(NaN);if(a.timeZone||t.timeZone){if(n=re(a.timeZone||t.timeZone,new Date(e+r)),isNaN(n))return new Date(NaN)}else n=ce(new Date(e+r)),n=ce(new Date(e+r+n));return new Date(e+r+n)}return new Date(NaN)}function fe(e,t,n){t=t||0,n=n||0;const a=new Date(0);a.setUTCFullYear(e,0,4);const r=7*t+n+1-(a.getUTCDay()||7);return a.setUTCDate(a.getUTCDate()+r),a}const he=[31,28,31,30,31,30,31,31,30,31,30,31],pe=[31,29,31,30,31,30,31,31,30,31,30,31];function _e(e){return e%400==0||e%4==0&&e%100!=0}function ye(e,t,n){if(t<0||t>11)return!1;if(null!=n){if(n<1)return!1;const a=_e(e);if(a&&n>pe[t])return!1;if(!a&&n>he[t])return!1}return!0}function be(e,t){return!(e<0||e>52)&&(null==t||!(t<0||t>6))}function we(e,t,n){return!(e<0||e>=25)&&((null==t||!(t<0||t>=60))&&(null==n||!(n<0||n>=60)))}const De=e=>{const t=Intl.DateTimeFormat().resolvedOptions().timeZone,n=Math.round(e.end_time?e.end_time-e.start_time:Date.now()/1e3-e.start_time),a=null!==e.top_score?` ${Math.round(100*e.top_score)}%`:"";return`${m(function(e,t,n){const a=re(t,e=de(e,n),!0),r=new Date(e.getTime()-a),i=new Date(0);return i.setFullYear(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate()),i.setHours(r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds()),i}(1e3*e.start_time,t))} [${n}s, ${d(e.label)}${a}]`};class Ce extends R{constructor(e,t,n,a,r,i){super(e,t),this._event=n,this._contentID=a,this._thumbnail=r,this._subLabels=i??null}getStartTime(){return j(this._event.start_time)}getEndTime(){return this._event.end_time?j(this._event.end_time):null}inProgress(){return!this.getEndTime()}getVideoContentType(){return Y.HLS}getID(){return this._event.id}getContentID(){return this._contentID}getTitle(){return De(this._event)}getThumbnail(){return this._thumbnail}isFavorite(){return this._event.retain_indefinitely??null}setFavorite(e){this._event.retain_indefinitely=e}getWhat(){return[this._event.label]}getWhere(){const e=this._event.zones;return e.length?e:null}getScore(){return this._event.top_score}getTags(){return this._subLabels}isGroupableWith(e){return this.getMediaType()===e.getMediaType()&&f(this.getWhere(),e.getWhere())&&f(this.getWhat(),e.getWhat())}}class ve extends R{constructor(e,t,n,a,r,i){super(e,t),this._recording=n,this._id=a,this._contentID=r,this._title=i}getID(){return this._id}getStartTime(){return this._recording.startTime}getEndTime(){return this._recording.endTime}inProgress(){return!this.getEndTime()}getVideoContentType(){return Y.HLS}getContentID(){return this._contentID}getTitle(){return this._title}getEventCount(){return this._recording.events}}class Te{static createEventViewMedia(e,t,n,a,r){return"clip"===e&&!a.has_clip||"snapshot"===e&&!a.has_snapshot||!n.frigate.client_id||!n.frigate.camera_name?null:new Ce(e,t,a,((e,t,n,a)=>`media-source://frigate/${e}/event/${a}/${t}/${n.id}`)(n.frigate.client_id,n.frigate.camera_name,a,"clip"===e?"clips":"snapshots"),((e,t)=>`/api/frigate/${e}/thumbnail/${t.id}`)(n.frigate.client_id,a),r)}static createRecordingViewMedia(e,t,n,a){return n.frigate.client_id&&n.frigate.camera_name?new ve("recording",e,t,((e,t)=>`${e.frigate?.client_id??""}/${e.frigate.camera_name??""}/${t.startTime.getTime()}/${t.endTime.getTime()}`)(n,t),((e,t,n)=>["media-source://frigate",e,"recordings",t,`${n.startTime.getFullYear()}-${String(n.startTime.getMonth()+1).padStart(2,"0")}-${String(String(n.startTime.getDate()).padStart(2,"0"))}`,String(n.startTime.getHours()).padStart(2,"0")].join("/"))(n.frigate.client_id,n.frigate.camera_name,t),((e,t)=>`${e} ${m(t.startTime)}`)(a,t)):null}}class Ie{static isFrigateMedia(e){return this.isFrigateEvent(e)||this.isFrigateRecording(e)}static isFrigateEvent(e){return e instanceof Ce}static isFrigateRecording(e){return e instanceof ve}}class Se{static isFrigateEventQueryResults(e){return e.engine===p.Frigate&&e.type===C.Event}static isFrigateRecordingQueryResults(e){return e.engine===p.Frigate&&e.type===C.Recording}static isFrigateRecordingSegmentsResults(e){return e.engine===p.Frigate&&e.type===C.RecordingSegments}}class Me extends N{constructor(e,t,n,a,r){super(t,r),this._throttledSegmentGarbageCollector=h(this._garbageCollectSegments.bind(this),36e5,{leading:!1,trailing:!0}),this._entityRegistryManager=e,this._frigateEventWatcher=new J,this._recordingSegmentsCache=n,this._requestCache=a}getEngineType(){return p.Frigate}async createCamera(e,t){const n=new G(t,this,{eventCallback:this._eventCallback});return await n.initialize({hass:e,entityRegistryManager:this._entityRegistryManager,stateWatcher:this._stateWatcher,frigateEventWatcher:this._frigateEventWatcher})}async getMediaDownloadPath(e,t,n){return Ie.isFrigateEvent(n)?{endpoint:`/api/frigate/${t.frigate.client_id}/notifications/${n.getID()}/`+(_.isClip(n)?"clip.mp4":"snapshot.jpg")+"?download=true",sign:!0}:Ie.isFrigateRecording(n)?{endpoint:`/api/frigate/${t.frigate.client_id}/recording/${t.frigate.camera_name}/start/${Math.floor(n.getStartTime().getTime()/1e3)}/end/${Math.floor(n.getEndTime().getTime()/1e3)}?download=true`,sign:!0}:null}generateDefaultEventQuery(e,t,n){const a=[...e.getCameraConfigs(t)],r=y(a.map((e=>e?.frigate.zones)),f),i=y(a.map((e=>e?.frigate.labels)),f);if(1===r.length&&1===i.length)return[{type:b.Event,cameraIDs:t,...i[0]&&{what:new Set(i[0])},...r[0]&&{where:new Set(r[0])},...n}];const s=[];for(const a of t){const t=e.getCameraConfig(a);t&&s.push({type:b.Event,cameraIDs:new Set([a]),...t.frigate.labels&&{what:new Set(t.frigate.labels)},...t.frigate.zones&&{where:new Set(t.frigate.zones)},...n})}return s.length?s:null}generateDefaultRecordingQuery(e,t,n){return[{type:b.Recording,cameraIDs:t,...n}]}generateDefaultRecordingSegmentsQuery(e,t,n){return n.start&&n.end?[{type:b.RecordingSegments,cameraIDs:t,start:n.start,end:n.end,...n}]:null}async favoriteMedia(e,t,n,a){Ie.isFrigateEvent(n)&&(await async function(e,t,n,a){const o={type:"frigate/event/retain",instance_id:t,event_id:n,retain:a},c=await r(e,Q,o,!0);if(!c.success)throw new i(s("error.failed_retain"),{request:o,response:c})}(e,t.frigate.client_id,n.getID(),a),n.setFavorite(a))}_buildInstanceToCameraIDMapFromQuery(e,t){const n=new Map;for(const a of t){const t=this._getQueryableCameraConfig(e,a),r=t?.frigate.client_id;r&&(n.has(r)||n.set(r,new Set),n.get(r)?.add(a))}return n}_getFrigateCameraNamesForCameraIDs(e,t){const n=new Set;for(const a of t){const t=this._getQueryableCameraConfig(e,a);t?.frigate.camera_name&&n.add(t.frigate.camera_name)}return n}async getEvents(e,t,n,a){const r=new Map,i=async(i,s)=>{if(!s||!s.size)return;const o={...n,cameraIDs:s},c=a?.useCache??1?this._requestCache.get(o):null;if(c)return void r.set(n,c);const g={instance_id:i,cameras:Array.from(this._getFrigateCameraNamesForCameraIDs(t,s)),...n.what&&{labels:Array.from(n.what)},...n.where&&{zones:Array.from(n.where)},...n.tags&&{sub_labels:Array.from(n.tags)},...n.end&&{before:Math.floor(n.end.getTime()/1e3)},...n.start&&{after:Math.floor(n.start.getTime()/1e3)},...n.limit&&{limit:n.limit},...n.hasClip&&{has_clip:n.hasClip},...n.hasSnapshot&&{has_snapshot:n.hasSnapshot},...n.favorite&&{favorites:n.favorite},limit:n?.limit??$},l={type:C.Event,engine:p.Frigate,instanceID:i,events:await L(e,g),expiry:v(new Date,{seconds:60}),cached:!1};(a?.useCache??1)&&this._requestCache.set(n,{...l,cached:!0},l.expiry),r.set(o,l)},s=this._buildInstanceToCameraIDMapFromQuery(t,n.cameraIDs);return await Promise.all(Array.from(s.keys()).map((e=>i(e,s.get(e))))),r.size?r:null}async getRecordings(e,t,n,a){const i=new Map,s=async(n,s)=>{const o={...n,cameraIDs:new Set([s])},c=a?.useCache??1?this._requestCache.get(o):null;if(c)return void i.set(o,c);const g=this._getQueryableCameraConfig(t,s);if(!g||!g.frigate.camera_name)return;const l=await(async(e,t,n)=>await r(e,U,{type:"frigate/recordings/summary",instance_id:t,camera:n,timezone:e.config.time_zone},!0))(e,g.frigate.client_id,g.frigate.camera_name);let u=[];for(const e of l??[])for(const t of e.hours){const n=v(e.day,{hours:t.hour}),a=x(n),r=H(n);(!o.start||a>=o.start)&&(!o.end||r<=o.end)&&u.push({cameraID:s,startTime:a,endTime:r,events:t.events})}void 0!==o.limit&&(u=S(u,(e=>e.startTime),"desc").slice(0,o.limit));const m={type:C.Recording,engine:p.Frigate,instanceID:g.frigate.client_id,recordings:u,expiry:v(new Date,{seconds:60}),cached:!1};(a?.useCache??1)&&this._requestCache.set(o,{...m,cached:!0},m.expiry),i.set(o,m)};return await Promise.all(Array.from(n.cameraIDs).map((e=>s(n,e)))),i.size?i:null}async getRecordingSegments(e,t,n,a){const i=new Map,s=async(n,s)=>{const o={...n,cameraIDs:new Set([s])},c=this._getQueryableCameraConfig(t,s);if(!c||!c.frigate.camera_name)return;const g={start:o.start,end:o.end},l=a?.useCache??1?this._recordingSegmentsCache.get(s,g):null;if(l)return void i.set(o,{type:C.RecordingSegments,engine:p.Frigate,instanceID:c.frigate.client_id,segments:l,cached:!0});const u={instance_id:c.frigate.client_id,camera:c.frigate.camera_name,after:Math.floor(o.start.getTime()/1e3),before:Math.floor(o.end.getTime()/1e3)},m=await(async(e,t)=>await r(e,W,{type:"frigate/recordings/get",...t},!0))(e,u);(a?.useCache??1)&&this._recordingSegmentsCache.add(s,g,m),i.set(o,{type:C.RecordingSegments,engine:p.Frigate,instanceID:c.frigate.client_id,segments:m,cached:!1})};return await Promise.all(Array.from(n.cameraIDs).map((e=>s(n,e)))),w((()=>this._throttledSegmentGarbageCollector(e,t))),i.size?i:null}_getCameraIDMatch(e,t,n,a){if(1===t.cameraIDs.size)return[...t.cameraIDs][0];for(const[t,r]of e.getCameraConfigEntries())if(r.frigate.client_id===n&&r.frigate.camera_name===a)return t;return null}generateMediaFromEvents(e,t,n,a){if(!Se.isFrigateEventQueryResults(a))return null;const r=[];for(const e of a.events){const i=this._getCameraIDMatch(t,n,a.instanceID,e.camera);if(!i)continue;const s=this._getQueryableCameraConfig(t,i);if(!s)continue;let o=null;if(n.hasClip||n.hasSnapshot||!e.has_clip&&!e.has_snapshot?n.hasSnapshot&&e.has_snapshot?o="snapshot":n.hasClip&&e.has_clip&&(o="clip"):o=e.has_clip?"clip":"snapshot",!o)continue;const c=Te.createEventViewMedia(o,i,s,e,e.sub_label?this._splitSubLabels(e.sub_label):void 0);c&&r.push(c)}return r}generateMediaFromRecordings(e,t,n,a){if(!Se.isFrigateRecordingQueryResults(a))return null;const r=[];for(const n of a.recordings){const a=this._getQueryableCameraConfig(t,n.cameraID);if(!a)continue;const i=Te.createRecordingViewMedia(n.cameraID,n,a,this.getCameraMetadata(e,a).title);i&&r.push(i)}return r}getQueryResultMaxAge(e){return e.type===b.Event||e.type===b.Recording?60:null}async getMediaSeekTime(e,t,n,a,r){const i=n.getStartTime(),s=n.getEndTime();if(!i||!s||as)return null;const o=n.getCameraID(),c={cameraIDs:new Set([o]),start:i,end:s,type:b.RecordingSegments},g=await this.getRecordingSegments(e,t,c,r);return g?this._getSeekTimeInSegments(i,a,Array.from(g.values())[0].segments):null}_getQueryableCameraConfig(e,t){const n=e.getCameraConfig(t);return!n||V(n)?null:n}_splitSubLabels(e){return e.split(",").map((e=>e.trim()))}async getMediaMetadata(e,t,n,a){const i=new Map;if((a?.useCache??1)&&this._requestCache.has(n)){const e=this._requestCache.get(n);if(e)return i.set(n,e),i}const s=new Set,o=new Set,c=new Set,g=new Set,l=this._buildInstanceToCameraIDMapFromQuery(t,n.cameraIDs),u=async(n,a)=>{const i=this._getFrigateCameraNamesForCameraIDs(t,a);for(const t of await(async(e,t)=>await r(e,k,{type:"frigate/events/summary",instance_id:t,timezone:e.config.time_zone},!0))(e,n))i.has(t.camera)&&(t.label&&s.add(t.label),t.zones.length&&t.zones.forEach(o.add,o),t.day&&c.add(t.day),t.sub_label&&this._splitSubLabels(t.sub_label).forEach(g.add,g))},m=async n=>{const r=await this.getRecordings(e,t,{type:b.Recording,cameraIDs:n},a);if(r)for(const e of r.values())if(Se.isFrigateRecordingQueryResults(e))for(const t of e.recordings)c.add(M(t.startTime))};await D([...l.entries()],(([e,t])=>(async()=>{await Promise.all([u(e,t),m(t)])})()));const d={type:C.MediaMetadata,engine:p.Frigate,metadata:{...s.size&&{what:s},...o.size&&{where:o},...c.size&&{days:c},...g.size&&{tags:g}},expiry:v(new Date,{seconds:60}),cached:!1};return(a?.useCache??1)&&this._requestCache.set(n,{...d,cached:!0},d.expiry),i.set(n,d),i}async _garbageCollectSegments(e,t){const n=this._recordingSegmentsCache.getCameraIDs(),a={cameraIDs:new Set(n),type:b.Recording},r=(e,t)=>`${e}/${t.getDate()}/${t.getHours()}`,i=await this.getRecordings(e,t,a);if(i)for(const[e,t]of i){if(!Se.isFrigateRecordingQueryResults(t))continue;const n=new Set;for(const e of t.recordings)n.add(r(e.cameraID,e.startTime));const a=Array.from(e.cameraIDs)[0];this._recordingSegmentsCache.expireMatches(a,(e=>{const t=r(a,j(e.start_time));return!n.has(t)}))}}_getSeekTimeInSegments(e,t,n){if(!n.length)return null;let a=0;for(const r of n){const n=j(r.start_time);if(n>t)break;const i=j(r.end_time),s=nt?t:i).getTime()-s.getTime()}return a/1e3}getMediaCapabilities(e){return{canFavorite:_.isEvent(e),canDownload:!0}}getCameraMetadata(e,t){const n=super.getCameraMetadata(e,t);return{title:t.title??T(e,t.camera_entity)??T(e,t.webrtc_card?.entity)??d(t.frigate?.camera_name)??t.id??"",icon:n.icon,engineLogo:I}}getCameraEndpoints(e,t){const n=(()=>{if(!e.frigate.url)return null;if(!e.frigate.camera_name)return{endpoint:e.frigate.url};const n=`${e.frigate.url}/cameras/`+e.frigate.camera_name;if("live"===t?.view)return{endpoint:n};const a=`${e.frigate.url}/events?camera=`+e.frigate.camera_name,r=`${e.frigate.url}/recording/`+e.frigate.camera_name;switch(t?.media?.getMediaType()){case"clip":case"snapshot":return{endpoint:a};case"recording":const e=t.media.getStartTime();if(e)return{endpoint:r+F(e,"yyyy-MM-dd/HH")}}switch(t?.view){case"clip":case"clips":case"snapshots":case"snapshot":return{endpoint:a};case"recording":case"recordings":return{endpoint:r}}return{endpoint:n}})(),a=E(e,{url:e.go2rtc?.url??`/api/frigate/${e.frigate.client_id}/mse`,stream:e.go2rtc?.stream??e.frigate.camera_name}),r={endpoint:`/api/frigate/${e.frigate.client_id}/jsmpeg/${e.frigate.camera_name}`,sign:!0},i=(()=>{const t=e.frigate.camera_name?e.frigate.camera_name:null;return t?{endpoint:t}:null})();return{...super.getCameraEndpoints(e,t),...n&&{ui:n},...a&&{go2rtc:a},...r&&{jsmpeg:r},...i&&{webrtcCard:i}}}async executePTZAction(e,t,n,a){const r=t.camera_entity;("preset"!==n||a?.preset)&&await e.callService("frigate","ptz",{entity_id:r,action:"stop"===a?.phase?"stop":"zoom_in"===n||"zoom_out"===n?"zoom":"preset"===n?"preset":"move",..."stop"!==a?.phase&&{argument:"zoom_in"===n?"in":"zoom_out"===n?"out":"preset"===n?a?.preset:n}})}}export{Me as FrigateCameraManagerEngine}; diff --git a/config/www/community/frigate-hass-card/engine-frigate-1cc4bb56.js.gz b/config/www/community/frigate-hass-card/engine-frigate-1cc4bb56.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..d4334e4b3b3cee4701744a45af2b458ecf2468fc GIT binary patch literal 8636 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,n.number().min(0).max(23)),duration:n.number().min(0),events:n.number().min(0)}),U=n.object({day:n.preprocess((e=>"string"==typeof e?a(e):e),n.date()),events:n.number(),hours:q.array()}).array(),W=n.object({start_time:n.number(),end_time:n.number(),id:n.string()}).array(),Q=n.object({success:n.boolean(),message:n.string()}),k=n.object({camera:n.string(),day:n.string(),label:n.string(),sub_label:n.string().nullable(),zones:n.string().array()}).array(),P=n.object({name:n.string().optional(),features:n.string().array().optional(),presets:n.string().array().optional()}),A=n.object({camera:n.string(),snapshot:n.object({frame_time:n.number()}).nullable(),has_clip:n.boolean(),has_snapshot:n.boolean(),label:n.string(),current_zones:n.string().array()}),O=n.object({before:A,after:A,type:n.enum(["new","update","end"])});const L=async(e,t)=>await r(e,Z,{type:"frigate/events/get",...t},!0),V=e=>"birdseye"===e.frigate.camera_name;class G extends z{constructor(e,t,n){super(e,t,n),this._frigateEventHandler=e=>{const t=!e.before.has_snapshot&&e.after.has_snapshot||e.before.snapshot?.frame_time!==e.after.snapshot?.frame_time,n=!e.before.has_clip&&e.after.has_clip,a=this.getConfig();if(a.frigate.zones?.length&&!a.frigate.zones.some((t=>e.after.current_zones.includes(t)))||a.frigate.labels?.length&&!a.frigate.labels.includes(e.after.label))return;const r=a.triggers.events;(r.includes("events")||r.includes("snapshots")&&t||r.includes("clips")&&n)&&this._eventCallback?.({fidelity:"high",cameraID:this.getID(),type:e.type,clip:n&&r.includes("clips"),snapshot:t&&r.includes("snapshots")})}}async initialize(e){return await this._initializeConfig(e.hass,e.entityRegistryManager),await this._initializeCapabilities(e.hass),await this._subscribeToEvents(e.hass,e.frigateEventWatcher),await super.initialize(e)}async _initializeConfig(e,n){const a=this.getConfig(),r=!!a.frigate?.camera_name,i=a.triggers.motion||a.triggers.occupancy;let g=null;const l=o(a);if(l&&(!r||i)&&(g=await n.getEntity(e,l),!g))throw new c(s("error.no_camera_entity"),a);if(g&&!r){const e=this._getFrigateCameraNameFromEntity(g);e&&(this._config.frigate.camera_name=e)}if(i){const r=await n.getMatchingEntities(e,(e=>e.config_entry_id===g?.config_entry_id&&!e.disabled_by&&e.entity_id.startsWith("binary_sensor.")));if(a.triggers.motion){const e=this._getMotionSensor(a,[...r.values()]);e&&a.triggers.entities.push(e)}if(a.triggers.occupancy){const e=this._getOccupancySensor(a,[...r.values()]);e&&a.triggers.entities.push(...e)}a.triggers.entities=(u=a.triggers.entities)&&u.length?t(u):[]}var u}async _initializeCapabilities(e){const t=this.getConfig(),n=g(this.getConfig()),a=await this._getPTZCapabilities(e,t),r=n||a?{...a,...n}:null,i=V(t);this._capabilities=new l({"favorite-events":!i,"favorite-recordings":!1,seek:!i,clips:!i,snapshots:!i,recordings:!i,live:!0,menu:!0,substream:!0,...r&&{ptz:r}},{disable:t.capabilities?.disable,disableExcept:t.capabilities?.disable_except})}_getFrigateCameraNameFromEntity(e){if("frigate"===e.platform&&e.unique_id&&"string"==typeof e.unique_id){const t=e.unique_id.match(/:camera:(?[^:]+)$/);if(t&&t.groups)return t.groups.camera}return null}async _getPTZCapabilities(e,t){if(!t.frigate.camera_name||V(t))return null;let n=null;try{n=await(async(e,t,n)=>await r(e,P,{type:"frigate/ptz/info",instance_id:t,camera:n},!0))(e,t.frigate.client_id,t.frigate.camera_name)}catch(e){return u(e),null}const a=[...n.features?.includes("pt")?["continuous"]:[]],i=[...n.features?.includes("zoom")?["continuous"]:[]],s=n.presets;return a.length||i.length||s?.length?{...a&&{left:a,right:a,up:a,down:a},...i&&{zoomIn:i,zoomOut:i},...s&&{presets:s}}:null}_getMotionSensor(e,t){return e.frigate.camera_name?t.find((t=>"string"==typeof t.unique_id&&!!t.unique_id?.match(new RegExp(`:motion_sensor:${e.frigate.camera_name}`))))?.entity_id??null:null}_getOccupancySensor(e,t){const n=[],a=(e,a)=>{const r=t.find((t=>"string"==typeof t.unique_id&&!!t.unique_id?.match(new RegExp(`:occupancy_sensor:${e}_${a}`))))?.entity_id??null;r&&n.push(r)};if(e.frigate.camera_name){const t=e.frigate.zones?.length?e.frigate.zones:[e.frigate.camera_name],r=e.frigate.labels?.length?e.frigate.labels:["all"];for(const e of t)for(const t of r)a(e,t);if(n.length)return n}return null}async _subscribeToEvents(e,t){const n=this.getConfig();if(!n.triggers.events.length||!n.frigate.camera_name)return; +/* istanbul ignore next -- exercising the matcher is not possible when the + test uses an event watcher -- @preserve */const a={instanceID:n.frigate.client_id,callback:e=>this._frigateEventHandler(e),matcher:e=>e.after.camera===n.frigate.camera_name};await t.subscribe(e,a),this._onDestroy((()=>t.unsubscribe(a)))}}class J{constructor(){this._requests=[],this._unsubscribeCallback={}}async subscribe(e,t){const n=!this._hasSubscribers(t.instanceID);this._requests.push(t),n&&(this._unsubscribeCallback[t.instanceID]=await e.connection.subscribeMessage((e=>this._receiveHandler(t.instanceID,e)),{type:"frigate/events/subscribe",instance_id:t.instanceID}))}async unsubscribe(e){this._requests=this._requests.filter((t=>t!==e)),this._hasSubscribers(e.instanceID)||(await this._unsubscribeCallback[e.instanceID](),delete this._unsubscribeCallback[e.instanceID])}_hasSubscribers(e){return!!this._requests.filter((t=>t.instanceID===e)).length}_receiveHandler(e,t){let n;try{n=JSON.parse(t)}catch(e){return void console.warn("Received non-JSON payload as Frigate event",t)}const a=O.safeParse(n);if(a.success)for(const t of this._requests)t.instanceID!==e||t.matcher&&!t.matcher(a.data)||t.callback(a.data);else console.warn("Received malformed Frigate event from Home Assistant",t)}}function B(e,t){const n=function(e){if(!X[e]){const t=new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:"America/New_York",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date("2014-06-25T04:00:00.123Z")),n="06/25/2014, 00:00:00"===t||"‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00"===t;X[e]=n?new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:e,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:e,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}return X[e]}(t);return"formatToParts"in n?function(e,t){try{const n=e.formatToParts(t),a=[];for(let e=0;e=0?i:1e3+i,a-r}function se(e,t){return-23<=e&&e<=23&&(null==t||0<=t&&t<=59)}const oe={};function ce(e){const t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),+e-+t}const ge=36e5,le=6e4,ue=2,me={dateTimePattern:/^([0-9W+-]+)(T| )(.*)/,datePattern:/^([0-9W+-]+)(.*)/,plainTime:/:/,YY:/^(\d{2})$/,YYY:[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],YYYY:/^(\d{4})/,YYYYY:[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],MM:/^-(\d{2})$/,DDD:/^-?(\d{3})$/,MMDD:/^-?(\d{2})-?(\d{2})$/,Www:/^-?W(\d{2})$/,WwwD:/^-?W(\d{2})-?(\d{1})$/,HH:/^(\d{2}([.,]\d*)?)$/,HHMM:/^(\d{2}):?(\d{2}([.,]\d*)?)$/,HHMMSS:/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,timeZone:/(Z|[+-]\d{2}(?::?\d{2})?| UTC| [a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?)$/};function de(e,t={}){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");if(null===e)return new Date(NaN);const n=null==t.additionalDigits?ue:Number(t.additionalDigits);if(2!==n&&1!==n&&0!==n)throw new RangeError("additionalDigits must be 0, 1 or 2");if(e instanceof Date||"object"==typeof e&&"[object Date]"===Object.prototype.toString.call(e))return new Date(e.getTime());if("number"==typeof e||"[object Number]"===Object.prototype.toString.call(e))return new Date(e);if("[object String]"!==Object.prototype.toString.call(e))return new Date(NaN);const a=function(e){const t={};let n,a=me.dateTimePattern.exec(e);a?(t.date=a[1],n=a[3]):(a=me.datePattern.exec(e),a?(t.date=a[1],n=a[2]):(t.date=null,n=e));if(n){const e=me.timeZone.exec(n);e?(t.time=n.replace(e[1],""),t.timeZone=e[1].trim()):t.time=n}return t}(e),{year:r,restDateString:i}=function(e,t){if(e){const n=me.YYY[t],a=me.YYYYY[t];let r=me.YYYY.exec(e)||a.exec(e);if(r){const t=r[1];return{year:parseInt(t,10),restDateString:e.slice(t.length)}}if(r=me.YY.exec(e)||n.exec(e),r){const t=r[1];return{year:100*parseInt(t,10),restDateString:e.slice(t.length)}}}return{year:null}}(a.date,n),s=function(e,t){if(null===t)return null;let n,a,r;if(!e||!e.length)return n=new Date(0),n.setUTCFullYear(t),n;let i=me.MM.exec(e);if(i)return n=new Date(0),a=parseInt(i[1],10)-1,ye(t,a)?(n.setUTCFullYear(t,a),n):new Date(NaN);if(i=me.DDD.exec(e),i){n=new Date(0);const e=parseInt(i[1],10);return function(e,t){if(t<1)return!1;const n=_e(e);if(n&&t>366)return!1;if(!n&&t>365)return!1;return!0}(t,e)?(n.setUTCFullYear(t,0,e),n):new Date(NaN)}if(i=me.MMDD.exec(e),i){n=new Date(0),a=parseInt(i[1],10)-1;const e=parseInt(i[2],10);return ye(t,a,e)?(n.setUTCFullYear(t,a,e),n):new Date(NaN)}if(i=me.Www.exec(e),i)return r=parseInt(i[1],10)-1,be(r)?fe(t,r):new Date(NaN);if(i=me.WwwD.exec(e),i){r=parseInt(i[1],10)-1;const e=parseInt(i[2],10)-1;return be(r,e)?fe(t,r,e):new Date(NaN)}return null}(i,r);if(null===s||isNaN(s.getTime()))return new Date(NaN);if(s){const e=s.getTime();let n,r=0;if(a.time&&(r=function(e){let t,n,a=me.HH.exec(e);if(a)return t=parseFloat(a[1].replace(",",".")),we(t)?t%24*ge:NaN;if(a=me.HHMM.exec(e),a)return t=parseInt(a[1],10),n=parseFloat(a[2].replace(",",".")),we(t,n)?t%24*ge+n*le:NaN;if(a=me.HHMMSS.exec(e),a){t=parseInt(a[1],10),n=parseInt(a[2],10);const e=parseFloat(a[3].replace(",","."));return we(t,n,e)?t%24*ge+n*le+1e3*e:NaN}return null}(a.time),null===r||isNaN(r)))return new Date(NaN);if(a.timeZone||t.timeZone){if(n=re(a.timeZone||t.timeZone,new Date(e+r)),isNaN(n))return new Date(NaN)}else n=ce(new Date(e+r)),n=ce(new Date(e+r+n));return new Date(e+r+n)}return new Date(NaN)}function fe(e,t,n){t=t||0,n=n||0;const a=new Date(0);a.setUTCFullYear(e,0,4);const r=7*t+n+1-(a.getUTCDay()||7);return a.setUTCDate(a.getUTCDate()+r),a}const he=[31,28,31,30,31,30,31,31,30,31,30,31],pe=[31,29,31,30,31,30,31,31,30,31,30,31];function _e(e){return e%400==0||e%4==0&&e%100!=0}function ye(e,t,n){if(t<0||t>11)return!1;if(null!=n){if(n<1)return!1;const a=_e(e);if(a&&n>pe[t])return!1;if(!a&&n>he[t])return!1}return!0}function be(e,t){return!(e<0||e>52)&&(null==t||!(t<0||t>6))}function we(e,t,n){return!(e<0||e>=25)&&((null==t||!(t<0||t>=60))&&(null==n||!(n<0||n>=60)))}const De=e=>{const t=Intl.DateTimeFormat().resolvedOptions().timeZone,n=Math.round(e.end_time?e.end_time-e.start_time:Date.now()/1e3-e.start_time),a=null!==e.top_score?` ${Math.round(100*e.top_score)}%`:"";return`${m(function(e,t,n){const a=re(t,e=de(e,n),!0),r=new Date(e.getTime()-a),i=new Date(0);return i.setFullYear(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate()),i.setHours(r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds()),i}(1e3*e.start_time,t))} [${n}s, ${d(e.label)}${a}]`};class Ce extends R{constructor(e,t,n,a,r,i){super(e,t),this._event=n,this._contentID=a,this._thumbnail=r,this._subLabels=i??null}getStartTime(){return j(this._event.start_time)}getEndTime(){return this._event.end_time?j(this._event.end_time):null}inProgress(){return!this.getEndTime()}getVideoContentType(){return Y.HLS}getID(){return this._event.id}getContentID(){return this._contentID}getTitle(){return De(this._event)}getThumbnail(){return this._thumbnail}isFavorite(){return this._event.retain_indefinitely??null}setFavorite(e){this._event.retain_indefinitely=e}getWhat(){return[this._event.label]}getWhere(){const e=this._event.zones;return e.length?e:null}getScore(){return this._event.top_score}getTags(){return this._subLabels}isGroupableWith(e){return this.getMediaType()===e.getMediaType()&&f(this.getWhere(),e.getWhere())&&f(this.getWhat(),e.getWhat())}}class ve extends R{constructor(e,t,n,a,r,i){super(e,t),this._recording=n,this._id=a,this._contentID=r,this._title=i}getID(){return this._id}getStartTime(){return this._recording.startTime}getEndTime(){return this._recording.endTime}inProgress(){return!this.getEndTime()}getVideoContentType(){return Y.HLS}getContentID(){return this._contentID}getTitle(){return this._title}getEventCount(){return this._recording.events}}class Te{static createEventViewMedia(e,t,n,a,r){return"clip"===e&&!a.has_clip||"snapshot"===e&&!a.has_snapshot||!n.frigate.client_id||!n.frigate.camera_name?null:new Ce(e,t,a,((e,t,n,a)=>`media-source://frigate/${e}/event/${a}/${t}/${n.id}`)(n.frigate.client_id,n.frigate.camera_name,a,"clip"===e?"clips":"snapshots"),((e,t)=>`/api/frigate/${e}/thumbnail/${t.id}`)(n.frigate.client_id,a),r)}static createRecordingViewMedia(e,t,n,a){return n.frigate.client_id&&n.frigate.camera_name?new ve("recording",e,t,((e,t)=>`${e.frigate?.client_id??""}/${e.frigate.camera_name??""}/${t.startTime.getTime()}/${t.endTime.getTime()}`)(n,t),((e,t,n)=>["media-source://frigate",e,"recordings",t,`${n.startTime.getFullYear()}-${String(n.startTime.getMonth()+1).padStart(2,"0")}-${String(String(n.startTime.getDate()).padStart(2,"0"))}`,String(n.startTime.getHours()).padStart(2,"0")].join("/"))(n.frigate.client_id,n.frigate.camera_name,t),((e,t)=>`${e} ${m(t.startTime)}`)(a,t)):null}}class Ie{static isFrigateMedia(e){return this.isFrigateEvent(e)||this.isFrigateRecording(e)}static isFrigateEvent(e){return e instanceof Ce}static isFrigateRecording(e){return e instanceof ve}}class Se{static isFrigateEventQueryResults(e){return e.engine===p.Frigate&&e.type===C.Event}static isFrigateRecordingQueryResults(e){return e.engine===p.Frigate&&e.type===C.Recording}static isFrigateRecordingSegmentsResults(e){return e.engine===p.Frigate&&e.type===C.RecordingSegments}}class Me extends N{constructor(e,t,n,a,r){super(t,r),this._throttledSegmentGarbageCollector=h(this._garbageCollectSegments.bind(this),36e5,{leading:!1,trailing:!0}),this._entityRegistryManager=e,this._frigateEventWatcher=new J,this._recordingSegmentsCache=n,this._requestCache=a}getEngineType(){return p.Frigate}async createCamera(e,t){const n=new G(t,this,{eventCallback:this._eventCallback});return await n.initialize({hass:e,entityRegistryManager:this._entityRegistryManager,stateWatcher:this._stateWatcher,frigateEventWatcher:this._frigateEventWatcher})}async getMediaDownloadPath(e,t,n){return Ie.isFrigateEvent(n)?{endpoint:`/api/frigate/${t.frigate.client_id}/notifications/${n.getID()}/`+(_.isClip(n)?"clip.mp4":"snapshot.jpg")+"?download=true",sign:!0}:Ie.isFrigateRecording(n)?{endpoint:`/api/frigate/${t.frigate.client_id}/recording/${t.frigate.camera_name}/start/${Math.floor(n.getStartTime().getTime()/1e3)}/end/${Math.floor(n.getEndTime().getTime()/1e3)}?download=true`,sign:!0}:null}generateDefaultEventQuery(e,t,n){const a=[...e.getCameraConfigs(t)],r=y(a.map((e=>e?.frigate.zones)),f),i=y(a.map((e=>e?.frigate.labels)),f);if(1===r.length&&1===i.length)return[{type:b.Event,cameraIDs:t,...i[0]&&{what:new Set(i[0])},...r[0]&&{where:new Set(r[0])},...n}];const s=[];for(const a of t){const t=e.getCameraConfig(a);t&&s.push({type:b.Event,cameraIDs:new Set([a]),...t.frigate.labels&&{what:new Set(t.frigate.labels)},...t.frigate.zones&&{where:new Set(t.frigate.zones)},...n})}return s.length?s:null}generateDefaultRecordingQuery(e,t,n){return[{type:b.Recording,cameraIDs:t,...n}]}generateDefaultRecordingSegmentsQuery(e,t,n){return n.start&&n.end?[{type:b.RecordingSegments,cameraIDs:t,start:n.start,end:n.end,...n}]:null}async favoriteMedia(e,t,n,a){Ie.isFrigateEvent(n)&&(await async function(e,t,n,a){const o={type:"frigate/event/retain",instance_id:t,event_id:n,retain:a},c=await r(e,Q,o,!0);if(!c.success)throw new i(s("error.failed_retain"),{request:o,response:c})}(e,t.frigate.client_id,n.getID(),a),n.setFavorite(a))}_buildInstanceToCameraIDMapFromQuery(e,t){const n=new Map;for(const a of t){const t=this._getQueryableCameraConfig(e,a),r=t?.frigate.client_id;r&&(n.has(r)||n.set(r,new Set),n.get(r)?.add(a))}return n}_getFrigateCameraNamesForCameraIDs(e,t){const n=new Set;for(const a of t){const t=this._getQueryableCameraConfig(e,a);t?.frigate.camera_name&&n.add(t.frigate.camera_name)}return n}async getEvents(e,t,n,a){const r=new Map,i=async(i,s)=>{if(!s||!s.size)return;const o={...n,cameraIDs:s},c=a?.useCache??1?this._requestCache.get(o):null;if(c)return void r.set(n,c);const g={instance_id:i,cameras:Array.from(this._getFrigateCameraNamesForCameraIDs(t,s)),...n.what&&{labels:Array.from(n.what)},...n.where&&{zones:Array.from(n.where)},...n.tags&&{sub_labels:Array.from(n.tags)},...n.end&&{before:Math.floor(n.end.getTime()/1e3)},...n.start&&{after:Math.floor(n.start.getTime()/1e3)},...n.limit&&{limit:n.limit},...n.hasClip&&{has_clip:n.hasClip},...n.hasSnapshot&&{has_snapshot:n.hasSnapshot},...n.favorite&&{favorites:n.favorite},limit:n?.limit??$},l={type:C.Event,engine:p.Frigate,instanceID:i,events:await L(e,g),expiry:v(new Date,{seconds:60}),cached:!1};(a?.useCache??1)&&this._requestCache.set(n,{...l,cached:!0},l.expiry),r.set(o,l)},s=this._buildInstanceToCameraIDMapFromQuery(t,n.cameraIDs);return await Promise.all(Array.from(s.keys()).map((e=>i(e,s.get(e))))),r.size?r:null}async getRecordings(e,t,n,a){const i=new Map,s=async(n,s)=>{const o={...n,cameraIDs:new Set([s])},c=a?.useCache??1?this._requestCache.get(o):null;if(c)return void i.set(o,c);const g=this._getQueryableCameraConfig(t,s);if(!g||!g.frigate.camera_name)return;const l=await(async(e,t,n)=>await r(e,U,{type:"frigate/recordings/summary",instance_id:t,camera:n,timezone:e.config.time_zone},!0))(e,g.frigate.client_id,g.frigate.camera_name);let u=[];for(const e of l??[])for(const t of e.hours){const n=v(e.day,{hours:t.hour}),a=x(n),r=H(n);(!o.start||a>=o.start)&&(!o.end||r<=o.end)&&u.push({cameraID:s,startTime:a,endTime:r,events:t.events})}void 0!==o.limit&&(u=S(u,(e=>e.startTime),"desc").slice(0,o.limit));const m={type:C.Recording,engine:p.Frigate,instanceID:g.frigate.client_id,recordings:u,expiry:v(new Date,{seconds:60}),cached:!1};(a?.useCache??1)&&this._requestCache.set(o,{...m,cached:!0},m.expiry),i.set(o,m)};return await Promise.all(Array.from(n.cameraIDs).map((e=>s(n,e)))),i.size?i:null}async getRecordingSegments(e,t,n,a){const i=new Map,s=async(n,s)=>{const o={...n,cameraIDs:new Set([s])},c=this._getQueryableCameraConfig(t,s);if(!c||!c.frigate.camera_name)return;const g={start:o.start,end:o.end},l=a?.useCache??1?this._recordingSegmentsCache.get(s,g):null;if(l)return void i.set(o,{type:C.RecordingSegments,engine:p.Frigate,instanceID:c.frigate.client_id,segments:l,cached:!0});const u={instance_id:c.frigate.client_id,camera:c.frigate.camera_name,after:Math.floor(o.start.getTime()/1e3),before:Math.floor(o.end.getTime()/1e3)},m=await(async(e,t)=>await r(e,W,{type:"frigate/recordings/get",...t},!0))(e,u);(a?.useCache??1)&&this._recordingSegmentsCache.add(s,g,m),i.set(o,{type:C.RecordingSegments,engine:p.Frigate,instanceID:c.frigate.client_id,segments:m,cached:!1})};return await Promise.all(Array.from(n.cameraIDs).map((e=>s(n,e)))),w((()=>this._throttledSegmentGarbageCollector(e,t))),i.size?i:null}_getCameraIDMatch(e,t,n,a){if(1===t.cameraIDs.size)return[...t.cameraIDs][0];for(const[t,r]of e.getCameraConfigEntries())if(r.frigate.client_id===n&&r.frigate.camera_name===a)return t;return null}generateMediaFromEvents(e,t,n,a){if(!Se.isFrigateEventQueryResults(a))return null;const r=[];for(const e of a.events){const i=this._getCameraIDMatch(t,n,a.instanceID,e.camera);if(!i)continue;const s=this._getQueryableCameraConfig(t,i);if(!s)continue;let o=null;if(n.hasClip||n.hasSnapshot||!e.has_clip&&!e.has_snapshot?n.hasSnapshot&&e.has_snapshot?o="snapshot":n.hasClip&&e.has_clip&&(o="clip"):o=e.has_clip?"clip":"snapshot",!o)continue;const c=Te.createEventViewMedia(o,i,s,e,e.sub_label?this._splitSubLabels(e.sub_label):void 0);c&&r.push(c)}return r}generateMediaFromRecordings(e,t,n,a){if(!Se.isFrigateRecordingQueryResults(a))return null;const r=[];for(const n of a.recordings){const a=this._getQueryableCameraConfig(t,n.cameraID);if(!a)continue;const i=Te.createRecordingViewMedia(n.cameraID,n,a,this.getCameraMetadata(e,a).title);i&&r.push(i)}return r}getQueryResultMaxAge(e){return e.type===b.Event||e.type===b.Recording?60:null}async getMediaSeekTime(e,t,n,a,r){const i=n.getStartTime(),s=n.getEndTime();if(!i||!s||as)return null;const o=n.getCameraID(),c={cameraIDs:new Set([o]),start:i,end:s,type:b.RecordingSegments},g=await this.getRecordingSegments(e,t,c,r);return g?this._getSeekTimeInSegments(i,a,Array.from(g.values())[0].segments):null}_getQueryableCameraConfig(e,t){const n=e.getCameraConfig(t);return!n||V(n)?null:n}_splitSubLabels(e){return e.split(",").map((e=>e.trim()))}async getMediaMetadata(e,t,n,a){const i=new Map;if((a?.useCache??1)&&this._requestCache.has(n)){const e=this._requestCache.get(n);if(e)return i.set(n,e),i}const s=new Set,o=new Set,c=new Set,g=new Set,l=this._buildInstanceToCameraIDMapFromQuery(t,n.cameraIDs),u=async(n,a)=>{const i=this._getFrigateCameraNamesForCameraIDs(t,a);for(const t of await(async(e,t)=>await r(e,k,{type:"frigate/events/summary",instance_id:t,timezone:e.config.time_zone},!0))(e,n))i.has(t.camera)&&(t.label&&s.add(t.label),t.zones.length&&t.zones.forEach(o.add,o),t.day&&c.add(t.day),t.sub_label&&this._splitSubLabels(t.sub_label).forEach(g.add,g))},m=async n=>{const r=await this.getRecordings(e,t,{type:b.Recording,cameraIDs:n},a);if(r)for(const e of r.values())if(Se.isFrigateRecordingQueryResults(e))for(const t of e.recordings)c.add(M(t.startTime))};await D([...l.entries()],(([e,t])=>(async()=>{await Promise.all([u(e,t),m(t)])})()));const d={type:C.MediaMetadata,engine:p.Frigate,metadata:{...s.size&&{what:s},...o.size&&{where:o},...c.size&&{days:c},...g.size&&{tags:g}},expiry:v(new Date,{seconds:60}),cached:!1};return(a?.useCache??1)&&this._requestCache.set(n,{...d,cached:!0},d.expiry),i.set(n,d),i}async _garbageCollectSegments(e,t){const n=this._recordingSegmentsCache.getCameraIDs(),a={cameraIDs:new Set(n),type:b.Recording},r=(e,t)=>`${e}/${t.getDate()}/${t.getHours()}`,i=await this.getRecordings(e,t,a);if(i)for(const[e,t]of i){if(!Se.isFrigateRecordingQueryResults(t))continue;const n=new Set;for(const e of t.recordings)n.add(r(e.cameraID,e.startTime));const a=Array.from(e.cameraIDs)[0];this._recordingSegmentsCache.expireMatches(a,(e=>{const t=r(a,j(e.start_time));return!n.has(t)}))}}_getSeekTimeInSegments(e,t,n){if(!n.length)return null;let a=0;for(const r of n){const n=j(r.start_time);if(n>t)break;const i=j(r.end_time),s=nt?t:i).getTime()-s.getTime()}return a/1e3}getMediaCapabilities(e){return{canFavorite:_.isEvent(e),canDownload:!0}}getCameraMetadata(e,t){const n=super.getCameraMetadata(e,t);return{title:t.title??T(e,t.camera_entity)??T(e,t.webrtc_card?.entity)??d(t.frigate?.camera_name)??t.id??"",icon:n.icon,engineLogo:I}}getCameraEndpoints(e,t){const n=(()=>{if(!e.frigate.url)return null;if(!e.frigate.camera_name)return{endpoint:e.frigate.url};const n=`${e.frigate.url}/cameras/`+e.frigate.camera_name;if("live"===t?.view)return{endpoint:n};const a=`${e.frigate.url}/events?camera=`+e.frigate.camera_name,r=`${e.frigate.url}/recording/`+e.frigate.camera_name;switch(t?.media?.getMediaType()){case"clip":case"snapshot":return{endpoint:a};case"recording":const e=t.media.getStartTime();if(e)return{endpoint:r+F(e,"yyyy-MM-dd/HH")}}switch(t?.view){case"clip":case"clips":case"snapshots":case"snapshot":return{endpoint:a};case"recording":case"recordings":return{endpoint:r}}return{endpoint:n}})(),a=E(e,{url:e.go2rtc?.url??`/api/frigate/${e.frigate.client_id}/mse`,stream:e.go2rtc?.stream??e.frigate.camera_name}),r={endpoint:`/api/frigate/${e.frigate.client_id}/jsmpeg/${e.frigate.camera_name}`,sign:!0},i=(()=>{const t=e.frigate.camera_name?e.frigate.camera_name:null;return t?{endpoint:t}:null})();return{...super.getCameraEndpoints(e,t),...n&&{ui:n},...a&&{go2rtc:a},...r&&{jsmpeg:r},...i&&{webrtcCard:i}}}async executePTZAction(e,t,n,a){const r=t.camera_entity;("preset"!==n||a?.preset)&&await e.callService("frigate","ptz",{entity_id:r,action:"stop"===a?.phase?"stop":"zoom_in"===n||"zoom_out"===n?"zoom":"preset"===n?"preset":"move",..."stop"!==a?.phase&&{argument:"zoom_in"===n?"in":"zoom_out"===n?"out":"preset"===n?a?.preset:n}})}}export{Me as FrigateCameraManagerEngine}; diff --git a/config/www/community/frigate-hass-card/engine-frigate-3f150159.js.gz b/config/www/community/frigate-hass-card/engine-frigate-3f150159.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..b91d8fc21a4db8edd45ea1c3afdf2defbe23c94e GIT binary patch literal 8638 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 QmWO}&e{bA;=F(^Y04V&r!vFvP literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/engine-frigate-69a32a9e.js b/config/www/community/frigate-hass-card/engine-frigate-69a32a9e.js new file mode 100644 index 00000000..57802294 --- /dev/null +++ b/config/www/community/frigate-hass-card/engine-frigate-69a32a9e.js @@ -0,0 +1,3 @@ +import{c$ as e,dX as t,dY as n,dZ as a,d_ as r,d$ as i,l as s,e0 as o,e1 as c,e2 as g,e3 as l,d7 as u,dQ as m,k as d,i as f,dd as h,e4 as p,dj as _,d5 as y,d3 as b,e5 as w,e6 as D,e7 as C,dN as v,j as T,e8 as I,d8 as S,da as M,d9 as F}from"./card-320adb66.js";import{C as $}from"./engine-86b0096c.js";import{C as z,G as N,g as E}from"./engine-generic-39deaa91.js";import{a as R,V as Y}from"./media-c9012082.js";import{s as x,e as H}from"./startOfHour-b41e160a.js";function j(t){return e(1e3*t)}const Z=n.object({camera:n.string(),end_time:n.number().nullable(),false_positive:n.boolean().nullable(),has_clip:n.boolean(),has_snapshot:n.boolean(),id:n.string(),label:n.string(),sub_label:n.string().nullable(),start_time:n.number(),top_score:n.number().nullable(),zones:n.string().array(),retain_indefinitely:n.boolean().optional()}).array(),q=n.object({hour:n.preprocess((e=>Number(e)),n.number().min(0).max(23)),duration:n.number().min(0),events:n.number().min(0)}),U=n.object({day:n.preprocess((e=>"string"==typeof e?a(e):e),n.date()),events:n.number(),hours:q.array()}).array(),W=n.object({start_time:n.number(),end_time:n.number(),id:n.string()}).array(),Q=n.object({success:n.boolean(),message:n.string()}),k=n.object({camera:n.string(),day:n.string(),label:n.string(),sub_label:n.string().nullable(),zones:n.string().array()}).array(),P=n.object({name:n.string().optional(),features:n.string().array().optional(),presets:n.string().array().optional()}),A=n.object({camera:n.string(),snapshot:n.object({frame_time:n.number()}).nullable(),has_clip:n.boolean(),has_snapshot:n.boolean(),label:n.string(),current_zones:n.string().array()}),O=n.object({before:A,after:A,type:n.enum(["new","update","end"])});const L=async(e,t)=>await r(e,Z,{type:"frigate/events/get",...t},!0),V=e=>"birdseye"===e.frigate.camera_name;class G extends z{constructor(e,t,n){super(e,t,n),this._frigateEventHandler=e=>{const t=!e.before.has_snapshot&&e.after.has_snapshot||e.before.snapshot?.frame_time!==e.after.snapshot?.frame_time,n=!e.before.has_clip&&e.after.has_clip,a=this.getConfig();if(a.frigate.zones?.length&&!a.frigate.zones.some((t=>e.after.current_zones.includes(t)))||a.frigate.labels?.length&&!a.frigate.labels.includes(e.after.label))return;const r=a.triggers.events;(r.includes("events")||r.includes("snapshots")&&t||r.includes("clips")&&n)&&this._eventCallback?.({fidelity:"high",cameraID:this.getID(),type:e.type,clip:n&&r.includes("clips"),snapshot:t&&r.includes("snapshots")})}}async initialize(e){return await this._initializeConfig(e.hass,e.entityRegistryManager),await this._initializeCapabilities(e.hass),await this._subscribeToEvents(e.hass,e.frigateEventWatcher),await super.initialize(e)}async _initializeConfig(e,n){const a=this.getConfig(),r=!!a.frigate?.camera_name,i=a.triggers.motion||a.triggers.occupancy;let g=null;const l=o(a);if(l&&(!r||i)&&(g=await n.getEntity(e,l),!g))throw new c(s("error.no_camera_entity"),a);if(g&&!r){const e=this._getFrigateCameraNameFromEntity(g);e&&(this._config.frigate.camera_name=e)}if(i){const r=await n.getMatchingEntities(e,(e=>e.config_entry_id===g?.config_entry_id&&!e.disabled_by&&e.entity_id.startsWith("binary_sensor.")));if(a.triggers.motion){const e=this._getMotionSensor(a,[...r.values()]);e&&a.triggers.entities.push(e)}if(a.triggers.occupancy){const e=this._getOccupancySensor(a,[...r.values()]);e&&a.triggers.entities.push(...e)}a.triggers.entities=(u=a.triggers.entities)&&u.length?t(u):[]}var u}async _initializeCapabilities(e){const t=this.getConfig(),n=g(this.getConfig()),a=await this._getPTZCapabilities(e,t),r=n||a?{...a,...n}:null,i=V(t);this._capabilities=new l({"favorite-events":!i,"favorite-recordings":!1,seek:!i,clips:!i,snapshots:!i,recordings:!i,live:!0,menu:!0,substream:!0,...r&&{ptz:r}},{disable:t.capabilities?.disable,disableExcept:t.capabilities?.disable_except})}_getFrigateCameraNameFromEntity(e){if("frigate"===e.platform&&e.unique_id&&"string"==typeof e.unique_id){const t=e.unique_id.match(/:camera:(?[^:]+)$/);if(t&&t.groups)return t.groups.camera}return null}async _getPTZCapabilities(e,t){if(!t.frigate.camera_name||V(t))return null;let n=null;try{n=await(async(e,t,n)=>await r(e,P,{type:"frigate/ptz/info",instance_id:t,camera:n},!0))(e,t.frigate.client_id,t.frigate.camera_name)}catch(e){return u(e),null}const a=[...n.features?.includes("pt")?["continuous"]:[]],i=[...n.features?.includes("zoom")?["continuous"]:[]],s=n.presets;return a.length||i.length||s?.length?{...a&&{left:a,right:a,up:a,down:a},...i&&{zoomIn:i,zoomOut:i},...s&&{presets:s}}:null}_getMotionSensor(e,t){return e.frigate.camera_name?t.find((t=>"string"==typeof t.unique_id&&!!t.unique_id?.match(new RegExp(`:motion_sensor:${e.frigate.camera_name}`))))?.entity_id??null:null}_getOccupancySensor(e,t){const n=[],a=(e,a)=>{const r=t.find((t=>"string"==typeof t.unique_id&&!!t.unique_id?.match(new RegExp(`:occupancy_sensor:${e}_${a}`))))?.entity_id??null;r&&n.push(r)};if(e.frigate.camera_name){const t=e.frigate.zones?.length?e.frigate.zones:[e.frigate.camera_name],r=e.frigate.labels?.length?e.frigate.labels:["all"];for(const e of t)for(const t of r)a(e,t);if(n.length)return n}return null}async _subscribeToEvents(e,t){const n=this.getConfig();if(!n.triggers.events.length||!n.frigate.camera_name)return; +/* istanbul ignore next -- exercising the matcher is not possible when the + test uses an event watcher -- @preserve */const a={instanceID:n.frigate.client_id,callback:e=>this._frigateEventHandler(e),matcher:e=>e.after.camera===n.frigate.camera_name};await t.subscribe(e,a),this._onDestroy((()=>t.unsubscribe(a)))}}class J{constructor(){this._requests=[],this._unsubscribeCallback={}}async subscribe(e,t){const n=!this._hasSubscribers(t.instanceID);this._requests.push(t),n&&(this._unsubscribeCallback[t.instanceID]=await e.connection.subscribeMessage((e=>this._receiveHandler(t.instanceID,e)),{type:"frigate/events/subscribe",instance_id:t.instanceID}))}async unsubscribe(e){this._requests=this._requests.filter((t=>t!==e)),this._hasSubscribers(e.instanceID)||(await this._unsubscribeCallback[e.instanceID](),delete this._unsubscribeCallback[e.instanceID])}_hasSubscribers(e){return!!this._requests.filter((t=>t.instanceID===e)).length}_receiveHandler(e,t){let n;try{n=JSON.parse(t)}catch(e){return void console.warn("Received non-JSON payload as Frigate event",t)}const a=O.safeParse(n);if(a.success)for(const t of this._requests)t.instanceID!==e||t.matcher&&!t.matcher(a.data)||t.callback(a.data);else console.warn("Received malformed Frigate event from Home Assistant",t)}}function X(e,t){const n=function(e){if(!K[e]){const t=new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:"America/New_York",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date("2014-06-25T04:00:00.123Z")),n="06/25/2014, 00:00:00"===t||"‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00"===t;K[e]=n?new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:e,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:e,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}return K[e]}(t);return"formatToParts"in n?function(e,t){try{const n=e.formatToParts(t),a=[];for(let e=0;e=0?i:1e3+i,a-r}function se(e,t){return-23<=e&&e<=23&&(null==t||0<=t&&t<=59)}const oe={};function ce(e){const t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),+e-+t}const ge=36e5,le=6e4,ue=2,me={dateTimePattern:/^([0-9W+-]+)(T| )(.*)/,datePattern:/^([0-9W+-]+)(.*)/,plainTime:/:/,YY:/^(\d{2})$/,YYY:[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],YYYY:/^(\d{4})/,YYYYY:[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],MM:/^-(\d{2})$/,DDD:/^-?(\d{3})$/,MMDD:/^-?(\d{2})-?(\d{2})$/,Www:/^-?W(\d{2})$/,WwwD:/^-?W(\d{2})-?(\d{1})$/,HH:/^(\d{2}([.,]\d*)?)$/,HHMM:/^(\d{2}):?(\d{2}([.,]\d*)?)$/,HHMMSS:/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,timeZone:/(Z|[+-]\d{2}(?::?\d{2})?| UTC| [a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?)$/};function de(e,t={}){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");if(null===e)return new Date(NaN);const n=null==t.additionalDigits?ue:Number(t.additionalDigits);if(2!==n&&1!==n&&0!==n)throw new RangeError("additionalDigits must be 0, 1 or 2");if(e instanceof Date||"object"==typeof e&&"[object Date]"===Object.prototype.toString.call(e))return new Date(e.getTime());if("number"==typeof e||"[object Number]"===Object.prototype.toString.call(e))return new Date(e);if("[object String]"!==Object.prototype.toString.call(e))return new Date(NaN);const a=function(e){const t={};let n,a=me.dateTimePattern.exec(e);a?(t.date=a[1],n=a[3]):(a=me.datePattern.exec(e),a?(t.date=a[1],n=a[2]):(t.date=null,n=e));if(n){const e=me.timeZone.exec(n);e?(t.time=n.replace(e[1],""),t.timeZone=e[1].trim()):t.time=n}return t}(e),{year:r,restDateString:i}=function(e,t){if(e){const n=me.YYY[t],a=me.YYYYY[t];let r=me.YYYY.exec(e)||a.exec(e);if(r){const t=r[1];return{year:parseInt(t,10),restDateString:e.slice(t.length)}}if(r=me.YY.exec(e)||n.exec(e),r){const t=r[1];return{year:100*parseInt(t,10),restDateString:e.slice(t.length)}}}return{year:null}}(a.date,n),s=function(e,t){if(null===t)return null;let n,a,r;if(!e||!e.length)return n=new Date(0),n.setUTCFullYear(t),n;let i=me.MM.exec(e);if(i)return n=new Date(0),a=parseInt(i[1],10)-1,ye(t,a)?(n.setUTCFullYear(t,a),n):new Date(NaN);if(i=me.DDD.exec(e),i){n=new Date(0);const e=parseInt(i[1],10);return function(e,t){if(t<1)return!1;const n=_e(e);if(n&&t>366)return!1;if(!n&&t>365)return!1;return!0}(t,e)?(n.setUTCFullYear(t,0,e),n):new Date(NaN)}if(i=me.MMDD.exec(e),i){n=new Date(0),a=parseInt(i[1],10)-1;const e=parseInt(i[2],10);return ye(t,a,e)?(n.setUTCFullYear(t,a,e),n):new Date(NaN)}if(i=me.Www.exec(e),i)return r=parseInt(i[1],10)-1,be(r)?fe(t,r):new Date(NaN);if(i=me.WwwD.exec(e),i){r=parseInt(i[1],10)-1;const e=parseInt(i[2],10)-1;return be(r,e)?fe(t,r,e):new Date(NaN)}return null}(i,r);if(null===s||isNaN(s.getTime()))return new Date(NaN);if(s){const e=s.getTime();let n,r=0;if(a.time&&(r=function(e){let t,n,a=me.HH.exec(e);if(a)return t=parseFloat(a[1].replace(",",".")),we(t)?t%24*ge:NaN;if(a=me.HHMM.exec(e),a)return t=parseInt(a[1],10),n=parseFloat(a[2].replace(",",".")),we(t,n)?t%24*ge+n*le:NaN;if(a=me.HHMMSS.exec(e),a){t=parseInt(a[1],10),n=parseInt(a[2],10);const e=parseFloat(a[3].replace(",","."));return we(t,n,e)?t%24*ge+n*le+1e3*e:NaN}return null}(a.time),null===r||isNaN(r)))return new Date(NaN);if(a.timeZone||t.timeZone){if(n=re(a.timeZone||t.timeZone,new Date(e+r)),isNaN(n))return new Date(NaN)}else n=ce(new Date(e+r)),n=ce(new Date(e+r+n));return new Date(e+r+n)}return new Date(NaN)}function fe(e,t,n){t=t||0,n=n||0;const a=new Date(0);a.setUTCFullYear(e,0,4);const r=7*t+n+1-(a.getUTCDay()||7);return a.setUTCDate(a.getUTCDate()+r),a}const he=[31,28,31,30,31,30,31,31,30,31,30,31],pe=[31,29,31,30,31,30,31,31,30,31,30,31];function _e(e){return e%400==0||e%4==0&&e%100!=0}function ye(e,t,n){if(t<0||t>11)return!1;if(null!=n){if(n<1)return!1;const a=_e(e);if(a&&n>pe[t])return!1;if(!a&&n>he[t])return!1}return!0}function be(e,t){return!(e<0||e>52)&&(null==t||!(t<0||t>6))}function we(e,t,n){return!(e<0||e>=25)&&((null==t||!(t<0||t>=60))&&(null==n||!(n<0||n>=60)))}const De=e=>{const t=Intl.DateTimeFormat().resolvedOptions().timeZone,n=Math.round(e.end_time?e.end_time-e.start_time:Date.now()/1e3-e.start_time),a=null!==e.top_score?` ${Math.round(100*e.top_score)}%`:"";return`${m(function(e,t,n){const a=re(t,e=de(e,n),!0),r=new Date(e.getTime()-a),i=new Date(0);return i.setFullYear(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate()),i.setHours(r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds()),i}(1e3*e.start_time,t))} [${n}s, ${d(e.label)}${a}]`};class Ce extends R{constructor(e,t,n,a,r,i){super(e,t),this._event=n,this._contentID=a,this._thumbnail=r,this._subLabels=i??null}getStartTime(){return j(this._event.start_time)}getEndTime(){return this._event.end_time?j(this._event.end_time):null}inProgress(){return!this.getEndTime()}getVideoContentType(){return Y.HLS}getID(){return this._event.id}getContentID(){return this._contentID}getTitle(){return De(this._event)}getThumbnail(){return this._thumbnail}isFavorite(){return this._event.retain_indefinitely??null}setFavorite(e){this._event.retain_indefinitely=e}getWhat(){return[this._event.label]}getWhere(){const e=this._event.zones;return e.length?e:null}getScore(){return this._event.top_score}getTags(){return this._subLabels}isGroupableWith(e){return this.getMediaType()===e.getMediaType()&&f(this.getWhere(),e.getWhere())&&f(this.getWhat(),e.getWhat())}}class ve extends R{constructor(e,t,n,a,r,i){super(e,t),this._recording=n,this._id=a,this._contentID=r,this._title=i}getID(){return this._id}getStartTime(){return this._recording.startTime}getEndTime(){return this._recording.endTime}inProgress(){return!this.getEndTime()}getVideoContentType(){return Y.HLS}getContentID(){return this._contentID}getTitle(){return this._title}getEventCount(){return this._recording.events}}class Te{static createEventViewMedia(e,t,n,a,r){return"clip"===e&&!a.has_clip||"snapshot"===e&&!a.has_snapshot||!n.frigate.client_id||!n.frigate.camera_name?null:new Ce(e,t,a,((e,t,n,a)=>`media-source://frigate/${e}/event/${a}/${t}/${n.id}`)(n.frigate.client_id,n.frigate.camera_name,a,"clip"===e?"clips":"snapshots"),((e,t)=>`/api/frigate/${e}/thumbnail/${t.id}`)(n.frigate.client_id,a),r)}static createRecordingViewMedia(e,t,n,a){return n.frigate.client_id&&n.frigate.camera_name?new ve("recording",e,t,((e,t)=>`${e.frigate?.client_id??""}/${e.frigate.camera_name??""}/${t.startTime.getTime()}/${t.endTime.getTime()}`)(n,t),((e,t,n)=>["media-source://frigate",e,"recordings",t,`${n.startTime.getFullYear()}-${String(n.startTime.getMonth()+1).padStart(2,"0")}-${String(String(n.startTime.getDate()).padStart(2,"0"))}`,String(n.startTime.getHours()).padStart(2,"0")].join("/"))(n.frigate.client_id,n.frigate.camera_name,t),((e,t)=>`${e} ${m(t.startTime)}`)(a,t)):null}}class Ie{static isFrigateMedia(e){return this.isFrigateEvent(e)||this.isFrigateRecording(e)}static isFrigateEvent(e){return e instanceof Ce}static isFrigateRecording(e){return e instanceof ve}}class Se{static isFrigateEventQueryResults(e){return e.engine===p.Frigate&&e.type===C.Event}static isFrigateRecordingQueryResults(e){return e.engine===p.Frigate&&e.type===C.Recording}static isFrigateRecordingSegmentsResults(e){return e.engine===p.Frigate&&e.type===C.RecordingSegments}}class Me extends N{constructor(e,t,n,a,r){super(t,r),this._throttledSegmentGarbageCollector=h(this._garbageCollectSegments.bind(this),36e5,{leading:!1,trailing:!0}),this._entityRegistryManager=e,this._frigateEventWatcher=new J,this._recordingSegmentsCache=n,this._requestCache=a}getEngineType(){return p.Frigate}async createCamera(e,t){const n=new G(t,this,{eventCallback:this._eventCallback});return await n.initialize({hass:e,entityRegistryManager:this._entityRegistryManager,stateWatcher:this._stateWatcher,frigateEventWatcher:this._frigateEventWatcher})}async getMediaDownloadPath(e,t,n){return Ie.isFrigateEvent(n)?{endpoint:`/api/frigate/${t.frigate.client_id}/notifications/${n.getID()}/`+(_.isClip(n)?"clip.mp4":"snapshot.jpg")+"?download=true",sign:!0}:Ie.isFrigateRecording(n)?{endpoint:`/api/frigate/${t.frigate.client_id}/recording/${t.frigate.camera_name}/start/${Math.floor(n.getStartTime().getTime()/1e3)}/end/${Math.floor(n.getEndTime().getTime()/1e3)}?download=true`,sign:!0}:null}generateDefaultEventQuery(e,t,n){const a=[...e.getCameraConfigs(t)],r=y(a.map((e=>e?.frigate.zones)),f),i=y(a.map((e=>e?.frigate.labels)),f);if(1===r.length&&1===i.length)return[{type:b.Event,cameraIDs:t,...i[0]&&{what:new Set(i[0])},...r[0]&&{where:new Set(r[0])},...n}];const s=[];for(const a of t){const t=e.getCameraConfig(a);t&&s.push({type:b.Event,cameraIDs:new Set([a]),...t.frigate.labels&&{what:new Set(t.frigate.labels)},...t.frigate.zones&&{where:new Set(t.frigate.zones)},...n})}return s.length?s:null}generateDefaultRecordingQuery(e,t,n){return[{type:b.Recording,cameraIDs:t,...n}]}generateDefaultRecordingSegmentsQuery(e,t,n){return n.start&&n.end?[{type:b.RecordingSegments,cameraIDs:t,start:n.start,end:n.end,...n}]:null}async favoriteMedia(e,t,n,a){Ie.isFrigateEvent(n)&&(await async function(e,t,n,a){const o={type:"frigate/event/retain",instance_id:t,event_id:n,retain:a},c=await r(e,Q,o,!0);if(!c.success)throw new i(s("error.failed_retain"),{request:o,response:c})}(e,t.frigate.client_id,n.getID(),a),n.setFavorite(a))}_buildInstanceToCameraIDMapFromQuery(e,t){const n=new Map;for(const a of t){const t=this._getQueryableCameraConfig(e,a),r=t?.frigate.client_id;r&&(n.has(r)||n.set(r,new Set),n.get(r)?.add(a))}return n}_getFrigateCameraNamesForCameraIDs(e,t){const n=new Set;for(const a of t){const t=this._getQueryableCameraConfig(e,a);t?.frigate.camera_name&&n.add(t.frigate.camera_name)}return n}async getEvents(e,t,n,a){const r=new Map,i=async(i,s)=>{if(!s||!s.size)return;const o={...n,cameraIDs:s},c=a?.useCache??1?this._requestCache.get(o):null;if(c)return void r.set(n,c);const g={instance_id:i,cameras:Array.from(this._getFrigateCameraNamesForCameraIDs(t,s)),...n.what&&{labels:Array.from(n.what)},...n.where&&{zones:Array.from(n.where)},...n.tags&&{sub_labels:Array.from(n.tags)},...n.end&&{before:Math.floor(n.end.getTime()/1e3)},...n.start&&{after:Math.floor(n.start.getTime()/1e3)},...n.limit&&{limit:n.limit},...n.hasClip&&{has_clip:n.hasClip},...n.hasSnapshot&&{has_snapshot:n.hasSnapshot},...n.favorite&&{favorites:n.favorite},limit:n?.limit??$},l={type:C.Event,engine:p.Frigate,instanceID:i,events:await L(e,g),expiry:v(new Date,{seconds:60}),cached:!1};(a?.useCache??1)&&this._requestCache.set(n,{...l,cached:!0},l.expiry),r.set(o,l)},s=this._buildInstanceToCameraIDMapFromQuery(t,n.cameraIDs);return await Promise.all(Array.from(s.keys()).map((e=>i(e,s.get(e))))),r.size?r:null}async getRecordings(e,t,n,a){const i=new Map,s=async(n,s)=>{const o={...n,cameraIDs:new Set([s])},c=a?.useCache??1?this._requestCache.get(o):null;if(c)return void i.set(o,c);const g=this._getQueryableCameraConfig(t,s);if(!g||!g.frigate.camera_name)return;const l=await(async(e,t,n)=>await r(e,U,{type:"frigate/recordings/summary",instance_id:t,camera:n,timezone:e.config.time_zone},!0))(e,g.frigate.client_id,g.frigate.camera_name);let u=[];for(const e of l??[])for(const t of e.hours){const n=v(e.day,{hours:t.hour}),a=x(n),r=H(n);(!o.start||a>=o.start)&&(!o.end||r<=o.end)&&u.push({cameraID:s,startTime:a,endTime:r,events:t.events})}void 0!==o.limit&&(u=S(u,(e=>e.startTime),"desc").slice(0,o.limit));const m={type:C.Recording,engine:p.Frigate,instanceID:g.frigate.client_id,recordings:u,expiry:v(new Date,{seconds:60}),cached:!1};(a?.useCache??1)&&this._requestCache.set(o,{...m,cached:!0},m.expiry),i.set(o,m)};return await Promise.all(Array.from(n.cameraIDs).map((e=>s(n,e)))),i.size?i:null}async getRecordingSegments(e,t,n,a){const i=new Map,s=async(n,s)=>{const o={...n,cameraIDs:new Set([s])},c=this._getQueryableCameraConfig(t,s);if(!c||!c.frigate.camera_name)return;const g={start:o.start,end:o.end},l=a?.useCache??1?this._recordingSegmentsCache.get(s,g):null;if(l)return void i.set(o,{type:C.RecordingSegments,engine:p.Frigate,instanceID:c.frigate.client_id,segments:l,cached:!0});const u={instance_id:c.frigate.client_id,camera:c.frigate.camera_name,after:Math.floor(o.start.getTime()/1e3),before:Math.floor(o.end.getTime()/1e3)},m=await(async(e,t)=>await r(e,W,{type:"frigate/recordings/get",...t},!0))(e,u);(a?.useCache??1)&&this._recordingSegmentsCache.add(s,g,m),i.set(o,{type:C.RecordingSegments,engine:p.Frigate,instanceID:c.frigate.client_id,segments:m,cached:!1})};return await Promise.all(Array.from(n.cameraIDs).map((e=>s(n,e)))),w((()=>this._throttledSegmentGarbageCollector(e,t))),i.size?i:null}_getCameraIDMatch(e,t,n,a){if(1===t.cameraIDs.size)return[...t.cameraIDs][0];for(const[t,r]of e.getCameraConfigEntries())if(r.frigate.client_id===n&&r.frigate.camera_name===a)return t;return null}generateMediaFromEvents(e,t,n,a){if(!Se.isFrigateEventQueryResults(a))return null;const r=[];for(const e of a.events){const i=this._getCameraIDMatch(t,n,a.instanceID,e.camera);if(!i)continue;const s=this._getQueryableCameraConfig(t,i);if(!s)continue;let o=null;if(n.hasClip||n.hasSnapshot||!e.has_clip&&!e.has_snapshot?n.hasSnapshot&&e.has_snapshot?o="snapshot":n.hasClip&&e.has_clip&&(o="clip"):o=e.has_clip?"clip":"snapshot",!o)continue;const c=Te.createEventViewMedia(o,i,s,e,e.sub_label?this._splitSubLabels(e.sub_label):void 0);c&&r.push(c)}return r}generateMediaFromRecordings(e,t,n,a){if(!Se.isFrigateRecordingQueryResults(a))return null;const r=[];for(const n of a.recordings){const a=this._getQueryableCameraConfig(t,n.cameraID);if(!a)continue;const i=Te.createRecordingViewMedia(n.cameraID,n,a,this.getCameraMetadata(e,a).title);i&&r.push(i)}return r}getQueryResultMaxAge(e){return e.type===b.Event||e.type===b.Recording?60:null}async getMediaSeekTime(e,t,n,a,r){const i=n.getStartTime(),s=n.getEndTime();if(!i||!s||as)return null;const o=n.getCameraID(),c={cameraIDs:new Set([o]),start:i,end:s,type:b.RecordingSegments},g=await this.getRecordingSegments(e,t,c,r);return g?this._getSeekTimeInSegments(i,a,Array.from(g.values())[0].segments):null}_getQueryableCameraConfig(e,t){const n=e.getCameraConfig(t);return!n||V(n)?null:n}_splitSubLabels(e){return e.split(",").map((e=>e.trim()))}async getMediaMetadata(e,t,n,a){const i=new Map;if((a?.useCache??1)&&this._requestCache.has(n)){const e=this._requestCache.get(n);if(e)return i.set(n,e),i}const s=new Set,o=new Set,c=new Set,g=new Set,l=this._buildInstanceToCameraIDMapFromQuery(t,n.cameraIDs),u=async(n,a)=>{const i=this._getFrigateCameraNamesForCameraIDs(t,a);for(const t of await(async(e,t)=>await r(e,k,{type:"frigate/events/summary",instance_id:t,timezone:e.config.time_zone},!0))(e,n))i.has(t.camera)&&(t.label&&s.add(t.label),t.zones.length&&t.zones.forEach(o.add,o),t.day&&c.add(t.day),t.sub_label&&this._splitSubLabels(t.sub_label).forEach(g.add,g))},m=async n=>{const r=await this.getRecordings(e,t,{type:b.Recording,cameraIDs:n},a);if(r)for(const e of r.values())if(Se.isFrigateRecordingQueryResults(e))for(const t of e.recordings)c.add(M(t.startTime))};await D([...l.entries()],(([e,t])=>(async()=>{await Promise.all([u(e,t),m(t)])})()));const d={type:C.MediaMetadata,engine:p.Frigate,metadata:{...s.size&&{what:s},...o.size&&{where:o},...c.size&&{days:c},...g.size&&{tags:g}},expiry:v(new Date,{seconds:60}),cached:!1};return(a?.useCache??1)&&this._requestCache.set(n,{...d,cached:!0},d.expiry),i.set(n,d),i}async _garbageCollectSegments(e,t){const n=this._recordingSegmentsCache.getCameraIDs(),a={cameraIDs:new Set(n),type:b.Recording},r=(e,t)=>`${e}/${t.getDate()}/${t.getHours()}`,i=await this.getRecordings(e,t,a);if(i)for(const[e,t]of i){if(!Se.isFrigateRecordingQueryResults(t))continue;const n=new Set;for(const e of t.recordings)n.add(r(e.cameraID,e.startTime));const a=Array.from(e.cameraIDs)[0];this._recordingSegmentsCache.expireMatches(a,(e=>{const t=r(a,j(e.start_time));return!n.has(t)}))}}_getSeekTimeInSegments(e,t,n){if(!n.length)return null;let a=0;for(const r of n){const n=j(r.start_time);if(n>t)break;const i=j(r.end_time),s=nt?t:i).getTime()-s.getTime()}return a/1e3}getMediaCapabilities(e){return{canFavorite:_.isEvent(e),canDownload:!0}}getCameraMetadata(e,t){const n=super.getCameraMetadata(e,t);return{title:t.title??T(e,t.camera_entity)??T(e,t.webrtc_card?.entity)??d(t.frigate?.camera_name)??t.id??"",icon:n.icon,engineLogo:I}}getCameraEndpoints(e,t){const n=(()=>{if(!e.frigate.url)return null;if(!e.frigate.camera_name)return{endpoint:e.frigate.url};const n=`${e.frigate.url}/cameras/`+e.frigate.camera_name;if("live"===t?.view)return{endpoint:n};const a=`${e.frigate.url}/events?camera=`+e.frigate.camera_name,r=`${e.frigate.url}/recording/`+e.frigate.camera_name;switch(t?.media?.getMediaType()){case"clip":case"snapshot":return{endpoint:a};case"recording":const e=t.media.getStartTime();if(e)return{endpoint:r+F(e,"yyyy-MM-dd/HH")}}switch(t?.view){case"clip":case"clips":case"snapshots":case"snapshot":return{endpoint:a};case"recording":case"recordings":return{endpoint:r}}return{endpoint:n}})(),a=E(e,{url:e.go2rtc?.url??`/api/frigate/${e.frigate.client_id}/mse`,stream:e.go2rtc?.stream??e.frigate.camera_name}),r={endpoint:`/api/frigate/${e.frigate.client_id}/jsmpeg/${e.frigate.camera_name}`,sign:!0},i=(()=>{const t=e.frigate.camera_name?e.frigate.camera_name:null;return t?{endpoint:t}:null})();return{...super.getCameraEndpoints(e,t),...n&&{ui:n},...a&&{go2rtc:a},...r&&{jsmpeg:r},...i&&{webrtcCard:i}}}async executePTZAction(e,t,n,a){const r=t.camera_entity;("preset"!==n||a?.preset)&&await e.callService("frigate","ptz",{entity_id:r,action:"stop"===a?.phase?"stop":"zoom_in"===n||"zoom_out"===n?"zoom":"preset"===n?"preset":"move",..."stop"!==a?.phase&&{argument:"zoom_in"===n?"in":"zoom_out"===n?"out":"preset"===n?a?.preset:n}})}}export{Me as FrigateCameraManagerEngine}; diff --git a/config/www/community/frigate-hass-card/engine-frigate-69a32a9e.js.gz b/config/www/community/frigate-hass-card/engine-frigate-69a32a9e.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..30cd08cf4b0d3c567e11876d70cf8a2dbf297ab9 GIT binary patch literal 8638 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 QdGMG22TV@{VA5y+0Prz_9{>OV literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/engine-frigate-7cd5392b.js b/config/www/community/frigate-hass-card/engine-frigate-7cd5392b.js new file mode 100644 index 00000000..3c65f46b --- /dev/null +++ b/config/www/community/frigate-hass-card/engine-frigate-7cd5392b.js @@ -0,0 +1,3 @@ +import{d3 as e,d_ as t,d$ as n,e0 as a,e1 as r,e2 as i,l as s,e3 as o,e4 as c,e5 as g,e6 as l,db as u,dT as m,k as d,i as f,dh as h,e7 as p,dn as _,d9 as y,d7 as b,e8 as w,e9 as D,ea as C,dQ as v,j as T,eb as I,dc as S,de as M,dd as F}from"./card-09c4bade.js";import{C as $}from"./engine-86b0096c.js";import{C as z,G as N,g as E}from"./engine-generic-458c9005.js";import{a as R,V as Y}from"./media-c9012082.js";import{s as x,e as H}from"./startOfHour-7a3519fb.js";function j(t){return e(1e3*t)}const Z=n.object({camera:n.string(),end_time:n.number().nullable(),false_positive:n.boolean().nullable(),has_clip:n.boolean(),has_snapshot:n.boolean(),id:n.string(),label:n.string(),sub_label:n.string().nullable(),start_time:n.number(),top_score:n.number().nullable(),zones:n.string().array(),retain_indefinitely:n.boolean().optional()}).array(),q=n.object({hour:n.preprocess((e=>Number(e)),n.number().min(0).max(23)),duration:n.number().min(0),events:n.number().min(0)}),U=n.object({day:n.preprocess((e=>"string"==typeof e?a(e):e),n.date()),events:n.number(),hours:q.array()}).array(),W=n.object({start_time:n.number(),end_time:n.number(),id:n.string()}).array(),Q=n.object({success:n.boolean(),message:n.string()}),k=n.object({camera:n.string(),day:n.string(),label:n.string(),sub_label:n.string().nullable(),zones:n.string().array()}).array(),P=n.object({name:n.string().optional(),features:n.string().array().optional(),presets:n.string().array().optional()}),A=n.object({camera:n.string(),snapshot:n.object({frame_time:n.number()}).nullable(),has_clip:n.boolean(),has_snapshot:n.boolean(),label:n.string(),current_zones:n.string().array()}),O=n.object({before:A,after:A,type:n.enum(["new","update","end"])});const L=async(e,t)=>await r(e,Z,{type:"frigate/events/get",...t},!0),V=e=>"birdseye"===e.frigate.camera_name;class G extends z{constructor(e,t,n){super(e,t,n),this._frigateEventHandler=e=>{const t=!e.before.has_snapshot&&e.after.has_snapshot||e.before.snapshot?.frame_time!==e.after.snapshot?.frame_time,n=!e.before.has_clip&&e.after.has_clip,a=this.getConfig();if(a.frigate.zones?.length&&!a.frigate.zones.some((t=>e.after.current_zones.includes(t)))||a.frigate.labels?.length&&!a.frigate.labels.includes(e.after.label))return;const r=a.triggers.events;(r.includes("events")||r.includes("snapshots")&&t||r.includes("clips")&&n)&&this._eventCallback?.({fidelity:"high",cameraID:this.getID(),type:e.type,clip:n&&r.includes("clips"),snapshot:t&&r.includes("snapshots")})}}async initialize(e){return await this._initializeConfig(e.hass,e.entityRegistryManager),await this._initializeCapabilities(e.hass),await this._subscribeToEvents(e.hass,e.frigateEventWatcher),await super.initialize(e)}async _initializeConfig(e,n){const a=this.getConfig(),r=!!a.frigate?.camera_name,i=a.triggers.motion||a.triggers.occupancy;let g=null;const l=o(a);if(l&&(!r||i)&&(g=await n.getEntity(e,l),!g))throw new c(s("error.no_camera_entity"),a);if(g&&!r){const e=this._getFrigateCameraNameFromEntity(g);e&&(this._config.frigate.camera_name=e)}if(i){const r=await n.getMatchingEntities(e,(e=>e.config_entry_id===g?.config_entry_id&&!e.disabled_by&&e.entity_id.startsWith("binary_sensor.")));if(a.triggers.motion){const e=this._getMotionSensor(a,[...r.values()]);e&&a.triggers.entities.push(e)}if(a.triggers.occupancy){const e=this._getOccupancySensor(a,[...r.values()]);e&&a.triggers.entities.push(...e)}a.triggers.entities=(u=a.triggers.entities)&&u.length?t(u):[]}var u}async _initializeCapabilities(e){const t=this.getConfig(),n=g(this.getConfig()),a=await this._getPTZCapabilities(e,t),r=n||a?{...a,...n}:null,i=V(t);this._capabilities=new l({"favorite-events":!i,"favorite-recordings":!1,seek:!i,clips:!i,snapshots:!i,recordings:!i,live:!0,menu:!0,substream:!0,...r&&{ptz:r}},{disable:t.capabilities?.disable,disableExcept:t.capabilities?.disable_except})}_getFrigateCameraNameFromEntity(e){if("frigate"===e.platform&&e.unique_id&&"string"==typeof e.unique_id){const t=e.unique_id.match(/:camera:(?[^:]+)$/);if(t&&t.groups)return t.groups.camera}return null}async _getPTZCapabilities(e,t){if(!t.frigate.camera_name||V(t))return null;let n=null;try{n=await(async(e,t,n)=>await r(e,P,{type:"frigate/ptz/info",instance_id:t,camera:n},!0))(e,t.frigate.client_id,t.frigate.camera_name)}catch(e){return u(e),null}const a=[...n.features?.includes("pt")?["continuous"]:[]],i=[...n.features?.includes("zoom")?["continuous"]:[]],s=n.presets;return a.length||i.length||s?.length?{...a&&{left:a,right:a,up:a,down:a},...i&&{zoomIn:i,zoomOut:i},...s&&{presets:s}}:null}_getMotionSensor(e,t){return e.frigate.camera_name?t.find((t=>"string"==typeof t.unique_id&&!!t.unique_id?.match(new RegExp(`:motion_sensor:${e.frigate.camera_name}`))))?.entity_id??null:null}_getOccupancySensor(e,t){const n=[],a=(e,a)=>{const r=t.find((t=>"string"==typeof t.unique_id&&!!t.unique_id?.match(new RegExp(`:occupancy_sensor:${e}_${a}`))))?.entity_id??null;r&&n.push(r)};if(e.frigate.camera_name){const t=e.frigate.zones?.length?e.frigate.zones:[e.frigate.camera_name],r=e.frigate.labels?.length?e.frigate.labels:["all"];for(const e of t)for(const t of r)a(e,t);if(n.length)return n}return null}async _subscribeToEvents(e,t){const n=this.getConfig();if(!n.triggers.events.length||!n.frigate.camera_name)return; +/* istanbul ignore next -- exercising the matcher is not possible when the + test uses an event watcher -- @preserve */const a={instanceID:n.frigate.client_id,callback:e=>this._frigateEventHandler(e),matcher:e=>e.after.camera===n.frigate.camera_name};await t.subscribe(e,a),this._onDestroy((()=>t.unsubscribe(a)))}}class J{constructor(){this._requests=[],this._unsubscribeCallback={}}async subscribe(e,t){const n=!this._hasSubscribers(t.instanceID);this._requests.push(t),n&&(this._unsubscribeCallback[t.instanceID]=await e.connection.subscribeMessage((e=>this._receiveHandler(t.instanceID,e)),{type:"frigate/events/subscribe",instance_id:t.instanceID}))}async unsubscribe(e){this._requests=this._requests.filter((t=>t!==e)),this._hasSubscribers(e.instanceID)||(await this._unsubscribeCallback[e.instanceID](),delete this._unsubscribeCallback[e.instanceID])}_hasSubscribers(e){return!!this._requests.filter((t=>t.instanceID===e)).length}_receiveHandler(e,t){let n;try{n=JSON.parse(t)}catch(e){return void console.warn("Received non-JSON payload as Frigate event",t)}const a=O.safeParse(n);if(a.success)for(const t of this._requests)t.instanceID!==e||t.matcher&&!t.matcher(a.data)||t.callback(a.data);else console.warn("Received malformed Frigate event from Home Assistant",t)}}function B(e,t){const n=function(e){if(!X[e]){const t=new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:"America/New_York",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date("2014-06-25T04:00:00.123Z")),n="06/25/2014, 00:00:00"===t||"‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00"===t;X[e]=n?new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:e,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:e,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}return X[e]}(t);return"formatToParts"in n?function(e,t){try{const n=e.formatToParts(t),a=[];for(let e=0;e=0?i:1e3+i,a-r}function se(e,t){return-23<=e&&e<=23&&(null==t||0<=t&&t<=59)}const oe={};function ce(e){const t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),+e-+t}const ge=36e5,le=6e4,ue=2,me={dateTimePattern:/^([0-9W+-]+)(T| )(.*)/,datePattern:/^([0-9W+-]+)(.*)/,plainTime:/:/,YY:/^(\d{2})$/,YYY:[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],YYYY:/^(\d{4})/,YYYYY:[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],MM:/^-(\d{2})$/,DDD:/^-?(\d{3})$/,MMDD:/^-?(\d{2})-?(\d{2})$/,Www:/^-?W(\d{2})$/,WwwD:/^-?W(\d{2})-?(\d{1})$/,HH:/^(\d{2}([.,]\d*)?)$/,HHMM:/^(\d{2}):?(\d{2}([.,]\d*)?)$/,HHMMSS:/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,timeZone:/(Z|[+-]\d{2}(?::?\d{2})?| UTC| [a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?)$/};function de(e,t={}){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");if(null===e)return new Date(NaN);const n=null==t.additionalDigits?ue:Number(t.additionalDigits);if(2!==n&&1!==n&&0!==n)throw new RangeError("additionalDigits must be 0, 1 or 2");if(e instanceof Date||"object"==typeof e&&"[object Date]"===Object.prototype.toString.call(e))return new Date(e.getTime());if("number"==typeof e||"[object Number]"===Object.prototype.toString.call(e))return new Date(e);if("[object String]"!==Object.prototype.toString.call(e))return new Date(NaN);const a=function(e){const t={};let n,a=me.dateTimePattern.exec(e);a?(t.date=a[1],n=a[3]):(a=me.datePattern.exec(e),a?(t.date=a[1],n=a[2]):(t.date=null,n=e));if(n){const e=me.timeZone.exec(n);e?(t.time=n.replace(e[1],""),t.timeZone=e[1].trim()):t.time=n}return t}(e),{year:r,restDateString:i}=function(e,t){if(e){const n=me.YYY[t],a=me.YYYYY[t];let r=me.YYYY.exec(e)||a.exec(e);if(r){const t=r[1];return{year:parseInt(t,10),restDateString:e.slice(t.length)}}if(r=me.YY.exec(e)||n.exec(e),r){const t=r[1];return{year:100*parseInt(t,10),restDateString:e.slice(t.length)}}}return{year:null}}(a.date,n),s=function(e,t){if(null===t)return null;let n,a,r;if(!e||!e.length)return n=new Date(0),n.setUTCFullYear(t),n;let i=me.MM.exec(e);if(i)return n=new Date(0),a=parseInt(i[1],10)-1,ye(t,a)?(n.setUTCFullYear(t,a),n):new Date(NaN);if(i=me.DDD.exec(e),i){n=new Date(0);const e=parseInt(i[1],10);return function(e,t){if(t<1)return!1;const n=_e(e);if(n&&t>366)return!1;if(!n&&t>365)return!1;return!0}(t,e)?(n.setUTCFullYear(t,0,e),n):new Date(NaN)}if(i=me.MMDD.exec(e),i){n=new Date(0),a=parseInt(i[1],10)-1;const e=parseInt(i[2],10);return ye(t,a,e)?(n.setUTCFullYear(t,a,e),n):new Date(NaN)}if(i=me.Www.exec(e),i)return r=parseInt(i[1],10)-1,be(r)?fe(t,r):new Date(NaN);if(i=me.WwwD.exec(e),i){r=parseInt(i[1],10)-1;const e=parseInt(i[2],10)-1;return be(r,e)?fe(t,r,e):new Date(NaN)}return null}(i,r);if(null===s||isNaN(s.getTime()))return new Date(NaN);if(s){const e=s.getTime();let n,r=0;if(a.time&&(r=function(e){let t,n,a=me.HH.exec(e);if(a)return t=parseFloat(a[1].replace(",",".")),we(t)?t%24*ge:NaN;if(a=me.HHMM.exec(e),a)return t=parseInt(a[1],10),n=parseFloat(a[2].replace(",",".")),we(t,n)?t%24*ge+n*le:NaN;if(a=me.HHMMSS.exec(e),a){t=parseInt(a[1],10),n=parseInt(a[2],10);const e=parseFloat(a[3].replace(",","."));return we(t,n,e)?t%24*ge+n*le+1e3*e:NaN}return null}(a.time),null===r||isNaN(r)))return new Date(NaN);if(a.timeZone||t.timeZone){if(n=re(a.timeZone||t.timeZone,new Date(e+r)),isNaN(n))return new Date(NaN)}else n=ce(new Date(e+r)),n=ce(new Date(e+r+n));return new Date(e+r+n)}return new Date(NaN)}function fe(e,t,n){t=t||0,n=n||0;const a=new Date(0);a.setUTCFullYear(e,0,4);const r=7*t+n+1-(a.getUTCDay()||7);return a.setUTCDate(a.getUTCDate()+r),a}const he=[31,28,31,30,31,30,31,31,30,31,30,31],pe=[31,29,31,30,31,30,31,31,30,31,30,31];function _e(e){return e%400==0||e%4==0&&e%100!=0}function ye(e,t,n){if(t<0||t>11)return!1;if(null!=n){if(n<1)return!1;const a=_e(e);if(a&&n>pe[t])return!1;if(!a&&n>he[t])return!1}return!0}function be(e,t){return!(e<0||e>52)&&(null==t||!(t<0||t>6))}function we(e,t,n){return!(e<0||e>=25)&&((null==t||!(t<0||t>=60))&&(null==n||!(n<0||n>=60)))}const De=e=>{const t=Intl.DateTimeFormat().resolvedOptions().timeZone,n=Math.round(e.end_time?e.end_time-e.start_time:Date.now()/1e3-e.start_time),a=null!==e.top_score?` ${Math.round(100*e.top_score)}%`:"";return`${m(function(e,t,n){const a=re(t,e=de(e,n),!0),r=new Date(e.getTime()-a),i=new Date(0);return i.setFullYear(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate()),i.setHours(r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds()),i}(1e3*e.start_time,t))} [${n}s, ${d(e.label)}${a}]`};class Ce extends R{constructor(e,t,n,a,r,i){super(e,t),this._event=n,this._contentID=a,this._thumbnail=r,this._subLabels=i??null}getStartTime(){return j(this._event.start_time)}getEndTime(){return this._event.end_time?j(this._event.end_time):null}inProgress(){return!this.getEndTime()}getVideoContentType(){return Y.HLS}getID(){return this._event.id}getContentID(){return this._contentID}getTitle(){return De(this._event)}getThumbnail(){return this._thumbnail}isFavorite(){return this._event.retain_indefinitely??null}setFavorite(e){this._event.retain_indefinitely=e}getWhat(){return[this._event.label]}getWhere(){const e=this._event.zones;return e.length?e:null}getScore(){return this._event.top_score}getTags(){return this._subLabels}isGroupableWith(e){return this.getMediaType()===e.getMediaType()&&f(this.getWhere(),e.getWhere())&&f(this.getWhat(),e.getWhat())}}class ve extends R{constructor(e,t,n,a,r,i){super(e,t),this._recording=n,this._id=a,this._contentID=r,this._title=i}getID(){return this._id}getStartTime(){return this._recording.startTime}getEndTime(){return this._recording.endTime}inProgress(){return!this.getEndTime()}getVideoContentType(){return Y.HLS}getContentID(){return this._contentID}getTitle(){return this._title}getEventCount(){return this._recording.events}}class Te{static createEventViewMedia(e,t,n,a,r){return"clip"===e&&!a.has_clip||"snapshot"===e&&!a.has_snapshot||!n.frigate.client_id||!n.frigate.camera_name?null:new Ce(e,t,a,((e,t,n,a)=>`media-source://frigate/${e}/event/${a}/${t}/${n.id}`)(n.frigate.client_id,n.frigate.camera_name,a,"clip"===e?"clips":"snapshots"),((e,t)=>`/api/frigate/${e}/thumbnail/${t.id}`)(n.frigate.client_id,a),r)}static createRecordingViewMedia(e,t,n,a){return n.frigate.client_id&&n.frigate.camera_name?new ve("recording",e,t,((e,t)=>`${e.frigate?.client_id??""}/${e.frigate.camera_name??""}/${t.startTime.getTime()}/${t.endTime.getTime()}`)(n,t),((e,t,n)=>["media-source://frigate",e,"recordings",t,`${n.startTime.getFullYear()}-${String(n.startTime.getMonth()+1).padStart(2,"0")}-${String(String(n.startTime.getDate()).padStart(2,"0"))}`,String(n.startTime.getHours()).padStart(2,"0")].join("/"))(n.frigate.client_id,n.frigate.camera_name,t),((e,t)=>`${e} ${m(t.startTime)}`)(a,t)):null}}class Ie{static isFrigateMedia(e){return this.isFrigateEvent(e)||this.isFrigateRecording(e)}static isFrigateEvent(e){return e instanceof Ce}static isFrigateRecording(e){return e instanceof ve}}class Se{static isFrigateEventQueryResults(e){return e.engine===p.Frigate&&e.type===C.Event}static isFrigateRecordingQueryResults(e){return e.engine===p.Frigate&&e.type===C.Recording}static isFrigateRecordingSegmentsResults(e){return e.engine===p.Frigate&&e.type===C.RecordingSegments}}class Me extends N{constructor(e,t,n,a,r){super(t,r),this._throttledSegmentGarbageCollector=h(this._garbageCollectSegments.bind(this),36e5,{leading:!1,trailing:!0}),this._entityRegistryManager=e,this._frigateEventWatcher=new J,this._recordingSegmentsCache=n,this._requestCache=a}getEngineType(){return p.Frigate}async createCamera(e,t){const n=new G(t,this,{eventCallback:this._eventCallback});return await n.initialize({hass:e,entityRegistryManager:this._entityRegistryManager,stateWatcher:this._stateWatcher,frigateEventWatcher:this._frigateEventWatcher})}async getMediaDownloadPath(e,t,n){return Ie.isFrigateEvent(n)?{endpoint:`/api/frigate/${t.frigate.client_id}/notifications/${n.getID()}/`+(_.isClip(n)?"clip.mp4":"snapshot.jpg")+"?download=true",sign:!0}:Ie.isFrigateRecording(n)?{endpoint:`/api/frigate/${t.frigate.client_id}/recording/${t.frigate.camera_name}/start/${Math.floor(n.getStartTime().getTime()/1e3)}/end/${Math.floor(n.getEndTime().getTime()/1e3)}?download=true`,sign:!0}:null}generateDefaultEventQuery(e,t,n){const a=[...e.getCameraConfigs(t)],r=y(a.map((e=>e?.frigate.zones)),f),i=y(a.map((e=>e?.frigate.labels)),f);if(1===r.length&&1===i.length)return[{type:b.Event,cameraIDs:t,...i[0]&&{what:new Set(i[0])},...r[0]&&{where:new Set(r[0])},...n}];const s=[];for(const a of t){const t=e.getCameraConfig(a);t&&s.push({type:b.Event,cameraIDs:new Set([a]),...t.frigate.labels&&{what:new Set(t.frigate.labels)},...t.frigate.zones&&{where:new Set(t.frigate.zones)},...n})}return s.length?s:null}generateDefaultRecordingQuery(e,t,n){return[{type:b.Recording,cameraIDs:t,...n}]}generateDefaultRecordingSegmentsQuery(e,t,n){return n.start&&n.end?[{type:b.RecordingSegments,cameraIDs:t,start:n.start,end:n.end,...n}]:null}async favoriteMedia(e,t,n,a){Ie.isFrigateEvent(n)&&(await async function(e,t,n,a){const o={type:"frigate/event/retain",instance_id:t,event_id:n,retain:a},c=await r(e,Q,o,!0);if(!c.success)throw new i(s("error.failed_retain"),{request:o,response:c})}(e,t.frigate.client_id,n.getID(),a),n.setFavorite(a))}_buildInstanceToCameraIDMapFromQuery(e,t){const n=new Map;for(const a of t){const t=this._getQueryableCameraConfig(e,a),r=t?.frigate.client_id;r&&(n.has(r)||n.set(r,new Set),n.get(r)?.add(a))}return n}_getFrigateCameraNamesForCameraIDs(e,t){const n=new Set;for(const a of t){const t=this._getQueryableCameraConfig(e,a);t?.frigate.camera_name&&n.add(t.frigate.camera_name)}return n}async getEvents(e,t,n,a){const r=new Map,i=async(i,s)=>{if(!s||!s.size)return;const o={...n,cameraIDs:s},c=a?.useCache??1?this._requestCache.get(o):null;if(c)return void r.set(n,c);const g={instance_id:i,cameras:Array.from(this._getFrigateCameraNamesForCameraIDs(t,s)),...n.what&&{labels:Array.from(n.what)},...n.where&&{zones:Array.from(n.where)},...n.tags&&{sub_labels:Array.from(n.tags)},...n.end&&{before:Math.floor(n.end.getTime()/1e3)},...n.start&&{after:Math.floor(n.start.getTime()/1e3)},...n.limit&&{limit:n.limit},...n.hasClip&&{has_clip:n.hasClip},...n.hasSnapshot&&{has_snapshot:n.hasSnapshot},...n.favorite&&{favorites:n.favorite},limit:n?.limit??$},l={type:C.Event,engine:p.Frigate,instanceID:i,events:await L(e,g),expiry:v(new Date,{seconds:60}),cached:!1};(a?.useCache??1)&&this._requestCache.set(n,{...l,cached:!0},l.expiry),r.set(o,l)},s=this._buildInstanceToCameraIDMapFromQuery(t,n.cameraIDs);return await Promise.all(Array.from(s.keys()).map((e=>i(e,s.get(e))))),r.size?r:null}async getRecordings(e,t,n,a){const i=new Map,s=async(n,s)=>{const o={...n,cameraIDs:new Set([s])},c=a?.useCache??1?this._requestCache.get(o):null;if(c)return void i.set(o,c);const g=this._getQueryableCameraConfig(t,s);if(!g||!g.frigate.camera_name)return;const l=await(async(e,t,n)=>await r(e,U,{type:"frigate/recordings/summary",instance_id:t,camera:n,timezone:e.config.time_zone},!0))(e,g.frigate.client_id,g.frigate.camera_name);let u=[];for(const e of l??[])for(const t of e.hours){const n=v(e.day,{hours:t.hour}),a=x(n),r=H(n);(!o.start||a>=o.start)&&(!o.end||r<=o.end)&&u.push({cameraID:s,startTime:a,endTime:r,events:t.events})}void 0!==o.limit&&(u=S(u,(e=>e.startTime),"desc").slice(0,o.limit));const m={type:C.Recording,engine:p.Frigate,instanceID:g.frigate.client_id,recordings:u,expiry:v(new Date,{seconds:60}),cached:!1};(a?.useCache??1)&&this._requestCache.set(o,{...m,cached:!0},m.expiry),i.set(o,m)};return await Promise.all(Array.from(n.cameraIDs).map((e=>s(n,e)))),i.size?i:null}async getRecordingSegments(e,t,n,a){const i=new Map,s=async(n,s)=>{const o={...n,cameraIDs:new Set([s])},c=this._getQueryableCameraConfig(t,s);if(!c||!c.frigate.camera_name)return;const g={start:o.start,end:o.end},l=a?.useCache??1?this._recordingSegmentsCache.get(s,g):null;if(l)return void i.set(o,{type:C.RecordingSegments,engine:p.Frigate,instanceID:c.frigate.client_id,segments:l,cached:!0});const u={instance_id:c.frigate.client_id,camera:c.frigate.camera_name,after:Math.floor(o.start.getTime()/1e3),before:Math.floor(o.end.getTime()/1e3)},m=await(async(e,t)=>await r(e,W,{type:"frigate/recordings/get",...t},!0))(e,u);(a?.useCache??1)&&this._recordingSegmentsCache.add(s,g,m),i.set(o,{type:C.RecordingSegments,engine:p.Frigate,instanceID:c.frigate.client_id,segments:m,cached:!1})};return await Promise.all(Array.from(n.cameraIDs).map((e=>s(n,e)))),w((()=>this._throttledSegmentGarbageCollector(e,t))),i.size?i:null}_getCameraIDMatch(e,t,n,a){if(1===t.cameraIDs.size)return[...t.cameraIDs][0];for(const[t,r]of e.getCameraConfigEntries())if(r.frigate.client_id===n&&r.frigate.camera_name===a)return t;return null}generateMediaFromEvents(e,t,n,a){if(!Se.isFrigateEventQueryResults(a))return null;const r=[];for(const e of a.events){const i=this._getCameraIDMatch(t,n,a.instanceID,e.camera);if(!i)continue;const s=this._getQueryableCameraConfig(t,i);if(!s)continue;let o=null;if(n.hasClip||n.hasSnapshot||!e.has_clip&&!e.has_snapshot?n.hasSnapshot&&e.has_snapshot?o="snapshot":n.hasClip&&e.has_clip&&(o="clip"):o=e.has_clip?"clip":"snapshot",!o)continue;const c=Te.createEventViewMedia(o,i,s,e,e.sub_label?this._splitSubLabels(e.sub_label):void 0);c&&r.push(c)}return r}generateMediaFromRecordings(e,t,n,a){if(!Se.isFrigateRecordingQueryResults(a))return null;const r=[];for(const n of a.recordings){const a=this._getQueryableCameraConfig(t,n.cameraID);if(!a)continue;const i=Te.createRecordingViewMedia(n.cameraID,n,a,this.getCameraMetadata(e,a).title);i&&r.push(i)}return r}getQueryResultMaxAge(e){return e.type===b.Event||e.type===b.Recording?60:null}async getMediaSeekTime(e,t,n,a,r){const i=n.getStartTime(),s=n.getEndTime();if(!i||!s||as)return null;const o=n.getCameraID(),c={cameraIDs:new Set([o]),start:i,end:s,type:b.RecordingSegments},g=await this.getRecordingSegments(e,t,c,r);return g?this._getSeekTimeInSegments(i,a,Array.from(g.values())[0].segments):null}_getQueryableCameraConfig(e,t){const n=e.getCameraConfig(t);return!n||V(n)?null:n}_splitSubLabels(e){return e.split(",").map((e=>e.trim()))}async getMediaMetadata(e,t,n,a){const i=new Map;if((a?.useCache??1)&&this._requestCache.has(n)){const e=this._requestCache.get(n);if(e)return i.set(n,e),i}const s=new Set,o=new Set,c=new Set,g=new Set,l=this._buildInstanceToCameraIDMapFromQuery(t,n.cameraIDs),u=async(n,a)=>{const i=this._getFrigateCameraNamesForCameraIDs(t,a);for(const t of await(async(e,t)=>await r(e,k,{type:"frigate/events/summary",instance_id:t,timezone:e.config.time_zone},!0))(e,n))i.has(t.camera)&&(t.label&&s.add(t.label),t.zones.length&&t.zones.forEach(o.add,o),t.day&&c.add(t.day),t.sub_label&&this._splitSubLabels(t.sub_label).forEach(g.add,g))},m=async n=>{const r=await this.getRecordings(e,t,{type:b.Recording,cameraIDs:n},a);if(r)for(const e of r.values())if(Se.isFrigateRecordingQueryResults(e))for(const t of e.recordings)c.add(M(t.startTime))};await D([...l.entries()],(([e,t])=>(async()=>{await Promise.all([u(e,t),m(t)])})()));const d={type:C.MediaMetadata,engine:p.Frigate,metadata:{...s.size&&{what:s},...o.size&&{where:o},...c.size&&{days:c},...g.size&&{tags:g}},expiry:v(new Date,{seconds:60}),cached:!1};return(a?.useCache??1)&&this._requestCache.set(n,{...d,cached:!0},d.expiry),i.set(n,d),i}async _garbageCollectSegments(e,t){const n=this._recordingSegmentsCache.getCameraIDs(),a={cameraIDs:new Set(n),type:b.Recording},r=(e,t)=>`${e}/${t.getDate()}/${t.getHours()}`,i=await this.getRecordings(e,t,a);if(i)for(const[e,t]of i){if(!Se.isFrigateRecordingQueryResults(t))continue;const n=new Set;for(const e of t.recordings)n.add(r(e.cameraID,e.startTime));const a=Array.from(e.cameraIDs)[0];this._recordingSegmentsCache.expireMatches(a,(e=>{const t=r(a,j(e.start_time));return!n.has(t)}))}}_getSeekTimeInSegments(e,t,n){if(!n.length)return null;let a=0;for(const r of n){const n=j(r.start_time);if(n>t)break;const i=j(r.end_time),s=nt?t:i).getTime()-s.getTime()}return a/1e3}getMediaCapabilities(e){return{canFavorite:_.isEvent(e),canDownload:!0}}getCameraMetadata(e,t){const n=super.getCameraMetadata(e,t);return{title:t.title??T(e,t.camera_entity)??T(e,t.webrtc_card?.entity)??d(t.frigate?.camera_name)??t.id??"",icon:n.icon,engineLogo:I}}getCameraEndpoints(e,t){const n=(()=>{if(!e.frigate.url)return null;if(!e.frigate.camera_name)return{endpoint:e.frigate.url};const n=`${e.frigate.url}/cameras/`+e.frigate.camera_name;if("live"===t?.view)return{endpoint:n};const a=`${e.frigate.url}/events?camera=`+e.frigate.camera_name,r=`${e.frigate.url}/recording/`+e.frigate.camera_name;switch(t?.media?.getMediaType()){case"clip":case"snapshot":return{endpoint:a};case"recording":const e=t.media.getStartTime();if(e)return{endpoint:r+F(e,"yyyy-MM-dd/HH")}}switch(t?.view){case"clip":case"clips":case"snapshots":case"snapshot":return{endpoint:a};case"recording":case"recordings":return{endpoint:r}}return{endpoint:n}})(),a=E(e,{url:e.go2rtc?.url??`/api/frigate/${e.frigate.client_id}/mse`,stream:e.go2rtc?.stream??e.frigate.camera_name}),r={endpoint:`/api/frigate/${e.frigate.client_id}/jsmpeg/${e.frigate.camera_name}`,sign:!0},i=(()=>{const t=e.frigate.camera_name?e.frigate.camera_name:null;return t?{endpoint:t}:null})();return{...super.getCameraEndpoints(e,t),...n&&{ui:n},...a&&{go2rtc:a},...r&&{jsmpeg:r},...i&&{webrtcCard:i}}}async executePTZAction(e,t,n,a){const r=t.camera_entity;("preset"!==n||a?.preset)&&await e.callService("frigate","ptz",{entity_id:r,action:"stop"===a?.phase?"stop":"zoom_in"===n||"zoom_out"===n?"zoom":"preset"===n?"preset":"move",..."stop"!==a?.phase&&{argument:"zoom_in"===n?"in":"zoom_out"===n?"out":"preset"===n?a?.preset:n}})}}export{Me as FrigateCameraManagerEngine}; diff --git a/config/www/community/frigate-hass-card/engine-frigate-7cd5392b.js.gz b/config/www/community/frigate-hass-card/engine-frigate-7cd5392b.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..fa36bfa2b62ab424cb8efcbab09f811fb6901886 GIT binary patch literal 8637 zcmV;uAwu3CiwFo>dR%7$|7C7xX>MgLW^!p~VRU6JH)CWqGdVJ1E^2cCy*=A@+eVV_ z^A#kHqXSq?kdkaAh74o9k{x>{vYkkYCuTTui)c}>$p!;}k`)T)>=*1u?w4#;-_W>F zah%L#G6K=p>gu|qx|1xHX;!S`y&lbbjKpX7EJ%D0pPaA}J}F^4_{<2~#b-k1_{a$p z-BQ9H;B!jYLwwE%+sEge#OL^2k@ys!3-S>kF-h=oLE=k%UJ~{-K9?ls_&g)=BYfVF zSd^a=_6_L9U?e4db);q#cpF+QJ{7g@S+{Na>l z@nH05`rw?#%>R%(2Z_YNAvU|Gn=w91I2(Mke?A&L+Ml)>{zksV$15_!$FoMa8RINV zrh^9$znMN7jUL+F1@u3VpYZXs?zdoZLI==xXLt0?uH8JxcAtn?%nRK-FKAZ0zIc(Y zvccDM@8Qm)i*wQGV#TLLlJedMxA4{(D^?lrF?WaU-7mayn)1Bpy$iXYo_}D|!d*}4 zf@L(|eqLk=pSd1kJU%Ou1%ooaTAZ`Y_29>RPS58IsxRm~XJ^YaPm1IU8=a@=oKaqH zbxHHH={#B5^`bE6beUhKMXe%y@XwX9?Og^vvkVx+;v&_ zZ!GnHsclV$wUS$-A4_a*qyJEb^+ZClpezazf=}mibN3PNd!{TPi z(u*F8D1Z_$1SX~hAf#ggf-A{`U-c@j^}e-c?8biw9o0A58tr>~wAB>Bt`W!r3h0d0 zI+KrglCea?mlM?{^01(OV*$YF!UoSG5^}*PaAD_Qb~D(qoE5**3YPu!&ShKtr5jyj z(5kr=<)2{J7A~i&ECbRx+l({v+JgF=T_9UNCG?_T89b3Dp&J9>+_A&iwL_fM63G&N z03A6K7~((*ukS*d-|(r+Na2M~=rv7>9&igk!d5nMZ>!#din<4uRaI9#vMBdFsnrxcWFhr|+-5VD<-XkW12?PsI@y=sm9{vf1D*EvA>% zG=gdT+9K4#Isiv5ll$BzQ<8=KifAI6eMw?d#Ue%ViL_^m(&==yqs*0&3vAo zDUc-EVV~u=Ga&X%uZzibox!NjjEQQHtG~y4unj<3+OUu|!*Wgw z(5wq&gB4GHT`|EUZ9BWFtv1st1j`?o(j5lMlyjrU^4F8`zk37Bcr7Fga)MT|`|8X__qDy?--XZ~b)=)w|aw#7{5UjZ*FxMDiAfatD>`l`Q zgH0PI{33No0*eQp!&L_b(Wa{~%RC&Z0%)F~{gA|@6G(7l1s!G&vGf$YqE zZFxtQN?jI?7mXcgSR{Ovu5xDr>^K41-`wZ76rAqPUcec?GTaZeCRUsddc*uOW{%`J zpyfHcC<01gb(i>DE#Xg`Uh{yKNbU(V!C7DOAR+kU^{NOGQI#VnC|@BjCFhnc=_&SE zyZ>ESi~zUb;tI>HMYV-Z)BV2n8YzNBfdF>IvrkL+eINz8lK8>Bb?1cTd(Z@4R4I)p zLeMMtn?hMEL2f7y#}klkP((drOlRR=xCEmutW}g}_tta+*askxxYP!jS0amcF52e# zPJ=pXln3L^aV8+M*#^@&YE}ee2P{=*asUF#Rl2W-DDkR-0t+&a3M?b|T#aU!ze}KW zSbX*-bvY7!-Zak*S3p%4%9MHkx8eO>f)e9=HSZ-e4sHxsSf7gCU;thj%ce;V8xER| z^%l~?gyub-7QJPf=Ltyo-t{Hp*x+wH^-sY7&Q;Fx9tE~QXnNPGFO2$Mf~~SE*1JE{ zf@H0w7MS+DLqbiJPY{41wb27a@uXl3nB^#mMT0ux+YRJm`kF6du5nkhem#boJ? z>$<=bNZ(aE3M5;W(ue(f&2#nEvU|pW8S)}W#*!sgf9>dmYwdH`AXppTmtDc=KhX^` z@bvr&Y1*35^GTKg8-yEcwqxS4J;X%WG{R2hOoTTpoE*#0kce{Wsiq9935|PuD1yh`wq72kpmF~4EFm=@H-YR&(;>;U91+q8}aoukbNziQC;FsR>qkuF&8DM&7a zK(44X(ft3e^PMhNrfL75V>YQ&4Jx*myqNn(FvV#Cwk%9a3-C+%;Kvh(hyeBB%@izX z=W=%srh+!_K>GyF(*=IEpu<<}`t0X4`{`J&qy53|!_(1&U^Ie%{hi&tcMb;5 zLua%<+;)GsDD6Hc=WJx1b>4157GAk5g795 z%Q43`Aj-V|Swsb&1>4RpI$r-dsI-xQ_$$$Ol<$t*)zkD1h6S7itca+hS)^nX37VRj zUu%xq0W5fFzMueM;pl)p)&|M}+up8d{U2ivQ;P`OvH_mnY(% zizd4CT`>HY`_3+T@dAs+(DIjfy<66+j*oSv=gR6Ja&)IHSYz}mg z%&L(@r*{Y^0TPMaEIg*grBBacKRlRno89M(INK;n5u|941(}C{U`Vc^t5Sx#N*Nj> zVH#*hV}pQ`Tus)MR4ZZsahR|_BK=X*l<4mObAn;AE-E?$?SN08r`N8h*GfU+7l93* zc9>x^(T_2-=n?ULjLe{4#JK9WBu?E*aEEz45j$SQbpW`{)vyL*pAwzb6`hr4^AFVN2wX2j?* z>W|`a`0$aIhbgNGwkfkivj&5L!a!90$B4(UX3-L!bqGAN%?8_rTFp$!%(;}AD;DmO z1*|YueD{VHVD57v_(p?AZ$bENd+zCN&vQYR4hgpFZX>FfbDD4*Cm04p^7GHw#z@wm z;eFf`x7GVz*z^>IXL_4=^>x(}}tB1HM10_EuF2n&Qbm-8MUTSd@l zP>Fi-_WD{>y{#1;)yic19Z@N@iYRx-J^?W9dy%Y=I;E~n+HFow+O0M;H@T^bcIFTt5M`)Pl(F*jS%yej1it%^BO5|HxJMw`xBexb(*?z9m?A}|fVD57U zDyg^AOS9gtgt%rrBBA3s;`9$X+I%j8N;06SXdfzKVu;2 zP!-^)j^mNSv=6Zi9x?9_bKY!%M$ znrde>y8nl#EA0_PNV=3E7fcZ#c^hX+fE4YIS?G?4$TVBFj2Tk~iZvhFpF(7J7|s?@7O#k+A?-5Bgz>~3wb z62+SUqIUuWs=e)bWt}^Dj;3>Tfs$&MXWHiX=k4iE zPOJ&ncT8o+V(MF}f!ON+LT|8y1-ICSW*hUj1x)oFmKz|yeZvlCdWW++HkKMKh4E|s zTguEZV;ky8WfE+|=tR!LyQe8d5S)io%e|D{T4me3T6?3s>>S$Ir57gRQV6dN#^&&- ze0xhU(spoZL>_o1h4Ab9#WvsG8NlLaqTvyyt=`^#?Nwj(b5&6=s}*{2+nCy>T&qhK zj`w!R?l%Pf?v1R!wbuz*s)mn#r(tD>pV{et?5hW(Q5cSHZ{Zg_!HxY2^lCpGRS3GV zLsG?KXj?ql*{R8Lq?>*yTky6jpp`11TU-3el7XpFR|cZ|vQ}Oibznd_uX)~mmmxIl z$-`aGcD(x<%6-q;=WDZ!M(=R=GADpR z+#H!YTw+4UarH685=+#$~{_MZ_?xa)+&RvisaVb+kBvzV@47y4|bH&^m`-s`V z3qVdaE}P>RB$rA4TqPiO1JrSzM{NR9wC-v?<8SN~G6d-DC5i<#&)DuFNNgh8und8z z=bg${BFpE%WM=6Up1@EAa(4GZ4C4#L&{^JWX2=Y1@+~F@VxFT&%4PMI7)rzgXL4&r zLSwyXYwN;fm#Wps2&8&xG(eQ-di-sYPp-a{T(GX0HOtC``JkQqp4w zvo)rY?1oM5V796?lMVh-mii*5u}~lY7bg`!T@-h~E>d3f9-T5g!Br&F-ZW!6bLppq zT?=}sc1jN?PA!NmSaE1WA0)ZGHOCd|mDO>Uen$q?rZg~>90-c&P#OS~xEdBOeDYo% zn9MTDiN+mk6hLzMOKr@%iP#nOAv?MmV5oF1mD))}dT8i9QvLxO{#4Cykd z17L&`&VR?$6eA^N4f{XnU25%s+0KrUFd4BEiGaT=a5K!_I|N5Fpj)|`Q8ii=ISyj2 zJ8@K178S!(=7X$IykQmN`jNd|lQKMZx_1x(bgV>jX#O7euQpj_c9esAYZ*0i8*P*w zvc2Q^OBxIQcXx?1a_m0cU6skw><7yr-5r!6)9NwtKcoqFogsAo1GHCowH+#ZXxdr$ z7WkxS=BQAZWaO8IkwGQOVHE+@C4s3GoGv1F^>Ralc&ef~r0!%~5j*aE$Xe~~!8-d~ zF};A3_5#Fg->+D9^8?FQ^CGuL@#Sf2V9}+o+G9RGhNGeE&=;LI1N5cCngKQseZpqq z>&BlMU5}x$b6n}tSKYc)Yf_9v8Cx_<3s4QQ8tq$}ozodROy_fkox@9Ia?NTLdT#$5 z6Rfd?N5nV7^_)=zPNW%SAmPOCQE6=Bt`lY<>o^^$j)e(da~so8s(6uMRJi$#hLY7C|YHNmBaVj?ioyQ2&xkY7CO{lEFV~E)c>%YIo`Gt#R|$0 zXc|;Np3FE>RbYcy36eh!rXj3)11sBFUa2rt{`SQ@1;!GKu`I_*p`im0O9UV~dKj~> z*}lHa_ti3$@y`L8f*r973PPijd`)K_52^^YBWYS@+hf`so)WlmslT90kq^zH`r!g_ zmoL!0-_S;$9uSQ%wzGo~MRPnC-;(;rlCjLBK9_RV9D&V)LL6Zkk0x7N>uYcbgc*0j zFrYn}c;XaGrfV5q(4eX_Q_ahXNm3cx2N|e5$Y33-Xy5_QZWdcxD$#rsgnGs?op|DO zcmoMdz?=0F%A$_m)_NNCdTA!IsXu;4c_#(b6;+*i4em{&CjJ418wb?lwPWC(GHuYJ z1oDpB6Y0*i2}Pek^~Jj%#CiT$0TNh;Nc3sJhHcv=j4+E+NLtmi7Tm&4I-jsBrGF@0 z_~yAYQHMXdy66K>TusC31l#u{#rT+rZca_&c$FKFR405dK>xA$OikpGwNg+)ieEIB z02~XZu-zL@w;5R}zWDieG=hS$d3L@^=J87f{b_or(0xpocsSAQU0t6+?H%l5&V`EJ z7#^tcjyPYEg+1LAW`S}%KUkn=@sSe zWx$w!ZW#ymA}TqLWQ_oBI9X_5HcGTQ=VX&yrg4pVo#H4Yrp1L%MD}M6K5g#jU=`G_ zDgZh~cCh#+7o->YtDFg=CW>~Vwy7g9n@U?B$#Ux1XC^YS6ELd&oH45oEg_vJYQ8*p zinnq2c-X+*eCE8qFTmKI5RlwQd58xWtPSi|m6{ z-5?YvTjxpGT1*Ukp{Zz_`+gti1 zRKL*_fpU;Hx3}5jQ2Y|NI!G(i-2Rdi6Ql_!QE{*!)0|l7(5qLPvnr_;JMJnxaaZa} zjw;qeoS5ZP$5S~`BceK(H1>s&36(8)mt5$=w{;oA>fa(FQXwK1wuo355us^(;gz4o z=eA%lte%SlES~(*h&-Nb;&E-j{^hLxxr{jl#+?2>V}c@=W_4%s! zVRDfEM#juLWlW2XjH!PYJxx34DOVi>TPbLQUDXYgY3H$OAwZ_xq4}m#Pdk-5Xn3c#B9dwYlYt6wgL!ffT;!4sW(gVreQ4G=&1H}1p2;@ZE4%dXYI^Un%13aqwR z^UV0}sQbks9?g*|{!mmf*ar1jINzpfG9FnfVO)@GBIJJ~H1LcU8Qy{7d6>M~##ShD z!L!bLmBNr(r)aDkEbU?ocUD{)({LD&;ZK^*Z7uXn>o=}w52LN-s8S!5z%ml2jz%$c z?cBRsjFdl#r!F#KCdl%;qAQVI^QtQ<<22L~#Tdir8(PM$$g!=ipX=8zzKa@GbE7s5 zt8a>dWrN!zy3j~`sq=y~tSV%@(TX)Xq@Om|Jq=F*GhJUjQ#@u!7$DAgC`!cU%Xw0q z=r8TA)xZm+QU^JQWF$<3sqrbZHmP)3olSD-{#x-lB*P`iRN|^}mD*jqUGcu$cG|>T zQem#+i)Gbae3&rzf{4OnR!}@EFWhure7J^5491cg#%xYGrk|e9YFTjltBDHm;f0B& z#DEp;j~bSM0P=*fk3tPtpHGY(&6X-=nM=?-kgC2` zAYLW0H^p3P=bxKVS#vbJ&+(Ee?y2wlWs9Gz-4#`sBU|YorcYHgzjIhr)os+_mVK7F ziXkrUHM4hG9-BNYX$~kQ$`i%}?@~)uwZSAczozEb%>0^vu~$r1#!$5`MoPlZ5AT3R zXt+&x*+L&TUY^qF27ZqB2bfL-%C$a6S4$;RVHjTq>!f@oDt*d)l+f?6glDiZVBbM= zl43(}^tQI9syn=3nUU0b-y5`NweZZCGco4OlZK+8Id0uSwSgHW7v2@5=cT$1GV>a0 zzPg7H4VB+l24Ii1TwhD-OC%iE5(qqfyU>w~w$vQ2x01Hegt+b)V4uLoD=I+BYFmoq zmCV>$;D;x#^u&2o2}5i=(i&^Ft=EOB3DC2W7M}j{l8Y!=T9x64l~fc?bs=nP9!y2q zOqXHcFqoC)AMs)(3;)4zS8V&Tal@D8Bt|))@8RqGw%&1f)*b#^#k3f(=ujfuYblMA zWTBl$B0hea{1)@7vRBIY7|gzloT)nJRGHdHC_rz?=h`jc1T+kZu5iD+t<0uj8MMc9 z&Bm~>V^_c5W&?7FjN^Rans*d1IDc9er0{pqTHyi98$XQKxXR|W&8^qAgFRIyLv4)G@Q0nGCu)Z3gU;~% zcK7Awcw`qZR26p{MgA4o<*mthX?UhRfmG{}x}a{uG$35sJ*z~EO~B>XiEvRPUnBrV zjm%>}F3p*8-o($!18lB=!WytemE9N^qfL(9u;Xoutr{lVeh%B}+`vDBvkogw@U3<^leKK?Y)!IK)xu6Q30qkqQJ&?~V-31nia3`Xum6qC- z7qiGQ4MkqGTlJR(QPh2pCq~LQr{8o=^C4d>*=)G+W>Av}0~$#3RQuXYI|a3~R0cP7 zkjBaoDpZ0E;7iLDG&kzvr_SNx3msS!s|4*db!V$YkGi21FC>=Bg5A+qwn`av2qGv* zN_}@C9vfU0?9J)Br=95wS=bP12d*P8c*S$};-+SG$1Ip6<|;%m!A@9qg`Wh>&BVl6 z7QZ=UZSE=!GD5|ifs+@hNM^>tKx45;mIUH*+p~mY9n2+P)0N2K=8?SmHqh|MGW8NT zixgxGu3e7RuSUmDuj+<}`V5f+KZ52g_^UpNS+gMYvIPB%|1q3nX5Ia#^oC5MlbL|! P!QcKLCY9LN(r5qxTh_q~ literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/engine-frigate-a6e3bd9e.js b/config/www/community/frigate-hass-card/engine-frigate-a6e3bd9e.js new file mode 100644 index 00000000..52621318 --- /dev/null +++ b/config/www/community/frigate-hass-card/engine-frigate-a6e3bd9e.js @@ -0,0 +1,3 @@ +import{d3 as e,d_ as t,d$ as n,e0 as a,e1 as r,e2 as i,l as s,e3 as o,e4 as c,e5 as g,e6 as l,db as u,dT as m,k as d,i as f,dh as h,e7 as p,dn as _,d9 as y,d7 as b,e8 as w,e9 as D,ea as C,dQ as v,j as T,eb as I,dc as S,de as M,dd as F}from"./card-7cd05290.js";import{C as $}from"./engine-86b0096c.js";import{C as z,G as N,g as E}from"./engine-generic-96b32038.js";import{a as R,V as Y}from"./media-c9012082.js";import{s as x,e as H}from"./startOfHour-f3ea02fd.js";function j(t){return e(1e3*t)}const Z=n.object({camera:n.string(),end_time:n.number().nullable(),false_positive:n.boolean().nullable(),has_clip:n.boolean(),has_snapshot:n.boolean(),id:n.string(),label:n.string(),sub_label:n.string().nullable(),start_time:n.number(),top_score:n.number().nullable(),zones:n.string().array(),retain_indefinitely:n.boolean().optional()}).array(),q=n.object({hour:n.preprocess((e=>Number(e)),n.number().min(0).max(23)),duration:n.number().min(0),events:n.number().min(0)}),U=n.object({day:n.preprocess((e=>"string"==typeof e?a(e):e),n.date()),events:n.number(),hours:q.array()}).array(),W=n.object({start_time:n.number(),end_time:n.number(),id:n.string()}).array(),Q=n.object({success:n.boolean(),message:n.string()}),k=n.object({camera:n.string(),day:n.string(),label:n.string(),sub_label:n.string().nullable(),zones:n.string().array()}).array(),P=n.object({name:n.string().optional(),features:n.string().array().optional(),presets:n.string().array().optional()}),A=n.object({camera:n.string(),snapshot:n.object({frame_time:n.number()}).nullable(),has_clip:n.boolean(),has_snapshot:n.boolean(),label:n.string(),current_zones:n.string().array()}),O=n.object({before:A,after:A,type:n.enum(["new","update","end"])});const L=async(e,t)=>await r(e,Z,{type:"frigate/events/get",...t},!0),V=e=>"birdseye"===e.frigate.camera_name;class G extends z{constructor(e,t,n){super(e,t,n),this._frigateEventHandler=e=>{const t=!e.before.has_snapshot&&e.after.has_snapshot||e.before.snapshot?.frame_time!==e.after.snapshot?.frame_time,n=!e.before.has_clip&&e.after.has_clip,a=this.getConfig();if(a.frigate.zones?.length&&!a.frigate.zones.some((t=>e.after.current_zones.includes(t)))||a.frigate.labels?.length&&!a.frigate.labels.includes(e.after.label))return;const r=a.triggers.events;(r.includes("events")||r.includes("snapshots")&&t||r.includes("clips")&&n)&&this._eventCallback?.({fidelity:"high",cameraID:this.getID(),type:e.type,clip:n&&r.includes("clips"),snapshot:t&&r.includes("snapshots")})}}async initialize(e){return await this._initializeConfig(e.hass,e.entityRegistryManager),await this._initializeCapabilities(e.hass),await this._subscribeToEvents(e.hass,e.frigateEventWatcher),await super.initialize(e)}async _initializeConfig(e,n){const a=this.getConfig(),r=!!a.frigate?.camera_name,i=a.triggers.motion||a.triggers.occupancy;let g=null;const l=o(a);if(l&&(!r||i)&&(g=await n.getEntity(e,l),!g))throw new c(s("error.no_camera_entity"),a);if(g&&!r){const e=this._getFrigateCameraNameFromEntity(g);e&&(this._config.frigate.camera_name=e)}if(i){const r=await n.getMatchingEntities(e,(e=>e.config_entry_id===g?.config_entry_id&&!e.disabled_by&&e.entity_id.startsWith("binary_sensor.")));if(a.triggers.motion){const e=this._getMotionSensor(a,[...r.values()]);e&&a.triggers.entities.push(e)}if(a.triggers.occupancy){const e=this._getOccupancySensor(a,[...r.values()]);e&&a.triggers.entities.push(...e)}a.triggers.entities=(u=a.triggers.entities)&&u.length?t(u):[]}var u}async _initializeCapabilities(e){const t=this.getConfig(),n=g(this.getConfig()),a=await this._getPTZCapabilities(e,t),r=n||a?{...a,...n}:null,i=V(t);this._capabilities=new l({"favorite-events":!i,"favorite-recordings":!1,seek:!i,clips:!i,snapshots:!i,recordings:!i,live:!0,menu:!0,substream:!0,...r&&{ptz:r}},{disable:t.capabilities?.disable,disableExcept:t.capabilities?.disable_except})}_getFrigateCameraNameFromEntity(e){if("frigate"===e.platform&&e.unique_id&&"string"==typeof e.unique_id){const t=e.unique_id.match(/:camera:(?[^:]+)$/);if(t&&t.groups)return t.groups.camera}return null}async _getPTZCapabilities(e,t){if(!t.frigate.camera_name||V(t))return null;let n=null;try{n=await(async(e,t,n)=>await r(e,P,{type:"frigate/ptz/info",instance_id:t,camera:n},!0))(e,t.frigate.client_id,t.frigate.camera_name)}catch(e){return u(e),null}const a=[...n.features?.includes("pt")?["continuous"]:[]],i=[...n.features?.includes("zoom")?["continuous"]:[]],s=n.presets;return a.length||i.length||s?.length?{...a&&{left:a,right:a,up:a,down:a},...i&&{zoomIn:i,zoomOut:i},...s&&{presets:s}}:null}_getMotionSensor(e,t){return e.frigate.camera_name?t.find((t=>"string"==typeof t.unique_id&&!!t.unique_id?.match(new RegExp(`:motion_sensor:${e.frigate.camera_name}`))))?.entity_id??null:null}_getOccupancySensor(e,t){const n=[],a=(e,a)=>{const r=t.find((t=>"string"==typeof t.unique_id&&!!t.unique_id?.match(new RegExp(`:occupancy_sensor:${e}_${a}`))))?.entity_id??null;r&&n.push(r)};if(e.frigate.camera_name){const t=e.frigate.zones?.length?e.frigate.zones:[e.frigate.camera_name],r=e.frigate.labels?.length?e.frigate.labels:["all"];for(const e of t)for(const t of r)a(e,t);if(n.length)return n}return null}async _subscribeToEvents(e,t){const n=this.getConfig();if(!n.triggers.events.length||!n.frigate.camera_name)return; +/* istanbul ignore next -- exercising the matcher is not possible when the + test uses an event watcher -- @preserve */const a={instanceID:n.frigate.client_id,callback:e=>this._frigateEventHandler(e),matcher:e=>e.after.camera===n.frigate.camera_name};await t.subscribe(e,a),this._onDestroy((()=>t.unsubscribe(a)))}}class J{constructor(){this._requests=[],this._unsubscribeCallback={}}async subscribe(e,t){const n=!this._hasSubscribers(t.instanceID);this._requests.push(t),n&&(this._unsubscribeCallback[t.instanceID]=await e.connection.subscribeMessage((e=>this._receiveHandler(t.instanceID,e)),{type:"frigate/events/subscribe",instance_id:t.instanceID}))}async unsubscribe(e){this._requests=this._requests.filter((t=>t!==e)),this._hasSubscribers(e.instanceID)||(await this._unsubscribeCallback[e.instanceID](),delete this._unsubscribeCallback[e.instanceID])}_hasSubscribers(e){return!!this._requests.filter((t=>t.instanceID===e)).length}_receiveHandler(e,t){let n;try{n=JSON.parse(t)}catch(e){return void console.warn("Received non-JSON payload as Frigate event",t)}const a=O.safeParse(n);if(a.success)for(const t of this._requests)t.instanceID!==e||t.matcher&&!t.matcher(a.data)||t.callback(a.data);else console.warn("Received malformed Frigate event from Home Assistant",t)}}function B(e,t){const n=function(e){if(!X[e]){const t=new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:"America/New_York",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date("2014-06-25T04:00:00.123Z")),n="06/25/2014, 00:00:00"===t||"‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00"===t;X[e]=n?new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:e,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:e,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}return X[e]}(t);return"formatToParts"in n?function(e,t){try{const n=e.formatToParts(t),a=[];for(let e=0;e=0?i:1e3+i,a-r}function se(e,t){return-23<=e&&e<=23&&(null==t||0<=t&&t<=59)}const oe={};function ce(e){const t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),+e-+t}const ge=36e5,le=6e4,ue=2,me={dateTimePattern:/^([0-9W+-]+)(T| )(.*)/,datePattern:/^([0-9W+-]+)(.*)/,plainTime:/:/,YY:/^(\d{2})$/,YYY:[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],YYYY:/^(\d{4})/,YYYYY:[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],MM:/^-(\d{2})$/,DDD:/^-?(\d{3})$/,MMDD:/^-?(\d{2})-?(\d{2})$/,Www:/^-?W(\d{2})$/,WwwD:/^-?W(\d{2})-?(\d{1})$/,HH:/^(\d{2}([.,]\d*)?)$/,HHMM:/^(\d{2}):?(\d{2}([.,]\d*)?)$/,HHMMSS:/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,timeZone:/(Z|[+-]\d{2}(?::?\d{2})?| UTC| [a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?)$/};function de(e,t={}){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");if(null===e)return new Date(NaN);const n=null==t.additionalDigits?ue:Number(t.additionalDigits);if(2!==n&&1!==n&&0!==n)throw new RangeError("additionalDigits must be 0, 1 or 2");if(e instanceof Date||"object"==typeof e&&"[object Date]"===Object.prototype.toString.call(e))return new Date(e.getTime());if("number"==typeof e||"[object Number]"===Object.prototype.toString.call(e))return new Date(e);if("[object String]"!==Object.prototype.toString.call(e))return new Date(NaN);const a=function(e){const t={};let n,a=me.dateTimePattern.exec(e);a?(t.date=a[1],n=a[3]):(a=me.datePattern.exec(e),a?(t.date=a[1],n=a[2]):(t.date=null,n=e));if(n){const e=me.timeZone.exec(n);e?(t.time=n.replace(e[1],""),t.timeZone=e[1].trim()):t.time=n}return t}(e),{year:r,restDateString:i}=function(e,t){if(e){const n=me.YYY[t],a=me.YYYYY[t];let r=me.YYYY.exec(e)||a.exec(e);if(r){const t=r[1];return{year:parseInt(t,10),restDateString:e.slice(t.length)}}if(r=me.YY.exec(e)||n.exec(e),r){const t=r[1];return{year:100*parseInt(t,10),restDateString:e.slice(t.length)}}}return{year:null}}(a.date,n),s=function(e,t){if(null===t)return null;let n,a,r;if(!e||!e.length)return n=new Date(0),n.setUTCFullYear(t),n;let i=me.MM.exec(e);if(i)return n=new Date(0),a=parseInt(i[1],10)-1,ye(t,a)?(n.setUTCFullYear(t,a),n):new Date(NaN);if(i=me.DDD.exec(e),i){n=new Date(0);const e=parseInt(i[1],10);return function(e,t){if(t<1)return!1;const n=_e(e);if(n&&t>366)return!1;if(!n&&t>365)return!1;return!0}(t,e)?(n.setUTCFullYear(t,0,e),n):new Date(NaN)}if(i=me.MMDD.exec(e),i){n=new Date(0),a=parseInt(i[1],10)-1;const e=parseInt(i[2],10);return ye(t,a,e)?(n.setUTCFullYear(t,a,e),n):new Date(NaN)}if(i=me.Www.exec(e),i)return r=parseInt(i[1],10)-1,be(r)?fe(t,r):new Date(NaN);if(i=me.WwwD.exec(e),i){r=parseInt(i[1],10)-1;const e=parseInt(i[2],10)-1;return be(r,e)?fe(t,r,e):new Date(NaN)}return null}(i,r);if(null===s||isNaN(s.getTime()))return new Date(NaN);if(s){const e=s.getTime();let n,r=0;if(a.time&&(r=function(e){let t,n,a=me.HH.exec(e);if(a)return t=parseFloat(a[1].replace(",",".")),we(t)?t%24*ge:NaN;if(a=me.HHMM.exec(e),a)return t=parseInt(a[1],10),n=parseFloat(a[2].replace(",",".")),we(t,n)?t%24*ge+n*le:NaN;if(a=me.HHMMSS.exec(e),a){t=parseInt(a[1],10),n=parseInt(a[2],10);const e=parseFloat(a[3].replace(",","."));return we(t,n,e)?t%24*ge+n*le+1e3*e:NaN}return null}(a.time),null===r||isNaN(r)))return new Date(NaN);if(a.timeZone||t.timeZone){if(n=re(a.timeZone||t.timeZone,new Date(e+r)),isNaN(n))return new Date(NaN)}else n=ce(new Date(e+r)),n=ce(new Date(e+r+n));return new Date(e+r+n)}return new Date(NaN)}function fe(e,t,n){t=t||0,n=n||0;const a=new Date(0);a.setUTCFullYear(e,0,4);const r=7*t+n+1-(a.getUTCDay()||7);return a.setUTCDate(a.getUTCDate()+r),a}const he=[31,28,31,30,31,30,31,31,30,31,30,31],pe=[31,29,31,30,31,30,31,31,30,31,30,31];function _e(e){return e%400==0||e%4==0&&e%100!=0}function ye(e,t,n){if(t<0||t>11)return!1;if(null!=n){if(n<1)return!1;const a=_e(e);if(a&&n>pe[t])return!1;if(!a&&n>he[t])return!1}return!0}function be(e,t){return!(e<0||e>52)&&(null==t||!(t<0||t>6))}function we(e,t,n){return!(e<0||e>=25)&&((null==t||!(t<0||t>=60))&&(null==n||!(n<0||n>=60)))}const De=e=>{const t=Intl.DateTimeFormat().resolvedOptions().timeZone,n=Math.round(e.end_time?e.end_time-e.start_time:Date.now()/1e3-e.start_time),a=null!==e.top_score?` ${Math.round(100*e.top_score)}%`:"";return`${m(function(e,t,n){const a=re(t,e=de(e,n),!0),r=new Date(e.getTime()-a),i=new Date(0);return i.setFullYear(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate()),i.setHours(r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds()),i}(1e3*e.start_time,t))} [${n}s, ${d(e.label)}${a}]`};class Ce extends R{constructor(e,t,n,a,r,i){super(e,t),this._event=n,this._contentID=a,this._thumbnail=r,this._subLabels=i??null}getStartTime(){return j(this._event.start_time)}getEndTime(){return this._event.end_time?j(this._event.end_time):null}inProgress(){return!this.getEndTime()}getVideoContentType(){return Y.HLS}getID(){return this._event.id}getContentID(){return this._contentID}getTitle(){return De(this._event)}getThumbnail(){return this._thumbnail}isFavorite(){return this._event.retain_indefinitely??null}setFavorite(e){this._event.retain_indefinitely=e}getWhat(){return[this._event.label]}getWhere(){const e=this._event.zones;return e.length?e:null}getScore(){return this._event.top_score}getTags(){return this._subLabels}isGroupableWith(e){return this.getMediaType()===e.getMediaType()&&f(this.getWhere(),e.getWhere())&&f(this.getWhat(),e.getWhat())}}class ve extends R{constructor(e,t,n,a,r,i){super(e,t),this._recording=n,this._id=a,this._contentID=r,this._title=i}getID(){return this._id}getStartTime(){return this._recording.startTime}getEndTime(){return this._recording.endTime}inProgress(){return!this.getEndTime()}getVideoContentType(){return Y.HLS}getContentID(){return this._contentID}getTitle(){return this._title}getEventCount(){return this._recording.events}}class Te{static createEventViewMedia(e,t,n,a,r){return"clip"===e&&!a.has_clip||"snapshot"===e&&!a.has_snapshot||!n.frigate.client_id||!n.frigate.camera_name?null:new Ce(e,t,a,((e,t,n,a)=>`media-source://frigate/${e}/event/${a}/${t}/${n.id}`)(n.frigate.client_id,n.frigate.camera_name,a,"clip"===e?"clips":"snapshots"),((e,t)=>`/api/frigate/${e}/thumbnail/${t.id}`)(n.frigate.client_id,a),r)}static createRecordingViewMedia(e,t,n,a){return n.frigate.client_id&&n.frigate.camera_name?new ve("recording",e,t,((e,t)=>`${e.frigate?.client_id??""}/${e.frigate.camera_name??""}/${t.startTime.getTime()}/${t.endTime.getTime()}`)(n,t),((e,t,n)=>["media-source://frigate",e,"recordings",t,`${n.startTime.getFullYear()}-${String(n.startTime.getMonth()+1).padStart(2,"0")}-${String(String(n.startTime.getDate()).padStart(2,"0"))}`,String(n.startTime.getHours()).padStart(2,"0")].join("/"))(n.frigate.client_id,n.frigate.camera_name,t),((e,t)=>`${e} ${m(t.startTime)}`)(a,t)):null}}class Ie{static isFrigateMedia(e){return this.isFrigateEvent(e)||this.isFrigateRecording(e)}static isFrigateEvent(e){return e instanceof Ce}static isFrigateRecording(e){return e instanceof ve}}class Se{static isFrigateEventQueryResults(e){return e.engine===p.Frigate&&e.type===C.Event}static isFrigateRecordingQueryResults(e){return e.engine===p.Frigate&&e.type===C.Recording}static isFrigateRecordingSegmentsResults(e){return e.engine===p.Frigate&&e.type===C.RecordingSegments}}class Me extends N{constructor(e,t,n,a,r){super(t,r),this._throttledSegmentGarbageCollector=h(this._garbageCollectSegments.bind(this),36e5,{leading:!1,trailing:!0}),this._entityRegistryManager=e,this._frigateEventWatcher=new J,this._recordingSegmentsCache=n,this._requestCache=a}getEngineType(){return p.Frigate}async createCamera(e,t){const n=new G(t,this,{eventCallback:this._eventCallback});return await n.initialize({hass:e,entityRegistryManager:this._entityRegistryManager,stateWatcher:this._stateWatcher,frigateEventWatcher:this._frigateEventWatcher})}async getMediaDownloadPath(e,t,n){return Ie.isFrigateEvent(n)?{endpoint:`/api/frigate/${t.frigate.client_id}/notifications/${n.getID()}/`+(_.isClip(n)?"clip.mp4":"snapshot.jpg")+"?download=true",sign:!0}:Ie.isFrigateRecording(n)?{endpoint:`/api/frigate/${t.frigate.client_id}/recording/${t.frigate.camera_name}/start/${Math.floor(n.getStartTime().getTime()/1e3)}/end/${Math.floor(n.getEndTime().getTime()/1e3)}?download=true`,sign:!0}:null}generateDefaultEventQuery(e,t,n){const a=[...e.getCameraConfigs(t)],r=y(a.map((e=>e?.frigate.zones)),f),i=y(a.map((e=>e?.frigate.labels)),f);if(1===r.length&&1===i.length)return[{type:b.Event,cameraIDs:t,...i[0]&&{what:new Set(i[0])},...r[0]&&{where:new Set(r[0])},...n}];const s=[];for(const a of t){const t=e.getCameraConfig(a);t&&s.push({type:b.Event,cameraIDs:new Set([a]),...t.frigate.labels&&{what:new Set(t.frigate.labels)},...t.frigate.zones&&{where:new Set(t.frigate.zones)},...n})}return s.length?s:null}generateDefaultRecordingQuery(e,t,n){return[{type:b.Recording,cameraIDs:t,...n}]}generateDefaultRecordingSegmentsQuery(e,t,n){return n.start&&n.end?[{type:b.RecordingSegments,cameraIDs:t,start:n.start,end:n.end,...n}]:null}async favoriteMedia(e,t,n,a){Ie.isFrigateEvent(n)&&(await async function(e,t,n,a){const o={type:"frigate/event/retain",instance_id:t,event_id:n,retain:a},c=await r(e,Q,o,!0);if(!c.success)throw new i(s("error.failed_retain"),{request:o,response:c})}(e,t.frigate.client_id,n.getID(),a),n.setFavorite(a))}_buildInstanceToCameraIDMapFromQuery(e,t){const n=new Map;for(const a of t){const t=this._getQueryableCameraConfig(e,a),r=t?.frigate.client_id;r&&(n.has(r)||n.set(r,new Set),n.get(r)?.add(a))}return n}_getFrigateCameraNamesForCameraIDs(e,t){const n=new Set;for(const a of t){const t=this._getQueryableCameraConfig(e,a);t?.frigate.camera_name&&n.add(t.frigate.camera_name)}return n}async getEvents(e,t,n,a){const r=new Map,i=async(i,s)=>{if(!s||!s.size)return;const o={...n,cameraIDs:s},c=a?.useCache??1?this._requestCache.get(o):null;if(c)return void r.set(n,c);const g={instance_id:i,cameras:Array.from(this._getFrigateCameraNamesForCameraIDs(t,s)),...n.what&&{labels:Array.from(n.what)},...n.where&&{zones:Array.from(n.where)},...n.tags&&{sub_labels:Array.from(n.tags)},...n.end&&{before:Math.floor(n.end.getTime()/1e3)},...n.start&&{after:Math.floor(n.start.getTime()/1e3)},...n.limit&&{limit:n.limit},...n.hasClip&&{has_clip:n.hasClip},...n.hasSnapshot&&{has_snapshot:n.hasSnapshot},...n.favorite&&{favorites:n.favorite},limit:n?.limit??$},l={type:C.Event,engine:p.Frigate,instanceID:i,events:await L(e,g),expiry:v(new Date,{seconds:60}),cached:!1};(a?.useCache??1)&&this._requestCache.set(n,{...l,cached:!0},l.expiry),r.set(o,l)},s=this._buildInstanceToCameraIDMapFromQuery(t,n.cameraIDs);return await Promise.all(Array.from(s.keys()).map((e=>i(e,s.get(e))))),r.size?r:null}async getRecordings(e,t,n,a){const i=new Map,s=async(n,s)=>{const o={...n,cameraIDs:new Set([s])},c=a?.useCache??1?this._requestCache.get(o):null;if(c)return void i.set(o,c);const g=this._getQueryableCameraConfig(t,s);if(!g||!g.frigate.camera_name)return;const l=await(async(e,t,n)=>await r(e,U,{type:"frigate/recordings/summary",instance_id:t,camera:n,timezone:e.config.time_zone},!0))(e,g.frigate.client_id,g.frigate.camera_name);let u=[];for(const e of l??[])for(const t of e.hours){const n=v(e.day,{hours:t.hour}),a=x(n),r=H(n);(!o.start||a>=o.start)&&(!o.end||r<=o.end)&&u.push({cameraID:s,startTime:a,endTime:r,events:t.events})}void 0!==o.limit&&(u=S(u,(e=>e.startTime),"desc").slice(0,o.limit));const m={type:C.Recording,engine:p.Frigate,instanceID:g.frigate.client_id,recordings:u,expiry:v(new Date,{seconds:60}),cached:!1};(a?.useCache??1)&&this._requestCache.set(o,{...m,cached:!0},m.expiry),i.set(o,m)};return await Promise.all(Array.from(n.cameraIDs).map((e=>s(n,e)))),i.size?i:null}async getRecordingSegments(e,t,n,a){const i=new Map,s=async(n,s)=>{const o={...n,cameraIDs:new Set([s])},c=this._getQueryableCameraConfig(t,s);if(!c||!c.frigate.camera_name)return;const g={start:o.start,end:o.end},l=a?.useCache??1?this._recordingSegmentsCache.get(s,g):null;if(l)return void i.set(o,{type:C.RecordingSegments,engine:p.Frigate,instanceID:c.frigate.client_id,segments:l,cached:!0});const u={instance_id:c.frigate.client_id,camera:c.frigate.camera_name,after:Math.floor(o.start.getTime()/1e3),before:Math.floor(o.end.getTime()/1e3)},m=await(async(e,t)=>await r(e,W,{type:"frigate/recordings/get",...t},!0))(e,u);(a?.useCache??1)&&this._recordingSegmentsCache.add(s,g,m),i.set(o,{type:C.RecordingSegments,engine:p.Frigate,instanceID:c.frigate.client_id,segments:m,cached:!1})};return await Promise.all(Array.from(n.cameraIDs).map((e=>s(n,e)))),w((()=>this._throttledSegmentGarbageCollector(e,t))),i.size?i:null}_getCameraIDMatch(e,t,n,a){if(1===t.cameraIDs.size)return[...t.cameraIDs][0];for(const[t,r]of e.getCameraConfigEntries())if(r.frigate.client_id===n&&r.frigate.camera_name===a)return t;return null}generateMediaFromEvents(e,t,n,a){if(!Se.isFrigateEventQueryResults(a))return null;const r=[];for(const e of a.events){const i=this._getCameraIDMatch(t,n,a.instanceID,e.camera);if(!i)continue;const s=this._getQueryableCameraConfig(t,i);if(!s)continue;let o=null;if(n.hasClip||n.hasSnapshot||!e.has_clip&&!e.has_snapshot?n.hasSnapshot&&e.has_snapshot?o="snapshot":n.hasClip&&e.has_clip&&(o="clip"):o=e.has_clip?"clip":"snapshot",!o)continue;const c=Te.createEventViewMedia(o,i,s,e,e.sub_label?this._splitSubLabels(e.sub_label):void 0);c&&r.push(c)}return r}generateMediaFromRecordings(e,t,n,a){if(!Se.isFrigateRecordingQueryResults(a))return null;const r=[];for(const n of a.recordings){const a=this._getQueryableCameraConfig(t,n.cameraID);if(!a)continue;const i=Te.createRecordingViewMedia(n.cameraID,n,a,this.getCameraMetadata(e,a).title);i&&r.push(i)}return r}getQueryResultMaxAge(e){return e.type===b.Event||e.type===b.Recording?60:null}async getMediaSeekTime(e,t,n,a,r){const i=n.getStartTime(),s=n.getEndTime();if(!i||!s||as)return null;const o=n.getCameraID(),c={cameraIDs:new Set([o]),start:i,end:s,type:b.RecordingSegments},g=await this.getRecordingSegments(e,t,c,r);return g?this._getSeekTimeInSegments(i,a,Array.from(g.values())[0].segments):null}_getQueryableCameraConfig(e,t){const n=e.getCameraConfig(t);return!n||V(n)?null:n}_splitSubLabels(e){return e.split(",").map((e=>e.trim()))}async getMediaMetadata(e,t,n,a){const i=new Map;if((a?.useCache??1)&&this._requestCache.has(n)){const e=this._requestCache.get(n);if(e)return i.set(n,e),i}const s=new Set,o=new Set,c=new Set,g=new Set,l=this._buildInstanceToCameraIDMapFromQuery(t,n.cameraIDs),u=async(n,a)=>{const i=this._getFrigateCameraNamesForCameraIDs(t,a);for(const t of await(async(e,t)=>await r(e,k,{type:"frigate/events/summary",instance_id:t,timezone:e.config.time_zone},!0))(e,n))i.has(t.camera)&&(t.label&&s.add(t.label),t.zones.length&&t.zones.forEach(o.add,o),t.day&&c.add(t.day),t.sub_label&&this._splitSubLabels(t.sub_label).forEach(g.add,g))},m=async n=>{const r=await this.getRecordings(e,t,{type:b.Recording,cameraIDs:n},a);if(r)for(const e of r.values())if(Se.isFrigateRecordingQueryResults(e))for(const t of e.recordings)c.add(M(t.startTime))};await D([...l.entries()],(([e,t])=>(async()=>{await Promise.all([u(e,t),m(t)])})()));const d={type:C.MediaMetadata,engine:p.Frigate,metadata:{...s.size&&{what:s},...o.size&&{where:o},...c.size&&{days:c},...g.size&&{tags:g}},expiry:v(new Date,{seconds:60}),cached:!1};return(a?.useCache??1)&&this._requestCache.set(n,{...d,cached:!0},d.expiry),i.set(n,d),i}async _garbageCollectSegments(e,t){const n=this._recordingSegmentsCache.getCameraIDs(),a={cameraIDs:new Set(n),type:b.Recording},r=(e,t)=>`${e}/${t.getDate()}/${t.getHours()}`,i=await this.getRecordings(e,t,a);if(i)for(const[e,t]of i){if(!Se.isFrigateRecordingQueryResults(t))continue;const n=new Set;for(const e of t.recordings)n.add(r(e.cameraID,e.startTime));const a=Array.from(e.cameraIDs)[0];this._recordingSegmentsCache.expireMatches(a,(e=>{const t=r(a,j(e.start_time));return!n.has(t)}))}}_getSeekTimeInSegments(e,t,n){if(!n.length)return null;let a=0;for(const r of n){const n=j(r.start_time);if(n>t)break;const i=j(r.end_time),s=nt?t:i).getTime()-s.getTime()}return a/1e3}getMediaCapabilities(e){return{canFavorite:_.isEvent(e),canDownload:!0}}getCameraMetadata(e,t){const n=super.getCameraMetadata(e,t);return{title:t.title??T(e,t.camera_entity)??T(e,t.webrtc_card?.entity)??d(t.frigate?.camera_name)??t.id??"",icon:n.icon,engineLogo:I}}getCameraEndpoints(e,t){const n=(()=>{if(!e.frigate.url)return null;if(!e.frigate.camera_name)return{endpoint:e.frigate.url};const n=`${e.frigate.url}/cameras/`+e.frigate.camera_name;if("live"===t?.view)return{endpoint:n};const a=`${e.frigate.url}/events?camera=`+e.frigate.camera_name,r=`${e.frigate.url}/recording/`+e.frigate.camera_name;switch(t?.media?.getMediaType()){case"clip":case"snapshot":return{endpoint:a};case"recording":const e=t.media.getStartTime();if(e)return{endpoint:r+F(e,"yyyy-MM-dd/HH")}}switch(t?.view){case"clip":case"clips":case"snapshots":case"snapshot":return{endpoint:a};case"recording":case"recordings":return{endpoint:r}}return{endpoint:n}})(),a=E(e,{url:e.go2rtc?.url??`/api/frigate/${e.frigate.client_id}/mse`,stream:e.go2rtc?.stream??e.frigate.camera_name}),r={endpoint:`/api/frigate/${e.frigate.client_id}/jsmpeg/${e.frigate.camera_name}`,sign:!0},i=(()=>{const t=e.frigate.camera_name?e.frigate.camera_name:null;return t?{endpoint:t}:null})();return{...super.getCameraEndpoints(e,t),...n&&{ui:n},...a&&{go2rtc:a},...r&&{jsmpeg:r},...i&&{webrtcCard:i}}}async executePTZAction(e,t,n,a){const r=t.camera_entity;("preset"!==n||a?.preset)&&await e.callService("frigate","ptz",{entity_id:r,action:"stop"===a?.phase?"stop":"zoom_in"===n||"zoom_out"===n?"zoom":"preset"===n?"preset":"move",..."stop"!==a?.phase&&{argument:"zoom_in"===n?"in":"zoom_out"===n?"out":"preset"===n?a?.preset:n}})}}export{Me as FrigateCameraManagerEngine}; diff --git a/config/www/community/frigate-hass-card/engine-frigate-a6e3bd9e.js.gz b/config/www/community/frigate-hass-card/engine-frigate-a6e3bd9e.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..aef7b531f5d36786e8d76993934d7f914d4b60f9 GIT binary patch literal 8638 zcmV;vAwk|BiwFp8_*Q2E|7C7xX>MgLW^!p~VRU6JVK!wmVq`gGE^2cCy*=A@+eVV_ z^A#kHqXSq?kfLlQh74o9k{x>{vYp6DCgyPD7SW<$lMN04N>(VGvtO_uxnHtXeM93y z#c?u|$p}PWtE=md>Q1s;rCG6w_j@$&F%qBQvmo(3d~(7@_@spG;WHy_jL(ED@R1WH zx}}6Yz~_vxhxnWmc7V?XiO=!5Ch=Q*F3CrH#3aGT1&J^5c}dvU_*{{g;D;q#Ql44)??j`8`tyvWj};}2&v ziw9rN;?cwLqmln1cMcPYgClHqPd8(Ho^Uq!=HPrZdUP;rHT;!)i;q`ij*n-JZga+2 zmdpl^4$k+-qy2B}?gIKB$WQqAMfY2>IH7~tqtV`Y^v&3Ao@2XDL@efoZk`u3D_&o` zNY~lmVxQ5`_#zgaF4lZjBq{HGa0_pfv0|O^9&`8D{{6x$XDQE%-n)?d>G=mXE8NYD zE?Gtc?&n38@VV;|#^bXhSu!Z&>*YDiTn~OM7W90#^Q1_wu+e#%E*RzY zR+ltCn=O)+T`vlAPFMM5TGT3%*aiT`U<4SGMX@xB3+&3vozbbkY7{I za(hIYW%LFr0BJPgX9hv!Qruq(!kyj@Xxrytbe|XBWtpPYJy!SO!m|N$AD^ICtW3cI^;ny+X2t zA3#UW6oxpI!t1+`<~MxiGE#Wq6M9XPq6b_>-jR(M#<|FnIrJP#Y97v6;Sk^Vi<0z# ziGB)^8_ts~&e;tEeh8VbdiWBXXSkJzvjxrb-nTvWsQ>^#+;7D6*?Lx_I9)-w2c)`U z`h^siN$#Jiv7X`NFDQ=}EW;UP?_Lr1nJ<^`+vwfdVZJ~{t@QTRG}c9tU+rceVVAwS zstIpQh8tX;2ulbJ1>}IIqm*AHux*FQg-Z=q#HL360yJB3xwF%6)cAS2WUgC;PxQz& zYVZ?2TdZT2gF5oO+uN$QprY=9WmVNxk1WbPPii$q4_QckAh-FPWw|f+{Lsy+zK$$& zU~aoqV+<;Gc8Yo(qD7Q*tP|TR205aO#W|gQjC^3KBxZ}GxCxxgWPa%oNjoo(1C7j= z$EbslBAJg5BKd1)r(>pyYm0il1!d`#rJ(#C>ZF7&l3y7}aINAcBS>JY25Lve{)4p! z9996#Kd^ZMq9HQP7L})(Cl5_Sp74)806WMI=Gc9J9 z)ii=>{MsVa!a4v)E|dG*CR37y{fcNJn|(=QQ^hhx@rkr&iqhF^y`p?}bGTqdZyus7 zR0OpMQwpmbjcad0SgYWy%Z>o{pdiziKsXg9bHN$Aht9AiZ0dwt2Y%Gu$f&g!(XlQ zOII$uYl}N3dadieY%XYvMBABaxN;|wHHjLkh)NF`Z}hMvM4) zICq7`PZ5W9%s7AQUr)a)_Aga2ZlorwE&GqF=@(t%D2O&)g<0m|NEJYf1nq|;CY?Zn8!K>DDZjOgehe;L>k4FN z?rY0CvQ+A-aJ*>ZK*J*8>vWwvQ((s_(Ej#5zoy`HclH9#@Ri|ys5P7B@S;j- zL=l2s!QT|hVhM6Xc{rJZY=a`|8DlyN|HLI2ZDFmVJiE7{Tfja9fyAXY$h;C+v~$rm z&vzQsQKLMVbdECxna#GC&QY@>m^fgmI@3cCP_EK_Jw%CD6%<&Ic~oE-!RKl;!~9(W zrNiR0H>t~!=<}v|Zny%fx=^Of`@anD_Y#yC=j%l;nR9Ssz{2`e^aca)%2+l_a@cUt zbgZ|O7A7?B@wDiz(mYQ8XDT25_!(miH*I1wzxiR()aA{}ODKU9sN% zp%x??Ew#Y3=N%GirhI|`45_UiAc`jiW56s&Nh})FNhco4L#4`ngLOgw%F#^uF)Sua zZ(P>}oytShF1yPwXM4%BB%^DrX|RS>fbFhK59xOHVapU`=S;+d~nI zzIDe5%zzC=W%VvS?Wx$fW-XL9R(z2xV7G;oD$r;5^cFVI#%#3R-nzCW*M%dy{S+f! z40JX7+zw#&H0Rd}qu;+{1=bj$Sd3!lvWa&=D8hPBhQnV^U%&EKG|QP=v~~DZn#4V% zt8~HqYnpM_`9TgC15@(>_U^6d%_5~To-emgacg|GM)bcp#4c?a4jaGoylvjrW#V%KNCq}fM@+%TF24quB3hb+MYx(uB0AWr59K#5`2 z>PK(FdRP|Vk6QMmGCc`Gje-u%{XTi2NM#t+v2bDGw5Pv25j`H1+yZSbLgJA(D0V^V^Xcj3MMS`Yg z=GU5|b^r@rnlC6oSU5UlkF|kv$aZ%tTL0UG!_*?eHa!$FWCWZG?vhI<#WWP+2C(Le zR>Hj}d*E+qxM?Ma(1h!0{s-Cc1Lbq}3?n(pBAL9Rucn7G)Wgcs<)BT1`l^~Ml1mx7 z|A=?Jf7Bi%>WODy{T=#X*UV66sR<4Abh1B1xQSJ=*D4veN*=UI9=1vjM9EaHM+wot zg&RRQBSkQKf>6eiK=w6ZJkSL3uvD?Lzk|h4eS&06I*0`P90K0I#!ng=ZXfBj_EH}_ znjhaDJqL617noaz)pa?3>daj|5=j-L1q=5N*h9iuc)%VI%EAp&Kibm4(4D;79ZdcE z;6)Q%`Yss$(|u=`ym)~{6KMI5crz~RRVOF9(sN~X5V^XYwbqR3j{+!fH}c1*%TF>fp);B&(mwy(`%(5@r%HQ zPdm)8ndrwDTJ(r`KS5^DFJfHvTN0;kCAh=9o(dkZY8Q(n*JU0GP4Mj!iCdr&9%VJ5 zVn@Km0EiiIt&py=kPZs9m;}c#>&-w{%D@rsi3u4UW`i&>UGnZO33M@0rbO?)*mC?# zjqC?d14%PY8iPd3Q`~dI6G_8ckVXs$M8GefjHZMGu?+U$F~;Bf)33%4;Q0VwKu(Rk z)^cqG=w)YL?Xi6gC9dyDIEs=03U?Di2U!JA&g`(rV7&i0WIH?TaX8)weSv5yQ%?lz)&wV(;dae`qmB)|NEZH#37 z1>Pr3aa+CbH{KuM`xJZWVW32eQXfZ@R<951uLtltB|?-BDo~D(kFh|Ab2;zHiB$xR z29>BMKVM&qs-J5`$F(xqeos_Nts=_ZiBABG`(7j~q)w@8lXjca({`&Z&5dLny6(jxz>Fz&<>gU;X7uwmcVn~bFW5G2*|3ZAzY!0?#6~%eH zXMOy73s#u0m|SPCr(5>Wy-G3`liv9nScxxgdd_ZhoL#3UqA%e2$Z(Y4#?UBI!(<>~ zH1Er>H1MoX<2aEi631wm=FuATpv-h=SBmk+U?uXMojv(Ln~_@!scb*jX?E`|*D&`v z1C`X<>!n$5EFrELj|eI_Br@Z{`Wmpa<4k0sXfj2W`C7dDt1K;2Z08s0sR(8Y=Mptp z69<+U6jM7gtHYWH=GOB_JbdX)a(q3OY&~`QUow`pbF}8cYC#GjR>TWHLoAu!kVeL0 zq7m#VR))d`<{=u#U_qNsjSi%v!x%fLLh`n z9jXEx)p0yhnD!x-Vcc^GI~3?1T1ggYo)BqaX9TETr~`?;ASuJTPl2RW=}-U)L?5^| z5=lZ3!kf~MszfgxKY3e*W>%p(1NfBkkZ>5QuMh@h11RR_iv*Th=pb>4mYtffnyte5 zT~qCiM)!aBbfrCl2uYVR)h5t#-q>9c0o+xATeZ|YSHT#8W= zTzh3y*X;QE7#;RH*gQ9|Is!Jk+nxeryj=SG72gQE45kF7WgGIfsk%(~y_yN%!cqb9 zTU*UWs-9`S2gz7G**`d_nuvhDEPYs&YHJ?NLe{;e5n8v+Rh4>GsCc(7s~dw|iyhY% zD^a`+AbKZ2pxWD>SJt_c=V&@d7dTnAZP(CJu-BLUz7-8LihDR2u1HRY0f;*M_BR`_ z)H7R`=C`*=4z1kWQXkz?8am~bAj}(fI0uJiq;fi-6l~|LCeN{raQkuTl?y9+7*|BD z^7$gAGMHh+sYBp@m^MPLF;E;8;1%4T8^2Z!YWcIxF>B!wUY}>YZ5|*6J<~3~zi3Z) zdTLF$xnn9j7E|9+4a9y25PE|pEV#usG`pC;Enuqeu-pLo?HhJD(>t8qv9Z)>DU4t1 z-%@6V8QW4%DwALrMkjI}-aSnzg5W%yS?;Cm)+*cO)!G~7W#`bwF1;`jmqK`LFgAxr z<=b0=k+y?NBl5sADTH6&FLwFv-T)Rq7Y&awZT0r{Yp?pMpR0<3S*_5E+r`v26SGZ?7iHk#72-Y{A>AfL5x2?(FaarAKmQ=+#$~{^Gy*?zB`1&RvisaVb+kBvzV@47y4|bH&0M` zo_8u+i7cN(lbNMccmhKe$l2WsF^n$|L+5$3nISX4$+wsshf z361rlot+DlU8+_iBarH)(Ew4R>+!cqKDqib4l}u-hRc%Juvf)!n!O4nqcG{FN=c6$ z%+{DnvKuzJgW0OqOg8vaS?Y_J#zKJrT%1$@by3^_yGVJ_d-Rs!39cfU^=28{`%6wNrXHacV(i!HPp0`XI^etvRkxudI%<^gA-BwxxloWk^>^ z9RMSoaQ-`{rWh$HYuNum?^0_A%yxE+gvp4VNCf;{ftz9W-XS=e0o}^gjH=P1$Z-&B z-HD^BvZxrQG9P4x;ti`9*N^P&nv~&*)4hWTpkpPHL-Y5zf3?Xfv!fi`+sLSq+i0Wg zklj7cU(s0bzdI(*$g%r$cU2}!vmY#jbazmOOsmJ#|Bxo!b%xOSchFwp)pn@tp=oE~ zTi}zTnWI8sl968;Mh2BAhgAermjtF(aJq=x)yoYH;;D+}kh+s`MeMlu5o@)#2kY!} z#qq7Rg026KB?Qp=gy6Ru13qx@R!K5vWcaSm;oHxq4u!QUAkg?s&US6e}o0 zplMJ6c{1lnRe=p+B}jfhn1-}#Jg6enj-+XsZI5YlcuL^LrT&txL_Rc&>W2%! zUA{o~eoGs9dO$S7*v=kC6wUEmd`s#dOC~at`drFca|AXI3UP#GGMet}Y_7o}5N6yd z!+`c^>WNb!q28@6qiFv2WOA!$|5T5t3qVjl>VV~ z;hX2qL>>O*>Y@)kaWxC86Kvm;6yswex;Zn6<5g}zQl0R<0R6|}Gc}P%HcCMSDSpvh z0dOps!FF#s-DYH^_~Pf=(Fh90=Gpl=S;Q|D^l#H6h3*r&!o!JX@9O#tYVTkdb1qc$ z#_&Lmcf|RUEG(inw0PhN#2aWiHxr+Fb7WYeNZpf*!7pK$Zz13}2Z=h*SLV;tOs^W6Ll8;JF)c29BCR8!DiLi~lVWieaRCV`SB+Eps5ubs2S9L)6N8$pF zjdfXyDy*8EnhQNPjq6jaO4VEoLTIah;^is&cS#f&k%S|P?m>|fb;`FP(w7K~$xE!` zYKgwkN6NPEfQIKDVV_n>b`xBguW)3eqUpf_n(;HFxERd)^3bhQrnwBGMw^oOkgyk~ z?+5_(7?**j6_v)KDLq#yFE&|Y(p zL-V_iSn3Ne?mp7}WAnsZ6`dL8>*bPWH`@+(n?(9RUos)So{6hr%)#$@hidEwTVx-s z>jt4X*}90L$+UU6i}~XEs!Fe1xtJh!BTveJ(IV^9+iHd^-ndZbohhDwXoK;D+*m2k4sk>HJ za#XP%;>0YUIiAXi8WGjOq_HoJOsH(ZyW~O_zOBm`*8dg}kqQy9v_-_yhzL#NORxMa zKDPyfVf9=bVDaRaM&$8i8;@%P_D^T^&t=RRFy`#H850z_G^MREo`=b+ZES@i z7d-2{S1Amsb&AHy!O||aaA(D(F%5?S8UD2C+}1+Rw0`4?_AuINjwSz>G z*Ur7G#Yp*+c}0mpU&U5Y8?9KQL;7iR-Lvp5V5aMi5 zQ~jmgwHkPVRO%q-kc@ew=3S4+fJL9 zODfEDe6g&$iw_g#UJy}u!U~FK<%OH>ix1Z@iNRP>!G77KD;o| zlo+t0gHgj05I~+X_ED$->+^}R0~&!}anFw(*_CXBem+=7cvWV& z>98Ntsk+4$oihxKlAG2EEZvg&b8`ur2U6A7 z3dE}<_O_Ty?fi2yDr=60_c>lN#Xa?Xzijc7wY#DUb7U+1!}O_&=64Q@s=AFj+_KLy zS24uJy=L}K%VU#=CCve)M0vuP;9Y8|sy3LU=GV;pnwwvXFZPPb+8CzwsJ1YpQ6W(i7k5bngV*ght#XNK2IxOQeZUJ&}ht>tT1>P!kR4=;x*x2Ra_ zW{B1`Yx-Ck4M!FRGQ3v zkv=detV3~t5}r}?R(wgT-Ky*9(rb2}6|*z^&pYVb`k>DG(o?%37^*Na50lwQG86ah z<3ow4@6vf1ytG#EOl2E1m{xee^2QJ2HLkNoZFB3j?O;!p$xs`kH2h&F>4}=5`k*s> zzuSFzIUd=?3suG4Mv;F7c6noHy~a@&KD_ps)sPQDrv<#%PnHH|%)ZVylM9cAvwxIydmo;N)Zw$HNyd z9N^{(Qh~u1U@9rJ24wz4K-b>$cAw0gf3@}xRW7K4X8`*Ka1Z1&PshLl5$;43wbD|% z@?w@brlH7-cB}rfAd0&0@x(~^_Vk<1X+Gr36`K#Y-VACoVL$^(o@!s4X{VremdfC! z4$@c|LWN4O0eoq>g62kD{M0#Ie4zttVx6F!rtWN&=utPc;)TR=S+G0$%2p|Zjz9zj zNvZEn#AAc&g1veB?rCTGLKZee+M(;n3tsV@y|}4a-7yO$iMa|9Ot4dyUEwDIb2Bk< zR>iLl*_gXZgN#ryXW-;TDw3ITFwj^mk|lw--1aQtSO;^-*K{p%xOpV6z6~@yvP``M z&N2lVgKL*#^{dhG)2q7Sp*}<8z>lCg3;wE4V%97Oy(~dL<9`h2gjsk0DZL@n=wv2f QdH9$A2Vq~v2hwN&0BLZk(f|Me literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/engine-frigate-f675aa79.js b/config/www/community/frigate-hass-card/engine-frigate-f675aa79.js new file mode 100644 index 00000000..574841cf --- /dev/null +++ b/config/www/community/frigate-hass-card/engine-frigate-f675aa79.js @@ -0,0 +1,3 @@ +import{d3 as e,d_ as t,d$ as n,e0 as a,e1 as r,e2 as i,l as s,e3 as o,e4 as c,e5 as g,e6 as l,db as u,dT as m,k as d,i as f,dh as h,e7 as p,dn as _,d9 as y,d7 as b,e8 as w,e9 as D,ea as C,dQ as v,j as T,eb as I,dc as S,de as M,dd as F}from"./card-769e2b91.js";import{C as $}from"./engine-86b0096c.js";import{C as z,G as N,g as E}from"./engine-generic-97fdd47e.js";import{a as R,V as Y}from"./media-c9012082.js";import{s as x,e as H}from"./startOfHour-1a5ce3ae.js";function j(t){return e(1e3*t)}const Z=n.object({camera:n.string(),end_time:n.number().nullable(),false_positive:n.boolean().nullable(),has_clip:n.boolean(),has_snapshot:n.boolean(),id:n.string(),label:n.string(),sub_label:n.string().nullable(),start_time:n.number(),top_score:n.number().nullable(),zones:n.string().array(),retain_indefinitely:n.boolean().optional()}).array(),q=n.object({hour:n.preprocess((e=>Number(e)),n.number().min(0).max(23)),duration:n.number().min(0),events:n.number().min(0)}),U=n.object({day:n.preprocess((e=>"string"==typeof e?a(e):e),n.date()),events:n.number(),hours:q.array()}).array(),W=n.object({start_time:n.number(),end_time:n.number(),id:n.string()}).array(),Q=n.object({success:n.boolean(),message:n.string()}),k=n.object({camera:n.string(),day:n.string(),label:n.string(),sub_label:n.string().nullable(),zones:n.string().array()}).array(),P=n.object({name:n.string().optional(),features:n.string().array().optional(),presets:n.string().array().optional()}),A=n.object({camera:n.string(),snapshot:n.object({frame_time:n.number()}).nullable(),has_clip:n.boolean(),has_snapshot:n.boolean(),label:n.string(),current_zones:n.string().array()}),O=n.object({before:A,after:A,type:n.enum(["new","update","end"])});const L=async(e,t)=>await r(e,Z,{type:"frigate/events/get",...t},!0),V=e=>"birdseye"===e.frigate.camera_name;class G extends z{constructor(e,t,n){super(e,t,n),this._frigateEventHandler=e=>{const t=!e.before.has_snapshot&&e.after.has_snapshot||e.before.snapshot?.frame_time!==e.after.snapshot?.frame_time,n=!e.before.has_clip&&e.after.has_clip,a=this.getConfig();if(a.frigate.zones?.length&&!a.frigate.zones.some((t=>e.after.current_zones.includes(t)))||a.frigate.labels?.length&&!a.frigate.labels.includes(e.after.label))return;const r=a.triggers.events;(r.includes("events")||r.includes("snapshots")&&t||r.includes("clips")&&n)&&this._eventCallback?.({fidelity:"high",cameraID:this.getID(),type:e.type,clip:n&&r.includes("clips"),snapshot:t&&r.includes("snapshots")})}}async initialize(e){return await this._initializeConfig(e.hass,e.entityRegistryManager),await this._initializeCapabilities(e.hass),await this._subscribeToEvents(e.hass,e.frigateEventWatcher),await super.initialize(e)}async _initializeConfig(e,n){const a=this.getConfig(),r=!!a.frigate?.camera_name,i=a.triggers.motion||a.triggers.occupancy;let g=null;const l=o(a);if(l&&(!r||i)&&(g=await n.getEntity(e,l),!g))throw new c(s("error.no_camera_entity"),a);if(g&&!r){const e=this._getFrigateCameraNameFromEntity(g);e&&(this._config.frigate.camera_name=e)}if(i){const r=await n.getMatchingEntities(e,(e=>e.config_entry_id===g?.config_entry_id&&!e.disabled_by&&e.entity_id.startsWith("binary_sensor.")));if(a.triggers.motion){const e=this._getMotionSensor(a,[...r.values()]);e&&a.triggers.entities.push(e)}if(a.triggers.occupancy){const e=this._getOccupancySensor(a,[...r.values()]);e&&a.triggers.entities.push(...e)}a.triggers.entities=(u=a.triggers.entities)&&u.length?t(u):[]}var u}async _initializeCapabilities(e){const t=this.getConfig(),n=g(this.getConfig()),a=await this._getPTZCapabilities(e,t),r=n||a?{...a,...n}:null,i=V(t);this._capabilities=new l({"favorite-events":!i,"favorite-recordings":!1,seek:!i,clips:!i,snapshots:!i,recordings:!i,live:!0,menu:!0,substream:!0,...r&&{ptz:r}},{disable:t.capabilities?.disable,disableExcept:t.capabilities?.disable_except})}_getFrigateCameraNameFromEntity(e){if("frigate"===e.platform&&e.unique_id&&"string"==typeof e.unique_id){const t=e.unique_id.match(/:camera:(?[^:]+)$/);if(t&&t.groups)return t.groups.camera}return null}async _getPTZCapabilities(e,t){if(!t.frigate.camera_name||V(t))return null;let n=null;try{n=await(async(e,t,n)=>await r(e,P,{type:"frigate/ptz/info",instance_id:t,camera:n},!0))(e,t.frigate.client_id,t.frigate.camera_name)}catch(e){return u(e),null}const a=[...n.features?.includes("pt")?["continuous"]:[]],i=[...n.features?.includes("zoom")?["continuous"]:[]],s=n.presets;return a.length||i.length||s?.length?{...a&&{left:a,right:a,up:a,down:a},...i&&{zoomIn:i,zoomOut:i},...s&&{presets:s}}:null}_getMotionSensor(e,t){return e.frigate.camera_name?t.find((t=>"string"==typeof t.unique_id&&!!t.unique_id?.match(new RegExp(`:motion_sensor:${e.frigate.camera_name}`))))?.entity_id??null:null}_getOccupancySensor(e,t){const n=[],a=(e,a)=>{const r=t.find((t=>"string"==typeof t.unique_id&&!!t.unique_id?.match(new RegExp(`:occupancy_sensor:${e}_${a}`))))?.entity_id??null;r&&n.push(r)};if(e.frigate.camera_name){const t=e.frigate.zones?.length?e.frigate.zones:[e.frigate.camera_name],r=e.frigate.labels?.length?e.frigate.labels:["all"];for(const e of t)for(const t of r)a(e,t);if(n.length)return n}return null}async _subscribeToEvents(e,t){const n=this.getConfig();if(!n.triggers.events.length||!n.frigate.camera_name)return; +/* istanbul ignore next -- exercising the matcher is not possible when the + test uses an event watcher -- @preserve */const a={instanceID:n.frigate.client_id,callback:e=>this._frigateEventHandler(e),matcher:e=>e.after.camera===n.frigate.camera_name};await t.subscribe(e,a),this._onDestroy((()=>t.unsubscribe(a)))}}class J{constructor(){this._requests=[],this._unsubscribeCallback={}}async subscribe(e,t){const n=!this._hasSubscribers(t.instanceID);this._requests.push(t),n&&(this._unsubscribeCallback[t.instanceID]=await e.connection.subscribeMessage((e=>this._receiveHandler(t.instanceID,e)),{type:"frigate/events/subscribe",instance_id:t.instanceID}))}async unsubscribe(e){this._requests=this._requests.filter((t=>t!==e)),this._hasSubscribers(e.instanceID)||(await this._unsubscribeCallback[e.instanceID](),delete this._unsubscribeCallback[e.instanceID])}_hasSubscribers(e){return!!this._requests.filter((t=>t.instanceID===e)).length}_receiveHandler(e,t){let n;try{n=JSON.parse(t)}catch(e){return void console.warn("Received non-JSON payload as Frigate event",t)}const a=O.safeParse(n);if(a.success)for(const t of this._requests)t.instanceID!==e||t.matcher&&!t.matcher(a.data)||t.callback(a.data);else console.warn("Received malformed Frigate event from Home Assistant",t)}}function B(e,t){const n=function(e){if(!X[e]){const t=new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:"America/New_York",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date("2014-06-25T04:00:00.123Z")),n="06/25/2014, 00:00:00"===t||"‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00"===t;X[e]=n?new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:e,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:e,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}return X[e]}(t);return"formatToParts"in n?function(e,t){try{const n=e.formatToParts(t),a=[];for(let e=0;e=0?i:1e3+i,a-r}function se(e,t){return-23<=e&&e<=23&&(null==t||0<=t&&t<=59)}const oe={};function ce(e){const t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),+e-+t}const ge=36e5,le=6e4,ue=2,me={dateTimePattern:/^([0-9W+-]+)(T| )(.*)/,datePattern:/^([0-9W+-]+)(.*)/,plainTime:/:/,YY:/^(\d{2})$/,YYY:[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],YYYY:/^(\d{4})/,YYYYY:[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],MM:/^-(\d{2})$/,DDD:/^-?(\d{3})$/,MMDD:/^-?(\d{2})-?(\d{2})$/,Www:/^-?W(\d{2})$/,WwwD:/^-?W(\d{2})-?(\d{1})$/,HH:/^(\d{2}([.,]\d*)?)$/,HHMM:/^(\d{2}):?(\d{2}([.,]\d*)?)$/,HHMMSS:/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,timeZone:/(Z|[+-]\d{2}(?::?\d{2})?| UTC| [a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?)$/};function de(e,t={}){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");if(null===e)return new Date(NaN);const n=null==t.additionalDigits?ue:Number(t.additionalDigits);if(2!==n&&1!==n&&0!==n)throw new RangeError("additionalDigits must be 0, 1 or 2");if(e instanceof Date||"object"==typeof e&&"[object Date]"===Object.prototype.toString.call(e))return new Date(e.getTime());if("number"==typeof e||"[object Number]"===Object.prototype.toString.call(e))return new Date(e);if("[object String]"!==Object.prototype.toString.call(e))return new Date(NaN);const a=function(e){const t={};let n,a=me.dateTimePattern.exec(e);a?(t.date=a[1],n=a[3]):(a=me.datePattern.exec(e),a?(t.date=a[1],n=a[2]):(t.date=null,n=e));if(n){const e=me.timeZone.exec(n);e?(t.time=n.replace(e[1],""),t.timeZone=e[1].trim()):t.time=n}return t}(e),{year:r,restDateString:i}=function(e,t){if(e){const n=me.YYY[t],a=me.YYYYY[t];let r=me.YYYY.exec(e)||a.exec(e);if(r){const t=r[1];return{year:parseInt(t,10),restDateString:e.slice(t.length)}}if(r=me.YY.exec(e)||n.exec(e),r){const t=r[1];return{year:100*parseInt(t,10),restDateString:e.slice(t.length)}}}return{year:null}}(a.date,n),s=function(e,t){if(null===t)return null;let n,a,r;if(!e||!e.length)return n=new Date(0),n.setUTCFullYear(t),n;let i=me.MM.exec(e);if(i)return n=new Date(0),a=parseInt(i[1],10)-1,ye(t,a)?(n.setUTCFullYear(t,a),n):new Date(NaN);if(i=me.DDD.exec(e),i){n=new Date(0);const e=parseInt(i[1],10);return function(e,t){if(t<1)return!1;const n=_e(e);if(n&&t>366)return!1;if(!n&&t>365)return!1;return!0}(t,e)?(n.setUTCFullYear(t,0,e),n):new Date(NaN)}if(i=me.MMDD.exec(e),i){n=new Date(0),a=parseInt(i[1],10)-1;const e=parseInt(i[2],10);return ye(t,a,e)?(n.setUTCFullYear(t,a,e),n):new Date(NaN)}if(i=me.Www.exec(e),i)return r=parseInt(i[1],10)-1,be(r)?fe(t,r):new Date(NaN);if(i=me.WwwD.exec(e),i){r=parseInt(i[1],10)-1;const e=parseInt(i[2],10)-1;return be(r,e)?fe(t,r,e):new Date(NaN)}return null}(i,r);if(null===s||isNaN(s.getTime()))return new Date(NaN);if(s){const e=s.getTime();let n,r=0;if(a.time&&(r=function(e){let t,n,a=me.HH.exec(e);if(a)return t=parseFloat(a[1].replace(",",".")),we(t)?t%24*ge:NaN;if(a=me.HHMM.exec(e),a)return t=parseInt(a[1],10),n=parseFloat(a[2].replace(",",".")),we(t,n)?t%24*ge+n*le:NaN;if(a=me.HHMMSS.exec(e),a){t=parseInt(a[1],10),n=parseInt(a[2],10);const e=parseFloat(a[3].replace(",","."));return we(t,n,e)?t%24*ge+n*le+1e3*e:NaN}return null}(a.time),null===r||isNaN(r)))return new Date(NaN);if(a.timeZone||t.timeZone){if(n=re(a.timeZone||t.timeZone,new Date(e+r)),isNaN(n))return new Date(NaN)}else n=ce(new Date(e+r)),n=ce(new Date(e+r+n));return new Date(e+r+n)}return new Date(NaN)}function fe(e,t,n){t=t||0,n=n||0;const a=new Date(0);a.setUTCFullYear(e,0,4);const r=7*t+n+1-(a.getUTCDay()||7);return a.setUTCDate(a.getUTCDate()+r),a}const he=[31,28,31,30,31,30,31,31,30,31,30,31],pe=[31,29,31,30,31,30,31,31,30,31,30,31];function _e(e){return e%400==0||e%4==0&&e%100!=0}function ye(e,t,n){if(t<0||t>11)return!1;if(null!=n){if(n<1)return!1;const a=_e(e);if(a&&n>pe[t])return!1;if(!a&&n>he[t])return!1}return!0}function be(e,t){return!(e<0||e>52)&&(null==t||!(t<0||t>6))}function we(e,t,n){return!(e<0||e>=25)&&((null==t||!(t<0||t>=60))&&(null==n||!(n<0||n>=60)))}const De=e=>{const t=Intl.DateTimeFormat().resolvedOptions().timeZone,n=Math.round(e.end_time?e.end_time-e.start_time:Date.now()/1e3-e.start_time),a=null!==e.top_score?` ${Math.round(100*e.top_score)}%`:"";return`${m(function(e,t,n){const a=re(t,e=de(e,n),!0),r=new Date(e.getTime()-a),i=new Date(0);return i.setFullYear(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate()),i.setHours(r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds()),i}(1e3*e.start_time,t))} [${n}s, ${d(e.label)}${a}]`};class Ce extends R{constructor(e,t,n,a,r,i){super(e,t),this._event=n,this._contentID=a,this._thumbnail=r,this._subLabels=i??null}getStartTime(){return j(this._event.start_time)}getEndTime(){return this._event.end_time?j(this._event.end_time):null}inProgress(){return!this.getEndTime()}getVideoContentType(){return Y.HLS}getID(){return this._event.id}getContentID(){return this._contentID}getTitle(){return De(this._event)}getThumbnail(){return this._thumbnail}isFavorite(){return this._event.retain_indefinitely??null}setFavorite(e){this._event.retain_indefinitely=e}getWhat(){return[this._event.label]}getWhere(){const e=this._event.zones;return e.length?e:null}getScore(){return this._event.top_score}getTags(){return this._subLabels}isGroupableWith(e){return this.getMediaType()===e.getMediaType()&&f(this.getWhere(),e.getWhere())&&f(this.getWhat(),e.getWhat())}}class ve extends R{constructor(e,t,n,a,r,i){super(e,t),this._recording=n,this._id=a,this._contentID=r,this._title=i}getID(){return this._id}getStartTime(){return this._recording.startTime}getEndTime(){return this._recording.endTime}inProgress(){return!this.getEndTime()}getVideoContentType(){return Y.HLS}getContentID(){return this._contentID}getTitle(){return this._title}getEventCount(){return this._recording.events}}class Te{static createEventViewMedia(e,t,n,a,r){return"clip"===e&&!a.has_clip||"snapshot"===e&&!a.has_snapshot||!n.frigate.client_id||!n.frigate.camera_name?null:new Ce(e,t,a,((e,t,n,a)=>`media-source://frigate/${e}/event/${a}/${t}/${n.id}`)(n.frigate.client_id,n.frigate.camera_name,a,"clip"===e?"clips":"snapshots"),((e,t)=>`/api/frigate/${e}/thumbnail/${t.id}`)(n.frigate.client_id,a),r)}static createRecordingViewMedia(e,t,n,a){return n.frigate.client_id&&n.frigate.camera_name?new ve("recording",e,t,((e,t)=>`${e.frigate?.client_id??""}/${e.frigate.camera_name??""}/${t.startTime.getTime()}/${t.endTime.getTime()}`)(n,t),((e,t,n)=>["media-source://frigate",e,"recordings",t,`${n.startTime.getFullYear()}-${String(n.startTime.getMonth()+1).padStart(2,"0")}-${String(String(n.startTime.getDate()).padStart(2,"0"))}`,String(n.startTime.getHours()).padStart(2,"0")].join("/"))(n.frigate.client_id,n.frigate.camera_name,t),((e,t)=>`${e} ${m(t.startTime)}`)(a,t)):null}}class Ie{static isFrigateMedia(e){return this.isFrigateEvent(e)||this.isFrigateRecording(e)}static isFrigateEvent(e){return e instanceof Ce}static isFrigateRecording(e){return e instanceof ve}}class Se{static isFrigateEventQueryResults(e){return e.engine===p.Frigate&&e.type===C.Event}static isFrigateRecordingQueryResults(e){return e.engine===p.Frigate&&e.type===C.Recording}static isFrigateRecordingSegmentsResults(e){return e.engine===p.Frigate&&e.type===C.RecordingSegments}}class Me extends N{constructor(e,t,n,a,r){super(t,r),this._throttledSegmentGarbageCollector=h(this._garbageCollectSegments.bind(this),36e5,{leading:!1,trailing:!0}),this._entityRegistryManager=e,this._frigateEventWatcher=new J,this._recordingSegmentsCache=n,this._requestCache=a}getEngineType(){return p.Frigate}async createCamera(e,t){const n=new G(t,this,{eventCallback:this._eventCallback});return await n.initialize({hass:e,entityRegistryManager:this._entityRegistryManager,stateWatcher:this._stateWatcher,frigateEventWatcher:this._frigateEventWatcher})}async getMediaDownloadPath(e,t,n){return Ie.isFrigateEvent(n)?{endpoint:`/api/frigate/${t.frigate.client_id}/notifications/${n.getID()}/`+(_.isClip(n)?"clip.mp4":"snapshot.jpg")+"?download=true",sign:!0}:Ie.isFrigateRecording(n)?{endpoint:`/api/frigate/${t.frigate.client_id}/recording/${t.frigate.camera_name}/start/${Math.floor(n.getStartTime().getTime()/1e3)}/end/${Math.floor(n.getEndTime().getTime()/1e3)}?download=true`,sign:!0}:null}generateDefaultEventQuery(e,t,n){const a=[...e.getCameraConfigs(t)],r=y(a.map((e=>e?.frigate.zones)),f),i=y(a.map((e=>e?.frigate.labels)),f);if(1===r.length&&1===i.length)return[{type:b.Event,cameraIDs:t,...i[0]&&{what:new Set(i[0])},...r[0]&&{where:new Set(r[0])},...n}];const s=[];for(const a of t){const t=e.getCameraConfig(a);t&&s.push({type:b.Event,cameraIDs:new Set([a]),...t.frigate.labels&&{what:new Set(t.frigate.labels)},...t.frigate.zones&&{where:new Set(t.frigate.zones)},...n})}return s.length?s:null}generateDefaultRecordingQuery(e,t,n){return[{type:b.Recording,cameraIDs:t,...n}]}generateDefaultRecordingSegmentsQuery(e,t,n){return n.start&&n.end?[{type:b.RecordingSegments,cameraIDs:t,start:n.start,end:n.end,...n}]:null}async favoriteMedia(e,t,n,a){Ie.isFrigateEvent(n)&&(await async function(e,t,n,a){const o={type:"frigate/event/retain",instance_id:t,event_id:n,retain:a},c=await r(e,Q,o,!0);if(!c.success)throw new i(s("error.failed_retain"),{request:o,response:c})}(e,t.frigate.client_id,n.getID(),a),n.setFavorite(a))}_buildInstanceToCameraIDMapFromQuery(e,t){const n=new Map;for(const a of t){const t=this._getQueryableCameraConfig(e,a),r=t?.frigate.client_id;r&&(n.has(r)||n.set(r,new Set),n.get(r)?.add(a))}return n}_getFrigateCameraNamesForCameraIDs(e,t){const n=new Set;for(const a of t){const t=this._getQueryableCameraConfig(e,a);t?.frigate.camera_name&&n.add(t.frigate.camera_name)}return n}async getEvents(e,t,n,a){const r=new Map,i=async(i,s)=>{if(!s||!s.size)return;const o={...n,cameraIDs:s},c=a?.useCache??1?this._requestCache.get(o):null;if(c)return void r.set(n,c);const g={instance_id:i,cameras:Array.from(this._getFrigateCameraNamesForCameraIDs(t,s)),...n.what&&{labels:Array.from(n.what)},...n.where&&{zones:Array.from(n.where)},...n.tags&&{sub_labels:Array.from(n.tags)},...n.end&&{before:Math.floor(n.end.getTime()/1e3)},...n.start&&{after:Math.floor(n.start.getTime()/1e3)},...n.limit&&{limit:n.limit},...n.hasClip&&{has_clip:n.hasClip},...n.hasSnapshot&&{has_snapshot:n.hasSnapshot},...n.favorite&&{favorites:n.favorite},limit:n?.limit??$},l={type:C.Event,engine:p.Frigate,instanceID:i,events:await L(e,g),expiry:v(new Date,{seconds:60}),cached:!1};(a?.useCache??1)&&this._requestCache.set(n,{...l,cached:!0},l.expiry),r.set(o,l)},s=this._buildInstanceToCameraIDMapFromQuery(t,n.cameraIDs);return await Promise.all(Array.from(s.keys()).map((e=>i(e,s.get(e))))),r.size?r:null}async getRecordings(e,t,n,a){const i=new Map,s=async(n,s)=>{const o={...n,cameraIDs:new Set([s])},c=a?.useCache??1?this._requestCache.get(o):null;if(c)return void i.set(o,c);const g=this._getQueryableCameraConfig(t,s);if(!g||!g.frigate.camera_name)return;const l=await(async(e,t,n)=>await r(e,U,{type:"frigate/recordings/summary",instance_id:t,camera:n,timezone:e.config.time_zone},!0))(e,g.frigate.client_id,g.frigate.camera_name);let u=[];for(const e of l??[])for(const t of e.hours){const n=v(e.day,{hours:t.hour}),a=x(n),r=H(n);(!o.start||a>=o.start)&&(!o.end||r<=o.end)&&u.push({cameraID:s,startTime:a,endTime:r,events:t.events})}void 0!==o.limit&&(u=S(u,(e=>e.startTime),"desc").slice(0,o.limit));const m={type:C.Recording,engine:p.Frigate,instanceID:g.frigate.client_id,recordings:u,expiry:v(new Date,{seconds:60}),cached:!1};(a?.useCache??1)&&this._requestCache.set(o,{...m,cached:!0},m.expiry),i.set(o,m)};return await Promise.all(Array.from(n.cameraIDs).map((e=>s(n,e)))),i.size?i:null}async getRecordingSegments(e,t,n,a){const i=new Map,s=async(n,s)=>{const o={...n,cameraIDs:new Set([s])},c=this._getQueryableCameraConfig(t,s);if(!c||!c.frigate.camera_name)return;const g={start:o.start,end:o.end},l=a?.useCache??1?this._recordingSegmentsCache.get(s,g):null;if(l)return void i.set(o,{type:C.RecordingSegments,engine:p.Frigate,instanceID:c.frigate.client_id,segments:l,cached:!0});const u={instance_id:c.frigate.client_id,camera:c.frigate.camera_name,after:Math.floor(o.start.getTime()/1e3),before:Math.floor(o.end.getTime()/1e3)},m=await(async(e,t)=>await r(e,W,{type:"frigate/recordings/get",...t},!0))(e,u);(a?.useCache??1)&&this._recordingSegmentsCache.add(s,g,m),i.set(o,{type:C.RecordingSegments,engine:p.Frigate,instanceID:c.frigate.client_id,segments:m,cached:!1})};return await Promise.all(Array.from(n.cameraIDs).map((e=>s(n,e)))),w((()=>this._throttledSegmentGarbageCollector(e,t))),i.size?i:null}_getCameraIDMatch(e,t,n,a){if(1===t.cameraIDs.size)return[...t.cameraIDs][0];for(const[t,r]of e.getCameraConfigEntries())if(r.frigate.client_id===n&&r.frigate.camera_name===a)return t;return null}generateMediaFromEvents(e,t,n,a){if(!Se.isFrigateEventQueryResults(a))return null;const r=[];for(const e of a.events){const i=this._getCameraIDMatch(t,n,a.instanceID,e.camera);if(!i)continue;const s=this._getQueryableCameraConfig(t,i);if(!s)continue;let o=null;if(n.hasClip||n.hasSnapshot||!e.has_clip&&!e.has_snapshot?n.hasSnapshot&&e.has_snapshot?o="snapshot":n.hasClip&&e.has_clip&&(o="clip"):o=e.has_clip?"clip":"snapshot",!o)continue;const c=Te.createEventViewMedia(o,i,s,e,e.sub_label?this._splitSubLabels(e.sub_label):void 0);c&&r.push(c)}return r}generateMediaFromRecordings(e,t,n,a){if(!Se.isFrigateRecordingQueryResults(a))return null;const r=[];for(const n of a.recordings){const a=this._getQueryableCameraConfig(t,n.cameraID);if(!a)continue;const i=Te.createRecordingViewMedia(n.cameraID,n,a,this.getCameraMetadata(e,a).title);i&&r.push(i)}return r}getQueryResultMaxAge(e){return e.type===b.Event||e.type===b.Recording?60:null}async getMediaSeekTime(e,t,n,a,r){const i=n.getStartTime(),s=n.getEndTime();if(!i||!s||as)return null;const o=n.getCameraID(),c={cameraIDs:new Set([o]),start:i,end:s,type:b.RecordingSegments},g=await this.getRecordingSegments(e,t,c,r);return g?this._getSeekTimeInSegments(i,a,Array.from(g.values())[0].segments):null}_getQueryableCameraConfig(e,t){const n=e.getCameraConfig(t);return!n||V(n)?null:n}_splitSubLabels(e){return e.split(",").map((e=>e.trim()))}async getMediaMetadata(e,t,n,a){const i=new Map;if((a?.useCache??1)&&this._requestCache.has(n)){const e=this._requestCache.get(n);if(e)return i.set(n,e),i}const s=new Set,o=new Set,c=new Set,g=new Set,l=this._buildInstanceToCameraIDMapFromQuery(t,n.cameraIDs),u=async(n,a)=>{const i=this._getFrigateCameraNamesForCameraIDs(t,a);for(const t of await(async(e,t)=>await r(e,k,{type:"frigate/events/summary",instance_id:t,timezone:e.config.time_zone},!0))(e,n))i.has(t.camera)&&(t.label&&s.add(t.label),t.zones.length&&t.zones.forEach(o.add,o),t.day&&c.add(t.day),t.sub_label&&this._splitSubLabels(t.sub_label).forEach(g.add,g))},m=async n=>{const r=await this.getRecordings(e,t,{type:b.Recording,cameraIDs:n},a);if(r)for(const e of r.values())if(Se.isFrigateRecordingQueryResults(e))for(const t of e.recordings)c.add(M(t.startTime))};await D([...l.entries()],(([e,t])=>(async()=>{await Promise.all([u(e,t),m(t)])})()));const d={type:C.MediaMetadata,engine:p.Frigate,metadata:{...s.size&&{what:s},...o.size&&{where:o},...c.size&&{days:c},...g.size&&{tags:g}},expiry:v(new Date,{seconds:60}),cached:!1};return(a?.useCache??1)&&this._requestCache.set(n,{...d,cached:!0},d.expiry),i.set(n,d),i}async _garbageCollectSegments(e,t){const n=this._recordingSegmentsCache.getCameraIDs(),a={cameraIDs:new Set(n),type:b.Recording},r=(e,t)=>`${e}/${t.getDate()}/${t.getHours()}`,i=await this.getRecordings(e,t,a);if(i)for(const[e,t]of i){if(!Se.isFrigateRecordingQueryResults(t))continue;const n=new Set;for(const e of t.recordings)n.add(r(e.cameraID,e.startTime));const a=Array.from(e.cameraIDs)[0];this._recordingSegmentsCache.expireMatches(a,(e=>{const t=r(a,j(e.start_time));return!n.has(t)}))}}_getSeekTimeInSegments(e,t,n){if(!n.length)return null;let a=0;for(const r of n){const n=j(r.start_time);if(n>t)break;const i=j(r.end_time),s=nt?t:i).getTime()-s.getTime()}return a/1e3}getMediaCapabilities(e){return{canFavorite:_.isEvent(e),canDownload:!0}}getCameraMetadata(e,t){const n=super.getCameraMetadata(e,t);return{title:t.title??T(e,t.camera_entity)??T(e,t.webrtc_card?.entity)??d(t.frigate?.camera_name)??t.id??"",icon:n.icon,engineLogo:I}}getCameraEndpoints(e,t){const n=(()=>{if(!e.frigate.url)return null;if(!e.frigate.camera_name)return{endpoint:e.frigate.url};const n=`${e.frigate.url}/cameras/`+e.frigate.camera_name;if("live"===t?.view)return{endpoint:n};const a=`${e.frigate.url}/events?camera=`+e.frigate.camera_name,r=`${e.frigate.url}/recording/`+e.frigate.camera_name;switch(t?.media?.getMediaType()){case"clip":case"snapshot":return{endpoint:a};case"recording":const e=t.media.getStartTime();if(e)return{endpoint:r+F(e,"yyyy-MM-dd/HH")}}switch(t?.view){case"clip":case"clips":case"snapshots":case"snapshot":return{endpoint:a};case"recording":case"recordings":return{endpoint:r}}return{endpoint:n}})(),a=E(e,{url:e.go2rtc?.url??`/api/frigate/${e.frigate.client_id}/mse`,stream:e.go2rtc?.stream??e.frigate.camera_name}),r={endpoint:`/api/frigate/${e.frigate.client_id}/jsmpeg/${e.frigate.camera_name}`,sign:!0},i=(()=>{const t=e.frigate.camera_name?e.frigate.camera_name:null;return t?{endpoint:t}:null})();return{...super.getCameraEndpoints(e,t),...n&&{ui:n},...a&&{go2rtc:a},...r&&{jsmpeg:r},...i&&{webrtcCard:i}}}async executePTZAction(e,t,n,a){const r=t.camera_entity;("preset"!==n||a?.preset)&&await e.callService("frigate","ptz",{entity_id:r,action:"stop"===a?.phase?"stop":"zoom_in"===n||"zoom_out"===n?"zoom":"preset"===n?"preset":"move",..."stop"!==a?.phase&&{argument:"zoom_in"===n?"in":"zoom_out"===n?"out":"preset"===n?a?.preset:n}})}}export{Me as FrigateCameraManagerEngine}; diff --git a/config/www/community/frigate-hass-card/engine-frigate-f675aa79.js.gz b/config/www/community/frigate-hass-card/engine-frigate-f675aa79.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..eed530c55522f2a77ff0ef3e898811dc8066e565 GIT binary patch literal 8637 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 P@VEa5^@Vnj(r5qxN|v18 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/engine-generic-31c14ad9.js b/config/www/community/frigate-hass-card/engine-generic-31c14ad9.js new file mode 100644 index 00000000..6879389a --- /dev/null +++ b/config/www/community/frigate-hass-card/engine-generic-31c14ad9.js @@ -0,0 +1 @@ +import{eB as e,eC as t,l as i,e7 as a,e6 as n,e5 as s,e3 as r,j as c,eD as l}from"./card-45855f1f.js";class o{constructor(t,i,a){this._destroyCallbacks=[],this._stateChangeHandler=t=>{this._eventCallback?.({cameraID:this.getID(),type:e(t.newState.state)?"new":"end"})},this._config=t,this._engine=i,this._capabilities=a?.capabilities,this._eventCallback=a?.eventCallback}async initialize(e){return e.stateWatcher.subscribe(this._stateChangeHandler,this._config.triggers.entities),this._onDestroy((()=>e.stateWatcher.unsubscribe(this._stateChangeHandler))),this}async destroy(){this._destroyCallbacks.forEach((e=>e()))}getConfig(){return this._config}setID(e){this._config.id=e}getID(){if(this._config.id)return this._config.id;throw new t(i("error.no_camera_id"))}getEngine(){return this._engine}getCapabilities(){return this._capabilities??null}getProxyConfig(){return{dynamic:this._config.proxy.dynamic,media:"auto"!==this._config.proxy.media&&this._config.proxy.media,ssl_verification:!1!==this._config.proxy.ssl_verification,ssl_ciphers:"auto"===this._config.proxy.ssl_ciphers?"default":this._config.proxy.ssl_ciphers}}_onDestroy(e){this._destroyCallbacks.push(e)}}const u=(e,t)=>{const i=t?.url??e.go2rtc?.url,a=t?.stream??e.go2rtc?.stream;if(!i||!a)return null;const n=`${i}/api/ws?src=${a}`;return{endpoint:n,sign:n.startsWith("/")}};class g{constructor(e,t){this._stateWatcher=e,this._eventCallback=t}getEngineType(){return a.Generic}async createCamera(e,t){return await new o(t,this,{capabilities:new n({"favorite-events":!1,"favorite-recordings":!1,clips:!1,live:!0,menu:!0,recordings:!1,seek:!1,snapshots:!1,substream:!0,ptz:s(t)??void 0},{disable:t.capabilities?.disable,disableExcept:t.capabilities?.disable_except}),eventCallback:this._eventCallback}).initialize({stateWatcher:this._stateWatcher})}generateDefaultEventQuery(e,t,i){return null}generateDefaultRecordingQuery(e,t,i){return null}generateDefaultRecordingSegmentsQuery(e,t,i){return null}async getEvents(e,t,i,a){return null}async getRecordings(e,t,i,a){return null}async getRecordingSegments(e,t,i,a){return null}generateMediaFromEvents(e,t,i,a){return null}generateMediaFromRecordings(e,t,i,a){return null}async getMediaDownloadPath(e,t,i){return null}async favoriteMedia(e,t,i,a){}getQueryResultMaxAge(e){return null}async getMediaSeekTime(e,t,i,a,n){return null}async getMediaMetadata(e,t,i,a){return null}getCameraMetadata(e,t){const i=r(t);return{title:t.title??c(e,t.camera_entity)??c(e,t.webrtc_card?.entity)??t.id??"",icon:t?.icon??(i?l(e,i,"mdi:video"):"mdi:video")}}getMediaCapabilities(e){return null}getCameraEndpoints(e,t){const i=u(e);return i?{go2rtc:i}:null}async executePTZAction(e,t,i,a){}}var d=Object.freeze({__proto__:null,GenericCameraManagerEngine:g});export{o as C,g as G,d as e,u as g}; diff --git a/config/www/community/frigate-hass-card/engine-generic-31c14ad9.js.gz b/config/www/community/frigate-hass-card/engine-generic-31c14ad9.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..d257e72696c7617ce281bf4be811cc834d5c665b GIT binary patch literal 1149 zcmV-@1cLh?iwFqNQ&?vL|7C7xX>MgLXJu|>a%p2NGcjW^G+|^pE^2cCl~!AC+cp$_ z->-0lqL2VqX}4t?WT-+HXI&qHWlewr8wQuAj^)$Jq(D-3T$TTQBt<21VrSjck=e{Ol+t@ROsQz?q|pzz>c}^2rfKVCHCTmQt*v^psIq zzWDL%m$S3wt7ZC0MN?K&r6!_df-5asriF|(K|+&GuTZ7)5-eZr&S_mQDEqAPzyBe< zL}{wwd_{Q$zf)e;Aak9+4rZ_ct_PzcjXOryAnChV=H(UWce6Mlde=Y(u}(Q`ubsct zdrgYSGNLR3UPdM{;Y15^iB+z{FYpRE8|((ykzfXeCYF$`5Z&L+sM z39a!9#E^6nbSwEJ0Q*2STY*efyHHHx!a_e1i#^DxmRMCFRcep(fRZ2=eAWjzj^iYM z{ot6E|Mx*j()$YNL%!l;`Ae5VUQo7*W3b1?*4o%)oO_t@-F3&{jq=HY!DF}*mN}S^ z#}1eA17UK&lVwl!N{a2oW_O}vj3baz$drqDUmtTUqaM+PPwqoReab!JQFb5U9?6P= zw{`6-uB5o#J-BFB?l@f|%l2S4PBRT6vW60A7SUFV=p@e%XnKw3&yPunQuTZT5|_xR zM!~a_SBD)vRP>e%8(Rx1Ajppz2E8IGVM*IsN7>Vg#*C^Dj@C=ls+AQR<444#&0`?i zmTEsTCYb9YZDm~)kXGV*shR&J)bXt=pzE=y=S*$AoZ#25Cv+$im!xU$k>?+ub!bj$ zgQr_nD9Q3?9W@`PA!T+ZGy=KKY~7RWp~-SM zI2`nS5#HD#bzfpMeGA;?h=qn@_CmHLefjoh42oNd+E==W`;kSuab;#s#N#en(v6U) z;e|(_B3mBho+*I|St74`0jsf5?xV&HWG63edGglLdp##r0G~bOv{5Ued!`*GKK@R> z(O)tZ>!c_)0?WxuL%I?bUDS~2z1dl$flmUxxMk4jV_I|YVv~@)fMy4RY?5>|Y`bw* zvd4)sZZ6o!Th6Sn@C)bc&lcp)1)ktt=tIlzDZd}$^S=$Qp<27d95w69tF9=bh@f?!*-7YVQN&o()(T0qE-~9+2_j0e z@sBaXW%d>v9J$Ixn1yQpF0C~PcbQ<(^}{zqlZ}D~x4>ErS2usXVQ$xq@?#;PlSb{this._eventCallback?.({cameraID:this.getID(),type:e(t.newState.state)?"new":"end"})},this._config=t,this._engine=i,this._capabilities=a?.capabilities,this._eventCallback=a?.eventCallback}async initialize(e){return e.stateWatcher.subscribe(this._stateChangeHandler,this._config.triggers.entities),this._onDestroy((()=>e.stateWatcher.unsubscribe(this._stateChangeHandler))),this}async destroy(){this._destroyCallbacks.forEach((e=>e()))}getConfig(){return this._config}setID(e){this._config.id=e}getID(){if(this._config.id)return this._config.id;throw new t(i("error.no_camera_id"))}getEngine(){return this._engine}getCapabilities(){return this._capabilities??null}getProxyConfig(){return{dynamic:this._config.proxy.dynamic,media:"auto"!==this._config.proxy.media&&this._config.proxy.media,ssl_verification:!1!==this._config.proxy.ssl_verification,ssl_ciphers:"auto"===this._config.proxy.ssl_ciphers?"default":this._config.proxy.ssl_ciphers}}_onDestroy(e){this._destroyCallbacks.push(e)}}const u=(e,t)=>{const i=t?.url??e.go2rtc?.url,a=t?.stream??e.go2rtc?.stream;if(!i||!a)return null;const n=`${i}/api/ws?src=${a}`;return{endpoint:n,sign:n.startsWith("/")}};class g{constructor(e,t){this._stateWatcher=e,this._eventCallback=t}getEngineType(){return a.Generic}async createCamera(e,t){return await new o(t,this,{capabilities:new n({"favorite-events":!1,"favorite-recordings":!1,clips:!1,live:!0,menu:!0,recordings:!1,seek:!1,snapshots:!1,substream:!0,ptz:s(t)??void 0},{disable:t.capabilities?.disable,disableExcept:t.capabilities?.disable_except}),eventCallback:this._eventCallback}).initialize({stateWatcher:this._stateWatcher})}generateDefaultEventQuery(e,t,i){return null}generateDefaultRecordingQuery(e,t,i){return null}generateDefaultRecordingSegmentsQuery(e,t,i){return null}async getEvents(e,t,i,a){return null}async getRecordings(e,t,i,a){return null}async getRecordingSegments(e,t,i,a){return null}generateMediaFromEvents(e,t,i,a){return null}generateMediaFromRecordings(e,t,i,a){return null}async getMediaDownloadPath(e,t,i){return null}async favoriteMedia(e,t,i,a){}getQueryResultMaxAge(e){return null}async getMediaSeekTime(e,t,i,a,n){return null}async getMediaMetadata(e,t,i,a){return null}getCameraMetadata(e,t){const i=r(t);return{title:t.title??c(e,t.camera_entity)??c(e,t.webrtc_card?.entity)??t.id??"",icon:t?.icon??(i?l(e,i,"mdi:video"):"mdi:video")}}getMediaCapabilities(e){return null}getCameraEndpoints(e,t){const i=u(e);return i?{go2rtc:i}:null}async executePTZAction(e,t,i,a){}}var d=Object.freeze({__proto__:null,GenericCameraManagerEngine:g});export{o as C,g as G,d as e,u as g}; diff --git a/config/www/community/frigate-hass-card/engine-generic-39deaa91.js.gz b/config/www/community/frigate-hass-card/engine-generic-39deaa91.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..81c1261bc0f0f7c678a3888f1a76a008f9888993 GIT binary patch literal 1147 zcmV->1cdt^iwFoDf?;O@|7C7xX>MgLXJu|>a%p2NGdW~sVPQEjE^2cCl~!AC+cp$_ z->*=FqL2Vq$=ab0GE^Z*vaSz7vnD`+4TDQl$MQ*K(jX~2j>`W&lA;nhv9s>!Nax0n z=Sp0zgw!2uBdQ`GaPO!ljU!0lH%BRfcaCxbZyi+xP8^lw))7YF)X~PwrC7$UL%JB2Ps|A88)a9R6)yZ{7?3vaymN;E4}PZ9Mg_lQT?eTI7^D@)!s zjkCCt;%@uoqFuG+bcrnAfw^*;SrCyWR7mrfwpzqTMX^WIYrKAaNJ5lqrfZNmM@BUY zo*(_X-_cV=Z^>|FYe5AB#X-ZMSH>00Y1`;He_7F(QT4&WdRetK`1Yzpb4*uw zyiui+ta#N?^KBARW@o}mAlJDK57s>Au4klHUr{fT_&Byu!&s|##+rlOjk+i_Spj>8 zgMKW+8#|;PON?e8f!iFh&~VIN$hM>}-~Nn2aYIr2N*75#vPd_s%-o51(#3PS77{hQ z@d#9G%Y!^JB`_f?1vAI6w{_oTy!u{+wgfv083 zoMsj_l;7anbl`4aW(V8Uy{yXYL8k4hE6X@0Xx-;_5;|Iz36_nuLJ}`4%-2|fh|_%h zW6W@wodpL6u5uA(q1wGmYYoC(A}qUp_~vNxQPAKHSgYac=C4!ccFibHW=&;O6`yCf zz;rg30Iof!Q@cX6m`=SH5~g4XDdp6@Z~A$e*Cw67oqxUx_x?O1wId%%)xTw1M`|{this._eventCallback?.({cameraID:this.getID(),type:e(t.newState.state)?"new":"end"})},this._config=t,this._engine=i,this._capabilities=a?.capabilities,this._eventCallback=a?.eventCallback}async initialize(e){return e.stateWatcher.subscribe(this._stateChangeHandler,this._config.triggers.entities),this._onDestroy((()=>e.stateWatcher.unsubscribe(this._stateChangeHandler))),this}async destroy(){this._destroyCallbacks.forEach((e=>e()))}getConfig(){return this._config}setID(e){this._config.id=e}getID(){if(this._config.id)return this._config.id;throw new t(i("error.no_camera_id"))}getEngine(){return this._engine}getCapabilities(){return this._capabilities??null}getProxyConfig(){return{dynamic:this._config.proxy.dynamic,media:"auto"!==this._config.proxy.media&&this._config.proxy.media,ssl_verification:!1!==this._config.proxy.ssl_verification,ssl_ciphers:"auto"===this._config.proxy.ssl_ciphers?"default":this._config.proxy.ssl_ciphers}}_onDestroy(e){this._destroyCallbacks.push(e)}}const u=(e,t)=>{const i=t?.url??e.go2rtc?.url,a=t?.stream??e.go2rtc?.stream;if(!i||!a)return null;const n=`${i}/api/ws?src=${a}`;return{endpoint:n,sign:n.startsWith("/")}};class g{constructor(e,t){this._stateWatcher=e,this._eventCallback=t}getEngineType(){return a.Generic}async createCamera(e,t){return await new o(t,this,{capabilities:new n({"favorite-events":!1,"favorite-recordings":!1,clips:!1,live:!0,menu:!0,recordings:!1,seek:!1,snapshots:!1,substream:!0,ptz:s(t)??void 0},{disable:t.capabilities?.disable,disableExcept:t.capabilities?.disable_except}),eventCallback:this._eventCallback}).initialize({stateWatcher:this._stateWatcher})}generateDefaultEventQuery(e,t,i){return null}generateDefaultRecordingQuery(e,t,i){return null}generateDefaultRecordingSegmentsQuery(e,t,i){return null}async getEvents(e,t,i,a){return null}async getRecordings(e,t,i,a){return null}async getRecordingSegments(e,t,i,a){return null}generateMediaFromEvents(e,t,i,a){return null}generateMediaFromRecordings(e,t,i,a){return null}async getMediaDownloadPath(e,t,i){return null}async favoriteMedia(e,t,i,a){}getQueryResultMaxAge(e){return null}async getMediaSeekTime(e,t,i,a,n){return null}async getMediaMetadata(e,t,i,a){return null}getCameraMetadata(e,t){const i=r(t);return{title:t.title??c(e,t.camera_entity)??c(e,t.webrtc_card?.entity)??t.id??"",icon:t?.icon??(i?l(e,i,"mdi:video"):"mdi:video")}}getMediaCapabilities(e){return null}getCameraEndpoints(e,t){const i=u(e);return i?{go2rtc:i}:null}async executePTZAction(e,t,i,a){}}var d=Object.freeze({__proto__:null,GenericCameraManagerEngine:g});export{o as C,g as G,d as e,u as g}; diff --git a/config/www/community/frigate-hass-card/engine-generic-458c9005.js.gz b/config/www/community/frigate-hass-card/engine-generic-458c9005.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..628c42fc4bd47168eb0b9f1bd7939c52e37feb55 GIT binary patch literal 1146 zcmV-=1cmz_iwFo>dR%7$|7C7xX>MgLXJu|>a%p2NG&MM5IWRCaE^2cCl~!AC+cp$_ z->-0lqL2Vq$?lj8Rp{cZ>qD@t2~c3e;L_Bwd{UVdNXm|@^1qLys6#Lz(uOXuMvb6yTBPHDasZXn*<%>0cAQO+TN7I2 zXNV!`BlBD+)(1(1*$MTmhg}k6_6~|zYi>$vF2gXj7RiOudr#~4Q-rI0BX^S(ajSVldf3!mJ_i29U!#G~v!!99`{1#j!x zSzJkRw|jKauH13DMwactY@B8qL}U#m(k!B_7STzbAJFs~FJB&$5T)w*1|%+#QH_FU zC*K}+^jOhbGHh%usDL0pY8dp2sDveLYaM0JD;hJZJ~&!0O{-Q`Y>XcflQxfmXj`iN z$e3WRi?o$>Q9xRW@1$n_mr%#Iu7Iw`qMkFg^>Tt=zMRmZOk9$ty+@vZe9@sfr462L zRiPxyUv$)boQ9Oyna~L2IQx+_Miy!qYt`OZbFjNn7lkIv;oxx4 z4@G!mhtxxf(ey2FnBg0rIT4S$Xh}ChqJ~!< zfr@N-kO!s&CS-}c>IJOEM!Am~H;|p2+4AJAqYrvcssKKD%4wrkLibENOnm&EexpBU zD%MF+Yy_5*Gef!(6Al%mq=8QYy|`o0=wn)Q@M4pYy?|y1f^3p>G;F(ZR+1Xi>yi)Yb|~v@S8*U{this._eventCallback?.({cameraID:this.getID(),type:e(t.newState.state)?"new":"end"})},this._config=t,this._engine=i,this._capabilities=a?.capabilities,this._eventCallback=a?.eventCallback}async initialize(e){return e.stateWatcher.subscribe(this._stateChangeHandler,this._config.triggers.entities),this._onDestroy((()=>e.stateWatcher.unsubscribe(this._stateChangeHandler))),this}async destroy(){this._destroyCallbacks.forEach((e=>e()))}getConfig(){return this._config}setID(e){this._config.id=e}getID(){if(this._config.id)return this._config.id;throw new t(i("error.no_camera_id"))}getEngine(){return this._engine}getCapabilities(){return this._capabilities??null}getProxyConfig(){return{dynamic:this._config.proxy.dynamic,media:"auto"!==this._config.proxy.media&&this._config.proxy.media,ssl_verification:!1!==this._config.proxy.ssl_verification,ssl_ciphers:"auto"===this._config.proxy.ssl_ciphers?"default":this._config.proxy.ssl_ciphers}}_onDestroy(e){this._destroyCallbacks.push(e)}}const u=(e,t)=>{const i=t?.url??e.go2rtc?.url,a=t?.stream??e.go2rtc?.stream;if(!i||!a)return null;const n=`${i}/api/ws?src=${a}`;return{endpoint:n,sign:n.startsWith("/")}};class g{constructor(e,t){this._stateWatcher=e,this._eventCallback=t}getEngineType(){return a.Generic}async createCamera(e,t){return await new o(t,this,{capabilities:new n({"favorite-events":!1,"favorite-recordings":!1,clips:!1,live:!0,menu:!0,recordings:!1,seek:!1,snapshots:!1,substream:!0,ptz:s(t)??void 0},{disable:t.capabilities?.disable,disableExcept:t.capabilities?.disable_except}),eventCallback:this._eventCallback}).initialize({stateWatcher:this._stateWatcher})}generateDefaultEventQuery(e,t,i){return null}generateDefaultRecordingQuery(e,t,i){return null}generateDefaultRecordingSegmentsQuery(e,t,i){return null}async getEvents(e,t,i,a){return null}async getRecordings(e,t,i,a){return null}async getRecordingSegments(e,t,i,a){return null}generateMediaFromEvents(e,t,i,a){return null}generateMediaFromRecordings(e,t,i,a){return null}async getMediaDownloadPath(e,t,i){return null}async favoriteMedia(e,t,i,a){}getQueryResultMaxAge(e){return null}async getMediaSeekTime(e,t,i,a,n){return null}async getMediaMetadata(e,t,i,a){return null}getCameraMetadata(e,t){const i=r(t);return{title:t.title??c(e,t.camera_entity)??c(e,t.webrtc_card?.entity)??t.id??"",icon:t?.icon??(i?l(e,i,"mdi:video"):"mdi:video")}}getMediaCapabilities(e){return null}getCameraEndpoints(e,t){const i=u(e);return i?{go2rtc:i}:null}async executePTZAction(e,t,i,a){}}var d=Object.freeze({__proto__:null,GenericCameraManagerEngine:g});export{o as C,g as G,d as e,u as g}; diff --git a/config/www/community/frigate-hass-card/engine-generic-96b32038.js.gz b/config/www/community/frigate-hass-card/engine-generic-96b32038.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..962b738d0344450b8d36f6b95055c44d692d86e0 GIT binary patch literal 1149 zcmV-@1cLh?iwFp8_*Q2E|7C7xX>MgLXJu|>a%p2NIW}T5GB7hZE^2cCl~!AC+cp$_ z->*=FqL2Vq$vSk!WT-+HXI&qHWlewr8wQuAj^)$Jq(M@4T$TTQBt<21VrSjckdHzOUi5bo${&yS?J2&$lEHvT6EP&u7FhM{W5S%lo0 z&<4Lk0%<2fw~|Kz*hi|_5@e>@xndIM7W$D`>_N`7#JUElGJBi{lm@xr(>}mSlBC6( z2gkJhzYj{&-d8{$@|7IRU$zkPg0f|jfITj;*2X5|+`~-nt~&;Alus569>bNeD!_z1 zcDP6$2-5?eEPJAtQfwoe-AE^x#2}@R85gs@K4w_OJ)#Sr+=qzzlzYUZ>^{Ohl9eTI zo5opONpZV-aM7;Xak@g5@4;L<%`Aw>3M!;|Oj|ADlcG4F={24|KPDkcHM0#!Tp*(w z1E1R-}tQIe&X8xB@$G5J4uEwICGqLq@g5SQK(4kCRk|w=JUVM7ip*f{% zJl(2NNme}TsQEMrDYG+SEs*Qnh6ih&bJsIctB z!$IE{;f)$r&$PqD$KUC% z_19b_IxWkMz$!X3q^nTTc>}rLo1JAA_$1JaTLx==Olt;SY*Mlp(ELD^5I%bE5Se&L+`*@E1;z!SU+eQ5bTmqlSGUxO(vk>{Z+f zJ*af&_q!Db0EhJl*q3hB{AL&ZQz#xOe>WO$F%?_h2wGiH+iOQ7G1RU%xp(V2%E#~n zC>!5Pdi%B>@7M$9UE4Cg!4(Wn2!BfZ5;U!-rpK{LFt>wk=3Z81b|=$z)s}b@SI-=61~}Pi8}9R26^B zKLgX*LISw{this._eventCallback?.({cameraID:this.getID(),type:e(t.newState.state)?"new":"end"})},this._config=t,this._engine=i,this._capabilities=a?.capabilities,this._eventCallback=a?.eventCallback}async initialize(e){return e.stateWatcher.subscribe(this._stateChangeHandler,this._config.triggers.entities),this._onDestroy((()=>e.stateWatcher.unsubscribe(this._stateChangeHandler))),this}async destroy(){this._destroyCallbacks.forEach((e=>e()))}getConfig(){return this._config}setID(e){this._config.id=e}getID(){if(this._config.id)return this._config.id;throw new t(i("error.no_camera_id"))}getEngine(){return this._engine}getCapabilities(){return this._capabilities??null}getProxyConfig(){return{dynamic:this._config.proxy.dynamic,media:"auto"!==this._config.proxy.media&&this._config.proxy.media,ssl_verification:!1!==this._config.proxy.ssl_verification,ssl_ciphers:"auto"===this._config.proxy.ssl_ciphers?"default":this._config.proxy.ssl_ciphers}}_onDestroy(e){this._destroyCallbacks.push(e)}}const u=(e,t)=>{const i=t?.url??e.go2rtc?.url,a=t?.stream??e.go2rtc?.stream;if(!i||!a)return null;const n=`${i}/api/ws?src=${a}`;return{endpoint:n,sign:n.startsWith("/")}};class g{constructor(e,t){this._stateWatcher=e,this._eventCallback=t}getEngineType(){return a.Generic}async createCamera(e,t){return await new o(t,this,{capabilities:new n({"favorite-events":!1,"favorite-recordings":!1,clips:!1,live:!0,menu:!0,recordings:!1,seek:!1,snapshots:!1,substream:!0,ptz:s(t)??void 0},{disable:t.capabilities?.disable,disableExcept:t.capabilities?.disable_except}),eventCallback:this._eventCallback}).initialize({stateWatcher:this._stateWatcher})}generateDefaultEventQuery(e,t,i){return null}generateDefaultRecordingQuery(e,t,i){return null}generateDefaultRecordingSegmentsQuery(e,t,i){return null}async getEvents(e,t,i,a){return null}async getRecordings(e,t,i,a){return null}async getRecordingSegments(e,t,i,a){return null}generateMediaFromEvents(e,t,i,a){return null}generateMediaFromRecordings(e,t,i,a){return null}async getMediaDownloadPath(e,t,i){return null}async favoriteMedia(e,t,i,a){}getQueryResultMaxAge(e){return null}async getMediaSeekTime(e,t,i,a,n){return null}async getMediaMetadata(e,t,i,a){return null}getCameraMetadata(e,t){const i=r(t);return{title:t.title??c(e,t.camera_entity)??c(e,t.webrtc_card?.entity)??t.id??"",icon:t?.icon??(i?l(e,i,"mdi:video"):"mdi:video")}}getMediaCapabilities(e){return null}getCameraEndpoints(e,t){const i=u(e);return i?{go2rtc:i}:null}async executePTZAction(e,t,i,a){}}var d=Object.freeze({__proto__:null,GenericCameraManagerEngine:g});export{o as C,g as G,d as e,u as g}; diff --git a/config/www/community/frigate-hass-card/engine-generic-97fdd47e.js.gz b/config/www/community/frigate-hass-card/engine-generic-97fdd47e.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..d2ef2f8f46df407d47fc38e25f1904aa17b75dd1 GIT binary patch literal 1149 zcmV-@1cLh?iwFowdR%7$|7C7xX>MgLXJu|>a%p2NIX7lxWHdKrE^2cCl~!AC+cp$_ z->*=FqL2VqX*;Y%WvD_IXI&qHWlewr8wQuAj^)$Jq(M@4T$TTQBt<21VrSjck+;XS%5mZ6TZ2V6SpmI8U3`5n9vk190 zp$&e61kz4|ZY7TbuuoL8CCE&*bHyaiE%YO?*n^yDiFFN9W%f7^C=GJKr+t8vBuR_6 z_l{}#e;<^ly{~{i~N9X6Q&0|S@uLPrPxL`yOB;Xi9t#sGcIO*eax_mdqn3xx%UzEDffs+*?oX}Br8ka zHjT5ml;UQ0@1k9`<8*~A--Ee!npqH$6;w#`n6_HPCq;2U(`!6^dQ3u;YGxadxIjiV z3Z9?5IPB=YqPJwYwzZ%Fg5s!Q&@1B#7PM`2oIkE;%&7X{XuYgkwX|Ym{D_F!A_1ap zsrDly!a|o>E1R-}tQIe&X8xB@$G5J4uEwICGqLq@g5STN(4kCRk|w=JUVMJip*f{% zJl(2NNme}RsQEkzDYG+SEs*Qnh6ih&bJsIct52wxNqibxs9~(tdt=SP?nYe{nyi3> z!$IE_;k6x7cO^!%_rPtASZFwAFJxQNmv4W@ptz-|eWi<}A6cXuS7z=+Jn7;E-3W;q zo_Pc+w&g+Ym=c(f74o_lum;!4eKfd%{N%YUPu@Cur{|;!;H#&cuGLcLo@s}PkH6Dj z>uS036mIU|+ad^P64tkD+*={KIIx#Z+v0BWQI=ZLb}T#8A85Zv#)u zk~z&RY$(6Mcj>_0!rTtFnR{84*{w|5RacgAOwhW|?Id)xEE6mnYlS3URhVzE0uiVA z_{W&xGJ6XSj$GwD%tEz)m)07DyF^%a{qW7vB3kl%bb2hUpM2p$Xdm&*8hLBQD?fa&mmw9c{3EcSSt8nknGg3S9o>cu?wsoX7 Plb`+t$vF`m{this._eventCallback?.({cameraID:this.getID(),type:e(t.newState.state)?"new":"end"})},this._config=t,this._engine=i,this._capabilities=a?.capabilities,this._eventCallback=a?.eventCallback}async initialize(e){return e.stateWatcher.subscribe(this._stateChangeHandler,this._config.triggers.entities),this._onDestroy((()=>e.stateWatcher.unsubscribe(this._stateChangeHandler))),this}async destroy(){this._destroyCallbacks.forEach((e=>e()))}getConfig(){return this._config}setID(e){this._config.id=e}getID(){if(this._config.id)return this._config.id;throw new t(i("error.no_camera_id"))}getEngine(){return this._engine}getCapabilities(){return this._capabilities??null}getProxyConfig(){return{dynamic:this._config.proxy.dynamic,media:"auto"!==this._config.proxy.media&&this._config.proxy.media,ssl_verification:!1!==this._config.proxy.ssl_verification,ssl_ciphers:"auto"===this._config.proxy.ssl_ciphers?"default":this._config.proxy.ssl_ciphers}}_onDestroy(e){this._destroyCallbacks.push(e)}}const u=(e,t)=>{const i=t?.url??e.go2rtc?.url,a=t?.stream??e.go2rtc?.stream;if(!i||!a)return null;const n=`${i}/api/ws?src=${a}`;return{endpoint:n,sign:n.startsWith("/")}};class g{constructor(e,t){this._stateWatcher=e,this._eventCallback=t}getEngineType(){return a.Generic}async createCamera(e,t){return await new o(t,this,{capabilities:new n({"favorite-events":!1,"favorite-recordings":!1,clips:!1,live:!0,menu:!0,recordings:!1,seek:!1,snapshots:!1,substream:!0,ptz:s(t)??void 0},{disable:t.capabilities?.disable,disableExcept:t.capabilities?.disable_except}),eventCallback:this._eventCallback}).initialize({stateWatcher:this._stateWatcher})}generateDefaultEventQuery(e,t,i){return null}generateDefaultRecordingQuery(e,t,i){return null}generateDefaultRecordingSegmentsQuery(e,t,i){return null}async getEvents(e,t,i,a){return null}async getRecordings(e,t,i,a){return null}async getRecordingSegments(e,t,i,a){return null}generateMediaFromEvents(e,t,i,a){return null}generateMediaFromRecordings(e,t,i,a){return null}async getMediaDownloadPath(e,t,i){return null}async favoriteMedia(e,t,i,a){}getQueryResultMaxAge(e){return null}async getMediaSeekTime(e,t,i,a,n){return null}async getMediaMetadata(e,t,i,a){return null}getCameraMetadata(e,t){const i=r(t);return{title:t.title??c(e,t.camera_entity)??c(e,t.webrtc_card?.entity)??t.id??"",icon:t?.icon??(i?l(e,i,"mdi:video"):"mdi:video")}}getMediaCapabilities(e){return null}getCameraEndpoints(e,t){const i=u(e);return i?{go2rtc:i}:null}async executePTZAction(e,t,i,a){}}var d=Object.freeze({__proto__:null,GenericCameraManagerEngine:g});export{o as C,g as G,d as e,u as g}; diff --git a/config/www/community/frigate-hass-card/engine-generic-bb62ddef.js.gz b/config/www/community/frigate-hass-card/engine-generic-bb62ddef.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..8abd426fbd75dc02a55c8b59bdc89171e5535cc0 GIT binary patch literal 1148 zcmV-?1cUn@iwFn;u32XS|7C7xX>MgLXJu|>a%p2NVq!KjWMpM#E^2cCl~!AC+cp$_ z->*=FqL2Vq>AJ23WT-+HXKf#XWlewr8wQuAj^)$Jq(M@4T$TTQBt<21VrSjckgdFeUL%JB2Ps|CIX0*fR6)yZ{7(*`ayokqL)DJ62)Q+( z4Ss_J(oTYIC65BIPgJud$V|0!#U#!x^dqs@gPduJbq!Kw_BanH4RXP!eSniBNsBl4 zj%oRSAC#uOuYf+}D>;_GY$4=1Wy>T1dt73zjZMaxhnd`7cMRSrpDY+WhAUxJfC+i* zaFN^-rUyJ(_CznG*hV(Hkxnp)K}sPrE@pjw%&>}kMCU%a_Yw6e_lQT?eSmu;D@)!s zjkCCv;%0a6qFuG)bcHP6gSmE^SrCyGR7mrfwpzp|MR7pWYdn2=OhS}uW*d;WKt?qR zo}c`D*wKAOZ^>|NYe5AB#ZkkcSH=}AXxr#Ge_YX+QT4&mdRez>X~o9)5fQaT0z}(V z?MFt0g)XyJHf0G}EnY~?{4b%7Z(RXhjYU0YV(aAuzkffWLz%cFO?r>K`23_pb4u5E zx>co;ta#E<^LY|dW@o}$AlJDK57s>Au4klHpHMH8_%yaq!&s~L#+rlOjk+i_Spf%! zgT5=mYdfUwN{nXjfZH6g&~VIN$hM>}-~Nn2aZ6GAN*75#vPd_s%-o51(!~q95fU{# z^9WRI%Y)o8B`_f?@2guCxM>dFj(tjS~KuslajrF<_Cgo(rh$ryKz?X zhlw(7F4)Lh&a|)abLZ^O7Ua$ap5SfhL(A_ee;nfTzYVUSUb(~^HS7z))r(JHui{qd zL8V*2Kdd+aIIKUwzHqbVcf05xL-9cQhtYV8so3&H(CU)fUOO6zp?1B=om%ZPIw`)duG8-zRs`z96 z1(?nj62P_RY-U%87PFc6Lc$abA*Gz!_f0=9^V*~nxbe?d;ohHTq;}*Tsrt8U>qu=T OKm7|26C-%!3IG5JS}xiE literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/engine-motioneye-205f9ce6.js b/config/www/community/frigate-hass-card/engine-motioneye-205f9ce6.js new file mode 100644 index 00000000..4fd404ee --- /dev/null +++ b/config/www/community/frigate-hass-card/engine-motioneye-205f9ce6.js @@ -0,0 +1 @@ +import{e9 as e,e4 as t,e3 as a,e2 as s,ea as i,d0 as n,e6 as r,e7 as o,dN as c,eb as d,ec as m,ed as l,ee as h,d8 as u,da as y}from"./card-320adb66.js";import{B as g,a as p,g as _,i as M}from"./within-dates-c613e3cb.js";import{C as f}from"./engine-86b0096c.js";import{p as C}from"./parse-7f4a6e12.js";import{e as w}from"./endOfDay-086a6977.js";import"./engine-generic-39deaa91.js";import"./media-c9012082.js";class D extends g{getProxyConfig(){return{...super.getProxyConfig(),media:"auto"===this._config.proxy.media||this._config.proxy.media}}}class E{static isMotionEyeEventQueryResults(e){return e.engine===t.MotionEye&&e.type===o.Event}}const v={"%Y":"yyyy","%m":"MM","%d":"dd","%H":"HH","%M":"mm","%S":"ss"},x=new RegExp(/(%Y|%m|%d|%H|%M|%S)/g);class b extends p{constructor(){super(...arguments),this._directoryCache=new e,this._fileCache=new e}getEngineType(){return t.MotionEye}async createCamera(e,t){const i=new D(t,this,{capabilities:new a({"favorite-events":!1,"favorite-recordings":!1,clips:!0,live:!0,menu:!0,recordings:!1,seek:!1,snapshots:!0,substream:!0,ptz:s(t)??void 0},{disable:t.capabilities?.disable,disableExcept:t.capabilities?.disable_except}),eventCallback:this._eventCallback});return await i.initialize({entityRegistryManager:this._entityRegistryManager,hass:e,stateWatcher:this._stateWatcher})}_convertMotionEyeTimeFormatToDateFNS(e){return e.replace(x,((e,t)=>v[t]))}_motionEyeMetadataGeneratorFile(e,t,a,s){let n=s?._metadata?.startDate??new Date;if(t){const e=a.title.replace(/\.[^/.]+$/,"");if(n=C(e,t,n),!i(n))return null}return{cameraID:e,startDate:n,endDate:n}}_motionEyeMetadataGeneratorDirectory(e,t,a,s){let r=s?._metadata?.startDate??new Date;if(t){const e=C(a.title,t,r);if(!i(e))return null;r=n(e)}return{cameraID:e,startDate:r,endDate:s?._metadata?.endDate??w(r)}}async _getMatchingDirectories(e,t,a,s,i){const n=t.getCamera(a),r=n?.getConfig();if(!(n instanceof g&&r))return null;const o=n.getEntity(),c=o?.config_entry_id,d=o?.device_id;if(!c||!d)return null;const m=(e,t)=>{const i=e.shift();if(!i)return[];const n=i.includes("%")?this._convertMotionEyeTimeFormatToDateFNS(i):null;return[{targets:t,metadataGenerator:(e,t)=>this._motionEyeMetadataGeneratorDirectory(a,n,e,t),matcher:e=>e.can_expand&&(!!n||e.title===i)&&M(e,s?.start,s?.end),advance:t=>m(e,t)}]};return await this._browseMediaManager.walkBrowseMedias(e,[...!1===s?.hasClip||s?.hasSnapshot?[]:m(r.motioneye.movies.directory_pattern.split("/"),[`media-source://motioneye/${c}#${d}#movies`]),...!1===s?.hasSnapshot||s?.hasClip?[]:m(r.motioneye.images.directory_pattern.split("/"),[`media-source://motioneye/${c}#${d}#images`])],{...!1!==i?.useCache&&{cache:this._directoryCache}})}async getEvents(e,a,s,i){if(s.favorite||s.tags?.size||s.what?.size||s.where?.size)return null;const n=new Map,c=async r=>{const c={...s,cameraIDs:new Set([r])},d=i?.useCache??1?this._requestCache.get(c):null;if(d)return void n.set(c,d);const m=a.getCameraConfig(r);if(!m)return;const y=await this._getMatchingDirectories(e,a,r,c,i);if(!y||!y.length)return;const g=this._convertMotionEyeTimeFormatToDateFNS(m.motioneye.movies.file_pattern),p=this._convertMotionEyeTimeFormatToDateFNS(m.motioneye.images.file_pattern),_=c.limit??f,C=await this._browseMediaManager.walkBrowseMedias(e,[{targets:y,metadataGenerator:(e,t)=>e.media_class===l||e.media_class===h?this._motionEyeMetadataGeneratorFile(r,e.media_class===l?p:g,e,t):null,earlyExit:e=>e.length>=_,matcher:e=>!e.can_expand&&M(e,c.start,c.end)}],{...!1!==i?.useCache&&{cache:this._fileCache}}),w=u(C,(e=>e._metadata?.startDate),"desc").slice(0,c.limit??f),D={type:o.Event,engine:t.MotionEye,browseMedia:w};(i?.useCache??1)&&this._requestCache.set(c,{...D,cached:!0},D.expiry),n.set(c,D)};return await r(s.cameraIDs,(e=>c(e))),n.size?n:null}generateMediaFromEvents(e,t,a,s){return E.isMotionEyeEventQueryResults(s)?_(s.browseMedia):null}async getMediaMetadata(e,a,s,i){const n=new Map;if((i?.useCache??1)&&this._requestCache.has(s)){const e=this._requestCache.get(s);if(e)return n.set(s,e),n}const m=new Set,l=async t=>{const s=await this._getMatchingDirectories(e,a,t,null,i);for(const e of s??[])e._metadata&&m.add(y(e._metadata?.startDate))};await r(s.cameraIDs,(e=>l(e)));const h={type:o.MediaMetadata,engine:t.MotionEye,metadata:{...m.size&&{days:m}},expiry:c(new Date,{seconds:d}),cached:!1};return(i?.useCache??1)&&this._requestCache.set(s,{...h,cached:!0},h.expiry),n.set(s,h),n}getCameraMetadata(e,t){return{...super.getCameraMetadata(e,t),engineLogo:m}}getCameraEndpoints(e,t){const a=e.motioneye?.url?{endpoint:e.motioneye.url}:null;return{...super.getCameraEndpoints(e,t),...a&&{ui:a}}}}export{b as MotionEyeCameraManagerEngine}; diff --git a/config/www/community/frigate-hass-card/engine-motioneye-205f9ce6.js.gz b/config/www/community/frigate-hass-card/engine-motioneye-205f9ce6.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..1e859642de58866ac56d0c345938659221c6b0f3 GIT binary patch literal 1951 zcmV;Q2VnRgiwFoEf?;O@|7C7xX>MgLZEtjGZ*FCIWi2u=HD)e;c_ODx7(R0Y2%&gWL#H)$SVn5z6wB+8H)eC7Y|aDBX8VH z{RI$kd7tMV0A^WPa9P96fQkVS_*RXQz?B*)fwyWD1gIJrNyci-30$j@6L_b_f+Rnv zF($B3V?rQSV@4oRV@d$jxF*SaHEu|v^;ON17n$RaV#-a+HZGEu33JOPzmB9zP`MIt9a4ZF;U{nRvhvb%i-ev^=v0DKd-vg&tV42R&$s#L3muRllqMK0uE8`jSG&raY}_~#JkJj3~H zre+Dwl0?lu;q22VHJjlq%hc>1XF@m)c?xsb4Ss^v-Bam~-1DFJ=h^-|*`I&fpU?K^ z_ugpb*`zMIq?WZd&o{9wIA&Dm(Zz&PzS?BypYVvuO~N=Rp=v_oHE3I4x0Wo0-fDwo zxYNOZ#!$O54SIQKsHpOI5OYA#PG|<4x~R=F-VB&lG472649F@_O{R(c4f=nVHR}7u5W;CZO;H{cddt{A}2!JSj z!#}9RI=1rtrN(Pie{6xvu8f~q1|JKaQTe%;qUgsT?vGl4Lz&VT+$ZAd@`fL_5AxAN zO z7-xF0Kl-Qt@UM~o_~$nx;y9j?&clhel6&Ngxw+?Ar}IskHkMan4a~nzO>&IQ0I5Gu z%&hrZ9MiU6j)UR^BdOw{0-0 zmEv@hV5rWy<3-)E@Vl^QUSKL=RMwbxj70>JWY3WiShtMw*C2=zL>+!ZGTWXIegNc= z99g5Jc`_WjXJ`3-4+bcBx-f4zoS_|I5vC?sX^+rktI80_@I$8kXdatmIx%i7c(D`c z6P|&VC;S~vzkGLCR%m#@lj7_W?V)<4kqNTwesAXYmO`V4#~^dLZ{masaJEG(`Q3ps zFR7Hkb6=E5imo$qJo501xe6w8XA5_ITG9aj0)lq@@jW#NLB+ANZr!V9WKQ ziK0u}6&(Jv0U`CO>RUIqEr4!!?Whk)OsU!?iPv=|J+Ovl3QKL7{nAQSVIPz)vJxen z#F#RzqC!5X{1oqBa(%3A6~4Zqv)>|C-E&%$c%=M;$}H}VmCeK0Pg%xf6fMal`~#iX zF;4X|8g2EOLg~8>?X1cH|~VE+UTis)*}wmd+d0=NbwMH$K;TCk4(c_ z-OmGiJ16E6AM~!Sq*sq%*W9|t&4IjoqCE`$RVY)UJx}m1*^sG^p)+22q-~L@_l%7> zQb5<3I;>b7{`w1S^(fcbZdRr`#;uR|F6+3&-aV|+JO8Wi7vV*7G}sH#RP(@528TAS z2da9;GO7<>l^A4aGWh9pH{KdkT21nLyzv)8)rT zNN6R3tZ9gWQV_fCJ(AP{A2;~Q3li*$7Iv2{z+Mepp@F;Z19$xlxPq)zDLPK?0YsjB zrk@bAA%9=23KdT$beAV(!7P|tq|gu!l!|fiG{TpU5e#};YNzSn%uaZ5Y(U*5u)Ot# l1?u(RV4&(>9{S%pT`jEphK|i!x4He(e*yS<8=6ZJ008No+Nl5l literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/engine-motioneye-3521f17f.js b/config/www/community/frigate-hass-card/engine-motioneye-3521f17f.js new file mode 100644 index 00000000..a1310cd3 --- /dev/null +++ b/config/www/community/frigate-hass-card/engine-motioneye-3521f17f.js @@ -0,0 +1 @@ +import{ec as e,e7 as t,e6 as a,e5 as s,ed as i,d4 as n,e9 as r,ea as o,dQ as c,ee as d,ef as m,eg as l,eh as h,dc as u,de as y}from"./card-09c4bade.js";import{B as g,a as p,g as _,i as M}from"./within-dates-cc9f8404.js";import{C as f}from"./engine-86b0096c.js";import{p as C}from"./parse-645a86cb.js";import{e as w}from"./endOfDay-8be4da1b.js";import"./engine-generic-458c9005.js";import"./media-c9012082.js";class D extends g{getProxyConfig(){return{...super.getProxyConfig(),media:"auto"===this._config.proxy.media||this._config.proxy.media}}}class E{static isMotionEyeEventQueryResults(e){return e.engine===t.MotionEye&&e.type===o.Event}}const v={"%Y":"yyyy","%m":"MM","%d":"dd","%H":"HH","%M":"mm","%S":"ss"},x=new RegExp(/(%Y|%m|%d|%H|%M|%S)/g);class b extends p{constructor(){super(...arguments),this._directoryCache=new e,this._fileCache=new e}getEngineType(){return t.MotionEye}async createCamera(e,t){const i=new D(t,this,{capabilities:new a({"favorite-events":!1,"favorite-recordings":!1,clips:!0,live:!0,menu:!0,recordings:!1,seek:!1,snapshots:!0,substream:!0,ptz:s(t)??void 0},{disable:t.capabilities?.disable,disableExcept:t.capabilities?.disable_except}),eventCallback:this._eventCallback});return await i.initialize({entityRegistryManager:this._entityRegistryManager,hass:e,stateWatcher:this._stateWatcher})}_convertMotionEyeTimeFormatToDateFNS(e){return e.replace(x,((e,t)=>v[t]))}_motionEyeMetadataGeneratorFile(e,t,a,s){let n=s?._metadata?.startDate??new Date;if(t){const e=a.title.replace(/\.[^/.]+$/,"");if(n=C(e,t,n),!i(n))return null}return{cameraID:e,startDate:n,endDate:n}}_motionEyeMetadataGeneratorDirectory(e,t,a,s){let r=s?._metadata?.startDate??new Date;if(t){const e=C(a.title,t,r);if(!i(e))return null;r=n(e)}return{cameraID:e,startDate:r,endDate:s?._metadata?.endDate??w(r)}}async _getMatchingDirectories(e,t,a,s,i){const n=t.getCamera(a),r=n?.getConfig();if(!(n instanceof g&&r))return null;const o=n.getEntity(),c=o?.config_entry_id,d=o?.device_id;if(!c||!d)return null;const m=(e,t)=>{const i=e.shift();if(!i)return[];const n=i.includes("%")?this._convertMotionEyeTimeFormatToDateFNS(i):null;return[{targets:t,metadataGenerator:(e,t)=>this._motionEyeMetadataGeneratorDirectory(a,n,e,t),matcher:e=>e.can_expand&&(!!n||e.title===i)&&M(e,s?.start,s?.end),advance:t=>m(e,t)}]};return await this._browseMediaManager.walkBrowseMedias(e,[...!1===s?.hasClip||s?.hasSnapshot?[]:m(r.motioneye.movies.directory_pattern.split("/"),[`media-source://motioneye/${c}#${d}#movies`]),...!1===s?.hasSnapshot||s?.hasClip?[]:m(r.motioneye.images.directory_pattern.split("/"),[`media-source://motioneye/${c}#${d}#images`])],{...!1!==i?.useCache&&{cache:this._directoryCache}})}async getEvents(e,a,s,i){if(s.favorite||s.tags?.size||s.what?.size||s.where?.size)return null;const n=new Map,c=async r=>{const c={...s,cameraIDs:new Set([r])},d=i?.useCache??1?this._requestCache.get(c):null;if(d)return void n.set(c,d);const m=a.getCameraConfig(r);if(!m)return;const y=await this._getMatchingDirectories(e,a,r,c,i);if(!y||!y.length)return;const g=this._convertMotionEyeTimeFormatToDateFNS(m.motioneye.movies.file_pattern),p=this._convertMotionEyeTimeFormatToDateFNS(m.motioneye.images.file_pattern),_=c.limit??f,C=await this._browseMediaManager.walkBrowseMedias(e,[{targets:y,metadataGenerator:(e,t)=>e.media_class===l||e.media_class===h?this._motionEyeMetadataGeneratorFile(r,e.media_class===l?p:g,e,t):null,earlyExit:e=>e.length>=_,matcher:e=>!e.can_expand&&M(e,c.start,c.end)}],{...!1!==i?.useCache&&{cache:this._fileCache}}),w=u(C,(e=>e._metadata?.startDate),"desc").slice(0,c.limit??f),D={type:o.Event,engine:t.MotionEye,browseMedia:w};(i?.useCache??1)&&this._requestCache.set(c,{...D,cached:!0},D.expiry),n.set(c,D)};return await r(s.cameraIDs,(e=>c(e))),n.size?n:null}generateMediaFromEvents(e,t,a,s){return E.isMotionEyeEventQueryResults(s)?_(s.browseMedia):null}async getMediaMetadata(e,a,s,i){const n=new Map;if((i?.useCache??1)&&this._requestCache.has(s)){const e=this._requestCache.get(s);if(e)return n.set(s,e),n}const m=new Set,l=async t=>{const s=await this._getMatchingDirectories(e,a,t,null,i);for(const e of s??[])e._metadata&&m.add(y(e._metadata?.startDate))};await r(s.cameraIDs,(e=>l(e)));const h={type:o.MediaMetadata,engine:t.MotionEye,metadata:{...m.size&&{days:m}},expiry:c(new Date,{seconds:d}),cached:!1};return(i?.useCache??1)&&this._requestCache.set(s,{...h,cached:!0},h.expiry),n.set(s,h),n}getCameraMetadata(e,t){return{...super.getCameraMetadata(e,t),engineLogo:m}}getCameraEndpoints(e,t){const a=e.motioneye?.url?{endpoint:e.motioneye.url}:null;return{...super.getCameraEndpoints(e,t),...a&&{ui:a}}}}export{b as MotionEyeCameraManagerEngine}; diff --git a/config/www/community/frigate-hass-card/engine-motioneye-3521f17f.js.gz b/config/www/community/frigate-hass-card/engine-motioneye-3521f17f.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..376fce2116dec87964372ac0420722a95184c312 GIT binary patch literal 1948 zcmV;N2V?jjiwFo>dR%7$|7C7xX>MgLZEtjGZ*FCIWi2x`GBIW`H)bwsa{#SaYj5MY z75&~{;bwU zw3U)*Wpl#RFl)cvF}Y^>MM5Qri#Wbr-dv5Z`Z^{`eA$XazG69C+*~ilOH-=ju(A7?fdSaF!}p(N~?>T1zaWcvM+kDw}Kovi!ZL;-^91$@%v+; z3=&2!aO3jZ@y)k-FHWftgXsXCC0f8F)GLtx;Kg$_De@&-xn9jdZg^h%zArWZbB{?jjvjtCBzA_te%1RNOjY-P3phk>sqsD`r5)%Ml^qA99tP80>5t{{O z2xz8$l=7EAxYCQFZNZYkxFL1I1YM*MNWbrAdZ;YDROq0^X`QwMW(ni2#VgH~f=I ztYa(RUuwKY^~V;t?8^9=W$>}!8I_-lDT;pl+rv={a41t6gZoTeUEc7+_EA20s3~hz z%s^6PF8XIh4;1nB5y7N{2_?d-Q;>r^#5Bz_D;W9c6_?6f6ls{??2awn4m}W3ALC39 z_DBEnAOAh_pZ@r6L>$Lc(s?-1R&tM=F*o-->vX2_ce7WkRo}< zVG;R;k`;1!HD?J))M5f#76bm&+T;EHEIFYs3oYn6RsmnE*-~1snEmGQ>8=e%wNjjJ z5)9Qjcf6=O7Jd`<%nM86h;g%L)yTcv75QqCHfPG%`V!-S5r(!BS}S_!ML=_f4Eo0nWCFCBHjR<|UO9 zcn4c$lA=fABjF#9{#vbqbA`bNpinO$0j@So~?jwKl8f>{Q<=rxv9fs>`zgzqjG`r(gukN`JI1MA zXB;q>+PS_3V!Nb@GLDzl(Qna`KA`b5d8sQZgOz3}jRJfa@wB>sX3~(ADaVI!-siBh zV-iz@69+!(V@atsdn%+s(>U$GG(o-(?+_*t>^SdhdVr{UW?*js|-nnra?6%HYtZ^*~iG zSVr~Xn-YWUj7ATaomZ$u=*~V6o6Z(K$}tU1ODUGLNNNdAb_6HhN+Nh2RM15pS>kKR z`ZT~Ri-_?2@Opq64l|!7iHo2nnr3 zkTnf4PzqwVy+@K-;Nu2gc|n4G(ZcSs1=yQ`D>QJ|ec-NN09TN;Dn-ZXJ%GrQ&-4>w zHsrq+t3t)o3Ek&OSuhLc7AZ7@1EpddJdN<>V+4cVmfC6hH?tF792-z~2`q2DVS#%6 iHyEh;m&Zc?%cZS_b>GmjdFwWJfA}v|O(QW&5&!_;{Kjzr literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/engine-motioneye-381004ee.js b/config/www/community/frigate-hass-card/engine-motioneye-381004ee.js new file mode 100644 index 00000000..bcb4f70c --- /dev/null +++ b/config/www/community/frigate-hass-card/engine-motioneye-381004ee.js @@ -0,0 +1 @@ +import{ec as e,e7 as t,e6 as a,e5 as s,ed as i,d4 as n,e9 as r,ea as o,dQ as c,ee as d,ef as m,eg as l,eh as h,dc as u,de as y}from"./card-c642ee74.js";import{B as g,a as p,g as _,i as M}from"./within-dates-cc65dfa5.js";import{C as f}from"./engine-86b0096c.js";import{p as C}from"./parse-a53fb39b.js";import{e as w}from"./endOfDay-97ae2cc7.js";import"./engine-generic-bb62ddef.js";import"./media-c9012082.js";class D extends g{getProxyConfig(){return{...super.getProxyConfig(),media:"auto"===this._config.proxy.media||this._config.proxy.media}}}class E{static isMotionEyeEventQueryResults(e){return e.engine===t.MotionEye&&e.type===o.Event}}const v={"%Y":"yyyy","%m":"MM","%d":"dd","%H":"HH","%M":"mm","%S":"ss"},x=new RegExp(/(%Y|%m|%d|%H|%M|%S)/g);class b extends p{constructor(){super(...arguments),this._directoryCache=new e,this._fileCache=new e}getEngineType(){return t.MotionEye}async createCamera(e,t){const i=new D(t,this,{capabilities:new a({"favorite-events":!1,"favorite-recordings":!1,clips:!0,live:!0,menu:!0,recordings:!1,seek:!1,snapshots:!0,substream:!0,ptz:s(t)??void 0},{disable:t.capabilities?.disable,disableExcept:t.capabilities?.disable_except}),eventCallback:this._eventCallback});return await i.initialize({entityRegistryManager:this._entityRegistryManager,hass:e,stateWatcher:this._stateWatcher})}_convertMotionEyeTimeFormatToDateFNS(e){return e.replace(x,((e,t)=>v[t]))}_motionEyeMetadataGeneratorFile(e,t,a,s){let n=s?._metadata?.startDate??new Date;if(t){const e=a.title.replace(/\.[^/.]+$/,"");if(n=C(e,t,n),!i(n))return null}return{cameraID:e,startDate:n,endDate:n}}_motionEyeMetadataGeneratorDirectory(e,t,a,s){let r=s?._metadata?.startDate??new Date;if(t){const e=C(a.title,t,r);if(!i(e))return null;r=n(e)}return{cameraID:e,startDate:r,endDate:s?._metadata?.endDate??w(r)}}async _getMatchingDirectories(e,t,a,s,i){const n=t.getCamera(a),r=n?.getConfig();if(!(n instanceof g&&r))return null;const o=n.getEntity(),c=o?.config_entry_id,d=o?.device_id;if(!c||!d)return null;const m=(e,t)=>{const i=e.shift();if(!i)return[];const n=i.includes("%")?this._convertMotionEyeTimeFormatToDateFNS(i):null;return[{targets:t,metadataGenerator:(e,t)=>this._motionEyeMetadataGeneratorDirectory(a,n,e,t),matcher:e=>e.can_expand&&(!!n||e.title===i)&&M(e,s?.start,s?.end),advance:t=>m(e,t)}]};return await this._browseMediaManager.walkBrowseMedias(e,[...!1===s?.hasClip||s?.hasSnapshot?[]:m(r.motioneye.movies.directory_pattern.split("/"),[`media-source://motioneye/${c}#${d}#movies`]),...!1===s?.hasSnapshot||s?.hasClip?[]:m(r.motioneye.images.directory_pattern.split("/"),[`media-source://motioneye/${c}#${d}#images`])],{...!1!==i?.useCache&&{cache:this._directoryCache}})}async getEvents(e,a,s,i){if(s.favorite||s.tags?.size||s.what?.size||s.where?.size)return null;const n=new Map,c=async r=>{const c={...s,cameraIDs:new Set([r])},d=i?.useCache??1?this._requestCache.get(c):null;if(d)return void n.set(c,d);const m=a.getCameraConfig(r);if(!m)return;const y=await this._getMatchingDirectories(e,a,r,c,i);if(!y||!y.length)return;const g=this._convertMotionEyeTimeFormatToDateFNS(m.motioneye.movies.file_pattern),p=this._convertMotionEyeTimeFormatToDateFNS(m.motioneye.images.file_pattern),_=c.limit??f,C=await this._browseMediaManager.walkBrowseMedias(e,[{targets:y,metadataGenerator:(e,t)=>e.media_class===l||e.media_class===h?this._motionEyeMetadataGeneratorFile(r,e.media_class===l?p:g,e,t):null,earlyExit:e=>e.length>=_,matcher:e=>!e.can_expand&&M(e,c.start,c.end)}],{...!1!==i?.useCache&&{cache:this._fileCache}}),w=u(C,(e=>e._metadata?.startDate),"desc").slice(0,c.limit??f),D={type:o.Event,engine:t.MotionEye,browseMedia:w};(i?.useCache??1)&&this._requestCache.set(c,{...D,cached:!0},D.expiry),n.set(c,D)};return await r(s.cameraIDs,(e=>c(e))),n.size?n:null}generateMediaFromEvents(e,t,a,s){return E.isMotionEyeEventQueryResults(s)?_(s.browseMedia):null}async getMediaMetadata(e,a,s,i){const n=new Map;if((i?.useCache??1)&&this._requestCache.has(s)){const e=this._requestCache.get(s);if(e)return n.set(s,e),n}const m=new Set,l=async t=>{const s=await this._getMatchingDirectories(e,a,t,null,i);for(const e of s??[])e._metadata&&m.add(y(e._metadata?.startDate))};await r(s.cameraIDs,(e=>l(e)));const h={type:o.MediaMetadata,engine:t.MotionEye,metadata:{...m.size&&{days:m}},expiry:c(new Date,{seconds:d}),cached:!1};return(i?.useCache??1)&&this._requestCache.set(s,{...h,cached:!0},h.expiry),n.set(s,h),n}getCameraMetadata(e,t){return{...super.getCameraMetadata(e,t),engineLogo:m}}getCameraEndpoints(e,t){const a=e.motioneye?.url?{endpoint:e.motioneye.url}:null;return{...super.getCameraEndpoints(e,t),...a&&{ui:a}}}}export{b as MotionEyeCameraManagerEngine}; diff --git a/config/www/community/frigate-hass-card/engine-motioneye-381004ee.js.gz b/config/www/community/frigate-hass-card/engine-motioneye-381004ee.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..b92af3870b2edbe47d23f852546ffc9479a588f1 GIT binary patch literal 1950 zcmV;P2VwXhiwFn;u32XS|7C7xX>MgLZEtjGZ*FCIWi2x}F)%PRWo0gEa{#SaYjfka z75&~{Av0?YIfW_P+4aWsa5)o6+wDx%Hu27MGOnvY;FW|fUj-n^ip2lkiw7ynkvDFp z{sIWNyw7tF0Q0;mh1vn@QP~3m@Aaq%+~|=Kc&A56Ak`x$>03P(1a9>x2v9wiB>h2; zi~#5{B{0`xPGF(OjKETlOOhHpE0P+yZ9Nxd?u7$JMS8(*-d+Q|e;fW=dUxFV^}QBb z5M!kxM%k2bJxrQ!H(V`wagkC5@`ACOcj=tI>*^S4@p&T-#ex@b@!ier^78hEbpu;a>n<~L1Fs0`G{^WZr@Y5X6$`O^k8oR1qjYAX0w~?G==%G zP!1`l7wq=(>iY7#YqQ5PDrIlfgC~U+FbTT_sK1NyX*(>7IbZm}PJmj8Vi$&?TvZ^# z=K{p2jXb(ir5DFB=1GQAW_H6$ONK^bzkg|`u50VZcqbKAob|Yzl!}+dcnjk-6zYc+ zi0zLcSDBJNG(Pnpv~g>zVf#hD524ytdbJGA=cvCdr0T8Xop=6|7kOL!^N4qz<9ssF zvlM4(s%M{Y_UV(JO>maydUlU9DZQFJ#RY77Kf+@CRQUt{{HOhSzCTa*=b!fHll}R9 zFjxdGsk1hz)y|j~E2c_;88vzIF`-l}Ryq1717dTNasgUsJEUw0#um7(InSW8T4Nc; zCiu@7YFnmWCl581+k*9&00ixj<{+q#+5+oMj~hiJUl{{r$7n@oJmZRkjPw@ucixq%lFOl?BkR{2f2EQ3geT|bl1trItnpBPl?C8;Tx?K&VPoFUD! z8D(E0o8hCiI=FKgr5nmITOlt{8O``F;O|h7D+J_%qtn|7E$9M7qvq5eSt2ANAR6EB z52~<^jeK{h4r<*WYY?g}<7b}3$5P}}eJ)2R`th&#M=ciTI|x@rU(;dJIrg z-l&*>qR3qIPnsSm;_D-VNedH7WU$LX^@&RvA_$z*#VX5c$1BVL^Uouj9BVT|>Mv3| ztG^b(qdgoq{w8z44!k!0_t%Oy%!@OfGGEyXej*Q5;WtG1ML6jis@Eel5_JsHYAdeKt z8WkBbf9*00^* zIY#yWaKkD>Hy+8(IC6&hPr{Y7hho2v4T)oP>Kv_+R&C2^0z<*XCm08t&>oeB^=yuzV=8(jc>TQw+ZD-O0YdEHG)Rwz1o#Zy|g7QUHqC^me zDKjdz$Oqdn!~2(79&1~~uW#u5*ND~koCYNUseY$2hr45C)0l-B&$&vHIT^;kqZ3=k z*}lv;U@x^(a|^_F$uwmgFD;Ybq9t=c<7x6-S5id_!%_wX_%IULcKpPZB`aHw5An3i zVQ0rArU{EVzG8;1>Q}W?d;i34BAa;S4~cJ#o;qg(;vu~=F9>CZhlqbk4w(A#9rc~&efH4>Je?~JO8*jkathChsD1RWkihUDc&V(G72$tF17(_T4WSFV`G67 z&^D$Ci|NDPe1WZ=6eipC!dAz+^%37?Etj~vhf_KZzxsZWK{7>yoe*s`4;*E2=+b(i zs%I>t`|wqXL3T!?hs(|j)FMr1ABfFl3m@f}hPt5?M_MFv1gBbpldmNaybfyUB9F}R zHROEi;gv-uczy&OK=u21NYm8E+udoDVI5y8U}g&FC~4UO?kKaTfY+FbG>&pper$x4 zZe^6$HL*~NnBUwZ$xh`0}xWQD;l<)ZLre2``Qf=(_}#cemn^ ke*M=NsQ#D7%>2uxsfBaj(y@K()^~sSFH&tag-a3u0O$X_od5s; literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/engine-motioneye-7a5554b3.js b/config/www/community/frigate-hass-card/engine-motioneye-7a5554b3.js new file mode 100644 index 00000000..f5f4a1d7 --- /dev/null +++ b/config/www/community/frigate-hass-card/engine-motioneye-7a5554b3.js @@ -0,0 +1 @@ +import{ec as e,e7 as t,e6 as a,e5 as s,ed as i,d4 as n,e9 as r,ea as o,dQ as c,ee as d,ef as m,eg as l,eh as h,dc as u,de as y}from"./card-769e2b91.js";import{B as g,a as p,g as _,i as M}from"./within-dates-a146acf5.js";import{C as f}from"./engine-86b0096c.js";import{p as C}from"./parse-7dfc1897.js";import{e as w}from"./endOfDay-696ac7f4.js";import"./engine-generic-97fdd47e.js";import"./media-c9012082.js";class D extends g{getProxyConfig(){return{...super.getProxyConfig(),media:"auto"===this._config.proxy.media||this._config.proxy.media}}}class E{static isMotionEyeEventQueryResults(e){return e.engine===t.MotionEye&&e.type===o.Event}}const v={"%Y":"yyyy","%m":"MM","%d":"dd","%H":"HH","%M":"mm","%S":"ss"},x=new RegExp(/(%Y|%m|%d|%H|%M|%S)/g);class b extends p{constructor(){super(...arguments),this._directoryCache=new e,this._fileCache=new e}getEngineType(){return t.MotionEye}async createCamera(e,t){const i=new D(t,this,{capabilities:new a({"favorite-events":!1,"favorite-recordings":!1,clips:!0,live:!0,menu:!0,recordings:!1,seek:!1,snapshots:!0,substream:!0,ptz:s(t)??void 0},{disable:t.capabilities?.disable,disableExcept:t.capabilities?.disable_except}),eventCallback:this._eventCallback});return await i.initialize({entityRegistryManager:this._entityRegistryManager,hass:e,stateWatcher:this._stateWatcher})}_convertMotionEyeTimeFormatToDateFNS(e){return e.replace(x,((e,t)=>v[t]))}_motionEyeMetadataGeneratorFile(e,t,a,s){let n=s?._metadata?.startDate??new Date;if(t){const e=a.title.replace(/\.[^/.]+$/,"");if(n=C(e,t,n),!i(n))return null}return{cameraID:e,startDate:n,endDate:n}}_motionEyeMetadataGeneratorDirectory(e,t,a,s){let r=s?._metadata?.startDate??new Date;if(t){const e=C(a.title,t,r);if(!i(e))return null;r=n(e)}return{cameraID:e,startDate:r,endDate:s?._metadata?.endDate??w(r)}}async _getMatchingDirectories(e,t,a,s,i){const n=t.getCamera(a),r=n?.getConfig();if(!(n instanceof g&&r))return null;const o=n.getEntity(),c=o?.config_entry_id,d=o?.device_id;if(!c||!d)return null;const m=(e,t)=>{const i=e.shift();if(!i)return[];const n=i.includes("%")?this._convertMotionEyeTimeFormatToDateFNS(i):null;return[{targets:t,metadataGenerator:(e,t)=>this._motionEyeMetadataGeneratorDirectory(a,n,e,t),matcher:e=>e.can_expand&&(!!n||e.title===i)&&M(e,s?.start,s?.end),advance:t=>m(e,t)}]};return await this._browseMediaManager.walkBrowseMedias(e,[...!1===s?.hasClip||s?.hasSnapshot?[]:m(r.motioneye.movies.directory_pattern.split("/"),[`media-source://motioneye/${c}#${d}#movies`]),...!1===s?.hasSnapshot||s?.hasClip?[]:m(r.motioneye.images.directory_pattern.split("/"),[`media-source://motioneye/${c}#${d}#images`])],{...!1!==i?.useCache&&{cache:this._directoryCache}})}async getEvents(e,a,s,i){if(s.favorite||s.tags?.size||s.what?.size||s.where?.size)return null;const n=new Map,c=async r=>{const c={...s,cameraIDs:new Set([r])},d=i?.useCache??1?this._requestCache.get(c):null;if(d)return void n.set(c,d);const m=a.getCameraConfig(r);if(!m)return;const y=await this._getMatchingDirectories(e,a,r,c,i);if(!y||!y.length)return;const g=this._convertMotionEyeTimeFormatToDateFNS(m.motioneye.movies.file_pattern),p=this._convertMotionEyeTimeFormatToDateFNS(m.motioneye.images.file_pattern),_=c.limit??f,C=await this._browseMediaManager.walkBrowseMedias(e,[{targets:y,metadataGenerator:(e,t)=>e.media_class===l||e.media_class===h?this._motionEyeMetadataGeneratorFile(r,e.media_class===l?p:g,e,t):null,earlyExit:e=>e.length>=_,matcher:e=>!e.can_expand&&M(e,c.start,c.end)}],{...!1!==i?.useCache&&{cache:this._fileCache}}),w=u(C,(e=>e._metadata?.startDate),"desc").slice(0,c.limit??f),D={type:o.Event,engine:t.MotionEye,browseMedia:w};(i?.useCache??1)&&this._requestCache.set(c,{...D,cached:!0},D.expiry),n.set(c,D)};return await r(s.cameraIDs,(e=>c(e))),n.size?n:null}generateMediaFromEvents(e,t,a,s){return E.isMotionEyeEventQueryResults(s)?_(s.browseMedia):null}async getMediaMetadata(e,a,s,i){const n=new Map;if((i?.useCache??1)&&this._requestCache.has(s)){const e=this._requestCache.get(s);if(e)return n.set(s,e),n}const m=new Set,l=async t=>{const s=await this._getMatchingDirectories(e,a,t,null,i);for(const e of s??[])e._metadata&&m.add(y(e._metadata?.startDate))};await r(s.cameraIDs,(e=>l(e)));const h={type:o.MediaMetadata,engine:t.MotionEye,metadata:{...m.size&&{days:m}},expiry:c(new Date,{seconds:d}),cached:!1};return(i?.useCache??1)&&this._requestCache.set(s,{...h,cached:!0},h.expiry),n.set(s,h),n}getCameraMetadata(e,t){return{...super.getCameraMetadata(e,t),engineLogo:m}}getCameraEndpoints(e,t){const a=e.motioneye?.url?{endpoint:e.motioneye.url}:null;return{...super.getCameraEndpoints(e,t),...a&&{ui:a}}}}export{b as MotionEyeCameraManagerEngine}; diff --git a/config/www/community/frigate-hass-card/engine-motioneye-7a5554b3.js.gz b/config/www/community/frigate-hass-card/engine-motioneye-7a5554b3.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..36b579b9bcb2ae4f928e11fcddc781517d660274 GIT binary patch literal 1951 zcmV;Q2VnRgiwFowdR%7$|7C7xX>MgLZEtjGZ*FCIWi2;hH8nLfVlyska{#SaYjfka z75&~{Au($WIfW^EXJfDF;c_ODx7(R0ZQ`BjWL#H)$SVn5z6wB+8H)eC7Y|aDBX8VH z{RI$kd7tMV0A^WPa9Kku1TWpY)GQzs%FWH%<;!D<;nT=)eXE|++6zq7S1g*etoCJ zRzzDViB>izObxU4+Z~f@mY*k7f;gv_@2+UP{I;)SqQsZ2IOHpq!}?w~OF+j2^)^Q#*)eZ73w6Ft~lK@Ob7=Qr2OBzboY z$3ht-jGo6g7ng4@-oMp*aY}_4Ob75J(E=u+UV;2OFP^GNkuTZG^=b}s!}HqreX%Kl z`_Bc4RvS2UBMT=CL(G%#=ds@POC{-RiT(biou+AwA9uBoRI+%$#H^64$nPq++d?jX z+yJkB0!&u06x zdvCn*Y*H6pQp;MK=bKm-95br(=wd=CUu`n&nz~XOAazVjx?m}j3`C%|s9QTr zx-B@9a1JVu!U=|#wro-aW-o%9o_(ptl>3=x`=9 zO&2u&5||7htu@}Q%_!YbhS~C2j>>4teg(HiK_(H9D~3*2Gn&&C@K(*KJ+ekf1V9wN z;U83D9b5VSQsXtMKeoVSSH{mQgO3HzsQg?^QS{>v_eU+jp-gEE?h|o!dBYFe2l?os zrmR&l14)s&=wB2)P{h|q1d|dblnAd*K@Rc|(=^YlVC17$Tq<)>q+x=yTefsN^gu{` zj59shAOF*T_}AEf{PUYJaU4%c=ix+K$vrY;Zti*3>3ox>jpdbC1M{y_lN@6+KeMg7k$l+Ta=D74#zj^2Pu>*EBigqsd8rzt2Y~h)z zJ2ple2%@zOg|ODW9N7(JZ3|P6peK=Du@tQRb@Ks3X`07SEC;L6h#$LebQNLlYwA!S zMe>frBJvF-E9CNO&JvQS#RRr22K=eD$NT*-IiW8LE$BK{0bi`yQd+N={pR8EwhczL zQk-rQ4AnVvyr?@Cei!!43rr=9${O>Iv4}vD>^U+5>y}ae8U#^-sKakaX4@0O4}d(9 zBWsj2PevnmIL!BZFhIf6g?XdV4DASuFg3wSdxR!iRfa%@A2RJn^Vl5IiE(Sei=9B9 z@C>v(;qPer<-5bOLc;@|6vIojhw70=Cdjh;y_w%z3XL8fgUsc=i4!Wo*%qi9yxZSHQl zEW@b&A8r^$=*A9`eWK22iCtyv@vbl8P~V_POB?2hy$9(&@JFw~mg_|m zMVGcKIQ(Y=Lh4o3w{C1(0Nw7|Q6G|+QngJIuj@>DU=7O@mfAA=rIoD0J}6&gB}zDn zF=bjsg?v!?Dc-;2`dHg4e0@V_zeTLN=d>vCNcjhqS==2fn}@NVvW&?nT9Qfl2RgB1 zoa$x90duLH>suhUOR6a2cxfH|9xdqu8c&nwx}q{zX_nF`z=sh}tGg#A4Oy9TdQ(qs(DpQb@xx~CbA1R?u5A7=&5toBM#Dg?0CLN@epw@$RYC{nTEBx zp9l7KPRu1f=v`e&uO7j!xpj}519|sEdl>wyP^LtCp5R@wAyXeiXT0)A+ago%85?t? zfUYrhSg|_%^%vOcQLeMytW0%`TOaXV)^UlwdswA+{#V~G!i(l;uot4K=7FOO4sBWw zRP~HyR3E-7G04tn^l;gEfm(#_>;tjsY~iCE)6le(Vo8gnmf&PZaN@Njg4aO>UF4A^ zzJ{z%1H7_`2+t3%2dL2~^J$W}c)L4|GOXiE1x$4TEhVixz#V1w6!2Ozfx=Oy%a4ta z&`JbZ(+~rtAa>h(B&h{HZt#^CB-j@%>@Hh?y&AYe19#mA?)n*U1zD?7be!G;h&=gB zKOtsA{=QfhDxOa0E>FsWSunRqp&=Y7731J(gfAZ>81%N(PSd}co$%t=fVxXydFu@e l)a$>&K-IrI7W!Wv[t]))}_motionEyeMetadataGeneratorFile(e,t,a,s){let n=s?._metadata?.startDate??new Date;if(t){const e=a.title.replace(/\.[^/.]+$/,"");if(n=C(e,t,n),!i(n))return null}return{cameraID:e,startDate:n,endDate:n}}_motionEyeMetadataGeneratorDirectory(e,t,a,s){let r=s?._metadata?.startDate??new Date;if(t){const e=C(a.title,t,r);if(!i(e))return null;r=n(e)}return{cameraID:e,startDate:r,endDate:s?._metadata?.endDate??w(r)}}async _getMatchingDirectories(e,t,a,s,i){const n=t.getCamera(a),r=n?.getConfig();if(!(n instanceof g&&r))return null;const o=n.getEntity(),c=o?.config_entry_id,d=o?.device_id;if(!c||!d)return null;const m=(e,t)=>{const i=e.shift();if(!i)return[];const n=i.includes("%")?this._convertMotionEyeTimeFormatToDateFNS(i):null;return[{targets:t,metadataGenerator:(e,t)=>this._motionEyeMetadataGeneratorDirectory(a,n,e,t),matcher:e=>e.can_expand&&(!!n||e.title===i)&&M(e,s?.start,s?.end),advance:t=>m(e,t)}]};return await this._browseMediaManager.walkBrowseMedias(e,[...!1===s?.hasClip||s?.hasSnapshot?[]:m(r.motioneye.movies.directory_pattern.split("/"),[`media-source://motioneye/${c}#${d}#movies`]),...!1===s?.hasSnapshot||s?.hasClip?[]:m(r.motioneye.images.directory_pattern.split("/"),[`media-source://motioneye/${c}#${d}#images`])],{...!1!==i?.useCache&&{cache:this._directoryCache}})}async getEvents(e,a,s,i){if(s.favorite||s.tags?.size||s.what?.size||s.where?.size)return null;const n=new Map,c=async r=>{const c={...s,cameraIDs:new Set([r])},d=i?.useCache??1?this._requestCache.get(c):null;if(d)return void n.set(c,d);const m=a.getCameraConfig(r);if(!m)return;const y=await this._getMatchingDirectories(e,a,r,c,i);if(!y||!y.length)return;const g=this._convertMotionEyeTimeFormatToDateFNS(m.motioneye.movies.file_pattern),p=this._convertMotionEyeTimeFormatToDateFNS(m.motioneye.images.file_pattern),_=c.limit??f,C=await this._browseMediaManager.walkBrowseMedias(e,[{targets:y,metadataGenerator:(e,t)=>e.media_class===l||e.media_class===h?this._motionEyeMetadataGeneratorFile(r,e.media_class===l?p:g,e,t):null,earlyExit:e=>e.length>=_,matcher:e=>!e.can_expand&&M(e,c.start,c.end)}],{...!1!==i?.useCache&&{cache:this._fileCache}}),w=u(C,(e=>e._metadata?.startDate),"desc").slice(0,c.limit??f),D={type:o.Event,engine:t.MotionEye,browseMedia:w};(i?.useCache??1)&&this._requestCache.set(c,{...D,cached:!0},D.expiry),n.set(c,D)};return await r(s.cameraIDs,(e=>c(e))),n.size?n:null}generateMediaFromEvents(e,t,a,s){return E.isMotionEyeEventQueryResults(s)?_(s.browseMedia):null}async getMediaMetadata(e,a,s,i){const n=new Map;if((i?.useCache??1)&&this._requestCache.has(s)){const e=this._requestCache.get(s);if(e)return n.set(s,e),n}const m=new Set,l=async t=>{const s=await this._getMatchingDirectories(e,a,t,null,i);for(const e of s??[])e._metadata&&m.add(y(e._metadata?.startDate))};await r(s.cameraIDs,(e=>l(e)));const h={type:o.MediaMetadata,engine:t.MotionEye,metadata:{...m.size&&{days:m}},expiry:c(new Date,{seconds:d}),cached:!1};return(i?.useCache??1)&&this._requestCache.set(s,{...h,cached:!0},h.expiry),n.set(s,h),n}getCameraMetadata(e,t){return{...super.getCameraMetadata(e,t),engineLogo:m}}getCameraEndpoints(e,t){const a=e.motioneye?.url?{endpoint:e.motioneye.url}:null;return{...super.getCameraEndpoints(e,t),...a&&{ui:a}}}}export{b as MotionEyeCameraManagerEngine}; diff --git a/config/www/community/frigate-hass-card/engine-motioneye-d04d1919.js.gz b/config/www/community/frigate-hass-card/engine-motioneye-d04d1919.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..de7f7d55d0697f3a9f3d7b620b0ddba9b5624e8b GIT binary patch literal 1950 zcmV;P2VwXhiwFp8_*Q2E|7C7xX>MgLZEtjGZ*FCIWi4bdG-NS3F*z=3a{#SaYjfka z75&~{Av0?YIfW_N={jqAxSWaP?Pexwn|NnB8P`=H@=8LMuL6){hT?zk#e)>($Qw6P ze*pws-siaofLT@+T-Fc|s2Bi&Z`3FWT&s~1c&kQ1AWSpZ!BAi=h{Q6dj zt%$Z#60K}bm>Op7w>u`+EWb#o1aWb-Slql@TpsC|DDh=04*81ZaPjVXF&^Js$9=(4 z2~JwUl5znTOQ10IL-1u)s@1~RpQHXF7jm!-Yv=qYCvYnKbBJ@E;e0kz zvjk^JqGlg)_VJ^d&2W}wYIct^A)JOhg*og7Kf>znsdPu~`A_@vY=55Y&p+EJ(Ms9l)`y*xBjRCzpzIUr~!Gy_gu)aDs)223lOx>6e;bxcdTU@4OfM4+~)TRTg- zEjW{K0Va3(ZO z7c~AHm<%7SHQuewDBV$p+45PA%4o`d1-C{)CJ~S;hE7*An$s2VR?VqBvPMV*Koq{= zpHyNUTlxM{<29;3w!mdq#!oDR4+YPt{8UU)^uyook6M63nIe0*PsG*b4c~7c$|+k&j++smw)@h6&DY+0yOM10nS> z&h%h^^e_M6-y{F=&u>P=aXclRhZAij_sAJ@bI-F*=bJQbEU&~GnBPrJa*WLYsXtH5 ztoc$L)3#rZgW>;kFca5?gKD_;9UX=vhi`e9d%?AvnX&ytd9IS>ze(b){RfM^(sY8Jj z$vX~<$TyU%kjtw%OGu&?6WFpC@Tb-u@AqfP34K{;LD#Vg_+rhL(t5@0HxG}uZ7`~p z;&hW>sLr|LMcuLRyRc_oU@Bo$)|hvUMFf&$&yf*Ww~X@FAczt~9ezVH+nx}<2jr0) zS)-(RG90>RXZd~)1}J#CFmE`Vp&elnrY2ZvkI-bR$`Hu#eWv|r9-Cu2F>Wn*u@mSM zo`IGp{2fg{e|uO~Xn4Sr;_MRbp?ai|39{^dZ|3)wLZgSrAal8I;)DutwnZ%Y-GMSM zsg%HTUzA9St}}8x^6;~{5r|^L(c96e`+W4Kj+?LE)JgM|QS|epM~>ZSO}DNnw|?se z%P^|{hZ{x_y75SA?Z_GCKk_%i9E!ssHYAS0sdKbJS~V@FkgpFiOsj1%1gY@b6Agp$ zC0(h4BG0Q|yET>lU%-c-I$ksBciDr44h$-h*@>_@mcg%k`p( zqD$Kq9R9NbA@!>2TQ{~XfNpo~s1Hd@soExq*L5a6u!dy{OKq9`(n?lgACxb$5+$6( zm@=)RLO!Vc6z^YheXMO2zP_Qe-y&Asb6S*mr2K=*Ebfk#&BNGFS;k}(Ey*PO1D)70 zPW3Y5fVtGp^(_$FB~_GhytIyfkCyZSjiQ(qs(DpQb@xx~CbA1R?u5A7=&5toBM#Dg?0CLN@epyxjEy-` zK-ZW$tXLiX`U`CJDA(C;R;D_}tq=Gv>$t?;J*?6@|BLSz;YD*a*bC8A^T1IChc>MT zs(QvUst;e47-VNOdbsSoKrKRd_JP=Rw(wDoX=qwXv7|*(OK`FyIPqE%!Rw%cF7n6{ zUqjZX0bW@|gy)CX1JrPs`7}vfyxpBf8P@To0;alvmXg*T;EpnT3V5xVK;bCU<;O-y zXeENIX^4SR5WDR?lGFkpH~7j666}i>c9$){UJYEKfxGSlcl`{wf~-|3I!^BaM4o)6 zpAfSle_yN$6;CI0mnUVxESOuQ&=3xkigEBX!k3Q`40>B?r|I9!PIz%_K;0#h<4Xpz2>93;i#bwiecXL&xT=+uZ)?zrzlp>`M{=0IfvIng9R* literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/engine-motioneye-fa799851.js b/config/www/community/frigate-hass-card/engine-motioneye-fa799851.js new file mode 100644 index 00000000..06f83c89 --- /dev/null +++ b/config/www/community/frigate-hass-card/engine-motioneye-fa799851.js @@ -0,0 +1 @@ +import{ec as e,e7 as t,e6 as a,e5 as s,ed as i,d4 as n,e9 as r,ea as o,dQ as c,ee as d,ef as m,eg as l,eh as h,dc as u,de as y}from"./card-45855f1f.js";import{B as g,a as p,g as _,i as M}from"./within-dates-a663657f.js";import{C as f}from"./engine-86b0096c.js";import{p as C}from"./parse-114e8d53.js";import{e as w}from"./endOfDay-24d35e3f.js";import"./engine-generic-31c14ad9.js";import"./media-c9012082.js";class D extends g{getProxyConfig(){return{...super.getProxyConfig(),media:"auto"===this._config.proxy.media||this._config.proxy.media}}}class E{static isMotionEyeEventQueryResults(e){return e.engine===t.MotionEye&&e.type===o.Event}}const v={"%Y":"yyyy","%m":"MM","%d":"dd","%H":"HH","%M":"mm","%S":"ss"},x=new RegExp(/(%Y|%m|%d|%H|%M|%S)/g);class b extends p{constructor(){super(...arguments),this._directoryCache=new e,this._fileCache=new e}getEngineType(){return t.MotionEye}async createCamera(e,t){const i=new D(t,this,{capabilities:new a({"favorite-events":!1,"favorite-recordings":!1,clips:!0,live:!0,menu:!0,recordings:!1,seek:!1,snapshots:!0,substream:!0,ptz:s(t)??void 0},{disable:t.capabilities?.disable,disableExcept:t.capabilities?.disable_except}),eventCallback:this._eventCallback});return await i.initialize({entityRegistryManager:this._entityRegistryManager,hass:e,stateWatcher:this._stateWatcher})}_convertMotionEyeTimeFormatToDateFNS(e){return e.replace(x,((e,t)=>v[t]))}_motionEyeMetadataGeneratorFile(e,t,a,s){let n=s?._metadata?.startDate??new Date;if(t){const e=a.title.replace(/\.[^/.]+$/,"");if(n=C(e,t,n),!i(n))return null}return{cameraID:e,startDate:n,endDate:n}}_motionEyeMetadataGeneratorDirectory(e,t,a,s){let r=s?._metadata?.startDate??new Date;if(t){const e=C(a.title,t,r);if(!i(e))return null;r=n(e)}return{cameraID:e,startDate:r,endDate:s?._metadata?.endDate??w(r)}}async _getMatchingDirectories(e,t,a,s,i){const n=t.getCamera(a),r=n?.getConfig();if(!(n instanceof g&&r))return null;const o=n.getEntity(),c=o?.config_entry_id,d=o?.device_id;if(!c||!d)return null;const m=(e,t)=>{const i=e.shift();if(!i)return[];const n=i.includes("%")?this._convertMotionEyeTimeFormatToDateFNS(i):null;return[{targets:t,metadataGenerator:(e,t)=>this._motionEyeMetadataGeneratorDirectory(a,n,e,t),matcher:e=>e.can_expand&&(!!n||e.title===i)&&M(e,s?.start,s?.end),advance:t=>m(e,t)}]};return await this._browseMediaManager.walkBrowseMedias(e,[...!1===s?.hasClip||s?.hasSnapshot?[]:m(r.motioneye.movies.directory_pattern.split("/"),[`media-source://motioneye/${c}#${d}#movies`]),...!1===s?.hasSnapshot||s?.hasClip?[]:m(r.motioneye.images.directory_pattern.split("/"),[`media-source://motioneye/${c}#${d}#images`])],{...!1!==i?.useCache&&{cache:this._directoryCache}})}async getEvents(e,a,s,i){if(s.favorite||s.tags?.size||s.what?.size||s.where?.size)return null;const n=new Map,c=async r=>{const c={...s,cameraIDs:new Set([r])},d=i?.useCache??1?this._requestCache.get(c):null;if(d)return void n.set(c,d);const m=a.getCameraConfig(r);if(!m)return;const y=await this._getMatchingDirectories(e,a,r,c,i);if(!y||!y.length)return;const g=this._convertMotionEyeTimeFormatToDateFNS(m.motioneye.movies.file_pattern),p=this._convertMotionEyeTimeFormatToDateFNS(m.motioneye.images.file_pattern),_=c.limit??f,C=await this._browseMediaManager.walkBrowseMedias(e,[{targets:y,metadataGenerator:(e,t)=>e.media_class===l||e.media_class===h?this._motionEyeMetadataGeneratorFile(r,e.media_class===l?p:g,e,t):null,earlyExit:e=>e.length>=_,matcher:e=>!e.can_expand&&M(e,c.start,c.end)}],{...!1!==i?.useCache&&{cache:this._fileCache}}),w=u(C,(e=>e._metadata?.startDate),"desc").slice(0,c.limit??f),D={type:o.Event,engine:t.MotionEye,browseMedia:w};(i?.useCache??1)&&this._requestCache.set(c,{...D,cached:!0},D.expiry),n.set(c,D)};return await r(s.cameraIDs,(e=>c(e))),n.size?n:null}generateMediaFromEvents(e,t,a,s){return E.isMotionEyeEventQueryResults(s)?_(s.browseMedia):null}async getMediaMetadata(e,a,s,i){const n=new Map;if((i?.useCache??1)&&this._requestCache.has(s)){const e=this._requestCache.get(s);if(e)return n.set(s,e),n}const m=new Set,l=async t=>{const s=await this._getMatchingDirectories(e,a,t,null,i);for(const e of s??[])e._metadata&&m.add(y(e._metadata?.startDate))};await r(s.cameraIDs,(e=>l(e)));const h={type:o.MediaMetadata,engine:t.MotionEye,metadata:{...m.size&&{days:m}},expiry:c(new Date,{seconds:d}),cached:!1};return(i?.useCache??1)&&this._requestCache.set(s,{...h,cached:!0},h.expiry),n.set(s,h),n}getCameraMetadata(e,t){return{...super.getCameraMetadata(e,t),engineLogo:m}}getCameraEndpoints(e,t){const a=e.motioneye?.url?{endpoint:e.motioneye.url}:null;return{...super.getCameraEndpoints(e,t),...a&&{ui:a}}}}export{b as MotionEyeCameraManagerEngine}; diff --git a/config/www/community/frigate-hass-card/engine-motioneye-fa799851.js.gz b/config/www/community/frigate-hass-card/engine-motioneye-fa799851.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..86daea4eb5ecf63080cbe248efed86442d3d459a GIT binary patch literal 1951 zcmV;Q2VnRgiwFqNQ&?vL|7C7xX>MgLZEtjGZ*FCIWi4i5H#s>tH8Cz~a{#SaYjfka z75&~{Av0?YIfW@}{m3poT+T%Db~{rwO}sOmjO!{ec_pFCR{=;eL-D`o;z5dXx=8FZx3`#l=z|*hkVI$ID2>fcz*u=I_?XW zN^sH&mXr%P8;>vHU2=8Nm(#v)_X?Bm7gJiDy}e8>uHd3?dv9+EIdB%AU5w-LB~9KR z3T2QmdKSMwAHO|+_g3%4DHUQc9l(=B3z&p@3GyGjc&a8vzFISMvqG{WzpdbQ1G)TR z4ZQjh#5$G2h1RD5_$F>;)$hI-4#AgIsa6YLe~$W#T*$#Dtew-JoWQB@&mqofhV$7> z%@Uj?iJE=F*{4rxHp5w#so5RQgm4=26y~rU{0Ph2r_vp{r$6mZv)yU3JN>jfo$XHV zywTFLNqy{+TGrY;U&pfGm{FZa7ZXbPa-E@n!XqX(3FDxIstJu(plyNOTCfy)s|}Xn zRtNtXL+#2m=;fiIqRQhz%mG0=p&4-MqBhTXGhkZL)Ro!*sbgBwN0u_lKm=-wy0x>Q zn}Rb5XQ1*ZoZw_k_KWCj!4sA*%|@KEQUoXGBxM^=BgVE?<6cgQ34kwp%xNiBh18#j z^&@5oXr_LY@|Qrk(u<-^!IHswL+XSH`j|o>{l1@(Z`X+(Z=Yf)>4tegU^eK_(H9ONLHYGn&&S@K(*SJ+eYb1V9wN z;h$7u9b5VSQsXtMKQ_Q+SH{mQgO3HzsQg?^QS{^A?+#jkLz&VT+$ZAd@`fKa_wvC* zO z7-zb-Kl+z{|L>9i@aH!p;y9j?&clhel6&NYxw+?Ar}K51HkMan4a~nzO>&IQ0I5Gu z%&hrZ9MiU64uj$Ub1)OvhJ$Lj_8lFD1BY*TnB&q{{pOwDhYr})DB8N*YiwiAv4v-< z?${V@Ac)pB6vA5fa%4A@wJl6Nf}TWr#Zs{L*UbkErD+~Ru^23eLw@MK(N%=Guc^JuhH*GMg zmEv@rV5rWi<3-)E@Vl^QUSKL=RMwbxj70>JWY3WiShtMw*C2=zL>+!ZGTWXIegNc= z99g5Jc`_WjCnx!C2L>p3x-f4zoS_|I5vC?sX^+rkqskD-@I$8kXdaqFIx%iN@?tB{ zCp-f!PxxD!e)(>{tk7_eC&kGa?V)<4kqNTwZfE9qmO`WZhahvgZ{masaJE4#`Q3ps zFR7Hkb6=E5imo$qJaYfDxe6w8XA5_ITG9aj0)lq@@jW#NL5)@A-q*V9WKQ ziK4OX3J(8WgOGYv^{pG*7C^VVcGQO?rc`Z{#Opef?peb!g{8L4erYAEun)=?S&0%( zVoaG4f6?l~<=JW~EaWfpgb%I0D0rz~SKiWX!N{((;H z7^ixfall+^=lT|i?UE|WI9ysqzeh{@fX370xvr=TmYStB3h-gX)9Ut#Nkdkq93R4Y zpTkZLNlXz|Z22nIbk)47rMmkkb`#l#Yj;9iZS>eV>k$X(J$5`_q zQb5<3I;>b7{`w1S^(fcbZkDDx#;uR|F6+3&-aV|+TmP%?7vV*7G}sH#RCCW!28TAS zd#ZZIGO7<>l^A4aG`hd+yg)5NclMsxbhhwOj%jFGO0lFxQcG~MBRKI|62a@Bf-dsN z0$)ScrvYABM1<#u*8|jWnE5nGT)f>KM;X@fr2?k9fR>V09pDZ!dklE3nLyzv)8)rT zNN6R3tZ9gWQV_fCJ(AP{A2;~Q3li*$7IxznV6O(Q(7;{wfxCJJTtQZ<6dkAc03we* z(~pSRkpEUJ3l&c%bekt-!7P|tq|gxdl!|fiG{TpU5e#};YNzSn%#L_*Xh7X1u)Ot} l1?u(RV4&(>9*_E8E^RHW`-YCqTerFS)31OW-a$(e008@V(iZ># literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/engine-reolink-0f6e3569.js b/config/www/community/frigate-hass-card/engine-reolink-0f6e3569.js new file mode 100644 index 00000000..33d09684 --- /dev/null +++ b/config/www/community/frigate-hass-card/engine-reolink-0f6e3569.js @@ -0,0 +1,8 @@ +import{l as e,e1 as t,e9 as a,e4 as n,ee as s,ea as i,dN as r,d0 as o,e3 as c,e2 as l,ef as u,e6 as h,e7 as d,eb as g,eg as m,d8 as _,da as p}from"./card-320adb66.js";import{B as y,a as f,i as w,g as C}from"./within-dates-c613e3cb.js";import{C as M}from"./engine-86b0096c.js";import{p as D}from"./parse-7f4a6e12.js";import{e as k}from"./endOfDay-086a6977.js";import"./engine-generic-39deaa91.js";import"./media-c9012082.js";class b extends t{}class x extends y{constructor(){super(...arguments),this._channel=null}async initialize(e){return await super.initialize(e),this._initializeChannel(),this}_initializeChannel(){const t=this._entity?.unique_id,a=t?String(t).match(/(.*)_(?\d+)/):null,n=a&&a.groups?.channel?Number(a.groups.channel):null;if(null===n)throw new b(e("error.camera_initialization_reolink"),this.getConfig());this._channel=n}getChannel(){return this._channel}getProxyConfig(){return{...super.getProxyConfig(),media:"auto"===this._config.proxy.media||this._config.proxy.media,ssl_verification:"auto"!==this._config.proxy.ssl_verification&&this._config.proxy.ssl_verification,ssl_ciphers:"auto"===this._config.proxy.ssl_ciphers?"intermediate":this._config.proxy.ssl_ciphers}}}class v{static isReolinkEventQueryResults(e){return e.engine===n.Reolink&&e.type===d.Event}}class E extends f{constructor(){super(...arguments),this._cache=new a}getEngineType(){return n.Reolink}_reolinkFileMetadataGenerator(e,t,a){ +/* istanbul ignore next: This situation cannot happen as the directory would + be rejected by _reolinkDirectoryMetadataGenerator if there was no start date + -- @preserve */ +if(!a?._metadata?.startDate||t.media_class!==s)return null;const n=t.title.split(/ +/);if(2!==n.length)return null;const o=D(n[0],"HH:mm:ss",a._metadata.startDate);if(!i(o))return null;const c=n[1].match(/(?\d+):(?\d+):(?\d+)/),l=c?.groups?{hours:Number(c.groups.hours),minutes:Number(c.groups.minutes),seconds:Number(c.groups.seconds)}:null;return{cameraID:e,startDate:o,endDate:l?r(o,l):o}}_reolinkDirectoryMetadataGenerator(e,t){const a=D(t.title,"yyyy/M/d",new Date);return i(a)?{cameraID:e,startDate:o(a),endDate:k(a)}:null}_reolinkCameraMetadataGenerator(e){const t=e.media_content_id.match(/^media-source:\/\/reolink\/CAM\|(?.+)\|(?\d+)$/);return t?.groups?{configEntryID:t.groups.configEntryID,channel:Number(t.groups.channel)}:null}async createCamera(e,t){const a=new x(t,this,{capabilities:new c({"favorite-events":!1,"favorite-recordings":!1,clips:!0,live:!0,menu:!0,recordings:!1,seek:!1,snapshots:!1,substream:!0,ptz:l(t)??void 0},{disable:t.capabilities?.disable,disableExcept:t.capabilities?.disable_except}),eventCallback:this._eventCallback});return await a.initialize({entityRegistryManager:this._entityRegistryManager,hass:e,stateWatcher:this._stateWatcher})}async _getMatchingDirectories(e,t,a,n){const s=t.getConfig(),i=t.getEntity(),r=i?.config_entry_id;if(null===t.getChannel()||!r)return null;const o=await this._browseMediaManager.walkBrowseMedias(e,[{targets:["media-source://reolink"],metadataGenerator:(e,t)=>this._reolinkCameraMetadataGenerator(e),matcher:e=>e._metadata?.channel===t.getChannel()&&e._metadata?.configEntryID===r}],{...!1!==n?.useCache&&{cache:this._cache}});return o?.length?await this._browseMediaManager.walkBrowseMedias(e,[{targets:[`media-source://reolink/RES|${r}|${t.getChannel()}|`+("low"===s.reolink?.media_resolution?"sub":"main")],metadataGenerator:(e,a)=>this._reolinkDirectoryMetadataGenerator(t.getID(),e),matcher:e=>e.can_expand&&w(e,a?.start,a?.end),sorter:e=>u(e)}],{...!1!==n?.useCache&&{cache:this._cache}}):null}async getEvents(e,t,a,s){if(a.favorite||a.tags?.size||a.what?.size||a.where?.size||a.hasSnapshot)return null;const i=new Map,r=async r=>{const o={...a,cameraIDs:new Set([r])},c=s?.useCache??1?this._requestCache.get(o):null;if(c)return void i.set(o,c);const l=t.getCamera(r),h=l&&l instanceof x?await this._getMatchingDirectories(e,l,o,s):null,g=o.limit??M;let m=[];h?.length&&(m=await this._browseMediaManager.walkBrowseMedias(e,[{targets:h,concurrency:1,metadataGenerator:(e,t)=>this._reolinkFileMetadataGenerator(r,e,t),earlyExit:e=>e.length>=g,matcher:e=>!e.can_expand&&w(e,o.start,o.end),sorter:e=>u(e)}],{...!1!==s?.useCache&&{cache:this._cache}}));const p=_(m,(e=>e._metadata?.startDate),"desc").slice(0,g),y={type:d.Event,engine:n.Reolink,browseMedia:p};(s?.useCache??1)&&this._requestCache.set(o,{...y,cached:!0},y.expiry),i.set(o,y)};return await h(a.cameraIDs,(e=>r(e))),i}generateMediaFromEvents(e,t,a,n){return v.isReolinkEventQueryResults(n)?C(n.browseMedia):null}async getMediaMetadata(e,t,a,s){const i=new Map,o=s?.useCache??1?this._requestCache.get(a):null;if(o)return i.set(a,o),i;const c=new Set,l=async a=>{const n=t.getCamera(a);if(!(n&&n instanceof x))return;const i=await this._getMatchingDirectories(e,n,null,s);for(const e of i??[]) +/* istanbul ignore next: This situation cannot happen as the directory + will not match without metadata -- @preserve */ +e._metadata&&c.add(p(e._metadata?.startDate))};await h(a.cameraIDs,(e=>l(e)));const u={type:d.MediaMetadata,engine:n.Reolink,metadata:{...c.size&&{days:c}},expiry:r(new Date,{seconds:g}),cached:!1};return(s?.useCache??1)&&this._requestCache.set(a,{...u,cached:!0},u.expiry),i.set(a,u),i}getCameraMetadata(e,t){return{...super.getCameraMetadata(e,t),engineLogo:m}}getCameraEndpoints(e,t){const a=e.reolink?.url?{endpoint:e.reolink.url}:null;return{...super.getCameraEndpoints(e,t),...a&&{ui:a}}}}export{E as ReolinkCameraManagerEngine,v as ReolinkQueryResultsClassifier}; diff --git a/config/www/community/frigate-hass-card/engine-reolink-0f6e3569.js.gz b/config/www/community/frigate-hass-card/engine-reolink-0f6e3569.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..4da118d6111bfe355a8e2df10daba64abea84a17 GIT binary patch literal 2221 zcmV;e2vYYSiwFoEf?;O@|7C7xX>MgLa%FF9X>MyRFlIJoGc`6jE^2cCtypby+cpyZ zo?k(8IvO&8C@bkWFwcTrH&b_;&Gxx#qsSvr6P?I1FfR5New_R60Olsz*iORF9Ovw|e9RK#!6D)gvS6&w3OjJ=SAE;GG^5 z0&n%05m@N4B5?Gk4%Y;R$$0+uBS$bW@vcQgEq6m8e2^ z{#I5c2rmc%Dwb6aTuGl`Y-BJ?R+MwdB3@-#P349s4&zKQnz28?1Ai+(Rf0QoO__2U zJ;9EE)zi;i7>%A;sSm9f>l_uCy=V_pn>eUA`@Mo0O9_os{7DJMm!9&2oT_ByO}yZ> zKl9@6tjXt}(>MOa54GilM|3oz!BP}eDdWJ3#6MU0935{L+Ih3-j4eDpMp49lwGzeJ z;jnh*9(XPYQHUU+ISAT&Kou+aOhAz_e&<@(m!K{RzF~E2$S;~Ykc(Z$6^O<}1#b9d>AJS4zu!uQXCiLpM{_e*_lT%}RUkGW zK~|ZP0~|wOXs0hdu=1l31Zq?2xin}tx4N%7MlD{>D4MJw(nzBEa<7`>enIs;0=kpy z7EC{|46Z>@%vJPnIw4Sf3=l=AzkM}%jm{~`=T+vgB`*XZQXf?4{DLPslBuc*x|1NJ z3gxV5Spsj;_X?bp3D8DwoOMxU=_|+n=HLkU4VNHw<{PKA=RRdbw6qql#!h+G> z(0@$1lo-_n!q1b>6RY*}0x$-~-`ybVcs_WlNhk!vSkgH|@H0e+UP`>JyP)@lU<$^d z^ObbNqbcbp@h%IIV)--+NybVU9vzd6-Gd%6VO4tU<+PXtxNAmEOSvkPnXKlR_JHPE zzEppN8J6TYzAsqn9M@!pj6LE&7fJX5gFQ@3z}tfn%vnE zurpV8mt$HII&4R_rj_^zOU##uWybB_V2f`4lib@Ich+P9ZB!<2rl z=P+n3XV4RqstIrJP-5B|GzNs3@2kcH{1y?5Eq1hBVuK(a^dn|-+c-Qv9*Kh~&P2di zJIDS-Vhut3Ti1d$&F;SMr?rtcTO=atmf?-N!<9+P6!(_o`{WB7ct+>uq^}Z{)|*}K3;u#{AMd^{Absj`tjE{o|_eG-SWu5%EvZoVR0<7N|)={MQ*vFn^VSJ|CzAU z{jh%_Q8#A%bcyiVzXNOxkYXj}>1edpT5TQH|G`|0^#xxWM!3QY{NLg|%xN0qO+vDS zkp31?O@lTwJwDPv(IqlpB472_dPUXn3;T=y6Uq6>CZhucU`?XDrX|wJ9515tZA%XA z0VQn>GMV!eDDOtx`ZY-+**g};)3^;XzCfgEW_2{NE$H3~Nozur`xw?1*tNhJjEWD`zb$o<3ZsvugF02SHh>VYYPJ!9y3v>Zb6=qV-(3(4YZh?HMN zWP2rLH1l%e?Wdu>_akl!GI9MtW-I~km@Iv=iMIMN5Zb2zG4F-2>)FX5#9>*VdAmUJ z+xO89lnhq13mei{nPNGu$tJ)EFtNb`VMR86y<6W_$es?wjW0UI`naQBn#dbdeh@{z zLp|O-H|~QkJdL;?UwAwiIJHk`111~2p4a;vEMCYc+B2$X8D+euq(Ha&*4q#k+h}77 z?a0k{s76f-@8Qdo@35`y=(}|BBKC385KsDN3&gb93J&UHaeQ;@|DPUX-HWOHtyz{i zdPBn!NB`}rsPN0i{mIK}fauXE322&nrS}ZX5mV2BDQm!FBUE+J-?{Ur6lf0#HKLOy zT_Y7!x{+a0*TjH26khu97y{ zapi!Rb@=bavIz6K*LB6yvS5~CeY*~Qjju!&V-sq`!frv&?>^C\d+)/):null,s=a&&a.groups?.channel?Number(a.groups.channel):null;if(null===s)throw new k(e("error.camera_initialization_reolink"),this.getConfig());this._channel=s}getChannel(){return this._channel}getProxyConfig(){return{...super.getProxyConfig(),media:"auto"===this._config.proxy.media||this._config.proxy.media,ssl_verification:"auto"!==this._config.proxy.ssl_verification&&this._config.proxy.ssl_verification,ssl_ciphers:"auto"===this._config.proxy.ssl_ciphers?"intermediate":this._config.proxy.ssl_ciphers}}}class v{static isReolinkEventQueryResults(e){return e.engine===s.Reolink&&e.type===d.Event}}class E extends f{constructor(){super(...arguments),this._directoryCache=new a,this._fileCache=new a}getEngineType(){return s.Reolink}_reolinkFileMetadataGenerator(e,t,a){ +/* istanbul ignore next: This situation cannot happen as the directory would + be rejected by _reolinkDirectoryMetadataGenerator if there was no start date + -- @preserve */ +if(!a?._metadata?.startDate||t.media_class!==n)return null;const s=t.title.split(/ +/);if(2!==s.length)return null;const o=D(s[0],"HH:mm:ss",a._metadata.startDate);if(!i(o))return null;const c=s[1].match(/(?\d+):(?\d+):(?\d+)/),l=c?.groups?{hours:Number(c.groups.hours),minutes:Number(c.groups.minutes),seconds:Number(c.groups.seconds)}:null;return{cameraID:e,startDate:o,endDate:l?r(o,l):o}}_reolinkDirectoryMetadataGenerator(e,t){const a=D(t.title,"yyyy/M/d",new Date);return i(a)?{cameraID:e,startDate:o(a),endDate:x(a)}:null}async createCamera(e,t){const a=new b(t,this,{capabilities:new c({"favorite-events":!1,"favorite-recordings":!1,clips:!0,live:!0,menu:!0,recordings:!1,seek:!1,snapshots:!1,substream:!0,ptz:l(t)??void 0},{disable:t.capabilities?.disable,disableExcept:t.capabilities?.disable_except}),eventCallback:this._eventCallback});return await a.initialize({entityRegistryManager:this._entityRegistryManager,hass:e,stateWatcher:this._stateWatcher})}async _getMatchingDirectories(e,t,a,s){const n=t.getConfig(),i=t.getEntity(),r=i?.config_entry_id;return null!==t.getChannel()&&r?await this._browseMediaManager.walkBrowseMedias(e,[{targets:[`media-source://reolink/RES|${r}|${t.getChannel()}|`+("low"===n.reolink?.media_resolution?"sub":"main")],concurrency:1/0,metadataGenerator:(e,a)=>this._reolinkDirectoryMetadataGenerator(t.getID(),e),matcher:e=>e.can_expand&&C(e,a?.start,a?.end),sorter:e=>u(e)}],{...!1!==s?.useCache&&{cache:this._directoryCache}}):null}async getEvents(e,t,a,n){if(a.favorite||a.tags?.size||a.what?.size||a.where?.size||a.hasSnapshot)return null;const i=new Map,r=async r=>{const o={...a,cameraIDs:new Set([r])},c=n?.useCache??1?this._requestCache.get(o):null;if(c)return void i.set(o,c);const l=t.getCamera(r),h=l&&l instanceof b?await this._getMatchingDirectories(e,l,o,n):null,g=o.limit??M;let m=[];h?.length&&(m=await this._browseMediaManager.walkBrowseMedias(e,[{targets:h,concurrency:1,metadataGenerator:(e,t)=>this._reolinkFileMetadataGenerator(r,e,t),earlyExit:e=>e.length>=g,matcher:e=>!e.can_expand&&C(e,o.start,o.end),sorter:e=>u(e)}],{...!1!==n?.useCache&&{cache:this._fileCache}}));const _=p(m,(e=>e._metadata?.startDate),"desc").slice(0,g),y={type:d.Event,engine:s.Reolink,browseMedia:_};(n?.useCache??1)&&this._requestCache.set(o,{...y,cached:!0},y.expiry),i.set(o,y)};return await h(a.cameraIDs,(e=>r(e))),i}generateMediaFromEvents(e,t,a,s){return v.isReolinkEventQueryResults(s)?w(s.browseMedia):null}async getMediaMetadata(e,t,a,n){const i=new Map,o=n?.useCache??1?this._requestCache.get(a):null;if(o)return i.set(a,o),i;const c=new Set,l=async a=>{const s=t.getCamera(a);if(!(s&&s instanceof b))return;const i=await this._getMatchingDirectories(e,s,null,n);for(const e of i??[]) +/* istanbul ignore next: This situation cannot happen as the directory + will not match without metadata -- @preserve */ +e._metadata&&c.add(_(e._metadata?.startDate))};await h(a.cameraIDs,(e=>l(e)));const u={type:d.MediaMetadata,engine:s.Reolink,metadata:{...c.size&&{days:c}},expiry:r(new Date,{seconds:g}),cached:!1};return(n?.useCache??1)&&this._requestCache.set(a,{...u,cached:!0},u.expiry),i.set(a,u),i}getCameraMetadata(e,t){return{...super.getCameraMetadata(e,t),engineLogo:m}}getCameraEndpoints(e,t){const a=e.reolink?.url?{endpoint:e.reolink.url}:null;return{...super.getCameraEndpoints(e,t),...a&&{ui:a}}}}export{E as ReolinkCameraManagerEngine,v as ReolinkQueryResultsClassifier}; diff --git a/config/www/community/frigate-hass-card/engine-reolink-13b9bf20.js.gz b/config/www/community/frigate-hass-card/engine-reolink-13b9bf20.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..c128f6440893ca7228d2b4c1548ef63d20f3c075 GIT binary patch literal 2115 zcmV-J2)y?niwFoxdR%7$|7C7xX>MgLa%FF9X>MyRF*9O0VrDWhE^2cCtypbSEL5a0QYg-U~$pu-eVcnlyGr3~rB%>0^&)JUto9Y1<#R3bTJLE@?YCKEe+759UU zXlmeo7>1NDn*vHH0)nv-;VfOzvV=S?n>_ERXv@@LC6kQi>`(9^*l>^yFCDt3OgdUm zxFcZoY}YP~M&Imo`*w_Vj*QJ&w1>$y37eAr(ZGylgvK)YEIBKez6`>G%5>#V{qSut z^ONtb$>;yg-UZVjQkD}DQ_rK}l2=VFlF*7Izcj@h9q%{#b#v&9Eqpb`aV!G4;?>$I zVeQ=c;Jd(i#lw^q!0FZlDp^&|I8-?+?_BHp668fyF4)o!g0tPAicW0~UfWRa$S8?_ z^Xj4Pby%qlK9-60QvsqO5xKOHm5a7pb$U0fm1L+T9v@%YAwuM{dj#ErrP?K{>|n35 zr^2513L$+(%IXzx@l{hta*4}I30#{f!HvEy-E|iA_ZuPcPQh!v!$-CD35Myu-W zue3G4;q6<142E?*)_%l;*B~jTGWrjdFQ~Eth$J-FyqUg5-z6>QP42K|S#dxhKgh`W z4R3V>lZ}28Cq=|n(pk~EhEiwu6*z;r&bn&y?2Ti8=HPJnf?JsA=dIIQa@mVNGsj^I zr4TP)s{&CuXcCu>%D#ir$;A14%|QUa2j}hd4Knb6CgH5G%92nYy2LXGUxU_}ehS29 z8QAz}@|qMPVi{uc$RQMU&ZIwe-c18V?Dq%ifpdIpx!QBCiZ6X}b9hVKpMHvpA`-$S zbZf`f46W>d`Bkt-OB#!tquU`rCEu^Ah6|mTBAgYhY_RkUa{+iP6E<;?JWi87V{P=w z$mXlG&sTaC8E+Il+qUZgv6`O=*!7?@3D2e$lh%H|jDQS&Mp(JaO#hW9+^+~G$*SwV z{p<>beL|-gRr?;qZSiM%JGs>}wCCPooGUu=(n~VuM&mofG*v=%h z>%@*%4=L30C8-(c?GB@*+_|86KBwuO&6+!F-4J+F#p$?$Z%p<51WU{z_`bBHOW@JC zGC$cPE99ejGztGv*dOG_OI=_eZH8&?TCHKwdK{rACVdgnzhQ|~9@SF9%=}85fO8%* zEbMw$*~MFI6wXGRRMjgS*IUoyiE-E%H^&MuFpXkPv7Ur$n&17fT~;>TY!Hj6MnpHi zo90U(2~&usQ_F?vr>oD8f7|d5f9>AbJ^udAck^nkid`96`NZZi%zIVds7#!=2oX1O z3(872xFzUS+HekK+D1oHg|#Oni_kC{#OKD5Z*x+c_46f04I8w=J`u#{fLJOKIW;Xa z&%01sZOT=DAnh=fVBcwk8!VgMEm57w!I4U**r5qizdR2qhGVp^Bzbcxyp;!(}kD=Nn`tSQ?mg732>+n$WfbRxK>HNwSQ&*Sq=pYxR~ zl=OMWWQNZm{TqH8bR><-t%pf+l=RWYrc_A1s=|t;U}zuH-UQ8UhWQq^Ng7yda*Ifl zuXsRKaqf9oq)SzYfsdAy_wJG~rkAS!th|~>2k+T&1L$VA=8*fyP7}*Yym^LyRdNnc%b2RJD{9P~w zecQYPCxaK|MoYBS8J3KWv>`@;@fMSy6={QRH;1o~K?9JrFIb6#08eyF6MbXKkN7FN zLq9RJnfKvWI%W|hYhQ#Tr=F790Ln&h%k8H;tX|0~x@A?>v&wi+Nri3=Ete%Nwok?s zIuKm!(2bhb%@>|0b{N-pazn~^6$1s))Kq1qb!9B)Pc_{!dN#&?)ynYnJDZ zI-r^2sDEix4bE)bpLNtDM0;Ku(k%05{tGZiOuYoAT!YC*s2QNY^XAVf&|eZMM5j7s zBONo^iYV<_U!;X$&_kJjTG?`^~*a z%sTwfYFR}^x7Br3W_86Z#kMUeY#V@v=Lt4iMl2dO)cS5~{@j9H\d+)/):null,s=a&&a.groups?.channel?Number(a.groups.channel):null;if(null===s)throw new k(e("error.camera_initialization_reolink"),this.getConfig());this._channel=s}getChannel(){return this._channel}getProxyConfig(){return{...super.getProxyConfig(),media:"auto"===this._config.proxy.media||this._config.proxy.media,ssl_verification:"auto"!==this._config.proxy.ssl_verification&&this._config.proxy.ssl_verification,ssl_ciphers:"auto"===this._config.proxy.ssl_ciphers?"intermediate":this._config.proxy.ssl_ciphers}}}class v{static isReolinkEventQueryResults(e){return e.engine===s.Reolink&&e.type===d.Event}}class E extends f{constructor(){super(...arguments),this._directoryCache=new a,this._fileCache=new a}getEngineType(){return s.Reolink}_reolinkFileMetadataGenerator(e,t,a){ +/* istanbul ignore next: This situation cannot happen as the directory would + be rejected by _reolinkDirectoryMetadataGenerator if there was no start date + -- @preserve */ +if(!a?._metadata?.startDate||t.media_class!==n)return null;const s=t.title.split(/ +/);if(2!==s.length)return null;const o=D(s[0],"HH:mm:ss",a._metadata.startDate);if(!i(o))return null;const c=s[1].match(/(?\d+):(?\d+):(?\d+)/),l=c?.groups?{hours:Number(c.groups.hours),minutes:Number(c.groups.minutes),seconds:Number(c.groups.seconds)}:null;return{cameraID:e,startDate:o,endDate:l?r(o,l):o}}_reolinkDirectoryMetadataGenerator(e,t){const a=D(t.title,"yyyy/M/d",new Date);return i(a)?{cameraID:e,startDate:o(a),endDate:x(a)}:null}async createCamera(e,t){const a=new b(t,this,{capabilities:new c({"favorite-events":!1,"favorite-recordings":!1,clips:!0,live:!0,menu:!0,recordings:!1,seek:!1,snapshots:!1,substream:!0,ptz:l(t)??void 0},{disable:t.capabilities?.disable,disableExcept:t.capabilities?.disable_except}),eventCallback:this._eventCallback});return await a.initialize({entityRegistryManager:this._entityRegistryManager,hass:e,stateWatcher:this._stateWatcher})}async _getMatchingDirectories(e,t,a,s){const n=t.getConfig(),i=t.getEntity(),r=i?.config_entry_id;return null!==t.getChannel()&&r?await this._browseMediaManager.walkBrowseMedias(e,[{targets:[`media-source://reolink/RES|${r}|${t.getChannel()}|`+("low"===n.reolink?.media_resolution?"sub":"main")],concurrency:1/0,metadataGenerator:(e,a)=>this._reolinkDirectoryMetadataGenerator(t.getID(),e),matcher:e=>e.can_expand&&C(e,a?.start,a?.end),sorter:e=>u(e)}],{...!1!==s?.useCache&&{cache:this._directoryCache}}):null}async getEvents(e,t,a,n){if(a.favorite||a.tags?.size||a.what?.size||a.where?.size||a.hasSnapshot)return null;const i=new Map,r=async r=>{const o={...a,cameraIDs:new Set([r])},c=n?.useCache??1?this._requestCache.get(o):null;if(c)return void i.set(o,c);const l=t.getCamera(r),h=l&&l instanceof b?await this._getMatchingDirectories(e,l,o,n):null,g=o.limit??M;let m=[];h?.length&&(m=await this._browseMediaManager.walkBrowseMedias(e,[{targets:h,concurrency:1,metadataGenerator:(e,t)=>this._reolinkFileMetadataGenerator(r,e,t),earlyExit:e=>e.length>=g,matcher:e=>!e.can_expand&&C(e,o.start,o.end),sorter:e=>u(e)}],{...!1!==n?.useCache&&{cache:this._fileCache}}));const _=p(m,(e=>e._metadata?.startDate),"desc").slice(0,g),y={type:d.Event,engine:s.Reolink,browseMedia:_};(n?.useCache??1)&&this._requestCache.set(o,{...y,cached:!0},y.expiry),i.set(o,y)};return await h(a.cameraIDs,(e=>r(e))),i}generateMediaFromEvents(e,t,a,s){return v.isReolinkEventQueryResults(s)?w(s.browseMedia):null}async getMediaMetadata(e,t,a,n){const i=new Map,o=n?.useCache??1?this._requestCache.get(a):null;if(o)return i.set(a,o),i;const c=new Set,l=async a=>{const s=t.getCamera(a);if(!(s&&s instanceof b))return;const i=await this._getMatchingDirectories(e,s,null,n);for(const e of i??[]) +/* istanbul ignore next: This situation cannot happen as the directory + will not match without metadata -- @preserve */ +e._metadata&&c.add(_(e._metadata?.startDate))};await h(a.cameraIDs,(e=>l(e)));const u={type:d.MediaMetadata,engine:s.Reolink,metadata:{...c.size&&{days:c}},expiry:r(new Date,{seconds:g}),cached:!1};return(n?.useCache??1)&&this._requestCache.set(a,{...u,cached:!0},u.expiry),i.set(a,u),i}getCameraMetadata(e,t){return{...super.getCameraMetadata(e,t),engineLogo:m}}getCameraEndpoints(e,t){const a=e.reolink?.url?{endpoint:e.reolink.url}:null;return{...super.getCameraEndpoints(e,t),...a&&{ui:a}}}}export{E as ReolinkCameraManagerEngine,v as ReolinkQueryResultsClassifier}; diff --git a/config/www/community/frigate-hass-card/engine-reolink-5d642010.js.gz b/config/www/community/frigate-hass-card/engine-reolink-5d642010.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..513f1b5d0454ea293b00705b9413359495d6952d GIT binary patch literal 2117 zcmV-L2)g$liwFqOQ&?vL|7C7xX>MgLa%FF9X>MyRHDoq4GB7bPE^2cCtypby+cpyZ zo?k(8ZZu>9QC9rYgf7jS+U~V8=iW8x%zf~ARES(ji1}6kw9Lxj~V z9)3JchJuw6yzB%k$_0$4(_{FMo*WJ3wCxXDh3UT*m$VtbKTeNM;AnXF_P!+)z*#ar znkLg@ntt3B${}TRoP0c-zCZl%UhgFt6~ei5;6dUI_(q%7EY16+W|NeKki1T0$vuA~ z>I%3Q1OesCI)_3EpI~f6FiTdnC?Jc9I?Gxrnj&#n!6c&@`x89yHymWm3x}>LlaAIC z>kz8zzoBO`Mb?P0QsgSudU)G%Wyp^=O~OU{a=C;cF&GFf>OFL>+E zy!d--^7(($cmBi=mE}Z4bTp#Dl9zQQ;=qc;zts609q%@}b#v&9Ej%?wQ6zl1;^o>Y zVC~#_;JLtg$%BOE!0FZlDp^^~IFuPH?p*8o668f$EZEZX{j=SmidJp*UfWRa$S8?_ z^YWqTbXchkK9-60QvsqO5xTUNrHi&(b$U0blw_bK9v@%YAwp!cdj#ErCE6vc>|n35 zr^2JrD}?kF39DAX#aB%o$i*%zByeq_1ULM;blY0g-*1G(I}x|ylX;n|dqmW)HSp#W zh&q#EfMW;@?bM?OR(>>sKsJ?HO9Oql(|y%5YVm4DrHq3TYA$H9f=EG%+N}l4V6dv* z{z_Z(8{WPJNN-r%VeLmecny+bDx?2U`GP7dfJj39&6~+v^j*?oUS|$l79|G+@`DVW z-|$vPFj?z2aS}vaDV-IqDkyYzUxCw`>#WN8C(! z7QT&-Ca*~$B9Z|nj|>7)WlVY#=iS6t#D0IE9yr6tma9GI%IMM)H;1>x{pqJL&qE=HV~sM_}+Zi7FQ>q+Vo1$Gll8$#w$KYqas-0CfPz=<*4mZpRQu3zYbyBDiF z=AP6B$kYqf?!>u`jgnDj+N_l5;hc~DCUGxIBL0?v8F zu(0c0WfyO-Q8*iLQdO^DSZ_xo9vg>^adWKj0@Enw6zfT_rrF&O+ht|b%?7cEYD9SR zyJ@}zk}!dAGO=8ke7gGl__qyj@z?H+?c?w7JU1)Xs@N5Qm5*&6!@O5!waUb?ix6=` zH>a#{{ab=wB{kIhd++iXECT^=mXjis2aUD|v0}4>_yeP!rBR zc;Rm_rP82d-s2+;BweC*fp}E2^@_^j3~S1Eis1Wf$+jmWGo1*oX@zhx*YoIn)8%~S z3MF0MF`3~rNbiQ<`YlPKV(VcXPvb7y*pv#XS5;WC6!h(5(wU&S%`o5MHc5PIO=b~k z@)h^VD#}J9EYgK4*9nvhXTAf`7nzcg5(8&?-DOk;8OxcBik-j>@>d04)ZRdma$vSXF;o{|#X>RT>LT5O+; zDYPfJ*r6LWt(zxCBeBD{u9NFi#;X`8h$dg*pDhsA<|sI*kHzuLt^a>&!uw9S`&qLr zbJPLN6i59_qpWdek|8zjsVjR>aV5{)fB3S6sn(4h?3fH!@^?-+`Zr2 zd&I26|16hfn73P9S4CQt%u;OIlEStDsCgD+qh-XxenYMAw&u?**i}wc1;d!uETs4a v+@h1}|4vs5NcI)1;U?3Y&r5PY*dNmTLVa4{M>}?FXK(%jL6b=U02BZKT`v?% literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/engine-reolink-72a91bc6.js b/config/www/community/frigate-hass-card/engine-reolink-72a91bc6.js new file mode 100644 index 00000000..fcd97707 --- /dev/null +++ b/config/www/community/frigate-hass-card/engine-reolink-72a91bc6.js @@ -0,0 +1,8 @@ +import{l as e,e4 as t,ec as a,e7 as s,eh as n,ed as i,dQ as r,d4 as o,e6 as c,e5 as l,ei as u,e9 as h,ea as d,ee as g,ej as m,dc as p,de as _}from"./card-c642ee74.js";import{B as y,a as f,i as C,g as w}from"./within-dates-cc65dfa5.js";import{C as M}from"./engine-86b0096c.js";import{p as D}from"./parse-a53fb39b.js";import{e as x}from"./endOfDay-97ae2cc7.js";import"./engine-generic-bb62ddef.js";import"./media-c9012082.js";class k extends t{}class b extends y{constructor(){super(...arguments),this._channel=null}async initialize(e){return await super.initialize(e),this._initializeChannel(),this}_initializeChannel(){const t=this._entity?.unique_id,a=t?String(t).match(/(.*)_(?\d+)/):null,s=a&&a.groups?.channel?Number(a.groups.channel):null;if(null===s)throw new k(e("error.camera_initialization_reolink"),this.getConfig());this._channel=s}getChannel(){return this._channel}getProxyConfig(){return{...super.getProxyConfig(),media:"auto"===this._config.proxy.media||this._config.proxy.media,ssl_verification:"auto"!==this._config.proxy.ssl_verification&&this._config.proxy.ssl_verification,ssl_ciphers:"auto"===this._config.proxy.ssl_ciphers?"intermediate":this._config.proxy.ssl_ciphers}}}class v{static isReolinkEventQueryResults(e){return e.engine===s.Reolink&&e.type===d.Event}}class E extends f{constructor(){super(...arguments),this._directoryCache=new a,this._fileCache=new a}getEngineType(){return s.Reolink}_reolinkFileMetadataGenerator(e,t,a){ +/* istanbul ignore next: This situation cannot happen as the directory would + be rejected by _reolinkDirectoryMetadataGenerator if there was no start date + -- @preserve */ +if(!a?._metadata?.startDate||t.media_class!==n)return null;const s=t.title.split(/ +/);if(2!==s.length)return null;const o=D(s[0],"HH:mm:ss",a._metadata.startDate);if(!i(o))return null;const c=s[1].match(/(?\d+):(?\d+):(?\d+)/),l=c?.groups?{hours:Number(c.groups.hours),minutes:Number(c.groups.minutes),seconds:Number(c.groups.seconds)}:null;return{cameraID:e,startDate:o,endDate:l?r(o,l):o}}_reolinkDirectoryMetadataGenerator(e,t){const a=D(t.title,"yyyy/M/d",new Date);return i(a)?{cameraID:e,startDate:o(a),endDate:x(a)}:null}async createCamera(e,t){const a=new b(t,this,{capabilities:new c({"favorite-events":!1,"favorite-recordings":!1,clips:!0,live:!0,menu:!0,recordings:!1,seek:!1,snapshots:!1,substream:!0,ptz:l(t)??void 0},{disable:t.capabilities?.disable,disableExcept:t.capabilities?.disable_except}),eventCallback:this._eventCallback});return await a.initialize({entityRegistryManager:this._entityRegistryManager,hass:e,stateWatcher:this._stateWatcher})}async _getMatchingDirectories(e,t,a,s){const n=t.getConfig(),i=t.getEntity(),r=i?.config_entry_id;return null!==t.getChannel()&&r?await this._browseMediaManager.walkBrowseMedias(e,[{targets:[`media-source://reolink/RES|${r}|${t.getChannel()}|`+("low"===n.reolink?.media_resolution?"sub":"main")],concurrency:1/0,metadataGenerator:(e,a)=>this._reolinkDirectoryMetadataGenerator(t.getID(),e),matcher:e=>e.can_expand&&C(e,a?.start,a?.end),sorter:e=>u(e)}],{...!1!==s?.useCache&&{cache:this._directoryCache}}):null}async getEvents(e,t,a,n){if(a.favorite||a.tags?.size||a.what?.size||a.where?.size||a.hasSnapshot)return null;const i=new Map,r=async r=>{const o={...a,cameraIDs:new Set([r])},c=n?.useCache??1?this._requestCache.get(o):null;if(c)return void i.set(o,c);const l=t.getCamera(r),h=l&&l instanceof b?await this._getMatchingDirectories(e,l,o,n):null,g=o.limit??M;let m=[];h?.length&&(m=await this._browseMediaManager.walkBrowseMedias(e,[{targets:h,concurrency:1,metadataGenerator:(e,t)=>this._reolinkFileMetadataGenerator(r,e,t),earlyExit:e=>e.length>=g,matcher:e=>!e.can_expand&&C(e,o.start,o.end),sorter:e=>u(e)}],{...!1!==n?.useCache&&{cache:this._fileCache}}));const _=p(m,(e=>e._metadata?.startDate),"desc").slice(0,g),y={type:d.Event,engine:s.Reolink,browseMedia:_};(n?.useCache??1)&&this._requestCache.set(o,{...y,cached:!0},y.expiry),i.set(o,y)};return await h(a.cameraIDs,(e=>r(e))),i}generateMediaFromEvents(e,t,a,s){return v.isReolinkEventQueryResults(s)?w(s.browseMedia):null}async getMediaMetadata(e,t,a,n){const i=new Map,o=n?.useCache??1?this._requestCache.get(a):null;if(o)return i.set(a,o),i;const c=new Set,l=async a=>{const s=t.getCamera(a);if(!(s&&s instanceof b))return;const i=await this._getMatchingDirectories(e,s,null,n);for(const e of i??[]) +/* istanbul ignore next: This situation cannot happen as the directory + will not match without metadata -- @preserve */ +e._metadata&&c.add(_(e._metadata?.startDate))};await h(a.cameraIDs,(e=>l(e)));const u={type:d.MediaMetadata,engine:s.Reolink,metadata:{...c.size&&{days:c}},expiry:r(new Date,{seconds:g}),cached:!1};return(n?.useCache??1)&&this._requestCache.set(a,{...u,cached:!0},u.expiry),i.set(a,u),i}getCameraMetadata(e,t){return{...super.getCameraMetadata(e,t),engineLogo:m}}getCameraEndpoints(e,t){const a=e.reolink?.url?{endpoint:e.reolink.url}:null;return{...super.getCameraEndpoints(e,t),...a&&{ui:a}}}}export{E as ReolinkCameraManagerEngine,v as ReolinkQueryResultsClassifier}; diff --git a/config/www/community/frigate-hass-card/engine-reolink-72a91bc6.js.gz b/config/www/community/frigate-hass-card/engine-reolink-72a91bc6.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..d8c7ee4ab3628bc64c4d5ee261e0ab479efcacec GIT binary patch literal 2115 zcmV-J2)y?niwFnMgLa%FF9X>MyRH!@*4F=AsjE^2cCtypbS<2Vxj zKEJ}au2S}l;s86tEM|?b7TDXZI__>~w(34`R92BYi3Z2^N;1J4{NJzjV#k3nL)9H0 z5RzK0?$+~kx8bX*6l#-uRC++*y&e?-rbkNPqaG!Jr5+0cnI1XGe$}HOnUOCEoam7e z_@Kv}0M}zp;8c%G0#uI~0np=uz!yEPNM`P-NM_cj?Oc>AKbkNqvN1b(e+=;Pee^~8 zXWW|kqZVt3(KaXMk_)oX!@4`W=4#1{aYhx$F=HnmvN`=Q)N!H3uRC!l7QBG*_b0Q% z!_yNs6s)x1WhYosAz@5Ed^ewccRCx&8QUMW3bTLCFKIJA{Yc@Mv5y1M?R^U69Nb~0#q#ukFF_Kp3xKS z2sl04wF|2;usiL(9c!JZ5_=Zy;i^fay5N7*Fy$GciAp~!!HY$p!e~VmTLzOLdK*rI z^ap41`G2x^;UtW;KMi44_Jlxwem zwRaal;DZpQh!|agpj!{9;$<-vQ0Bb2^PTGpP#0w}=Zhc=&vt_=Y;iNYBST@>E1&Dz}?9*D6KHBconcb+;l97>ke0*t#NSROX5p;9Tj7v`0!Cqxg zg-4@T2$?Gwua+R>S4|zrr9Lkd2xFoGKmNLO+d9 zI#+UlV~8y6^rJ^kel&teHI-h=B6GOYebqB+{%S^LT!0p8E+|_H>~Zj_7fhw21PNI(ZA_@LA4b?6rthf&Ezfmu4pl$1+XH=g^MfhXV#ZegOIHC|`QWheg39FNbn zLcDyf3q zw{~pJFv<>iP=ePa7_~4M_{2ug( z9Iy4bmD6Gp;LeN%t>m&)cCnserU1Iq@|F5C&asN6>3zvF@31ACj7vJpAy(1Q&NOoC z#En-E3@Y`K)D+Bii_y~VT+lq9QFiCD=FVE%2i{h3I;`LuTYW#l0&@tyFD>W-L_Dm_ zPxi3d->r~8@flEVw$_wYZ$Z+N9c)7Uqp6qSRj=LwUlr>zcMD^TqGO| zyV=!ti3S^mvjHb{^@@h|b~F;Hb=Vp=!wN4kjbcu5ohc)oy)v(LCQf~Xh#&ha z$_qcdCFm8ag@A%J@zF$M?Fq?ZG>nGHxpm~*oHSu zbfLAnl&k+h+F>fezS9cVST@^RqC1g;Bb`pMLzA|CjYdc@9OHc@uWiF2XZ0Hz!np@8 z!VRWW8g zq{}-tGkgXW+=$z-B`hhn9;WG0+C>|iQmM?U4l9;|zI|k!35MGo^DS-@7CLKkhe(^R zL`arNJ{n<>E_AtOP|m&C4n$vMN=`})ob7cNNg3sQ#Z{VKpXH#uRdRECwoF~M8;ych z^1tAIxr@jBXjD(pxW7daM2q4_pU9i52d*p#t)b`1Vu;Oy=in?IHp_28vv?7jeanTY z?4D(sRKbb_#*}@nM@ak(B=f^a=A1!rNERV!l8x>WW7i=P+eXHHuSN!8j;HNeunVTJ zYnylAWbvZiXo#^o!;;aGCc-Fi(O?pEB2C!t=I|vls0Xs~1uJnF;)!-)qi;?52|q=5 z=qLL&^FI1Y$1KBi9mr_l)KgMhK)L8`x&4%fUDbcOI<#MFO_Q{$; zdxFayx>4J@1#&c!JB;f(xjtpQih+_C@)hCP9C2-rf`|Hen%>-o|EDIr@07crHP3TT zA23Yu^uIL98fPx<&pPS>qDLbZ(JTw5!3!`)OuYoA+\d+)/):null,n=a&&a.groups?.channel?Number(a.groups.channel):null;if(null===n)throw new b(e("error.camera_initialization_reolink"),this.getConfig());this._channel=n}getChannel(){return this._channel}getProxyConfig(){return{...super.getProxyConfig(),media:"auto"===this._config.proxy.media||this._config.proxy.media,ssl_verification:"auto"!==this._config.proxy.ssl_verification&&this._config.proxy.ssl_verification,ssl_ciphers:"auto"===this._config.proxy.ssl_ciphers?"intermediate":this._config.proxy.ssl_ciphers}}}class v{static isReolinkEventQueryResults(e){return e.engine===n.Reolink&&e.type===d.Event}}class E extends f{constructor(){super(...arguments),this._cache=new a}getEngineType(){return n.Reolink}_reolinkFileMetadataGenerator(e,t,a){ +/* istanbul ignore next: This situation cannot happen as the directory would + be rejected by _reolinkDirectoryMetadataGenerator if there was no start date + -- @preserve */ +if(!a?._metadata?.startDate||t.media_class!==s)return null;const n=t.title.split(/ +/);if(2!==n.length)return null;const o=D(n[0],"HH:mm:ss",a._metadata.startDate);if(!i(o))return null;const c=n[1].match(/(?\d+):(?\d+):(?\d+)/),l=c?.groups?{hours:Number(c.groups.hours),minutes:Number(c.groups.minutes),seconds:Number(c.groups.seconds)}:null;return{cameraID:e,startDate:o,endDate:l?r(o,l):o}}_reolinkDirectoryMetadataGenerator(e,t){const a=D(t.title,"yyyy/M/d",new Date);return i(a)?{cameraID:e,startDate:o(a),endDate:k(a)}:null}_reolinkCameraMetadataGenerator(e){const t=e.media_content_id.match(/^media-source:\/\/reolink\/CAM\|(?.+)\|(?\d+)$/);return t?.groups?{configEntryID:t.groups.configEntryID,channel:Number(t.groups.channel)}:null}async createCamera(e,t){const a=new x(t,this,{capabilities:new c({"favorite-events":!1,"favorite-recordings":!1,clips:!0,live:!0,menu:!0,recordings:!1,seek:!1,snapshots:!1,substream:!0,ptz:l(t)??void 0},{disable:t.capabilities?.disable,disableExcept:t.capabilities?.disable_except}),eventCallback:this._eventCallback});return await a.initialize({entityRegistryManager:this._entityRegistryManager,hass:e,stateWatcher:this._stateWatcher})}async _getMatchingDirectories(e,t,a,n){const s=t.getConfig(),i=t.getEntity(),r=i?.config_entry_id;if(null===t.getChannel()||!r)return null;const o=await this._browseMediaManager.walkBrowseMedias(e,[{targets:["media-source://reolink"],metadataGenerator:(e,t)=>this._reolinkCameraMetadataGenerator(e),matcher:e=>e._metadata?.channel===t.getChannel()&&e._metadata?.configEntryID===r}],{...!1!==n?.useCache&&{cache:this._cache}});return o?.length?await this._browseMediaManager.walkBrowseMedias(e,[{targets:[`media-source://reolink/RES|${r}|${t.getChannel()}|`+("low"===s.reolink?.media_resolution?"sub":"main")],metadataGenerator:(e,a)=>this._reolinkDirectoryMetadataGenerator(t.getID(),e),matcher:e=>e.can_expand&&w(e,a?.start,a?.end),sorter:e=>u(e)}],{...!1!==n?.useCache&&{cache:this._cache}}):null}async getEvents(e,t,a,s){if(a.favorite||a.tags?.size||a.what?.size||a.where?.size||a.hasSnapshot)return null;const i=new Map,r=async r=>{const o={...a,cameraIDs:new Set([r])},c=s?.useCache??1?this._requestCache.get(o):null;if(c)return void i.set(o,c);const l=t.getCamera(r),h=l&&l instanceof x?await this._getMatchingDirectories(e,l,o,s):null,g=o.limit??M;let m=[];h?.length&&(m=await this._browseMediaManager.walkBrowseMedias(e,[{targets:h,concurrency:1,metadataGenerator:(e,t)=>this._reolinkFileMetadataGenerator(r,e,t),earlyExit:e=>e.length>=g,matcher:e=>!e.can_expand&&w(e,o.start,o.end),sorter:e=>u(e)}],{...!1!==s?.useCache&&{cache:this._cache}}));const p=_(m,(e=>e._metadata?.startDate),"desc").slice(0,g),y={type:d.Event,engine:n.Reolink,browseMedia:p};(s?.useCache??1)&&this._requestCache.set(o,{...y,cached:!0},y.expiry),i.set(o,y)};return await h(a.cameraIDs,(e=>r(e))),i}generateMediaFromEvents(e,t,a,n){return v.isReolinkEventQueryResults(n)?C(n.browseMedia):null}async getMediaMetadata(e,t,a,s){const i=new Map,o=s?.useCache??1?this._requestCache.get(a):null;if(o)return i.set(a,o),i;const c=new Set,l=async a=>{const n=t.getCamera(a);if(!(n&&n instanceof x))return;const i=await this._getMatchingDirectories(e,n,null,s);for(const e of i??[]) +/* istanbul ignore next: This situation cannot happen as the directory + will not match without metadata -- @preserve */ +e._metadata&&c.add(p(e._metadata?.startDate))};await h(a.cameraIDs,(e=>l(e)));const u={type:d.MediaMetadata,engine:n.Reolink,metadata:{...c.size&&{days:c}},expiry:r(new Date,{seconds:g}),cached:!1};return(s?.useCache??1)&&this._requestCache.set(a,{...u,cached:!0},u.expiry),i.set(a,u),i}getCameraMetadata(e,t){return{...super.getCameraMetadata(e,t),engineLogo:m}}getCameraEndpoints(e,t){const a=e.reolink?.url?{endpoint:e.reolink.url}:null;return{...super.getCameraEndpoints(e,t),...a&&{ui:a}}}}export{E as ReolinkCameraManagerEngine,v as ReolinkQueryResultsClassifier}; diff --git a/config/www/community/frigate-hass-card/engine-reolink-c0a1587c.js.gz b/config/www/community/frigate-hass-card/engine-reolink-c0a1587c.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..ac49fbe061a781c741f558e2ba07ede3e74ff617 GIT binary patch literal 2218 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 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/engine-reolink-ec1b4246.js b/config/www/community/frigate-hass-card/engine-reolink-ec1b4246.js new file mode 100644 index 00000000..b8f098fc --- /dev/null +++ b/config/www/community/frigate-hass-card/engine-reolink-ec1b4246.js @@ -0,0 +1,8 @@ +import{l as e,e4 as t,ec as a,e7 as s,eh as n,ed as i,dQ as r,d4 as o,e6 as c,e5 as l,ei as u,e9 as h,ea as d,ee as g,ej as m,dc as p,de as _}from"./card-7cd05290.js";import{B as y,a as f,i as C,g as w}from"./within-dates-2bb98b10.js";import{C as M}from"./engine-86b0096c.js";import{p as D}from"./parse-feacefaa.js";import{e as x}from"./endOfDay-0c5086cb.js";import"./engine-generic-96b32038.js";import"./media-c9012082.js";class k extends t{}class b extends y{constructor(){super(...arguments),this._channel=null}async initialize(e){return await super.initialize(e),this._initializeChannel(),this}_initializeChannel(){const t=this._entity?.unique_id,a=t?String(t).match(/(.*)_(?\d+)/):null,s=a&&a.groups?.channel?Number(a.groups.channel):null;if(null===s)throw new k(e("error.camera_initialization_reolink"),this.getConfig());this._channel=s}getChannel(){return this._channel}getProxyConfig(){return{...super.getProxyConfig(),media:"auto"===this._config.proxy.media||this._config.proxy.media,ssl_verification:"auto"!==this._config.proxy.ssl_verification&&this._config.proxy.ssl_verification,ssl_ciphers:"auto"===this._config.proxy.ssl_ciphers?"intermediate":this._config.proxy.ssl_ciphers}}}class v{static isReolinkEventQueryResults(e){return e.engine===s.Reolink&&e.type===d.Event}}class E extends f{constructor(){super(...arguments),this._directoryCache=new a,this._fileCache=new a}getEngineType(){return s.Reolink}_reolinkFileMetadataGenerator(e,t,a){ +/* istanbul ignore next: This situation cannot happen as the directory would + be rejected by _reolinkDirectoryMetadataGenerator if there was no start date + -- @preserve */ +if(!a?._metadata?.startDate||t.media_class!==n)return null;const s=t.title.split(/ +/);if(2!==s.length)return null;const o=D(s[0],"HH:mm:ss",a._metadata.startDate);if(!i(o))return null;const c=s[1].match(/(?\d+):(?\d+):(?\d+)/),l=c?.groups?{hours:Number(c.groups.hours),minutes:Number(c.groups.minutes),seconds:Number(c.groups.seconds)}:null;return{cameraID:e,startDate:o,endDate:l?r(o,l):o}}_reolinkDirectoryMetadataGenerator(e,t){const a=D(t.title,"yyyy/M/d",new Date);return i(a)?{cameraID:e,startDate:o(a),endDate:x(a)}:null}async createCamera(e,t){const a=new b(t,this,{capabilities:new c({"favorite-events":!1,"favorite-recordings":!1,clips:!0,live:!0,menu:!0,recordings:!1,seek:!1,snapshots:!1,substream:!0,ptz:l(t)??void 0},{disable:t.capabilities?.disable,disableExcept:t.capabilities?.disable_except}),eventCallback:this._eventCallback});return await a.initialize({entityRegistryManager:this._entityRegistryManager,hass:e,stateWatcher:this._stateWatcher})}async _getMatchingDirectories(e,t,a,s){const n=t.getConfig(),i=t.getEntity(),r=i?.config_entry_id;return null!==t.getChannel()&&r?await this._browseMediaManager.walkBrowseMedias(e,[{targets:[`media-source://reolink/RES|${r}|${t.getChannel()}|`+("low"===n.reolink?.media_resolution?"sub":"main")],concurrency:1/0,metadataGenerator:(e,a)=>this._reolinkDirectoryMetadataGenerator(t.getID(),e),matcher:e=>e.can_expand&&C(e,a?.start,a?.end),sorter:e=>u(e)}],{...!1!==s?.useCache&&{cache:this._directoryCache}}):null}async getEvents(e,t,a,n){if(a.favorite||a.tags?.size||a.what?.size||a.where?.size||a.hasSnapshot)return null;const i=new Map,r=async r=>{const o={...a,cameraIDs:new Set([r])},c=n?.useCache??1?this._requestCache.get(o):null;if(c)return void i.set(o,c);const l=t.getCamera(r),h=l&&l instanceof b?await this._getMatchingDirectories(e,l,o,n):null,g=o.limit??M;let m=[];h?.length&&(m=await this._browseMediaManager.walkBrowseMedias(e,[{targets:h,concurrency:1,metadataGenerator:(e,t)=>this._reolinkFileMetadataGenerator(r,e,t),earlyExit:e=>e.length>=g,matcher:e=>!e.can_expand&&C(e,o.start,o.end),sorter:e=>u(e)}],{...!1!==n?.useCache&&{cache:this._fileCache}}));const _=p(m,(e=>e._metadata?.startDate),"desc").slice(0,g),y={type:d.Event,engine:s.Reolink,browseMedia:_};(n?.useCache??1)&&this._requestCache.set(o,{...y,cached:!0},y.expiry),i.set(o,y)};return await h(a.cameraIDs,(e=>r(e))),i}generateMediaFromEvents(e,t,a,s){return v.isReolinkEventQueryResults(s)?w(s.browseMedia):null}async getMediaMetadata(e,t,a,n){const i=new Map,o=n?.useCache??1?this._requestCache.get(a):null;if(o)return i.set(a,o),i;const c=new Set,l=async a=>{const s=t.getCamera(a);if(!(s&&s instanceof b))return;const i=await this._getMatchingDirectories(e,s,null,n);for(const e of i??[]) +/* istanbul ignore next: This situation cannot happen as the directory + will not match without metadata -- @preserve */ +e._metadata&&c.add(_(e._metadata?.startDate))};await h(a.cameraIDs,(e=>l(e)));const u={type:d.MediaMetadata,engine:s.Reolink,metadata:{...c.size&&{days:c}},expiry:r(new Date,{seconds:g}),cached:!1};return(n?.useCache??1)&&this._requestCache.set(a,{...u,cached:!0},u.expiry),i.set(a,u),i}getCameraMetadata(e,t){return{...super.getCameraMetadata(e,t),engineLogo:m}}getCameraEndpoints(e,t){const a=e.reolink?.url?{endpoint:e.reolink.url}:null;return{...super.getCameraEndpoints(e,t),...a&&{ui:a}}}}export{E as ReolinkCameraManagerEngine,v as ReolinkQueryResultsClassifier}; diff --git a/config/www/community/frigate-hass-card/engine-reolink-ec1b4246.js.gz b/config/www/community/frigate-hass-card/engine-reolink-ec1b4246.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..7300b731e0f7d0215f556417f48315320e7abd09 GIT binary patch literal 2115 zcmV-J2)y?niwFpA_*Q2E|7C7xX>MgLa%FF9X>MyRWn(d7G%_?cE^2cCtypby+qe<_ zo?k(8IvO&8DB0KeV)__%&i3_grfz%5&Gduo(Lvx!Ld>@Upk+{=e>j~_ zr)Q^ZC|GO3%TBPSLc(|fl)-}1p`5Y(VW%+r$KsN1##8ow`r(w#2co}+~`GW~F3_E=7(^zJ-(P5t zg9xH1qGH(;P%0S`jE#(DY(>iw@}z9?yrpteGLM&Bahmf#Ab@ZyKsBQD=$dln89mXS zfYY;EyRaGqyVD-pvDSGiv1id9t~P1Zl>9#p%y>pFg zdf0S2oYWQ{%SQXD05On=ecGtXN86n`vm4b~GBOg6k1y>IDf8Jqf^NZ?amgt=I;iZa z@M!c3A#(-e^$LXis;L9H)aRuFVN6uu$6uFjTZj7ltyFj?;#PjLFLQN|i2AhwvH1kD z$(0=77$QqM{pgXCAB`YVn_91BkvZJyzUmpZcr~LkE~Zj_7fhw21PNI(ZA|^LA4b?6rthv&Ezfmu4p-La*r>|N&o`+LB-y0 zc&jJ5YRsE>3=vl;Z$;}GN|W7J;PvKu>#E7KH=g^MgD2n%ZegOIZ@kWu%TD~6IUZkV zg?RZ|7l_J3lZ5hg_U)C9$KGFR0TRSLcyA|fkby@ujb?>YmPY2#C7wa}TC~p0Qy@0W z(8b4)*QOAes0fos4w0;Lu7Zj8ZW3x@pB(82&hfF;>cF`wxeVmZ^p^NP{~Q-ZETvEA z&W@cKM%fV$s_=jomdKmq+de;~Kdh=oNRyaioE5xmu=MnE33x1%E^(1OVQH7Kw&rB) z@)hgym03l`TSd>d-Firz=4S$KJ#1~lbE(CqwO=k{AibY4R_-!0f90tNDuPL}YTIu= zyGCJ`&?!dMy$A6(_%pelWIoYgx3P2~ybRN5^Ehi2hX~!-``!Sk7x1A5BTl??I2q z@kWn3IV~mu?#x)yTCOT(7n?a|3ZR9Suhk!Mj#Vs8?<<~p)0S*AF6lgnSVcoS)5xt8 zH(ot3sMSkSGcemNMoYVMLGyf0*`3RpduweUcw5Eku!3)G_5B1(%pv%`w4_TA@vt&K z*&{3DqkS|5|I*m+<%dgc=pJo`Y3^FDVbD4pp(i$d5!tR zW>?!KHrObf4>+l-S2V1*qmf9h!`8StR(OeN6myF6BwEw_?#JD-w&`YzSVT24zWLoY zUlK{kAf8Md7bc&sK0p3xD_Z=ue`EXj`@6u;tFM{VKhuWT1URkNn_S8ml!o{&GG->PCXoM8QF+NoC+BO_=R==SkoO|#x z++s?lQOCT;M;a-*MC}sssAuaHRl^z9l-(4;_t}x{Kt|>!5nR(6;bN~B$;WM%^R+9K zba}^ShR>ja8*v-9geB$9!!$ikyJ%xmDwSE)VZ~C=w~wqd!El>nzQt|ALT63x5NY$3 z2+1nRM9w_J$I z?pbC@9TX%mrW|TLLgHs2nIA?n=L~`=S%zejY;}(qyAF}qHZtyeH8KcuJZsN`eK3Vx z+q?%Six=(2h8U|eEEz4?L>L7wHkbsR$R=#}bNC7w)C1Z0f|WQ7@kG0{(YL1jgrA~& z^pky?c^`eHW0qmM4rDZN>M5x$pj`BJ+XodbJ62U4tE~5wROnXUayims`(#a_ zJ;CK3-KcHd0y!GVJ;rsNT%R&t#Xw06`O5Hofw;Cu!9#sKO>b_)|5Fp*cgo$*n&-Kv z4;ZF+`d=DVgEJTRXC3tb(W4QIXqE-D;02f?rd|S5ZouRs)b!Bbd-LZM=q`yhqM1qA zNXLwBWX#%@SWw3z=o&(@?Hbo5_Awm+jytHonnKi2s2NhIc|svd8p{m_k0EdmesdoX za}NKlT2^t tPU`S8#^gOm9Cg$^Bq|Nb?K*X@wu{*sYzv`7fT)Wpn@(001hn7i<6k literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/frigate-hass-card.js b/config/www/community/frigate-hass-card/frigate-hass-card.js index 764fd995..2de29fba 100644 --- a/config/www/community/frigate-hass-card/frigate-hass-card.js +++ b/config/www/community/frigate-hass-card/frigate-hass-card.js @@ -1 +1 @@ -import"./card-555679fd.js"; +import"./card-320adb66.js"; diff --git a/config/www/community/frigate-hass-card/frigate-hass-card.js.gz b/config/www/community/frigate-hass-card/frigate-hass-card.js.gz index c33a8011f41065e821c5533551608a1c59e76984..ecbc7fea433bd0e5f701e04a8da858b98c289062 100644 GIT binary patch delta 38 ucmZ>D<&f{@;E-)fOrOZ1CT?cr;p1s!eEGCi*rsPp3@hh2*U2z2FaQ9~k_!$1 delta 38 ucmZ>D<&f{@;Ak%5O`FJ}CT?nKYP{XY`{HS>uuadH7(CkN6v{9#FaQA6#0yyf diff --git a/config/www/community/frigate-hass-card/frigate-hass-card.zip b/config/www/community/frigate-hass-card/frigate-hass-card.zip index 0475a05ac13d939388822b02e1fcb58429dbcd18..f38ad2ef7ae2c3004a08c81adb82937e32678335 100644 GIT binary patch literal 518992 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
-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

wWJw1Mm9&8l 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

5M<=M$w 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

  • &B5GsHCn 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 z zR-2T)746-5muD=GcMhu&Kw#>jVUg}7<%rF+IjVy@@=>2dcIVDC`gX16EmVxRe#jdm zw6eRJkueZZbZ0&(_*%^mM@ON>5N&KwXs5uBeGE~a3$I#qOGqixC2Q*7wz2m-U$^XI zW`A3cfI-PCR^H_+P1&C5uWnCirmZhKN;9MFM$%s`hJQ6f`pTbiJ=rJr8Cmf=cd7@Z zTYDKgd+uL2*LQ%sr#Cm5Y5sav+pD`?yAn#}kWrX^z&cIM8gVWyKN@^M)MlB6m5+pV z+$-S+%{*11hubT<$yA4L^Rb+o3SZagx8-!t0TuaNCUkB|c}&?)TQAz;i7Y2Z8u#x( zjsz}o(Cjc#(7LpX@<9zt!}mk-B$9C^pm8IYD(if13ndfRu#Pw8o0U-2bGel*)hn}j zxNct>hLXhwA^yZbxKiz8A~Dkg46^P#Pw*~&;M0op6q{R5vFZ@u>9_qR7VJ0Cery1g zPY`E7#fmdcQ!@neU4)#hP9yS3al zAWLxa9!*Rxs+-WC{{4#1e=Q_emokW z=4`?laHE24Ppr0*%yK-U+CcBfzNTAGqPAN_*{t*FMv|vNStVeA+*?nXhU!%^T}^Ln zU!gu7@7@Vsi^v*Q}R6ii9hJ5pZ02k$KYBQKS8&@b%tuv>*}OUckZm_Ac_eh6{k)nZc~d z@4_#zh|60Jech^B+*;ZUvNHcndQ?hGoP}FSgrQw;3`H&>1trMSGpI)}Ya$=!Xv%YkLQp z`3DN45*9!zbPE8Wyxhr|3IO4g@?r^;X3?0m1wpHH|09S2K8JPJ$voDcTy*G2d!wy_ zuhFlnojCs%$3qKHUV!Ovp; z20Sq!s9P+62n%pW_yNd43wePp< zWtF|l%T*m;8;-!`;0;f>5#DpYTufg_L|O>a!5X2-=0!|nc=E}ouuX~B>tYo{TF5Ph z12X*+yJOM$JQh^>5fIv59rcHd2 z37sZ1iF7Wt=D1GgQ-r#3LQ|Bc)?Ws~($|eFZj&gma}x$&);XV=A3gLRWK%f!{9vcp z5vc?q@exu@8ei0=LxE5P4?D?el_-LU&#r1!e^8?~iGXd|DNd7kcSrWx;CTWNUW!-z zpMLI&djSWVZbM`Uk*OUEZ}Kd~Plzd2zjN17OEDdc?`Cm^Rxj+)ogOmF>OwyQ7cCPvTFaM)=EmV$%Xrn11<_`t>tf>SY#rBQMA1 zC-uuMg?l5yB*3qq^iM2kE~mSiTGC_$sj=CxP?;G?!K7wi?QmI?6gx$vB*ew>lFM~2 zhlyfkWgJgjo}?M*Tfmqor005h@ax_IGK-<&VC`0{s%FK$s@T!#y#uRm>xvoVG4*bZ z1{>_Sj;#15mp}2UnL$bg@H2+>)VWs0D11X ztWpD6YS1&t1sHee9XJg(FlGP)S4S=xcdh_mP%i+=)@tmYGS-1xfRcB91OZ-lF8ktN&w?G>hTfSvuyRGeh{4b&8%? z*z`f7CfcS>QOhiUcN<}ozxa;ACK}1E;-*dVA!igD+BGh8S@1teQp6+w&z2R@82@u5 z8a$j$G7T>Azg?=qpwT6Hpxi%1QenJaSS@ej`dtZxfw-NPB*NI#nq5Y=$hVE#9*$Eq@1F|491jc3OB~vr&0@40gT=EBrOLk=9C%yk=JbdVYkhB(npFbJDiSzzYk&#_i+Lic77$a1hhb#1QTN&k}fVy zvVU$_V74wPwJA}LLIkTw+%(3Rq;c@Jj$UIJ*XU`T7-3`Lz5jXsJcIvDfF@m(6@1TT zBlsU&3dC7Hu{p}{T55~EOBXpCcQBL5t-r04Ooq6SI6)si(mTfBwqf+7mUaVC5n)vF z*R^a}rc<+038o+=->`9Y&QOCI+5+nS^evmdLoL}7rwViuT9^ct{!C;tJU&i~tK(zK zl=2B{!K}{Dvzl#)s3GaXCW0xCCf+9ZjV8&bOdvi2s1%fBl7i}g+yjNh!T1D1{ilMq z%A-kbv{pfDxUJM&Wqi_7(nO!<*6TH20in!=u<|kbUd?x0l_*awf&(h?oufSO z1%Eyb`dJ_Ms)EDub$QCR+cktl zWvoB#RlSd16a-#-d}8-za9txEk1!B?)NlG91;f2ZXjKMjH%U)}LJC#cX_jM17655Ii)WWhnp(VP3|@q3d7E9;y)q2@Q0|qieHir9{zpf~ zywt4ZZX402P>lcx2lztGH*q43$!AlR*Z{r@@E6dprsDZyAhfcymvdOs~V`94=1bH$-#269JwYxrUBs0>y)7J} z1A;^)f;2U2dlgH6k5G1S9=#Q=NJLWY#sn=`j6rt#YZvG1GFy> zl26bCTz)>(IlB!ea0YWhbjB(0>3h^CN&v-CKO^}_+Qhy_Yi<-pfn^QLO_i~SxHQK4 z`ShcqHAkMJSqCTiQTLz$KR7J_+0445S)G|fvyN&8N43=^Mq`Xjr25gHPi4F@2ff7- zEqv535WVuTmQdz{BBGHA)Bu|&eq5WR*-whbr6 z)`dMIb#vfl0+;L}jAl5@1!|wx^CruSr=m?5EacV?XEcfhbS#I>qs7xWlcA%p%`wJR zgd>d8NRE#}8pzSbrLtbJH=d&b2SBNuEKm%D*OUR?|0n{vumPU8pr7{xL80y?d)JV% z(dC_O*^uFb3?vu*B-q;vCh!;i;Pr!;T3Y*Cf=ZcPDeDK_9gE_sYdfaPAfu=*Mq|Mm zyO#R>eV(SZSccgNnUXTb&Cl?DKvEi!MDJejA3=E2`^O>va|HiHfdtVYymyZ0-z*zZ zTC^9a`_K;#tjx|AiO}Pg`m-uZ4d-W0zS;=9U5S*E25Gz^iEaQEgnaN|tRO5Je563yh91NO~cf7`K|>n&Vc@3<$rpderpt0kFy_+v3jxKBw3(HVc0TWB3LC#4=5} zkTEj*%fWH!X*8hr~N;sTCd!f(F* zqwnA+-S^Q8O&Uj!;J3KUqi^a2$BnwQ(SS z1uPjQ$$NYaltfJA#5$7j6kl`y@e9;N-`En+zVy6(&2x?4)FS1{szO!~I1vK;$$e{R|9V*!KX9;V3%?liV+u4$5sxX(b5Kc&AislYKUe-oq zux{yMfovo6?ps!Wt7s;ZL(SKxIR0JcIS1bSSKOjo)Ja!O$wA}oCBY|}rdedKNSb2L z2EDVsDZj6sDl_ZV!`was*7zlqk*^2wbvm2vw09(S*`=iM2C{o`2DI&^E#K<9RM2~B zlr^^(Rrw8o!@1eZcnZP;g$Z zsvU~G&$72O*!}G#cPoYM?J^BG2lE}uU1jMmv+&_KKVrK`|M}lN`VZeDKf)CU&X1$X zew5$f_#QECE^ReyjAK1fh^&^q!335(ew)GnJrIz+$65-;+Lym{TadKV>`vYHd( zBv?ivYXitBuHpdx=_DT(WpU0Xh~HINUGqg}><+)FLPM9iO|0-bXj)ZWM)F(jr+iQUS33l!!FE;lAN0%YY++@SGMQ4WedEpSN z_*&6%9@|cvIt%jiMrZa*LO9)-IJ>UwR{~viWXnk48~ff|!iY!RS>^=?7=jc2{)v#@ zb(LkL*^#H7yX0BfdJ*vny2X8^i<&1`yAQDez~c$WDKIbJTa1*O`O>6OTA3!1>1O^2 zH~VWwPgYh#+)XR#_3DJ3LfCmi84>8C^iojNTMt$1Nd>!6<*9dj zI|(tE>FXw6W;>DkXE~g;r{xMZiUL>sE_VYuJ@bzlUm9Y5Z&*jSyH*>ud|p^zlqtIA z;3w%fo6EAZ*Ue=_ID+Tssm-@@-b$uVM298iRLR1V2SEolT8=(dSBJrAx(p(A`xymA zS!BV{8UsWlHEW>#E$idIXvMHxHJkW)=hiwv0A&e}7~?nuK_}cc+46&>7!=FWBsy4+ zz)#yPtL!YR{$7?B_740CDQ%2}sejF`%nf1Jy|5eUqTwIX_ZR#WPJH1P?i1F2UgZMO z8H2!#mq-t|X}MkQvW7LB<#ngzOUUGJLtfn`^;Ml*pD)T2B#>C{1q(pRRWL&`t%!u7 z#!*`ecF6D=1;_>A+91;efB&_DlTR%mw*`Oly8MxU%}_EZ#DW2`fLM)KMqFlMGNGqg zUWvXt5ToS}9&WI1vzvzj?hxXz{1P2^!(a0CRl`OK z*G`I)fsGJ+87#hFCg@k2Avm}{wi$uLgHbe!#v}OesLcr+j*VPJ^qZ-ILWk}&@y#Cw zrG5Arls}+GkkAeSgNDWrNif4iOfuR2RKzhPw~4gF;H0Eu!p0}?12vPxln$L#3!Oo8 z2H^#V!KJ3KfI~xxQYPhuNkkOMADR@R1I7dpwnaBMOxwEnFyM;sy2HuZmz=oO_%b`Z zKf=BE0{@3Qa@2i2VORph_=oKNGawDFKzh%N3^gZMHogi1Xz|a1#_=#niP>+1(G}i4 z{CIr-<4?0O0#BrWA1Ne$*v_(XIoda_=_Tnoy2DxEf(QRIqW=MTH$5rDq-?{GV`J*o$1t>M(qR*dW*R4X&KZAx- zxE{nO_M-;FpBMS8z|$s1GyY=y#b-F|a(13oGV$3LH2nn@tg}@1a4>p&@aPd?^{j4G z>cQua4-OE2>VnTce|-Nlo+GJ!o}&N;(w~0<|Ht!?Wj{W6^7P{aHE-R>$4?%A{245W zxk#Uko{gTuaI5kvU5L?sGXC_7XJd@Pon={%^-xqRnpFMg01VIZQM4KvG(b|0WoZ-zH zJ|;f>1o3-SB6<5ipNpfnTvbcFb|?Xl1Pz_O`NW8UeJ)OnJ{q5Y_T<^K$8ru<^7BW0 zIN#+!z%`io=-}})u{{-1x&QO|W9}bQF4A+n6+|lTcnt*1B0H(d_cYeWpWGjREZ{?f z+~?09Klxk&zD)dL^z0d~EH9v%-4`E!HhTIwH=#!L1)zwh(C!j0UR57j{X!HhtJ8Uo zgZ<(QfcqzS?IVI$MIZ55sNqg4aP*Hx_YV#bFNtwKx_|KK;E_a3w2Xil;Qz#!#fm+8 z`tp9);XT~O-t=LonsI1}_AJ%9F$;DDChI7N>~Pd<4H8O!qhOhNQxID**r8PJd? zRZdtJ&i}!I*o^aXG0Tbyuc!Zc{Q2jfj?{5elYji^{(W4fs;sZ%%y8j97ijVAJbjyE z+SA9MeTsXRFW};XgeN2XKiM9yI&c1y&&KyZzt6`vEkxSW`%mt}8ZWbIMW3JF{}|8h zygV(5ISc;h>A|O8jA4ci;mD_eGd_Q!w;z}H>Bsngyl7^JPe1=`^u@<)c+wC+0AhKL z0HLP&^btS^?t-x*aN_SD;Q6ZZi<*wj(ZCW(>zgC$l_vqQJi! z$TM8X^-<>vvL8J?Ks+}?T^dYz`usjtU{FEiiHPZJbvm!}RHV>ltk9H9L0Vy%7jG$P z{0Tx>No1L9>XZ9KbO0IFl$7x4$De$L3*D${pMHT?pV}@U3hs|2`k@C5O#GbCJRfwhsALBbQfW8jQk0k)87c-;fVSDu&@^Uo377QppFXZhKg zSf}T7C&Nt-Ypf@PZ~{#h3>EnKNMd+Sc&--HN__^Y`Ma{Z65r290>b6@^I$E^3chv> z)swL_{6k~ySI7rRn~`&NVM<0RoFapPl+`RR@NF)+zKqA8d@{TrUGZOG%v2=@pMP<8 z_{kTd9$Gjg*A?)L_oH+A_k{jUU1GpT!`SrEQf!xy}on{#6`_E(&ciI z8FI)qX1?KflNlM;IPnxEXUR>zFoBTDL0ig@TrnH3P zR2eN;u8z=*k_)dA+J?y#xk8$=p>5b#)Sxo7Lnq<+uQ*Ql^}RJyVg97Wi2F)Cy=_$e zToghJ?(AZTCIC&j2W{@9H5;sa2RCc=O zB<52__jdcT)PvDBqDhJ{BE{gVa+ueuARD!*^dHdh;nkOqDMvbyu2&~8?A|A#{54Xc z>jw8ja!cFvfWd}d@t9?Yqa!$H*^C-CRsh)$Yva^3Fjk*~Y^zV1HVvAgW>UA`%K)}qZ}g-s66vBlvDk6$%sSw8TSr(yEb3@hvF-1<6^-5P1>6#k2Y z@o*Gy_YHO5Q1=aWpHaM0!-%p4(o#8{pm%Qx*qVX5nP(i!0fRDmC)mpzT(L;WLA)nY}*7XTq=3x@kd>wK-GaQ$k|WRspo)iGkOs0FAtv z18vJ#eGf>SMw}lwIM~^6IK&{^Ev&pRteV@~==!@4O&X>VVHBVYV4FAPSFeA-5DgKY zbVLnNksRD5ZSL=0$j}DW-F#Tf=uj;ZYIxZ%xdvQQy#mV4RlKNn;VW7Aw5&zpi5?!W zI1B2_%JiF94~F;eb{6Ci5o82wcthxJ61^N$JG97hd80`OGI(RYU8biwMToi9?G4kU zxrgrp+aL-WcuWsqMON23aDuf#y4A{<8g7~XI6=p@@3>RF$xxl|m25bV;8eqZ@8E_R zrinRJ6GC#|h?S3fIRm4*cf=-0<%zq@PtxLDN*0~uROS*+!2$Z%vAx4-ioQ@NP!svR z_dq?C?}0#l2Wer|pv!P>-)PxE&I1?VRpMw&b);U>teGOYSQ>3P!6JJL@&(oi7vU^RDmwMh34t<6+>T5R{li`+TD zQ_A*?aa)hvZdZQ>j^}%#+4(ZK9l~$6ApB+%!f!Sp{H7b>HyaTC_VwUte%P(RUNCt* zHwI%+E^ST)T0sR0nRW&P`B5C@lX79?EYlfk!{G@h+6OQha4KKDdHHn`5Vsejg>$us zV(U7q_GV?qQi+;byFDzrCt#{;DJ-ZGj_Mr1^Bvp3Li;gOR<8Y#5f=t?bfP#HmVdcyP=!Bug*kB!+o^!7e+a&8QBQYslXCRPe zA#$^*(LW>yUIKoX?p>PS^>fSF)-c>E#!y6-yvR`Ox?m@OJJEYa`PKzNskAFx%+rTC zlI}uqf>3ca(PA*|dXId@C`s7W?n5_3PjU&5dJ@qNsTu{U3=5iV;!nO7CDtts% z>A7-0zRcl1R$t=H7hif_l$-fK@o0=8U;}D|8JwPQy%Fz^)?xIhG+&q_3d76*irUYT zgY9v+WV2bg(1Ql8S#DQlnHKCc{`U2-)CW|9mETfp?R)#7htRQ#+AGx;Zp%3Tep1x` zG^QG(#(cOGRe3MmMVeaeBu#A`X=)uQ$%{|bWO)B>9bMs{N-3HQKl$QrP2)?Wxqf`P z_wlErXpxNR?+pHOal;o7WRNc(OerCyd?1RH=-_9k*P8j=LW}1&ztvFD)Ou1V?k=M8 z?hIqWHjZ?-7xYshuuO%VGDYzu3P7nStyne~-j8zp=O8*@QAJh0&DuidG1dFcqGj2E zQf5&)I~2@83&7=8uI+TcCf??Q3&rmOxq zUQzxsS%?D{U3}0}+{JL7tfGryoh+%rGwb9)F6P01@50I1hR3+G|2|>R6ULgA|NiNT zQUgavsQ{9zWu=8i5`~$tZ$!t2qFJe}CIVfhsEGIkX>=&3Gzo-5Jw*hGb;y4;v<;T! zaK^Iou#WqBYRao$DoezG=?Tn%9of>^h2c-CeDyViu4P!ZRCfo*Y;pM==Jmuyj^2~~s%++ZiBRcDGm&ajt|wW4 z@!>zq90QljTH5Qa>IR1|A{H5XQ0Qk?=t4<}QLhy$ z_3tn;s`60XdTIjv!>XYn%&nz!tYTJe0mU3lKz{Kngy9iaF3;3EEP#8c92$1ux<=Pb zSlMNwiDJ6|jYkPLWS$salJWI@j3ipY8l^AI^Pm(q>{HSh3RF&$a+tEo$kqXB?Vr+t z(i`e6C-sixD`#jtc-kHMG26so5bPC#1snmvu|J;J{?L6$BlM>F{HFK(h!gvXeA_$i z0nO86ckOwSiwHi)FpU|kJDskcw{!H7jsF1cj7YZ2buK>JW6+8+yN z@xJi^_&prS&=wczTk>bu!y)OUud;LoJh8-JyN?i96ZCL8(M^dcA+n|As-B}74gbBi z5abS$B2l#cAjYGiDGo%Tz`5w!vH($#9sBa*0Q!P;F9+!{6#c_mqwvL>l9kXEyHvac zWI}lR#o0GmHp^zX00NS)Kd@_GC7CmT!hT z9hhYk%!rhYwC3!v6Gw_`$uChY#-M4}&n4^MX`BJOxh#y=u+M_qKof&WW(<3e08q zNr);UIL1hy;0$s7zKQEIcGqntgd3e*Zw7R}D^ZPKyxyYgYq&C#q=bHQ6%{TCR6saX zP}9pwRc4UnC>jue=m~j)w=Zxp04Hcbf<0w8xFIOd`t{JxE4L1|>&x(KiM!fO*xp zZ*g`HD#Et5YTnyYGlI4s)_3k8DAwEn%){4pdg*T<72uVz0f+o#Gn(1fO_<$o6S!J5 z6TNV(jh^U~l>tr}I#Vxn%8CYTo+^M9t?9fF0XIs0Z}07f)k(t`0-lt!~~ z5@4*AxuD}rj`47LgpU4|klW5m76MlT7qD9Lbv=)kp*S{@TC;D>Hj5N)QMzJ0-U_VR zxncay=V(|-fujiXfT{!PB~OQHJ0?f?l9xec1}Joao>I_DiYR!?f$Yt(ZeX?rTlzsw z1#62dd!ksNo%9&&Iy-mG6$gsU3p%I@Z!cXW2#_ah6KrGz01YRGa7e_yXcJu~#0r_w z14q!Z8(jwX&&)^tQ#+)By@^LqrF_&(?gKNMz->#u`pMW8AidXSM;N=|`%mWiB=x zSVd{cj=G)>CZ44+1mO++F$Cwnk|>4eSm+;*xTpfRlX7;|=IxyI?Of8NWgXTz2Jr}= z;A`;s{%GX3YHdJAyAE7JL!U!KYewf!Fl^aLc_|4YHdNhq&lZAiITf{oXm=vks)N6Q zYHT8tl3k@zrLx~AYVc|;d0oU$<9y=bUH(RCB4rA?%Yu`4pQ z{s1zyR%Gg%?6P@*%l=_IgsnBiM^0T*n9;IV0f86Mn*&g7`}U(z8s51h z-<_0y2aE(MpFzyT)MuvOAv~9U6s*NcqdCgH{STF7g)fBOz?jr>0U90enMILvny@>M z(CkknMoly~9=_c7wKUY{M`LieR_j5?tfp>erO7*z5=fp0}jpNA&7mZ~Q$(WM`B=20NZp-{kGWp;VNcG(uSXW*lX z_tQl~7&%a?CA9z`yt%1aZs1+TESg*9K)+j;+@}mcnDM*j449=obn^h5;(N4F=c)nl z<`oV^3T5lH1y}-~wjXQ{M@MjWSPvVw1-`}Wq5tNK@Xlj;>K4>a?Csd>$PscznEwIY zsF@H3%iS5oMBb6mNx6MZyTTC|L&%Mva8Nb=IR(?jfZy;^G5PzXQB29lNu2G$YD z=m`2L5RiC>?$aR6o8;#@G!!&mU%^6O3Kfkfy4SsnRZU77=wvCI?Y+;NIk~ODN=Rd* zXpGDF-M&V1fVTZbNq=+S6(-}z7ZZS6RQ+26O#y6-6=Lqr9f@Y&r&ZDW2U92Z1!G0 z`pdVkAZLMc>fuM>ga<3w9BFCoYBbsI(z`rsx7|`J$J6A8T7Id}Q}fam7~&m_&H$g; zPHtTFCs<7=NYc5VUcUy4uwlpUz-?dFwWC-8SKfYcb5j`c+lyhS>jHQ?xwQw`uRUMqGOTZ1ex%hQ}D1&JJt_>ZoVjgggD1z}Z(-WW1&3*JIWM`dnR zNOIaONokK!2y1xba=5judeZsewHSKNye3brzT^eX&AKS3s zvy#PF!)ep2!`PQK?bYUe5=6GeHLOF7u((gMsk$u>h5~EJBkfg8W|YWzeVx}0zEGgZ z7^8dBt=|B<4$%JW9rP^tvOMEP{L{1sqxBdsmVnDm1q&oF5(>F0+lk;m?4stBCH{;A z2@+oezTurH%;hf6&P4LrnY9g2jWh6sGnh$-*i+ z(_xwX6;9b~2$01}HLsKWb@T(Hs6h$ezN5Fc5CiAX#rGXXRLCkq2h*P0$dYrB;j)@} z3JLyhMGd53tQs%LKx;#d)zT{e{gO(DacfMJeT()f`xY~x?2ge`9Mbc=k@T!UWUwtv zSqBkI;Dq+^eo|_H;wQ<{X$9_$(s$vb_`@xWY?*9Uy?mqL98gS7G9Ye42ijXaaf-99 zA6*hCfM7;gUd37B?Re^Z#|72L!V^|Dc-6|L0WgL~qi zd{1Z;p!5-nNqniAz) z#&3QC32Nn6|i1Dh_;k@oZg|Bc~a-2T7iXj&5MyIhUj*kt-9|EguJ z3=%bUkVPAS!XP6=z_S`VuT_qh&pvBZ3N$f++u5~>VPDN^A`#P5e}|9g zTG%k~(#|k9&LEQPwK0xwMssHuh5%IvbX=`<&}9ZR zj-_bb-GeWZsZ9eoqHN>Abs!1x3Ff49 zO|0B@OE_@1eA>i^&5?YA((s9f{JDJmrroaT4<5n7R_Rt}l`lY+3x0b>_O1aM#3LS< zqGH2L=f$nk6G2lX<;_j@pk#etz`-)PzPZUCA~NgM2|rsh{GrCK_*L7u!JHLcs5raB z{BU%1B=l_uV>TZ>ChiVz=QriDhvv>SS8i;c5Cu_&YOZziC9ZtIazT8KtK~Z5gBD!v zDWpUx^$0COzWfQ~K#C8;tHq2vloeIseY0?Fl|>cQq>gyp?w~_8+=_HkYs&ie>ajr2led*zffXGobIc&Z29YxR&>BSM>O z)faR&s|RHm zvte_3X|SvagahM~U@%fu!sx>7NfC$Go%)zu&?aA-OF?n%j48&0aU|9Qe#+Zh^qVzI z2d@T88274={~Cno1*{0Ys-2O9MO}J%vfmiPYs}#pAM87JqKxPCxn^mYH5rW<eF)vNQgX%h#5C0O#sKGNM~_Jkr9(=AIT; zNn8K-!aVv5N$5s#OK{ZJqj#{F4T!ajls|W|x-R52jKnaUh zhW#49V4gC!wsNU#sNUT%&a9N`PUS-x&_xWx7@br=tIo_hbG^0?kAP;X$7g8b(kFhB zRuKicf`fwfDGH35idHp*Z3FB*2o0oBn#II82?5c+ac4zEGN9z)fuvtG$pDzVd`Ol< zSyIx*8q3t^m1tVa)LuhcCRfOP^3tgOpU@FuNij~st=`19cFXt%WE&ZLOwfNq{2^#6Hh4foC*8v2uWxaPzeOj>ILs3tKWx`-34s zS*I=(=FCcPO)rw2wGZ6t*f&0q`a6{iNdg*F=s{UBR-uhy13-UGLzX=}Nvn|ONNF1; zsbLQf3{){<;ljbm5cK1Q-*BsGHOyz?4y~WaxW4-pkhlAgC6lOh&BgH-GA>+;CK0F8 zl;P}!XiNiFJfF@L5XrvY&(kJ8i9In0kb?Wf#=;l!EH;gPW}Kh&1BhTQbb9Xni5$S|}9_i%)~q@9Jf z$xdMko!(=f(XXNL&Ffw;Z<=L%@80|O?}zU{22el0cQ6`_?$z(k@l7qVJq#4Tu{9iF za*f-GssL)J@Ud?9#Ph+z{0v;6DZN_6?`y5&M(TYZw2b9#ma)@Bq%l0$6w_STF+9$Y zI_Z@#!q}c%xvjNL>vY?m++_rcuhh%`ZC#xm{2q3~DIK8Cpt~zqB0<;Y1$gP5CcppP$<-d}^L-dMzUK{(wE(f}1 zSM%8S4#kMgMElN-r5J0gVg?w9MXT@J>8MKCRFleeFBU3#TIQ(zfb4(hVLk}urlqt> z!axgFX;Kd_89O6-?I-FJY7DPbPKG&GI)@Y&iiXVdv9Txoov0itB!_b6PP%c_b!*g2 zXrnZ@a}zr=32dZhe5GOdUlt5U=!_954cG?24Fx(o=w*YXxC^&1o9)jHh(iCAllc~q z0%mQ)kh(G@40RTe;8S##5bFqMHobGFql|#0G?ZGwKY3Mwd2R4=PswITs^wjz|HN>k z*|JU!$I(G_KN^pO&KO+(Dr=3%1{eexYc@$yx?ecYBUzFuNll()gY3_} z#vSC{##qzC#+ulXQt!Tf&4;%ue|LC)iuB-Z>cshaqFjRUz73LtyS}Zs>j2MTYZH&G z?a$0cSzg#v0MSo=TNeaVx;f<_$pI63sn!6hecCyIOW}&0GA_(FYqxbDkP{Wm}-+=ph=F zmCAC)T7X8l1zStqk1~`A^)W5F!D}~v-qfYSsUE-#lVr430y*os`u0$c4L#4Rx_L?C zb0F>ZgR`X5g0~lTc^Y8*y~c#!KQ|%#|C$k{>$MFS;P2q3&1-yXzb|oImsUd?*|M)p ze;%n-w2Z~F=`Vk}&ep%Qt<|z=7P|w&1*A*NSUYq-ruAW1Zki`RM3|G#!arx)8)RZG zPd?G-ym&ay2KOgL9{{h|H;bXh1RJN(jBfS{^tE9gbXKB` zDQns@&ZXpnl>O?4#xuBFBtfQ(U^B!bQ?EB+EGL{CWb}BizHk|H3AZ0ZJOvMH)i#vB_{r-dd6M^a&yU*|SwjXKlof_I#KvpZz0ypT^ALIk7Nrjzd zyK^Uhn2bWWMr5-H8hNqG)|M??@FXoh0+^mrlOo z(vMm8mTh9t1u%{Zf6#HG`$>peKa1$ZnMt2S#8vaxPcaZr#`n+h0kuYN>+!)TBCa$J zKB0(|LVXd(KwJKI*n1igjy}F7z=-LYS9n;*M_u8FJmUK&Zjy&^;V#pv&YmyI6yF}q zEB50sT>la^c>~>CqewwHYe&9SHU^go3C#bUT?*p@RG2=m(&b$4W8tK~{^3iBN$FKV z`BZ=U?aNF$vc1OQbqrYx-c~HcBUo!I233{s12HW9IFyKYq!GO%joPN1*=93NgJ8gw zcy6)A#)FvD#^&I{!X6%$)a;Hk*S`#_Y`I8JvmSZ53IfSO!4?rvCAuZf5CMo=i`ez} zE}v((GMS4hs|~dDqTn@ka&TYs@=pLvYmBTanU?edy{LVA#?lIzioNqOkZ}br(porC zH$K^@O35(lcjwAKv5H%O2l5pg|Ej^U@~bK%$H2<5vPb2DJThJ_Y5OIT=f_3H1`^Fs z^r`n{^%fxF-FYm>6&YiT-N8m;<6?6c`E6LF@$a>5psdiErT;JAgPvCDxnWL#&*!kH z`pHduLj&+BxgBX(D0CFxl*{$<@)vZrkj`ebI)?r)kEt!RM~YA9qd;5&t-a3uWV~h< z4!3Q&)sCejO+BvpnMbs|rCnfE*yGxs-HdP41L&=7aiG{HxW}ykazKs0qiEbL_&#fV zO65aRyR*`J?DStsqz(fk7tXPBGszTvF+mDJJ^XcVAxv^^AxJWBA^Y=Z(bkVF5tWir zZDb>E%b;R`XrM2n;AldI>7=gxE_ejyMvaS>ZjII0=ZrX&q+L>xjJqchlM*Mg zFDmqsXU7*%m3HyYsR~bl0Kyj&(bfeOJkyha)3nmvv6E)S${1 zDeml+4!pKm8*89Z$RdT}C+u!bqRS6_z6|i+P_@#UM|uL(_NvJOw+Q0KV5FQ$>I|`F z=JM*y_R{M-@60rSv|}5-J6EbLgnnL}8jejSk84#-UL_8@sWgY=8J@6HnDKacADzh1 z>2EPwbmyQ)oek1h)9vOJp-(u7CN2Xt)z1~mE>yl>+BryQWlNxJC}IW;44rL zSIigTdBn@&n9%`<836f(|GY z_r|;6#)amSDo*#nrt+PL%N(WMrq;mw3dZ>>)>!zvuv*-LBAv6i=4--U%2D@Hy0^_n z7rlD=JC2DwLavp1`>ccw}D>>^dY*Y#^PqTxg>L;ed2>C2N!}PFLvC1z)pX z=f7%8_M#K9xT@L?9V?yjS=pMXm5SS&u|i2yE8lb(i#VyeeAJ$bMEwYd96QTK&4Tqb zb6@MYpd_A|QmqCKw>r?<))#NAN@vfZyUo@_uVXco59`4p_RZE*4+{Sm(_U^7I!dR7 zooSm1tT2f_baIQzk$}elhhUrU2H33RX%Nmf=Alc+prN_ANve9vb9NZp(`rv*(?tK+ zY4PQFi+OPcF|kNW&RwyCNX~2aN;X5wSYHq~q8_GZ8zxN|i<50pE|#hN8e?~SLz^qEFVO(nV;%bap%I0%BXND48~wz8JrjciGz(S7J8_; z?#NvO7Q6~~zRYKn=uFz}8A&Kj6YnlGi=p)zX_w;?w<2f4c(=kPZv-1cz=ct@SjoQnsD3gPOwb-a4{;2?k9l$KZ;tLDGmL>>XHpWM3_$ z5QDEgw{9879BkPA&^X<4J9~w7v~h8IxorHr0wN24%++1l>Z$V@amS%eu9rmpp zQ`XiW-;e8!*%MpIL?4ES23ua4F;`p?v1bsHtycP#y%Am4-;dqs+?&Pd-1ayVp(AT) zC}WJ_!HzQ#hlmRD?4`ianxnlRvPc`7^d*1zZ=8GYL)+r(W#gkPV@0P#*ZZqk#Vul8 z>RJa?+W~)Hvk0>FlqSaO+-RuKtl5bo@_Jg-WGOyIo7CAa1BbaWPY7+0ERM&SRYip~ z8WvpURZO;hNLw_pQ0EAC8P$u+&a?Y7wU+gP{!|#mhD-;q|L78h>MmitH))?6>5}=b zitcIMmO5K+DPm}2N39r6e2?t3%?Pm_H^05xxwYFtptm`jTDxrEfP#YZ#P-g$^3{H* zV_VuAD7J~-uhtd;%P%%QGL(>iM^IywS!}#k8uMDws$1R5NTpkc#SF~(i$fPs4f=&M z`^6iQvwKKe=EVy~w!7(U_N1;cz(FsIHWW6FZ8OcRQ!5Ud_fo|@i8K3TZYv*UUJgw& zU~3-&M>%z{24Gez%2lw8b|poQ1JJ zVBs9#{`W7O#v;GN!a1|quyCs6?HA54!Th^0NY*KT6)D022x|)2v7WBiaTYTEK&@4I zU*nZPepnaFYk=lpY*b}UvK8)G@r8T>za#J!x+l`hj zpCy^a;3np~`(xn4&Shwm!=O$tmS{5{DD$HLpX=by6|(i;TABtYDM32s>S>X_K{`Wc ztO0qLU6u=3;nx=!od$knm#2%>j9g>9Zqn1Y+@q1oPj11H3Xicut)Qo@6-BP%6T`ie zS}Rk}<9oM;QUF6mqwnPVu6Vy}iz2Ohii^ zxH_L@Qkm|SYHeM5dOme6Q`PR4T3Yn^hpJzBwDHz|=OeEJq^V6UlH%rOq(YCBRuQ)S z%w<@6g+I`?pp8oWsl&2(1&fcuAD>yq<{CZIZG)!--XSz?Ju)Z38eezb=27lc55~Gf zIU@)SilH#N(`Zubc<6P%PhOvet#nfMn!_67)lcYA5yvNjQK}GT)y)msSwk_wCLdq+ z0eFq?s|fBN45@}s1O`aa7ndZqP`Fy&skQBGMFQ$jO5cJ!!yY_ACN)Y;t68gM)-aiL z+w^9eYFY%=$2~0w()c@~`Hb)H?dh z|GjG@jHL~8!r{kv3vy1SPLRCZnWMTlk7ic+PwtlJ;KWS&>^`Qg%(PxHIJi3x?|n>9 z?f()xGw-jWyk8AwgK-4yMor6_96I-|bJR%AlG++`WBmha?v$E4{h;Q?i67mmxOcc> z%S4cm+iAqDlwl`DcyD3QgeDm{`IBe)mR@M&Gtgcgf9bV43(h$ZeoUnCJuL15shJsG zxu?P+3SBa$8i}TiM3FQ^w!c>;xl-ylOplI2!wo!3(;*qAkWx{hgJzZUppltR{c23&8QCCJku^Sm!J%q8RO)lzbQ)X;y z)0w>j1!PVhU%k#}9LkAhgyQc#W0#^@ys!5YYh~|B;WA)U@$;^^yZvz(u35Q3>UL)~ zlxdH+W-@sXZrmhmR+son0NplWOfFq`e02Rq*6at%sEIZ$4`h1pMISL)$$QaRQQyrd zf+#BVX^&pvMR%~G;AJGTG}1G1f(iMX78X8$Z~cW1F359ju6?ZKky&@Jp>7z_U1nZ@&7oE1h~24K zNy#+>U_6Q>tin&v$+1)A8I37ghSR2mX*6VsJh-QeNKkLluy}rC3~Va9IBOo{(>zAM zeIw(^r(KKmR;J~E4nQoP?KTueXZYf@kUz7of!wO&u10P%o~|~~*Dg0!L=44o$xuwj z=zyEE+0Ufo>tRvYvPd~S3$L4h%k59h1BzWHon%1GKH-WZb$6Ll(b+>+sF;+1fP_;x zeVV%$!am6vdSqAVu5`Yc-Oo&R-#BVHlr|XeBLvgpp_z6ywZ3r2lJdc(5+&elGvUE# zO5O&&x20XxEvIiltDKS^RUJ+k$xCgK&}1;|yRYwQS4Lcftx9qrtx5{h;JWm1X>Q+N z8MZ2I@2`}C9rjvHX2p1jnhM>zo_+@i*nt^!7n7?FeSXAA8Jh>%5@E|rZwhT6pQa5A zW$~)KpjKl{L-snYC_)bQzl(eU`6`w%EVjuQki72}GIV5;kYV1Lt%VF71+#A-h>h-ZFx3RwH z-ddf_!lt$W2HzhBXZZp>1e#{8_Tq@04T24s9X+dU_tgrw%XjYFF~x@e1~E^Ekf%dd zDR9Z_IYprJJSG52v(T0evBHxoT!F$Oq-a?ydMs1S<6Bt6Dj3Mq1OQ{Q9bM9a37#mq z<7hHZ!~toI*gPPkSi550Sg?*2#jUic&>X{LhR~rV+)V5jeoKQYXo>nU#Y2N$Wbu&? z4*~ri!*4jF;@PLlf#~}+!wUyCCXM#T;yC4pxwvJ31CR~aiQO&b*wQHM=SJtb>iq9P z{J|spA?VNH&sRouXm5+Z(yVp1-DBNa*qsozzt$%FT^g5cizhL!c=1CpDh5z{IA5|) z-EI2Tl*Jr7Dyup2q$d2{xAWmC>F`7yjSGx^D-b9V1jPDTdA@~|B+`Qe;o3b2CW7Zn zG8Am&Bzr_{dI8V}6X1j=#b6Ku`_llSuLoAhfsw3ik1LLW1#e6id_y%sq?I&wg9!V+ z$kCR;m;i6Mq9H6pg_sT!v9c&Q*96DuR2SjPHF)4<+;-(T;kf01E~^6p~|mx ze&x&8BZ>+mU&27@!hrV)z3Y6Xi{(5O7NEHiEi4aBCFnMUVdRw7y9fqZiB{1vx`@uA z^XOf46`e%yqvPljLGJQ*0lBvt*j@v$y?*c(fbBI3tPt2Vi|3~GOax)oi58$9(j zs9PCS{swg`x&$|PuKkdnqF&LJ`F()Spx^0~8J0LPzp2ErPFY}yRdR5*_ufpzVqyQ| zyT^Cm^-rQDaJeh{`t`v1i3ojpL!^`QIVlsxpF2_`Aa|U|e8fZIUD^+bz@b9KNo;lC9vR>1! zEtSU1it51+8OiXv!_Ux%Ydd~`9;2l@hOwW08d;{sRL}fOuB8@JY$mS(iIu~PtUAwp z5s{+CRl(d|-caP+URWr4Vw6&=AFV27OwK9cB%pr`AgY15{Z+cT3RZmKk{o4YVau}D zcg-ijN}kTkYL+g3kJiRe=CtQs3)Wey~dbSN`x?B;wzg_nGWWBn1thF0LFs`x4# z|E0UEjHQV}y_nyN`IXj$!pQWQYE8*StuCy?7Pnq{%v+Y|<11pP=m)>xTI^$%WDgs9 zUz+lt7(M7?NGLNcH{T61dN;@;cXV6Fo*QE)yZ)2XN*kibgvz`YcTrxp+Z{^xiVlM_ z-Z!|L)~#dftN$iPjG;3g!!M&VB)3JUqTzP21DpLG{uk{&g$j6U3qH`PpJO?*;2YlW z%&*gnoLi85k&Lx7IXA!4GaOl>!l-whgDmf##(?7twM*~d+|Mc7_Kx=-u>im=5&V+FLvtA^}HscFm7L*E2!acUAm<2@WK{)GnSD06aDycF@h;?E-l$4))PJe_A5XjoqXgPGr?pnJj>q`tnjc5eR>h@t z<{t#9^Bo~|?)q+?o4%Xzsg5$W>*fNjGOK=4cLG+pUgK;QYku#mlHmAwRZ#QU?D!bg zK^kk9mBIb)99E_!YY;SsC`aU19Eh(VLcpV-GD2!izftOpX5X|d!V_um$%w8@7SG0} zb+{GDMkv>;MfemJFhx?%9ShCm`_PNBpTIUqwK)#>YJl375Yy;w6giU6*p`HnxHBH! zUq@Q#Y*i->s!!$U>VK`^m_mQ(Z5CIKVzSWo;x8e9yVf9q0a`vR(28kgZbychrxzDl zWyBP5N!jd6+>P&9Xe%9Vv&`i64_^vqvLpT5g57kgd^l{UnbqKE!i)xH^I6po zGw#ToL@fAqUc(Y(6^t5CN^A*IQI%|XTo#XJGe9oXEU-~LM1M&hlu?-ZPJdzcO|A=@ zmi#*oi4RX_EE!v%XfDuxevqp96 zMK4DejQ@V$3+vJ&hb^~=0r{@q>?)^eNy-3A4$OBIEk|trXjzvdc54Z!dO={{X2!J; zwrB;fsH-Ju+$7&p%B=z=n@W@x$4pn<*9c^|HGiu$o8fOrjVf}cLsZx?j=d-;2-fg37&sbKSEt`fv`~MD&AObl5dLdOqK( zcVNNE=;lt6-5??n7jO#&nh-q&l)1 z6k%0c5ypH(Q=3@BzrEm?Nwpxl{?{s7q1!DCuV>@sKmK{B{I@+1xff1b+f68ObJ%JT zK1A_56TXblb>gDLu;I{N?_!0H-vRLwB?gywwnxX}3@|^& zo5Dh`(XD?)KYz%x_foE<*{cie#E434GhSrn54#TdOgf!!b6u{+U4cSEbfijzb3p`H zStHd9bS&xB&2*#%%|eB)qq)!&8RxUftp<_nc93g;(V%@r7|M9*I=3|-Vil1?a<@|G zGIZ^w3KgvxReA}u25obO?NRHx)+%O+)3P&chc{LNEsr+Tjw7Sc*Zyz z1M1x2`&M!@Fx+NcJ>bx}ur`n0f(pfwx0OGRnSy$>SWs>9a?-d6f}8hLR&oem6+SYz zt!2s%b{j5>S^Q(}Y{wB&bdTTDf>w$eO)@Qq&AedS9A-xXtbXf-Qc9w8kEQ@VYO(6ac$rC+w<82zkKk~L{4|j-Lgfykymr6wSqe-RJm)Ig;Pu7ogEo& zOucKH-DYjg;JcP*RRpB=QtnXPzq;Ax)y+Jcv-8k)E!_c9*%pw>LNz$mBC+Jc3$M+{ z=wfXN-tVztDhTrqyVYH`z1q9AyQOHG#5clUbRA3oF)@*Dr)vifZIq*E)ukZu0_%nH z#Y`vXGdyPzIXWRf5f|yweD({kNx`u(b$=@CfFH#Q&!bpD-rSNougZkOhA#jQE|LP@ zqTKVn2&dKI;;7$`@lP_Q*C_P9hZp`nQupli&5gHclLPHmc|4~{@63X=#ZjotIC|kE z$39PoXZZpy1AFG;xpQ{d9F|A02Jml${{XXAbDH!Mvr2I26Z~h8V2jd%&G`Lbg-(;; z`*1ZFAHnp(we~D%t)tl8B!Ly{@p^_l`cSPRa3TB6&CMJ}k>GIf2f7NJx$A%#A<{an z^+C09oID=nM^%+x^>F-RMoScvpO{{==iy{Iyu@S?UZpo5UPeg!p%;uL#SXJFNhGJT z%j!HY(#6jJ7gz9kCEs@86S8p{IMNAwl{1!YK#Mw{eLB22N|tLcFl>YbT=-q)KMDnu zQ}a1)gr{C8j4AaPxAoqpQWl02y))_l*f`Rf@+2cU4>gJdi5N`IsLXXfix-hlS+MoF zP3c=7T`HQi9S`UXT^icQMDeM#OoHqG%`}yR>$!Zs-t%ORWZvfZ6a> zZ)Z;Jt_>OTe$oO6dIge;xQdC0=WxVagVHMd-t_Itd} zb5Cq20ahM=$l+L-9S3}Ti$`AvhFT!QiZ#UIvqx9EX{kf(?O|Y-jmq6m*Tm?|1mJ5{ zMl0_2+^lB~NvA8$TW%DRL~k9buG(l1#Ko zSJY$5yHuC#*ECZhDKiw8HkCrtIQBpc_f!_KZE38%8gl|%5RMtIE3^?q7v<3%p7<$k zi?xRXa#A^x4oo<>CEKOt82EP-=MRdOVtZlG15(t0bn|FZYSBZ9dWuN1AQgy$C((D& z#qh#$a&+^&G4DMvYDFk@D19rQJ$oWH~ED`+)hm0vXsslt%KCA zEy62zR~L~Z+fdshcj&d@dQNf=wA!lHt89_IOAGR_*h60vXyqtqlytdVT)h?#iI^Ei zEC#CEVjw|!{&ZTx1r5Yzlhr`dB5WUp>IOYlhIcjfmFw$8?AFi75kg)bN*5VF`u3^= z@ghOAFJiQM)ubk@QYdIXTnOKUtiwrD@PslJevetBt)0oiTm<-Ra*J#R*6?JbH77Na z%KP(}dWOYq0Qirh>JS;pqb=^_gik7;*E7p0Rc{Bca%OAkCZAcoO}WxdR@5paT!iA= z<_skTyEM`&BpboSLBT+pG+JkfVfAMZtVWIWASMoq2R_jGyxjGk2UuDT=r`;PAIn7| zx}PZab3vvr(t~%1tVLd|$QRPwy;Vr~0e~{+MiRpn+v{uxd7xV9r-D{rEq0cRo^vN~JlhH*O7QDxo?j0SRy=wQZjK>8u0APeNw z7yXN43z!7;=}(@_+1P!p%084OMUfi)Db1%<3}5WIOIBGcim9T=(AlBvelX@9jBixM zuZHOP=n^Q2YKR_=t|IE|3VSG~^jpe*`cNXaQ_6ctfYacxm9P&Dw4T%)I>F-{QaFD^ zUsV&^Wi&3OCk&F1SN2N#Vdk(tazupWb+XiOR!UA~;q19`D+9HOcnZ<+o%#ThQ`t^P zPg3l}5ru8A7}eG5EUixG9EEre^Fpt;!AS-)$bx90{Y9Y@$hnji>`=Ks zhNJcX1F`o`6IodbFg4YCI+!szTqQu*J~*9JuvRI|Us0cj)lsxMtOkG>(@DlFmaG`5 z$xowrYcDOLt}WVjc21j{S`LSJSL~h3kMu)=)IQU8sgzIGn?sVK%TSpH;9cMAbr8g_ z$&*p9I4m^$1HcZp6(3=#a8f3=1JBbeU-X6tcWdDp4PjwyI!UWSgEL8uJ%Sn>>7@pQ zkd)zdYIx&t&K1klCIkYzW91cxpv^jCTrskz9+ z&Y7eSF_1$FvspYSrbWB}mOzYnPFd&|b4FP}jH0*GS_u6uZ9)k*3u2TivxrjLlYlY{ z*8=vBoAUg8kzpy8{N_k|IWNsXhn3N$3YGf+Of`5IINquI8Yq*v1-doN!ED`0O$&g$uC^kPpeyJR}36fhB{qio~>r-|j1YqLeqXO~^cVk3eXIe{IQ8NrbAF%pgv3`IgM|ES0+o z$ybT(O|hq_D%d=`629oJCm6e_u9Bc`Dl$i?;P**cF0!-;q7*&~T81E+!*9HCfm()N zLg_x5!S9O_nZF=9tr8SAoaN`MD${11*P^+&s@4(f5}0X`+>BT|L|oHbExkm>*8ur( zFe59~<73>@>E9Rd{NU*NCrqu5n#Ou$I{wbTf+s^%MGOndQnV zhmOCQwQZ@ZTVAuRt~GaMwQHx6{jQZ{TJjo$<(-IAtmN4BTGdPMz=f$V$EAn@bgC)M zLU0~JhGeX)x!lGg>wIZ7Y%C6$4-?rLNht)h?b;Jx8#7TM{LDnd+Sr;I+a0$yL)al3 zyW##^mZxuU8iaKv#gB ziZt{vF%!=!4Xzg^uDi$=i@eTYw`V&5-OdG}k5#h^7|+X9wL`J@fMsXt)ea?hD~0Xt zG7TWx<~x+bJBjGP?W9AZ7`vdb9dPKTeX`{TQ)8RR>tDn;6%8b{b5j)#DOC2!LcAx zgTDf4!7s#y=smVBf8<|)MA=^gRznnx)d;1d?*zI8f}_ojx3)OhI+VONGv101SFATv zupQiUi+Mi0KZ@>0;}QIOq`7A+)#t2h1GBul_pY6o;7zW)4nK_!qK`+>_(;v#!=HAu zn%ItWo<)*As4!(F#^HxpvQI|QC^{HXzmh7(*9*-r!WWb4CL0n2((_oLsp`%GZ3aP) zWaKadxVDlI|3CuVA@YBFix!;?%^4&#Oavze)7?rF2d`hh4kYyy)Pbarg0H@cF97U` z3X&g^)(K{_+1}HDD4O6Yr^mtjKu{&Y%a<<$MR^2=e>?hHz~n{nGyE^uKiQD-VVs zBBZmwbakIV6?uzny*PtYW0>wJ(!Y*eT;tOT8UTYtX%gPFux=;E7 z!@Op_fgE2-7bX48_woW}Qk5x+a{MBkfXX|fSNIF6!sUfM|d|PUrpw?!vVS}z=I7Jmr=se*ZQB0fKezjxUvXU&L zaTyz9*Sj@i)RR^z(%~$%Q&zjRqiVS>TDE!TM1PG3<5@+#fK`|dg| z@(V`h`{T7xv95<_uw72pM6JzJxS()xZf^A2(%7HS#_$^VS}S1By=xcHrMTM>?t%em z{M@eP#N>JtN!>t{T9l+4E^u3iUn@`1Fw#RRix+wj=zJSJb=SvP+c;-fB#FYFiP090C4F8e`&m7T6Z2L79R^j%y;ZDoJ#hHWR zMNRdscZLsMHU;1UV0}&9!mft7JFFZ+AHtNbqu#Wg#Ir1YRY+;ZNuc5r30eXT zpkk^Q4X}QH8xyqmuFIR(L~jucRqjpfz3JQ~H%>(6cG(r_PwA2?ReZ!mSu(zF*fX+) zqfTl$n%Ay)rd=6^_jv3!4o=geD4V@ASW-5bi9ZVZO+WZ3aE6}OG$~<@ZY`NL_6?&_ zz79R(5||K*XdkS0*=}>w=1AK=?^ZtaYz%Iu6QWO=-!fZadsWMo9j-eaWs&PB6K-6m%ozY78Q|zUA`W_~&0w%jWm#qCq*NCQ=an-1 zfWjts);@5nPv=R1oN^HRs%daCl!28O%$u7X>IfxaRS7#pQR!fpUJbMR-MckS^6h?w zKVAWo6(;fC3~+t?gE5$^;YnJBT#3>))Y9M)Qo!%vBt3o0OCB&4y+DS4=AK%u%6aO| zqFD*eTyza2G;bZ+LEBp_n7x|`eatr{Yf+X!^X;GRT>aEj{W^O`ZfPP7-ElRowCi3W zp?N<~n|K~A)AQ^nIE!_4O2>Sve-33H{iTvWZz%b*DEV^)$R)apOL~He>xeK|+(Ilu zxgXdqwhVPn19``W074mu^K;nmJ#}oG72-k0wvrWT6-}Tn6wV zN1P+c_L^krb?^Qc(HCEQfvV=cv#M94CASnVl4P-7bL5ib#~od?1zOgavs!1tzE3W9dRISsg4h6#e~w;6kraTKm~>Jp6)Eu+2UA-@)kM z-_vI5AgxrrLuIM18;>I9qMWs~DTQ--3>#0n3geqQg* zR_S6-66Ed#*<4C<;nby|ihq7^Zpi}VVm;lSGQvZxtluq5zD z)Wki#w{O`v$j5+8*;MZL8dKb#b$If9!o)xFw|nUxg#_74;s5v44om)us_0w;bec_>$Nx~BVoOvcO!G4skw77gjTAgWrE!E0T^=a;Y`qQ-$LJO`dIXU1 zjR!IqDqbazrr$6;eB%SRZ^Wj5V{Ur%97p^${6mj=IGPvrvjVa!e0PriDMt*0GfvRc z49M|(3AbwWbMntSclN(#_k4Jk{5);5&;OJnPRT)_Ggc(1WRL6kYodI9 zjlPP$^twX0)`jE!-uMncp0u74X$P40zRDZ%{Rw_EZJq&`KThV+j{u}Uh`B}ICnp5r z%S8?a|CBuT?B4zlz2Mg%^sZ8GgjmD}Q+$XJ-hV_f-}iVs1Y!IG0(|^K^e^9O5~7cF z^i%S$=x>R-Nu$5J2kIx=d;Z_(uKh?{wHH}4FK2uBdfr#djWGJx!@rHQtKuuo2Y7%G)i%R zbMGY5hJ~uqvT@P)ooc9qApPkcOy^CnZcuo4a|1ss`WaIS+>H2#{LWRJP>FTKyL@S)?vPl3;FPdaU)W>O7*U=e$ zJyctP>|p?T+)zmrV^reO>zz?=aBOG4(W@pPf|~yB&9WvFB&Wnb#|)bLJ>inL2@R5#t7A6*LdQ`TckY}t_}_z1 zC|d2?Cb@)fyM*Xa!?VcEn~d21=yj7Un&>Hl@RKH)HPIUxIX8ONByStv0dw1QP7)*7 z*RYq|nVRF?Q{+SM+<5|j407U4!w3CaSSDWPmrVzSw)ZWaL6?8$0i!b3cQ}z3@J|yx zY7CV1P2=LM?;7Lc$I#jmdp&A;FEFo9+C9iISR6w1s!6_SqUQ}D#joAtEG&`HTah=w}@1uT4@k(O2e3zie#M{4t)p9~=LL9sS^r0N3irruVps zn&?_wHO{p(GOi@_TFk4Nhu4o0izHH>y_c<{?;8x5dsPAX{eO}3{$zlR{vO~Y*un3hfwwU5cYD2G7iA7u z>+P^wg+U}(%sB9H-~jf?D%4rLt9aiC8Ma! zgoQe={N)AkNp+UwS#LZvi15ny78XeC);FHBra=(nAqtO!ex3FD{UYm^S@iLz&}W(@ zKQ+-jOR_9lWJ#4pvkZ_|beaLiiB=gRTxv2}!tbmXynl73+0FhfyU`f$t40xQ{2C?{1@@Y9Z&~FRIYvL+qro5oJkAVsbqNcQ zp;ycAWI@=dx9+N-kmg-R7u;25;a#y_$q9;cE;DjS#@e0E0OW^(?AY3V}&hK8@lBS8i&XT9VztLg;IZM9FqF=LZ%-rNV zVB20~(_iff&+I`hc}_~BaQ<*fq0P`B5PlUKq(}tx5%^C|l;H6y>+L_vdfxydVIZQo zN-XI9Dg%=5OTdKD<1D%NKR5r-gvvjL_o5%Y=RNs8JNy9$rLO%PVCP@i%}oyL`zHjV zFKPR~qBmdQH35Qt$dVtkVS)Pi3yhZP*;_%A8}8B{XAx4!aK67T-)Gg66xCwjo~E`? z2#&nTpXlqGM{i#I@GJ?w38H^d!gt?({qyq|Uw@qh-v!Z6m=ygjLt5tV8SwLe1?cNN zA+|k?{^Cwk4CrsP^7?cDYxDPP`d40F4}1s-R4=pTI}JH@&hiA{(hHWK9CX5^SsJJg zLxLvholg!70tZNAy@Lp-d5$Nq$R({=<_0#abC*oa^A0kx%zH&{lZk~uEr=v5m|T?R z2=4Pd$#S4Jk~)uOIUa^nv(HuDLEA0!tul{`JPEWEB8bl5+a&ga=p0hyY6O!ehjUfs z(|JBM_ZL-iV6Kat&($o)a|K^HtglDBgdR%Osxy)d7=dDB5n%2}TLgaW=ZEL{kyMyk z<^(1aRJ+G?RFJ`7OF7?j=Hu?-H4>axuqs zyvpMp=bh#zR?$sZcqM?1p*aJGT#KKE9ON|b1&>aVNk%0-1QBHtpzZ~0;jHyQ-}(IZ z1{ZoBUFCpLPXMY~J16ff*jq}v%6nsU@V#!$Re~|~g0A`B=fGSX=gCEMnI})8w>jXw z*8sGD7@y|JPg(RNM={5nJo!r&J9+J?{z(o>Y8~kWuJgh{(1AUkK zNj&K&GMYz=XogA(L-xNMtuSykJ%dEc1QlV^Cc2Q#MrX-t`aX}B@Xz7tQQV_HH#gTN zqKeL;(33oV!gil8P3+gJxlo>;v`pH1DmZb$r_IEvIl<#KHdr zVZV+V4u3I2iO1QUJKyHLv#3VRoAbl^2-RMDa|{_=7R{4%vG@|-h?{9|mb~VIP;173 z8K0r!$f&}Q1M}%T&P08I9#VxUfEMp961J>>Ge3Qk_bLFnFm8tLD}1dkrY|8Wj4$ro zd5b@$m-Jahy@uo$H#gOtJC*pE-no;~PZ$X-$by1TUjz|)N`von*o_772r!RtX}QYe zv>$w@-&f=^mc*^nZwz`xZuik2Sh~1#=N&2?-rVfJ!x>UH@2CK>UN7KW)+ss z9G*>HU^IkKjhJ$a^*#OhP5<{6btBXB2 zjX>+6R`)Es+{-RcvutMEAS6mBvf?jvQ8Wcy6j|Z-ZkzlSS7B0+-o*4Td}RPDRrE%9 zWyH;40awF1DhhPaU%;hH%pKE8Z&KiAj*{TlfB*%<0~`uw>enNBOA|6=RM9VzvWThz zE|jzYpqUp*tEp&FNWsSp+Il3>GB%YK9+iQ8ho!L z;4wdLVB$Au>K|)nosn11#rg&{fcK|C2&{oaTok0UScKs;k7qb4B=jXxz(58?LTP|i zNF@lLMl#?Cj9JIUI$Gg^EsNw&aAN>d+*5CCilLvZir%uoFfvPM`ZWolNTT7S`C#(` zKLlzy1A@${5}iYr(YpdTper25Ns*iu(ROPR*+QM{@E<4lqNhc2Ui4lUfNHYSFnR)a7ko5X-SmzDe%=)B zS=qlTG%1cD)bxhDEuanzDS|!NAGKca$G~zt+uEL>OHL@2g9ALOuZmOkSj_JGzr=9M zC^~o2sjMecjlmf2lLGFT{iis6SYDFsd9)5D&kBi|X~({WC3*`r-xci#1_|wNir$-o zfD0cB;7i!P@`qUs!;h`;odm;QPM;O=n<9EyBwyvxcW^3;=tY5i(jz{$2qbxiGPrLF zM*h*OqK$jyC|(vE9GJ9}B}4!M?0r|z0{~>e4G2?tS(q;YIGPt+LL5&hm>oVUjzX@) zXF0Su&~J(uh_vU0pJ4?;u=k2qxF_!cyac{R82@L1Z#+M{GyJvi9i4v`50m?2SjMm0 ztDm8paHZ^LOc(=U9{vm%wS~&A&&o1JxE!-*=cC?Z_R|ppl~%5i-uS9OdgDtR>0{cL zA8AK^C{P0YeUbbGw^)(;Ip(FK>z)+4BAS&8L70f>8|# z4R*Ktc9qk0*^L3S+t_s(LP#nk(1uh3W5fIG@BB_?YN--#--(GA;V@EGDwmTdGtYiv z@s($`t7aDD>l_IDBqbWhWj>G?eEQPNXuAcUsu|H~w@WjCXP=2E4*eW7qU>ClOzo@B z&3&cK)zM1xOlGP7?5x*Y<727+KCY-KMLq~d4UY7XA=222p{iy-U}MB zJ+|KlidXSPh|y&gYF;IxSzHlxNKddOeeZ2tW*bSYTylaIZ-5Xd zx+bT_MH7iUi{XVk7hC>9($&Fs6GYh+NNvFkYd$}J7hB*O;E|wGWzO&yD_x;}q3U^g zyBiy1LIe9*pWR-9gE>fy3?rUe1fzPxSYOUy`OscixaiKxq+6cB zyf|e=oxj!^6Eng~Nv9Hhg(S5>DI%iZh~_j}UFvOdg#%y7A3@C7r}AE!SRCG21*+y( z*ei_~rq>Dh>w5;kV3rCOp0el#$v^R8^mz^f%>F=0p@Ea@eVz ze~8G_P*HK@o|<7ohvj!ub}Ss$VvjAcwc&~=DMxzLYLO1nABnt7#7QE*C1N8n;<8)s zF>hl^W^M^6RGVPEo)8;%nm{nOnSg3ONFbiuXRse8awF*{$X|K>8OGI1>T^LJUlyO}TzP8`-SBN&UAPlb}S=l#Buh}DEC zEu$cJ^nf})OPWOET-#teZ#xU0lZDPZ z_QZSpn|XT{cg^aM8U$m{nxjrSxO$eHkljMf6{CHKmBXawnoCG(w>Dzi8iN8=wv(vr zBMwwS=i2_FI5SWl$Olx=CaQ@%;QwGPp~uouu2NyJnl_ z5U@86>$5sH_Pwnp-s=cY`%c5}HMAe44vO_YfixYK{_Gh|_~gMI#Bg22o?Bzd^vAe@ zf*A&qrg<@3Xlqa`$GD}pP6Mp;wAJmYG1pQ^eo0D?yT!$R*Y)5*J#(H6*OH6jmxLI| z@}56WEV|dfC&N$4g`r}P%5AE2R+Bnv-Z^E?No{*Iu+F%BxyQ#^!0UCE2wloc8*ne< zZZDANw@xDly&LQ@b+>%wV|JHMjt{_cL)LWEv^sU2Lbv}F$3Uwb{v)kk`#H0VbLK;$ zRZ8QWwH-MwvmnQ17U!VYl3bJ0d0t(h*|cb<0)3FHL*2{i!UL0yr^;h?5chBk(%F*a zR!;vG6S%c=I{V~pj)?REcUYWTkXs_?e0kDjhRm=90x{=c*>fC*VJ-mz;pQ^Sg_BPk z$2KjxOY8I&U=3dW$Y;%C$frHbeJ}M2}S2>)&ILk7_7axp>IMWiGzukksGipdLfNw|L?A7|1uYeRJ_8Z;@+#Z^I1G zp2k5r7$7D{CBxs#ExK~yF>$P(#E(gvEn_y!5h`Xs(pK0))f!!N!@AY?beM?kT-r;Y zJ^OawPQ_X--{;mgsMX(Mo6Q}Z#Pxnt!WMmd(9d1*nLZPra0J(a)Ok+V zyEw{05qza%K<$zlI|N(#IHQAsAW3{j?B?=wzEnv*Kk&OAP@gjdKRw-XbcC@!^T(Mq z1+Wg&k9^R7AZ}=!VLwXs2Wc0Hu$1Z#-g5OD{SjA_hGzggS8Vb@ySeqXVza!Zk?q(n zp{Q<-zXiSUkhhA5c_3`j0#l32mnx}lpP7?TTQ8I6IgEDL*Svp3>|=(@v31;Yd|qU~ zH0(1~_ot&a?cqGiE_yGI+*Ev49#NV6K_KbTVFT`*4jh_Rj}9F#W`?}Y+2fK==Lh^x z-&t%U2s0|!Xl*6gPyItmG63R)Plzl*C=tj9Jaw0_V?Y!%fzsKD5y^@0n>Nf$<~bfA zdM0L=s-*Y3BFO4e^8f)K;|z+;B$IO@&mdRHGThI023d-q)j6#&YdJ+B3jpo@ivPy) zHUCZI@BBBHZ}@K}|Kz{6{6lgq0pl84%~sui`bjbw9KX=DE|+So$9zcKHRMqBG=)`KWa z@SqfzxhCz-rTW{9c$@#7;+cil>#X$x%ZuuZTuU zA`g$RXu9m0YZ4@_Q~mXEMmdCmL9`q=6>RGUnEl-#gt|bD1b+_>XOU&9pI#=77FtMB~wD4TT4dI2}`82>^+z4Fd&{Qj=74pS@&` zw~<*?pNPGm*xjKQSTb-GMH&3bmUz!yWsf%~>|SEio@f=p`8L>o>gYpOo`>fd(NI6I z;Jvww*6O-97Ou85g5@4`zZiLe2N$9818O7K!8&&W&F0;1fuct`+KrNy8%@S41X>Ts+&+{^gMw%JOW z?F5O2YHMEMHMLFsc!SXH>CWP2XF;>G*{U~BEy>riN1`;aAGz1~xqppKw%drTK|sC2 zW>q{+jqdSm!(LUsDs}m*LelY+R-@*cTB$LXF9x@nRev|s195IQ8u2Cp63a#et3i=* zNY#F<@h}A_Ld+cdJ67w8CoC=Fr+Nf`Oxsl%7D(Qn<1XuXQ$WarAy>)GPy76jZ3C8Z zzbHQ_&AYJQ9Gga?58^5A3e;`z3?hP=U*h`!Z>evt8k5y>XdkIr9(GU1!hY zheF%lZbne2{X)m5Yj>MadY@SeFz7~W2IsO#3oF%Jk$Vc#_2J`&Uw#(&EkLBl$=_CJ z67|MkGUBR+K0;qga5*9SpYj|SY+(4kYun-nmOW0`dC?kAX%uL^Uo!XYJ=(uK-e)Eq zCZ%k>E3~kkSzV$Gfu$he_A+chBcHvrl^db)BOJjww0yhu9=G82VS^mLwIKpJu|f52 z*r0CLZ4joXw!E~(rY+ZP>Q{m*Xo9Cyr}c)7o0`sx6WiLfYd!#*Hk|a-4R&i+LaG{7!c}BIqZ|eok}hYXe%g-$X8;`$;cbhr%?lNt8Fs_Go=Wz(q@K#wsLXJk3l$a6Yef4a3ZXw~zcrH# z-s3V)x;^8)Q|f4v`T5RAQzpOIRzla1agjGAPfz^)cRY7>%#@(g-pwvg@$g1ylbQK& z)^g8Gimz@XwyEh;FrS>~1KJ6cC}bO@4RG_}DRyM!^Uh z%Jb!!ZT+_No3^S7_`TCva(p{m1({YaSWjFJg^4NDUM9peb4kaOxzspKQOqO3qHezi5Vd`Hv@HClxerPKDjzAJ*^%Eh!~kUwLis81kw zm~Q`It9zy^&_Z?AdC#;x2?2%DlhHj?_%HCafe$U&;tB_Rb$Y$kDmlmZD!gITJ_9+ZDC!dnrzcwde=s!KV{&qQ+;xozOw*@y^_vNksf)cald3EZ`6W`kKMJHBD{7q_p^L*#z^rUy{ zi^JoC!_8xQ0=^{(fucQu>-G>!_*ASPeB9dEK097r+uP(1tl3*aeGFo~-osLzR!6u5 ze=@v}d7K%e_0k2e7M`bOn#en&nq|!>hr@G^yEu!Qu5jkQtPTQ z%n@pv1E*ZH9(}rYw!Qu3@?>>u^?2uU=XCRU_4MHQgoght?&y~Fm!`fF=M2#!f`#~s zGeGS6@|!O{`0|A@h;c~tq!+?bH3(^C;;?kx4C}6&;j{>{X0jhzUTFQzrsm5P=2vx# zpJ$PU5arw9B<(sKE9mJd2w!p+4UHRm?m^2Ohl)_=0EG1@aKaA_X5@`M^7LeNE-$(2 zGV0q0tloLFO-my@pcV67FwZj0S6UG&2XDCiq`lh`_?28v07w{Gx| zh3qvMBGR)rP~LdGV5#g%#^9eUBT?##Fa-19hQu*AlS@~ca!QXtRNi&{=_5^^`_`Q= zeqhh_j(lrjmPNK*LN0155d;nh3wQltav?wXkgFCUc5@m6`JxbedK3Z$uS3FEaUaS} ze@PwR;xUxh;Zi%6i>q+*BzOp=GP@I(^u%I$dj1x|N0%@bFSp@~cz!Ys1!c9|{o#b5 z#6ZUYD%#_4%9n_47vgM22Kz>=J$(%4=V5gLeP3#RN{MFfPiWvCLiS^rxzvBZg}ur3 zZbS$U${Z0>c+pZ1mI+RCHAMkrO&ji(kxYkI;l{H`@!Rue}5;f=V>BY~c{%Fz$@Pp>rW` zLn2P7S2!9wFb8-a0)8wjG+0bi3m0O@= zrZW8kXbI{xlaX%iDikByR5U%JhZzJO@gRcE^^H)r$-T4^YAoC&R>AGoL#RGad24Nk zGRWBZTsgAP2_B05P;P|cFw`qpLyR5TgCXl1SNW;ZHy(!F{y}IdvpM4=U^NG{qqCPN zUDjbJG$htTmSC%_a^e>HUk?F?#PprI8k!Vgl~XUGs_@4P3%s!q+~J)xw$kO1ud8dR zI89R9=P_|=w%ihW*FHvkV3@78kBts7IRB(iklK$P-A=64s)~kmGEk{1?h5l!mq5Q% z`j$z4A!srDKZf$h`pL<05qf(;J|<|;+X+lgH#{e_GnGSxOF787sl>Shj%nBEf{lay z=9{{gtM}97){FUdMIg-cX=cay$jgwEMc3L2%0VEcA8{Y+Nf;`IUzbf45GF+0>RFeZ zaI)d5Y~OPOTQ|EOL>|Zloirj3(N z+k3q3x*EMJfl~E;Xpj99@48lil&aNh16K5|U_&!AMeLHdR*Xhft5~8F-}6i}r*vM? zch2p4xkzP^c~1&QkMda@htd{XA#CFILfCiR@b>%?PTR1R0;=zP(0mNl-gr;o$v=O8_gLbkjw8PTtyJSqj@yP-S}t)m(c%Aif+16K_4V;1~+ndcgd%NJ}` zOBvAD(Ao`K-2zvhpBuu63F+~(_%YpI?*l=hT+gu!5xwVv3lChx{&FFpO=rG=bXC_0B?8SXGkRxXBj6ul{=T^c27Q{V4E)J zuLBqK*S;&Y=A%Y{9lG+=Wddx6pDF@u-|hA{U2QZhI@4Nl0_dSzC&2byp|j1eyEOu= zo$?}rYsaK#g>)y^{*Cm=-<5tL?@C?F;J~esSUqBcHeBXDh5lxt(jZaQG3cbOk!-9I zYQV0&&c%In<*F-=fq5Tkwxv*Q%dKI{7J<$DQj3G{wnSV#c3Wbo&a{V4H9t}_?X5Tb zsR@I)Y!-j3Lv~<>(5vEs^WgbJ+{47wq#F|2+DvcUN(?upcra2A>XaKbIWsGrl@97B z$HP53qRU8rv+$BMY6g>{0BKpuz<&Ly=Hu3Qg*6Y>fBv&JiJ7R#$1}!nb~3u(QW@T_ z5t(tIT>=#S)&-ba!uM6HieYgeKW#Ygb)QSXeQ_0-N)JGG0QSne!{{stpXuW0*F8jJ z{e}3u6%jWCzThsaSW$@96EB%)S8NaU1>ucokHqMxVLRE6*Ws!kt?ZiQ?Rq+b$H<${w#Pj!eM~QQ<_xx$Fbx$~kv%r*apx zh@jW%M^Oc;Sf06+#!0ZQY~mmbkXCZ;JO8=`1h~3d$w=Qg=%4$-Wb*r;*gdtHeg0fbjF8L!~^=Djt zrLw)-^UCB5K@}+Lv&+JDE2+ug0$AgT53byG8?;Ut1Y=4DQBw1OJZ<$4E>RD>3iPCn z)*RwhJO@rqfzzr|^_=0j9^nbb0muvj!w!xjS{@zRPJrqo>t8~&VvUV32IlbPMg;ZP zk%3do5g|Gl7+nmB1HSQ8?@i@6_bpk@I)dj0(mUItZMm>=;}}xyL(>a*r?guP?^~ zdvS%BMq;6b&HuNuqzaYc@Rp!~Zh=+$aF&_ADmwWbG z>DMe&QU_6D+`{o@5Ctwu$B#2Mi+x}wHxnnuf2fSa%6(E>?<6($&hMk`uIe4=Cj+Q# zc?hDmw_p`Ia^#QD8;yIB!z7Rj4ULy&81p*P7x(QLHN1deR1@yAh-BzAG%otuQl7+Z z`Da#;bAt7~j}DvABlsUKja$n$0rR`!ih6gJFvP}onT&a1DCU;7siLJKnpjxPJh+EnamyUH?ZHQY(R~vl8mLLLl!(s0Q_RaVuuzja{ zUR7rpX{V5uy|PgPV-j3{1DW+EWK3t`lp(X}$aO~?Ohab>Mabyc)gW^~kU4d%g9qTf_Mm10z z6DU?4>$n2Nv4c8;j~Whp4x6m;5&6YIWSs8~+`Ha8FDO=oU0tq9rIHAT`2Ir9&e9?C z-GQ5Qx9_}-`&~zeG_`zL3A^+0g_|EI;vepu1diz?l){c1ERe88^=0+YVnKfY`EF`E`U4o9JfDH8O*a(biP%<`!O8bx)>W(S@A?!$d9cr_q-H6+DkmmCxH4JN_ zAC*bHJ{ER?Mb1dpU@Ci6MAEaf@!$1ik_6IeMDXkA;g?We0#LUSVl}D0Y4#PPc%FMoXs%Wmz`I3>S;FH1AbL(g~hpIWAx+TvL%GkSbC6^9$cn zablRb(k8WliBIq>5*~P7$hZ($0X?E!Oj^YF#niCZ1AQjgqkqFjQ_1xS8&q~niaQQ;OxSU2}m67ccpq&At&;edc&*HR@ zVIejP#05PlK#A@bh+uR`z%RrOgJM-LwfH!-7RRvk=^O3cRzW28ULlpu*3>=wgDpsA zXSa%l1sLCPVZ9n!Lv+-=V)(IW39YHksTAIgvLv$hiiV~^LH5;icT!n+Gr53fyTN7i zxF|zfwrFM5QrBjw;wQI{@TW5mcy>sVLHlgl_>MN-m!d_=v{5Ln+hSHD)`# zF7hf7SJKZ}zH(bwiHP65s?~p0()WtCuLZv+o@u9mP$`AT8=LLvNqZx&7W4C`g;l5+ znVCG`dN#sU!5WJyA?EvPVZj&uUD{8HA97?qNGxxdUWk;?6My#$B8XGrXcH&23u0QtMt8qwR%-eyr%-|d(jo!yu;S;x=pX2^}|m_!OB== zt@7RklmAp}U;il1(9|btbB-2J+!f%U&+CWUQSrA)NWKQHDl^u`V1a zW|BC3oLMqoRhFoFXx?+XJ7}$f*yZE-1D~JcRDLalNB;*umD)_iy?r5B&R@U(_2$o4 ze<6B=cFxmTa8>8Mvc?-NpL}|%uh#!)O_++BjtHdeelr{R5_hyhbBoY`C-BEE0aYRDDr6NzKsFo~k zmF(l=x*#G?pPu5>%F|L1k*8c~kff08+bM0gEG5Dyh4pioV!yd5?o}s+R;x%6B`{5a zBT)(q%2A4&_Bw@m&V34P*JCOn#A9m)8u?W!uhY6q&VwGlxJ=8qf_*>z1wnHPZ!0w0 zYawKm)J#UHUaU-}sa79Q5wd9bc&a%-XFX2`-3?I_xiw_o3<&O~N}Ys!Sq}s}s#tT> z0HQjoh6xBB$Y6Mts(|2u2?#FC=T$7klBT++u5nK()QJ&LtR6D)A?*cS>oT?cMVo^q z0?o4rtxdN9l!YN zI)ZJ`ByUq|qe8HaRMi@sFovC`ay=EBz_U}rvx8J!A(e7}KUHgLDTsPcPu{ySVTF#_ zuHX7KJ+_Edj8u%9Js014tj~r8lpI5wZD3NVh7Z$vNKY02u8|kf*e95^(qq#hVm4{z zr_8iVk5uF5q8YY8Wqmj5`YQ24JYh5e&3Q8{J)3cNMF)%|K6rZSoOtTn!9fa2y_uSV zD*X1})}VJ5JneMjF+Kg`Y30q+>sMWRTo3Ii_1x}&AvLFi?8V)Io|{PpT|sFlZQK|W zT+3OVX&FDW!9^RFp_6rUw(4Ga_rg46t>BNwO^bR~?Xmo#ZtVo|C$!A)KN6v#XQ^t= zJFkK{6I;B?d6e42Ht5b)p|Jb#i>gJ?1}R3M&-Hp~dJHIMrqM_gRIXt=oY#$5VWyc5qPnd@b!f8~{o zp5PCZ!c-Z^b&c)da-IIDywOmmbeAifUn(2d}~s6z%B)A zjbrL%0@F-`2UUZB;{ObWIlHs|e+M61&EqIt3yGa=p716Ef!N|BelL~BskoUw;=iOX zX*5&|^<(~qj`^+Bx~Y!&n^adD?4?Sd@g420(;5Fhg)Q%Pia2s>DV&x+rw~+pN>#81 zV*_(W)J9rQ){;ELyBsCFE$PyBx-_yrr#g_*T3UG}2ZK*cQ?XyN*W`uD#w$KV_tHB{ zjYOXQgop6KKzAH96>es{ z!izX*L3h4fTqs zTcxNfBGZ=DRTdQd(xUcpBSr5b<{ZSin&PWHcWHRW$xVk2h$c)XxN&5#X1I?cnMUGz z8t(V)VAbE(!Fo+#jUwy10_$}-qrr#)`3OMX6Ckf57Fb3#uKqHbHtd|$aSS;bZgn0% zL?ttwH;%!n*Hm^oiX!MU!nOmg)?eCX;b|(Tmlm48aQ5hWNtzJPQde$SQ zy+5HMWE6C!nNiR)Aby+y5ngh+x5CesB9p^Kx7(vcfo4OQhgw*15gy^lG zBHXuUgvVlz5&kZcbK*QQe2bmu!F4Q-q8D=fex>6rs$bH(k(@oJA+1GC%d?U7J({0K zwy1ML{j1)}GxcH}MP;DSre*C!9JixLD-W;Ac%iQwwz!Cvj@ao}J;=qEt}20@i83HO z{1-??D#4=)Gpk4EA#Cs1R}Rha+7E7S!zfPDyDT49e%s&`|0D{Z1BM`phq(!wi-mkx zD!bI5dcM!JIP~$;)91)i?+649TVAw6m14v^ZEo_4d7Z<-)GiQTp?&u$LR49KMt}M- zlHQmvaWLFPwTOtE1c#1@eDF20KJz(|(|_IGXMJXbre%lF-hJovX|IGs2YFqve6!nh z-wEsu#8FlIr6x`Yo_pt!_&|6R{gmucLcv!PDMrtjU5=gThfi6Hzb% z(#9jW#3v(p;Q#ydR;**(=m>eqNCmrjDY}Od6O1fxR42jmQI+a+B09)V$E14QslxId zCA!6|)}pXS6E~i5-5KdTBr0vZ@Bt?q4r=&XxFZ?$!x4v>K{i|UBx^B=@V->O>aLy9 zlp@!V6C=||^^uBFRLe>%3XH;`QKX|bKa;g0245ey1T&)2B~Ssdf{#YED}OWz0LWwB z*2Uh@$m)EgYu<~K;@Yp0Z8kEEUXP?L?g=X5afB3+BbkoG!$=Z{FGrA0exrUy;&vpj zM@ywW{>e!Gwtup-IkWVyB`p$p7||xU8qLp7d0*3qwON?MVrg3H{`U3LQ)d|>nelL0 z1qEKY;KJ9caD@s@g;y8gG>#cnM@eNGCcllQl2(hA?z;evVK6rz z#JyYmg@f4OvQ`gAk*rC=ZZtR!7dQw z$wdFKIEMj35PQUZV%ADfsp&eJ)k;@;EwC2AxDviNs@_ZM^<0}z6O3LIjO%curTSZ3 z(GydZ#&SsC1S)r*{%(e)8d|zxwZak7*;cytUfMtzI)Hs>PQ`*A4lRCC+Ok?c4=@{(ANMbmsKNF0EODS!q*%Cg9R-|n6p zASK84tF0}&L|`z$Ts?hv&vbFoP4j)8{9TF~vfksoc*iHLpKe;eV%3(Z&^pQIHxymd z@-F?>l$zELpTkbeN_Z1b$pgAR<*gULoV8}6xb^M6iL8x{y5(`~icYR-(nRU^`uwPA zBvt{Ime&rGbogVo*_u6$?Hy<_ZhA=1W9dO;g~>U` z-gz~Wv^hy%g~Upy(BkI%e=B2}LCh8>_Xm%8!GUf_MLI6g zlwk$nw+VYK@1l#6{Rw;<)bD2bwXyoXifckKYQI7bY;(8DU(I3IClTsGce$`8<1soy zb@L=v6H7}9RMktvC-JBp`-5~h4>$$-npn#c-S&o?hbhkZ!$gGQN|*!U5PJ7>EDpWI zT>Fd5>5odM@IE%KY2U=`96pT4JT1@-{CBvC7U-4x2ClB6ES)cAkqFv+7OP`3pTgBV z%Jx3AS(S*(n>OP~?SO@y_px^Hvy~phxO?*QWv3&4yRcUX-O7D2k{zhEu3AwIi{F+i zrH+j^C_jvxNV*bCGF5BW6Z5kd$>7vf9v1@KRtlrbGkPpSFkoQ-I?B`++4% zxJXv>ge{ZsDp|z|yGg<%SuGQGk-!$i>AZohbd5Kcl#}Wl&2V%zY>y4l|CKmi)WQP+ z|EQVw^%eOD>BFv!@0wEa3*Qk;)vcKmpDRLvG=iaLHOqE)je81+cl_CQcCxG1|8GNSio z-7aVnB_Y&u%B!c&O}w@}hN;9+5UPt!u^iD?(w^HcJY^gQyzeB##|@x;!Q zMBQF#pkdJ83|ERr)&0;K(j!gQQaTp%B2gZ5FaVg}@m?i< ziNnJP4^h%H2Xhm%SiUcSj(?l&=HKQP`T5tEf4=wd;9J3u!qz#&I0Ap4?tlBmwDY1y zoycYMG6`NIl|Bw%BbgdhM+bvN63ml;!_`$1#EIo!n7GPy00q8ZtyTvB2`OFJZgz>S z@2%7hqTEtyO`Jq;-8e1E>X!`gJ)L@IZo{*L5`yK&J-{aN$qU$U>3qfqwR=&SOvE|* ztk#~YGq3P)5z_)I!dgWZg~g!gN{}h#1z;#HFGB#M3=m~k!&^x3#tq5}t%rN1xkiOy zmOy7<>Csb`agFuDN3v+6(p>c-GiV;$!Xt6fH;>SfDJf-%oYLDhbe7Q7nK;mO3Os1( zl*|%JkY;@-gf%YZ77+_A?}oVA^^RcewEF?Up?kB|b8#N#-4DC46d(4o?gw2wgyI`4 zzJcN!e@*AbGhQcP;R~eOa+j)C#UfHDO!%9Aj+4$d)P-+?%nJq~zfv)oXKmrz(+77Z>;Xbo>Nnx&$#<>7Hq4d(nQDQls7u}^?C3)B( z?oa^$@G%JqGgUTJWkWVWxS@C|zn_H@0EZm@-eA^-*qg}Jp5SW3O@L2IghZ^*+);#F z`fpgBft_J)&f(MMZU`TOUTFS|>n9;>0P|9qS$D8k2ur9vQHtF{yI?^{y(O2n8H75DhlPH_axOIA`5cH~spjV-wmv*P3K8n=h8>pJ~?v$^m^(K5&RMCqK!Im!{ z%{rYwq)6%v2OrhD?W;#(ROZdf8l`%=^<`Kedh@y4to^+4?wZJBSrz%smO(uJ>_I&K z>_I&Kr-N|Ct)XG1QB;uX7vvfJ4LX_HnQ)b(cTMs1<7|u)3K}(cZP z&c`IYl^Ae>NqMJ;HG2YII}FN%JqX%!p0(L` zL6NZUgZ8^LLpA-H{fr7$(_WkXWD2mwmTs@*G}i79wq6ou3Ci3O55KRgo$3~J z(F<%t-@Tff>l4wApir+9N3ynD3p9UVo8e5j7lK>(bHXwK0O3yw^H7-BXbln((14Sx zyx>4~8nU}Jwvq%>WoURFQv!;b)w8zi4gMqz7B<2#1f7^*87gHf!DNbMPZ%Rm?Hhhf zQ2SVhPm+-qWRY5pq3iZN&_aylhLw*(fN9S3(_bd6tuJAAbE2T+99wlS7FCsJt5x9- zqN4*esR;jv$|o*MfH&sE$_=6QQp#o;VMb-(G^24HNju6T;Nos=f!ZbP0p@$Oh7puZ zaUys`ASOKJ$|WFTJ<@Njy}uJ{2mfhP*_xZFu#~7wwg(nl|$`(l5&)z1}>dIn`xYKI`@~2 za+ZrD)e6yq?E0B%NCpL3t&uquJ}(jrx&FJdtyAi&pt4iaS)+F~bPYF!P{L_#i(gVM z{d&hxjb>^WR_&rz8;|dyeS#05C4*69)I#$WJ4##y8xBUWcQd7Xk9^iPFVF#lEK(6W zw0C}oy+dX$MPBJfZXLQN(z<4EzKGd)m6GmTc%#wh71*Wr^zI-sf(T-}NTx z3wg;#_R3bHn}HcS>~P_^UUjdh>E)DyjAx1Dq-0Gj?97tJ`#t|I^l$GuME3U)fWqBz zddsnAXrnwhFkA1bBcRm23tLEN0}OD4BGE+`la5El4ecByc%WWVYqD?j^^o*cml8+yxrC~L|ZRjEv1PMmT=%Tx{kWN#+a?) zvZpq7=nf6Q?nZi1iXwmobanPr?Y#h9B(fahulHg}fMSmZ`yL0SXixynXi zkx-5u4-HFQk!$QEnnxEY2>&VHQi}RyUed$}mQ&;m%l&F8dir;a|1-qXwlN$&#~U?t zeuaK!ZB2S{4PY%u6uHm7M|`UGYo#G!z#uZv?;a;cJ)M*QOo~1~;XH^j? zI(^#{wr@*j)_C;UjY_uzrM*3EpJw|@(q2Md&42*z1BRWQEenh9 z*IdT>GJ$eY7hwaybq-GbeR*Ldw{Q<6HG?}DW6wRcT z2f9!%1cGxM-tlD|MOEB9st-i@n!pUvZE1G`F^*m|4>Sieh6d=LpLiD(&j&Aj7`#i%Q94s@=R4_*KRj zW~4^in>cg_Vq@4ZO4Jb{@0|{Cp_x>pyB-2}yeSkK0`t+Lpjy+|c1=0-SuHt>)C*$i zR;x#Hv&jM&i12#wk8o}b80Zm;^|xAL_WPlFpG6>T49pblhP}YtDQ-!E2_;)HPyY)h z89>z;dy|fM{y?RnCdk_&L2|jr9~va;`DDISlL9ilA3RiiHsZ+Cp6aGIBoR#~&gjk_ zR0jLH{HE0d(P{%fP^g*urqvYsVATklfBR6uoP+Pg6yt=75GOOu4ht#Cg@bpO+7Kl^ zA~g!rCGb;sVXW=As*b1(adgZYHMa>D@cWU9m|2qI z^)>~}@;X?h5V}b8)?ZYdm*H+|A*R!k4sYwD`}EnR%48E%MPjuxXBV zq6lshmyVn(>M$S5t1qJtW^d}%*Nro7xiD9qBthGVV75_H*IAkZbS5TH&@X=ioS|uo za*b;eBI${0UlWmYa?253G5T1ij^%8Ef|9v|t`59B#HA?FeXvv>08T)$zk|?Xxudjl z=g_oP`lyC{Kag)0_-3Iz4B^c}zd79S=8(?3u-spAv?XQ7+z`c1$LTXp*Tx;G(gG~) z*hE>;wm+csb7=8gcm%wC?@K1kSrd_ur;Z1eV?V%`_Dz#x)qY75z+h`xgCGlt$Lq{_ z*u;susTXDd;}1_L>MN`E2ZZ9}5PU#2UU^ z+jQOE3>L=Xvt_dy#OcvE`~h~e<|P==*4Xgi9G>8I_BK2ly6d(95)sm}PQxp*(=kq? z$4;-UE#Z0shMNgdr}G-M*zQNvBH}j;ABl#QI&^F7gJhxJOTW+S0VkV@`Yx|)khYV5 z1I$-n6`1E~b~&|y*&-W{e@Z%gOe*yBp+P91fc z&F6`d_}b=Xj0pd*??{+mBI{L~ggwjzZMQr4Buaq70{}?i3X5)##Xpx5ji9((hPRXa zO4#IrogTA{6Tx}Rw7G>@{-%L|UMx77MP(`OFUu06Ov~UFgK}STOs^WqFlhSfhN2VL zW9Z-~%Pw;OzN~ta=T~?twk*ZZofeV42U+nRM_wA9$o5I+j5;`LTb9;@+?eH$L7GI_bgZ`VzHwpVkw z?EzpFCY4TPsx^i@|(QXW0c+6rmvQ>G-;?p^wgcW9FyU!|Oze$!6uHIK1Mq`+@ z_+_tB(T#O*#qh@N<)YB0wW9AKP0c%b*)a^2H~|QE7!~7|QIE zTYxYrX3@&M(wHLQm&fhYE9e)6j&=_1qx>}5_H7*&0h5H?fnBrNJgbk`+-g217m1ox z(F$;vU8W-$Ro*pg1eQHn2ZdQMjSkC>DMW8&IiLt67YnACxfTDcR_M=;Mo*dX zZfzledos*@Sr_;qrJNDexSTDVM|1@Q0O4V zp(B{|{{_~Zl2BER6b_-wzboInMk;|?cuHz;*(e*+sZA2MYz^ZPB)-$p1XjWDyZ4c&fkenm{MYhxUD-cu6;|){&uzN1TTZ%P)yJK_^F_|Pe=W81E+XnsL|tpUzxeur zG5uqKg7A0Cx1Xis(Q`cP-H#G(P|7F1?@UM&I2ACA<5>$XRpT|&jqsI}+0y{x_FzUY-|baJL^;t@)Si$4e)(=7e|6B${=Y~6e(Q~Q z2cx&yH{<=}3L}85r*F&MsG_LR`V*P)>?i`s?*=_2kKdNxzV)c$tuBPk_djhvXurzd zW%)IX99wUlQP+U;5Rsac+Ab%_$}Q+#M@6RMId$PIH>qlXy~zdixs_NZB4;|Ej{*I@s)0esDse4f>8k6;m6?%VrHZ zcK3@|Mto~dsK^ufqacJHrq3$G8+5CJ!T~Ci7Kjlz!CLH*aC@>UO}CgtrrP)por18c zY>``szeO8Ji72pX)B|cfQY{YC^=OjDFN<{>RIi)eUaQmQ-eP4XGP%E1)mlnC!KEVuG8-Co$<%w6X;vNbpY_N z2yb`VO+NUjQ?2&JRbTY_d)+=C=YaFhb(4S1Zkz2xKFOaR?6nV?XMBhdc(vaY7oA?O zwSU$`7n20E-#p%HQyuF5;AF3T+&tue%^*-K-2ZoW554Ogw_A4wpla(3U|)XEfJb{R zgm@u9&J!Lx!W(s@{Rum!t57R`+*!ub&H5;G66XQ1!%T1Vi%-pHf|<}C7FdseC3e3-eeq>fa-s61k@GjHL@ zeIHexxbl4nyS}aVHn9YhdBU-}5RdKG==I2lrMI+;J$n6E@iBt@QiLtO9 zpVQ3fQWYk3S6TOXmf;Y1l`Pkxp4HGwqVW2dTs&KS36lIDW&_1HS|O}w1GwL_X1}Sk zE_-1%8|^UR9FkC$Is1^-brh1KMhk%w796uTk~7#^Cn;Vq#eJiWuB8lilJk5?UWu={ zuIjTo7whWJ|Hz)Ncl!Gb*7`k+iozpdpd|Alp%*UOn;Af1?Bw2NUrjSfq^=_IVgMR= zgB)IUUECpQ^!#;D7GN;VpnR0&x^aKjKi}`m=O6H04WmSDZyOJ^IRuuzE zs?6wVyrQ`Z#$Ml`glXchmfy@$2dTmMjIhPOA7ey{R@g{%EFJ)AN$Os_PLY-SbW={^ zJ7>|Pz3pIC8mK)!H|YvNW&`heH&k~ux&x%Z|BOJudS)3zttx6tvn63wM@FV6^R!So zx;G(hFpZ-D#(4=Rm-gJ_0oFCf#6j6!V;x?^&ovb1tn#b4~;@ z6?p#ry%TQP6+UMCwJpVSYXJjZ34Rkz4_u*E4*sFZ(=hoT1|}0xQa-7q()oD`GaU!h zBmD@p8M}+w<-%UrnE?u;hlb>$uL=#lDaWh}fdwO+V=qE`KC$8-$KYP&Z&#BSsspr3 zAv;8dpmON=zb22$rdB*_3&{s?e+Oe{k{r&^tIP6)XoFA+)k1EtVi)q@oe7JkDle8o zY)y9fvv5npbr&;)sPhryfstsfh35iG+)2u$bWAC_f2ymlcDgd7eab@1bmML6l;fJ1M}lW5#HIL2IP-XsLd#REXX5>sKln z9!PH(XMW?JdoXbZ&jlBoHHrS;2()S%b{46~#NB*o6TXsWf5i%2*$mr-aj*x^Wmf3n z&wZR?&D$b*rIkB*%_}qe^tM09a$e{&ZIqww7=w`qjdIf;STmb4GNHny_VsV+46Vn9oziFVmlHQ#}*CVYVU%dfoL@tqc2OJcY0GeVXC9K2aH- ze@J{MnS{qbsiuyg+|9P3Rgj{E)h-ycHquxa>8= z+^{F1mMHExT(@g}$IUgj2j_y>Noc&{vrpw6$KSzh9@dT~=VJf&Lrf@k6Y?p$4*9ns zy9)Vn$aX`_Q2i2eH(<9Rzx3E;$j9t1QG8V-AGAs}@ z%^?QZjD)}%cf~?0lObDRYP?yXg4M*lv{vE9t5nd5fg=LJDX#B_A7{c&Go(4ON?GW{ zn6fY(-dcj%D-v~fLnE{NtqV7Q|4SpNL9twh`Kr>x+OR*Bf;jzLcd2r?p6o!5`Q}Fs z(jz;Q`3IJ7?|iPMG8?+D)Cu;b03)f!R8PKcK2h?Hdi<9U9>dSqw9H?BR0e*~115=` zg_J&%DQ`mKG-NJXbJ0NvZm&ZYFgJ0Eq8J((g82M4G+shBhwj<=JNfu_`X)(S%Q}rFKv%0}RX*7c$wgd5o(7*6f�b2q#0YG)c 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 z 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 z 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 z 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 z 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


    8BqC>bR-NKia&1 zA6Kc!%S$;kT=<^^TKqH#KP8y9{piOZaPN{7E2M zNZY=@bsyGv8W%JA{OSI8cy1^8I49=J`H$_5AAVkk8CHZNw*hDTw57Knmv{R+{4ZZL zv%~G5ejNP#9XC9w2p|Bl>>@y@X>M-~a(&dfg6z%h4a9R1>e67!_U?VGz(EC(CnBcf*?3YWp-7?2 zSfMGIg0#Xk$v#oi`u7N7Igw?usqgO-(E(&wl~ckG-+lihE_9`;{qQqheQLXaD7Zh6 z=!YIKF!3is^ZdxG<=EXEAY2&5Ht(xqs{KblY{7M_KH*3{;y_NH+dtAJ5QpQ*bas5q z(>5RdOf(q~&T5f&w|6%2X3WRquuORWJKsNojXX-q&m4>(VGHjVIAfQ9Eo2&A_dxMw zXq!rd=UwkS!kcm$PQ%L(x|#CC-R=AONC1466G{j8yH7+*If+xgP_St`{0;|XfoqafuEZa!}Ek)wU}1w4x}b$d2uPecLxH( z<@c^L7iI-%VH>Ik>(cNKjkRARA0%x?PPhwGGD_hoG8jl+L`jBkbHUYxzyAIA{rl{a z{}skeMX>SH&v*OZ|19dEg+p*v0MB@zozTBW^l#{|iyD(zypnnHMbssnHG zuYLrCE)bj25{{>e@p*D}gl3dnc$LsJOs2>c(wq%#!=6xs%Fqs-gePBcobcg18PN?RE1x6;vSz#qqbVS<# zszYKpRCtu8bEL&d%%==kUGK|M4@TRFD#$!Wiox&mep0G}+^9{ZzeB@^*N-1jj&vej z&W>Q%?)RSjHBh1J*6w@cmbP+%!G>P(n8o{p12|{#J}}Kk@Mq(IPMUIZ-Ry0%t-Jee z-Tkm+ck%vr2c11Wi7$)}A$<~Gyvg~jMVtKso9v%pi~S=$e$||1`M{q%4U?a$Uszu! z*4L5j)<_FS@PFS~?++Z_eMQ|@)O|(W#}u#BFrsXLv{X(f=v|otw&p-xO=1(G`zw31 z=`=48bC0)#$PqQ`8+yRv zR2(XZrWigv4pR;FStmzF-!c!k*M?#(JXlB6JW3C@C=~{hfpe7R<4?j|`%vCcPvqr+ z&ZNn5v!bK7D!j3~Emwr?)m+_Do;YLXh=gh9tcFhO7nHYP*jx_Zh@$?duHxKd=*6Q9 z&y?kA+mOe`SnEs97mvFFNiSt9s??zE25q(~44*l;n%VP1d?tJrmQ@3Stj!q-pAr(2 zHVU8>j}N>?0chmS1ZZ21)mMPTsl@q#gM*#*`+W?u-N4GL!m7Esjdg$bo=L-0B8&o* z0c`Uof3o)uLo_fv>4+Lw7Hr%lZSGf3WoU!qZqhGhbf^Xi)xYTFyarrTZU$v1Dqd8x z@TDv~&P!2vsE5Z_oD1sn!t|S1uJ!NV?JUScM351z;SHg?N%V41EYTvD%NtGBAcJqr z%V{`HC_>DYZm%B()jfO{xCx@5fk*TJmc?bM11DG;q+2bFso|FCk0W$!d&WD}n+(Zym7-Qb|x>=B+S03(2CBoXT9lDcC?C zJGOT?P0?ox1!^MSJqPMBKL-N!4A|~hD&zWk-Mi-|{qy+fQ&K&G1CG!7u%}j;q<@-! zS&&(F=jGj5M;$rq=*OSJY)Z!h_31Etx@bw0Ui~{(&;WdSTDuB85uwO=P)Q0tf_-Kz z$FWUk)l+1~dGrj6p`l?g3iy+f$DY8!`E)U~S^Y?c_|L0R6D5UsYGIjABkWf@0foSdmSI-}0lrqp|L0kp)X15J5o*KX2`AbIFd1+v zPu@I#7C6N1`Do!>tf1JsjEj{hkGWK$h2rw6QHzH|m6{LD z?9(Je@1<=y;RW3Q&U}pK%t*SBY&Z<4IbjKrjHYXgBS3z3^ejs79oX(iy7>Ap_$*Zth`Y-(UEGjD?&=d1Jio1?DKAecfWhJ$;xKs`MEnE1;c1f%{l}i8o(->B-8){GWI<#t^U$HNqJjSGeBr zR|j*C<)!(;%qR>q2T;_0mK?0h!zG)|!iDZsXw7oFD$_9IPUCN14@-STHCXu@YR%i; ze&``|T}ADc>I=7Joc}y2>VGz-8l%R1y%be>FI+~NS}Y|^t!mQLk}1hco2p6w{@s#Y z;-5k(n)JW_`EE($3t6fkU+#VP!+=eKb^05@UtZks1q2!7%Lh|(NXZ|FA~`zvS?aYW zy_;$A{NlG7DjHf(3fbKW%kM@Q3%06Bhh3)^3V~%P8^6&#G&JJQMtw4q8HwU5+%Av)1ctpo%C`x4m2ELN_o>m9=^IoU-RmA!`tBaR&RrJ z)Mi0?&sAs58_t5+gTZLlTlZ&_KMf}0z_HV>dWt*kPl6dc?U%un8a%d64&-7U{Qt}w z9xr%|JN~aH40^(tbLGED(Tq|9M@OjulB;EyENZ2=`V?)ub)K(LLu0m8q+(H^1 z$|+3(;ZRQzL1G<}FNU_kG@s6DzYHv;6Mp1~LQLU$5`#J~kO-B^f^!lG3IC6VOXXDx8`a&xA-A}Eg?X;H$kBUp zyDFQxULsU_Pz|NpRNa$od-47sd4hq1*3>q?>25pX#C}-Y_KsYjd0g(UJqZ#K!RHXB5y86C>2g~;M<3bve*gjxFyks| z!;$mvO1W^&yz6UdABwQmb>S?&ZF~TJ4+k=|#cBA7{MorUB%Smm4x?COu;oVxtO9y#4g}MI1+QgbN@b`RXgXZVN?Wb!{I>QLS+ho9)Oo zX}i0;?t9a|o+wJwJA7QIu?7~38MgbuC6BFk)RO&bKRGz?uB5W=@CYE}(>#_r(noGQ z*AQK?e!m}Ut?K4k;3G>G!<`PyvIyo@bczmICB91_a_)nbBMo7o3Ce$v*a?~PMpwBKyS&uca391;=H_0M}FK6j%`v#$~ zT=IrAxN~s&QAe-2^smcIAu&NhG7vlx0&EAbauTM(D_}7YW(8$ z7F}P%l^Fy%^pmKlaDk%&!l8niURElfS-_llG)233dG+rYy`iO|(p@E76 zQL>*%>jU&mVcs$XbqNpIK?(E_YHwAA<_WN9Xr2JWLh}UZWBsQl36PH#^41ouM+pokMBW6*w#kPdpFc%(DuXf&K(5Bk~aYJXzMz>Xm21C z;1zQN4*AK=Xrdc8A-dfr@MQ#SR) zv60l8eQP#ZB<}{LD~`t-fmJ&#%xy6-jDHdocJqEkZ(p~e4Yl_TsI;e`)Ub;vSAW!Bd z*vJR~8cq!1kcfTJB)Uw96*8j-H9^aAbQ#<~Q5*G7?T`xgA|64NYNKY7HZZdZ+@|EK z7p&JsNR#R`^%EZJ0u9IJb|ZDu8Bwo~)vV(y6Bov!vr2l59%Q7IQmsG|#Uf{6xro9% zs*-j27#eLfIU8G|)f|}lh-dLER#95AgRZB8Vaw7Og7Av|7=rV*k|>4evCzL8@S+Ob zj`HZT$=lV|w{uB@hILry7{nudfUm*p_XmS|tJVf|v|EEqXy_+sXwK337KSZ5$}c1# z#0^z%x@R*%w~R$?hb>RUT6OR@P>mHcNm*BC#4P5bj27AAD7GbTEfOD&maZtcOv315 zg;VDF%NO-jD7tPUHMfaWF?L0!mR~`pmWoV$6JJzMaoN9ahw!!gHoGIs3o=YD|MClV z>*ca(`hRY*=sksk@YM-G(B94_P{PaADBxTa7{#nTyjaW%@=eep zr_L$NXzmt3;4yl00IF@(el!ZbJ9p%}lk)F?ks#$Wh?y9+ndx^3&!ry)Yq3I>qU^i< zp^~idh0q%qlTt1~rQypb2T30cK5~exOpVlSs zQwAW6`MYKW%+dqrF9BtHjRR?(U0tX_6vgOX+b}c(5_}S#fpjNaCg)WMXgM5dlcP~?PCfi ziC@?$OICFxzqR#ICX4y9P^BMB<~6B|c_>fxG`*pD-Dx?8Aq09bE#ikr73GTjgUCyT3H59@RvVo*!f`N5JGCG3Z1_BcA&{Z0wd6PtiXDDdwUBW_N2o;Sj z-RsKftRy83bg~pjE9XfyA-6SH32BTFjd3}Cx3AFzplx+Gr@u+t6(-}zXG4HnRQ;O+ zO#y6-6=Lqr9f@Yo!yO71abg$M%Ja=%UcQE$6y? zt!CHPnGwG|>lc+2&J3k+reEZ_G=-%=4oQmQ3WrB^a)!pkt}IPQY`6;8F&=tVAk?Z! zH~SQbq&On2R-iud#Cm<@fF9_GSl~gyxLK$HM~9rM1Ap;avBTIJWPw?p<}}Pm0k)huId_uns=L;ws6e z%BDOR3d|*sv{G;~BS+5bSyEQ`LV+SN-a^ep(YB<78@PtzKV)?+-K z0xmZdERetmDCDYahr$1`i;|~I@h1}`h<^q6hVMjXE_Z%>ERv6pt!;p6JOh6jId%v) z7|g6nQvV7gwo_06WPS6#3{yhyn0*RW!mtR&B55rF|FA0OE8yq-L;0KcoWnBYkBK}n zi>(w^TK6J_6` zeagPY3@E!}G!}=nn^cmX6^IPBg;UlJ;}STbeY_gv8ld=-WL|3p?v1?d!bkB(y)3e2 zvRU==jfQhTG1Za*aT_|&t;K^{ajxq}mjntRI3p~t;y7sScvSoLD^k)(8l|Cwk@bZo z!;2wNhVKa^UF0jS!Yn!EMCt1KT+mN>{}?W?TGmjl4$?5VJlEHHb!qgR!{w{&HrBwN zeb+u*U%QQta36AsH`+57(5NEtm?KKrcW%c!YD-a%<%`L@J9p~uayL|PJ@oHLB4G{K z!o9F$cqD-5+V3zHmyhR$pdd4^9Vvgn7GW2VFO>qMZY_yAxv_~KD zUmyM@;RH6piR;>>Z)`GslYiB`R0fHfI*8c<;IJkJ^!rFmhPotp5b&(V&etlz%V(8q zR0=dPgxk4p6~lcstBEj9Pi>)W^h($;B`EFWNLySPHA)6J))qSeyA005Se0gmxp4-O zWUq~Jd}EqBcVP%ng+RxvH4eJWfX1;Dt$Y38i)3ok01g%}Jh(MTLVSX{&*PbFpMFy_ za~o(S23gR!UE%tA|6s10qmyrgk-UkO+inR5^(`M&{(f~J-=H*nq9K1GAHQk0OZtOH zFtb&<)mh~iAeRfiJSKZr2Myv84~$T;A<}t%qx4YF6hVG{9Y4sqzAxZlnOt69Cl59$*cEzvK#tr7I=t9NW?I-(#g9D*&ySC2FM-Pd+!`t~yK6TODndZtHO9P@H za!<{*45r8yXIw6b&vB((XME6tt38Ai7E+JUBIL`TKn{fXFg!~m-l43h3a^@lORFrZ zpav!5`r|QPid2{ z%%z~XcE%L_wRI-e1AfZeTl5=OoDQC?O<~-#9{y_(qNlJT^s07D5*BsoCBbTC46ibW zXMAwqu|s7%r_VK)_8Vf*mUHjH2_eGT&D0%>nSyec2Bv568@Tq6E;o+6F^6Q%P}F2J zVvzr>i$RUCjMS+c4bANa8dQKWLLsIVSbJ7FS7I|8rrUe>E4X3xnbNT;bIw+5++z!GN=X;u71N zF7_c!I7W?r5h5_IwD?wC-Nz!r#&?cd%hXYSOlyNhxkPNPjAr#DwQRM?}2O^rW z+6^Prmq8JXNxLNsX84zD`Ljtwz&&ySTdlctzmcK-YjgnMdOcXayCtHro{{-1K2~`E zSGB5UZoQ_}tjE#^F&U8J=As7wL$n-B0`jCR*^b;($UbZK0Xvtsw9dkyW2@K7wPF}P z95h7nxCk*WSLUr1cdL6L03|G1?)6Iif_ci^(#oZ>o_cr3II~i!JCYA&Ko@Zs#^|I1 zT6Jc^Gv{;r@Caz8di)Fx>-0%GNvnv0M8QGE^(iupnu=C6gl!${-SG^hk(6NG&%hX&$TBf>?TRro|%8SQHyZG=c z;e+CX;rT=7U#k3%l2Rd-QTQ>DFT-8VL~4pt2uN9<9A~Y?e!P}(_aZ9E=)C!!d;L>g?Pq_nIc5pHNZb7EIlLXj+-a%vRrc+I$@P`xi@>M)ye zTV53-F(!>hxU?Gu-P2$)nz%E#BFCOT#R6@SAmMnyk~#2s30$+*6& z1(3I^kR_9-bjge3FJxSJEt-TMjzSJ+Peo%IxcqdKDj<@5olnBbKW5YLB>sRLL^0-a zX8p4-^XM;?{J5axM^W-4yYO>%>6a9L9$*T=b{a=ClIeV2OEM#pwO9s9N`V;1Syx=J8dJdX zglTdsn+Me}8MP5;HA!kFRnG-67`GFGP;9Or6p1pBEU$t00n$kV(2nYLeWEC?Z0WJ6 zi&uvJ>6m2x*HRS={Z``MCnT&9xCl!wa}h1qGsz2-MKp-? zT1hL0p)8mXNAq1m5Mcs4A?v+*it%ET<^G{bW9Wl8UQ1i4d^jM z*F*S;??O!d3ib~SfI4n#x=p1STeln6)r8vsE7#O;vvc;7gHHRYdO>eko6!D&u`VZt zWvwAMJ+6-(E+}Le8iRW{Kwi?$Lfhn8VG5n@a-OkWL*vDs>rAR@>fgI}etzCR{|-R? z} zv9T@w9jF{CB!_b6PPlN?Wne zZoC#`ci|T1X8WlDQRts?nBD+Vz^pA8Qdg#gq0Ryle6r3GVjbbkhIj6Clo5~=dQvO+ zyw$xQUmLvKL$Vo?YI&#O9~f>lo|eJ>I@@6P+4?}}jKTGbN|6qjw1`&Ycp6>6CdwvHvZR`! zA}fUqT9=BgsNVu3ki0OZeu;~GGfhsiK)9Pk?OQ6bMJ?u20_M} z4MLReXSL^%IEa;`CJExT_%Ci%ALQN2SkwK=n%IF-@4kJ_hqo(#w|{?x^x$pk_{n^z zT!Qg^TMIVswr$1T8u08lHu1pP{@84k%L`ov5WV1^>w;iPH>VsV)xd;asx^RWpLR9C zrEtZyGIf}*=JnQX@%o{9HsMnq8W7*s;JwOz!LNH}>@(V@_d zJyqV&mZ{fv-1KZ_;IbQ_@@Ht^{({bM@_^92?qAin4l6?D90g_T0*Z-@jBI{BO~5t!b?mk7B<*AY4GY#Ei8= z_hVWghRaQp0Eh^4(y{lKSbKvE%;iaj`kZGE*Wk8@m#vz`P-B7{r_qjZ*^h!W zpb0Mh<}RQ=QDD-I1(E4U8ay}qsI}76$0&!LbLXoTvO2NjQ z6&;!PAaiKn9}j|cX<%xnl7o9A>0w*BhfvI|HP|R5^kc0f4de>HB@RtCJ`z9q(b?JSr0LR zhhT=lLMGc+&02c`H|W+MBx_WY3fGqH&Yk38F!10Sk?&V5NzUSIRNZr>pG zWmkjYHTzQW41k=M-2Nx8wd1z71C)-g+B2Gz{L!JdntYtMTTR*~lTmQ2JkXLIP1WwC z+%(p6P%`b1NAl-*M97L96;F8*9s@h+eH?${HZkY|7)OOa=(y4SBt)%0GCFZ)()WzG zYX0@X2ja>2{^)N|YxK76Zwwf5rM~k$MWht!i#P__^50?aX+$`B|B3*^r)OT_VI3cJ zg(Gst?;pPk9>Rq?4U00~P4f`n9?UEDJI|Z{ja5kn-CUtaK{;zjzEw5`mk9~X|D9b5 z;{sHeJ}JWKMDAl&OW%9IF&J-*B58D5#p#gx?sT6$6Nnljk9uX*_`0Mim9t4gLN zJVh^RFORvjLZ)Kx{20i%0;gdqoTwY0+^9;)Fv_zN<)2u^Ex-f$nj8PB!ExnRRYs11 zE62(nl?!rayjs%sOC--97dbYNXojLso#(|TfQYjbUyh3zWAp2SWn$xea~JvBut?*- z=eB{eLTi@(zkCncF2WPToB*HCVNvyyoA!nV;FI%qq+y}ZQGAn6=hKV7p|gcBifDBV z{a-$&rqCWKKAn#OaS62cI`@M0Id|c3+m;*cSUS?we^@Vwl-x?Eab?lI$F9l zR^vWr#Hl3hl7eL1u0%{qoXCAqp_e>6zJRK2+S~%rt;BV;i2GDAg81KTpSoW0T=&p^C|? zq{eP4%^`V)hukU5`g;F9I+3B%Tle;BpqtV6z9tgZ;&*BrrOEFu&U%SLvg|9#fTroex_*<5{mBJA02dMA zv#T}&OoNqHet_BEyycp#paTlUTjO2u#)amSDo*#nqVk=H%N(WMrq;lF0^|IGHPZGj ztQK!Tk+rip=huY2l!NZ2tlu^ZUG(bdFF7Xi2su{@XPPuJwBIB%t1LQ*>JeIS!gCzj z=naMo`xF$Qwd5^CpmBOD6+uUw`J0HV#yPLP>YP_gpYsaNIfbLa*JS05+M?sGueqZ- zgGAth9fMA=xFXZ>yTu%tcS0A-b;Io|*Pnmla+_RU(;vH7ywPnbC4XRF58QP~64*dG zY`D-y1;RDb(Uq)Gn2u-Y(gk0$_L48!l0EB0EOk}w8XYU0@mblLsFjM_i?KpZR4c#f zVlLvO>he*0Bog%_9CGYjHfk0uM{)hNju(`~GpAIGwHmj&rnjvp-dL5+UXAWHTNAym ztD$^d4>e-nY)$o`@P9UP6N}JMIxXCpwwb^cCeepZVo^B~@HoIB*e1&XHdpdA2xlAf z(4}M0(7d=wse?~m+K&WTt0|qGv`I4 zcO~3xOnPH<&`X#B8)4JI*ncBqzM1^p5+&Ert zvbMpJ^jN#3YmhYJ2zxu$9@$q5Da7C_&#ha=F*^%(-!o3P+)g*Mjy5iio5;pb z3LvuZ$3)$gjh;HMk@`5)?Idx=t$H+8t@CQEuc_{lY%sYEz@QfD&H#Fn-t3VS2EuD|1Mbl#f9(Yft$hM^;CX((fi;lYwK5r>Eh^4Uv)p*2T)KV*?6Ht9+J z@ZUIh_iNkY*UQ33S&kKJCA!{U%_{XG)}^j>P_-TKS;0k+ji)p*-r9|Z3eB3G$XKhV zMNO9CW3)+~{cWwr+?XeXHb@r7g)|x#T;>&=Z2OwFXkebs5$rOm7w4U4_an6y z_kjLX7{rFm8eV^2CkoYF!tvg)d2Xaj=DRAor*&KEY`vw3p^Y82VmR@8WT|aNi0!!f z?cGkS-F6(k&GE?EWdjFf6qLuecdn7I_Cp=p+}=R3P4s>>w+LANV$(*367uf|YK$_A zh1W`DUMpI4t9u!#bmOp?fjR$HqYJ18{lc03tu-WP_mFOw7hgEC-3_B?t1L0Vfg7_0 zg^godjbiK6ii6gAsp6jav3)XcD$n9p4ox#)^EL#^H+0@6uHZU3PK{)9q-2W*;%VKc z+S3EB4T}0)U>?yy)GdRp)~QJTD-O$9fq`IZ!C@CY6G#%gl>iN5VOih8PFUzg6*SP0 z?#~ow!fJ|zvnkU51`CG+_|q1yrY*i;;Vg{(6$@7b?tlNnX)N+5EL?3i3l>h5y#2x% zCYTq(AX%q;5-Gv~2-g&{V?ABX{n+F91GQG=eT`QF`DqoG2G=qwC2A@cl`R=LfRD+3 ztg9eoF|`lAu_stTeHgRbZp?10k+NrKyV0^GQ4m`UZeYHchwVRsA-!vX!ky9{*$={E)y z%uf6tgbtvgA}AlbeFu%)>CRSqd!5BN5iND#$|Q=VGTklJ+Pd`g+SIj7Rl8eiY0>Au zRQ;+&8*hG5(2>^x($uDAL3VvTP@zY1s|dIKOk`Mlg+I`?povP_Q~P=L8WtagKW%0i zi)*;1+lH1Bc!$um^~h=o*7&;f7LRhNdN9@{${9guPz;69od&~F$3riBJ@Wc2Y^8(T zt@cZdS3jgjMI4_9MyW!W71!5jXAQ*!n|yfD1K>5jFWIMpLaN~tfdNwV#Y+-fC|oTs z)!NN%F#&ZbrEfr4SIjVc; zm&z>v{oNcLoR~>J-p90=ndW9|8+TLh-gorWek67#?af%yE7qd5bq4LSs$oqIowu$t zt0ZShZLRahdK=W-n3@}ZRdee>JGxVG?{LMYfgm4mrV($X3_B^pdlQ2uG|9l>Wy|tS zTcMGkf#&M8m!7M$P&)_0kBKzChsB*BH51{LI~EpE=#nwiNHpX~6iGv5``sc)lv2lj zcyQnuZs3WeA^}sOg}6G{SfYvw)e%#H1KYa3UR|o3$DKIBK+^{?Pm;q;VYm}vtS51< zFUstv8V@t^1C{ri+4xi^F?37zC9~SRV6|4Tx>fIzNpD}6#O)5ud`g(Z@dI*m$Q>dC zW18edDA(DfgcRzk>5$7-`7x@bbFl}p{6#8xzOJyQi=%%)0GC7I4)H0H_$7C_T)GjP zpocsJiHQjk1V}USIBNpM1m+|=HGo4QA0@*ty7T=0`rVdn{*FEkC_1Kss%SqCs8czg z1262YtI?9>vodOig1vQJlw9AIftdYXcpOvI0rJER2V^ERgmA8>=vgyD{XtHauF>xz zrg)o?H$3g^@$?q`F{@P!G%t>m5o=-mNoYms)E4e*WUk5OgTmsGM(#A=a~Y3krz9wg zUc@J)-OIW%dV$@@n$?5nx3tNNwzMfTZfdhOdj$%}oIJYROClc1iOUGZ-+RU`u~NLR z_X2BW?@Hk^U{vw*uDQFtbr_lB7fH z*B`THzcytRTeLio*?KRw5tD_y7i%lpb~B0~iVA(&qgQybK3Gxkf{84R^h}%}kRK&+ zv^NyAt&0X21xwVPp&Y0aGu4gkF|uEb=MZu^%&h{<^@>oTV)QoJ2fjQxZ(il5152i_}OxD>{NM1eTtS*Yg58B z8nUn!+|xxQsJCcXymn*^Y$|tgRy{~YiI0B!2F8<5vli*CjPf-)0KRy(TTm38;fvEk z{>-`ta;uKJ8oAAQy4pZryS%ZCaVYk44#i}Q4!AjvK9Y`a3yZ=ni(GvUEtMBWBlZ%eysy_~)Qt#V3wRCG9DBrmmD zK$F3+?`?gLx-$ICYgCd0X;e~}2G_;KrMZ27x!0(4bAP!M>~OEuWLAuaXsbZCuH#pL zfNLmF-8fogdE&8@4tv8dO>p6ZSDMEBO}EEYC31u*#juy&lJ=poQFYqb|g z?5yJ~$n5A@ZF^fS?`HYVoja!3@ZTWj=@9aC$SMUc*_%)Vx|YWTKxr1*vLRM@QiUr} zScGH^YsD7J6!Z9I*03@Ta4cLj@EhX5}!0RPO=ZWh4cgO$gk-c+zDg1e2REPF%@K+i)&UXD+ zHx_m&gxy|i5&q7NOSZw2m{+{`As7_{s9QK+vQJ%Z`qq@i96KtjIr2#j`Fr2ehbO1Q z!#Wxl82wftkRu3)^|SKY7E+Q(4>p8rcgGnDo-c?|u#u4L5w+H+AF2_H7O2#X%TVID>>fj9uRA{t?JpyeYt;%G*#;SwsKZ#Sct z#Oy@3yq0%#l9+wyhIM(~hg{;)kOQd_2cF6=bbis6uSdi(BVWQmScieuC-koK6{gck zC@eq|BU)JEnM%-22*b!Jjdu|YvchI;%1+raJ7H(+k{z*gcE~Oe5zM)(Q9hM}LR%kpzkxyn6fD+I6& zuh%SL?m3k3&oez!D^?5T+tj7pbgrAxCC zoZHhmFrr3pmuCA@qkU+xFgiOnI=eKRH|kuPb)c`~If^?&)ykba=I135j5&!!Q@c!R zmPs*uq&!=?F%}xQLgnj*SlX7~fvY60x!|~lGx*jeqk>i7+o%XVVMd#XMF%9(QGJ+S zMmN9#>=kzCV2ZYC^(Z5Axiw9*O6jgCS}I4se(!S;PhbzlgLWm>B`v&o822wm>lBmG z6LvYKQd@1HCyjwN1GZAt<^+E?)$z=EHkI|NW^Ji7W>!=We#l6AR~>$azFyn$EA$vG z-7$>)+@_IbYD~H2XK*F8n0zyN?lG9#Xc{WDry_uU0$YRv@> z1}iF(XbM4pHZo(Bk|0&l{ zrgG@je4#oh`OZCdjDz@LMej=^{>MiT`WO<*OiRpngP7h85>_AG zjbndfjGgTIALmwDA3Y`%=C!zt^0M7-U%FSUF*xh126xlAb!>h0f65V~R~wJvm$5da zdW*G+hTFvsZ1!jPU$pxaD&UPR_)4dKHOrZl-|+3u{5rkJ)eDj@l6CD&uAblN8ICMb zVbsgcL6&cy#u|?^)GWP(bH7^IrgyymH2(Qo95PB{iQau~K3c2M;?eI0w|qAiGMB6l zvFLBA8(jZ+FJrat(BZ{W-PJv>i71Q<+_}|zYNyvb33MR?1t73}oJ#+tmUqzxk=?*O zwy2m3h|q&@-0iL~UZ_(coEOeLEv4ZcU~F=LLhu{|%QswKwLG0=U*+j6JGgU4Hng}L z>{zci=Rz*qQdb)77z2=HT0EgyhehlP&uDr`lOX_vlQeBp)I9`wnt}S{FFwmw7}WsI za@_QNCpxX$?{{OdWeaLE^#)2=H*rc!Rc_+!G?0$)KGlMbWDOb8pguj3ztsGNXWk_i z;D(ZhCH}3KfKRn+o^4AYYTO#UwB_2(#l6m}`ujE0-CrFas&dUo)!H(c?J6f~T8lVu zbNXe4zFq4qP!FCvT-53Jy}bA5&xku%o7d3?cZ|~xxyIFOfr;U`ueUz9&3RfL+Jt9b zgto4OwTN;67{AT9(ccEqT*8%_)T@L2$E&2}8sRqx`?ud97^1k=qhRuS&V!?3<=#Wb z8#brj@I6tsk)dKov+gOLMmoX}b;TBpVM=ZZg$qOD4u)=9q#Qqv_NHLd$@PEFs< z_*6%k+I4e=R+&XFC_4emo6m7JlR53wP7yeVhqH{DkE6pwSO;mW{k$-^-=)LKG-M5e z#t`L*{PG>~^c%OX6HI^PfI%H-l%-?R?5BH0M#nz;y{!UarB z%DH`^nS395QT7wq2B|jt4!;_pwk5oQNd>yoe_389%u`fgWHsZZd z_u~ov3w*R|-h*{=8cqj4DE+V`FGy>N>9Q8>&Rc*HQaNXh>ei{7pbN%-zwd?l^ApcPt0T@6X&BKek5 zZWSomRHC#vX1eO0A&}wL92#s!dqZketTr8@!j|dW z%k?+#e49#KhRe13x5h<5<(|U1cCCyaoP#D2{oocIc1@3-&u`Q_FljwfLkRKEDXR;| z7;3v(f>c~EoiPbe)and;uUpg*{&T1g+*DA!vHX{w!Jn;XP(#kv>5)(*AzYQR9_rgr zpjXGbH`nm$sL~orYQ1ObLY?jMB29F8Qw596sy{^TpfR1vVeS+MR)Zp}Y9qo}8`0Dx z*6^?E9CA|4VOO7L@eJK=VR$_oFaPVGho1l2o`>oePE*@WC~@x)zCyPmw763gdEq)(a^-Y}j^6?C5+w$gcf3N!;utVL#+$-Id+64`pr7xO z_*}}hG<)?CJ29dX+l&`k`NOUQK9f%8n_O32<1RxXAv#he!Z{-XEH9C220E7X>LML! zL9;Udv;nY?xW>jBRgXJtTLefVuFxfmF3 zv#u@R(7CWSkKTX^#gaFbKMpwswV9?=o4lMg;05N%cXk-2RxQ+BZ2aJiVJ zeaxNh)Pxk><8Ns}D@6^4v6jQetzcX2#|Hwe{@DwuKE$up>T#@>I34_}OWkT@P$I8| z)uI{3wRzv)oX^= z_^#zy6#=QaluHzEU)^}|>c%abv-HrGE!_c9@eLpqdunj1MPkW?7hao@(Z!k)ygy^Z zR1oGRcB{K=bG4Ui_lBZP65j}a(RD1_kBNzNJ6$`p&_)T0R_hcbUSO^#U(9rJ65%;x z`xAQJs+~9h-uLjrUq$MkJAJFiTeQi6W~+QWkIaPs}X9p%3w&wE$a`7Hr1v2Qze<1mF9!welwyZjnIw`^*?Do2WMTRd z;NlWKFXh`Vd_p!(14laKUgeBsTcbr?qkY;xJqV`rR$y2N3Apgf%zxksD5vHV+=!NX zo-n4=W4x*NCY3TVoah}(_s7PO)|4k1$+b|UI1t9c zvF3$wj4loBW1{#}S|-8u|I;*84cB#PE6ND+jaY*97;%k|G2L+l+eMpgxp$?5QIyuh86*{;j7-x9NAqP zGUU~u0TA>GBp0crN=J>37pV5a(usfL3EcDBoB5iDEL@E1>vgi`mJ8E-kJowi6YEKU zmB$})c&yBh1HOKXN8cI@H9&?d))0%&J-XUWOC93Y9@gx#EMNX~4UNuB0KVeNXxUx2 zo^>zx>iR+LGg>Q!VwPzJdMoOWRdxCgoxzC>B~Nu_6F=@BC~_>m9bpuEl1#KoSJY!l zx>T3!*ECZhDK-?B7L`KNIPQTM?x~n@+frY9HRcI$LDbB6>p~kbbWtAN;fbHpwpe>O zASaar>A-{sx8!zd2?qWh_{oE;q1c`o^nesKAl*C|=34ZSqn;wtEJy{S;7RnIbuqkf zoNBsxtugOgVAP6GTBG#IP|cwB3G8Q8lETgPIL(j3^i6Uq5qB-7Zk|i$jMhPF))wKF zyQ_=Hkxi&|$sKxWxSo^T1Fg2I^*T=DvoIqMi!S<_Kr2TDrdG9F7lb>F3Oc|vRI>#a1n}cn-NM1 zmT9C>NH&6tgMxuDsI<-yht-cQu*xdwK};N!7WhEt^K#eS7GP;OpkJ^v{8&x`(fv@d zpA#~DksiD~WG#|xM!t~J`mI934*-;uHxd|bDP17XVcyCm*}{$GgNd4D#A0ISNOcCK zqAw#6E-c48IzMr7&w7r(@;3XF<>%Q-$=%7VPzx(S4gdyNIZ4jq%y)Vb#kQq+%^Q=7 z_>3ZZItBVSGFKcR->dnqlk31Lma5`PGfX_KbynfHp-~B8K^QC(>Z;|pAx6Y{EvQ6n zwZ_cCj=QqK#Wlux zu?0+m`t&CWQf}-%S7jf{lA=h7{*=;D;lmgA+$F2b6~$CgWaxNbcE7gHdoaFH6~E}C z=c5atB#J(IIJ#ui*CqCljp(QwGIrF?c z0}RCOjssa)3NSU*J6?-8Ia~xl*ghB!3s|cV=C7#F{o;Vl_KP(@jNvfmD;CT+Qj?!X z@y1?SL|s#~UE4WrZfZFk;=5w+Tymfv5~TK-wo9day54FeDY^`mX#n2kJ-34(-Xl*& zZnmFk_y>SpyQ%m9OL@aQupM}g<0N(a8+S|L84Y1!-E@*xcm`(@8hZpac%+vS5JHf9 zSE1>3Ed}oNAjsg5&&90K>lCcUI0jfV3YJii0tz(Fnjn!Ehsr^P@Dy3mnuqp|^Tzj} z#QUdt;?(<*-W>7?*(fN3HAv!D#NZLudn4uVzGyxrg|G~8+mFM_%{)JaGoZf`1-EMU zE)PovThQXE-VNb&R?Im(gaJ^_Gj63VB4xK#N$XW!3x!7!sk^Ze21C+yyP$lg#D5C> zCk)o(pJ7k%-$}5BetIbEc8q5|v*p zAF6iOfPF5o3LiEfFQ;}|Mi)1p*kNp*2>ufDk@l053=k#{nJ1Fq(6LN^g%?cCMJ9I6 zBz%a09734QOaY`diwB5^g5MC>3TArM4#lCGzG1 z_7AK4@nt=|>*`f+X{Q;P2@L}M1NA=fG=@zF{5`JT#W@hst)yQ36 zRCT@iD$T>M2diaA4xI$MJ0=Zp8-*KlLPC~DrVnuDqk1)N2{w=mX};rgQJt~M)>FF5 z_56j|;%RNai8Y!y;gG!W*=1A;FT`bl{E$q|L$XFRuw;;?{Df5U3aI6H@z$Zr>qJxM|cXqkMcZ?!^~lu@R89nIP4Yt#v9jR zFW{F@x@Wua`!q-9&tb2N0EG?5$;qsUwHfD?XwH9H%o*1uFw>aa3|~7$oYPw^y+ry~ z0QtTXk(KJNuOh?8QR#vQA3^D)vk*LcZ1Pk@SihCctw8aQKS_(yl<`#AozHxAR<*7Bg` zR+0dg)&n48k~hHvv0tqr9_^goJbiNYr`M|s1E4Fwn@hEW8A3x?b?jG_R5)z(e$hI$ zuCDBD?M7YgLuyYI@!kJxVU|mko(5WvX$$;vuxo`>Y0qn%Q|*?BNe@`^Q~5VymT#<1 zJSX<`zd_G8qPsR94PkcaJMd5ECWW&q=c+LFT+ra60;qXST!e)M$3V@0dXv8`YgK3i zHB6D;fL8_6(8Gxtf49)!dTQdj(tQ~Mp&5P*2cJ9BUo$J_7emL7NkjWx~ne)h~ zaf<{@MZ~B){2Cp!q5(n~OO^$;Fb>Tzw4=lj1=WD_@DI{fY0e2EqZ&_w!5$t0YQ*X{ zqDi`%mmDaRl?+BpNy;Y@59#)@POvZEOOh?_B|nS9#uar6{8Ylt=5J(&R_1E~) zARWe4kwOZ-q@@-A0nAg#e<7KGRi0ZUqe!!e&AHThyMc9rQ9mn!s}p)bf)i2a?Dw54 zCk_;G4~_+q8vGSV3w|LsMDMX>{+|B=B+C6IU^PV1SdCCR`c9xrz&Tj#c^|dU8rf z(nrpdC;lmbJyAjOL()1<6h$lB4pB7DHc$7Rb4O4m&hzKb9YuLK`@bFh=5X@D`3V1U z77%*8Cm#d%$&~FCXzuxn7=j!gjev6G7|j$lP^wCuvidh4w2>eN&p*`Y`6nMef|Vd! zU~L5z0Kf1i=YO84T>D1e|B)aX0U9r4$1(0&{E!zb?4yl~V9zHe7DA+S(6~VftF@l9 zmeXh*J$~iE5JZG@?k`>4Cs0M+A~)V1>hjqCZvFmuKg8=W-2v0T57bSv-;%{Il)-$i zeKh`2Sm9DvNnfC!lw5Bh!I#qAoc<;&Nd_~?#^_Ln8+l24`fP~qHIpEpV@!{}&4b># zBem_$!yp-e zvi+5()yg>l^~zDa!Y!pDuGb!~WPpZNo^Ss0@-^hZMP0`IZ>1kud}$C~S!-@5`6iLE zI-YC#VIO{r)Cv(7E096m6~l9+AYfkPV#ld50o3$cLoxqUaEhNz?~IXlleEx7qjW7N zO|QrK=@c%1bf33xc)|(?YEEVF>lkg+~8)EVNgN<5YyAB*JUV>2DA z@eKTB3pi|;{!NamIsl7fDaebor7->ZSN!MBe{$cVV&Znnr{+suV z%VMe4@FHf4QIHNf6~JGO7Ie1$mW8AvM3Nek+D%nzouI~MaKi>&!*Gf!n$UT|Iii?0 zwOuUPwyY$}Xk5mPv6pPds3)ybq{CTi=XtSQJE~UQMaxazIniHZ6;4ezjc8{qtOn^y z#(3iZC_87+r_l6BVssm!-7aD)Q9c8N+uat=-&(Roe10awhCCxP%8Lq4{VZr5q|RT^ zuvnK2D3&nYO{#5JL!}de<8OCZDUG`=dk@6r^|k<)YkmJBPmyYWj_#ew?4sW9fXQYJ z`+=gmzOE>kCVU7en$K z`kuT>yLjJSg;{dSk@@QST&P%={bSg!TGmjl%{E+6xH#9>dTnX!TeLBJjoroy*mLjN z1#~H1?+ACn05tyGuI0q!dJ{=qN0dr)(hV25t;4TXOHq&MA?4XqJqUEZjh;I0+$p(M zYCfx6m*e7v70}7Y0F?#N>{zHS8D7Dl$3&+JFE0sPAUct&(@LCksGJ}CQFm#&RkA;p zaL`D4fWMdhGhlJJI}r97eV3WG0M1{=^OH5|=rS3IMx48waocI!LiFw634 zt-_mpx}bci^mWNR1g_8`*hc!i1g;a4&y%k$xsGXUNEn(m#8C@gjFT%5JjbH z%k*lP-7nv*X_9aEEBx^am@F`f@68&nPy1jD=Bj@b79OueX$xv;@bD<$w{sMZKk+4Z zI2AoXhCiyGTCK`CZq1@u3C&z|4J0&gYqW#5x0rDDE)x2fZ*s0hnFGzYI$pZ^xTX44 zd`50*n1*h@7!}%euaMB3Pr}Mi*)%+fKfqZmi!mMZk^b42dGwb`eq2!UqbT{20dirN zeojwNe#r=f`I9s9Mkq-1(qpX>BROIJYaVO3kAOD$; zLox`JGp4jTp!?@ppUZIFj|B(KCq-}-U!WKdW0lN@tCqU8luO3Syld61Ovz*1;Z$^s z(;-M|uY@ZUonR$||E;KZNN>)ynvHkBRp}s`KcBsUtr_W`ep^W%m}tcRXkYA)Mvq#H zmvMSL!hd}7yI{^7E`Syyh`g$yhH^m4&G0n`%%8grpWb?$ckbxlXg1I+%SU_X4*%O; z1_z03UV7Y~57c7etIVOz*-;Cu>Lu5X=I87jJ&YXIw@%vVRhD`()0IZQ+3T z;2)BG<7l3iI~imb_&mej$PvTf3`p9J;nqr~fEL+K@aE2))jiJUU#K_L? zqb8O4MoI$YMTBh z-~0-TVK+B}OZF<*gjGj77Sdes*b7K-oPLQ$KOWm{LryQ;S4c?y#MUsL^lND4Sx~S) zf?f78DEoY!*puKjwKD}?$zxxFXDxuR`q6d10AJ9y;_d)XW(zPoe53$ve;{N11eOG& zeSReP{>a|L5Y&ah9@nFD2)0Aq9`EVK_*PsPr*SpOqZNFP>Zy%EV15^TVQ+)S?3=dL zc;~+5a@)_r5&O_~KpJrvMw~bdD*rP%HU1T0@Au$W_FGW0U!a+)YU}A2E=Z8pJaN@- zNUoq-`jFfhRh9cY@~eOfEB812<^N8cH2zC|mVTqp-}vX8B~^f@5!m%t@^HO8_E=U0 zz(hET7C`+5AO$v0(98u|cN~^iFozQOyNVT6kXN|5z$A%1=WICGs+Gp9d3ej|OAtJD#^cI6w;WIsAR_{b=3qx%jj9 z9MA+3pD*De! zw&`F-Rq&FHt01b_4Cce8Rj|6+iX`?fPml5xF6h-+)pDEhY;}dLa`>ho^sBD$qgi38>JogyDQ#E5Ma8x%3q$NxbrkW5dX}eu$T7uM~S|ev17!6-EVP&#PdYy~II2t%471(;nli$|f0K;2GPk z+AmS|x;_Y8r`^hZQL&0$3G`pPDh9?ifettMN+#abiwZsYN>R*8JZH};jP*DM_I~Y; z@(=*4pn#9;4;a+`GZdn|uH0wP6Ob|=tKg4n=)S7@V)*SC>tjX2H<$hfikgl`v5y{a zJ=c+V!eRRdo^S~#(tPK;{>FNL9d$dR*mtHgRGJ#+(@U-h%8 z=gq z-Fobu0u7#H(Cg;1Kd#*OBoaaa^IK?(eS;C-KUcz_G6Xi^6zKL3Rq(cQ*ZT&Q@N3%u z#mRP^o*{i5IgXFV#yfO+A1b%k`=;uBuGn`!K%c)O9RF4Y8a~)BRqzhrG!A}+k;Z_- zSP~-&%HrTRz#ZqGFnCfP2ftT+-Wx09AP3qhk5S~ria1E(Q6Bpu?HpD=pH+J?Dl)+J z7qc*~ANbW@DmTOM7=Te@bQ2^@J{1d*#du{36eecb2O43BrJ-_;l}A(x#sdHP{C7ex zX2AHNK(fGp)VP9s(5H zj=TF5i@=f037ti3UOz+!|AB*2bVCvZ=}O$RZ*78O8<4tkdlU@{VYF^i>(k}gXiocwS^*d zE>*Ne?JPv7kX&I^Zqp@dg2pMBhY`s`WYymHthOk(e2q=Fv9d1mimliW*U!#(!4 zK1ng4_q6W%U;uaXI3B&@i`xPmLbBqD^8;02h9Hjw;&qYEa@!a%SXf+0yN zeZOJQMnGHZ?L#2_0LP8}iU;p^_$QW>>TmR+vDq(;OXt_Ph06Rbc7Km;Dl-$P1rcSH zz=?xy|?>jaWC~hbvF;aKTps>)awVLjQbf^*Ne!I0{9-`giU`^i~Q#R+GN$ zTj~si34zRzG*4wFJ``ink%ZrQ==Ij3dMCWW5xIZR$(i-Z3@J;hDj12G@nJ)XMEpe} zR%7lLiNE9u#fgc8bQ2aDa$pN-b%6CQ#ZMvHC==J&93$tAiYy39N^Mr%AJ+0(YlZ%$ z344u`;G3Au62QGvfWF55N>OIgKc=Kv;;y3;+<9Z364a>|bYFc60LzY(V8%`WfZ16B zDDpB108z7}BzOdinFPPG!z6ecvx_8{ChSv!D1SR?xgS*u`M2U|eFA65dNa5Z9xLk- z67I4RxH03QrXmNEE9+JoYz$A{s3o(^Anim7h6R%zA#wXi;Ah}1iP;UVH>eB_7#Gk=G`_X~#(x2<=D-)-& zV<>c<_~$(DB5}_X79lf-9!XDvV_lSV7;-!jv6lp^M~OQg<$lz2XCt^%eCIzLua~om zJBLS&x6?a!J|*rc`e`nLV+@RfU>CypvYfw9KaQ)BI|(j%DGwh9ITAj_fF!I$<&|(0 z`mv}iP)DJkFHq76?#fX_}~I@H4ndVu8u^ijcXex! zhp0{LJL`XnFY#p0)tFu+wKafC2FGb0TT*JI!6%|2i>k1$2*87??cGM(q#HEazvy zuvbU|Q}CDtUlM&ouyxOTp_SzMW9;25=jr!?+O?C9zDZC^PDOV@r)BbWEz#G&$AmPw z+}yYh0D$s2`vA0FGTbtbzuXjuQCR~6s7EoJG@Seoc;IOPKFDMKD_*O=Cv6PEugQL8 zVz7fb`z;B6hdod|di)9UmjuPbRTlh)0NM6hnPsiYRajds6;gTG_4O~XK)`mx>|;uy zLZd44WAyS9D7UAq6d%WFjwEhd54}p=tE;F>#`%hY@5T=YqcZdJ%p--$Fbj%|rJ3@s z$|hOcl2lMF&D;>v*w2H(kLy4Gym9~gAHN^`{PVi!59TattvAVZB#1d1XL!tJ8A|P@ z0AcJD?uv{ZXBN$V(%OXle>~VAEx_TBPGyStrSPuupg`BoX)l;)_s{sns!{r2;D--_R8W=2nd`icqZyCR z8lO(9%M~)#UqL||+Gq*gbtU|u{-B+Q0W|b5MbEPnkM~TjS`#;CynALGq8zxovn;qG z@X8A%7Ap^hwCF%Zh!qiJQ<=MK0(cPMrWFj4ut{O z7u(A4NbhCAcE;Xh0k;9v=Xt07JoC!tiGBkodMk6^=o9@W6U9b*bf%vJ!eB3D7sAZY z6jCdRG9O|PJkRK%^l66S4W4HEA&CY#v;8JKaXh#>zBn|wP1v!0A&&cUfQ+ONdpw0p z>J=O~_5ym&*lva*863$o;2-Plu|KllRVJySkI?3(Tu^B8b=D$eP%A!1vxg^H@FE+% z&YD|@r??S!rW!eKmEMrgABiyW1^P?ywbYl>xo({=Fjz&r@(nI=?!rw+$m?0=d85St zh@(QWkt8C6z|8_mg6-OczjQj{*c%yh_Om(rf-CkY3;w9s`wU14h4htRc=#oAA7vPd zX9_Lv(Mt$=`>&_9p}F_8#T-B%1EQ=|VegLs<&@B@6ETkAE%ix+9;o#1!y(e?7X#syuj?xxXN38jpb& z&x2L*;r@z7D|zDy;hRj0b1)2@-jClhr~^ZS(*TS^L(OR&FkNA9&zHEWpVl9Hz#%VCLrgMElN{-Wvm8l= z%RHFo>?r4?Jidf_?7U^3=&Tq61a9D;Ecg!p+}W* z7uZ@zlHr@=|?0@r&S9Ov$-hq`FF3*}(KFn9MDbUQ~U*_x_rgH=hoq2u& zOG&>6p16;OXAdujm)tAA8$x-c3h-gdodzfFEI8i3JYbg$I;kjrX6&6qN-$NS;HD}B ziICuYCn0*k#WeS&m}bVme~{moQjBwyyXR~s4gc)czE|gim;OSpm@Jquf77 z-%NRMB|^#j=eY}f(Icr>bFxlKk1h&rIs2{kGxKkXj4>?3X?d8E?E&}B)MH+48uEUF?#QRDtTiats zE(xAGNpu7C^Cq{bAKnAo$&vbbo(FGo_A+l!KTq3^SS2TBP(LpLW$XZI%N6zWQqF($ zobbRVEeSxz((3_bX)zF*T2^B7Yggixy%NwodqK;vn+LCQ_PV(Y&)Sy(Cu6L^YgmI9 zx%*nL!E2iEXqOh?4?^M}37tJ5EcYe1_@GC5O^Bc+o*Ef((Pz%afNo~N>MF1kPjVNF z495>L&f$!CNM2%gg4t;1Ci~+9Hpa&#`cZy*)T zbOq1^?{i``an%QGeR;5Au>`EoIs1^aUvu_*?X2-(vfl{Get}E?k+K109d=owwh3uf zd42sG%%fD027?skM!yiWB~~CzC2f-;dLGS_;{U`_CztJV(GYVExi*i(

    #IRfJiI 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%0A)W|4BuMpURFSIu>VaRJvhUG)3 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.registry.define(t,r))));const n=this.renderOptions.creationScope=this.attachShadow({...o,customElements:e.registry});return r(n,this.constructor.elementStyles),n}}}!function(e){e.Favorite="favorite",e.NotFavorite="not-favorite"}(j||(j={})),function(e){e.Today="today",e.Yesterday="yesterday",e.PastWeek="past-week",e.PastMonth="past-month",e.Custom="custom"}(B||(B={})),function(e){e.Clips="clips",e.Snapshots="snapshots",e.Recordings="recordings"}(q||(q={}));class U{constructor(e){this._cameraOptions=[],this._whenOptions=[],this._metaDataWhenOptions=[],this._whatOptions=[],this._whereOptions=[],this._tagsOptions=[],this._defaults=null,this._viewManager=null,this._host=e,this._favoriteOptions=[{value:j.Favorite,label:i("media_filter.favorite")},{value:j.NotFavorite,label:i("media_filter.not_favorite")}],this._mediaTypeOptions=[{value:q.Clips,label:i("media_filter.media_types.clips")},{value:q.Snapshots,label:i("media_filter.media_types.snapshots")},{value:q.Recordings,label:i("media_filter.media_types.recordings")}],this._staticWhenOptions=[{value:B.Today,label:i("media_filter.whens.today")},{value:B.Yesterday,label:i("media_filter.whens.yesterday")},{value:B.PastWeek,label:i("media_filter.whens.past_week")},{value:B.PastMonth,label:i("media_filter.whens.past_month")},{value:B.Custom,label:i("media_filter.whens.custom")}],this._computeWhenOptions()}getMediaTypeOptions(){return this._mediaTypeOptions}getCameraOptions(){return this._cameraOptions}getWhenOptions(){return this._whenOptions}getWhatOptions(){return this._whatOptions}getWhereOptions(){return this._whereOptions}getTagsOptions(){return this._tagsOptions}getFavoriteOptions(){return this._favoriteOptions}getDefaults(){return this._defaults}setViewManager(e){this._viewManager=e}async valueChangeHandler(e,t,r,i){const s=e=>e&&Array.isArray(e)&&e.length&&!e.includes("")?new Set([...e]):null,l=s(r.camera)??this._getAllCameraIDs(e);if(!l.size||!r.mediaType)return;const c=this._getWhen(r.when),d=r.favorite?r.favorite===j.Favorite:null,h=t.performance?.features.media_chunk_size;if(r.mediaType===q.Clips||r.mediaType===q.Snapshots){const e=s(r.where),t=s(r.what),i=s(r.tags),a=new o([{type:n.Event,cameraIDs:l,...i&&{tags:i},...t&&{what:t},...e&&{where:e},...null!==d&&{favorite:d},...c&&{...c.start&&{start:c.start},...c.end&&{end:c.end}},...h&&{limit:h},...r.mediaType===q.Clips&&{hasClip:!0},...r.mediaType===q.Snapshots&&{hasSnapshot:!0}}]);this._viewManager?.setViewByParametersWithExistingQuery({params:{query:a,...1===l.size&&{camera:[...l][0]},view:r.mediaType===q.Clips?"clips":"snapshots"}})}else{const e=new a([{type:n.Recording,cameraIDs:l,...h&&{limit:h},...c&&{...c.start&&{start:c.start},...c.end&&{end:c.end}},...null!==d&&{favorite:d}}]);this._viewManager?.setViewByParametersWithExistingQuery({params:{query:e,...1===l.size&&{camera:[...l][0]},view:"recordings"}})}this._host.requestUpdate()}_getAllCameraIDs(e){return e.getStore().getCameraIDsWithCapability({anyCapabilities:["clips","snapshots","recordings"]})}computeInitialDefaultsFromView(e){const t=this._viewManager?.getView(),r=t?.query?.getQueries(),i=this._getAllCameraIDs(e);if(!t||!r||!i.size)return;let o,n,a,d,h,g;1!==s(r.map((e=>e.cameraIDs)),l).length||l(r[0].cameraIDs,i)||(n=[...r[0].cameraIDs]); +/* istanbul ignore else: the else path cannot be reached -- @preserve */ +if(1===s(r.map((e=>e.favorite)),l).length&&void 0!==r[0].favorite&&(h=r[0].favorite?j.Favorite:j.NotFavorite),c.areEventQueries(t.query)){const e=t.query.getQueries(); +/* istanbul ignore if: the if path cannot be reached -- @preserve */if(!e)return;const r=s(e.map((e=>e.hasClip)),l),i=s(e.map((e=>e.hasSnapshot)),l);1===r.length&&1===i.length&&(o=r[0]?q.Clips:i[0]?q.Snapshots:void 0);1===s(e.map((e=>e.what)),l).length&&e[0].what?.size&&(a=[...e[0].what]);1===s(e.map((e=>e.where)),l).length&&e[0].where?.size&&(d=[...e[0].where]);1===s(e.map((e=>e.tags)),l).length&&e[0].tags?.size&&(g=[...e[0].tags])}else c.areRecordingQueries(t.query)&&(o=q.Recordings);this._defaults={...o&&{mediaType:o},...n&&{cameraIDs:n},...a&&{what:a},...d&&{where:d},...void 0!==h&&{favorite:h},...g&&{tags:g}}}computeCameraOptions(e){this._cameraOptions=[...this._getAllCameraIDs(e)].map((t=>({value:t,label:e.getCameraMetadata(t)?.title??t})))}async computeMetadataOptions(e){let t=null;try{t=await e.getMediaMetadata()}catch(e){d(e)}if(t){if(t.what&&(this._whatOptions=[...t.what].sort().map((e=>({value:e,label:h(e)})))),t.where&&(this._whereOptions=[...t.where].sort().map((e=>({value:e,label:h(e)})))),t.tags&&(this._tagsOptions=[...t.tags].sort().map((e=>({value:e,label:h(e)})))),t.days){const e=new Set;[...t.days].forEach((t=>{e.add(t.substring(0,7))}));const r=[];e.forEach((e=>{r.push(W(e,"yyyy-MM",new Date))})),this._metaDataWhenOptions=g(r,(e=>e.getTime()),"desc").map((e=>({label:u(e,"MMMM yyyy"),value:this._dateRangeToString({start:e,end:N(e)})}))),this._computeWhenOptions()}this._host.requestUpdate()}}getControlsToShow(e){const t=this._viewManager?.getView(),r=c.areEventQueries(t?.query),i=c.areRecordingQueries(t?.query),o=e.getAggregateCameraCapabilities();return{events:r,recordings:i,favorites:r?o?.has("favorite-events"):!!i&&o?.has("favorite-recordings")}}_computeWhenOptions(){this._whenOptions=[...this._staticWhenOptions,...this._metaDataWhenOptions]}_dateRangeToString(e){return`${m(e.start)},${m(e.end)}`}_stringToDateRange(e){const t=e.split(",");return{start:W(t[0],"yyyy-MM-dd",new Date),end:I(W(t[1],"yyyy-MM-dd",new Date))}}_getWhen(e){if(e.from||e.to)return{...e.from&&{start:e.from},...e.to&&{end:e.to}};if(!e.selected||Array.isArray(e.selected))return null;const r=new Date;switch(e.selected){case B.Custom:return null;case B.Today:return{start:t(Date.now()),end:I(Date.now())};case B.Yesterday:return{start:V(),end:H()};case B.PastWeek:return{start:t(p(r,{days:7})),end:I(r)};case B.PastMonth:return{start:t(p(r,{months:1})),end:I(r)};default:return this._stringToDateRange(e.selected)}}}const K=!0,Y=!0,Q=!0,G=!1,X=!1;let Z,J,ee,te=!1,re=!1,ie=!1,oe=!1,ne=null,ae=!1;const se="http://www.w3.org/1999/xlink",le={},ce=e=>"object"===(e=typeof e)||"function"===e;const de=(e,t,...r)=>{let i=null,o=null,n=null,a=!1,s=!1;const l=[],c=t=>{for(let r=0;re[t])).join(" "))}}if("function"==typeof e)return e(null===t?{}:t,l,ue);const d=he(e,null);return d.$attrs$=t,l.length>0&&(d.$children$=l),d.$key$=o,d.$name$=n,d},he=(e,t)=>{const r={$flags$:0,$tag$:e,$text$:t,$elm$:null,$children$:null,$attrs$:null,$key$:null,$name$:null};return r},ge={},ue={forEach:(e,t)=>e.map(me).forEach(t),map:(e,t)=>e.map(me).map(t).map(pe)},me=e=>({vattrs:e.$attrs$,vchildren:e.$children$,vkey:e.$key$,vname:e.$name$,vtag:e.$tag$,vtext:e.$text$}),pe=e=>{if("function"==typeof e.vtag){const t=Object.assign({},e.vattrs);return e.vkey&&(t.key=e.vkey),e.vname&&(t.name=e.vname),de(e.vtag,t,...e.vchildren||[])}const t=he(e.vtag,e.vtext);return t.$attrs$=e.vattrs,t.$children$=e.vchildren,t.$key$=e.vkey,t.$name$=e.vname,t},fe=(e,t,r)=>{const i=e;return{emit:e=>ve(i,t,{bubbles:!!(4&r),composed:!!(2&r),cancelable:!!(1&r),detail:e})}},ve=(e,t,r)=>{const i=ht.ce(t,r);return e.dispatchEvent(i),i},be=new WeakMap,ye=e=>{const t=e.$cmpMeta$,r=e.$hostElement$,i=t.$flags$,o=(t.$tagName$,()=>{}),n=((e,t,r,i)=>{var o;let n=we(t,r);const a=at.get(n);if(e=11===e.nodeType?e:ct,a)if("string"==typeof a){e=e.head||e;let t,r=be.get(e);if(r||be.set(e,r=new Set),!r.has(n)){{t=ct.createElement("style"),t.innerHTML=a;const r=null!==(o=ht.$nonce$)&&void 0!==o?o:function(e){var t,r,i;return null!==(i=null===(r=null===(t=e.head)||void 0===t?void 0:t.querySelector('meta[name="csp-nonce"]'))||void 0===r?void 0:r.getAttribute("content"))&&void 0!==i?i:void 0}(ct);null!=r&&t.setAttribute("nonce",r),e.insertBefore(t,e.querySelector("link"))}r&&r.add(n)}}else e.adoptedStyleSheets.includes(a)||(e.adoptedStyleSheets=[...e.adoptedStyleSheets,a]);return n})(r.shadowRoot?r.shadowRoot:r.getRootNode(),t,e.$modeName$);10&i&&(r["s-sc"]=n,r.classList.add(n+"-h"),2&i&&r.classList.add(n+"-s")),o()},we=(e,t)=>"sc-"+(t&&32&e.$flags$?e.$tagName$+"-"+t:e.$tagName$),$e=(e,t,r,i,o,n)=>{if(r!==i){let a=ot(e,t),s=t.toLowerCase();if("class"===t){const t=e.classList,o=ke(r),n=ke(i);t.remove(...o.filter((e=>e&&!n.includes(e)))),t.add(...n.filter((e=>e&&!o.includes(e))))}else if("style"===t){for(const t in r)i&&null!=i[t]||(t.includes("-")?e.style.removeProperty(t):e.style[t]="");for(const t in i)r&&i[t]===r[t]||(t.includes("-")?e.style.setProperty(t,i[t]):e.style[t]=i[t])}else if("key"===t);else if("ref"===t)i&&i(e);else if(e.__lookupSetter__(t)||"o"!==t[0]||"n"!==t[1]){const l=ce(i);if((a||l&&null!==i)&&!o)try{if(e.tagName.includes("-"))e[t]=i;else{const o=null==i?"":i;"list"===t?a=!1:null!=r&&e[t]==o||(e[t]=o)}}catch(e){}let c=!1;s!==(s=s.replace(/^xlink\:?/,""))&&(t=s,c=!0),null==i||!1===i?!1===i&&""!==e.getAttribute(t)||(c?e.removeAttributeNS(se,t):e.removeAttribute(t)):(!a||4&n||o)&&!l&&(i=!0===i?"":i,c?e.setAttributeNS(se,t,i):e.setAttribute(t,i))}else t="-"===t[2]?t.slice(3):ot(lt,s)?s.slice(2):s[2]+t.slice(3),r&&ht.rel(e,t,r,!1),i&&ht.ael(e,t,i,!1)}},xe=/\s/,ke=e=>e?e.split(xe):[],_e=(e,t,r,i)=>{const o=11===t.$elm$.nodeType&&t.$elm$.host?t.$elm$.host:t.$elm$,n=e&&e.$attrs$||le,a=t.$attrs$||le;for(i in n)i in a||$e(o,i,n[i],void 0,r,t.$flags$);for(i in a)$e(o,i,n[i],a[i],r,t.$flags$)},Ce=(e,t,r,i)=>{const o=t.$children$[r];let n,a,s,l=0;if(te||(ie=!0,"slot"===o.$tag$&&(Z&&i.classList.add(Z+"-s"),o.$flags$|=o.$children$?2:1)),null!==o.$text$)n=o.$elm$=ct.createTextNode(o.$text$);else if(1&o.$flags$)n=o.$elm$=ct.createTextNode("");else{if(oe||(oe="svg"===o.$tag$),n=o.$elm$=ct.createElementNS(oe?"http://www.w3.org/2000/svg":"http://www.w3.org/1999/xhtml",2&o.$flags$?"slot-fb":o.$tag$),oe&&"foreignObject"===o.$tag$&&(oe=!1),_e(null,o,oe),null!=Z&&n["s-si"]!==Z&&n.classList.add(n["s-si"]=Z),o.$children$)for(l=0;l{ht.$flags$|=1;const r=e.childNodes;for(let e=r.length-1;e>=0;e--){const i=r[e];i["s-hn"]!==ee&&i["s-ol"]&&(ze(i).insertBefore(i,Me(i)),i["s-ol"].remove(),i["s-ol"]=void 0,ie=!0),t&&Te(i,t)}ht.$flags$&=-2},Ee=(e,t,r,i,o,n)=>{let a,s=e["s-cr"]&&e["s-cr"].parentNode||e;for(s.shadowRoot&&s.tagName===ee&&(s=s.shadowRoot);o<=n;++o)i[o]&&(a=Ce(null,r,o,e),a&&(i[o].$elm$=a,s.insertBefore(a,Me(t))))},Oe=(e,t,r,i,o)=>{for(;t<=r;++t)(i=e[t])&&(o=i.$elm$,We(i),re=!0,o["s-ol"]?o["s-ol"].remove():Te(o,!0),o.remove())},Se=(e,t)=>e.$tag$===t.$tag$&&("slot"===e.$tag$?e.$name$===t.$name$:e.$key$===t.$key$),Me=e=>e&&e["s-ol"]||e,ze=e=>(e["s-ol"]?e["s-ol"]:e).parentNode,Le=(e,t)=>{const r=t.$elm$=e.$elm$,i=e.$children$,o=t.$children$,n=t.$tag$,a=t.$text$;let s;null===a?(oe="svg"===n||"foreignObject"!==n&&oe,"slot"===n||_e(e,t,oe),null!==i&&null!==o?((e,t,r,i)=>{let o,n,a=0,s=0,l=0,c=0,d=t.length-1,h=t[0],g=t[d],u=i.length-1,m=i[0],p=i[u];for(;a<=d&&s<=u;)if(null==h)h=t[++a];else if(null==g)g=t[--d];else if(null==m)m=i[++s];else if(null==p)p=i[--u];else if(Se(h,m))Le(h,m),h=t[++a],m=i[++s];else if(Se(g,p))Le(g,p),g=t[--d],p=i[--u];else if(Se(h,p))"slot"!==h.$tag$&&"slot"!==p.$tag$||Te(h.$elm$.parentNode,!1),Le(h,p),e.insertBefore(h.$elm$,g.$elm$.nextSibling),h=t[++a],p=i[--u];else if(Se(g,m))"slot"!==h.$tag$&&"slot"!==p.$tag$||Te(g.$elm$.parentNode,!1),Le(g,m),e.insertBefore(g.$elm$,h.$elm$),g=t[--d],m=i[++s];else{for(l=-1,c=a;c<=d;++c)if(t[c]&&null!==t[c].$key$&&t[c].$key$===m.$key$){l=c;break}l>=0?(n=t[l],n.$tag$!==m.$tag$?o=Ce(t&&t[s],r,l,e):(Le(n,m),t[l]=void 0,o=n.$elm$),m=i[++s]):(o=Ce(t&&t[s],r,s,e),m=i[++s]),o&&ze(h.$elm$).insertBefore(o,Me(h.$elm$))}a>d?Ee(e,null==i[u+1]?null:i[u+1].$elm$,r,i,s,u):s>u&&Oe(t,a,d)})(r,i,t,o):null!==o?(null!==e.$text$&&(r.textContent=""),Ee(r,null,t,o,0,o.length-1)):null!==i&&Oe(i,0,i.length-1),oe&&"svg"===n&&(oe=!1)):(s=r["s-cr"])?s.parentNode.textContent=a:e.$text$!==a&&(r.data=a)},De=e=>{const t=e.childNodes;let r,i,o,n,a,s;for(i=0,o=t.length;i{let t,r,i,o,n,a,s=0;const l=e.childNodes,c=l.length;for(;s=0;a--)r=i[a],r["s-cn"]||r["s-nr"]||r["s-hn"]===t["s-hn"]||(Ie(r,o)?(n=Ae.find((e=>e.$nodeToRelocate$===r)),re=!0,r["s-sn"]=r["s-sn"]||o,n?n.$slotRefNode$=t:Ae.push({$slotRefNode$:t,$nodeToRelocate$:r}),r["s-sr"]&&Ae.map((e=>{Ie(e.$nodeToRelocate$,r["s-sn"])&&(n=Ae.find((e=>e.$nodeToRelocate$===r)),n&&!e.$slotRefNode$&&(e.$slotRefNode$=n.$slotRefNode$))}))):Ae.some((e=>e.$nodeToRelocate$===r))||Ae.push({$nodeToRelocate$:r}));1===t.nodeType&&Fe(t)}},Ie=(e,t)=>1===e.nodeType?null===e.getAttribute("slot")&&""===t||e.getAttribute("slot")===t:e["s-sn"]===t||""===t,We=e=>{e.$attrs$&&e.$attrs$.ref&&e.$attrs$.ref(null),e.$children$&&e.$children$.map(We)},Re=(e,t)=>{const r=e.$hostElement$,i=e.$cmpMeta$,o=e.$vnode$||he(null,null),n=(a=t)&&a.$tag$===ge?t:de(null,null,t);var a;if(ee=r.tagName,i.$attrsToReflect$&&(n.$attrs$=n.$attrs$||{},i.$attrsToReflect$.map((([e,t])=>n.$attrs$[t]=r[e]))),n.$tag$=null,n.$flags$|=4,e.$vnode$=n,n.$elm$=o.$elm$=r.shadowRoot||r,Z=r["s-sc"],J=r["s-cr"],te=!!(1&i.$flags$),re=!1,Le(o,n),ht.$flags$|=1,ie){let e,t,r,i,o,a;Fe(n.$elm$);let s=0;for(;s{e.$flags$|=16,e.$ancestorComponent$;return $t((()=>He(e,t)))},He=(e,t)=>{const r=e.$hostElement$,i=(e.$cmpMeta$.$tagName$,()=>{}),o=r;let n;return n=qe(o,t?"componentWillLoad":"componentWillUpdate"),n=Pe(n,(()=>qe(o,"componentWillRender"))),i(),Pe(n,(()=>Ve(e,o,t)))},Ve=async(e,t,r)=>{const i=e.$hostElement$,o=(e.$cmpMeta$.$tagName$,()=>{});i["s-rc"],r&&ye(e);const n=(e.$cmpMeta$.$tagName$,()=>{});je(e,t,i),n(),o(),Be(e)},je=(e,t,r)=>{try{ne=t,t=t.render&&t.render(),e.$flags$&=-17,e.$flags$|=2,(K||Y)&&(Q||Y)&&(G||Re(e,t))}catch(t){nt(t,e.$hostElement$)}return ne=null,null},Be=e=>{e.$cmpMeta$.$tagName$;const t=()=>{},r=e.$hostElement$;e.$ancestorComponent$,qe(r,"componentDidRender"),64&e.$flags$?(qe(r,"componentDidUpdate"),t()):(e.$flags$|=64,qe(r,"componentDidLoad"),t())},qe=(e,t,r)=>{if(e&&e[t])try{return e[t](r)}catch(e){nt(e)}},Pe=(e,t)=>e&&e.then?e.then(t):t(),Ue=(e,t,r,i)=>{const o=rt(e),n=e,a=o.$instanceValues$.get(t),s=o.$flags$,l=n;var c,d;c=r,d=i.$members$[t][0],r=null==c||ce(c)?c:4&d?"false"!==c&&(""===c||!!c):2&d?parseFloat(c):1&d?String(c):c;const h=Number.isNaN(a)&&Number.isNaN(r);if(r!==a&&!h){if(o.$instanceValues$.set(t,r),i.$watchers$&&128&s){const e=i.$watchers$[t];e&&e.map((e=>{try{l[e](r,a,t)}catch(e){nt(e,n)}}))}if(2==(18&s)){if(l.componentShouldUpdate&&!1===l.componentShouldUpdate(r,a,t))return;Ne(o,!1)}}},Ke=(e,t,r)=>{if(t.$members$){e.watchers&&(t.$watchers$=e.watchers);const r=Object.entries(t.$members$),i=e.prototype;r.map((([e,[r]])=>{(31&r||32&r)&&Object.defineProperty(i,e,{get(){return t=e,rt(this).$instanceValues$.get(t);var t},set(r){Ue(this,e,r,t)},configurable:!0,enumerable:!0})}));{const o=new Map;i.attributeChangedCallback=function(e,t,r){ht.jmp((()=>{const t=o.get(e);if(this.hasOwnProperty(t))r=this[t],delete this[t];else if(i.hasOwnProperty(t)&&"number"==typeof this[t]&&this[t]==r)return;this[t]=(null!==r||"boolean"!=typeof this[t])&&r}))},e.observedAttributes=r.filter((([e,t])=>15&t[0])).map((([e,r])=>{const i=r[1]||e;return o.set(i,e),512&r[0]&&t.$attrsToReflect$.push([e,i]),i}))}}return e},Ye=async(e,t,r,i,o)=>{if(!(32&t.$flags$)&&(o=e.constructor,t.$flags$|=32,customElements.whenDefined(r.$tagName$).then((()=>t.$flags$|=128)),o.style)){let i=o.style;"string"!=typeof i&&(i=i[t.$modeName$=(e=>st.map((t=>t(e))).find((e=>!!e)))(e)]);const n=we(r,t.$modeName$);if(!at.has(n)){const e=(r.$tagName$,()=>{});((e,t,r)=>{let i=at.get(e);mt&&r?(i=i||new CSSStyleSheet,"string"==typeof i?i=t:i.replaceSync(t)):i=t,at.set(e,i)})(n,i,!!(1&r.$flags$)),e()}}t.$ancestorComponent$;Ne(t,!0)},Qe=e=>{const t=e["s-cr"]=ct.createComment("");t["s-cn"]=!0,e.insertBefore(t,e.firstChild)},Ge=(e,t)=>{const r={$flags$:t[0],$tagName$:t[1]};r.$members$=t[2],r.$listeners$=t[3],r.$watchers$=e.$watchers$,r.$attrsToReflect$=[],!gt&&1&r.$flags$&&(r.$flags$|=8);const i=e.prototype.connectedCallback,o=e.prototype.disconnectedCallback;return Object.assign(e.prototype,{__registerHost(){it(this,r)},connectedCallback(){(e=>{if(!(1&ht.$flags$)){const t=rt(e),r=t.$cmpMeta$,i=(r.$tagName$,()=>{});1&t.$flags$?(Xe(e,t,r.$listeners$),t.$lazyInstance$):(t.$flags$|=1,12&r.$flags$&&Qe(e),r.$members$&&Object.entries(r.$members$).map((([t,[r]])=>{if(31&r&&e.hasOwnProperty(t)){const r=e[t];delete e[t],e[t]=r}})),Ye(e,t,r)),i()}})(this),i&&i.call(this)},disconnectedCallback(){(e=>{if(!(1&ht.$flags$)){const t=rt(e);t.$rmListeners$&&(t.$rmListeners$.map((e=>e())),t.$rmListeners$=void 0)}})(this),o&&o.call(this)},__attachShadow(){gt?this.attachShadow({mode:"open",delegatesFocus:!!(16&r.$flags$)}):this.shadowRoot=this}}),e.is=r.$tagName$,Ke(e,r)},Xe=(e,t,r,i)=>{r&&r.map((([r,i,o])=>{const n=Je(e,r),a=Ze(t,o),s=et(r);ht.ael(n,i,a,s),(t.$rmListeners$=t.$rmListeners$||[]).push((()=>ht.rel(n,i,a,s)))}))},Ze=(e,t)=>r=>{try{X||e.$hostElement$[t](r)}catch(e){nt(e)}},Je=(e,t)=>4&t?ct:8&t?lt:16&t?ct.body:e,et=e=>ut?{passive:!!(1&e),capture:!!(2&e)}:!!(2&e),tt=new WeakMap,rt=e=>tt.get(e),it=(e,t)=>{const r={$flags$:0,$hostElement$:e,$cmpMeta$:t,$instanceValues$:new Map};return Xe(e,r,t.$listeners$),tt.set(e,r)},ot=(e,t)=>t in e,nt=(e,t)=>(0,console.error)(e,t),at=new Map,st=[],lt="undefined"!=typeof window?window:{},ct=lt.document||{head:{}},dt=lt.HTMLElement||class{},ht={$flags$:0,$resourcesUrl$:"",jmp:e=>e(),raf:e=>requestAnimationFrame(e),ael:(e,t,r,i)=>e.addEventListener(t,r,i),rel:(e,t,r,i)=>e.removeEventListener(t,r,i),ce:(e,t)=>new CustomEvent(e,t)},gt=!0,ut=(()=>{let e=!1;try{ct.addEventListener("e",null,Object.defineProperty({},"passive",{get(){e=!0}}))}catch(e){}return e})(),mt=(()=>{try{return new CSSStyleSheet,"function"==typeof(new CSSStyleSheet).replaceSync}catch(e){}return!1})(),pt=[],ft=[],vt=(e,t)=>r=>{e.push(r),ae||(ae=!0,t&&4&ht.$flags$?wt(yt):ht.raf(yt))},bt=e=>{for(let t=0;t{bt(pt),bt(ft),(ae=pt.length>0)&&ht.raf(yt)},wt=e=>{return Promise.resolve(t).then(e);var t},$t=vt(ft,!0),xt=(e,t)=>{const r=!!e.label||e.hasLabelSlot,i=!!e.helpText||e.hasHelpTextSlot,o=!!e.invalidText||e.hasInvalidTextSlot,n=!e.invalid,a=!!e.invalid;return de("div",{class:{"form-control":!0,[`form-control-${e.size}`]:!0,"form-control-has-label":r,"form-control-has-help-text":i,"form-control-has-invalid-text":o}},de("label",{id:e.labelId,class:"form-control-label",htmlFor:e.inputId,"aria-hidden":r?"false":"true",onClick:e.onLabelClick},de("slot",{name:"label"},e.label),e.requiredIndicator&&de("div",{class:"asterisk"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 1200 1200"},de("path",{fill:"currentColor",d:"M489.838 29.354v443.603L68.032 335.894 0 545.285l421.829 137.086-260.743 358.876 178.219 129.398L600.048 811.84l260.673 358.806 178.146-129.398-260.766-358.783L1200 545.379l-68.032-209.403-421.899 137.07V29.443H489.84l-.002-.089z"})))),de("div",{class:"form-control-input"},t),n&&de("div",{id:e.helpTextId,class:"form-control-help-text","aria-hidden":i?"false":"true"},de("slot",{name:"help-text"},e.helpText)),a&&de("div",{id:e.invalidTextId,class:"form-control-invalid-text","aria-hidden":o?"false":"true"},de("div",{class:"icon"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Alert Circle"),de("path",{d:"M256,48C141.31,48,48,141.31,48,256s93.31,208,208,208,208-93.31,208-208S370.69,48,256,48Zm0,319.91a20,20,0,1,1,20-20A20,20,0,0,1,256,367.91Zm21.72-201.15-5.74,122a16,16,0,0,1-32,0l-5.74-121.94v-.05a21.74,21.74,0,1,1,43.44,0Z",fill:"currentColor"}))),de("div",{class:"text"},de("slot",{name:"invalid-text"},e.invalidText))))}; +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +function kt(e){const t=e?e.assignedNodes({flatten:!0}):[];let r="";return[...t].map((e=>{e.nodeType===Node.TEXT_NODE&&(r+=e.textContent)})),r}function _t(e,t){return t?null!==e.querySelector(`[slot="${t}"]`):[...e.childNodes].some((e=>{if(e.nodeType===e.TEXT_NODE&&""!==e.textContent.trim())return!0;if(e.nodeType===e.ELEMENT_NODE){if(!e.hasAttribute("slot"))return!0}return!1}))} +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */const Ct=(e,t=[])=>{const r={};return t.forEach((t=>{if(e.hasAttribute(t)){null!==e.getAttribute(t)&&(r[t]=e.getAttribute(t)),e.removeAttribute(t)}})),r},Tt=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow()}render(){return de("span",{class:"spinner","aria-busy":"true","aria-live":"polite"})}static get style(){return":host{--track-color:var(--gr-color-light-shade);--indicator-color:var(--gr-color-primary);--stroke-width:2px;display:inline-flex;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}.spinner{display:inline-block;width:1em;height:1em;border-radius:50%;border:solid var(--stroke-width) var(--track-color);border-top-color:var(--indicator-color);border-right-color:var(--indicator-color);animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}"}},[1,"gr-spinner"]);function Et(){if("undefined"==typeof customElements)return;["gr-spinner"].forEach((e=>{if("gr-spinner"===e)customElements.get(e)||customElements.define(e,Tt)}))}Et(); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +const Ot=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grFocus=fe(this,"gr-focus",7),this.grBlur=fe(this,"gr-blur",7),this.inheritedAttributes={},this.handleClick=e=>{if("button"!==this.type){const t=this.el.closest("form");if(t){e.preventDefault();const r=document.createElement("button");r.type=this.type,r.style.display="none",t.appendChild(r),r.click(),r.remove()}}},this.onFocus=()=>{this.grFocus.emit()},this.onBlur=()=>{this.grBlur.emit()},this.variant="default",this.disabled=!1,this.loading=!1,this.size="medium",this.caret=!1,this.pill=!1,this.expand=void 0,this.circle=!1,this.href=void 0,this.target=void 0,this.rel=void 0,this.type="button"}componentWillLoad(){this.inheritedAttributes=Ct(this.el,["aria-label","tabindex","title"])}async setFocus(e){this.button.focus(e)}async removeFocus(){this.button.blur()}render(){const{rel:e,target:t,href:r,variant:i,size:o,expand:n,type:a,inheritedAttributes:s,disabled:l}=this,c=void 0===r?"button":"a",d="button"===c?{type:a}:{href:r,rel:e,target:t};return de(ge,{onClick:this.handleClick,"aria-disabled":l?"true":null,class:{[`button-${i}`]:!0,[`button-${o}`]:!0,[`button-${n}`]:void 0!==n,"button-caret":this.caret,"button-circle":this.circle,"button-pill":this.pill,"button-disabled":l,"button-loading":this.loading}},de(c,Object.assign({ref:e=>this.button=e},d,{class:"button-native",disabled:l,onFocus:this.onFocus,onBlur:this.onBlur},s),de("span",{class:"button-inner"},de("slot",{name:"icon-only"}),de("slot",{name:"start"}),de("slot",null),de("slot",{name:"end"}),this.caret&&de("span",{class:"caret"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Chevron Down"),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"48",d:"M112 184l144 144 144-144"})))),this.loading&&de("gr-spinner",null)))}get el(){return this}static get style(){return".gr-scroll-lock{overflow:hidden !important}:host{display:inline-block;width:auto;font-family:var(--gr-font-family);font-weight:var(--gr-font-weight-medium);font-size:var(--gr-form-element-font-size-medium);font-kerning:none;user-select:none;vertical-align:top;vertical-align:-webkit-baseline-middle;pointer-events:auto;--height:var(--gr-form-element-height-medium);--border-radius:var(--gr-form-element-border-radius-medium);--border-width:1px;--border-style:solid;--background:transparent;--background-hover:transparent;--background-focus:transparent;--color:var(--gr-color-dark-tint);--color-hover:var(--gr-color-dark-tint);--color-focus:var(--gr-color-dark-tint);--border-color:var(--gr-color-light-shade);--border-color-hover:var(--gr-color-medium);--border-color-focus:var(--gr-color-primary);--padding-top:0;--padding-start:var(--gr-spacing-medium);--padding-end:var(--gr-spacing-medium);--padding-bottom:0;--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33);--shadow:none;--transition:background-color 150ms linear, opacity 150ms linear, border 150ms linear, color 150ms linear}:host(.button-disabled){pointer-events:none;opacity:0.5}:host(.button-primary){--border-color:var(--gr-color-primary);--background:var(--gr-color-primary);--color:var(--gr-color-primary-contrast);--border-color-hover:var(--gr-color-primary-shade);--background-hover:var(--gr-color-primary-shade);--color-hover:var(--gr-color-primary-contrast);--border-color-focus:var(--gr-color-primary);--background-focus:var(--gr-color-primary-shade);--color-focus:var(--gr-color-primary-contrast);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33)}:host(.button-secondary){--border-color:var(--gr-color-light-shade);--background:transparent;--color:var(--gr-color-primary);--border-color-hover:var(--gr-color-primary);--background-hover:transparent;--color-hover:var(--gr-color-primary);--border-color-focus:var(--gr-color-primary);--background-focus:transparent;--color-focus:var(--gr-color-primary);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33)}:host(.button-danger){--border-color:var(--gr-color-danger);--background:transparent;--color:var(--gr-color-danger);--border-color-hover:var(--gr-color-danger);--background-hover:var(--gr-color-danger);--color-hover:var(--gr-color-danger-contrast);--border-color-focus:var(--gr-color-danger);--background-focus:var(--gr-color-danger);--color-focus:var(--gr-color-danger-contrast);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-danger-rgb), 0.33)}:host(.button-plain){--border-color:transparent;--background:transparent;--color:var(--gr-color-primary);--border-color-hover:transparent;--background-hover:transparent;--color-hover:var(--gr-color-primary-shade);--border-color-focus:transparent;--background-focus:transparent;--color-focus:var(--gr-color-primary-shade);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33)}:host(.button-small){--padding-start:var(--gr-spacing-small);--padding-end:var(--gr-spacing-small);--border-radius:var(--gr-form-element-border-radius-small);--height:var(--gr-form-element-height-small);font-size:var(--gr-form-element-font-size-small)}:host(.button-large){--padding-start:var(--gr-spacing-large);--padding-end:var(--gr-spacing-large);--border-radius:var(--gr-form-element-border-radius-large);--height:var(--gr-form-element-height-large);font-size:var(--gr-form-element-font-size-large)}:host(.button-block){display:block}:host(.button-block) .button-native{margin-left:0;margin-right:0;display:block;width:100%;clear:both;contain:content}:host(.button-block) .button-native::after{clear:both}:host(.button-full){display:block}:host(.button-full) .button-native{margin-left:0;margin-right:0;display:block;width:100%;contain:content;border-radius:0;border-right-width:0;border-left-width:0}.button-native{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:block;position:relative;padding-top:var(--padding-top);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-bottom:var(--padding-bottom);width:100%;height:var(--height);transition:var(--transition);border-radius:var(--border-radius);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);color:var(--color);box-shadow:var(--shadow);line-height:1;cursor:pointer;z-index:0;text-decoration:none;box-sizing:border-box}.button-native::-moz-focus-inner{border:0}.button-native:focus{outline:none;box-shadow:var(--focus-ring);border-color:var(--border-color-focus);background-color:var(--background-focus);color:var(--color-focus)}.button-native *,.button-native *:before,.button-native *:after{box-sizing:inherit}.button-inner{display:flex;position:relative;flex-flow:row nowrap;flex-shrink:0;align-items:center;justify-content:center;width:100%;height:100%;z-index:1}:host(.button-circle) .button-native{padding-top:0;padding-bottom:0;padding-left:0;padding-right:0;border-radius:50%;width:var(--height)}@media (any-hover: hover){.button-native:hover{color:var(--color-hover);background:var(--background-hover);border-color:var(--border-color-hover)}}:host(.button-caret) .caret{display:flex;align-items:center;margin-left:0.3em}:host(.button-caret) .caret svg{width:1em;height:1em}:host(.button-pill) .button-native{border-radius:var(--height)}::slotted(*){pointer-events:none}::slotted([slot=start]){margin-top:0;margin-left:-0.3em;margin-right:0.3em;margin-bottom:0}::slotted([slot=end]){margin-top:0;margin-left:0.3em;margin-right:-0.2em;margin-bottom:0}::slotted([slot=icon-only]){font-size:1.4em;pointer-events:none}:host(.button-loading){position:relative;pointer-events:none}:host(.button-loading) .caret{visibility:hidden}:host(.button-loading) slot[name=start],:host(.button-loading) slot[name=end],:host(.button-loading) slot[name=icon-only],:host(.button-loading) slot:not([name]){visibility:hidden}:host(.button-loading) gr-spinner{--indicator-color:currentColor;position:absolute;height:1em;width:1em;top:calc(50% - 0.5em);left:calc(50% - 0.5em)}@media not all and (min-resolution: 0.001dpcm){@supports (-webkit-appearance: none) and (stroke-color: transparent){:host([type=button]),:host([type=reset]),:host([type=submit]){-webkit-appearance:none !important}}}"}},[1,"gr-button",{variant:[513],disabled:[516],loading:[516],size:[513],caret:[4],pill:[516],expand:[513],circle:[516],href:[1],target:[1],rel:[1],type:[1],setFocus:[64],removeFocus:[64]}]);function St(){if("undefined"==typeof customElements)return;["gr-button","gr-spinner"].forEach((e=>{switch(e){case"gr-button":customElements.get(e)||customElements.define(e,Ot);break;case"gr-spinner":customElements.get(e)||Et()}}))}function Mt(e,t,r="vertical",i="smooth"){const o= +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +function(e,t){return{top:Math.round(e.getBoundingClientRect().top-t.getBoundingClientRect().top),left:Math.round(e.getBoundingClientRect().left-t.getBoundingClientRect().left)}}(e,t),n=o.top+t.scrollTop,a=o.left+t.scrollLeft,s=t.scrollLeft,l=t.scrollLeft+t.offsetWidth,c=t.scrollTop,d=t.scrollTop+t.offsetHeight;"horizontal"!==r&&"both"!==r||(al&&t.scrollTo({left:a-t.offsetWidth+e.clientWidth,behavior:i})),"vertical"!==r&&"both"!==r||(nd&&t.scrollTo({top:n-t.offsetHeight+e.clientHeight,behavior:i}))} +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */function zt(e){return e.tabIndex>-1}function Lt(e){if(zt(e))return e;if(e.shadowRoot){const t=[...e.shadowRoot.children].find(zt);if(t)return t}return e.children?[...e.children].map(Lt)[0]:null}St();var Dt="top",At="bottom",Ft="right",It="left",Wt="auto",Rt=[Dt,At,Ft,It],Nt="start",Ht="end",Vt="clippingParents",jt="viewport",Bt="popper",qt="reference",Pt=Rt.reduce((function(e,t){return e.concat([t+"-"+Nt,t+"-"+Ht])}),[]),Ut=[].concat(Rt,[Wt]).reduce((function(e,t){return e.concat([t,t+"-"+Nt,t+"-"+Ht])}),[]),Kt=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Yt(e){return e?(e.nodeName||"").toLowerCase():null}function Qt(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Gt(e){return e instanceof Qt(e).Element||e instanceof Element}function Xt(e){return e instanceof Qt(e).HTMLElement||e instanceof HTMLElement}function Zt(e){return"undefined"!=typeof ShadowRoot&&(e instanceof Qt(e).ShadowRoot||e instanceof ShadowRoot)}const Jt={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var r=t.styles[e]||{},i=t.attributes[e]||{},o=t.elements[e];Xt(o)&&Yt(o)&&(Object.assign(o.style,r),Object.keys(i).forEach((function(e){var t=i[e];!1===t?o.removeAttribute(e):o.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,r={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,r.popper),t.styles=r,t.elements.arrow&&Object.assign(t.elements.arrow.style,r.arrow),function(){Object.keys(t.elements).forEach((function(e){var i=t.elements[e],o=t.attributes[e]||{},n=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:r[e]).reduce((function(e,t){return e[t]="",e}),{});Xt(i)&&Yt(i)&&(Object.assign(i.style,n),Object.keys(o).forEach((function(e){i.removeAttribute(e)})))}))}},requires:["computeStyles"]};function er(e){return e.split("-")[0]}var tr=Math.max,rr=Math.min,ir=Math.round;function or(e,t){void 0===t&&(t=!1);var r=e.getBoundingClientRect(),i=1,o=1;if(Xt(e)&&t){var n=e.offsetHeight,a=e.offsetWidth;a>0&&(i=ir(r.width)/a||1),n>0&&(o=ir(r.height)/n||1)}return{width:r.width/i,height:r.height/o,top:r.top/o,right:r.right/i,bottom:r.bottom/o,left:r.left/i,x:r.left/i,y:r.top/o}}function nr(e){var t=or(e),r=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-r)<=1&&(r=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:i}}function ar(e,t){var r=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(r&&Zt(r)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function sr(e){return Qt(e).getComputedStyle(e)}function lr(e){return["table","td","th"].indexOf(Yt(e))>=0}function cr(e){return((Gt(e)?e.ownerDocument:e.document)||window.document).documentElement}function dr(e){return"html"===Yt(e)?e:e.assignedSlot||e.parentNode||(Zt(e)?e.host:null)||cr(e)}function hr(e){return Xt(e)&&"fixed"!==sr(e).position?e.offsetParent:null}function gr(e){for(var t=Qt(e),r=hr(e);r&&lr(r)&&"static"===sr(r).position;)r=hr(r);return r&&("html"===Yt(r)||"body"===Yt(r)&&"static"===sr(r).position)?t:r||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&Xt(e)&&"fixed"===sr(e).position)return null;var r=dr(e);for(Zt(r)&&(r=r.host);Xt(r)&&["html","body"].indexOf(Yt(r))<0;){var i=sr(r);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return r;r=r.parentNode}return null}(e)||t}function ur(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function mr(e,t,r){return tr(e,rr(t,r))}function pr(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function fr(e,t){return t.reduce((function(t,r){return t[r]=e,t}),{})}const vr={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,r=e.state,i=e.name,o=e.options,n=r.elements.arrow,a=r.modifiersData.popperOffsets,s=er(r.placement),l=ur(s),c=[It,Ft].indexOf(s)>=0?"height":"width";if(n&&a){var d=function(e,t){return pr("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:fr(e,Rt))}(o.padding,r),h=nr(n),g="y"===l?Dt:It,u="y"===l?At:Ft,m=r.rects.reference[c]+r.rects.reference[l]-a[l]-r.rects.popper[c],p=a[l]-r.rects.reference[l],f=gr(n),v=f?"y"===l?f.clientHeight||0:f.clientWidth||0:0,b=m/2-p/2,y=d[g],w=v-h[c]-d[u],$=v/2-h[c]/2+b,x=mr(y,$,w),k=l;r.modifiersData[i]=((t={})[k]=x,t.centerOffset=x-$,t)}},effect:function(e){var t=e.state,r=e.options.element,i=void 0===r?"[data-popper-arrow]":r;null!=i&&("string"!=typeof i||(i=t.elements.popper.querySelector(i)))&&ar(t.elements.popper,i)&&(t.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function br(e){return e.split("-")[1]}var yr={top:"auto",right:"auto",bottom:"auto",left:"auto"};function wr(e){var t,r=e.popper,i=e.popperRect,o=e.placement,n=e.variation,a=e.offsets,s=e.position,l=e.gpuAcceleration,c=e.adaptive,d=e.roundOffsets,h=e.isFixed,g=a.x,u=void 0===g?0:g,m=a.y,p=void 0===m?0:m,f="function"==typeof d?d({x:u,y:p}):{x:u,y:p};u=f.x,p=f.y;var v=a.hasOwnProperty("x"),b=a.hasOwnProperty("y"),y=It,w=Dt,$=window;if(c){var x=gr(r),k="clientHeight",_="clientWidth";if(x===Qt(r)&&"static"!==sr(x=cr(r)).position&&"absolute"===s&&(k="scrollHeight",_="scrollWidth"),o===Dt||(o===It||o===Ft)&&n===Ht)w=At,p-=(h&&x===$&&$.visualViewport?$.visualViewport.height:x[k])-i.height,p*=l?1:-1;if(o===It||(o===Dt||o===At)&&n===Ht)y=Ft,u-=(h&&x===$&&$.visualViewport?$.visualViewport.width:x[_])-i.width,u*=l?1:-1}var C,T=Object.assign({position:s},c&&yr),E=!0===d?function(e){var t=e.x,r=e.y,i=window.devicePixelRatio||1;return{x:ir(t*i)/i||0,y:ir(r*i)/i||0}}({x:u,y:p}):{x:u,y:p};return u=E.x,p=E.y,l?Object.assign({},T,((C={})[w]=b?"0":"",C[y]=v?"0":"",C.transform=($.devicePixelRatio||1)<=1?"translate("+u+"px, "+p+"px)":"translate3d("+u+"px, "+p+"px, 0)",C)):Object.assign({},T,((t={})[w]=b?p+"px":"",t[y]=v?u+"px":"",t.transform="",t))}var $r={passive:!0};var xr={left:"right",right:"left",bottom:"top",top:"bottom"};function kr(e){return e.replace(/left|right|bottom|top/g,(function(e){return xr[e]}))}var _r={start:"end",end:"start"};function Cr(e){return e.replace(/start|end/g,(function(e){return _r[e]}))}function Tr(e){var t=Qt(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Er(e){return or(cr(e)).left+Tr(e).scrollLeft}function Or(e){var t=sr(e),r=t.overflow,i=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(r+o+i)}function Sr(e){return["html","body","#document"].indexOf(Yt(e))>=0?e.ownerDocument.body:Xt(e)&&Or(e)?e:Sr(dr(e))}function Mr(e,t){var r;void 0===t&&(t=[]);var i=Sr(e),o=i===(null==(r=e.ownerDocument)?void 0:r.body),n=Qt(i),a=o?[n].concat(n.visualViewport||[],Or(i)?i:[]):i,s=t.concat(a);return o?s:s.concat(Mr(dr(a)))}function zr(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Lr(e,t){return t===jt?zr(function(e){var t=Qt(e),r=cr(e),i=t.visualViewport,o=r.clientWidth,n=r.clientHeight,a=0,s=0;return i&&(o=i.width,n=i.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(a=i.offsetLeft,s=i.offsetTop)),{width:o,height:n,x:a+Er(e),y:s}}(e)):Gt(t)?function(e){var t=or(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):zr(function(e){var t,r=cr(e),i=Tr(e),o=null==(t=e.ownerDocument)?void 0:t.body,n=tr(r.scrollWidth,r.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),a=tr(r.scrollHeight,r.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),s=-i.scrollLeft+Er(e),l=-i.scrollTop;return"rtl"===sr(o||r).direction&&(s+=tr(r.clientWidth,o?o.clientWidth:0)-n),{width:n,height:a,x:s,y:l}}(cr(e)))}function Dr(e,t,r){var i="clippingParents"===t?function(e){var t=Mr(dr(e)),r=["absolute","fixed"].indexOf(sr(e).position)>=0&&Xt(e)?gr(e):e;return Gt(r)?t.filter((function(e){return Gt(e)&&ar(e,r)&&"body"!==Yt(e)})):[]}(e):[].concat(t),o=[].concat(i,[r]),n=o[0],a=o.reduce((function(t,r){var i=Lr(e,r);return t.top=tr(i.top,t.top),t.right=rr(i.right,t.right),t.bottom=rr(i.bottom,t.bottom),t.left=tr(i.left,t.left),t}),Lr(e,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function Ar(e){var t,r=e.reference,i=e.element,o=e.placement,n=o?er(o):null,a=o?br(o):null,s=r.x+r.width/2-i.width/2,l=r.y+r.height/2-i.height/2;switch(n){case Dt:t={x:s,y:r.y-i.height};break;case At:t={x:s,y:r.y+r.height};break;case Ft:t={x:r.x+r.width,y:l};break;case It:t={x:r.x-i.width,y:l};break;default:t={x:r.x,y:r.y}}var c=n?ur(n):null;if(null!=c){var d="y"===c?"height":"width";switch(a){case Nt:t[c]=t[c]-(r[d]/2-i[d]/2);break;case Ht:t[c]=t[c]+(r[d]/2-i[d]/2)}}return t}function Fr(e,t){void 0===t&&(t={});var r=t,i=r.placement,o=void 0===i?e.placement:i,n=r.boundary,a=void 0===n?Vt:n,s=r.rootBoundary,l=void 0===s?jt:s,c=r.elementContext,d=void 0===c?Bt:c,h=r.altBoundary,g=void 0!==h&&h,u=r.padding,m=void 0===u?0:u,p=pr("number"!=typeof m?m:fr(m,Rt)),f=d===Bt?qt:Bt,v=e.rects.popper,b=e.elements[g?f:d],y=Dr(Gt(b)?b:b.contextElement||cr(e.elements.popper),a,l),w=or(e.elements.reference),$=Ar({reference:w,element:v,strategy:"absolute",placement:o}),x=zr(Object.assign({},v,$)),k=d===Bt?x:w,_={top:y.top-k.top+p.top,bottom:k.bottom-y.bottom+p.bottom,left:y.left-k.left+p.left,right:k.right-y.right+p.right},C=e.modifiersData.offset;if(d===Bt&&C){var T=C[o];Object.keys(_).forEach((function(e){var t=[Ft,At].indexOf(e)>=0?1:-1,r=[Dt,At].indexOf(e)>=0?"y":"x";_[e]+=T[r]*t}))}return _}function Ir(e,t){void 0===t&&(t={});var r=t,i=r.placement,o=r.boundary,n=r.rootBoundary,a=r.padding,s=r.flipVariations,l=r.allowedAutoPlacements,c=void 0===l?Ut:l,d=br(i),h=d?s?Pt:Pt.filter((function(e){return br(e)===d})):Rt,g=h.filter((function(e){return c.indexOf(e)>=0}));0===g.length&&(g=h);var u=g.reduce((function(t,r){return t[r]=Fr(e,{placement:r,boundary:o,rootBoundary:n,padding:a})[er(r)],t}),{});return Object.keys(u).sort((function(e,t){return u[e]-u[t]}))}const Wr={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,r=e.options,i=e.name;if(!t.modifiersData[i]._skip){for(var o=r.mainAxis,n=void 0===o||o,a=r.altAxis,s=void 0===a||a,l=r.fallbackPlacements,c=r.padding,d=r.boundary,h=r.rootBoundary,g=r.altBoundary,u=r.flipVariations,m=void 0===u||u,p=r.allowedAutoPlacements,f=t.options.placement,v=er(f),b=l||(v===f||!m?[kr(f)]:function(e){if(er(e)===Wt)return[];var t=kr(e);return[Cr(e),t,Cr(t)]}(f)),y=[f].concat(b).reduce((function(e,r){return e.concat(er(r)===Wt?Ir(t,{placement:r,boundary:d,rootBoundary:h,padding:c,flipVariations:m,allowedAutoPlacements:p}):r)}),[]),w=t.rects.reference,$=t.rects.popper,x=new Map,k=!0,_=y[0],C=0;C=0,M=S?"width":"height",z=Fr(t,{placement:T,boundary:d,rootBoundary:h,altBoundary:g,padding:c}),L=S?O?Ft:It:O?At:Dt;w[M]>$[M]&&(L=kr(L));var D=kr(L),A=[];if(n&&A.push(z[E]<=0),s&&A.push(z[L]<=0,z[D]<=0),A.every((function(e){return e}))){_=T,k=!1;break}x.set(T,A)}if(k)for(var F=function(e){var t=y.find((function(t){var r=x.get(t);if(r)return r.slice(0,e).every((function(e){return e}))}));if(t)return _=t,"break"},I=m?3:1;I>0;I--){if("break"===F(I))break}t.placement!==_&&(t.modifiersData[i]._skip=!0,t.placement=_,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Rr(e,t,r){return void 0===r&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function Nr(e){return[Dt,Ft,At,It].some((function(t){return e[t]>=0}))}const Hr={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,r=e.options,i=e.name,o=r.offset,n=void 0===o?[0,0]:o,a=Ut.reduce((function(e,r){return e[r]=function(e,t,r){var i=er(e),o=[It,Dt].indexOf(i)>=0?-1:1,n="function"==typeof r?r(Object.assign({},t,{placement:e})):r,a=n[0],s=n[1];return a=a||0,s=(s||0)*o,[It,Ft].indexOf(i)>=0?{x:s,y:a}:{x:a,y:s}}(r,t.rects,n),e}),{}),s=a[t.placement],l=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=c),t.modifiersData[i]=a}};const Vr={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,r=e.options,i=e.name,o=r.mainAxis,n=void 0===o||o,a=r.altAxis,s=void 0!==a&&a,l=r.boundary,c=r.rootBoundary,d=r.altBoundary,h=r.padding,g=r.tether,u=void 0===g||g,m=r.tetherOffset,p=void 0===m?0:m,f=Fr(t,{boundary:l,rootBoundary:c,padding:h,altBoundary:d}),v=er(t.placement),b=br(t.placement),y=!b,w=ur(v),$="x"===w?"y":"x",x=t.modifiersData.popperOffsets,k=t.rects.reference,_=t.rects.popper,C="function"==typeof p?p(Object.assign({},t.rects,{placement:t.placement})):p,T="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),E=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(x){if(n){var S,M="y"===w?Dt:It,z="y"===w?At:Ft,L="y"===w?"height":"width",D=x[w],A=D+f[M],F=D-f[z],I=u?-_[L]/2:0,W=b===Nt?k[L]:_[L],R=b===Nt?-_[L]:-k[L],N=t.elements.arrow,H=u&&N?nr(N):{width:0,height:0},V=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},j=V[M],B=V[z],q=mr(0,k[L],H[L]),P=y?k[L]/2-I-q-j-T.mainAxis:W-q-j-T.mainAxis,U=y?-k[L]/2+I+q+B+T.mainAxis:R+q+B+T.mainAxis,K=t.elements.arrow&&gr(t.elements.arrow),Y=K?"y"===w?K.clientTop||0:K.clientLeft||0:0,Q=null!=(S=null==E?void 0:E[w])?S:0,G=D+U-Q,X=mr(u?rr(A,D+P-Q-Y):A,D,u?tr(F,G):F);x[w]=X,O[w]=X-D}if(s){var Z,J="x"===w?Dt:It,ee="x"===w?At:Ft,te=x[$],re="y"===$?"height":"width",ie=te+f[J],oe=te-f[ee],ne=-1!==[Dt,It].indexOf(v),ae=null!=(Z=null==E?void 0:E[$])?Z:0,se=ne?ie:te-k[re]-_[re]-ae+T.altAxis,le=ne?te+k[re]+_[re]-ae-T.altAxis:oe,ce=u&&ne?function(e,t,r){var i=mr(e,t,r);return i>r?r:i}(se,te,le):mr(u?se:ie,te,u?le:oe);x[$]=ce,O[$]=ce-te}t.modifiersData[i]=O}},requiresIfExists:["offset"]};function jr(e,t,r){void 0===r&&(r=!1);var i,o,n=Xt(t),a=Xt(t)&&function(e){var t=e.getBoundingClientRect(),r=ir(t.width)/e.offsetWidth||1,i=ir(t.height)/e.offsetHeight||1;return 1!==r||1!==i}(t),s=cr(t),l=or(e,a),c={scrollLeft:0,scrollTop:0},d={x:0,y:0};return(n||!n&&!r)&&(("body"!==Yt(t)||Or(s))&&(c=(i=t)!==Qt(i)&&Xt(i)?{scrollLeft:(o=i).scrollLeft,scrollTop:o.scrollTop}:Tr(i)),Xt(t)?((d=or(t,!0)).x+=t.clientLeft,d.y+=t.clientTop):s&&(d.x=Er(s))),{x:l.left+c.scrollLeft-d.x,y:l.top+c.scrollTop-d.y,width:l.width,height:l.height}}function Br(e){var t=new Map,r=new Set,i=[];function o(e){r.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!r.has(e)){var i=t.get(e);i&&o(i)}})),i.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){r.has(e.name)||o(e)})),i}var qr={placement:"bottom",modifiers:[],strategy:"absolute"};function Pr(){for(var e=arguments.length,t=new Array(e),r=0;r{},onAfterHide:()=>{},onTransitionEnd:()=>{}},r),this.isVisible=!1,this.popover.hidden=!0,this.popover.classList.remove(this.options.visibleClass),this.popover.addEventListener("transitionend",this.handleTransitionEnd)}handleTransitionEnd(e){e.target===this.options.transitionElement&&(this.options.onTransitionEnd.call(this,e),this.isVisible||this.popover.hidden||(this.popover.hidden=!0,this.popover.classList.remove(this.options.visibleClass),this.options.onAfterHide.call(this)))}destroy(){this.popover.removeEventListener("transitionend",this.handleTransitionEnd),this.popper&&(this.popper.destroy(),this.popper=null)}show(){this.isVisible=!0,this.popover.hidden=!1,requestAnimationFrame((()=>this.popover.classList.add(this.options.visibleClass))),this.popper&&this.popper.destroy(),this.popper=Kr(this.anchor,this.popover,{placement:this.options.placement,strategy:this.options.strategy,modifiers:[{name:"flip",options:{boundary:"viewport"}},{name:"offset",options:{offset:[this.options.skidding,this.options.distance]}}]}),this.popover.addEventListener("transitionend",(()=>this.options.onAfterShow.call(this)),{once:!0}),requestAnimationFrame((()=>this.popper.update()))}hide(){this.isVisible=!1,this.popover.classList.remove(this.options.visibleClass)}setOptions(e){this.options=Object.assign(this.options,e),this.isVisible?this.popover.classList.add(this.options.visibleClass):this.popover.classList.remove(this.options.visibleClass),this.popper&&(this.popper.setOptions({placement:this.options.placement,strategy:this.options.strategy}),requestAnimationFrame((()=>this.popper.update())))}}let Qr=0;const Gr=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grShow=fe(this,"gr-show",7),this.grAfterShow=fe(this,"gr-after-show",7),this.grHide=fe(this,"gr-hide",7),this.grAfterHide=fe(this,"gr-after-hide",7),this.componentId="dropdown-"+ ++Qr,this.isVisible=!1,this.open=!1,this.placement="bottom-start",this.closeOnSelect=!0,this.containingElement=void 0,this.distance=2,this.skidding=0,this.hoist=!1}handleOpenChange(){this.open?this.show():this.hide(),this.updateAccessibleTrigger()}handlePopoverOptionsChange(){this.popoverElement.setOptions({strategy:this.hoist?"fixed":"absolute",placement:this.placement,distance:this.distance,skidding:this.skidding})}connectedCallback(){this.containingElement||(this.containingElement=this.el),this.handleDocumentKeyDown=this.handleDocumentKeyDown.bind(this),this.handleDocumentMouseDown=this.handleDocumentMouseDown.bind(this),this.handleMenuItemActivate=this.handleMenuItemActivate.bind(this),this.handlePanelSelect=this.handlePanelSelect.bind(this),this.handleTriggerClick=this.handleTriggerClick.bind(this),this.handleTriggerKeyDown=this.handleTriggerKeyDown.bind(this),this.handleTriggerKeyUp=this.handleTriggerKeyUp.bind(this),this.handleTriggerSlotChange=this.handleTriggerSlotChange.bind(this)}componentDidLoad(){this.popoverElement=new Yr(this.trigger,this.positioner,{strategy:this.hoist?"fixed":"absolute",placement:this.placement,distance:this.distance,skidding:this.skidding,transitionElement:this.panel,onAfterHide:()=>this.grAfterHide.emit(),onAfterShow:()=>this.grAfterShow.emit(),onTransitionEnd:()=>{this.open||(this.panel.scrollTop=0)}}),this.open&&this.show()}disconnectedCallback(){this.hide(),this.popoverElement.destroy()}async show(){if(this.isVisible)return;this.grShow.emit().defaultPrevented?this.open=!1:(this.panel.addEventListener("gr-activate",this.handleMenuItemActivate),this.panel.addEventListener("gr-select",this.handlePanelSelect),document.addEventListener("keydown",this.handleDocumentKeyDown),document.addEventListener("mousedown",this.handleDocumentMouseDown),this.isVisible=!0,this.open=!0,this.popoverElement.show())}async hide(){if(!this.isVisible)return;this.grHide.emit().defaultPrevented?this.open=!0:(this.panel.removeEventListener("gr-activate",this.handleMenuItemActivate),this.panel.removeEventListener("gr-select",this.handlePanelSelect),document.addEventListener("keydown",this.handleDocumentKeyDown),document.removeEventListener("mousedown",this.handleDocumentMouseDown),this.isVisible=!1,this.open=!1,this.popoverElement.hide())}async focusOnTrigger(){const e=this.trigger.querySelector("slot").assignedElements({flatten:!0})[0];e&&("function"==typeof e.setFocus?e.setFocus():"function"==typeof e.focus&&e.focus())}getMenu(){return this.panel.querySelector("slot").assignedElements({flatten:!0}).filter((e=>"gr-menu"===e.tagName.toLowerCase()))[0]}handleDocumentKeyDown(e){var t;if("Escape"===e.key)return this.hide(),void this.focusOnTrigger();if("Tab"===e.key){if(this.open&&"gr-menu-item"===(null===(t=document.activeElement)||void 0===t?void 0:t.tagName.toLowerCase()))return e.preventDefault(),this.hide(),void this.focusOnTrigger();setTimeout((()=>{var e;const t=this.containingElement.getRootNode()instanceof ShadowRoot?null===(e=document.activeElement.shadowRoot)||void 0===e?void 0:e.activeElement:document.activeElement;(null==t?void 0:t.closest(this.containingElement.tagName.toLowerCase()))===this.containingElement||this.hide()}))}}handleDocumentMouseDown(e){e.composedPath().includes(this.containingElement)||this.hide()}handleMenuItemActivate(e){Mt(e.target,this.panel)}handlePanelSelect(e){const t=e.target;this.closeOnSelect&&"gr-menu"===t.tagName.toLowerCase()&&(this.hide(),this.focusOnTrigger())}handleTriggerClick(){this.open?this.hide():this.show()}handleTriggerKeyDown(e){const t=this.getMenu(),r=t?[...t.querySelectorAll("gr-menu-item")]:null,i=r[0],o=r[r.length-1];if("Escape"===e.key)return this.focusOnTrigger(),void this.hide();if([" ","Enter"].includes(e.key))return e.preventDefault(),void(this.open?this.hide():this.show());if(["ArrowDown","ArrowUp"].includes(e.key)){if(e.preventDefault(),this.open||this.show(),"ArrowDown"===e.key&&i)return void i.setFocus();if("ArrowUp"===e.key&&o)return void o.setFocus()}this.open&&t&&!["Tab","Shift","Meta","Ctrl","Alt"].includes(e.key)&&t.typeToSelect(e.key)}handleTriggerKeyUp(e){" "===e.key&&e.preventDefault()}handleTriggerSlotChange(){this.updateAccessibleTrigger()}updateAccessibleTrigger(){const e=this.trigger.querySelector("slot").assignedElements({flatten:!0}).map(Lt)[0];e&&(e.setAttribute("aria-haspopup","true"),e.setAttribute("aria-expanded",this.open?"true":"false"))}render(){return de(ge,{id:this.componentId,class:{"dropdown-open":this.open}},de("span",{class:"dropdown-trigger",ref:e=>this.trigger=e,onClick:this.handleTriggerClick,onKeyDown:this.handleTriggerKeyDown,onKeyUp:this.handleTriggerKeyUp},de("slot",{name:"trigger",onSlotchange:this.handleTriggerSlotChange})),de("div",{ref:e=>this.positioner=e,class:"dropdown-positioner"},de("div",{ref:e=>this.panel=e,class:"dropdown-panel",role:"menu","aria-hidden":this.open?"false":"true","aria-labelledby":this.componentId},de("slot",null))))}get el(){return this}static get watchers(){return{open:["handleOpenChange"],distance:["handlePopoverOptionsChange"],hoist:["handlePopoverOptionsChange"],placement:["handlePopoverOptionsChange"],skidding:["handlePopoverOptionsChange"]}}static get style(){return".gr-scroll-lock{overflow:hidden !important}:host{--panel-background-color:var(--gr-color-white);--panel-border-radius:var(--gr-border-radius-medium);--panel-border-color:var(--gr-panel-border-color);--panel-box-shadow:var(--gr-shadow-large);--transition:150ms opacity, 150ms transform;display:inline-block;position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}.dropdown-trigger{display:block}.dropdown-positioner{position:absolute;z-index:var(--gr-z-index-dropdown)}.dropdown-panel{max-height:50vh;font-family:var(--gr-font-family);font-size:var(--gr-font-size-medium);font-weight:var(--gr-font-weight-normal);background-color:var(--panel-background-color);border:solid 1px var(--panel-border-color);border-radius:var(--panel-border-radius);box-shadow:var(--panel-box-shadow);opacity:0;overflow:auto;overscroll-behavior:none;pointer-events:none;transform:scale(0.9);transition:var(--transition)}.dropdown-positioner[data-popper-placement^=top] .dropdown-panel{transform-origin:bottom}.dropdown-positioner[data-popper-placement^=bottom] .dropdown-panel{transform-origin:top}.dropdown-positioner[data-popper-placement^=left] .dropdown-panel{transform-origin:right}.dropdown-positioner[data-popper-placement^=right] .dropdown-panel{transform-origin:left}.dropdown-positioner.popover-visible .dropdown-panel{opacity:1;transform:none;pointer-events:all}"}},[1,"gr-dropdown",{open:[1540],placement:[1],closeOnSelect:[4,"close-on-select"],containingElement:[1040],distance:[2],skidding:[2],hoist:[4],show:[64],hide:[64],focusOnTrigger:[64]}]);function Xr(){if("undefined"==typeof customElements)return;["gr-dropdown"].forEach((e=>{if("gr-dropdown"===e)customElements.get(e)||customElements.define(e,Gr)}))}Xr(); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +const Zr=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grSelect=fe(this,"gr-select",7),this.typeToSelectString=""}connectedCallback(){this.handleClick=this.handleClick.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}async typeToSelect(e){clearTimeout(this.typeToSelectTimeout),this.typeToSelectTimeout=setTimeout((()=>this.typeToSelectString=""),750),this.typeToSelectString+=e.toLowerCase();const t=this.getItems();for(const e of t){if(kt(e.shadowRoot.querySelector("slot:not([name])")).toLowerCase().trim().substring(0,this.typeToSelectString.length)===this.typeToSelectString){e.setFocus();break}}}getItems(){return[...this.menu.querySelector("slot").assignedElements({flatten:!0})].filter((e=>"gr-menu-item"===e.tagName.toLowerCase()&&!e.disabled))}getActiveItem(){return this.getItems().find((e=>e===document.activeElement))}setActiveItem(e){e.setFocus()}handleClick(e){const t=e.target.closest("gr-menu-item");t&&!t.disabled&&this.grSelect.emit({item:t})}handleKeyDown(e){if("Enter"===e.key){const t=this.getActiveItem();e.preventDefault(),t&&this.grSelect.emit({item:t})}if(" "===e.key&&e.preventDefault(),["ArrowDown","ArrowUp","Home","End"].includes(e.key)){const t=this.getItems(),r=this.getActiveItem();let i=t.indexOf(r);if(t.length)return e.preventDefault(),"ArrowDown"===e.key?i++:"ArrowUp"===e.key?i--:"Home"===e.key?i=0:"End"===e.key&&(i=t.length-1),i<0&&(i=0),i>t.length-1&&(i=t.length-1),void this.setActiveItem(t[i])}this.typeToSelect(e.key)}render(){return de("div",{ref:e=>this.menu=e,class:"menu",role:"menu",onClick:this.handleClick,onKeyDown:this.handleKeyDown},de("slot",null))}static get style(){return".gr-scroll-lock{overflow:hidden !important}:host{--padding-top:var(--gr-spacing-x-small);--padding-bottom:var(--gr-spacing-x-small);display:block;padding-top:var(--padding-top);padding-left:0;padding-right:0;padding-bottom:var(--padding-bottom);box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host:focus{outline:none}"}},[1,"gr-menu",{typeToSelect:[64]}]);function Jr(){if("undefined"==typeof customElements)return;["gr-menu"].forEach((e=>{if("gr-menu"===e)customElements.get(e)||customElements.define(e,Zr)}))}Jr(); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +const ei=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grClear=fe(this,"gr-clear",7),this.type="primary",this.size="medium",this.pill=!1,this.clearable=!1,this.truncate=!1,this.title=""}connectedCallback(){this.handleClearClick=this.handleClearClick.bind(this)}handleClearClick(){this.grClear.emit()}render(){return de(ge,{class:{[`tag-${this.type}`]:!0,[`tag-${this.size}`]:!0,"tag-pill":this.pill,"tag-clearable":this.clearable}},de("span",{class:"tag"},de("span",{class:{"tag-truncate":this.truncate},title:this.title},de("slot",null)),this.clearable&&de("gr-button",{variant:"plain",size:this.size,class:"tag-clear","aria-label":"clear",onClick:this.handleClearClick},de("svg",{slot:"icon-only",role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Close"),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M368 368L144 144M368 144L144 368"})))))}static get style(){return":host{--height:calc(var(--gr-form-element-height-medium) * 0.8);--line-height:calc(var(--gr-form-element-height-medium) - 1px * 2);--border-radius:var(--gr-form-element-border-radius-medium);--border-width:1px;--border-style:solid;--padding-top:0;--padding-start:var(--gr-spacing-small);--padding-end:var(--gr-spacing-small);--padding-bottom:0;--font-size:var(--gr-form-element-font-size-medium);--background-color:rgba(var(--gr-color-primary-rgb), 0.05);--border-color:rgba(var(--gr-color-primary-rgb), 0.2);--color:var(--gr-color-primary-shade);--clear-color:var(--gr-color-primary);--clear-color-hover:var(--gr-color-primary-shade);--clear-margin-left:var(--gr-spacing-xx-small);--clear-margin-right:calc(-1 * var(--gr-spacing-xxx-small));display:inline-block;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host(.tag-success){--background-color:rgba(var(--gr-color-success-rgb), 0.05);--border-color:rgba(var(--gr-color-success-rgb), 0.2);--color:var(--gr-color-success-shade);--clear-color:var(--gr-color-success);--clear-color-hover:var(--gr-color-success-shade)}:host(.tag-info){--background-color:rgba(var(--gr-color-medium-rgb), 0.05);--border-color:rgba(var(--gr-color-medium-rgb), 0.2);--color:var(--gr-color-medium-shade);--clear-color:var(--gr-color-medium);--clear-color-hover:var(--gr-color-medium-shade)}:host(.tag-warning){--background-color:rgba(var(--gr-color-warning-rgb), 0.05);--border-color:rgba(var(--gr-color-warning-rgb), 0.2);--color:var(--gr-color-warning-shade);--clear-color:var(--gr-color-warning);--clear-color-hover:var(--gr-color-warning-shade)}:host(.tag-danger){--background-color:rgba(var(--gr-color-danger-rgb), 0.05);--border-color:rgba(var(--gr-color-danger-rgb), 0.2);--color:var(--gr-color-danger-shade);--clear-color:var(--gr-color-danger);--clear-color-hover:var(--gr-color-danger-shade)}:host(.tag-small){--font-size:var(--gr-form-element-font-size-small);--height:calc(var(--gr-form-element-height-small) * 0.8);--line-height:calc(var(--gr-form-element-height-small) - 1px * 2);--border-radius:var(--gr-form-element-border-radius-small);--padding-start:var(--gr-spacing-x-small);--padding-end:var(--gr-spacing-x-small);--clear-margin-left:var(--gr-spacing-xx-small);--clear-margin-right:calc(-1 * var(--gr-spacing-xxx-small))}:host(.tag-large){--font-size:var(--gr-form-element-font-size-large);--height:calc(var(--gr-form-element-height-large) * 0.8);--line-height:calc(var(--gr-form-element-height-large) - 1px * 2);--border-radius:var(--gr-form-element-border-radius-large);--padding:0 var(--gr-spacing-medium);--clear-margin-left:var(--gr-spacing-xx-small);--clear-margin-right:calc(-1 * var(--gr-spacing-x-small))}.tag{display:flex;align-items:center;border-style:var(--border-style);border-width:var(--border-width);border-radius:var(--border-radius);white-space:nowrap;user-select:none;cursor:default;font-family:var(--gr-font-family);font-size:var(--font-size);font-weight:var(--gr-font-weight-normal);height:var(--height);line-height:var(--line-height);padding-top:var(--padding-top);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-bottom:var(--padding-bottom);background-color:var(--background-color);border-color:var(--border-color);color:var(--color)}.tag-clear{--color:var(--clear-color);--color-hover:var(--clear-color-hover);--padding-start:0;--padding-end:0;margin-left:var(--clear-margin-left);margin-right:var(--clear-margin-right);--height:1em}.tag-clear svg{font-size:0.7em}.tag-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-clear svg{width:1.1em;height:1.1em}:host(.tag-pill) .tag{border-radius:var(--height)}"}},[1,"gr-tag",{type:[513],size:[513],pill:[516],clearable:[516],truncate:[516],title:[513]}]);function ti(){if("undefined"==typeof customElements)return;["gr-tag","gr-button","gr-spinner"].forEach((e=>{switch(e){case"gr-tag":customElements.get(e)||customElements.define(e,ei);break;case"gr-button":customElements.get(e)||St();break;case"gr-spinner":customElements.get(e)||Et()}}))}ti(); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +const ri="undefined"!=typeof HTMLElement?HTMLElement:class{};let ii=0;const oi=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grChange=fe(this,"gr-change",7),this.grFocus=fe(this,"gr-focus",7),this.grBlur=fe(this,"gr-blur",7),this.inputId="select-"+ ++ii,this.labelId=`select-label-${ii}`,this.helpTextId=`select-help-text-${ii}`,this.invalidTextId=`select-invalid-text-${ii}`,this.inheritedAttributes={},this.handleBlur=()=>{this.isOpen||(this.hasFocus=!1,this.grBlur.emit())},this.handleFocus=()=>{this.hasFocus||(this.hasFocus=!0,this.grFocus.emit())},this.hasFocus=!1,this.hasHelpTextSlot=!1,this.hasInvalidTextSlot=!1,this.hasLabelSlot=!1,this.isOpen=!1,this.items=[],this.displayLabel="",this.displayTags=[],this.multiple=!1,this.maxTagsVisible=3,this.disabled=!1,this.name="",this.placeholder="",this.size="medium",this.hoist=!1,this.value="",this.pill=!1,this.label="",this.requiredIndicator=!1,this.helpText="",this.invalidText="",this.invalid=!1,this.clearable=!1}handleDisabledChange(){this.disabled&&this.isOpen&&this.dropdown.hide()}handleLabelChange(){this.handleSlotChange()}handleMultipleChange(){const e=this.getValueAsArray();this.value=this.multiple?e:e[0]||"",this.syncItemsFromValue()}handleValueChange(){this.syncItemsFromValue(),this.grChange.emit()}connectedCallback(){this.handleClearClick=this.handleClearClick.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleLabelClick=this.handleLabelClick.bind(this),this.handleMenuHide=this.handleMenuHide.bind(this),this.handleMenuShow=this.handleMenuShow.bind(this),this.handleMenuSelect=this.handleMenuSelect.bind(this),this.handleSlotChange=this.handleSlotChange.bind(this),this.handleTagInteraction=this.handleTagInteraction.bind(this),this.el.shadowRoot.addEventListener("slotchange",this.handleSlotChange)}componentWillLoad(){this.handleSlotChange(),this.inheritedAttributes=Ct(this.el,["aria-label"])}componentDidLoad(){this.resizeObserver=new ResizeObserver((()=>this.resizeMenu())),this.reportDuplicateItemValues(),requestAnimationFrame((()=>this.syncItemsFromValue()))}disconnectedCallback(){this.el.shadowRoot.removeEventListener("slotchange",this.handleSlotChange)}async setFocus(){this.hasFocus=!0,this.grFocus.emit(),this.dropdown.focusOnTrigger()}getItemLabel(e){return kt(e.shadowRoot.querySelector("slot:not([name])"))}getItems(){return[...this.el.querySelectorAll("gr-menu-item")]}getValueAsArray(){return Array.isArray(this.value)?this.value:[this.value]}handleClearClick(e){e.stopPropagation(),this.value=this.multiple?[]:"",this.syncItemsFromValue()}handleKeyDown(e){const t=e.target,r=this.getItems(),i=r[0],o=r[r.length-1];if("gr-tag"!==t.tagName.toLowerCase())if("Tab"!==e.key){if(["ArrowDown","ArrowUp"].includes(e.key)){if(e.preventDefault(),this.isOpen||this.dropdown.show(),"ArrowDown"===e.key&&i)return void i.setFocus();if("ArrowUp"===e.key&&o)return void o.setFocus()}this.isOpen||1!==e.key.length||(e.stopPropagation(),e.preventDefault(),this.dropdown.show(),this.menu.typeToSelect(e.key))}else this.isOpen&&this.dropdown.hide()}handleLabelClick(){this.box.focus()}handleMenuSelect(e){const t=e.detail.item;this.multiple?this.value=this.value.includes(t.value)?this.value.filter((e=>e!==t.value)):[...this.value,t.value]:this.value=t.value,this.syncItemsFromValue()}handleMenuShow(e){this.disabled?e.preventDefault():(this.resizeMenu(),this.resizeObserver.observe(this.el),this.isOpen=!0)}handleMenuHide(){this.resizeObserver.unobserve(this.el),this.isOpen=!1,this.box.focus()}handleSlotChange(){this.hasHelpTextSlot=_t(this.el,"help-text"),this.hasInvalidTextSlot=_t(this.el,"invalid-text"),this.hasLabelSlot=_t(this.el,"label"),this.syncItemsFromValue(),this.reportDuplicateItemValues()}handleTagInteraction(e){e.composedPath().find((e=>{if(e instanceof ri)return e.classList.contains("tag-clear")}))&&e.stopPropagation()}reportDuplicateItemValues(){const e=this.getItems().map((e=>e.value)).filter(((e,t,r)=>r.indexOf(e)!==t));if(e.length)throw new Error('Duplicate value found on in : "'+e.join('", "')+'"')}resizeMenu(){this.menu.style.width=`${this.box.clientWidth}px`}syncItemsFromValue(){const e=this.getItems(),t=this.getValueAsArray();if(e.map((e=>e.checked=t.includes(e.value))),this.multiple){const r=[];if(t.map((t=>e.map((e=>e.value===t?r.push(e):null)))),this.displayTags=r.map((e=>de("gr-tag",{type:"info",size:this.size,pill:this.pill,clearable:!0,onClick:this.handleTagInteraction,onKeyDown:this.handleTagInteraction,"onGr-clear":t=>{t.stopPropagation(),this.disabled||(e.checked=!1,this.syncValueFromItems())}},this.getItemLabel(e)))),this.maxTagsVisible>0&&this.displayTags.length>this.maxTagsVisible){const e=this.displayTags.length;this.displayLabel="",this.displayTags=this.displayTags.slice(0,this.maxTagsVisible),this.displayTags.push(de("gr-tag",{type:"info",size:this.size,pill:this.pill},"+",e-this.maxTagsVisible))}}else{const r=e.filter((e=>e.value===t[0]))[0];this.displayLabel=r?this.getItemLabel(r):"",this.displayTags=[]}}syncValueFromItems(){const e=this.getItems().filter((e=>e.checked)).map((e=>e.value));this.multiple?this.value=this.value.filter((t=>e.includes(t))):this.value=e.length>0?e[0]:""}render(){var e;const t=this.multiple?this.value.length>0:""!==this.value,r=this.inheritedAttributes["aria-label"]?{"aria-label":this.inheritedAttributes["aria-label"]}:{"aria-labelledby":this.labelId};return((e,t,r,i)=>{let o=e.querySelector("input.aux-input");o||(o=e.ownerDocument.createElement("input"),o.type="hidden",o.classList.add("aux-input"),e.appendChild(o)),o.disabled=i,o.name=t,o.value=r||""})(this.el,this.name,ni(this.value),this.disabled),de(xt,{inputId:this.inputId,label:this.label,labelId:this.labelId,hasLabelSlot:this.hasLabelSlot,helpTextId:this.helpTextId,helpText:this.helpText,hasHelpTextSlot:this.hasHelpTextSlot,invalidTextId:this.invalidTextId,invalidText:this.invalidText,invalid:this.invalid,hasInvalidTextSlot:this.hasInvalidTextSlot,size:this.size,onLabelClick:this.handleLabelClick,requiredIndicator:this.requiredIndicator},de("gr-dropdown",{ref:e=>this.dropdown=e,hoist:this.hoist,closeOnSelect:!this.multiple,containingElement:this.el,class:{select:!0,"select-open":this.isOpen,"select-empty":0===(null===(e=this.value)||void 0===e?void 0:e.length),"select-focused":this.hasFocus,"select-clearable":this.clearable,"select-disabled":this.disabled,"select-multiple":this.multiple,"select-has-tags":this.multiple&&t,"select-placeholder-visible":""===this.displayLabel,[`select-${this.size}`]:!0,"select-pill":this.pill,"select-invalid":this.invalid},"onGr-show":this.handleMenuShow,"onGr-hide":this.handleMenuHide},de("div",Object.assign({slot:"trigger",ref:e=>this.box=e,id:this.inputId,class:"select-box",role:"combobox"},r,{"aria-describedby":this.invalid?this.invalidTextId:this.helpTextId,"aria-haspopup":"true","aria-expanded":this.isOpen?"true":"false","aria-invalid":this.invalid?"true":"false","aria-required":this.requiredIndicator?"true":"false",tabIndex:this.disabled?-1:0,onBlur:this.handleBlur,onFocus:this.handleFocus,onKeyDown:this.handleKeyDown}),de("div",{class:"select-label"},this.displayTags.length?de("span",{class:"select-tags"},this.displayTags):this.displayLabel||this.placeholder),this.clearable&&t&&de("button",{class:"select-clear",type:"button",onClick:this.handleClearClick,"aria-label":"clear",tabindex:"-1"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Close Circle"),de("path",{d:"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z",fill:"none",stroke:"currentColor","stroke-miterlimit":"10","stroke-width":"32"}),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M320 320L192 192M192 320l128-128"}))),de("span",{class:"caret"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Chevron Down"),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"48",d:"M112 184l144 144 144-144"}))),de("input",{class:"select-hidden-select","aria-hidden":"true",value:t?"1":"",tabIndex:-1})),de("gr-menu",{ref:e=>this.menu=e,class:"select-menu","onGr-select":this.handleMenuSelect},de("slot",{onSlotchange:this.handleSlotChange}))))}get el(){return this}static get watchers(){return{disabled:["handleDisabledChange"],helpText:["handleLabelChange"],invalidText:["handleLabelChange"],label:["handleLabelChange"],multiple:["handleMultipleChange"],value:["handleValueChange"]}}static get style(){return".form-control .form-control-label{display:none}.form-control .form-control-help-text{display:none}.form-control .form-control-invalid-text{display:none}.form-control-has-label .form-control-label{display:flex;line-height:var(--gr-line-height-normal);color:var(--gr-form-element-label-color);margin-bottom:var(--gr-spacing-xxx-small)}.form-control-has-label.form-control-small .form-control-label{font-size:var(--gr-form-element-label-font-size-small)}.form-control-has-label.form-control-medium .form-control-label{font-size:var(--gr-form-element-label-font-size-medium)}.form-control-has-label.form-control-large .form-control-label{font-size:var(--gr-form-element-label-font-size-large)}.form-control-has-label .form-control-label .asterisk{margin-left:var(--gr-spacing-x-small);color:var(--gr-color-medium)}.form-control-has-label .form-control-label .asterisk svg{width:0.6em;height:0.6em;margin-bottom:var(--gr-spacing-xxx-small)}.form-control-has-help-text .form-control-help-text{display:block;line-height:var(--gr-line-height-normal);color:var(--gr-form-element-help-text-color);margin-top:var(--gr-spacing-xxx-small)}.form-control-has-help-text.form-control-small .form-control-help-text{font-size:var(--gr-form-element-help-text-font-size-small);min-height:1.625rem}.form-control-has-help-text.form-control-medium .form-control-help-text{font-size:var(--gr-form-element-help-text-font-size-medium);min-height:1.875rem}.form-control-has-help-text.form-control-large .form-control-help-text{font-size:var(--gr-form-element-help-text-font-size-large);min-height:2.125rem}.form-control-has-invalid-text .form-control-invalid-text{display:flex;margin-left:-2px;line-height:var(--gr-line-height-normal);color:var(--gr-form-element-invalid-text-color);margin-top:var(--gr-spacing-xxx-small)}.form-control-has-invalid-text .form-control-invalid-text .icon{margin-top:var(--gr-spacing-xxx-small);margin-right:var(--gr-spacing-xx-small)}.form-control-has-invalid-text .form-control-invalid-text .icon svg{width:1.4em;height:1.4em}.form-control-has-invalid-text.form-control-small .form-control-invalid-text{font-size:var(--gr-form-element-invalid-text-font-size-small);min-height:1.625rem}.form-control-has-invalid-text.form-control-medium .form-control-invalid-text{font-size:var(--gr-form-element-invalid-text-font-size-medium);min-height:1.875rem}.form-control-has-invalid-text.form-control-large .form-control-invalid-text{font-size:var(--gr-form-element-invalid-text-font-size-large);min-height:2.125rem}.gr-scroll-lock{overflow:hidden !important}:host{--font-size:var(--gr-form-element-font-size-medium);--font-weight:var(--gr-font-weight-normal);--background-color:var(--gr-color-white);--background-color-hover:var(--gr-color-white);--background-color-focus:var(--gr-color-white);--background-color-invalid:var(--gr-color-white);--background-color-invalid-hover:var(--gr-color-white);--border-radius:var(--gr-form-element-border-radius-small);--border-color:var(--gr-color-light-shade);--border-color-hover:var(--gr-color-medium);--border-color-focus:var(--gr-color-primary);--border-color-invalid:var(--gr-color-danger);--border-color-invalid-hover:var(--gr-color-danger-shade);--color:var(--gr-color-dark-tint);--placeholder-color:var(--gr-color-medium-tint);--min-height:var(--gr-form-element-height-medium);--label-margin-start:var(--gr-spacing-medium);--label-margin-end:var(--gr-spacing-medium);--clear-icon-margin-end:var(--gr-spacing-medium);--caret-margin-end:var(--gr-spacing-medium);--tags-padding-top:3px;--tags-padding-bottom:3px;--tags-margin-end:var(--gr-spacing-xx-small);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33);display:block;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}.select-small{--font-size:var(--gr-form-element-font-size-small);--min-height:var(--gr-form-element-height-small);--label-margin-start:var(--gr-spacing-small);--label-margin-end:var(--gr-spacing-small);--clear-icon-margin-end:var(--gr-spacing-small);--caret-margin-end:var(--gr-spacing-small);--tags-padding-top:2px;--tags-padding-bottom:2px}.select-large{--font-size:var(--gr-form-element-font-size-large);--min-height:var(--gr-form-element-height-large);--label-margin-start:var(--gr-spacing-large);--label-margin-end:var(--gr-spacing-large);--clear-icon-margin-end:var(--gr-spacing-large);--caret-margin-end:var(--gr-spacing-large);--tags-padding-top:4px;--tags-padding-bottom:4px}.select{display:block}.select-box{display:inline-flex;align-items:center;justify-content:start;position:relative;width:100%;font-family:var(--gr-font-family);font-size:var(--font-size);font-weight:var(--font-weight);letter-spacing:normal;background-color:var(--background-color);border:solid 1px var(--border-color);border-radius:var(--border-radius);min-height:var(--min-height);color:var(--color);vertical-align:middle;overflow:hidden;transition:150ms color, 150ms border, 150ms box-shadow;cursor:pointer}.select.select-invalid:not(.select-disabled) .select-box{background-color:var(--background-color-invalid);border-color:var(--border-color-invalid)}.select.select-invalid:not(.select-disabled):not(.select-focused) .select-box:hover{background-color:var(--background-color-invalid-hover);border-color:var(--border-color-invalid-hover)}.select.select-invalid:not(.select-disabled) .select-box{background-color:var(--background-color-invalid);border-color:var(--border-color-invalid)}.select:not(.select-disabled) .select-box:hover{background-color:var(--background-color-hover);border-color:var(--border-color-hover)}.select.select-focused:not(.select-disabled) .select-box{outline:none;box-shadow:var(--focus-ring);border-color:var(--border-color-focus);background-color:var(--background-color-focus)}.select-disabled .select-box{opacity:0.5;cursor:not-allowed;outline:none}.select-disabled .select-tags,.select-disabled .select-clear{pointer-events:none}.select-label{flex:1 1 auto;display:flex;align-items:center;user-select:none;margin-top:0;margin-left:var(--label-margin-start);margin-right:var(--label-margin-end);margin-bottom:0;scrollbar-width:none;-ms-overflow-style:none;overflow-x:auto;overflow-y:hidden;white-space:nowrap}.select-label::-webkit-scrollbar{width:0;height:0}.select-has-tags .select-label{margin-left:0}.select-clear{display:inline-flex;align-items:center;font-size:inherit;color:var(--gr-color-medium);border:none;background:none;padding:0;transition:150ms color;cursor:pointer;margin-right:var(--clear-icon-margin-end)}.select-clear:hover{color:var(--gr-color-dark)}.select-clear:focus{outline:none}.select-clear svg{width:1.2em;height:1.2em;font-size:var(--font-size)}.caret{flex:0 0 auto;display:inline-flex;transition:250ms transform ease;margin-right:var(--caret-margin-end)}.caret svg{width:1em;height:1em;font-size:var(--font-size)}.select-open .caret{transform:rotate(-180deg)}.select-placeholder-visible .select-label{color:var(--placeholder-color)}.select-tags{display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:left;margin-left:var(--gr-spacing-xx-small);padding-bottom:var(--tags-padding-bottom)}.select-tags gr-tag{padding-top:var(--tags-padding-top)}.select-tags gr-tag:not(:last-of-type){margin-right:var(--tags-margin-end)}.select-hidden-select{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px;position:absolute;top:0;left:0;width:100%;height:100%}.select-pill .select-box{border-radius:var(--min-height)}"}},[1,"gr-select",{multiple:[4],maxTagsVisible:[2,"max-tags-visible"],disabled:[4],name:[1],placeholder:[1],size:[1],hoist:[4],value:[1025],pill:[4],label:[1],requiredIndicator:[4,"required-indicator"],helpText:[1,"help-text"],invalidText:[1,"invalid-text"],invalid:[516],clearable:[4],hasFocus:[32],hasHelpTextSlot:[32],hasInvalidTextSlot:[32],hasLabelSlot:[32],isOpen:[32],items:[32],displayLabel:[32],displayTags:[32],setFocus:[64]}]),ni=e=>{if(null!=e)return Array.isArray(e)?e.join(","):e.toString()};!function(){if("undefined"==typeof customElements)return;["gr-select","gr-button","gr-dropdown","gr-menu","gr-spinner","gr-tag"].forEach((e=>{switch(e){case"gr-select":customElements.get(e)||customElements.define(e,oi);break;case"gr-button":customElements.get(e)||St();break;case"gr-dropdown":customElements.get(e)||Xr();break;case"gr-menu":customElements.get(e)||Jr();break;case"gr-spinner":customElements.get(e)||Et();break;case"gr-tag":customElements.get(e)||ti()}}))}();const ai=oi,si=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.hasFocus=!1,this.checked=!1,this.value="",this.disabled=!1}connectedCallback(){this.handleBlur=this.handleBlur.bind(this),this.handleFocus=this.handleFocus.bind(this),this.handleMouseEnter=this.handleMouseEnter.bind(this),this.handleMouseLeave=this.handleMouseLeave.bind(this)}async setFocus(e){this.el.focus(e)}async removeFocus(){this.el.blur()}handleBlur(){this.hasFocus=!1}handleFocus(){this.hasFocus=!0}handleMouseEnter(){this.setFocus()}handleMouseLeave(){this.removeFocus()}render(){return de(ge,{class:{"menu-item-checked":this.checked,"menu-item-disabled":this.disabled,"menu-item-focused":this.hasFocus},role:"menuitem","aria-disabled":this.disabled?"true":"false","aria-checked":this.checked?"true":"false",tabIndex:this.disabled?null:0,onFocus:this.handleFocus,onBlur:this.handleBlur,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave},de("span",{class:"checkmark"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Checkmark"),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M416 128L192 384l-96-96"}))),de("span",{class:"start"},de("slot",{name:"start"})),de("span",{class:"label"},de("slot",null)),de("span",{class:"end"},de("slot",{name:"end"})))}get el(){return this}static get style(){return".gr-scroll-lock{overflow:hidden !important}:host{--line-height:var(--gr-line-height-normal);--background-color:transparent;--background-color-focused:var(--gr-color-primary);--color:var(--gr-color-dark);--color-focused:var(--gr-color-primary-contrast);--color-disabled:var(--gr-color-medium);--padding-top:var(--gr-spacing-xx-small);--padding-start:var(--gr-spacing-x-large);--padding-end:var(--gr-spacing-x-large);--padding-bottom:var(--gr-spacing-xx-small);--transition:background-color 150ms linear, color 150ms linear;position:relative;display:flex;align-items:stretch;font-family:var(--gr-font-family);font-size:var(--gr-font-size-medium);font-weight:var(--gr-font-weight-normal);line-height:var(--line-height);letter-spacing:var(--gr-letter-spacing-normal);text-align:left;background-color:var(--background-color);color:var(--color);padding-top:var(--padding-top);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-bottom:var(--padding-bottom);transition:var(--transition);user-select:none;white-space:nowrap;cursor:pointer;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host(.menu-item-focused:not(.menu-item-disabled)){outline:none;background-color:var(--background-color-focused);color:var(--color-focused)}:host(.menu-item-disabled){outline:none;color:var(--color-disabled);cursor:not-allowed}.checkmark{display:flex;position:absolute;left:0.5em;top:calc(50% - 0.5em);visibility:hidden;align-items:center;font-size:inherit}.checkmark svg{display:inline-block;width:1.1em;height:1.1em;contain:strict;fill:currentcolor;box-sizing:content-box !important}:host(.menu-item-checked) .checkmark{visibility:visible}.label{flex:1 1 auto}.start{flex:0 0 auto;display:flex;align-items:center}.start ::slotted(:last-child){margin-right:0.5em}.end{flex:0 0 auto;display:flex;align-items:center}.end ::slotted(:first-child){margin-left:0.5em}"}},[1,"gr-menu-item",{checked:[516],value:[513],disabled:[516],hasFocus:[32],setFocus:[64],removeFocus:[64]}]); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */!function(){if("undefined"==typeof customElements)return;["gr-menu-item"].forEach((e=>{if("gr-menu-item"===e)customElements.get(e)||customElements.define(e,si)}))}();const li={"gr-select":ai,"gr-menu-item":si};class ci extends(P(_)){constructor(){super(...arguments),this.value=null,this.multiple=!1,this.clearable=!1,this._refSelect=y()}reset(){this.value=null}_valueChangedHandler(e){const t=this._refSelect.value?.value;if(void 0!==t&&!l(this.value,t)){const e=null===this.value;this.value=t,e||w(this,"select:change",t)}}willUpdate(e){e.has("initialValue")&&this.initialValue&&!this.value&&(this.value=this.initialValue)}render(){return $` + ${this.options?.map((e=>$`${e.label}`))} + `}static get styles(){return k(':root, :host {\n --gr-color-primary: #1079b2;\n --gr-color-primary-rgb: 16, 121, 178;\n --gr-color-primary-contrast: #ffffff;\n --gr-color-primary-contrast-rgb: 255, 255, 255;\n --gr-color-primary-shade: #0d6696;\n --gr-color-primary-tint: #1499e1;\n --gr-color-secondary: #051f2c;\n --gr-color-secondary-rgb: 5, 31, 44;\n --gr-color-secondary-contrast: #ffffff;\n --gr-color-secondary-contrast-rgb: 255, 255, 255;\n --gr-color-secondary-shade: #000000;\n --gr-color-secondary-tint: #0a415c;\n --gr-color-tertiary: #0c4a6e;\n --gr-color-tertiary-rgb: 12, 74, 110;\n --gr-color-tertiary-contrast: #ffffff;\n --gr-color-tertiary-contrast-rgb: 255, 255, 255;\n --gr-color-tertiary-shade: #083249;\n --gr-color-tertiary-tint: #106393;\n --gr-color-success: #0fbe78;\n --gr-color-success-rgb: 15, 190, 120;\n --gr-color-success-contrast: #000000;\n --gr-color-success-contrast-rgb: 0, 0, 0;\n --gr-color-success-shade: #057f4e;\n --gr-color-success-tint: #12e28f;\n --gr-color-warning: #fbbc4e;\n --gr-color-warning-rgb: 251, 188, 78;\n --gr-color-warning-contrast: #051f2c;\n --gr-color-warning-contrast-rgb: 5, 31, 44;\n --gr-color-warning-shade: #9e6400;\n --gr-color-warning-tint: #fdd187;\n --gr-color-danger: #e60017;\n --gr-color-danger-rgb: 230, 0, 23;\n --gr-color-danger-contrast: #ffffff;\n --gr-color-danger-contrast-rgb: 255, 255, 255;\n --gr-color-danger-shade: #cc0014;\n --gr-color-danger-tint: #ff1f35;\n --gr-color-light: #f4f5f8;\n --gr-color-light-rgb: 244, 245, 248;\n --gr-color-light-contrast: #051f2c;\n --gr-color-light-contrast-rgb: 5, 31, 44;\n --gr-color-light-shade: #d7d8da;\n --gr-color-light-tint: #f9fafb;\n --gr-color-medium: #5e6c78;\n --gr-color-medium-rgb: 94, 108, 120;\n --gr-color-medium-contrast: #ffffff;\n --gr-color-medium-contrast-rgb: 255, 255, 255;\n --gr-color-medium-shade: #48535b;\n --gr-color-medium-tint: #81909c;\n --gr-color-dark: #02131b;\n --gr-color-dark-rgb: 2, 19, 27;\n --gr-color-dark-contrast: #ffffff;\n --gr-color-dark-contrast-rgb: 255, 255, 255;\n --gr-color-dark-shade: #000000;\n --gr-color-dark-tint: #222428;\n --gr-color-white: #ffffff;\n --gr-color-black: #000000;\n --gr-border-radius-small: 0.125rem;\n --gr-border-radius-medium: 0.25rem;\n --gr-border-radius-large: 0.5rem;\n --gr-border-radius-x-large: 1rem;\n --gr-border-width-small: 0.063rem;\n --gr-border-width-medium: 0.125rem;\n --gr-border-width-large: 0.188rem;\n --gr-shadow-x-small: 0 1px 0 #0d131e0d;\n --gr-shadow-small: 0 1px 2px #0d131e1a;\n --gr-shadow-medium: 0 2px 4px #0d131e1a;\n --gr-shadow-large: 0 2px 8px #0d131e1a;\n --gr-shadow-x-large: 0 4px 16px #0d131e1a;\n --gr-spacing-xxx-small: 0.125rem;\n --gr-spacing-xx-small: 0.25rem;\n --gr-spacing-x-small: 0.5rem;\n --gr-spacing-small: 0.75rem;\n --gr-spacing-medium: 1rem;\n --gr-spacing-large: 1.25rem;\n --gr-spacing-x-large: 1.75rem;\n --gr-spacing-xx-large: 2.25rem;\n --gr-spacing-xxx-large: 3rem;\n --gr-spacing-xxxx-large: 4.5rem;\n --gr-font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial,\n sans-serif;\n --gr-letter-spacing-dense: -0.015em;\n --gr-letter-spacing-normal: normal;\n --gr-letter-spacing-loose: 0.075em;\n --gr-line-height-dense: 1.4;\n --gr-line-height-normal: 1.8;\n --gr-line-height-loose: 2.2;\n --gr-font-size-xx-small: 0.625rem;\n --gr-font-size-x-small: 0.75rem;\n --gr-font-size-small: 0.875rem;\n --gr-font-size-medium: 1rem;\n --gr-font-size-large: 1.25rem;\n --gr-font-size-x-large: 1.5rem;\n --gr-font-size-xx-large: 2.25rem;\n --gr-font-size-xxx-large: 3rem;\n --gr-font-size-xxxx-large: 4.5rem;\n --gr-font-weight-thin: 100;\n --gr-font-weight-extra-light: 200;\n --gr-font-weight-light: 300;\n --gr-font-weight-normal: 400;\n --gr-font-weight-medium: 500;\n --gr-font-weight-semi-bold: 600;\n --gr-font-weight-bold: 700;\n --gr-font-weight-extra-bold: 800;\n --gr-font-weight-black: 900;\n --gr-form-element-font-size-x-small: var(--gr-font-size-x-small);\n --gr-form-element-font-size-small: var(--gr-font-size-small);\n --gr-form-element-font-size-medium: var(--gr-font-size-medium);\n --gr-form-element-font-size-large: var(--gr-font-size-large);\n --gr-form-element-height-small: 2.188rem;\n --gr-form-element-height-medium: 3.125rem;\n --gr-form-element-height-large: 4.063rem;\n --gr-form-element-border-radius-small: var(--gr-border-radius-medium);\n --gr-form-element-border-radius-medium: var(--gr-border-radius-medium);\n --gr-form-element-border-radius-large: var(--gr-border-radius-medium);\n --gr-focus-ring-width: 2px;\n --gr-form-element-label-font-size-small: var(--gr-font-size-small);\n --gr-form-element-label-font-size-medium: var(--gr-font-size-medium);\n --gr-form-element-label-font-size-large: var(--gr-font-size-large);\n --gr-form-element-label-color: inherit;\n --gr-form-element-help-text-font-size-small: var(--gr-font-size-x-small);\n --gr-form-element-help-text-font-size-medium: var(--gr-font-size-small);\n --gr-form-element-help-text-font-size-large: var(--gr-font-size-medium);\n --gr-form-element-help-text-color: var(--gr-color-medium);\n --gr-form-element-invalid-text-font-size-small: var(--gr-font-size-x-small);\n --gr-form-element-invalid-text-font-size-medium: var(--gr-font-size-small);\n --gr-form-element-invalid-text-font-size-large: var(--gr-font-size-medium);\n --gr-form-element-invalid-text-color: var(--gr-color-danger);\n --gr-toggle-size: 1rem;\n --gr-panel-border-color: var(--gr-color-light-shade);\n --gr-z-index-dropdown: 900;\n}\n\n')}}ci.elementDefinitions={...li},f([v({attribute:!1,hasChanged:b})],ci.prototype,"options",void 0),f([v({attribute:!1,hasChanged:b})],ci.prototype,"value",void 0),f([v({attribute:!1,hasChanged:b})],ci.prototype,"initialValue",void 0),f([v({attribute:!0})],ci.prototype,"label",void 0),f([v({attribute:!0})],ci.prototype,"placeholder",void 0),f([v({attribute:!0,type:Boolean})],ci.prototype,"multiple",void 0),f([v({attribute:!0,type:Boolean})],ci.prototype,"clearable",void 0);let di=class extends(P(_)){constructor(){super(...arguments),this._mediaFilterController=new U(this),this._refMediaType=y(),this._refCamera=y(),this._refWhen=y(),this._refWhenFrom=y(),this._refWhenTo=y(),this._refWhat=y(),this._refWhere=y(),this._refFavorite=y(),this._refTags=y()}willUpdate(e){e.has("viewManagerEpoch")&&this._mediaFilterController.setViewManager(this.viewManagerEpoch?.manager??null),e.has("cameraManager")&&this.cameraManager&&(this._mediaFilterController.computeCameraOptions(this.cameraManager),this._mediaFilterController.computeMetadataOptions(this.cameraManager)),!e.get("viewManager")&&this.viewManagerEpoch&&this.cameraManager&&this._mediaFilterController.computeInitialDefaultsFromView(this.cameraManager)}render(){const e=async()=>{this.cameraManager&&this.viewManagerEpoch&&this.cardWideConfig&&await this._mediaFilterController.valueChangeHandler(this.cameraManager,this.cardWideConfig,{camera:this._refCamera.value?.value??void 0,mediaType:this._refMediaType.value?.value??void 0,when:{selected:this._refWhen.value?.value??void 0,from:this._refWhenFrom.value?.value,to:this._refWhenTo.value?.value},favorite:this._refFavorite.value?.value??void 0,where:this._refWhere.value?.value??void 0,what:this._refWhat.value?.value??void 0,tags:this._refTags.value?.value??void 0})},t=async t=>{"custom"===t&&this._refWhen.value?this._refWhenFrom.value?.value||this._refWhenTo.value?.value?this._refWhen.value.value=B.Custom:this._refWhen.value.reset():this._refWhen.value?.value!==B.Custom&&(this._refWhenFrom.value?.reset(),this._refWhenTo.value?.reset()),await e()};if(!this.cameraManager||!this.viewManagerEpoch)return;const r=this._mediaFilterController.getControlsToShow(this.cameraManager),o=this._mediaFilterController.getDefaults(),n=this._mediaFilterController.getWhatOptions(),a=this._mediaFilterController.getTagsOptions(),s=this._mediaFilterController.getWhereOptions();return $` e()} + > + +

    + t("selected")} + > + + t("custom")} + > + + t("custom")} + > + +
    + e()} + > + + ${r.events&&n.length?$` e()} + > + `:""} + ${r.events&&a.length?$` e()} + > + `:""} + ${r.events&&s.length?$` e()} + > + `:""} + ${r.favorites?$` + e()} + > + + `:""}`}static get styles(){return k(":host {\n display: flex;\n flex-direction: column;\n overflow: auto;\n scrollbar-width: none;\n -ms-overflow-style: none;\n height: 100%;\n width: 300px;\n margin: 5px;\n}\n\n/* Hide scrollbar for Chrome, Safari and Opera */\n:host::-webkit-scrollbar {\n display: none;\n}\n\nfrigate-card-select {\n padding: 5px;\n}\n\ndiv.when {\n display: inline-flex;\n align-items: flex-end;\n}\n\ndiv.when frigate-card-select {\n flex: 1;\n}\n\ndiv.when frigate-card-date-picker {\n padding-bottom: 5px;\n transition: width 0.5s ease-in-out;\n}\n\ndiv.when frigate-card-date-picker {\n color: var(--secondary-color);\n}\n\ndiv.when frigate-card-date-picker.selected {\n color: var(--primary-color);\n}\n\ndiv.when frigate-card-date-picker.hidden {\n width: 0px;\n}")}};di.elementDefinitions={"frigate-card-select":ci,"frigate-card-date-picker":R},f([v({attribute:!1})],di.prototype,"hass",void 0),f([v({attribute:!1})],di.prototype,"cameraManager",void 0),f([v({attribute:!1})],di.prototype,"viewManagerEpoch",void 0),f([v({attribute:!1})],di.prototype,"cardWideConfig",void 0),di=f([C("frigate-card-media-filter")],di);const hi={closed:"mdi:filter-cog-outline",open:"mdi:filter-cog"};let gi=class extends _{render(){const e=this.viewManagerEpoch?.manager.getView();if(this.hass&&e?.isGalleryView()&&this.cameraManager&&this.cardWideConfig)return $` + + ${this.galleryConfig&&"none"!==this.galleryConfig.controls.filter.mode?$` + `:""} + + + + `}static get styles(){return k(":host {\n width: 100%;\n height: 100%;\n display: block;\n}\n\nfrigate-card-surround-basic {\n max-height: 110dvh;\n}")}};f([v({attribute:!1})],gi.prototype,"hass",void 0),f([v({attribute:!1})],gi.prototype,"viewManagerEpoch",void 0),f([v({attribute:!1})],gi.prototype,"galleryConfig",void 0),f([v({attribute:!1})],gi.prototype,"cameraManager",void 0),f([v({attribute:!1})],gi.prototype,"cardWideConfig",void 0),gi=f([C("frigate-card-gallery")],gi);let ui=class extends _{constructor(){super(),this._refLoaderBottom=y(),this._refSelected=y(),this._showLoaderBottom=!0,this._showLoaderTop=!1,this._boundWheelHandler=this._wheelHandler.bind(this),this._boundTouchStartHandler=this._touchStartHandler.bind(this),this._boundTouchEndHandler=this._touchEndHandler.bind(this),this._throttleExtendGalleryLater=O(this._extendGallery.bind(this),500,{leading:!0,trailing:!1}),this._touchScrollYPosition=null,this._resizeObserver=new ResizeObserver(this._resizeHandler.bind(this)),this._intersectionObserver=new IntersectionObserver(this._intersectionHandler.bind(this))}_touchStartHandler(e){1===e.touches.length?this._touchScrollYPosition=e.touches[0].screenY:this._touchScrollYPosition=null}async _touchEndHandler(e){!this.scrollTop&&1===e.changedTouches.length&&this._touchScrollYPosition&&e.changedTouches[0].screenY>this._touchScrollYPosition&&await this._extendLater(),this._touchScrollYPosition=null}async _wheelHandler(e){!this.scrollTop&&e.deltaY<0&&await this._extendLater()}async _extendLater(){const e=new Date;this._showLoaderTop=!0,await this._throttleExtendGalleryLater("later",!1);const t=(new Date).getTime()-e.getTime();t<500&&await S(.5-t/1e3),this._showLoaderTop=!1}connectedCallback(){super.connectedCallback(),this._resizeObserver.observe(this),this.addEventListener("wheel",this._boundWheelHandler,{passive:!0}),this.addEventListener("touchstart",this._boundTouchStartHandler,{passive:!0}),this.addEventListener("touchend",this._boundTouchEndHandler),this.requestUpdate()}disconnectedCallback(){this.removeEventListener("wheel",this._boundWheelHandler),this.removeEventListener("touchstart",this._boundTouchStartHandler),this.removeEventListener("touchend",this._boundTouchEndHandler),this._resizeObserver.disconnect(),this._intersectionObserver.disconnect(),super.disconnectedCallback()}_setColumnCount(){const e=this.galleryConfig?.controls.thumbnails.size??M.media_gallery.controls.thumbnails.size,t=this.galleryConfig?.controls.thumbnails.show_details?Math.max(1,Math.floor(this.clientWidth/z)):Math.max(1,Math.ceil(this.clientWidth/e));this.style.setProperty("--frigate-card-gallery-columns",String(t))}_resizeHandler(){this._setColumnCount()}async _intersectionHandler(e){e.every((e=>!e.isIntersecting))||(this._showLoaderBottom=!1,await this._extendGallery("earlier"))}async _extendGallery(e,t=!0){const r=this.viewManagerEpoch?.manager.getView();if(!this.cameraManager||!this.hass||!r)return;const i=r.query,n=i?.getQueries()??null,s=r.queryResults?.getResults();if(!i||!n||!s)return;let l;try{l=await this.cameraManager.extendMediaQueries(n,s,e,{useCache:t})}catch(e){return void d(e)}if(l){const e=c.areEventQueries(i)?new o(l.queries):c.areRecordingQueries(i)?new a(l.queries):null;e&&this.viewManagerEpoch?.manager.setViewByParameters({baseView:r,params:{query:e,queryResults:new L({results:l.results}).selectResultIfFound((e=>e===r.queryResults?.getSelectedResult()))}})}}willUpdate(e){if(e.has("galleryConfig")&&(this.galleryConfig?.controls.thumbnails.show_details?this.setAttribute("details",""):this.removeAttribute("details"),this._setColumnCount(),this.galleryConfig?.controls.thumbnails.size&&this.style.setProperty("--frigate-card-thumbnail-size",`${this.galleryConfig.controls.thumbnails.size}px`)),e.has("viewManagerEpoch")){this._showLoaderBottom=!0;const e=this.viewManagerEpoch?.manager.getView(),t=this.viewManagerEpoch?.oldView;this._media&&t?.queryResults?.getResults()===e?.queryResults?.getResults()||(this._media=[...e?.queryResults?.getResults()??[]].reverse())}}render(){if(!this._media||!this.hass)return $``;const e=this.viewManagerEpoch?.manager.getView();if(!e?.queryResults||0===e.queryResults.getResultsCount()){const t=!!e?.context?.loading?.query;return D({type:"info",message:i(t?"error.awaiting_media":"common.no_media"),icon:"mdi:multimedia",dotdotdot:t})}const t=e.queryResults.getSelectedResult();return $`
    + ${this._showLoaderTop?$`${A({cardWideConfig:this.cardWideConfig,classes:{top:!0},size:"small"})}`:""} + ${this._media.map(((r,i)=>$`{this._media&&this.viewManagerEpoch?.manager.setViewByParameters({params:{view:"media",queryResults:e.queryResults?.clone().selectIndex(this._media.length-i-1)}}),F(t)}} + > + `))} + ${this._showLoaderBottom?$`${A({cardWideConfig:this.cardWideConfig,componentRef:this._refLoaderBottom})}`:""} +
    `}updated(e){this._refLoaderBottom.value&&(this._intersectionObserver.disconnect(),this._intersectionObserver.observe(this._refLoaderBottom.value)),this.updateComplete.then((()=>{e.has("viewManagerEpoch")&&!e.get("viewManagerEpoch")&&this._refSelected.value&&this._refSelected.value.scrollIntoView({block:"center"})}))}static get styles(){return k(":host {\n width: 100%;\n height: 100%;\n display: block;\n overflow: auto;\n -ms-overflow-style: none;\n scrollbar-width: none;\n --frigate-card-gallery-gap: 3px;\n --frigate-card-gallery-columns: 4;\n}\n\n.grid {\n display: grid;\n grid-template-columns: repeat(var(--frigate-card-gallery-columns), minmax(0, 1fr));\n grid-auto-rows: min-content;\n gap: var(--frigate-card-gallery-gap);\n}\n\n:host::-webkit-scrollbar {\n display: none;\n}\n\nfrigate-card-thumbnail {\n height: 100%;\n max-height: var(--frigate-card-thumbnail-size);\n}\n\nfrigate-card-thumbnail:not([details]) {\n width: 100%;\n}\n\nfrigate-card-thumbnail.selected {\n border: 4px solid var(--accent-color);\n border-radius: calc(var(--frigate-card-css-border-radius, var(--ha-card-border-radius, 4px)) + 4px);\n}\n\nfrigate-card-progress-indicator.top {\n grid-column: 1/-1;\n}")}};f([v({attribute:!1})],ui.prototype,"hass",void 0),f([v({attribute:!1})],ui.prototype,"viewManagerEpoch",void 0),f([v({attribute:!1})],ui.prototype,"galleryConfig",void 0),f([v({attribute:!1})],ui.prototype,"cameraManager",void 0),f([v({attribute:!1})],ui.prototype,"cardWideConfig",void 0),f([E()],ui.prototype,"_showLoaderBottom",void 0),f([E()],ui.prototype,"_showLoaderTop",void 0),ui=f([C("frigate-card-gallery-core")],ui);export{gi as FrigateCardGallery,ui as FrigateCardGalleryCore}; diff --git a/config/www/community/frigate-hass-card/gallery-149d4f41.js.gz b/config/www/community/frigate-hass-card/gallery-149d4f41.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..1a315d42a29940f861d4391a501d6fd5f792b2f4 GIT binary patch literal 30834 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
    cjPMB$^&lpr9+*mNLw>WQAMq4 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.registry.define(t,r))));const n=this.renderOptions.creationScope=this.attachShadow({...o,customElements:e.registry});return r(n,this.constructor.elementStyles),n}}}!function(e){e.Favorite="favorite",e.NotFavorite="not-favorite"}(j||(j={})),function(e){e.Today="today",e.Yesterday="yesterday",e.PastWeek="past-week",e.PastMonth="past-month",e.Custom="custom"}(B||(B={})),function(e){e.Clips="clips",e.Snapshots="snapshots",e.Recordings="recordings"}(q||(q={}));class U{constructor(e){this._cameraOptions=[],this._whenOptions=[],this._metaDataWhenOptions=[],this._whatOptions=[],this._whereOptions=[],this._tagsOptions=[],this._defaults=null,this._viewManager=null,this._host=e,this._favoriteOptions=[{value:j.Favorite,label:i("media_filter.favorite")},{value:j.NotFavorite,label:i("media_filter.not_favorite")}],this._mediaTypeOptions=[{value:q.Clips,label:i("media_filter.media_types.clips")},{value:q.Snapshots,label:i("media_filter.media_types.snapshots")},{value:q.Recordings,label:i("media_filter.media_types.recordings")}],this._staticWhenOptions=[{value:B.Today,label:i("media_filter.whens.today")},{value:B.Yesterday,label:i("media_filter.whens.yesterday")},{value:B.PastWeek,label:i("media_filter.whens.past_week")},{value:B.PastMonth,label:i("media_filter.whens.past_month")},{value:B.Custom,label:i("media_filter.whens.custom")}],this._computeWhenOptions()}getMediaTypeOptions(){return this._mediaTypeOptions}getCameraOptions(){return this._cameraOptions}getWhenOptions(){return this._whenOptions}getWhatOptions(){return this._whatOptions}getWhereOptions(){return this._whereOptions}getTagsOptions(){return this._tagsOptions}getFavoriteOptions(){return this._favoriteOptions}getDefaults(){return this._defaults}setViewManager(e){this._viewManager=e}async valueChangeHandler(e,t,r,i){const s=e=>e&&Array.isArray(e)&&e.length&&!e.includes("")?new Set([...e]):null,l=s(r.camera)??this._getAllCameraIDs(e);if(!l.size||!r.mediaType)return;const c=this._getWhen(r.when),d=r.favorite?r.favorite===j.Favorite:null,h=t.performance?.features.media_chunk_size;if(r.mediaType===q.Clips||r.mediaType===q.Snapshots){const e=s(r.where),t=s(r.what),i=s(r.tags),a=new o([{type:n.Event,cameraIDs:l,...i&&{tags:i},...t&&{what:t},...e&&{where:e},...null!==d&&{favorite:d},...c&&{...c.start&&{start:c.start},...c.end&&{end:c.end}},...h&&{limit:h},...r.mediaType===q.Clips&&{hasClip:!0},...r.mediaType===q.Snapshots&&{hasSnapshot:!0}}]);this._viewManager?.setViewByParametersWithExistingQuery({params:{query:a,...1===l.size&&{camera:[...l][0]},view:r.mediaType===q.Clips?"clips":"snapshots"}})}else{const e=new a([{type:n.Recording,cameraIDs:l,...h&&{limit:h},...c&&{...c.start&&{start:c.start},...c.end&&{end:c.end}},...null!==d&&{favorite:d}}]);this._viewManager?.setViewByParametersWithExistingQuery({params:{query:e,...1===l.size&&{camera:[...l][0]},view:"recordings"}})}this._host.requestUpdate()}_getAllCameraIDs(e){return e.getStore().getCameraIDsWithCapability({anyCapabilities:["clips","snapshots","recordings"]})}computeInitialDefaultsFromView(e){const t=this._viewManager?.getView(),r=t?.query?.getQueries(),i=this._getAllCameraIDs(e);if(!t||!r||!i.size)return;let o,n,a,d,h,g;1!==s(r.map((e=>e.cameraIDs)),l).length||l(r[0].cameraIDs,i)||(n=[...r[0].cameraIDs]); +/* istanbul ignore else: the else path cannot be reached -- @preserve */ +if(1===s(r.map((e=>e.favorite)),l).length&&void 0!==r[0].favorite&&(h=r[0].favorite?j.Favorite:j.NotFavorite),c.areEventQueries(t.query)){const e=t.query.getQueries(); +/* istanbul ignore if: the if path cannot be reached -- @preserve */if(!e)return;const r=s(e.map((e=>e.hasClip)),l),i=s(e.map((e=>e.hasSnapshot)),l);1===r.length&&1===i.length&&(o=r[0]?q.Clips:i[0]?q.Snapshots:void 0);1===s(e.map((e=>e.what)),l).length&&e[0].what?.size&&(a=[...e[0].what]);1===s(e.map((e=>e.where)),l).length&&e[0].where?.size&&(d=[...e[0].where]);1===s(e.map((e=>e.tags)),l).length&&e[0].tags?.size&&(g=[...e[0].tags])}else c.areRecordingQueries(t.query)&&(o=q.Recordings);this._defaults={...o&&{mediaType:o},...n&&{cameraIDs:n},...a&&{what:a},...d&&{where:d},...void 0!==h&&{favorite:h},...g&&{tags:g}}}computeCameraOptions(e){this._cameraOptions=[...this._getAllCameraIDs(e)].map((t=>({value:t,label:e.getCameraMetadata(t)?.title??t})))}async computeMetadataOptions(e){let t=null;try{t=await e.getMediaMetadata()}catch(e){d(e)}if(t){if(t.what&&(this._whatOptions=[...t.what].sort().map((e=>({value:e,label:h(e)})))),t.where&&(this._whereOptions=[...t.where].sort().map((e=>({value:e,label:h(e)})))),t.tags&&(this._tagsOptions=[...t.tags].sort().map((e=>({value:e,label:h(e)})))),t.days){const e=new Set;[...t.days].forEach((t=>{e.add(t.substring(0,7))}));const r=[];e.forEach((e=>{r.push(W(e,"yyyy-MM",new Date))})),this._metaDataWhenOptions=g(r,(e=>e.getTime()),"desc").map((e=>({label:u(e,"MMMM yyyy"),value:this._dateRangeToString({start:e,end:N(e)})}))),this._computeWhenOptions()}this._host.requestUpdate()}}getControlsToShow(e){const t=this._viewManager?.getView(),r=c.areEventQueries(t?.query),i=c.areRecordingQueries(t?.query),o=e.getAggregateCameraCapabilities();return{events:r,recordings:i,favorites:r?o?.has("favorite-events"):!!i&&o?.has("favorite-recordings")}}_computeWhenOptions(){this._whenOptions=[...this._staticWhenOptions,...this._metaDataWhenOptions]}_dateRangeToString(e){return`${m(e.start)},${m(e.end)}`}_stringToDateRange(e){const t=e.split(",");return{start:W(t[0],"yyyy-MM-dd",new Date),end:I(W(t[1],"yyyy-MM-dd",new Date))}}_getWhen(e){if(e.from||e.to)return{...e.from&&{start:e.from},...e.to&&{end:e.to}};if(!e.selected||Array.isArray(e.selected))return null;const r=new Date;switch(e.selected){case B.Custom:return null;case B.Today:return{start:t(Date.now()),end:I(Date.now())};case B.Yesterday:return{start:V(),end:H()};case B.PastWeek:return{start:t(p(r,{days:7})),end:I(r)};case B.PastMonth:return{start:t(p(r,{months:1})),end:I(r)};default:return this._stringToDateRange(e.selected)}}}const K=!0,Y=!0,Q=!0,G=!1,X=!1;let Z,J,ee,te=!1,re=!1,ie=!1,oe=!1,ne=null,ae=!1;const se="http://www.w3.org/1999/xlink",le={},ce=e=>"object"===(e=typeof e)||"function"===e;const de=(e,t,...r)=>{let i=null,o=null,n=null,a=!1,s=!1;const l=[],c=t=>{for(let r=0;re[t])).join(" "))}}if("function"==typeof e)return e(null===t?{}:t,l,ue);const d=he(e,null);return d.$attrs$=t,l.length>0&&(d.$children$=l),d.$key$=o,d.$name$=n,d},he=(e,t)=>{const r={$flags$:0,$tag$:e,$text$:t,$elm$:null,$children$:null,$attrs$:null,$key$:null,$name$:null};return r},ge={},ue={forEach:(e,t)=>e.map(me).forEach(t),map:(e,t)=>e.map(me).map(t).map(pe)},me=e=>({vattrs:e.$attrs$,vchildren:e.$children$,vkey:e.$key$,vname:e.$name$,vtag:e.$tag$,vtext:e.$text$}),pe=e=>{if("function"==typeof e.vtag){const t=Object.assign({},e.vattrs);return e.vkey&&(t.key=e.vkey),e.vname&&(t.name=e.vname),de(e.vtag,t,...e.vchildren||[])}const t=he(e.vtag,e.vtext);return t.$attrs$=e.vattrs,t.$children$=e.vchildren,t.$key$=e.vkey,t.$name$=e.vname,t},fe=(e,t,r)=>{const i=e;return{emit:e=>ve(i,t,{bubbles:!!(4&r),composed:!!(2&r),cancelable:!!(1&r),detail:e})}},ve=(e,t,r)=>{const i=ht.ce(t,r);return e.dispatchEvent(i),i},be=new WeakMap,ye=e=>{const t=e.$cmpMeta$,r=e.$hostElement$,i=t.$flags$,o=(t.$tagName$,()=>{}),n=((e,t,r,i)=>{var o;let n=we(t,r);const a=at.get(n);if(e=11===e.nodeType?e:ct,a)if("string"==typeof a){e=e.head||e;let t,r=be.get(e);if(r||be.set(e,r=new Set),!r.has(n)){{t=ct.createElement("style"),t.innerHTML=a;const r=null!==(o=ht.$nonce$)&&void 0!==o?o:function(e){var t,r,i;return null!==(i=null===(r=null===(t=e.head)||void 0===t?void 0:t.querySelector('meta[name="csp-nonce"]'))||void 0===r?void 0:r.getAttribute("content"))&&void 0!==i?i:void 0}(ct);null!=r&&t.setAttribute("nonce",r),e.insertBefore(t,e.querySelector("link"))}r&&r.add(n)}}else e.adoptedStyleSheets.includes(a)||(e.adoptedStyleSheets=[...e.adoptedStyleSheets,a]);return n})(r.shadowRoot?r.shadowRoot:r.getRootNode(),t,e.$modeName$);10&i&&(r["s-sc"]=n,r.classList.add(n+"-h"),2&i&&r.classList.add(n+"-s")),o()},we=(e,t)=>"sc-"+(t&&32&e.$flags$?e.$tagName$+"-"+t:e.$tagName$),$e=(e,t,r,i,o,n)=>{if(r!==i){let a=ot(e,t),s=t.toLowerCase();if("class"===t){const t=e.classList,o=ke(r),n=ke(i);t.remove(...o.filter((e=>e&&!n.includes(e)))),t.add(...n.filter((e=>e&&!o.includes(e))))}else if("style"===t){for(const t in r)i&&null!=i[t]||(t.includes("-")?e.style.removeProperty(t):e.style[t]="");for(const t in i)r&&i[t]===r[t]||(t.includes("-")?e.style.setProperty(t,i[t]):e.style[t]=i[t])}else if("key"===t);else if("ref"===t)i&&i(e);else if(e.__lookupSetter__(t)||"o"!==t[0]||"n"!==t[1]){const l=ce(i);if((a||l&&null!==i)&&!o)try{if(e.tagName.includes("-"))e[t]=i;else{const o=null==i?"":i;"list"===t?a=!1:null!=r&&e[t]==o||(e[t]=o)}}catch(e){}let c=!1;s!==(s=s.replace(/^xlink\:?/,""))&&(t=s,c=!0),null==i||!1===i?!1===i&&""!==e.getAttribute(t)||(c?e.removeAttributeNS(se,t):e.removeAttribute(t)):(!a||4&n||o)&&!l&&(i=!0===i?"":i,c?e.setAttributeNS(se,t,i):e.setAttribute(t,i))}else t="-"===t[2]?t.slice(3):ot(lt,s)?s.slice(2):s[2]+t.slice(3),r&&ht.rel(e,t,r,!1),i&&ht.ael(e,t,i,!1)}},xe=/\s/,ke=e=>e?e.split(xe):[],_e=(e,t,r,i)=>{const o=11===t.$elm$.nodeType&&t.$elm$.host?t.$elm$.host:t.$elm$,n=e&&e.$attrs$||le,a=t.$attrs$||le;for(i in n)i in a||$e(o,i,n[i],void 0,r,t.$flags$);for(i in a)$e(o,i,n[i],a[i],r,t.$flags$)},Ce=(e,t,r,i)=>{const o=t.$children$[r];let n,a,s,l=0;if(te||(ie=!0,"slot"===o.$tag$&&(Z&&i.classList.add(Z+"-s"),o.$flags$|=o.$children$?2:1)),null!==o.$text$)n=o.$elm$=ct.createTextNode(o.$text$);else if(1&o.$flags$)n=o.$elm$=ct.createTextNode("");else{if(oe||(oe="svg"===o.$tag$),n=o.$elm$=ct.createElementNS(oe?"http://www.w3.org/2000/svg":"http://www.w3.org/1999/xhtml",2&o.$flags$?"slot-fb":o.$tag$),oe&&"foreignObject"===o.$tag$&&(oe=!1),_e(null,o,oe),null!=Z&&n["s-si"]!==Z&&n.classList.add(n["s-si"]=Z),o.$children$)for(l=0;l{ht.$flags$|=1;const r=e.childNodes;for(let e=r.length-1;e>=0;e--){const i=r[e];i["s-hn"]!==ee&&i["s-ol"]&&(ze(i).insertBefore(i,Me(i)),i["s-ol"].remove(),i["s-ol"]=void 0,ie=!0),t&&Te(i,t)}ht.$flags$&=-2},Ee=(e,t,r,i,o,n)=>{let a,s=e["s-cr"]&&e["s-cr"].parentNode||e;for(s.shadowRoot&&s.tagName===ee&&(s=s.shadowRoot);o<=n;++o)i[o]&&(a=Ce(null,r,o,e),a&&(i[o].$elm$=a,s.insertBefore(a,Me(t))))},Oe=(e,t,r,i,o)=>{for(;t<=r;++t)(i=e[t])&&(o=i.$elm$,We(i),re=!0,o["s-ol"]?o["s-ol"].remove():Te(o,!0),o.remove())},Se=(e,t)=>e.$tag$===t.$tag$&&("slot"===e.$tag$?e.$name$===t.$name$:e.$key$===t.$key$),Me=e=>e&&e["s-ol"]||e,ze=e=>(e["s-ol"]?e["s-ol"]:e).parentNode,Le=(e,t)=>{const r=t.$elm$=e.$elm$,i=e.$children$,o=t.$children$,n=t.$tag$,a=t.$text$;let s;null===a?(oe="svg"===n||"foreignObject"!==n&&oe,"slot"===n||_e(e,t,oe),null!==i&&null!==o?((e,t,r,i)=>{let o,n,a=0,s=0,l=0,c=0,d=t.length-1,h=t[0],g=t[d],u=i.length-1,m=i[0],p=i[u];for(;a<=d&&s<=u;)if(null==h)h=t[++a];else if(null==g)g=t[--d];else if(null==m)m=i[++s];else if(null==p)p=i[--u];else if(Se(h,m))Le(h,m),h=t[++a],m=i[++s];else if(Se(g,p))Le(g,p),g=t[--d],p=i[--u];else if(Se(h,p))"slot"!==h.$tag$&&"slot"!==p.$tag$||Te(h.$elm$.parentNode,!1),Le(h,p),e.insertBefore(h.$elm$,g.$elm$.nextSibling),h=t[++a],p=i[--u];else if(Se(g,m))"slot"!==h.$tag$&&"slot"!==p.$tag$||Te(g.$elm$.parentNode,!1),Le(g,m),e.insertBefore(g.$elm$,h.$elm$),g=t[--d],m=i[++s];else{for(l=-1,c=a;c<=d;++c)if(t[c]&&null!==t[c].$key$&&t[c].$key$===m.$key$){l=c;break}l>=0?(n=t[l],n.$tag$!==m.$tag$?o=Ce(t&&t[s],r,l,e):(Le(n,m),t[l]=void 0,o=n.$elm$),m=i[++s]):(o=Ce(t&&t[s],r,s,e),m=i[++s]),o&&ze(h.$elm$).insertBefore(o,Me(h.$elm$))}a>d?Ee(e,null==i[u+1]?null:i[u+1].$elm$,r,i,s,u):s>u&&Oe(t,a,d)})(r,i,t,o):null!==o?(null!==e.$text$&&(r.textContent=""),Ee(r,null,t,o,0,o.length-1)):null!==i&&Oe(i,0,i.length-1),oe&&"svg"===n&&(oe=!1)):(s=r["s-cr"])?s.parentNode.textContent=a:e.$text$!==a&&(r.data=a)},De=e=>{const t=e.childNodes;let r,i,o,n,a,s;for(i=0,o=t.length;i{let t,r,i,o,n,a,s=0;const l=e.childNodes,c=l.length;for(;s=0;a--)r=i[a],r["s-cn"]||r["s-nr"]||r["s-hn"]===t["s-hn"]||(Ie(r,o)?(n=Ae.find((e=>e.$nodeToRelocate$===r)),re=!0,r["s-sn"]=r["s-sn"]||o,n?n.$slotRefNode$=t:Ae.push({$slotRefNode$:t,$nodeToRelocate$:r}),r["s-sr"]&&Ae.map((e=>{Ie(e.$nodeToRelocate$,r["s-sn"])&&(n=Ae.find((e=>e.$nodeToRelocate$===r)),n&&!e.$slotRefNode$&&(e.$slotRefNode$=n.$slotRefNode$))}))):Ae.some((e=>e.$nodeToRelocate$===r))||Ae.push({$nodeToRelocate$:r}));1===t.nodeType&&Fe(t)}},Ie=(e,t)=>1===e.nodeType?null===e.getAttribute("slot")&&""===t||e.getAttribute("slot")===t:e["s-sn"]===t||""===t,We=e=>{e.$attrs$&&e.$attrs$.ref&&e.$attrs$.ref(null),e.$children$&&e.$children$.map(We)},Re=(e,t)=>{const r=e.$hostElement$,i=e.$cmpMeta$,o=e.$vnode$||he(null,null),n=(a=t)&&a.$tag$===ge?t:de(null,null,t);var a;if(ee=r.tagName,i.$attrsToReflect$&&(n.$attrs$=n.$attrs$||{},i.$attrsToReflect$.map((([e,t])=>n.$attrs$[t]=r[e]))),n.$tag$=null,n.$flags$|=4,e.$vnode$=n,n.$elm$=o.$elm$=r.shadowRoot||r,Z=r["s-sc"],J=r["s-cr"],te=!!(1&i.$flags$),re=!1,Le(o,n),ht.$flags$|=1,ie){let e,t,r,i,o,a;Fe(n.$elm$);let s=0;for(;s{e.$flags$|=16,e.$ancestorComponent$;return $t((()=>He(e,t)))},He=(e,t)=>{const r=e.$hostElement$,i=(e.$cmpMeta$.$tagName$,()=>{}),o=r;let n;return n=qe(o,t?"componentWillLoad":"componentWillUpdate"),n=Pe(n,(()=>qe(o,"componentWillRender"))),i(),Pe(n,(()=>Ve(e,o,t)))},Ve=async(e,t,r)=>{const i=e.$hostElement$,o=(e.$cmpMeta$.$tagName$,()=>{});i["s-rc"],r&&ye(e);const n=(e.$cmpMeta$.$tagName$,()=>{});je(e,t,i),n(),o(),Be(e)},je=(e,t,r)=>{try{ne=t,t=t.render&&t.render(),e.$flags$&=-17,e.$flags$|=2,(K||Y)&&(Q||Y)&&(G||Re(e,t))}catch(t){nt(t,e.$hostElement$)}return ne=null,null},Be=e=>{e.$cmpMeta$.$tagName$;const t=()=>{},r=e.$hostElement$;e.$ancestorComponent$,qe(r,"componentDidRender"),64&e.$flags$?(qe(r,"componentDidUpdate"),t()):(e.$flags$|=64,qe(r,"componentDidLoad"),t())},qe=(e,t,r)=>{if(e&&e[t])try{return e[t](r)}catch(e){nt(e)}},Pe=(e,t)=>e&&e.then?e.then(t):t(),Ue=(e,t,r,i)=>{const o=rt(e),n=e,a=o.$instanceValues$.get(t),s=o.$flags$,l=n;var c,d;c=r,d=i.$members$[t][0],r=null==c||ce(c)?c:4&d?"false"!==c&&(""===c||!!c):2&d?parseFloat(c):1&d?String(c):c;const h=Number.isNaN(a)&&Number.isNaN(r);if(r!==a&&!h){if(o.$instanceValues$.set(t,r),i.$watchers$&&128&s){const e=i.$watchers$[t];e&&e.map((e=>{try{l[e](r,a,t)}catch(e){nt(e,n)}}))}if(2==(18&s)){if(l.componentShouldUpdate&&!1===l.componentShouldUpdate(r,a,t))return;Ne(o,!1)}}},Ke=(e,t,r)=>{if(t.$members$){e.watchers&&(t.$watchers$=e.watchers);const r=Object.entries(t.$members$),i=e.prototype;r.map((([e,[r]])=>{(31&r||32&r)&&Object.defineProperty(i,e,{get(){return t=e,rt(this).$instanceValues$.get(t);var t},set(r){Ue(this,e,r,t)},configurable:!0,enumerable:!0})}));{const o=new Map;i.attributeChangedCallback=function(e,t,r){ht.jmp((()=>{const t=o.get(e);if(this.hasOwnProperty(t))r=this[t],delete this[t];else if(i.hasOwnProperty(t)&&"number"==typeof this[t]&&this[t]==r)return;this[t]=(null!==r||"boolean"!=typeof this[t])&&r}))},e.observedAttributes=r.filter((([e,t])=>15&t[0])).map((([e,r])=>{const i=r[1]||e;return o.set(i,e),512&r[0]&&t.$attrsToReflect$.push([e,i]),i}))}}return e},Ye=async(e,t,r,i,o)=>{if(!(32&t.$flags$)&&(o=e.constructor,t.$flags$|=32,customElements.whenDefined(r.$tagName$).then((()=>t.$flags$|=128)),o.style)){let i=o.style;"string"!=typeof i&&(i=i[t.$modeName$=(e=>st.map((t=>t(e))).find((e=>!!e)))(e)]);const n=we(r,t.$modeName$);if(!at.has(n)){const e=(r.$tagName$,()=>{});((e,t,r)=>{let i=at.get(e);mt&&r?(i=i||new CSSStyleSheet,"string"==typeof i?i=t:i.replaceSync(t)):i=t,at.set(e,i)})(n,i,!!(1&r.$flags$)),e()}}t.$ancestorComponent$;Ne(t,!0)},Qe=e=>{const t=e["s-cr"]=ct.createComment("");t["s-cn"]=!0,e.insertBefore(t,e.firstChild)},Ge=(e,t)=>{const r={$flags$:t[0],$tagName$:t[1]};r.$members$=t[2],r.$listeners$=t[3],r.$watchers$=e.$watchers$,r.$attrsToReflect$=[],!gt&&1&r.$flags$&&(r.$flags$|=8);const i=e.prototype.connectedCallback,o=e.prototype.disconnectedCallback;return Object.assign(e.prototype,{__registerHost(){it(this,r)},connectedCallback(){(e=>{if(!(1&ht.$flags$)){const t=rt(e),r=t.$cmpMeta$,i=(r.$tagName$,()=>{});1&t.$flags$?(Xe(e,t,r.$listeners$),t.$lazyInstance$):(t.$flags$|=1,12&r.$flags$&&Qe(e),r.$members$&&Object.entries(r.$members$).map((([t,[r]])=>{if(31&r&&e.hasOwnProperty(t)){const r=e[t];delete e[t],e[t]=r}})),Ye(e,t,r)),i()}})(this),i&&i.call(this)},disconnectedCallback(){(e=>{if(!(1&ht.$flags$)){const t=rt(e);t.$rmListeners$&&(t.$rmListeners$.map((e=>e())),t.$rmListeners$=void 0)}})(this),o&&o.call(this)},__attachShadow(){gt?this.attachShadow({mode:"open",delegatesFocus:!!(16&r.$flags$)}):this.shadowRoot=this}}),e.is=r.$tagName$,Ke(e,r)},Xe=(e,t,r,i)=>{r&&r.map((([r,i,o])=>{const n=Je(e,r),a=Ze(t,o),s=et(r);ht.ael(n,i,a,s),(t.$rmListeners$=t.$rmListeners$||[]).push((()=>ht.rel(n,i,a,s)))}))},Ze=(e,t)=>r=>{try{X||e.$hostElement$[t](r)}catch(e){nt(e)}},Je=(e,t)=>4&t?ct:8&t?lt:16&t?ct.body:e,et=e=>ut?{passive:!!(1&e),capture:!!(2&e)}:!!(2&e),tt=new WeakMap,rt=e=>tt.get(e),it=(e,t)=>{const r={$flags$:0,$hostElement$:e,$cmpMeta$:t,$instanceValues$:new Map};return Xe(e,r,t.$listeners$),tt.set(e,r)},ot=(e,t)=>t in e,nt=(e,t)=>(0,console.error)(e,t),at=new Map,st=[],lt="undefined"!=typeof window?window:{},ct=lt.document||{head:{}},dt=lt.HTMLElement||class{},ht={$flags$:0,$resourcesUrl$:"",jmp:e=>e(),raf:e=>requestAnimationFrame(e),ael:(e,t,r,i)=>e.addEventListener(t,r,i),rel:(e,t,r,i)=>e.removeEventListener(t,r,i),ce:(e,t)=>new CustomEvent(e,t)},gt=!0,ut=(()=>{let e=!1;try{ct.addEventListener("e",null,Object.defineProperty({},"passive",{get(){e=!0}}))}catch(e){}return e})(),mt=(()=>{try{return new CSSStyleSheet,"function"==typeof(new CSSStyleSheet).replaceSync}catch(e){}return!1})(),pt=[],ft=[],vt=(e,t)=>r=>{e.push(r),ae||(ae=!0,t&&4&ht.$flags$?wt(yt):ht.raf(yt))},bt=e=>{for(let t=0;t{bt(pt),bt(ft),(ae=pt.length>0)&&ht.raf(yt)},wt=e=>{return Promise.resolve(t).then(e);var t},$t=vt(ft,!0),xt=(e,t)=>{const r=!!e.label||e.hasLabelSlot,i=!!e.helpText||e.hasHelpTextSlot,o=!!e.invalidText||e.hasInvalidTextSlot,n=!e.invalid,a=!!e.invalid;return de("div",{class:{"form-control":!0,[`form-control-${e.size}`]:!0,"form-control-has-label":r,"form-control-has-help-text":i,"form-control-has-invalid-text":o}},de("label",{id:e.labelId,class:"form-control-label",htmlFor:e.inputId,"aria-hidden":r?"false":"true",onClick:e.onLabelClick},de("slot",{name:"label"},e.label),e.requiredIndicator&&de("div",{class:"asterisk"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 1200 1200"},de("path",{fill:"currentColor",d:"M489.838 29.354v443.603L68.032 335.894 0 545.285l421.829 137.086-260.743 358.876 178.219 129.398L600.048 811.84l260.673 358.806 178.146-129.398-260.766-358.783L1200 545.379l-68.032-209.403-421.899 137.07V29.443H489.84l-.002-.089z"})))),de("div",{class:"form-control-input"},t),n&&de("div",{id:e.helpTextId,class:"form-control-help-text","aria-hidden":i?"false":"true"},de("slot",{name:"help-text"},e.helpText)),a&&de("div",{id:e.invalidTextId,class:"form-control-invalid-text","aria-hidden":o?"false":"true"},de("div",{class:"icon"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Alert Circle"),de("path",{d:"M256,48C141.31,48,48,141.31,48,256s93.31,208,208,208,208-93.31,208-208S370.69,48,256,48Zm0,319.91a20,20,0,1,1,20-20A20,20,0,0,1,256,367.91Zm21.72-201.15-5.74,122a16,16,0,0,1-32,0l-5.74-121.94v-.05a21.74,21.74,0,1,1,43.44,0Z",fill:"currentColor"}))),de("div",{class:"text"},de("slot",{name:"invalid-text"},e.invalidText))))}; +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +function kt(e){const t=e?e.assignedNodes({flatten:!0}):[];let r="";return[...t].map((e=>{e.nodeType===Node.TEXT_NODE&&(r+=e.textContent)})),r}function _t(e,t){return t?null!==e.querySelector(`[slot="${t}"]`):[...e.childNodes].some((e=>{if(e.nodeType===e.TEXT_NODE&&""!==e.textContent.trim())return!0;if(e.nodeType===e.ELEMENT_NODE){if(!e.hasAttribute("slot"))return!0}return!1}))} +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */const Ct=(e,t=[])=>{const r={};return t.forEach((t=>{if(e.hasAttribute(t)){null!==e.getAttribute(t)&&(r[t]=e.getAttribute(t)),e.removeAttribute(t)}})),r},Tt=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow()}render(){return de("span",{class:"spinner","aria-busy":"true","aria-live":"polite"})}static get style(){return":host{--track-color:var(--gr-color-light-shade);--indicator-color:var(--gr-color-primary);--stroke-width:2px;display:inline-flex;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}.spinner{display:inline-block;width:1em;height:1em;border-radius:50%;border:solid var(--stroke-width) var(--track-color);border-top-color:var(--indicator-color);border-right-color:var(--indicator-color);animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}"}},[1,"gr-spinner"]);function Et(){if("undefined"==typeof customElements)return;["gr-spinner"].forEach((e=>{if("gr-spinner"===e)customElements.get(e)||customElements.define(e,Tt)}))}Et(); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +const Ot=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grFocus=fe(this,"gr-focus",7),this.grBlur=fe(this,"gr-blur",7),this.inheritedAttributes={},this.handleClick=e=>{if("button"!==this.type){const t=this.el.closest("form");if(t){e.preventDefault();const r=document.createElement("button");r.type=this.type,r.style.display="none",t.appendChild(r),r.click(),r.remove()}}},this.onFocus=()=>{this.grFocus.emit()},this.onBlur=()=>{this.grBlur.emit()},this.variant="default",this.disabled=!1,this.loading=!1,this.size="medium",this.caret=!1,this.pill=!1,this.expand=void 0,this.circle=!1,this.href=void 0,this.target=void 0,this.rel=void 0,this.type="button"}componentWillLoad(){this.inheritedAttributes=Ct(this.el,["aria-label","tabindex","title"])}async setFocus(e){this.button.focus(e)}async removeFocus(){this.button.blur()}render(){const{rel:e,target:t,href:r,variant:i,size:o,expand:n,type:a,inheritedAttributes:s,disabled:l}=this,c=void 0===r?"button":"a",d="button"===c?{type:a}:{href:r,rel:e,target:t};return de(ge,{onClick:this.handleClick,"aria-disabled":l?"true":null,class:{[`button-${i}`]:!0,[`button-${o}`]:!0,[`button-${n}`]:void 0!==n,"button-caret":this.caret,"button-circle":this.circle,"button-pill":this.pill,"button-disabled":l,"button-loading":this.loading}},de(c,Object.assign({ref:e=>this.button=e},d,{class:"button-native",disabled:l,onFocus:this.onFocus,onBlur:this.onBlur},s),de("span",{class:"button-inner"},de("slot",{name:"icon-only"}),de("slot",{name:"start"}),de("slot",null),de("slot",{name:"end"}),this.caret&&de("span",{class:"caret"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Chevron Down"),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"48",d:"M112 184l144 144 144-144"})))),this.loading&&de("gr-spinner",null)))}get el(){return this}static get style(){return".gr-scroll-lock{overflow:hidden !important}:host{display:inline-block;width:auto;font-family:var(--gr-font-family);font-weight:var(--gr-font-weight-medium);font-size:var(--gr-form-element-font-size-medium);font-kerning:none;user-select:none;vertical-align:top;vertical-align:-webkit-baseline-middle;pointer-events:auto;--height:var(--gr-form-element-height-medium);--border-radius:var(--gr-form-element-border-radius-medium);--border-width:1px;--border-style:solid;--background:transparent;--background-hover:transparent;--background-focus:transparent;--color:var(--gr-color-dark-tint);--color-hover:var(--gr-color-dark-tint);--color-focus:var(--gr-color-dark-tint);--border-color:var(--gr-color-light-shade);--border-color-hover:var(--gr-color-medium);--border-color-focus:var(--gr-color-primary);--padding-top:0;--padding-start:var(--gr-spacing-medium);--padding-end:var(--gr-spacing-medium);--padding-bottom:0;--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33);--shadow:none;--transition:background-color 150ms linear, opacity 150ms linear, border 150ms linear, color 150ms linear}:host(.button-disabled){pointer-events:none;opacity:0.5}:host(.button-primary){--border-color:var(--gr-color-primary);--background:var(--gr-color-primary);--color:var(--gr-color-primary-contrast);--border-color-hover:var(--gr-color-primary-shade);--background-hover:var(--gr-color-primary-shade);--color-hover:var(--gr-color-primary-contrast);--border-color-focus:var(--gr-color-primary);--background-focus:var(--gr-color-primary-shade);--color-focus:var(--gr-color-primary-contrast);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33)}:host(.button-secondary){--border-color:var(--gr-color-light-shade);--background:transparent;--color:var(--gr-color-primary);--border-color-hover:var(--gr-color-primary);--background-hover:transparent;--color-hover:var(--gr-color-primary);--border-color-focus:var(--gr-color-primary);--background-focus:transparent;--color-focus:var(--gr-color-primary);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33)}:host(.button-danger){--border-color:var(--gr-color-danger);--background:transparent;--color:var(--gr-color-danger);--border-color-hover:var(--gr-color-danger);--background-hover:var(--gr-color-danger);--color-hover:var(--gr-color-danger-contrast);--border-color-focus:var(--gr-color-danger);--background-focus:var(--gr-color-danger);--color-focus:var(--gr-color-danger-contrast);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-danger-rgb), 0.33)}:host(.button-plain){--border-color:transparent;--background:transparent;--color:var(--gr-color-primary);--border-color-hover:transparent;--background-hover:transparent;--color-hover:var(--gr-color-primary-shade);--border-color-focus:transparent;--background-focus:transparent;--color-focus:var(--gr-color-primary-shade);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33)}:host(.button-small){--padding-start:var(--gr-spacing-small);--padding-end:var(--gr-spacing-small);--border-radius:var(--gr-form-element-border-radius-small);--height:var(--gr-form-element-height-small);font-size:var(--gr-form-element-font-size-small)}:host(.button-large){--padding-start:var(--gr-spacing-large);--padding-end:var(--gr-spacing-large);--border-radius:var(--gr-form-element-border-radius-large);--height:var(--gr-form-element-height-large);font-size:var(--gr-form-element-font-size-large)}:host(.button-block){display:block}:host(.button-block) .button-native{margin-left:0;margin-right:0;display:block;width:100%;clear:both;contain:content}:host(.button-block) .button-native::after{clear:both}:host(.button-full){display:block}:host(.button-full) .button-native{margin-left:0;margin-right:0;display:block;width:100%;contain:content;border-radius:0;border-right-width:0;border-left-width:0}.button-native{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:block;position:relative;padding-top:var(--padding-top);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-bottom:var(--padding-bottom);width:100%;height:var(--height);transition:var(--transition);border-radius:var(--border-radius);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);color:var(--color);box-shadow:var(--shadow);line-height:1;cursor:pointer;z-index:0;text-decoration:none;box-sizing:border-box}.button-native::-moz-focus-inner{border:0}.button-native:focus{outline:none;box-shadow:var(--focus-ring);border-color:var(--border-color-focus);background-color:var(--background-focus);color:var(--color-focus)}.button-native *,.button-native *:before,.button-native *:after{box-sizing:inherit}.button-inner{display:flex;position:relative;flex-flow:row nowrap;flex-shrink:0;align-items:center;justify-content:center;width:100%;height:100%;z-index:1}:host(.button-circle) .button-native{padding-top:0;padding-bottom:0;padding-left:0;padding-right:0;border-radius:50%;width:var(--height)}@media (any-hover: hover){.button-native:hover{color:var(--color-hover);background:var(--background-hover);border-color:var(--border-color-hover)}}:host(.button-caret) .caret{display:flex;align-items:center;margin-left:0.3em}:host(.button-caret) .caret svg{width:1em;height:1em}:host(.button-pill) .button-native{border-radius:var(--height)}::slotted(*){pointer-events:none}::slotted([slot=start]){margin-top:0;margin-left:-0.3em;margin-right:0.3em;margin-bottom:0}::slotted([slot=end]){margin-top:0;margin-left:0.3em;margin-right:-0.2em;margin-bottom:0}::slotted([slot=icon-only]){font-size:1.4em;pointer-events:none}:host(.button-loading){position:relative;pointer-events:none}:host(.button-loading) .caret{visibility:hidden}:host(.button-loading) slot[name=start],:host(.button-loading) slot[name=end],:host(.button-loading) slot[name=icon-only],:host(.button-loading) slot:not([name]){visibility:hidden}:host(.button-loading) gr-spinner{--indicator-color:currentColor;position:absolute;height:1em;width:1em;top:calc(50% - 0.5em);left:calc(50% - 0.5em)}@media not all and (min-resolution: 0.001dpcm){@supports (-webkit-appearance: none) and (stroke-color: transparent){:host([type=button]),:host([type=reset]),:host([type=submit]){-webkit-appearance:none !important}}}"}},[1,"gr-button",{variant:[513],disabled:[516],loading:[516],size:[513],caret:[4],pill:[516],expand:[513],circle:[516],href:[1],target:[1],rel:[1],type:[1],setFocus:[64],removeFocus:[64]}]);function St(){if("undefined"==typeof customElements)return;["gr-button","gr-spinner"].forEach((e=>{switch(e){case"gr-button":customElements.get(e)||customElements.define(e,Ot);break;case"gr-spinner":customElements.get(e)||Et()}}))}function Mt(e,t,r="vertical",i="smooth"){const o= +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +function(e,t){return{top:Math.round(e.getBoundingClientRect().top-t.getBoundingClientRect().top),left:Math.round(e.getBoundingClientRect().left-t.getBoundingClientRect().left)}}(e,t),n=o.top+t.scrollTop,a=o.left+t.scrollLeft,s=t.scrollLeft,l=t.scrollLeft+t.offsetWidth,c=t.scrollTop,d=t.scrollTop+t.offsetHeight;"horizontal"!==r&&"both"!==r||(al&&t.scrollTo({left:a-t.offsetWidth+e.clientWidth,behavior:i})),"vertical"!==r&&"both"!==r||(nd&&t.scrollTo({top:n-t.offsetHeight+e.clientHeight,behavior:i}))} +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */function zt(e){return e.tabIndex>-1}function Lt(e){if(zt(e))return e;if(e.shadowRoot){const t=[...e.shadowRoot.children].find(zt);if(t)return t}return e.children?[...e.children].map(Lt)[0]:null}St();var Dt="top",At="bottom",Ft="right",It="left",Wt="auto",Rt=[Dt,At,Ft,It],Nt="start",Ht="end",Vt="clippingParents",jt="viewport",Bt="popper",qt="reference",Pt=Rt.reduce((function(e,t){return e.concat([t+"-"+Nt,t+"-"+Ht])}),[]),Ut=[].concat(Rt,[Wt]).reduce((function(e,t){return e.concat([t,t+"-"+Nt,t+"-"+Ht])}),[]),Kt=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Yt(e){return e?(e.nodeName||"").toLowerCase():null}function Qt(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Gt(e){return e instanceof Qt(e).Element||e instanceof Element}function Xt(e){return e instanceof Qt(e).HTMLElement||e instanceof HTMLElement}function Zt(e){return"undefined"!=typeof ShadowRoot&&(e instanceof Qt(e).ShadowRoot||e instanceof ShadowRoot)}const Jt={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var r=t.styles[e]||{},i=t.attributes[e]||{},o=t.elements[e];Xt(o)&&Yt(o)&&(Object.assign(o.style,r),Object.keys(i).forEach((function(e){var t=i[e];!1===t?o.removeAttribute(e):o.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,r={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,r.popper),t.styles=r,t.elements.arrow&&Object.assign(t.elements.arrow.style,r.arrow),function(){Object.keys(t.elements).forEach((function(e){var i=t.elements[e],o=t.attributes[e]||{},n=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:r[e]).reduce((function(e,t){return e[t]="",e}),{});Xt(i)&&Yt(i)&&(Object.assign(i.style,n),Object.keys(o).forEach((function(e){i.removeAttribute(e)})))}))}},requires:["computeStyles"]};function er(e){return e.split("-")[0]}var tr=Math.max,rr=Math.min,ir=Math.round;function or(e,t){void 0===t&&(t=!1);var r=e.getBoundingClientRect(),i=1,o=1;if(Xt(e)&&t){var n=e.offsetHeight,a=e.offsetWidth;a>0&&(i=ir(r.width)/a||1),n>0&&(o=ir(r.height)/n||1)}return{width:r.width/i,height:r.height/o,top:r.top/o,right:r.right/i,bottom:r.bottom/o,left:r.left/i,x:r.left/i,y:r.top/o}}function nr(e){var t=or(e),r=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-r)<=1&&(r=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:i}}function ar(e,t){var r=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(r&&Zt(r)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function sr(e){return Qt(e).getComputedStyle(e)}function lr(e){return["table","td","th"].indexOf(Yt(e))>=0}function cr(e){return((Gt(e)?e.ownerDocument:e.document)||window.document).documentElement}function dr(e){return"html"===Yt(e)?e:e.assignedSlot||e.parentNode||(Zt(e)?e.host:null)||cr(e)}function hr(e){return Xt(e)&&"fixed"!==sr(e).position?e.offsetParent:null}function gr(e){for(var t=Qt(e),r=hr(e);r&&lr(r)&&"static"===sr(r).position;)r=hr(r);return r&&("html"===Yt(r)||"body"===Yt(r)&&"static"===sr(r).position)?t:r||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&Xt(e)&&"fixed"===sr(e).position)return null;var r=dr(e);for(Zt(r)&&(r=r.host);Xt(r)&&["html","body"].indexOf(Yt(r))<0;){var i=sr(r);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return r;r=r.parentNode}return null}(e)||t}function ur(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function mr(e,t,r){return tr(e,rr(t,r))}function pr(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function fr(e,t){return t.reduce((function(t,r){return t[r]=e,t}),{})}const vr={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,r=e.state,i=e.name,o=e.options,n=r.elements.arrow,a=r.modifiersData.popperOffsets,s=er(r.placement),l=ur(s),c=[It,Ft].indexOf(s)>=0?"height":"width";if(n&&a){var d=function(e,t){return pr("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:fr(e,Rt))}(o.padding,r),h=nr(n),g="y"===l?Dt:It,u="y"===l?At:Ft,m=r.rects.reference[c]+r.rects.reference[l]-a[l]-r.rects.popper[c],p=a[l]-r.rects.reference[l],f=gr(n),v=f?"y"===l?f.clientHeight||0:f.clientWidth||0:0,b=m/2-p/2,y=d[g],w=v-h[c]-d[u],$=v/2-h[c]/2+b,x=mr(y,$,w),k=l;r.modifiersData[i]=((t={})[k]=x,t.centerOffset=x-$,t)}},effect:function(e){var t=e.state,r=e.options.element,i=void 0===r?"[data-popper-arrow]":r;null!=i&&("string"!=typeof i||(i=t.elements.popper.querySelector(i)))&&ar(t.elements.popper,i)&&(t.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function br(e){return e.split("-")[1]}var yr={top:"auto",right:"auto",bottom:"auto",left:"auto"};function wr(e){var t,r=e.popper,i=e.popperRect,o=e.placement,n=e.variation,a=e.offsets,s=e.position,l=e.gpuAcceleration,c=e.adaptive,d=e.roundOffsets,h=e.isFixed,g=a.x,u=void 0===g?0:g,m=a.y,p=void 0===m?0:m,f="function"==typeof d?d({x:u,y:p}):{x:u,y:p};u=f.x,p=f.y;var v=a.hasOwnProperty("x"),b=a.hasOwnProperty("y"),y=It,w=Dt,$=window;if(c){var x=gr(r),k="clientHeight",_="clientWidth";if(x===Qt(r)&&"static"!==sr(x=cr(r)).position&&"absolute"===s&&(k="scrollHeight",_="scrollWidth"),o===Dt||(o===It||o===Ft)&&n===Ht)w=At,p-=(h&&x===$&&$.visualViewport?$.visualViewport.height:x[k])-i.height,p*=l?1:-1;if(o===It||(o===Dt||o===At)&&n===Ht)y=Ft,u-=(h&&x===$&&$.visualViewport?$.visualViewport.width:x[_])-i.width,u*=l?1:-1}var C,T=Object.assign({position:s},c&&yr),E=!0===d?function(e){var t=e.x,r=e.y,i=window.devicePixelRatio||1;return{x:ir(t*i)/i||0,y:ir(r*i)/i||0}}({x:u,y:p}):{x:u,y:p};return u=E.x,p=E.y,l?Object.assign({},T,((C={})[w]=b?"0":"",C[y]=v?"0":"",C.transform=($.devicePixelRatio||1)<=1?"translate("+u+"px, "+p+"px)":"translate3d("+u+"px, "+p+"px, 0)",C)):Object.assign({},T,((t={})[w]=b?p+"px":"",t[y]=v?u+"px":"",t.transform="",t))}var $r={passive:!0};var xr={left:"right",right:"left",bottom:"top",top:"bottom"};function kr(e){return e.replace(/left|right|bottom|top/g,(function(e){return xr[e]}))}var _r={start:"end",end:"start"};function Cr(e){return e.replace(/start|end/g,(function(e){return _r[e]}))}function Tr(e){var t=Qt(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Er(e){return or(cr(e)).left+Tr(e).scrollLeft}function Or(e){var t=sr(e),r=t.overflow,i=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(r+o+i)}function Sr(e){return["html","body","#document"].indexOf(Yt(e))>=0?e.ownerDocument.body:Xt(e)&&Or(e)?e:Sr(dr(e))}function Mr(e,t){var r;void 0===t&&(t=[]);var i=Sr(e),o=i===(null==(r=e.ownerDocument)?void 0:r.body),n=Qt(i),a=o?[n].concat(n.visualViewport||[],Or(i)?i:[]):i,s=t.concat(a);return o?s:s.concat(Mr(dr(a)))}function zr(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Lr(e,t){return t===jt?zr(function(e){var t=Qt(e),r=cr(e),i=t.visualViewport,o=r.clientWidth,n=r.clientHeight,a=0,s=0;return i&&(o=i.width,n=i.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(a=i.offsetLeft,s=i.offsetTop)),{width:o,height:n,x:a+Er(e),y:s}}(e)):Gt(t)?function(e){var t=or(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):zr(function(e){var t,r=cr(e),i=Tr(e),o=null==(t=e.ownerDocument)?void 0:t.body,n=tr(r.scrollWidth,r.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),a=tr(r.scrollHeight,r.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),s=-i.scrollLeft+Er(e),l=-i.scrollTop;return"rtl"===sr(o||r).direction&&(s+=tr(r.clientWidth,o?o.clientWidth:0)-n),{width:n,height:a,x:s,y:l}}(cr(e)))}function Dr(e,t,r){var i="clippingParents"===t?function(e){var t=Mr(dr(e)),r=["absolute","fixed"].indexOf(sr(e).position)>=0&&Xt(e)?gr(e):e;return Gt(r)?t.filter((function(e){return Gt(e)&&ar(e,r)&&"body"!==Yt(e)})):[]}(e):[].concat(t),o=[].concat(i,[r]),n=o[0],a=o.reduce((function(t,r){var i=Lr(e,r);return t.top=tr(i.top,t.top),t.right=rr(i.right,t.right),t.bottom=rr(i.bottom,t.bottom),t.left=tr(i.left,t.left),t}),Lr(e,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function Ar(e){var t,r=e.reference,i=e.element,o=e.placement,n=o?er(o):null,a=o?br(o):null,s=r.x+r.width/2-i.width/2,l=r.y+r.height/2-i.height/2;switch(n){case Dt:t={x:s,y:r.y-i.height};break;case At:t={x:s,y:r.y+r.height};break;case Ft:t={x:r.x+r.width,y:l};break;case It:t={x:r.x-i.width,y:l};break;default:t={x:r.x,y:r.y}}var c=n?ur(n):null;if(null!=c){var d="y"===c?"height":"width";switch(a){case Nt:t[c]=t[c]-(r[d]/2-i[d]/2);break;case Ht:t[c]=t[c]+(r[d]/2-i[d]/2)}}return t}function Fr(e,t){void 0===t&&(t={});var r=t,i=r.placement,o=void 0===i?e.placement:i,n=r.boundary,a=void 0===n?Vt:n,s=r.rootBoundary,l=void 0===s?jt:s,c=r.elementContext,d=void 0===c?Bt:c,h=r.altBoundary,g=void 0!==h&&h,u=r.padding,m=void 0===u?0:u,p=pr("number"!=typeof m?m:fr(m,Rt)),f=d===Bt?qt:Bt,v=e.rects.popper,b=e.elements[g?f:d],y=Dr(Gt(b)?b:b.contextElement||cr(e.elements.popper),a,l),w=or(e.elements.reference),$=Ar({reference:w,element:v,strategy:"absolute",placement:o}),x=zr(Object.assign({},v,$)),k=d===Bt?x:w,_={top:y.top-k.top+p.top,bottom:k.bottom-y.bottom+p.bottom,left:y.left-k.left+p.left,right:k.right-y.right+p.right},C=e.modifiersData.offset;if(d===Bt&&C){var T=C[o];Object.keys(_).forEach((function(e){var t=[Ft,At].indexOf(e)>=0?1:-1,r=[Dt,At].indexOf(e)>=0?"y":"x";_[e]+=T[r]*t}))}return _}function Ir(e,t){void 0===t&&(t={});var r=t,i=r.placement,o=r.boundary,n=r.rootBoundary,a=r.padding,s=r.flipVariations,l=r.allowedAutoPlacements,c=void 0===l?Ut:l,d=br(i),h=d?s?Pt:Pt.filter((function(e){return br(e)===d})):Rt,g=h.filter((function(e){return c.indexOf(e)>=0}));0===g.length&&(g=h);var u=g.reduce((function(t,r){return t[r]=Fr(e,{placement:r,boundary:o,rootBoundary:n,padding:a})[er(r)],t}),{});return Object.keys(u).sort((function(e,t){return u[e]-u[t]}))}const Wr={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,r=e.options,i=e.name;if(!t.modifiersData[i]._skip){for(var o=r.mainAxis,n=void 0===o||o,a=r.altAxis,s=void 0===a||a,l=r.fallbackPlacements,c=r.padding,d=r.boundary,h=r.rootBoundary,g=r.altBoundary,u=r.flipVariations,m=void 0===u||u,p=r.allowedAutoPlacements,f=t.options.placement,v=er(f),b=l||(v===f||!m?[kr(f)]:function(e){if(er(e)===Wt)return[];var t=kr(e);return[Cr(e),t,Cr(t)]}(f)),y=[f].concat(b).reduce((function(e,r){return e.concat(er(r)===Wt?Ir(t,{placement:r,boundary:d,rootBoundary:h,padding:c,flipVariations:m,allowedAutoPlacements:p}):r)}),[]),w=t.rects.reference,$=t.rects.popper,x=new Map,k=!0,_=y[0],C=0;C=0,M=S?"width":"height",z=Fr(t,{placement:T,boundary:d,rootBoundary:h,altBoundary:g,padding:c}),L=S?O?Ft:It:O?At:Dt;w[M]>$[M]&&(L=kr(L));var D=kr(L),A=[];if(n&&A.push(z[E]<=0),s&&A.push(z[L]<=0,z[D]<=0),A.every((function(e){return e}))){_=T,k=!1;break}x.set(T,A)}if(k)for(var F=function(e){var t=y.find((function(t){var r=x.get(t);if(r)return r.slice(0,e).every((function(e){return e}))}));if(t)return _=t,"break"},I=m?3:1;I>0;I--){if("break"===F(I))break}t.placement!==_&&(t.modifiersData[i]._skip=!0,t.placement=_,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Rr(e,t,r){return void 0===r&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function Nr(e){return[Dt,Ft,At,It].some((function(t){return e[t]>=0}))}const Hr={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,r=e.options,i=e.name,o=r.offset,n=void 0===o?[0,0]:o,a=Ut.reduce((function(e,r){return e[r]=function(e,t,r){var i=er(e),o=[It,Dt].indexOf(i)>=0?-1:1,n="function"==typeof r?r(Object.assign({},t,{placement:e})):r,a=n[0],s=n[1];return a=a||0,s=(s||0)*o,[It,Ft].indexOf(i)>=0?{x:s,y:a}:{x:a,y:s}}(r,t.rects,n),e}),{}),s=a[t.placement],l=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=c),t.modifiersData[i]=a}};const Vr={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,r=e.options,i=e.name,o=r.mainAxis,n=void 0===o||o,a=r.altAxis,s=void 0!==a&&a,l=r.boundary,c=r.rootBoundary,d=r.altBoundary,h=r.padding,g=r.tether,u=void 0===g||g,m=r.tetherOffset,p=void 0===m?0:m,f=Fr(t,{boundary:l,rootBoundary:c,padding:h,altBoundary:d}),v=er(t.placement),b=br(t.placement),y=!b,w=ur(v),$="x"===w?"y":"x",x=t.modifiersData.popperOffsets,k=t.rects.reference,_=t.rects.popper,C="function"==typeof p?p(Object.assign({},t.rects,{placement:t.placement})):p,T="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),E=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(x){if(n){var S,M="y"===w?Dt:It,z="y"===w?At:Ft,L="y"===w?"height":"width",D=x[w],A=D+f[M],F=D-f[z],I=u?-_[L]/2:0,W=b===Nt?k[L]:_[L],R=b===Nt?-_[L]:-k[L],N=t.elements.arrow,H=u&&N?nr(N):{width:0,height:0},V=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},j=V[M],B=V[z],q=mr(0,k[L],H[L]),P=y?k[L]/2-I-q-j-T.mainAxis:W-q-j-T.mainAxis,U=y?-k[L]/2+I+q+B+T.mainAxis:R+q+B+T.mainAxis,K=t.elements.arrow&&gr(t.elements.arrow),Y=K?"y"===w?K.clientTop||0:K.clientLeft||0:0,Q=null!=(S=null==E?void 0:E[w])?S:0,G=D+U-Q,X=mr(u?rr(A,D+P-Q-Y):A,D,u?tr(F,G):F);x[w]=X,O[w]=X-D}if(s){var Z,J="x"===w?Dt:It,ee="x"===w?At:Ft,te=x[$],re="y"===$?"height":"width",ie=te+f[J],oe=te-f[ee],ne=-1!==[Dt,It].indexOf(v),ae=null!=(Z=null==E?void 0:E[$])?Z:0,se=ne?ie:te-k[re]-_[re]-ae+T.altAxis,le=ne?te+k[re]+_[re]-ae-T.altAxis:oe,ce=u&&ne?function(e,t,r){var i=mr(e,t,r);return i>r?r:i}(se,te,le):mr(u?se:ie,te,u?le:oe);x[$]=ce,O[$]=ce-te}t.modifiersData[i]=O}},requiresIfExists:["offset"]};function jr(e,t,r){void 0===r&&(r=!1);var i,o,n=Xt(t),a=Xt(t)&&function(e){var t=e.getBoundingClientRect(),r=ir(t.width)/e.offsetWidth||1,i=ir(t.height)/e.offsetHeight||1;return 1!==r||1!==i}(t),s=cr(t),l=or(e,a),c={scrollLeft:0,scrollTop:0},d={x:0,y:0};return(n||!n&&!r)&&(("body"!==Yt(t)||Or(s))&&(c=(i=t)!==Qt(i)&&Xt(i)?{scrollLeft:(o=i).scrollLeft,scrollTop:o.scrollTop}:Tr(i)),Xt(t)?((d=or(t,!0)).x+=t.clientLeft,d.y+=t.clientTop):s&&(d.x=Er(s))),{x:l.left+c.scrollLeft-d.x,y:l.top+c.scrollTop-d.y,width:l.width,height:l.height}}function Br(e){var t=new Map,r=new Set,i=[];function o(e){r.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!r.has(e)){var i=t.get(e);i&&o(i)}})),i.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){r.has(e.name)||o(e)})),i}var qr={placement:"bottom",modifiers:[],strategy:"absolute"};function Pr(){for(var e=arguments.length,t=new Array(e),r=0;r{},onAfterHide:()=>{},onTransitionEnd:()=>{}},r),this.isVisible=!1,this.popover.hidden=!0,this.popover.classList.remove(this.options.visibleClass),this.popover.addEventListener("transitionend",this.handleTransitionEnd)}handleTransitionEnd(e){e.target===this.options.transitionElement&&(this.options.onTransitionEnd.call(this,e),this.isVisible||this.popover.hidden||(this.popover.hidden=!0,this.popover.classList.remove(this.options.visibleClass),this.options.onAfterHide.call(this)))}destroy(){this.popover.removeEventListener("transitionend",this.handleTransitionEnd),this.popper&&(this.popper.destroy(),this.popper=null)}show(){this.isVisible=!0,this.popover.hidden=!1,requestAnimationFrame((()=>this.popover.classList.add(this.options.visibleClass))),this.popper&&this.popper.destroy(),this.popper=Kr(this.anchor,this.popover,{placement:this.options.placement,strategy:this.options.strategy,modifiers:[{name:"flip",options:{boundary:"viewport"}},{name:"offset",options:{offset:[this.options.skidding,this.options.distance]}}]}),this.popover.addEventListener("transitionend",(()=>this.options.onAfterShow.call(this)),{once:!0}),requestAnimationFrame((()=>this.popper.update()))}hide(){this.isVisible=!1,this.popover.classList.remove(this.options.visibleClass)}setOptions(e){this.options=Object.assign(this.options,e),this.isVisible?this.popover.classList.add(this.options.visibleClass):this.popover.classList.remove(this.options.visibleClass),this.popper&&(this.popper.setOptions({placement:this.options.placement,strategy:this.options.strategy}),requestAnimationFrame((()=>this.popper.update())))}}let Qr=0;const Gr=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grShow=fe(this,"gr-show",7),this.grAfterShow=fe(this,"gr-after-show",7),this.grHide=fe(this,"gr-hide",7),this.grAfterHide=fe(this,"gr-after-hide",7),this.componentId="dropdown-"+ ++Qr,this.isVisible=!1,this.open=!1,this.placement="bottom-start",this.closeOnSelect=!0,this.containingElement=void 0,this.distance=2,this.skidding=0,this.hoist=!1}handleOpenChange(){this.open?this.show():this.hide(),this.updateAccessibleTrigger()}handlePopoverOptionsChange(){this.popoverElement.setOptions({strategy:this.hoist?"fixed":"absolute",placement:this.placement,distance:this.distance,skidding:this.skidding})}connectedCallback(){this.containingElement||(this.containingElement=this.el),this.handleDocumentKeyDown=this.handleDocumentKeyDown.bind(this),this.handleDocumentMouseDown=this.handleDocumentMouseDown.bind(this),this.handleMenuItemActivate=this.handleMenuItemActivate.bind(this),this.handlePanelSelect=this.handlePanelSelect.bind(this),this.handleTriggerClick=this.handleTriggerClick.bind(this),this.handleTriggerKeyDown=this.handleTriggerKeyDown.bind(this),this.handleTriggerKeyUp=this.handleTriggerKeyUp.bind(this),this.handleTriggerSlotChange=this.handleTriggerSlotChange.bind(this)}componentDidLoad(){this.popoverElement=new Yr(this.trigger,this.positioner,{strategy:this.hoist?"fixed":"absolute",placement:this.placement,distance:this.distance,skidding:this.skidding,transitionElement:this.panel,onAfterHide:()=>this.grAfterHide.emit(),onAfterShow:()=>this.grAfterShow.emit(),onTransitionEnd:()=>{this.open||(this.panel.scrollTop=0)}}),this.open&&this.show()}disconnectedCallback(){this.hide(),this.popoverElement.destroy()}async show(){if(this.isVisible)return;this.grShow.emit().defaultPrevented?this.open=!1:(this.panel.addEventListener("gr-activate",this.handleMenuItemActivate),this.panel.addEventListener("gr-select",this.handlePanelSelect),document.addEventListener("keydown",this.handleDocumentKeyDown),document.addEventListener("mousedown",this.handleDocumentMouseDown),this.isVisible=!0,this.open=!0,this.popoverElement.show())}async hide(){if(!this.isVisible)return;this.grHide.emit().defaultPrevented?this.open=!0:(this.panel.removeEventListener("gr-activate",this.handleMenuItemActivate),this.panel.removeEventListener("gr-select",this.handlePanelSelect),document.addEventListener("keydown",this.handleDocumentKeyDown),document.removeEventListener("mousedown",this.handleDocumentMouseDown),this.isVisible=!1,this.open=!1,this.popoverElement.hide())}async focusOnTrigger(){const e=this.trigger.querySelector("slot").assignedElements({flatten:!0})[0];e&&("function"==typeof e.setFocus?e.setFocus():"function"==typeof e.focus&&e.focus())}getMenu(){return this.panel.querySelector("slot").assignedElements({flatten:!0}).filter((e=>"gr-menu"===e.tagName.toLowerCase()))[0]}handleDocumentKeyDown(e){var t;if("Escape"===e.key)return this.hide(),void this.focusOnTrigger();if("Tab"===e.key){if(this.open&&"gr-menu-item"===(null===(t=document.activeElement)||void 0===t?void 0:t.tagName.toLowerCase()))return e.preventDefault(),this.hide(),void this.focusOnTrigger();setTimeout((()=>{var e;const t=this.containingElement.getRootNode()instanceof ShadowRoot?null===(e=document.activeElement.shadowRoot)||void 0===e?void 0:e.activeElement:document.activeElement;(null==t?void 0:t.closest(this.containingElement.tagName.toLowerCase()))===this.containingElement||this.hide()}))}}handleDocumentMouseDown(e){e.composedPath().includes(this.containingElement)||this.hide()}handleMenuItemActivate(e){Mt(e.target,this.panel)}handlePanelSelect(e){const t=e.target;this.closeOnSelect&&"gr-menu"===t.tagName.toLowerCase()&&(this.hide(),this.focusOnTrigger())}handleTriggerClick(){this.open?this.hide():this.show()}handleTriggerKeyDown(e){const t=this.getMenu(),r=t?[...t.querySelectorAll("gr-menu-item")]:null,i=r[0],o=r[r.length-1];if("Escape"===e.key)return this.focusOnTrigger(),void this.hide();if([" ","Enter"].includes(e.key))return e.preventDefault(),void(this.open?this.hide():this.show());if(["ArrowDown","ArrowUp"].includes(e.key)){if(e.preventDefault(),this.open||this.show(),"ArrowDown"===e.key&&i)return void i.setFocus();if("ArrowUp"===e.key&&o)return void o.setFocus()}this.open&&t&&!["Tab","Shift","Meta","Ctrl","Alt"].includes(e.key)&&t.typeToSelect(e.key)}handleTriggerKeyUp(e){" "===e.key&&e.preventDefault()}handleTriggerSlotChange(){this.updateAccessibleTrigger()}updateAccessibleTrigger(){const e=this.trigger.querySelector("slot").assignedElements({flatten:!0}).map(Lt)[0];e&&(e.setAttribute("aria-haspopup","true"),e.setAttribute("aria-expanded",this.open?"true":"false"))}render(){return de(ge,{id:this.componentId,class:{"dropdown-open":this.open}},de("span",{class:"dropdown-trigger",ref:e=>this.trigger=e,onClick:this.handleTriggerClick,onKeyDown:this.handleTriggerKeyDown,onKeyUp:this.handleTriggerKeyUp},de("slot",{name:"trigger",onSlotchange:this.handleTriggerSlotChange})),de("div",{ref:e=>this.positioner=e,class:"dropdown-positioner"},de("div",{ref:e=>this.panel=e,class:"dropdown-panel",role:"menu","aria-hidden":this.open?"false":"true","aria-labelledby":this.componentId},de("slot",null))))}get el(){return this}static get watchers(){return{open:["handleOpenChange"],distance:["handlePopoverOptionsChange"],hoist:["handlePopoverOptionsChange"],placement:["handlePopoverOptionsChange"],skidding:["handlePopoverOptionsChange"]}}static get style(){return".gr-scroll-lock{overflow:hidden !important}:host{--panel-background-color:var(--gr-color-white);--panel-border-radius:var(--gr-border-radius-medium);--panel-border-color:var(--gr-panel-border-color);--panel-box-shadow:var(--gr-shadow-large);--transition:150ms opacity, 150ms transform;display:inline-block;position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}.dropdown-trigger{display:block}.dropdown-positioner{position:absolute;z-index:var(--gr-z-index-dropdown)}.dropdown-panel{max-height:50vh;font-family:var(--gr-font-family);font-size:var(--gr-font-size-medium);font-weight:var(--gr-font-weight-normal);background-color:var(--panel-background-color);border:solid 1px var(--panel-border-color);border-radius:var(--panel-border-radius);box-shadow:var(--panel-box-shadow);opacity:0;overflow:auto;overscroll-behavior:none;pointer-events:none;transform:scale(0.9);transition:var(--transition)}.dropdown-positioner[data-popper-placement^=top] .dropdown-panel{transform-origin:bottom}.dropdown-positioner[data-popper-placement^=bottom] .dropdown-panel{transform-origin:top}.dropdown-positioner[data-popper-placement^=left] .dropdown-panel{transform-origin:right}.dropdown-positioner[data-popper-placement^=right] .dropdown-panel{transform-origin:left}.dropdown-positioner.popover-visible .dropdown-panel{opacity:1;transform:none;pointer-events:all}"}},[1,"gr-dropdown",{open:[1540],placement:[1],closeOnSelect:[4,"close-on-select"],containingElement:[1040],distance:[2],skidding:[2],hoist:[4],show:[64],hide:[64],focusOnTrigger:[64]}]);function Xr(){if("undefined"==typeof customElements)return;["gr-dropdown"].forEach((e=>{if("gr-dropdown"===e)customElements.get(e)||customElements.define(e,Gr)}))}Xr(); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +const Zr=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grSelect=fe(this,"gr-select",7),this.typeToSelectString=""}connectedCallback(){this.handleClick=this.handleClick.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}async typeToSelect(e){clearTimeout(this.typeToSelectTimeout),this.typeToSelectTimeout=setTimeout((()=>this.typeToSelectString=""),750),this.typeToSelectString+=e.toLowerCase();const t=this.getItems();for(const e of t){if(kt(e.shadowRoot.querySelector("slot:not([name])")).toLowerCase().trim().substring(0,this.typeToSelectString.length)===this.typeToSelectString){e.setFocus();break}}}getItems(){return[...this.menu.querySelector("slot").assignedElements({flatten:!0})].filter((e=>"gr-menu-item"===e.tagName.toLowerCase()&&!e.disabled))}getActiveItem(){return this.getItems().find((e=>e===document.activeElement))}setActiveItem(e){e.setFocus()}handleClick(e){const t=e.target.closest("gr-menu-item");t&&!t.disabled&&this.grSelect.emit({item:t})}handleKeyDown(e){if("Enter"===e.key){const t=this.getActiveItem();e.preventDefault(),t&&this.grSelect.emit({item:t})}if(" "===e.key&&e.preventDefault(),["ArrowDown","ArrowUp","Home","End"].includes(e.key)){const t=this.getItems(),r=this.getActiveItem();let i=t.indexOf(r);if(t.length)return e.preventDefault(),"ArrowDown"===e.key?i++:"ArrowUp"===e.key?i--:"Home"===e.key?i=0:"End"===e.key&&(i=t.length-1),i<0&&(i=0),i>t.length-1&&(i=t.length-1),void this.setActiveItem(t[i])}this.typeToSelect(e.key)}render(){return de("div",{ref:e=>this.menu=e,class:"menu",role:"menu",onClick:this.handleClick,onKeyDown:this.handleKeyDown},de("slot",null))}static get style(){return".gr-scroll-lock{overflow:hidden !important}:host{--padding-top:var(--gr-spacing-x-small);--padding-bottom:var(--gr-spacing-x-small);display:block;padding-top:var(--padding-top);padding-left:0;padding-right:0;padding-bottom:var(--padding-bottom);box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host:focus{outline:none}"}},[1,"gr-menu",{typeToSelect:[64]}]);function Jr(){if("undefined"==typeof customElements)return;["gr-menu"].forEach((e=>{if("gr-menu"===e)customElements.get(e)||customElements.define(e,Zr)}))}Jr(); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +const ei=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grClear=fe(this,"gr-clear",7),this.type="primary",this.size="medium",this.pill=!1,this.clearable=!1,this.truncate=!1,this.title=""}connectedCallback(){this.handleClearClick=this.handleClearClick.bind(this)}handleClearClick(){this.grClear.emit()}render(){return de(ge,{class:{[`tag-${this.type}`]:!0,[`tag-${this.size}`]:!0,"tag-pill":this.pill,"tag-clearable":this.clearable}},de("span",{class:"tag"},de("span",{class:{"tag-truncate":this.truncate},title:this.title},de("slot",null)),this.clearable&&de("gr-button",{variant:"plain",size:this.size,class:"tag-clear","aria-label":"clear",onClick:this.handleClearClick},de("svg",{slot:"icon-only",role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Close"),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M368 368L144 144M368 144L144 368"})))))}static get style(){return":host{--height:calc(var(--gr-form-element-height-medium) * 0.8);--line-height:calc(var(--gr-form-element-height-medium) - 1px * 2);--border-radius:var(--gr-form-element-border-radius-medium);--border-width:1px;--border-style:solid;--padding-top:0;--padding-start:var(--gr-spacing-small);--padding-end:var(--gr-spacing-small);--padding-bottom:0;--font-size:var(--gr-form-element-font-size-medium);--background-color:rgba(var(--gr-color-primary-rgb), 0.05);--border-color:rgba(var(--gr-color-primary-rgb), 0.2);--color:var(--gr-color-primary-shade);--clear-color:var(--gr-color-primary);--clear-color-hover:var(--gr-color-primary-shade);--clear-margin-left:var(--gr-spacing-xx-small);--clear-margin-right:calc(-1 * var(--gr-spacing-xxx-small));display:inline-block;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host(.tag-success){--background-color:rgba(var(--gr-color-success-rgb), 0.05);--border-color:rgba(var(--gr-color-success-rgb), 0.2);--color:var(--gr-color-success-shade);--clear-color:var(--gr-color-success);--clear-color-hover:var(--gr-color-success-shade)}:host(.tag-info){--background-color:rgba(var(--gr-color-medium-rgb), 0.05);--border-color:rgba(var(--gr-color-medium-rgb), 0.2);--color:var(--gr-color-medium-shade);--clear-color:var(--gr-color-medium);--clear-color-hover:var(--gr-color-medium-shade)}:host(.tag-warning){--background-color:rgba(var(--gr-color-warning-rgb), 0.05);--border-color:rgba(var(--gr-color-warning-rgb), 0.2);--color:var(--gr-color-warning-shade);--clear-color:var(--gr-color-warning);--clear-color-hover:var(--gr-color-warning-shade)}:host(.tag-danger){--background-color:rgba(var(--gr-color-danger-rgb), 0.05);--border-color:rgba(var(--gr-color-danger-rgb), 0.2);--color:var(--gr-color-danger-shade);--clear-color:var(--gr-color-danger);--clear-color-hover:var(--gr-color-danger-shade)}:host(.tag-small){--font-size:var(--gr-form-element-font-size-small);--height:calc(var(--gr-form-element-height-small) * 0.8);--line-height:calc(var(--gr-form-element-height-small) - 1px * 2);--border-radius:var(--gr-form-element-border-radius-small);--padding-start:var(--gr-spacing-x-small);--padding-end:var(--gr-spacing-x-small);--clear-margin-left:var(--gr-spacing-xx-small);--clear-margin-right:calc(-1 * var(--gr-spacing-xxx-small))}:host(.tag-large){--font-size:var(--gr-form-element-font-size-large);--height:calc(var(--gr-form-element-height-large) * 0.8);--line-height:calc(var(--gr-form-element-height-large) - 1px * 2);--border-radius:var(--gr-form-element-border-radius-large);--padding:0 var(--gr-spacing-medium);--clear-margin-left:var(--gr-spacing-xx-small);--clear-margin-right:calc(-1 * var(--gr-spacing-x-small))}.tag{display:flex;align-items:center;border-style:var(--border-style);border-width:var(--border-width);border-radius:var(--border-radius);white-space:nowrap;user-select:none;cursor:default;font-family:var(--gr-font-family);font-size:var(--font-size);font-weight:var(--gr-font-weight-normal);height:var(--height);line-height:var(--line-height);padding-top:var(--padding-top);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-bottom:var(--padding-bottom);background-color:var(--background-color);border-color:var(--border-color);color:var(--color)}.tag-clear{--color:var(--clear-color);--color-hover:var(--clear-color-hover);--padding-start:0;--padding-end:0;margin-left:var(--clear-margin-left);margin-right:var(--clear-margin-right);--height:1em}.tag-clear svg{font-size:0.7em}.tag-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-clear svg{width:1.1em;height:1.1em}:host(.tag-pill) .tag{border-radius:var(--height)}"}},[1,"gr-tag",{type:[513],size:[513],pill:[516],clearable:[516],truncate:[516],title:[513]}]);function ti(){if("undefined"==typeof customElements)return;["gr-tag","gr-button","gr-spinner"].forEach((e=>{switch(e){case"gr-tag":customElements.get(e)||customElements.define(e,ei);break;case"gr-button":customElements.get(e)||St();break;case"gr-spinner":customElements.get(e)||Et()}}))}ti(); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +const ri="undefined"!=typeof HTMLElement?HTMLElement:class{};let ii=0;const oi=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grChange=fe(this,"gr-change",7),this.grFocus=fe(this,"gr-focus",7),this.grBlur=fe(this,"gr-blur",7),this.inputId="select-"+ ++ii,this.labelId=`select-label-${ii}`,this.helpTextId=`select-help-text-${ii}`,this.invalidTextId=`select-invalid-text-${ii}`,this.inheritedAttributes={},this.handleBlur=()=>{this.isOpen||(this.hasFocus=!1,this.grBlur.emit())},this.handleFocus=()=>{this.hasFocus||(this.hasFocus=!0,this.grFocus.emit())},this.hasFocus=!1,this.hasHelpTextSlot=!1,this.hasInvalidTextSlot=!1,this.hasLabelSlot=!1,this.isOpen=!1,this.items=[],this.displayLabel="",this.displayTags=[],this.multiple=!1,this.maxTagsVisible=3,this.disabled=!1,this.name="",this.placeholder="",this.size="medium",this.hoist=!1,this.value="",this.pill=!1,this.label="",this.requiredIndicator=!1,this.helpText="",this.invalidText="",this.invalid=!1,this.clearable=!1}handleDisabledChange(){this.disabled&&this.isOpen&&this.dropdown.hide()}handleLabelChange(){this.handleSlotChange()}handleMultipleChange(){const e=this.getValueAsArray();this.value=this.multiple?e:e[0]||"",this.syncItemsFromValue()}handleValueChange(){this.syncItemsFromValue(),this.grChange.emit()}connectedCallback(){this.handleClearClick=this.handleClearClick.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleLabelClick=this.handleLabelClick.bind(this),this.handleMenuHide=this.handleMenuHide.bind(this),this.handleMenuShow=this.handleMenuShow.bind(this),this.handleMenuSelect=this.handleMenuSelect.bind(this),this.handleSlotChange=this.handleSlotChange.bind(this),this.handleTagInteraction=this.handleTagInteraction.bind(this),this.el.shadowRoot.addEventListener("slotchange",this.handleSlotChange)}componentWillLoad(){this.handleSlotChange(),this.inheritedAttributes=Ct(this.el,["aria-label"])}componentDidLoad(){this.resizeObserver=new ResizeObserver((()=>this.resizeMenu())),this.reportDuplicateItemValues(),requestAnimationFrame((()=>this.syncItemsFromValue()))}disconnectedCallback(){this.el.shadowRoot.removeEventListener("slotchange",this.handleSlotChange)}async setFocus(){this.hasFocus=!0,this.grFocus.emit(),this.dropdown.focusOnTrigger()}getItemLabel(e){return kt(e.shadowRoot.querySelector("slot:not([name])"))}getItems(){return[...this.el.querySelectorAll("gr-menu-item")]}getValueAsArray(){return Array.isArray(this.value)?this.value:[this.value]}handleClearClick(e){e.stopPropagation(),this.value=this.multiple?[]:"",this.syncItemsFromValue()}handleKeyDown(e){const t=e.target,r=this.getItems(),i=r[0],o=r[r.length-1];if("gr-tag"!==t.tagName.toLowerCase())if("Tab"!==e.key){if(["ArrowDown","ArrowUp"].includes(e.key)){if(e.preventDefault(),this.isOpen||this.dropdown.show(),"ArrowDown"===e.key&&i)return void i.setFocus();if("ArrowUp"===e.key&&o)return void o.setFocus()}this.isOpen||1!==e.key.length||(e.stopPropagation(),e.preventDefault(),this.dropdown.show(),this.menu.typeToSelect(e.key))}else this.isOpen&&this.dropdown.hide()}handleLabelClick(){this.box.focus()}handleMenuSelect(e){const t=e.detail.item;this.multiple?this.value=this.value.includes(t.value)?this.value.filter((e=>e!==t.value)):[...this.value,t.value]:this.value=t.value,this.syncItemsFromValue()}handleMenuShow(e){this.disabled?e.preventDefault():(this.resizeMenu(),this.resizeObserver.observe(this.el),this.isOpen=!0)}handleMenuHide(){this.resizeObserver.unobserve(this.el),this.isOpen=!1,this.box.focus()}handleSlotChange(){this.hasHelpTextSlot=_t(this.el,"help-text"),this.hasInvalidTextSlot=_t(this.el,"invalid-text"),this.hasLabelSlot=_t(this.el,"label"),this.syncItemsFromValue(),this.reportDuplicateItemValues()}handleTagInteraction(e){e.composedPath().find((e=>{if(e instanceof ri)return e.classList.contains("tag-clear")}))&&e.stopPropagation()}reportDuplicateItemValues(){const e=this.getItems().map((e=>e.value)).filter(((e,t,r)=>r.indexOf(e)!==t));if(e.length)throw new Error('Duplicate value found on in : "'+e.join('", "')+'"')}resizeMenu(){this.menu.style.width=`${this.box.clientWidth}px`}syncItemsFromValue(){const e=this.getItems(),t=this.getValueAsArray();if(e.map((e=>e.checked=t.includes(e.value))),this.multiple){const r=[];if(t.map((t=>e.map((e=>e.value===t?r.push(e):null)))),this.displayTags=r.map((e=>de("gr-tag",{type:"info",size:this.size,pill:this.pill,clearable:!0,onClick:this.handleTagInteraction,onKeyDown:this.handleTagInteraction,"onGr-clear":t=>{t.stopPropagation(),this.disabled||(e.checked=!1,this.syncValueFromItems())}},this.getItemLabel(e)))),this.maxTagsVisible>0&&this.displayTags.length>this.maxTagsVisible){const e=this.displayTags.length;this.displayLabel="",this.displayTags=this.displayTags.slice(0,this.maxTagsVisible),this.displayTags.push(de("gr-tag",{type:"info",size:this.size,pill:this.pill},"+",e-this.maxTagsVisible))}}else{const r=e.filter((e=>e.value===t[0]))[0];this.displayLabel=r?this.getItemLabel(r):"",this.displayTags=[]}}syncValueFromItems(){const e=this.getItems().filter((e=>e.checked)).map((e=>e.value));this.multiple?this.value=this.value.filter((t=>e.includes(t))):this.value=e.length>0?e[0]:""}render(){var e;const t=this.multiple?this.value.length>0:""!==this.value,r=this.inheritedAttributes["aria-label"]?{"aria-label":this.inheritedAttributes["aria-label"]}:{"aria-labelledby":this.labelId};return((e,t,r,i)=>{let o=e.querySelector("input.aux-input");o||(o=e.ownerDocument.createElement("input"),o.type="hidden",o.classList.add("aux-input"),e.appendChild(o)),o.disabled=i,o.name=t,o.value=r||""})(this.el,this.name,ni(this.value),this.disabled),de(xt,{inputId:this.inputId,label:this.label,labelId:this.labelId,hasLabelSlot:this.hasLabelSlot,helpTextId:this.helpTextId,helpText:this.helpText,hasHelpTextSlot:this.hasHelpTextSlot,invalidTextId:this.invalidTextId,invalidText:this.invalidText,invalid:this.invalid,hasInvalidTextSlot:this.hasInvalidTextSlot,size:this.size,onLabelClick:this.handleLabelClick,requiredIndicator:this.requiredIndicator},de("gr-dropdown",{ref:e=>this.dropdown=e,hoist:this.hoist,closeOnSelect:!this.multiple,containingElement:this.el,class:{select:!0,"select-open":this.isOpen,"select-empty":0===(null===(e=this.value)||void 0===e?void 0:e.length),"select-focused":this.hasFocus,"select-clearable":this.clearable,"select-disabled":this.disabled,"select-multiple":this.multiple,"select-has-tags":this.multiple&&t,"select-placeholder-visible":""===this.displayLabel,[`select-${this.size}`]:!0,"select-pill":this.pill,"select-invalid":this.invalid},"onGr-show":this.handleMenuShow,"onGr-hide":this.handleMenuHide},de("div",Object.assign({slot:"trigger",ref:e=>this.box=e,id:this.inputId,class:"select-box",role:"combobox"},r,{"aria-describedby":this.invalid?this.invalidTextId:this.helpTextId,"aria-haspopup":"true","aria-expanded":this.isOpen?"true":"false","aria-invalid":this.invalid?"true":"false","aria-required":this.requiredIndicator?"true":"false",tabIndex:this.disabled?-1:0,onBlur:this.handleBlur,onFocus:this.handleFocus,onKeyDown:this.handleKeyDown}),de("div",{class:"select-label"},this.displayTags.length?de("span",{class:"select-tags"},this.displayTags):this.displayLabel||this.placeholder),this.clearable&&t&&de("button",{class:"select-clear",type:"button",onClick:this.handleClearClick,"aria-label":"clear",tabindex:"-1"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Close Circle"),de("path",{d:"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z",fill:"none",stroke:"currentColor","stroke-miterlimit":"10","stroke-width":"32"}),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M320 320L192 192M192 320l128-128"}))),de("span",{class:"caret"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Chevron Down"),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"48",d:"M112 184l144 144 144-144"}))),de("input",{class:"select-hidden-select","aria-hidden":"true",value:t?"1":"",tabIndex:-1})),de("gr-menu",{ref:e=>this.menu=e,class:"select-menu","onGr-select":this.handleMenuSelect},de("slot",{onSlotchange:this.handleSlotChange}))))}get el(){return this}static get watchers(){return{disabled:["handleDisabledChange"],helpText:["handleLabelChange"],invalidText:["handleLabelChange"],label:["handleLabelChange"],multiple:["handleMultipleChange"],value:["handleValueChange"]}}static get style(){return".form-control .form-control-label{display:none}.form-control .form-control-help-text{display:none}.form-control .form-control-invalid-text{display:none}.form-control-has-label .form-control-label{display:flex;line-height:var(--gr-line-height-normal);color:var(--gr-form-element-label-color);margin-bottom:var(--gr-spacing-xxx-small)}.form-control-has-label.form-control-small .form-control-label{font-size:var(--gr-form-element-label-font-size-small)}.form-control-has-label.form-control-medium .form-control-label{font-size:var(--gr-form-element-label-font-size-medium)}.form-control-has-label.form-control-large .form-control-label{font-size:var(--gr-form-element-label-font-size-large)}.form-control-has-label .form-control-label .asterisk{margin-left:var(--gr-spacing-x-small);color:var(--gr-color-medium)}.form-control-has-label .form-control-label .asterisk svg{width:0.6em;height:0.6em;margin-bottom:var(--gr-spacing-xxx-small)}.form-control-has-help-text .form-control-help-text{display:block;line-height:var(--gr-line-height-normal);color:var(--gr-form-element-help-text-color);margin-top:var(--gr-spacing-xxx-small)}.form-control-has-help-text.form-control-small .form-control-help-text{font-size:var(--gr-form-element-help-text-font-size-small);min-height:1.625rem}.form-control-has-help-text.form-control-medium .form-control-help-text{font-size:var(--gr-form-element-help-text-font-size-medium);min-height:1.875rem}.form-control-has-help-text.form-control-large .form-control-help-text{font-size:var(--gr-form-element-help-text-font-size-large);min-height:2.125rem}.form-control-has-invalid-text .form-control-invalid-text{display:flex;margin-left:-2px;line-height:var(--gr-line-height-normal);color:var(--gr-form-element-invalid-text-color);margin-top:var(--gr-spacing-xxx-small)}.form-control-has-invalid-text .form-control-invalid-text .icon{margin-top:var(--gr-spacing-xxx-small);margin-right:var(--gr-spacing-xx-small)}.form-control-has-invalid-text .form-control-invalid-text .icon svg{width:1.4em;height:1.4em}.form-control-has-invalid-text.form-control-small .form-control-invalid-text{font-size:var(--gr-form-element-invalid-text-font-size-small);min-height:1.625rem}.form-control-has-invalid-text.form-control-medium .form-control-invalid-text{font-size:var(--gr-form-element-invalid-text-font-size-medium);min-height:1.875rem}.form-control-has-invalid-text.form-control-large .form-control-invalid-text{font-size:var(--gr-form-element-invalid-text-font-size-large);min-height:2.125rem}.gr-scroll-lock{overflow:hidden !important}:host{--font-size:var(--gr-form-element-font-size-medium);--font-weight:var(--gr-font-weight-normal);--background-color:var(--gr-color-white);--background-color-hover:var(--gr-color-white);--background-color-focus:var(--gr-color-white);--background-color-invalid:var(--gr-color-white);--background-color-invalid-hover:var(--gr-color-white);--border-radius:var(--gr-form-element-border-radius-small);--border-color:var(--gr-color-light-shade);--border-color-hover:var(--gr-color-medium);--border-color-focus:var(--gr-color-primary);--border-color-invalid:var(--gr-color-danger);--border-color-invalid-hover:var(--gr-color-danger-shade);--color:var(--gr-color-dark-tint);--placeholder-color:var(--gr-color-medium-tint);--min-height:var(--gr-form-element-height-medium);--label-margin-start:var(--gr-spacing-medium);--label-margin-end:var(--gr-spacing-medium);--clear-icon-margin-end:var(--gr-spacing-medium);--caret-margin-end:var(--gr-spacing-medium);--tags-padding-top:3px;--tags-padding-bottom:3px;--tags-margin-end:var(--gr-spacing-xx-small);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33);display:block;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}.select-small{--font-size:var(--gr-form-element-font-size-small);--min-height:var(--gr-form-element-height-small);--label-margin-start:var(--gr-spacing-small);--label-margin-end:var(--gr-spacing-small);--clear-icon-margin-end:var(--gr-spacing-small);--caret-margin-end:var(--gr-spacing-small);--tags-padding-top:2px;--tags-padding-bottom:2px}.select-large{--font-size:var(--gr-form-element-font-size-large);--min-height:var(--gr-form-element-height-large);--label-margin-start:var(--gr-spacing-large);--label-margin-end:var(--gr-spacing-large);--clear-icon-margin-end:var(--gr-spacing-large);--caret-margin-end:var(--gr-spacing-large);--tags-padding-top:4px;--tags-padding-bottom:4px}.select{display:block}.select-box{display:inline-flex;align-items:center;justify-content:start;position:relative;width:100%;font-family:var(--gr-font-family);font-size:var(--font-size);font-weight:var(--font-weight);letter-spacing:normal;background-color:var(--background-color);border:solid 1px var(--border-color);border-radius:var(--border-radius);min-height:var(--min-height);color:var(--color);vertical-align:middle;overflow:hidden;transition:150ms color, 150ms border, 150ms box-shadow;cursor:pointer}.select.select-invalid:not(.select-disabled) .select-box{background-color:var(--background-color-invalid);border-color:var(--border-color-invalid)}.select.select-invalid:not(.select-disabled):not(.select-focused) .select-box:hover{background-color:var(--background-color-invalid-hover);border-color:var(--border-color-invalid-hover)}.select.select-invalid:not(.select-disabled) .select-box{background-color:var(--background-color-invalid);border-color:var(--border-color-invalid)}.select:not(.select-disabled) .select-box:hover{background-color:var(--background-color-hover);border-color:var(--border-color-hover)}.select.select-focused:not(.select-disabled) .select-box{outline:none;box-shadow:var(--focus-ring);border-color:var(--border-color-focus);background-color:var(--background-color-focus)}.select-disabled .select-box{opacity:0.5;cursor:not-allowed;outline:none}.select-disabled .select-tags,.select-disabled .select-clear{pointer-events:none}.select-label{flex:1 1 auto;display:flex;align-items:center;user-select:none;margin-top:0;margin-left:var(--label-margin-start);margin-right:var(--label-margin-end);margin-bottom:0;scrollbar-width:none;-ms-overflow-style:none;overflow-x:auto;overflow-y:hidden;white-space:nowrap}.select-label::-webkit-scrollbar{width:0;height:0}.select-has-tags .select-label{margin-left:0}.select-clear{display:inline-flex;align-items:center;font-size:inherit;color:var(--gr-color-medium);border:none;background:none;padding:0;transition:150ms color;cursor:pointer;margin-right:var(--clear-icon-margin-end)}.select-clear:hover{color:var(--gr-color-dark)}.select-clear:focus{outline:none}.select-clear svg{width:1.2em;height:1.2em;font-size:var(--font-size)}.caret{flex:0 0 auto;display:inline-flex;transition:250ms transform ease;margin-right:var(--caret-margin-end)}.caret svg{width:1em;height:1em;font-size:var(--font-size)}.select-open .caret{transform:rotate(-180deg)}.select-placeholder-visible .select-label{color:var(--placeholder-color)}.select-tags{display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:left;margin-left:var(--gr-spacing-xx-small);padding-bottom:var(--tags-padding-bottom)}.select-tags gr-tag{padding-top:var(--tags-padding-top)}.select-tags gr-tag:not(:last-of-type){margin-right:var(--tags-margin-end)}.select-hidden-select{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px;position:absolute;top:0;left:0;width:100%;height:100%}.select-pill .select-box{border-radius:var(--min-height)}"}},[1,"gr-select",{multiple:[4],maxTagsVisible:[2,"max-tags-visible"],disabled:[4],name:[1],placeholder:[1],size:[1],hoist:[4],value:[1025],pill:[4],label:[1],requiredIndicator:[4,"required-indicator"],helpText:[1,"help-text"],invalidText:[1,"invalid-text"],invalid:[516],clearable:[4],hasFocus:[32],hasHelpTextSlot:[32],hasInvalidTextSlot:[32],hasLabelSlot:[32],isOpen:[32],items:[32],displayLabel:[32],displayTags:[32],setFocus:[64]}]),ni=e=>{if(null!=e)return Array.isArray(e)?e.join(","):e.toString()};!function(){if("undefined"==typeof customElements)return;["gr-select","gr-button","gr-dropdown","gr-menu","gr-spinner","gr-tag"].forEach((e=>{switch(e){case"gr-select":customElements.get(e)||customElements.define(e,oi);break;case"gr-button":customElements.get(e)||St();break;case"gr-dropdown":customElements.get(e)||Xr();break;case"gr-menu":customElements.get(e)||Jr();break;case"gr-spinner":customElements.get(e)||Et();break;case"gr-tag":customElements.get(e)||ti()}}))}();const ai=oi,si=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.hasFocus=!1,this.checked=!1,this.value="",this.disabled=!1}connectedCallback(){this.handleBlur=this.handleBlur.bind(this),this.handleFocus=this.handleFocus.bind(this),this.handleMouseEnter=this.handleMouseEnter.bind(this),this.handleMouseLeave=this.handleMouseLeave.bind(this)}async setFocus(e){this.el.focus(e)}async removeFocus(){this.el.blur()}handleBlur(){this.hasFocus=!1}handleFocus(){this.hasFocus=!0}handleMouseEnter(){this.setFocus()}handleMouseLeave(){this.removeFocus()}render(){return de(ge,{class:{"menu-item-checked":this.checked,"menu-item-disabled":this.disabled,"menu-item-focused":this.hasFocus},role:"menuitem","aria-disabled":this.disabled?"true":"false","aria-checked":this.checked?"true":"false",tabIndex:this.disabled?null:0,onFocus:this.handleFocus,onBlur:this.handleBlur,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave},de("span",{class:"checkmark"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Checkmark"),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M416 128L192 384l-96-96"}))),de("span",{class:"start"},de("slot",{name:"start"})),de("span",{class:"label"},de("slot",null)),de("span",{class:"end"},de("slot",{name:"end"})))}get el(){return this}static get style(){return".gr-scroll-lock{overflow:hidden !important}:host{--line-height:var(--gr-line-height-normal);--background-color:transparent;--background-color-focused:var(--gr-color-primary);--color:var(--gr-color-dark);--color-focused:var(--gr-color-primary-contrast);--color-disabled:var(--gr-color-medium);--padding-top:var(--gr-spacing-xx-small);--padding-start:var(--gr-spacing-x-large);--padding-end:var(--gr-spacing-x-large);--padding-bottom:var(--gr-spacing-xx-small);--transition:background-color 150ms linear, color 150ms linear;position:relative;display:flex;align-items:stretch;font-family:var(--gr-font-family);font-size:var(--gr-font-size-medium);font-weight:var(--gr-font-weight-normal);line-height:var(--line-height);letter-spacing:var(--gr-letter-spacing-normal);text-align:left;background-color:var(--background-color);color:var(--color);padding-top:var(--padding-top);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-bottom:var(--padding-bottom);transition:var(--transition);user-select:none;white-space:nowrap;cursor:pointer;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host(.menu-item-focused:not(.menu-item-disabled)){outline:none;background-color:var(--background-color-focused);color:var(--color-focused)}:host(.menu-item-disabled){outline:none;color:var(--color-disabled);cursor:not-allowed}.checkmark{display:flex;position:absolute;left:0.5em;top:calc(50% - 0.5em);visibility:hidden;align-items:center;font-size:inherit}.checkmark svg{display:inline-block;width:1.1em;height:1.1em;contain:strict;fill:currentcolor;box-sizing:content-box !important}:host(.menu-item-checked) .checkmark{visibility:visible}.label{flex:1 1 auto}.start{flex:0 0 auto;display:flex;align-items:center}.start ::slotted(:last-child){margin-right:0.5em}.end{flex:0 0 auto;display:flex;align-items:center}.end ::slotted(:first-child){margin-left:0.5em}"}},[1,"gr-menu-item",{checked:[516],value:[513],disabled:[516],hasFocus:[32],setFocus:[64],removeFocus:[64]}]); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */!function(){if("undefined"==typeof customElements)return;["gr-menu-item"].forEach((e=>{if("gr-menu-item"===e)customElements.get(e)||customElements.define(e,si)}))}();const li={"gr-select":ai,"gr-menu-item":si};class ci extends(P(_)){constructor(){super(...arguments),this.value=null,this.multiple=!1,this.clearable=!1,this._refSelect=y()}reset(){this.value=null}_valueChangedHandler(e){const t=this._refSelect.value?.value;if(void 0!==t&&!l(this.value,t)){const e=null===this.value;this.value=t,e||w(this,"select:change",t)}}willUpdate(e){e.has("initialValue")&&this.initialValue&&!this.value&&(this.value=this.initialValue)}render(){return $` + ${this.options?.map((e=>$`${e.label}`))} + `}static get styles(){return k(':root, :host {\n --gr-color-primary: #1079b2;\n --gr-color-primary-rgb: 16, 121, 178;\n --gr-color-primary-contrast: #ffffff;\n --gr-color-primary-contrast-rgb: 255, 255, 255;\n --gr-color-primary-shade: #0d6696;\n --gr-color-primary-tint: #1499e1;\n --gr-color-secondary: #051f2c;\n --gr-color-secondary-rgb: 5, 31, 44;\n --gr-color-secondary-contrast: #ffffff;\n --gr-color-secondary-contrast-rgb: 255, 255, 255;\n --gr-color-secondary-shade: #000000;\n --gr-color-secondary-tint: #0a415c;\n --gr-color-tertiary: #0c4a6e;\n --gr-color-tertiary-rgb: 12, 74, 110;\n --gr-color-tertiary-contrast: #ffffff;\n --gr-color-tertiary-contrast-rgb: 255, 255, 255;\n --gr-color-tertiary-shade: #083249;\n --gr-color-tertiary-tint: #106393;\n --gr-color-success: #0fbe78;\n --gr-color-success-rgb: 15, 190, 120;\n --gr-color-success-contrast: #000000;\n --gr-color-success-contrast-rgb: 0, 0, 0;\n --gr-color-success-shade: #057f4e;\n --gr-color-success-tint: #12e28f;\n --gr-color-warning: #fbbc4e;\n --gr-color-warning-rgb: 251, 188, 78;\n --gr-color-warning-contrast: #051f2c;\n --gr-color-warning-contrast-rgb: 5, 31, 44;\n --gr-color-warning-shade: #9e6400;\n --gr-color-warning-tint: #fdd187;\n --gr-color-danger: #e60017;\n --gr-color-danger-rgb: 230, 0, 23;\n --gr-color-danger-contrast: #ffffff;\n --gr-color-danger-contrast-rgb: 255, 255, 255;\n --gr-color-danger-shade: #cc0014;\n --gr-color-danger-tint: #ff1f35;\n --gr-color-light: #f4f5f8;\n --gr-color-light-rgb: 244, 245, 248;\n --gr-color-light-contrast: #051f2c;\n --gr-color-light-contrast-rgb: 5, 31, 44;\n --gr-color-light-shade: #d7d8da;\n --gr-color-light-tint: #f9fafb;\n --gr-color-medium: #5e6c78;\n --gr-color-medium-rgb: 94, 108, 120;\n --gr-color-medium-contrast: #ffffff;\n --gr-color-medium-contrast-rgb: 255, 255, 255;\n --gr-color-medium-shade: #48535b;\n --gr-color-medium-tint: #81909c;\n --gr-color-dark: #02131b;\n --gr-color-dark-rgb: 2, 19, 27;\n --gr-color-dark-contrast: #ffffff;\n --gr-color-dark-contrast-rgb: 255, 255, 255;\n --gr-color-dark-shade: #000000;\n --gr-color-dark-tint: #222428;\n --gr-color-white: #ffffff;\n --gr-color-black: #000000;\n --gr-border-radius-small: 0.125rem;\n --gr-border-radius-medium: 0.25rem;\n --gr-border-radius-large: 0.5rem;\n --gr-border-radius-x-large: 1rem;\n --gr-border-width-small: 0.063rem;\n --gr-border-width-medium: 0.125rem;\n --gr-border-width-large: 0.188rem;\n --gr-shadow-x-small: 0 1px 0 #0d131e0d;\n --gr-shadow-small: 0 1px 2px #0d131e1a;\n --gr-shadow-medium: 0 2px 4px #0d131e1a;\n --gr-shadow-large: 0 2px 8px #0d131e1a;\n --gr-shadow-x-large: 0 4px 16px #0d131e1a;\n --gr-spacing-xxx-small: 0.125rem;\n --gr-spacing-xx-small: 0.25rem;\n --gr-spacing-x-small: 0.5rem;\n --gr-spacing-small: 0.75rem;\n --gr-spacing-medium: 1rem;\n --gr-spacing-large: 1.25rem;\n --gr-spacing-x-large: 1.75rem;\n --gr-spacing-xx-large: 2.25rem;\n --gr-spacing-xxx-large: 3rem;\n --gr-spacing-xxxx-large: 4.5rem;\n --gr-font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial,\n sans-serif;\n --gr-letter-spacing-dense: -0.015em;\n --gr-letter-spacing-normal: normal;\n --gr-letter-spacing-loose: 0.075em;\n --gr-line-height-dense: 1.4;\n --gr-line-height-normal: 1.8;\n --gr-line-height-loose: 2.2;\n --gr-font-size-xx-small: 0.625rem;\n --gr-font-size-x-small: 0.75rem;\n --gr-font-size-small: 0.875rem;\n --gr-font-size-medium: 1rem;\n --gr-font-size-large: 1.25rem;\n --gr-font-size-x-large: 1.5rem;\n --gr-font-size-xx-large: 2.25rem;\n --gr-font-size-xxx-large: 3rem;\n --gr-font-size-xxxx-large: 4.5rem;\n --gr-font-weight-thin: 100;\n --gr-font-weight-extra-light: 200;\n --gr-font-weight-light: 300;\n --gr-font-weight-normal: 400;\n --gr-font-weight-medium: 500;\n --gr-font-weight-semi-bold: 600;\n --gr-font-weight-bold: 700;\n --gr-font-weight-extra-bold: 800;\n --gr-font-weight-black: 900;\n --gr-form-element-font-size-x-small: var(--gr-font-size-x-small);\n --gr-form-element-font-size-small: var(--gr-font-size-small);\n --gr-form-element-font-size-medium: var(--gr-font-size-medium);\n --gr-form-element-font-size-large: var(--gr-font-size-large);\n --gr-form-element-height-small: 2.188rem;\n --gr-form-element-height-medium: 3.125rem;\n --gr-form-element-height-large: 4.063rem;\n --gr-form-element-border-radius-small: var(--gr-border-radius-medium);\n --gr-form-element-border-radius-medium: var(--gr-border-radius-medium);\n --gr-form-element-border-radius-large: var(--gr-border-radius-medium);\n --gr-focus-ring-width: 2px;\n --gr-form-element-label-font-size-small: var(--gr-font-size-small);\n --gr-form-element-label-font-size-medium: var(--gr-font-size-medium);\n --gr-form-element-label-font-size-large: var(--gr-font-size-large);\n --gr-form-element-label-color: inherit;\n --gr-form-element-help-text-font-size-small: var(--gr-font-size-x-small);\n --gr-form-element-help-text-font-size-medium: var(--gr-font-size-small);\n --gr-form-element-help-text-font-size-large: var(--gr-font-size-medium);\n --gr-form-element-help-text-color: var(--gr-color-medium);\n --gr-form-element-invalid-text-font-size-small: var(--gr-font-size-x-small);\n --gr-form-element-invalid-text-font-size-medium: var(--gr-font-size-small);\n --gr-form-element-invalid-text-font-size-large: var(--gr-font-size-medium);\n --gr-form-element-invalid-text-color: var(--gr-color-danger);\n --gr-toggle-size: 1rem;\n --gr-panel-border-color: var(--gr-color-light-shade);\n --gr-z-index-dropdown: 900;\n}\n\n')}}ci.elementDefinitions={...li},f([v({attribute:!1,hasChanged:b})],ci.prototype,"options",void 0),f([v({attribute:!1,hasChanged:b})],ci.prototype,"value",void 0),f([v({attribute:!1,hasChanged:b})],ci.prototype,"initialValue",void 0),f([v({attribute:!0})],ci.prototype,"label",void 0),f([v({attribute:!0})],ci.prototype,"placeholder",void 0),f([v({attribute:!0,type:Boolean})],ci.prototype,"multiple",void 0),f([v({attribute:!0,type:Boolean})],ci.prototype,"clearable",void 0);let di=class extends(P(_)){constructor(){super(...arguments),this._mediaFilterController=new U(this),this._refMediaType=y(),this._refCamera=y(),this._refWhen=y(),this._refWhenFrom=y(),this._refWhenTo=y(),this._refWhat=y(),this._refWhere=y(),this._refFavorite=y(),this._refTags=y()}willUpdate(e){e.has("viewManagerEpoch")&&this._mediaFilterController.setViewManager(this.viewManagerEpoch?.manager??null),e.has("cameraManager")&&this.cameraManager&&(this._mediaFilterController.computeCameraOptions(this.cameraManager),this._mediaFilterController.computeMetadataOptions(this.cameraManager)),!e.get("viewManager")&&this.viewManagerEpoch&&this.cameraManager&&this._mediaFilterController.computeInitialDefaultsFromView(this.cameraManager)}render(){const e=async()=>{this.cameraManager&&this.viewManagerEpoch&&this.cardWideConfig&&await this._mediaFilterController.valueChangeHandler(this.cameraManager,this.cardWideConfig,{camera:this._refCamera.value?.value??void 0,mediaType:this._refMediaType.value?.value??void 0,when:{selected:this._refWhen.value?.value??void 0,from:this._refWhenFrom.value?.value,to:this._refWhenTo.value?.value},favorite:this._refFavorite.value?.value??void 0,where:this._refWhere.value?.value??void 0,what:this._refWhat.value?.value??void 0,tags:this._refTags.value?.value??void 0})},t=async t=>{"custom"===t&&this._refWhen.value?this._refWhenFrom.value?.value||this._refWhenTo.value?.value?this._refWhen.value.value=B.Custom:this._refWhen.value.reset():this._refWhen.value?.value!==B.Custom&&(this._refWhenFrom.value?.reset(),this._refWhenTo.value?.reset()),await e()};if(!this.cameraManager||!this.viewManagerEpoch)return;const r=this._mediaFilterController.getControlsToShow(this.cameraManager),o=this._mediaFilterController.getDefaults(),n=this._mediaFilterController.getWhatOptions(),a=this._mediaFilterController.getTagsOptions(),s=this._mediaFilterController.getWhereOptions();return $` e()} + > + +
    + t("selected")} + > + + t("custom")} + > + + t("custom")} + > + +
    + e()} + > + + ${r.events&&n.length?$` e()} + > + `:""} + ${r.events&&a.length?$` e()} + > + `:""} + ${r.events&&s.length?$` e()} + > + `:""} + ${r.favorites?$` + e()} + > + + `:""}`}static get styles(){return k(":host {\n display: flex;\n flex-direction: column;\n overflow: auto;\n scrollbar-width: none;\n -ms-overflow-style: none;\n height: 100%;\n width: 300px;\n margin: 5px;\n}\n\n/* Hide scrollbar for Chrome, Safari and Opera */\n:host::-webkit-scrollbar {\n display: none;\n}\n\nfrigate-card-select {\n padding: 5px;\n}\n\ndiv.when {\n display: inline-flex;\n align-items: flex-end;\n}\n\ndiv.when frigate-card-select {\n flex: 1;\n}\n\ndiv.when frigate-card-date-picker {\n padding-bottom: 5px;\n transition: width 0.5s ease-in-out;\n}\n\ndiv.when frigate-card-date-picker {\n color: var(--secondary-color);\n}\n\ndiv.when frigate-card-date-picker.selected {\n color: var(--primary-color);\n}\n\ndiv.when frigate-card-date-picker.hidden {\n width: 0px;\n}")}};di.elementDefinitions={"frigate-card-select":ci,"frigate-card-date-picker":R},f([v({attribute:!1})],di.prototype,"hass",void 0),f([v({attribute:!1})],di.prototype,"cameraManager",void 0),f([v({attribute:!1})],di.prototype,"viewManagerEpoch",void 0),f([v({attribute:!1})],di.prototype,"cardWideConfig",void 0),di=f([C("frigate-card-media-filter")],di);const hi={closed:"mdi:filter-cog-outline",open:"mdi:filter-cog"};let gi=class extends _{render(){const e=this.viewManagerEpoch?.manager.getView();if(this.hass&&e?.isGalleryView()&&this.cameraManager&&this.cardWideConfig)return $` + + ${this.galleryConfig&&"none"!==this.galleryConfig.controls.filter.mode?$` + `:""} + + + + `}static get styles(){return k(":host {\n width: 100%;\n height: 100%;\n display: block;\n}\n\nfrigate-card-surround-basic {\n max-height: 110dvh;\n}")}};f([v({attribute:!1})],gi.prototype,"hass",void 0),f([v({attribute:!1})],gi.prototype,"viewManagerEpoch",void 0),f([v({attribute:!1})],gi.prototype,"galleryConfig",void 0),f([v({attribute:!1})],gi.prototype,"cameraManager",void 0),f([v({attribute:!1})],gi.prototype,"cardWideConfig",void 0),gi=f([C("frigate-card-gallery")],gi);let ui=class extends _{constructor(){super(),this._refLoaderBottom=y(),this._refSelected=y(),this._showLoaderBottom=!0,this._showLoaderTop=!1,this._boundWheelHandler=this._wheelHandler.bind(this),this._boundTouchStartHandler=this._touchStartHandler.bind(this),this._boundTouchEndHandler=this._touchEndHandler.bind(this),this._throttleExtendGalleryLater=O(this._extendGallery.bind(this),500,{leading:!0,trailing:!1}),this._touchScrollYPosition=null,this._resizeObserver=new ResizeObserver(this._resizeHandler.bind(this)),this._intersectionObserver=new IntersectionObserver(this._intersectionHandler.bind(this))}_touchStartHandler(e){1===e.touches.length?this._touchScrollYPosition=e.touches[0].screenY:this._touchScrollYPosition=null}async _touchEndHandler(e){!this.scrollTop&&1===e.changedTouches.length&&this._touchScrollYPosition&&e.changedTouches[0].screenY>this._touchScrollYPosition&&await this._extendLater(),this._touchScrollYPosition=null}async _wheelHandler(e){!this.scrollTop&&e.deltaY<0&&await this._extendLater()}async _extendLater(){const e=new Date;this._showLoaderTop=!0,await this._throttleExtendGalleryLater("later",!1);const t=(new Date).getTime()-e.getTime();t<500&&await S(.5-t/1e3),this._showLoaderTop=!1}connectedCallback(){super.connectedCallback(),this._resizeObserver.observe(this),this.addEventListener("wheel",this._boundWheelHandler,{passive:!0}),this.addEventListener("touchstart",this._boundTouchStartHandler,{passive:!0}),this.addEventListener("touchend",this._boundTouchEndHandler),this.requestUpdate()}disconnectedCallback(){this.removeEventListener("wheel",this._boundWheelHandler),this.removeEventListener("touchstart",this._boundTouchStartHandler),this.removeEventListener("touchend",this._boundTouchEndHandler),this._resizeObserver.disconnect(),this._intersectionObserver.disconnect(),super.disconnectedCallback()}_setColumnCount(){const e=this.galleryConfig?.controls.thumbnails.size??M.media_gallery.controls.thumbnails.size,t=this.galleryConfig?.controls.thumbnails.show_details?Math.max(1,Math.floor(this.clientWidth/z)):Math.max(1,Math.ceil(this.clientWidth/e));this.style.setProperty("--frigate-card-gallery-columns",String(t))}_resizeHandler(){this._setColumnCount()}async _intersectionHandler(e){e.every((e=>!e.isIntersecting))||(this._showLoaderBottom=!1,await this._extendGallery("earlier"))}async _extendGallery(e,t=!0){const r=this.viewManagerEpoch?.manager.getView();if(!this.cameraManager||!this.hass||!r)return;const i=r.query,n=i?.getQueries()??null,s=r.queryResults?.getResults();if(!i||!n||!s)return;let l;try{l=await this.cameraManager.extendMediaQueries(n,s,e,{useCache:t})}catch(e){return void d(e)}if(l){const e=c.areEventQueries(i)?new o(l.queries):c.areRecordingQueries(i)?new a(l.queries):null;e&&this.viewManagerEpoch?.manager.setViewByParameters({baseView:r,params:{query:e,queryResults:new L({results:l.results}).selectResultIfFound((e=>e===r.queryResults?.getSelectedResult()))}})}}willUpdate(e){if(e.has("galleryConfig")&&(this.galleryConfig?.controls.thumbnails.show_details?this.setAttribute("details",""):this.removeAttribute("details"),this._setColumnCount(),this.galleryConfig?.controls.thumbnails.size&&this.style.setProperty("--frigate-card-thumbnail-size",`${this.galleryConfig.controls.thumbnails.size}px`)),e.has("viewManagerEpoch")){this._showLoaderBottom=!0;const e=this.viewManagerEpoch?.manager.getView(),t=this.viewManagerEpoch?.oldView;this._media&&t?.queryResults?.getResults()===e?.queryResults?.getResults()||(this._media=[...e?.queryResults?.getResults()??[]].reverse())}}render(){if(!this._media||!this.hass)return $``;const e=this.viewManagerEpoch?.manager.getView();if(!e?.queryResults||0===e.queryResults.getResultsCount()){const t=!!e?.context?.loading?.query;return D({type:"info",message:i(t?"error.awaiting_media":"common.no_media"),icon:"mdi:multimedia",dotdotdot:t})}const t=e.queryResults.getSelectedResult();return $`
    + ${this._showLoaderTop?$`${A({cardWideConfig:this.cardWideConfig,classes:{top:!0},size:"small"})}`:""} + ${this._media.map(((r,i)=>$`{this._media&&this.viewManagerEpoch?.manager.setViewByParameters({params:{view:"media",queryResults:e.queryResults?.clone().selectIndex(this._media.length-i-1)}}),F(t)}} + > + `))} + ${this._showLoaderBottom?$`${A({cardWideConfig:this.cardWideConfig,componentRef:this._refLoaderBottom})}`:""} +
    `}updated(e){this._refLoaderBottom.value&&(this._intersectionObserver.disconnect(),this._intersectionObserver.observe(this._refLoaderBottom.value)),this.updateComplete.then((()=>{e.has("viewManagerEpoch")&&!e.get("viewManagerEpoch")&&this._refSelected.value&&this._refSelected.value.scrollIntoView({block:"center"})}))}static get styles(){return k(":host {\n width: 100%;\n height: 100%;\n display: block;\n overflow: auto;\n -ms-overflow-style: none;\n scrollbar-width: none;\n --frigate-card-gallery-gap: 3px;\n --frigate-card-gallery-columns: 4;\n}\n\n.grid {\n display: grid;\n grid-template-columns: repeat(var(--frigate-card-gallery-columns), minmax(0, 1fr));\n grid-auto-rows: min-content;\n gap: var(--frigate-card-gallery-gap);\n}\n\n:host::-webkit-scrollbar {\n display: none;\n}\n\nfrigate-card-thumbnail {\n height: 100%;\n max-height: var(--frigate-card-thumbnail-size);\n}\n\nfrigate-card-thumbnail:not([details]) {\n width: 100%;\n}\n\nfrigate-card-thumbnail.selected {\n border: 4px solid var(--accent-color);\n border-radius: calc(var(--frigate-card-css-border-radius, var(--ha-card-border-radius, 4px)) + 4px);\n}\n\nfrigate-card-progress-indicator.top {\n grid-column: 1/-1;\n}")}};f([v({attribute:!1})],ui.prototype,"hass",void 0),f([v({attribute:!1})],ui.prototype,"viewManagerEpoch",void 0),f([v({attribute:!1})],ui.prototype,"galleryConfig",void 0),f([v({attribute:!1})],ui.prototype,"cameraManager",void 0),f([v({attribute:!1})],ui.prototype,"cardWideConfig",void 0),f([E()],ui.prototype,"_showLoaderBottom",void 0),f([E()],ui.prototype,"_showLoaderTop",void 0),ui=f([C("frigate-card-gallery-core")],ui);export{gi as FrigateCardGallery,ui as FrigateCardGalleryCore}; diff --git a/config/www/community/frigate-hass-card/gallery-15a600d2.js.gz b/config/www/community/frigate-hass-card/gallery-15a600d2.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..0bb5129b75a6f2835f21078af4e7d67e724c6c9d GIT binary patch literal 30839 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 S0mu6EPyYu@e.registry.define(t,r))));const n=this.renderOptions.creationScope=this.attachShadow({...o,customElements:e.registry});return r(n,this.constructor.elementStyles),n}}}!function(e){e.Favorite="favorite",e.NotFavorite="not-favorite"}(j||(j={})),function(e){e.Today="today",e.Yesterday="yesterday",e.PastWeek="past-week",e.PastMonth="past-month",e.Custom="custom"}(B||(B={})),function(e){e.Clips="clips",e.Snapshots="snapshots",e.Recordings="recordings"}(q||(q={}));class U{constructor(e){this._cameraOptions=[],this._whenOptions=[],this._metaDataWhenOptions=[],this._whatOptions=[],this._whereOptions=[],this._tagsOptions=[],this._defaults=null,this._viewManager=null,this._host=e,this._favoriteOptions=[{value:j.Favorite,label:i("media_filter.favorite")},{value:j.NotFavorite,label:i("media_filter.not_favorite")}],this._mediaTypeOptions=[{value:q.Clips,label:i("media_filter.media_types.clips")},{value:q.Snapshots,label:i("media_filter.media_types.snapshots")},{value:q.Recordings,label:i("media_filter.media_types.recordings")}],this._staticWhenOptions=[{value:B.Today,label:i("media_filter.whens.today")},{value:B.Yesterday,label:i("media_filter.whens.yesterday")},{value:B.PastWeek,label:i("media_filter.whens.past_week")},{value:B.PastMonth,label:i("media_filter.whens.past_month")},{value:B.Custom,label:i("media_filter.whens.custom")}],this._computeWhenOptions()}getMediaTypeOptions(){return this._mediaTypeOptions}getCameraOptions(){return this._cameraOptions}getWhenOptions(){return this._whenOptions}getWhatOptions(){return this._whatOptions}getWhereOptions(){return this._whereOptions}getTagsOptions(){return this._tagsOptions}getFavoriteOptions(){return this._favoriteOptions}getDefaults(){return this._defaults}setViewManager(e){this._viewManager=e}async valueChangeHandler(e,t,r,i){const s=e=>e&&Array.isArray(e)&&e.length&&!e.includes("")?new Set([...e]):null,l=s(r.camera)??this._getAllCameraIDs(e);if(!l.size||!r.mediaType)return;const c=this._getWhen(r.when),d=r.favorite?r.favorite===j.Favorite:null,h=t.performance?.features.media_chunk_size;if(r.mediaType===q.Clips||r.mediaType===q.Snapshots){const e=s(r.where),t=s(r.what),i=s(r.tags),a=new o([{type:n.Event,cameraIDs:l,...i&&{tags:i},...t&&{what:t},...e&&{where:e},...null!==d&&{favorite:d},...c&&{...c.start&&{start:c.start},...c.end&&{end:c.end}},...h&&{limit:h},...r.mediaType===q.Clips&&{hasClip:!0},...r.mediaType===q.Snapshots&&{hasSnapshot:!0}}]);this._viewManager?.setViewByParametersWithExistingQuery({params:{query:a,...1===l.size&&{camera:[...l][0]},view:r.mediaType===q.Clips?"clips":"snapshots"}})}else{const e=new a([{type:n.Recording,cameraIDs:l,...h&&{limit:h},...c&&{...c.start&&{start:c.start},...c.end&&{end:c.end}},...null!==d&&{favorite:d}}]);this._viewManager?.setViewByParametersWithExistingQuery({params:{query:e,...1===l.size&&{camera:[...l][0]},view:"recordings"}})}this._host.requestUpdate()}_getAllCameraIDs(e){return e.getStore().getCameraIDsWithCapability({anyCapabilities:["clips","snapshots","recordings"]})}computeInitialDefaultsFromView(e){const t=this._viewManager?.getView(),r=t?.query?.getQueries(),i=this._getAllCameraIDs(e);if(!t||!r||!i.size)return;let o,n,a,d,h,g;1!==s(r.map((e=>e.cameraIDs)),l).length||l(r[0].cameraIDs,i)||(n=[...r[0].cameraIDs]); +/* istanbul ignore else: the else path cannot be reached -- @preserve */ +if(1===s(r.map((e=>e.favorite)),l).length&&void 0!==r[0].favorite&&(h=r[0].favorite?j.Favorite:j.NotFavorite),c.areEventQueries(t.query)){const e=t.query.getQueries(); +/* istanbul ignore if: the if path cannot be reached -- @preserve */if(!e)return;const r=s(e.map((e=>e.hasClip)),l),i=s(e.map((e=>e.hasSnapshot)),l);1===r.length&&1===i.length&&(o=r[0]?q.Clips:i[0]?q.Snapshots:void 0);1===s(e.map((e=>e.what)),l).length&&e[0].what?.size&&(a=[...e[0].what]);1===s(e.map((e=>e.where)),l).length&&e[0].where?.size&&(d=[...e[0].where]);1===s(e.map((e=>e.tags)),l).length&&e[0].tags?.size&&(g=[...e[0].tags])}else c.areRecordingQueries(t.query)&&(o=q.Recordings);this._defaults={...o&&{mediaType:o},...n&&{cameraIDs:n},...a&&{what:a},...d&&{where:d},...void 0!==h&&{favorite:h},...g&&{tags:g}}}computeCameraOptions(e){this._cameraOptions=[...this._getAllCameraIDs(e)].map((t=>({value:t,label:e.getCameraMetadata(t)?.title??t})))}async computeMetadataOptions(e){let t=null;try{t=await e.getMediaMetadata()}catch(e){d(e)}if(t){if(t.what&&(this._whatOptions=[...t.what].sort().map((e=>({value:e,label:h(e)})))),t.where&&(this._whereOptions=[...t.where].sort().map((e=>({value:e,label:h(e)})))),t.tags&&(this._tagsOptions=[...t.tags].sort().map((e=>({value:e,label:h(e)})))),t.days){const e=new Set;[...t.days].forEach((t=>{e.add(t.substring(0,7))}));const r=[];e.forEach((e=>{r.push(W(e,"yyyy-MM",new Date))})),this._metaDataWhenOptions=g(r,(e=>e.getTime()),"desc").map((e=>({label:u(e,"MMMM yyyy"),value:this._dateRangeToString({start:e,end:N(e)})}))),this._computeWhenOptions()}this._host.requestUpdate()}}getControlsToShow(e){const t=this._viewManager?.getView(),r=c.areEventQueries(t?.query),i=c.areRecordingQueries(t?.query),o=e.getAggregateCameraCapabilities();return{events:r,recordings:i,favorites:r?o?.has("favorite-events"):!!i&&o?.has("favorite-recordings")}}_computeWhenOptions(){this._whenOptions=[...this._staticWhenOptions,...this._metaDataWhenOptions]}_dateRangeToString(e){return`${m(e.start)},${m(e.end)}`}_stringToDateRange(e){const t=e.split(",");return{start:W(t[0],"yyyy-MM-dd",new Date),end:I(W(t[1],"yyyy-MM-dd",new Date))}}_getWhen(e){if(e.from||e.to)return{...e.from&&{start:e.from},...e.to&&{end:e.to}};if(!e.selected||Array.isArray(e.selected))return null;const r=new Date;switch(e.selected){case B.Custom:return null;case B.Today:return{start:t(Date.now()),end:I(Date.now())};case B.Yesterday:return{start:V(),end:H()};case B.PastWeek:return{start:t(p(r,{days:7})),end:I(r)};case B.PastMonth:return{start:t(p(r,{months:1})),end:I(r)};default:return this._stringToDateRange(e.selected)}}}const K=!0,Y=!0,Q=!0,G=!1,X=!1;let Z,J,ee,te=!1,re=!1,ie=!1,oe=!1,ne=null,ae=!1;const se="http://www.w3.org/1999/xlink",le={},ce=e=>"object"===(e=typeof e)||"function"===e;const de=(e,t,...r)=>{let i=null,o=null,n=null,a=!1,s=!1;const l=[],c=t=>{for(let r=0;re[t])).join(" "))}}if("function"==typeof e)return e(null===t?{}:t,l,ue);const d=he(e,null);return d.$attrs$=t,l.length>0&&(d.$children$=l),d.$key$=o,d.$name$=n,d},he=(e,t)=>{const r={$flags$:0,$tag$:e,$text$:t,$elm$:null,$children$:null,$attrs$:null,$key$:null,$name$:null};return r},ge={},ue={forEach:(e,t)=>e.map(me).forEach(t),map:(e,t)=>e.map(me).map(t).map(pe)},me=e=>({vattrs:e.$attrs$,vchildren:e.$children$,vkey:e.$key$,vname:e.$name$,vtag:e.$tag$,vtext:e.$text$}),pe=e=>{if("function"==typeof e.vtag){const t=Object.assign({},e.vattrs);return e.vkey&&(t.key=e.vkey),e.vname&&(t.name=e.vname),de(e.vtag,t,...e.vchildren||[])}const t=he(e.vtag,e.vtext);return t.$attrs$=e.vattrs,t.$children$=e.vchildren,t.$key$=e.vkey,t.$name$=e.vname,t},fe=(e,t,r)=>{const i=e;return{emit:e=>ve(i,t,{bubbles:!!(4&r),composed:!!(2&r),cancelable:!!(1&r),detail:e})}},ve=(e,t,r)=>{const i=ht.ce(t,r);return e.dispatchEvent(i),i},be=new WeakMap,ye=e=>{const t=e.$cmpMeta$,r=e.$hostElement$,i=t.$flags$,o=(t.$tagName$,()=>{}),n=((e,t,r,i)=>{var o;let n=we(t,r);const a=at.get(n);if(e=11===e.nodeType?e:ct,a)if("string"==typeof a){e=e.head||e;let t,r=be.get(e);if(r||be.set(e,r=new Set),!r.has(n)){{t=ct.createElement("style"),t.innerHTML=a;const r=null!==(o=ht.$nonce$)&&void 0!==o?o:function(e){var t,r,i;return null!==(i=null===(r=null===(t=e.head)||void 0===t?void 0:t.querySelector('meta[name="csp-nonce"]'))||void 0===r?void 0:r.getAttribute("content"))&&void 0!==i?i:void 0}(ct);null!=r&&t.setAttribute("nonce",r),e.insertBefore(t,e.querySelector("link"))}r&&r.add(n)}}else e.adoptedStyleSheets.includes(a)||(e.adoptedStyleSheets=[...e.adoptedStyleSheets,a]);return n})(r.shadowRoot?r.shadowRoot:r.getRootNode(),t,e.$modeName$);10&i&&(r["s-sc"]=n,r.classList.add(n+"-h"),2&i&&r.classList.add(n+"-s")),o()},we=(e,t)=>"sc-"+(t&&32&e.$flags$?e.$tagName$+"-"+t:e.$tagName$),$e=(e,t,r,i,o,n)=>{if(r!==i){let a=ot(e,t),s=t.toLowerCase();if("class"===t){const t=e.classList,o=ke(r),n=ke(i);t.remove(...o.filter((e=>e&&!n.includes(e)))),t.add(...n.filter((e=>e&&!o.includes(e))))}else if("style"===t){for(const t in r)i&&null!=i[t]||(t.includes("-")?e.style.removeProperty(t):e.style[t]="");for(const t in i)r&&i[t]===r[t]||(t.includes("-")?e.style.setProperty(t,i[t]):e.style[t]=i[t])}else if("key"===t);else if("ref"===t)i&&i(e);else if(e.__lookupSetter__(t)||"o"!==t[0]||"n"!==t[1]){const l=ce(i);if((a||l&&null!==i)&&!o)try{if(e.tagName.includes("-"))e[t]=i;else{const o=null==i?"":i;"list"===t?a=!1:null!=r&&e[t]==o||(e[t]=o)}}catch(e){}let c=!1;s!==(s=s.replace(/^xlink\:?/,""))&&(t=s,c=!0),null==i||!1===i?!1===i&&""!==e.getAttribute(t)||(c?e.removeAttributeNS(se,t):e.removeAttribute(t)):(!a||4&n||o)&&!l&&(i=!0===i?"":i,c?e.setAttributeNS(se,t,i):e.setAttribute(t,i))}else t="-"===t[2]?t.slice(3):ot(lt,s)?s.slice(2):s[2]+t.slice(3),r&&ht.rel(e,t,r,!1),i&&ht.ael(e,t,i,!1)}},xe=/\s/,ke=e=>e?e.split(xe):[],_e=(e,t,r,i)=>{const o=11===t.$elm$.nodeType&&t.$elm$.host?t.$elm$.host:t.$elm$,n=e&&e.$attrs$||le,a=t.$attrs$||le;for(i in n)i in a||$e(o,i,n[i],void 0,r,t.$flags$);for(i in a)$e(o,i,n[i],a[i],r,t.$flags$)},Ce=(e,t,r,i)=>{const o=t.$children$[r];let n,a,s,l=0;if(te||(ie=!0,"slot"===o.$tag$&&(Z&&i.classList.add(Z+"-s"),o.$flags$|=o.$children$?2:1)),null!==o.$text$)n=o.$elm$=ct.createTextNode(o.$text$);else if(1&o.$flags$)n=o.$elm$=ct.createTextNode("");else{if(oe||(oe="svg"===o.$tag$),n=o.$elm$=ct.createElementNS(oe?"http://www.w3.org/2000/svg":"http://www.w3.org/1999/xhtml",2&o.$flags$?"slot-fb":o.$tag$),oe&&"foreignObject"===o.$tag$&&(oe=!1),_e(null,o,oe),null!=Z&&n["s-si"]!==Z&&n.classList.add(n["s-si"]=Z),o.$children$)for(l=0;l{ht.$flags$|=1;const r=e.childNodes;for(let e=r.length-1;e>=0;e--){const i=r[e];i["s-hn"]!==ee&&i["s-ol"]&&(ze(i).insertBefore(i,Me(i)),i["s-ol"].remove(),i["s-ol"]=void 0,ie=!0),t&&Te(i,t)}ht.$flags$&=-2},Ee=(e,t,r,i,o,n)=>{let a,s=e["s-cr"]&&e["s-cr"].parentNode||e;for(s.shadowRoot&&s.tagName===ee&&(s=s.shadowRoot);o<=n;++o)i[o]&&(a=Ce(null,r,o,e),a&&(i[o].$elm$=a,s.insertBefore(a,Me(t))))},Oe=(e,t,r,i,o)=>{for(;t<=r;++t)(i=e[t])&&(o=i.$elm$,We(i),re=!0,o["s-ol"]?o["s-ol"].remove():Te(o,!0),o.remove())},Se=(e,t)=>e.$tag$===t.$tag$&&("slot"===e.$tag$?e.$name$===t.$name$:e.$key$===t.$key$),Me=e=>e&&e["s-ol"]||e,ze=e=>(e["s-ol"]?e["s-ol"]:e).parentNode,Le=(e,t)=>{const r=t.$elm$=e.$elm$,i=e.$children$,o=t.$children$,n=t.$tag$,a=t.$text$;let s;null===a?(oe="svg"===n||"foreignObject"!==n&&oe,"slot"===n||_e(e,t,oe),null!==i&&null!==o?((e,t,r,i)=>{let o,n,a=0,s=0,l=0,c=0,d=t.length-1,h=t[0],g=t[d],u=i.length-1,m=i[0],p=i[u];for(;a<=d&&s<=u;)if(null==h)h=t[++a];else if(null==g)g=t[--d];else if(null==m)m=i[++s];else if(null==p)p=i[--u];else if(Se(h,m))Le(h,m),h=t[++a],m=i[++s];else if(Se(g,p))Le(g,p),g=t[--d],p=i[--u];else if(Se(h,p))"slot"!==h.$tag$&&"slot"!==p.$tag$||Te(h.$elm$.parentNode,!1),Le(h,p),e.insertBefore(h.$elm$,g.$elm$.nextSibling),h=t[++a],p=i[--u];else if(Se(g,m))"slot"!==h.$tag$&&"slot"!==p.$tag$||Te(g.$elm$.parentNode,!1),Le(g,m),e.insertBefore(g.$elm$,h.$elm$),g=t[--d],m=i[++s];else{for(l=-1,c=a;c<=d;++c)if(t[c]&&null!==t[c].$key$&&t[c].$key$===m.$key$){l=c;break}l>=0?(n=t[l],n.$tag$!==m.$tag$?o=Ce(t&&t[s],r,l,e):(Le(n,m),t[l]=void 0,o=n.$elm$),m=i[++s]):(o=Ce(t&&t[s],r,s,e),m=i[++s]),o&&ze(h.$elm$).insertBefore(o,Me(h.$elm$))}a>d?Ee(e,null==i[u+1]?null:i[u+1].$elm$,r,i,s,u):s>u&&Oe(t,a,d)})(r,i,t,o):null!==o?(null!==e.$text$&&(r.textContent=""),Ee(r,null,t,o,0,o.length-1)):null!==i&&Oe(i,0,i.length-1),oe&&"svg"===n&&(oe=!1)):(s=r["s-cr"])?s.parentNode.textContent=a:e.$text$!==a&&(r.data=a)},De=e=>{const t=e.childNodes;let r,i,o,n,a,s;for(i=0,o=t.length;i{let t,r,i,o,n,a,s=0;const l=e.childNodes,c=l.length;for(;s=0;a--)r=i[a],r["s-cn"]||r["s-nr"]||r["s-hn"]===t["s-hn"]||(Ie(r,o)?(n=Ae.find((e=>e.$nodeToRelocate$===r)),re=!0,r["s-sn"]=r["s-sn"]||o,n?n.$slotRefNode$=t:Ae.push({$slotRefNode$:t,$nodeToRelocate$:r}),r["s-sr"]&&Ae.map((e=>{Ie(e.$nodeToRelocate$,r["s-sn"])&&(n=Ae.find((e=>e.$nodeToRelocate$===r)),n&&!e.$slotRefNode$&&(e.$slotRefNode$=n.$slotRefNode$))}))):Ae.some((e=>e.$nodeToRelocate$===r))||Ae.push({$nodeToRelocate$:r}));1===t.nodeType&&Fe(t)}},Ie=(e,t)=>1===e.nodeType?null===e.getAttribute("slot")&&""===t||e.getAttribute("slot")===t:e["s-sn"]===t||""===t,We=e=>{e.$attrs$&&e.$attrs$.ref&&e.$attrs$.ref(null),e.$children$&&e.$children$.map(We)},Re=(e,t)=>{const r=e.$hostElement$,i=e.$cmpMeta$,o=e.$vnode$||he(null,null),n=(a=t)&&a.$tag$===ge?t:de(null,null,t);var a;if(ee=r.tagName,i.$attrsToReflect$&&(n.$attrs$=n.$attrs$||{},i.$attrsToReflect$.map((([e,t])=>n.$attrs$[t]=r[e]))),n.$tag$=null,n.$flags$|=4,e.$vnode$=n,n.$elm$=o.$elm$=r.shadowRoot||r,Z=r["s-sc"],J=r["s-cr"],te=!!(1&i.$flags$),re=!1,Le(o,n),ht.$flags$|=1,ie){let e,t,r,i,o,a;Fe(n.$elm$);let s=0;for(;s{e.$flags$|=16,e.$ancestorComponent$;return $t((()=>He(e,t)))},He=(e,t)=>{const r=e.$hostElement$,i=(e.$cmpMeta$.$tagName$,()=>{}),o=r;let n;return n=qe(o,t?"componentWillLoad":"componentWillUpdate"),n=Pe(n,(()=>qe(o,"componentWillRender"))),i(),Pe(n,(()=>Ve(e,o,t)))},Ve=async(e,t,r)=>{const i=e.$hostElement$,o=(e.$cmpMeta$.$tagName$,()=>{});i["s-rc"],r&&ye(e);const n=(e.$cmpMeta$.$tagName$,()=>{});je(e,t,i),n(),o(),Be(e)},je=(e,t,r)=>{try{ne=t,t=t.render&&t.render(),e.$flags$&=-17,e.$flags$|=2,(K||Y)&&(Q||Y)&&(G||Re(e,t))}catch(t){nt(t,e.$hostElement$)}return ne=null,null},Be=e=>{e.$cmpMeta$.$tagName$;const t=()=>{},r=e.$hostElement$;e.$ancestorComponent$,qe(r,"componentDidRender"),64&e.$flags$?(qe(r,"componentDidUpdate"),t()):(e.$flags$|=64,qe(r,"componentDidLoad"),t())},qe=(e,t,r)=>{if(e&&e[t])try{return e[t](r)}catch(e){nt(e)}},Pe=(e,t)=>e&&e.then?e.then(t):t(),Ue=(e,t,r,i)=>{const o=rt(e),n=e,a=o.$instanceValues$.get(t),s=o.$flags$,l=n;var c,d;c=r,d=i.$members$[t][0],r=null==c||ce(c)?c:4&d?"false"!==c&&(""===c||!!c):2&d?parseFloat(c):1&d?String(c):c;const h=Number.isNaN(a)&&Number.isNaN(r);if(r!==a&&!h){if(o.$instanceValues$.set(t,r),i.$watchers$&&128&s){const e=i.$watchers$[t];e&&e.map((e=>{try{l[e](r,a,t)}catch(e){nt(e,n)}}))}if(2==(18&s)){if(l.componentShouldUpdate&&!1===l.componentShouldUpdate(r,a,t))return;Ne(o,!1)}}},Ke=(e,t,r)=>{if(t.$members$){e.watchers&&(t.$watchers$=e.watchers);const r=Object.entries(t.$members$),i=e.prototype;r.map((([e,[r]])=>{(31&r||32&r)&&Object.defineProperty(i,e,{get(){return t=e,rt(this).$instanceValues$.get(t);var t},set(r){Ue(this,e,r,t)},configurable:!0,enumerable:!0})}));{const o=new Map;i.attributeChangedCallback=function(e,t,r){ht.jmp((()=>{const t=o.get(e);if(this.hasOwnProperty(t))r=this[t],delete this[t];else if(i.hasOwnProperty(t)&&"number"==typeof this[t]&&this[t]==r)return;this[t]=(null!==r||"boolean"!=typeof this[t])&&r}))},e.observedAttributes=r.filter((([e,t])=>15&t[0])).map((([e,r])=>{const i=r[1]||e;return o.set(i,e),512&r[0]&&t.$attrsToReflect$.push([e,i]),i}))}}return e},Ye=async(e,t,r,i,o)=>{if(!(32&t.$flags$)&&(o=e.constructor,t.$flags$|=32,customElements.whenDefined(r.$tagName$).then((()=>t.$flags$|=128)),o.style)){let i=o.style;"string"!=typeof i&&(i=i[t.$modeName$=(e=>st.map((t=>t(e))).find((e=>!!e)))(e)]);const n=we(r,t.$modeName$);if(!at.has(n)){const e=(r.$tagName$,()=>{});((e,t,r)=>{let i=at.get(e);mt&&r?(i=i||new CSSStyleSheet,"string"==typeof i?i=t:i.replaceSync(t)):i=t,at.set(e,i)})(n,i,!!(1&r.$flags$)),e()}}t.$ancestorComponent$;Ne(t,!0)},Qe=e=>{const t=e["s-cr"]=ct.createComment("");t["s-cn"]=!0,e.insertBefore(t,e.firstChild)},Ge=(e,t)=>{const r={$flags$:t[0],$tagName$:t[1]};r.$members$=t[2],r.$listeners$=t[3],r.$watchers$=e.$watchers$,r.$attrsToReflect$=[],!gt&&1&r.$flags$&&(r.$flags$|=8);const i=e.prototype.connectedCallback,o=e.prototype.disconnectedCallback;return Object.assign(e.prototype,{__registerHost(){it(this,r)},connectedCallback(){(e=>{if(!(1&ht.$flags$)){const t=rt(e),r=t.$cmpMeta$,i=(r.$tagName$,()=>{});1&t.$flags$?(Xe(e,t,r.$listeners$),t.$lazyInstance$):(t.$flags$|=1,12&r.$flags$&&Qe(e),r.$members$&&Object.entries(r.$members$).map((([t,[r]])=>{if(31&r&&e.hasOwnProperty(t)){const r=e[t];delete e[t],e[t]=r}})),Ye(e,t,r)),i()}})(this),i&&i.call(this)},disconnectedCallback(){(e=>{if(!(1&ht.$flags$)){const t=rt(e);t.$rmListeners$&&(t.$rmListeners$.map((e=>e())),t.$rmListeners$=void 0)}})(this),o&&o.call(this)},__attachShadow(){gt?this.attachShadow({mode:"open",delegatesFocus:!!(16&r.$flags$)}):this.shadowRoot=this}}),e.is=r.$tagName$,Ke(e,r)},Xe=(e,t,r,i)=>{r&&r.map((([r,i,o])=>{const n=Je(e,r),a=Ze(t,o),s=et(r);ht.ael(n,i,a,s),(t.$rmListeners$=t.$rmListeners$||[]).push((()=>ht.rel(n,i,a,s)))}))},Ze=(e,t)=>r=>{try{X||e.$hostElement$[t](r)}catch(e){nt(e)}},Je=(e,t)=>4&t?ct:8&t?lt:16&t?ct.body:e,et=e=>ut?{passive:!!(1&e),capture:!!(2&e)}:!!(2&e),tt=new WeakMap,rt=e=>tt.get(e),it=(e,t)=>{const r={$flags$:0,$hostElement$:e,$cmpMeta$:t,$instanceValues$:new Map};return Xe(e,r,t.$listeners$),tt.set(e,r)},ot=(e,t)=>t in e,nt=(e,t)=>(0,console.error)(e,t),at=new Map,st=[],lt="undefined"!=typeof window?window:{},ct=lt.document||{head:{}},dt=lt.HTMLElement||class{},ht={$flags$:0,$resourcesUrl$:"",jmp:e=>e(),raf:e=>requestAnimationFrame(e),ael:(e,t,r,i)=>e.addEventListener(t,r,i),rel:(e,t,r,i)=>e.removeEventListener(t,r,i),ce:(e,t)=>new CustomEvent(e,t)},gt=!0,ut=(()=>{let e=!1;try{ct.addEventListener("e",null,Object.defineProperty({},"passive",{get(){e=!0}}))}catch(e){}return e})(),mt=(()=>{try{return new CSSStyleSheet,"function"==typeof(new CSSStyleSheet).replaceSync}catch(e){}return!1})(),pt=[],ft=[],vt=(e,t)=>r=>{e.push(r),ae||(ae=!0,t&&4&ht.$flags$?wt(yt):ht.raf(yt))},bt=e=>{for(let t=0;t{bt(pt),bt(ft),(ae=pt.length>0)&&ht.raf(yt)},wt=e=>{return Promise.resolve(t).then(e);var t},$t=vt(ft,!0),xt=(e,t)=>{const r=!!e.label||e.hasLabelSlot,i=!!e.helpText||e.hasHelpTextSlot,o=!!e.invalidText||e.hasInvalidTextSlot,n=!e.invalid,a=!!e.invalid;return de("div",{class:{"form-control":!0,[`form-control-${e.size}`]:!0,"form-control-has-label":r,"form-control-has-help-text":i,"form-control-has-invalid-text":o}},de("label",{id:e.labelId,class:"form-control-label",htmlFor:e.inputId,"aria-hidden":r?"false":"true",onClick:e.onLabelClick},de("slot",{name:"label"},e.label),e.requiredIndicator&&de("div",{class:"asterisk"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 1200 1200"},de("path",{fill:"currentColor",d:"M489.838 29.354v443.603L68.032 335.894 0 545.285l421.829 137.086-260.743 358.876 178.219 129.398L600.048 811.84l260.673 358.806 178.146-129.398-260.766-358.783L1200 545.379l-68.032-209.403-421.899 137.07V29.443H489.84l-.002-.089z"})))),de("div",{class:"form-control-input"},t),n&&de("div",{id:e.helpTextId,class:"form-control-help-text","aria-hidden":i?"false":"true"},de("slot",{name:"help-text"},e.helpText)),a&&de("div",{id:e.invalidTextId,class:"form-control-invalid-text","aria-hidden":o?"false":"true"},de("div",{class:"icon"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Alert Circle"),de("path",{d:"M256,48C141.31,48,48,141.31,48,256s93.31,208,208,208,208-93.31,208-208S370.69,48,256,48Zm0,319.91a20,20,0,1,1,20-20A20,20,0,0,1,256,367.91Zm21.72-201.15-5.74,122a16,16,0,0,1-32,0l-5.74-121.94v-.05a21.74,21.74,0,1,1,43.44,0Z",fill:"currentColor"}))),de("div",{class:"text"},de("slot",{name:"invalid-text"},e.invalidText))))}; +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +function kt(e){const t=e?e.assignedNodes({flatten:!0}):[];let r="";return[...t].map((e=>{e.nodeType===Node.TEXT_NODE&&(r+=e.textContent)})),r}function _t(e,t){return t?null!==e.querySelector(`[slot="${t}"]`):[...e.childNodes].some((e=>{if(e.nodeType===e.TEXT_NODE&&""!==e.textContent.trim())return!0;if(e.nodeType===e.ELEMENT_NODE){if(!e.hasAttribute("slot"))return!0}return!1}))} +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */const Ct=(e,t=[])=>{const r={};return t.forEach((t=>{if(e.hasAttribute(t)){null!==e.getAttribute(t)&&(r[t]=e.getAttribute(t)),e.removeAttribute(t)}})),r},Tt=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow()}render(){return de("span",{class:"spinner","aria-busy":"true","aria-live":"polite"})}static get style(){return":host{--track-color:var(--gr-color-light-shade);--indicator-color:var(--gr-color-primary);--stroke-width:2px;display:inline-flex;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}.spinner{display:inline-block;width:1em;height:1em;border-radius:50%;border:solid var(--stroke-width) var(--track-color);border-top-color:var(--indicator-color);border-right-color:var(--indicator-color);animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}"}},[1,"gr-spinner"]);function Et(){if("undefined"==typeof customElements)return;["gr-spinner"].forEach((e=>{if("gr-spinner"===e)customElements.get(e)||customElements.define(e,Tt)}))}Et(); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +const Ot=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grFocus=fe(this,"gr-focus",7),this.grBlur=fe(this,"gr-blur",7),this.inheritedAttributes={},this.handleClick=e=>{if("button"!==this.type){const t=this.el.closest("form");if(t){e.preventDefault();const r=document.createElement("button");r.type=this.type,r.style.display="none",t.appendChild(r),r.click(),r.remove()}}},this.onFocus=()=>{this.grFocus.emit()},this.onBlur=()=>{this.grBlur.emit()},this.variant="default",this.disabled=!1,this.loading=!1,this.size="medium",this.caret=!1,this.pill=!1,this.expand=void 0,this.circle=!1,this.href=void 0,this.target=void 0,this.rel=void 0,this.type="button"}componentWillLoad(){this.inheritedAttributes=Ct(this.el,["aria-label","tabindex","title"])}async setFocus(e){this.button.focus(e)}async removeFocus(){this.button.blur()}render(){const{rel:e,target:t,href:r,variant:i,size:o,expand:n,type:a,inheritedAttributes:s,disabled:l}=this,c=void 0===r?"button":"a",d="button"===c?{type:a}:{href:r,rel:e,target:t};return de(ge,{onClick:this.handleClick,"aria-disabled":l?"true":null,class:{[`button-${i}`]:!0,[`button-${o}`]:!0,[`button-${n}`]:void 0!==n,"button-caret":this.caret,"button-circle":this.circle,"button-pill":this.pill,"button-disabled":l,"button-loading":this.loading}},de(c,Object.assign({ref:e=>this.button=e},d,{class:"button-native",disabled:l,onFocus:this.onFocus,onBlur:this.onBlur},s),de("span",{class:"button-inner"},de("slot",{name:"icon-only"}),de("slot",{name:"start"}),de("slot",null),de("slot",{name:"end"}),this.caret&&de("span",{class:"caret"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Chevron Down"),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"48",d:"M112 184l144 144 144-144"})))),this.loading&&de("gr-spinner",null)))}get el(){return this}static get style(){return".gr-scroll-lock{overflow:hidden !important}:host{display:inline-block;width:auto;font-family:var(--gr-font-family);font-weight:var(--gr-font-weight-medium);font-size:var(--gr-form-element-font-size-medium);font-kerning:none;user-select:none;vertical-align:top;vertical-align:-webkit-baseline-middle;pointer-events:auto;--height:var(--gr-form-element-height-medium);--border-radius:var(--gr-form-element-border-radius-medium);--border-width:1px;--border-style:solid;--background:transparent;--background-hover:transparent;--background-focus:transparent;--color:var(--gr-color-dark-tint);--color-hover:var(--gr-color-dark-tint);--color-focus:var(--gr-color-dark-tint);--border-color:var(--gr-color-light-shade);--border-color-hover:var(--gr-color-medium);--border-color-focus:var(--gr-color-primary);--padding-top:0;--padding-start:var(--gr-spacing-medium);--padding-end:var(--gr-spacing-medium);--padding-bottom:0;--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33);--shadow:none;--transition:background-color 150ms linear, opacity 150ms linear, border 150ms linear, color 150ms linear}:host(.button-disabled){pointer-events:none;opacity:0.5}:host(.button-primary){--border-color:var(--gr-color-primary);--background:var(--gr-color-primary);--color:var(--gr-color-primary-contrast);--border-color-hover:var(--gr-color-primary-shade);--background-hover:var(--gr-color-primary-shade);--color-hover:var(--gr-color-primary-contrast);--border-color-focus:var(--gr-color-primary);--background-focus:var(--gr-color-primary-shade);--color-focus:var(--gr-color-primary-contrast);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33)}:host(.button-secondary){--border-color:var(--gr-color-light-shade);--background:transparent;--color:var(--gr-color-primary);--border-color-hover:var(--gr-color-primary);--background-hover:transparent;--color-hover:var(--gr-color-primary);--border-color-focus:var(--gr-color-primary);--background-focus:transparent;--color-focus:var(--gr-color-primary);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33)}:host(.button-danger){--border-color:var(--gr-color-danger);--background:transparent;--color:var(--gr-color-danger);--border-color-hover:var(--gr-color-danger);--background-hover:var(--gr-color-danger);--color-hover:var(--gr-color-danger-contrast);--border-color-focus:var(--gr-color-danger);--background-focus:var(--gr-color-danger);--color-focus:var(--gr-color-danger-contrast);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-danger-rgb), 0.33)}:host(.button-plain){--border-color:transparent;--background:transparent;--color:var(--gr-color-primary);--border-color-hover:transparent;--background-hover:transparent;--color-hover:var(--gr-color-primary-shade);--border-color-focus:transparent;--background-focus:transparent;--color-focus:var(--gr-color-primary-shade);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33)}:host(.button-small){--padding-start:var(--gr-spacing-small);--padding-end:var(--gr-spacing-small);--border-radius:var(--gr-form-element-border-radius-small);--height:var(--gr-form-element-height-small);font-size:var(--gr-form-element-font-size-small)}:host(.button-large){--padding-start:var(--gr-spacing-large);--padding-end:var(--gr-spacing-large);--border-radius:var(--gr-form-element-border-radius-large);--height:var(--gr-form-element-height-large);font-size:var(--gr-form-element-font-size-large)}:host(.button-block){display:block}:host(.button-block) .button-native{margin-left:0;margin-right:0;display:block;width:100%;clear:both;contain:content}:host(.button-block) .button-native::after{clear:both}:host(.button-full){display:block}:host(.button-full) .button-native{margin-left:0;margin-right:0;display:block;width:100%;contain:content;border-radius:0;border-right-width:0;border-left-width:0}.button-native{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:block;position:relative;padding-top:var(--padding-top);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-bottom:var(--padding-bottom);width:100%;height:var(--height);transition:var(--transition);border-radius:var(--border-radius);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);color:var(--color);box-shadow:var(--shadow);line-height:1;cursor:pointer;z-index:0;text-decoration:none;box-sizing:border-box}.button-native::-moz-focus-inner{border:0}.button-native:focus{outline:none;box-shadow:var(--focus-ring);border-color:var(--border-color-focus);background-color:var(--background-focus);color:var(--color-focus)}.button-native *,.button-native *:before,.button-native *:after{box-sizing:inherit}.button-inner{display:flex;position:relative;flex-flow:row nowrap;flex-shrink:0;align-items:center;justify-content:center;width:100%;height:100%;z-index:1}:host(.button-circle) .button-native{padding-top:0;padding-bottom:0;padding-left:0;padding-right:0;border-radius:50%;width:var(--height)}@media (any-hover: hover){.button-native:hover{color:var(--color-hover);background:var(--background-hover);border-color:var(--border-color-hover)}}:host(.button-caret) .caret{display:flex;align-items:center;margin-left:0.3em}:host(.button-caret) .caret svg{width:1em;height:1em}:host(.button-pill) .button-native{border-radius:var(--height)}::slotted(*){pointer-events:none}::slotted([slot=start]){margin-top:0;margin-left:-0.3em;margin-right:0.3em;margin-bottom:0}::slotted([slot=end]){margin-top:0;margin-left:0.3em;margin-right:-0.2em;margin-bottom:0}::slotted([slot=icon-only]){font-size:1.4em;pointer-events:none}:host(.button-loading){position:relative;pointer-events:none}:host(.button-loading) .caret{visibility:hidden}:host(.button-loading) slot[name=start],:host(.button-loading) slot[name=end],:host(.button-loading) slot[name=icon-only],:host(.button-loading) slot:not([name]){visibility:hidden}:host(.button-loading) gr-spinner{--indicator-color:currentColor;position:absolute;height:1em;width:1em;top:calc(50% - 0.5em);left:calc(50% - 0.5em)}@media not all and (min-resolution: 0.001dpcm){@supports (-webkit-appearance: none) and (stroke-color: transparent){:host([type=button]),:host([type=reset]),:host([type=submit]){-webkit-appearance:none !important}}}"}},[1,"gr-button",{variant:[513],disabled:[516],loading:[516],size:[513],caret:[4],pill:[516],expand:[513],circle:[516],href:[1],target:[1],rel:[1],type:[1],setFocus:[64],removeFocus:[64]}]);function St(){if("undefined"==typeof customElements)return;["gr-button","gr-spinner"].forEach((e=>{switch(e){case"gr-button":customElements.get(e)||customElements.define(e,Ot);break;case"gr-spinner":customElements.get(e)||Et()}}))}function Mt(e,t,r="vertical",i="smooth"){const o= +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +function(e,t){return{top:Math.round(e.getBoundingClientRect().top-t.getBoundingClientRect().top),left:Math.round(e.getBoundingClientRect().left-t.getBoundingClientRect().left)}}(e,t),n=o.top+t.scrollTop,a=o.left+t.scrollLeft,s=t.scrollLeft,l=t.scrollLeft+t.offsetWidth,c=t.scrollTop,d=t.scrollTop+t.offsetHeight;"horizontal"!==r&&"both"!==r||(al&&t.scrollTo({left:a-t.offsetWidth+e.clientWidth,behavior:i})),"vertical"!==r&&"both"!==r||(nd&&t.scrollTo({top:n-t.offsetHeight+e.clientHeight,behavior:i}))} +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */function zt(e){return e.tabIndex>-1}function Lt(e){if(zt(e))return e;if(e.shadowRoot){const t=[...e.shadowRoot.children].find(zt);if(t)return t}return e.children?[...e.children].map(Lt)[0]:null}St();var Dt="top",At="bottom",Ft="right",It="left",Wt="auto",Rt=[Dt,At,Ft,It],Nt="start",Ht="end",Vt="clippingParents",jt="viewport",Bt="popper",qt="reference",Pt=Rt.reduce((function(e,t){return e.concat([t+"-"+Nt,t+"-"+Ht])}),[]),Ut=[].concat(Rt,[Wt]).reduce((function(e,t){return e.concat([t,t+"-"+Nt,t+"-"+Ht])}),[]),Kt=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Yt(e){return e?(e.nodeName||"").toLowerCase():null}function Qt(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Gt(e){return e instanceof Qt(e).Element||e instanceof Element}function Xt(e){return e instanceof Qt(e).HTMLElement||e instanceof HTMLElement}function Zt(e){return"undefined"!=typeof ShadowRoot&&(e instanceof Qt(e).ShadowRoot||e instanceof ShadowRoot)}const Jt={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var r=t.styles[e]||{},i=t.attributes[e]||{},o=t.elements[e];Xt(o)&&Yt(o)&&(Object.assign(o.style,r),Object.keys(i).forEach((function(e){var t=i[e];!1===t?o.removeAttribute(e):o.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,r={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,r.popper),t.styles=r,t.elements.arrow&&Object.assign(t.elements.arrow.style,r.arrow),function(){Object.keys(t.elements).forEach((function(e){var i=t.elements[e],o=t.attributes[e]||{},n=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:r[e]).reduce((function(e,t){return e[t]="",e}),{});Xt(i)&&Yt(i)&&(Object.assign(i.style,n),Object.keys(o).forEach((function(e){i.removeAttribute(e)})))}))}},requires:["computeStyles"]};function er(e){return e.split("-")[0]}var tr=Math.max,rr=Math.min,ir=Math.round;function or(e,t){void 0===t&&(t=!1);var r=e.getBoundingClientRect(),i=1,o=1;if(Xt(e)&&t){var n=e.offsetHeight,a=e.offsetWidth;a>0&&(i=ir(r.width)/a||1),n>0&&(o=ir(r.height)/n||1)}return{width:r.width/i,height:r.height/o,top:r.top/o,right:r.right/i,bottom:r.bottom/o,left:r.left/i,x:r.left/i,y:r.top/o}}function nr(e){var t=or(e),r=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-r)<=1&&(r=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:i}}function ar(e,t){var r=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(r&&Zt(r)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function sr(e){return Qt(e).getComputedStyle(e)}function lr(e){return["table","td","th"].indexOf(Yt(e))>=0}function cr(e){return((Gt(e)?e.ownerDocument:e.document)||window.document).documentElement}function dr(e){return"html"===Yt(e)?e:e.assignedSlot||e.parentNode||(Zt(e)?e.host:null)||cr(e)}function hr(e){return Xt(e)&&"fixed"!==sr(e).position?e.offsetParent:null}function gr(e){for(var t=Qt(e),r=hr(e);r&&lr(r)&&"static"===sr(r).position;)r=hr(r);return r&&("html"===Yt(r)||"body"===Yt(r)&&"static"===sr(r).position)?t:r||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&Xt(e)&&"fixed"===sr(e).position)return null;var r=dr(e);for(Zt(r)&&(r=r.host);Xt(r)&&["html","body"].indexOf(Yt(r))<0;){var i=sr(r);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return r;r=r.parentNode}return null}(e)||t}function ur(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function mr(e,t,r){return tr(e,rr(t,r))}function pr(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function fr(e,t){return t.reduce((function(t,r){return t[r]=e,t}),{})}const vr={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,r=e.state,i=e.name,o=e.options,n=r.elements.arrow,a=r.modifiersData.popperOffsets,s=er(r.placement),l=ur(s),c=[It,Ft].indexOf(s)>=0?"height":"width";if(n&&a){var d=function(e,t){return pr("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:fr(e,Rt))}(o.padding,r),h=nr(n),g="y"===l?Dt:It,u="y"===l?At:Ft,m=r.rects.reference[c]+r.rects.reference[l]-a[l]-r.rects.popper[c],p=a[l]-r.rects.reference[l],f=gr(n),v=f?"y"===l?f.clientHeight||0:f.clientWidth||0:0,b=m/2-p/2,y=d[g],w=v-h[c]-d[u],$=v/2-h[c]/2+b,x=mr(y,$,w),k=l;r.modifiersData[i]=((t={})[k]=x,t.centerOffset=x-$,t)}},effect:function(e){var t=e.state,r=e.options.element,i=void 0===r?"[data-popper-arrow]":r;null!=i&&("string"!=typeof i||(i=t.elements.popper.querySelector(i)))&&ar(t.elements.popper,i)&&(t.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function br(e){return e.split("-")[1]}var yr={top:"auto",right:"auto",bottom:"auto",left:"auto"};function wr(e){var t,r=e.popper,i=e.popperRect,o=e.placement,n=e.variation,a=e.offsets,s=e.position,l=e.gpuAcceleration,c=e.adaptive,d=e.roundOffsets,h=e.isFixed,g=a.x,u=void 0===g?0:g,m=a.y,p=void 0===m?0:m,f="function"==typeof d?d({x:u,y:p}):{x:u,y:p};u=f.x,p=f.y;var v=a.hasOwnProperty("x"),b=a.hasOwnProperty("y"),y=It,w=Dt,$=window;if(c){var x=gr(r),k="clientHeight",_="clientWidth";if(x===Qt(r)&&"static"!==sr(x=cr(r)).position&&"absolute"===s&&(k="scrollHeight",_="scrollWidth"),o===Dt||(o===It||o===Ft)&&n===Ht)w=At,p-=(h&&x===$&&$.visualViewport?$.visualViewport.height:x[k])-i.height,p*=l?1:-1;if(o===It||(o===Dt||o===At)&&n===Ht)y=Ft,u-=(h&&x===$&&$.visualViewport?$.visualViewport.width:x[_])-i.width,u*=l?1:-1}var C,T=Object.assign({position:s},c&&yr),E=!0===d?function(e){var t=e.x,r=e.y,i=window.devicePixelRatio||1;return{x:ir(t*i)/i||0,y:ir(r*i)/i||0}}({x:u,y:p}):{x:u,y:p};return u=E.x,p=E.y,l?Object.assign({},T,((C={})[w]=b?"0":"",C[y]=v?"0":"",C.transform=($.devicePixelRatio||1)<=1?"translate("+u+"px, "+p+"px)":"translate3d("+u+"px, "+p+"px, 0)",C)):Object.assign({},T,((t={})[w]=b?p+"px":"",t[y]=v?u+"px":"",t.transform="",t))}var $r={passive:!0};var xr={left:"right",right:"left",bottom:"top",top:"bottom"};function kr(e){return e.replace(/left|right|bottom|top/g,(function(e){return xr[e]}))}var _r={start:"end",end:"start"};function Cr(e){return e.replace(/start|end/g,(function(e){return _r[e]}))}function Tr(e){var t=Qt(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Er(e){return or(cr(e)).left+Tr(e).scrollLeft}function Or(e){var t=sr(e),r=t.overflow,i=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(r+o+i)}function Sr(e){return["html","body","#document"].indexOf(Yt(e))>=0?e.ownerDocument.body:Xt(e)&&Or(e)?e:Sr(dr(e))}function Mr(e,t){var r;void 0===t&&(t=[]);var i=Sr(e),o=i===(null==(r=e.ownerDocument)?void 0:r.body),n=Qt(i),a=o?[n].concat(n.visualViewport||[],Or(i)?i:[]):i,s=t.concat(a);return o?s:s.concat(Mr(dr(a)))}function zr(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Lr(e,t){return t===jt?zr(function(e){var t=Qt(e),r=cr(e),i=t.visualViewport,o=r.clientWidth,n=r.clientHeight,a=0,s=0;return i&&(o=i.width,n=i.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(a=i.offsetLeft,s=i.offsetTop)),{width:o,height:n,x:a+Er(e),y:s}}(e)):Gt(t)?function(e){var t=or(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):zr(function(e){var t,r=cr(e),i=Tr(e),o=null==(t=e.ownerDocument)?void 0:t.body,n=tr(r.scrollWidth,r.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),a=tr(r.scrollHeight,r.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),s=-i.scrollLeft+Er(e),l=-i.scrollTop;return"rtl"===sr(o||r).direction&&(s+=tr(r.clientWidth,o?o.clientWidth:0)-n),{width:n,height:a,x:s,y:l}}(cr(e)))}function Dr(e,t,r){var i="clippingParents"===t?function(e){var t=Mr(dr(e)),r=["absolute","fixed"].indexOf(sr(e).position)>=0&&Xt(e)?gr(e):e;return Gt(r)?t.filter((function(e){return Gt(e)&&ar(e,r)&&"body"!==Yt(e)})):[]}(e):[].concat(t),o=[].concat(i,[r]),n=o[0],a=o.reduce((function(t,r){var i=Lr(e,r);return t.top=tr(i.top,t.top),t.right=rr(i.right,t.right),t.bottom=rr(i.bottom,t.bottom),t.left=tr(i.left,t.left),t}),Lr(e,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function Ar(e){var t,r=e.reference,i=e.element,o=e.placement,n=o?er(o):null,a=o?br(o):null,s=r.x+r.width/2-i.width/2,l=r.y+r.height/2-i.height/2;switch(n){case Dt:t={x:s,y:r.y-i.height};break;case At:t={x:s,y:r.y+r.height};break;case Ft:t={x:r.x+r.width,y:l};break;case It:t={x:r.x-i.width,y:l};break;default:t={x:r.x,y:r.y}}var c=n?ur(n):null;if(null!=c){var d="y"===c?"height":"width";switch(a){case Nt:t[c]=t[c]-(r[d]/2-i[d]/2);break;case Ht:t[c]=t[c]+(r[d]/2-i[d]/2)}}return t}function Fr(e,t){void 0===t&&(t={});var r=t,i=r.placement,o=void 0===i?e.placement:i,n=r.boundary,a=void 0===n?Vt:n,s=r.rootBoundary,l=void 0===s?jt:s,c=r.elementContext,d=void 0===c?Bt:c,h=r.altBoundary,g=void 0!==h&&h,u=r.padding,m=void 0===u?0:u,p=pr("number"!=typeof m?m:fr(m,Rt)),f=d===Bt?qt:Bt,v=e.rects.popper,b=e.elements[g?f:d],y=Dr(Gt(b)?b:b.contextElement||cr(e.elements.popper),a,l),w=or(e.elements.reference),$=Ar({reference:w,element:v,strategy:"absolute",placement:o}),x=zr(Object.assign({},v,$)),k=d===Bt?x:w,_={top:y.top-k.top+p.top,bottom:k.bottom-y.bottom+p.bottom,left:y.left-k.left+p.left,right:k.right-y.right+p.right},C=e.modifiersData.offset;if(d===Bt&&C){var T=C[o];Object.keys(_).forEach((function(e){var t=[Ft,At].indexOf(e)>=0?1:-1,r=[Dt,At].indexOf(e)>=0?"y":"x";_[e]+=T[r]*t}))}return _}function Ir(e,t){void 0===t&&(t={});var r=t,i=r.placement,o=r.boundary,n=r.rootBoundary,a=r.padding,s=r.flipVariations,l=r.allowedAutoPlacements,c=void 0===l?Ut:l,d=br(i),h=d?s?Pt:Pt.filter((function(e){return br(e)===d})):Rt,g=h.filter((function(e){return c.indexOf(e)>=0}));0===g.length&&(g=h);var u=g.reduce((function(t,r){return t[r]=Fr(e,{placement:r,boundary:o,rootBoundary:n,padding:a})[er(r)],t}),{});return Object.keys(u).sort((function(e,t){return u[e]-u[t]}))}const Wr={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,r=e.options,i=e.name;if(!t.modifiersData[i]._skip){for(var o=r.mainAxis,n=void 0===o||o,a=r.altAxis,s=void 0===a||a,l=r.fallbackPlacements,c=r.padding,d=r.boundary,h=r.rootBoundary,g=r.altBoundary,u=r.flipVariations,m=void 0===u||u,p=r.allowedAutoPlacements,f=t.options.placement,v=er(f),b=l||(v===f||!m?[kr(f)]:function(e){if(er(e)===Wt)return[];var t=kr(e);return[Cr(e),t,Cr(t)]}(f)),y=[f].concat(b).reduce((function(e,r){return e.concat(er(r)===Wt?Ir(t,{placement:r,boundary:d,rootBoundary:h,padding:c,flipVariations:m,allowedAutoPlacements:p}):r)}),[]),w=t.rects.reference,$=t.rects.popper,x=new Map,k=!0,_=y[0],C=0;C=0,M=S?"width":"height",z=Fr(t,{placement:T,boundary:d,rootBoundary:h,altBoundary:g,padding:c}),L=S?O?Ft:It:O?At:Dt;w[M]>$[M]&&(L=kr(L));var D=kr(L),A=[];if(n&&A.push(z[E]<=0),s&&A.push(z[L]<=0,z[D]<=0),A.every((function(e){return e}))){_=T,k=!1;break}x.set(T,A)}if(k)for(var F=function(e){var t=y.find((function(t){var r=x.get(t);if(r)return r.slice(0,e).every((function(e){return e}))}));if(t)return _=t,"break"},I=m?3:1;I>0;I--){if("break"===F(I))break}t.placement!==_&&(t.modifiersData[i]._skip=!0,t.placement=_,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Rr(e,t,r){return void 0===r&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function Nr(e){return[Dt,Ft,At,It].some((function(t){return e[t]>=0}))}const Hr={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,r=e.options,i=e.name,o=r.offset,n=void 0===o?[0,0]:o,a=Ut.reduce((function(e,r){return e[r]=function(e,t,r){var i=er(e),o=[It,Dt].indexOf(i)>=0?-1:1,n="function"==typeof r?r(Object.assign({},t,{placement:e})):r,a=n[0],s=n[1];return a=a||0,s=(s||0)*o,[It,Ft].indexOf(i)>=0?{x:s,y:a}:{x:a,y:s}}(r,t.rects,n),e}),{}),s=a[t.placement],l=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=c),t.modifiersData[i]=a}};const Vr={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,r=e.options,i=e.name,o=r.mainAxis,n=void 0===o||o,a=r.altAxis,s=void 0!==a&&a,l=r.boundary,c=r.rootBoundary,d=r.altBoundary,h=r.padding,g=r.tether,u=void 0===g||g,m=r.tetherOffset,p=void 0===m?0:m,f=Fr(t,{boundary:l,rootBoundary:c,padding:h,altBoundary:d}),v=er(t.placement),b=br(t.placement),y=!b,w=ur(v),$="x"===w?"y":"x",x=t.modifiersData.popperOffsets,k=t.rects.reference,_=t.rects.popper,C="function"==typeof p?p(Object.assign({},t.rects,{placement:t.placement})):p,T="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),E=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(x){if(n){var S,M="y"===w?Dt:It,z="y"===w?At:Ft,L="y"===w?"height":"width",D=x[w],A=D+f[M],F=D-f[z],I=u?-_[L]/2:0,W=b===Nt?k[L]:_[L],R=b===Nt?-_[L]:-k[L],N=t.elements.arrow,H=u&&N?nr(N):{width:0,height:0},V=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},j=V[M],B=V[z],q=mr(0,k[L],H[L]),P=y?k[L]/2-I-q-j-T.mainAxis:W-q-j-T.mainAxis,U=y?-k[L]/2+I+q+B+T.mainAxis:R+q+B+T.mainAxis,K=t.elements.arrow&&gr(t.elements.arrow),Y=K?"y"===w?K.clientTop||0:K.clientLeft||0:0,Q=null!=(S=null==E?void 0:E[w])?S:0,G=D+U-Q,X=mr(u?rr(A,D+P-Q-Y):A,D,u?tr(F,G):F);x[w]=X,O[w]=X-D}if(s){var Z,J="x"===w?Dt:It,ee="x"===w?At:Ft,te=x[$],re="y"===$?"height":"width",ie=te+f[J],oe=te-f[ee],ne=-1!==[Dt,It].indexOf(v),ae=null!=(Z=null==E?void 0:E[$])?Z:0,se=ne?ie:te-k[re]-_[re]-ae+T.altAxis,le=ne?te+k[re]+_[re]-ae-T.altAxis:oe,ce=u&&ne?function(e,t,r){var i=mr(e,t,r);return i>r?r:i}(se,te,le):mr(u?se:ie,te,u?le:oe);x[$]=ce,O[$]=ce-te}t.modifiersData[i]=O}},requiresIfExists:["offset"]};function jr(e,t,r){void 0===r&&(r=!1);var i,o,n=Xt(t),a=Xt(t)&&function(e){var t=e.getBoundingClientRect(),r=ir(t.width)/e.offsetWidth||1,i=ir(t.height)/e.offsetHeight||1;return 1!==r||1!==i}(t),s=cr(t),l=or(e,a),c={scrollLeft:0,scrollTop:0},d={x:0,y:0};return(n||!n&&!r)&&(("body"!==Yt(t)||Or(s))&&(c=(i=t)!==Qt(i)&&Xt(i)?{scrollLeft:(o=i).scrollLeft,scrollTop:o.scrollTop}:Tr(i)),Xt(t)?((d=or(t,!0)).x+=t.clientLeft,d.y+=t.clientTop):s&&(d.x=Er(s))),{x:l.left+c.scrollLeft-d.x,y:l.top+c.scrollTop-d.y,width:l.width,height:l.height}}function Br(e){var t=new Map,r=new Set,i=[];function o(e){r.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!r.has(e)){var i=t.get(e);i&&o(i)}})),i.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){r.has(e.name)||o(e)})),i}var qr={placement:"bottom",modifiers:[],strategy:"absolute"};function Pr(){for(var e=arguments.length,t=new Array(e),r=0;r{},onAfterHide:()=>{},onTransitionEnd:()=>{}},r),this.isVisible=!1,this.popover.hidden=!0,this.popover.classList.remove(this.options.visibleClass),this.popover.addEventListener("transitionend",this.handleTransitionEnd)}handleTransitionEnd(e){e.target===this.options.transitionElement&&(this.options.onTransitionEnd.call(this,e),this.isVisible||this.popover.hidden||(this.popover.hidden=!0,this.popover.classList.remove(this.options.visibleClass),this.options.onAfterHide.call(this)))}destroy(){this.popover.removeEventListener("transitionend",this.handleTransitionEnd),this.popper&&(this.popper.destroy(),this.popper=null)}show(){this.isVisible=!0,this.popover.hidden=!1,requestAnimationFrame((()=>this.popover.classList.add(this.options.visibleClass))),this.popper&&this.popper.destroy(),this.popper=Kr(this.anchor,this.popover,{placement:this.options.placement,strategy:this.options.strategy,modifiers:[{name:"flip",options:{boundary:"viewport"}},{name:"offset",options:{offset:[this.options.skidding,this.options.distance]}}]}),this.popover.addEventListener("transitionend",(()=>this.options.onAfterShow.call(this)),{once:!0}),requestAnimationFrame((()=>this.popper.update()))}hide(){this.isVisible=!1,this.popover.classList.remove(this.options.visibleClass)}setOptions(e){this.options=Object.assign(this.options,e),this.isVisible?this.popover.classList.add(this.options.visibleClass):this.popover.classList.remove(this.options.visibleClass),this.popper&&(this.popper.setOptions({placement:this.options.placement,strategy:this.options.strategy}),requestAnimationFrame((()=>this.popper.update())))}}let Qr=0;const Gr=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grShow=fe(this,"gr-show",7),this.grAfterShow=fe(this,"gr-after-show",7),this.grHide=fe(this,"gr-hide",7),this.grAfterHide=fe(this,"gr-after-hide",7),this.componentId="dropdown-"+ ++Qr,this.isVisible=!1,this.open=!1,this.placement="bottom-start",this.closeOnSelect=!0,this.containingElement=void 0,this.distance=2,this.skidding=0,this.hoist=!1}handleOpenChange(){this.open?this.show():this.hide(),this.updateAccessibleTrigger()}handlePopoverOptionsChange(){this.popoverElement.setOptions({strategy:this.hoist?"fixed":"absolute",placement:this.placement,distance:this.distance,skidding:this.skidding})}connectedCallback(){this.containingElement||(this.containingElement=this.el),this.handleDocumentKeyDown=this.handleDocumentKeyDown.bind(this),this.handleDocumentMouseDown=this.handleDocumentMouseDown.bind(this),this.handleMenuItemActivate=this.handleMenuItemActivate.bind(this),this.handlePanelSelect=this.handlePanelSelect.bind(this),this.handleTriggerClick=this.handleTriggerClick.bind(this),this.handleTriggerKeyDown=this.handleTriggerKeyDown.bind(this),this.handleTriggerKeyUp=this.handleTriggerKeyUp.bind(this),this.handleTriggerSlotChange=this.handleTriggerSlotChange.bind(this)}componentDidLoad(){this.popoverElement=new Yr(this.trigger,this.positioner,{strategy:this.hoist?"fixed":"absolute",placement:this.placement,distance:this.distance,skidding:this.skidding,transitionElement:this.panel,onAfterHide:()=>this.grAfterHide.emit(),onAfterShow:()=>this.grAfterShow.emit(),onTransitionEnd:()=>{this.open||(this.panel.scrollTop=0)}}),this.open&&this.show()}disconnectedCallback(){this.hide(),this.popoverElement.destroy()}async show(){if(this.isVisible)return;this.grShow.emit().defaultPrevented?this.open=!1:(this.panel.addEventListener("gr-activate",this.handleMenuItemActivate),this.panel.addEventListener("gr-select",this.handlePanelSelect),document.addEventListener("keydown",this.handleDocumentKeyDown),document.addEventListener("mousedown",this.handleDocumentMouseDown),this.isVisible=!0,this.open=!0,this.popoverElement.show())}async hide(){if(!this.isVisible)return;this.grHide.emit().defaultPrevented?this.open=!0:(this.panel.removeEventListener("gr-activate",this.handleMenuItemActivate),this.panel.removeEventListener("gr-select",this.handlePanelSelect),document.addEventListener("keydown",this.handleDocumentKeyDown),document.removeEventListener("mousedown",this.handleDocumentMouseDown),this.isVisible=!1,this.open=!1,this.popoverElement.hide())}async focusOnTrigger(){const e=this.trigger.querySelector("slot").assignedElements({flatten:!0})[0];e&&("function"==typeof e.setFocus?e.setFocus():"function"==typeof e.focus&&e.focus())}getMenu(){return this.panel.querySelector("slot").assignedElements({flatten:!0}).filter((e=>"gr-menu"===e.tagName.toLowerCase()))[0]}handleDocumentKeyDown(e){var t;if("Escape"===e.key)return this.hide(),void this.focusOnTrigger();if("Tab"===e.key){if(this.open&&"gr-menu-item"===(null===(t=document.activeElement)||void 0===t?void 0:t.tagName.toLowerCase()))return e.preventDefault(),this.hide(),void this.focusOnTrigger();setTimeout((()=>{var e;const t=this.containingElement.getRootNode()instanceof ShadowRoot?null===(e=document.activeElement.shadowRoot)||void 0===e?void 0:e.activeElement:document.activeElement;(null==t?void 0:t.closest(this.containingElement.tagName.toLowerCase()))===this.containingElement||this.hide()}))}}handleDocumentMouseDown(e){e.composedPath().includes(this.containingElement)||this.hide()}handleMenuItemActivate(e){Mt(e.target,this.panel)}handlePanelSelect(e){const t=e.target;this.closeOnSelect&&"gr-menu"===t.tagName.toLowerCase()&&(this.hide(),this.focusOnTrigger())}handleTriggerClick(){this.open?this.hide():this.show()}handleTriggerKeyDown(e){const t=this.getMenu(),r=t?[...t.querySelectorAll("gr-menu-item")]:null,i=r[0],o=r[r.length-1];if("Escape"===e.key)return this.focusOnTrigger(),void this.hide();if([" ","Enter"].includes(e.key))return e.preventDefault(),void(this.open?this.hide():this.show());if(["ArrowDown","ArrowUp"].includes(e.key)){if(e.preventDefault(),this.open||this.show(),"ArrowDown"===e.key&&i)return void i.setFocus();if("ArrowUp"===e.key&&o)return void o.setFocus()}this.open&&t&&!["Tab","Shift","Meta","Ctrl","Alt"].includes(e.key)&&t.typeToSelect(e.key)}handleTriggerKeyUp(e){" "===e.key&&e.preventDefault()}handleTriggerSlotChange(){this.updateAccessibleTrigger()}updateAccessibleTrigger(){const e=this.trigger.querySelector("slot").assignedElements({flatten:!0}).map(Lt)[0];e&&(e.setAttribute("aria-haspopup","true"),e.setAttribute("aria-expanded",this.open?"true":"false"))}render(){return de(ge,{id:this.componentId,class:{"dropdown-open":this.open}},de("span",{class:"dropdown-trigger",ref:e=>this.trigger=e,onClick:this.handleTriggerClick,onKeyDown:this.handleTriggerKeyDown,onKeyUp:this.handleTriggerKeyUp},de("slot",{name:"trigger",onSlotchange:this.handleTriggerSlotChange})),de("div",{ref:e=>this.positioner=e,class:"dropdown-positioner"},de("div",{ref:e=>this.panel=e,class:"dropdown-panel",role:"menu","aria-hidden":this.open?"false":"true","aria-labelledby":this.componentId},de("slot",null))))}get el(){return this}static get watchers(){return{open:["handleOpenChange"],distance:["handlePopoverOptionsChange"],hoist:["handlePopoverOptionsChange"],placement:["handlePopoverOptionsChange"],skidding:["handlePopoverOptionsChange"]}}static get style(){return".gr-scroll-lock{overflow:hidden !important}:host{--panel-background-color:var(--gr-color-white);--panel-border-radius:var(--gr-border-radius-medium);--panel-border-color:var(--gr-panel-border-color);--panel-box-shadow:var(--gr-shadow-large);--transition:150ms opacity, 150ms transform;display:inline-block;position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}.dropdown-trigger{display:block}.dropdown-positioner{position:absolute;z-index:var(--gr-z-index-dropdown)}.dropdown-panel{max-height:50vh;font-family:var(--gr-font-family);font-size:var(--gr-font-size-medium);font-weight:var(--gr-font-weight-normal);background-color:var(--panel-background-color);border:solid 1px var(--panel-border-color);border-radius:var(--panel-border-radius);box-shadow:var(--panel-box-shadow);opacity:0;overflow:auto;overscroll-behavior:none;pointer-events:none;transform:scale(0.9);transition:var(--transition)}.dropdown-positioner[data-popper-placement^=top] .dropdown-panel{transform-origin:bottom}.dropdown-positioner[data-popper-placement^=bottom] .dropdown-panel{transform-origin:top}.dropdown-positioner[data-popper-placement^=left] .dropdown-panel{transform-origin:right}.dropdown-positioner[data-popper-placement^=right] .dropdown-panel{transform-origin:left}.dropdown-positioner.popover-visible .dropdown-panel{opacity:1;transform:none;pointer-events:all}"}},[1,"gr-dropdown",{open:[1540],placement:[1],closeOnSelect:[4,"close-on-select"],containingElement:[1040],distance:[2],skidding:[2],hoist:[4],show:[64],hide:[64],focusOnTrigger:[64]}]);function Xr(){if("undefined"==typeof customElements)return;["gr-dropdown"].forEach((e=>{if("gr-dropdown"===e)customElements.get(e)||customElements.define(e,Gr)}))}Xr(); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +const Zr=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grSelect=fe(this,"gr-select",7),this.typeToSelectString=""}connectedCallback(){this.handleClick=this.handleClick.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}async typeToSelect(e){clearTimeout(this.typeToSelectTimeout),this.typeToSelectTimeout=setTimeout((()=>this.typeToSelectString=""),750),this.typeToSelectString+=e.toLowerCase();const t=this.getItems();for(const e of t){if(kt(e.shadowRoot.querySelector("slot:not([name])")).toLowerCase().trim().substring(0,this.typeToSelectString.length)===this.typeToSelectString){e.setFocus();break}}}getItems(){return[...this.menu.querySelector("slot").assignedElements({flatten:!0})].filter((e=>"gr-menu-item"===e.tagName.toLowerCase()&&!e.disabled))}getActiveItem(){return this.getItems().find((e=>e===document.activeElement))}setActiveItem(e){e.setFocus()}handleClick(e){const t=e.target.closest("gr-menu-item");t&&!t.disabled&&this.grSelect.emit({item:t})}handleKeyDown(e){if("Enter"===e.key){const t=this.getActiveItem();e.preventDefault(),t&&this.grSelect.emit({item:t})}if(" "===e.key&&e.preventDefault(),["ArrowDown","ArrowUp","Home","End"].includes(e.key)){const t=this.getItems(),r=this.getActiveItem();let i=t.indexOf(r);if(t.length)return e.preventDefault(),"ArrowDown"===e.key?i++:"ArrowUp"===e.key?i--:"Home"===e.key?i=0:"End"===e.key&&(i=t.length-1),i<0&&(i=0),i>t.length-1&&(i=t.length-1),void this.setActiveItem(t[i])}this.typeToSelect(e.key)}render(){return de("div",{ref:e=>this.menu=e,class:"menu",role:"menu",onClick:this.handleClick,onKeyDown:this.handleKeyDown},de("slot",null))}static get style(){return".gr-scroll-lock{overflow:hidden !important}:host{--padding-top:var(--gr-spacing-x-small);--padding-bottom:var(--gr-spacing-x-small);display:block;padding-top:var(--padding-top);padding-left:0;padding-right:0;padding-bottom:var(--padding-bottom);box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host:focus{outline:none}"}},[1,"gr-menu",{typeToSelect:[64]}]);function Jr(){if("undefined"==typeof customElements)return;["gr-menu"].forEach((e=>{if("gr-menu"===e)customElements.get(e)||customElements.define(e,Zr)}))}Jr(); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +const ei=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grClear=fe(this,"gr-clear",7),this.type="primary",this.size="medium",this.pill=!1,this.clearable=!1,this.truncate=!1,this.title=""}connectedCallback(){this.handleClearClick=this.handleClearClick.bind(this)}handleClearClick(){this.grClear.emit()}render(){return de(ge,{class:{[`tag-${this.type}`]:!0,[`tag-${this.size}`]:!0,"tag-pill":this.pill,"tag-clearable":this.clearable}},de("span",{class:"tag"},de("span",{class:{"tag-truncate":this.truncate},title:this.title},de("slot",null)),this.clearable&&de("gr-button",{variant:"plain",size:this.size,class:"tag-clear","aria-label":"clear",onClick:this.handleClearClick},de("svg",{slot:"icon-only",role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Close"),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M368 368L144 144M368 144L144 368"})))))}static get style(){return":host{--height:calc(var(--gr-form-element-height-medium) * 0.8);--line-height:calc(var(--gr-form-element-height-medium) - 1px * 2);--border-radius:var(--gr-form-element-border-radius-medium);--border-width:1px;--border-style:solid;--padding-top:0;--padding-start:var(--gr-spacing-small);--padding-end:var(--gr-spacing-small);--padding-bottom:0;--font-size:var(--gr-form-element-font-size-medium);--background-color:rgba(var(--gr-color-primary-rgb), 0.05);--border-color:rgba(var(--gr-color-primary-rgb), 0.2);--color:var(--gr-color-primary-shade);--clear-color:var(--gr-color-primary);--clear-color-hover:var(--gr-color-primary-shade);--clear-margin-left:var(--gr-spacing-xx-small);--clear-margin-right:calc(-1 * var(--gr-spacing-xxx-small));display:inline-block;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host(.tag-success){--background-color:rgba(var(--gr-color-success-rgb), 0.05);--border-color:rgba(var(--gr-color-success-rgb), 0.2);--color:var(--gr-color-success-shade);--clear-color:var(--gr-color-success);--clear-color-hover:var(--gr-color-success-shade)}:host(.tag-info){--background-color:rgba(var(--gr-color-medium-rgb), 0.05);--border-color:rgba(var(--gr-color-medium-rgb), 0.2);--color:var(--gr-color-medium-shade);--clear-color:var(--gr-color-medium);--clear-color-hover:var(--gr-color-medium-shade)}:host(.tag-warning){--background-color:rgba(var(--gr-color-warning-rgb), 0.05);--border-color:rgba(var(--gr-color-warning-rgb), 0.2);--color:var(--gr-color-warning-shade);--clear-color:var(--gr-color-warning);--clear-color-hover:var(--gr-color-warning-shade)}:host(.tag-danger){--background-color:rgba(var(--gr-color-danger-rgb), 0.05);--border-color:rgba(var(--gr-color-danger-rgb), 0.2);--color:var(--gr-color-danger-shade);--clear-color:var(--gr-color-danger);--clear-color-hover:var(--gr-color-danger-shade)}:host(.tag-small){--font-size:var(--gr-form-element-font-size-small);--height:calc(var(--gr-form-element-height-small) * 0.8);--line-height:calc(var(--gr-form-element-height-small) - 1px * 2);--border-radius:var(--gr-form-element-border-radius-small);--padding-start:var(--gr-spacing-x-small);--padding-end:var(--gr-spacing-x-small);--clear-margin-left:var(--gr-spacing-xx-small);--clear-margin-right:calc(-1 * var(--gr-spacing-xxx-small))}:host(.tag-large){--font-size:var(--gr-form-element-font-size-large);--height:calc(var(--gr-form-element-height-large) * 0.8);--line-height:calc(var(--gr-form-element-height-large) - 1px * 2);--border-radius:var(--gr-form-element-border-radius-large);--padding:0 var(--gr-spacing-medium);--clear-margin-left:var(--gr-spacing-xx-small);--clear-margin-right:calc(-1 * var(--gr-spacing-x-small))}.tag{display:flex;align-items:center;border-style:var(--border-style);border-width:var(--border-width);border-radius:var(--border-radius);white-space:nowrap;user-select:none;cursor:default;font-family:var(--gr-font-family);font-size:var(--font-size);font-weight:var(--gr-font-weight-normal);height:var(--height);line-height:var(--line-height);padding-top:var(--padding-top);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-bottom:var(--padding-bottom);background-color:var(--background-color);border-color:var(--border-color);color:var(--color)}.tag-clear{--color:var(--clear-color);--color-hover:var(--clear-color-hover);--padding-start:0;--padding-end:0;margin-left:var(--clear-margin-left);margin-right:var(--clear-margin-right);--height:1em}.tag-clear svg{font-size:0.7em}.tag-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-clear svg{width:1.1em;height:1.1em}:host(.tag-pill) .tag{border-radius:var(--height)}"}},[1,"gr-tag",{type:[513],size:[513],pill:[516],clearable:[516],truncate:[516],title:[513]}]);function ti(){if("undefined"==typeof customElements)return;["gr-tag","gr-button","gr-spinner"].forEach((e=>{switch(e){case"gr-tag":customElements.get(e)||customElements.define(e,ei);break;case"gr-button":customElements.get(e)||St();break;case"gr-spinner":customElements.get(e)||Et()}}))}ti(); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +const ri="undefined"!=typeof HTMLElement?HTMLElement:class{};let ii=0;const oi=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grChange=fe(this,"gr-change",7),this.grFocus=fe(this,"gr-focus",7),this.grBlur=fe(this,"gr-blur",7),this.inputId="select-"+ ++ii,this.labelId=`select-label-${ii}`,this.helpTextId=`select-help-text-${ii}`,this.invalidTextId=`select-invalid-text-${ii}`,this.inheritedAttributes={},this.handleBlur=()=>{this.isOpen||(this.hasFocus=!1,this.grBlur.emit())},this.handleFocus=()=>{this.hasFocus||(this.hasFocus=!0,this.grFocus.emit())},this.hasFocus=!1,this.hasHelpTextSlot=!1,this.hasInvalidTextSlot=!1,this.hasLabelSlot=!1,this.isOpen=!1,this.items=[],this.displayLabel="",this.displayTags=[],this.multiple=!1,this.maxTagsVisible=3,this.disabled=!1,this.name="",this.placeholder="",this.size="medium",this.hoist=!1,this.value="",this.pill=!1,this.label="",this.requiredIndicator=!1,this.helpText="",this.invalidText="",this.invalid=!1,this.clearable=!1}handleDisabledChange(){this.disabled&&this.isOpen&&this.dropdown.hide()}handleLabelChange(){this.handleSlotChange()}handleMultipleChange(){const e=this.getValueAsArray();this.value=this.multiple?e:e[0]||"",this.syncItemsFromValue()}handleValueChange(){this.syncItemsFromValue(),this.grChange.emit()}connectedCallback(){this.handleClearClick=this.handleClearClick.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleLabelClick=this.handleLabelClick.bind(this),this.handleMenuHide=this.handleMenuHide.bind(this),this.handleMenuShow=this.handleMenuShow.bind(this),this.handleMenuSelect=this.handleMenuSelect.bind(this),this.handleSlotChange=this.handleSlotChange.bind(this),this.handleTagInteraction=this.handleTagInteraction.bind(this),this.el.shadowRoot.addEventListener("slotchange",this.handleSlotChange)}componentWillLoad(){this.handleSlotChange(),this.inheritedAttributes=Ct(this.el,["aria-label"])}componentDidLoad(){this.resizeObserver=new ResizeObserver((()=>this.resizeMenu())),this.reportDuplicateItemValues(),requestAnimationFrame((()=>this.syncItemsFromValue()))}disconnectedCallback(){this.el.shadowRoot.removeEventListener("slotchange",this.handleSlotChange)}async setFocus(){this.hasFocus=!0,this.grFocus.emit(),this.dropdown.focusOnTrigger()}getItemLabel(e){return kt(e.shadowRoot.querySelector("slot:not([name])"))}getItems(){return[...this.el.querySelectorAll("gr-menu-item")]}getValueAsArray(){return Array.isArray(this.value)?this.value:[this.value]}handleClearClick(e){e.stopPropagation(),this.value=this.multiple?[]:"",this.syncItemsFromValue()}handleKeyDown(e){const t=e.target,r=this.getItems(),i=r[0],o=r[r.length-1];if("gr-tag"!==t.tagName.toLowerCase())if("Tab"!==e.key){if(["ArrowDown","ArrowUp"].includes(e.key)){if(e.preventDefault(),this.isOpen||this.dropdown.show(),"ArrowDown"===e.key&&i)return void i.setFocus();if("ArrowUp"===e.key&&o)return void o.setFocus()}this.isOpen||1!==e.key.length||(e.stopPropagation(),e.preventDefault(),this.dropdown.show(),this.menu.typeToSelect(e.key))}else this.isOpen&&this.dropdown.hide()}handleLabelClick(){this.box.focus()}handleMenuSelect(e){const t=e.detail.item;this.multiple?this.value=this.value.includes(t.value)?this.value.filter((e=>e!==t.value)):[...this.value,t.value]:this.value=t.value,this.syncItemsFromValue()}handleMenuShow(e){this.disabled?e.preventDefault():(this.resizeMenu(),this.resizeObserver.observe(this.el),this.isOpen=!0)}handleMenuHide(){this.resizeObserver.unobserve(this.el),this.isOpen=!1,this.box.focus()}handleSlotChange(){this.hasHelpTextSlot=_t(this.el,"help-text"),this.hasInvalidTextSlot=_t(this.el,"invalid-text"),this.hasLabelSlot=_t(this.el,"label"),this.syncItemsFromValue(),this.reportDuplicateItemValues()}handleTagInteraction(e){e.composedPath().find((e=>{if(e instanceof ri)return e.classList.contains("tag-clear")}))&&e.stopPropagation()}reportDuplicateItemValues(){const e=this.getItems().map((e=>e.value)).filter(((e,t,r)=>r.indexOf(e)!==t));if(e.length)throw new Error('Duplicate value found on in : "'+e.join('", "')+'"')}resizeMenu(){this.menu.style.width=`${this.box.clientWidth}px`}syncItemsFromValue(){const e=this.getItems(),t=this.getValueAsArray();if(e.map((e=>e.checked=t.includes(e.value))),this.multiple){const r=[];if(t.map((t=>e.map((e=>e.value===t?r.push(e):null)))),this.displayTags=r.map((e=>de("gr-tag",{type:"info",size:this.size,pill:this.pill,clearable:!0,onClick:this.handleTagInteraction,onKeyDown:this.handleTagInteraction,"onGr-clear":t=>{t.stopPropagation(),this.disabled||(e.checked=!1,this.syncValueFromItems())}},this.getItemLabel(e)))),this.maxTagsVisible>0&&this.displayTags.length>this.maxTagsVisible){const e=this.displayTags.length;this.displayLabel="",this.displayTags=this.displayTags.slice(0,this.maxTagsVisible),this.displayTags.push(de("gr-tag",{type:"info",size:this.size,pill:this.pill},"+",e-this.maxTagsVisible))}}else{const r=e.filter((e=>e.value===t[0]))[0];this.displayLabel=r?this.getItemLabel(r):"",this.displayTags=[]}}syncValueFromItems(){const e=this.getItems().filter((e=>e.checked)).map((e=>e.value));this.multiple?this.value=this.value.filter((t=>e.includes(t))):this.value=e.length>0?e[0]:""}render(){var e;const t=this.multiple?this.value.length>0:""!==this.value,r=this.inheritedAttributes["aria-label"]?{"aria-label":this.inheritedAttributes["aria-label"]}:{"aria-labelledby":this.labelId};return((e,t,r,i)=>{let o=e.querySelector("input.aux-input");o||(o=e.ownerDocument.createElement("input"),o.type="hidden",o.classList.add("aux-input"),e.appendChild(o)),o.disabled=i,o.name=t,o.value=r||""})(this.el,this.name,ni(this.value),this.disabled),de(xt,{inputId:this.inputId,label:this.label,labelId:this.labelId,hasLabelSlot:this.hasLabelSlot,helpTextId:this.helpTextId,helpText:this.helpText,hasHelpTextSlot:this.hasHelpTextSlot,invalidTextId:this.invalidTextId,invalidText:this.invalidText,invalid:this.invalid,hasInvalidTextSlot:this.hasInvalidTextSlot,size:this.size,onLabelClick:this.handleLabelClick,requiredIndicator:this.requiredIndicator},de("gr-dropdown",{ref:e=>this.dropdown=e,hoist:this.hoist,closeOnSelect:!this.multiple,containingElement:this.el,class:{select:!0,"select-open":this.isOpen,"select-empty":0===(null===(e=this.value)||void 0===e?void 0:e.length),"select-focused":this.hasFocus,"select-clearable":this.clearable,"select-disabled":this.disabled,"select-multiple":this.multiple,"select-has-tags":this.multiple&&t,"select-placeholder-visible":""===this.displayLabel,[`select-${this.size}`]:!0,"select-pill":this.pill,"select-invalid":this.invalid},"onGr-show":this.handleMenuShow,"onGr-hide":this.handleMenuHide},de("div",Object.assign({slot:"trigger",ref:e=>this.box=e,id:this.inputId,class:"select-box",role:"combobox"},r,{"aria-describedby":this.invalid?this.invalidTextId:this.helpTextId,"aria-haspopup":"true","aria-expanded":this.isOpen?"true":"false","aria-invalid":this.invalid?"true":"false","aria-required":this.requiredIndicator?"true":"false",tabIndex:this.disabled?-1:0,onBlur:this.handleBlur,onFocus:this.handleFocus,onKeyDown:this.handleKeyDown}),de("div",{class:"select-label"},this.displayTags.length?de("span",{class:"select-tags"},this.displayTags):this.displayLabel||this.placeholder),this.clearable&&t&&de("button",{class:"select-clear",type:"button",onClick:this.handleClearClick,"aria-label":"clear",tabindex:"-1"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Close Circle"),de("path",{d:"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z",fill:"none",stroke:"currentColor","stroke-miterlimit":"10","stroke-width":"32"}),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M320 320L192 192M192 320l128-128"}))),de("span",{class:"caret"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Chevron Down"),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"48",d:"M112 184l144 144 144-144"}))),de("input",{class:"select-hidden-select","aria-hidden":"true",value:t?"1":"",tabIndex:-1})),de("gr-menu",{ref:e=>this.menu=e,class:"select-menu","onGr-select":this.handleMenuSelect},de("slot",{onSlotchange:this.handleSlotChange}))))}get el(){return this}static get watchers(){return{disabled:["handleDisabledChange"],helpText:["handleLabelChange"],invalidText:["handleLabelChange"],label:["handleLabelChange"],multiple:["handleMultipleChange"],value:["handleValueChange"]}}static get style(){return".form-control .form-control-label{display:none}.form-control .form-control-help-text{display:none}.form-control .form-control-invalid-text{display:none}.form-control-has-label .form-control-label{display:flex;line-height:var(--gr-line-height-normal);color:var(--gr-form-element-label-color);margin-bottom:var(--gr-spacing-xxx-small)}.form-control-has-label.form-control-small .form-control-label{font-size:var(--gr-form-element-label-font-size-small)}.form-control-has-label.form-control-medium .form-control-label{font-size:var(--gr-form-element-label-font-size-medium)}.form-control-has-label.form-control-large .form-control-label{font-size:var(--gr-form-element-label-font-size-large)}.form-control-has-label .form-control-label .asterisk{margin-left:var(--gr-spacing-x-small);color:var(--gr-color-medium)}.form-control-has-label .form-control-label .asterisk svg{width:0.6em;height:0.6em;margin-bottom:var(--gr-spacing-xxx-small)}.form-control-has-help-text .form-control-help-text{display:block;line-height:var(--gr-line-height-normal);color:var(--gr-form-element-help-text-color);margin-top:var(--gr-spacing-xxx-small)}.form-control-has-help-text.form-control-small .form-control-help-text{font-size:var(--gr-form-element-help-text-font-size-small);min-height:1.625rem}.form-control-has-help-text.form-control-medium .form-control-help-text{font-size:var(--gr-form-element-help-text-font-size-medium);min-height:1.875rem}.form-control-has-help-text.form-control-large .form-control-help-text{font-size:var(--gr-form-element-help-text-font-size-large);min-height:2.125rem}.form-control-has-invalid-text .form-control-invalid-text{display:flex;margin-left:-2px;line-height:var(--gr-line-height-normal);color:var(--gr-form-element-invalid-text-color);margin-top:var(--gr-spacing-xxx-small)}.form-control-has-invalid-text .form-control-invalid-text .icon{margin-top:var(--gr-spacing-xxx-small);margin-right:var(--gr-spacing-xx-small)}.form-control-has-invalid-text .form-control-invalid-text .icon svg{width:1.4em;height:1.4em}.form-control-has-invalid-text.form-control-small .form-control-invalid-text{font-size:var(--gr-form-element-invalid-text-font-size-small);min-height:1.625rem}.form-control-has-invalid-text.form-control-medium .form-control-invalid-text{font-size:var(--gr-form-element-invalid-text-font-size-medium);min-height:1.875rem}.form-control-has-invalid-text.form-control-large .form-control-invalid-text{font-size:var(--gr-form-element-invalid-text-font-size-large);min-height:2.125rem}.gr-scroll-lock{overflow:hidden !important}:host{--font-size:var(--gr-form-element-font-size-medium);--font-weight:var(--gr-font-weight-normal);--background-color:var(--gr-color-white);--background-color-hover:var(--gr-color-white);--background-color-focus:var(--gr-color-white);--background-color-invalid:var(--gr-color-white);--background-color-invalid-hover:var(--gr-color-white);--border-radius:var(--gr-form-element-border-radius-small);--border-color:var(--gr-color-light-shade);--border-color-hover:var(--gr-color-medium);--border-color-focus:var(--gr-color-primary);--border-color-invalid:var(--gr-color-danger);--border-color-invalid-hover:var(--gr-color-danger-shade);--color:var(--gr-color-dark-tint);--placeholder-color:var(--gr-color-medium-tint);--min-height:var(--gr-form-element-height-medium);--label-margin-start:var(--gr-spacing-medium);--label-margin-end:var(--gr-spacing-medium);--clear-icon-margin-end:var(--gr-spacing-medium);--caret-margin-end:var(--gr-spacing-medium);--tags-padding-top:3px;--tags-padding-bottom:3px;--tags-margin-end:var(--gr-spacing-xx-small);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33);display:block;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}.select-small{--font-size:var(--gr-form-element-font-size-small);--min-height:var(--gr-form-element-height-small);--label-margin-start:var(--gr-spacing-small);--label-margin-end:var(--gr-spacing-small);--clear-icon-margin-end:var(--gr-spacing-small);--caret-margin-end:var(--gr-spacing-small);--tags-padding-top:2px;--tags-padding-bottom:2px}.select-large{--font-size:var(--gr-form-element-font-size-large);--min-height:var(--gr-form-element-height-large);--label-margin-start:var(--gr-spacing-large);--label-margin-end:var(--gr-spacing-large);--clear-icon-margin-end:var(--gr-spacing-large);--caret-margin-end:var(--gr-spacing-large);--tags-padding-top:4px;--tags-padding-bottom:4px}.select{display:block}.select-box{display:inline-flex;align-items:center;justify-content:start;position:relative;width:100%;font-family:var(--gr-font-family);font-size:var(--font-size);font-weight:var(--font-weight);letter-spacing:normal;background-color:var(--background-color);border:solid 1px var(--border-color);border-radius:var(--border-radius);min-height:var(--min-height);color:var(--color);vertical-align:middle;overflow:hidden;transition:150ms color, 150ms border, 150ms box-shadow;cursor:pointer}.select.select-invalid:not(.select-disabled) .select-box{background-color:var(--background-color-invalid);border-color:var(--border-color-invalid)}.select.select-invalid:not(.select-disabled):not(.select-focused) .select-box:hover{background-color:var(--background-color-invalid-hover);border-color:var(--border-color-invalid-hover)}.select.select-invalid:not(.select-disabled) .select-box{background-color:var(--background-color-invalid);border-color:var(--border-color-invalid)}.select:not(.select-disabled) .select-box:hover{background-color:var(--background-color-hover);border-color:var(--border-color-hover)}.select.select-focused:not(.select-disabled) .select-box{outline:none;box-shadow:var(--focus-ring);border-color:var(--border-color-focus);background-color:var(--background-color-focus)}.select-disabled .select-box{opacity:0.5;cursor:not-allowed;outline:none}.select-disabled .select-tags,.select-disabled .select-clear{pointer-events:none}.select-label{flex:1 1 auto;display:flex;align-items:center;user-select:none;margin-top:0;margin-left:var(--label-margin-start);margin-right:var(--label-margin-end);margin-bottom:0;scrollbar-width:none;-ms-overflow-style:none;overflow-x:auto;overflow-y:hidden;white-space:nowrap}.select-label::-webkit-scrollbar{width:0;height:0}.select-has-tags .select-label{margin-left:0}.select-clear{display:inline-flex;align-items:center;font-size:inherit;color:var(--gr-color-medium);border:none;background:none;padding:0;transition:150ms color;cursor:pointer;margin-right:var(--clear-icon-margin-end)}.select-clear:hover{color:var(--gr-color-dark)}.select-clear:focus{outline:none}.select-clear svg{width:1.2em;height:1.2em;font-size:var(--font-size)}.caret{flex:0 0 auto;display:inline-flex;transition:250ms transform ease;margin-right:var(--caret-margin-end)}.caret svg{width:1em;height:1em;font-size:var(--font-size)}.select-open .caret{transform:rotate(-180deg)}.select-placeholder-visible .select-label{color:var(--placeholder-color)}.select-tags{display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:left;margin-left:var(--gr-spacing-xx-small);padding-bottom:var(--tags-padding-bottom)}.select-tags gr-tag{padding-top:var(--tags-padding-top)}.select-tags gr-tag:not(:last-of-type){margin-right:var(--tags-margin-end)}.select-hidden-select{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px;position:absolute;top:0;left:0;width:100%;height:100%}.select-pill .select-box{border-radius:var(--min-height)}"}},[1,"gr-select",{multiple:[4],maxTagsVisible:[2,"max-tags-visible"],disabled:[4],name:[1],placeholder:[1],size:[1],hoist:[4],value:[1025],pill:[4],label:[1],requiredIndicator:[4,"required-indicator"],helpText:[1,"help-text"],invalidText:[1,"invalid-text"],invalid:[516],clearable:[4],hasFocus:[32],hasHelpTextSlot:[32],hasInvalidTextSlot:[32],hasLabelSlot:[32],isOpen:[32],items:[32],displayLabel:[32],displayTags:[32],setFocus:[64]}]),ni=e=>{if(null!=e)return Array.isArray(e)?e.join(","):e.toString()};!function(){if("undefined"==typeof customElements)return;["gr-select","gr-button","gr-dropdown","gr-menu","gr-spinner","gr-tag"].forEach((e=>{switch(e){case"gr-select":customElements.get(e)||customElements.define(e,oi);break;case"gr-button":customElements.get(e)||St();break;case"gr-dropdown":customElements.get(e)||Xr();break;case"gr-menu":customElements.get(e)||Jr();break;case"gr-spinner":customElements.get(e)||Et();break;case"gr-tag":customElements.get(e)||ti()}}))}();const ai=oi,si=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.hasFocus=!1,this.checked=!1,this.value="",this.disabled=!1}connectedCallback(){this.handleBlur=this.handleBlur.bind(this),this.handleFocus=this.handleFocus.bind(this),this.handleMouseEnter=this.handleMouseEnter.bind(this),this.handleMouseLeave=this.handleMouseLeave.bind(this)}async setFocus(e){this.el.focus(e)}async removeFocus(){this.el.blur()}handleBlur(){this.hasFocus=!1}handleFocus(){this.hasFocus=!0}handleMouseEnter(){this.setFocus()}handleMouseLeave(){this.removeFocus()}render(){return de(ge,{class:{"menu-item-checked":this.checked,"menu-item-disabled":this.disabled,"menu-item-focused":this.hasFocus},role:"menuitem","aria-disabled":this.disabled?"true":"false","aria-checked":this.checked?"true":"false",tabIndex:this.disabled?null:0,onFocus:this.handleFocus,onBlur:this.handleBlur,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave},de("span",{class:"checkmark"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Checkmark"),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M416 128L192 384l-96-96"}))),de("span",{class:"start"},de("slot",{name:"start"})),de("span",{class:"label"},de("slot",null)),de("span",{class:"end"},de("slot",{name:"end"})))}get el(){return this}static get style(){return".gr-scroll-lock{overflow:hidden !important}:host{--line-height:var(--gr-line-height-normal);--background-color:transparent;--background-color-focused:var(--gr-color-primary);--color:var(--gr-color-dark);--color-focused:var(--gr-color-primary-contrast);--color-disabled:var(--gr-color-medium);--padding-top:var(--gr-spacing-xx-small);--padding-start:var(--gr-spacing-x-large);--padding-end:var(--gr-spacing-x-large);--padding-bottom:var(--gr-spacing-xx-small);--transition:background-color 150ms linear, color 150ms linear;position:relative;display:flex;align-items:stretch;font-family:var(--gr-font-family);font-size:var(--gr-font-size-medium);font-weight:var(--gr-font-weight-normal);line-height:var(--line-height);letter-spacing:var(--gr-letter-spacing-normal);text-align:left;background-color:var(--background-color);color:var(--color);padding-top:var(--padding-top);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-bottom:var(--padding-bottom);transition:var(--transition);user-select:none;white-space:nowrap;cursor:pointer;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host(.menu-item-focused:not(.menu-item-disabled)){outline:none;background-color:var(--background-color-focused);color:var(--color-focused)}:host(.menu-item-disabled){outline:none;color:var(--color-disabled);cursor:not-allowed}.checkmark{display:flex;position:absolute;left:0.5em;top:calc(50% - 0.5em);visibility:hidden;align-items:center;font-size:inherit}.checkmark svg{display:inline-block;width:1.1em;height:1.1em;contain:strict;fill:currentcolor;box-sizing:content-box !important}:host(.menu-item-checked) .checkmark{visibility:visible}.label{flex:1 1 auto}.start{flex:0 0 auto;display:flex;align-items:center}.start ::slotted(:last-child){margin-right:0.5em}.end{flex:0 0 auto;display:flex;align-items:center}.end ::slotted(:first-child){margin-left:0.5em}"}},[1,"gr-menu-item",{checked:[516],value:[513],disabled:[516],hasFocus:[32],setFocus:[64],removeFocus:[64]}]); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */!function(){if("undefined"==typeof customElements)return;["gr-menu-item"].forEach((e=>{if("gr-menu-item"===e)customElements.get(e)||customElements.define(e,si)}))}();const li={"gr-select":ai,"gr-menu-item":si};class ci extends(P(_)){constructor(){super(...arguments),this.value=null,this.multiple=!1,this.clearable=!1,this._refSelect=y()}reset(){this.value=null}_valueChangedHandler(e){const t=this._refSelect.value?.value;if(void 0!==t&&!l(this.value,t)){const e=null===this.value;this.value=t,e||w(this,"select:change",t)}}willUpdate(e){e.has("initialValue")&&this.initialValue&&!this.value&&(this.value=this.initialValue)}render(){return $` + ${this.options?.map((e=>$`${e.label}`))} + `}static get styles(){return k(':root, :host {\n --gr-color-primary: #1079b2;\n --gr-color-primary-rgb: 16, 121, 178;\n --gr-color-primary-contrast: #ffffff;\n --gr-color-primary-contrast-rgb: 255, 255, 255;\n --gr-color-primary-shade: #0d6696;\n --gr-color-primary-tint: #1499e1;\n --gr-color-secondary: #051f2c;\n --gr-color-secondary-rgb: 5, 31, 44;\n --gr-color-secondary-contrast: #ffffff;\n --gr-color-secondary-contrast-rgb: 255, 255, 255;\n --gr-color-secondary-shade: #000000;\n --gr-color-secondary-tint: #0a415c;\n --gr-color-tertiary: #0c4a6e;\n --gr-color-tertiary-rgb: 12, 74, 110;\n --gr-color-tertiary-contrast: #ffffff;\n --gr-color-tertiary-contrast-rgb: 255, 255, 255;\n --gr-color-tertiary-shade: #083249;\n --gr-color-tertiary-tint: #106393;\n --gr-color-success: #0fbe78;\n --gr-color-success-rgb: 15, 190, 120;\n --gr-color-success-contrast: #000000;\n --gr-color-success-contrast-rgb: 0, 0, 0;\n --gr-color-success-shade: #057f4e;\n --gr-color-success-tint: #12e28f;\n --gr-color-warning: #fbbc4e;\n --gr-color-warning-rgb: 251, 188, 78;\n --gr-color-warning-contrast: #051f2c;\n --gr-color-warning-contrast-rgb: 5, 31, 44;\n --gr-color-warning-shade: #9e6400;\n --gr-color-warning-tint: #fdd187;\n --gr-color-danger: #e60017;\n --gr-color-danger-rgb: 230, 0, 23;\n --gr-color-danger-contrast: #ffffff;\n --gr-color-danger-contrast-rgb: 255, 255, 255;\n --gr-color-danger-shade: #cc0014;\n --gr-color-danger-tint: #ff1f35;\n --gr-color-light: #f4f5f8;\n --gr-color-light-rgb: 244, 245, 248;\n --gr-color-light-contrast: #051f2c;\n --gr-color-light-contrast-rgb: 5, 31, 44;\n --gr-color-light-shade: #d7d8da;\n --gr-color-light-tint: #f9fafb;\n --gr-color-medium: #5e6c78;\n --gr-color-medium-rgb: 94, 108, 120;\n --gr-color-medium-contrast: #ffffff;\n --gr-color-medium-contrast-rgb: 255, 255, 255;\n --gr-color-medium-shade: #48535b;\n --gr-color-medium-tint: #81909c;\n --gr-color-dark: #02131b;\n --gr-color-dark-rgb: 2, 19, 27;\n --gr-color-dark-contrast: #ffffff;\n --gr-color-dark-contrast-rgb: 255, 255, 255;\n --gr-color-dark-shade: #000000;\n --gr-color-dark-tint: #222428;\n --gr-color-white: #ffffff;\n --gr-color-black: #000000;\n --gr-border-radius-small: 0.125rem;\n --gr-border-radius-medium: 0.25rem;\n --gr-border-radius-large: 0.5rem;\n --gr-border-radius-x-large: 1rem;\n --gr-border-width-small: 0.063rem;\n --gr-border-width-medium: 0.125rem;\n --gr-border-width-large: 0.188rem;\n --gr-shadow-x-small: 0 1px 0 #0d131e0d;\n --gr-shadow-small: 0 1px 2px #0d131e1a;\n --gr-shadow-medium: 0 2px 4px #0d131e1a;\n --gr-shadow-large: 0 2px 8px #0d131e1a;\n --gr-shadow-x-large: 0 4px 16px #0d131e1a;\n --gr-spacing-xxx-small: 0.125rem;\n --gr-spacing-xx-small: 0.25rem;\n --gr-spacing-x-small: 0.5rem;\n --gr-spacing-small: 0.75rem;\n --gr-spacing-medium: 1rem;\n --gr-spacing-large: 1.25rem;\n --gr-spacing-x-large: 1.75rem;\n --gr-spacing-xx-large: 2.25rem;\n --gr-spacing-xxx-large: 3rem;\n --gr-spacing-xxxx-large: 4.5rem;\n --gr-font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial,\n sans-serif;\n --gr-letter-spacing-dense: -0.015em;\n --gr-letter-spacing-normal: normal;\n --gr-letter-spacing-loose: 0.075em;\n --gr-line-height-dense: 1.4;\n --gr-line-height-normal: 1.8;\n --gr-line-height-loose: 2.2;\n --gr-font-size-xx-small: 0.625rem;\n --gr-font-size-x-small: 0.75rem;\n --gr-font-size-small: 0.875rem;\n --gr-font-size-medium: 1rem;\n --gr-font-size-large: 1.25rem;\n --gr-font-size-x-large: 1.5rem;\n --gr-font-size-xx-large: 2.25rem;\n --gr-font-size-xxx-large: 3rem;\n --gr-font-size-xxxx-large: 4.5rem;\n --gr-font-weight-thin: 100;\n --gr-font-weight-extra-light: 200;\n --gr-font-weight-light: 300;\n --gr-font-weight-normal: 400;\n --gr-font-weight-medium: 500;\n --gr-font-weight-semi-bold: 600;\n --gr-font-weight-bold: 700;\n --gr-font-weight-extra-bold: 800;\n --gr-font-weight-black: 900;\n --gr-form-element-font-size-x-small: var(--gr-font-size-x-small);\n --gr-form-element-font-size-small: var(--gr-font-size-small);\n --gr-form-element-font-size-medium: var(--gr-font-size-medium);\n --gr-form-element-font-size-large: var(--gr-font-size-large);\n --gr-form-element-height-small: 2.188rem;\n --gr-form-element-height-medium: 3.125rem;\n --gr-form-element-height-large: 4.063rem;\n --gr-form-element-border-radius-small: var(--gr-border-radius-medium);\n --gr-form-element-border-radius-medium: var(--gr-border-radius-medium);\n --gr-form-element-border-radius-large: var(--gr-border-radius-medium);\n --gr-focus-ring-width: 2px;\n --gr-form-element-label-font-size-small: var(--gr-font-size-small);\n --gr-form-element-label-font-size-medium: var(--gr-font-size-medium);\n --gr-form-element-label-font-size-large: var(--gr-font-size-large);\n --gr-form-element-label-color: inherit;\n --gr-form-element-help-text-font-size-small: var(--gr-font-size-x-small);\n --gr-form-element-help-text-font-size-medium: var(--gr-font-size-small);\n --gr-form-element-help-text-font-size-large: var(--gr-font-size-medium);\n --gr-form-element-help-text-color: var(--gr-color-medium);\n --gr-form-element-invalid-text-font-size-small: var(--gr-font-size-x-small);\n --gr-form-element-invalid-text-font-size-medium: var(--gr-font-size-small);\n --gr-form-element-invalid-text-font-size-large: var(--gr-font-size-medium);\n --gr-form-element-invalid-text-color: var(--gr-color-danger);\n --gr-toggle-size: 1rem;\n --gr-panel-border-color: var(--gr-color-light-shade);\n --gr-z-index-dropdown: 900;\n}\n\n')}}ci.elementDefinitions={...li},f([v({attribute:!1,hasChanged:b})],ci.prototype,"options",void 0),f([v({attribute:!1,hasChanged:b})],ci.prototype,"value",void 0),f([v({attribute:!1,hasChanged:b})],ci.prototype,"initialValue",void 0),f([v({attribute:!0})],ci.prototype,"label",void 0),f([v({attribute:!0})],ci.prototype,"placeholder",void 0),f([v({attribute:!0,type:Boolean})],ci.prototype,"multiple",void 0),f([v({attribute:!0,type:Boolean})],ci.prototype,"clearable",void 0);let di=class extends(P(_)){constructor(){super(...arguments),this._mediaFilterController=new U(this),this._refMediaType=y(),this._refCamera=y(),this._refWhen=y(),this._refWhenFrom=y(),this._refWhenTo=y(),this._refWhat=y(),this._refWhere=y(),this._refFavorite=y(),this._refTags=y()}willUpdate(e){e.has("viewManagerEpoch")&&this._mediaFilterController.setViewManager(this.viewManagerEpoch?.manager??null),e.has("cameraManager")&&this.cameraManager&&(this._mediaFilterController.computeCameraOptions(this.cameraManager),this._mediaFilterController.computeMetadataOptions(this.cameraManager)),!e.get("viewManager")&&this.viewManagerEpoch&&this.cameraManager&&this._mediaFilterController.computeInitialDefaultsFromView(this.cameraManager)}render(){const e=async()=>{this.cameraManager&&this.viewManagerEpoch&&this.cardWideConfig&&await this._mediaFilterController.valueChangeHandler(this.cameraManager,this.cardWideConfig,{camera:this._refCamera.value?.value??void 0,mediaType:this._refMediaType.value?.value??void 0,when:{selected:this._refWhen.value?.value??void 0,from:this._refWhenFrom.value?.value,to:this._refWhenTo.value?.value},favorite:this._refFavorite.value?.value??void 0,where:this._refWhere.value?.value??void 0,what:this._refWhat.value?.value??void 0,tags:this._refTags.value?.value??void 0})},t=async t=>{"custom"===t&&this._refWhen.value?this._refWhenFrom.value?.value||this._refWhenTo.value?.value?this._refWhen.value.value=B.Custom:this._refWhen.value.reset():this._refWhen.value?.value!==B.Custom&&(this._refWhenFrom.value?.reset(),this._refWhenTo.value?.reset()),await e()};if(!this.cameraManager||!this.viewManagerEpoch)return;const r=this._mediaFilterController.getControlsToShow(this.cameraManager),o=this._mediaFilterController.getDefaults(),n=this._mediaFilterController.getWhatOptions(),a=this._mediaFilterController.getTagsOptions(),s=this._mediaFilterController.getWhereOptions();return $` e()} + > + +
    + t("selected")} + > + + t("custom")} + > + + t("custom")} + > + +
    + e()} + > + + ${r.events&&n.length?$` e()} + > + `:""} + ${r.events&&a.length?$` e()} + > + `:""} + ${r.events&&s.length?$` e()} + > + `:""} + ${r.favorites?$` + e()} + > + + `:""}`}static get styles(){return k(":host {\n display: flex;\n flex-direction: column;\n overflow: auto;\n scrollbar-width: none;\n -ms-overflow-style: none;\n height: 100%;\n width: 300px;\n margin: 5px;\n}\n\n/* Hide scrollbar for Chrome, Safari and Opera */\n:host::-webkit-scrollbar {\n display: none;\n}\n\nfrigate-card-select {\n padding: 5px;\n}\n\ndiv.when {\n display: inline-flex;\n align-items: flex-end;\n}\n\ndiv.when frigate-card-select {\n flex: 1;\n}\n\ndiv.when frigate-card-date-picker {\n padding-bottom: 5px;\n transition: width 0.5s ease-in-out;\n}\n\ndiv.when frigate-card-date-picker {\n color: var(--secondary-color);\n}\n\ndiv.when frigate-card-date-picker.selected {\n color: var(--primary-color);\n}\n\ndiv.when frigate-card-date-picker.hidden {\n width: 0px;\n}")}};di.elementDefinitions={"frigate-card-select":ci,"frigate-card-date-picker":R},f([v({attribute:!1})],di.prototype,"hass",void 0),f([v({attribute:!1})],di.prototype,"cameraManager",void 0),f([v({attribute:!1})],di.prototype,"viewManagerEpoch",void 0),f([v({attribute:!1})],di.prototype,"cardWideConfig",void 0),di=f([C("frigate-card-media-filter")],di);const hi={closed:"mdi:filter-cog-outline",open:"mdi:filter-cog"};let gi=class extends _{render(){const e=this.viewManagerEpoch?.manager.getView();if(this.hass&&e?.isGalleryView()&&this.cameraManager&&this.cardWideConfig)return $` + + ${this.galleryConfig&&"none"!==this.galleryConfig.controls.filter.mode?$` + `:""} + + + + `}static get styles(){return k(":host {\n width: 100%;\n height: 100%;\n display: block;\n}\n\nfrigate-card-surround-basic {\n max-height: 110dvh;\n}")}};f([v({attribute:!1})],gi.prototype,"hass",void 0),f([v({attribute:!1})],gi.prototype,"viewManagerEpoch",void 0),f([v({attribute:!1})],gi.prototype,"galleryConfig",void 0),f([v({attribute:!1})],gi.prototype,"cameraManager",void 0),f([v({attribute:!1})],gi.prototype,"cardWideConfig",void 0),gi=f([C("frigate-card-gallery")],gi);let ui=class extends _{constructor(){super(),this._refLoaderBottom=y(),this._refSelected=y(),this._showLoaderBottom=!0,this._showLoaderTop=!1,this._boundWheelHandler=this._wheelHandler.bind(this),this._boundTouchStartHandler=this._touchStartHandler.bind(this),this._boundTouchEndHandler=this._touchEndHandler.bind(this),this._throttleExtendGalleryLater=O(this._extendGallery.bind(this),500,{leading:!0,trailing:!1}),this._touchScrollYPosition=null,this._resizeObserver=new ResizeObserver(this._resizeHandler.bind(this)),this._intersectionObserver=new IntersectionObserver(this._intersectionHandler.bind(this))}_touchStartHandler(e){1===e.touches.length?this._touchScrollYPosition=e.touches[0].screenY:this._touchScrollYPosition=null}async _touchEndHandler(e){!this.scrollTop&&1===e.changedTouches.length&&this._touchScrollYPosition&&e.changedTouches[0].screenY>this._touchScrollYPosition&&await this._extendLater(),this._touchScrollYPosition=null}async _wheelHandler(e){!this.scrollTop&&e.deltaY<0&&await this._extendLater()}async _extendLater(){const e=new Date;this._showLoaderTop=!0,await this._throttleExtendGalleryLater("later",!1);const t=(new Date).getTime()-e.getTime();t<500&&await S(.5-t/1e3),this._showLoaderTop=!1}connectedCallback(){super.connectedCallback(),this._resizeObserver.observe(this),this.addEventListener("wheel",this._boundWheelHandler,{passive:!0}),this.addEventListener("touchstart",this._boundTouchStartHandler,{passive:!0}),this.addEventListener("touchend",this._boundTouchEndHandler),this.requestUpdate()}disconnectedCallback(){this.removeEventListener("wheel",this._boundWheelHandler),this.removeEventListener("touchstart",this._boundTouchStartHandler),this.removeEventListener("touchend",this._boundTouchEndHandler),this._resizeObserver.disconnect(),this._intersectionObserver.disconnect(),super.disconnectedCallback()}_setColumnCount(){const e=this.galleryConfig?.controls.thumbnails.size??M.media_gallery.controls.thumbnails.size,t=this.galleryConfig?.controls.thumbnails.show_details?Math.max(1,Math.floor(this.clientWidth/z)):Math.max(1,Math.ceil(this.clientWidth/e));this.style.setProperty("--frigate-card-gallery-columns",String(t))}_resizeHandler(){this._setColumnCount()}async _intersectionHandler(e){e.every((e=>!e.isIntersecting))||(this._showLoaderBottom=!1,await this._extendGallery("earlier"))}async _extendGallery(e,t=!0){const r=this.viewManagerEpoch?.manager.getView();if(!this.cameraManager||!this.hass||!r)return;const i=r.query,n=i?.getQueries()??null,s=r.queryResults?.getResults();if(!i||!n||!s)return;let l;try{l=await this.cameraManager.extendMediaQueries(n,s,e,{useCache:t})}catch(e){return void d(e)}if(l){const e=c.areEventQueries(i)?new o(l.queries):c.areRecordingQueries(i)?new a(l.queries):null;e&&this.viewManagerEpoch?.manager.setViewByParameters({baseView:r,params:{query:e,queryResults:new L({results:l.results}).selectResultIfFound((e=>e===r.queryResults?.getSelectedResult()))}})}}willUpdate(e){if(e.has("galleryConfig")&&(this.galleryConfig?.controls.thumbnails.show_details?this.setAttribute("details",""):this.removeAttribute("details"),this._setColumnCount(),this.galleryConfig?.controls.thumbnails.size&&this.style.setProperty("--frigate-card-thumbnail-size",`${this.galleryConfig.controls.thumbnails.size}px`)),e.has("viewManagerEpoch")){this._showLoaderBottom=!0;const e=this.viewManagerEpoch?.manager.getView(),t=this.viewManagerEpoch?.oldView;this._media&&t?.queryResults?.getResults()===e?.queryResults?.getResults()||(this._media=[...e?.queryResults?.getResults()??[]].reverse())}}render(){if(!this._media||!this.hass)return $``;const e=this.viewManagerEpoch?.manager.getView();if(!e?.queryResults||0===e.queryResults.getResultsCount()){const t=!!e?.context?.loading?.query;return D({type:"info",message:i(t?"error.awaiting_media":"common.no_media"),icon:"mdi:multimedia",dotdotdot:t})}const t=e.queryResults.getSelectedResult();return $`
    + ${this._showLoaderTop?$`${A({cardWideConfig:this.cardWideConfig,classes:{top:!0},size:"small"})}`:""} + ${this._media.map(((r,i)=>$`{this._media&&this.viewManagerEpoch?.manager.setViewByParameters({params:{view:"media",queryResults:e.queryResults?.clone().selectIndex(this._media.length-i-1)}}),F(t)}} + > + `))} + ${this._showLoaderBottom?$`${A({cardWideConfig:this.cardWideConfig,componentRef:this._refLoaderBottom})}`:""} +
    `}updated(e){this._refLoaderBottom.value&&(this._intersectionObserver.disconnect(),this._intersectionObserver.observe(this._refLoaderBottom.value)),this.updateComplete.then((()=>{e.has("viewManagerEpoch")&&!e.get("viewManagerEpoch")&&this._refSelected.value&&this._refSelected.value.scrollIntoView({block:"center"})}))}static get styles(){return k(":host {\n width: 100%;\n height: 100%;\n display: block;\n overflow: auto;\n -ms-overflow-style: none;\n scrollbar-width: none;\n --frigate-card-gallery-gap: 3px;\n --frigate-card-gallery-columns: 4;\n}\n\n.grid {\n display: grid;\n grid-template-columns: repeat(var(--frigate-card-gallery-columns), minmax(0, 1fr));\n grid-auto-rows: min-content;\n gap: var(--frigate-card-gallery-gap);\n}\n\n:host::-webkit-scrollbar {\n display: none;\n}\n\nfrigate-card-thumbnail {\n height: 100%;\n max-height: var(--frigate-card-thumbnail-size);\n}\n\nfrigate-card-thumbnail:not([details]) {\n width: 100%;\n}\n\nfrigate-card-thumbnail.selected {\n border: 4px solid var(--accent-color);\n border-radius: calc(var(--frigate-card-css-border-radius, var(--ha-card-border-radius, 4px)) + 4px);\n}\n\nfrigate-card-progress-indicator.top {\n grid-column: 1/-1;\n}")}};f([v({attribute:!1})],ui.prototype,"hass",void 0),f([v({attribute:!1})],ui.prototype,"viewManagerEpoch",void 0),f([v({attribute:!1})],ui.prototype,"galleryConfig",void 0),f([v({attribute:!1})],ui.prototype,"cameraManager",void 0),f([v({attribute:!1})],ui.prototype,"cardWideConfig",void 0),f([E()],ui.prototype,"_showLoaderBottom",void 0),f([E()],ui.prototype,"_showLoaderTop",void 0),ui=f([C("frigate-card-gallery-core")],ui);export{gi as FrigateCardGallery,ui as FrigateCardGalleryCore}; diff --git a/config/www/community/frigate-hass-card/gallery-1de615c4.js.gz b/config/www/community/frigate-hass-card/gallery-1de615c4.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..599edb92acd31c18bf8927ecb84f2bde0db201ec GIT binary patch literal 30833 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.registry.define(t,r))));const n=this.renderOptions.creationScope=this.attachShadow({...o,customElements:e.registry});return r(n,this.constructor.elementStyles),n}}}!function(e){e.Favorite="favorite",e.NotFavorite="not-favorite"}(j||(j={})),function(e){e.Today="today",e.Yesterday="yesterday",e.PastWeek="past-week",e.PastMonth="past-month",e.Custom="custom"}(B||(B={})),function(e){e.Clips="clips",e.Snapshots="snapshots",e.Recordings="recordings"}(q||(q={}));class U{constructor(e){this._cameraOptions=[],this._whenOptions=[],this._metaDataWhenOptions=[],this._whatOptions=[],this._whereOptions=[],this._tagsOptions=[],this._defaults=null,this._viewManager=null,this._host=e,this._favoriteOptions=[{value:j.Favorite,label:i("media_filter.favorite")},{value:j.NotFavorite,label:i("media_filter.not_favorite")}],this._mediaTypeOptions=[{value:q.Clips,label:i("media_filter.media_types.clips")},{value:q.Snapshots,label:i("media_filter.media_types.snapshots")},{value:q.Recordings,label:i("media_filter.media_types.recordings")}],this._staticWhenOptions=[{value:B.Today,label:i("media_filter.whens.today")},{value:B.Yesterday,label:i("media_filter.whens.yesterday")},{value:B.PastWeek,label:i("media_filter.whens.past_week")},{value:B.PastMonth,label:i("media_filter.whens.past_month")},{value:B.Custom,label:i("media_filter.whens.custom")}],this._computeWhenOptions()}getMediaTypeOptions(){return this._mediaTypeOptions}getCameraOptions(){return this._cameraOptions}getWhenOptions(){return this._whenOptions}getWhatOptions(){return this._whatOptions}getWhereOptions(){return this._whereOptions}getTagsOptions(){return this._tagsOptions}getFavoriteOptions(){return this._favoriteOptions}getDefaults(){return this._defaults}setViewManager(e){this._viewManager=e}async valueChangeHandler(e,t,r,i){const s=e=>e&&Array.isArray(e)&&e.length&&!e.includes("")?new Set([...e]):null,l=s(r.camera)??this._getAllCameraIDs(e);if(!l.size||!r.mediaType)return;const c=this._getWhen(r.when),d=r.favorite?r.favorite===j.Favorite:null,h=t.performance?.features.media_chunk_size;if(r.mediaType===q.Clips||r.mediaType===q.Snapshots){const e=s(r.where),t=s(r.what),i=s(r.tags),a=new o([{type:n.Event,cameraIDs:l,...i&&{tags:i},...t&&{what:t},...e&&{where:e},...null!==d&&{favorite:d},...c&&{...c.start&&{start:c.start},...c.end&&{end:c.end}},...h&&{limit:h},...r.mediaType===q.Clips&&{hasClip:!0},...r.mediaType===q.Snapshots&&{hasSnapshot:!0}}]);this._viewManager?.setViewByParametersWithExistingQuery({params:{query:a,...1===l.size&&{camera:[...l][0]},view:r.mediaType===q.Clips?"clips":"snapshots"}})}else{const e=new a([{type:n.Recording,cameraIDs:l,...h&&{limit:h},...c&&{...c.start&&{start:c.start},...c.end&&{end:c.end}},...null!==d&&{favorite:d}}]);this._viewManager?.setViewByParametersWithExistingQuery({params:{query:e,...1===l.size&&{camera:[...l][0]},view:"recordings"}})}this._host.requestUpdate()}_getAllCameraIDs(e){return e.getStore().getCameraIDsWithCapability({anyCapabilities:["clips","snapshots","recordings"]})}computeInitialDefaultsFromView(e){const t=this._viewManager?.getView(),r=t?.query?.getQueries(),i=this._getAllCameraIDs(e);if(!t||!r||!i.size)return;let o,n,a,d,h,g;1!==s(r.map((e=>e.cameraIDs)),l).length||l(r[0].cameraIDs,i)||(n=[...r[0].cameraIDs]); +/* istanbul ignore else: the else path cannot be reached -- @preserve */ +if(1===s(r.map((e=>e.favorite)),l).length&&void 0!==r[0].favorite&&(h=r[0].favorite?j.Favorite:j.NotFavorite),c.areEventQueries(t.query)){const e=t.query.getQueries(); +/* istanbul ignore if: the if path cannot be reached -- @preserve */if(!e)return;const r=s(e.map((e=>e.hasClip)),l),i=s(e.map((e=>e.hasSnapshot)),l);1===r.length&&1===i.length&&(o=r[0]?q.Clips:i[0]?q.Snapshots:void 0);1===s(e.map((e=>e.what)),l).length&&e[0].what?.size&&(a=[...e[0].what]);1===s(e.map((e=>e.where)),l).length&&e[0].where?.size&&(d=[...e[0].where]);1===s(e.map((e=>e.tags)),l).length&&e[0].tags?.size&&(g=[...e[0].tags])}else c.areRecordingQueries(t.query)&&(o=q.Recordings);this._defaults={...o&&{mediaType:o},...n&&{cameraIDs:n},...a&&{what:a},...d&&{where:d},...void 0!==h&&{favorite:h},...g&&{tags:g}}}computeCameraOptions(e){this._cameraOptions=[...this._getAllCameraIDs(e)].map((t=>({value:t,label:e.getCameraMetadata(t)?.title??t})))}async computeMetadataOptions(e){let t=null;try{t=await e.getMediaMetadata()}catch(e){d(e)}if(t){if(t.what&&(this._whatOptions=[...t.what].sort().map((e=>({value:e,label:h(e)})))),t.where&&(this._whereOptions=[...t.where].sort().map((e=>({value:e,label:h(e)})))),t.tags&&(this._tagsOptions=[...t.tags].sort().map((e=>({value:e,label:h(e)})))),t.days){const e=new Set;[...t.days].forEach((t=>{e.add(t.substring(0,7))}));const r=[];e.forEach((e=>{r.push(W(e,"yyyy-MM",new Date))})),this._metaDataWhenOptions=g(r,(e=>e.getTime()),"desc").map((e=>({label:u(e,"MMMM yyyy"),value:this._dateRangeToString({start:e,end:N(e)})}))),this._computeWhenOptions()}this._host.requestUpdate()}}getControlsToShow(e){const t=this._viewManager?.getView(),r=c.areEventQueries(t?.query),i=c.areRecordingQueries(t?.query),o=e.getAggregateCameraCapabilities();return{events:r,recordings:i,favorites:r?o?.has("favorite-events"):!!i&&o?.has("favorite-recordings")}}_computeWhenOptions(){this._whenOptions=[...this._staticWhenOptions,...this._metaDataWhenOptions]}_dateRangeToString(e){return`${m(e.start)},${m(e.end)}`}_stringToDateRange(e){const t=e.split(",");return{start:W(t[0],"yyyy-MM-dd",new Date),end:I(W(t[1],"yyyy-MM-dd",new Date))}}_getWhen(e){if(e.from||e.to)return{...e.from&&{start:e.from},...e.to&&{end:e.to}};if(!e.selected||Array.isArray(e.selected))return null;const r=new Date;switch(e.selected){case B.Custom:return null;case B.Today:return{start:t(Date.now()),end:I(Date.now())};case B.Yesterday:return{start:V(),end:H()};case B.PastWeek:return{start:t(p(r,{days:7})),end:I(r)};case B.PastMonth:return{start:t(p(r,{months:1})),end:I(r)};default:return this._stringToDateRange(e.selected)}}}const K=!0,Y=!0,Q=!0,G=!1,X=!1;let Z,J,ee,te=!1,re=!1,ie=!1,oe=!1,ne=null,ae=!1;const se="http://www.w3.org/1999/xlink",le={},ce=e=>"object"===(e=typeof e)||"function"===e;const de=(e,t,...r)=>{let i=null,o=null,n=null,a=!1,s=!1;const l=[],c=t=>{for(let r=0;re[t])).join(" "))}}if("function"==typeof e)return e(null===t?{}:t,l,ue);const d=he(e,null);return d.$attrs$=t,l.length>0&&(d.$children$=l),d.$key$=o,d.$name$=n,d},he=(e,t)=>{const r={$flags$:0,$tag$:e,$text$:t,$elm$:null,$children$:null,$attrs$:null,$key$:null,$name$:null};return r},ge={},ue={forEach:(e,t)=>e.map(me).forEach(t),map:(e,t)=>e.map(me).map(t).map(pe)},me=e=>({vattrs:e.$attrs$,vchildren:e.$children$,vkey:e.$key$,vname:e.$name$,vtag:e.$tag$,vtext:e.$text$}),pe=e=>{if("function"==typeof e.vtag){const t=Object.assign({},e.vattrs);return e.vkey&&(t.key=e.vkey),e.vname&&(t.name=e.vname),de(e.vtag,t,...e.vchildren||[])}const t=he(e.vtag,e.vtext);return t.$attrs$=e.vattrs,t.$children$=e.vchildren,t.$key$=e.vkey,t.$name$=e.vname,t},fe=(e,t,r)=>{const i=e;return{emit:e=>ve(i,t,{bubbles:!!(4&r),composed:!!(2&r),cancelable:!!(1&r),detail:e})}},ve=(e,t,r)=>{const i=ht.ce(t,r);return e.dispatchEvent(i),i},be=new WeakMap,ye=e=>{const t=e.$cmpMeta$,r=e.$hostElement$,i=t.$flags$,o=(t.$tagName$,()=>{}),n=((e,t,r,i)=>{var o;let n=we(t,r);const a=at.get(n);if(e=11===e.nodeType?e:ct,a)if("string"==typeof a){e=e.head||e;let t,r=be.get(e);if(r||be.set(e,r=new Set),!r.has(n)){{t=ct.createElement("style"),t.innerHTML=a;const r=null!==(o=ht.$nonce$)&&void 0!==o?o:function(e){var t,r,i;return null!==(i=null===(r=null===(t=e.head)||void 0===t?void 0:t.querySelector('meta[name="csp-nonce"]'))||void 0===r?void 0:r.getAttribute("content"))&&void 0!==i?i:void 0}(ct);null!=r&&t.setAttribute("nonce",r),e.insertBefore(t,e.querySelector("link"))}r&&r.add(n)}}else e.adoptedStyleSheets.includes(a)||(e.adoptedStyleSheets=[...e.adoptedStyleSheets,a]);return n})(r.shadowRoot?r.shadowRoot:r.getRootNode(),t,e.$modeName$);10&i&&(r["s-sc"]=n,r.classList.add(n+"-h"),2&i&&r.classList.add(n+"-s")),o()},we=(e,t)=>"sc-"+(t&&32&e.$flags$?e.$tagName$+"-"+t:e.$tagName$),$e=(e,t,r,i,o,n)=>{if(r!==i){let a=ot(e,t),s=t.toLowerCase();if("class"===t){const t=e.classList,o=ke(r),n=ke(i);t.remove(...o.filter((e=>e&&!n.includes(e)))),t.add(...n.filter((e=>e&&!o.includes(e))))}else if("style"===t){for(const t in r)i&&null!=i[t]||(t.includes("-")?e.style.removeProperty(t):e.style[t]="");for(const t in i)r&&i[t]===r[t]||(t.includes("-")?e.style.setProperty(t,i[t]):e.style[t]=i[t])}else if("key"===t);else if("ref"===t)i&&i(e);else if(e.__lookupSetter__(t)||"o"!==t[0]||"n"!==t[1]){const l=ce(i);if((a||l&&null!==i)&&!o)try{if(e.tagName.includes("-"))e[t]=i;else{const o=null==i?"":i;"list"===t?a=!1:null!=r&&e[t]==o||(e[t]=o)}}catch(e){}let c=!1;s!==(s=s.replace(/^xlink\:?/,""))&&(t=s,c=!0),null==i||!1===i?!1===i&&""!==e.getAttribute(t)||(c?e.removeAttributeNS(se,t):e.removeAttribute(t)):(!a||4&n||o)&&!l&&(i=!0===i?"":i,c?e.setAttributeNS(se,t,i):e.setAttribute(t,i))}else t="-"===t[2]?t.slice(3):ot(lt,s)?s.slice(2):s[2]+t.slice(3),r&&ht.rel(e,t,r,!1),i&&ht.ael(e,t,i,!1)}},xe=/\s/,ke=e=>e?e.split(xe):[],_e=(e,t,r,i)=>{const o=11===t.$elm$.nodeType&&t.$elm$.host?t.$elm$.host:t.$elm$,n=e&&e.$attrs$||le,a=t.$attrs$||le;for(i in n)i in a||$e(o,i,n[i],void 0,r,t.$flags$);for(i in a)$e(o,i,n[i],a[i],r,t.$flags$)},Ce=(e,t,r,i)=>{const o=t.$children$[r];let n,a,s,l=0;if(te||(ie=!0,"slot"===o.$tag$&&(Z&&i.classList.add(Z+"-s"),o.$flags$|=o.$children$?2:1)),null!==o.$text$)n=o.$elm$=ct.createTextNode(o.$text$);else if(1&o.$flags$)n=o.$elm$=ct.createTextNode("");else{if(oe||(oe="svg"===o.$tag$),n=o.$elm$=ct.createElementNS(oe?"http://www.w3.org/2000/svg":"http://www.w3.org/1999/xhtml",2&o.$flags$?"slot-fb":o.$tag$),oe&&"foreignObject"===o.$tag$&&(oe=!1),_e(null,o,oe),null!=Z&&n["s-si"]!==Z&&n.classList.add(n["s-si"]=Z),o.$children$)for(l=0;l{ht.$flags$|=1;const r=e.childNodes;for(let e=r.length-1;e>=0;e--){const i=r[e];i["s-hn"]!==ee&&i["s-ol"]&&(ze(i).insertBefore(i,Me(i)),i["s-ol"].remove(),i["s-ol"]=void 0,ie=!0),t&&Te(i,t)}ht.$flags$&=-2},Ee=(e,t,r,i,o,n)=>{let a,s=e["s-cr"]&&e["s-cr"].parentNode||e;for(s.shadowRoot&&s.tagName===ee&&(s=s.shadowRoot);o<=n;++o)i[o]&&(a=Ce(null,r,o,e),a&&(i[o].$elm$=a,s.insertBefore(a,Me(t))))},Oe=(e,t,r,i,o)=>{for(;t<=r;++t)(i=e[t])&&(o=i.$elm$,We(i),re=!0,o["s-ol"]?o["s-ol"].remove():Te(o,!0),o.remove())},Se=(e,t)=>e.$tag$===t.$tag$&&("slot"===e.$tag$?e.$name$===t.$name$:e.$key$===t.$key$),Me=e=>e&&e["s-ol"]||e,ze=e=>(e["s-ol"]?e["s-ol"]:e).parentNode,Le=(e,t)=>{const r=t.$elm$=e.$elm$,i=e.$children$,o=t.$children$,n=t.$tag$,a=t.$text$;let s;null===a?(oe="svg"===n||"foreignObject"!==n&&oe,"slot"===n||_e(e,t,oe),null!==i&&null!==o?((e,t,r,i)=>{let o,n,a=0,s=0,l=0,c=0,d=t.length-1,h=t[0],g=t[d],u=i.length-1,m=i[0],p=i[u];for(;a<=d&&s<=u;)if(null==h)h=t[++a];else if(null==g)g=t[--d];else if(null==m)m=i[++s];else if(null==p)p=i[--u];else if(Se(h,m))Le(h,m),h=t[++a],m=i[++s];else if(Se(g,p))Le(g,p),g=t[--d],p=i[--u];else if(Se(h,p))"slot"!==h.$tag$&&"slot"!==p.$tag$||Te(h.$elm$.parentNode,!1),Le(h,p),e.insertBefore(h.$elm$,g.$elm$.nextSibling),h=t[++a],p=i[--u];else if(Se(g,m))"slot"!==h.$tag$&&"slot"!==p.$tag$||Te(g.$elm$.parentNode,!1),Le(g,m),e.insertBefore(g.$elm$,h.$elm$),g=t[--d],m=i[++s];else{for(l=-1,c=a;c<=d;++c)if(t[c]&&null!==t[c].$key$&&t[c].$key$===m.$key$){l=c;break}l>=0?(n=t[l],n.$tag$!==m.$tag$?o=Ce(t&&t[s],r,l,e):(Le(n,m),t[l]=void 0,o=n.$elm$),m=i[++s]):(o=Ce(t&&t[s],r,s,e),m=i[++s]),o&&ze(h.$elm$).insertBefore(o,Me(h.$elm$))}a>d?Ee(e,null==i[u+1]?null:i[u+1].$elm$,r,i,s,u):s>u&&Oe(t,a,d)})(r,i,t,o):null!==o?(null!==e.$text$&&(r.textContent=""),Ee(r,null,t,o,0,o.length-1)):null!==i&&Oe(i,0,i.length-1),oe&&"svg"===n&&(oe=!1)):(s=r["s-cr"])?s.parentNode.textContent=a:e.$text$!==a&&(r.data=a)},De=e=>{const t=e.childNodes;let r,i,o,n,a,s;for(i=0,o=t.length;i{let t,r,i,o,n,a,s=0;const l=e.childNodes,c=l.length;for(;s=0;a--)r=i[a],r["s-cn"]||r["s-nr"]||r["s-hn"]===t["s-hn"]||(Ie(r,o)?(n=Ae.find((e=>e.$nodeToRelocate$===r)),re=!0,r["s-sn"]=r["s-sn"]||o,n?n.$slotRefNode$=t:Ae.push({$slotRefNode$:t,$nodeToRelocate$:r}),r["s-sr"]&&Ae.map((e=>{Ie(e.$nodeToRelocate$,r["s-sn"])&&(n=Ae.find((e=>e.$nodeToRelocate$===r)),n&&!e.$slotRefNode$&&(e.$slotRefNode$=n.$slotRefNode$))}))):Ae.some((e=>e.$nodeToRelocate$===r))||Ae.push({$nodeToRelocate$:r}));1===t.nodeType&&Fe(t)}},Ie=(e,t)=>1===e.nodeType?null===e.getAttribute("slot")&&""===t||e.getAttribute("slot")===t:e["s-sn"]===t||""===t,We=e=>{e.$attrs$&&e.$attrs$.ref&&e.$attrs$.ref(null),e.$children$&&e.$children$.map(We)},Re=(e,t)=>{const r=e.$hostElement$,i=e.$cmpMeta$,o=e.$vnode$||he(null,null),n=(a=t)&&a.$tag$===ge?t:de(null,null,t);var a;if(ee=r.tagName,i.$attrsToReflect$&&(n.$attrs$=n.$attrs$||{},i.$attrsToReflect$.map((([e,t])=>n.$attrs$[t]=r[e]))),n.$tag$=null,n.$flags$|=4,e.$vnode$=n,n.$elm$=o.$elm$=r.shadowRoot||r,Z=r["s-sc"],J=r["s-cr"],te=!!(1&i.$flags$),re=!1,Le(o,n),ht.$flags$|=1,ie){let e,t,r,i,o,a;Fe(n.$elm$);let s=0;for(;s{e.$flags$|=16,e.$ancestorComponent$;return $t((()=>He(e,t)))},He=(e,t)=>{const r=e.$hostElement$,i=(e.$cmpMeta$.$tagName$,()=>{}),o=r;let n;return n=qe(o,t?"componentWillLoad":"componentWillUpdate"),n=Pe(n,(()=>qe(o,"componentWillRender"))),i(),Pe(n,(()=>Ve(e,o,t)))},Ve=async(e,t,r)=>{const i=e.$hostElement$,o=(e.$cmpMeta$.$tagName$,()=>{});i["s-rc"],r&&ye(e);const n=(e.$cmpMeta$.$tagName$,()=>{});je(e,t,i),n(),o(),Be(e)},je=(e,t,r)=>{try{ne=t,t=t.render&&t.render(),e.$flags$&=-17,e.$flags$|=2,(K||Y)&&(Q||Y)&&(G||Re(e,t))}catch(t){nt(t,e.$hostElement$)}return ne=null,null},Be=e=>{e.$cmpMeta$.$tagName$;const t=()=>{},r=e.$hostElement$;e.$ancestorComponent$,qe(r,"componentDidRender"),64&e.$flags$?(qe(r,"componentDidUpdate"),t()):(e.$flags$|=64,qe(r,"componentDidLoad"),t())},qe=(e,t,r)=>{if(e&&e[t])try{return e[t](r)}catch(e){nt(e)}},Pe=(e,t)=>e&&e.then?e.then(t):t(),Ue=(e,t,r,i)=>{const o=rt(e),n=e,a=o.$instanceValues$.get(t),s=o.$flags$,l=n;var c,d;c=r,d=i.$members$[t][0],r=null==c||ce(c)?c:4&d?"false"!==c&&(""===c||!!c):2&d?parseFloat(c):1&d?String(c):c;const h=Number.isNaN(a)&&Number.isNaN(r);if(r!==a&&!h){if(o.$instanceValues$.set(t,r),i.$watchers$&&128&s){const e=i.$watchers$[t];e&&e.map((e=>{try{l[e](r,a,t)}catch(e){nt(e,n)}}))}if(2==(18&s)){if(l.componentShouldUpdate&&!1===l.componentShouldUpdate(r,a,t))return;Ne(o,!1)}}},Ke=(e,t,r)=>{if(t.$members$){e.watchers&&(t.$watchers$=e.watchers);const r=Object.entries(t.$members$),i=e.prototype;r.map((([e,[r]])=>{(31&r||32&r)&&Object.defineProperty(i,e,{get(){return t=e,rt(this).$instanceValues$.get(t);var t},set(r){Ue(this,e,r,t)},configurable:!0,enumerable:!0})}));{const o=new Map;i.attributeChangedCallback=function(e,t,r){ht.jmp((()=>{const t=o.get(e);if(this.hasOwnProperty(t))r=this[t],delete this[t];else if(i.hasOwnProperty(t)&&"number"==typeof this[t]&&this[t]==r)return;this[t]=(null!==r||"boolean"!=typeof this[t])&&r}))},e.observedAttributes=r.filter((([e,t])=>15&t[0])).map((([e,r])=>{const i=r[1]||e;return o.set(i,e),512&r[0]&&t.$attrsToReflect$.push([e,i]),i}))}}return e},Ye=async(e,t,r,i,o)=>{if(!(32&t.$flags$)&&(o=e.constructor,t.$flags$|=32,customElements.whenDefined(r.$tagName$).then((()=>t.$flags$|=128)),o.style)){let i=o.style;"string"!=typeof i&&(i=i[t.$modeName$=(e=>st.map((t=>t(e))).find((e=>!!e)))(e)]);const n=we(r,t.$modeName$);if(!at.has(n)){const e=(r.$tagName$,()=>{});((e,t,r)=>{let i=at.get(e);mt&&r?(i=i||new CSSStyleSheet,"string"==typeof i?i=t:i.replaceSync(t)):i=t,at.set(e,i)})(n,i,!!(1&r.$flags$)),e()}}t.$ancestorComponent$;Ne(t,!0)},Qe=e=>{const t=e["s-cr"]=ct.createComment("");t["s-cn"]=!0,e.insertBefore(t,e.firstChild)},Ge=(e,t)=>{const r={$flags$:t[0],$tagName$:t[1]};r.$members$=t[2],r.$listeners$=t[3],r.$watchers$=e.$watchers$,r.$attrsToReflect$=[],!gt&&1&r.$flags$&&(r.$flags$|=8);const i=e.prototype.connectedCallback,o=e.prototype.disconnectedCallback;return Object.assign(e.prototype,{__registerHost(){it(this,r)},connectedCallback(){(e=>{if(!(1&ht.$flags$)){const t=rt(e),r=t.$cmpMeta$,i=(r.$tagName$,()=>{});1&t.$flags$?(Xe(e,t,r.$listeners$),t.$lazyInstance$):(t.$flags$|=1,12&r.$flags$&&Qe(e),r.$members$&&Object.entries(r.$members$).map((([t,[r]])=>{if(31&r&&e.hasOwnProperty(t)){const r=e[t];delete e[t],e[t]=r}})),Ye(e,t,r)),i()}})(this),i&&i.call(this)},disconnectedCallback(){(e=>{if(!(1&ht.$flags$)){const t=rt(e);t.$rmListeners$&&(t.$rmListeners$.map((e=>e())),t.$rmListeners$=void 0)}})(this),o&&o.call(this)},__attachShadow(){gt?this.attachShadow({mode:"open",delegatesFocus:!!(16&r.$flags$)}):this.shadowRoot=this}}),e.is=r.$tagName$,Ke(e,r)},Xe=(e,t,r,i)=>{r&&r.map((([r,i,o])=>{const n=Je(e,r),a=Ze(t,o),s=et(r);ht.ael(n,i,a,s),(t.$rmListeners$=t.$rmListeners$||[]).push((()=>ht.rel(n,i,a,s)))}))},Ze=(e,t)=>r=>{try{X||e.$hostElement$[t](r)}catch(e){nt(e)}},Je=(e,t)=>4&t?ct:8&t?lt:16&t?ct.body:e,et=e=>ut?{passive:!!(1&e),capture:!!(2&e)}:!!(2&e),tt=new WeakMap,rt=e=>tt.get(e),it=(e,t)=>{const r={$flags$:0,$hostElement$:e,$cmpMeta$:t,$instanceValues$:new Map};return Xe(e,r,t.$listeners$),tt.set(e,r)},ot=(e,t)=>t in e,nt=(e,t)=>(0,console.error)(e,t),at=new Map,st=[],lt="undefined"!=typeof window?window:{},ct=lt.document||{head:{}},dt=lt.HTMLElement||class{},ht={$flags$:0,$resourcesUrl$:"",jmp:e=>e(),raf:e=>requestAnimationFrame(e),ael:(e,t,r,i)=>e.addEventListener(t,r,i),rel:(e,t,r,i)=>e.removeEventListener(t,r,i),ce:(e,t)=>new CustomEvent(e,t)},gt=!0,ut=(()=>{let e=!1;try{ct.addEventListener("e",null,Object.defineProperty({},"passive",{get(){e=!0}}))}catch(e){}return e})(),mt=(()=>{try{return new CSSStyleSheet,"function"==typeof(new CSSStyleSheet).replaceSync}catch(e){}return!1})(),pt=[],ft=[],vt=(e,t)=>r=>{e.push(r),ae||(ae=!0,t&&4&ht.$flags$?wt(yt):ht.raf(yt))},bt=e=>{for(let t=0;t{bt(pt),bt(ft),(ae=pt.length>0)&&ht.raf(yt)},wt=e=>{return Promise.resolve(t).then(e);var t},$t=vt(ft,!0),xt=(e,t)=>{const r=!!e.label||e.hasLabelSlot,i=!!e.helpText||e.hasHelpTextSlot,o=!!e.invalidText||e.hasInvalidTextSlot,n=!e.invalid,a=!!e.invalid;return de("div",{class:{"form-control":!0,[`form-control-${e.size}`]:!0,"form-control-has-label":r,"form-control-has-help-text":i,"form-control-has-invalid-text":o}},de("label",{id:e.labelId,class:"form-control-label",htmlFor:e.inputId,"aria-hidden":r?"false":"true",onClick:e.onLabelClick},de("slot",{name:"label"},e.label),e.requiredIndicator&&de("div",{class:"asterisk"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 1200 1200"},de("path",{fill:"currentColor",d:"M489.838 29.354v443.603L68.032 335.894 0 545.285l421.829 137.086-260.743 358.876 178.219 129.398L600.048 811.84l260.673 358.806 178.146-129.398-260.766-358.783L1200 545.379l-68.032-209.403-421.899 137.07V29.443H489.84l-.002-.089z"})))),de("div",{class:"form-control-input"},t),n&&de("div",{id:e.helpTextId,class:"form-control-help-text","aria-hidden":i?"false":"true"},de("slot",{name:"help-text"},e.helpText)),a&&de("div",{id:e.invalidTextId,class:"form-control-invalid-text","aria-hidden":o?"false":"true"},de("div",{class:"icon"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Alert Circle"),de("path",{d:"M256,48C141.31,48,48,141.31,48,256s93.31,208,208,208,208-93.31,208-208S370.69,48,256,48Zm0,319.91a20,20,0,1,1,20-20A20,20,0,0,1,256,367.91Zm21.72-201.15-5.74,122a16,16,0,0,1-32,0l-5.74-121.94v-.05a21.74,21.74,0,1,1,43.44,0Z",fill:"currentColor"}))),de("div",{class:"text"},de("slot",{name:"invalid-text"},e.invalidText))))}; +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +function kt(e){const t=e?e.assignedNodes({flatten:!0}):[];let r="";return[...t].map((e=>{e.nodeType===Node.TEXT_NODE&&(r+=e.textContent)})),r}function _t(e,t){return t?null!==e.querySelector(`[slot="${t}"]`):[...e.childNodes].some((e=>{if(e.nodeType===e.TEXT_NODE&&""!==e.textContent.trim())return!0;if(e.nodeType===e.ELEMENT_NODE){if(!e.hasAttribute("slot"))return!0}return!1}))} +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */const Ct=(e,t=[])=>{const r={};return t.forEach((t=>{if(e.hasAttribute(t)){null!==e.getAttribute(t)&&(r[t]=e.getAttribute(t)),e.removeAttribute(t)}})),r},Tt=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow()}render(){return de("span",{class:"spinner","aria-busy":"true","aria-live":"polite"})}static get style(){return":host{--track-color:var(--gr-color-light-shade);--indicator-color:var(--gr-color-primary);--stroke-width:2px;display:inline-flex;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}.spinner{display:inline-block;width:1em;height:1em;border-radius:50%;border:solid var(--stroke-width) var(--track-color);border-top-color:var(--indicator-color);border-right-color:var(--indicator-color);animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}"}},[1,"gr-spinner"]);function Et(){if("undefined"==typeof customElements)return;["gr-spinner"].forEach((e=>{if("gr-spinner"===e)customElements.get(e)||customElements.define(e,Tt)}))}Et(); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +const Ot=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grFocus=fe(this,"gr-focus",7),this.grBlur=fe(this,"gr-blur",7),this.inheritedAttributes={},this.handleClick=e=>{if("button"!==this.type){const t=this.el.closest("form");if(t){e.preventDefault();const r=document.createElement("button");r.type=this.type,r.style.display="none",t.appendChild(r),r.click(),r.remove()}}},this.onFocus=()=>{this.grFocus.emit()},this.onBlur=()=>{this.grBlur.emit()},this.variant="default",this.disabled=!1,this.loading=!1,this.size="medium",this.caret=!1,this.pill=!1,this.expand=void 0,this.circle=!1,this.href=void 0,this.target=void 0,this.rel=void 0,this.type="button"}componentWillLoad(){this.inheritedAttributes=Ct(this.el,["aria-label","tabindex","title"])}async setFocus(e){this.button.focus(e)}async removeFocus(){this.button.blur()}render(){const{rel:e,target:t,href:r,variant:i,size:o,expand:n,type:a,inheritedAttributes:s,disabled:l}=this,c=void 0===r?"button":"a",d="button"===c?{type:a}:{href:r,rel:e,target:t};return de(ge,{onClick:this.handleClick,"aria-disabled":l?"true":null,class:{[`button-${i}`]:!0,[`button-${o}`]:!0,[`button-${n}`]:void 0!==n,"button-caret":this.caret,"button-circle":this.circle,"button-pill":this.pill,"button-disabled":l,"button-loading":this.loading}},de(c,Object.assign({ref:e=>this.button=e},d,{class:"button-native",disabled:l,onFocus:this.onFocus,onBlur:this.onBlur},s),de("span",{class:"button-inner"},de("slot",{name:"icon-only"}),de("slot",{name:"start"}),de("slot",null),de("slot",{name:"end"}),this.caret&&de("span",{class:"caret"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Chevron Down"),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"48",d:"M112 184l144 144 144-144"})))),this.loading&&de("gr-spinner",null)))}get el(){return this}static get style(){return".gr-scroll-lock{overflow:hidden !important}:host{display:inline-block;width:auto;font-family:var(--gr-font-family);font-weight:var(--gr-font-weight-medium);font-size:var(--gr-form-element-font-size-medium);font-kerning:none;user-select:none;vertical-align:top;vertical-align:-webkit-baseline-middle;pointer-events:auto;--height:var(--gr-form-element-height-medium);--border-radius:var(--gr-form-element-border-radius-medium);--border-width:1px;--border-style:solid;--background:transparent;--background-hover:transparent;--background-focus:transparent;--color:var(--gr-color-dark-tint);--color-hover:var(--gr-color-dark-tint);--color-focus:var(--gr-color-dark-tint);--border-color:var(--gr-color-light-shade);--border-color-hover:var(--gr-color-medium);--border-color-focus:var(--gr-color-primary);--padding-top:0;--padding-start:var(--gr-spacing-medium);--padding-end:var(--gr-spacing-medium);--padding-bottom:0;--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33);--shadow:none;--transition:background-color 150ms linear, opacity 150ms linear, border 150ms linear, color 150ms linear}:host(.button-disabled){pointer-events:none;opacity:0.5}:host(.button-primary){--border-color:var(--gr-color-primary);--background:var(--gr-color-primary);--color:var(--gr-color-primary-contrast);--border-color-hover:var(--gr-color-primary-shade);--background-hover:var(--gr-color-primary-shade);--color-hover:var(--gr-color-primary-contrast);--border-color-focus:var(--gr-color-primary);--background-focus:var(--gr-color-primary-shade);--color-focus:var(--gr-color-primary-contrast);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33)}:host(.button-secondary){--border-color:var(--gr-color-light-shade);--background:transparent;--color:var(--gr-color-primary);--border-color-hover:var(--gr-color-primary);--background-hover:transparent;--color-hover:var(--gr-color-primary);--border-color-focus:var(--gr-color-primary);--background-focus:transparent;--color-focus:var(--gr-color-primary);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33)}:host(.button-danger){--border-color:var(--gr-color-danger);--background:transparent;--color:var(--gr-color-danger);--border-color-hover:var(--gr-color-danger);--background-hover:var(--gr-color-danger);--color-hover:var(--gr-color-danger-contrast);--border-color-focus:var(--gr-color-danger);--background-focus:var(--gr-color-danger);--color-focus:var(--gr-color-danger-contrast);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-danger-rgb), 0.33)}:host(.button-plain){--border-color:transparent;--background:transparent;--color:var(--gr-color-primary);--border-color-hover:transparent;--background-hover:transparent;--color-hover:var(--gr-color-primary-shade);--border-color-focus:transparent;--background-focus:transparent;--color-focus:var(--gr-color-primary-shade);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33)}:host(.button-small){--padding-start:var(--gr-spacing-small);--padding-end:var(--gr-spacing-small);--border-radius:var(--gr-form-element-border-radius-small);--height:var(--gr-form-element-height-small);font-size:var(--gr-form-element-font-size-small)}:host(.button-large){--padding-start:var(--gr-spacing-large);--padding-end:var(--gr-spacing-large);--border-radius:var(--gr-form-element-border-radius-large);--height:var(--gr-form-element-height-large);font-size:var(--gr-form-element-font-size-large)}:host(.button-block){display:block}:host(.button-block) .button-native{margin-left:0;margin-right:0;display:block;width:100%;clear:both;contain:content}:host(.button-block) .button-native::after{clear:both}:host(.button-full){display:block}:host(.button-full) .button-native{margin-left:0;margin-right:0;display:block;width:100%;contain:content;border-radius:0;border-right-width:0;border-left-width:0}.button-native{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:block;position:relative;padding-top:var(--padding-top);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-bottom:var(--padding-bottom);width:100%;height:var(--height);transition:var(--transition);border-radius:var(--border-radius);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);color:var(--color);box-shadow:var(--shadow);line-height:1;cursor:pointer;z-index:0;text-decoration:none;box-sizing:border-box}.button-native::-moz-focus-inner{border:0}.button-native:focus{outline:none;box-shadow:var(--focus-ring);border-color:var(--border-color-focus);background-color:var(--background-focus);color:var(--color-focus)}.button-native *,.button-native *:before,.button-native *:after{box-sizing:inherit}.button-inner{display:flex;position:relative;flex-flow:row nowrap;flex-shrink:0;align-items:center;justify-content:center;width:100%;height:100%;z-index:1}:host(.button-circle) .button-native{padding-top:0;padding-bottom:0;padding-left:0;padding-right:0;border-radius:50%;width:var(--height)}@media (any-hover: hover){.button-native:hover{color:var(--color-hover);background:var(--background-hover);border-color:var(--border-color-hover)}}:host(.button-caret) .caret{display:flex;align-items:center;margin-left:0.3em}:host(.button-caret) .caret svg{width:1em;height:1em}:host(.button-pill) .button-native{border-radius:var(--height)}::slotted(*){pointer-events:none}::slotted([slot=start]){margin-top:0;margin-left:-0.3em;margin-right:0.3em;margin-bottom:0}::slotted([slot=end]){margin-top:0;margin-left:0.3em;margin-right:-0.2em;margin-bottom:0}::slotted([slot=icon-only]){font-size:1.4em;pointer-events:none}:host(.button-loading){position:relative;pointer-events:none}:host(.button-loading) .caret{visibility:hidden}:host(.button-loading) slot[name=start],:host(.button-loading) slot[name=end],:host(.button-loading) slot[name=icon-only],:host(.button-loading) slot:not([name]){visibility:hidden}:host(.button-loading) gr-spinner{--indicator-color:currentColor;position:absolute;height:1em;width:1em;top:calc(50% - 0.5em);left:calc(50% - 0.5em)}@media not all and (min-resolution: 0.001dpcm){@supports (-webkit-appearance: none) and (stroke-color: transparent){:host([type=button]),:host([type=reset]),:host([type=submit]){-webkit-appearance:none !important}}}"}},[1,"gr-button",{variant:[513],disabled:[516],loading:[516],size:[513],caret:[4],pill:[516],expand:[513],circle:[516],href:[1],target:[1],rel:[1],type:[1],setFocus:[64],removeFocus:[64]}]);function St(){if("undefined"==typeof customElements)return;["gr-button","gr-spinner"].forEach((e=>{switch(e){case"gr-button":customElements.get(e)||customElements.define(e,Ot);break;case"gr-spinner":customElements.get(e)||Et()}}))}function Mt(e,t,r="vertical",i="smooth"){const o= +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +function(e,t){return{top:Math.round(e.getBoundingClientRect().top-t.getBoundingClientRect().top),left:Math.round(e.getBoundingClientRect().left-t.getBoundingClientRect().left)}}(e,t),n=o.top+t.scrollTop,a=o.left+t.scrollLeft,s=t.scrollLeft,l=t.scrollLeft+t.offsetWidth,c=t.scrollTop,d=t.scrollTop+t.offsetHeight;"horizontal"!==r&&"both"!==r||(al&&t.scrollTo({left:a-t.offsetWidth+e.clientWidth,behavior:i})),"vertical"!==r&&"both"!==r||(nd&&t.scrollTo({top:n-t.offsetHeight+e.clientHeight,behavior:i}))} +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */function zt(e){return e.tabIndex>-1}function Lt(e){if(zt(e))return e;if(e.shadowRoot){const t=[...e.shadowRoot.children].find(zt);if(t)return t}return e.children?[...e.children].map(Lt)[0]:null}St();var Dt="top",At="bottom",Ft="right",It="left",Wt="auto",Rt=[Dt,At,Ft,It],Nt="start",Ht="end",Vt="clippingParents",jt="viewport",Bt="popper",qt="reference",Pt=Rt.reduce((function(e,t){return e.concat([t+"-"+Nt,t+"-"+Ht])}),[]),Ut=[].concat(Rt,[Wt]).reduce((function(e,t){return e.concat([t,t+"-"+Nt,t+"-"+Ht])}),[]),Kt=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Yt(e){return e?(e.nodeName||"").toLowerCase():null}function Qt(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Gt(e){return e instanceof Qt(e).Element||e instanceof Element}function Xt(e){return e instanceof Qt(e).HTMLElement||e instanceof HTMLElement}function Zt(e){return"undefined"!=typeof ShadowRoot&&(e instanceof Qt(e).ShadowRoot||e instanceof ShadowRoot)}const Jt={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var r=t.styles[e]||{},i=t.attributes[e]||{},o=t.elements[e];Xt(o)&&Yt(o)&&(Object.assign(o.style,r),Object.keys(i).forEach((function(e){var t=i[e];!1===t?o.removeAttribute(e):o.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,r={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,r.popper),t.styles=r,t.elements.arrow&&Object.assign(t.elements.arrow.style,r.arrow),function(){Object.keys(t.elements).forEach((function(e){var i=t.elements[e],o=t.attributes[e]||{},n=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:r[e]).reduce((function(e,t){return e[t]="",e}),{});Xt(i)&&Yt(i)&&(Object.assign(i.style,n),Object.keys(o).forEach((function(e){i.removeAttribute(e)})))}))}},requires:["computeStyles"]};function er(e){return e.split("-")[0]}var tr=Math.max,rr=Math.min,ir=Math.round;function or(e,t){void 0===t&&(t=!1);var r=e.getBoundingClientRect(),i=1,o=1;if(Xt(e)&&t){var n=e.offsetHeight,a=e.offsetWidth;a>0&&(i=ir(r.width)/a||1),n>0&&(o=ir(r.height)/n||1)}return{width:r.width/i,height:r.height/o,top:r.top/o,right:r.right/i,bottom:r.bottom/o,left:r.left/i,x:r.left/i,y:r.top/o}}function nr(e){var t=or(e),r=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-r)<=1&&(r=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:i}}function ar(e,t){var r=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(r&&Zt(r)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function sr(e){return Qt(e).getComputedStyle(e)}function lr(e){return["table","td","th"].indexOf(Yt(e))>=0}function cr(e){return((Gt(e)?e.ownerDocument:e.document)||window.document).documentElement}function dr(e){return"html"===Yt(e)?e:e.assignedSlot||e.parentNode||(Zt(e)?e.host:null)||cr(e)}function hr(e){return Xt(e)&&"fixed"!==sr(e).position?e.offsetParent:null}function gr(e){for(var t=Qt(e),r=hr(e);r&&lr(r)&&"static"===sr(r).position;)r=hr(r);return r&&("html"===Yt(r)||"body"===Yt(r)&&"static"===sr(r).position)?t:r||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&Xt(e)&&"fixed"===sr(e).position)return null;var r=dr(e);for(Zt(r)&&(r=r.host);Xt(r)&&["html","body"].indexOf(Yt(r))<0;){var i=sr(r);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return r;r=r.parentNode}return null}(e)||t}function ur(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function mr(e,t,r){return tr(e,rr(t,r))}function pr(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function fr(e,t){return t.reduce((function(t,r){return t[r]=e,t}),{})}const vr={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,r=e.state,i=e.name,o=e.options,n=r.elements.arrow,a=r.modifiersData.popperOffsets,s=er(r.placement),l=ur(s),c=[It,Ft].indexOf(s)>=0?"height":"width";if(n&&a){var d=function(e,t){return pr("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:fr(e,Rt))}(o.padding,r),h=nr(n),g="y"===l?Dt:It,u="y"===l?At:Ft,m=r.rects.reference[c]+r.rects.reference[l]-a[l]-r.rects.popper[c],p=a[l]-r.rects.reference[l],f=gr(n),v=f?"y"===l?f.clientHeight||0:f.clientWidth||0:0,b=m/2-p/2,y=d[g],w=v-h[c]-d[u],$=v/2-h[c]/2+b,x=mr(y,$,w),k=l;r.modifiersData[i]=((t={})[k]=x,t.centerOffset=x-$,t)}},effect:function(e){var t=e.state,r=e.options.element,i=void 0===r?"[data-popper-arrow]":r;null!=i&&("string"!=typeof i||(i=t.elements.popper.querySelector(i)))&&ar(t.elements.popper,i)&&(t.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function br(e){return e.split("-")[1]}var yr={top:"auto",right:"auto",bottom:"auto",left:"auto"};function wr(e){var t,r=e.popper,i=e.popperRect,o=e.placement,n=e.variation,a=e.offsets,s=e.position,l=e.gpuAcceleration,c=e.adaptive,d=e.roundOffsets,h=e.isFixed,g=a.x,u=void 0===g?0:g,m=a.y,p=void 0===m?0:m,f="function"==typeof d?d({x:u,y:p}):{x:u,y:p};u=f.x,p=f.y;var v=a.hasOwnProperty("x"),b=a.hasOwnProperty("y"),y=It,w=Dt,$=window;if(c){var x=gr(r),k="clientHeight",_="clientWidth";if(x===Qt(r)&&"static"!==sr(x=cr(r)).position&&"absolute"===s&&(k="scrollHeight",_="scrollWidth"),o===Dt||(o===It||o===Ft)&&n===Ht)w=At,p-=(h&&x===$&&$.visualViewport?$.visualViewport.height:x[k])-i.height,p*=l?1:-1;if(o===It||(o===Dt||o===At)&&n===Ht)y=Ft,u-=(h&&x===$&&$.visualViewport?$.visualViewport.width:x[_])-i.width,u*=l?1:-1}var C,T=Object.assign({position:s},c&&yr),E=!0===d?function(e){var t=e.x,r=e.y,i=window.devicePixelRatio||1;return{x:ir(t*i)/i||0,y:ir(r*i)/i||0}}({x:u,y:p}):{x:u,y:p};return u=E.x,p=E.y,l?Object.assign({},T,((C={})[w]=b?"0":"",C[y]=v?"0":"",C.transform=($.devicePixelRatio||1)<=1?"translate("+u+"px, "+p+"px)":"translate3d("+u+"px, "+p+"px, 0)",C)):Object.assign({},T,((t={})[w]=b?p+"px":"",t[y]=v?u+"px":"",t.transform="",t))}var $r={passive:!0};var xr={left:"right",right:"left",bottom:"top",top:"bottom"};function kr(e){return e.replace(/left|right|bottom|top/g,(function(e){return xr[e]}))}var _r={start:"end",end:"start"};function Cr(e){return e.replace(/start|end/g,(function(e){return _r[e]}))}function Tr(e){var t=Qt(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Er(e){return or(cr(e)).left+Tr(e).scrollLeft}function Or(e){var t=sr(e),r=t.overflow,i=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(r+o+i)}function Sr(e){return["html","body","#document"].indexOf(Yt(e))>=0?e.ownerDocument.body:Xt(e)&&Or(e)?e:Sr(dr(e))}function Mr(e,t){var r;void 0===t&&(t=[]);var i=Sr(e),o=i===(null==(r=e.ownerDocument)?void 0:r.body),n=Qt(i),a=o?[n].concat(n.visualViewport||[],Or(i)?i:[]):i,s=t.concat(a);return o?s:s.concat(Mr(dr(a)))}function zr(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Lr(e,t){return t===jt?zr(function(e){var t=Qt(e),r=cr(e),i=t.visualViewport,o=r.clientWidth,n=r.clientHeight,a=0,s=0;return i&&(o=i.width,n=i.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(a=i.offsetLeft,s=i.offsetTop)),{width:o,height:n,x:a+Er(e),y:s}}(e)):Gt(t)?function(e){var t=or(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):zr(function(e){var t,r=cr(e),i=Tr(e),o=null==(t=e.ownerDocument)?void 0:t.body,n=tr(r.scrollWidth,r.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),a=tr(r.scrollHeight,r.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),s=-i.scrollLeft+Er(e),l=-i.scrollTop;return"rtl"===sr(o||r).direction&&(s+=tr(r.clientWidth,o?o.clientWidth:0)-n),{width:n,height:a,x:s,y:l}}(cr(e)))}function Dr(e,t,r){var i="clippingParents"===t?function(e){var t=Mr(dr(e)),r=["absolute","fixed"].indexOf(sr(e).position)>=0&&Xt(e)?gr(e):e;return Gt(r)?t.filter((function(e){return Gt(e)&&ar(e,r)&&"body"!==Yt(e)})):[]}(e):[].concat(t),o=[].concat(i,[r]),n=o[0],a=o.reduce((function(t,r){var i=Lr(e,r);return t.top=tr(i.top,t.top),t.right=rr(i.right,t.right),t.bottom=rr(i.bottom,t.bottom),t.left=tr(i.left,t.left),t}),Lr(e,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function Ar(e){var t,r=e.reference,i=e.element,o=e.placement,n=o?er(o):null,a=o?br(o):null,s=r.x+r.width/2-i.width/2,l=r.y+r.height/2-i.height/2;switch(n){case Dt:t={x:s,y:r.y-i.height};break;case At:t={x:s,y:r.y+r.height};break;case Ft:t={x:r.x+r.width,y:l};break;case It:t={x:r.x-i.width,y:l};break;default:t={x:r.x,y:r.y}}var c=n?ur(n):null;if(null!=c){var d="y"===c?"height":"width";switch(a){case Nt:t[c]=t[c]-(r[d]/2-i[d]/2);break;case Ht:t[c]=t[c]+(r[d]/2-i[d]/2)}}return t}function Fr(e,t){void 0===t&&(t={});var r=t,i=r.placement,o=void 0===i?e.placement:i,n=r.boundary,a=void 0===n?Vt:n,s=r.rootBoundary,l=void 0===s?jt:s,c=r.elementContext,d=void 0===c?Bt:c,h=r.altBoundary,g=void 0!==h&&h,u=r.padding,m=void 0===u?0:u,p=pr("number"!=typeof m?m:fr(m,Rt)),f=d===Bt?qt:Bt,v=e.rects.popper,b=e.elements[g?f:d],y=Dr(Gt(b)?b:b.contextElement||cr(e.elements.popper),a,l),w=or(e.elements.reference),$=Ar({reference:w,element:v,strategy:"absolute",placement:o}),x=zr(Object.assign({},v,$)),k=d===Bt?x:w,_={top:y.top-k.top+p.top,bottom:k.bottom-y.bottom+p.bottom,left:y.left-k.left+p.left,right:k.right-y.right+p.right},C=e.modifiersData.offset;if(d===Bt&&C){var T=C[o];Object.keys(_).forEach((function(e){var t=[Ft,At].indexOf(e)>=0?1:-1,r=[Dt,At].indexOf(e)>=0?"y":"x";_[e]+=T[r]*t}))}return _}function Ir(e,t){void 0===t&&(t={});var r=t,i=r.placement,o=r.boundary,n=r.rootBoundary,a=r.padding,s=r.flipVariations,l=r.allowedAutoPlacements,c=void 0===l?Ut:l,d=br(i),h=d?s?Pt:Pt.filter((function(e){return br(e)===d})):Rt,g=h.filter((function(e){return c.indexOf(e)>=0}));0===g.length&&(g=h);var u=g.reduce((function(t,r){return t[r]=Fr(e,{placement:r,boundary:o,rootBoundary:n,padding:a})[er(r)],t}),{});return Object.keys(u).sort((function(e,t){return u[e]-u[t]}))}const Wr={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,r=e.options,i=e.name;if(!t.modifiersData[i]._skip){for(var o=r.mainAxis,n=void 0===o||o,a=r.altAxis,s=void 0===a||a,l=r.fallbackPlacements,c=r.padding,d=r.boundary,h=r.rootBoundary,g=r.altBoundary,u=r.flipVariations,m=void 0===u||u,p=r.allowedAutoPlacements,f=t.options.placement,v=er(f),b=l||(v===f||!m?[kr(f)]:function(e){if(er(e)===Wt)return[];var t=kr(e);return[Cr(e),t,Cr(t)]}(f)),y=[f].concat(b).reduce((function(e,r){return e.concat(er(r)===Wt?Ir(t,{placement:r,boundary:d,rootBoundary:h,padding:c,flipVariations:m,allowedAutoPlacements:p}):r)}),[]),w=t.rects.reference,$=t.rects.popper,x=new Map,k=!0,_=y[0],C=0;C=0,M=S?"width":"height",z=Fr(t,{placement:T,boundary:d,rootBoundary:h,altBoundary:g,padding:c}),L=S?O?Ft:It:O?At:Dt;w[M]>$[M]&&(L=kr(L));var D=kr(L),A=[];if(n&&A.push(z[E]<=0),s&&A.push(z[L]<=0,z[D]<=0),A.every((function(e){return e}))){_=T,k=!1;break}x.set(T,A)}if(k)for(var F=function(e){var t=y.find((function(t){var r=x.get(t);if(r)return r.slice(0,e).every((function(e){return e}))}));if(t)return _=t,"break"},I=m?3:1;I>0;I--){if("break"===F(I))break}t.placement!==_&&(t.modifiersData[i]._skip=!0,t.placement=_,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Rr(e,t,r){return void 0===r&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function Nr(e){return[Dt,Ft,At,It].some((function(t){return e[t]>=0}))}const Hr={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,r=e.options,i=e.name,o=r.offset,n=void 0===o?[0,0]:o,a=Ut.reduce((function(e,r){return e[r]=function(e,t,r){var i=er(e),o=[It,Dt].indexOf(i)>=0?-1:1,n="function"==typeof r?r(Object.assign({},t,{placement:e})):r,a=n[0],s=n[1];return a=a||0,s=(s||0)*o,[It,Ft].indexOf(i)>=0?{x:s,y:a}:{x:a,y:s}}(r,t.rects,n),e}),{}),s=a[t.placement],l=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=c),t.modifiersData[i]=a}};const Vr={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,r=e.options,i=e.name,o=r.mainAxis,n=void 0===o||o,a=r.altAxis,s=void 0!==a&&a,l=r.boundary,c=r.rootBoundary,d=r.altBoundary,h=r.padding,g=r.tether,u=void 0===g||g,m=r.tetherOffset,p=void 0===m?0:m,f=Fr(t,{boundary:l,rootBoundary:c,padding:h,altBoundary:d}),v=er(t.placement),b=br(t.placement),y=!b,w=ur(v),$="x"===w?"y":"x",x=t.modifiersData.popperOffsets,k=t.rects.reference,_=t.rects.popper,C="function"==typeof p?p(Object.assign({},t.rects,{placement:t.placement})):p,T="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),E=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(x){if(n){var S,M="y"===w?Dt:It,z="y"===w?At:Ft,L="y"===w?"height":"width",D=x[w],A=D+f[M],F=D-f[z],I=u?-_[L]/2:0,W=b===Nt?k[L]:_[L],R=b===Nt?-_[L]:-k[L],N=t.elements.arrow,H=u&&N?nr(N):{width:0,height:0},V=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},j=V[M],B=V[z],q=mr(0,k[L],H[L]),P=y?k[L]/2-I-q-j-T.mainAxis:W-q-j-T.mainAxis,U=y?-k[L]/2+I+q+B+T.mainAxis:R+q+B+T.mainAxis,K=t.elements.arrow&&gr(t.elements.arrow),Y=K?"y"===w?K.clientTop||0:K.clientLeft||0:0,Q=null!=(S=null==E?void 0:E[w])?S:0,G=D+U-Q,X=mr(u?rr(A,D+P-Q-Y):A,D,u?tr(F,G):F);x[w]=X,O[w]=X-D}if(s){var Z,J="x"===w?Dt:It,ee="x"===w?At:Ft,te=x[$],re="y"===$?"height":"width",ie=te+f[J],oe=te-f[ee],ne=-1!==[Dt,It].indexOf(v),ae=null!=(Z=null==E?void 0:E[$])?Z:0,se=ne?ie:te-k[re]-_[re]-ae+T.altAxis,le=ne?te+k[re]+_[re]-ae-T.altAxis:oe,ce=u&&ne?function(e,t,r){var i=mr(e,t,r);return i>r?r:i}(se,te,le):mr(u?se:ie,te,u?le:oe);x[$]=ce,O[$]=ce-te}t.modifiersData[i]=O}},requiresIfExists:["offset"]};function jr(e,t,r){void 0===r&&(r=!1);var i,o,n=Xt(t),a=Xt(t)&&function(e){var t=e.getBoundingClientRect(),r=ir(t.width)/e.offsetWidth||1,i=ir(t.height)/e.offsetHeight||1;return 1!==r||1!==i}(t),s=cr(t),l=or(e,a),c={scrollLeft:0,scrollTop:0},d={x:0,y:0};return(n||!n&&!r)&&(("body"!==Yt(t)||Or(s))&&(c=(i=t)!==Qt(i)&&Xt(i)?{scrollLeft:(o=i).scrollLeft,scrollTop:o.scrollTop}:Tr(i)),Xt(t)?((d=or(t,!0)).x+=t.clientLeft,d.y+=t.clientTop):s&&(d.x=Er(s))),{x:l.left+c.scrollLeft-d.x,y:l.top+c.scrollTop-d.y,width:l.width,height:l.height}}function Br(e){var t=new Map,r=new Set,i=[];function o(e){r.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!r.has(e)){var i=t.get(e);i&&o(i)}})),i.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){r.has(e.name)||o(e)})),i}var qr={placement:"bottom",modifiers:[],strategy:"absolute"};function Pr(){for(var e=arguments.length,t=new Array(e),r=0;r{},onAfterHide:()=>{},onTransitionEnd:()=>{}},r),this.isVisible=!1,this.popover.hidden=!0,this.popover.classList.remove(this.options.visibleClass),this.popover.addEventListener("transitionend",this.handleTransitionEnd)}handleTransitionEnd(e){e.target===this.options.transitionElement&&(this.options.onTransitionEnd.call(this,e),this.isVisible||this.popover.hidden||(this.popover.hidden=!0,this.popover.classList.remove(this.options.visibleClass),this.options.onAfterHide.call(this)))}destroy(){this.popover.removeEventListener("transitionend",this.handleTransitionEnd),this.popper&&(this.popper.destroy(),this.popper=null)}show(){this.isVisible=!0,this.popover.hidden=!1,requestAnimationFrame((()=>this.popover.classList.add(this.options.visibleClass))),this.popper&&this.popper.destroy(),this.popper=Kr(this.anchor,this.popover,{placement:this.options.placement,strategy:this.options.strategy,modifiers:[{name:"flip",options:{boundary:"viewport"}},{name:"offset",options:{offset:[this.options.skidding,this.options.distance]}}]}),this.popover.addEventListener("transitionend",(()=>this.options.onAfterShow.call(this)),{once:!0}),requestAnimationFrame((()=>this.popper.update()))}hide(){this.isVisible=!1,this.popover.classList.remove(this.options.visibleClass)}setOptions(e){this.options=Object.assign(this.options,e),this.isVisible?this.popover.classList.add(this.options.visibleClass):this.popover.classList.remove(this.options.visibleClass),this.popper&&(this.popper.setOptions({placement:this.options.placement,strategy:this.options.strategy}),requestAnimationFrame((()=>this.popper.update())))}}let Qr=0;const Gr=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grShow=fe(this,"gr-show",7),this.grAfterShow=fe(this,"gr-after-show",7),this.grHide=fe(this,"gr-hide",7),this.grAfterHide=fe(this,"gr-after-hide",7),this.componentId="dropdown-"+ ++Qr,this.isVisible=!1,this.open=!1,this.placement="bottom-start",this.closeOnSelect=!0,this.containingElement=void 0,this.distance=2,this.skidding=0,this.hoist=!1}handleOpenChange(){this.open?this.show():this.hide(),this.updateAccessibleTrigger()}handlePopoverOptionsChange(){this.popoverElement.setOptions({strategy:this.hoist?"fixed":"absolute",placement:this.placement,distance:this.distance,skidding:this.skidding})}connectedCallback(){this.containingElement||(this.containingElement=this.el),this.handleDocumentKeyDown=this.handleDocumentKeyDown.bind(this),this.handleDocumentMouseDown=this.handleDocumentMouseDown.bind(this),this.handleMenuItemActivate=this.handleMenuItemActivate.bind(this),this.handlePanelSelect=this.handlePanelSelect.bind(this),this.handleTriggerClick=this.handleTriggerClick.bind(this),this.handleTriggerKeyDown=this.handleTriggerKeyDown.bind(this),this.handleTriggerKeyUp=this.handleTriggerKeyUp.bind(this),this.handleTriggerSlotChange=this.handleTriggerSlotChange.bind(this)}componentDidLoad(){this.popoverElement=new Yr(this.trigger,this.positioner,{strategy:this.hoist?"fixed":"absolute",placement:this.placement,distance:this.distance,skidding:this.skidding,transitionElement:this.panel,onAfterHide:()=>this.grAfterHide.emit(),onAfterShow:()=>this.grAfterShow.emit(),onTransitionEnd:()=>{this.open||(this.panel.scrollTop=0)}}),this.open&&this.show()}disconnectedCallback(){this.hide(),this.popoverElement.destroy()}async show(){if(this.isVisible)return;this.grShow.emit().defaultPrevented?this.open=!1:(this.panel.addEventListener("gr-activate",this.handleMenuItemActivate),this.panel.addEventListener("gr-select",this.handlePanelSelect),document.addEventListener("keydown",this.handleDocumentKeyDown),document.addEventListener("mousedown",this.handleDocumentMouseDown),this.isVisible=!0,this.open=!0,this.popoverElement.show())}async hide(){if(!this.isVisible)return;this.grHide.emit().defaultPrevented?this.open=!0:(this.panel.removeEventListener("gr-activate",this.handleMenuItemActivate),this.panel.removeEventListener("gr-select",this.handlePanelSelect),document.addEventListener("keydown",this.handleDocumentKeyDown),document.removeEventListener("mousedown",this.handleDocumentMouseDown),this.isVisible=!1,this.open=!1,this.popoverElement.hide())}async focusOnTrigger(){const e=this.trigger.querySelector("slot").assignedElements({flatten:!0})[0];e&&("function"==typeof e.setFocus?e.setFocus():"function"==typeof e.focus&&e.focus())}getMenu(){return this.panel.querySelector("slot").assignedElements({flatten:!0}).filter((e=>"gr-menu"===e.tagName.toLowerCase()))[0]}handleDocumentKeyDown(e){var t;if("Escape"===e.key)return this.hide(),void this.focusOnTrigger();if("Tab"===e.key){if(this.open&&"gr-menu-item"===(null===(t=document.activeElement)||void 0===t?void 0:t.tagName.toLowerCase()))return e.preventDefault(),this.hide(),void this.focusOnTrigger();setTimeout((()=>{var e;const t=this.containingElement.getRootNode()instanceof ShadowRoot?null===(e=document.activeElement.shadowRoot)||void 0===e?void 0:e.activeElement:document.activeElement;(null==t?void 0:t.closest(this.containingElement.tagName.toLowerCase()))===this.containingElement||this.hide()}))}}handleDocumentMouseDown(e){e.composedPath().includes(this.containingElement)||this.hide()}handleMenuItemActivate(e){Mt(e.target,this.panel)}handlePanelSelect(e){const t=e.target;this.closeOnSelect&&"gr-menu"===t.tagName.toLowerCase()&&(this.hide(),this.focusOnTrigger())}handleTriggerClick(){this.open?this.hide():this.show()}handleTriggerKeyDown(e){const t=this.getMenu(),r=t?[...t.querySelectorAll("gr-menu-item")]:null,i=r[0],o=r[r.length-1];if("Escape"===e.key)return this.focusOnTrigger(),void this.hide();if([" ","Enter"].includes(e.key))return e.preventDefault(),void(this.open?this.hide():this.show());if(["ArrowDown","ArrowUp"].includes(e.key)){if(e.preventDefault(),this.open||this.show(),"ArrowDown"===e.key&&i)return void i.setFocus();if("ArrowUp"===e.key&&o)return void o.setFocus()}this.open&&t&&!["Tab","Shift","Meta","Ctrl","Alt"].includes(e.key)&&t.typeToSelect(e.key)}handleTriggerKeyUp(e){" "===e.key&&e.preventDefault()}handleTriggerSlotChange(){this.updateAccessibleTrigger()}updateAccessibleTrigger(){const e=this.trigger.querySelector("slot").assignedElements({flatten:!0}).map(Lt)[0];e&&(e.setAttribute("aria-haspopup","true"),e.setAttribute("aria-expanded",this.open?"true":"false"))}render(){return de(ge,{id:this.componentId,class:{"dropdown-open":this.open}},de("span",{class:"dropdown-trigger",ref:e=>this.trigger=e,onClick:this.handleTriggerClick,onKeyDown:this.handleTriggerKeyDown,onKeyUp:this.handleTriggerKeyUp},de("slot",{name:"trigger",onSlotchange:this.handleTriggerSlotChange})),de("div",{ref:e=>this.positioner=e,class:"dropdown-positioner"},de("div",{ref:e=>this.panel=e,class:"dropdown-panel",role:"menu","aria-hidden":this.open?"false":"true","aria-labelledby":this.componentId},de("slot",null))))}get el(){return this}static get watchers(){return{open:["handleOpenChange"],distance:["handlePopoverOptionsChange"],hoist:["handlePopoverOptionsChange"],placement:["handlePopoverOptionsChange"],skidding:["handlePopoverOptionsChange"]}}static get style(){return".gr-scroll-lock{overflow:hidden !important}:host{--panel-background-color:var(--gr-color-white);--panel-border-radius:var(--gr-border-radius-medium);--panel-border-color:var(--gr-panel-border-color);--panel-box-shadow:var(--gr-shadow-large);--transition:150ms opacity, 150ms transform;display:inline-block;position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}.dropdown-trigger{display:block}.dropdown-positioner{position:absolute;z-index:var(--gr-z-index-dropdown)}.dropdown-panel{max-height:50vh;font-family:var(--gr-font-family);font-size:var(--gr-font-size-medium);font-weight:var(--gr-font-weight-normal);background-color:var(--panel-background-color);border:solid 1px var(--panel-border-color);border-radius:var(--panel-border-radius);box-shadow:var(--panel-box-shadow);opacity:0;overflow:auto;overscroll-behavior:none;pointer-events:none;transform:scale(0.9);transition:var(--transition)}.dropdown-positioner[data-popper-placement^=top] .dropdown-panel{transform-origin:bottom}.dropdown-positioner[data-popper-placement^=bottom] .dropdown-panel{transform-origin:top}.dropdown-positioner[data-popper-placement^=left] .dropdown-panel{transform-origin:right}.dropdown-positioner[data-popper-placement^=right] .dropdown-panel{transform-origin:left}.dropdown-positioner.popover-visible .dropdown-panel{opacity:1;transform:none;pointer-events:all}"}},[1,"gr-dropdown",{open:[1540],placement:[1],closeOnSelect:[4,"close-on-select"],containingElement:[1040],distance:[2],skidding:[2],hoist:[4],show:[64],hide:[64],focusOnTrigger:[64]}]);function Xr(){if("undefined"==typeof customElements)return;["gr-dropdown"].forEach((e=>{if("gr-dropdown"===e)customElements.get(e)||customElements.define(e,Gr)}))}Xr(); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +const Zr=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grSelect=fe(this,"gr-select",7),this.typeToSelectString=""}connectedCallback(){this.handleClick=this.handleClick.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}async typeToSelect(e){clearTimeout(this.typeToSelectTimeout),this.typeToSelectTimeout=setTimeout((()=>this.typeToSelectString=""),750),this.typeToSelectString+=e.toLowerCase();const t=this.getItems();for(const e of t){if(kt(e.shadowRoot.querySelector("slot:not([name])")).toLowerCase().trim().substring(0,this.typeToSelectString.length)===this.typeToSelectString){e.setFocus();break}}}getItems(){return[...this.menu.querySelector("slot").assignedElements({flatten:!0})].filter((e=>"gr-menu-item"===e.tagName.toLowerCase()&&!e.disabled))}getActiveItem(){return this.getItems().find((e=>e===document.activeElement))}setActiveItem(e){e.setFocus()}handleClick(e){const t=e.target.closest("gr-menu-item");t&&!t.disabled&&this.grSelect.emit({item:t})}handleKeyDown(e){if("Enter"===e.key){const t=this.getActiveItem();e.preventDefault(),t&&this.grSelect.emit({item:t})}if(" "===e.key&&e.preventDefault(),["ArrowDown","ArrowUp","Home","End"].includes(e.key)){const t=this.getItems(),r=this.getActiveItem();let i=t.indexOf(r);if(t.length)return e.preventDefault(),"ArrowDown"===e.key?i++:"ArrowUp"===e.key?i--:"Home"===e.key?i=0:"End"===e.key&&(i=t.length-1),i<0&&(i=0),i>t.length-1&&(i=t.length-1),void this.setActiveItem(t[i])}this.typeToSelect(e.key)}render(){return de("div",{ref:e=>this.menu=e,class:"menu",role:"menu",onClick:this.handleClick,onKeyDown:this.handleKeyDown},de("slot",null))}static get style(){return".gr-scroll-lock{overflow:hidden !important}:host{--padding-top:var(--gr-spacing-x-small);--padding-bottom:var(--gr-spacing-x-small);display:block;padding-top:var(--padding-top);padding-left:0;padding-right:0;padding-bottom:var(--padding-bottom);box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host:focus{outline:none}"}},[1,"gr-menu",{typeToSelect:[64]}]);function Jr(){if("undefined"==typeof customElements)return;["gr-menu"].forEach((e=>{if("gr-menu"===e)customElements.get(e)||customElements.define(e,Zr)}))}Jr(); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +const ei=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grClear=fe(this,"gr-clear",7),this.type="primary",this.size="medium",this.pill=!1,this.clearable=!1,this.truncate=!1,this.title=""}connectedCallback(){this.handleClearClick=this.handleClearClick.bind(this)}handleClearClick(){this.grClear.emit()}render(){return de(ge,{class:{[`tag-${this.type}`]:!0,[`tag-${this.size}`]:!0,"tag-pill":this.pill,"tag-clearable":this.clearable}},de("span",{class:"tag"},de("span",{class:{"tag-truncate":this.truncate},title:this.title},de("slot",null)),this.clearable&&de("gr-button",{variant:"plain",size:this.size,class:"tag-clear","aria-label":"clear",onClick:this.handleClearClick},de("svg",{slot:"icon-only",role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Close"),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M368 368L144 144M368 144L144 368"})))))}static get style(){return":host{--height:calc(var(--gr-form-element-height-medium) * 0.8);--line-height:calc(var(--gr-form-element-height-medium) - 1px * 2);--border-radius:var(--gr-form-element-border-radius-medium);--border-width:1px;--border-style:solid;--padding-top:0;--padding-start:var(--gr-spacing-small);--padding-end:var(--gr-spacing-small);--padding-bottom:0;--font-size:var(--gr-form-element-font-size-medium);--background-color:rgba(var(--gr-color-primary-rgb), 0.05);--border-color:rgba(var(--gr-color-primary-rgb), 0.2);--color:var(--gr-color-primary-shade);--clear-color:var(--gr-color-primary);--clear-color-hover:var(--gr-color-primary-shade);--clear-margin-left:var(--gr-spacing-xx-small);--clear-margin-right:calc(-1 * var(--gr-spacing-xxx-small));display:inline-block;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host(.tag-success){--background-color:rgba(var(--gr-color-success-rgb), 0.05);--border-color:rgba(var(--gr-color-success-rgb), 0.2);--color:var(--gr-color-success-shade);--clear-color:var(--gr-color-success);--clear-color-hover:var(--gr-color-success-shade)}:host(.tag-info){--background-color:rgba(var(--gr-color-medium-rgb), 0.05);--border-color:rgba(var(--gr-color-medium-rgb), 0.2);--color:var(--gr-color-medium-shade);--clear-color:var(--gr-color-medium);--clear-color-hover:var(--gr-color-medium-shade)}:host(.tag-warning){--background-color:rgba(var(--gr-color-warning-rgb), 0.05);--border-color:rgba(var(--gr-color-warning-rgb), 0.2);--color:var(--gr-color-warning-shade);--clear-color:var(--gr-color-warning);--clear-color-hover:var(--gr-color-warning-shade)}:host(.tag-danger){--background-color:rgba(var(--gr-color-danger-rgb), 0.05);--border-color:rgba(var(--gr-color-danger-rgb), 0.2);--color:var(--gr-color-danger-shade);--clear-color:var(--gr-color-danger);--clear-color-hover:var(--gr-color-danger-shade)}:host(.tag-small){--font-size:var(--gr-form-element-font-size-small);--height:calc(var(--gr-form-element-height-small) * 0.8);--line-height:calc(var(--gr-form-element-height-small) - 1px * 2);--border-radius:var(--gr-form-element-border-radius-small);--padding-start:var(--gr-spacing-x-small);--padding-end:var(--gr-spacing-x-small);--clear-margin-left:var(--gr-spacing-xx-small);--clear-margin-right:calc(-1 * var(--gr-spacing-xxx-small))}:host(.tag-large){--font-size:var(--gr-form-element-font-size-large);--height:calc(var(--gr-form-element-height-large) * 0.8);--line-height:calc(var(--gr-form-element-height-large) - 1px * 2);--border-radius:var(--gr-form-element-border-radius-large);--padding:0 var(--gr-spacing-medium);--clear-margin-left:var(--gr-spacing-xx-small);--clear-margin-right:calc(-1 * var(--gr-spacing-x-small))}.tag{display:flex;align-items:center;border-style:var(--border-style);border-width:var(--border-width);border-radius:var(--border-radius);white-space:nowrap;user-select:none;cursor:default;font-family:var(--gr-font-family);font-size:var(--font-size);font-weight:var(--gr-font-weight-normal);height:var(--height);line-height:var(--line-height);padding-top:var(--padding-top);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-bottom:var(--padding-bottom);background-color:var(--background-color);border-color:var(--border-color);color:var(--color)}.tag-clear{--color:var(--clear-color);--color-hover:var(--clear-color-hover);--padding-start:0;--padding-end:0;margin-left:var(--clear-margin-left);margin-right:var(--clear-margin-right);--height:1em}.tag-clear svg{font-size:0.7em}.tag-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-clear svg{width:1.1em;height:1.1em}:host(.tag-pill) .tag{border-radius:var(--height)}"}},[1,"gr-tag",{type:[513],size:[513],pill:[516],clearable:[516],truncate:[516],title:[513]}]);function ti(){if("undefined"==typeof customElements)return;["gr-tag","gr-button","gr-spinner"].forEach((e=>{switch(e){case"gr-tag":customElements.get(e)||customElements.define(e,ei);break;case"gr-button":customElements.get(e)||St();break;case"gr-spinner":customElements.get(e)||Et()}}))}ti(); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +const ri="undefined"!=typeof HTMLElement?HTMLElement:class{};let ii=0;const oi=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grChange=fe(this,"gr-change",7),this.grFocus=fe(this,"gr-focus",7),this.grBlur=fe(this,"gr-blur",7),this.inputId="select-"+ ++ii,this.labelId=`select-label-${ii}`,this.helpTextId=`select-help-text-${ii}`,this.invalidTextId=`select-invalid-text-${ii}`,this.inheritedAttributes={},this.handleBlur=()=>{this.isOpen||(this.hasFocus=!1,this.grBlur.emit())},this.handleFocus=()=>{this.hasFocus||(this.hasFocus=!0,this.grFocus.emit())},this.hasFocus=!1,this.hasHelpTextSlot=!1,this.hasInvalidTextSlot=!1,this.hasLabelSlot=!1,this.isOpen=!1,this.items=[],this.displayLabel="",this.displayTags=[],this.multiple=!1,this.maxTagsVisible=3,this.disabled=!1,this.name="",this.placeholder="",this.size="medium",this.hoist=!1,this.value="",this.pill=!1,this.label="",this.requiredIndicator=!1,this.helpText="",this.invalidText="",this.invalid=!1,this.clearable=!1}handleDisabledChange(){this.disabled&&this.isOpen&&this.dropdown.hide()}handleLabelChange(){this.handleSlotChange()}handleMultipleChange(){const e=this.getValueAsArray();this.value=this.multiple?e:e[0]||"",this.syncItemsFromValue()}handleValueChange(){this.syncItemsFromValue(),this.grChange.emit()}connectedCallback(){this.handleClearClick=this.handleClearClick.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleLabelClick=this.handleLabelClick.bind(this),this.handleMenuHide=this.handleMenuHide.bind(this),this.handleMenuShow=this.handleMenuShow.bind(this),this.handleMenuSelect=this.handleMenuSelect.bind(this),this.handleSlotChange=this.handleSlotChange.bind(this),this.handleTagInteraction=this.handleTagInteraction.bind(this),this.el.shadowRoot.addEventListener("slotchange",this.handleSlotChange)}componentWillLoad(){this.handleSlotChange(),this.inheritedAttributes=Ct(this.el,["aria-label"])}componentDidLoad(){this.resizeObserver=new ResizeObserver((()=>this.resizeMenu())),this.reportDuplicateItemValues(),requestAnimationFrame((()=>this.syncItemsFromValue()))}disconnectedCallback(){this.el.shadowRoot.removeEventListener("slotchange",this.handleSlotChange)}async setFocus(){this.hasFocus=!0,this.grFocus.emit(),this.dropdown.focusOnTrigger()}getItemLabel(e){return kt(e.shadowRoot.querySelector("slot:not([name])"))}getItems(){return[...this.el.querySelectorAll("gr-menu-item")]}getValueAsArray(){return Array.isArray(this.value)?this.value:[this.value]}handleClearClick(e){e.stopPropagation(),this.value=this.multiple?[]:"",this.syncItemsFromValue()}handleKeyDown(e){const t=e.target,r=this.getItems(),i=r[0],o=r[r.length-1];if("gr-tag"!==t.tagName.toLowerCase())if("Tab"!==e.key){if(["ArrowDown","ArrowUp"].includes(e.key)){if(e.preventDefault(),this.isOpen||this.dropdown.show(),"ArrowDown"===e.key&&i)return void i.setFocus();if("ArrowUp"===e.key&&o)return void o.setFocus()}this.isOpen||1!==e.key.length||(e.stopPropagation(),e.preventDefault(),this.dropdown.show(),this.menu.typeToSelect(e.key))}else this.isOpen&&this.dropdown.hide()}handleLabelClick(){this.box.focus()}handleMenuSelect(e){const t=e.detail.item;this.multiple?this.value=this.value.includes(t.value)?this.value.filter((e=>e!==t.value)):[...this.value,t.value]:this.value=t.value,this.syncItemsFromValue()}handleMenuShow(e){this.disabled?e.preventDefault():(this.resizeMenu(),this.resizeObserver.observe(this.el),this.isOpen=!0)}handleMenuHide(){this.resizeObserver.unobserve(this.el),this.isOpen=!1,this.box.focus()}handleSlotChange(){this.hasHelpTextSlot=_t(this.el,"help-text"),this.hasInvalidTextSlot=_t(this.el,"invalid-text"),this.hasLabelSlot=_t(this.el,"label"),this.syncItemsFromValue(),this.reportDuplicateItemValues()}handleTagInteraction(e){e.composedPath().find((e=>{if(e instanceof ri)return e.classList.contains("tag-clear")}))&&e.stopPropagation()}reportDuplicateItemValues(){const e=this.getItems().map((e=>e.value)).filter(((e,t,r)=>r.indexOf(e)!==t));if(e.length)throw new Error('Duplicate value found on in : "'+e.join('", "')+'"')}resizeMenu(){this.menu.style.width=`${this.box.clientWidth}px`}syncItemsFromValue(){const e=this.getItems(),t=this.getValueAsArray();if(e.map((e=>e.checked=t.includes(e.value))),this.multiple){const r=[];if(t.map((t=>e.map((e=>e.value===t?r.push(e):null)))),this.displayTags=r.map((e=>de("gr-tag",{type:"info",size:this.size,pill:this.pill,clearable:!0,onClick:this.handleTagInteraction,onKeyDown:this.handleTagInteraction,"onGr-clear":t=>{t.stopPropagation(),this.disabled||(e.checked=!1,this.syncValueFromItems())}},this.getItemLabel(e)))),this.maxTagsVisible>0&&this.displayTags.length>this.maxTagsVisible){const e=this.displayTags.length;this.displayLabel="",this.displayTags=this.displayTags.slice(0,this.maxTagsVisible),this.displayTags.push(de("gr-tag",{type:"info",size:this.size,pill:this.pill},"+",e-this.maxTagsVisible))}}else{const r=e.filter((e=>e.value===t[0]))[0];this.displayLabel=r?this.getItemLabel(r):"",this.displayTags=[]}}syncValueFromItems(){const e=this.getItems().filter((e=>e.checked)).map((e=>e.value));this.multiple?this.value=this.value.filter((t=>e.includes(t))):this.value=e.length>0?e[0]:""}render(){var e;const t=this.multiple?this.value.length>0:""!==this.value,r=this.inheritedAttributes["aria-label"]?{"aria-label":this.inheritedAttributes["aria-label"]}:{"aria-labelledby":this.labelId};return((e,t,r,i)=>{let o=e.querySelector("input.aux-input");o||(o=e.ownerDocument.createElement("input"),o.type="hidden",o.classList.add("aux-input"),e.appendChild(o)),o.disabled=i,o.name=t,o.value=r||""})(this.el,this.name,ni(this.value),this.disabled),de(xt,{inputId:this.inputId,label:this.label,labelId:this.labelId,hasLabelSlot:this.hasLabelSlot,helpTextId:this.helpTextId,helpText:this.helpText,hasHelpTextSlot:this.hasHelpTextSlot,invalidTextId:this.invalidTextId,invalidText:this.invalidText,invalid:this.invalid,hasInvalidTextSlot:this.hasInvalidTextSlot,size:this.size,onLabelClick:this.handleLabelClick,requiredIndicator:this.requiredIndicator},de("gr-dropdown",{ref:e=>this.dropdown=e,hoist:this.hoist,closeOnSelect:!this.multiple,containingElement:this.el,class:{select:!0,"select-open":this.isOpen,"select-empty":0===(null===(e=this.value)||void 0===e?void 0:e.length),"select-focused":this.hasFocus,"select-clearable":this.clearable,"select-disabled":this.disabled,"select-multiple":this.multiple,"select-has-tags":this.multiple&&t,"select-placeholder-visible":""===this.displayLabel,[`select-${this.size}`]:!0,"select-pill":this.pill,"select-invalid":this.invalid},"onGr-show":this.handleMenuShow,"onGr-hide":this.handleMenuHide},de("div",Object.assign({slot:"trigger",ref:e=>this.box=e,id:this.inputId,class:"select-box",role:"combobox"},r,{"aria-describedby":this.invalid?this.invalidTextId:this.helpTextId,"aria-haspopup":"true","aria-expanded":this.isOpen?"true":"false","aria-invalid":this.invalid?"true":"false","aria-required":this.requiredIndicator?"true":"false",tabIndex:this.disabled?-1:0,onBlur:this.handleBlur,onFocus:this.handleFocus,onKeyDown:this.handleKeyDown}),de("div",{class:"select-label"},this.displayTags.length?de("span",{class:"select-tags"},this.displayTags):this.displayLabel||this.placeholder),this.clearable&&t&&de("button",{class:"select-clear",type:"button",onClick:this.handleClearClick,"aria-label":"clear",tabindex:"-1"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Close Circle"),de("path",{d:"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z",fill:"none",stroke:"currentColor","stroke-miterlimit":"10","stroke-width":"32"}),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M320 320L192 192M192 320l128-128"}))),de("span",{class:"caret"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Chevron Down"),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"48",d:"M112 184l144 144 144-144"}))),de("input",{class:"select-hidden-select","aria-hidden":"true",value:t?"1":"",tabIndex:-1})),de("gr-menu",{ref:e=>this.menu=e,class:"select-menu","onGr-select":this.handleMenuSelect},de("slot",{onSlotchange:this.handleSlotChange}))))}get el(){return this}static get watchers(){return{disabled:["handleDisabledChange"],helpText:["handleLabelChange"],invalidText:["handleLabelChange"],label:["handleLabelChange"],multiple:["handleMultipleChange"],value:["handleValueChange"]}}static get style(){return".form-control .form-control-label{display:none}.form-control .form-control-help-text{display:none}.form-control .form-control-invalid-text{display:none}.form-control-has-label .form-control-label{display:flex;line-height:var(--gr-line-height-normal);color:var(--gr-form-element-label-color);margin-bottom:var(--gr-spacing-xxx-small)}.form-control-has-label.form-control-small .form-control-label{font-size:var(--gr-form-element-label-font-size-small)}.form-control-has-label.form-control-medium .form-control-label{font-size:var(--gr-form-element-label-font-size-medium)}.form-control-has-label.form-control-large .form-control-label{font-size:var(--gr-form-element-label-font-size-large)}.form-control-has-label .form-control-label .asterisk{margin-left:var(--gr-spacing-x-small);color:var(--gr-color-medium)}.form-control-has-label .form-control-label .asterisk svg{width:0.6em;height:0.6em;margin-bottom:var(--gr-spacing-xxx-small)}.form-control-has-help-text .form-control-help-text{display:block;line-height:var(--gr-line-height-normal);color:var(--gr-form-element-help-text-color);margin-top:var(--gr-spacing-xxx-small)}.form-control-has-help-text.form-control-small .form-control-help-text{font-size:var(--gr-form-element-help-text-font-size-small);min-height:1.625rem}.form-control-has-help-text.form-control-medium .form-control-help-text{font-size:var(--gr-form-element-help-text-font-size-medium);min-height:1.875rem}.form-control-has-help-text.form-control-large .form-control-help-text{font-size:var(--gr-form-element-help-text-font-size-large);min-height:2.125rem}.form-control-has-invalid-text .form-control-invalid-text{display:flex;margin-left:-2px;line-height:var(--gr-line-height-normal);color:var(--gr-form-element-invalid-text-color);margin-top:var(--gr-spacing-xxx-small)}.form-control-has-invalid-text .form-control-invalid-text .icon{margin-top:var(--gr-spacing-xxx-small);margin-right:var(--gr-spacing-xx-small)}.form-control-has-invalid-text .form-control-invalid-text .icon svg{width:1.4em;height:1.4em}.form-control-has-invalid-text.form-control-small .form-control-invalid-text{font-size:var(--gr-form-element-invalid-text-font-size-small);min-height:1.625rem}.form-control-has-invalid-text.form-control-medium .form-control-invalid-text{font-size:var(--gr-form-element-invalid-text-font-size-medium);min-height:1.875rem}.form-control-has-invalid-text.form-control-large .form-control-invalid-text{font-size:var(--gr-form-element-invalid-text-font-size-large);min-height:2.125rem}.gr-scroll-lock{overflow:hidden !important}:host{--font-size:var(--gr-form-element-font-size-medium);--font-weight:var(--gr-font-weight-normal);--background-color:var(--gr-color-white);--background-color-hover:var(--gr-color-white);--background-color-focus:var(--gr-color-white);--background-color-invalid:var(--gr-color-white);--background-color-invalid-hover:var(--gr-color-white);--border-radius:var(--gr-form-element-border-radius-small);--border-color:var(--gr-color-light-shade);--border-color-hover:var(--gr-color-medium);--border-color-focus:var(--gr-color-primary);--border-color-invalid:var(--gr-color-danger);--border-color-invalid-hover:var(--gr-color-danger-shade);--color:var(--gr-color-dark-tint);--placeholder-color:var(--gr-color-medium-tint);--min-height:var(--gr-form-element-height-medium);--label-margin-start:var(--gr-spacing-medium);--label-margin-end:var(--gr-spacing-medium);--clear-icon-margin-end:var(--gr-spacing-medium);--caret-margin-end:var(--gr-spacing-medium);--tags-padding-top:3px;--tags-padding-bottom:3px;--tags-margin-end:var(--gr-spacing-xx-small);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33);display:block;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}.select-small{--font-size:var(--gr-form-element-font-size-small);--min-height:var(--gr-form-element-height-small);--label-margin-start:var(--gr-spacing-small);--label-margin-end:var(--gr-spacing-small);--clear-icon-margin-end:var(--gr-spacing-small);--caret-margin-end:var(--gr-spacing-small);--tags-padding-top:2px;--tags-padding-bottom:2px}.select-large{--font-size:var(--gr-form-element-font-size-large);--min-height:var(--gr-form-element-height-large);--label-margin-start:var(--gr-spacing-large);--label-margin-end:var(--gr-spacing-large);--clear-icon-margin-end:var(--gr-spacing-large);--caret-margin-end:var(--gr-spacing-large);--tags-padding-top:4px;--tags-padding-bottom:4px}.select{display:block}.select-box{display:inline-flex;align-items:center;justify-content:start;position:relative;width:100%;font-family:var(--gr-font-family);font-size:var(--font-size);font-weight:var(--font-weight);letter-spacing:normal;background-color:var(--background-color);border:solid 1px var(--border-color);border-radius:var(--border-radius);min-height:var(--min-height);color:var(--color);vertical-align:middle;overflow:hidden;transition:150ms color, 150ms border, 150ms box-shadow;cursor:pointer}.select.select-invalid:not(.select-disabled) .select-box{background-color:var(--background-color-invalid);border-color:var(--border-color-invalid)}.select.select-invalid:not(.select-disabled):not(.select-focused) .select-box:hover{background-color:var(--background-color-invalid-hover);border-color:var(--border-color-invalid-hover)}.select.select-invalid:not(.select-disabled) .select-box{background-color:var(--background-color-invalid);border-color:var(--border-color-invalid)}.select:not(.select-disabled) .select-box:hover{background-color:var(--background-color-hover);border-color:var(--border-color-hover)}.select.select-focused:not(.select-disabled) .select-box{outline:none;box-shadow:var(--focus-ring);border-color:var(--border-color-focus);background-color:var(--background-color-focus)}.select-disabled .select-box{opacity:0.5;cursor:not-allowed;outline:none}.select-disabled .select-tags,.select-disabled .select-clear{pointer-events:none}.select-label{flex:1 1 auto;display:flex;align-items:center;user-select:none;margin-top:0;margin-left:var(--label-margin-start);margin-right:var(--label-margin-end);margin-bottom:0;scrollbar-width:none;-ms-overflow-style:none;overflow-x:auto;overflow-y:hidden;white-space:nowrap}.select-label::-webkit-scrollbar{width:0;height:0}.select-has-tags .select-label{margin-left:0}.select-clear{display:inline-flex;align-items:center;font-size:inherit;color:var(--gr-color-medium);border:none;background:none;padding:0;transition:150ms color;cursor:pointer;margin-right:var(--clear-icon-margin-end)}.select-clear:hover{color:var(--gr-color-dark)}.select-clear:focus{outline:none}.select-clear svg{width:1.2em;height:1.2em;font-size:var(--font-size)}.caret{flex:0 0 auto;display:inline-flex;transition:250ms transform ease;margin-right:var(--caret-margin-end)}.caret svg{width:1em;height:1em;font-size:var(--font-size)}.select-open .caret{transform:rotate(-180deg)}.select-placeholder-visible .select-label{color:var(--placeholder-color)}.select-tags{display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:left;margin-left:var(--gr-spacing-xx-small);padding-bottom:var(--tags-padding-bottom)}.select-tags gr-tag{padding-top:var(--tags-padding-top)}.select-tags gr-tag:not(:last-of-type){margin-right:var(--tags-margin-end)}.select-hidden-select{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px;position:absolute;top:0;left:0;width:100%;height:100%}.select-pill .select-box{border-radius:var(--min-height)}"}},[1,"gr-select",{multiple:[4],maxTagsVisible:[2,"max-tags-visible"],disabled:[4],name:[1],placeholder:[1],size:[1],hoist:[4],value:[1025],pill:[4],label:[1],requiredIndicator:[4,"required-indicator"],helpText:[1,"help-text"],invalidText:[1,"invalid-text"],invalid:[516],clearable:[4],hasFocus:[32],hasHelpTextSlot:[32],hasInvalidTextSlot:[32],hasLabelSlot:[32],isOpen:[32],items:[32],displayLabel:[32],displayTags:[32],setFocus:[64]}]),ni=e=>{if(null!=e)return Array.isArray(e)?e.join(","):e.toString()};!function(){if("undefined"==typeof customElements)return;["gr-select","gr-button","gr-dropdown","gr-menu","gr-spinner","gr-tag"].forEach((e=>{switch(e){case"gr-select":customElements.get(e)||customElements.define(e,oi);break;case"gr-button":customElements.get(e)||St();break;case"gr-dropdown":customElements.get(e)||Xr();break;case"gr-menu":customElements.get(e)||Jr();break;case"gr-spinner":customElements.get(e)||Et();break;case"gr-tag":customElements.get(e)||ti()}}))}();const ai=oi,si=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.hasFocus=!1,this.checked=!1,this.value="",this.disabled=!1}connectedCallback(){this.handleBlur=this.handleBlur.bind(this),this.handleFocus=this.handleFocus.bind(this),this.handleMouseEnter=this.handleMouseEnter.bind(this),this.handleMouseLeave=this.handleMouseLeave.bind(this)}async setFocus(e){this.el.focus(e)}async removeFocus(){this.el.blur()}handleBlur(){this.hasFocus=!1}handleFocus(){this.hasFocus=!0}handleMouseEnter(){this.setFocus()}handleMouseLeave(){this.removeFocus()}render(){return de(ge,{class:{"menu-item-checked":this.checked,"menu-item-disabled":this.disabled,"menu-item-focused":this.hasFocus},role:"menuitem","aria-disabled":this.disabled?"true":"false","aria-checked":this.checked?"true":"false",tabIndex:this.disabled?null:0,onFocus:this.handleFocus,onBlur:this.handleBlur,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave},de("span",{class:"checkmark"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Checkmark"),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M416 128L192 384l-96-96"}))),de("span",{class:"start"},de("slot",{name:"start"})),de("span",{class:"label"},de("slot",null)),de("span",{class:"end"},de("slot",{name:"end"})))}get el(){return this}static get style(){return".gr-scroll-lock{overflow:hidden !important}:host{--line-height:var(--gr-line-height-normal);--background-color:transparent;--background-color-focused:var(--gr-color-primary);--color:var(--gr-color-dark);--color-focused:var(--gr-color-primary-contrast);--color-disabled:var(--gr-color-medium);--padding-top:var(--gr-spacing-xx-small);--padding-start:var(--gr-spacing-x-large);--padding-end:var(--gr-spacing-x-large);--padding-bottom:var(--gr-spacing-xx-small);--transition:background-color 150ms linear, color 150ms linear;position:relative;display:flex;align-items:stretch;font-family:var(--gr-font-family);font-size:var(--gr-font-size-medium);font-weight:var(--gr-font-weight-normal);line-height:var(--line-height);letter-spacing:var(--gr-letter-spacing-normal);text-align:left;background-color:var(--background-color);color:var(--color);padding-top:var(--padding-top);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-bottom:var(--padding-bottom);transition:var(--transition);user-select:none;white-space:nowrap;cursor:pointer;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host(.menu-item-focused:not(.menu-item-disabled)){outline:none;background-color:var(--background-color-focused);color:var(--color-focused)}:host(.menu-item-disabled){outline:none;color:var(--color-disabled);cursor:not-allowed}.checkmark{display:flex;position:absolute;left:0.5em;top:calc(50% - 0.5em);visibility:hidden;align-items:center;font-size:inherit}.checkmark svg{display:inline-block;width:1.1em;height:1.1em;contain:strict;fill:currentcolor;box-sizing:content-box !important}:host(.menu-item-checked) .checkmark{visibility:visible}.label{flex:1 1 auto}.start{flex:0 0 auto;display:flex;align-items:center}.start ::slotted(:last-child){margin-right:0.5em}.end{flex:0 0 auto;display:flex;align-items:center}.end ::slotted(:first-child){margin-left:0.5em}"}},[1,"gr-menu-item",{checked:[516],value:[513],disabled:[516],hasFocus:[32],setFocus:[64],removeFocus:[64]}]); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */!function(){if("undefined"==typeof customElements)return;["gr-menu-item"].forEach((e=>{if("gr-menu-item"===e)customElements.get(e)||customElements.define(e,si)}))}();const li={"gr-select":ai,"gr-menu-item":si};class ci extends(P(_)){constructor(){super(...arguments),this.value=null,this.multiple=!1,this.clearable=!1,this._refSelect=y()}reset(){this.value=null}_valueChangedHandler(e){const t=this._refSelect.value?.value;if(void 0!==t&&!l(this.value,t)){const e=null===this.value;this.value=t,e||w(this,"select:change",t)}}willUpdate(e){e.has("initialValue")&&this.initialValue&&!this.value&&(this.value=this.initialValue)}render(){return $` + ${this.options?.map((e=>$`${e.label}`))} + `}static get styles(){return k(':root, :host {\n --gr-color-primary: #1079b2;\n --gr-color-primary-rgb: 16, 121, 178;\n --gr-color-primary-contrast: #ffffff;\n --gr-color-primary-contrast-rgb: 255, 255, 255;\n --gr-color-primary-shade: #0d6696;\n --gr-color-primary-tint: #1499e1;\n --gr-color-secondary: #051f2c;\n --gr-color-secondary-rgb: 5, 31, 44;\n --gr-color-secondary-contrast: #ffffff;\n --gr-color-secondary-contrast-rgb: 255, 255, 255;\n --gr-color-secondary-shade: #000000;\n --gr-color-secondary-tint: #0a415c;\n --gr-color-tertiary: #0c4a6e;\n --gr-color-tertiary-rgb: 12, 74, 110;\n --gr-color-tertiary-contrast: #ffffff;\n --gr-color-tertiary-contrast-rgb: 255, 255, 255;\n --gr-color-tertiary-shade: #083249;\n --gr-color-tertiary-tint: #106393;\n --gr-color-success: #0fbe78;\n --gr-color-success-rgb: 15, 190, 120;\n --gr-color-success-contrast: #000000;\n --gr-color-success-contrast-rgb: 0, 0, 0;\n --gr-color-success-shade: #057f4e;\n --gr-color-success-tint: #12e28f;\n --gr-color-warning: #fbbc4e;\n --gr-color-warning-rgb: 251, 188, 78;\n --gr-color-warning-contrast: #051f2c;\n --gr-color-warning-contrast-rgb: 5, 31, 44;\n --gr-color-warning-shade: #9e6400;\n --gr-color-warning-tint: #fdd187;\n --gr-color-danger: #e60017;\n --gr-color-danger-rgb: 230, 0, 23;\n --gr-color-danger-contrast: #ffffff;\n --gr-color-danger-contrast-rgb: 255, 255, 255;\n --gr-color-danger-shade: #cc0014;\n --gr-color-danger-tint: #ff1f35;\n --gr-color-light: #f4f5f8;\n --gr-color-light-rgb: 244, 245, 248;\n --gr-color-light-contrast: #051f2c;\n --gr-color-light-contrast-rgb: 5, 31, 44;\n --gr-color-light-shade: #d7d8da;\n --gr-color-light-tint: #f9fafb;\n --gr-color-medium: #5e6c78;\n --gr-color-medium-rgb: 94, 108, 120;\n --gr-color-medium-contrast: #ffffff;\n --gr-color-medium-contrast-rgb: 255, 255, 255;\n --gr-color-medium-shade: #48535b;\n --gr-color-medium-tint: #81909c;\n --gr-color-dark: #02131b;\n --gr-color-dark-rgb: 2, 19, 27;\n --gr-color-dark-contrast: #ffffff;\n --gr-color-dark-contrast-rgb: 255, 255, 255;\n --gr-color-dark-shade: #000000;\n --gr-color-dark-tint: #222428;\n --gr-color-white: #ffffff;\n --gr-color-black: #000000;\n --gr-border-radius-small: 0.125rem;\n --gr-border-radius-medium: 0.25rem;\n --gr-border-radius-large: 0.5rem;\n --gr-border-radius-x-large: 1rem;\n --gr-border-width-small: 0.063rem;\n --gr-border-width-medium: 0.125rem;\n --gr-border-width-large: 0.188rem;\n --gr-shadow-x-small: 0 1px 0 #0d131e0d;\n --gr-shadow-small: 0 1px 2px #0d131e1a;\n --gr-shadow-medium: 0 2px 4px #0d131e1a;\n --gr-shadow-large: 0 2px 8px #0d131e1a;\n --gr-shadow-x-large: 0 4px 16px #0d131e1a;\n --gr-spacing-xxx-small: 0.125rem;\n --gr-spacing-xx-small: 0.25rem;\n --gr-spacing-x-small: 0.5rem;\n --gr-spacing-small: 0.75rem;\n --gr-spacing-medium: 1rem;\n --gr-spacing-large: 1.25rem;\n --gr-spacing-x-large: 1.75rem;\n --gr-spacing-xx-large: 2.25rem;\n --gr-spacing-xxx-large: 3rem;\n --gr-spacing-xxxx-large: 4.5rem;\n --gr-font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial,\n sans-serif;\n --gr-letter-spacing-dense: -0.015em;\n --gr-letter-spacing-normal: normal;\n --gr-letter-spacing-loose: 0.075em;\n --gr-line-height-dense: 1.4;\n --gr-line-height-normal: 1.8;\n --gr-line-height-loose: 2.2;\n --gr-font-size-xx-small: 0.625rem;\n --gr-font-size-x-small: 0.75rem;\n --gr-font-size-small: 0.875rem;\n --gr-font-size-medium: 1rem;\n --gr-font-size-large: 1.25rem;\n --gr-font-size-x-large: 1.5rem;\n --gr-font-size-xx-large: 2.25rem;\n --gr-font-size-xxx-large: 3rem;\n --gr-font-size-xxxx-large: 4.5rem;\n --gr-font-weight-thin: 100;\n --gr-font-weight-extra-light: 200;\n --gr-font-weight-light: 300;\n --gr-font-weight-normal: 400;\n --gr-font-weight-medium: 500;\n --gr-font-weight-semi-bold: 600;\n --gr-font-weight-bold: 700;\n --gr-font-weight-extra-bold: 800;\n --gr-font-weight-black: 900;\n --gr-form-element-font-size-x-small: var(--gr-font-size-x-small);\n --gr-form-element-font-size-small: var(--gr-font-size-small);\n --gr-form-element-font-size-medium: var(--gr-font-size-medium);\n --gr-form-element-font-size-large: var(--gr-font-size-large);\n --gr-form-element-height-small: 2.188rem;\n --gr-form-element-height-medium: 3.125rem;\n --gr-form-element-height-large: 4.063rem;\n --gr-form-element-border-radius-small: var(--gr-border-radius-medium);\n --gr-form-element-border-radius-medium: var(--gr-border-radius-medium);\n --gr-form-element-border-radius-large: var(--gr-border-radius-medium);\n --gr-focus-ring-width: 2px;\n --gr-form-element-label-font-size-small: var(--gr-font-size-small);\n --gr-form-element-label-font-size-medium: var(--gr-font-size-medium);\n --gr-form-element-label-font-size-large: var(--gr-font-size-large);\n --gr-form-element-label-color: inherit;\n --gr-form-element-help-text-font-size-small: var(--gr-font-size-x-small);\n --gr-form-element-help-text-font-size-medium: var(--gr-font-size-small);\n --gr-form-element-help-text-font-size-large: var(--gr-font-size-medium);\n --gr-form-element-help-text-color: var(--gr-color-medium);\n --gr-form-element-invalid-text-font-size-small: var(--gr-font-size-x-small);\n --gr-form-element-invalid-text-font-size-medium: var(--gr-font-size-small);\n --gr-form-element-invalid-text-font-size-large: var(--gr-font-size-medium);\n --gr-form-element-invalid-text-color: var(--gr-color-danger);\n --gr-toggle-size: 1rem;\n --gr-panel-border-color: var(--gr-color-light-shade);\n --gr-z-index-dropdown: 900;\n}\n\n')}}ci.elementDefinitions={...li},f([v({attribute:!1,hasChanged:b})],ci.prototype,"options",void 0),f([v({attribute:!1,hasChanged:b})],ci.prototype,"value",void 0),f([v({attribute:!1,hasChanged:b})],ci.prototype,"initialValue",void 0),f([v({attribute:!0})],ci.prototype,"label",void 0),f([v({attribute:!0})],ci.prototype,"placeholder",void 0),f([v({attribute:!0,type:Boolean})],ci.prototype,"multiple",void 0),f([v({attribute:!0,type:Boolean})],ci.prototype,"clearable",void 0);let di=class extends(P(_)){constructor(){super(...arguments),this._mediaFilterController=new U(this),this._refMediaType=y(),this._refCamera=y(),this._refWhen=y(),this._refWhenFrom=y(),this._refWhenTo=y(),this._refWhat=y(),this._refWhere=y(),this._refFavorite=y(),this._refTags=y()}willUpdate(e){e.has("viewManagerEpoch")&&this._mediaFilterController.setViewManager(this.viewManagerEpoch?.manager??null),e.has("cameraManager")&&this.cameraManager&&(this._mediaFilterController.computeCameraOptions(this.cameraManager),this._mediaFilterController.computeMetadataOptions(this.cameraManager)),!e.get("viewManager")&&this.viewManagerEpoch&&this.cameraManager&&this._mediaFilterController.computeInitialDefaultsFromView(this.cameraManager)}render(){const e=async()=>{this.cameraManager&&this.viewManagerEpoch&&this.cardWideConfig&&await this._mediaFilterController.valueChangeHandler(this.cameraManager,this.cardWideConfig,{camera:this._refCamera.value?.value??void 0,mediaType:this._refMediaType.value?.value??void 0,when:{selected:this._refWhen.value?.value??void 0,from:this._refWhenFrom.value?.value,to:this._refWhenTo.value?.value},favorite:this._refFavorite.value?.value??void 0,where:this._refWhere.value?.value??void 0,what:this._refWhat.value?.value??void 0,tags:this._refTags.value?.value??void 0})},t=async t=>{"custom"===t&&this._refWhen.value?this._refWhenFrom.value?.value||this._refWhenTo.value?.value?this._refWhen.value.value=B.Custom:this._refWhen.value.reset():this._refWhen.value?.value!==B.Custom&&(this._refWhenFrom.value?.reset(),this._refWhenTo.value?.reset()),await e()};if(!this.cameraManager||!this.viewManagerEpoch)return;const r=this._mediaFilterController.getControlsToShow(this.cameraManager),o=this._mediaFilterController.getDefaults(),n=this._mediaFilterController.getWhatOptions(),a=this._mediaFilterController.getTagsOptions(),s=this._mediaFilterController.getWhereOptions();return $` e()} + > + +
    + t("selected")} + > + + t("custom")} + > + + t("custom")} + > + +
    + e()} + > + + ${r.events&&n.length?$` e()} + > + `:""} + ${r.events&&a.length?$` e()} + > + `:""} + ${r.events&&s.length?$` e()} + > + `:""} + ${r.favorites?$` + e()} + > + + `:""}`}static get styles(){return k(":host {\n display: flex;\n flex-direction: column;\n overflow: auto;\n scrollbar-width: none;\n -ms-overflow-style: none;\n height: 100%;\n width: 300px;\n margin: 5px;\n}\n\n/* Hide scrollbar for Chrome, Safari and Opera */\n:host::-webkit-scrollbar {\n display: none;\n}\n\nfrigate-card-select {\n padding: 5px;\n}\n\ndiv.when {\n display: inline-flex;\n align-items: flex-end;\n}\n\ndiv.when frigate-card-select {\n flex: 1;\n}\n\ndiv.when frigate-card-date-picker {\n padding-bottom: 5px;\n transition: width 0.5s ease-in-out;\n}\n\ndiv.when frigate-card-date-picker {\n color: var(--secondary-color);\n}\n\ndiv.when frigate-card-date-picker.selected {\n color: var(--primary-color);\n}\n\ndiv.when frigate-card-date-picker.hidden {\n width: 0px;\n}")}};di.elementDefinitions={"frigate-card-select":ci,"frigate-card-date-picker":R},f([v({attribute:!1})],di.prototype,"hass",void 0),f([v({attribute:!1})],di.prototype,"cameraManager",void 0),f([v({attribute:!1})],di.prototype,"viewManagerEpoch",void 0),f([v({attribute:!1})],di.prototype,"cardWideConfig",void 0),di=f([C("frigate-card-media-filter")],di);const hi={closed:"mdi:filter-cog-outline",open:"mdi:filter-cog"};let gi=class extends _{render(){const e=this.viewManagerEpoch?.manager.getView();if(this.hass&&e?.isGalleryView()&&this.cameraManager&&this.cardWideConfig)return $` + + ${this.galleryConfig&&"none"!==this.galleryConfig.controls.filter.mode?$` + `:""} + + + + `}static get styles(){return k(":host {\n width: 100%;\n height: 100%;\n display: block;\n}\n\nfrigate-card-surround-basic {\n max-height: 110dvh;\n}")}};f([v({attribute:!1})],gi.prototype,"hass",void 0),f([v({attribute:!1})],gi.prototype,"viewManagerEpoch",void 0),f([v({attribute:!1})],gi.prototype,"galleryConfig",void 0),f([v({attribute:!1})],gi.prototype,"cameraManager",void 0),f([v({attribute:!1})],gi.prototype,"cardWideConfig",void 0),gi=f([C("frigate-card-gallery")],gi);let ui=class extends _{constructor(){super(),this._refLoaderBottom=y(),this._refSelected=y(),this._showLoaderBottom=!0,this._showLoaderTop=!1,this._boundWheelHandler=this._wheelHandler.bind(this),this._boundTouchStartHandler=this._touchStartHandler.bind(this),this._boundTouchEndHandler=this._touchEndHandler.bind(this),this._throttleExtendGalleryLater=O(this._extendGallery.bind(this),500,{leading:!0,trailing:!1}),this._touchScrollYPosition=null,this._resizeObserver=new ResizeObserver(this._resizeHandler.bind(this)),this._intersectionObserver=new IntersectionObserver(this._intersectionHandler.bind(this))}_touchStartHandler(e){1===e.touches.length?this._touchScrollYPosition=e.touches[0].screenY:this._touchScrollYPosition=null}async _touchEndHandler(e){!this.scrollTop&&1===e.changedTouches.length&&this._touchScrollYPosition&&e.changedTouches[0].screenY>this._touchScrollYPosition&&await this._extendLater(),this._touchScrollYPosition=null}async _wheelHandler(e){!this.scrollTop&&e.deltaY<0&&await this._extendLater()}async _extendLater(){const e=new Date;this._showLoaderTop=!0,await this._throttleExtendGalleryLater("later",!1);const t=(new Date).getTime()-e.getTime();t<500&&await S(.5-t/1e3),this._showLoaderTop=!1}connectedCallback(){super.connectedCallback(),this._resizeObserver.observe(this),this.addEventListener("wheel",this._boundWheelHandler,{passive:!0}),this.addEventListener("touchstart",this._boundTouchStartHandler,{passive:!0}),this.addEventListener("touchend",this._boundTouchEndHandler),this.requestUpdate()}disconnectedCallback(){this.removeEventListener("wheel",this._boundWheelHandler),this.removeEventListener("touchstart",this._boundTouchStartHandler),this.removeEventListener("touchend",this._boundTouchEndHandler),this._resizeObserver.disconnect(),this._intersectionObserver.disconnect(),super.disconnectedCallback()}_setColumnCount(){const e=this.galleryConfig?.controls.thumbnails.size??M.media_gallery.controls.thumbnails.size,t=this.galleryConfig?.controls.thumbnails.show_details?Math.max(1,Math.floor(this.clientWidth/z)):Math.max(1,Math.ceil(this.clientWidth/e));this.style.setProperty("--frigate-card-gallery-columns",String(t))}_resizeHandler(){this._setColumnCount()}async _intersectionHandler(e){e.every((e=>!e.isIntersecting))||(this._showLoaderBottom=!1,await this._extendGallery("earlier"))}async _extendGallery(e,t=!0){const r=this.viewManagerEpoch?.manager.getView();if(!this.cameraManager||!this.hass||!r)return;const i=r.query,n=i?.getQueries()??null,s=r.queryResults?.getResults();if(!i||!n||!s)return;let l;try{l=await this.cameraManager.extendMediaQueries(n,s,e,{useCache:t})}catch(e){return void d(e)}if(l){const e=c.areEventQueries(i)?new o(l.queries):c.areRecordingQueries(i)?new a(l.queries):null;e&&this.viewManagerEpoch?.manager.setViewByParameters({baseView:r,params:{query:e,queryResults:new L({results:l.results}).selectResultIfFound((e=>e===r.queryResults?.getSelectedResult()))}})}}willUpdate(e){if(e.has("galleryConfig")&&(this.galleryConfig?.controls.thumbnails.show_details?this.setAttribute("details",""):this.removeAttribute("details"),this._setColumnCount(),this.galleryConfig?.controls.thumbnails.size&&this.style.setProperty("--frigate-card-thumbnail-size",`${this.galleryConfig.controls.thumbnails.size}px`)),e.has("viewManagerEpoch")){this._showLoaderBottom=!0;const e=this.viewManagerEpoch?.manager.getView(),t=this.viewManagerEpoch?.oldView;this._media&&t?.queryResults?.getResults()===e?.queryResults?.getResults()||(this._media=[...e?.queryResults?.getResults()??[]].reverse())}}render(){if(!this._media||!this.hass)return $``;const e=this.viewManagerEpoch?.manager.getView();if(!e?.queryResults||0===e.queryResults.getResultsCount()){const t=!!e?.context?.loading?.query;return D({type:"info",message:i(t?"error.awaiting_media":"common.no_media"),icon:"mdi:multimedia",dotdotdot:t})}const t=e.queryResults.getSelectedResult();return $`
    + ${this._showLoaderTop?$`${A({cardWideConfig:this.cardWideConfig,classes:{top:!0},size:"small"})}`:""} + ${this._media.map(((r,i)=>$`{this._media&&this.viewManagerEpoch?.manager.setViewByParameters({params:{view:"media",queryResults:e.queryResults?.clone().selectIndex(this._media.length-i-1)}}),F(t)}} + > + `))} + ${this._showLoaderBottom?$`${A({cardWideConfig:this.cardWideConfig,componentRef:this._refLoaderBottom})}`:""} +
    `}updated(e){this._refLoaderBottom.value&&(this._intersectionObserver.disconnect(),this._intersectionObserver.observe(this._refLoaderBottom.value)),this.updateComplete.then((()=>{e.has("viewManagerEpoch")&&!e.get("viewManagerEpoch")&&this._refSelected.value&&this._refSelected.value.scrollIntoView({block:"center"})}))}static get styles(){return k(":host {\n width: 100%;\n height: 100%;\n display: block;\n overflow: auto;\n -ms-overflow-style: none;\n scrollbar-width: none;\n --frigate-card-gallery-gap: 3px;\n --frigate-card-gallery-columns: 4;\n}\n\n.grid {\n display: grid;\n grid-template-columns: repeat(var(--frigate-card-gallery-columns), minmax(0, 1fr));\n grid-auto-rows: min-content;\n gap: var(--frigate-card-gallery-gap);\n}\n\n:host::-webkit-scrollbar {\n display: none;\n}\n\nfrigate-card-thumbnail {\n height: 100%;\n max-height: var(--frigate-card-thumbnail-size);\n}\n\nfrigate-card-thumbnail:not([details]) {\n width: 100%;\n}\n\nfrigate-card-thumbnail.selected {\n border: 4px solid var(--accent-color);\n border-radius: calc(var(--frigate-card-css-border-radius, var(--ha-card-border-radius, 4px)) + 4px);\n}\n\nfrigate-card-progress-indicator.top {\n grid-column: 1/-1;\n}")}};f([v({attribute:!1})],ui.prototype,"hass",void 0),f([v({attribute:!1})],ui.prototype,"viewManagerEpoch",void 0),f([v({attribute:!1})],ui.prototype,"galleryConfig",void 0),f([v({attribute:!1})],ui.prototype,"cameraManager",void 0),f([v({attribute:!1})],ui.prototype,"cardWideConfig",void 0),f([E()],ui.prototype,"_showLoaderBottom",void 0),f([E()],ui.prototype,"_showLoaderTop",void 0),ui=f([C("frigate-card-gallery-core")],ui);export{gi as FrigateCardGallery,ui as FrigateCardGalleryCore}; diff --git a/config/www/community/frigate-hass-card/gallery-9024cb87.js.gz b/config/www/community/frigate-hass-card/gallery-9024cb87.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..f3f5ea8437c708f71eff0c03bd3a11a072f7a3d7 GIT binary patch literal 30833 zcmV(tKW7{^9DExhYh0Npi ziZ!H2wv#4QS#9DZP1@X=q*otpN=vlGnkH3}@};u=`#To^1V~Dj({#_<=ZQrE0}vPt z=7s?fozK#&SWNa?LEZ|*gafLtIV*E4yUWp8U&IEn&lPK`#P*BAm1%3XRm`w5at(Z{rK8W#4{CzDZf8y`o zVnXeECB{GD?^7|M-aZ!NZTx+{Jjv2?r+aT4WRp(s(fHsvn1tOwb7v4S(&%e16OcxodsDQb{-tu4<0@kTX4@2?!AJW1Vz}HMdPzD>+Da0 zad7-_kDyQH$+(Epr1hpfLXOSXHug{jrTLS!Q9^Z|BNo6@pPKmWgLQ%}(UusIh&*7{RC5q}N- zopAXa7brzjYi`HImuiyGEO;6*n_3G6jW`210^w-WS2JXC^ zgh>&dL}BK&o_u)P+3y_2!JKNj_aC~?@7kfekj)&&K@OAmssIv%-^Dl!p&#$zEzI7h zXG?CR=)KGlZ;$^B$3+*CvM9{kk=s21MuH!IwMY3Ejx6}Y2`or$?;3CbUBJ`aT`Q(VO`z9^Qj3g~OI&<0n z^X8`gr@vUbuCS~6m`;Lg-zo41EBP(Vi!h_KYxRif?}EJeB@EAeX9iE5OL$btMApe;NnpVHU_S^p8f2`A?VAFsUV;heZIhGWew_^Ku##P1R&! zEwu2Hg9*%WnRXF{m#>2)I1Mv1d79?HQRIsnPhH{SB8caq_opTZ5eLU% z>_u(oJe)+qr;{j#A?#{GaF;@tG00^_F`%JOM$r;C0Q2#BR%^#!JeDhJbjwlX5PtEmux6 zv#gqLYm4HP`$SW*T9oGG?PYnonuU4Zt}Q92bcwfddOn*Mp@F!zyF`&!A(XZj9nFM< zWe&|rS}kDBV1%|lX~P=Rnj!U^twZW8S!Wimt~4`S`>~wfRZwH*Bjj^??pC2IQyWV> zm0Y3^#o0 z;JO>-^b3{l?1bGoOiqg_h~BUpCF6KL0cq+u?hr-qhp=cLfxHVxu1Ab3_H)qmc&Oar zklO_Pc^t<)xG$gPQ12i*X>Y~dJo-Dlx!IDl6N$m)-b(p9_H_j~*li|4S4{kptqsdZ z-}g&y$nBZ>MRyivAo|aPWE>8=Cm_7%8888+?eTP;oPEM}V3Ul7KwXlf-P}}@HM=Tx zoSfU1g)S(8{1T92jL%37t_Vn3N!v#Y z(RoyOQ+jVi3cyT*93Q={UL%-B5`(H&1YeHaL5*66T}jeUuHOY2AO(0%{!3I$pIw38 z1kC!!d6-?d7cIL}eK75dg3BJYn^pGm!(NS--6!;OZu@^(BczA}gv0S># zFwR3uyAR4y(~_n-a#g&2{s=UW>KDXXxGB~wT?-IX>LnmVp{~66X*MBaX4x>y73(6K z=L4u?0N2%Q9$>Jchruj3j^e0*RtCwneg&o7J5q|FsSKKJ8bO<+0D6h$Ll7&*`5dfS z#0xfqN3!r6uy@MXBTKCqb_qR{ig-i20q5{qE><7|gMSgBQt_`iELy2ZL?9+&DozJ| z7*Avc=fSMqMqb<1)B`$k>`E?sa}&2SK!2GFJQ_6I#K)1bbATMc=xf0+2g&g~ZbhdF zV7P^}>w&c3r`9Yermb<1fI8PY4qITmjHltG)#7tI|#MkiNde}_bf zh58Wji^)SdZ`%P8hE5+f*MoAYsUk?%HBHQ#AfvG=l4SLoFj-f0T2_SVBW9;98gtD& ztK&|HGSzs+>$JHG0wRDw9iPCxnqZly?3;)};)U^w#WQQd`d<|A7@Y0}NxWjG{6>$jq6WFz`)Z%1g z6qwN*WHtpEj)Nk*UKDKGf!USYUOdoe z2V5EEjY^jh4BaB^29pV3DxV+cMFvFL?uoBmcd6Y)8Cdy)uq*_hUu50cJfF6I0gc
    ;Iv@e{A%zZQPSafPHbo<``L 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 M0U6W$qNle30OI=M6aWAK literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/gallery-bf3892f1.js b/config/www/community/frigate-hass-card/gallery-bf3892f1.js new file mode 100644 index 00000000..88ab9687 --- /dev/null +++ b/config/www/community/frigate-hass-card/gallery-bf3892f1.js @@ -0,0 +1,184 @@ +import{c$ as e,d0 as t,d1 as r,l as i,d2 as o,d3 as n,d4 as a,d5 as s,i as l,d6 as c,d7 as d,k as h,d8 as g,d9 as u,da as m,db as p,_ as f,n as v,cR as b,cM as y,dc as w,x as $,cQ as x,r as k,a as _,t as C,e as T,b as E,dd as O,de as S,cI as M,df as z,dg as L,cP as D,dh as A,cX as F}from"./card-320adb66.js";import{e as I}from"./endOfDay-086a6977.js";import{p as W}from"./parse-7f4a6e12.js";import{F as R}from"./date-picker-576d50a8.js";function N(t){const r=e(t),i=r.getMonth();return r.setFullYear(r.getFullYear(),i+1,0),r.setHours(23,59,59,999),r}function H(){const e=new Date,t=e.getFullYear(),r=e.getMonth(),i=e.getDate(),o=new Date(0);return o.setFullYear(t,r,i-1),o.setHours(23,59,59,999),o}function V(){const e=new Date,t=e.getFullYear(),r=e.getMonth(),i=e.getDate(),o=new Date(0);return o.setFullYear(t,r,i-1),o.setHours(0,0,0,0),o}var j,B,P; +/** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +function q(e){return class extends e{createRenderRoot(){const e=this.constructor,{registry:t,elementDefinitions:i,shadowRootOptions:o}=e;i&&!t&&(e.registry=new CustomElementRegistry,Object.entries(i).forEach((([t,r])=>e.registry.define(t,r))));const n=this.renderOptions.creationScope=this.attachShadow({...o,customElements:e.registry});return r(n,this.constructor.elementStyles),n}}}!function(e){e.Favorite="favorite",e.NotFavorite="not-favorite"}(j||(j={})),function(e){e.Today="today",e.Yesterday="yesterday",e.PastWeek="past-week",e.PastMonth="past-month",e.Custom="custom"}(B||(B={})),function(e){e.Clips="clips",e.Snapshots="snapshots",e.Recordings="recordings"}(P||(P={}));class U{constructor(e){this._cameraOptions=[],this._whenOptions=[],this._metaDataWhenOptions=[],this._whatOptions=[],this._whereOptions=[],this._tagsOptions=[],this._defaults=null,this._viewManager=null,this._host=e,this._favoriteOptions=[{value:j.Favorite,label:i("media_filter.favorite")},{value:j.NotFavorite,label:i("media_filter.not_favorite")}],this._mediaTypeOptions=[{value:P.Clips,label:i("media_filter.media_types.clips")},{value:P.Snapshots,label:i("media_filter.media_types.snapshots")},{value:P.Recordings,label:i("media_filter.media_types.recordings")}],this._staticWhenOptions=[{value:B.Today,label:i("media_filter.whens.today")},{value:B.Yesterday,label:i("media_filter.whens.yesterday")},{value:B.PastWeek,label:i("media_filter.whens.past_week")},{value:B.PastMonth,label:i("media_filter.whens.past_month")},{value:B.Custom,label:i("media_filter.whens.custom")}],this._computeWhenOptions()}getMediaTypeOptions(){return this._mediaTypeOptions}getCameraOptions(){return this._cameraOptions}getWhenOptions(){return this._whenOptions}getWhatOptions(){return this._whatOptions}getWhereOptions(){return this._whereOptions}getTagsOptions(){return this._tagsOptions}getFavoriteOptions(){return this._favoriteOptions}getDefaults(){return this._defaults}setViewManager(e){this._viewManager=e}async valueChangeHandler(e,t,r,i){const s=e=>e&&Array.isArray(e)&&e.length&&!e.includes("")?new Set([...e]):null,l=s(r.camera)??this._getAllCameraIDs(e);if(!l.size||!r.mediaType)return;const c=this._getWhen(r.when),d=r.favorite?r.favorite===j.Favorite:null,h=t.performance?.features.media_chunk_size;if(r.mediaType===P.Clips||r.mediaType===P.Snapshots){const e=s(r.where),t=s(r.what),i=s(r.tags),a=new o([{type:n.Event,cameraIDs:l,...i&&{tags:i},...t&&{what:t},...e&&{where:e},...null!==d&&{favorite:d},...c&&{...c.start&&{start:c.start},...c.end&&{end:c.end}},...h&&{limit:h},...r.mediaType===P.Clips&&{hasClip:!0},...r.mediaType===P.Snapshots&&{hasSnapshot:!0}}]);this._viewManager?.setViewByParametersWithExistingQuery({params:{query:a,...1===l.size&&{camera:[...l][0]},view:r.mediaType===P.Clips?"clips":"snapshots"}})}else{const e=new a([{type:n.Recording,cameraIDs:l,...h&&{limit:h},...c&&{...c.start&&{start:c.start},...c.end&&{end:c.end}},...null!==d&&{favorite:d}}]);this._viewManager?.setViewByParametersWithExistingQuery({params:{query:e,...1===l.size&&{camera:[...l][0]},view:"recordings"}})}this._host.requestUpdate()}_getAllCameraIDs(e){return e.getStore().getCameraIDsWithCapability({anyCapabilities:["clips","snapshots","recordings"]})}computeInitialDefaultsFromView(e){const t=this._viewManager?.getView(),r=t?.query?.getQueries(),i=this._getAllCameraIDs(e);if(!t||!r||!i.size)return;let o,n,a,d,h,g;1!==s(r.map((e=>e.cameraIDs)),l).length||l(r[0].cameraIDs,i)||(n=[...r[0].cameraIDs]); +/* istanbul ignore else: the else path cannot be reached -- @preserve */ +if(1===s(r.map((e=>e.favorite)),l).length&&void 0!==r[0].favorite&&(h=r[0].favorite?j.Favorite:j.NotFavorite),c.areEventQueries(t.query)){const e=t.query.getQueries(); +/* istanbul ignore if: the if path cannot be reached -- @preserve */if(!e)return;const r=s(e.map((e=>e.hasClip)),l),i=s(e.map((e=>e.hasSnapshot)),l);1===r.length&&1===i.length&&(o=r[0]?P.Clips:i[0]?P.Snapshots:void 0);1===s(e.map((e=>e.what)),l).length&&e[0].what?.size&&(a=[...e[0].what]);1===s(e.map((e=>e.where)),l).length&&e[0].where?.size&&(d=[...e[0].where]);1===s(e.map((e=>e.tags)),l).length&&e[0].tags?.size&&(g=[...e[0].tags])}else c.areRecordingQueries(t.query)&&(o=P.Recordings);this._defaults={...o&&{mediaType:o},...n&&{cameraIDs:n},...a&&{what:a},...d&&{where:d},...void 0!==h&&{favorite:h},...g&&{tags:g}}}computeCameraOptions(e){this._cameraOptions=[...this._getAllCameraIDs(e)].map((t=>({value:t,label:e.getCameraMetadata(t)?.title??t})))}async computeMetadataOptions(e){let t=null;try{t=await e.getMediaMetadata()}catch(e){d(e)}if(t){if(t.what&&(this._whatOptions=[...t.what].sort().map((e=>({value:e,label:h(e)})))),t.where&&(this._whereOptions=[...t.where].sort().map((e=>({value:e,label:h(e)})))),t.tags&&(this._tagsOptions=[...t.tags].sort().map((e=>({value:e,label:h(e)})))),t.days){const e=new Set;[...t.days].forEach((t=>{e.add(t.substring(0,7))}));const r=[];e.forEach((e=>{r.push(W(e,"yyyy-MM",new Date))})),this._metaDataWhenOptions=g(r,(e=>e.getTime()),"desc").map((e=>({label:u(e,"MMMM yyyy"),value:this._dateRangeToString({start:e,end:N(e)})}))),this._computeWhenOptions()}this._host.requestUpdate()}}getControlsToShow(e){const t=this._viewManager?.getView(),r=c.areEventQueries(t?.query),i=c.areRecordingQueries(t?.query),o=e.getAggregateCameraCapabilities();return{events:r,recordings:i,favorites:r?o?.has("favorite-events"):!!i&&o?.has("favorite-recordings")}}_computeWhenOptions(){this._whenOptions=[...this._staticWhenOptions,...this._metaDataWhenOptions]}_dateRangeToString(e){return`${m(e.start)},${m(e.end)}`}_stringToDateRange(e){const t=e.split(",");return{start:W(t[0],"yyyy-MM-dd",new Date),end:I(W(t[1],"yyyy-MM-dd",new Date))}}_getWhen(e){if(e.from||e.to)return{...e.from&&{start:e.from},...e.to&&{end:e.to}};if(!e.selected||Array.isArray(e.selected))return null;const r=new Date;switch(e.selected){case B.Custom:return null;case B.Today:return{start:t(Date.now()),end:I(Date.now())};case B.Yesterday:return{start:V(),end:H()};case B.PastWeek:return{start:t(p(r,{days:7})),end:I(r)};case B.PastMonth:return{start:t(p(r,{months:1})),end:I(r)};default:return this._stringToDateRange(e.selected)}}}const K=!0,Y=!0,Q=!0,G=!1,X=!1;let Z,J,ee,te=!1,re=!1,ie=!1,oe=!1,ne=null,ae=!1;const se="http://www.w3.org/1999/xlink",le={},ce=e=>"object"===(e=typeof e)||"function"===e;const de=(e,t,...r)=>{let i=null,o=null,n=null,a=!1,s=!1;const l=[],c=t=>{for(let r=0;re[t])).join(" "))}}if("function"==typeof e)return e(null===t?{}:t,l,ue);const d=he(e,null);return d.$attrs$=t,l.length>0&&(d.$children$=l),d.$key$=o,d.$name$=n,d},he=(e,t)=>{const r={$flags$:0,$tag$:e,$text$:t,$elm$:null,$children$:null,$attrs$:null,$key$:null,$name$:null};return r},ge={},ue={forEach:(e,t)=>e.map(me).forEach(t),map:(e,t)=>e.map(me).map(t).map(pe)},me=e=>({vattrs:e.$attrs$,vchildren:e.$children$,vkey:e.$key$,vname:e.$name$,vtag:e.$tag$,vtext:e.$text$}),pe=e=>{if("function"==typeof e.vtag){const t=Object.assign({},e.vattrs);return e.vkey&&(t.key=e.vkey),e.vname&&(t.name=e.vname),de(e.vtag,t,...e.vchildren||[])}const t=he(e.vtag,e.vtext);return t.$attrs$=e.vattrs,t.$children$=e.vchildren,t.$key$=e.vkey,t.$name$=e.vname,t},fe=(e,t,r)=>{const i=e;return{emit:e=>ve(i,t,{bubbles:!!(4&r),composed:!!(2&r),cancelable:!!(1&r),detail:e})}},ve=(e,t,r)=>{const i=ht.ce(t,r);return e.dispatchEvent(i),i},be=new WeakMap,ye=e=>{const t=e.$cmpMeta$,r=e.$hostElement$,i=t.$flags$,o=(t.$tagName$,()=>{}),n=((e,t,r,i)=>{var o;let n=we(t,r);const a=at.get(n);if(e=11===e.nodeType?e:ct,a)if("string"==typeof a){e=e.head||e;let t,r=be.get(e);if(r||be.set(e,r=new Set),!r.has(n)){{t=ct.createElement("style"),t.innerHTML=a;const r=null!==(o=ht.$nonce$)&&void 0!==o?o:function(e){var t,r,i;return null!==(i=null===(r=null===(t=e.head)||void 0===t?void 0:t.querySelector('meta[name="csp-nonce"]'))||void 0===r?void 0:r.getAttribute("content"))&&void 0!==i?i:void 0}(ct);null!=r&&t.setAttribute("nonce",r),e.insertBefore(t,e.querySelector("link"))}r&&r.add(n)}}else e.adoptedStyleSheets.includes(a)||(e.adoptedStyleSheets=[...e.adoptedStyleSheets,a]);return n})(r.shadowRoot?r.shadowRoot:r.getRootNode(),t,e.$modeName$);10&i&&(r["s-sc"]=n,r.classList.add(n+"-h"),2&i&&r.classList.add(n+"-s")),o()},we=(e,t)=>"sc-"+(t&&32&e.$flags$?e.$tagName$+"-"+t:e.$tagName$),$e=(e,t,r,i,o,n)=>{if(r!==i){let a=ot(e,t),s=t.toLowerCase();if("class"===t){const t=e.classList,o=ke(r),n=ke(i);t.remove(...o.filter((e=>e&&!n.includes(e)))),t.add(...n.filter((e=>e&&!o.includes(e))))}else if("style"===t){for(const t in r)i&&null!=i[t]||(t.includes("-")?e.style.removeProperty(t):e.style[t]="");for(const t in i)r&&i[t]===r[t]||(t.includes("-")?e.style.setProperty(t,i[t]):e.style[t]=i[t])}else if("key"===t);else if("ref"===t)i&&i(e);else if(e.__lookupSetter__(t)||"o"!==t[0]||"n"!==t[1]){const l=ce(i);if((a||l&&null!==i)&&!o)try{if(e.tagName.includes("-"))e[t]=i;else{const o=null==i?"":i;"list"===t?a=!1:null!=r&&e[t]==o||(e[t]=o)}}catch(e){}let c=!1;s!==(s=s.replace(/^xlink\:?/,""))&&(t=s,c=!0),null==i||!1===i?!1===i&&""!==e.getAttribute(t)||(c?e.removeAttributeNS(se,t):e.removeAttribute(t)):(!a||4&n||o)&&!l&&(i=!0===i?"":i,c?e.setAttributeNS(se,t,i):e.setAttribute(t,i))}else t="-"===t[2]?t.slice(3):ot(lt,s)?s.slice(2):s[2]+t.slice(3),r&&ht.rel(e,t,r,!1),i&&ht.ael(e,t,i,!1)}},xe=/\s/,ke=e=>e?e.split(xe):[],_e=(e,t,r,i)=>{const o=11===t.$elm$.nodeType&&t.$elm$.host?t.$elm$.host:t.$elm$,n=e&&e.$attrs$||le,a=t.$attrs$||le;for(i in n)i in a||$e(o,i,n[i],void 0,r,t.$flags$);for(i in a)$e(o,i,n[i],a[i],r,t.$flags$)},Ce=(e,t,r,i)=>{const o=t.$children$[r];let n,a,s,l=0;if(te||(ie=!0,"slot"===o.$tag$&&(Z&&i.classList.add(Z+"-s"),o.$flags$|=o.$children$?2:1)),null!==o.$text$)n=o.$elm$=ct.createTextNode(o.$text$);else if(1&o.$flags$)n=o.$elm$=ct.createTextNode("");else{if(oe||(oe="svg"===o.$tag$),n=o.$elm$=ct.createElementNS(oe?"http://www.w3.org/2000/svg":"http://www.w3.org/1999/xhtml",2&o.$flags$?"slot-fb":o.$tag$),oe&&"foreignObject"===o.$tag$&&(oe=!1),_e(null,o,oe),null!=Z&&n["s-si"]!==Z&&n.classList.add(n["s-si"]=Z),o.$children$)for(l=0;l{ht.$flags$|=1;const r=e.childNodes;for(let e=r.length-1;e>=0;e--){const i=r[e];i["s-hn"]!==ee&&i["s-ol"]&&(ze(i).insertBefore(i,Me(i)),i["s-ol"].remove(),i["s-ol"]=void 0,ie=!0),t&&Te(i,t)}ht.$flags$&=-2},Ee=(e,t,r,i,o,n)=>{let a,s=e["s-cr"]&&e["s-cr"].parentNode||e;for(s.shadowRoot&&s.tagName===ee&&(s=s.shadowRoot);o<=n;++o)i[o]&&(a=Ce(null,r,o,e),a&&(i[o].$elm$=a,s.insertBefore(a,Me(t))))},Oe=(e,t,r,i,o)=>{for(;t<=r;++t)(i=e[t])&&(o=i.$elm$,We(i),re=!0,o["s-ol"]?o["s-ol"].remove():Te(o,!0),o.remove())},Se=(e,t)=>e.$tag$===t.$tag$&&("slot"===e.$tag$?e.$name$===t.$name$:e.$key$===t.$key$),Me=e=>e&&e["s-ol"]||e,ze=e=>(e["s-ol"]?e["s-ol"]:e).parentNode,Le=(e,t)=>{const r=t.$elm$=e.$elm$,i=e.$children$,o=t.$children$,n=t.$tag$,a=t.$text$;let s;null===a?(oe="svg"===n||"foreignObject"!==n&&oe,"slot"===n||_e(e,t,oe),null!==i&&null!==o?((e,t,r,i)=>{let o,n,a=0,s=0,l=0,c=0,d=t.length-1,h=t[0],g=t[d],u=i.length-1,m=i[0],p=i[u];for(;a<=d&&s<=u;)if(null==h)h=t[++a];else if(null==g)g=t[--d];else if(null==m)m=i[++s];else if(null==p)p=i[--u];else if(Se(h,m))Le(h,m),h=t[++a],m=i[++s];else if(Se(g,p))Le(g,p),g=t[--d],p=i[--u];else if(Se(h,p))"slot"!==h.$tag$&&"slot"!==p.$tag$||Te(h.$elm$.parentNode,!1),Le(h,p),e.insertBefore(h.$elm$,g.$elm$.nextSibling),h=t[++a],p=i[--u];else if(Se(g,m))"slot"!==h.$tag$&&"slot"!==p.$tag$||Te(g.$elm$.parentNode,!1),Le(g,m),e.insertBefore(g.$elm$,h.$elm$),g=t[--d],m=i[++s];else{for(l=-1,c=a;c<=d;++c)if(t[c]&&null!==t[c].$key$&&t[c].$key$===m.$key$){l=c;break}l>=0?(n=t[l],n.$tag$!==m.$tag$?o=Ce(t&&t[s],r,l,e):(Le(n,m),t[l]=void 0,o=n.$elm$),m=i[++s]):(o=Ce(t&&t[s],r,s,e),m=i[++s]),o&&ze(h.$elm$).insertBefore(o,Me(h.$elm$))}a>d?Ee(e,null==i[u+1]?null:i[u+1].$elm$,r,i,s,u):s>u&&Oe(t,a,d)})(r,i,t,o):null!==o?(null!==e.$text$&&(r.textContent=""),Ee(r,null,t,o,0,o.length-1)):null!==i&&Oe(i,0,i.length-1),oe&&"svg"===n&&(oe=!1)):(s=r["s-cr"])?s.parentNode.textContent=a:e.$text$!==a&&(r.data=a)},De=e=>{const t=e.childNodes;let r,i,o,n,a,s;for(i=0,o=t.length;i{let t,r,i,o,n,a,s=0;const l=e.childNodes,c=l.length;for(;s=0;a--)r=i[a],r["s-cn"]||r["s-nr"]||r["s-hn"]===t["s-hn"]||(Ie(r,o)?(n=Ae.find((e=>e.$nodeToRelocate$===r)),re=!0,r["s-sn"]=r["s-sn"]||o,n?n.$slotRefNode$=t:Ae.push({$slotRefNode$:t,$nodeToRelocate$:r}),r["s-sr"]&&Ae.map((e=>{Ie(e.$nodeToRelocate$,r["s-sn"])&&(n=Ae.find((e=>e.$nodeToRelocate$===r)),n&&!e.$slotRefNode$&&(e.$slotRefNode$=n.$slotRefNode$))}))):Ae.some((e=>e.$nodeToRelocate$===r))||Ae.push({$nodeToRelocate$:r}));1===t.nodeType&&Fe(t)}},Ie=(e,t)=>1===e.nodeType?null===e.getAttribute("slot")&&""===t||e.getAttribute("slot")===t:e["s-sn"]===t||""===t,We=e=>{e.$attrs$&&e.$attrs$.ref&&e.$attrs$.ref(null),e.$children$&&e.$children$.map(We)},Re=(e,t)=>{const r=e.$hostElement$,i=e.$cmpMeta$,o=e.$vnode$||he(null,null),n=(a=t)&&a.$tag$===ge?t:de(null,null,t);var a;if(ee=r.tagName,i.$attrsToReflect$&&(n.$attrs$=n.$attrs$||{},i.$attrsToReflect$.map((([e,t])=>n.$attrs$[t]=r[e]))),n.$tag$=null,n.$flags$|=4,e.$vnode$=n,n.$elm$=o.$elm$=r.shadowRoot||r,Z=r["s-sc"],J=r["s-cr"],te=!!(1&i.$flags$),re=!1,Le(o,n),ht.$flags$|=1,ie){let e,t,r,i,o,a;Fe(n.$elm$);let s=0;for(;s{e.$flags$|=16,e.$ancestorComponent$;return $t((()=>He(e,t)))},He=(e,t)=>{const r=e.$hostElement$,i=(e.$cmpMeta$.$tagName$,()=>{}),o=r;let n;return n=Pe(o,t?"componentWillLoad":"componentWillUpdate"),n=qe(n,(()=>Pe(o,"componentWillRender"))),i(),qe(n,(()=>Ve(e,o,t)))},Ve=async(e,t,r)=>{const i=e.$hostElement$,o=(e.$cmpMeta$.$tagName$,()=>{});i["s-rc"],r&&ye(e);const n=(e.$cmpMeta$.$tagName$,()=>{});je(e,t,i),n(),o(),Be(e)},je=(e,t,r)=>{try{ne=t,t=t.render&&t.render(),e.$flags$&=-17,e.$flags$|=2,(K||Y)&&(Q||Y)&&(G||Re(e,t))}catch(t){nt(t,e.$hostElement$)}return ne=null,null},Be=e=>{e.$cmpMeta$.$tagName$;const t=()=>{},r=e.$hostElement$;e.$ancestorComponent$,Pe(r,"componentDidRender"),64&e.$flags$?(Pe(r,"componentDidUpdate"),t()):(e.$flags$|=64,Pe(r,"componentDidLoad"),t())},Pe=(e,t,r)=>{if(e&&e[t])try{return e[t](r)}catch(e){nt(e)}},qe=(e,t)=>e&&e.then?e.then(t):t(),Ue=(e,t,r,i)=>{const o=rt(e),n=e,a=o.$instanceValues$.get(t),s=o.$flags$,l=n;var c,d;c=r,d=i.$members$[t][0],r=null==c||ce(c)?c:4&d?"false"!==c&&(""===c||!!c):2&d?parseFloat(c):1&d?String(c):c;const h=Number.isNaN(a)&&Number.isNaN(r);if(r!==a&&!h){if(o.$instanceValues$.set(t,r),i.$watchers$&&128&s){const e=i.$watchers$[t];e&&e.map((e=>{try{l[e](r,a,t)}catch(e){nt(e,n)}}))}if(2==(18&s)){if(l.componentShouldUpdate&&!1===l.componentShouldUpdate(r,a,t))return;Ne(o,!1)}}},Ke=(e,t,r)=>{if(t.$members$){e.watchers&&(t.$watchers$=e.watchers);const r=Object.entries(t.$members$),i=e.prototype;r.map((([e,[r]])=>{(31&r||32&r)&&Object.defineProperty(i,e,{get(){return t=e,rt(this).$instanceValues$.get(t);var t},set(r){Ue(this,e,r,t)},configurable:!0,enumerable:!0})}));{const o=new Map;i.attributeChangedCallback=function(e,t,r){ht.jmp((()=>{const t=o.get(e);if(this.hasOwnProperty(t))r=this[t],delete this[t];else if(i.hasOwnProperty(t)&&"number"==typeof this[t]&&this[t]==r)return;this[t]=(null!==r||"boolean"!=typeof this[t])&&r}))},e.observedAttributes=r.filter((([e,t])=>15&t[0])).map((([e,r])=>{const i=r[1]||e;return o.set(i,e),512&r[0]&&t.$attrsToReflect$.push([e,i]),i}))}}return e},Ye=async(e,t,r,i,o)=>{if(!(32&t.$flags$)&&(o=e.constructor,t.$flags$|=32,customElements.whenDefined(r.$tagName$).then((()=>t.$flags$|=128)),o.style)){let i=o.style;"string"!=typeof i&&(i=i[t.$modeName$=(e=>st.map((t=>t(e))).find((e=>!!e)))(e)]);const n=we(r,t.$modeName$);if(!at.has(n)){const e=(r.$tagName$,()=>{});((e,t,r)=>{let i=at.get(e);mt&&r?(i=i||new CSSStyleSheet,"string"==typeof i?i=t:i.replaceSync(t)):i=t,at.set(e,i)})(n,i,!!(1&r.$flags$)),e()}}t.$ancestorComponent$;Ne(t,!0)},Qe=e=>{const t=e["s-cr"]=ct.createComment("");t["s-cn"]=!0,e.insertBefore(t,e.firstChild)},Ge=(e,t)=>{const r={$flags$:t[0],$tagName$:t[1]};r.$members$=t[2],r.$listeners$=t[3],r.$watchers$=e.$watchers$,r.$attrsToReflect$=[],!gt&&1&r.$flags$&&(r.$flags$|=8);const i=e.prototype.connectedCallback,o=e.prototype.disconnectedCallback;return Object.assign(e.prototype,{__registerHost(){it(this,r)},connectedCallback(){(e=>{if(!(1&ht.$flags$)){const t=rt(e),r=t.$cmpMeta$,i=(r.$tagName$,()=>{});1&t.$flags$?(Xe(e,t,r.$listeners$),t.$lazyInstance$):(t.$flags$|=1,12&r.$flags$&&Qe(e),r.$members$&&Object.entries(r.$members$).map((([t,[r]])=>{if(31&r&&e.hasOwnProperty(t)){const r=e[t];delete e[t],e[t]=r}})),Ye(e,t,r)),i()}})(this),i&&i.call(this)},disconnectedCallback(){(e=>{if(!(1&ht.$flags$)){const t=rt(e);t.$rmListeners$&&(t.$rmListeners$.map((e=>e())),t.$rmListeners$=void 0)}})(this),o&&o.call(this)},__attachShadow(){gt?this.attachShadow({mode:"open",delegatesFocus:!!(16&r.$flags$)}):this.shadowRoot=this}}),e.is=r.$tagName$,Ke(e,r)},Xe=(e,t,r,i)=>{r&&r.map((([r,i,o])=>{const n=Je(e,r),a=Ze(t,o),s=et(r);ht.ael(n,i,a,s),(t.$rmListeners$=t.$rmListeners$||[]).push((()=>ht.rel(n,i,a,s)))}))},Ze=(e,t)=>r=>{try{X||e.$hostElement$[t](r)}catch(e){nt(e)}},Je=(e,t)=>4&t?ct:8&t?lt:16&t?ct.body:e,et=e=>ut?{passive:!!(1&e),capture:!!(2&e)}:!!(2&e),tt=new WeakMap,rt=e=>tt.get(e),it=(e,t)=>{const r={$flags$:0,$hostElement$:e,$cmpMeta$:t,$instanceValues$:new Map};return Xe(e,r,t.$listeners$),tt.set(e,r)},ot=(e,t)=>t in e,nt=(e,t)=>(0,console.error)(e,t),at=new Map,st=[],lt="undefined"!=typeof window?window:{},ct=lt.document||{head:{}},dt=lt.HTMLElement||class{},ht={$flags$:0,$resourcesUrl$:"",jmp:e=>e(),raf:e=>requestAnimationFrame(e),ael:(e,t,r,i)=>e.addEventListener(t,r,i),rel:(e,t,r,i)=>e.removeEventListener(t,r,i),ce:(e,t)=>new CustomEvent(e,t)},gt=!0,ut=(()=>{let e=!1;try{ct.addEventListener("e",null,Object.defineProperty({},"passive",{get(){e=!0}}))}catch(e){}return e})(),mt=(()=>{try{return new CSSStyleSheet,"function"==typeof(new CSSStyleSheet).replaceSync}catch(e){}return!1})(),pt=[],ft=[],vt=(e,t)=>r=>{e.push(r),ae||(ae=!0,t&&4&ht.$flags$?wt(yt):ht.raf(yt))},bt=e=>{for(let t=0;t{bt(pt),bt(ft),(ae=pt.length>0)&&ht.raf(yt)},wt=e=>{return Promise.resolve(t).then(e);var t},$t=vt(ft,!0),xt=(e,t)=>{const r=!!e.label||e.hasLabelSlot,i=!!e.helpText||e.hasHelpTextSlot,o=!!e.invalidText||e.hasInvalidTextSlot,n=!e.invalid,a=!!e.invalid;return de("div",{class:{"form-control":!0,[`form-control-${e.size}`]:!0,"form-control-has-label":r,"form-control-has-help-text":i,"form-control-has-invalid-text":o}},de("label",{id:e.labelId,class:"form-control-label",htmlFor:e.inputId,"aria-hidden":r?"false":"true",onClick:e.onLabelClick},de("slot",{name:"label"},e.label),e.requiredIndicator&&de("div",{class:"asterisk"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 1200 1200"},de("path",{fill:"currentColor",d:"M489.838 29.354v443.603L68.032 335.894 0 545.285l421.829 137.086-260.743 358.876 178.219 129.398L600.048 811.84l260.673 358.806 178.146-129.398-260.766-358.783L1200 545.379l-68.032-209.403-421.899 137.07V29.443H489.84l-.002-.089z"})))),de("div",{class:"form-control-input"},t),n&&de("div",{id:e.helpTextId,class:"form-control-help-text","aria-hidden":i?"false":"true"},de("slot",{name:"help-text"},e.helpText)),a&&de("div",{id:e.invalidTextId,class:"form-control-invalid-text","aria-hidden":o?"false":"true"},de("div",{class:"icon"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Alert Circle"),de("path",{d:"M256,48C141.31,48,48,141.31,48,256s93.31,208,208,208,208-93.31,208-208S370.69,48,256,48Zm0,319.91a20,20,0,1,1,20-20A20,20,0,0,1,256,367.91Zm21.72-201.15-5.74,122a16,16,0,0,1-32,0l-5.74-121.94v-.05a21.74,21.74,0,1,1,43.44,0Z",fill:"currentColor"}))),de("div",{class:"text"},de("slot",{name:"invalid-text"},e.invalidText))))}; +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +function kt(e){const t=e?e.assignedNodes({flatten:!0}):[];let r="";return[...t].map((e=>{e.nodeType===Node.TEXT_NODE&&(r+=e.textContent)})),r}function _t(e,t){return t?null!==e.querySelector(`[slot="${t}"]`):[...e.childNodes].some((e=>{if(e.nodeType===e.TEXT_NODE&&""!==e.textContent.trim())return!0;if(e.nodeType===e.ELEMENT_NODE){if(!e.hasAttribute("slot"))return!0}return!1}))} +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */const Ct=(e,t=[])=>{const r={};return t.forEach((t=>{if(e.hasAttribute(t)){null!==e.getAttribute(t)&&(r[t]=e.getAttribute(t)),e.removeAttribute(t)}})),r},Tt=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow()}render(){return de("span",{class:"spinner","aria-busy":"true","aria-live":"polite"})}static get style(){return":host{--track-color:var(--gr-color-light-shade);--indicator-color:var(--gr-color-primary);--stroke-width:2px;display:inline-flex;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}.spinner{display:inline-block;width:1em;height:1em;border-radius:50%;border:solid var(--stroke-width) var(--track-color);border-top-color:var(--indicator-color);border-right-color:var(--indicator-color);animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}"}},[1,"gr-spinner"]);function Et(){if("undefined"==typeof customElements)return;["gr-spinner"].forEach((e=>{if("gr-spinner"===e)customElements.get(e)||customElements.define(e,Tt)}))}Et(); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +const Ot=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grFocus=fe(this,"gr-focus",7),this.grBlur=fe(this,"gr-blur",7),this.inheritedAttributes={},this.handleClick=e=>{if("button"!==this.type){const t=this.el.closest("form");if(t){e.preventDefault();const r=document.createElement("button");r.type=this.type,r.style.display="none",t.appendChild(r),r.click(),r.remove()}}},this.onFocus=()=>{this.grFocus.emit()},this.onBlur=()=>{this.grBlur.emit()},this.variant="default",this.disabled=!1,this.loading=!1,this.size="medium",this.caret=!1,this.pill=!1,this.expand=void 0,this.circle=!1,this.href=void 0,this.target=void 0,this.rel=void 0,this.type="button"}componentWillLoad(){this.inheritedAttributes=Ct(this.el,["aria-label","tabindex","title"])}async setFocus(e){this.button.focus(e)}async removeFocus(){this.button.blur()}render(){const{rel:e,target:t,href:r,variant:i,size:o,expand:n,type:a,inheritedAttributes:s,disabled:l}=this,c=void 0===r?"button":"a",d="button"===c?{type:a}:{href:r,rel:e,target:t};return de(ge,{onClick:this.handleClick,"aria-disabled":l?"true":null,class:{[`button-${i}`]:!0,[`button-${o}`]:!0,[`button-${n}`]:void 0!==n,"button-caret":this.caret,"button-circle":this.circle,"button-pill":this.pill,"button-disabled":l,"button-loading":this.loading}},de(c,Object.assign({ref:e=>this.button=e},d,{class:"button-native",disabled:l,onFocus:this.onFocus,onBlur:this.onBlur},s),de("span",{class:"button-inner"},de("slot",{name:"icon-only"}),de("slot",{name:"start"}),de("slot",null),de("slot",{name:"end"}),this.caret&&de("span",{class:"caret"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Chevron Down"),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"48",d:"M112 184l144 144 144-144"})))),this.loading&&de("gr-spinner",null)))}get el(){return this}static get style(){return".gr-scroll-lock{overflow:hidden !important}:host{display:inline-block;width:auto;font-family:var(--gr-font-family);font-weight:var(--gr-font-weight-medium);font-size:var(--gr-form-element-font-size-medium);font-kerning:none;user-select:none;vertical-align:top;vertical-align:-webkit-baseline-middle;pointer-events:auto;--height:var(--gr-form-element-height-medium);--border-radius:var(--gr-form-element-border-radius-medium);--border-width:1px;--border-style:solid;--background:transparent;--background-hover:transparent;--background-focus:transparent;--color:var(--gr-color-dark-tint);--color-hover:var(--gr-color-dark-tint);--color-focus:var(--gr-color-dark-tint);--border-color:var(--gr-color-light-shade);--border-color-hover:var(--gr-color-medium);--border-color-focus:var(--gr-color-primary);--padding-top:0;--padding-start:var(--gr-spacing-medium);--padding-end:var(--gr-spacing-medium);--padding-bottom:0;--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33);--shadow:none;--transition:background-color 150ms linear, opacity 150ms linear, border 150ms linear, color 150ms linear}:host(.button-disabled){pointer-events:none;opacity:0.5}:host(.button-primary){--border-color:var(--gr-color-primary);--background:var(--gr-color-primary);--color:var(--gr-color-primary-contrast);--border-color-hover:var(--gr-color-primary-shade);--background-hover:var(--gr-color-primary-shade);--color-hover:var(--gr-color-primary-contrast);--border-color-focus:var(--gr-color-primary);--background-focus:var(--gr-color-primary-shade);--color-focus:var(--gr-color-primary-contrast);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33)}:host(.button-secondary){--border-color:var(--gr-color-light-shade);--background:transparent;--color:var(--gr-color-primary);--border-color-hover:var(--gr-color-primary);--background-hover:transparent;--color-hover:var(--gr-color-primary);--border-color-focus:var(--gr-color-primary);--background-focus:transparent;--color-focus:var(--gr-color-primary);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33)}:host(.button-danger){--border-color:var(--gr-color-danger);--background:transparent;--color:var(--gr-color-danger);--border-color-hover:var(--gr-color-danger);--background-hover:var(--gr-color-danger);--color-hover:var(--gr-color-danger-contrast);--border-color-focus:var(--gr-color-danger);--background-focus:var(--gr-color-danger);--color-focus:var(--gr-color-danger-contrast);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-danger-rgb), 0.33)}:host(.button-plain){--border-color:transparent;--background:transparent;--color:var(--gr-color-primary);--border-color-hover:transparent;--background-hover:transparent;--color-hover:var(--gr-color-primary-shade);--border-color-focus:transparent;--background-focus:transparent;--color-focus:var(--gr-color-primary-shade);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33)}:host(.button-small){--padding-start:var(--gr-spacing-small);--padding-end:var(--gr-spacing-small);--border-radius:var(--gr-form-element-border-radius-small);--height:var(--gr-form-element-height-small);font-size:var(--gr-form-element-font-size-small)}:host(.button-large){--padding-start:var(--gr-spacing-large);--padding-end:var(--gr-spacing-large);--border-radius:var(--gr-form-element-border-radius-large);--height:var(--gr-form-element-height-large);font-size:var(--gr-form-element-font-size-large)}:host(.button-block){display:block}:host(.button-block) .button-native{margin-left:0;margin-right:0;display:block;width:100%;clear:both;contain:content}:host(.button-block) .button-native::after{clear:both}:host(.button-full){display:block}:host(.button-full) .button-native{margin-left:0;margin-right:0;display:block;width:100%;contain:content;border-radius:0;border-right-width:0;border-left-width:0}.button-native{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:block;position:relative;padding-top:var(--padding-top);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-bottom:var(--padding-bottom);width:100%;height:var(--height);transition:var(--transition);border-radius:var(--border-radius);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);color:var(--color);box-shadow:var(--shadow);line-height:1;cursor:pointer;z-index:0;text-decoration:none;box-sizing:border-box}.button-native::-moz-focus-inner{border:0}.button-native:focus{outline:none;box-shadow:var(--focus-ring);border-color:var(--border-color-focus);background-color:var(--background-focus);color:var(--color-focus)}.button-native *,.button-native *:before,.button-native *:after{box-sizing:inherit}.button-inner{display:flex;position:relative;flex-flow:row nowrap;flex-shrink:0;align-items:center;justify-content:center;width:100%;height:100%;z-index:1}:host(.button-circle) .button-native{padding-top:0;padding-bottom:0;padding-left:0;padding-right:0;border-radius:50%;width:var(--height)}@media (any-hover: hover){.button-native:hover{color:var(--color-hover);background:var(--background-hover);border-color:var(--border-color-hover)}}:host(.button-caret) .caret{display:flex;align-items:center;margin-left:0.3em}:host(.button-caret) .caret svg{width:1em;height:1em}:host(.button-pill) .button-native{border-radius:var(--height)}::slotted(*){pointer-events:none}::slotted([slot=start]){margin-top:0;margin-left:-0.3em;margin-right:0.3em;margin-bottom:0}::slotted([slot=end]){margin-top:0;margin-left:0.3em;margin-right:-0.2em;margin-bottom:0}::slotted([slot=icon-only]){font-size:1.4em;pointer-events:none}:host(.button-loading){position:relative;pointer-events:none}:host(.button-loading) .caret{visibility:hidden}:host(.button-loading) slot[name=start],:host(.button-loading) slot[name=end],:host(.button-loading) slot[name=icon-only],:host(.button-loading) slot:not([name]){visibility:hidden}:host(.button-loading) gr-spinner{--indicator-color:currentColor;position:absolute;height:1em;width:1em;top:calc(50% - 0.5em);left:calc(50% - 0.5em)}@media not all and (min-resolution: 0.001dpcm){@supports (-webkit-appearance: none) and (stroke-color: transparent){:host([type=button]),:host([type=reset]),:host([type=submit]){-webkit-appearance:none !important}}}"}},[1,"gr-button",{variant:[513],disabled:[516],loading:[516],size:[513],caret:[4],pill:[516],expand:[513],circle:[516],href:[1],target:[1],rel:[1],type:[1],setFocus:[64],removeFocus:[64]}]);function St(){if("undefined"==typeof customElements)return;["gr-button","gr-spinner"].forEach((e=>{switch(e){case"gr-button":customElements.get(e)||customElements.define(e,Ot);break;case"gr-spinner":customElements.get(e)||Et()}}))}function Mt(e,t,r="vertical",i="smooth"){const o= +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +function(e,t){return{top:Math.round(e.getBoundingClientRect().top-t.getBoundingClientRect().top),left:Math.round(e.getBoundingClientRect().left-t.getBoundingClientRect().left)}}(e,t),n=o.top+t.scrollTop,a=o.left+t.scrollLeft,s=t.scrollLeft,l=t.scrollLeft+t.offsetWidth,c=t.scrollTop,d=t.scrollTop+t.offsetHeight;"horizontal"!==r&&"both"!==r||(al&&t.scrollTo({left:a-t.offsetWidth+e.clientWidth,behavior:i})),"vertical"!==r&&"both"!==r||(nd&&t.scrollTo({top:n-t.offsetHeight+e.clientHeight,behavior:i}))} +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */function zt(e){return e.tabIndex>-1}function Lt(e){if(zt(e))return e;if(e.shadowRoot){const t=[...e.shadowRoot.children].find(zt);if(t)return t}return e.children?[...e.children].map(Lt)[0]:null}St();var Dt="top",At="bottom",Ft="right",It="left",Wt="auto",Rt=[Dt,At,Ft,It],Nt="start",Ht="end",Vt="clippingParents",jt="viewport",Bt="popper",Pt="reference",qt=Rt.reduce((function(e,t){return e.concat([t+"-"+Nt,t+"-"+Ht])}),[]),Ut=[].concat(Rt,[Wt]).reduce((function(e,t){return e.concat([t,t+"-"+Nt,t+"-"+Ht])}),[]),Kt=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Yt(e){return e?(e.nodeName||"").toLowerCase():null}function Qt(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Gt(e){return e instanceof Qt(e).Element||e instanceof Element}function Xt(e){return e instanceof Qt(e).HTMLElement||e instanceof HTMLElement}function Zt(e){return"undefined"!=typeof ShadowRoot&&(e instanceof Qt(e).ShadowRoot||e instanceof ShadowRoot)}const Jt={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var r=t.styles[e]||{},i=t.attributes[e]||{},o=t.elements[e];Xt(o)&&Yt(o)&&(Object.assign(o.style,r),Object.keys(i).forEach((function(e){var t=i[e];!1===t?o.removeAttribute(e):o.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,r={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,r.popper),t.styles=r,t.elements.arrow&&Object.assign(t.elements.arrow.style,r.arrow),function(){Object.keys(t.elements).forEach((function(e){var i=t.elements[e],o=t.attributes[e]||{},n=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:r[e]).reduce((function(e,t){return e[t]="",e}),{});Xt(i)&&Yt(i)&&(Object.assign(i.style,n),Object.keys(o).forEach((function(e){i.removeAttribute(e)})))}))}},requires:["computeStyles"]};function er(e){return e.split("-")[0]}var tr=Math.max,rr=Math.min,ir=Math.round;function or(e,t){void 0===t&&(t=!1);var r=e.getBoundingClientRect(),i=1,o=1;if(Xt(e)&&t){var n=e.offsetHeight,a=e.offsetWidth;a>0&&(i=ir(r.width)/a||1),n>0&&(o=ir(r.height)/n||1)}return{width:r.width/i,height:r.height/o,top:r.top/o,right:r.right/i,bottom:r.bottom/o,left:r.left/i,x:r.left/i,y:r.top/o}}function nr(e){var t=or(e),r=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-r)<=1&&(r=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:i}}function ar(e,t){var r=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(r&&Zt(r)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function sr(e){return Qt(e).getComputedStyle(e)}function lr(e){return["table","td","th"].indexOf(Yt(e))>=0}function cr(e){return((Gt(e)?e.ownerDocument:e.document)||window.document).documentElement}function dr(e){return"html"===Yt(e)?e:e.assignedSlot||e.parentNode||(Zt(e)?e.host:null)||cr(e)}function hr(e){return Xt(e)&&"fixed"!==sr(e).position?e.offsetParent:null}function gr(e){for(var t=Qt(e),r=hr(e);r&&lr(r)&&"static"===sr(r).position;)r=hr(r);return r&&("html"===Yt(r)||"body"===Yt(r)&&"static"===sr(r).position)?t:r||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&Xt(e)&&"fixed"===sr(e).position)return null;var r=dr(e);for(Zt(r)&&(r=r.host);Xt(r)&&["html","body"].indexOf(Yt(r))<0;){var i=sr(r);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return r;r=r.parentNode}return null}(e)||t}function ur(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function mr(e,t,r){return tr(e,rr(t,r))}function pr(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function fr(e,t){return t.reduce((function(t,r){return t[r]=e,t}),{})}const vr={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,r=e.state,i=e.name,o=e.options,n=r.elements.arrow,a=r.modifiersData.popperOffsets,s=er(r.placement),l=ur(s),c=[It,Ft].indexOf(s)>=0?"height":"width";if(n&&a){var d=function(e,t){return pr("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:fr(e,Rt))}(o.padding,r),h=nr(n),g="y"===l?Dt:It,u="y"===l?At:Ft,m=r.rects.reference[c]+r.rects.reference[l]-a[l]-r.rects.popper[c],p=a[l]-r.rects.reference[l],f=gr(n),v=f?"y"===l?f.clientHeight||0:f.clientWidth||0:0,b=m/2-p/2,y=d[g],w=v-h[c]-d[u],$=v/2-h[c]/2+b,x=mr(y,$,w),k=l;r.modifiersData[i]=((t={})[k]=x,t.centerOffset=x-$,t)}},effect:function(e){var t=e.state,r=e.options.element,i=void 0===r?"[data-popper-arrow]":r;null!=i&&("string"!=typeof i||(i=t.elements.popper.querySelector(i)))&&ar(t.elements.popper,i)&&(t.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function br(e){return e.split("-")[1]}var yr={top:"auto",right:"auto",bottom:"auto",left:"auto"};function wr(e){var t,r=e.popper,i=e.popperRect,o=e.placement,n=e.variation,a=e.offsets,s=e.position,l=e.gpuAcceleration,c=e.adaptive,d=e.roundOffsets,h=e.isFixed,g=a.x,u=void 0===g?0:g,m=a.y,p=void 0===m?0:m,f="function"==typeof d?d({x:u,y:p}):{x:u,y:p};u=f.x,p=f.y;var v=a.hasOwnProperty("x"),b=a.hasOwnProperty("y"),y=It,w=Dt,$=window;if(c){var x=gr(r),k="clientHeight",_="clientWidth";if(x===Qt(r)&&"static"!==sr(x=cr(r)).position&&"absolute"===s&&(k="scrollHeight",_="scrollWidth"),o===Dt||(o===It||o===Ft)&&n===Ht)w=At,p-=(h&&x===$&&$.visualViewport?$.visualViewport.height:x[k])-i.height,p*=l?1:-1;if(o===It||(o===Dt||o===At)&&n===Ht)y=Ft,u-=(h&&x===$&&$.visualViewport?$.visualViewport.width:x[_])-i.width,u*=l?1:-1}var C,T=Object.assign({position:s},c&&yr),E=!0===d?function(e){var t=e.x,r=e.y,i=window.devicePixelRatio||1;return{x:ir(t*i)/i||0,y:ir(r*i)/i||0}}({x:u,y:p}):{x:u,y:p};return u=E.x,p=E.y,l?Object.assign({},T,((C={})[w]=b?"0":"",C[y]=v?"0":"",C.transform=($.devicePixelRatio||1)<=1?"translate("+u+"px, "+p+"px)":"translate3d("+u+"px, "+p+"px, 0)",C)):Object.assign({},T,((t={})[w]=b?p+"px":"",t[y]=v?u+"px":"",t.transform="",t))}var $r={passive:!0};var xr={left:"right",right:"left",bottom:"top",top:"bottom"};function kr(e){return e.replace(/left|right|bottom|top/g,(function(e){return xr[e]}))}var _r={start:"end",end:"start"};function Cr(e){return e.replace(/start|end/g,(function(e){return _r[e]}))}function Tr(e){var t=Qt(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Er(e){return or(cr(e)).left+Tr(e).scrollLeft}function Or(e){var t=sr(e),r=t.overflow,i=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(r+o+i)}function Sr(e){return["html","body","#document"].indexOf(Yt(e))>=0?e.ownerDocument.body:Xt(e)&&Or(e)?e:Sr(dr(e))}function Mr(e,t){var r;void 0===t&&(t=[]);var i=Sr(e),o=i===(null==(r=e.ownerDocument)?void 0:r.body),n=Qt(i),a=o?[n].concat(n.visualViewport||[],Or(i)?i:[]):i,s=t.concat(a);return o?s:s.concat(Mr(dr(a)))}function zr(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Lr(e,t){return t===jt?zr(function(e){var t=Qt(e),r=cr(e),i=t.visualViewport,o=r.clientWidth,n=r.clientHeight,a=0,s=0;return i&&(o=i.width,n=i.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(a=i.offsetLeft,s=i.offsetTop)),{width:o,height:n,x:a+Er(e),y:s}}(e)):Gt(t)?function(e){var t=or(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):zr(function(e){var t,r=cr(e),i=Tr(e),o=null==(t=e.ownerDocument)?void 0:t.body,n=tr(r.scrollWidth,r.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),a=tr(r.scrollHeight,r.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),s=-i.scrollLeft+Er(e),l=-i.scrollTop;return"rtl"===sr(o||r).direction&&(s+=tr(r.clientWidth,o?o.clientWidth:0)-n),{width:n,height:a,x:s,y:l}}(cr(e)))}function Dr(e,t,r){var i="clippingParents"===t?function(e){var t=Mr(dr(e)),r=["absolute","fixed"].indexOf(sr(e).position)>=0&&Xt(e)?gr(e):e;return Gt(r)?t.filter((function(e){return Gt(e)&&ar(e,r)&&"body"!==Yt(e)})):[]}(e):[].concat(t),o=[].concat(i,[r]),n=o[0],a=o.reduce((function(t,r){var i=Lr(e,r);return t.top=tr(i.top,t.top),t.right=rr(i.right,t.right),t.bottom=rr(i.bottom,t.bottom),t.left=tr(i.left,t.left),t}),Lr(e,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function Ar(e){var t,r=e.reference,i=e.element,o=e.placement,n=o?er(o):null,a=o?br(o):null,s=r.x+r.width/2-i.width/2,l=r.y+r.height/2-i.height/2;switch(n){case Dt:t={x:s,y:r.y-i.height};break;case At:t={x:s,y:r.y+r.height};break;case Ft:t={x:r.x+r.width,y:l};break;case It:t={x:r.x-i.width,y:l};break;default:t={x:r.x,y:r.y}}var c=n?ur(n):null;if(null!=c){var d="y"===c?"height":"width";switch(a){case Nt:t[c]=t[c]-(r[d]/2-i[d]/2);break;case Ht:t[c]=t[c]+(r[d]/2-i[d]/2)}}return t}function Fr(e,t){void 0===t&&(t={});var r=t,i=r.placement,o=void 0===i?e.placement:i,n=r.boundary,a=void 0===n?Vt:n,s=r.rootBoundary,l=void 0===s?jt:s,c=r.elementContext,d=void 0===c?Bt:c,h=r.altBoundary,g=void 0!==h&&h,u=r.padding,m=void 0===u?0:u,p=pr("number"!=typeof m?m:fr(m,Rt)),f=d===Bt?Pt:Bt,v=e.rects.popper,b=e.elements[g?f:d],y=Dr(Gt(b)?b:b.contextElement||cr(e.elements.popper),a,l),w=or(e.elements.reference),$=Ar({reference:w,element:v,strategy:"absolute",placement:o}),x=zr(Object.assign({},v,$)),k=d===Bt?x:w,_={top:y.top-k.top+p.top,bottom:k.bottom-y.bottom+p.bottom,left:y.left-k.left+p.left,right:k.right-y.right+p.right},C=e.modifiersData.offset;if(d===Bt&&C){var T=C[o];Object.keys(_).forEach((function(e){var t=[Ft,At].indexOf(e)>=0?1:-1,r=[Dt,At].indexOf(e)>=0?"y":"x";_[e]+=T[r]*t}))}return _}function Ir(e,t){void 0===t&&(t={});var r=t,i=r.placement,o=r.boundary,n=r.rootBoundary,a=r.padding,s=r.flipVariations,l=r.allowedAutoPlacements,c=void 0===l?Ut:l,d=br(i),h=d?s?qt:qt.filter((function(e){return br(e)===d})):Rt,g=h.filter((function(e){return c.indexOf(e)>=0}));0===g.length&&(g=h);var u=g.reduce((function(t,r){return t[r]=Fr(e,{placement:r,boundary:o,rootBoundary:n,padding:a})[er(r)],t}),{});return Object.keys(u).sort((function(e,t){return u[e]-u[t]}))}const Wr={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,r=e.options,i=e.name;if(!t.modifiersData[i]._skip){for(var o=r.mainAxis,n=void 0===o||o,a=r.altAxis,s=void 0===a||a,l=r.fallbackPlacements,c=r.padding,d=r.boundary,h=r.rootBoundary,g=r.altBoundary,u=r.flipVariations,m=void 0===u||u,p=r.allowedAutoPlacements,f=t.options.placement,v=er(f),b=l||(v===f||!m?[kr(f)]:function(e){if(er(e)===Wt)return[];var t=kr(e);return[Cr(e),t,Cr(t)]}(f)),y=[f].concat(b).reduce((function(e,r){return e.concat(er(r)===Wt?Ir(t,{placement:r,boundary:d,rootBoundary:h,padding:c,flipVariations:m,allowedAutoPlacements:p}):r)}),[]),w=t.rects.reference,$=t.rects.popper,x=new Map,k=!0,_=y[0],C=0;C=0,M=S?"width":"height",z=Fr(t,{placement:T,boundary:d,rootBoundary:h,altBoundary:g,padding:c}),L=S?O?Ft:It:O?At:Dt;w[M]>$[M]&&(L=kr(L));var D=kr(L),A=[];if(n&&A.push(z[E]<=0),s&&A.push(z[L]<=0,z[D]<=0),A.every((function(e){return e}))){_=T,k=!1;break}x.set(T,A)}if(k)for(var F=function(e){var t=y.find((function(t){var r=x.get(t);if(r)return r.slice(0,e).every((function(e){return e}))}));if(t)return _=t,"break"},I=m?3:1;I>0;I--){if("break"===F(I))break}t.placement!==_&&(t.modifiersData[i]._skip=!0,t.placement=_,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Rr(e,t,r){return void 0===r&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function Nr(e){return[Dt,Ft,At,It].some((function(t){return e[t]>=0}))}const Hr={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,r=e.options,i=e.name,o=r.offset,n=void 0===o?[0,0]:o,a=Ut.reduce((function(e,r){return e[r]=function(e,t,r){var i=er(e),o=[It,Dt].indexOf(i)>=0?-1:1,n="function"==typeof r?r(Object.assign({},t,{placement:e})):r,a=n[0],s=n[1];return a=a||0,s=(s||0)*o,[It,Ft].indexOf(i)>=0?{x:s,y:a}:{x:a,y:s}}(r,t.rects,n),e}),{}),s=a[t.placement],l=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=c),t.modifiersData[i]=a}};const Vr={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,r=e.options,i=e.name,o=r.mainAxis,n=void 0===o||o,a=r.altAxis,s=void 0!==a&&a,l=r.boundary,c=r.rootBoundary,d=r.altBoundary,h=r.padding,g=r.tether,u=void 0===g||g,m=r.tetherOffset,p=void 0===m?0:m,f=Fr(t,{boundary:l,rootBoundary:c,padding:h,altBoundary:d}),v=er(t.placement),b=br(t.placement),y=!b,w=ur(v),$="x"===w?"y":"x",x=t.modifiersData.popperOffsets,k=t.rects.reference,_=t.rects.popper,C="function"==typeof p?p(Object.assign({},t.rects,{placement:t.placement})):p,T="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),E=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(x){if(n){var S,M="y"===w?Dt:It,z="y"===w?At:Ft,L="y"===w?"height":"width",D=x[w],A=D+f[M],F=D-f[z],I=u?-_[L]/2:0,W=b===Nt?k[L]:_[L],R=b===Nt?-_[L]:-k[L],N=t.elements.arrow,H=u&&N?nr(N):{width:0,height:0},V=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},j=V[M],B=V[z],P=mr(0,k[L],H[L]),q=y?k[L]/2-I-P-j-T.mainAxis:W-P-j-T.mainAxis,U=y?-k[L]/2+I+P+B+T.mainAxis:R+P+B+T.mainAxis,K=t.elements.arrow&&gr(t.elements.arrow),Y=K?"y"===w?K.clientTop||0:K.clientLeft||0:0,Q=null!=(S=null==E?void 0:E[w])?S:0,G=D+U-Q,X=mr(u?rr(A,D+q-Q-Y):A,D,u?tr(F,G):F);x[w]=X,O[w]=X-D}if(s){var Z,J="x"===w?Dt:It,ee="x"===w?At:Ft,te=x[$],re="y"===$?"height":"width",ie=te+f[J],oe=te-f[ee],ne=-1!==[Dt,It].indexOf(v),ae=null!=(Z=null==E?void 0:E[$])?Z:0,se=ne?ie:te-k[re]-_[re]-ae+T.altAxis,le=ne?te+k[re]+_[re]-ae-T.altAxis:oe,ce=u&&ne?function(e,t,r){var i=mr(e,t,r);return i>r?r:i}(se,te,le):mr(u?se:ie,te,u?le:oe);x[$]=ce,O[$]=ce-te}t.modifiersData[i]=O}},requiresIfExists:["offset"]};function jr(e,t,r){void 0===r&&(r=!1);var i,o,n=Xt(t),a=Xt(t)&&function(e){var t=e.getBoundingClientRect(),r=ir(t.width)/e.offsetWidth||1,i=ir(t.height)/e.offsetHeight||1;return 1!==r||1!==i}(t),s=cr(t),l=or(e,a),c={scrollLeft:0,scrollTop:0},d={x:0,y:0};return(n||!n&&!r)&&(("body"!==Yt(t)||Or(s))&&(c=(i=t)!==Qt(i)&&Xt(i)?{scrollLeft:(o=i).scrollLeft,scrollTop:o.scrollTop}:Tr(i)),Xt(t)?((d=or(t,!0)).x+=t.clientLeft,d.y+=t.clientTop):s&&(d.x=Er(s))),{x:l.left+c.scrollLeft-d.x,y:l.top+c.scrollTop-d.y,width:l.width,height:l.height}}function Br(e){var t=new Map,r=new Set,i=[];function o(e){r.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!r.has(e)){var i=t.get(e);i&&o(i)}})),i.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){r.has(e.name)||o(e)})),i}var Pr={placement:"bottom",modifiers:[],strategy:"absolute"};function qr(){for(var e=arguments.length,t=new Array(e),r=0;r{},onAfterHide:()=>{},onTransitionEnd:()=>{}},r),this.isVisible=!1,this.popover.hidden=!0,this.popover.classList.remove(this.options.visibleClass),this.popover.addEventListener("transitionend",this.handleTransitionEnd)}handleTransitionEnd(e){e.target===this.options.transitionElement&&(this.options.onTransitionEnd.call(this,e),this.isVisible||this.popover.hidden||(this.popover.hidden=!0,this.popover.classList.remove(this.options.visibleClass),this.options.onAfterHide.call(this)))}destroy(){this.popover.removeEventListener("transitionend",this.handleTransitionEnd),this.popper&&(this.popper.destroy(),this.popper=null)}show(){this.isVisible=!0,this.popover.hidden=!1,requestAnimationFrame((()=>this.popover.classList.add(this.options.visibleClass))),this.popper&&this.popper.destroy(),this.popper=Kr(this.anchor,this.popover,{placement:this.options.placement,strategy:this.options.strategy,modifiers:[{name:"flip",options:{boundary:"viewport"}},{name:"offset",options:{offset:[this.options.skidding,this.options.distance]}}]}),this.popover.addEventListener("transitionend",(()=>this.options.onAfterShow.call(this)),{once:!0}),requestAnimationFrame((()=>this.popper.update()))}hide(){this.isVisible=!1,this.popover.classList.remove(this.options.visibleClass)}setOptions(e){this.options=Object.assign(this.options,e),this.isVisible?this.popover.classList.add(this.options.visibleClass):this.popover.classList.remove(this.options.visibleClass),this.popper&&(this.popper.setOptions({placement:this.options.placement,strategy:this.options.strategy}),requestAnimationFrame((()=>this.popper.update())))}}let Qr=0;const Gr=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grShow=fe(this,"gr-show",7),this.grAfterShow=fe(this,"gr-after-show",7),this.grHide=fe(this,"gr-hide",7),this.grAfterHide=fe(this,"gr-after-hide",7),this.componentId="dropdown-"+ ++Qr,this.isVisible=!1,this.open=!1,this.placement="bottom-start",this.closeOnSelect=!0,this.containingElement=void 0,this.distance=2,this.skidding=0,this.hoist=!1}handleOpenChange(){this.open?this.show():this.hide(),this.updateAccessibleTrigger()}handlePopoverOptionsChange(){this.popoverElement.setOptions({strategy:this.hoist?"fixed":"absolute",placement:this.placement,distance:this.distance,skidding:this.skidding})}connectedCallback(){this.containingElement||(this.containingElement=this.el),this.handleDocumentKeyDown=this.handleDocumentKeyDown.bind(this),this.handleDocumentMouseDown=this.handleDocumentMouseDown.bind(this),this.handleMenuItemActivate=this.handleMenuItemActivate.bind(this),this.handlePanelSelect=this.handlePanelSelect.bind(this),this.handleTriggerClick=this.handleTriggerClick.bind(this),this.handleTriggerKeyDown=this.handleTriggerKeyDown.bind(this),this.handleTriggerKeyUp=this.handleTriggerKeyUp.bind(this),this.handleTriggerSlotChange=this.handleTriggerSlotChange.bind(this)}componentDidLoad(){this.popoverElement=new Yr(this.trigger,this.positioner,{strategy:this.hoist?"fixed":"absolute",placement:this.placement,distance:this.distance,skidding:this.skidding,transitionElement:this.panel,onAfterHide:()=>this.grAfterHide.emit(),onAfterShow:()=>this.grAfterShow.emit(),onTransitionEnd:()=>{this.open||(this.panel.scrollTop=0)}}),this.open&&this.show()}disconnectedCallback(){this.hide(),this.popoverElement.destroy()}async show(){if(this.isVisible)return;this.grShow.emit().defaultPrevented?this.open=!1:(this.panel.addEventListener("gr-activate",this.handleMenuItemActivate),this.panel.addEventListener("gr-select",this.handlePanelSelect),document.addEventListener("keydown",this.handleDocumentKeyDown),document.addEventListener("mousedown",this.handleDocumentMouseDown),this.isVisible=!0,this.open=!0,this.popoverElement.show())}async hide(){if(!this.isVisible)return;this.grHide.emit().defaultPrevented?this.open=!0:(this.panel.removeEventListener("gr-activate",this.handleMenuItemActivate),this.panel.removeEventListener("gr-select",this.handlePanelSelect),document.addEventListener("keydown",this.handleDocumentKeyDown),document.removeEventListener("mousedown",this.handleDocumentMouseDown),this.isVisible=!1,this.open=!1,this.popoverElement.hide())}async focusOnTrigger(){const e=this.trigger.querySelector("slot").assignedElements({flatten:!0})[0];e&&("function"==typeof e.setFocus?e.setFocus():"function"==typeof e.focus&&e.focus())}getMenu(){return this.panel.querySelector("slot").assignedElements({flatten:!0}).filter((e=>"gr-menu"===e.tagName.toLowerCase()))[0]}handleDocumentKeyDown(e){var t;if("Escape"===e.key)return this.hide(),void this.focusOnTrigger();if("Tab"===e.key){if(this.open&&"gr-menu-item"===(null===(t=document.activeElement)||void 0===t?void 0:t.tagName.toLowerCase()))return e.preventDefault(),this.hide(),void this.focusOnTrigger();setTimeout((()=>{var e;const t=this.containingElement.getRootNode()instanceof ShadowRoot?null===(e=document.activeElement.shadowRoot)||void 0===e?void 0:e.activeElement:document.activeElement;(null==t?void 0:t.closest(this.containingElement.tagName.toLowerCase()))===this.containingElement||this.hide()}))}}handleDocumentMouseDown(e){e.composedPath().includes(this.containingElement)||this.hide()}handleMenuItemActivate(e){Mt(e.target,this.panel)}handlePanelSelect(e){const t=e.target;this.closeOnSelect&&"gr-menu"===t.tagName.toLowerCase()&&(this.hide(),this.focusOnTrigger())}handleTriggerClick(){this.open?this.hide():this.show()}handleTriggerKeyDown(e){const t=this.getMenu(),r=t?[...t.querySelectorAll("gr-menu-item")]:null,i=r[0],o=r[r.length-1];if("Escape"===e.key)return this.focusOnTrigger(),void this.hide();if([" ","Enter"].includes(e.key))return e.preventDefault(),void(this.open?this.hide():this.show());if(["ArrowDown","ArrowUp"].includes(e.key)){if(e.preventDefault(),this.open||this.show(),"ArrowDown"===e.key&&i)return void i.setFocus();if("ArrowUp"===e.key&&o)return void o.setFocus()}this.open&&t&&!["Tab","Shift","Meta","Ctrl","Alt"].includes(e.key)&&t.typeToSelect(e.key)}handleTriggerKeyUp(e){" "===e.key&&e.preventDefault()}handleTriggerSlotChange(){this.updateAccessibleTrigger()}updateAccessibleTrigger(){const e=this.trigger.querySelector("slot").assignedElements({flatten:!0}).map(Lt)[0];e&&(e.setAttribute("aria-haspopup","true"),e.setAttribute("aria-expanded",this.open?"true":"false"))}render(){return de(ge,{id:this.componentId,class:{"dropdown-open":this.open}},de("span",{class:"dropdown-trigger",ref:e=>this.trigger=e,onClick:this.handleTriggerClick,onKeyDown:this.handleTriggerKeyDown,onKeyUp:this.handleTriggerKeyUp},de("slot",{name:"trigger",onSlotchange:this.handleTriggerSlotChange})),de("div",{ref:e=>this.positioner=e,class:"dropdown-positioner"},de("div",{ref:e=>this.panel=e,class:"dropdown-panel",role:"menu","aria-hidden":this.open?"false":"true","aria-labelledby":this.componentId},de("slot",null))))}get el(){return this}static get watchers(){return{open:["handleOpenChange"],distance:["handlePopoverOptionsChange"],hoist:["handlePopoverOptionsChange"],placement:["handlePopoverOptionsChange"],skidding:["handlePopoverOptionsChange"]}}static get style(){return".gr-scroll-lock{overflow:hidden !important}:host{--panel-background-color:var(--gr-color-white);--panel-border-radius:var(--gr-border-radius-medium);--panel-border-color:var(--gr-panel-border-color);--panel-box-shadow:var(--gr-shadow-large);--transition:150ms opacity, 150ms transform;display:inline-block;position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}.dropdown-trigger{display:block}.dropdown-positioner{position:absolute;z-index:var(--gr-z-index-dropdown)}.dropdown-panel{max-height:50vh;font-family:var(--gr-font-family);font-size:var(--gr-font-size-medium);font-weight:var(--gr-font-weight-normal);background-color:var(--panel-background-color);border:solid 1px var(--panel-border-color);border-radius:var(--panel-border-radius);box-shadow:var(--panel-box-shadow);opacity:0;overflow:auto;overscroll-behavior:none;pointer-events:none;transform:scale(0.9);transition:var(--transition)}.dropdown-positioner[data-popper-placement^=top] .dropdown-panel{transform-origin:bottom}.dropdown-positioner[data-popper-placement^=bottom] .dropdown-panel{transform-origin:top}.dropdown-positioner[data-popper-placement^=left] .dropdown-panel{transform-origin:right}.dropdown-positioner[data-popper-placement^=right] .dropdown-panel{transform-origin:left}.dropdown-positioner.popover-visible .dropdown-panel{opacity:1;transform:none;pointer-events:all}"}},[1,"gr-dropdown",{open:[1540],placement:[1],closeOnSelect:[4,"close-on-select"],containingElement:[1040],distance:[2],skidding:[2],hoist:[4],show:[64],hide:[64],focusOnTrigger:[64]}]);function Xr(){if("undefined"==typeof customElements)return;["gr-dropdown"].forEach((e=>{if("gr-dropdown"===e)customElements.get(e)||customElements.define(e,Gr)}))}Xr(); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +const Zr=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grSelect=fe(this,"gr-select",7),this.typeToSelectString=""}connectedCallback(){this.handleClick=this.handleClick.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}async typeToSelect(e){clearTimeout(this.typeToSelectTimeout),this.typeToSelectTimeout=setTimeout((()=>this.typeToSelectString=""),750),this.typeToSelectString+=e.toLowerCase();const t=this.getItems();for(const e of t){if(kt(e.shadowRoot.querySelector("slot:not([name])")).toLowerCase().trim().substring(0,this.typeToSelectString.length)===this.typeToSelectString){e.setFocus();break}}}getItems(){return[...this.menu.querySelector("slot").assignedElements({flatten:!0})].filter((e=>"gr-menu-item"===e.tagName.toLowerCase()&&!e.disabled))}getActiveItem(){return this.getItems().find((e=>e===document.activeElement))}setActiveItem(e){e.setFocus()}handleClick(e){const t=e.target.closest("gr-menu-item");t&&!t.disabled&&this.grSelect.emit({item:t})}handleKeyDown(e){if("Enter"===e.key){const t=this.getActiveItem();e.preventDefault(),t&&this.grSelect.emit({item:t})}if(" "===e.key&&e.preventDefault(),["ArrowDown","ArrowUp","Home","End"].includes(e.key)){const t=this.getItems(),r=this.getActiveItem();let i=t.indexOf(r);if(t.length)return e.preventDefault(),"ArrowDown"===e.key?i++:"ArrowUp"===e.key?i--:"Home"===e.key?i=0:"End"===e.key&&(i=t.length-1),i<0&&(i=0),i>t.length-1&&(i=t.length-1),void this.setActiveItem(t[i])}this.typeToSelect(e.key)}render(){return de("div",{ref:e=>this.menu=e,class:"menu",role:"menu",onClick:this.handleClick,onKeyDown:this.handleKeyDown},de("slot",null))}static get style(){return".gr-scroll-lock{overflow:hidden !important}:host{--padding-top:var(--gr-spacing-x-small);--padding-bottom:var(--gr-spacing-x-small);display:block;padding-top:var(--padding-top);padding-left:0;padding-right:0;padding-bottom:var(--padding-bottom);box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host:focus{outline:none}"}},[1,"gr-menu",{typeToSelect:[64]}]);function Jr(){if("undefined"==typeof customElements)return;["gr-menu"].forEach((e=>{if("gr-menu"===e)customElements.get(e)||customElements.define(e,Zr)}))}Jr(); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +const ei=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grClear=fe(this,"gr-clear",7),this.type="primary",this.size="medium",this.pill=!1,this.clearable=!1,this.truncate=!1,this.title=""}connectedCallback(){this.handleClearClick=this.handleClearClick.bind(this)}handleClearClick(){this.grClear.emit()}render(){return de(ge,{class:{[`tag-${this.type}`]:!0,[`tag-${this.size}`]:!0,"tag-pill":this.pill,"tag-clearable":this.clearable}},de("span",{class:"tag"},de("span",{class:{"tag-truncate":this.truncate},title:this.title},de("slot",null)),this.clearable&&de("gr-button",{variant:"plain",size:this.size,class:"tag-clear","aria-label":"clear",onClick:this.handleClearClick},de("svg",{slot:"icon-only",role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Close"),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M368 368L144 144M368 144L144 368"})))))}static get style(){return":host{--height:calc(var(--gr-form-element-height-medium) * 0.8);--line-height:calc(var(--gr-form-element-height-medium) - 1px * 2);--border-radius:var(--gr-form-element-border-radius-medium);--border-width:1px;--border-style:solid;--padding-top:0;--padding-start:var(--gr-spacing-small);--padding-end:var(--gr-spacing-small);--padding-bottom:0;--font-size:var(--gr-form-element-font-size-medium);--background-color:rgba(var(--gr-color-primary-rgb), 0.05);--border-color:rgba(var(--gr-color-primary-rgb), 0.2);--color:var(--gr-color-primary-shade);--clear-color:var(--gr-color-primary);--clear-color-hover:var(--gr-color-primary-shade);--clear-margin-left:var(--gr-spacing-xx-small);--clear-margin-right:calc(-1 * var(--gr-spacing-xxx-small));display:inline-block;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host(.tag-success){--background-color:rgba(var(--gr-color-success-rgb), 0.05);--border-color:rgba(var(--gr-color-success-rgb), 0.2);--color:var(--gr-color-success-shade);--clear-color:var(--gr-color-success);--clear-color-hover:var(--gr-color-success-shade)}:host(.tag-info){--background-color:rgba(var(--gr-color-medium-rgb), 0.05);--border-color:rgba(var(--gr-color-medium-rgb), 0.2);--color:var(--gr-color-medium-shade);--clear-color:var(--gr-color-medium);--clear-color-hover:var(--gr-color-medium-shade)}:host(.tag-warning){--background-color:rgba(var(--gr-color-warning-rgb), 0.05);--border-color:rgba(var(--gr-color-warning-rgb), 0.2);--color:var(--gr-color-warning-shade);--clear-color:var(--gr-color-warning);--clear-color-hover:var(--gr-color-warning-shade)}:host(.tag-danger){--background-color:rgba(var(--gr-color-danger-rgb), 0.05);--border-color:rgba(var(--gr-color-danger-rgb), 0.2);--color:var(--gr-color-danger-shade);--clear-color:var(--gr-color-danger);--clear-color-hover:var(--gr-color-danger-shade)}:host(.tag-small){--font-size:var(--gr-form-element-font-size-small);--height:calc(var(--gr-form-element-height-small) * 0.8);--line-height:calc(var(--gr-form-element-height-small) - 1px * 2);--border-radius:var(--gr-form-element-border-radius-small);--padding-start:var(--gr-spacing-x-small);--padding-end:var(--gr-spacing-x-small);--clear-margin-left:var(--gr-spacing-xx-small);--clear-margin-right:calc(-1 * var(--gr-spacing-xxx-small))}:host(.tag-large){--font-size:var(--gr-form-element-font-size-large);--height:calc(var(--gr-form-element-height-large) * 0.8);--line-height:calc(var(--gr-form-element-height-large) - 1px * 2);--border-radius:var(--gr-form-element-border-radius-large);--padding:0 var(--gr-spacing-medium);--clear-margin-left:var(--gr-spacing-xx-small);--clear-margin-right:calc(-1 * var(--gr-spacing-x-small))}.tag{display:flex;align-items:center;border-style:var(--border-style);border-width:var(--border-width);border-radius:var(--border-radius);white-space:nowrap;user-select:none;cursor:default;font-family:var(--gr-font-family);font-size:var(--font-size);font-weight:var(--gr-font-weight-normal);height:var(--height);line-height:var(--line-height);padding-top:var(--padding-top);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-bottom:var(--padding-bottom);background-color:var(--background-color);border-color:var(--border-color);color:var(--color)}.tag-clear{--color:var(--clear-color);--color-hover:var(--clear-color-hover);--padding-start:0;--padding-end:0;margin-left:var(--clear-margin-left);margin-right:var(--clear-margin-right);--height:1em}.tag-clear svg{font-size:0.7em}.tag-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-clear svg{width:1.1em;height:1.1em}:host(.tag-pill) .tag{border-radius:var(--height)}"}},[1,"gr-tag",{type:[513],size:[513],pill:[516],clearable:[516],truncate:[516],title:[513]}]);function ti(){if("undefined"==typeof customElements)return;["gr-tag","gr-button","gr-spinner"].forEach((e=>{switch(e){case"gr-tag":customElements.get(e)||customElements.define(e,ei);break;case"gr-button":customElements.get(e)||St();break;case"gr-spinner":customElements.get(e)||Et()}}))}ti(); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +const ri="undefined"!=typeof HTMLElement?HTMLElement:class{};let ii=0;const oi=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grChange=fe(this,"gr-change",7),this.grFocus=fe(this,"gr-focus",7),this.grBlur=fe(this,"gr-blur",7),this.inputId="select-"+ ++ii,this.labelId=`select-label-${ii}`,this.helpTextId=`select-help-text-${ii}`,this.invalidTextId=`select-invalid-text-${ii}`,this.inheritedAttributes={},this.handleBlur=()=>{this.isOpen||(this.hasFocus=!1,this.grBlur.emit())},this.handleFocus=()=>{this.hasFocus||(this.hasFocus=!0,this.grFocus.emit())},this.hasFocus=!1,this.hasHelpTextSlot=!1,this.hasInvalidTextSlot=!1,this.hasLabelSlot=!1,this.isOpen=!1,this.items=[],this.displayLabel="",this.displayTags=[],this.multiple=!1,this.maxTagsVisible=3,this.disabled=!1,this.name="",this.placeholder="",this.size="medium",this.hoist=!1,this.value="",this.pill=!1,this.label="",this.requiredIndicator=!1,this.helpText="",this.invalidText="",this.invalid=!1,this.clearable=!1}handleDisabledChange(){this.disabled&&this.isOpen&&this.dropdown.hide()}handleLabelChange(){this.handleSlotChange()}handleMultipleChange(){const e=this.getValueAsArray();this.value=this.multiple?e:e[0]||"",this.syncItemsFromValue()}handleValueChange(){this.syncItemsFromValue(),this.grChange.emit()}connectedCallback(){this.handleClearClick=this.handleClearClick.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleLabelClick=this.handleLabelClick.bind(this),this.handleMenuHide=this.handleMenuHide.bind(this),this.handleMenuShow=this.handleMenuShow.bind(this),this.handleMenuSelect=this.handleMenuSelect.bind(this),this.handleSlotChange=this.handleSlotChange.bind(this),this.handleTagInteraction=this.handleTagInteraction.bind(this),this.el.shadowRoot.addEventListener("slotchange",this.handleSlotChange)}componentWillLoad(){this.handleSlotChange(),this.inheritedAttributes=Ct(this.el,["aria-label"])}componentDidLoad(){this.resizeObserver=new ResizeObserver((()=>this.resizeMenu())),this.reportDuplicateItemValues(),requestAnimationFrame((()=>this.syncItemsFromValue()))}disconnectedCallback(){this.el.shadowRoot.removeEventListener("slotchange",this.handleSlotChange)}async setFocus(){this.hasFocus=!0,this.grFocus.emit(),this.dropdown.focusOnTrigger()}getItemLabel(e){return kt(e.shadowRoot.querySelector("slot:not([name])"))}getItems(){return[...this.el.querySelectorAll("gr-menu-item")]}getValueAsArray(){return Array.isArray(this.value)?this.value:[this.value]}handleClearClick(e){e.stopPropagation(),this.value=this.multiple?[]:"",this.syncItemsFromValue()}handleKeyDown(e){const t=e.target,r=this.getItems(),i=r[0],o=r[r.length-1];if("gr-tag"!==t.tagName.toLowerCase())if("Tab"!==e.key){if(["ArrowDown","ArrowUp"].includes(e.key)){if(e.preventDefault(),this.isOpen||this.dropdown.show(),"ArrowDown"===e.key&&i)return void i.setFocus();if("ArrowUp"===e.key&&o)return void o.setFocus()}this.isOpen||1!==e.key.length||(e.stopPropagation(),e.preventDefault(),this.dropdown.show(),this.menu.typeToSelect(e.key))}else this.isOpen&&this.dropdown.hide()}handleLabelClick(){this.box.focus()}handleMenuSelect(e){const t=e.detail.item;this.multiple?this.value=this.value.includes(t.value)?this.value.filter((e=>e!==t.value)):[...this.value,t.value]:this.value=t.value,this.syncItemsFromValue()}handleMenuShow(e){this.disabled?e.preventDefault():(this.resizeMenu(),this.resizeObserver.observe(this.el),this.isOpen=!0)}handleMenuHide(){this.resizeObserver.unobserve(this.el),this.isOpen=!1,this.box.focus()}handleSlotChange(){this.hasHelpTextSlot=_t(this.el,"help-text"),this.hasInvalidTextSlot=_t(this.el,"invalid-text"),this.hasLabelSlot=_t(this.el,"label"),this.syncItemsFromValue(),this.reportDuplicateItemValues()}handleTagInteraction(e){e.composedPath().find((e=>{if(e instanceof ri)return e.classList.contains("tag-clear")}))&&e.stopPropagation()}reportDuplicateItemValues(){const e=this.getItems().map((e=>e.value)).filter(((e,t,r)=>r.indexOf(e)!==t));if(e.length)throw new Error('Duplicate value found on in : "'+e.join('", "')+'"')}resizeMenu(){this.menu.style.width=`${this.box.clientWidth}px`}syncItemsFromValue(){const e=this.getItems(),t=this.getValueAsArray();if(e.map((e=>e.checked=t.includes(e.value))),this.multiple){const r=[];if(t.map((t=>e.map((e=>e.value===t?r.push(e):null)))),this.displayTags=r.map((e=>de("gr-tag",{type:"info",size:this.size,pill:this.pill,clearable:!0,onClick:this.handleTagInteraction,onKeyDown:this.handleTagInteraction,"onGr-clear":t=>{t.stopPropagation(),this.disabled||(e.checked=!1,this.syncValueFromItems())}},this.getItemLabel(e)))),this.maxTagsVisible>0&&this.displayTags.length>this.maxTagsVisible){const e=this.displayTags.length;this.displayLabel="",this.displayTags=this.displayTags.slice(0,this.maxTagsVisible),this.displayTags.push(de("gr-tag",{type:"info",size:this.size,pill:this.pill},"+",e-this.maxTagsVisible))}}else{const r=e.filter((e=>e.value===t[0]))[0];this.displayLabel=r?this.getItemLabel(r):"",this.displayTags=[]}}syncValueFromItems(){const e=this.getItems().filter((e=>e.checked)).map((e=>e.value));this.multiple?this.value=this.value.filter((t=>e.includes(t))):this.value=e.length>0?e[0]:""}render(){var e;const t=this.multiple?this.value.length>0:""!==this.value,r=this.inheritedAttributes["aria-label"]?{"aria-label":this.inheritedAttributes["aria-label"]}:{"aria-labelledby":this.labelId};return((e,t,r,i)=>{let o=e.querySelector("input.aux-input");o||(o=e.ownerDocument.createElement("input"),o.type="hidden",o.classList.add("aux-input"),e.appendChild(o)),o.disabled=i,o.name=t,o.value=r||""})(this.el,this.name,ni(this.value),this.disabled),de(xt,{inputId:this.inputId,label:this.label,labelId:this.labelId,hasLabelSlot:this.hasLabelSlot,helpTextId:this.helpTextId,helpText:this.helpText,hasHelpTextSlot:this.hasHelpTextSlot,invalidTextId:this.invalidTextId,invalidText:this.invalidText,invalid:this.invalid,hasInvalidTextSlot:this.hasInvalidTextSlot,size:this.size,onLabelClick:this.handleLabelClick,requiredIndicator:this.requiredIndicator},de("gr-dropdown",{ref:e=>this.dropdown=e,hoist:this.hoist,closeOnSelect:!this.multiple,containingElement:this.el,class:{select:!0,"select-open":this.isOpen,"select-empty":0===(null===(e=this.value)||void 0===e?void 0:e.length),"select-focused":this.hasFocus,"select-clearable":this.clearable,"select-disabled":this.disabled,"select-multiple":this.multiple,"select-has-tags":this.multiple&&t,"select-placeholder-visible":""===this.displayLabel,[`select-${this.size}`]:!0,"select-pill":this.pill,"select-invalid":this.invalid},"onGr-show":this.handleMenuShow,"onGr-hide":this.handleMenuHide},de("div",Object.assign({slot:"trigger",ref:e=>this.box=e,id:this.inputId,class:"select-box",role:"combobox"},r,{"aria-describedby":this.invalid?this.invalidTextId:this.helpTextId,"aria-haspopup":"true","aria-expanded":this.isOpen?"true":"false","aria-invalid":this.invalid?"true":"false","aria-required":this.requiredIndicator?"true":"false",tabIndex:this.disabled?-1:0,onBlur:this.handleBlur,onFocus:this.handleFocus,onKeyDown:this.handleKeyDown}),de("div",{class:"select-label"},this.displayTags.length?de("span",{class:"select-tags"},this.displayTags):this.displayLabel||this.placeholder),this.clearable&&t&&de("button",{class:"select-clear",type:"button",onClick:this.handleClearClick,"aria-label":"clear",tabindex:"-1"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Close Circle"),de("path",{d:"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z",fill:"none",stroke:"currentColor","stroke-miterlimit":"10","stroke-width":"32"}),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M320 320L192 192M192 320l128-128"}))),de("span",{class:"caret"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Chevron Down"),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"48",d:"M112 184l144 144 144-144"}))),de("input",{class:"select-hidden-select","aria-hidden":"true",value:t?"1":"",tabIndex:-1})),de("gr-menu",{ref:e=>this.menu=e,class:"select-menu","onGr-select":this.handleMenuSelect},de("slot",{onSlotchange:this.handleSlotChange}))))}get el(){return this}static get watchers(){return{disabled:["handleDisabledChange"],helpText:["handleLabelChange"],invalidText:["handleLabelChange"],label:["handleLabelChange"],multiple:["handleMultipleChange"],value:["handleValueChange"]}}static get style(){return".form-control .form-control-label{display:none}.form-control .form-control-help-text{display:none}.form-control .form-control-invalid-text{display:none}.form-control-has-label .form-control-label{display:flex;line-height:var(--gr-line-height-normal);color:var(--gr-form-element-label-color);margin-bottom:var(--gr-spacing-xxx-small)}.form-control-has-label.form-control-small .form-control-label{font-size:var(--gr-form-element-label-font-size-small)}.form-control-has-label.form-control-medium .form-control-label{font-size:var(--gr-form-element-label-font-size-medium)}.form-control-has-label.form-control-large .form-control-label{font-size:var(--gr-form-element-label-font-size-large)}.form-control-has-label .form-control-label .asterisk{margin-left:var(--gr-spacing-x-small);color:var(--gr-color-medium)}.form-control-has-label .form-control-label .asterisk svg{width:0.6em;height:0.6em;margin-bottom:var(--gr-spacing-xxx-small)}.form-control-has-help-text .form-control-help-text{display:block;line-height:var(--gr-line-height-normal);color:var(--gr-form-element-help-text-color);margin-top:var(--gr-spacing-xxx-small)}.form-control-has-help-text.form-control-small .form-control-help-text{font-size:var(--gr-form-element-help-text-font-size-small);min-height:1.625rem}.form-control-has-help-text.form-control-medium .form-control-help-text{font-size:var(--gr-form-element-help-text-font-size-medium);min-height:1.875rem}.form-control-has-help-text.form-control-large .form-control-help-text{font-size:var(--gr-form-element-help-text-font-size-large);min-height:2.125rem}.form-control-has-invalid-text .form-control-invalid-text{display:flex;margin-left:-2px;line-height:var(--gr-line-height-normal);color:var(--gr-form-element-invalid-text-color);margin-top:var(--gr-spacing-xxx-small)}.form-control-has-invalid-text .form-control-invalid-text .icon{margin-top:var(--gr-spacing-xxx-small);margin-right:var(--gr-spacing-xx-small)}.form-control-has-invalid-text .form-control-invalid-text .icon svg{width:1.4em;height:1.4em}.form-control-has-invalid-text.form-control-small .form-control-invalid-text{font-size:var(--gr-form-element-invalid-text-font-size-small);min-height:1.625rem}.form-control-has-invalid-text.form-control-medium .form-control-invalid-text{font-size:var(--gr-form-element-invalid-text-font-size-medium);min-height:1.875rem}.form-control-has-invalid-text.form-control-large .form-control-invalid-text{font-size:var(--gr-form-element-invalid-text-font-size-large);min-height:2.125rem}.gr-scroll-lock{overflow:hidden !important}:host{--font-size:var(--gr-form-element-font-size-medium);--font-weight:var(--gr-font-weight-normal);--background-color:var(--gr-color-white);--background-color-hover:var(--gr-color-white);--background-color-focus:var(--gr-color-white);--background-color-invalid:var(--gr-color-white);--background-color-invalid-hover:var(--gr-color-white);--border-radius:var(--gr-form-element-border-radius-small);--border-color:var(--gr-color-light-shade);--border-color-hover:var(--gr-color-medium);--border-color-focus:var(--gr-color-primary);--border-color-invalid:var(--gr-color-danger);--border-color-invalid-hover:var(--gr-color-danger-shade);--color:var(--gr-color-dark-tint);--placeholder-color:var(--gr-color-medium-tint);--min-height:var(--gr-form-element-height-medium);--label-margin-start:var(--gr-spacing-medium);--label-margin-end:var(--gr-spacing-medium);--clear-icon-margin-end:var(--gr-spacing-medium);--caret-margin-end:var(--gr-spacing-medium);--tags-padding-top:3px;--tags-padding-bottom:3px;--tags-margin-end:var(--gr-spacing-xx-small);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33);display:block;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}.select-small{--font-size:var(--gr-form-element-font-size-small);--min-height:var(--gr-form-element-height-small);--label-margin-start:var(--gr-spacing-small);--label-margin-end:var(--gr-spacing-small);--clear-icon-margin-end:var(--gr-spacing-small);--caret-margin-end:var(--gr-spacing-small);--tags-padding-top:2px;--tags-padding-bottom:2px}.select-large{--font-size:var(--gr-form-element-font-size-large);--min-height:var(--gr-form-element-height-large);--label-margin-start:var(--gr-spacing-large);--label-margin-end:var(--gr-spacing-large);--clear-icon-margin-end:var(--gr-spacing-large);--caret-margin-end:var(--gr-spacing-large);--tags-padding-top:4px;--tags-padding-bottom:4px}.select{display:block}.select-box{display:inline-flex;align-items:center;justify-content:start;position:relative;width:100%;font-family:var(--gr-font-family);font-size:var(--font-size);font-weight:var(--font-weight);letter-spacing:normal;background-color:var(--background-color);border:solid 1px var(--border-color);border-radius:var(--border-radius);min-height:var(--min-height);color:var(--color);vertical-align:middle;overflow:hidden;transition:150ms color, 150ms border, 150ms box-shadow;cursor:pointer}.select.select-invalid:not(.select-disabled) .select-box{background-color:var(--background-color-invalid);border-color:var(--border-color-invalid)}.select.select-invalid:not(.select-disabled):not(.select-focused) .select-box:hover{background-color:var(--background-color-invalid-hover);border-color:var(--border-color-invalid-hover)}.select.select-invalid:not(.select-disabled) .select-box{background-color:var(--background-color-invalid);border-color:var(--border-color-invalid)}.select:not(.select-disabled) .select-box:hover{background-color:var(--background-color-hover);border-color:var(--border-color-hover)}.select.select-focused:not(.select-disabled) .select-box{outline:none;box-shadow:var(--focus-ring);border-color:var(--border-color-focus);background-color:var(--background-color-focus)}.select-disabled .select-box{opacity:0.5;cursor:not-allowed;outline:none}.select-disabled .select-tags,.select-disabled .select-clear{pointer-events:none}.select-label{flex:1 1 auto;display:flex;align-items:center;user-select:none;margin-top:0;margin-left:var(--label-margin-start);margin-right:var(--label-margin-end);margin-bottom:0;scrollbar-width:none;-ms-overflow-style:none;overflow-x:auto;overflow-y:hidden;white-space:nowrap}.select-label::-webkit-scrollbar{width:0;height:0}.select-has-tags .select-label{margin-left:0}.select-clear{display:inline-flex;align-items:center;font-size:inherit;color:var(--gr-color-medium);border:none;background:none;padding:0;transition:150ms color;cursor:pointer;margin-right:var(--clear-icon-margin-end)}.select-clear:hover{color:var(--gr-color-dark)}.select-clear:focus{outline:none}.select-clear svg{width:1.2em;height:1.2em;font-size:var(--font-size)}.caret{flex:0 0 auto;display:inline-flex;transition:250ms transform ease;margin-right:var(--caret-margin-end)}.caret svg{width:1em;height:1em;font-size:var(--font-size)}.select-open .caret{transform:rotate(-180deg)}.select-placeholder-visible .select-label{color:var(--placeholder-color)}.select-tags{display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:left;margin-left:var(--gr-spacing-xx-small);padding-bottom:var(--tags-padding-bottom)}.select-tags gr-tag{padding-top:var(--tags-padding-top)}.select-tags gr-tag:not(:last-of-type){margin-right:var(--tags-margin-end)}.select-hidden-select{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px;position:absolute;top:0;left:0;width:100%;height:100%}.select-pill .select-box{border-radius:var(--min-height)}"}},[1,"gr-select",{multiple:[4],maxTagsVisible:[2,"max-tags-visible"],disabled:[4],name:[1],placeholder:[1],size:[1],hoist:[4],value:[1025],pill:[4],label:[1],requiredIndicator:[4,"required-indicator"],helpText:[1,"help-text"],invalidText:[1,"invalid-text"],invalid:[516],clearable:[4],hasFocus:[32],hasHelpTextSlot:[32],hasInvalidTextSlot:[32],hasLabelSlot:[32],isOpen:[32],items:[32],displayLabel:[32],displayTags:[32],setFocus:[64]}]),ni=e=>{if(null!=e)return Array.isArray(e)?e.join(","):e.toString()};!function(){if("undefined"==typeof customElements)return;["gr-select","gr-button","gr-dropdown","gr-menu","gr-spinner","gr-tag"].forEach((e=>{switch(e){case"gr-select":customElements.get(e)||customElements.define(e,oi);break;case"gr-button":customElements.get(e)||St();break;case"gr-dropdown":customElements.get(e)||Xr();break;case"gr-menu":customElements.get(e)||Jr();break;case"gr-spinner":customElements.get(e)||Et();break;case"gr-tag":customElements.get(e)||ti()}}))}();const ai=oi,si=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.hasFocus=!1,this.checked=!1,this.value="",this.disabled=!1}connectedCallback(){this.handleBlur=this.handleBlur.bind(this),this.handleFocus=this.handleFocus.bind(this),this.handleMouseEnter=this.handleMouseEnter.bind(this),this.handleMouseLeave=this.handleMouseLeave.bind(this)}async setFocus(e){this.el.focus(e)}async removeFocus(){this.el.blur()}handleBlur(){this.hasFocus=!1}handleFocus(){this.hasFocus=!0}handleMouseEnter(){this.setFocus()}handleMouseLeave(){this.removeFocus()}render(){return de(ge,{class:{"menu-item-checked":this.checked,"menu-item-disabled":this.disabled,"menu-item-focused":this.hasFocus},role:"menuitem","aria-disabled":this.disabled?"true":"false","aria-checked":this.checked?"true":"false",tabIndex:this.disabled?null:0,onFocus:this.handleFocus,onBlur:this.handleBlur,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave},de("span",{class:"checkmark"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Checkmark"),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M416 128L192 384l-96-96"}))),de("span",{class:"start"},de("slot",{name:"start"})),de("span",{class:"label"},de("slot",null)),de("span",{class:"end"},de("slot",{name:"end"})))}get el(){return this}static get style(){return".gr-scroll-lock{overflow:hidden !important}:host{--line-height:var(--gr-line-height-normal);--background-color:transparent;--background-color-focused:var(--gr-color-primary);--color:var(--gr-color-dark);--color-focused:var(--gr-color-primary-contrast);--color-disabled:var(--gr-color-medium);--padding-top:var(--gr-spacing-xx-small);--padding-start:var(--gr-spacing-x-large);--padding-end:var(--gr-spacing-x-large);--padding-bottom:var(--gr-spacing-xx-small);--transition:background-color 150ms linear, color 150ms linear;position:relative;display:flex;align-items:stretch;font-family:var(--gr-font-family);font-size:var(--gr-font-size-medium);font-weight:var(--gr-font-weight-normal);line-height:var(--line-height);letter-spacing:var(--gr-letter-spacing-normal);text-align:left;background-color:var(--background-color);color:var(--color);padding-top:var(--padding-top);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-bottom:var(--padding-bottom);transition:var(--transition);user-select:none;white-space:nowrap;cursor:pointer;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host(.menu-item-focused:not(.menu-item-disabled)){outline:none;background-color:var(--background-color-focused);color:var(--color-focused)}:host(.menu-item-disabled){outline:none;color:var(--color-disabled);cursor:not-allowed}.checkmark{display:flex;position:absolute;left:0.5em;top:calc(50% - 0.5em);visibility:hidden;align-items:center;font-size:inherit}.checkmark svg{display:inline-block;width:1.1em;height:1.1em;contain:strict;fill:currentcolor;box-sizing:content-box !important}:host(.menu-item-checked) .checkmark{visibility:visible}.label{flex:1 1 auto}.start{flex:0 0 auto;display:flex;align-items:center}.start ::slotted(:last-child){margin-right:0.5em}.end{flex:0 0 auto;display:flex;align-items:center}.end ::slotted(:first-child){margin-left:0.5em}"}},[1,"gr-menu-item",{checked:[516],value:[513],disabled:[516],hasFocus:[32],setFocus:[64],removeFocus:[64]}]); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */!function(){if("undefined"==typeof customElements)return;["gr-menu-item"].forEach((e=>{if("gr-menu-item"===e)customElements.get(e)||customElements.define(e,si)}))}();const li={"gr-select":ai,"gr-menu-item":si};class ci extends(q(_)){constructor(){super(...arguments),this.value=null,this.multiple=!1,this.clearable=!1,this._refSelect=y()}reset(){this.value=null}_valueChangedHandler(e){const t=this._refSelect.value?.value;if(void 0!==t&&!l(this.value,t)){const e=null===this.value;this.value=t,e||w(this,"select:change",t)}}willUpdate(e){e.has("initialValue")&&this.initialValue&&!this.value&&(this.value=this.initialValue)}render(){return $` + ${this.options?.map((e=>$`${e.label}`))} + `}static get styles(){return k(':root, :host {\n --gr-color-primary: #1079b2;\n --gr-color-primary-rgb: 16, 121, 178;\n --gr-color-primary-contrast: #ffffff;\n --gr-color-primary-contrast-rgb: 255, 255, 255;\n --gr-color-primary-shade: #0d6696;\n --gr-color-primary-tint: #1499e1;\n --gr-color-secondary: #051f2c;\n --gr-color-secondary-rgb: 5, 31, 44;\n --gr-color-secondary-contrast: #ffffff;\n --gr-color-secondary-contrast-rgb: 255, 255, 255;\n --gr-color-secondary-shade: #000000;\n --gr-color-secondary-tint: #0a415c;\n --gr-color-tertiary: #0c4a6e;\n --gr-color-tertiary-rgb: 12, 74, 110;\n --gr-color-tertiary-contrast: #ffffff;\n --gr-color-tertiary-contrast-rgb: 255, 255, 255;\n --gr-color-tertiary-shade: #083249;\n --gr-color-tertiary-tint: #106393;\n --gr-color-success: #0fbe78;\n --gr-color-success-rgb: 15, 190, 120;\n --gr-color-success-contrast: #000000;\n --gr-color-success-contrast-rgb: 0, 0, 0;\n --gr-color-success-shade: #057f4e;\n --gr-color-success-tint: #12e28f;\n --gr-color-warning: #fbbc4e;\n --gr-color-warning-rgb: 251, 188, 78;\n --gr-color-warning-contrast: #051f2c;\n --gr-color-warning-contrast-rgb: 5, 31, 44;\n --gr-color-warning-shade: #9e6400;\n --gr-color-warning-tint: #fdd187;\n --gr-color-danger: #e60017;\n --gr-color-danger-rgb: 230, 0, 23;\n --gr-color-danger-contrast: #ffffff;\n --gr-color-danger-contrast-rgb: 255, 255, 255;\n --gr-color-danger-shade: #cc0014;\n --gr-color-danger-tint: #ff1f35;\n --gr-color-light: #f4f5f8;\n --gr-color-light-rgb: 244, 245, 248;\n --gr-color-light-contrast: #051f2c;\n --gr-color-light-contrast-rgb: 5, 31, 44;\n --gr-color-light-shade: #d7d8da;\n --gr-color-light-tint: #f9fafb;\n --gr-color-medium: #5e6c78;\n --gr-color-medium-rgb: 94, 108, 120;\n --gr-color-medium-contrast: #ffffff;\n --gr-color-medium-contrast-rgb: 255, 255, 255;\n --gr-color-medium-shade: #48535b;\n --gr-color-medium-tint: #81909c;\n --gr-color-dark: #02131b;\n --gr-color-dark-rgb: 2, 19, 27;\n --gr-color-dark-contrast: #ffffff;\n --gr-color-dark-contrast-rgb: 255, 255, 255;\n --gr-color-dark-shade: #000000;\n --gr-color-dark-tint: #222428;\n --gr-color-white: #ffffff;\n --gr-color-black: #000000;\n --gr-border-radius-small: 0.125rem;\n --gr-border-radius-medium: 0.25rem;\n --gr-border-radius-large: 0.5rem;\n --gr-border-radius-x-large: 1rem;\n --gr-border-width-small: 0.063rem;\n --gr-border-width-medium: 0.125rem;\n --gr-border-width-large: 0.188rem;\n --gr-shadow-x-small: 0 1px 0 #0d131e0d;\n --gr-shadow-small: 0 1px 2px #0d131e1a;\n --gr-shadow-medium: 0 2px 4px #0d131e1a;\n --gr-shadow-large: 0 2px 8px #0d131e1a;\n --gr-shadow-x-large: 0 4px 16px #0d131e1a;\n --gr-spacing-xxx-small: 0.125rem;\n --gr-spacing-xx-small: 0.25rem;\n --gr-spacing-x-small: 0.5rem;\n --gr-spacing-small: 0.75rem;\n --gr-spacing-medium: 1rem;\n --gr-spacing-large: 1.25rem;\n --gr-spacing-x-large: 1.75rem;\n --gr-spacing-xx-large: 2.25rem;\n --gr-spacing-xxx-large: 3rem;\n --gr-spacing-xxxx-large: 4.5rem;\n --gr-font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial,\n sans-serif;\n --gr-letter-spacing-dense: -0.015em;\n --gr-letter-spacing-normal: normal;\n --gr-letter-spacing-loose: 0.075em;\n --gr-line-height-dense: 1.4;\n --gr-line-height-normal: 1.8;\n --gr-line-height-loose: 2.2;\n --gr-font-size-xx-small: 0.625rem;\n --gr-font-size-x-small: 0.75rem;\n --gr-font-size-small: 0.875rem;\n --gr-font-size-medium: 1rem;\n --gr-font-size-large: 1.25rem;\n --gr-font-size-x-large: 1.5rem;\n --gr-font-size-xx-large: 2.25rem;\n --gr-font-size-xxx-large: 3rem;\n --gr-font-size-xxxx-large: 4.5rem;\n --gr-font-weight-thin: 100;\n --gr-font-weight-extra-light: 200;\n --gr-font-weight-light: 300;\n --gr-font-weight-normal: 400;\n --gr-font-weight-medium: 500;\n --gr-font-weight-semi-bold: 600;\n --gr-font-weight-bold: 700;\n --gr-font-weight-extra-bold: 800;\n --gr-font-weight-black: 900;\n --gr-form-element-font-size-x-small: var(--gr-font-size-x-small);\n --gr-form-element-font-size-small: var(--gr-font-size-small);\n --gr-form-element-font-size-medium: var(--gr-font-size-medium);\n --gr-form-element-font-size-large: var(--gr-font-size-large);\n --gr-form-element-height-small: 2.188rem;\n --gr-form-element-height-medium: 3.125rem;\n --gr-form-element-height-large: 4.063rem;\n --gr-form-element-border-radius-small: var(--gr-border-radius-medium);\n --gr-form-element-border-radius-medium: var(--gr-border-radius-medium);\n --gr-form-element-border-radius-large: var(--gr-border-radius-medium);\n --gr-focus-ring-width: 2px;\n --gr-form-element-label-font-size-small: var(--gr-font-size-small);\n --gr-form-element-label-font-size-medium: var(--gr-font-size-medium);\n --gr-form-element-label-font-size-large: var(--gr-font-size-large);\n --gr-form-element-label-color: inherit;\n --gr-form-element-help-text-font-size-small: var(--gr-font-size-x-small);\n --gr-form-element-help-text-font-size-medium: var(--gr-font-size-small);\n --gr-form-element-help-text-font-size-large: var(--gr-font-size-medium);\n --gr-form-element-help-text-color: var(--gr-color-medium);\n --gr-form-element-invalid-text-font-size-small: var(--gr-font-size-x-small);\n --gr-form-element-invalid-text-font-size-medium: var(--gr-font-size-small);\n --gr-form-element-invalid-text-font-size-large: var(--gr-font-size-medium);\n --gr-form-element-invalid-text-color: var(--gr-color-danger);\n --gr-toggle-size: 1rem;\n --gr-panel-border-color: var(--gr-color-light-shade);\n --gr-z-index-dropdown: 900;\n}\n\n')}}ci.elementDefinitions={...li},f([v({attribute:!1,hasChanged:b})],ci.prototype,"options",void 0),f([v({attribute:!1,hasChanged:b})],ci.prototype,"value",void 0),f([v({attribute:!1,hasChanged:b})],ci.prototype,"initialValue",void 0),f([v({attribute:!0})],ci.prototype,"label",void 0),f([v({attribute:!0})],ci.prototype,"placeholder",void 0),f([v({attribute:!0,type:Boolean})],ci.prototype,"multiple",void 0),f([v({attribute:!0,type:Boolean})],ci.prototype,"clearable",void 0);let di=class extends(q(_)){constructor(){super(...arguments),this._mediaFilterController=new U(this),this._refMediaType=y(),this._refCamera=y(),this._refWhen=y(),this._refWhenFrom=y(),this._refWhenTo=y(),this._refWhat=y(),this._refWhere=y(),this._refFavorite=y(),this._refTags=y()}willUpdate(e){e.has("viewManagerEpoch")&&this._mediaFilterController.setViewManager(this.viewManagerEpoch?.manager??null),e.has("cameraManager")&&this.cameraManager&&(this._mediaFilterController.computeCameraOptions(this.cameraManager),this._mediaFilterController.computeMetadataOptions(this.cameraManager)),!e.get("viewManager")&&this.viewManagerEpoch&&this.cameraManager&&this._mediaFilterController.computeInitialDefaultsFromView(this.cameraManager)}render(){const e=async()=>{this.cameraManager&&this.viewManagerEpoch&&this.cardWideConfig&&await this._mediaFilterController.valueChangeHandler(this.cameraManager,this.cardWideConfig,{camera:this._refCamera.value?.value??void 0,mediaType:this._refMediaType.value?.value??void 0,when:{selected:this._refWhen.value?.value??void 0,from:this._refWhenFrom.value?.value,to:this._refWhenTo.value?.value},favorite:this._refFavorite.value?.value??void 0,where:this._refWhere.value?.value??void 0,what:this._refWhat.value?.value??void 0,tags:this._refTags.value?.value??void 0})},t=async t=>{"custom"===t&&this._refWhen.value?this._refWhenFrom.value?.value||this._refWhenTo.value?.value?this._refWhen.value.value=B.Custom:this._refWhen.value.reset():this._refWhen.value?.value!==B.Custom&&(this._refWhenFrom.value?.reset(),this._refWhenTo.value?.reset()),await e()};if(!this.cameraManager||!this.viewManagerEpoch)return;const r=this._mediaFilterController.getControlsToShow(this.cameraManager),o=this._mediaFilterController.getDefaults(),n=this._mediaFilterController.getWhatOptions(),a=this._mediaFilterController.getTagsOptions(),s=this._mediaFilterController.getWhereOptions();return $` e()} + > + +
    + t("selected")} + > + + t("custom")} + > + + t("custom")} + > + +
    + e()} + > + + ${r.events&&n.length?$` e()} + > + `:""} + ${r.events&&a.length?$` e()} + > + `:""} + ${r.events&&s.length?$` e()} + > + `:""} + ${r.favorites?$` + e()} + > + + `:""}`}static get styles(){return k(":host {\n display: flex;\n flex-direction: column;\n overflow: auto;\n scrollbar-width: none;\n -ms-overflow-style: none;\n height: 100%;\n width: 300px;\n margin: 5px;\n}\n\n/* Hide scrollbar for Chrome, Safari and Opera */\n:host::-webkit-scrollbar {\n display: none;\n}\n\nfrigate-card-select {\n padding: 5px;\n}\n\ndiv.when {\n display: inline-flex;\n align-items: flex-end;\n}\n\ndiv.when frigate-card-select {\n flex: 1;\n}\n\ndiv.when frigate-card-date-picker {\n padding-bottom: 5px;\n transition: width 0.5s ease-in-out;\n}\n\ndiv.when frigate-card-date-picker {\n color: var(--secondary-color);\n}\n\ndiv.when frigate-card-date-picker.selected {\n color: var(--primary-color);\n}\n\ndiv.when frigate-card-date-picker.hidden {\n width: 0px;\n}")}};di.elementDefinitions={"frigate-card-select":ci,"frigate-card-date-picker":R},f([v({attribute:!1})],di.prototype,"hass",void 0),f([v({attribute:!1})],di.prototype,"cameraManager",void 0),f([v({attribute:!1})],di.prototype,"viewManagerEpoch",void 0),f([v({attribute:!1})],di.prototype,"cardWideConfig",void 0),di=f([C("frigate-card-media-filter")],di);const hi={closed:"mdi:filter-cog-outline",open:"mdi:filter-cog"};let gi=class extends _{render(){const e=this.viewManagerEpoch?.manager.getView();if(this.hass&&e?.isGalleryView()&&this.cameraManager&&this.cardWideConfig)return $` + + ${this.galleryConfig&&"none"!==this.galleryConfig.controls.filter.mode?$` + `:""} + + + + `}static get styles(){return k(":host {\n width: 100%;\n height: 100%;\n display: block;\n}\n\nfrigate-card-surround-basic {\n max-height: 110dvh;\n}")}};f([v({attribute:!1})],gi.prototype,"hass",void 0),f([v({attribute:!1})],gi.prototype,"viewManagerEpoch",void 0),f([v({attribute:!1})],gi.prototype,"galleryConfig",void 0),f([v({attribute:!1})],gi.prototype,"cameraManager",void 0),f([v({attribute:!1})],gi.prototype,"cardWideConfig",void 0),gi=f([C("frigate-card-gallery")],gi);let ui=class extends _{constructor(){super(),this._refLoaderBottom=y(),this._refSelected=y(),this._showLoaderBottom=!0,this._showLoaderTop=!1,this._boundWheelHandler=this._wheelHandler.bind(this),this._boundTouchStartHandler=this._touchStartHandler.bind(this),this._boundTouchEndHandler=this._touchEndHandler.bind(this),this._throttleExtendGalleryLater=O(this._extendGallery.bind(this),500,{leading:!0,trailing:!1}),this._touchScrollYPosition=null,this._resizeObserver=new ResizeObserver(this._resizeHandler.bind(this)),this._intersectionObserver=new IntersectionObserver(this._intersectionHandler.bind(this))}_touchStartHandler(e){1===e.touches.length?this._touchScrollYPosition=e.touches[0].screenY:this._touchScrollYPosition=null}async _touchEndHandler(e){!this.scrollTop&&1===e.changedTouches.length&&this._touchScrollYPosition&&e.changedTouches[0].screenY>this._touchScrollYPosition&&await this._extendLater(),this._touchScrollYPosition=null}async _wheelHandler(e){!this.scrollTop&&e.deltaY<0&&await this._extendLater()}async _extendLater(){const e=new Date;this._showLoaderTop=!0,await this._throttleExtendGalleryLater("later",!1);const t=(new Date).getTime()-e.getTime();t<500&&await S(.5-t/1e3),this._showLoaderTop=!1}connectedCallback(){super.connectedCallback(),this._resizeObserver.observe(this),this.addEventListener("wheel",this._boundWheelHandler,{passive:!0}),this.addEventListener("touchstart",this._boundTouchStartHandler,{passive:!0}),this.addEventListener("touchend",this._boundTouchEndHandler),this.requestUpdate()}disconnectedCallback(){this.removeEventListener("wheel",this._boundWheelHandler),this.removeEventListener("touchstart",this._boundTouchStartHandler),this.removeEventListener("touchend",this._boundTouchEndHandler),this._resizeObserver.disconnect(),this._intersectionObserver.disconnect(),super.disconnectedCallback()}_setColumnCount(){const e=this.galleryConfig?.controls.thumbnails.size??M.media_gallery.controls.thumbnails.size,t=this.galleryConfig?.controls.thumbnails.show_details?Math.max(1,Math.floor(this.clientWidth/z)):Math.max(1,Math.ceil(this.clientWidth/e));this.style.setProperty("--frigate-card-gallery-columns",String(t))}_resizeHandler(){this._setColumnCount()}async _intersectionHandler(e){e.every((e=>!e.isIntersecting))||(this._showLoaderBottom=!1,await this._extendGallery("earlier"))}async _extendGallery(e,t=!0){const r=this.viewManagerEpoch?.manager.getView();if(!this.cameraManager||!this.hass||!r)return;const i=r.query,n=i?.getQueries()??null,s=r.queryResults?.getResults();if(!i||!n||!s)return;let l;try{l=await this.cameraManager.extendMediaQueries(n,s,e,{useCache:t})}catch(e){return void d(e)}if(l){const e=c.areEventQueries(i)?new o(l.queries):c.areRecordingQueries(i)?new a(l.queries):null;e&&this.viewManagerEpoch?.manager.setViewByParameters({baseView:r,params:{query:e,queryResults:new L({results:l.results}).selectResultIfFound((e=>e===r.queryResults?.getSelectedResult()))}})}}willUpdate(e){if(e.has("galleryConfig")&&(this.galleryConfig?.controls.thumbnails.show_details?this.setAttribute("details",""):this.removeAttribute("details"),this._setColumnCount(),this.galleryConfig?.controls.thumbnails.size&&this.style.setProperty("--frigate-card-thumbnail-size",`${this.galleryConfig.controls.thumbnails.size}px`)),e.has("viewManagerEpoch")){this._showLoaderBottom=!0;const e=this.viewManagerEpoch?.manager.getView(),t=this.viewManagerEpoch?.oldView;this._media&&t?.queryResults?.getResults()===e?.queryResults?.getResults()||(this._media=[...e?.queryResults?.getResults()??[]].reverse())}}render(){if(!this._media||!this.hass)return $``;const e=this.viewManagerEpoch?.manager.getView();if(!e?.queryResults||0===e.queryResults.getResultsCount()){const t=!!e?.context?.loading?.query;return D({type:"info",message:i(t?"error.awaiting_media":"common.no_media"),icon:"mdi:multimedia",dotdotdot:t})}const t=e.queryResults.getSelectedResult();return $`
    + ${this._showLoaderTop?$`${A({cardWideConfig:this.cardWideConfig,classes:{top:!0},size:"small"})}`:""} + ${this._media.map(((r,i)=>$`{this._media&&this.viewManagerEpoch?.manager.setViewByParameters({params:{view:"media",queryResults:e.queryResults?.clone().selectIndex(this._media.length-i-1)}}),F(t)}} + > + `))} + ${this._showLoaderBottom?$`${A({cardWideConfig:this.cardWideConfig,componentRef:this._refLoaderBottom})}`:""} +
    `}updated(e){this._refLoaderBottom.value&&(this._intersectionObserver.disconnect(),this._intersectionObserver.observe(this._refLoaderBottom.value)),this.updateComplete.then((()=>{e.has("viewManagerEpoch")&&!e.get("viewManagerEpoch")&&this._refSelected.value&&this._refSelected.value.scrollIntoView({block:"center"})}))}static get styles(){return k(":host {\n width: 100%;\n height: 100%;\n display: block;\n overflow: auto;\n -ms-overflow-style: none;\n scrollbar-width: none;\n --frigate-card-gallery-gap: 3px;\n --frigate-card-gallery-columns: 4;\n}\n\n.grid {\n display: grid;\n grid-template-columns: repeat(var(--frigate-card-gallery-columns), minmax(0, 1fr));\n grid-auto-rows: min-content;\n gap: var(--frigate-card-gallery-gap);\n}\n\n:host::-webkit-scrollbar {\n display: none;\n}\n\nfrigate-card-thumbnail {\n height: 100%;\n max-height: var(--frigate-card-thumbnail-size);\n}\n\nfrigate-card-thumbnail:not([details]) {\n width: 100%;\n}\n\nfrigate-card-thumbnail.selected {\n border: 4px solid var(--accent-color);\n border-radius: calc(var(--frigate-card-css-border-radius, var(--ha-card-border-radius, 4px)) + 4px);\n}\n\nfrigate-card-progress-indicator.top {\n grid-column: 1/-1;\n}")}};f([v({attribute:!1})],ui.prototype,"hass",void 0),f([v({attribute:!1})],ui.prototype,"viewManagerEpoch",void 0),f([v({attribute:!1})],ui.prototype,"galleryConfig",void 0),f([v({attribute:!1})],ui.prototype,"cameraManager",void 0),f([v({attribute:!1})],ui.prototype,"cardWideConfig",void 0),f([E()],ui.prototype,"_showLoaderBottom",void 0),f([E()],ui.prototype,"_showLoaderTop",void 0),ui=f([C("frigate-card-gallery-core")],ui);export{gi as FrigateCardGallery,ui as FrigateCardGalleryCore}; diff --git a/config/www/community/frigate-hass-card/gallery-bf3892f1.js.gz b/config/www/community/frigate-hass-card/gallery-bf3892f1.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..3f00b8757fd1b68b34fd6fa4bf179d3d36540df7 GIT binary patch literal 30838 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

    Dr2nm=-&%(}SG%2Ru-t20CTP@?@+KZAH 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 RIM%0s`akiT(>15J0RX(gWl#VB literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/gallery-c718155d.js b/config/www/community/frigate-hass-card/gallery-c718155d.js new file mode 100644 index 00000000..2cebd1d1 --- /dev/null +++ b/config/www/community/frigate-hass-card/gallery-c718155d.js @@ -0,0 +1,184 @@ +import{d3 as e,d4 as t,d5 as r,l as i,d6 as o,d7 as n,d8 as a,d9 as s,i as l,da as c,db as d,k as h,dc as g,dd as u,de as m,df as p,_ as f,n as v,cW as b,cR as y,dg as w,x as $,cV as x,r as k,a as _,t as C,e as T,b as E,dh as O,di as S,cI as M,dj as z,dk as L,cU as D,dl as A,c$ as F}from"./card-c642ee74.js";import{e as I}from"./endOfDay-97ae2cc7.js";import{p as W}from"./parse-a53fb39b.js";import{F as R}from"./date-picker-cfd85f75.js";function N(t){const r=e(t),i=r.getMonth();return r.setFullYear(r.getFullYear(),i+1,0),r.setHours(23,59,59,999),r}function H(){const e=new Date,t=e.getFullYear(),r=e.getMonth(),i=e.getDate(),o=new Date(0);return o.setFullYear(t,r,i-1),o.setHours(23,59,59,999),o}function V(){const e=new Date,t=e.getFullYear(),r=e.getMonth(),i=e.getDate(),o=new Date(0);return o.setFullYear(t,r,i-1),o.setHours(0,0,0,0),o}var j,B,q; +/** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ +function P(e){return class extends e{createRenderRoot(){const e=this.constructor,{registry:t,elementDefinitions:i,shadowRootOptions:o}=e;i&&!t&&(e.registry=new CustomElementRegistry,Object.entries(i).forEach((([t,r])=>e.registry.define(t,r))));const n=this.renderOptions.creationScope=this.attachShadow({...o,customElements:e.registry});return r(n,this.constructor.elementStyles),n}}}!function(e){e.Favorite="favorite",e.NotFavorite="not-favorite"}(j||(j={})),function(e){e.Today="today",e.Yesterday="yesterday",e.PastWeek="past-week",e.PastMonth="past-month",e.Custom="custom"}(B||(B={})),function(e){e.Clips="clips",e.Snapshots="snapshots",e.Recordings="recordings"}(q||(q={}));class U{constructor(e){this._cameraOptions=[],this._whenOptions=[],this._metaDataWhenOptions=[],this._whatOptions=[],this._whereOptions=[],this._tagsOptions=[],this._defaults=null,this._viewManager=null,this._host=e,this._favoriteOptions=[{value:j.Favorite,label:i("media_filter.favorite")},{value:j.NotFavorite,label:i("media_filter.not_favorite")}],this._mediaTypeOptions=[{value:q.Clips,label:i("media_filter.media_types.clips")},{value:q.Snapshots,label:i("media_filter.media_types.snapshots")},{value:q.Recordings,label:i("media_filter.media_types.recordings")}],this._staticWhenOptions=[{value:B.Today,label:i("media_filter.whens.today")},{value:B.Yesterday,label:i("media_filter.whens.yesterday")},{value:B.PastWeek,label:i("media_filter.whens.past_week")},{value:B.PastMonth,label:i("media_filter.whens.past_month")},{value:B.Custom,label:i("media_filter.whens.custom")}],this._computeWhenOptions()}getMediaTypeOptions(){return this._mediaTypeOptions}getCameraOptions(){return this._cameraOptions}getWhenOptions(){return this._whenOptions}getWhatOptions(){return this._whatOptions}getWhereOptions(){return this._whereOptions}getTagsOptions(){return this._tagsOptions}getFavoriteOptions(){return this._favoriteOptions}getDefaults(){return this._defaults}setViewManager(e){this._viewManager=e}async valueChangeHandler(e,t,r,i){const s=e=>e&&Array.isArray(e)&&e.length&&!e.includes("")?new Set([...e]):null,l=s(r.camera)??this._getAllCameraIDs(e);if(!l.size||!r.mediaType)return;const c=this._getWhen(r.when),d=r.favorite?r.favorite===j.Favorite:null,h=t.performance?.features.media_chunk_size;if(r.mediaType===q.Clips||r.mediaType===q.Snapshots){const e=s(r.where),t=s(r.what),i=s(r.tags),a=new o([{type:n.Event,cameraIDs:l,...i&&{tags:i},...t&&{what:t},...e&&{where:e},...null!==d&&{favorite:d},...c&&{...c.start&&{start:c.start},...c.end&&{end:c.end}},...h&&{limit:h},...r.mediaType===q.Clips&&{hasClip:!0},...r.mediaType===q.Snapshots&&{hasSnapshot:!0}}]);this._viewManager?.setViewByParametersWithExistingQuery({params:{query:a,...1===l.size&&{camera:[...l][0]},view:r.mediaType===q.Clips?"clips":"snapshots"}})}else{const e=new a([{type:n.Recording,cameraIDs:l,...h&&{limit:h},...c&&{...c.start&&{start:c.start},...c.end&&{end:c.end}},...null!==d&&{favorite:d}}]);this._viewManager?.setViewByParametersWithExistingQuery({params:{query:e,...1===l.size&&{camera:[...l][0]},view:"recordings"}})}this._host.requestUpdate()}_getAllCameraIDs(e){return e.getStore().getCameraIDsWithCapability({anyCapabilities:["clips","snapshots","recordings"]})}computeInitialDefaultsFromView(e){const t=this._viewManager?.getView(),r=t?.query?.getQueries(),i=this._getAllCameraIDs(e);if(!t||!r||!i.size)return;let o,n,a,d,h,g;1!==s(r.map((e=>e.cameraIDs)),l).length||l(r[0].cameraIDs,i)||(n=[...r[0].cameraIDs]); +/* istanbul ignore else: the else path cannot be reached -- @preserve */ +if(1===s(r.map((e=>e.favorite)),l).length&&void 0!==r[0].favorite&&(h=r[0].favorite?j.Favorite:j.NotFavorite),c.areEventQueries(t.query)){const e=t.query.getQueries(); +/* istanbul ignore if: the if path cannot be reached -- @preserve */if(!e)return;const r=s(e.map((e=>e.hasClip)),l),i=s(e.map((e=>e.hasSnapshot)),l);1===r.length&&1===i.length&&(o=r[0]?q.Clips:i[0]?q.Snapshots:void 0);1===s(e.map((e=>e.what)),l).length&&e[0].what?.size&&(a=[...e[0].what]);1===s(e.map((e=>e.where)),l).length&&e[0].where?.size&&(d=[...e[0].where]);1===s(e.map((e=>e.tags)),l).length&&e[0].tags?.size&&(g=[...e[0].tags])}else c.areRecordingQueries(t.query)&&(o=q.Recordings);this._defaults={...o&&{mediaType:o},...n&&{cameraIDs:n},...a&&{what:a},...d&&{where:d},...void 0!==h&&{favorite:h},...g&&{tags:g}}}computeCameraOptions(e){this._cameraOptions=[...this._getAllCameraIDs(e)].map((t=>({value:t,label:e.getCameraMetadata(t)?.title??t})))}async computeMetadataOptions(e){let t=null;try{t=await e.getMediaMetadata()}catch(e){d(e)}if(t){if(t.what&&(this._whatOptions=[...t.what].sort().map((e=>({value:e,label:h(e)})))),t.where&&(this._whereOptions=[...t.where].sort().map((e=>({value:e,label:h(e)})))),t.tags&&(this._tagsOptions=[...t.tags].sort().map((e=>({value:e,label:h(e)})))),t.days){const e=new Set;[...t.days].forEach((t=>{e.add(t.substring(0,7))}));const r=[];e.forEach((e=>{r.push(W(e,"yyyy-MM",new Date))})),this._metaDataWhenOptions=g(r,(e=>e.getTime()),"desc").map((e=>({label:u(e,"MMMM yyyy"),value:this._dateRangeToString({start:e,end:N(e)})}))),this._computeWhenOptions()}this._host.requestUpdate()}}getControlsToShow(e){const t=this._viewManager?.getView(),r=c.areEventQueries(t?.query),i=c.areRecordingQueries(t?.query),o=e.getAggregateCameraCapabilities();return{events:r,recordings:i,favorites:r?o?.has("favorite-events"):!!i&&o?.has("favorite-recordings")}}_computeWhenOptions(){this._whenOptions=[...this._staticWhenOptions,...this._metaDataWhenOptions]}_dateRangeToString(e){return`${m(e.start)},${m(e.end)}`}_stringToDateRange(e){const t=e.split(",");return{start:W(t[0],"yyyy-MM-dd",new Date),end:I(W(t[1],"yyyy-MM-dd",new Date))}}_getWhen(e){if(e.from||e.to)return{...e.from&&{start:e.from},...e.to&&{end:e.to}};if(!e.selected||Array.isArray(e.selected))return null;const r=new Date;switch(e.selected){case B.Custom:return null;case B.Today:return{start:t(Date.now()),end:I(Date.now())};case B.Yesterday:return{start:V(),end:H()};case B.PastWeek:return{start:t(p(r,{days:7})),end:I(r)};case B.PastMonth:return{start:t(p(r,{months:1})),end:I(r)};default:return this._stringToDateRange(e.selected)}}}const K=!0,Y=!0,Q=!0,G=!1,X=!1;let Z,J,ee,te=!1,re=!1,ie=!1,oe=!1,ne=null,ae=!1;const se="http://www.w3.org/1999/xlink",le={},ce=e=>"object"===(e=typeof e)||"function"===e;const de=(e,t,...r)=>{let i=null,o=null,n=null,a=!1,s=!1;const l=[],c=t=>{for(let r=0;re[t])).join(" "))}}if("function"==typeof e)return e(null===t?{}:t,l,ue);const d=he(e,null);return d.$attrs$=t,l.length>0&&(d.$children$=l),d.$key$=o,d.$name$=n,d},he=(e,t)=>{const r={$flags$:0,$tag$:e,$text$:t,$elm$:null,$children$:null,$attrs$:null,$key$:null,$name$:null};return r},ge={},ue={forEach:(e,t)=>e.map(me).forEach(t),map:(e,t)=>e.map(me).map(t).map(pe)},me=e=>({vattrs:e.$attrs$,vchildren:e.$children$,vkey:e.$key$,vname:e.$name$,vtag:e.$tag$,vtext:e.$text$}),pe=e=>{if("function"==typeof e.vtag){const t=Object.assign({},e.vattrs);return e.vkey&&(t.key=e.vkey),e.vname&&(t.name=e.vname),de(e.vtag,t,...e.vchildren||[])}const t=he(e.vtag,e.vtext);return t.$attrs$=e.vattrs,t.$children$=e.vchildren,t.$key$=e.vkey,t.$name$=e.vname,t},fe=(e,t,r)=>{const i=e;return{emit:e=>ve(i,t,{bubbles:!!(4&r),composed:!!(2&r),cancelable:!!(1&r),detail:e})}},ve=(e,t,r)=>{const i=ht.ce(t,r);return e.dispatchEvent(i),i},be=new WeakMap,ye=e=>{const t=e.$cmpMeta$,r=e.$hostElement$,i=t.$flags$,o=(t.$tagName$,()=>{}),n=((e,t,r,i)=>{var o;let n=we(t,r);const a=at.get(n);if(e=11===e.nodeType?e:ct,a)if("string"==typeof a){e=e.head||e;let t,r=be.get(e);if(r||be.set(e,r=new Set),!r.has(n)){{t=ct.createElement("style"),t.innerHTML=a;const r=null!==(o=ht.$nonce$)&&void 0!==o?o:function(e){var t,r,i;return null!==(i=null===(r=null===(t=e.head)||void 0===t?void 0:t.querySelector('meta[name="csp-nonce"]'))||void 0===r?void 0:r.getAttribute("content"))&&void 0!==i?i:void 0}(ct);null!=r&&t.setAttribute("nonce",r),e.insertBefore(t,e.querySelector("link"))}r&&r.add(n)}}else e.adoptedStyleSheets.includes(a)||(e.adoptedStyleSheets=[...e.adoptedStyleSheets,a]);return n})(r.shadowRoot?r.shadowRoot:r.getRootNode(),t,e.$modeName$);10&i&&(r["s-sc"]=n,r.classList.add(n+"-h"),2&i&&r.classList.add(n+"-s")),o()},we=(e,t)=>"sc-"+(t&&32&e.$flags$?e.$tagName$+"-"+t:e.$tagName$),$e=(e,t,r,i,o,n)=>{if(r!==i){let a=ot(e,t),s=t.toLowerCase();if("class"===t){const t=e.classList,o=ke(r),n=ke(i);t.remove(...o.filter((e=>e&&!n.includes(e)))),t.add(...n.filter((e=>e&&!o.includes(e))))}else if("style"===t){for(const t in r)i&&null!=i[t]||(t.includes("-")?e.style.removeProperty(t):e.style[t]="");for(const t in i)r&&i[t]===r[t]||(t.includes("-")?e.style.setProperty(t,i[t]):e.style[t]=i[t])}else if("key"===t);else if("ref"===t)i&&i(e);else if(e.__lookupSetter__(t)||"o"!==t[0]||"n"!==t[1]){const l=ce(i);if((a||l&&null!==i)&&!o)try{if(e.tagName.includes("-"))e[t]=i;else{const o=null==i?"":i;"list"===t?a=!1:null!=r&&e[t]==o||(e[t]=o)}}catch(e){}let c=!1;s!==(s=s.replace(/^xlink\:?/,""))&&(t=s,c=!0),null==i||!1===i?!1===i&&""!==e.getAttribute(t)||(c?e.removeAttributeNS(se,t):e.removeAttribute(t)):(!a||4&n||o)&&!l&&(i=!0===i?"":i,c?e.setAttributeNS(se,t,i):e.setAttribute(t,i))}else t="-"===t[2]?t.slice(3):ot(lt,s)?s.slice(2):s[2]+t.slice(3),r&&ht.rel(e,t,r,!1),i&&ht.ael(e,t,i,!1)}},xe=/\s/,ke=e=>e?e.split(xe):[],_e=(e,t,r,i)=>{const o=11===t.$elm$.nodeType&&t.$elm$.host?t.$elm$.host:t.$elm$,n=e&&e.$attrs$||le,a=t.$attrs$||le;for(i in n)i in a||$e(o,i,n[i],void 0,r,t.$flags$);for(i in a)$e(o,i,n[i],a[i],r,t.$flags$)},Ce=(e,t,r,i)=>{const o=t.$children$[r];let n,a,s,l=0;if(te||(ie=!0,"slot"===o.$tag$&&(Z&&i.classList.add(Z+"-s"),o.$flags$|=o.$children$?2:1)),null!==o.$text$)n=o.$elm$=ct.createTextNode(o.$text$);else if(1&o.$flags$)n=o.$elm$=ct.createTextNode("");else{if(oe||(oe="svg"===o.$tag$),n=o.$elm$=ct.createElementNS(oe?"http://www.w3.org/2000/svg":"http://www.w3.org/1999/xhtml",2&o.$flags$?"slot-fb":o.$tag$),oe&&"foreignObject"===o.$tag$&&(oe=!1),_e(null,o,oe),null!=Z&&n["s-si"]!==Z&&n.classList.add(n["s-si"]=Z),o.$children$)for(l=0;l{ht.$flags$|=1;const r=e.childNodes;for(let e=r.length-1;e>=0;e--){const i=r[e];i["s-hn"]!==ee&&i["s-ol"]&&(ze(i).insertBefore(i,Me(i)),i["s-ol"].remove(),i["s-ol"]=void 0,ie=!0),t&&Te(i,t)}ht.$flags$&=-2},Ee=(e,t,r,i,o,n)=>{let a,s=e["s-cr"]&&e["s-cr"].parentNode||e;for(s.shadowRoot&&s.tagName===ee&&(s=s.shadowRoot);o<=n;++o)i[o]&&(a=Ce(null,r,o,e),a&&(i[o].$elm$=a,s.insertBefore(a,Me(t))))},Oe=(e,t,r,i,o)=>{for(;t<=r;++t)(i=e[t])&&(o=i.$elm$,We(i),re=!0,o["s-ol"]?o["s-ol"].remove():Te(o,!0),o.remove())},Se=(e,t)=>e.$tag$===t.$tag$&&("slot"===e.$tag$?e.$name$===t.$name$:e.$key$===t.$key$),Me=e=>e&&e["s-ol"]||e,ze=e=>(e["s-ol"]?e["s-ol"]:e).parentNode,Le=(e,t)=>{const r=t.$elm$=e.$elm$,i=e.$children$,o=t.$children$,n=t.$tag$,a=t.$text$;let s;null===a?(oe="svg"===n||"foreignObject"!==n&&oe,"slot"===n||_e(e,t,oe),null!==i&&null!==o?((e,t,r,i)=>{let o,n,a=0,s=0,l=0,c=0,d=t.length-1,h=t[0],g=t[d],u=i.length-1,m=i[0],p=i[u];for(;a<=d&&s<=u;)if(null==h)h=t[++a];else if(null==g)g=t[--d];else if(null==m)m=i[++s];else if(null==p)p=i[--u];else if(Se(h,m))Le(h,m),h=t[++a],m=i[++s];else if(Se(g,p))Le(g,p),g=t[--d],p=i[--u];else if(Se(h,p))"slot"!==h.$tag$&&"slot"!==p.$tag$||Te(h.$elm$.parentNode,!1),Le(h,p),e.insertBefore(h.$elm$,g.$elm$.nextSibling),h=t[++a],p=i[--u];else if(Se(g,m))"slot"!==h.$tag$&&"slot"!==p.$tag$||Te(g.$elm$.parentNode,!1),Le(g,m),e.insertBefore(g.$elm$,h.$elm$),g=t[--d],m=i[++s];else{for(l=-1,c=a;c<=d;++c)if(t[c]&&null!==t[c].$key$&&t[c].$key$===m.$key$){l=c;break}l>=0?(n=t[l],n.$tag$!==m.$tag$?o=Ce(t&&t[s],r,l,e):(Le(n,m),t[l]=void 0,o=n.$elm$),m=i[++s]):(o=Ce(t&&t[s],r,s,e),m=i[++s]),o&&ze(h.$elm$).insertBefore(o,Me(h.$elm$))}a>d?Ee(e,null==i[u+1]?null:i[u+1].$elm$,r,i,s,u):s>u&&Oe(t,a,d)})(r,i,t,o):null!==o?(null!==e.$text$&&(r.textContent=""),Ee(r,null,t,o,0,o.length-1)):null!==i&&Oe(i,0,i.length-1),oe&&"svg"===n&&(oe=!1)):(s=r["s-cr"])?s.parentNode.textContent=a:e.$text$!==a&&(r.data=a)},De=e=>{const t=e.childNodes;let r,i,o,n,a,s;for(i=0,o=t.length;i{let t,r,i,o,n,a,s=0;const l=e.childNodes,c=l.length;for(;s=0;a--)r=i[a],r["s-cn"]||r["s-nr"]||r["s-hn"]===t["s-hn"]||(Ie(r,o)?(n=Ae.find((e=>e.$nodeToRelocate$===r)),re=!0,r["s-sn"]=r["s-sn"]||o,n?n.$slotRefNode$=t:Ae.push({$slotRefNode$:t,$nodeToRelocate$:r}),r["s-sr"]&&Ae.map((e=>{Ie(e.$nodeToRelocate$,r["s-sn"])&&(n=Ae.find((e=>e.$nodeToRelocate$===r)),n&&!e.$slotRefNode$&&(e.$slotRefNode$=n.$slotRefNode$))}))):Ae.some((e=>e.$nodeToRelocate$===r))||Ae.push({$nodeToRelocate$:r}));1===t.nodeType&&Fe(t)}},Ie=(e,t)=>1===e.nodeType?null===e.getAttribute("slot")&&""===t||e.getAttribute("slot")===t:e["s-sn"]===t||""===t,We=e=>{e.$attrs$&&e.$attrs$.ref&&e.$attrs$.ref(null),e.$children$&&e.$children$.map(We)},Re=(e,t)=>{const r=e.$hostElement$,i=e.$cmpMeta$,o=e.$vnode$||he(null,null),n=(a=t)&&a.$tag$===ge?t:de(null,null,t);var a;if(ee=r.tagName,i.$attrsToReflect$&&(n.$attrs$=n.$attrs$||{},i.$attrsToReflect$.map((([e,t])=>n.$attrs$[t]=r[e]))),n.$tag$=null,n.$flags$|=4,e.$vnode$=n,n.$elm$=o.$elm$=r.shadowRoot||r,Z=r["s-sc"],J=r["s-cr"],te=!!(1&i.$flags$),re=!1,Le(o,n),ht.$flags$|=1,ie){let e,t,r,i,o,a;Fe(n.$elm$);let s=0;for(;s{e.$flags$|=16,e.$ancestorComponent$;return $t((()=>He(e,t)))},He=(e,t)=>{const r=e.$hostElement$,i=(e.$cmpMeta$.$tagName$,()=>{}),o=r;let n;return n=qe(o,t?"componentWillLoad":"componentWillUpdate"),n=Pe(n,(()=>qe(o,"componentWillRender"))),i(),Pe(n,(()=>Ve(e,o,t)))},Ve=async(e,t,r)=>{const i=e.$hostElement$,o=(e.$cmpMeta$.$tagName$,()=>{});i["s-rc"],r&&ye(e);const n=(e.$cmpMeta$.$tagName$,()=>{});je(e,t,i),n(),o(),Be(e)},je=(e,t,r)=>{try{ne=t,t=t.render&&t.render(),e.$flags$&=-17,e.$flags$|=2,(K||Y)&&(Q||Y)&&(G||Re(e,t))}catch(t){nt(t,e.$hostElement$)}return ne=null,null},Be=e=>{e.$cmpMeta$.$tagName$;const t=()=>{},r=e.$hostElement$;e.$ancestorComponent$,qe(r,"componentDidRender"),64&e.$flags$?(qe(r,"componentDidUpdate"),t()):(e.$flags$|=64,qe(r,"componentDidLoad"),t())},qe=(e,t,r)=>{if(e&&e[t])try{return e[t](r)}catch(e){nt(e)}},Pe=(e,t)=>e&&e.then?e.then(t):t(),Ue=(e,t,r,i)=>{const o=rt(e),n=e,a=o.$instanceValues$.get(t),s=o.$flags$,l=n;var c,d;c=r,d=i.$members$[t][0],r=null==c||ce(c)?c:4&d?"false"!==c&&(""===c||!!c):2&d?parseFloat(c):1&d?String(c):c;const h=Number.isNaN(a)&&Number.isNaN(r);if(r!==a&&!h){if(o.$instanceValues$.set(t,r),i.$watchers$&&128&s){const e=i.$watchers$[t];e&&e.map((e=>{try{l[e](r,a,t)}catch(e){nt(e,n)}}))}if(2==(18&s)){if(l.componentShouldUpdate&&!1===l.componentShouldUpdate(r,a,t))return;Ne(o,!1)}}},Ke=(e,t,r)=>{if(t.$members$){e.watchers&&(t.$watchers$=e.watchers);const r=Object.entries(t.$members$),i=e.prototype;r.map((([e,[r]])=>{(31&r||32&r)&&Object.defineProperty(i,e,{get(){return t=e,rt(this).$instanceValues$.get(t);var t},set(r){Ue(this,e,r,t)},configurable:!0,enumerable:!0})}));{const o=new Map;i.attributeChangedCallback=function(e,t,r){ht.jmp((()=>{const t=o.get(e);if(this.hasOwnProperty(t))r=this[t],delete this[t];else if(i.hasOwnProperty(t)&&"number"==typeof this[t]&&this[t]==r)return;this[t]=(null!==r||"boolean"!=typeof this[t])&&r}))},e.observedAttributes=r.filter((([e,t])=>15&t[0])).map((([e,r])=>{const i=r[1]||e;return o.set(i,e),512&r[0]&&t.$attrsToReflect$.push([e,i]),i}))}}return e},Ye=async(e,t,r,i,o)=>{if(!(32&t.$flags$)&&(o=e.constructor,t.$flags$|=32,customElements.whenDefined(r.$tagName$).then((()=>t.$flags$|=128)),o.style)){let i=o.style;"string"!=typeof i&&(i=i[t.$modeName$=(e=>st.map((t=>t(e))).find((e=>!!e)))(e)]);const n=we(r,t.$modeName$);if(!at.has(n)){const e=(r.$tagName$,()=>{});((e,t,r)=>{let i=at.get(e);mt&&r?(i=i||new CSSStyleSheet,"string"==typeof i?i=t:i.replaceSync(t)):i=t,at.set(e,i)})(n,i,!!(1&r.$flags$)),e()}}t.$ancestorComponent$;Ne(t,!0)},Qe=e=>{const t=e["s-cr"]=ct.createComment("");t["s-cn"]=!0,e.insertBefore(t,e.firstChild)},Ge=(e,t)=>{const r={$flags$:t[0],$tagName$:t[1]};r.$members$=t[2],r.$listeners$=t[3],r.$watchers$=e.$watchers$,r.$attrsToReflect$=[],!gt&&1&r.$flags$&&(r.$flags$|=8);const i=e.prototype.connectedCallback,o=e.prototype.disconnectedCallback;return Object.assign(e.prototype,{__registerHost(){it(this,r)},connectedCallback(){(e=>{if(!(1&ht.$flags$)){const t=rt(e),r=t.$cmpMeta$,i=(r.$tagName$,()=>{});1&t.$flags$?(Xe(e,t,r.$listeners$),t.$lazyInstance$):(t.$flags$|=1,12&r.$flags$&&Qe(e),r.$members$&&Object.entries(r.$members$).map((([t,[r]])=>{if(31&r&&e.hasOwnProperty(t)){const r=e[t];delete e[t],e[t]=r}})),Ye(e,t,r)),i()}})(this),i&&i.call(this)},disconnectedCallback(){(e=>{if(!(1&ht.$flags$)){const t=rt(e);t.$rmListeners$&&(t.$rmListeners$.map((e=>e())),t.$rmListeners$=void 0)}})(this),o&&o.call(this)},__attachShadow(){gt?this.attachShadow({mode:"open",delegatesFocus:!!(16&r.$flags$)}):this.shadowRoot=this}}),e.is=r.$tagName$,Ke(e,r)},Xe=(e,t,r,i)=>{r&&r.map((([r,i,o])=>{const n=Je(e,r),a=Ze(t,o),s=et(r);ht.ael(n,i,a,s),(t.$rmListeners$=t.$rmListeners$||[]).push((()=>ht.rel(n,i,a,s)))}))},Ze=(e,t)=>r=>{try{X||e.$hostElement$[t](r)}catch(e){nt(e)}},Je=(e,t)=>4&t?ct:8&t?lt:16&t?ct.body:e,et=e=>ut?{passive:!!(1&e),capture:!!(2&e)}:!!(2&e),tt=new WeakMap,rt=e=>tt.get(e),it=(e,t)=>{const r={$flags$:0,$hostElement$:e,$cmpMeta$:t,$instanceValues$:new Map};return Xe(e,r,t.$listeners$),tt.set(e,r)},ot=(e,t)=>t in e,nt=(e,t)=>(0,console.error)(e,t),at=new Map,st=[],lt="undefined"!=typeof window?window:{},ct=lt.document||{head:{}},dt=lt.HTMLElement||class{},ht={$flags$:0,$resourcesUrl$:"",jmp:e=>e(),raf:e=>requestAnimationFrame(e),ael:(e,t,r,i)=>e.addEventListener(t,r,i),rel:(e,t,r,i)=>e.removeEventListener(t,r,i),ce:(e,t)=>new CustomEvent(e,t)},gt=!0,ut=(()=>{let e=!1;try{ct.addEventListener("e",null,Object.defineProperty({},"passive",{get(){e=!0}}))}catch(e){}return e})(),mt=(()=>{try{return new CSSStyleSheet,"function"==typeof(new CSSStyleSheet).replaceSync}catch(e){}return!1})(),pt=[],ft=[],vt=(e,t)=>r=>{e.push(r),ae||(ae=!0,t&&4&ht.$flags$?wt(yt):ht.raf(yt))},bt=e=>{for(let t=0;t{bt(pt),bt(ft),(ae=pt.length>0)&&ht.raf(yt)},wt=e=>{return Promise.resolve(t).then(e);var t},$t=vt(ft,!0),xt=(e,t)=>{const r=!!e.label||e.hasLabelSlot,i=!!e.helpText||e.hasHelpTextSlot,o=!!e.invalidText||e.hasInvalidTextSlot,n=!e.invalid,a=!!e.invalid;return de("div",{class:{"form-control":!0,[`form-control-${e.size}`]:!0,"form-control-has-label":r,"form-control-has-help-text":i,"form-control-has-invalid-text":o}},de("label",{id:e.labelId,class:"form-control-label",htmlFor:e.inputId,"aria-hidden":r?"false":"true",onClick:e.onLabelClick},de("slot",{name:"label"},e.label),e.requiredIndicator&&de("div",{class:"asterisk"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 1200 1200"},de("path",{fill:"currentColor",d:"M489.838 29.354v443.603L68.032 335.894 0 545.285l421.829 137.086-260.743 358.876 178.219 129.398L600.048 811.84l260.673 358.806 178.146-129.398-260.766-358.783L1200 545.379l-68.032-209.403-421.899 137.07V29.443H489.84l-.002-.089z"})))),de("div",{class:"form-control-input"},t),n&&de("div",{id:e.helpTextId,class:"form-control-help-text","aria-hidden":i?"false":"true"},de("slot",{name:"help-text"},e.helpText)),a&&de("div",{id:e.invalidTextId,class:"form-control-invalid-text","aria-hidden":o?"false":"true"},de("div",{class:"icon"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Alert Circle"),de("path",{d:"M256,48C141.31,48,48,141.31,48,256s93.31,208,208,208,208-93.31,208-208S370.69,48,256,48Zm0,319.91a20,20,0,1,1,20-20A20,20,0,0,1,256,367.91Zm21.72-201.15-5.74,122a16,16,0,0,1-32,0l-5.74-121.94v-.05a21.74,21.74,0,1,1,43.44,0Z",fill:"currentColor"}))),de("div",{class:"text"},de("slot",{name:"invalid-text"},e.invalidText))))}; +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +function kt(e){const t=e?e.assignedNodes({flatten:!0}):[];let r="";return[...t].map((e=>{e.nodeType===Node.TEXT_NODE&&(r+=e.textContent)})),r}function _t(e,t){return t?null!==e.querySelector(`[slot="${t}"]`):[...e.childNodes].some((e=>{if(e.nodeType===e.TEXT_NODE&&""!==e.textContent.trim())return!0;if(e.nodeType===e.ELEMENT_NODE){if(!e.hasAttribute("slot"))return!0}return!1}))} +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */const Ct=(e,t=[])=>{const r={};return t.forEach((t=>{if(e.hasAttribute(t)){null!==e.getAttribute(t)&&(r[t]=e.getAttribute(t)),e.removeAttribute(t)}})),r},Tt=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow()}render(){return de("span",{class:"spinner","aria-busy":"true","aria-live":"polite"})}static get style(){return":host{--track-color:var(--gr-color-light-shade);--indicator-color:var(--gr-color-primary);--stroke-width:2px;display:inline-flex;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}.spinner{display:inline-block;width:1em;height:1em;border-radius:50%;border:solid var(--stroke-width) var(--track-color);border-top-color:var(--indicator-color);border-right-color:var(--indicator-color);animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}"}},[1,"gr-spinner"]);function Et(){if("undefined"==typeof customElements)return;["gr-spinner"].forEach((e=>{if("gr-spinner"===e)customElements.get(e)||customElements.define(e,Tt)}))}Et(); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +const Ot=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grFocus=fe(this,"gr-focus",7),this.grBlur=fe(this,"gr-blur",7),this.inheritedAttributes={},this.handleClick=e=>{if("button"!==this.type){const t=this.el.closest("form");if(t){e.preventDefault();const r=document.createElement("button");r.type=this.type,r.style.display="none",t.appendChild(r),r.click(),r.remove()}}},this.onFocus=()=>{this.grFocus.emit()},this.onBlur=()=>{this.grBlur.emit()},this.variant="default",this.disabled=!1,this.loading=!1,this.size="medium",this.caret=!1,this.pill=!1,this.expand=void 0,this.circle=!1,this.href=void 0,this.target=void 0,this.rel=void 0,this.type="button"}componentWillLoad(){this.inheritedAttributes=Ct(this.el,["aria-label","tabindex","title"])}async setFocus(e){this.button.focus(e)}async removeFocus(){this.button.blur()}render(){const{rel:e,target:t,href:r,variant:i,size:o,expand:n,type:a,inheritedAttributes:s,disabled:l}=this,c=void 0===r?"button":"a",d="button"===c?{type:a}:{href:r,rel:e,target:t};return de(ge,{onClick:this.handleClick,"aria-disabled":l?"true":null,class:{[`button-${i}`]:!0,[`button-${o}`]:!0,[`button-${n}`]:void 0!==n,"button-caret":this.caret,"button-circle":this.circle,"button-pill":this.pill,"button-disabled":l,"button-loading":this.loading}},de(c,Object.assign({ref:e=>this.button=e},d,{class:"button-native",disabled:l,onFocus:this.onFocus,onBlur:this.onBlur},s),de("span",{class:"button-inner"},de("slot",{name:"icon-only"}),de("slot",{name:"start"}),de("slot",null),de("slot",{name:"end"}),this.caret&&de("span",{class:"caret"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Chevron Down"),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"48",d:"M112 184l144 144 144-144"})))),this.loading&&de("gr-spinner",null)))}get el(){return this}static get style(){return".gr-scroll-lock{overflow:hidden !important}:host{display:inline-block;width:auto;font-family:var(--gr-font-family);font-weight:var(--gr-font-weight-medium);font-size:var(--gr-form-element-font-size-medium);font-kerning:none;user-select:none;vertical-align:top;vertical-align:-webkit-baseline-middle;pointer-events:auto;--height:var(--gr-form-element-height-medium);--border-radius:var(--gr-form-element-border-radius-medium);--border-width:1px;--border-style:solid;--background:transparent;--background-hover:transparent;--background-focus:transparent;--color:var(--gr-color-dark-tint);--color-hover:var(--gr-color-dark-tint);--color-focus:var(--gr-color-dark-tint);--border-color:var(--gr-color-light-shade);--border-color-hover:var(--gr-color-medium);--border-color-focus:var(--gr-color-primary);--padding-top:0;--padding-start:var(--gr-spacing-medium);--padding-end:var(--gr-spacing-medium);--padding-bottom:0;--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33);--shadow:none;--transition:background-color 150ms linear, opacity 150ms linear, border 150ms linear, color 150ms linear}:host(.button-disabled){pointer-events:none;opacity:0.5}:host(.button-primary){--border-color:var(--gr-color-primary);--background:var(--gr-color-primary);--color:var(--gr-color-primary-contrast);--border-color-hover:var(--gr-color-primary-shade);--background-hover:var(--gr-color-primary-shade);--color-hover:var(--gr-color-primary-contrast);--border-color-focus:var(--gr-color-primary);--background-focus:var(--gr-color-primary-shade);--color-focus:var(--gr-color-primary-contrast);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33)}:host(.button-secondary){--border-color:var(--gr-color-light-shade);--background:transparent;--color:var(--gr-color-primary);--border-color-hover:var(--gr-color-primary);--background-hover:transparent;--color-hover:var(--gr-color-primary);--border-color-focus:var(--gr-color-primary);--background-focus:transparent;--color-focus:var(--gr-color-primary);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33)}:host(.button-danger){--border-color:var(--gr-color-danger);--background:transparent;--color:var(--gr-color-danger);--border-color-hover:var(--gr-color-danger);--background-hover:var(--gr-color-danger);--color-hover:var(--gr-color-danger-contrast);--border-color-focus:var(--gr-color-danger);--background-focus:var(--gr-color-danger);--color-focus:var(--gr-color-danger-contrast);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-danger-rgb), 0.33)}:host(.button-plain){--border-color:transparent;--background:transparent;--color:var(--gr-color-primary);--border-color-hover:transparent;--background-hover:transparent;--color-hover:var(--gr-color-primary-shade);--border-color-focus:transparent;--background-focus:transparent;--color-focus:var(--gr-color-primary-shade);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33)}:host(.button-small){--padding-start:var(--gr-spacing-small);--padding-end:var(--gr-spacing-small);--border-radius:var(--gr-form-element-border-radius-small);--height:var(--gr-form-element-height-small);font-size:var(--gr-form-element-font-size-small)}:host(.button-large){--padding-start:var(--gr-spacing-large);--padding-end:var(--gr-spacing-large);--border-radius:var(--gr-form-element-border-radius-large);--height:var(--gr-form-element-height-large);font-size:var(--gr-form-element-font-size-large)}:host(.button-block){display:block}:host(.button-block) .button-native{margin-left:0;margin-right:0;display:block;width:100%;clear:both;contain:content}:host(.button-block) .button-native::after{clear:both}:host(.button-full){display:block}:host(.button-full) .button-native{margin-left:0;margin-right:0;display:block;width:100%;contain:content;border-radius:0;border-right-width:0;border-left-width:0}.button-native{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:block;position:relative;padding-top:var(--padding-top);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-bottom:var(--padding-bottom);width:100%;height:var(--height);transition:var(--transition);border-radius:var(--border-radius);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);color:var(--color);box-shadow:var(--shadow);line-height:1;cursor:pointer;z-index:0;text-decoration:none;box-sizing:border-box}.button-native::-moz-focus-inner{border:0}.button-native:focus{outline:none;box-shadow:var(--focus-ring);border-color:var(--border-color-focus);background-color:var(--background-focus);color:var(--color-focus)}.button-native *,.button-native *:before,.button-native *:after{box-sizing:inherit}.button-inner{display:flex;position:relative;flex-flow:row nowrap;flex-shrink:0;align-items:center;justify-content:center;width:100%;height:100%;z-index:1}:host(.button-circle) .button-native{padding-top:0;padding-bottom:0;padding-left:0;padding-right:0;border-radius:50%;width:var(--height)}@media (any-hover: hover){.button-native:hover{color:var(--color-hover);background:var(--background-hover);border-color:var(--border-color-hover)}}:host(.button-caret) .caret{display:flex;align-items:center;margin-left:0.3em}:host(.button-caret) .caret svg{width:1em;height:1em}:host(.button-pill) .button-native{border-radius:var(--height)}::slotted(*){pointer-events:none}::slotted([slot=start]){margin-top:0;margin-left:-0.3em;margin-right:0.3em;margin-bottom:0}::slotted([slot=end]){margin-top:0;margin-left:0.3em;margin-right:-0.2em;margin-bottom:0}::slotted([slot=icon-only]){font-size:1.4em;pointer-events:none}:host(.button-loading){position:relative;pointer-events:none}:host(.button-loading) .caret{visibility:hidden}:host(.button-loading) slot[name=start],:host(.button-loading) slot[name=end],:host(.button-loading) slot[name=icon-only],:host(.button-loading) slot:not([name]){visibility:hidden}:host(.button-loading) gr-spinner{--indicator-color:currentColor;position:absolute;height:1em;width:1em;top:calc(50% - 0.5em);left:calc(50% - 0.5em)}@media not all and (min-resolution: 0.001dpcm){@supports (-webkit-appearance: none) and (stroke-color: transparent){:host([type=button]),:host([type=reset]),:host([type=submit]){-webkit-appearance:none !important}}}"}},[1,"gr-button",{variant:[513],disabled:[516],loading:[516],size:[513],caret:[4],pill:[516],expand:[513],circle:[516],href:[1],target:[1],rel:[1],type:[1],setFocus:[64],removeFocus:[64]}]);function St(){if("undefined"==typeof customElements)return;["gr-button","gr-spinner"].forEach((e=>{switch(e){case"gr-button":customElements.get(e)||customElements.define(e,Ot);break;case"gr-spinner":customElements.get(e)||Et()}}))}function Mt(e,t,r="vertical",i="smooth"){const o= +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +function(e,t){return{top:Math.round(e.getBoundingClientRect().top-t.getBoundingClientRect().top),left:Math.round(e.getBoundingClientRect().left-t.getBoundingClientRect().left)}}(e,t),n=o.top+t.scrollTop,a=o.left+t.scrollLeft,s=t.scrollLeft,l=t.scrollLeft+t.offsetWidth,c=t.scrollTop,d=t.scrollTop+t.offsetHeight;"horizontal"!==r&&"both"!==r||(al&&t.scrollTo({left:a-t.offsetWidth+e.clientWidth,behavior:i})),"vertical"!==r&&"both"!==r||(nd&&t.scrollTo({top:n-t.offsetHeight+e.clientHeight,behavior:i}))} +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */function zt(e){return e.tabIndex>-1}function Lt(e){if(zt(e))return e;if(e.shadowRoot){const t=[...e.shadowRoot.children].find(zt);if(t)return t}return e.children?[...e.children].map(Lt)[0]:null}St();var Dt="top",At="bottom",Ft="right",It="left",Wt="auto",Rt=[Dt,At,Ft,It],Nt="start",Ht="end",Vt="clippingParents",jt="viewport",Bt="popper",qt="reference",Pt=Rt.reduce((function(e,t){return e.concat([t+"-"+Nt,t+"-"+Ht])}),[]),Ut=[].concat(Rt,[Wt]).reduce((function(e,t){return e.concat([t,t+"-"+Nt,t+"-"+Ht])}),[]),Kt=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Yt(e){return e?(e.nodeName||"").toLowerCase():null}function Qt(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Gt(e){return e instanceof Qt(e).Element||e instanceof Element}function Xt(e){return e instanceof Qt(e).HTMLElement||e instanceof HTMLElement}function Zt(e){return"undefined"!=typeof ShadowRoot&&(e instanceof Qt(e).ShadowRoot||e instanceof ShadowRoot)}const Jt={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var r=t.styles[e]||{},i=t.attributes[e]||{},o=t.elements[e];Xt(o)&&Yt(o)&&(Object.assign(o.style,r),Object.keys(i).forEach((function(e){var t=i[e];!1===t?o.removeAttribute(e):o.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,r={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,r.popper),t.styles=r,t.elements.arrow&&Object.assign(t.elements.arrow.style,r.arrow),function(){Object.keys(t.elements).forEach((function(e){var i=t.elements[e],o=t.attributes[e]||{},n=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:r[e]).reduce((function(e,t){return e[t]="",e}),{});Xt(i)&&Yt(i)&&(Object.assign(i.style,n),Object.keys(o).forEach((function(e){i.removeAttribute(e)})))}))}},requires:["computeStyles"]};function er(e){return e.split("-")[0]}var tr=Math.max,rr=Math.min,ir=Math.round;function or(e,t){void 0===t&&(t=!1);var r=e.getBoundingClientRect(),i=1,o=1;if(Xt(e)&&t){var n=e.offsetHeight,a=e.offsetWidth;a>0&&(i=ir(r.width)/a||1),n>0&&(o=ir(r.height)/n||1)}return{width:r.width/i,height:r.height/o,top:r.top/o,right:r.right/i,bottom:r.bottom/o,left:r.left/i,x:r.left/i,y:r.top/o}}function nr(e){var t=or(e),r=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-r)<=1&&(r=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:i}}function ar(e,t){var r=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(r&&Zt(r)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function sr(e){return Qt(e).getComputedStyle(e)}function lr(e){return["table","td","th"].indexOf(Yt(e))>=0}function cr(e){return((Gt(e)?e.ownerDocument:e.document)||window.document).documentElement}function dr(e){return"html"===Yt(e)?e:e.assignedSlot||e.parentNode||(Zt(e)?e.host:null)||cr(e)}function hr(e){return Xt(e)&&"fixed"!==sr(e).position?e.offsetParent:null}function gr(e){for(var t=Qt(e),r=hr(e);r&&lr(r)&&"static"===sr(r).position;)r=hr(r);return r&&("html"===Yt(r)||"body"===Yt(r)&&"static"===sr(r).position)?t:r||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&Xt(e)&&"fixed"===sr(e).position)return null;var r=dr(e);for(Zt(r)&&(r=r.host);Xt(r)&&["html","body"].indexOf(Yt(r))<0;){var i=sr(r);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return r;r=r.parentNode}return null}(e)||t}function ur(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function mr(e,t,r){return tr(e,rr(t,r))}function pr(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function fr(e,t){return t.reduce((function(t,r){return t[r]=e,t}),{})}const vr={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,r=e.state,i=e.name,o=e.options,n=r.elements.arrow,a=r.modifiersData.popperOffsets,s=er(r.placement),l=ur(s),c=[It,Ft].indexOf(s)>=0?"height":"width";if(n&&a){var d=function(e,t){return pr("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:fr(e,Rt))}(o.padding,r),h=nr(n),g="y"===l?Dt:It,u="y"===l?At:Ft,m=r.rects.reference[c]+r.rects.reference[l]-a[l]-r.rects.popper[c],p=a[l]-r.rects.reference[l],f=gr(n),v=f?"y"===l?f.clientHeight||0:f.clientWidth||0:0,b=m/2-p/2,y=d[g],w=v-h[c]-d[u],$=v/2-h[c]/2+b,x=mr(y,$,w),k=l;r.modifiersData[i]=((t={})[k]=x,t.centerOffset=x-$,t)}},effect:function(e){var t=e.state,r=e.options.element,i=void 0===r?"[data-popper-arrow]":r;null!=i&&("string"!=typeof i||(i=t.elements.popper.querySelector(i)))&&ar(t.elements.popper,i)&&(t.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function br(e){return e.split("-")[1]}var yr={top:"auto",right:"auto",bottom:"auto",left:"auto"};function wr(e){var t,r=e.popper,i=e.popperRect,o=e.placement,n=e.variation,a=e.offsets,s=e.position,l=e.gpuAcceleration,c=e.adaptive,d=e.roundOffsets,h=e.isFixed,g=a.x,u=void 0===g?0:g,m=a.y,p=void 0===m?0:m,f="function"==typeof d?d({x:u,y:p}):{x:u,y:p};u=f.x,p=f.y;var v=a.hasOwnProperty("x"),b=a.hasOwnProperty("y"),y=It,w=Dt,$=window;if(c){var x=gr(r),k="clientHeight",_="clientWidth";if(x===Qt(r)&&"static"!==sr(x=cr(r)).position&&"absolute"===s&&(k="scrollHeight",_="scrollWidth"),o===Dt||(o===It||o===Ft)&&n===Ht)w=At,p-=(h&&x===$&&$.visualViewport?$.visualViewport.height:x[k])-i.height,p*=l?1:-1;if(o===It||(o===Dt||o===At)&&n===Ht)y=Ft,u-=(h&&x===$&&$.visualViewport?$.visualViewport.width:x[_])-i.width,u*=l?1:-1}var C,T=Object.assign({position:s},c&&yr),E=!0===d?function(e){var t=e.x,r=e.y,i=window.devicePixelRatio||1;return{x:ir(t*i)/i||0,y:ir(r*i)/i||0}}({x:u,y:p}):{x:u,y:p};return u=E.x,p=E.y,l?Object.assign({},T,((C={})[w]=b?"0":"",C[y]=v?"0":"",C.transform=($.devicePixelRatio||1)<=1?"translate("+u+"px, "+p+"px)":"translate3d("+u+"px, "+p+"px, 0)",C)):Object.assign({},T,((t={})[w]=b?p+"px":"",t[y]=v?u+"px":"",t.transform="",t))}var $r={passive:!0};var xr={left:"right",right:"left",bottom:"top",top:"bottom"};function kr(e){return e.replace(/left|right|bottom|top/g,(function(e){return xr[e]}))}var _r={start:"end",end:"start"};function Cr(e){return e.replace(/start|end/g,(function(e){return _r[e]}))}function Tr(e){var t=Qt(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Er(e){return or(cr(e)).left+Tr(e).scrollLeft}function Or(e){var t=sr(e),r=t.overflow,i=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(r+o+i)}function Sr(e){return["html","body","#document"].indexOf(Yt(e))>=0?e.ownerDocument.body:Xt(e)&&Or(e)?e:Sr(dr(e))}function Mr(e,t){var r;void 0===t&&(t=[]);var i=Sr(e),o=i===(null==(r=e.ownerDocument)?void 0:r.body),n=Qt(i),a=o?[n].concat(n.visualViewport||[],Or(i)?i:[]):i,s=t.concat(a);return o?s:s.concat(Mr(dr(a)))}function zr(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Lr(e,t){return t===jt?zr(function(e){var t=Qt(e),r=cr(e),i=t.visualViewport,o=r.clientWidth,n=r.clientHeight,a=0,s=0;return i&&(o=i.width,n=i.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(a=i.offsetLeft,s=i.offsetTop)),{width:o,height:n,x:a+Er(e),y:s}}(e)):Gt(t)?function(e){var t=or(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):zr(function(e){var t,r=cr(e),i=Tr(e),o=null==(t=e.ownerDocument)?void 0:t.body,n=tr(r.scrollWidth,r.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),a=tr(r.scrollHeight,r.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),s=-i.scrollLeft+Er(e),l=-i.scrollTop;return"rtl"===sr(o||r).direction&&(s+=tr(r.clientWidth,o?o.clientWidth:0)-n),{width:n,height:a,x:s,y:l}}(cr(e)))}function Dr(e,t,r){var i="clippingParents"===t?function(e){var t=Mr(dr(e)),r=["absolute","fixed"].indexOf(sr(e).position)>=0&&Xt(e)?gr(e):e;return Gt(r)?t.filter((function(e){return Gt(e)&&ar(e,r)&&"body"!==Yt(e)})):[]}(e):[].concat(t),o=[].concat(i,[r]),n=o[0],a=o.reduce((function(t,r){var i=Lr(e,r);return t.top=tr(i.top,t.top),t.right=rr(i.right,t.right),t.bottom=rr(i.bottom,t.bottom),t.left=tr(i.left,t.left),t}),Lr(e,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function Ar(e){var t,r=e.reference,i=e.element,o=e.placement,n=o?er(o):null,a=o?br(o):null,s=r.x+r.width/2-i.width/2,l=r.y+r.height/2-i.height/2;switch(n){case Dt:t={x:s,y:r.y-i.height};break;case At:t={x:s,y:r.y+r.height};break;case Ft:t={x:r.x+r.width,y:l};break;case It:t={x:r.x-i.width,y:l};break;default:t={x:r.x,y:r.y}}var c=n?ur(n):null;if(null!=c){var d="y"===c?"height":"width";switch(a){case Nt:t[c]=t[c]-(r[d]/2-i[d]/2);break;case Ht:t[c]=t[c]+(r[d]/2-i[d]/2)}}return t}function Fr(e,t){void 0===t&&(t={});var r=t,i=r.placement,o=void 0===i?e.placement:i,n=r.boundary,a=void 0===n?Vt:n,s=r.rootBoundary,l=void 0===s?jt:s,c=r.elementContext,d=void 0===c?Bt:c,h=r.altBoundary,g=void 0!==h&&h,u=r.padding,m=void 0===u?0:u,p=pr("number"!=typeof m?m:fr(m,Rt)),f=d===Bt?qt:Bt,v=e.rects.popper,b=e.elements[g?f:d],y=Dr(Gt(b)?b:b.contextElement||cr(e.elements.popper),a,l),w=or(e.elements.reference),$=Ar({reference:w,element:v,strategy:"absolute",placement:o}),x=zr(Object.assign({},v,$)),k=d===Bt?x:w,_={top:y.top-k.top+p.top,bottom:k.bottom-y.bottom+p.bottom,left:y.left-k.left+p.left,right:k.right-y.right+p.right},C=e.modifiersData.offset;if(d===Bt&&C){var T=C[o];Object.keys(_).forEach((function(e){var t=[Ft,At].indexOf(e)>=0?1:-1,r=[Dt,At].indexOf(e)>=0?"y":"x";_[e]+=T[r]*t}))}return _}function Ir(e,t){void 0===t&&(t={});var r=t,i=r.placement,o=r.boundary,n=r.rootBoundary,a=r.padding,s=r.flipVariations,l=r.allowedAutoPlacements,c=void 0===l?Ut:l,d=br(i),h=d?s?Pt:Pt.filter((function(e){return br(e)===d})):Rt,g=h.filter((function(e){return c.indexOf(e)>=0}));0===g.length&&(g=h);var u=g.reduce((function(t,r){return t[r]=Fr(e,{placement:r,boundary:o,rootBoundary:n,padding:a})[er(r)],t}),{});return Object.keys(u).sort((function(e,t){return u[e]-u[t]}))}const Wr={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,r=e.options,i=e.name;if(!t.modifiersData[i]._skip){for(var o=r.mainAxis,n=void 0===o||o,a=r.altAxis,s=void 0===a||a,l=r.fallbackPlacements,c=r.padding,d=r.boundary,h=r.rootBoundary,g=r.altBoundary,u=r.flipVariations,m=void 0===u||u,p=r.allowedAutoPlacements,f=t.options.placement,v=er(f),b=l||(v===f||!m?[kr(f)]:function(e){if(er(e)===Wt)return[];var t=kr(e);return[Cr(e),t,Cr(t)]}(f)),y=[f].concat(b).reduce((function(e,r){return e.concat(er(r)===Wt?Ir(t,{placement:r,boundary:d,rootBoundary:h,padding:c,flipVariations:m,allowedAutoPlacements:p}):r)}),[]),w=t.rects.reference,$=t.rects.popper,x=new Map,k=!0,_=y[0],C=0;C=0,M=S?"width":"height",z=Fr(t,{placement:T,boundary:d,rootBoundary:h,altBoundary:g,padding:c}),L=S?O?Ft:It:O?At:Dt;w[M]>$[M]&&(L=kr(L));var D=kr(L),A=[];if(n&&A.push(z[E]<=0),s&&A.push(z[L]<=0,z[D]<=0),A.every((function(e){return e}))){_=T,k=!1;break}x.set(T,A)}if(k)for(var F=function(e){var t=y.find((function(t){var r=x.get(t);if(r)return r.slice(0,e).every((function(e){return e}))}));if(t)return _=t,"break"},I=m?3:1;I>0;I--){if("break"===F(I))break}t.placement!==_&&(t.modifiersData[i]._skip=!0,t.placement=_,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Rr(e,t,r){return void 0===r&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function Nr(e){return[Dt,Ft,At,It].some((function(t){return e[t]>=0}))}const Hr={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,r=e.options,i=e.name,o=r.offset,n=void 0===o?[0,0]:o,a=Ut.reduce((function(e,r){return e[r]=function(e,t,r){var i=er(e),o=[It,Dt].indexOf(i)>=0?-1:1,n="function"==typeof r?r(Object.assign({},t,{placement:e})):r,a=n[0],s=n[1];return a=a||0,s=(s||0)*o,[It,Ft].indexOf(i)>=0?{x:s,y:a}:{x:a,y:s}}(r,t.rects,n),e}),{}),s=a[t.placement],l=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=c),t.modifiersData[i]=a}};const Vr={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,r=e.options,i=e.name,o=r.mainAxis,n=void 0===o||o,a=r.altAxis,s=void 0!==a&&a,l=r.boundary,c=r.rootBoundary,d=r.altBoundary,h=r.padding,g=r.tether,u=void 0===g||g,m=r.tetherOffset,p=void 0===m?0:m,f=Fr(t,{boundary:l,rootBoundary:c,padding:h,altBoundary:d}),v=er(t.placement),b=br(t.placement),y=!b,w=ur(v),$="x"===w?"y":"x",x=t.modifiersData.popperOffsets,k=t.rects.reference,_=t.rects.popper,C="function"==typeof p?p(Object.assign({},t.rects,{placement:t.placement})):p,T="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),E=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(x){if(n){var S,M="y"===w?Dt:It,z="y"===w?At:Ft,L="y"===w?"height":"width",D=x[w],A=D+f[M],F=D-f[z],I=u?-_[L]/2:0,W=b===Nt?k[L]:_[L],R=b===Nt?-_[L]:-k[L],N=t.elements.arrow,H=u&&N?nr(N):{width:0,height:0},V=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},j=V[M],B=V[z],q=mr(0,k[L],H[L]),P=y?k[L]/2-I-q-j-T.mainAxis:W-q-j-T.mainAxis,U=y?-k[L]/2+I+q+B+T.mainAxis:R+q+B+T.mainAxis,K=t.elements.arrow&&gr(t.elements.arrow),Y=K?"y"===w?K.clientTop||0:K.clientLeft||0:0,Q=null!=(S=null==E?void 0:E[w])?S:0,G=D+U-Q,X=mr(u?rr(A,D+P-Q-Y):A,D,u?tr(F,G):F);x[w]=X,O[w]=X-D}if(s){var Z,J="x"===w?Dt:It,ee="x"===w?At:Ft,te=x[$],re="y"===$?"height":"width",ie=te+f[J],oe=te-f[ee],ne=-1!==[Dt,It].indexOf(v),ae=null!=(Z=null==E?void 0:E[$])?Z:0,se=ne?ie:te-k[re]-_[re]-ae+T.altAxis,le=ne?te+k[re]+_[re]-ae-T.altAxis:oe,ce=u&&ne?function(e,t,r){var i=mr(e,t,r);return i>r?r:i}(se,te,le):mr(u?se:ie,te,u?le:oe);x[$]=ce,O[$]=ce-te}t.modifiersData[i]=O}},requiresIfExists:["offset"]};function jr(e,t,r){void 0===r&&(r=!1);var i,o,n=Xt(t),a=Xt(t)&&function(e){var t=e.getBoundingClientRect(),r=ir(t.width)/e.offsetWidth||1,i=ir(t.height)/e.offsetHeight||1;return 1!==r||1!==i}(t),s=cr(t),l=or(e,a),c={scrollLeft:0,scrollTop:0},d={x:0,y:0};return(n||!n&&!r)&&(("body"!==Yt(t)||Or(s))&&(c=(i=t)!==Qt(i)&&Xt(i)?{scrollLeft:(o=i).scrollLeft,scrollTop:o.scrollTop}:Tr(i)),Xt(t)?((d=or(t,!0)).x+=t.clientLeft,d.y+=t.clientTop):s&&(d.x=Er(s))),{x:l.left+c.scrollLeft-d.x,y:l.top+c.scrollTop-d.y,width:l.width,height:l.height}}function Br(e){var t=new Map,r=new Set,i=[];function o(e){r.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!r.has(e)){var i=t.get(e);i&&o(i)}})),i.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){r.has(e.name)||o(e)})),i}var qr={placement:"bottom",modifiers:[],strategy:"absolute"};function Pr(){for(var e=arguments.length,t=new Array(e),r=0;r{},onAfterHide:()=>{},onTransitionEnd:()=>{}},r),this.isVisible=!1,this.popover.hidden=!0,this.popover.classList.remove(this.options.visibleClass),this.popover.addEventListener("transitionend",this.handleTransitionEnd)}handleTransitionEnd(e){e.target===this.options.transitionElement&&(this.options.onTransitionEnd.call(this,e),this.isVisible||this.popover.hidden||(this.popover.hidden=!0,this.popover.classList.remove(this.options.visibleClass),this.options.onAfterHide.call(this)))}destroy(){this.popover.removeEventListener("transitionend",this.handleTransitionEnd),this.popper&&(this.popper.destroy(),this.popper=null)}show(){this.isVisible=!0,this.popover.hidden=!1,requestAnimationFrame((()=>this.popover.classList.add(this.options.visibleClass))),this.popper&&this.popper.destroy(),this.popper=Kr(this.anchor,this.popover,{placement:this.options.placement,strategy:this.options.strategy,modifiers:[{name:"flip",options:{boundary:"viewport"}},{name:"offset",options:{offset:[this.options.skidding,this.options.distance]}}]}),this.popover.addEventListener("transitionend",(()=>this.options.onAfterShow.call(this)),{once:!0}),requestAnimationFrame((()=>this.popper.update()))}hide(){this.isVisible=!1,this.popover.classList.remove(this.options.visibleClass)}setOptions(e){this.options=Object.assign(this.options,e),this.isVisible?this.popover.classList.add(this.options.visibleClass):this.popover.classList.remove(this.options.visibleClass),this.popper&&(this.popper.setOptions({placement:this.options.placement,strategy:this.options.strategy}),requestAnimationFrame((()=>this.popper.update())))}}let Qr=0;const Gr=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grShow=fe(this,"gr-show",7),this.grAfterShow=fe(this,"gr-after-show",7),this.grHide=fe(this,"gr-hide",7),this.grAfterHide=fe(this,"gr-after-hide",7),this.componentId="dropdown-"+ ++Qr,this.isVisible=!1,this.open=!1,this.placement="bottom-start",this.closeOnSelect=!0,this.containingElement=void 0,this.distance=2,this.skidding=0,this.hoist=!1}handleOpenChange(){this.open?this.show():this.hide(),this.updateAccessibleTrigger()}handlePopoverOptionsChange(){this.popoverElement.setOptions({strategy:this.hoist?"fixed":"absolute",placement:this.placement,distance:this.distance,skidding:this.skidding})}connectedCallback(){this.containingElement||(this.containingElement=this.el),this.handleDocumentKeyDown=this.handleDocumentKeyDown.bind(this),this.handleDocumentMouseDown=this.handleDocumentMouseDown.bind(this),this.handleMenuItemActivate=this.handleMenuItemActivate.bind(this),this.handlePanelSelect=this.handlePanelSelect.bind(this),this.handleTriggerClick=this.handleTriggerClick.bind(this),this.handleTriggerKeyDown=this.handleTriggerKeyDown.bind(this),this.handleTriggerKeyUp=this.handleTriggerKeyUp.bind(this),this.handleTriggerSlotChange=this.handleTriggerSlotChange.bind(this)}componentDidLoad(){this.popoverElement=new Yr(this.trigger,this.positioner,{strategy:this.hoist?"fixed":"absolute",placement:this.placement,distance:this.distance,skidding:this.skidding,transitionElement:this.panel,onAfterHide:()=>this.grAfterHide.emit(),onAfterShow:()=>this.grAfterShow.emit(),onTransitionEnd:()=>{this.open||(this.panel.scrollTop=0)}}),this.open&&this.show()}disconnectedCallback(){this.hide(),this.popoverElement.destroy()}async show(){if(this.isVisible)return;this.grShow.emit().defaultPrevented?this.open=!1:(this.panel.addEventListener("gr-activate",this.handleMenuItemActivate),this.panel.addEventListener("gr-select",this.handlePanelSelect),document.addEventListener("keydown",this.handleDocumentKeyDown),document.addEventListener("mousedown",this.handleDocumentMouseDown),this.isVisible=!0,this.open=!0,this.popoverElement.show())}async hide(){if(!this.isVisible)return;this.grHide.emit().defaultPrevented?this.open=!0:(this.panel.removeEventListener("gr-activate",this.handleMenuItemActivate),this.panel.removeEventListener("gr-select",this.handlePanelSelect),document.addEventListener("keydown",this.handleDocumentKeyDown),document.removeEventListener("mousedown",this.handleDocumentMouseDown),this.isVisible=!1,this.open=!1,this.popoverElement.hide())}async focusOnTrigger(){const e=this.trigger.querySelector("slot").assignedElements({flatten:!0})[0];e&&("function"==typeof e.setFocus?e.setFocus():"function"==typeof e.focus&&e.focus())}getMenu(){return this.panel.querySelector("slot").assignedElements({flatten:!0}).filter((e=>"gr-menu"===e.tagName.toLowerCase()))[0]}handleDocumentKeyDown(e){var t;if("Escape"===e.key)return this.hide(),void this.focusOnTrigger();if("Tab"===e.key){if(this.open&&"gr-menu-item"===(null===(t=document.activeElement)||void 0===t?void 0:t.tagName.toLowerCase()))return e.preventDefault(),this.hide(),void this.focusOnTrigger();setTimeout((()=>{var e;const t=this.containingElement.getRootNode()instanceof ShadowRoot?null===(e=document.activeElement.shadowRoot)||void 0===e?void 0:e.activeElement:document.activeElement;(null==t?void 0:t.closest(this.containingElement.tagName.toLowerCase()))===this.containingElement||this.hide()}))}}handleDocumentMouseDown(e){e.composedPath().includes(this.containingElement)||this.hide()}handleMenuItemActivate(e){Mt(e.target,this.panel)}handlePanelSelect(e){const t=e.target;this.closeOnSelect&&"gr-menu"===t.tagName.toLowerCase()&&(this.hide(),this.focusOnTrigger())}handleTriggerClick(){this.open?this.hide():this.show()}handleTriggerKeyDown(e){const t=this.getMenu(),r=t?[...t.querySelectorAll("gr-menu-item")]:null,i=r[0],o=r[r.length-1];if("Escape"===e.key)return this.focusOnTrigger(),void this.hide();if([" ","Enter"].includes(e.key))return e.preventDefault(),void(this.open?this.hide():this.show());if(["ArrowDown","ArrowUp"].includes(e.key)){if(e.preventDefault(),this.open||this.show(),"ArrowDown"===e.key&&i)return void i.setFocus();if("ArrowUp"===e.key&&o)return void o.setFocus()}this.open&&t&&!["Tab","Shift","Meta","Ctrl","Alt"].includes(e.key)&&t.typeToSelect(e.key)}handleTriggerKeyUp(e){" "===e.key&&e.preventDefault()}handleTriggerSlotChange(){this.updateAccessibleTrigger()}updateAccessibleTrigger(){const e=this.trigger.querySelector("slot").assignedElements({flatten:!0}).map(Lt)[0];e&&(e.setAttribute("aria-haspopup","true"),e.setAttribute("aria-expanded",this.open?"true":"false"))}render(){return de(ge,{id:this.componentId,class:{"dropdown-open":this.open}},de("span",{class:"dropdown-trigger",ref:e=>this.trigger=e,onClick:this.handleTriggerClick,onKeyDown:this.handleTriggerKeyDown,onKeyUp:this.handleTriggerKeyUp},de("slot",{name:"trigger",onSlotchange:this.handleTriggerSlotChange})),de("div",{ref:e=>this.positioner=e,class:"dropdown-positioner"},de("div",{ref:e=>this.panel=e,class:"dropdown-panel",role:"menu","aria-hidden":this.open?"false":"true","aria-labelledby":this.componentId},de("slot",null))))}get el(){return this}static get watchers(){return{open:["handleOpenChange"],distance:["handlePopoverOptionsChange"],hoist:["handlePopoverOptionsChange"],placement:["handlePopoverOptionsChange"],skidding:["handlePopoverOptionsChange"]}}static get style(){return".gr-scroll-lock{overflow:hidden !important}:host{--panel-background-color:var(--gr-color-white);--panel-border-radius:var(--gr-border-radius-medium);--panel-border-color:var(--gr-panel-border-color);--panel-box-shadow:var(--gr-shadow-large);--transition:150ms opacity, 150ms transform;display:inline-block;position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}.dropdown-trigger{display:block}.dropdown-positioner{position:absolute;z-index:var(--gr-z-index-dropdown)}.dropdown-panel{max-height:50vh;font-family:var(--gr-font-family);font-size:var(--gr-font-size-medium);font-weight:var(--gr-font-weight-normal);background-color:var(--panel-background-color);border:solid 1px var(--panel-border-color);border-radius:var(--panel-border-radius);box-shadow:var(--panel-box-shadow);opacity:0;overflow:auto;overscroll-behavior:none;pointer-events:none;transform:scale(0.9);transition:var(--transition)}.dropdown-positioner[data-popper-placement^=top] .dropdown-panel{transform-origin:bottom}.dropdown-positioner[data-popper-placement^=bottom] .dropdown-panel{transform-origin:top}.dropdown-positioner[data-popper-placement^=left] .dropdown-panel{transform-origin:right}.dropdown-positioner[data-popper-placement^=right] .dropdown-panel{transform-origin:left}.dropdown-positioner.popover-visible .dropdown-panel{opacity:1;transform:none;pointer-events:all}"}},[1,"gr-dropdown",{open:[1540],placement:[1],closeOnSelect:[4,"close-on-select"],containingElement:[1040],distance:[2],skidding:[2],hoist:[4],show:[64],hide:[64],focusOnTrigger:[64]}]);function Xr(){if("undefined"==typeof customElements)return;["gr-dropdown"].forEach((e=>{if("gr-dropdown"===e)customElements.get(e)||customElements.define(e,Gr)}))}Xr(); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +const Zr=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grSelect=fe(this,"gr-select",7),this.typeToSelectString=""}connectedCallback(){this.handleClick=this.handleClick.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}async typeToSelect(e){clearTimeout(this.typeToSelectTimeout),this.typeToSelectTimeout=setTimeout((()=>this.typeToSelectString=""),750),this.typeToSelectString+=e.toLowerCase();const t=this.getItems();for(const e of t){if(kt(e.shadowRoot.querySelector("slot:not([name])")).toLowerCase().trim().substring(0,this.typeToSelectString.length)===this.typeToSelectString){e.setFocus();break}}}getItems(){return[...this.menu.querySelector("slot").assignedElements({flatten:!0})].filter((e=>"gr-menu-item"===e.tagName.toLowerCase()&&!e.disabled))}getActiveItem(){return this.getItems().find((e=>e===document.activeElement))}setActiveItem(e){e.setFocus()}handleClick(e){const t=e.target.closest("gr-menu-item");t&&!t.disabled&&this.grSelect.emit({item:t})}handleKeyDown(e){if("Enter"===e.key){const t=this.getActiveItem();e.preventDefault(),t&&this.grSelect.emit({item:t})}if(" "===e.key&&e.preventDefault(),["ArrowDown","ArrowUp","Home","End"].includes(e.key)){const t=this.getItems(),r=this.getActiveItem();let i=t.indexOf(r);if(t.length)return e.preventDefault(),"ArrowDown"===e.key?i++:"ArrowUp"===e.key?i--:"Home"===e.key?i=0:"End"===e.key&&(i=t.length-1),i<0&&(i=0),i>t.length-1&&(i=t.length-1),void this.setActiveItem(t[i])}this.typeToSelect(e.key)}render(){return de("div",{ref:e=>this.menu=e,class:"menu",role:"menu",onClick:this.handleClick,onKeyDown:this.handleKeyDown},de("slot",null))}static get style(){return".gr-scroll-lock{overflow:hidden !important}:host{--padding-top:var(--gr-spacing-x-small);--padding-bottom:var(--gr-spacing-x-small);display:block;padding-top:var(--padding-top);padding-left:0;padding-right:0;padding-bottom:var(--padding-bottom);box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host:focus{outline:none}"}},[1,"gr-menu",{typeToSelect:[64]}]);function Jr(){if("undefined"==typeof customElements)return;["gr-menu"].forEach((e=>{if("gr-menu"===e)customElements.get(e)||customElements.define(e,Zr)}))}Jr(); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +const ei=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grClear=fe(this,"gr-clear",7),this.type="primary",this.size="medium",this.pill=!1,this.clearable=!1,this.truncate=!1,this.title=""}connectedCallback(){this.handleClearClick=this.handleClearClick.bind(this)}handleClearClick(){this.grClear.emit()}render(){return de(ge,{class:{[`tag-${this.type}`]:!0,[`tag-${this.size}`]:!0,"tag-pill":this.pill,"tag-clearable":this.clearable}},de("span",{class:"tag"},de("span",{class:{"tag-truncate":this.truncate},title:this.title},de("slot",null)),this.clearable&&de("gr-button",{variant:"plain",size:this.size,class:"tag-clear","aria-label":"clear",onClick:this.handleClearClick},de("svg",{slot:"icon-only",role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Close"),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M368 368L144 144M368 144L144 368"})))))}static get style(){return":host{--height:calc(var(--gr-form-element-height-medium) * 0.8);--line-height:calc(var(--gr-form-element-height-medium) - 1px * 2);--border-radius:var(--gr-form-element-border-radius-medium);--border-width:1px;--border-style:solid;--padding-top:0;--padding-start:var(--gr-spacing-small);--padding-end:var(--gr-spacing-small);--padding-bottom:0;--font-size:var(--gr-form-element-font-size-medium);--background-color:rgba(var(--gr-color-primary-rgb), 0.05);--border-color:rgba(var(--gr-color-primary-rgb), 0.2);--color:var(--gr-color-primary-shade);--clear-color:var(--gr-color-primary);--clear-color-hover:var(--gr-color-primary-shade);--clear-margin-left:var(--gr-spacing-xx-small);--clear-margin-right:calc(-1 * var(--gr-spacing-xxx-small));display:inline-block;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host(.tag-success){--background-color:rgba(var(--gr-color-success-rgb), 0.05);--border-color:rgba(var(--gr-color-success-rgb), 0.2);--color:var(--gr-color-success-shade);--clear-color:var(--gr-color-success);--clear-color-hover:var(--gr-color-success-shade)}:host(.tag-info){--background-color:rgba(var(--gr-color-medium-rgb), 0.05);--border-color:rgba(var(--gr-color-medium-rgb), 0.2);--color:var(--gr-color-medium-shade);--clear-color:var(--gr-color-medium);--clear-color-hover:var(--gr-color-medium-shade)}:host(.tag-warning){--background-color:rgba(var(--gr-color-warning-rgb), 0.05);--border-color:rgba(var(--gr-color-warning-rgb), 0.2);--color:var(--gr-color-warning-shade);--clear-color:var(--gr-color-warning);--clear-color-hover:var(--gr-color-warning-shade)}:host(.tag-danger){--background-color:rgba(var(--gr-color-danger-rgb), 0.05);--border-color:rgba(var(--gr-color-danger-rgb), 0.2);--color:var(--gr-color-danger-shade);--clear-color:var(--gr-color-danger);--clear-color-hover:var(--gr-color-danger-shade)}:host(.tag-small){--font-size:var(--gr-form-element-font-size-small);--height:calc(var(--gr-form-element-height-small) * 0.8);--line-height:calc(var(--gr-form-element-height-small) - 1px * 2);--border-radius:var(--gr-form-element-border-radius-small);--padding-start:var(--gr-spacing-x-small);--padding-end:var(--gr-spacing-x-small);--clear-margin-left:var(--gr-spacing-xx-small);--clear-margin-right:calc(-1 * var(--gr-spacing-xxx-small))}:host(.tag-large){--font-size:var(--gr-form-element-font-size-large);--height:calc(var(--gr-form-element-height-large) * 0.8);--line-height:calc(var(--gr-form-element-height-large) - 1px * 2);--border-radius:var(--gr-form-element-border-radius-large);--padding:0 var(--gr-spacing-medium);--clear-margin-left:var(--gr-spacing-xx-small);--clear-margin-right:calc(-1 * var(--gr-spacing-x-small))}.tag{display:flex;align-items:center;border-style:var(--border-style);border-width:var(--border-width);border-radius:var(--border-radius);white-space:nowrap;user-select:none;cursor:default;font-family:var(--gr-font-family);font-size:var(--font-size);font-weight:var(--gr-font-weight-normal);height:var(--height);line-height:var(--line-height);padding-top:var(--padding-top);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-bottom:var(--padding-bottom);background-color:var(--background-color);border-color:var(--border-color);color:var(--color)}.tag-clear{--color:var(--clear-color);--color-hover:var(--clear-color-hover);--padding-start:0;--padding-end:0;margin-left:var(--clear-margin-left);margin-right:var(--clear-margin-right);--height:1em}.tag-clear svg{font-size:0.7em}.tag-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-clear svg{width:1.1em;height:1.1em}:host(.tag-pill) .tag{border-radius:var(--height)}"}},[1,"gr-tag",{type:[513],size:[513],pill:[516],clearable:[516],truncate:[516],title:[513]}]);function ti(){if("undefined"==typeof customElements)return;["gr-tag","gr-button","gr-spinner"].forEach((e=>{switch(e){case"gr-tag":customElements.get(e)||customElements.define(e,ei);break;case"gr-button":customElements.get(e)||St();break;case"gr-spinner":customElements.get(e)||Et()}}))}ti(); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */ +const ri="undefined"!=typeof HTMLElement?HTMLElement:class{};let ii=0;const oi=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.grChange=fe(this,"gr-change",7),this.grFocus=fe(this,"gr-focus",7),this.grBlur=fe(this,"gr-blur",7),this.inputId="select-"+ ++ii,this.labelId=`select-label-${ii}`,this.helpTextId=`select-help-text-${ii}`,this.invalidTextId=`select-invalid-text-${ii}`,this.inheritedAttributes={},this.handleBlur=()=>{this.isOpen||(this.hasFocus=!1,this.grBlur.emit())},this.handleFocus=()=>{this.hasFocus||(this.hasFocus=!0,this.grFocus.emit())},this.hasFocus=!1,this.hasHelpTextSlot=!1,this.hasInvalidTextSlot=!1,this.hasLabelSlot=!1,this.isOpen=!1,this.items=[],this.displayLabel="",this.displayTags=[],this.multiple=!1,this.maxTagsVisible=3,this.disabled=!1,this.name="",this.placeholder="",this.size="medium",this.hoist=!1,this.value="",this.pill=!1,this.label="",this.requiredIndicator=!1,this.helpText="",this.invalidText="",this.invalid=!1,this.clearable=!1}handleDisabledChange(){this.disabled&&this.isOpen&&this.dropdown.hide()}handleLabelChange(){this.handleSlotChange()}handleMultipleChange(){const e=this.getValueAsArray();this.value=this.multiple?e:e[0]||"",this.syncItemsFromValue()}handleValueChange(){this.syncItemsFromValue(),this.grChange.emit()}connectedCallback(){this.handleClearClick=this.handleClearClick.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleLabelClick=this.handleLabelClick.bind(this),this.handleMenuHide=this.handleMenuHide.bind(this),this.handleMenuShow=this.handleMenuShow.bind(this),this.handleMenuSelect=this.handleMenuSelect.bind(this),this.handleSlotChange=this.handleSlotChange.bind(this),this.handleTagInteraction=this.handleTagInteraction.bind(this),this.el.shadowRoot.addEventListener("slotchange",this.handleSlotChange)}componentWillLoad(){this.handleSlotChange(),this.inheritedAttributes=Ct(this.el,["aria-label"])}componentDidLoad(){this.resizeObserver=new ResizeObserver((()=>this.resizeMenu())),this.reportDuplicateItemValues(),requestAnimationFrame((()=>this.syncItemsFromValue()))}disconnectedCallback(){this.el.shadowRoot.removeEventListener("slotchange",this.handleSlotChange)}async setFocus(){this.hasFocus=!0,this.grFocus.emit(),this.dropdown.focusOnTrigger()}getItemLabel(e){return kt(e.shadowRoot.querySelector("slot:not([name])"))}getItems(){return[...this.el.querySelectorAll("gr-menu-item")]}getValueAsArray(){return Array.isArray(this.value)?this.value:[this.value]}handleClearClick(e){e.stopPropagation(),this.value=this.multiple?[]:"",this.syncItemsFromValue()}handleKeyDown(e){const t=e.target,r=this.getItems(),i=r[0],o=r[r.length-1];if("gr-tag"!==t.tagName.toLowerCase())if("Tab"!==e.key){if(["ArrowDown","ArrowUp"].includes(e.key)){if(e.preventDefault(),this.isOpen||this.dropdown.show(),"ArrowDown"===e.key&&i)return void i.setFocus();if("ArrowUp"===e.key&&o)return void o.setFocus()}this.isOpen||1!==e.key.length||(e.stopPropagation(),e.preventDefault(),this.dropdown.show(),this.menu.typeToSelect(e.key))}else this.isOpen&&this.dropdown.hide()}handleLabelClick(){this.box.focus()}handleMenuSelect(e){const t=e.detail.item;this.multiple?this.value=this.value.includes(t.value)?this.value.filter((e=>e!==t.value)):[...this.value,t.value]:this.value=t.value,this.syncItemsFromValue()}handleMenuShow(e){this.disabled?e.preventDefault():(this.resizeMenu(),this.resizeObserver.observe(this.el),this.isOpen=!0)}handleMenuHide(){this.resizeObserver.unobserve(this.el),this.isOpen=!1,this.box.focus()}handleSlotChange(){this.hasHelpTextSlot=_t(this.el,"help-text"),this.hasInvalidTextSlot=_t(this.el,"invalid-text"),this.hasLabelSlot=_t(this.el,"label"),this.syncItemsFromValue(),this.reportDuplicateItemValues()}handleTagInteraction(e){e.composedPath().find((e=>{if(e instanceof ri)return e.classList.contains("tag-clear")}))&&e.stopPropagation()}reportDuplicateItemValues(){const e=this.getItems().map((e=>e.value)).filter(((e,t,r)=>r.indexOf(e)!==t));if(e.length)throw new Error('Duplicate value found on in : "'+e.join('", "')+'"')}resizeMenu(){this.menu.style.width=`${this.box.clientWidth}px`}syncItemsFromValue(){const e=this.getItems(),t=this.getValueAsArray();if(e.map((e=>e.checked=t.includes(e.value))),this.multiple){const r=[];if(t.map((t=>e.map((e=>e.value===t?r.push(e):null)))),this.displayTags=r.map((e=>de("gr-tag",{type:"info",size:this.size,pill:this.pill,clearable:!0,onClick:this.handleTagInteraction,onKeyDown:this.handleTagInteraction,"onGr-clear":t=>{t.stopPropagation(),this.disabled||(e.checked=!1,this.syncValueFromItems())}},this.getItemLabel(e)))),this.maxTagsVisible>0&&this.displayTags.length>this.maxTagsVisible){const e=this.displayTags.length;this.displayLabel="",this.displayTags=this.displayTags.slice(0,this.maxTagsVisible),this.displayTags.push(de("gr-tag",{type:"info",size:this.size,pill:this.pill},"+",e-this.maxTagsVisible))}}else{const r=e.filter((e=>e.value===t[0]))[0];this.displayLabel=r?this.getItemLabel(r):"",this.displayTags=[]}}syncValueFromItems(){const e=this.getItems().filter((e=>e.checked)).map((e=>e.value));this.multiple?this.value=this.value.filter((t=>e.includes(t))):this.value=e.length>0?e[0]:""}render(){var e;const t=this.multiple?this.value.length>0:""!==this.value,r=this.inheritedAttributes["aria-label"]?{"aria-label":this.inheritedAttributes["aria-label"]}:{"aria-labelledby":this.labelId};return((e,t,r,i)=>{let o=e.querySelector("input.aux-input");o||(o=e.ownerDocument.createElement("input"),o.type="hidden",o.classList.add("aux-input"),e.appendChild(o)),o.disabled=i,o.name=t,o.value=r||""})(this.el,this.name,ni(this.value),this.disabled),de(xt,{inputId:this.inputId,label:this.label,labelId:this.labelId,hasLabelSlot:this.hasLabelSlot,helpTextId:this.helpTextId,helpText:this.helpText,hasHelpTextSlot:this.hasHelpTextSlot,invalidTextId:this.invalidTextId,invalidText:this.invalidText,invalid:this.invalid,hasInvalidTextSlot:this.hasInvalidTextSlot,size:this.size,onLabelClick:this.handleLabelClick,requiredIndicator:this.requiredIndicator},de("gr-dropdown",{ref:e=>this.dropdown=e,hoist:this.hoist,closeOnSelect:!this.multiple,containingElement:this.el,class:{select:!0,"select-open":this.isOpen,"select-empty":0===(null===(e=this.value)||void 0===e?void 0:e.length),"select-focused":this.hasFocus,"select-clearable":this.clearable,"select-disabled":this.disabled,"select-multiple":this.multiple,"select-has-tags":this.multiple&&t,"select-placeholder-visible":""===this.displayLabel,[`select-${this.size}`]:!0,"select-pill":this.pill,"select-invalid":this.invalid},"onGr-show":this.handleMenuShow,"onGr-hide":this.handleMenuHide},de("div",Object.assign({slot:"trigger",ref:e=>this.box=e,id:this.inputId,class:"select-box",role:"combobox"},r,{"aria-describedby":this.invalid?this.invalidTextId:this.helpTextId,"aria-haspopup":"true","aria-expanded":this.isOpen?"true":"false","aria-invalid":this.invalid?"true":"false","aria-required":this.requiredIndicator?"true":"false",tabIndex:this.disabled?-1:0,onBlur:this.handleBlur,onFocus:this.handleFocus,onKeyDown:this.handleKeyDown}),de("div",{class:"select-label"},this.displayTags.length?de("span",{class:"select-tags"},this.displayTags):this.displayLabel||this.placeholder),this.clearable&&t&&de("button",{class:"select-clear",type:"button",onClick:this.handleClearClick,"aria-label":"clear",tabindex:"-1"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Close Circle"),de("path",{d:"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z",fill:"none",stroke:"currentColor","stroke-miterlimit":"10","stroke-width":"32"}),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M320 320L192 192M192 320l128-128"}))),de("span",{class:"caret"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Chevron Down"),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"48",d:"M112 184l144 144 144-144"}))),de("input",{class:"select-hidden-select","aria-hidden":"true",value:t?"1":"",tabIndex:-1})),de("gr-menu",{ref:e=>this.menu=e,class:"select-menu","onGr-select":this.handleMenuSelect},de("slot",{onSlotchange:this.handleSlotChange}))))}get el(){return this}static get watchers(){return{disabled:["handleDisabledChange"],helpText:["handleLabelChange"],invalidText:["handleLabelChange"],label:["handleLabelChange"],multiple:["handleMultipleChange"],value:["handleValueChange"]}}static get style(){return".form-control .form-control-label{display:none}.form-control .form-control-help-text{display:none}.form-control .form-control-invalid-text{display:none}.form-control-has-label .form-control-label{display:flex;line-height:var(--gr-line-height-normal);color:var(--gr-form-element-label-color);margin-bottom:var(--gr-spacing-xxx-small)}.form-control-has-label.form-control-small .form-control-label{font-size:var(--gr-form-element-label-font-size-small)}.form-control-has-label.form-control-medium .form-control-label{font-size:var(--gr-form-element-label-font-size-medium)}.form-control-has-label.form-control-large .form-control-label{font-size:var(--gr-form-element-label-font-size-large)}.form-control-has-label .form-control-label .asterisk{margin-left:var(--gr-spacing-x-small);color:var(--gr-color-medium)}.form-control-has-label .form-control-label .asterisk svg{width:0.6em;height:0.6em;margin-bottom:var(--gr-spacing-xxx-small)}.form-control-has-help-text .form-control-help-text{display:block;line-height:var(--gr-line-height-normal);color:var(--gr-form-element-help-text-color);margin-top:var(--gr-spacing-xxx-small)}.form-control-has-help-text.form-control-small .form-control-help-text{font-size:var(--gr-form-element-help-text-font-size-small);min-height:1.625rem}.form-control-has-help-text.form-control-medium .form-control-help-text{font-size:var(--gr-form-element-help-text-font-size-medium);min-height:1.875rem}.form-control-has-help-text.form-control-large .form-control-help-text{font-size:var(--gr-form-element-help-text-font-size-large);min-height:2.125rem}.form-control-has-invalid-text .form-control-invalid-text{display:flex;margin-left:-2px;line-height:var(--gr-line-height-normal);color:var(--gr-form-element-invalid-text-color);margin-top:var(--gr-spacing-xxx-small)}.form-control-has-invalid-text .form-control-invalid-text .icon{margin-top:var(--gr-spacing-xxx-small);margin-right:var(--gr-spacing-xx-small)}.form-control-has-invalid-text .form-control-invalid-text .icon svg{width:1.4em;height:1.4em}.form-control-has-invalid-text.form-control-small .form-control-invalid-text{font-size:var(--gr-form-element-invalid-text-font-size-small);min-height:1.625rem}.form-control-has-invalid-text.form-control-medium .form-control-invalid-text{font-size:var(--gr-form-element-invalid-text-font-size-medium);min-height:1.875rem}.form-control-has-invalid-text.form-control-large .form-control-invalid-text{font-size:var(--gr-form-element-invalid-text-font-size-large);min-height:2.125rem}.gr-scroll-lock{overflow:hidden !important}:host{--font-size:var(--gr-form-element-font-size-medium);--font-weight:var(--gr-font-weight-normal);--background-color:var(--gr-color-white);--background-color-hover:var(--gr-color-white);--background-color-focus:var(--gr-color-white);--background-color-invalid:var(--gr-color-white);--background-color-invalid-hover:var(--gr-color-white);--border-radius:var(--gr-form-element-border-radius-small);--border-color:var(--gr-color-light-shade);--border-color-hover:var(--gr-color-medium);--border-color-focus:var(--gr-color-primary);--border-color-invalid:var(--gr-color-danger);--border-color-invalid-hover:var(--gr-color-danger-shade);--color:var(--gr-color-dark-tint);--placeholder-color:var(--gr-color-medium-tint);--min-height:var(--gr-form-element-height-medium);--label-margin-start:var(--gr-spacing-medium);--label-margin-end:var(--gr-spacing-medium);--clear-icon-margin-end:var(--gr-spacing-medium);--caret-margin-end:var(--gr-spacing-medium);--tags-padding-top:3px;--tags-padding-bottom:3px;--tags-margin-end:var(--gr-spacing-xx-small);--focus-ring:0 0 0 var(--gr-focus-ring-width) rgb(var(--gr-color-primary-rgb), 0.33);display:block;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}.select-small{--font-size:var(--gr-form-element-font-size-small);--min-height:var(--gr-form-element-height-small);--label-margin-start:var(--gr-spacing-small);--label-margin-end:var(--gr-spacing-small);--clear-icon-margin-end:var(--gr-spacing-small);--caret-margin-end:var(--gr-spacing-small);--tags-padding-top:2px;--tags-padding-bottom:2px}.select-large{--font-size:var(--gr-form-element-font-size-large);--min-height:var(--gr-form-element-height-large);--label-margin-start:var(--gr-spacing-large);--label-margin-end:var(--gr-spacing-large);--clear-icon-margin-end:var(--gr-spacing-large);--caret-margin-end:var(--gr-spacing-large);--tags-padding-top:4px;--tags-padding-bottom:4px}.select{display:block}.select-box{display:inline-flex;align-items:center;justify-content:start;position:relative;width:100%;font-family:var(--gr-font-family);font-size:var(--font-size);font-weight:var(--font-weight);letter-spacing:normal;background-color:var(--background-color);border:solid 1px var(--border-color);border-radius:var(--border-radius);min-height:var(--min-height);color:var(--color);vertical-align:middle;overflow:hidden;transition:150ms color, 150ms border, 150ms box-shadow;cursor:pointer}.select.select-invalid:not(.select-disabled) .select-box{background-color:var(--background-color-invalid);border-color:var(--border-color-invalid)}.select.select-invalid:not(.select-disabled):not(.select-focused) .select-box:hover{background-color:var(--background-color-invalid-hover);border-color:var(--border-color-invalid-hover)}.select.select-invalid:not(.select-disabled) .select-box{background-color:var(--background-color-invalid);border-color:var(--border-color-invalid)}.select:not(.select-disabled) .select-box:hover{background-color:var(--background-color-hover);border-color:var(--border-color-hover)}.select.select-focused:not(.select-disabled) .select-box{outline:none;box-shadow:var(--focus-ring);border-color:var(--border-color-focus);background-color:var(--background-color-focus)}.select-disabled .select-box{opacity:0.5;cursor:not-allowed;outline:none}.select-disabled .select-tags,.select-disabled .select-clear{pointer-events:none}.select-label{flex:1 1 auto;display:flex;align-items:center;user-select:none;margin-top:0;margin-left:var(--label-margin-start);margin-right:var(--label-margin-end);margin-bottom:0;scrollbar-width:none;-ms-overflow-style:none;overflow-x:auto;overflow-y:hidden;white-space:nowrap}.select-label::-webkit-scrollbar{width:0;height:0}.select-has-tags .select-label{margin-left:0}.select-clear{display:inline-flex;align-items:center;font-size:inherit;color:var(--gr-color-medium);border:none;background:none;padding:0;transition:150ms color;cursor:pointer;margin-right:var(--clear-icon-margin-end)}.select-clear:hover{color:var(--gr-color-dark)}.select-clear:focus{outline:none}.select-clear svg{width:1.2em;height:1.2em;font-size:var(--font-size)}.caret{flex:0 0 auto;display:inline-flex;transition:250ms transform ease;margin-right:var(--caret-margin-end)}.caret svg{width:1em;height:1em;font-size:var(--font-size)}.select-open .caret{transform:rotate(-180deg)}.select-placeholder-visible .select-label{color:var(--placeholder-color)}.select-tags{display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:left;margin-left:var(--gr-spacing-xx-small);padding-bottom:var(--tags-padding-bottom)}.select-tags gr-tag{padding-top:var(--tags-padding-top)}.select-tags gr-tag:not(:last-of-type){margin-right:var(--tags-margin-end)}.select-hidden-select{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px;position:absolute;top:0;left:0;width:100%;height:100%}.select-pill .select-box{border-radius:var(--min-height)}"}},[1,"gr-select",{multiple:[4],maxTagsVisible:[2,"max-tags-visible"],disabled:[4],name:[1],placeholder:[1],size:[1],hoist:[4],value:[1025],pill:[4],label:[1],requiredIndicator:[4,"required-indicator"],helpText:[1,"help-text"],invalidText:[1,"invalid-text"],invalid:[516],clearable:[4],hasFocus:[32],hasHelpTextSlot:[32],hasInvalidTextSlot:[32],hasLabelSlot:[32],isOpen:[32],items:[32],displayLabel:[32],displayTags:[32],setFocus:[64]}]),ni=e=>{if(null!=e)return Array.isArray(e)?e.join(","):e.toString()};!function(){if("undefined"==typeof customElements)return;["gr-select","gr-button","gr-dropdown","gr-menu","gr-spinner","gr-tag"].forEach((e=>{switch(e){case"gr-select":customElements.get(e)||customElements.define(e,oi);break;case"gr-button":customElements.get(e)||St();break;case"gr-dropdown":customElements.get(e)||Xr();break;case"gr-menu":customElements.get(e)||Jr();break;case"gr-spinner":customElements.get(e)||Et();break;case"gr-tag":customElements.get(e)||ti()}}))}();const ai=oi,si=Ge(class extends dt{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.hasFocus=!1,this.checked=!1,this.value="",this.disabled=!1}connectedCallback(){this.handleBlur=this.handleBlur.bind(this),this.handleFocus=this.handleFocus.bind(this),this.handleMouseEnter=this.handleMouseEnter.bind(this),this.handleMouseLeave=this.handleMouseLeave.bind(this)}async setFocus(e){this.el.focus(e)}async removeFocus(){this.el.blur()}handleBlur(){this.hasFocus=!1}handleFocus(){this.hasFocus=!0}handleMouseEnter(){this.setFocus()}handleMouseLeave(){this.removeFocus()}render(){return de(ge,{class:{"menu-item-checked":this.checked,"menu-item-disabled":this.disabled,"menu-item-focused":this.hasFocus},role:"menuitem","aria-disabled":this.disabled?"true":"false","aria-checked":this.checked?"true":"false",tabIndex:this.disabled?null:0,onFocus:this.handleFocus,onBlur:this.handleBlur,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave},de("span",{class:"checkmark"},de("svg",{role:"img","aria-hidden":"true",viewBox:"0 0 512 512"},de("title",null,"Checkmark"),de("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32",d:"M416 128L192 384l-96-96"}))),de("span",{class:"start"},de("slot",{name:"start"})),de("span",{class:"label"},de("slot",null)),de("span",{class:"end"},de("slot",{name:"end"})))}get el(){return this}static get style(){return".gr-scroll-lock{overflow:hidden !important}:host{--line-height:var(--gr-line-height-normal);--background-color:transparent;--background-color-focused:var(--gr-color-primary);--color:var(--gr-color-dark);--color-focused:var(--gr-color-primary-contrast);--color-disabled:var(--gr-color-medium);--padding-top:var(--gr-spacing-xx-small);--padding-start:var(--gr-spacing-x-large);--padding-end:var(--gr-spacing-x-large);--padding-bottom:var(--gr-spacing-xx-small);--transition:background-color 150ms linear, color 150ms linear;position:relative;display:flex;align-items:stretch;font-family:var(--gr-font-family);font-size:var(--gr-font-size-medium);font-weight:var(--gr-font-weight-normal);line-height:var(--line-height);letter-spacing:var(--gr-letter-spacing-normal);text-align:left;background-color:var(--background-color);color:var(--color);padding-top:var(--padding-top);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-bottom:var(--padding-bottom);transition:var(--transition);user-select:none;white-space:nowrap;cursor:pointer;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host(.menu-item-focused:not(.menu-item-disabled)){outline:none;background-color:var(--background-color-focused);color:var(--color-focused)}:host(.menu-item-disabled){outline:none;color:var(--color-disabled);cursor:not-allowed}.checkmark{display:flex;position:absolute;left:0.5em;top:calc(50% - 0.5em);visibility:hidden;align-items:center;font-size:inherit}.checkmark svg{display:inline-block;width:1.1em;height:1.1em;contain:strict;fill:currentcolor;box-sizing:content-box !important}:host(.menu-item-checked) .checkmark{visibility:visible}.label{flex:1 1 auto}.start{flex:0 0 auto;display:flex;align-items:center}.start ::slotted(:last-child){margin-right:0.5em}.end{flex:0 0 auto;display:flex;align-items:center}.end ::slotted(:first-child){margin-left:0.5em}"}},[1,"gr-menu-item",{checked:[516],value:[513],disabled:[516],hasFocus:[32],setFocus:[64],removeFocus:[64]}]); +/*! + * (C) PAQT.com B.V. https://paqt.com - MIT License + */!function(){if("undefined"==typeof customElements)return;["gr-menu-item"].forEach((e=>{if("gr-menu-item"===e)customElements.get(e)||customElements.define(e,si)}))}();const li={"gr-select":ai,"gr-menu-item":si};class ci extends(P(_)){constructor(){super(...arguments),this.value=null,this.multiple=!1,this.clearable=!1,this._refSelect=y()}reset(){this.value=null}_valueChangedHandler(e){const t=this._refSelect.value?.value;if(void 0!==t&&!l(this.value,t)){const e=null===this.value;this.value=t,e||w(this,"select:change",t)}}willUpdate(e){e.has("initialValue")&&this.initialValue&&!this.value&&(this.value=this.initialValue)}render(){return $` + ${this.options?.map((e=>$`${e.label}`))} + `}static get styles(){return k(':root, :host {\n --gr-color-primary: #1079b2;\n --gr-color-primary-rgb: 16, 121, 178;\n --gr-color-primary-contrast: #ffffff;\n --gr-color-primary-contrast-rgb: 255, 255, 255;\n --gr-color-primary-shade: #0d6696;\n --gr-color-primary-tint: #1499e1;\n --gr-color-secondary: #051f2c;\n --gr-color-secondary-rgb: 5, 31, 44;\n --gr-color-secondary-contrast: #ffffff;\n --gr-color-secondary-contrast-rgb: 255, 255, 255;\n --gr-color-secondary-shade: #000000;\n --gr-color-secondary-tint: #0a415c;\n --gr-color-tertiary: #0c4a6e;\n --gr-color-tertiary-rgb: 12, 74, 110;\n --gr-color-tertiary-contrast: #ffffff;\n --gr-color-tertiary-contrast-rgb: 255, 255, 255;\n --gr-color-tertiary-shade: #083249;\n --gr-color-tertiary-tint: #106393;\n --gr-color-success: #0fbe78;\n --gr-color-success-rgb: 15, 190, 120;\n --gr-color-success-contrast: #000000;\n --gr-color-success-contrast-rgb: 0, 0, 0;\n --gr-color-success-shade: #057f4e;\n --gr-color-success-tint: #12e28f;\n --gr-color-warning: #fbbc4e;\n --gr-color-warning-rgb: 251, 188, 78;\n --gr-color-warning-contrast: #051f2c;\n --gr-color-warning-contrast-rgb: 5, 31, 44;\n --gr-color-warning-shade: #9e6400;\n --gr-color-warning-tint: #fdd187;\n --gr-color-danger: #e60017;\n --gr-color-danger-rgb: 230, 0, 23;\n --gr-color-danger-contrast: #ffffff;\n --gr-color-danger-contrast-rgb: 255, 255, 255;\n --gr-color-danger-shade: #cc0014;\n --gr-color-danger-tint: #ff1f35;\n --gr-color-light: #f4f5f8;\n --gr-color-light-rgb: 244, 245, 248;\n --gr-color-light-contrast: #051f2c;\n --gr-color-light-contrast-rgb: 5, 31, 44;\n --gr-color-light-shade: #d7d8da;\n --gr-color-light-tint: #f9fafb;\n --gr-color-medium: #5e6c78;\n --gr-color-medium-rgb: 94, 108, 120;\n --gr-color-medium-contrast: #ffffff;\n --gr-color-medium-contrast-rgb: 255, 255, 255;\n --gr-color-medium-shade: #48535b;\n --gr-color-medium-tint: #81909c;\n --gr-color-dark: #02131b;\n --gr-color-dark-rgb: 2, 19, 27;\n --gr-color-dark-contrast: #ffffff;\n --gr-color-dark-contrast-rgb: 255, 255, 255;\n --gr-color-dark-shade: #000000;\n --gr-color-dark-tint: #222428;\n --gr-color-white: #ffffff;\n --gr-color-black: #000000;\n --gr-border-radius-small: 0.125rem;\n --gr-border-radius-medium: 0.25rem;\n --gr-border-radius-large: 0.5rem;\n --gr-border-radius-x-large: 1rem;\n --gr-border-width-small: 0.063rem;\n --gr-border-width-medium: 0.125rem;\n --gr-border-width-large: 0.188rem;\n --gr-shadow-x-small: 0 1px 0 #0d131e0d;\n --gr-shadow-small: 0 1px 2px #0d131e1a;\n --gr-shadow-medium: 0 2px 4px #0d131e1a;\n --gr-shadow-large: 0 2px 8px #0d131e1a;\n --gr-shadow-x-large: 0 4px 16px #0d131e1a;\n --gr-spacing-xxx-small: 0.125rem;\n --gr-spacing-xx-small: 0.25rem;\n --gr-spacing-x-small: 0.5rem;\n --gr-spacing-small: 0.75rem;\n --gr-spacing-medium: 1rem;\n --gr-spacing-large: 1.25rem;\n --gr-spacing-x-large: 1.75rem;\n --gr-spacing-xx-large: 2.25rem;\n --gr-spacing-xxx-large: 3rem;\n --gr-spacing-xxxx-large: 4.5rem;\n --gr-font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial,\n sans-serif;\n --gr-letter-spacing-dense: -0.015em;\n --gr-letter-spacing-normal: normal;\n --gr-letter-spacing-loose: 0.075em;\n --gr-line-height-dense: 1.4;\n --gr-line-height-normal: 1.8;\n --gr-line-height-loose: 2.2;\n --gr-font-size-xx-small: 0.625rem;\n --gr-font-size-x-small: 0.75rem;\n --gr-font-size-small: 0.875rem;\n --gr-font-size-medium: 1rem;\n --gr-font-size-large: 1.25rem;\n --gr-font-size-x-large: 1.5rem;\n --gr-font-size-xx-large: 2.25rem;\n --gr-font-size-xxx-large: 3rem;\n --gr-font-size-xxxx-large: 4.5rem;\n --gr-font-weight-thin: 100;\n --gr-font-weight-extra-light: 200;\n --gr-font-weight-light: 300;\n --gr-font-weight-normal: 400;\n --gr-font-weight-medium: 500;\n --gr-font-weight-semi-bold: 600;\n --gr-font-weight-bold: 700;\n --gr-font-weight-extra-bold: 800;\n --gr-font-weight-black: 900;\n --gr-form-element-font-size-x-small: var(--gr-font-size-x-small);\n --gr-form-element-font-size-small: var(--gr-font-size-small);\n --gr-form-element-font-size-medium: var(--gr-font-size-medium);\n --gr-form-element-font-size-large: var(--gr-font-size-large);\n --gr-form-element-height-small: 2.188rem;\n --gr-form-element-height-medium: 3.125rem;\n --gr-form-element-height-large: 4.063rem;\n --gr-form-element-border-radius-small: var(--gr-border-radius-medium);\n --gr-form-element-border-radius-medium: var(--gr-border-radius-medium);\n --gr-form-element-border-radius-large: var(--gr-border-radius-medium);\n --gr-focus-ring-width: 2px;\n --gr-form-element-label-font-size-small: var(--gr-font-size-small);\n --gr-form-element-label-font-size-medium: var(--gr-font-size-medium);\n --gr-form-element-label-font-size-large: var(--gr-font-size-large);\n --gr-form-element-label-color: inherit;\n --gr-form-element-help-text-font-size-small: var(--gr-font-size-x-small);\n --gr-form-element-help-text-font-size-medium: var(--gr-font-size-small);\n --gr-form-element-help-text-font-size-large: var(--gr-font-size-medium);\n --gr-form-element-help-text-color: var(--gr-color-medium);\n --gr-form-element-invalid-text-font-size-small: var(--gr-font-size-x-small);\n --gr-form-element-invalid-text-font-size-medium: var(--gr-font-size-small);\n --gr-form-element-invalid-text-font-size-large: var(--gr-font-size-medium);\n --gr-form-element-invalid-text-color: var(--gr-color-danger);\n --gr-toggle-size: 1rem;\n --gr-panel-border-color: var(--gr-color-light-shade);\n --gr-z-index-dropdown: 900;\n}\n\n')}}ci.elementDefinitions={...li},f([v({attribute:!1,hasChanged:b})],ci.prototype,"options",void 0),f([v({attribute:!1,hasChanged:b})],ci.prototype,"value",void 0),f([v({attribute:!1,hasChanged:b})],ci.prototype,"initialValue",void 0),f([v({attribute:!0})],ci.prototype,"label",void 0),f([v({attribute:!0})],ci.prototype,"placeholder",void 0),f([v({attribute:!0,type:Boolean})],ci.prototype,"multiple",void 0),f([v({attribute:!0,type:Boolean})],ci.prototype,"clearable",void 0);let di=class extends(P(_)){constructor(){super(...arguments),this._mediaFilterController=new U(this),this._refMediaType=y(),this._refCamera=y(),this._refWhen=y(),this._refWhenFrom=y(),this._refWhenTo=y(),this._refWhat=y(),this._refWhere=y(),this._refFavorite=y(),this._refTags=y()}willUpdate(e){e.has("viewManagerEpoch")&&this._mediaFilterController.setViewManager(this.viewManagerEpoch?.manager??null),e.has("cameraManager")&&this.cameraManager&&(this._mediaFilterController.computeCameraOptions(this.cameraManager),this._mediaFilterController.computeMetadataOptions(this.cameraManager)),!e.get("viewManager")&&this.viewManagerEpoch&&this.cameraManager&&this._mediaFilterController.computeInitialDefaultsFromView(this.cameraManager)}render(){const e=async()=>{this.cameraManager&&this.viewManagerEpoch&&this.cardWideConfig&&await this._mediaFilterController.valueChangeHandler(this.cameraManager,this.cardWideConfig,{camera:this._refCamera.value?.value??void 0,mediaType:this._refMediaType.value?.value??void 0,when:{selected:this._refWhen.value?.value??void 0,from:this._refWhenFrom.value?.value,to:this._refWhenTo.value?.value},favorite:this._refFavorite.value?.value??void 0,where:this._refWhere.value?.value??void 0,what:this._refWhat.value?.value??void 0,tags:this._refTags.value?.value??void 0})},t=async t=>{"custom"===t&&this._refWhen.value?this._refWhenFrom.value?.value||this._refWhenTo.value?.value?this._refWhen.value.value=B.Custom:this._refWhen.value.reset():this._refWhen.value?.value!==B.Custom&&(this._refWhenFrom.value?.reset(),this._refWhenTo.value?.reset()),await e()};if(!this.cameraManager||!this.viewManagerEpoch)return;const r=this._mediaFilterController.getControlsToShow(this.cameraManager),o=this._mediaFilterController.getDefaults(),n=this._mediaFilterController.getWhatOptions(),a=this._mediaFilterController.getTagsOptions(),s=this._mediaFilterController.getWhereOptions();return $` e()} + > + +

    + t("selected")} + > + + t("custom")} + > + + t("custom")} + > + +
    + e()} + > + + ${r.events&&n.length?$` e()} + > + `:""} + ${r.events&&a.length?$` e()} + > + `:""} + ${r.events&&s.length?$` e()} + > + `:""} + ${r.favorites?$` + e()} + > + + `:""}`}static get styles(){return k(":host {\n display: flex;\n flex-direction: column;\n overflow: auto;\n scrollbar-width: none;\n -ms-overflow-style: none;\n height: 100%;\n width: 300px;\n margin: 5px;\n}\n\n/* Hide scrollbar for Chrome, Safari and Opera */\n:host::-webkit-scrollbar {\n display: none;\n}\n\nfrigate-card-select {\n padding: 5px;\n}\n\ndiv.when {\n display: inline-flex;\n align-items: flex-end;\n}\n\ndiv.when frigate-card-select {\n flex: 1;\n}\n\ndiv.when frigate-card-date-picker {\n padding-bottom: 5px;\n transition: width 0.5s ease-in-out;\n}\n\ndiv.when frigate-card-date-picker {\n color: var(--secondary-color);\n}\n\ndiv.when frigate-card-date-picker.selected {\n color: var(--primary-color);\n}\n\ndiv.when frigate-card-date-picker.hidden {\n width: 0px;\n}")}};di.elementDefinitions={"frigate-card-select":ci,"frigate-card-date-picker":R},f([v({attribute:!1})],di.prototype,"hass",void 0),f([v({attribute:!1})],di.prototype,"cameraManager",void 0),f([v({attribute:!1})],di.prototype,"viewManagerEpoch",void 0),f([v({attribute:!1})],di.prototype,"cardWideConfig",void 0),di=f([C("frigate-card-media-filter")],di);const hi={closed:"mdi:filter-cog-outline",open:"mdi:filter-cog"};let gi=class extends _{render(){const e=this.viewManagerEpoch?.manager.getView();if(this.hass&&e?.isGalleryView()&&this.cameraManager&&this.cardWideConfig)return $` + + ${this.galleryConfig&&"none"!==this.galleryConfig.controls.filter.mode?$` + `:""} + + + + `}static get styles(){return k(":host {\n width: 100%;\n height: 100%;\n display: block;\n}\n\nfrigate-card-surround-basic {\n max-height: 110dvh;\n}")}};f([v({attribute:!1})],gi.prototype,"hass",void 0),f([v({attribute:!1})],gi.prototype,"viewManagerEpoch",void 0),f([v({attribute:!1})],gi.prototype,"galleryConfig",void 0),f([v({attribute:!1})],gi.prototype,"cameraManager",void 0),f([v({attribute:!1})],gi.prototype,"cardWideConfig",void 0),gi=f([C("frigate-card-gallery")],gi);let ui=class extends _{constructor(){super(),this._refLoaderBottom=y(),this._refSelected=y(),this._showLoaderBottom=!0,this._showLoaderTop=!1,this._boundWheelHandler=this._wheelHandler.bind(this),this._boundTouchStartHandler=this._touchStartHandler.bind(this),this._boundTouchEndHandler=this._touchEndHandler.bind(this),this._throttleExtendGalleryLater=O(this._extendGallery.bind(this),500,{leading:!0,trailing:!1}),this._touchScrollYPosition=null,this._resizeObserver=new ResizeObserver(this._resizeHandler.bind(this)),this._intersectionObserver=new IntersectionObserver(this._intersectionHandler.bind(this))}_touchStartHandler(e){1===e.touches.length?this._touchScrollYPosition=e.touches[0].screenY:this._touchScrollYPosition=null}async _touchEndHandler(e){!this.scrollTop&&1===e.changedTouches.length&&this._touchScrollYPosition&&e.changedTouches[0].screenY>this._touchScrollYPosition&&await this._extendLater(),this._touchScrollYPosition=null}async _wheelHandler(e){!this.scrollTop&&e.deltaY<0&&await this._extendLater()}async _extendLater(){const e=new Date;this._showLoaderTop=!0,await this._throttleExtendGalleryLater("later",!1);const t=(new Date).getTime()-e.getTime();t<500&&await S(.5-t/1e3),this._showLoaderTop=!1}connectedCallback(){super.connectedCallback(),this._resizeObserver.observe(this),this.addEventListener("wheel",this._boundWheelHandler,{passive:!0}),this.addEventListener("touchstart",this._boundTouchStartHandler,{passive:!0}),this.addEventListener("touchend",this._boundTouchEndHandler),this.requestUpdate()}disconnectedCallback(){this.removeEventListener("wheel",this._boundWheelHandler),this.removeEventListener("touchstart",this._boundTouchStartHandler),this.removeEventListener("touchend",this._boundTouchEndHandler),this._resizeObserver.disconnect(),this._intersectionObserver.disconnect(),super.disconnectedCallback()}_setColumnCount(){const e=this.galleryConfig?.controls.thumbnails.size??M.media_gallery.controls.thumbnails.size,t=this.galleryConfig?.controls.thumbnails.show_details?Math.max(1,Math.floor(this.clientWidth/z)):Math.max(1,Math.ceil(this.clientWidth/e));this.style.setProperty("--frigate-card-gallery-columns",String(t))}_resizeHandler(){this._setColumnCount()}async _intersectionHandler(e){e.every((e=>!e.isIntersecting))||(this._showLoaderBottom=!1,await this._extendGallery("earlier"))}async _extendGallery(e,t=!0){const r=this.viewManagerEpoch?.manager.getView();if(!this.cameraManager||!this.hass||!r)return;const i=r.query,n=i?.getQueries()??null,s=r.queryResults?.getResults();if(!i||!n||!s)return;let l;try{l=await this.cameraManager.extendMediaQueries(n,s,e,{useCache:t})}catch(e){return void d(e)}if(l){const e=c.areEventQueries(i)?new o(l.queries):c.areRecordingQueries(i)?new a(l.queries):null;e&&this.viewManagerEpoch?.manager.setViewByParameters({baseView:r,params:{query:e,queryResults:new L({results:l.results}).selectResultIfFound((e=>e===r.queryResults?.getSelectedResult()))}})}}willUpdate(e){if(e.has("galleryConfig")&&(this.galleryConfig?.controls.thumbnails.show_details?this.setAttribute("details",""):this.removeAttribute("details"),this._setColumnCount(),this.galleryConfig?.controls.thumbnails.size&&this.style.setProperty("--frigate-card-thumbnail-size",`${this.galleryConfig.controls.thumbnails.size}px`)),e.has("viewManagerEpoch")){this._showLoaderBottom=!0;const e=this.viewManagerEpoch?.manager.getView(),t=this.viewManagerEpoch?.oldView;this._media&&t?.queryResults?.getResults()===e?.queryResults?.getResults()||(this._media=[...e?.queryResults?.getResults()??[]].reverse())}}render(){if(!this._media||!this.hass)return $``;const e=this.viewManagerEpoch?.manager.getView();if(!e?.queryResults||0===e.queryResults.getResultsCount()){const t=!!e?.context?.loading?.query;return D({type:"info",message:i(t?"error.awaiting_media":"common.no_media"),icon:"mdi:multimedia",dotdotdot:t})}const t=e.queryResults.getSelectedResult();return $`
    + ${this._showLoaderTop?$`${A({cardWideConfig:this.cardWideConfig,classes:{top:!0},size:"small"})}`:""} + ${this._media.map(((r,i)=>$`{this._media&&this.viewManagerEpoch?.manager.setViewByParameters({params:{view:"media",queryResults:e.queryResults?.clone().selectIndex(this._media.length-i-1)}}),F(t)}} + > + `))} + ${this._showLoaderBottom?$`${A({cardWideConfig:this.cardWideConfig,componentRef:this._refLoaderBottom})}`:""} +
    `}updated(e){this._refLoaderBottom.value&&(this._intersectionObserver.disconnect(),this._intersectionObserver.observe(this._refLoaderBottom.value)),this.updateComplete.then((()=>{e.has("viewManagerEpoch")&&!e.get("viewManagerEpoch")&&this._refSelected.value&&this._refSelected.value.scrollIntoView({block:"center"})}))}static get styles(){return k(":host {\n width: 100%;\n height: 100%;\n display: block;\n overflow: auto;\n -ms-overflow-style: none;\n scrollbar-width: none;\n --frigate-card-gallery-gap: 3px;\n --frigate-card-gallery-columns: 4;\n}\n\n.grid {\n display: grid;\n grid-template-columns: repeat(var(--frigate-card-gallery-columns), minmax(0, 1fr));\n grid-auto-rows: min-content;\n gap: var(--frigate-card-gallery-gap);\n}\n\n:host::-webkit-scrollbar {\n display: none;\n}\n\nfrigate-card-thumbnail {\n height: 100%;\n max-height: var(--frigate-card-thumbnail-size);\n}\n\nfrigate-card-thumbnail:not([details]) {\n width: 100%;\n}\n\nfrigate-card-thumbnail.selected {\n border: 4px solid var(--accent-color);\n border-radius: calc(var(--frigate-card-css-border-radius, var(--ha-card-border-radius, 4px)) + 4px);\n}\n\nfrigate-card-progress-indicator.top {\n grid-column: 1/-1;\n}")}};f([v({attribute:!1})],ui.prototype,"hass",void 0),f([v({attribute:!1})],ui.prototype,"viewManagerEpoch",void 0),f([v({attribute:!1})],ui.prototype,"galleryConfig",void 0),f([v({attribute:!1})],ui.prototype,"cameraManager",void 0),f([v({attribute:!1})],ui.prototype,"cardWideConfig",void 0),f([E()],ui.prototype,"_showLoaderBottom",void 0),f([E()],ui.prototype,"_showLoaderTop",void 0),ui=f([C("frigate-card-gallery-core")],ui);export{gi as FrigateCardGallery,ui as FrigateCardGalleryCore}; diff --git a/config/www/community/frigate-hass-card/gallery-c718155d.js.gz b/config/www/community/frigate-hass-card/gallery-c718155d.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..d5eda4d8904e5a5672da6917f13c063d6ed3f7f9 GIT binary patch literal 30838 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 s=[...e.pc?["webrtc"]:[],...!e.pc&&e.mseCodecs?["mse","hls"]:[]];return s.length?s:void 0};export{e as g}; diff --git a/config/www/community/frigate-hass-card/get-technology-for-video-rtc-778a0c05.js.gz b/config/www/community/frigate-hass-card/get-technology-for-video-rtc-778a0c05.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..172bdaaa76a7a54989131366979eef02872263cf GIT binary patch literal 171 zcmV;c095}UiwFoEf?;O@|7T@%Ep%mLXl`$8Z)bTeW^ZyWc4=f~Z!L0kV=Xr~IAJhj zFf}e}a{wL6K@Ng25Jus>r>I@9A`{m%m4(M>y3pYdm|#mfgPIWTZe{oK<#A4;1|I&p z@zLS~5rG!&gZ?KI1=MOUC}Nk(W!8g=TWd*|n1 ZF1y2b$wfDqyO?ozryq>OnMHj7004N2PPqU8 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/ha-1d1cb9a1.js b/config/www/community/frigate-hass-card/ha-1d1cb9a1.js new file mode 100644 index 00000000..4d9b2217 --- /dev/null +++ b/config/www/community/frigate-hass-card/ha-1d1cb9a1.js @@ -0,0 +1,61 @@ +import{dm as e,cQ as t,x as s,dw as a,dx as r,dy as i,dz as o,r as h,eM as l,_ as n,t as u,a as d,cR as c,cU as y,l as p,cV as m,n as _}from"./card-45855f1f.js";import{c as v,e as g}from"./ha-hls-player-ad38a2a0.js";import{m as f}from"./audio-cf3a75aa.js";import{s as $,h as b,c as w}from"./media-1a34ac2c.js";import{g as R}from"./index-9bf80040.js";customElements.whenDefined("ha-web-rtc-player").then((()=>{let d=class extends(customElements.get("ha-web-rtc-player")){async play(){return this._video?.play()}async pause(){this._video?.pause()}async mute(){this._video&&(this._video.muted=!0)}async unmute(){this._video&&(this._video.muted=!1)}isMuted(){return this._video?.muted??!0}async seek(e){this._video&&(this._video.currentTime=e)}async setControls(e){this._video&&$(this._video,e??this.controls)}isPaused(){return this._video?.paused??!0}async getScreenshotURL(){return this._video?e(this._video):null}render(){return this._error?t(this,`${this._error} (${this.entityid})`):s` + + `}static get styles(){return[super.styles,h(v),l` + :host { + width: 100%; + height: 100%; + } + video { + width: 100%; + height: 100%; + } + `]}};n([g("#remote-stream")],d.prototype,"_video",void 0),d=n([u("frigate-card-ha-web-rtc-player")],d)})),customElements.whenDefined("ha-camera-stream").then((()=>{let e=class extends(customElements.get("ha-camera-stream")){async play(){return this._player?.play()}async pause(){this._player?.pause()}async mute(){this._player?.mute()}async unmute(){this._player?.unmute()}isMuted(){return this._player?.isMuted()??!0}async seek(e){this._player?.seek(e)}async setControls(e){this._player&&this._player.setControls(e??this.controls)}isPaused(){return this._player?.isPaused()??!0}async getScreenshotURL(){return this._player?await this._player.getScreenshotURL():null}render(){return this.stateObj?this._shouldRenderMJPEG?s` + {a(this,e,{player:this,technology:["mjpeg"]})}} + .src=${void 0===this._connected||this._connected?(e=this.stateObj,`/api/camera_proxy_stream/${e.entity_id}?token=${e.attributes.access_token}`):""} + /> + `:"hls"===this.stateObj.attributes.frontend_stream_type?this._url?s` `:s``:"web_rtc"===this.stateObj.attributes.frontend_stream_type?s``:void 0:s``;var e}static get styles(){return[super.styles,h(v),l` + :host { + width: 100%; + height: 100%; + } + img { + width: 100%; + height: 100%; + } + `]}};n([g("#player")],e.prototype,"_player",void 0),e=n([u("frigate-card-ha-camera-stream")],e)}));let j=class extends d{constructor(){super(...arguments),this.controls=!0,this._playerRef=c()}async play(){return this._playerRef.value?.play()}async pause(){this._playerRef.value?.pause()}async mute(){this._playerRef.value?.mute()}async unmute(){this._playerRef.value?.unmute()}isMuted(){return this._playerRef.value?.isMuted()??!0}async seek(e){this._playerRef.value?.seek(e)}async setControls(e){this._playerRef.value?.setControls(e??this.controls)}isPaused(){return this._playerRef.value?.isPaused()??!0}async getScreenshotURL(){return await(this._playerRef.value?.getScreenshotURL())??null}render(){if(!this.hass)return;const e=R(this,this.hass,this.cameraConfig);return e?"unavailable"===e.state?y({message:p("error.live_camera_unavailable"),type:"error",icon:"mdi:connection",context:this.cameraConfig}):s` + `:void 0}static get styles(){return h(":host {\n width: 100%;\n height: 100%;\n display: block;\n}")}};n([_({attribute:!1})],j.prototype,"hass",void 0),n([_({attribute:!1})],j.prototype,"cameraConfig",void 0),n([_({attribute:!0,type:Boolean})],j.prototype,"controls",void 0),j=n([u("frigate-card-live-ha")],j);export{j as FrigateCardLiveHA}; diff --git a/config/www/community/frigate-hass-card/ha-1d1cb9a1.js.gz b/config/www/community/frigate-hass-card/ha-1d1cb9a1.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..064197b432a3f151e91bebc6d90736f203287263 GIT binary patch literal 1566 zcmV+(2I2W1iwFqOQ&?vL|7c+?F=R1gVmVmg?#T2A6= zN?BIZG`&qSP2Hw1X-0yGl?a6w4FF1375;k{;6~gulo2$70`GI%n&SU0S><&=ATW3E=5<^R z|J|DW_13aD>)Qh2R6$270W`K7&H>F-s;@`COsn^Aai2Fp<=K@8vuU~qI$rW5!kb=! zjOiz1YC)?eSGa251bq{wlmUxDQAQO-s2PzK{_=9%I>e=$?@3XH14h%Ln?TmZ-1uf2 z&^aCRh${}#U(0N+2fa9b|GY~=Dqm<4@h7db%ZY*@OwuTwuKf2l4kXT_{UP6~VUb2z zj6j-9p?nEp^0+Nn*?sNi``o&i(w}bo?{2S5Nq41XluJbwH&@b%6y2cD_re9NZ1v!v>s#U0(yDb+<7hJ z$xOYeukwEeU6;XhNx5p7yxqtnG_EHRei_e-nui#YMeN=n-~9ac)ei&NoW5HgPg?_F zDC{VCwMZzQ&0)I3LCD=w1em25g?_(Z6oVa1Ai$IR^l8g5aG>8RpNy{PoL?2!b%;~; zuo@PZ_6mzDWoU>xG*IbBNOZ*>RZ8$N-VD@}AOIW^9Jy>_~Up?~ffWhEzAYx1hp;|C5*_ zJ^eRQz7bz&X?SU`MH~)@_?C`h8m-|yt;Dmo5?gGIXNL5 zt^)qTAx#0eheR%!Ud9vn2{asKSAEVxyy74rPsrXFTrO;NL zHG>}EO)GTlk{ka_+8n0$E$Y$+#-)B+-x^10@DWY9?H1fMbk?=z`KU+8JhLW&=`L*8 z>x6*ju^b8P7U%tKnnpmA-7IA*HyLL8h*RGtY@p`LncIU0^9Qb({sY(d1?(lFUL)wo Q7kTgOZzp~BbT{let c=class extends(customElements.get("ha-web-rtc-player")){async play(){return this._video?.play()}async pause(){this._video?.pause()}async mute(){this._video&&(this._video.muted=!0)}async unmute(){this._video&&(this._video.muted=!1)}isMuted(){return this._video?.muted??!0}async seek(e){this._video&&(this._video.currentTime=e)}async setControls(e){this._video&&R(this._video,e??this.controls)}isPaused(){return this._video?.paused??!0}async getScreenshotURL(){return this._video?e(this._video):null}render(){return this._error?t(this,`${this._error} (${this.entityid})`):s` + + `}static get styles(){return[super.styles,h($),d` + :host { + width: 100%; + height: 100%; + } + video { + width: 100%; + height: 100%; + } + `]}};n([b("#remote-stream")],c.prototype,"_video",void 0),c=n([l("frigate-card-ha-web-rtc-player")],c)})),customElements.whenDefined("ha-camera-stream").then((()=>{const e="web_rtc",t="mjpeg";let a=class extends(customElements.get("ha-camera-stream")){constructor(){super(...arguments),this._mediaLoadedInfoPerStream={},this._mediaLoadedInfoDispatched=null}async play(){return this._player?.play()}async pause(){this._player?.pause()}async mute(){this._player?.mute()}async unmute(){this._player?.unmute()}isMuted(){return this._player?.isMuted()??!0}async seek(e){this._player?.seek(e)}async setControls(e){this._player&&this._player.setControls(e??this.controls)}isPaused(){return this._player?.isPaused()??!0}async getScreenshotURL(){return this._player?await this._player.getScreenshotURL():null}_storeMediaLoadedInfoHandler(e,t){this._storeMediaLoadedInfo(e,t.detail),t.stopPropagation()}_storeMediaLoadedInfo(e,t){this._mediaLoadedInfoPerStream[e]=t,this.requestUpdate()}_renderStream(a){return this.stateObj?a.type===t?s` + this._storeMediaLoadedInfo(t,p(e,{player:this,technology:["mjpeg"]}))} + .src=${void 0===this._connected||this._connected?(i=this.stateObj,`/api/camera_proxy_stream/${i.entity_id}?token=${i.attributes.access_token}`):this._posterUrl||""} + /> + `:"hls"===a.type?s` this._storeMediaLoadedInfoHandler("hls",e)} + @streams=${this._handleHlsStreams} + class=${a.visible?"":"hidden"} + >`:a.type===e?s`this._storeMediaLoadedInfoHandler(e,t)} + @streams=${this._handleWebRtcStreams} + class=${a.visible?"":"hidden"} + >`:c:c;var i}updated(e){super.updated(e);const t=this._streams(this._capabilities?.frontend_stream_types,this._hlsStreams,this._webRtcStreams).find((e=>e.visible))??null;if(t){const e=this._mediaLoadedInfoPerStream[t.type];e&&e!==this._mediaLoadedInfoDispatched&&(this._mediaLoadedInfoDispatched=e,u(this,e))}}static get styles(){return[super.styles,h($),d` + :host { + width: 100%; + height: 100%; + } + img { + width: 100%; + height: 100%; + } + `]}};n([b("#player")],a.prototype,"_player",void 0),a=n([l("frigate-card-ha-camera-stream")],a)}));let S=class extends y{constructor(){super(...arguments),this.controls=!0,this._playerRef=m()}async play(){return this._playerRef.value?.play()}async pause(){this._playerRef.value?.pause()}async mute(){this._playerRef.value?.mute()}async unmute(){this._playerRef.value?.unmute()}isMuted(){return this._playerRef.value?.isMuted()??!0}async seek(e){this._playerRef.value?.seek(e)}async setControls(e){this._playerRef.value?.setControls(e??this.controls)}isPaused(){return this._playerRef.value?.isPaused()??!0}async getScreenshotURL(){return await(this._playerRef.value?.getScreenshotURL())??null}render(){if(!this.hass)return;const e=I(this,this.hass,this.cameraConfig);return e?"unavailable"===e.state?_({message:f("error.live_camera_unavailable"),type:"error",icon:"mdi:connection",context:this.cameraConfig}):s` + `:void 0}static get styles(){return h(":host {\n width: 100%;\n height: 100%;\n display: block;\n}")}};n([g({attribute:!1})],S.prototype,"hass",void 0),n([g({attribute:!1})],S.prototype,"cameraConfig",void 0),n([g({attribute:!0,type:Boolean})],S.prototype,"controls",void 0),S=n([l("frigate-card-live-ha")],S);export{S as FrigateCardLiveHA}; diff --git a/config/www/community/frigate-hass-card/ha-31684cf1.js.gz b/config/www/community/frigate-hass-card/ha-31684cf1.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..e42179767f34f0e1c9489ef13035fb5763ad6570 GIT binary patch literal 1851 zcmV-B2gLXviwFnDlQlu=|%1t_RbN&JYcoteTDW*P|l$dXOYu>5-Dy%sGkIdK4u7w;l^3^pFsEtH+p3^pF#!hm^42 z^vDQY>2X1r8B0R-uqNzUj~QX_^f)1@9%h97Q;$oM>tSBaM3K3{8KWW|u$M2s0r>t! z@IksGZXIVD_KbiYrVTowgCv!MMM~Eo26Q_8;pGo~GjrWlgQsQ8ivgQ`OTYh)(k@PF z+%-w`a7oOET{Tu2#GDRZ0*zVxa@e(+YuuX#$MYEO2SYl1{>|*gw+6>bsfz5^6f($_ z3|0x`zrc*=5PL2qI1$IU_QJ;vWq zxz3rR=bpb2ph}TDD&aDiEO`vYIIvq)jiaRm1ojbjv4&)&+CiM2dYxII0daIPYz)f$ zSd-^|#pPT5{{deOZah92)<;W#j~+aBGAo6^7y1X!AOgQNQ?H6#i6WH`tgpM~1jb`C zWi?zoc%`4?kcZ~2x-Md5ZkPbbWm2ej*O&Y4p!=zQn3riNq@(Tmf03U?7zMnz^0LF)dZ0(<7>n)$=Qy zR~=9tyBc98-R-fqmpo4~(;JXkdSjM)(B_dFTr=;2eoPA*L!5!4F;x_yrbK%9)6>gd z5U>1d&k?mbpf$Cx31nmICNxt<7j()~t~khWBg=&@bQ}HfWJnS!f6^opu6nVnhys@6 zMOw_);d>Vg66?{ut#*7^7HOFwkmhr!FTu?@eh*f^zTOu5wzV_$ezCiMaeii8x~Ny~ zDygXACM6xI)+xv~x!&XTKm>M`B;GTh#CM%f3X?)AXVY16oE48%5<1U^!>>oZjRg2S zQ4e>zt{cz3+<|wuRW-`J_fyaPOFy6eTf%~cC{&@=3m~oylS`HbkDZ}UScGP&=gtJ5 zQ#3PeXAhI&F@EJE{&5~>Gy_4~5AV`ArYF83L^>xXIw^>X-0Z^w=I%&SJUx!$cRs($3vgoU1-c4t8kd33wj`q%7#M$f2? z>56jITM8ap+FmljR1)yEAK%wBk5fz*Aga0HKA7GQVkBIiVk#j=6pJfSEGU)>FLDgQ zL96D}Lz(v;ZX;!LPrx4~NcC=kw5-EAvE9$&JlcN%&13Ml>4z~5bWul9q{gyKSLZyN z_ZY-*zGeGIE~?1F+i3zlGPlKwT;5}0?154+Jls->_Qre!CP5Ailkd}~orST-quxcx z-5Fi*Gh5mdWUKr2#1{D3vkkA?`2_pxt2UNXrl8=){-P?Q@LJPbuZ`#sJvp&!vcclUOskG-Sb9# z<|)5bT~Bl(WwQEq1gEEP5=Bqwq4rDWVZ{WbtiM%YxA-AP~ z(*ufoN7&*qT5ua_eAAc4&iYu<+wuW^Ve1N|YnVmZR;eD8w1^9qG%eu>ZQI2@C2~91 zr`2u;e4Om<7#ypAJ0?d9;hxQZFM@mCewG?G0@yon)zZN8V!?zKj;BxSROGP+Iat56e-aB;VJb~Zcn(`N1QsF p@BuYn-uNT9H@`;T=wGA%YGJPsb%~(YKUJfz{sX`-$P)Y)003P2pECde literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/ha-378b7a69.js b/config/www/community/frigate-hass-card/ha-378b7a69.js new file mode 100644 index 00000000..d5f93879 --- /dev/null +++ b/config/www/community/frigate-hass-card/ha-378b7a69.js @@ -0,0 +1,69 @@ +import{dm as e,cQ as t,x as s,dw as a,dx as i,dy as r,dz as o,r as h,eM as d,_ as n,t as l,cN as c,eP as p,cP as u,a as y,cR as m,cU as _,l as f,cV as v,n as g}from"./card-769e2b91.js";import{c as $,e as b}from"./ha-hls-player-2c0fea5b.js";import{m as w}from"./audio-cf3a75aa.js";import{s as R,h as L,c as P}from"./media-d4c0d154.js";import{g as I}from"./index-9b434861.js";customElements.whenDefined("ha-web-rtc-player").then((()=>{let c=class extends(customElements.get("ha-web-rtc-player")){async play(){return this._video?.play()}async pause(){this._video?.pause()}async mute(){this._video&&(this._video.muted=!0)}async unmute(){this._video&&(this._video.muted=!1)}isMuted(){return this._video?.muted??!0}async seek(e){this._video&&(this._video.currentTime=e)}async setControls(e){this._video&&R(this._video,e??this.controls)}isPaused(){return this._video?.paused??!0}async getScreenshotURL(){return this._video?e(this._video):null}render(){return this._error?t(this,`${this._error} (${this.entityid})`):s` + + `}static get styles(){return[super.styles,h($),d` + :host { + width: 100%; + height: 100%; + } + video { + width: 100%; + height: 100%; + } + `]}};n([b("#remote-stream")],c.prototype,"_video",void 0),c=n([l("frigate-card-ha-web-rtc-player")],c)})),customElements.whenDefined("ha-camera-stream").then((()=>{const e="web_rtc",t="mjpeg";let a=class extends(customElements.get("ha-camera-stream")){constructor(){super(...arguments),this._mediaLoadedInfoPerStream={},this._mediaLoadedInfoDispatched=null}async play(){return this._player?.play()}async pause(){this._player?.pause()}async mute(){this._player?.mute()}async unmute(){this._player?.unmute()}isMuted(){return this._player?.isMuted()??!0}async seek(e){this._player?.seek(e)}async setControls(e){this._player&&this._player.setControls(e??this.controls)}isPaused(){return this._player?.isPaused()??!0}async getScreenshotURL(){return this._player?await this._player.getScreenshotURL():null}_storeMediaLoadedInfoHandler(e,t){this._storeMediaLoadedInfo(e,t.detail),t.stopPropagation()}_storeMediaLoadedInfo(e,t){this._mediaLoadedInfoPerStream[e]=t,this.requestUpdate()}_renderStream(a){return this.stateObj?a.type===t?s` + this._storeMediaLoadedInfo(t,p(e,{player:this,technology:["mjpeg"]}))} + .src=${void 0===this._connected||this._connected?(i=this.stateObj,`/api/camera_proxy_stream/${i.entity_id}?token=${i.attributes.access_token}`):this._posterUrl||""} + /> + `:"hls"===a.type?s` this._storeMediaLoadedInfoHandler("hls",e)} + @streams=${this._handleHlsStreams} + class=${a.visible?"":"hidden"} + >`:a.type===e?s`this._storeMediaLoadedInfoHandler(e,t)} + @streams=${this._handleWebRtcStreams} + class=${a.visible?"":"hidden"} + >`:c:c;var i}updated(e){super.updated(e);const t=this._streams(this._capabilities?.frontend_stream_types,this._hlsStreams,this._webRtcStreams).find((e=>e.visible))??null;if(t){const e=this._mediaLoadedInfoPerStream[t.type];e&&e!==this._mediaLoadedInfoDispatched&&(this._mediaLoadedInfoDispatched=e,u(this,e))}}static get styles(){return[super.styles,h($),d` + :host { + width: 100%; + height: 100%; + } + img { + width: 100%; + height: 100%; + } + `]}};n([b("#player")],a.prototype,"_player",void 0),a=n([l("frigate-card-ha-camera-stream")],a)}));let S=class extends y{constructor(){super(...arguments),this.controls=!0,this._playerRef=m()}async play(){return this._playerRef.value?.play()}async pause(){this._playerRef.value?.pause()}async mute(){this._playerRef.value?.mute()}async unmute(){this._playerRef.value?.unmute()}isMuted(){return this._playerRef.value?.isMuted()??!0}async seek(e){this._playerRef.value?.seek(e)}async setControls(e){this._playerRef.value?.setControls(e??this.controls)}isPaused(){return this._playerRef.value?.isPaused()??!0}async getScreenshotURL(){return await(this._playerRef.value?.getScreenshotURL())??null}render(){if(!this.hass)return;const e=I(this,this.hass,this.cameraConfig);return e?"unavailable"===e.state?_({message:f("error.live_camera_unavailable"),type:"error",icon:"mdi:connection",context:this.cameraConfig}):s` + `:void 0}static get styles(){return h(":host {\n width: 100%;\n height: 100%;\n display: block;\n}")}};n([g({attribute:!1})],S.prototype,"hass",void 0),n([g({attribute:!1})],S.prototype,"cameraConfig",void 0),n([g({attribute:!0,type:Boolean})],S.prototype,"controls",void 0),S=n([l("frigate-card-live-ha")],S);export{S as FrigateCardLiveHA}; diff --git a/config/www/community/frigate-hass-card/ha-378b7a69.js.gz b/config/www/community/frigate-hass-card/ha-378b7a69.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..c9402eb7ca0589520cbc45e1713f22df28a75377 GIT binary patch literal 1854 zcmV-E2f_FsiwFoxdR%7$|7c+?GdDP5H(@q8E^2cC-B@jN+qe<_e!qfdQx7=<(ehn# z*HEU_>)myd8RzQSP5UAB$Pl>_k?=(YK*_4Y|9%UAq(E7+l}tTa6{*YDfvZQ)5CVYAA?QLq_6X z)ff}FR^x)idaMXl!2v#W+Kf{a_ka#XSzk=z2%ec9K>jx46p6B_|eYK6&ue$#KOwzR=%T4iWgBnf$3NBrh}Z$oj@M zComrCY23h-gV*Xg4tc2G%61VWa~pGjLZqd9e{;3p4(w0$!=lQv8vRay@8W^;l8>dv zllvDNYqfT~W{x*za?O(3zxP9N|Bci9UFh?>spGIDayjIsgn^J8Xzp5@V_L~lrAO2p ztLE1@uPsm$y9S{r_V!rW3sz*9=`Bbvz12%SX#2=5uASSUKV~IOAjv_}gi4A~T_QdF z>FHH3h}V9-=ZMA}(3+ap1hO%86Y6P97j()pCK-ruBdUcebQAsXWJppfepDn9u6nVn ziG(;U%B-BP!w)VNB-W#QSMT_+EVC*{AT8$5T!QIy{2r`%eYMT^Z7XM*{c?Bz^5RUp zblI%j*FsXsbV@oxt}_r_a(%$-0T0Y7Nxc_7N$#yr3e!?ZXJf56&Wa^64W0Ah@b{zM zMha}6%Evpl>)Nxgci{b9U5^Uy!_;$s*UxAFj>N%&m$H=W1rXPS$tBB@CC<<%afD`> z=gv5rQ#8|UXAhI&F@EhM{%IbMX%3urA8yk)rYF83L@FmHDk+GJ-2CGL=I%&QJUx!$ zcRs;4=kh9+r6LO*NG}Ki%IB4~^ohw&-Mp@J?!PT&_N>(n8GQ{_fFY+T}wHqs4XG2fId#Y*wFY5e9mCYR`fm^5}N4^{?Ik zf}YVB(-md1w-h|KG`(bksl?%3KfZ5hkz|-GKxBKveK55jBuKa{!&E|!C>PhfTu>|* zRu&k7gI4XShcfR2+(pvl9*2KbAmsZ6(y|Kc#B@J{^JxD86pz7QrXR;NP(>X@ksJ$~ zt}a+U?=gtxe8cunTvU>Ux6=fAWNwNTxxB~1*aHQR@o+;a${YO=m;?pHn0%iFMW;uE{vR;Ck?~iJem|s`0dW|QmXtfJt~6aIszVw9 zxm_3;xg(?YYTBblD%;X}9N?GcLP?$mG*S5_8cC9NsoX5A>a4yS!RaZSMA0*PsQZ$6STO;qnr{`@E&i93H@3$Aj_%$nW!e+m z&3dP}=>f&PBW&>)CAhUTzU@n6XML>b?f3w{u-QWC24+#dRjLOiE#iVD%_=xT+uGRY zM6QK>UhP`o<7BU8aIF5dOpX@9J)8er1oyoCA~mc9uy^3B$7T&NY=2lmhB)cEfNu^R zwS@83lyA4+B$Q54yz7k3{ZZowa%ol2B?@GU1fsrgf z=GZktrB}Me=lX5euQ8f>$w<$~O{V83_83DJPw=LbdTzsw|1A0(rsh5BQVR)EGu}3I zrdb((!ll~v4R_7GO{b+p6d}kww>E*PSJ<-G5e9Zxo-iDmc>k#^GoZ!eQ<|sTo^ZR5 sI8`>`11i3}^+)iae~rFXzefMrz4f}|RiToD;00b(rJOBUy literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/ha-4f7cd760.js b/config/www/community/frigate-hass-card/ha-4f7cd760.js new file mode 100644 index 00000000..45029929 --- /dev/null +++ b/config/www/community/frigate-hass-card/ha-4f7cd760.js @@ -0,0 +1,68 @@ +import{di as e,cP as t,x as s,cZ as a,dt as i,du as r,dv as o,ds as d,r as h,eJ as l,_ as n,t as c,eM as p,eN as u,cL as y,a as m,cM as _,cQ as f,n as v}from"./card-320adb66.js";import{c as g,e as $}from"./ha-hls-player-b195eaa1.js";import{s as b,d as w,h as L,c as R}from"./dispatch-live-error-c649b480.js";import{m as P}from"./audio-cf3a75aa.js";customElements.whenDefined("ha-web-rtc-player").then((()=>{let p=class extends(customElements.get("ha-web-rtc-player")){async play(){return this._video?.play()}async pause(){this._video?.pause()}async mute(){this._video&&(this._video.muted=!0)}async unmute(){this._video&&(this._video.muted=!1)}isMuted(){return this._video?.muted??!0}async seek(e){this._video&&(this._video.currentTime=e)}async setControls(e){this._video&&b(this._video,e??this.controls)}isPaused(){return this._video?.paused??!0}async getScreenshotURL(){return this._video?e(this._video):null}render(){return this._error?(w(this),t({type:"error",message:this._error,context:{entity_id:this.entityid}})):s` + + `}_loadedDataHandler(e){super._loadedData(),d(this,e,{player:this,capabilities:{supportsPause:!0,hasAudio:P(this._video)},technology:["webrtc"]})}static get styles(){return[super.styles,h(g),l` + :host { + width: 100%; + height: 100%; + } + video { + width: 100%; + height: 100%; + } + `]}};n([$("#remote-stream")],p.prototype,"_video",void 0),p=n([c("frigate-card-ha-web-rtc-player")],p)})),customElements.whenDefined("ha-camera-stream").then((()=>{const e="web_rtc",t="mjpeg";let a=class extends(customElements.get("ha-camera-stream")){constructor(){super(...arguments),this._mediaLoadedInfoPerStream={},this._mediaLoadedInfoDispatched=null}async play(){return this._player?.play()}async pause(){this._player?.pause()}async mute(){this._player?.mute()}async unmute(){this._player?.unmute()}isMuted(){return this._player?.isMuted()??!0}async seek(e){this._player?.seek(e)}async setControls(e){this._player&&this._player.setControls(e??this.controls)}isPaused(){return this._player?.isPaused()??!0}async getScreenshotURL(){return this._player?await this._player.getScreenshotURL():null}_storeMediaLoadedInfoHandler(e,t){this._storeMediaLoadedInfo(e,t.detail),t.stopPropagation()}_storeMediaLoadedInfo(e,t){this._mediaLoadedInfoPerStream[e]=t,this.requestUpdate()}_renderStream(a){return this.stateObj?a.type===t?s` + this._storeMediaLoadedInfo(t,u(e,{player:this,technology:["mjpeg"]}))} + .src=${void 0===this._connected||this._connected?(i=this.stateObj,`/api/camera_proxy_stream/${i.entity_id}?token=${i.attributes.access_token}`):this._posterUrl||""} + /> + `:"hls"===a.type?s` this._storeMediaLoadedInfoHandler("hls",e)} + @streams=${this._handleHlsStreams} + class="player ${a.visible?"":"hidden"}" + >`:a.type===e?s`this._storeMediaLoadedInfoHandler(e,t)} + @streams=${this._handleWebRtcStreams} + class="player ${a.visible?"":"hidden"}" + >`:p:p;var i}updated(e){super.updated(e);const t=this._streams(this._capabilities?.frontend_stream_types,this._hlsStreams,this._webRtcStreams).find((e=>e.visible))??null;if(t){const e=this._mediaLoadedInfoPerStream[t.type];e&&e!==this._mediaLoadedInfoDispatched&&(this._mediaLoadedInfoDispatched=e,y(this,e))}}static get styles(){return[super.styles,h(g),l` + :host { + width: 100%; + height: 100%; + } + img { + width: 100%; + height: 100%; + } + `]}};n([$(".player:not(.hidden)")],a.prototype,"_player",void 0),a=n([c("frigate-card-ha-camera-stream")],a)}));let I=class extends m{constructor(){super(...arguments),this.controls=!1,this._playerRef=_()}async play(){return this._playerRef.value?.play()}async pause(){this._playerRef.value?.pause()}async mute(){this._playerRef.value?.mute()}async unmute(){this._playerRef.value?.unmute()}isMuted(){return this._playerRef.value?.isMuted()??!0}async seek(e){this._playerRef.value?.seek(e)}async setControls(e){this._playerRef.value?.setControls(e??this.controls)}isPaused(){return this._playerRef.value?.isPaused()??!0}async getScreenshotURL(){return await(this._playerRef.value?.getScreenshotURL())??null}render(){if(this.hass)return s` + `}static get styles(){return h(":host {\n width: 100%;\n height: 100%;\n display: block;\n}")}};n([v({attribute:!1})],I.prototype,"hass",void 0),n([v({attribute:!1})],I.prototype,"cameraConfig",void 0),n([v({attribute:!0,type:Boolean})],I.prototype,"controls",void 0),I=n([c("frigate-card-live-ha")],I);export{I as FrigateCardLiveHA}; diff --git a/config/www/community/frigate-hass-card/ha-4f7cd760.js.gz b/config/www/community/frigate-hass-card/ha-4f7cd760.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..394a8081517aafb7d817f40a4144b121fe746bbc GIT binary patch literal 1835 zcmV+`2h{iba)MUpAUPTXw;hUE*x<8!Ce-SO_RNLu8S zuOeb$W&sK>lTo?*}mn%jQmn%V0DOZZ3xm||Qi$M< zTnhw0$+bk`xm=eB%OypjIv%6&7r9PRCYO0NrFm+5M?T(gv_B2 zl;*S_K7IUb^7z|#fWDq&F z@N@x_KILKUt?hbT03640gVR+4+$w@F!AxZ3mO~aXXT#hK_*OIS3bSPvT5|8WD+;`% znZ;wmyz!hwkdHilRMj|KG7!KnLJMn1TJjAc;-7}Ta2zy}BJvmBO`iU|EmQV76p)%c4%<1|m$9qoy!j$kxW+pva92QOqec6q2` zWx6Ob^ERXa8H;oN?(%%Q9+*#c{j5xqO86ZC-NdUB961Z6;3Dp<__6@sR&pDqz!;u^ zZ-9|>Uet}h5`iFmIVO=l)>{%)mFxQK<_oL-J5gS=TgxI*U{gqQ4t>Tc;M6t_N4Vs< zETZ60M^f%D#J(~>b%tw%+L*^9sn1B3i2Klhl;})}I?yH+4X)Xnpdx1+s6b#HSG|8n z6W2t2m*hBtC(;T_>z#KB;?k|Qn5fkuIMrA!eJP}`aTX;ai_m@YJWt9L z!Wd^WsGm!8Mmw-Ntn!#{JC?;(pXZzBrzc0s<9XUZNEt(bR=Sa> zdO;yB@Ps6U6JWm7lbugr2mfGzV$7b)zUN ztN)(Co9n6?X3o{2V}IGbIPNtnyn^ODm)92AI!HE}=OnTQE-C_{7CQEnk{K3iYUFKc z?81yIt}S|Ctb{lPira^qQ$?rBV(Bo!~;8hU%<>B%87&bn>ZU!aJ5}phCG+O zOC{3rJP*@ZsWe5;Qq_?{MDV$)y0dJWUjTipYy_)nJK|+MibWq${c-nX(?Pm-w6&1k zv#o(>;r3zHU>fnR`PJassSwCjdO4}0J4w4&y)8f?8!?V1OXp0vt6B#bk^x0YHXMTW2?&? zmCi;B?zB>USw$!9Oa(D)84ZPT-BP4C>Jg#{G6+TSef+o~7&#>9ya>8E!UZ|fS9>hF z)$MYuFZj{nig+!Js75^h09hb~m~%=dqPPVC2t&a_#_FuPaceHp&ft$9ZQFGC=ycsT zeOpj=TllO)DZ*%-Y_`HRso%ju4vsrqU`;JdLV}YdU%a|iOhr)z&0RXuPhc?KKD5LW zBeDg^|2u~b9cuthHjH?i@HU>b!Tz2RD^u}+mnXHeK`zPf;DUttU z#`!)Om%Vb2Z2tz6OCElngm<$jl3w`5aE_@(s!}!OXw6;Mf}tigJZRogxmMFrlfI5T z@k>3E#HI#~Wl6D`c*JcP*Mf!lrmiRWRpdD0@<8)qu9%l{vJJ`9;cm;V9+)>=74r2E zdObJ@f(KYn`^$DWF9NiznY)+?|0RAc2H<2;?ptS`dh zYP$L4wrlU4JMD~Vr&@wHCX&qtR8k_Vo>GANJ6QY)9-tt)r>n z-Eq))|I?d$TALL+cHO@I$hvJt?mOK@3gib~5kB9VBzgEjh$`FF?Pcz)T2ku^!XWy= znb}rkVAefl4+S%D_b3jK`l9!Jo+p5_yH@HLt}UExYiH_vb&O>fJ9CF{tG-g7$* literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/ha-9af0bc47.js b/config/www/community/frigate-hass-card/ha-9af0bc47.js new file mode 100644 index 00000000..8e58f6c7 --- /dev/null +++ b/config/www/community/frigate-hass-card/ha-9af0bc47.js @@ -0,0 +1,61 @@ +import{dm as e,cQ as t,x as s,dw as a,dx as r,dy as i,dz as o,r as h,eM as l,_ as n,t as u,a as d,cR as c,cU as y,l as p,cV as m,n as _}from"./card-7cd05290.js";import{c as v,e as g}from"./ha-hls-player-717bfdfd.js";import{m as f}from"./audio-cf3a75aa.js";import{s as $,h as b,c as w}from"./media-67c578aa.js";import{g as R}from"./index-3c9b9749.js";customElements.whenDefined("ha-web-rtc-player").then((()=>{let d=class extends(customElements.get("ha-web-rtc-player")){async play(){return this._video?.play()}async pause(){this._video?.pause()}async mute(){this._video&&(this._video.muted=!0)}async unmute(){this._video&&(this._video.muted=!1)}isMuted(){return this._video?.muted??!0}async seek(e){this._video&&(this._video.currentTime=e)}async setControls(e){this._video&&$(this._video,e??this.controls)}isPaused(){return this._video?.paused??!0}async getScreenshotURL(){return this._video?e(this._video):null}render(){return this._error?t(this,`${this._error} (${this.entityid})`):s` + + `}static get styles(){return[super.styles,h(v),l` + :host { + width: 100%; + height: 100%; + } + video { + width: 100%; + height: 100%; + } + `]}};n([g("#remote-stream")],d.prototype,"_video",void 0),d=n([u("frigate-card-ha-web-rtc-player")],d)})),customElements.whenDefined("ha-camera-stream").then((()=>{let e=class extends(customElements.get("ha-camera-stream")){async play(){return this._player?.play()}async pause(){this._player?.pause()}async mute(){this._player?.mute()}async unmute(){this._player?.unmute()}isMuted(){return this._player?.isMuted()??!0}async seek(e){this._player?.seek(e)}async setControls(e){this._player&&this._player.setControls(e??this.controls)}isPaused(){return this._player?.isPaused()??!0}async getScreenshotURL(){return this._player?await this._player.getScreenshotURL():null}render(){return this.stateObj?this._shouldRenderMJPEG?s` + {a(this,e,{player:this,technology:["mjpeg"]})}} + .src=${void 0===this._connected||this._connected?(e=this.stateObj,`/api/camera_proxy_stream/${e.entity_id}?token=${e.attributes.access_token}`):""} + /> + `:"hls"===this.stateObj.attributes.frontend_stream_type?this._url?s` `:s``:"web_rtc"===this.stateObj.attributes.frontend_stream_type?s``:void 0:s``;var e}static get styles(){return[super.styles,h(v),l` + :host { + width: 100%; + height: 100%; + } + img { + width: 100%; + height: 100%; + } + `]}};n([g("#player")],e.prototype,"_player",void 0),e=n([u("frigate-card-ha-camera-stream")],e)}));let j=class extends d{constructor(){super(...arguments),this.controls=!0,this._playerRef=c()}async play(){return this._playerRef.value?.play()}async pause(){this._playerRef.value?.pause()}async mute(){this._playerRef.value?.mute()}async unmute(){this._playerRef.value?.unmute()}isMuted(){return this._playerRef.value?.isMuted()??!0}async seek(e){this._playerRef.value?.seek(e)}async setControls(e){this._playerRef.value?.setControls(e??this.controls)}isPaused(){return this._playerRef.value?.isPaused()??!0}async getScreenshotURL(){return await(this._playerRef.value?.getScreenshotURL())??null}render(){if(!this.hass)return;const e=R(this,this.hass,this.cameraConfig);return e?"unavailable"===e.state?y({message:p("error.live_camera_unavailable"),type:"error",icon:"mdi:connection",context:this.cameraConfig}):s` + `:void 0}static get styles(){return h(":host {\n width: 100%;\n height: 100%;\n display: block;\n}")}};n([_({attribute:!1})],j.prototype,"hass",void 0),n([_({attribute:!1})],j.prototype,"cameraConfig",void 0),n([_({attribute:!0,type:Boolean})],j.prototype,"controls",void 0),j=n([u("frigate-card-live-ha")],j);export{j as FrigateCardLiveHA}; diff --git a/config/www/community/frigate-hass-card/ha-9af0bc47.js.gz b/config/www/community/frigate-hass-card/ha-9af0bc47.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..79e9d4a7ac623e5e3cfbd7aa7a7cf0f737407cb1 GIT binary patch literal 1566 zcmV+(2I2W1iwFpA_*Q2E|7c+?IbminVq-KnE^2cC%~;!V+cpq=&sWf_>mg?#T5g)U zrYx&zn%*Xvrf$=hG$TR8N`%6T1^^|i3je(e@FG$-E1hA1b^r?CW&5#`9!3#?Og^`u+DYBy3fA2>3TD1_jplYpkWIFdYM+}kaogI zcIFXXf#_UcU5_Vh!kS^`wI&swW{jtuVDgk+KclpXlNxtULcNTMdDyawih*(3`RY1& zcKvlbYN~Pf6^q7u*LK|#W#vz2ZNYHu2MP30;HEWLN!wE&fg#8M%b-f+Pg zqyw*TnT`u_)NHMqgxtXrm* z03RGUmO03Tzz+S+W9Wlhhp887qC^_Wo#^vsIDx^yY=aW63w)#7ai~Jmt7eIKGQR}^ zAdz9J-rm339|z5+x_**HQI2&p5ZibVA{7H=@MLtpZdh~6DfjrsT&+0E-I43d(G#ou zcWd(3Tg&3CZwrW11s$mb(AaJ`2Q*Wuz8?KDt=_-Eeck|-XICQ3rs*E&c*&CpZ+ZnX zrk{+d1+AJ~;i`QT^i7mf1}p|e8C4XaW<*-}i;HpV5SMPgCq)?!7)^_A0$CSx{CklcvNuzYS^55AwkT{R_`+Td0MH*!> z0% zu%qPFBB6LThv^OnA$Lm=V3uMO`u%=U40bSq08j4Y$1TIafqtueGP00HhomUye#;+s*ne?>6J@+xT^7S0z@D zZ|1@;uSCyO`TU`t_OiQ~h_Ij5?e>UoJ{VhFDO9nX`z=pX63?#kEpJ2Xwmcq%C9@t_M?^@?%v%9zcKKLkTQo_>^}LJ z1*_j&!&E{@CGSNOhxo3o0!5KZ!Zg z(|;r78}WsfhL`qQ#NmL5Z|Nwe(Hh>TvBlPS#t6&;m1?#&J#;+JqhgvFb#_VX zD&Q|1(iDJunDm2<0w0uW#CZ!EWpILKH?fb2cLV#liZ{Tg$$2B-R9$a`oGkFIn13$r zt!h6><&CgA2XgI(VbZq9^NDj-6M|bL?U|c}-+uRnRM-CULYYg7?>gaAw^!By13OFT zg7S!tBhZuz1%(V&&N@cbq*L(cj%|MUc@ba0uvFn@7+zT%7{5T-gkvGT9W(BilFrk_ zCc3FO1^!Mkx&H0AE1RvMD#!MG9d9?S{v~pdCu>gB-vzbtG3u?U8&A`iiqC{y3T@R{ zGw2cCv_i)&x$)1W&0%`qqAqP zP6%io%aOotao*piX#_Oc%~G~XxjlF=f8d(wKX83tz+NEg6@q?z Qp7);o4XTc4JU0{o0Dk@uumAu6 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/ha-a4f2c69e.js b/config/www/community/frigate-hass-card/ha-a4f2c69e.js new file mode 100644 index 00000000..42f8ec35 --- /dev/null +++ b/config/www/community/frigate-hass-card/ha-a4f2c69e.js @@ -0,0 +1,69 @@ +import{dm as e,cQ as t,x as s,dw as a,dx as i,dy as r,dz as o,r as h,eM as d,_ as n,t as l,cN as c,eP as p,cP as u,a as y,cR as m,cU as _,l as f,cV as v,n as g}from"./card-09c4bade.js";import{c as $,e as b}from"./ha-hls-player-ba5834a9.js";import{m as w}from"./audio-cf3a75aa.js";import{s as R,h as L,c as P}from"./media-aef44451.js";import{g as I}from"./index-e610f971.js";customElements.whenDefined("ha-web-rtc-player").then((()=>{let c=class extends(customElements.get("ha-web-rtc-player")){async play(){return this._video?.play()}async pause(){this._video?.pause()}async mute(){this._video&&(this._video.muted=!0)}async unmute(){this._video&&(this._video.muted=!1)}isMuted(){return this._video?.muted??!0}async seek(e){this._video&&(this._video.currentTime=e)}async setControls(e){this._video&&R(this._video,e??this.controls)}isPaused(){return this._video?.paused??!0}async getScreenshotURL(){return this._video?e(this._video):null}render(){return this._error?t(this,`${this._error} (${this.entityid})`):s` + + `}static get styles(){return[super.styles,h($),d` + :host { + width: 100%; + height: 100%; + } + video { + width: 100%; + height: 100%; + } + `]}};n([b("#remote-stream")],c.prototype,"_video",void 0),c=n([l("frigate-card-ha-web-rtc-player")],c)})),customElements.whenDefined("ha-camera-stream").then((()=>{const e="web_rtc",t="mjpeg";let a=class extends(customElements.get("ha-camera-stream")){constructor(){super(...arguments),this._mediaLoadedInfoPerStream={},this._mediaLoadedInfoDispatched=null}async play(){return this._player?.play()}async pause(){this._player?.pause()}async mute(){this._player?.mute()}async unmute(){this._player?.unmute()}isMuted(){return this._player?.isMuted()??!0}async seek(e){this._player?.seek(e)}async setControls(e){this._player&&this._player.setControls(e??this.controls)}isPaused(){return this._player?.isPaused()??!0}async getScreenshotURL(){return this._player?await this._player.getScreenshotURL():null}_storeMediaLoadedInfoHandler(e,t){this._storeMediaLoadedInfo(e,t.detail),t.stopPropagation()}_storeMediaLoadedInfo(e,t){this._mediaLoadedInfoPerStream[e]=t,this.requestUpdate()}_renderStream(a){return this.stateObj?a.type===t?s` + this._storeMediaLoadedInfo(t,p(e,{player:this,technology:["mjpeg"]}))} + .src=${void 0===this._connected||this._connected?(i=this.stateObj,`/api/camera_proxy_stream/${i.entity_id}?token=${i.attributes.access_token}`):this._posterUrl||""} + /> + `:"hls"===a.type?s` this._storeMediaLoadedInfoHandler("hls",e)} + @streams=${this._handleHlsStreams} + class=${a.visible?"":"hidden"} + >`:a.type===e?s`this._storeMediaLoadedInfoHandler(e,t)} + @streams=${this._handleWebRtcStreams} + class=${a.visible?"":"hidden"} + >`:c:c;var i}updated(e){super.updated(e);const t=this._streams(this._capabilities?.frontend_stream_types,this._hlsStreams,this._webRtcStreams).find((e=>e.visible))??null;if(t){const e=this._mediaLoadedInfoPerStream[t.type];e&&e!==this._mediaLoadedInfoDispatched&&(this._mediaLoadedInfoDispatched=e,u(this,e))}}static get styles(){return[super.styles,h($),d` + :host { + width: 100%; + height: 100%; + } + img { + width: 100%; + height: 100%; + } + `]}};n([b("#player")],a.prototype,"_player",void 0),a=n([l("frigate-card-ha-camera-stream")],a)}));let S=class extends y{constructor(){super(...arguments),this.controls=!0,this._playerRef=m()}async play(){return this._playerRef.value?.play()}async pause(){this._playerRef.value?.pause()}async mute(){this._playerRef.value?.mute()}async unmute(){this._playerRef.value?.unmute()}isMuted(){return this._playerRef.value?.isMuted()??!0}async seek(e){this._playerRef.value?.seek(e)}async setControls(e){this._playerRef.value?.setControls(e??this.controls)}isPaused(){return this._playerRef.value?.isPaused()??!0}async getScreenshotURL(){return await(this._playerRef.value?.getScreenshotURL())??null}render(){if(!this.hass)return;const e=I(this,this.hass,this.cameraConfig);return e?"unavailable"===e.state?_({message:f("error.live_camera_unavailable"),type:"error",icon:"mdi:connection",context:this.cameraConfig}):s` + `:void 0}static get styles(){return h(":host {\n width: 100%;\n height: 100%;\n display: block;\n}")}};n([g({attribute:!1})],S.prototype,"hass",void 0),n([g({attribute:!1})],S.prototype,"cameraConfig",void 0),n([g({attribute:!0,type:Boolean})],S.prototype,"controls",void 0),S=n([l("frigate-card-live-ha")],S);export{S as FrigateCardLiveHA}; diff --git a/config/www/community/frigate-hass-card/ha-a4f2c69e.js.gz b/config/www/community/frigate-hass-card/ha-a4f2c69e.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..c6f78956fea51ec5cd722d62815caa82916cd77f GIT binary patch literal 1850 zcmV-A2gUdwiwFo?dR%7$|7c+?VKinkV>UTuE^2cC-B?|7+qw~bzrTWJQx7=<(ehlU zx1mg{_p6i4IIU|p?L+F3A#x=m;fD%syUC3#eXAjwLNlq7o2NU~NVC&|CmSQ4&=l)!s6CS;<9f=D%FB>s~c zV*)p7T##6g6`^WallWGRIf*~0aY8aR%t-t z2v#W+zrc(Yka#XSzk=z2%ec9K>jx46p6B_|)g}Y!#8I44f$@5jP$a_JIc^Se?=k*{ ziggh?YVP?P4zl8fBU2`V$&w{djsvq*H#k}eKwuwX78^)j$sNS$sb|ds1xTWkVQWwo z$C{k`H52dE{|9{4xbgU8*c>eYK6~)o$#KOwzR+J;4iWgBnf$pdBrh}Z#QN4YComrC zY23h-gE#6q4tc2G%61VWa~E@fLZqeqaC^Pq4(w0$!=lQv8vRay@8W^;l8>dvlZRIu zYqfT~W{x*za?O(3fAB-`@SW5AUF!3@spGIDayjIsgn^J8Xzp5@V_L~lrAO2ptL8U2 zuPsm$y9S{r_V!rW3sz*9=`Bbvz0*rQX#2=5uASSUKV&7+L6U={36&I~xT)6?r- z5O4f?&k>C|pfxqG31nmHCe+iIF6fkHOfnGRMpO$`=qCE%$&jQ}{HRDIT=imC6A5uz zlvz1nhaX)mNUTTqzTWX+S!Pv^Kw8Y9xdhYa_&r$j`f8i++g8pr`{nNb)#aIX>8e?I zsD-4G>6CPYTxTG<(;PVMKHR2pOiz46h*VBYR8kNbx%sCB%-xZqczPVg?|g!9 z&gE4sOGOqskX{f3l+P<|=@XNmx_Mpe+<#Zh${XN!`iy8(???Q?#DdB=#q!pKbhwq6 zM|!rGbdbZ%q=lHp{oSL*w9AJYMvLpV4|a_f*{nX-A`JBO)Sd-BtDP76+NRd zrYp*1Zz*_cX?n>7Q;Ea-eth53BFQjWfXMcS`(SE6NRV(@hN*-cQ7&$Hxu94stSm4D z2d&yu4`tp*xR0dCJr4h@K*$dZq-7P>iRpd@=h6NHC?119Pd|-mpo%(*A~_Z|U0t$# z-eVBW`G)PExu_%yZ>I_L$lMewa(R!1u?GqsBa${ePV-RAZ_iF6;O-dkT z1OLFYFJD~OcKGaS%bTH#ve`wS%~RqtI+wdtxE0nr%Aw)L1Crt7-2PBY2iWR?W?8xV z^-;?T;GNLut$u~v2#(PZ0k-ZAp#JY|w%Vx$v@x=xV8gptZt>f9@3m_CQA1r2q0u2P zWo28XI#2}q0>C6mcbQ45!EZBR3a587-CYn#gC!Gen!(t0G5jn^pm2M#;cx<6J%nA& zsbsl)zHNT{eEEM2zdR=VicXIR{oi4FE8}k({eDO>1L80qEh%?cU1_>bREIPIa=S1x zaz{q()wD;ARJNt{IKVH>g_1lCXrl5UkqJ z^Q7OYt`|Cy)LDH$g40ttiJ}+uQ1>PCuwnvIHQy?*Tl_C6Z)}bK9o@ZE%CslAoApj{ z(*ufoN7&*qN^omweAk!8&iYu<+wlQ@VY7wOEzF{Pt5gq4TEqoQnpJRwwzaV@iChc& zvf8!4$H`vH;8^`@nH(*Idp7^M2=00NRccrZVDG?LPt6))*#5AB3~|zR0pA=tY6;_= zDc^3tNhqD9c-I-5`=iDW@kKcp5aX=_1uOV|55ZgOwD`Lr4|yTX1s0aOtUin zj7zoa8}6EWn@&rIC_<2V?rZ{6udrpWBMj`YJYzUC@&2hSGoZ!OQ<|sTo^ZF1I8`>` o11i3}^GEQge~rFVzefMjz(i.configurable=!0,i.enumerable=!0,Reflect.decorate&&"object"!=typeof t&&Object.defineProperty(e,t,i),i) +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */;function _(e,t){return(i,s,a)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(t){const{get:e,set:t}="object"==typeof s?i:a??(()=>{const e=Symbol();return{get(){return this[e]},set(t){this[e]=t}}})();return m(i,s,{get(){let i=e.call(this);return void 0===i&&(i=o(this),(null!==i||this.hasUpdated)&&t.call(this,i)),i}})}return m(i,s,{get(){return o(this)}})}}var f="img,\nvideo {\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n object-view-box: inset(var(--frigate-card-media-layout-view-box-top, 0%) var(--frigate-card-media-layout-view-box-right, 0%) var(--frigate-card-media-layout-view-box-bottom, 0%) var(--frigate-card-media-layout-view-box-left, 0%));\n}";customElements.whenDefined("ha-hls-player").then((()=>{let m=class extends(customElements.get("ha-hls-player")){async play(){return this._video?.play()}async pause(){this._video?.pause()}async mute(){this._video&&(this._video.muted=!0)}async unmute(){this._video&&(this._video.muted=!1)}isMuted(){return this._video?.muted??!0}async seek(e){this._video&&(v(this._video),this._video.currentTime=e)}async setControls(e){this._video&&p(this._video,e??this.controls)}isPaused(){return this._video?.paused??!0}async getScreenshotURL(){return this._video?e(this._video):null}render(){if(this._error){if(this._errorIsFatal)return t(this,this._error);i(this._error,console.error)}return s` + + `}_loadedDataHandler(e){super._loadedData(),d(this,e,{player:this,capabilities:{supportsPause:!0,hasAudio:c(this._video)},technology:["hls"]})}static get styles(){return[super.styles,n(f),h` + :host { + width: 100%; + height: 100%; + } + video { + width: 100%; + height: 100%; + } + `]}};l([_("#video")],m.prototype,"_video",void 0),m=l([u("frigate-card-ha-hls-player")],m)}));export{f as c,_ as e}; diff --git a/config/www/community/frigate-hass-card/ha-hls-player-2c0fea5b.js.gz b/config/www/community/frigate-hass-card/ha-hls-player-2c0fea5b.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..506e461be261b2be91174ee460002c67e08fc517 GIT binary patch literal 1244 zcmV<21S9(&iwFoxdR%7$|7c+?Xl!#WaBN|DWpXVtV=!iAVKrhdYI6X!R(o&THW2?m zpMud=Ln0?FhDsGqTQ6R;#W(5YMK|+fsiyb9;B;`bN_1(vZKHuH% z9whIMWaUywy{0813IWc3w^U;~x0K;qOBAM#5=8<7YoShez}0hsg&OOqq}ELT5dU)Rc)h%O8_xPYD^~3X5A|Wyum} zmNdOp36znTKFP-P@aYq0wRiCF;U0R3UUHT}rNI6_7RyGmMWNB7@!>P{ix3MA==Aj1 zD$mbO{)|sOIDSo`(ky2nC+NrXllXCb%t`IM9Au(W8kK1XSYsBYMak~xQT ze~eiIRb9e{e+xN>OeYjFA&G|3C=l}xMiT6&x>Nf3{o%YLCGd3Z!Sr~o_1L=8F&IJ#nsn5f@2>YavE||K2 z%htNIQ93@=ZQDj08&taNJ5vrCu@sVwa2{HN4QwSCMdLJ0*=Q89RCp~8?K1X_^y5b> zND89fEvY#<8jVK!lOJ;|=4edd_P(&4taEBn?TSd0rvWP$_+hCg2$~gInLuuMb zB{v0BC$3Lv7!)KfxQds?2go2wv{8n>qHW=oX~u~%^YvDn&QalxD_bhNE}}J2O_d?b zZ&!YD<%(vOcvaisY$u1l7d|1pu!EGf-a(jxA8?5UP&2H0gSz@!lf$TG>W%&XnOq%i zHrpR}t`)#vW?1ZaUJZRmco- z?#|~Dc3U^h*c{S%Cc#Y7Lg;sIPw%&btrbk{3~BweG_niMF8qG4;5fAA(+TK`77?G%;hD7^v&F zE&OP-RZ_Sy^Y^Zc&K%6u=CEFRVx+&4igK{m+LqZ$aC5h31*sO$#U66w zFfk7lbHBZ^Pp?U~Rl+USW}%hfV$n=40yCn5OLL1UO*C^&fs}4Is7*Uu_>8<1S79FE z;(D;`Nnr{Mtp^f>ZWz_Y1RajY52jm+0_?QEs~PTNcZL2}4zDlUcFMzxt1$S^_eyk$ z%Va5q7WT!01HUr?_78^$m#Kl*VX$?l?2L2cB5KV|0=Modo4Y5ke(i.configurable=!0,i.enumerable=!0,Reflect.decorate&&"object"!=typeof t&&Object.defineProperty(e,t,i),i) +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */;function _(e,t){return(i,s,a)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(t){const{get:e,set:t}="object"==typeof s?i:a??(()=>{const e=Symbol();return{get(){return this[e]},set(t){this[e]=t}}})();return m(i,s,{get(){let i=e.call(this);return void 0===i&&(i=o(this),(null!==i||this.hasUpdated)&&t.call(this,i)),i}})}return m(i,s,{get(){return o(this)}})}}var f="img,\nvideo {\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n object-view-box: inset(var(--frigate-card-media-layout-view-box-top, 0%) var(--frigate-card-media-layout-view-box-right, 0%) var(--frigate-card-media-layout-view-box-bottom, 0%) var(--frigate-card-media-layout-view-box-left, 0%));\n}";customElements.whenDefined("ha-hls-player").then((()=>{let m=class extends(customElements.get("ha-hls-player")){async play(){return this._video?.play()}async pause(){this._video?.pause()}async mute(){this._video&&(this._video.muted=!0)}async unmute(){this._video&&(this._video.muted=!1)}isMuted(){return this._video?.muted??!0}async seek(e){this._video&&(v(this._video),this._video.currentTime=e)}async setControls(e){this._video&&p(this._video,e??this.controls)}isPaused(){return this._video?.paused??!0}async getScreenshotURL(){return this._video?e(this._video):null}render(){if(this._error){if(this._errorIsFatal)return t(this,this._error);i(this._error,console.error)}return s` + + `}_loadedDataHandler(e){super._loadedData(),d(this,e,{player:this,capabilities:{supportsPause:!0,hasAudio:c(this._video)},technology:["hls"]})}static get styles(){return[super.styles,n(f),h` + :host { + width: 100%; + height: 100%; + } + video { + width: 100%; + height: 100%; + } + `]}};l([_("#video")],m.prototype,"_video",void 0),m=l([u("frigate-card-ha-hls-player")],m)}));export{f as c,_ as e}; diff --git a/config/www/community/frigate-hass-card/ha-hls-player-717bfdfd.js.gz b/config/www/community/frigate-hass-card/ha-hls-player-717bfdfd.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..255a99698092ead528ad397b037a34cb2df5eb09 GIT binary patch literal 1243 zcmV<11SI<(iwFpA_*Q2E|7c+?Xl!#WaBN|DWpXVyF*jmnWM*V8YI6X!R(o&THW2?m zpMud=Ln>mEOwOWk(3k7)ps8sk}JC@+5($l_{N-%9K6`1~Gsl@coQi`P|6^2)q7Wl>z zj)QIC-anDf6*i=&Xm4nlce*`BQRyM92_VSlkLLOO`mZ zr0K0npp3-d9cM?!-*;Af2ag}`p~vVsXBkuq?Eh1-Y$RJ08a){w9;07`Sa3k+=ciVA zd2#kT5;pv6$T?&>p^ynlG>k@pn7=cUU_aH(5=4&lX!M&C8BoqDxR7EAQa4=~^Zoyp zG|lTO(@a$8#)ga55_B!AkYR<1S>f8RS)@8W(TRkLf_yE6o+W?RAe&3DixV=0Xf~^A z&ZjI7jTdLNUVxqeR_0f?X}|2WU$&aD37O5p@Ix3#FPm~McoK} z)}@Wo@u_axHrm*r(q-S7a?psSkYt4O&>C!DE5Rrlr)kPYqmZS-YjJ3ov2UdB-&;Xa z5cOtB&B@VdG}0gZm}4M4~(mSh>J&s}-Xl(E4qKkl&X$XL^DR zCXD0UoT~{KyUy_y&PgL`2g1ngl_so;rUUDxP|P0V=Uw#3_#UI9@uTR=4H|DS47*}* z7th801hL8<%IAFb_*jc2Mqd(rW8rH3D{baNYf*ls5r^Ezu`6wZX;v%aPt-yqn4>x_Wvhxb-3AV zf84oN0DqZbvEz9)^c~@0psbc=>gYdM2`NMyFZ$FpffQVQxY}UbTz87|P zK9#WBx?#rVkS;R`W|9^{zj=NBupMlzU}9%T>!+o`+nMOJAf=GI{7dyS(S%36S3g~b z22(b~V>>Gahr}!U@uP0{Q1^M}ve>W)F`5QW77T=mX>1KL{nqcF=iW%(4lpxPn@%!oK#`YWj@2Yan;nXLpjcY9WlY5`qb(oOgwtlKcF77wXy ziFJCpt3P>m;8H&6B)9E@X{}Xl-U!2#!w6GfI)K-HnoJyBiM6wjD&GVX z^FT58+Y9^jnq*rg++uAOS_v)|&EzUDBPzHyx0upIGuISI>4t;aw8NFp$V+h*<`FJ# z2g{xmrohm8AVKJkQC&>X;duOLx}_+*{{rQ+vVMjO F008q8W-I^z literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/ha-hls-player-abb86874.js b/config/www/community/frigate-hass-card/ha-hls-player-abb86874.js new file mode 100644 index 00000000..e6a90422 --- /dev/null +++ b/config/www/community/frigate-hass-card/ha-hls-player-abb86874.js @@ -0,0 +1,34 @@ +import{dm as e,cQ as t,db as i,x as s,dx as a,dy as o,dz as r,dw as d,r as n,eM as h,_ as l,t as u}from"./card-c642ee74.js";import{m as c}from"./audio-cf3a75aa.js";import{h as v,s as p,c as y}from"./media-6eadcd60.js"; +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const m=(e,t,i)=>(i.configurable=!0,i.enumerable=!0,Reflect.decorate&&"object"!=typeof t&&Object.defineProperty(e,t,i),i) +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */;function _(e,t){return(i,s,a)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(t){const{get:e,set:t}="object"==typeof s?i:a??(()=>{const e=Symbol();return{get(){return this[e]},set(t){this[e]=t}}})();return m(i,s,{get(){let i=e.call(this);return void 0===i&&(i=o(this),(null!==i||this.hasUpdated)&&t.call(this,i)),i}})}return m(i,s,{get(){return o(this)}})}}var f="img,\nvideo {\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n object-view-box: inset(var(--frigate-card-media-layout-view-box-top, 0%) var(--frigate-card-media-layout-view-box-right, 0%) var(--frigate-card-media-layout-view-box-bottom, 0%) var(--frigate-card-media-layout-view-box-left, 0%));\n}";customElements.whenDefined("ha-hls-player").then((()=>{let m=class extends(customElements.get("ha-hls-player")){async play(){return this._video?.play()}async pause(){this._video?.pause()}async mute(){this._video&&(this._video.muted=!0)}async unmute(){this._video&&(this._video.muted=!1)}isMuted(){return this._video?.muted??!0}async seek(e){this._video&&(v(this._video),this._video.currentTime=e)}async setControls(e){this._video&&p(this._video,e??this.controls)}isPaused(){return this._video?.paused??!0}async getScreenshotURL(){return this._video?e(this._video):null}render(){if(this._error){if(this._errorIsFatal)return t(this,this._error);i(this._error,console.error)}return s` + + `}_loadedDataHandler(e){super._loadedData(),d(this,e,{player:this,capabilities:{supportsPause:!0,hasAudio:c(this._video)},technology:["hls"]})}static get styles(){return[super.styles,n(f),h` + :host { + width: 100%; + height: 100%; + } + video { + width: 100%; + height: 100%; + } + `]}};l([_("#video")],m.prototype,"_video",void 0),m=l([u("frigate-card-ha-hls-player")],m)}));export{f as c,_ as e}; diff --git a/config/www/community/frigate-hass-card/ha-hls-player-abb86874.js.gz b/config/www/community/frigate-hass-card/ha-hls-player-abb86874.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..edf7b48c96dff2427fd9b1a1c89b63eabdffc63d GIT binary patch literal 1242 zcmV<01SR_)iwFnb2KWh6cXLNj_ec2;`_k00-$$LKX@8B_}F|6{RiBwG|3Jsm%JiGC4c!2z9~9$V%4 z*~y>rsRzezC{&u|4CDm;czzN;i;p>}otJ}5R7#^V4FPM+qVy0eS*hnP1(e{j$@3*=oinWHt-K&tV`vZ_2sgVKnu5SQlZR6w(D#7jW5H zmo`err@C$1Xk&v)mwji-K_iwzk`c~BYp{W>1fyu2rYReZLY4}z#i3oszL9?VWCck< z)cYkhCr6{vNPqTYj>Q~}3EbWnwv%;EEvj7+iSjgHkkz|eqZ98=?OBJ zFphI`t|nmYI>%QyCyl5b2qUvsny@OG4y>0#F?)<(chMu`TZ~?eA4Ly0XuQEN?25rn zJQueU#439zU-Q-DV=a~#JtX?Z!qxgW+RTO4qWnf94!MtGSK0>CtX9U!PaI0qMk=`} zpgM7VO2eQaaluu*G(JEEQKF49^c8IjuS_#el$o!$+H{TzcU;+0*>w@EiE640S$@0n zlPgy=v&5^~4re<#^u6#I;e{Qfto07U6#RfoEP$F})f?2+LrtDUEmLpp|1ad~aI@L| zxO1%l{xZX2$Mb6FJHo?2SuM@f(SNWKQiwKQ^s#9IDY&}hY&rCWVK#GY*1>JQXLfhK zl(5^nVaDc=&NB&Sk`_Y0e|LJn9c-;&VrNL}r=`K$ndr12rI5S)8}&2Mgh#zsKV60f zQ#Qn7J1Yf;#4G#pqptT*_j%>A*susOng&i541|ekYz;E~-tV91-b>yNFf&q{PBrz` zqbz@B_#vn(h7RGFEg#liv5K3P*#xtqH%_z#?T@L)_52X@nhQdKmY|6l%fvukzir`1 zqpgy{jhVl9U3BJPt~Q7D(i0>7l~k02z1FtOR)U+mJu67HfG#fSCj1cAZJ1Sy`_#6? zI=$T0AH6zoDIax`>-OHX)~Ysdgkj2IgsCqbz-vEECXUU>lFS)5GaS^!+Sx~yZ-R+= zpqTsZ2mADzWLqWNVr>>$2`(1R(i.configurable=!0,i.enumerable=!0,Reflect.decorate&&"object"!=typeof t&&Object.defineProperty(e,t,i),i) +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */;function _(e,t){return(i,s,a)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(t){const{get:e,set:t}="object"==typeof s?i:a??(()=>{const e=Symbol();return{get(){return this[e]},set(t){this[e]=t}}})();return m(i,s,{get(){let i=e.call(this);return void 0===i&&(i=o(this),(null!==i||this.hasUpdated)&&t.call(this,i)),i}})}return m(i,s,{get(){return o(this)}})}}var f="img,\nvideo {\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n object-view-box: inset(var(--frigate-card-media-layout-view-box-top, 0%) var(--frigate-card-media-layout-view-box-right, 0%) var(--frigate-card-media-layout-view-box-bottom, 0%) var(--frigate-card-media-layout-view-box-left, 0%));\n}";customElements.whenDefined("ha-hls-player").then((()=>{let m=class extends(customElements.get("ha-hls-player")){async play(){return this._video?.play()}async pause(){this._video?.pause()}async mute(){this._video&&(this._video.muted=!0)}async unmute(){this._video&&(this._video.muted=!1)}isMuted(){return this._video?.muted??!0}async seek(e){this._video&&(v(this._video),this._video.currentTime=e)}async setControls(e){this._video&&p(this._video,e??this.controls)}isPaused(){return this._video?.paused??!0}async getScreenshotURL(){return this._video?e(this._video):null}render(){if(this._error){if(this._errorIsFatal)return t(this,this._error);i(this._error,console.error)}return s` + + `}_loadedDataHandler(e){super._loadedData(),d(this,e,{player:this,capabilities:{supportsPause:!0,hasAudio:c(this._video)},technology:["hls"]})}static get styles(){return[super.styles,n(f),h` + :host { + width: 100%; + height: 100%; + } + video { + width: 100%; + height: 100%; + } + `]}};l([_("#video")],m.prototype,"_video",void 0),m=l([u("frigate-card-ha-hls-player")],m)}));export{f as c,_ as e}; diff --git a/config/www/community/frigate-hass-card/ha-hls-player-ad38a2a0.js.gz b/config/www/community/frigate-hass-card/ha-hls-player-ad38a2a0.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..82362e373c75e5219f1d243412d2f8d7e61da399 GIT binary patch literal 1244 zcmV<21S9(&iwFqOQ&?vL|7c+?Xl!#WaBN|DWpXWHWHUHnGGQ<-YI6X!R&8(FHW2=v zU%_abAr+M3v<*7gRopGvOMw*2niUw31_>>lB6gJMk(3k9)qmfSlw8?O(H7VY!{@tu z?uF#tk-S<+W!8B`m?l88-z_yXpIgf5y(OCFjxw6BER{6>$5KV}J4Qv9|w%4&21cVm&flRV*iX%B0kR-wH2Ten5LECQ&Xrt%GOI2O ze*eEEO^c?^43{;zw&9|+0@J8E(WN)_|&v*8*OYz<+ATg1sK9pNHQiwXbm>7rQ|sor)kPZqmZZ4YiVegv5(UC z@2wyynSQg#@#OMoG%_Fj;IZJ*VBq$lu$`=PYEkWyDN>{XuWsqvddYK;Wc{`##P3U7 za5Eu@3FElHbH#wM>l|OGB%ttd>`L2Unl&1o{3M{l zHqyym3H7P#(>x4H7MDWD3-kdhh!TU!&{woAyeiEE(>P!64R($WcU;+0*>w@EnO@Zy zvHW)BC)ciMW{Fp|9nN-g=zHMYtfmBI>>R z=`u8!@*$quSt$i1UfGWyeX~cp&vTc>h9!jOY2akRK$u`-8&K)De*Zl8Mu~QSnXv{t z73-}>S^gaPA*d^c4&j(BAJ$&;T42j;f?3f^C)$Gc$JFC`eh7LYB+DVMz%U%k456;y zw(z6TR!Pwn&fkw+bmo9po5OnPDN283buPeOYg=YZDe!L3N><-O7ngMtehBL}%&O%> zYFlERUhV3SpC7oCk2}dt`(RpY-QXKxm~t4=+?Ni}wVx&v$7XE7=3L+m2R*TN_EF`V zV1f@6yx)GXPp?U~Rl+SbxX@Y(dApii1~{UEE4;{Iv1YiB-4*&@IlQ@Q+o=dIufyOQ-z(7- zt&)Y3M%ot(4gAgo)IS^|TBQhY!eHx8*%{~PB5Ls_fqVCqE!>mWzmuVz?)?i(i.configurable=!0,i.enumerable=!0,Reflect.decorate&&"object"!=typeof e&&Object.defineProperty(t,e,i),i) +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */;function f(t,e){return(i,s,a)=>{const o=e=>e.renderRoot?.querySelector(t)??null;if(e){const{get:t,set:e}="object"==typeof s?i:a??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return _(i,s,{get(){let i=t.call(this);return void 0===i&&(i=o(this),(null!==i||this.hasUpdated)&&e.call(this,i)),i}})}return _(i,s,{get(){return o(this)}})}}var g="img,\nvideo {\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n object-view-box: inset(var(--frigate-card-media-layout-view-box-top, 0%) var(--frigate-card-media-layout-view-box-right, 0%) var(--frigate-card-media-layout-view-box-bottom, 0%) var(--frigate-card-media-layout-view-box-left, 0%));\n}";customElements.whenDefined("ha-hls-player").then((()=>{let _=class extends(customElements.get("ha-hls-player")){async play(){return this._video?.play()}async pause(){this._video?.pause()}async mute(){this._video&&(this._video.muted=!0)}async unmute(){this._video&&(this._video.muted=!1)}isMuted(){return this._video?.muted??!0}async seek(t){this._video&&(c(this._video),this._video.currentTime=t)}async setControls(t){this._video&&v(this._video,t??this.controls)}isPaused(){return this._video?.paused??!0}async getScreenshotURL(){return this._video?t(this._video):null}render(){if(this._error){if(this._errorIsFatal)return p(this),e({type:"error",message:this._error,context:{entity_id:this.entityid}});i(this._error,console.error)}return s` + + `}_loadedDataHandler(t){super._loadedData(),d(this,t,{player:this,capabilities:{supportsPause:!0,hasAudio:m(this._video)},technology:["hls"]})}static get styles(){return[super.styles,n(g),h` + :host { + width: 100%; + height: 100%; + } + video { + width: 100%; + height: 100%; + } + `]}};l([f("#video")],_.prototype,"_video",void 0),_=l([u("frigate-card-ha-hls-player")],_)}));export{g as c,f as e}; diff --git a/config/www/community/frigate-hass-card/ha-hls-player-b195eaa1.js.gz b/config/www/community/frigate-hass-card/ha-hls-player-b195eaa1.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..3eba34aaf571bc39759710b5d5373a8347b515a1 GIT binary patch literal 1290 zcmV+l1@-zLiwFoEf?;O@|7c+?Xl!#WaBN|DWpXWIF*!A5VPP>YYI6X!R&8(FHW2=v zU%_arAqAA;zHf3BcT4utA;W@Z0S2UjLyISi9W8n!<;HOJ-**&cS9Vjh1vbMleaGjX z%Fbih$GL~Wq zF=(xHoIiW={q)Iq!#>q~W58-IRGb%&+4HB2wUC43qoV_IL|#gfLuJ7IKUIsB7PHcl zN5hBD$uCOHB#`s-Q#W~earRey?!oaZ4wV&!0G*N_FVEt~@u_5W%W|Bn%2+bVLQ8>) zC_4#7g1SP?YR#q+vcn-22~_nQw(@HzB;+>XkSonB3+w9$B6)l!Z`5h6=#wVr`ZEj9QHO|}U;+k|b#B4y)o7=CbLv&+?ds$>|A z{5l*(xLFjjr7+j_rg4?kEF>D5D&yu>RFt^gRYw&h85!_FEQE==#BN6Ud z7$qU`E7`Ozb9+F#&xU*L z`=Bn7Iz%h%a5#G-Dv9N`b>>vBTGbA8bHp3mM(%@NO2s(vIar1*oguWX)gAm`u#=8- zg}wV@iq70-Cm!pyXQ=&^Ra}C*5_im&O5(d9FIhE%&M)h3hd!*^FgLC4n|A5h&FlU7 zlNZPBl21C#ZFBFk)~3eyMSsa*M7h7zEM5Cf)Fu+m*@8`l#QqN^b$0Ic2-kZEx5rO&{$?gTTsN^IlwoJ*x;qbv|XQBjmQ+zzr-^cFy{jUgbZ<=N#!|NgpzVWpZ-Ox$0(8?-T z#5C|b6Hx!?i0C9kcpU~i_tD-}fD}=Kw-DU5Z{C@IJ{Rr7y%`<+3!C>{q0$Qg05wL2 A(i.configurable=!0,i.enumerable=!0,Reflect.decorate&&"object"!=typeof t&&Object.defineProperty(e,t,i),i) +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */;function _(e,t){return(i,s,a)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(t){const{get:e,set:t}="object"==typeof s?i:a??(()=>{const e=Symbol();return{get(){return this[e]},set(t){this[e]=t}}})();return m(i,s,{get(){let i=e.call(this);return void 0===i&&(i=o(this),(null!==i||this.hasUpdated)&&t.call(this,i)),i}})}return m(i,s,{get(){return o(this)}})}}var f="img,\nvideo {\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n object-view-box: inset(var(--frigate-card-media-layout-view-box-top, 0%) var(--frigate-card-media-layout-view-box-right, 0%) var(--frigate-card-media-layout-view-box-bottom, 0%) var(--frigate-card-media-layout-view-box-left, 0%));\n}";customElements.whenDefined("ha-hls-player").then((()=>{let m=class extends(customElements.get("ha-hls-player")){async play(){return this._video?.play()}async pause(){this._video?.pause()}async mute(){this._video&&(this._video.muted=!0)}async unmute(){this._video&&(this._video.muted=!1)}isMuted(){return this._video?.muted??!0}async seek(e){this._video&&(v(this._video),this._video.currentTime=e)}async setControls(e){this._video&&p(this._video,e??this.controls)}isPaused(){return this._video?.paused??!0}async getScreenshotURL(){return this._video?e(this._video):null}render(){if(this._error){if(this._errorIsFatal)return t(this,this._error);i(this._error,console.error)}return s` + + `}_loadedDataHandler(e){super._loadedData(),d(this,e,{player:this,capabilities:{supportsPause:!0,hasAudio:c(this._video)},technology:["hls"]})}static get styles(){return[super.styles,n(f),h` + :host { + width: 100%; + height: 100%; + } + video { + width: 100%; + height: 100%; + } + `]}};l([_("#video")],m.prototype,"_video",void 0),m=l([u("frigate-card-ha-hls-player")],m)}));export{f as c,_ as e}; diff --git a/config/www/community/frigate-hass-card/ha-hls-player-ba5834a9.js.gz b/config/www/community/frigate-hass-card/ha-hls-player-ba5834a9.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..735e1c35e673f5cb20fe42d49e64ab2cea18d4d9 GIT binary patch literal 1243 zcmV<11SI<(iwFo?dR%7$|7c+?Xl!#WaBN|DWpXWIVKq22G+{X|YI6X!R&8(FHW2=v zU%_arAr+M3tSO4wRopGvOMw*2niUw31_>>lB6gJMk(3k9)qmfSlw8?O(H7VY!{@tu z?uF#tk-S<+W!8B`m?l88-z_yXpIgf5y(OCFjxw6BER{6>$5KV}J4z09vr{Sp*FnWpeE$Ui_`c?d?Hxmyc}e*)`nDR2-Hv>rN<#pP*(8UMzOho zbbm~F0(DcthJOu(fXpO0WKuB$qfsE|?@$u#r)ISPSr9WC{pLgnDtHa&N-jW|RTl=o z|KF0PMN?;n%bHxH_TIqzWOL z&FV&oDKA3w;;h!UU?xB{{+c%Jm!0;@)-yg~vsoB^2m|TGs+vm?MpK`MbrJSS5mRz~ z30JLkX`^&}YTCAqHa4Vk*>|P_4B;sx851J31{>H?@|=v*H07gF$W!UHG_=duN9p_b zR*;lTzggsXa(OfwnGb&OSny~taQjf$PS!cKsCLN|Dbj#fxAbkjR0q z>Ey12`qcGl9tI_gOQGWh`T!L~i9u!PE7}%bm1crzoUiu=J4c5*u5797x`@_Huj-6g ze!KFMYgaV0#H-p4XFECcz3>6yg&m}7%nkwze!wLbkmIoG4VwB(O%9`$>sR*wCvtVT z*=&E@xz+%G;jq~8yd3(D=rB;$D4aUx4_-kE(Z-88!6r~r=#QK&hQ27wW{%A|xXt(6 z?#`zYc3U^h7!T-e~$bR)D=UAaLkquYp;1Nuw^#Etmvf^Z9)5E>Tx|k1icUv9};;5hT&Ld2zC9o zg&&Q!N{X&<{(kJDGY7od9M(%uQTi*Za{=~R+cH~9fp>dWvicUfxU8G-Ls++ARxKY= z+Y;;aYFB^!{J^Dr+(~ZQ2h&>X2Hyz7l*5STzI1@D{WO_4He(Am=K^Oq=!vznk1F2; z6MUfH{q}=>dQGye5^kx%h1OEY+tuVUz!4Q(;Vq^OGu$-=(Pkw;Z`$F~XXK@{4vUDE zH-lwQN-Qw49!Lne{this.updateValue(),this._host.requestUpdate()}))}hasTimer(){return this._timer.isRunning()}hostConnected(){this.updateValue(),this.startTimer(),this._host.requestUpdate()}hostDisconnected(){this.clearValue(),this.stopTimer()}}var k="data:image/jpeg;base64,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";let U=class extends l{constructor(){super(...arguments),this._refImage=I(),this._boundVisibilityHandler=this._visibilityHandler.bind(this),this._mediaLoadedInfo=null}async play(){this._cachedValueController?.startTimer()}async pause(){this._cachedValueController?.stopTimer()}async mute(){}async unmute(){}isMuted(){return!0}async seek(A){}async setControls(A){}isPaused(){return!this._cachedValueController?.hasTimer()}async getScreenshotURL(){return this._cachedValueController?.value??null}_getCameraEntity(){return(this.cameraConfig?.camera_entity||this.cameraConfig?.webrtc_card?.entity)??null}shouldUpdate(A){if(!this.hass||"visible"!==document.visibilityState)return!1;const e=this._getRelevantEntityForMode(this._resolveMode(this.imageConfig?.mode));return!A.has("hass")||1!=A.size||!e||(n(this.hass,A.get("hass"),[e])?(this._cachedValueController?.clearValue(),!0):!this.hasUpdated)}willUpdate(A){A.has("imageConfig")&&(this._cachedValueController&&this._cachedValueController.removeController(),this.imageConfig&&(this._cachedValueController=new p(this,this.imageConfig.refresh_seconds,this._getImageSource.bind(this),(()=>E(this)),(()=>u(this)))));const e=this._getRelevantEntityForMode(this._resolveMode(this.imageConfig?.mode));(A.has("cameraConfig")||A.has("view")||e&&!this._getAcceptableState(e))&&this._cachedValueController?.clearValue(),this._cachedValueController?.value||this._cachedValueController?.updateValue()}_getAcceptableState(A){const e=(A?this.hass?.states[A]:null)??null;return this.hass&&this.hass.connected&&e&&Date.now()-Date.parse(e.last_updated)<3e5?e:null}connectedCallback(){super.connectedCallback(),document.addEventListener("visibilitychange",this._boundVisibilityHandler),this._cachedValueController?.startTimer()}disconnectedCallback(){this._cachedValueController?.stopTimer(),document.removeEventListener("visibilitychange",this._boundVisibilityHandler),super.disconnectedCallback()}_visibilityHandler(){this._refImage.value&&("hidden"===document.visibilityState?(this._cachedValueController?.stopTimer(),this._cachedValueController?.clearValue(),this._forceSafeImage()):(this._cachedValueController?.startTimer(),this.requestUpdate()))}_buildImageURL(A){return A.searchParams.append("_t",String(Date.now())),A.toString()}_addQueryParametersToURL(A,e){if(e){const t=new URLSearchParams(e);for(const[e,i]of t.entries())A.searchParams.append(e,i)}return A}_getRelevantEntityForMode(A){return"camera"===A?this._getCameraEntity():"entity"===A?this.imageConfig?.entity??null:null}_resolveMode(A){if(!A)return"screensaver";if("auto"!==A)return A;const e=this._getCameraEntity();return this.imageConfig?.entity?"entity":this.imageConfig?.url?"url":e?"camera":"screensaver"}_getImageSource(){const A=this._resolveMode(this.imageConfig?.mode);if(this.hass&&"camera"===A){const A=this._getAcceptableState(this._getCameraEntity());if(A?.attributes.entity_picture){const e=new URL(A.attributes.entity_picture,document.baseURI);return this._addQueryParametersToURL(e,this.imageConfig?.entity_parameters),this._buildImageURL(e)}}if(this.hass&&"entity"===A&&this.imageConfig?.entity){const A=this._getAcceptableState(this.imageConfig?.entity);if(A?.attributes.entity_picture){const e=new URL(A.attributes.entity_picture,document.baseURI);return this._addQueryParametersToURL(e,this.imageConfig?.entity_parameters),this._buildImageURL(e)}}return"url"===A&&this.imageConfig?.url?this._buildImageURL(new URL(this.imageConfig.url,document.baseURI)):k}_forceSafeImage(A){this._refImage.value&&(this._refImage.value.src=!A&&this.imageConfig?.url?this.imageConfig.url:k)}render(){const A=this._cachedValueController?.value;return A?m` + {const e=Q(A,{player:this,capabilities:{supportsPause:!!this.imageConfig?.refresh_seconds}});e&&!M(this._mediaLoadedInfo,e)&&(this._mediaLoadedInfo=e,B(this,e))}} + @error=${()=>{const A=this._resolveMode(this.imageConfig?.mode);"camera"===A||"entity"===A?this._forceSafeImage(!0):"url"===A&&d(this,b("error.image_load_error"),{context:this.imageConfig})}} + /> + `:m``}static get styles(){return L(':host {\n background-color: var(--primary-background-color);\n background-position: center;\n background-repeat: no-repeat;\n background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4yLjIgKGIwYTg0ODY1NDEsIDIwMjItMTItMDEpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJjYW1lcmEtaXJpcy5zdmciCiAgIGlkPSJzdmc0IgogICB2ZXJzaW9uPSIxLjEiCiAgIHZpZXdCb3g9IjAgMCAyNCAyNCIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzOCIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzYiCiAgICAgcGFnZWNvbG9yPSIjYjkzZTNlIgogICAgIGJvcmRlcmNvbG9yPSIjMDAwMDAwIgogICAgIGJvcmRlcm9wYWNpdHk9IjAuMjUiCiAgICAgaW5rc2NhcGU6c2hvd3BhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuNjA3ODQzMTQiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6ZGVza2NvbG9yPSIjZDFkMWQxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp6b29tPSIyNi42MjUwNiIKICAgICBpbmtzY2FwZTpjeD0iLTEuOTM0MjY4IgogICAgIGlua3NjYXBlOmN5PSIxNS42ODA3MTYiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIzODQwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjE1MjciCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjEwODAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjIyNyIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzQiIC8+CiAgPGcKICAgICBpZD0iZzExMTkiCiAgICAgc3R5bGU9ImZpbGwtb3BhY2l0eTowLjA1O2ZpbGw6I2ZmZmZmZiI+CiAgICA8Y2lyY2xlCiAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eTowLjA1O3N0cm9rZS13aWR0aDoxLjM5NzI5IgogICAgICAgaWQ9InBhdGgxNzAiCiAgICAgICBjeD0iMTIiCiAgICAgICBjeT0iMTIiCiAgICAgICBpbmtzY2FwZTpsYWJlbD0iV2hpdGUgQmFja2dyb3VuZCIKICAgICAgIHI9IjExLjI1IiAvPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gMTMuNzMwMDAxLDE1IDkuODMwMDAwMywyMS43NiBDIDEwLjUzLDIxLjkxIDExLjI1LDIyIDEyLDIyIGMgMi40MDAwMDEsMCA0LjYsLTAuODUgNi4zMiwtMi4yNSBMIDE0LjY2MDAwMSwxMy40IE0gMi40NjAwMDAzLDE1IGMgMC45MiwyLjkyIDMuMTUsNS4yNiA1Ljk5LDYuMzQgTCAxMi4xMiwxNSBtIC0zLjU3OTk5OTcsLTMgLTMuOSwtNi43NDk5OTk2IGMgLTEuNjQsMS43NDk5OTkgLTIuNjQsNC4xMzk5OTkzIC0yLjY0LDYuNzQ5OTk5NiAwLDAuNjggMC4wNywxLjM1IDAuMiwyIGggNy40OSBNIDIxLjgsOS45OTk5OTk3IEggMTQuMzEwMDAxIEwgMTQuNjAwMDAxLDEwLjUgMTkuMzYsMTguNzUgQyAyMSwxNi45NyAyMiwxNC42IDIyLDEyIDIyLDExLjMxIDIxLjkzLDEwLjY0IDIxLjgsOS45OTk5OTk3IG0gLTAuMjYsLTEgQyAyMC42Miw2LjA3MDAwMDUgMTguMzksMy43NDAwMDAyIDE1LjU1MDAwMSwyLjY2MDAwMDIgTCAxMS44OCw4Ljk5OTk5OTcgTSA5LjQwMDAwMDMsMTAuNSAxNC4xNzAwMDEsMi4yNDAwMDAyIGMgLTAuNywtMC4xNSAtMS40MjAwMDEsLTAuMjQgLTIuMTcwMDAxLC0wLjI0IC0yLjM5OTk5OTcsMCAtNC41OTk5OTk3LDAuODQgLTYuMzE5OTk5NywyLjI1MDAwMDMgbCAzLjY2LDYuMzQ5OTk5NSB6IgogICAgICAgaWQ9InBhdGgyIgogICAgICAgaW5rc2NhcGU6bGFiZWw9IklyaXMiCiAgICAgICBzdHlsZT0iZmlsbC1vcGFjaXR5OjAuMDU7ZmlsbDojZmZmZmZmIiAvPgogIDwvZz4KPC9zdmc+Cg==");\n background-size: 10%;\n background-position: center;\n}\n\nimg {\n width: 100%;\n height: 100%;\n display: block;\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n object-view-box: inset(var(--frigate-card-media-layout-view-box-top, 0%) var(--frigate-card-media-layout-view-box-right, 0%) var(--frigate-card-media-layout-view-box-bottom, 0%) var(--frigate-card-media-layout-view-box-left, 0%));\n}')}};c([s({attribute:!1})],U.prototype,"hass",void 0),c([s({attribute:!1})],U.prototype,"view",void 0),c([s({attribute:!1})],U.prototype,"cameraConfig",void 0),c([s({attribute:!1})],U.prototype,"cameraManager",void 0),c([s({attribute:!1,hasChanged:h})],U.prototype,"imageConfig",void 0),U=c([C("frigate-card-image")],U);export{U as FrigateCardImage}; diff --git a/config/www/community/frigate-hass-card/image-1c1ebdfa.js.gz b/config/www/community/frigate-hass-card/image-1c1ebdfa.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..43d473030a4c3052d0130798598c812420aecb4c GIT binary patch literal 22203 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 O_J06{i*2cZg8%>lssaQ6 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/image-1e2a0a79.js b/config/www/community/frigate-hass-card/image-1e2a0a79.js new file mode 100644 index 00000000..4923fbd0 --- /dev/null +++ b/config/www/community/frigate-hass-card/image-1e2a0a79.js @@ -0,0 +1,13 @@ +import{cL as A,cM as e,eQ as t,eR as i,dC as a,cN as r,cO as g,dD as o,_ as c,n as s,cW as h,t as C,a as l,cR as I,eS as n,dy as E,dz as u,x as m,cV as w,eT as Q,i as M,cP as B,cQ as d,l as b,r as L}from"./card-45855f1f.js"; +/** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const D=A(class extends e{constructor(A){if(super(A),A.type!==t.PROPERTY&&A.type!==t.ATTRIBUTE&&A.type!==t.BOOLEAN_ATTRIBUTE)throw Error("The `live` directive is not allowed on child or event bindings");if(!i(A))throw Error("`live` bindings can only contain a single expression")}render(A){return A}update(A,[e]){if(e===a||e===r)return e;const i=A.element,o=A.name;if(A.type===t.PROPERTY){if(e===i[o])return a}else if(A.type===t.BOOLEAN_ATTRIBUTE){if(!!e===i.hasAttribute(o))return a}else if(A.type===t.ATTRIBUTE&&i.getAttribute(o)===e+"")return a;return g(A),e}});class p{constructor(A,e,t,i,a){this._timer=new o,this._timerSeconds=e,this._callback=t,this._timerStartCallback=i,this._timerStopCallback=a,(this._host=A).addController(this)}removeController(){this.stopTimer(),this._host.removeController(this)}get value(){return this._value}updateValue(){this._value=this._callback()}clearValue(){this._value=void 0}stopTimer(){this._timer.isRunning()&&(this._timer.stop(),this._timerStopCallback?.())}startTimer(){this.stopTimer(),this._timerStartCallback?.(),this._timer.startRepeated(this._timerSeconds,(()=>{this.updateValue(),this._host.requestUpdate()}))}hasTimer(){return this._timer.isRunning()}hostConnected(){this.updateValue(),this.startTimer(),this._host.requestUpdate()}hostDisconnected(){this.clearValue(),this.stopTimer()}}var k="data:image/jpeg;base64,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";let U=class extends l{constructor(){super(...arguments),this._refImage=I(),this._boundVisibilityHandler=this._visibilityHandler.bind(this),this._mediaLoadedInfo=null}async play(){this._cachedValueController?.startTimer()}async pause(){this._cachedValueController?.stopTimer()}async mute(){}async unmute(){}isMuted(){return!0}async seek(A){}async setControls(A){}isPaused(){return!this._cachedValueController?.hasTimer()}async getScreenshotURL(){return this._cachedValueController?.value??null}_getCameraEntity(){return(this.cameraConfig?.camera_entity||this.cameraConfig?.webrtc_card?.entity)??null}shouldUpdate(A){if(!this.hass||"visible"!==document.visibilityState)return!1;const e=this._getRelevantEntityForMode(this._resolveMode(this.imageConfig?.mode));return!A.has("hass")||1!=A.size||!e||(n(this.hass,A.get("hass"),[e])?(this._cachedValueController?.clearValue(),!0):!this.hasUpdated)}willUpdate(A){A.has("imageConfig")&&(this._cachedValueController&&this._cachedValueController.removeController(),this.imageConfig&&(this._cachedValueController=new p(this,this.imageConfig.refresh_seconds,this._getImageSource.bind(this),(()=>E(this)),(()=>u(this)))));const e=this._getRelevantEntityForMode(this._resolveMode(this.imageConfig?.mode));(A.has("cameraConfig")||A.has("view")||e&&!this._getAcceptableState(e))&&this._cachedValueController?.clearValue(),this._cachedValueController?.value||this._cachedValueController?.updateValue()}_getAcceptableState(A){const e=(A?this.hass?.states[A]:null)??null;return this.hass&&this.hass.connected&&e&&Date.now()-Date.parse(e.last_updated)<3e5?e:null}connectedCallback(){super.connectedCallback(),document.addEventListener("visibilitychange",this._boundVisibilityHandler),this._cachedValueController?.startTimer()}disconnectedCallback(){this._cachedValueController?.stopTimer(),document.removeEventListener("visibilitychange",this._boundVisibilityHandler),super.disconnectedCallback()}_visibilityHandler(){this._refImage.value&&("hidden"===document.visibilityState?(this._cachedValueController?.stopTimer(),this._cachedValueController?.clearValue(),this._forceSafeImage()):(this._cachedValueController?.startTimer(),this.requestUpdate()))}_buildImageURL(A){return A.searchParams.append("_t",String(Date.now())),A.toString()}_addQueryParametersToURL(A,e){if(e){const t=new URLSearchParams(e);for(const[e,i]of t.entries())A.searchParams.append(e,i)}return A}_getRelevantEntityForMode(A){return"camera"===A?this._getCameraEntity():"entity"===A?this.imageConfig?.entity??null:null}_resolveMode(A){if(!A)return"screensaver";if("auto"!==A)return A;const e=this._getCameraEntity();return this.imageConfig?.entity?"entity":this.imageConfig?.url?"url":e?"camera":"screensaver"}_getImageSource(){const A=this._resolveMode(this.imageConfig?.mode);if(this.hass&&"camera"===A){const A=this._getAcceptableState(this._getCameraEntity());if(A?.attributes.entity_picture){const e=new URL(A.attributes.entity_picture,document.baseURI);return this._addQueryParametersToURL(e,this.imageConfig?.entity_parameters),this._buildImageURL(e)}}if(this.hass&&"entity"===A&&this.imageConfig?.entity){const A=this._getAcceptableState(this.imageConfig?.entity);if(A?.attributes.entity_picture){const e=new URL(A.attributes.entity_picture,document.baseURI);return this._addQueryParametersToURL(e,this.imageConfig?.entity_parameters),this._buildImageURL(e)}}return"url"===A&&this.imageConfig?.url?this._buildImageURL(new URL(this.imageConfig.url,document.baseURI)):k}_forceSafeImage(A){this._refImage.value&&(this._refImage.value.src=!A&&this.imageConfig?.url?this.imageConfig.url:k)}render(){const A=this._cachedValueController?.value;return A?m` + {const e=Q(A,{player:this,capabilities:{supportsPause:!!this.imageConfig?.refresh_seconds}});e&&!M(this._mediaLoadedInfo,e)&&(this._mediaLoadedInfo=e,B(this,e))}} + @error=${()=>{const A=this._resolveMode(this.imageConfig?.mode);"camera"===A||"entity"===A?this._forceSafeImage(!0):"url"===A&&d(this,b("error.image_load_error"),{context:this.imageConfig})}} + /> + `:m``}static get styles(){return L(':host {\n background-color: var(--primary-background-color);\n background-position: center;\n background-repeat: no-repeat;\n background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4yLjIgKGIwYTg0ODY1NDEsIDIwMjItMTItMDEpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJjYW1lcmEtaXJpcy5zdmciCiAgIGlkPSJzdmc0IgogICB2ZXJzaW9uPSIxLjEiCiAgIHZpZXdCb3g9IjAgMCAyNCAyNCIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzOCIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzYiCiAgICAgcGFnZWNvbG9yPSIjYjkzZTNlIgogICAgIGJvcmRlcmNvbG9yPSIjMDAwMDAwIgogICAgIGJvcmRlcm9wYWNpdHk9IjAuMjUiCiAgICAgaW5rc2NhcGU6c2hvd3BhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuNjA3ODQzMTQiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6ZGVza2NvbG9yPSIjZDFkMWQxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp6b29tPSIyNi42MjUwNiIKICAgICBpbmtzY2FwZTpjeD0iLTEuOTM0MjY4IgogICAgIGlua3NjYXBlOmN5PSIxNS42ODA3MTYiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIzODQwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjE1MjciCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjEwODAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjIyNyIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzQiIC8+CiAgPGcKICAgICBpZD0iZzExMTkiCiAgICAgc3R5bGU9ImZpbGwtb3BhY2l0eTowLjA1O2ZpbGw6I2ZmZmZmZiI+CiAgICA8Y2lyY2xlCiAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eTowLjA1O3N0cm9rZS13aWR0aDoxLjM5NzI5IgogICAgICAgaWQ9InBhdGgxNzAiCiAgICAgICBjeD0iMTIiCiAgICAgICBjeT0iMTIiCiAgICAgICBpbmtzY2FwZTpsYWJlbD0iV2hpdGUgQmFja2dyb3VuZCIKICAgICAgIHI9IjExLjI1IiAvPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gMTMuNzMwMDAxLDE1IDkuODMwMDAwMywyMS43NiBDIDEwLjUzLDIxLjkxIDExLjI1LDIyIDEyLDIyIGMgMi40MDAwMDEsMCA0LjYsLTAuODUgNi4zMiwtMi4yNSBMIDE0LjY2MDAwMSwxMy40IE0gMi40NjAwMDAzLDE1IGMgMC45MiwyLjkyIDMuMTUsNS4yNiA1Ljk5LDYuMzQgTCAxMi4xMiwxNSBtIC0zLjU3OTk5OTcsLTMgLTMuOSwtNi43NDk5OTk2IGMgLTEuNjQsMS43NDk5OTkgLTIuNjQsNC4xMzk5OTkzIC0yLjY0LDYuNzQ5OTk5NiAwLDAuNjggMC4wNywxLjM1IDAuMiwyIGggNy40OSBNIDIxLjgsOS45OTk5OTk3IEggMTQuMzEwMDAxIEwgMTQuNjAwMDAxLDEwLjUgMTkuMzYsMTguNzUgQyAyMSwxNi45NyAyMiwxNC42IDIyLDEyIDIyLDExLjMxIDIxLjkzLDEwLjY0IDIxLjgsOS45OTk5OTk3IG0gLTAuMjYsLTEgQyAyMC42Miw2LjA3MDAwMDUgMTguMzksMy43NDAwMDAyIDE1LjU1MDAwMSwyLjY2MDAwMDIgTCAxMS44OCw4Ljk5OTk5OTcgTSA5LjQwMDAwMDMsMTAuNSAxNC4xNzAwMDEsMi4yNDAwMDAyIGMgLTAuNywtMC4xNSAtMS40MjAwMDEsLTAuMjQgLTIuMTcwMDAxLC0wLjI0IC0yLjM5OTk5OTcsMCAtNC41OTk5OTk3LDAuODQgLTYuMzE5OTk5NywyLjI1MDAwMDMgbCAzLjY2LDYuMzQ5OTk5NSB6IgogICAgICAgaWQ9InBhdGgyIgogICAgICAgaW5rc2NhcGU6bGFiZWw9IklyaXMiCiAgICAgICBzdHlsZT0iZmlsbC1vcGFjaXR5OjAuMDU7ZmlsbDojZmZmZmZmIiAvPgogIDwvZz4KPC9zdmc+Cg==");\n background-size: 10%;\n background-position: center;\n}\n\nimg {\n width: 100%;\n height: 100%;\n display: block;\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n object-view-box: inset(var(--frigate-card-media-layout-view-box-top, 0%) var(--frigate-card-media-layout-view-box-right, 0%) var(--frigate-card-media-layout-view-box-bottom, 0%) var(--frigate-card-media-layout-view-box-left, 0%));\n}')}};c([s({attribute:!1})],U.prototype,"hass",void 0),c([s({attribute:!1})],U.prototype,"view",void 0),c([s({attribute:!1})],U.prototype,"cameraConfig",void 0),c([s({attribute:!1})],U.prototype,"cameraManager",void 0),c([s({attribute:!1,hasChanged:h})],U.prototype,"imageConfig",void 0),U=c([C("frigate-card-image")],U);export{U as FrigateCardImage}; diff --git a/config/www/community/frigate-hass-card/image-1e2a0a79.js.gz b/config/www/community/frigate-hass-card/image-1e2a0a79.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..36073fa2f50760a610728a7a60a34ee75d92eaf5 GIT binary patch literal 22202 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ⅇ<&)rs%84@*`RvDgN;Nji=_E$_|e&)*2HEgd+?meYJVoE z$*g|_{>apKB@_Voo|`uxlF#49Sp27{;77~v>&p4~@{dXUhKvu%(>TCy75zum%%kM- zPuV~J?Zwm2e??jF?DEBnfB&ufhSE2mzuGWS{O`X}fYGnl|0e}~Ah?5n{O>0lkwN_a zZR!NQ>K0qxI#y}jQXdG*AEpvy8kBkOwLZLj`MnUnsa&UNe^U`CzW!nV33A1goWE^N zy|=`@ItF#(=Wi(YrrC^u^xLSoe?53T4_BaF`Y!x`Ya&yF@yt5!Rrg!_^{X2l_Y;1d zr1|S@0kkj^Q4Q$$zYEZxzvgBB-%l6+{E+?gpVO4RCc3qwFY0DUr(F1$u7%hC`C*zh z_u{vI&ji>p<=e)q1dz-iU+?%Vrse)$HfENYKnX+5c9!~py-khihw7H(OxR0!)_AmSSI#T zYK=3L9@K3-{dO|CvGi@}4Cr)jL`HbPvuOhEPuGhF97|K*j@Eh89#p;;V*0+1GfPu< zNgEC}e2fPoi4W54!QbfjSg5vharKN3z~?lP4_^tx26kbmeRi+4;cYG~(a=7hMu%l$ zQx~t#?mwIvHa3fn`}`);ZsHBlTDY9j?IY~!ECHW70q!L&cn&$4l$zOQFqZ&-c3KDv zMN`Pl7n!JwPRNvn`8Cbo(dmxjoxTysn8L3PY~~NL0ebISXDlaq{WZ84na;vY_LMnY zasQayUFL~-Hpe~52f}#Y^NgRBoiUAhR+iTJ1m9$Fvk`f+ok?bio298c8qwoDAj8}| zOIMrS3_x$O5htU0l+ruh)0x|=lPSOkzU%=sPIPwP@7Z+5St?yFnRMNXu@-%y;ftL* z%kb*LL})Hgqs20b4Fj3P{EzqE==&P46yxxol1K3<{{f6tfJX&vGP0Mfg6@_krxXBY1TyM=h%@mARwbOw>V%QF%5~a^C!3`AErA%$Diz*^aS`H ze#kcrU?!b6_L)JfGgNxnDVccu3IC9jZ&N#$flo82sq-5?mzL%zM?48)A)w>HI#1`^ z^gPnNcuc<7IIN)dEv}fQ&326qY|mJx3-4HTLX1QEs#FjXe6q^P`{UMCh_X zFO6Sh49>jS3W(WXuN}WzdoJhNI0Lx>xYIH$T~-U^jESwKJJ|54eT-#y+vX>|0-AV; zkMQf^fu;j@qvgv!7SNY00`Vxe(kM4o9-`f z`_--&2V}w1iyICQ7bY6U8%+~l5tKz)tw|)n zIo{SrfD_PRET%K1QJ&UNKu0G~Q#=bMT03dzCc6Og1hEs)&9gxu0si(XA@MgE2K8P= z&^uiT%+mnwC<7kon=W{|yInuXVbaYcf3TK-Jw`1a18_F5g8?5V*#TZqX?i~KO(IKh z2G9vTJp7($>F?(z;~kf=_#qwaBAE0g-t0%y z>;ULOgC6ubJn5F=?|M-YWKVX;q^}2k1V7Z8zln1fDBc9;$iZeyB$sT@_5Eg zPhigg>}cAf;tjwHV(xwKop$-AH}UA)Wk-UXAM=a5-o(eVC;M!`InX2Tlm0-Q1+bGX z(RaNL6CXVEKwn^!z$O7-5B7H7qY|s1`2O(q`j_|$;$LK*JK%%qVCiD?)0jj;*QqwL zbOqf{d6?4H-^QvZKc~8@3F?RgsCPhZG9!bJA76b}AW!dAe0TvZ{^KuH&Y%C0|04&T z*}XRJBDV=A&UL7s~z&#pBL*{o5Dl;y>Q}b%5ax@ch{6<^Fee(SLXm<+azm z{xe*U``2-tOv=>(Wg1K)Z!Jb=t{rQ)F N`#%oBTS{this.updateValue(),this._host.requestUpdate()}))}hasTimer(){return this._timer.isRunning()}hostConnected(){this.updateValue(),this.startTimer(),this._host.requestUpdate()}hostDisconnected(){this.clearValue(),this.stopTimer()}}var k="data:image/jpeg;base64,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";let U=class extends l{constructor(){super(...arguments),this._refImage=I(),this._boundVisibilityHandler=this._visibilityHandler.bind(this),this._mediaLoadedInfo=null}async play(){this._cachedValueController?.startTimer()}async pause(){this._cachedValueController?.stopTimer()}async mute(){}async unmute(){}isMuted(){return!0}async seek(A){}async setControls(A){}isPaused(){return!this._cachedValueController?.hasTimer()}async getScreenshotURL(){return this._cachedValueController?.value??null}_getCameraEntity(){return(this.cameraConfig?.camera_entity||this.cameraConfig?.webrtc_card?.entity)??null}shouldUpdate(A){if(!this.hass||"visible"!==document.visibilityState)return!1;const e=this._getRelevantEntityForMode(this._resolveMode(this.imageConfig?.mode));return!A.has("hass")||1!=A.size||!e||(n(this.hass,A.get("hass"),[e])?(this._cachedValueController?.clearValue(),!0):!this.hasUpdated)}willUpdate(A){A.has("imageConfig")&&(this._cachedValueController&&this._cachedValueController.removeController(),this.imageConfig&&(this._cachedValueController=new p(this,this.imageConfig.refresh_seconds,this._getImageSource.bind(this),(()=>E(this)),(()=>u(this)))));const e=this._getRelevantEntityForMode(this._resolveMode(this.imageConfig?.mode));(A.has("cameraConfig")||A.has("view")||e&&!this._getAcceptableState(e))&&this._cachedValueController?.clearValue(),this._cachedValueController?.value||this._cachedValueController?.updateValue()}_getAcceptableState(A){const e=(A?this.hass?.states[A]:null)??null;return this.hass&&this.hass.connected&&e&&Date.now()-Date.parse(e.last_updated)<3e5?e:null}connectedCallback(){super.connectedCallback(),document.addEventListener("visibilitychange",this._boundVisibilityHandler),this._cachedValueController?.startTimer()}disconnectedCallback(){this._cachedValueController?.stopTimer(),document.removeEventListener("visibilitychange",this._boundVisibilityHandler),super.disconnectedCallback()}_visibilityHandler(){this._refImage.value&&("hidden"===document.visibilityState?(this._cachedValueController?.stopTimer(),this._cachedValueController?.clearValue(),this._forceSafeImage()):(this._cachedValueController?.startTimer(),this.requestUpdate()))}_buildImageURL(A){return A.searchParams.append("_t",String(Date.now())),A.toString()}_addQueryParametersToURL(A,e){if(e){const t=new URLSearchParams(e);for(const[e,i]of t.entries())A.searchParams.append(e,i)}return A}_getRelevantEntityForMode(A){return"camera"===A?this._getCameraEntity():"entity"===A?this.imageConfig?.entity??null:null}_resolveMode(A){if(!A)return"screensaver";if("auto"!==A)return A;const e=this._getCameraEntity();return this.imageConfig?.entity?"entity":this.imageConfig?.url?"url":e?"camera":"screensaver"}_getImageSource(){const A=this._resolveMode(this.imageConfig?.mode);if(this.hass&&"camera"===A){const A=this._getAcceptableState(this._getCameraEntity());if(A?.attributes.entity_picture){const e=new URL(A.attributes.entity_picture,document.baseURI);return this._addQueryParametersToURL(e,this.imageConfig?.entity_parameters),this._buildImageURL(e)}}if(this.hass&&"entity"===A&&this.imageConfig?.entity){const A=this._getAcceptableState(this.imageConfig?.entity);if(A?.attributes.entity_picture){const e=new URL(A.attributes.entity_picture,document.baseURI);return this._addQueryParametersToURL(e,this.imageConfig?.entity_parameters),this._buildImageURL(e)}}return"url"===A&&this.imageConfig?.url?this._buildImageURL(new URL(this.imageConfig.url,document.baseURI)):k}_forceSafeImage(A){this._refImage.value&&(this._refImage.value.src=!A&&this.imageConfig?.url?this.imageConfig.url:k)}render(){const A=this._cachedValueController?.value;return A?m` + {const e=Q(A,{player:this,capabilities:{supportsPause:!!this.imageConfig?.refresh_seconds}});e&&!M(this._mediaLoadedInfo,e)&&(this._mediaLoadedInfo=e,B(this,e))}} + @error=${()=>{const A=this._resolveMode(this.imageConfig?.mode);"camera"===A||"entity"===A?this._forceSafeImage(!0):"url"===A&&d(this,b("error.image_load_error"),{context:this.imageConfig})}} + /> + `:m``}static get styles(){return L(':host {\n background-color: var(--primary-background-color);\n background-position: center;\n background-repeat: no-repeat;\n background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4yLjIgKGIwYTg0ODY1NDEsIDIwMjItMTItMDEpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJjYW1lcmEtaXJpcy5zdmciCiAgIGlkPSJzdmc0IgogICB2ZXJzaW9uPSIxLjEiCiAgIHZpZXdCb3g9IjAgMCAyNCAyNCIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzOCIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzYiCiAgICAgcGFnZWNvbG9yPSIjYjkzZTNlIgogICAgIGJvcmRlcmNvbG9yPSIjMDAwMDAwIgogICAgIGJvcmRlcm9wYWNpdHk9IjAuMjUiCiAgICAgaW5rc2NhcGU6c2hvd3BhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuNjA3ODQzMTQiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6ZGVza2NvbG9yPSIjZDFkMWQxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp6b29tPSIyNi42MjUwNiIKICAgICBpbmtzY2FwZTpjeD0iLTEuOTM0MjY4IgogICAgIGlua3NjYXBlOmN5PSIxNS42ODA3MTYiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIzODQwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjE1MjciCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjEwODAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjIyNyIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzQiIC8+CiAgPGcKICAgICBpZD0iZzExMTkiCiAgICAgc3R5bGU9ImZpbGwtb3BhY2l0eTowLjA1O2ZpbGw6I2ZmZmZmZiI+CiAgICA8Y2lyY2xlCiAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eTowLjA1O3N0cm9rZS13aWR0aDoxLjM5NzI5IgogICAgICAgaWQ9InBhdGgxNzAiCiAgICAgICBjeD0iMTIiCiAgICAgICBjeT0iMTIiCiAgICAgICBpbmtzY2FwZTpsYWJlbD0iV2hpdGUgQmFja2dyb3VuZCIKICAgICAgIHI9IjExLjI1IiAvPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gMTMuNzMwMDAxLDE1IDkuODMwMDAwMywyMS43NiBDIDEwLjUzLDIxLjkxIDExLjI1LDIyIDEyLDIyIGMgMi40MDAwMDEsMCA0LjYsLTAuODUgNi4zMiwtMi4yNSBMIDE0LjY2MDAwMSwxMy40IE0gMi40NjAwMDAzLDE1IGMgMC45MiwyLjkyIDMuMTUsNS4yNiA1Ljk5LDYuMzQgTCAxMi4xMiwxNSBtIC0zLjU3OTk5OTcsLTMgLTMuOSwtNi43NDk5OTk2IGMgLTEuNjQsMS43NDk5OTkgLTIuNjQsNC4xMzk5OTkzIC0yLjY0LDYuNzQ5OTk5NiAwLDAuNjggMC4wNywxLjM1IDAuMiwyIGggNy40OSBNIDIxLjgsOS45OTk5OTk3IEggMTQuMzEwMDAxIEwgMTQuNjAwMDAxLDEwLjUgMTkuMzYsMTguNzUgQyAyMSwxNi45NyAyMiwxNC42IDIyLDEyIDIyLDExLjMxIDIxLjkzLDEwLjY0IDIxLjgsOS45OTk5OTk3IG0gLTAuMjYsLTEgQyAyMC42Miw2LjA3MDAwMDUgMTguMzksMy43NDAwMDAyIDE1LjU1MDAwMSwyLjY2MDAwMDIgTCAxMS44OCw4Ljk5OTk5OTcgTSA5LjQwMDAwMDMsMTAuNSAxNC4xNzAwMDEsMi4yNDAwMDAyIGMgLTAuNywtMC4xNSAtMS40MjAwMDEsLTAuMjQgLTIuMTcwMDAxLC0wLjI0IC0yLjM5OTk5OTcsMCAtNC41OTk5OTk3LDAuODQgLTYuMzE5OTk5NywyLjI1MDAwMDMgbCAzLjY2LDYuMzQ5OTk5NSB6IgogICAgICAgaWQ9InBhdGgyIgogICAgICAgaW5rc2NhcGU6bGFiZWw9IklyaXMiCiAgICAgICBzdHlsZT0iZmlsbC1vcGFjaXR5OjAuMDU7ZmlsbDojZmZmZmZmIiAvPgogIDwvZz4KPC9zdmc+Cg==");\n background-size: 10%;\n background-position: center;\n}\n\nimg {\n width: 100%;\n height: 100%;\n display: block;\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n object-view-box: inset(var(--frigate-card-media-layout-view-box-top, 0%) var(--frigate-card-media-layout-view-box-right, 0%) var(--frigate-card-media-layout-view-box-bottom, 0%) var(--frigate-card-media-layout-view-box-left, 0%));\n}')}};c([s({attribute:!1})],U.prototype,"hass",void 0),c([s({attribute:!1})],U.prototype,"view",void 0),c([s({attribute:!1})],U.prototype,"cameraConfig",void 0),c([s({attribute:!1})],U.prototype,"cameraManager",void 0),c([s({attribute:!1,hasChanged:h})],U.prototype,"imageConfig",void 0),U=c([C("frigate-card-image")],U);export{U as FrigateCardImage}; diff --git a/config/www/community/frigate-hass-card/image-5371a090.js.gz b/config/www/community/frigate-hass-card/image-5371a090.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..149539da660ba4181f5e1b078074f136f7ec2f13 GIT binary patch literal 22203 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.updateValue(),this._host.requestUpdate()}))}hasTimer(){return this._timer.isRunning()}hostConnected(){this.updateValue(),this.startTimer(),this._host.requestUpdate()}hostDisconnected(){this.clearValue(),this.stopTimer()}}var k="data:image/jpeg;base64,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";let U=class extends l{constructor(){super(...arguments),this._refImage=I(),this._boundVisibilityHandler=this._visibilityHandler.bind(this),this._mediaLoadedInfo=null}async play(){this._cachedValueController?.startTimer()}async pause(){this._cachedValueController?.stopTimer()}async mute(){}async unmute(){}isMuted(){return!0}async seek(A){}async setControls(A){}isPaused(){return!this._cachedValueController?.hasTimer()}async getScreenshotURL(){return this._cachedValueController?.value??null}_getCameraEntity(){return(this.cameraConfig?.camera_entity||this.cameraConfig?.webrtc_card?.entity)??null}shouldUpdate(A){if(!this.hass||"visible"!==document.visibilityState)return!1;const e=this._getRelevantEntityForMode(this._resolveMode(this.imageConfig?.mode));return!A.has("hass")||1!=A.size||!e||(n(this.hass,A.get("hass"),[e])?(this._cachedValueController?.clearValue(),!0):!this.hasUpdated)}willUpdate(A){A.has("imageConfig")&&(this._cachedValueController&&this._cachedValueController.removeController(),this.imageConfig&&(this._cachedValueController=new p(this,this.imageConfig.refresh_seconds,this._getImageSource.bind(this),(()=>E(this)),(()=>u(this)))));const e=this._getRelevantEntityForMode(this._resolveMode(this.imageConfig?.mode));(A.has("cameraConfig")||A.has("view")||e&&!this._getAcceptableState(e))&&this._cachedValueController?.clearValue(),this._cachedValueController?.value||this._cachedValueController?.updateValue()}_getAcceptableState(A){const e=(A?this.hass?.states[A]:null)??null;return this.hass&&this.hass.connected&&e&&Date.now()-Date.parse(e.last_updated)<3e5?e:null}connectedCallback(){super.connectedCallback(),document.addEventListener("visibilitychange",this._boundVisibilityHandler),this._cachedValueController?.startTimer()}disconnectedCallback(){this._cachedValueController?.stopTimer(),document.removeEventListener("visibilitychange",this._boundVisibilityHandler),super.disconnectedCallback()}_visibilityHandler(){this._refImage.value&&("hidden"===document.visibilityState?(this._cachedValueController?.stopTimer(),this._cachedValueController?.clearValue(),this._forceSafeImage()):(this._cachedValueController?.startTimer(),this.requestUpdate()))}_buildImageURL(A){return A.searchParams.append("_t",String(Date.now())),A.toString()}_addQueryParametersToURL(A,e){if(e){const t=new URLSearchParams(e);for(const[e,i]of t.entries())A.searchParams.append(e,i)}return A}_getRelevantEntityForMode(A){return"camera"===A?this._getCameraEntity():"entity"===A?this.imageConfig?.entity??null:null}_resolveMode(A){if(!A)return"screensaver";if("auto"!==A)return A;const e=this._getCameraEntity();return this.imageConfig?.entity?"entity":this.imageConfig?.url?"url":e?"camera":"screensaver"}_getImageSource(){const A=this._resolveMode(this.imageConfig?.mode);if(this.hass&&"camera"===A){const A=this._getAcceptableState(this._getCameraEntity());if(A?.attributes.entity_picture){const e=new URL(A.attributes.entity_picture,document.baseURI);return this._addQueryParametersToURL(e,this.imageConfig?.entity_parameters),this._buildImageURL(e)}}if(this.hass&&"entity"===A&&this.imageConfig?.entity){const A=this._getAcceptableState(this.imageConfig?.entity);if(A?.attributes.entity_picture){const e=new URL(A.attributes.entity_picture,document.baseURI);return this._addQueryParametersToURL(e,this.imageConfig?.entity_parameters),this._buildImageURL(e)}}return"url"===A&&this.imageConfig?.url?this._buildImageURL(new URL(this.imageConfig.url,document.baseURI)):k}_forceSafeImage(A){this._refImage.value&&(this._refImage.value.src=!A&&this.imageConfig?.url?this.imageConfig.url:k)}render(){const A=this._cachedValueController?.value;return A?m` + {const e=Q(A,{player:this,capabilities:{supportsPause:!!this.imageConfig?.refresh_seconds}});e&&!M(this._mediaLoadedInfo,e)&&(this._mediaLoadedInfo=e,B(this,e))}} + @error=${()=>{const A=this._resolveMode(this.imageConfig?.mode);"camera"===A||"entity"===A?this._forceSafeImage(!0):"url"===A&&d(this,b("error.image_load_error"),{context:this.imageConfig})}} + /> + `:m``}static get styles(){return L(':host {\n background-color: var(--primary-background-color);\n background-position: center;\n background-repeat: no-repeat;\n background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4yLjIgKGIwYTg0ODY1NDEsIDIwMjItMTItMDEpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJjYW1lcmEtaXJpcy5zdmciCiAgIGlkPSJzdmc0IgogICB2ZXJzaW9uPSIxLjEiCiAgIHZpZXdCb3g9IjAgMCAyNCAyNCIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzOCIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzYiCiAgICAgcGFnZWNvbG9yPSIjYjkzZTNlIgogICAgIGJvcmRlcmNvbG9yPSIjMDAwMDAwIgogICAgIGJvcmRlcm9wYWNpdHk9IjAuMjUiCiAgICAgaW5rc2NhcGU6c2hvd3BhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuNjA3ODQzMTQiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6ZGVza2NvbG9yPSIjZDFkMWQxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp6b29tPSIyNi42MjUwNiIKICAgICBpbmtzY2FwZTpjeD0iLTEuOTM0MjY4IgogICAgIGlua3NjYXBlOmN5PSIxNS42ODA3MTYiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIzODQwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjE1MjciCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjEwODAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjIyNyIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzQiIC8+CiAgPGcKICAgICBpZD0iZzExMTkiCiAgICAgc3R5bGU9ImZpbGwtb3BhY2l0eTowLjA1O2ZpbGw6I2ZmZmZmZiI+CiAgICA8Y2lyY2xlCiAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eTowLjA1O3N0cm9rZS13aWR0aDoxLjM5NzI5IgogICAgICAgaWQ9InBhdGgxNzAiCiAgICAgICBjeD0iMTIiCiAgICAgICBjeT0iMTIiCiAgICAgICBpbmtzY2FwZTpsYWJlbD0iV2hpdGUgQmFja2dyb3VuZCIKICAgICAgIHI9IjExLjI1IiAvPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gMTMuNzMwMDAxLDE1IDkuODMwMDAwMywyMS43NiBDIDEwLjUzLDIxLjkxIDExLjI1LDIyIDEyLDIyIGMgMi40MDAwMDEsMCA0LjYsLTAuODUgNi4zMiwtMi4yNSBMIDE0LjY2MDAwMSwxMy40IE0gMi40NjAwMDAzLDE1IGMgMC45MiwyLjkyIDMuMTUsNS4yNiA1Ljk5LDYuMzQgTCAxMi4xMiwxNSBtIC0zLjU3OTk5OTcsLTMgLTMuOSwtNi43NDk5OTk2IGMgLTEuNjQsMS43NDk5OTkgLTIuNjQsNC4xMzk5OTkzIC0yLjY0LDYuNzQ5OTk5NiAwLDAuNjggMC4wNywxLjM1IDAuMiwyIGggNy40OSBNIDIxLjgsOS45OTk5OTk3IEggMTQuMzEwMDAxIEwgMTQuNjAwMDAxLDEwLjUgMTkuMzYsMTguNzUgQyAyMSwxNi45NyAyMiwxNC42IDIyLDEyIDIyLDExLjMxIDIxLjkzLDEwLjY0IDIxLjgsOS45OTk5OTk3IG0gLTAuMjYsLTEgQyAyMC42Miw2LjA3MDAwMDUgMTguMzksMy43NDAwMDAyIDE1LjU1MDAwMSwyLjY2MDAwMDIgTCAxMS44OCw4Ljk5OTk5OTcgTSA5LjQwMDAwMDMsMTAuNSAxNC4xNzAwMDEsMi4yNDAwMDAyIGMgLTAuNywtMC4xNSAtMS40MjAwMDEsLTAuMjQgLTIuMTcwMDAxLC0wLjI0IC0yLjM5OTk5OTcsMCAtNC41OTk5OTk3LDAuODQgLTYuMzE5OTk5NywyLjI1MDAwMDMgbCAzLjY2LDYuMzQ5OTk5NSB6IgogICAgICAgaWQ9InBhdGgyIgogICAgICAgaW5rc2NhcGU6bGFiZWw9IklyaXMiCiAgICAgICBzdHlsZT0iZmlsbC1vcGFjaXR5OjAuMDU7ZmlsbDojZmZmZmZmIiAvPgogIDwvZz4KPC9zdmc+Cg==");\n background-size: 10%;\n background-position: center;\n}\n\nimg {\n width: 100%;\n height: 100%;\n display: block;\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n object-view-box: inset(var(--frigate-card-media-layout-view-box-top, 0%) var(--frigate-card-media-layout-view-box-right, 0%) var(--frigate-card-media-layout-view-box-bottom, 0%) var(--frigate-card-media-layout-view-box-left, 0%));\n}')}};c([s({attribute:!1})],U.prototype,"hass",void 0),c([s({attribute:!1})],U.prototype,"view",void 0),c([s({attribute:!1})],U.prototype,"cameraConfig",void 0),c([s({attribute:!1})],U.prototype,"cameraManager",void 0),c([s({attribute:!1,hasChanged:h})],U.prototype,"imageConfig",void 0),U=c([C("frigate-card-image")],U);export{U as FrigateCardImage}; diff --git a/config/www/community/frigate-hass-card/image-632882b9.js.gz b/config/www/community/frigate-hass-card/image-632882b9.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..54da439cf6d4fd5bbafb80e852a22c87362882de GIT binary patch literal 22203 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 OZ~q7V)U6tTg8%?PYz4gl literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/image-669f8abb.js b/config/www/community/frigate-hass-card/image-669f8abb.js new file mode 100644 index 00000000..ba3616de --- /dev/null +++ b/config/www/community/frigate-hass-card/image-669f8abb.js @@ -0,0 +1,9 @@ +import{a,cR as e,x as s,cV as t,r as i,d2 as r,_ as m,n as g,t as n}from"./card-769e2b91.js";import{g as u}from"./index-9b434861.js";import"./image-632882b9.js";import"./media-d4c0d154.js";let o=class extends a{constructor(){super(...arguments),this._refImage=e()}async play(){await(this._refImage.value?.play())}async pause(){await(this._refImage.value?.pause())}async mute(){await(this._refImage.value?.mute())}async unmute(){await(this._refImage.value?.unmute())}isMuted(){return!!this._refImage.value?.isMuted()}async seek(a){await(this._refImage.value?.seek(a))}async setControls(a){await(this._refImage.value?.setControls(a))}isPaused(){return this._refImage.value?.isPaused()??!0}async getScreenshotURL(){return await(this._refImage.value?.getScreenshotURL())??null}render(){if(this.hass&&this.cameraConfig)return u(this,this.hass,this.cameraConfig),s` + + + `}static get styles(){return i(r)}};m([g({attribute:!1})],o.prototype,"hass",void 0),m([g({attribute:!1})],o.prototype,"cameraConfig",void 0),o=m([n("frigate-card-live-image")],o);export{o as FrigateCardLiveImage}; diff --git a/config/www/community/frigate-hass-card/image-669f8abb.js.gz b/config/www/community/frigate-hass-card/image-669f8abb.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..68305dcae63d52fa16844cb811426206bd8ceff5 GIT binary patch literal 554 zcmV+_0@eK=iwFoydR%7$|7mSuXJsumHaTWEVPaw~YI6XMlu>WmFcgK~`zuT|Rf%L$ zpp?NFRzU)HOVD-OKfCcQxM93pY0F`qbtqJjdZ?q?}>90UM!`;Eu+aj zVVVG4yP|3G!&Rip6;9KhtBO9lQc&SaM$r{f&Xp{J_$py4ZNDFkpf?+JQ7?n(KL_(H1+gJ~KW*oy~ zDqgYNz%;Iqy@44G=NuJNTMC2c92HU%rN2#B0gBn|bDl-JDaKQDkJ3|;>Zc3hua9%ZGltOi--qAu zokGaF?Z088axePU6N}Vi8j^2QjjD;}_)2f^P4Oi|jee>_U!A6|w5L)dL+)P!(YVP$ zAC8}gDk{ry5&q1=Ekjg%W_RpEt6N6DsEn6NqQuP-XyBeFpexB!(uwFB49&C$qnuc) s2!o@vIbT5)IdEN~F|7T6NV@;f=Zd_w;GO0Cp_k)}ztmSKO9%x30PL+5n*aa+ literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/image-678a8283.js b/config/www/community/frigate-hass-card/image-678a8283.js new file mode 100644 index 00000000..41bb54a7 --- /dev/null +++ b/config/www/community/frigate-hass-card/image-678a8283.js @@ -0,0 +1,9 @@ +import{a as e,cM as a,x as t,cQ as s,r as i,c_ as r,_ as u,n as g,t as m}from"./card-320adb66.js";import"./image-88fcb8ac.js";let n=class extends e{constructor(){super(...arguments),this._refImage=a()}async play(){await(this._refImage.value?.play())}async pause(){await(this._refImage.value?.pause())}async mute(){await(this._refImage.value?.mute())}async unmute(){await(this._refImage.value?.unmute())}isMuted(){return!!this._refImage.value?.isMuted()}async seek(e){await(this._refImage.value?.seek(e))}async setControls(e){await(this._refImage.value?.setControls(e))}isPaused(){return this._refImage.value?.isPaused()??!0}async getScreenshotURL(){return await(this._refImage.value?.getScreenshotURL())??null}render(){if(this.hass&&this.cameraConfig)return t` + + + `}static get styles(){return i(r)}};u([g({attribute:!1})],n.prototype,"hass",void 0),u([g({attribute:!1})],n.prototype,"cameraConfig",void 0),n=u([m("frigate-card-live-image")],n);export{n as FrigateCardLiveImage}; diff --git a/config/www/community/frigate-hass-card/image-678a8283.js.gz b/config/www/community/frigate-hass-card/image-678a8283.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..f4e82f80325037637d74432f2ae0884b106790bb GIT binary patch literal 514 zcmV+d0{#6TiwFoEf?;O@|7mSuXJsumH#lK9GB`6XYI6XMR9$P^Fcf|7uW(E$HYjek zK?%#UJQN0l7WToO#%OQkYe$MvA9T-b)~3*0Ca$i z-#P@gb3lxLb*PzgAQ-=MsF(-Cq=TH1gR;$3RffqW2bE6Wy`4e2zPd_&>u@1_f~7)zOHho7ZQ;Q9+q$XuJRVs=bZE93ek|dyVQ=%jtGujB9+$qdH zyO~Rf;uiE?@}MqYZ$0oA1VxWk$rcKOtE7`04PZ2$a&(&BQW`qt=p?n%U-uyO=gGO z9O*k(h*EDV`tj{%81hnur!G5Fnxbfx-5hkwBC^iAu^V-9;g1|jRA9SjB9Hs3_h*6s zK4ePdKsfb#>o@ek1i^Wu|0xo;N75%O&zob~i1K5)z+N#f(eWewn0(IAOF#CdFQ2yV zxcgQUknk5AXxbO3hpQEliraQ!qMv!x0Fe@FyFc$IZ`$}5lS!>As%T#$3*G;OY+H#m zn8oZBhH=}$D3{h+M&YBjh1g-K=db>D#0CL<1W~BrG E09TFp?*IS* literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/image-88fcb8ac.js b/config/www/community/frigate-hass-card/image-88fcb8ac.js new file mode 100644 index 00000000..c334a730 --- /dev/null +++ b/config/www/community/frigate-hass-card/image-88fcb8ac.js @@ -0,0 +1,13 @@ +import{dx as A,dy as e,eP as t,eQ as i,dz as a,eM as r,eR as g,dA as s,_ as o,n as c,cR as h,b as C,t as l,a as n,cM as I,eS as E,du as u,dv as m,cP as w,x as Q,cQ as M,eN as B,i as d,cL as b,l as L,r as D}from"./card-320adb66.js"; +/** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const p=A(class extends e{constructor(A){if(super(A),A.type!==t.PROPERTY&&A.type!==t.ATTRIBUTE&&A.type!==t.BOOLEAN_ATTRIBUTE)throw Error("The `live` directive is not allowed on child or event bindings");if(!i(A))throw Error("`live` bindings can only contain a single expression")}render(A){return A}update(A,[e]){if(e===a||e===r)return e;const i=A.element,s=A.name;if(A.type===t.PROPERTY){if(e===i[s])return a}else if(A.type===t.BOOLEAN_ATTRIBUTE){if(!!e===i.hasAttribute(s))return a}else if(A.type===t.ATTRIBUTE&&i.getAttribute(s)===e+"")return a;return g(A),e}});class k{constructor(A,e,t,i,a){this._timer=new s,this._timerSeconds=e,this._callback=t,this._timerStartCallback=i,this._timerStopCallback=a,(this._host=A).addController(this)}removeController(){this.stopTimer(),this._host.removeController(this)}get value(){return this._value}updateValue(){this._value=this._callback()}clearValue(){this._value=void 0}stopTimer(){this._timer.isRunning()&&(this._timer.stop(),this._timerStopCallback?.())}startTimer(){this.stopTimer(),this._timerStartCallback?.(),this._timer.startRepeated(this._timerSeconds,(()=>{this.updateValue(),this._host.requestUpdate()}))}hasTimer(){return this._timer.isRunning()}hostConnected(){this.updateValue(),this.startTimer(),this._host.requestUpdate()}hostDisconnected(){this.clearValue(),this.stopTimer()}}var U="data:image/jpeg;base64,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";let y=class extends n{constructor(){super(...arguments),this._message=null,this._refImage=I(),this._boundVisibilityHandler=this._visibilityHandler.bind(this),this._mediaLoadedInfo=null}async play(){this._cachedValueController?.startTimer()}async pause(){this._cachedValueController?.stopTimer()}async mute(){}async unmute(){}isMuted(){return!0}async seek(A){}async setControls(A){}isPaused(){return!this._cachedValueController?.hasTimer()}async getScreenshotURL(){return this._cachedValueController?.value??null}_getCameraEntity(){return(this.cameraConfig?.camera_entity||this.cameraConfig?.webrtc_card?.entity)??null}shouldUpdate(A){if(!this.hass||"visible"!==document.visibilityState)return!1;const e=this._getRelevantEntityForMode(this._resolveMode(this.imageConfig?.mode));return!A.has("hass")||1!=A.size||!e||(E(this.hass,A.get("hass"),[e])?(this._cachedValueController?.clearValue(),!0):!this.hasUpdated)}willUpdate(A){A.has("imageConfig")&&(this._cachedValueController&&this._cachedValueController.removeController(),this.imageConfig&&(this._cachedValueController=new k(this,this.imageConfig.refresh_seconds,this._getImageSource.bind(this),(()=>u(this)),(()=>m(this)))));const e=this._getRelevantEntityForMode(this._resolveMode(this.imageConfig?.mode));(A.has("cameraConfig")||A.has("view")||e&&!this._getAcceptableState(e))&&this._cachedValueController?.clearValue(),this._cachedValueController?.value||this._cachedValueController?.updateValue(),["imageConfig","view"].some((e=>A.has(e)))&&(this._message=null)}_getAcceptableState(A){const e=(A?this.hass?.states[A]:null)??null;return this.hass&&this.hass.connected&&e&&Date.now()-Date.parse(e.last_updated)<3e5?e:null}connectedCallback(){super.connectedCallback(),document.addEventListener("visibilitychange",this._boundVisibilityHandler),this._cachedValueController?.startTimer()}disconnectedCallback(){this._cachedValueController?.stopTimer(),this._message=null,document.removeEventListener("visibilitychange",this._boundVisibilityHandler),super.disconnectedCallback()}_visibilityHandler(){this._refImage.value&&("hidden"===document.visibilityState?(this._cachedValueController?.stopTimer(),this._cachedValueController?.clearValue(),this._forceSafeImage()):(this._cachedValueController?.startTimer(),this.requestUpdate()))}_buildImageURL(A){return A.searchParams.append("_t",String(Date.now())),A.toString()}_addQueryParametersToURL(A,e){if(e){const t=new URLSearchParams(e);for(const[e,i]of t.entries())A.searchParams.append(e,i)}return A}_getRelevantEntityForMode(A){return"camera"===A?this._getCameraEntity():"entity"===A?this.imageConfig?.entity??null:null}_resolveMode(A){if(!A)return"screensaver";if("auto"!==A)return A;const e=this._getCameraEntity();return this.imageConfig?.entity?"entity":this.imageConfig?.url?"url":e?"camera":"screensaver"}_getImageSource(){const A=this._resolveMode(this.imageConfig?.mode);if(this.hass&&"camera"===A){const A=this._getAcceptableState(this._getCameraEntity());if(A?.attributes.entity_picture){const e=new URL(A.attributes.entity_picture,document.baseURI);return this._addQueryParametersToURL(e,this.imageConfig?.entity_parameters),this._buildImageURL(e)}}if(this.hass&&"entity"===A&&this.imageConfig?.entity){const A=this._getAcceptableState(this.imageConfig?.entity);if(A?.attributes.entity_picture){const e=new URL(A.attributes.entity_picture,document.baseURI);return this._addQueryParametersToURL(e,this.imageConfig?.entity_parameters),this._buildImageURL(e)}}return"url"===A&&this.imageConfig?.url?this._buildImageURL(new URL(this.imageConfig.url,document.baseURI)):U}_forceSafeImage(A){this._refImage.value&&(this._refImage.value.src=!A&&this.imageConfig?.url?this.imageConfig.url:U)}render(){if(this._message)return w(this._message);const A=this._cachedValueController?.value;return A?Q` + {const e=B(A,{player:this,capabilities:{supportsPause:!!this.imageConfig?.refresh_seconds}});e&&!d(this._mediaLoadedInfo,e)&&(this._mediaLoadedInfo=e,b(this,e))}} + @error=${()=>{const A=this._resolveMode(this.imageConfig?.mode);"camera"===A||"entity"===A?this._forceSafeImage(!0):"url"===A&&(this._message={type:"error",message:L("error.image_load_error"),context:this.imageConfig})}} + /> + `:Q``}static get styles(){return D(':host {\n background-color: var(--primary-background-color);\n background-position: center;\n background-repeat: no-repeat;\n background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4yLjIgKGIwYTg0ODY1NDEsIDIwMjItMTItMDEpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJjYW1lcmEtaXJpcy5zdmciCiAgIGlkPSJzdmc0IgogICB2ZXJzaW9uPSIxLjEiCiAgIHZpZXdCb3g9IjAgMCAyNCAyNCIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzOCIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzYiCiAgICAgcGFnZWNvbG9yPSIjYjkzZTNlIgogICAgIGJvcmRlcmNvbG9yPSIjMDAwMDAwIgogICAgIGJvcmRlcm9wYWNpdHk9IjAuMjUiCiAgICAgaW5rc2NhcGU6c2hvd3BhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuNjA3ODQzMTQiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6ZGVza2NvbG9yPSIjZDFkMWQxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp6b29tPSIyNi42MjUwNiIKICAgICBpbmtzY2FwZTpjeD0iLTEuOTM0MjY4IgogICAgIGlua3NjYXBlOmN5PSIxNS42ODA3MTYiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIzODQwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjE1MjciCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjEwODAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjIyNyIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzQiIC8+CiAgPGcKICAgICBpZD0iZzExMTkiCiAgICAgc3R5bGU9ImZpbGwtb3BhY2l0eTowLjA1O2ZpbGw6I2ZmZmZmZiI+CiAgICA8Y2lyY2xlCiAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eTowLjA1O3N0cm9rZS13aWR0aDoxLjM5NzI5IgogICAgICAgaWQ9InBhdGgxNzAiCiAgICAgICBjeD0iMTIiCiAgICAgICBjeT0iMTIiCiAgICAgICBpbmtzY2FwZTpsYWJlbD0iV2hpdGUgQmFja2dyb3VuZCIKICAgICAgIHI9IjExLjI1IiAvPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gMTMuNzMwMDAxLDE1IDkuODMwMDAwMywyMS43NiBDIDEwLjUzLDIxLjkxIDExLjI1LDIyIDEyLDIyIGMgMi40MDAwMDEsMCA0LjYsLTAuODUgNi4zMiwtMi4yNSBMIDE0LjY2MDAwMSwxMy40IE0gMi40NjAwMDAzLDE1IGMgMC45MiwyLjkyIDMuMTUsNS4yNiA1Ljk5LDYuMzQgTCAxMi4xMiwxNSBtIC0zLjU3OTk5OTcsLTMgLTMuOSwtNi43NDk5OTk2IGMgLTEuNjQsMS43NDk5OTkgLTIuNjQsNC4xMzk5OTkzIC0yLjY0LDYuNzQ5OTk5NiAwLDAuNjggMC4wNywxLjM1IDAuMiwyIGggNy40OSBNIDIxLjgsOS45OTk5OTk3IEggMTQuMzEwMDAxIEwgMTQuNjAwMDAxLDEwLjUgMTkuMzYsMTguNzUgQyAyMSwxNi45NyAyMiwxNC42IDIyLDEyIDIyLDExLjMxIDIxLjkzLDEwLjY0IDIxLjgsOS45OTk5OTk3IG0gLTAuMjYsLTEgQyAyMC42Miw2LjA3MDAwMDUgMTguMzksMy43NDAwMDAyIDE1LjU1MDAwMSwyLjY2MDAwMDIgTCAxMS44OCw4Ljk5OTk5OTcgTSA5LjQwMDAwMDMsMTAuNSAxNC4xNzAwMDEsMi4yNDAwMDAyIGMgLTAuNywtMC4xNSAtMS40MjAwMDEsLTAuMjQgLTIuMTcwMDAxLC0wLjI0IC0yLjM5OTk5OTcsMCAtNC41OTk5OTk3LDAuODQgLTYuMzE5OTk5NywyLjI1MDAwMDMgbCAzLjY2LDYuMzQ5OTk5NSB6IgogICAgICAgaWQ9InBhdGgyIgogICAgICAgaW5rc2NhcGU6bGFiZWw9IklyaXMiCiAgICAgICBzdHlsZT0iZmlsbC1vcGFjaXR5OjAuMDU7ZmlsbDojZmZmZmZmIiAvPgogIDwvZz4KPC9zdmc+Cg==");\n background-size: 10%;\n background-position: center;\n}\n\nimg {\n width: 100%;\n height: 100%;\n display: block;\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n object-view-box: inset(var(--frigate-card-media-layout-view-box-top, 0%) var(--frigate-card-media-layout-view-box-right, 0%) var(--frigate-card-media-layout-view-box-bottom, 0%) var(--frigate-card-media-layout-view-box-left, 0%));\n}')}};o([c({attribute:!1})],y.prototype,"hass",void 0),o([c({attribute:!1})],y.prototype,"view",void 0),o([c({attribute:!1})],y.prototype,"cameraConfig",void 0),o([c({attribute:!1})],y.prototype,"cameraManager",void 0),o([c({attribute:!1,hasChanged:h})],y.prototype,"imageConfig",void 0),o([C()],y.prototype,"_message",void 0),y=o([l("frigate-card-image")],y);export{y as FrigateCardImage}; diff --git a/config/www/community/frigate-hass-card/image-88fcb8ac.js.gz b/config/www/community/frigate-hass-card/image-88fcb8ac.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..f7cf1675ee5db211ca594a690b6bace9b6078933 GIT binary patch literal 22282 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 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/image-b5d57727.js b/config/www/community/frigate-hass-card/image-b5d57727.js new file mode 100644 index 00000000..97c60e50 --- /dev/null +++ b/config/www/community/frigate-hass-card/image-b5d57727.js @@ -0,0 +1,9 @@ +import{a,cR as e,x as s,cV as t,r as i,d2 as r,_ as m,n as g,t as n}from"./card-7cd05290.js";import{g as u}from"./index-3c9b9749.js";import"./image-5371a090.js";import"./media-67c578aa.js";let o=class extends a{constructor(){super(...arguments),this._refImage=e()}async play(){await(this._refImage.value?.play())}async pause(){await(this._refImage.value?.pause())}async mute(){await(this._refImage.value?.mute())}async unmute(){await(this._refImage.value?.unmute())}isMuted(){return!!this._refImage.value?.isMuted()}async seek(a){await(this._refImage.value?.seek(a))}async setControls(a){await(this._refImage.value?.setControls(a))}isPaused(){return this._refImage.value?.isPaused()??!0}async getScreenshotURL(){return await(this._refImage.value?.getScreenshotURL())??null}render(){if(this.hass&&this.cameraConfig)return u(this,this.hass,this.cameraConfig),s` + + + `}static get styles(){return i(r)}};m([g({attribute:!1})],o.prototype,"hass",void 0),m([g({attribute:!1})],o.prototype,"cameraConfig",void 0),o=m([n("frigate-card-live-image")],o);export{o as FrigateCardLiveImage}; diff --git a/config/www/community/frigate-hass-card/image-b5d57727.js.gz b/config/www/community/frigate-hass-card/image-b5d57727.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..a6ef6a44e5a2835928d32655cd3a21803deb966f GIT binary patch literal 555 zcmV+`0@VEy5oJ*7+#GB@h=-pWZgXV zSkYioCAjWii}B-l^m^Rkyp}_X{o(cK5(Wo7oR(uEq5ozihNHItm6jnfJrx;PmwZjA z63bvKw6bIhLE41T))q@NVI0R`(jrGiHsZ99HoiAF|K#UQF^o#E8ztB>gN^gRACMFt zQt=A10%viJ>6E>r=4BYr~KlNrH#q{m$Knzv)*7gH%0m?45G3NP2cWr+a}LNICi<7 zs>rg^xXnSoEOK6Z7jC1@&#PMjIT~=;=Q53UQ;Le>dz2rO+&-MK>UuvnG6lkZ^?g(u zzEc=`wf#42RPM#9_0%EFn2uDnsYf+LcYLjP_^$Yrp+P@1p)Zb8*V;pA2}o8ifmzyQ zXxrnLp^3_Jl7~Oia0^66KDr%y*SjpEpIpaFqe;_di9GPn6Y!Om2^&QG1%__g)~Kh> ts>0wPZ6;S(M-F_KXoBnNKcxMC=wnUZIPlhS)uES@v%mEIc)bV(001)k5u^YB literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/image-c0a8dc12.js b/config/www/community/frigate-hass-card/image-c0a8dc12.js new file mode 100644 index 00000000..ba4755f7 --- /dev/null +++ b/config/www/community/frigate-hass-card/image-c0a8dc12.js @@ -0,0 +1,9 @@ +import{a,cR as e,x as s,cV as t,r as i,d2 as r,_ as m,n as g,t as n}from"./card-45855f1f.js";import{g as u}from"./index-9bf80040.js";import"./image-1e2a0a79.js";import"./media-1a34ac2c.js";let o=class extends a{constructor(){super(...arguments),this._refImage=e()}async play(){await(this._refImage.value?.play())}async pause(){await(this._refImage.value?.pause())}async mute(){await(this._refImage.value?.mute())}async unmute(){await(this._refImage.value?.unmute())}isMuted(){return!!this._refImage.value?.isMuted()}async seek(a){await(this._refImage.value?.seek(a))}async setControls(a){await(this._refImage.value?.setControls(a))}isPaused(){return this._refImage.value?.isPaused()??!0}async getScreenshotURL(){return await(this._refImage.value?.getScreenshotURL())??null}render(){if(this.hass&&this.cameraConfig)return u(this,this.hass,this.cameraConfig),s` + + + `}static get styles(){return i(r)}};m([g({attribute:!1})],o.prototype,"hass",void 0),m([g({attribute:!1})],o.prototype,"cameraConfig",void 0),o=m([n("frigate-card-live-image")],o);export{o as FrigateCardLiveImage}; diff --git a/config/www/community/frigate-hass-card/image-c0a8dc12.js.gz b/config/www/community/frigate-hass-card/image-c0a8dc12.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..a0cc541d772954588a34bef80ac25d80767e757e GIT binary patch literal 554 zcmV+_0@eK=iwFqOQ&?vL|7mSuXJsv8Fkv`kV=*!=YI6XMltF9TKoEuR`4wwXf&^ST$(+bG2KfobG@ZsuED=-nzAHe$&#KXAOawMjvaSp~NUlGd0 zFxbRO8q#G1y;vOq~D;4~K|eAJkJb@Qg^2NjsLjM*ZGwe`Rs5ab_H z;S%x^XJLcv3{V<8ETj*Lz(keHnon6$W{N|2jACvtrWy{TGy=Xf(L;4)RL#)L^rxA`7-t%9`RklpmAaJe{%n`jl#s0b#%XKI#qM zDvZ6`{2Ml?c4FOnYLRwKN2=R2qgtXnzR^2;SA5CPqMzH)7ssg^?Wr;ZB@q-ecB?z!jj_)>|4MFD? + + `}static get styles(){return i(r)}};m([g({attribute:!1})],o.prototype,"hass",void 0),m([g({attribute:!1})],o.prototype,"cameraConfig",void 0),o=m([n("frigate-card-live-image")],o);export{o as FrigateCardLiveImage}; diff --git a/config/www/community/frigate-hass-card/image-c6a10ba0.js.gz b/config/www/community/frigate-hass-card/image-c6a10ba0.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..33d8936a15c0a2b1f28ad9ff6bd4d079fdd0fabd GIT binary patch literal 553 zcmV+^0@nQ>iwFnL^JP(77#9l8G5Dgh`$>W?%fgDMoPxW+Qp9EMVh2@CO7%$5gU{ z!s0Axki7w{!E=s=X)UFtbB+dS4OYIv(n4`1%vX1pI$k4LEqlF}9eZv!#vuNV;Pojx z=3t>)B}uEooOgCnpYoeOmP5?oe<@pTHtP*`b91EcTq8=eQ1s*e?$G452&XRBQ`(}a zwA&o?%ObMIyKozId0F3bC{csUo{2o(O|dn__9#0gnR&hl>g!{sMGoZF+J7JQhVPUh zc(?sGY+UWdy7kl{?U;^Kw`oSTM0b3nclfUOlA%REwV|(0Q#aakWe7;rFCj3rDbO5_ zUqm{ts!16==Ft|2w3xdc`_Q|t;-5?;I7Q|Dn$fdF#MC$JK{kO)mZd)UE2_2n7HDtoRS) literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/image-cbfd7ccb.js b/config/www/community/frigate-hass-card/image-cbfd7ccb.js new file mode 100644 index 00000000..e0833450 --- /dev/null +++ b/config/www/community/frigate-hass-card/image-cbfd7ccb.js @@ -0,0 +1,13 @@ +import{cL as A,cM as e,eR as t,eS as i,dC as a,cN as r,cO as g,dD as o,_ as c,n as s,cW as h,t as C,a as l,cR as I,eT as n,dy as E,dz as u,x as m,cV as w,eP as Q,i as M,cP as B,cQ as d,l as b,r as L}from"./card-c642ee74.js"; +/** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const D=A(class extends e{constructor(A){if(super(A),A.type!==t.PROPERTY&&A.type!==t.ATTRIBUTE&&A.type!==t.BOOLEAN_ATTRIBUTE)throw Error("The `live` directive is not allowed on child or event bindings");if(!i(A))throw Error("`live` bindings can only contain a single expression")}render(A){return A}update(A,[e]){if(e===a||e===r)return e;const i=A.element,o=A.name;if(A.type===t.PROPERTY){if(e===i[o])return a}else if(A.type===t.BOOLEAN_ATTRIBUTE){if(!!e===i.hasAttribute(o))return a}else if(A.type===t.ATTRIBUTE&&i.getAttribute(o)===e+"")return a;return g(A),e}});class p{constructor(A,e,t,i,a){this._timer=new o,this._timerSeconds=e,this._callback=t,this._timerStartCallback=i,this._timerStopCallback=a,(this._host=A).addController(this)}removeController(){this.stopTimer(),this._host.removeController(this)}get value(){return this._value}updateValue(){this._value=this._callback()}clearValue(){this._value=void 0}stopTimer(){this._timer.isRunning()&&(this._timer.stop(),this._timerStopCallback?.())}startTimer(){this.stopTimer(),this._timerStartCallback?.(),this._timer.startRepeated(this._timerSeconds,(()=>{this.updateValue(),this._host.requestUpdate()}))}hasTimer(){return this._timer.isRunning()}hostConnected(){this.updateValue(),this.startTimer(),this._host.requestUpdate()}hostDisconnected(){this.clearValue(),this.stopTimer()}}var k="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wgARCAEVAewDAREAAhEBAxEB/8QAGwAAAwEAAwEAAAAAAAAAAAAAAAECAwQFBgf/xAAaAQEBAQEBAQEAAAAAAAAAAAAAAQIDBAUG/9oADAMBAAIQAxAAAAHu/wBF+fKuKWoua2zblcOpTDeJqLJsVgAACCiNQEKJRCmEoMAhy1FzThq4VrCHDWbHCoilBWQKqzaa2xeTz3Uumd+Z+h4Sxy0VGmdbzV5AybMdZjUz1kEFA4AAEAAdEFAAEVKBDVxc1UtSgiaY1cSI4nPfl/N6eZrHp/Rw11mLJq83XO9c2ovO+Ry6ea+j4FY1uKl1zrSAAIucd5mlYUoBggA1ACiRiVgiCiW81w6JQqWpazQVTQCo6fz9vH+L2ec83o937PJ7P6HgsBAaZ1vjemdJNcb5HLr536PgACrioqFU2RZFkWLcAgAAokdoEhRKwgoHCCgrKpWrlQ1ctQpVU0jovN38P4fZ1HDta+y9HD3f1Pm2jEBrm78+muNXNVnW2N6Z15z6fz7zWSlDEkVnrMWKyaVgOCkA6AkBipwKBDhgIa1AC3KoaiuJtmPP+b0eM8Ps6Pl01lprsenL6V9T5vadMUJEa41y+XXXGqmrzrTOrzamvNfU+brnThgRrOdk2Z6yqSKxBTAQAgojBBRQAHDhhDViRLc1cpKhV5rzd/nnz/dw+PbkIqheXrH036nz+578LipVY42xvl8u14uk1pjeuNXNB5f6vzNc6uERc56znokjUEBBYAFACGAIAAAAKDyoqaEJRWVNOOn5dfnXz/b5rz9he1zutRGtfSvo/O731+aoYwjTOuRz6b893nW2N6Z3ebpnTXyf1/laZ0xM5azGpFioQAVgCiAAKmgAAoCAhgpDHLctZoNUvh/H6vnfzvfjHJl56taNNT6L9L5voPT59s1UAVLti8nl2rN1zrbn00zq860zoPJ/Y+SDM7nPUmxWIBiQoAKABAAAAAFEQ1BIBFTV5uktTXnOXX4/8n6euNbnYzWVjXkdMfR/qfL7X0cNM63xqpagKl5PLrrjdy643rjeuN641cpL4n73xUFmdzNCAACFAAFAAgAAogACCiQCiUlqWoqa0zfkXzvo+Z8fq7XnvmVx9Zmu27cvon1Pmcrvwcu+N6S689a51pnWmdb8+m/PppjeuNbZ3ea5QZ4H9D8JWISKhAKIApgAAgAK0SCiiACCwCEooOWocvTcuvx74v1+RjfZmk1jrPp/Z4/cfU+a9QHHIxupeRz3tjXJ5dXLvz6crl11570zqpXRDVnz39F8BwqlDUSCgwABgMIVORqkLEoAAJAFQAqsakOX5T8j6nQ+P19xNTc8nHXk9uP1L7fxI3hUK5d8a2xrk8+muNcnj25HPptjfI59NM6AHDVqHz79D+fCbFokAoHAAwAcEFEMWghKgALEgoAhaCiPLznm9Py3431+djXay8TU7vty919L5/YejzTYhDl3xrl8+nJ5dd+XTkc+nJ5ddcavOnKqCotoA+efovz9RGorEFMIYQUDQlYBAAtQAIKIVgoqRiqbAcuWNfH/AIv2ev4du3zrSqj6R9L5/fezxRYqRUC65vL5dOTx7crl15PLrtjd5tTRBTilagHzr9H+eZNgAwpwAADgGAQUAKwUQAQArjLG+s83p7P3+BhnXy/5H1vN+T1b5vPa1s9r34+++h87PWc9RwE2TV5cjn05vDvz/P6N+e9MbuWlBqAAQHzn9N+ecKwgGFjlBhBRDAIACkMSClEi0UOXTNpfN+L3ec+D+k7z6Xx+r8/o8FvlWddkbHP6Y+vfT+VyZqUmzTOtcbZnrNTXK49eVy67c9643rnVNAAAAAR84/TfnmgADgGADgAKcFEIBolKAEiRWhWbyMbivi3wf0EcuvKmuH38mWNdrbon036fy+768dsbcumd6Y1rjfL5dalBy0ry1zvXG6UAAAAA+cfpPzrAdAAMIcEFAACFoAISlCJSxQrUjl1zry3l9Pyz5P1MY1O72wxruK9F6vL7j6PzNc6359N8dORy6a43rje+NuAnRDjTGts7uaAAAAAPnH6T886IaFAQwGOEAAFAgAAAAAQ5Vm+D8Pt8J873xLKJeyrntdpL9I+n8vse/m1zvTOtM65vn9G/PpvjdQE1lrKRrUuuNbY3pNgAAAB85/S/niAdhBRDGAQUIKIgBSkEACpwEYvmPH7fCeH2dVx2mmVLFNnvLruq+o/R+ZyOvCprTO2c3z+jmce2uNMipsz1nPeHNa41rne3PWudtQAAAPnH6T86DAB0Q6IcFFJCBSwhKCBBQ43PfQ+fv5zyerzfl9XGzYRy6LCCiKucdxqfZPs/Fcu+OnJ5dUmmd87z+jkc9hOk2QznuXm6Z1pnWuN6501AEJGofOf0v51wAADGAQWCiClAgEEB13Lr82+T9TpOHaEUOXlzVmlaDlzlmzg3N12J9p+x8blaztjfJ5dtcbqORz68nl1cKgmxI2rmqy1xrSbYEiZais+c/pfzzQgAdOAAAAAKQQgpRwuXX5N8X6/X8+hHLObNaLnZRUFVL3HLp6P0eXzPSddJ0fPp9G4693+g+Lvm8nl15fHtU1rjV5rWpqoBDVxebpndytUJEjVqz5x+k/PMEFKcjAIKEFAAQhBWeNfJ/ifY6Xh25kvPWrMiluXVexzPQ/Q8HoPf4OT24llZvH8vp+X/ABPt9fqfSvT5fX/R8PL49eXx7OUVoS1LUuudENai860ztqwAEFAPnf6P88QtFRIU4YQUAOFaCRUiZfmHxvreb8vp5Evay1YWcatJe+9Pn9f7/ndp6fPGiSpRKl359PM/N9/kvN6uQfSvX5O81ORy63mxqTrNZ1rnTl0zqoqW86qaqVq4KAAAPnX6P8+IrFTHKIwhUwHCpWkIVnhPmfQ8N876HNl3rQYrnkdM/QfpfM7f1+VWCkXLedXCNcbvN+a/K+p6j0+fpPL6vqnq82+NXnUazNjNcbvOrlcC1LedXm0rUCAAoPm/6X88SA6ZWaBQhDBUipFZpb53y+r538f6txnWpVmusfTfqfL7D0cTWVQhDmtZrTN0zrTLfn00zrjY38u8fs+gduPF59PadMXmgE2VLctTSRq5by1zu86pQMgKAPm36b86wh2seQjUokqUEToi83qePb5b8b6153QrGdv25fRvq/K5PTDSLA0zqpXDW5dcXk8+nI5ddM6cvTZ347n07BPb9McrNqVjlcquW05QqXXFvOtJpqBAEAHzf9P+dACCql0zXEWMagkjSs3jc+nyf4/1sOfTSWyLO87+f6N9X5fJ1EBNjipdJalqWjbnvlce2/PprndZoeXzvgmlnsrnTN0zsVWRc3NXmuXTOtM6pQAAAAI+bfpfzgNUMoZWarCWgWbIoxr5b8f6/V8O2hcvYaz636Hz/Sezyck0zpWJLlZFgJbl0zeTy6czj25HLrU040zpnQY6d9rFDilCUVaY1rnVzTUAAAAAAPmv6T86wBGrCiAocriNJTwHyfq+U8Xr2NK9j6fN7j6Pz63ijk8+jgBBdsaqWUw6Yqa2xrXG+Xx7b8+ly1nVy6Z1WaCqNZVjzWVLpndKAAAAAAAB81/SfnC1hIDtBhDHKQjy/k9fgPk/V7beO69HD1Hp8/e+jz6ZrSbNM60zdM6i5z3nbn05fHtpnXH6c1W2N6Y1tjemdXnWmbedaZ2xIiNZjWQrOtc6poAAAAAAAAPmf6X845XRIwV2uAqLzoTi8uvnvH7O16c+768uRrNDluHGeo0vOtsbjWYueRz68nl10zus1rebct51UrlqNM7uVqIEmW+cay5rTGrmqUAAAAAAAD5l+l/OMYQwKtcripdc6uJ8nr7a5DXG9M6x3zy3loLFyJlvJLUa53yeXXbHTfnu86ZedVm6TQCOW5qpWoAJnc5ayy5qs22gAAAAAAAPmX6b825QcOiKtakmmdVLpm9t5PTyOfSprfnu86z1ni9uMazGs5bzFzjvIuubyuPXkcuu+OmmNXLeNbY1U01STqVLebTQAAJJQGtAoEFAAAAAAf/EACkQAAEEAgIBBAIDAQEBAAAAAAEAAgMEBREQIBITIUBQFCIGMDFBFSP/2gAIAQEAAQUC6hDofrwE1D+gIdDwfpNqxZggbNnAXQQ5Kwom+DOQgEBwEFrjXGkOpKJ+kuZKrWVvMWJUXeTsDVsMQ6gIDjSa1ALS8VpaWlrqfo7uUrVlcytqwhG8rwaFim0GzjqAgFpaQCA50tLS19Pcy9SBXMpYsrW0PZHax1J1ySjViqxjo0JoQHAC0tcBD6MdcjloKqu5GzaMMZI1pa4q1ZrMmMpMpxBDoxDkIchDk/R38hXptv5izYTimAl2zx4uKirSyyYim6pBpa6BNHAQCCHIQ5P0GuM1mPTT3lxUUJcgGtQCLXKNs7zhq81eu3s0IcBDgdifov5Db/GpOO1FE6VRQ/s4+y0CoK80rsZXdWqhBDjS0g1NatIBBqAQCAWlrja388chfyC3+TeVD/5Sy68/bijSltGnB+NXQQ4bwAgE0IBBqAQC19PtZu3+LRJ2q0fm4f7M0sQCxWMc6VrWsbwE3hqCAWkwIBAIfVZy3+TbYNuDWta9VnhyoVX2LX/OjUE1BNQag1AfV565+PVcdqkP3sBoR9xg6vqZCrTirSdAmhAJoTQmhBD6ueVkMN+y6zZHuWjxa8pgWDpehWIWuNLS0moJqaEAh119FJ5+Fa4JJOJHMijy+RdbkKrj9h/p91hcc90WkQtLS8V48NCaFGE0ID6cLSzNYPhNyz6dHMQyr+T+qXJo2QxrQG6VCo+1aiaGMCKAQCDV6a9JNjTWINQQ+nBQKc0OEkz6tya5t8V10jJmaMTSSxvtolYmr+LWCHDWrxTAgF4rxWuQh9O1ZvKNga874YdKPUsNc6k0Y34Wn52EE1BNCAQCHYIfTPLWMymb2nHyK1xVk0+WLb2bLMZCIqAagEE1NTUOu1tAoFD6OSRkTbmcgjV29YtO6FN9jE/yZjx52arDFXQWk1MTUOh5CCCHz5bEESsZupGrGctPUs75XE8BBjii0hNBJWlDoNx0xFkoIJqITE0odCtIBBBBD5t+3FUiu5OxYJcSt8AEoV3kCshGGoex9t+jomPyJBaWHRpvNexDI2aJqCaeAE1DrrkIfNu2Y6sF61Jan4ZXcQxjGD9db415BjduLC12Mr2JF/48L68uJsvnyGKsVZfJYa/tjSgmhNHA433CHzJZGRR5O263YUcBeoowxErSA9gAS6N8clenudmHb6sUEER2toFWofWiyNdvlVc6E4e2HhqYh12h1HzCQ1uYyBtSbUTNljkTobBBPu1U8XPMq9CrAieoQWaq+TcYIzas1pcbYxdgWa7Qh0HA/v38L+Q3/f3Ka1qPuWeyemD9Y60srocZTiPTSAXivFNavFZqia0uMljymOpSSYvJNIIHQcDqPl5e+K0etqb3LRzHDPIG1YparWhjOw4DUGoNVqsyxAPWxOTuwR36n8es7a3+sIIfIyVxlOB73zSjpjqL7hqwsrwddLS0gEAmBAIBaWVoMu18FZfTtZmF9O1XlbNDzrkchDgf3BHuFbnjrQXLEluf/gQTP2diKTprUUbI2865HRqaEBzpZrGC2zFWhbhwfq1rKCA6BaWkAtfB33c5rGZW665OOB/lWnNPHg6H47WMa0NatLS0vFeK1yEE1NQ5AWlexcdicMG9LXTSAWlr5Wcv+q5vuf8AuiXQYSQsjYGN0mhALS0tcNC8EYkWJrUGprUwIcaQWlpa7AIfLzdwwsmjeySWg+vRw2JLlSxsFZ4WlrgIcHhiHDmoNQagEAgEOB1PIQ+XcmbWrYyjM5UMXHA51dj3+C8V4rXGuBweGBDjS8UAtIDkIdSjyEPjjhn+zUhYm9NeCaxemnM77W0AmoIdNf1noPjjiP8A2M+yCHDgiODw7lqagghwAgOw+R//xAAsEQABBAEEAQQCAQQDAAAAAAABAAIDERAEEiAhMRMwQFAiQQUUQlFhIzIz/9oACAEDAQE/AfaPwB7Y+KPZHC0flj3GsLvCbpT/AHFF8bP+oRO43yGBms19WyB7kzSsHlCgtTM0jbypDLQgMUq+rZp3O89JkLWeFRVKXdR7rkEFSpUgM19VHpnO89JkLWeM0VI8Mbaklc/zxAQCrACr3L+gjgc/tRxtZ4QGaT3BnZU05k6/XIIZCH0tYGWROf4UcLWYGaTjtFlaicSdDm0YCpDA+mrEEO7s5rAVFF+3yVqJmyHpDgMAIYCGAPqImb3VgC0ETik+RrPJWolEh6QwOACa1UgEAgEAqVKs39EFpWU2/wDOGdFHMkzY/Kmm9U3zAQCAVIBAKlXC/pImb3bUEO1aIpV/lTztaKae0ST55BAIBUmhAIBV9VpY9rbP7yVGQfxKmf6Te047jfMBAJqpBqA+r00W92Go4lJjbam1DpBR5BAIBAIBDA+qaCTQUUQjbWbVLUybvx5hBNTQgPqGP2m1JpdzfUi7GAgLWn0+zs+cDMuo2t2DzwpUqxSATQgEFX09L+P1f9PJ+XgrV6COvUYEP42GZ/4Gv9KT+Pbpm7m8XvDBaJs2UEcAINXpr00I01iDcD6cZ0WtliYKUkrd++Ppf1Bcwschwnl3u4Bq2poQC2raqyEPpwoIPU7Pji3Gpk2NrAQQQCAQHMIfTBqi0v7egONILU9yFUqQQQQ52rVoH6NoLugo9I7+5MibH45hF+3tTyB77GaQTUPaH0DY3u8BN0bz56TNHGPPaaA3ocKVcSL6wEEFSaU08qwMD50URkNBRQNj8cdq2qs0qzSlidG6iggmnACbxpVwHzYozIaCYwMFDO3F8aUUrIzUnhanWxRvqMWjqYnC7UUgkvb+sSxCdlftVRo4AQCpDF+wPmMaXGgoYhGKxWL4EV5RLWi7Tte2ugn6iR/kqycBQSmJ+4I04bgmmlrIb/5AgE1DN5HEfMAtaeD0x/vgeEuqYwf5T9XI798KVYC0k1fgVKCOx5UMweFLF6bqQCHAfR6WGvyPEoJzwAn6p540qVKkAgoJN4o+VKwxutq/9WIIYpUhgcLQPy9LBvNnwq4lwCM7g40UST2eIQzSDVtTbabCNSNUTzE5TMo7ghwrA4hBD5EMRkKaABQ4yTNj8qSQvNn2qTRgBUmHaVIyxuCjdY2leOFKsDgAq+OExheaCYwMFDjPN6YTnuebPCuYQQGaTHbU9ldhOF94CrgMUgFXwb5tF9BQxemOBeB0VqZ+6aiS42UAqzSrgFSamhAZAVJppUq5AKlXytLBtG48HaloBTnF3lUqzWQFsXpotQC2oNQGKzSpVypAfL0sO47iimyBxoKXUbemqXUl/XIYOGoYIQag1AKlWQhwrgPlxx7zSfIB+A8KScu6b4Qc4CgqVKlXAK8tCGKVKlSriOJ+WMBR/iOltW1Bi2Itr2QE3AwM17RVKvkjDUzAQwQqwcHg1BDgAq9yvg//xAAsEQABBAEDBAICAgEFAAAAAAABAAIDERAEEiATITFQMEAiQTJhIxQVM0JR/9oACAECAQE/Afmr1h9q6RrPKdq/00JrJH/yKa0NFDiVeDwv4q9G/UMYn6qR3hdytLp3A7ieRKOS5Xi1fq5NSxvhSTverxCRY7WeRKJV4tHjfEZH3z2Umqa3wpJ3yec2omdR21RxNjHbiSiVeCVav1cuoaxSTOf5V8GMc801QacR9/3yKPrpJms8qTUOfxtNaXGgtNp+l+R88iUTgq/hHotRPt/EInjaazd4C00Do7JR5HJRzav00r9jC5WiawMWmRuf4WnhMY78bVolFytErcrVq1avNeiK1Ulu2/8AmHiwhmKB0nhQQiIVxOLVolWiVav4qVfelk6bd2CqQN40+nc424dkAB45FFEq04olWr9Vq5N7qH6yE8V+QUTOqaCY3aK5FFEpy3IuRPq9TL02/wB4Kbf7xC0SOpRQNjNjkUSiUSiUfkHoHODRZU0vUdeAqxpo9o3IHkUU5Eon46+5akZvb2UWrp3Tl7HJdS1M/U7Dxxi0+5284BVq1avBKJTiiUT6i1rtJ12WPIUGrk/gSv8AcJYmfl3TNc7UdjxYwyGggK7YCtWi5b11EZEXon1NZ1WnYZCms/Ha/uhEA4EJ2AqUMWxvAuVpxVrcr4H1BU8/T8eUTwKC08e43koolEon1xKm1f6Yib4DOmoMV5KKPCsUqVIhH6dfQc4N8qTWNH8VJM5/lXzDd3ZQsLGUVWSnchwKPoHSsb5KdrWDwn6158IuLvPxAoDBRQKciOVq8n70szYhZUuofJxtXmlavIKhlbK2wjgjFoo+mlkEbbKkkMhs5vFcbUkTpB+HlaXSyyMuTsv9PI00pWdKt37xDIdLLf8A1KsEWMOKJ+M/dc4NFlTSmR14vkDY7IbnnaGlN0Dv2UzTMZ4C2qlS1MDZmFpTCR+LvITm7gtDMW/4nIpyOaxXoiaWon6h/rgAqzFpXv8A6TNJG39IDhaONZp7/wAjfIUTgVNCWd1DN1GIlHgVfotZPf4DiMNYXJmkYONq1atEolTRdN1jwo3CRu0r/hfg4CtHnX2gtVqNg2jzya0lDTtLRaDQOwzfA4tbluTqcKKFxuUrBKxQusbSj6WaURNRcXGzxiidL4UcYY2hzvJKcVatWnjcFG7aaKe2nbgvPC/QPeGCypJDI6zx08XUd3TWBgocL5lEonNp4tMffYpprt8Fq1f0aVc3Gu5U8vUPANJFhaaDtbk1oaKCvF4tblfAopyvNq0RatWrzatEq/sjGr1G47RwZpX2E1oaKCtE4tWrwSt6EiDkXLci5OObVq1avA4X9zVT7BtHnDoy0WVDpy/u5Q6YR9z3Ob4jDkcAouRcrV/CD9+SQMbaZETbz5UUAb3d3KLWk2VuW5WrxfAYccWrW5WrV/EPulSfke63rei9b0Hc6wSjg5tX8YVq/tuT8FHDSgcDAyUUUckq8j7f/8QANxAAAQMBBQYEAwcFAQAAAAAAAQACAxEQEiExUQQTIjJBUCAjUmFxgaEwM0JikcHRBRRAYOFy/9oACAEBAAY/Av8Ab6zSNZ8Vc2SF0rtSr207RuG+iPNBoJNNTXvNHPvO9LVSOkDfqqm9I7Ulb2QNjachdxPeaV3j9Gq7euM0asli5MZGH7RL6rtGt7xRrt6/Rqu1uM0bZgsUQ0igzJVyMfE692LG+bJoMgvMfw+kZIuPguxtJVBi88x7rxuq/wBAzRAO7Z6W2YW4BXGNLj7Ihxq52Y07qdn2V3F+J6JJqbKnAKjRZkrsd4nQIia7U9Kd1ow0fJgLKMxOiN/CnS3NUiaXfBXH3b1endnXTwM4W2NkcMETbWMcIzJQiDr3dnUPG/BtlTkLcRgVvNoj8rQ9VdY0NGg7uSORuDVRUbYYZOU5exW4HKMSfZU7vum/eSfQWXim3MqY2M3gq0NvJ7468Xd3SyHhanSu62AIJt4G6TRCVxq+Rv6DuZ3brruhojBKN3M3NuvwtL5DdaOqutwiGQsrpbG+cNMRN673UzjB8Yr8kDxPLciM/wDqEZY/eIUfWMdLAFQWCMYDq5NY3JooO60OSk3D+AONEJIQY304qap7ZiX3lhlZihQVOSunmdi7ux2eE1lOZ9Pgu9eixWozRnrwRnD37qXvcGtHUoxbJgPWqnw32mlV+ZqiAFCRePc70j2tHuUWwN3h16KsrzTTp4/ZMiOF40qmRuIJaKdw8yVjfiV5YdIf0C8u7GPbNVke5x9zbgsrKWkE5j9FE8dHdvvyHHo3Vc11vpCxNuS6LFypZQ5K+OVUVFUYJklA6hyTZG5Htpkk+Q1Rlk+Q0swVTgsqqlLKqqp1V0ggoncl8XVB7b8cujslcMVPforoG8bdvVFjb3wcqjLtZkeaNCLzyjlFlcgsvn4ANVdkBb8QmhkjHh2gKBkc271DaqscQHgoOcYtRNKFVxwOaEROB5f47UXE0AV1hpE3L3sqVSytnWhR3g3TNXDFNoy84dXfYGdo/wDf8p2ybR93Nh8D0KDXGrDyuCvfjGDu0/2kRwHOf2sGGPgocNE3ynmvUBAhhcR6j9neZyHlP7Iwz4vbg7+VupuXI+7dVUZdn3bD5rvosVgKKtt9kbnNrSoChZtELS5jQgxoo0ZD7R0UgwP0V4jLP8wTZYqF1KsP7J2yP5o+WunZrxxeeUIySGpPhdQ3WjqUImZD6/b3cpBylHYNoq1pOFfwlM/qMHq4wmysPC4VHZDLIcB9UZH/ACGngwQMjDuhmrkbQ1un+DvI8J25fmT9g2webSmPX/qm/p0lSG8Ubuxl7jRozKwwjHKPBI9jcGDFGaVvG7IHorrGho0H+GzaGvMUrfxAKtMexnZ4j5beY6myiutFSozI+7XnGio0U6943EX3r/oFuSDeGaEsho954WdaaoTbU3h6N1V8cT9T07y6Z3T6p+3TU378Yw7ot7J5sxxLig9zAXNy73GZMY2Y3dT/ALh//8QAKhABAAICAQMCBgIDAQAAAAAAAQARECExQVFhIHEwQFCBkbGh8MHR4fH/2gAIAQEAAT8hhBgwyGCcYxl/LkIes9JlIkPQFrBxgwQxGLl4PywlSoQhCVhyPoUqnlt+0v1GjQfjlle9ehX5dIJpdTp+7hlQemI1GKhAQgQl4vIX8oQxUrJlzcuW1H8jLNvB3+cLdDmLsspP5nYYmQzVTli0emiCKwxYvliEPSYvCy4YnzLj3Zci14vyzd2PLHizFp5391bggZM2QZMEIZBFYWOH0vx6lQMkMVlZdCug5Yg/iR+Zd7bxfmdyOtVv23L+b92CH7ekPacvTz85HF8HBWIgipywqVGLFjFl/JmD1glRxxxep+RjO06NYmhA4mrRGK7XLzzq9D3ilv7Ug9AMOMIYCVK9BcUWLF+XIZqVCDh545f5dps1+pz7vWKtwkWgCbX3lzrCBlXpFociHEEkVWAhxkOAYBKgyWKLH5kYMMVhUuahoOng/wBxKycq8xblDb305gmhLtavywUCbl3GJvbsAs93rhWSBiGoZwggSsDLwLF+cIMGER7quOh1f73jKNIHkbYPUnuBQBQaAn2nSG+zLDLw1CW5s048X1yqBfw+vKmBci/QBhRLP+4zrHvVuzxEhg28957Iu+bIuCJ2ZCRKK3VZHUMCWyj1DKRWbjh+eJcIsFX/AGmMoHlCfhigapLHvHEdXqF1gLNN4XIeAojlwhDDNU5eggegJX0WwN/f/Mr+FzoN5i0NQ/b2vrK6B1dx4SqFlorcckUMGoYfQUGLwel+OfJEy6a/YzrJXS0R1arR2ZfbApLjOicfublHf0O2KlSvWoUwQl5IZJcX58lCAL9/ETXlo7HaDggkcnMVeype8hTNUSdPNWRUMGmLm+aECBKlQgPQfOVAg03UH3IFnSs15RzAYI0Nqm07fe8su7snLsKSaFXFSEKduqIaayC+LCYGiZgIECVK+gk2jPXsh3EDxj2Svnp+3mcaZ1KP4mySeLxZ/wCxIbjVtXHSXfLLVvEurDdGgg8UT2CcIZZKZdg+EXGRBiQPoxcRAAopGGmpi7KuEvrwnwja4FK9bgXcmyaiS8vVAJazQ6wj2dK48fbBSr9ABqUlIQQ+lU7YKP8ArcuXi9LHo7jg2uEnA9APiE7Ude7n+IOQzRlx6CEUUH6HUCcuIEoJWv8AA9b7doqIq4YNMo91A5OXUp0Sv8kEoH5VyGkW5xgghGLF9ITh9AvCTuHVL0u/1FqLoOh9pd4Emq1BHCoF7L7Mu5YfvTd2AOJeHCaMeRixwuEH0Jfid2whPBoWIPuv5Med4LpbLvmWWoMW+odaaeJWERumKnfRHXRLmFLhi3iYLJTFTmMfSA9avB8vtcXFyo3t9PSR60fvG2NaJl9/aM6ofaeYd5fR/wCwLDtwr2dF1C6a+GXF0i+wIGqIvf4l4dN08nhwWILwGo9RcVKwCGQ+Meo+AuXjqLtEo/QO0Xe5VtRx49nmDqs6qS7SR50QcbdOScPz1lBVVoo5Y4G++o5dpq8L48w6rWdZf5luthrrUXzFztAXT2igO5N6LQB3Dr7n6hIIKLE6zfFolYjgMH0GQ9R8qAstqy/A1dsjuDbaNMf700o3EUzls9sjcrV13drzHdAB0/d0QCeHuH5iRGlXy/zChRqXiRr0Nq9+z4eIu7Zfceo+YNNCD9cZvX/I+8ME4xIS4ODhgIEEPTXoD0nxTBCtXpGLOF/ZluI/AhCbbq9R93R1KAHMp8pd6cLRe5UHDf6Ihibra9+3ESLjmVFHqDpr+H96f+QQa3XqfB+vuxau/pf+JDSThTv39n0FzCCECEIYPgEXLyYPh2rsy6sJup3BnMOY2A5TYl1y3MVeJ8nZNiFLs/jiLeSHopolURBHSMO2cna/4/XtNW+8ngxKDTacdp7c/mEEFFidc0iYjlcGDFCHxCHpPSRnFwarp7yjAX1mogDsRDC9QT1NAXApUa0j9oUIlB0zUqEMSWTXh7UQeq6JOjBanC9T+6Yo4fLjyveK7T3zx+0WCJKhCXgyXx1ZIZYQ4jirQ77/AKjqX2rOcdk8S91KJOlNX2hv9x7u8rDCBDCesQFwq2f8b4mu0H8b7MA/R9x/pl0oUCEqEV6QggQfFMRkxccKBnEd3aKfz7A7QKpB0nPfBAqFXxFTNna+IDCuBAjKjAQwIQgyQSsKxhNuzsx0wG+Kf9JRFvQ0nb+b/MCDBWTgYpFfGJeRDDgRZbTpN6K6/wA8Nbh3hvQtdE5LA058HmKLU0Lg95UwehRgIYIMLXF4DE3BAgZKskHqq4uAVVilrEySGEQfIj0DLlxxzaur+1Y93RKJCdoDnk6o6feU7hbeV5Y4uj0Mlk3wKehCiCBCBCDEkYYrAPkzJgxUvPp3UnQTa9bmld1fuLt0iqBzXT7+xEhPS/ShhDpA3kDXojqJqWeoMBAggZqCMPkgyekgSp0veju6Ep0ieAfRYoWx5DxAlIjTi+YPEghNTlAY4JWFYDKuE0wmBUrIYqVBkRRfKHohqC4Xc0/7/t/mACqhiOkolSokqMXcJLYjgcECEBKwQh6RKgSsD5AyYMV9BBDKhQbiTjCKpeBDrEYGIJWHB6ySpUCV8b//2gAMAwEAAgADAAAAEH2HUWVRt01vusrnCqQdyy4N9XeYWWL2cdbhqRx0hGkn/wAs0nkte+AQgaKPE2wWfkGt2j1Y/JJpId4PnLAe3/kikDJPKyX9pQNglIi9KcD3LyLIV2KB7QVOhQZHc7sQaly8r7/4D4Qydu2J49xjIXy8xb5zVpyBHOglgjzzstSQq/p8m8/zqMBYezDcRwhuKVZtACMCW0WTFLAy1sZGYTVrfsdgKP3Q3F7rKImyM8xCB83o55LZ6wGYu5RdeI7Lp6AMoRWg4CLzuePJ7M55rLG3M4oebZO68kG2S/DT0p3Th/cUmwbUm7g/skONjaEm2qCyavWvb6KYFW2AmKms78tEtYtZbdAacIzaL9b6iRIf5emPy+0ABiRvgoxTAR8dgDbD5plFyEogUtcBEv8Am8krr0HX0PRe1t89izE+0Gjz8jUaolnmsk5yyiks1bZKkkNqS2w52KAqkjWVytEkmiuysoYxLaGX0Y/4aHqrhKS5MZ6YkkkmhsqzkkkQOp9gfQRBkAFYPmxJR4kkkkkb4Epj1ujAAUPLDQOrC6wQNRtM+AkkkkQzNwgHiYE28zo6YUo8csVUJJ3iREkkkCxdyIQYPqE2UUYrF8dAbxwpfhiBMkkk3+ww3QnxeW+y7PLTznY8DudN8XMMgHkrSWzu++IgiYVZqRZkUV/WYn7Xgnkk6khawJJQuMXP3iflDG6A+EBhYBPQQMn6A26DRwYBa/r+b/imdAcuoISNcLhqkgMkLg10wsUTJlq2+UaWXKVLueOM9rmmkkkncCt+MbCVspCfTY5xK9Il1hvLkmskmkHxIQqM7/EQmpcQNRUuLuw2WZXkoEm00oQG6Df4BzRLB39WcnufoYWtzmwfMmm2AKgGyksQOV3Rqr9fM2DZszWWBkgkkkkXW3qeeGsg2eGFYhkGJlRzvk65Ekkkkky+Ti1yD25a5AtyDMXfugXkmYkkkkkkkcL9pZf+MoG7i7OqkFJtorQTzkkkkkkkmCfngR+ZIUUu06s8RU1hhMJikkkkkkktGftSppknhiZ/VhReALFkhOoQkkkkkkInvAZg3jSpMLQ+AHeigckkv8Mmkkkkk//EACkRAAMAAgIBAwQBBQEAAAAAAAABERAhIDFBMFFhgaGx0XFAkeHw8cH/2gAIAQMBAT8QzRCdQmJkEkQsUuLxmLCjE5lBeiWKL0UTEwjQsExOi6GUXXF0XgPKxvitnR2LYmdjYniwTJiZIaEuE4I160SVh/H7NRZ+7H0ZQkJa4KGsEtEEFmjGxsvClKUTwhiJBZWh0QnlEEsJiylw2Mi+Tc7v/fBHEiAKv8ft8UhBCQlw6BojCQWIQbKP0IQgtkOxcJwQhEFhdCQuO+0fP6OiV+7E4hdiO6EX3/6TigooFQsZLCDRCEy+SylntYpRP0Esp4lEsLC24j2I+/8AY6tv3feE/Yttll2Nb09hMeFgWJUTJSIIXBvDLg2UfJCOspHWEXKEI7wkISFlZWkJNf2aLiUXtE1YaBrBD6wlj0ExLBBLCFijeG9FxOE4pZuKMWi0vG4Qg2EbxNe5tJX7sh2GNCd+BFGIkL0vPkhDoSEqJYEhBBBCEELDZRso+FFzomJEEPQxEEoXFELMCR8L/Ikkdis0uhLinsEKC8fIw0LQ0I8WEiFggihJmlGylLi5XGlEd8FjvhcIQtCYhEl+u3/H+X9qQb1E98kPpiGyF1rJ9xhDYhGNfEK3AmFkuDZdYReK4dYSFiUhcI6LwTwsLDae/wAPH7+olBtzJtNDYnv9g7SmEJCELDDEs1QXCsnil9FsuEMTEUhBaLcrZBawnjwRvDz/AB/nr6iC9mLYugo+A4ANa2UI7EKGjhCgo4JEy8P04QSIPsRJwb4rEZsTw3z34eBI0tLBT4/Hwyg9h7G7ZRYQhI0DBBGWCcEuLw2T0FyeE8JCWUjo7E0XFx2fS2//ABEp22Ik9D6Hle/Aj+D7kIQRBeBchYhZUQuNG/QWJvmsIuhDwsdkGsdiYldjFBfr8sSJMFsm+hzT0hqMgkQhMGEuSSEhYgkJcExvC9KE49Y6WFopKJQhDdlV5XwN7F8eUN4OZJKtil8j7EZ2LhbvIO9saJw0EHMcsSCCRCei+Gxems74rCwkpK5Jr2ur+xZlWn2ot/v8lYz+C/2d19RIRbpt9/7rwQREkJUug13YyRYJUiUGLHiFgWsEhejcLM9FcfOUxDwh6YwnUSjvappVPaHoLfa8X4+DvRev74oZdHR9LoT2JkpI2wVIIFAvWF6lwli4uVrPkQ1mxv8Aq+P4939P4SSKWD2MO00ntlpWKGjIrXBYYb0pl8exC5z0khjcP0n7/QhaRDY0JoVbQlZaD8CgQ0HrOovDobomUIr1BeKzRCxSiKJ4oncvDSFY1t4vv+jru/fyQQmIaF2N4IHHQ3rif6KI6GrHO/B9D1hCVFgvQby+D40sxOMxZ2drv6Hiv3fj9nlf+vgTRi+BvCFQ2EniC0hCNhuPIuhyyD5DwSEEsF1xvrJCR3yQkeHnlibSv3ZTR2JUTQQ0FoXyXL4ErcI04zsfhRjXg0wJXCkF1mDwpTCwXFcHyWeuKz1l4v4oIJJESCeLRKjZONFeJN4b+4p6jzap+z7KvP8Ab9D1P+HhlPb70/8AwbORtC40JzBNcFobEdBdZeEuEF6DFyRRA7GQL6kNxKD2yknoa80HZ10vktdv8iiPaH2HhmKH1PleRluhl4ifq84J4bMokIJcZwhMUvFcZwY0XYir7CEhPwNBMpdbIpbf75La0XwbPBMEEsL/AAvr4f8AkWPoDMn9UXU68YlINzKCQsJCWE56NGy5hMpTKFwR+Ji6Eh0SwhLYzNtaL6Ti+C0kEIQWBYqQdc0+6/wdBkzWrtCeMIMMaF4KLIXoLhOEwkQgsJEPZt9xItIYmM6O9Y/tTbHr7HiEEhBBCjFWBFkNDRTf+plS/qK8CzqUWSGKUTyYb0kpwj4IRMJYm/C7EpGkJ3FGyT7xjKEwiCQlhLJSyG2E4m6NoxbFhNwIJCwIJeiniiEIayhlySQUSQkIbRsU9lj1iWJrBLCKJiYtFwJJCSwfo+inxkKUSEokXBCCwUJ6SxM0QohcHv5BMfL7xTwPV2MrV1+R8ZWNEIJCvGCwlFgpghD3MYWntCQkSgkTCQwRSL1ITC5LNEe4f4I28NJC4W39mMq1GEEosoUsOhhiLiwpCEEkhIWU1BieIIQ9ZMvBbysJEIe3K/JCUWxl2zyK8x/gRwohIhEJbySEzQmi5DBEQQSgkIJwYagmL+gMWijwniYQkQetRmup3PwIuoObtMrBChoSNjCSD2JYkEqIyIIpEJMghZQg0JhMTE/6ClxRFwgtISsZt835xXDckQaPI+sJluNIJCaOsIJCEwlhLhBMEEhevcIRBZQp2G0XBSCmNUxo0FvCiEdMUEhbEpgSEg1hIXKDQgkJT1v/xAApEQEBAQACAgECBQUBAQAAAAABABEQISAxQTBRQGGhsdFxgZHB8OHx/9oACAECAQE/EA2zjLJJvXJEEEQ4PwJL5LznPx4MMMM8PBLOpj1y8M8ZZBBBHr8Gy2274NtsPkl7jkC9qG3I+xwgI42Uzp4L3Dbw2WZsssggiH198H1P0Q8es3X8rrOp/wB8yNq22gfv/B47wK23OJm8CbbbwPARHO/SbPDYbZeV43l4756Xs/8AfN7Fw+xYtfiOQ/2Pz+fXGx4gxZq52HhvIQ4OByeO22cPhvO28ZzvKWSBq3T9n9LoF19iLD5g/EmJz5/tZj2+88HGUspteBjNmbctjuIIizgYbedjgeM5PBs43y22DjpDtke09s5XLNG3Yu18/wAS+X2nqWWW22Z4DYIIIPE8S2J8N465ySeV5TgXt3dDuFswZFiwTrKlexn5W287ySymLPK8ZBCCPELJjrgPLOAs5ecsnjbbbt+39rR142D7y5AlebNsn38fbgPA2yzl2ertKWWeTLIIIPE8sstvjk52zjPFsmbOPfo/q/wfrl2g9p9dQi19pnDs/Hu/pJPqSXPMasa1rwBZwCzwzgILNg5Hfr5w+Dqnr93z/H9pbSD3euWMEnnQ+8pDu8MzCWczwnitbq+GQWcByZwcZZ4B4FsH00sstH5fH9f/AD3LL7XpENl+0AgNwZZwzw5eIBrrw3neCI8Mg43keFtjnbfpZZZD8N+75lg33CZf5fzJz6IAHxHLMpXRKfAB9Asg+k8D4t8cbb5By3pfbo/mW7GE0MIj8fmffL+kW22yy8SNSzwE+WQ8ngs4XLbPPOM4PANjrhmCdEiv18S8Cb7D3Fs9vANtttvEXTmFl5HJfFgQcnG8nVtt7jqY65HfMt4Mgsfhv8knw8bkQVepV8D9Zs2DL1MHoy9ch4yjwBFzGy+bbweWeSTzl1weAcsxA3c7h/1MRJnrt/4lzJ+bc/yRvpfeHr/v62zBzgEg9T7lOJuEUMHGrLs/S7+mtscZxmwSTHl8WTE7hyL8+fZ7mfgPT+X53R3kMZhw937ZJLc8CLtW7Xh/CngbL1wO85ZHAWckvAhOf+H5v+v+1F14L2Qul+QyyeC4MbWXgjhJJPwG2+BYyWZHBDxlnIxbbYmtjv8Ak/iRKvfgupugsFPmaskeuKl4IgcjxB+APBmWcZZBZ9DIbVkJnZvd+vtw9+A5Hd/dI4+pEbbuQmfcQRwyTJfwhn1vSherrF50nte287ls8k46fF0dz1wXfANLKYjg4Me5fJln0dtt4PpbfMX4JDtw+1t8cbY4HcmzMevm6Gx2cYWh/wD7weLcmvYdwXqG222WZ8D6nxznJ5rqc+G7bVhx6ZetsJpaQqPk/acN2+Mx9+/6XqP8WDTP9vtxlnt7/J/7+P6BXoZ65DdmyySyGGXkvgcbzvmcHPUPk6bolS9fHDi9wcfM6dwbdpk9haT0/wBO5rT2AdBZkX9pt+z8P9raLOhP9n5PsjUfUjp/R/7/AL/MpShk4JwSTjbSWfo7bHlkE8lngAV9T5np6/m22S04ZZKa9LuezAQcbw7TMg/uH3P5PZ/iZB9M0D2emHb5PfII7g5Fm2ec+jkHhsc7zkdcbbx+6f4ngMJ5OADZamv5wYQcLMYc7oY2l7H6P/v73zlLH8lns3ko4MmSySyfFtsfQe48Nth5WV9yX6Tq6wQRBKdEcHsicOoh4bbbwZzMYEeiGO6xP8iQjgt6tmyySySSfEbfobwS8jDPGo+X0TD2MxZHVqfbBvCZZeCy8gx4Ryl4Lj02zjeGwc9Syy+GWWfQZh8CIJZbaTmfcXTDr5ig4Sw2xF4eWfMLbGITvzYPntCpZZYYhl4Nbv0Ms8s5Ak5JgL6Jen0euPd84ToOizZ+/j8rDOEzYm8hu0smXFTNtmF2ae+d5EeQ38Klk8H1dh9H6w2R9pTLh+pZ5wjgL3w6xwwjHBrwPA0ltmMeDUMuFtn8GPFbeNvvq/Sx9sA6dhPQXZELaxN6mbZQ9cFFnyDWLLLLyXrgHZNmfw28NssqfxB9t+h/eX2/Yi5dljg8Q8NJkfALdJup4mbLPkT4SSz62eBznDwsLo/A+Pzu/ILvbbDwOwTMzgcyt4YzeXzURm2/WPotl6Q7jguEJYeDGCzwSl5FW8Lhnz22H6//xAAnEAEAAgICAgICAwADAQAAAAABABEhMRBBUWFxgSCRMKGxwdHw4f/aAAgBAQABPxC2JlBL4sxx8ApgIMpux1ERdxmuAzCVKmp1OuAlSoSqhCEqBBDmGJAxCahgl3waqdzqYlPqCRLJbKpvKuETFhQNuIYSptCFloXiMHAh4uMuLh56hycHAQiSvwIOBwWu5rBcBUqoMMtl4nsixcTCMaMsP0gy/RLS4pVHqh/wQHKKHM8Ob+ywZuV84lFY9w3eIZcOGUwsxLrFZTOOLcfmlU0xPCWR95iZYtRgeKgQhwEDkgQ7lQJUeWriBcIFAqGo4OJcRH5g3GkOsNMxsd3hdH236l5cx3z/AB9VGgo2kq/+9yhHi0mSiye1QlwFQY4q2ZYz1x6yzCXqUaRswFamJCvHRChEjruPURjweJWIk7hKlcdQODg5CVK3ByBKxKzOptBxGLnghtAknigi/QfVsY1dvbHjY/5GcQ5cMoh6802EsaKwCbA7a8p8Fy1gk1FmTHS6nqlRqXdT0ygg1BcsI4VN9So4LUKOPBlQh74BKzKgSoFcEJiHAQJpPhwkuKLFSoQFEvHElWCtGgJXuMW4vvX9XGgYqWQ/LbFJcld7hkA8soL2LxuINdBbc9bP/rqANGp5/b48EMKrgFy5mCNQRwSs7YMqhNYpUyhlqUOYeJuhDElQhMSuCVwQIHcz+HhB6ivECEYjDcylkKRYmYskuDnn+no+6mUB5H6V5+W2D22AO4YP2RC8/Us6/IhMqTrHyuiAnqtNDWh6P7/yg4dSs8ARJeMmGGYYYwPuPMRUEjG3ncOIqw5CE+uO+DXBDcPyJcWYoa4OB8V2blW1dkK8ej2/QxNHGFFP2f49RFZb9wqcEyGvcpTDpe0bXeGIMs81GGBqX9+Ja9BF1GvbnLMVyiFkqyMvDVmGiWvJimYoDxKMzAi1Em3PCrjqVUKj8zuEIy/xNfgsuHBOocHljIUwtDaXzKExlzbv2+f08xU8rYKe2LsrALILP6DzPlaYy/cQqfFSf7MoEE2McB+i0folIE6k83WX0wrVY3KrmUqETuDPEiyqM2CmCYuFa1LzBB1K02zbw2Tc6gwYzqH4Gp98kJ3+XXNwvzGyrcKptF6LKU9d9UQpVV7h9AgKlni4Qg0CGbOmDI8MA9RQbUwPZO2BgZuaRKfLoPmWQ1OYhqlS6UtvmjERUWZcVBWJpwRZV1LViKxPEc6jPUp3MMp4j+ZhHGo9suXcGXu51Dg4OCViGeA4PcxO/wAji4blIT5x+544Aaaf7H+qlh53L36hOvI99kuRUo/tFYmFuyUAkOBodTf648QGs6wLasDox/vG8sh1FcN9SpCi7qCmoB1PXBhnUpKJRCUstluLl2S4TPFwccnITrgPxXhhOp3Bjgw4AESubJZ/Qf2kYZsu4j829vRKlEG1IxCCADQ8j4iP3IH+kU5OwfRixrvxiawfkH0RWcbRQLZhl7TKo8RFOpeanrgkKr8AENcP4HAcXwQgSpUCVx55J3LnXJ+AwbllWoAWr1HrlUdAc/Zz8VAYQK18HcwrezzFqAUq/MtmE+C9npqk+PEbWLYrQgvkt6mHAMKtaKzwrHBzOipe8JRjpTLuoR1CIASw4DBArgQKlYmNwUiwlcHHmEN8HO0eTmuOo8GYstnrgmQPTTTp+zR9+ItxONeoGVYz2wKkm3OVuvSV/cxC9jGVJNmkgfsEtkOCValaY9/0RyR4FXqBtlzNfED1Kpj1KJiY/AeoMco7lAl0XghC4EODUCEMXL/O8Q5udQhEjB4AMuXldD2sarSF2OsegiV5K1U0Hlq9xeXo3AdgAnxYPkGKiIQaWtPstv1KVi+ouoi3XAEMEh1CRi1xUHFg4WiSj8FFZb+BAhDk1x1Dg4qp5/JlLLBBgWrBd4TZ/fhGOCax9kdiZg9I6XhaLQf/AH1Gi7Mb/wC3+fuFnsdsvfQvzL6L8ZnmcxEC/AWtYeG731ACAAKAMEvtqbS1LBqIbIt6iRTBVhmHMqJXxYJSU/IZ1yQhCEN8EITz+JyS4pxcUrgwUxKMV0d5iX5Nn/2EVBtV3yIsOsmHpLgK2JE85Y+iJwKjgsEaA9LbemtRC8Sh/BUuvcastj1K3Oi8dRwbK5RCl/OvuUFAHgKP8huKtE8SGskAajYcR1xAnUM2f1CMEI4GyUfwjDjEqUwhCVCHPTBK4vgjOp1xqXczBplDAgw9QGEdjFnKSNB0njRkmzq6q5umh3Lo7DKAtt+rmNKdvqW5sMy4sI+kjtFgrbYKimYaNFIV/d/cWZilzKM1MtRRpjtJj1AOoB1BRHmbR/xEMwhOuCEITrj75oPwvi/wYyrYDE6juwu2Bwg/+nzFdNr3K3OzgRJTY+Tr7gmWfdHZCr2ljflBPIqbtEF9ZDEVl1hvcCAxcSl1KSARCopUUWYfmD5ln8NQ5OA4Ic4qD+Oody8QZcshEmXCe/rKB8stY8tFfF6e3PxEqBartiK1EhbIeqLmGDZRjV9t/r9xWaGg1XklIMxbp3b9UfUqc6hB1FF8Uw4LIKiqYJXDgW9xZbFZ/CQg8EOCMvg3zcZfFwZcWDDtBuFXXUD8XuHhEotN+Nv9SuNNq+iMfcUnbLRzL2Yq4BRbdwMlkXpf80fqJp3FYCoa73Mt1xWgtBYOCj6iWO5bTg3VBMCKiZIuNhjWd0NcV/BmEPXA9cGp1Djrj44HHFy5cvMGXCGKtWhb63BSMxT+xz/U8Q3pg/8AGqj1G2sf9ytgIJWoa1awdKboah5ZkXmNhtq6gqFMBkJmAEpTbIX1fjplxA90Jkyez2J5EsiiL0xLviGmWLI4CwUmRcGIODhmTwUQQQcrUYtmnBxc7lwzCVidcY4Nfwo6DRn/AMx5YH2jMoPfa+2KlfawyqVnSxm0eAgoJsunKXwukLXH6A/vYLF701oRzHqvT5I+fS2YLWr+5nIZfBdYjcUVVJHbqRwyUiJnrMMtqmQ3t8+SUAD0afaHScKmYpRtgjZG5I3NYycEdQcXw6iy4Zg1DUNfgQ4V+OUYfhcJoX4b6Y/76jyctBo6B4lnivYQw5eiWxu1Zb6hQLFXWfhgdyyGiaq5NSptTPzEgl/0MS17TYo6muWAbHpGANMCADTfCL0eYudFQshFJkCVnq9MFoU2FyUDgUMDWaMSgnmVN6TLYtIXs8ywVEx6nUvTuhVe6M43YwgwealrA6R8RRq4BSaSmFoBAYhAhDBBU7w1GVKgQYzAxuBidSuCEJWJX4E6nmLF4ueJ+5j/AJfUfiys4/73axqy7hlWNC7RyV+4IKtslu6s/uXVGTIxu3Tuo1Ors7IHaFUUBfWXBDRmiEj0q0+CJhi1gWqFgPNw3n3SfFqyZAVG6vFpamiQaAoIeRlzcVKd0WCPqLXzfUBd3BKCoDwRH96RhpkMDAmd+e4egRX1nfhc/QzRwUbh4DqY98dqixY4wckeoHRCVKhFEo4wSo1FhMIQZ5mIQ7hNcMeGhIeoBtY/CU031/1HR9xbTMqcu7NsJpFZeGCSjc5auIwY/pjPXyHuIhvSmceEZwpGjfFg/vEKCpS/mNH0RRV4iLuC3ARLEQeNk4AoGxg/SqOqaYWVQI0s3OkV8Kks88zanD7VNX9oyx5TUYWH0ZPs6lEFES5hFZmy0lE1rgMrzX8HRERi4QTuaRYQhi5eIvFRICtEOwWzcdFvB37x1Ea5tFEGl5SXb8Re6vEOlM7nV1UVijkWr9RJHgUxNKNVjOYuLgPsnaK/pEytgwgvXJNjUMtRNCJblQWI7EggZ/hTK3z0vcKQhne/c8+XyN4c6dHBstgd/wDRh+1IWB0j4gxKxLJtmDMXAaJXhpgsVk0/gGXiHHtMItwnXAxAxGOoMNkIDURAa9mU7e/H78ShO1pS1VyxAlFBUFAf8TMPiHaBAlrwRH0rTotY7yfuKaaooDJdLzv3bKgehoHqJEg258YczXgRIU0aQPETAnY6O10j/wCphElp4z36H+inUaJ/HxPgGiOk9MvnWnBXq99vHwniBUsqoBIE2xCxwXmW3HuCxvA/4SEGDBgmUnHtw+omL4hmEMcCpfsfT/5LulM7i2OpS1LepeQZgT4I8FJblW0rurfr3K1R6aU2vbARwRZhthQ3qHjHlHBT1MHAwYBqs0u/Y78YZbKUdva/s1dJtjjQAWBWFa6bH3nbL7mruk0+zT7iuGFp6JUJqK5UBiLylH8BUOLhxp3AckSBBGOEVsAsrFHZnoHtjpcq+oiGQMsUKZXcJewgwdeHAv2xEprNlOrna1rNRrw4NHy+X3MdwQSRN1KYcwFRZqU6mbiXsxcBkBWo2NR34wwDXu8P040YVwFGV38nnF7GB+vSxNLbWQU6YeI8DSMTPCRd1PXBIAP4RhDWZ3CfOYQuVF3FiKdRS8xmU2KAbY0UMjs8/bDFquOsrjIooA7jfHPFauqgzs/AwpRt07VHtMV4vzCbIsGH0RdxQqZJ6ZcaiqsIi1ESCJdjXxrSk4V4G3UPndE3VoYtK3eoVDIHJC6L8Fv7ZXxAGBUQrXCqz1z1wCAH8h4hCHBYLBmCEaRy8zvwyMB17D+36jdWP8J6TLjoABaszbLUdZB5Wb8e4scGky608qxHqUOSF04F4gNSp1ANVEPBGSwjNJLiUxL1KXBaTZjhu4KkGoOAXC/CZ1/MMHi4TSEqCAyxG44Q21oLdMX8uiEGcKIGaTySpP57oF+AMK3nqYALQfoM/wBjG7ZxjD0NPvfxCdwXMHKpRGsNwyBUrPEoC2JZupX1L+pT1OqohOiYuM6lYjuNphgqKoiVhr+YZSDGKDCViE3lpBrUISz264D5YKF1GYNausUdEv6MPYNtQ9325+Jc5wNXCnzCbJpqOMQJbpL2gCAOYzaVYXXjoISNwkPFAOoPiV9QMPCCaTSdSkpMEOXh5iBX84MGDdwfMIOY5cILlEDQy4hKCxcD6C6O30zTlAPEC8EHxAdIl2ph1CRqUtIQGVYRzFyxLiVkFsKsyg43zPMcR3ACHMMOPwSypjY5szwoQZmn8twgwXDc7/AwiVE0iM3ZCvUGrgIjCQcCMwUyVjhqKWDLmFBhVBUF1AZQgSBiDHBghr8QSJgCBUAfzf/Z";let U=class extends l{constructor(){super(...arguments),this._refImage=I(),this._boundVisibilityHandler=this._visibilityHandler.bind(this),this._mediaLoadedInfo=null}async play(){this._cachedValueController?.startTimer()}async pause(){this._cachedValueController?.stopTimer()}async mute(){}async unmute(){}isMuted(){return!0}async seek(A){}async setControls(A){}isPaused(){return!this._cachedValueController?.hasTimer()}async getScreenshotURL(){return this._cachedValueController?.value??null}_getCameraEntity(){return(this.cameraConfig?.camera_entity||this.cameraConfig?.webrtc_card?.entity)??null}shouldUpdate(A){if(!this.hass||"visible"!==document.visibilityState)return!1;const e=this._getRelevantEntityForMode(this._resolveMode(this.imageConfig?.mode));return!A.has("hass")||1!=A.size||!e||(n(this.hass,A.get("hass"),[e])?(this._cachedValueController?.clearValue(),!0):!this.hasUpdated)}willUpdate(A){A.has("imageConfig")&&(this._cachedValueController&&this._cachedValueController.removeController(),this.imageConfig&&(this._cachedValueController=new p(this,this.imageConfig.refresh_seconds,this._getImageSource.bind(this),(()=>E(this)),(()=>u(this)))));const e=this._getRelevantEntityForMode(this._resolveMode(this.imageConfig?.mode));(A.has("cameraConfig")||A.has("view")||e&&!this._getAcceptableState(e))&&this._cachedValueController?.clearValue(),this._cachedValueController?.value||this._cachedValueController?.updateValue()}_getAcceptableState(A){const e=(A?this.hass?.states[A]:null)??null;return this.hass&&this.hass.connected&&e&&Date.now()-Date.parse(e.last_updated)<3e5?e:null}connectedCallback(){super.connectedCallback(),document.addEventListener("visibilitychange",this._boundVisibilityHandler),this._cachedValueController?.startTimer()}disconnectedCallback(){this._cachedValueController?.stopTimer(),document.removeEventListener("visibilitychange",this._boundVisibilityHandler),super.disconnectedCallback()}_visibilityHandler(){this._refImage.value&&("hidden"===document.visibilityState?(this._cachedValueController?.stopTimer(),this._cachedValueController?.clearValue(),this._forceSafeImage()):(this._cachedValueController?.startTimer(),this.requestUpdate()))}_buildImageURL(A){return A.searchParams.append("_t",String(Date.now())),A.toString()}_addQueryParametersToURL(A,e){if(e){const t=new URLSearchParams(e);for(const[e,i]of t.entries())A.searchParams.append(e,i)}return A}_getRelevantEntityForMode(A){return"camera"===A?this._getCameraEntity():"entity"===A?this.imageConfig?.entity??null:null}_resolveMode(A){if(!A)return"screensaver";if("auto"!==A)return A;const e=this._getCameraEntity();return this.imageConfig?.entity?"entity":this.imageConfig?.url?"url":e?"camera":"screensaver"}_getImageSource(){const A=this._resolveMode(this.imageConfig?.mode);if(this.hass&&"camera"===A){const A=this._getAcceptableState(this._getCameraEntity());if(A?.attributes.entity_picture){const e=new URL(A.attributes.entity_picture,document.baseURI);return this._addQueryParametersToURL(e,this.imageConfig?.entity_parameters),this._buildImageURL(e)}}if(this.hass&&"entity"===A&&this.imageConfig?.entity){const A=this._getAcceptableState(this.imageConfig?.entity);if(A?.attributes.entity_picture){const e=new URL(A.attributes.entity_picture,document.baseURI);return this._addQueryParametersToURL(e,this.imageConfig?.entity_parameters),this._buildImageURL(e)}}return"url"===A&&this.imageConfig?.url?this._buildImageURL(new URL(this.imageConfig.url,document.baseURI)):k}_forceSafeImage(A){this._refImage.value&&(this._refImage.value.src=!A&&this.imageConfig?.url?this.imageConfig.url:k)}render(){const A=this._cachedValueController?.value;return A?m` + {const e=Q(A,{player:this,capabilities:{supportsPause:!!this.imageConfig?.refresh_seconds}});e&&!M(this._mediaLoadedInfo,e)&&(this._mediaLoadedInfo=e,B(this,e))}} + @error=${()=>{const A=this._resolveMode(this.imageConfig?.mode);"camera"===A||"entity"===A?this._forceSafeImage(!0):"url"===A&&d(this,b("error.image_load_error"),{context:this.imageConfig})}} + /> + `:m``}static get styles(){return L(':host {\n background-color: var(--primary-background-color);\n background-position: center;\n background-repeat: no-repeat;\n background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4yLjIgKGIwYTg0ODY1NDEsIDIwMjItMTItMDEpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJjYW1lcmEtaXJpcy5zdmciCiAgIGlkPSJzdmc0IgogICB2ZXJzaW9uPSIxLjEiCiAgIHZpZXdCb3g9IjAgMCAyNCAyNCIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzOCIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzYiCiAgICAgcGFnZWNvbG9yPSIjYjkzZTNlIgogICAgIGJvcmRlcmNvbG9yPSIjMDAwMDAwIgogICAgIGJvcmRlcm9wYWNpdHk9IjAuMjUiCiAgICAgaW5rc2NhcGU6c2hvd3BhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuNjA3ODQzMTQiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6ZGVza2NvbG9yPSIjZDFkMWQxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp6b29tPSIyNi42MjUwNiIKICAgICBpbmtzY2FwZTpjeD0iLTEuOTM0MjY4IgogICAgIGlua3NjYXBlOmN5PSIxNS42ODA3MTYiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIzODQwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjE1MjciCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjEwODAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjIyNyIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzQiIC8+CiAgPGcKICAgICBpZD0iZzExMTkiCiAgICAgc3R5bGU9ImZpbGwtb3BhY2l0eTowLjA1O2ZpbGw6I2ZmZmZmZiI+CiAgICA8Y2lyY2xlCiAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eTowLjA1O3N0cm9rZS13aWR0aDoxLjM5NzI5IgogICAgICAgaWQ9InBhdGgxNzAiCiAgICAgICBjeD0iMTIiCiAgICAgICBjeT0iMTIiCiAgICAgICBpbmtzY2FwZTpsYWJlbD0iV2hpdGUgQmFja2dyb3VuZCIKICAgICAgIHI9IjExLjI1IiAvPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gMTMuNzMwMDAxLDE1IDkuODMwMDAwMywyMS43NiBDIDEwLjUzLDIxLjkxIDExLjI1LDIyIDEyLDIyIGMgMi40MDAwMDEsMCA0LjYsLTAuODUgNi4zMiwtMi4yNSBMIDE0LjY2MDAwMSwxMy40IE0gMi40NjAwMDAzLDE1IGMgMC45MiwyLjkyIDMuMTUsNS4yNiA1Ljk5LDYuMzQgTCAxMi4xMiwxNSBtIC0zLjU3OTk5OTcsLTMgLTMuOSwtNi43NDk5OTk2IGMgLTEuNjQsMS43NDk5OTkgLTIuNjQsNC4xMzk5OTkzIC0yLjY0LDYuNzQ5OTk5NiAwLDAuNjggMC4wNywxLjM1IDAuMiwyIGggNy40OSBNIDIxLjgsOS45OTk5OTk3IEggMTQuMzEwMDAxIEwgMTQuNjAwMDAxLDEwLjUgMTkuMzYsMTguNzUgQyAyMSwxNi45NyAyMiwxNC42IDIyLDEyIDIyLDExLjMxIDIxLjkzLDEwLjY0IDIxLjgsOS45OTk5OTk3IG0gLTAuMjYsLTEgQyAyMC42Miw2LjA3MDAwMDUgMTguMzksMy43NDAwMDAyIDE1LjU1MDAwMSwyLjY2MDAwMDIgTCAxMS44OCw4Ljk5OTk5OTcgTSA5LjQwMDAwMDMsMTAuNSAxNC4xNzAwMDEsMi4yNDAwMDAyIGMgLTAuNywtMC4xNSAtMS40MjAwMDEsLTAuMjQgLTIuMTcwMDAxLC0wLjI0IC0yLjM5OTk5OTcsMCAtNC41OTk5OTk3LDAuODQgLTYuMzE5OTk5NywyLjI1MDAwMDMgbCAzLjY2LDYuMzQ5OTk5NSB6IgogICAgICAgaWQ9InBhdGgyIgogICAgICAgaW5rc2NhcGU6bGFiZWw9IklyaXMiCiAgICAgICBzdHlsZT0iZmlsbC1vcGFjaXR5OjAuMDU7ZmlsbDojZmZmZmZmIiAvPgogIDwvZz4KPC9zdmc+Cg==");\n background-size: 10%;\n background-position: center;\n}\n\nimg {\n width: 100%;\n height: 100%;\n display: block;\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n object-view-box: inset(var(--frigate-card-media-layout-view-box-top, 0%) var(--frigate-card-media-layout-view-box-right, 0%) var(--frigate-card-media-layout-view-box-bottom, 0%) var(--frigate-card-media-layout-view-box-left, 0%));\n}')}};c([s({attribute:!1})],U.prototype,"hass",void 0),c([s({attribute:!1})],U.prototype,"view",void 0),c([s({attribute:!1})],U.prototype,"cameraConfig",void 0),c([s({attribute:!1})],U.prototype,"cameraManager",void 0),c([s({attribute:!1,hasChanged:h})],U.prototype,"imageConfig",void 0),U=c([C("frigate-card-image")],U);export{U as FrigateCardImage}; diff --git a/config/www/community/frigate-hass-card/image-cbfd7ccb.js.gz b/config/www/community/frigate-hass-card/image-cbfd7ccb.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..fd6d123b3bc60604aa523eba2333732435819129 GIT binary patch literal 22203 zcmV(nK=QvIiwFn%(5N&Y5Dh9 z{Uw}#p?}2Mw@rVf*0)`Lr0;KA{z%ww8~%v(Z#(^nU*9(Wk#OI(|MB0xP5h(#HuI0z z`?kf8<=e17!f(_3h=0y0{YdR^+xkD)VCb1%*-gmuKJSP5O(fvfs|P!TJBH{x$qRyumjUH=P%%VOIQM5|1yIPV7l}ergWamzWc+kf0=+4 zejfJUr*v7T?iczm>yU&?`bYZ5e@XxAPkW?){_~&1|M5S*&GhT=|81S z+JZg)=)rXtw&{0=zuDu@e{Z_K%~k%F{=fcpp71YeGlTR0!xR6}g5O8~>7RZ+{HG$E z>1CP9Xa&3MfBiqs^miUA|CFc8-#-Wjq|hJ!@VDpx?e~lP>-zLBfBE&_ehZc1A4B9v z`eXS~{s@2l_oXQ3KmE6*Y}4t_UAlwB`nx;t6g-v8e@=hD83W%&VO;-t`G-+UI4$g7 zyUKs;>W9Degg^fHTUXJ~%b)3A{}d((3miN3O#|Hb?fd$&?YH#rZvVc;8O&sVr~Kou zKmO+|fBFx@f13qZ>6a~R*7T2mi;3SJ`g!yB=x~1@@OM3b{>O9v@z=k^O&U)ByOCR8 zCcnUc`MZ7ny)FM#&eqy>AXxwS>p%bVAOF7R`^4W4@gJ=8fB)%^zy1nl1t$H6Y5(K- z|D)}{&;Izwr9iKh4kes)3?Sbh1 z>*oH!y8q$mfBDV;ywd@Q06X~g|8uFoKk)x)@$XHpoa6s>%D;EhkN?$RfBDN6PQTQD z{sWjK{Lf_@=IN~((){0|a8615$L&$waGEyX^+&dHnxRb^`~+H>yP-S7(X_*Xn>@Wc zJZJ^Rbe_z*0vHSdChJwXgPnHj!1)PWnmGMVh%B+;i z%$|zJ{kOSI2h10P`EZG)@l;@VM=bF4|KIohw&%3P(!5KjJ4ahQO&4J62hZFnlYZ{t zd^`W!_dmRNmfpen^6YldbO?^j{Qmuq!%PX-!+G8wJP=yNtvMLR7O>c0dHBN}O37nqEa~h%9 z(kk7&WJ`}ic2YJ+ZwN2bwN17sv+J>mkcy@;h4l~YZpe3o6!V#(!w<4mX`9G;91)^A z5g2LYG&`03C^)F~5o%A3X<(PWPI|tuls)f7mdz(+@TSH@;>8?X2d?@}$0!5OK8VOI zA#^@O4$BauMJt|}+B*fctM2P==b<|JL5K@%>3(_dhU06un>0^3LpOi1HBHhrQw}>Y zQjtp`I2NY#VY$jnYZy=jry6CZsiga`i7iYtN9IEuIU(QopJO{+ll_{m zu-){`fugCii`<%CNsWHUb9^fYV}lIJ`-)*KlNPz6;M~$uV6Fxpm!jOLoYJ zYH2J|e-dGg>@JA7Q))T50gfJ9L#+tD*2qw$-{UbvMsAlLlPhn<1bKCRU4e{b0$QNi zCoO#=P~pyg40+k|T>bUxh$QR$>lT3(A4Q5>>ta2Z?7j83*BwKkun+diey!F;M$`lQ z&3srI4V~?u8FFjF4}54ucs&Q9>`mIu*%GYLejUcrMLuw%8ZVz-cedgtl3SNuTULp3 zLy$|T>o%!ARATE5n|REKL%ZryQeA^iI*75TgW+qWNcidv`4&KLPP=!8(;lA0lx9yW zUjPCxfj1FGVg%bI)_Sr1?&bUVjp|5Xlc)ugP*4YsmO#E;$G=_1;r8m3k?ohBhSIFxu7~yPCtlE`z;rmX2|%bUCM_wF zoA;wtju9QNo}P&}TH4Tb!;=*Qs5Vxl^<6GYufqyP%V9}kQ;FndANQ{nzu~e}39;A~ zW0y^si`VoJq4cBY^gaOA;PNLRELzze6QuW4sZVI8u;FfC5L0yic_Tz*(;*v)h|LI* z`7vQQ1VIILH@x^^?K}#iIIcRF*tqSw8Ke%S4=q}~h8Y2^h*$RjcVd8oPoZj;dNM_Q2S6)3p*u+>a})!nA_HWqGGNoNVNQ5Dk!$mxr1NtnD9#4sn&^b4 zH7WkG6)W_#^ln)BeVCI|eW~Zf8W1NJVIW$7yzc0JOsnz`$W6Uhr13>R3`8H5yZ~v1 zKhql0SGu#f%6=~MeGPvuWppBGQxqwM0&VWk7yr%i{5SF@+!o>}W1(aU;DD;g={a>v zGN=y;>Zol_Z!Oq0u$u;=qkB9-GH+F4@<=l&*5s@ptpjY(zq2tEaeLpol1{#^`o;zb z!JK*5Jk1U}A8f55-ZM58(ZoH_wsloO?>2Q>N2tG9(C2(@>;RYqjj;==+Bij5T`PzA zLOLTAbwD^%mtuyuCX4yEQ;{6az$Pihf*`ZZdoL80VN4t|G84)+;yTmm%9@A&yaHe& z6+oH-xcnHik1^i_fLE_?QaNp#Pn_I@)MRb6yJvIy3CwTUO%0sm}Wj$`|A6IPWj}`r=UVq zUy&ZF-N$kSSH(niAPqS6FXNpgGMpL1>@jOwd8h%(Pk#4Q+HC-8*DOzsRLAdGqWMn?im8P9$Wirn)ocxcL4apn*t4F1w$aw zRdO4<5yXh@cTRZe)py8iYGM}oKGDLH1K77W+8gOp)SD(hUdWgQ$2jF6e1?d?P6+5l zDkGPp^9HwF=giK&9M8eA?YUrRyL={Fhk+JTv#*+%ssN)_Dx0A^Sq%Xg1PC|3&3V)X zGR1ydBM|{aS}AfcwOpZ%76ZD6+zWJ0&C2QP(c$gBq_8nHA|j$95+N{idL|o6WY#v` z6vD8%w@UxyTFxVq*azg;Nr0m?643Vt!|xq@XN>5f#gjg|RTGb^2NUM#`@;5G*_sY6=1wG!*9s^%IvpysxRseWu*S_iA+X#Mz6{tkwc(Q zs;Ju<02lzBrY`yPAOW_#ZMqrw7?@;sJuAj^zg_*GNH%=&gO;EOxbDhzN9%#PC)Ufo zNa~LX95y3wF7-l-cniXd#7ObFz0>QAYxo*GS#3T-E=ORuseO|1_0|HiIo+w zXO%NdGKZt*>|`*06^Q?YKnek6)tpENDC~oHAv@|Hw*vA{1*xq3UYRiza(ibTixd*K zFa;+nW_8}`N0uA)&AmtIiv*iI> z2gvfRV0@tMqBIFV=pmK*r}E4RFe^Fqe=Q0@s(?Vo3Ez@-7hUO5y?VQ()~(yb`wJoC zFH5f0q;t(GKGPls;V?&)7p&>;pa@^W&iMdQcpm#AH7KUjA-Y znj;#hxxKW&+?54bbx1&6AXD9R4++kHJ~Z;cEl!AQ8@2_8z96a{<08 zAFBrHgqesg;i@)iU88d~{5oC%;k2y|U;^+a;=st;9$ht!Y!H#MY(5vd{{rs!mE8bu z*5E$R)49Yjw8Z_azkjREfo9ft#^Ozhk!;CfOo5f28YeKq+qi)pOF!#$6NtKk>$7R+ z5e~|wgxj-0ACFI-M|wy5rb#G!4-~-5%z0+#g{ktN^=nXMs9rzH&V?Z~S(< zUmJpX@?hg5h6f@e=eu&t@u+%O?oE+q;U#7`QcL2h>6LLMo>!=89|;*kd_+Ez)@p+` z91PbVTrI@~SKlm*D*R#Di1G^TvZWjJI`CB~r}udVWlIjs5R!~8(k9D_l1UiwbJdX6 zux+e497m4x=VG#|ujuprDn<%PS8RqQu#G$^fxafV==L05FGS!;*D`N24xKRDD-=A< zA3yQNf&oT>b3_jp;HMF+Lj%iHAx2Sgk)13C*{RFji1$fSx2UY%&GPIRKn13WM>|ju z@b8ZS8!ev|gH%gKM>uQo?5@GH$sV2-lkVir(avMV2&S)h2?RvueoioX6zD7GE#U)j z)Y-c}s`|GVD25S6H^UsEGnXI<$Z+FitPN~tdh2oIfRH}yWCJTDbX(AJZ<{SR2)U+i zt?AH7ULSGwsw1R^+~bC{@FXCG)HmGrGN`HP0zn>vOh7`2%koPWwX!-PD~W1lsvgB{ zcpya_KVYvmmv6A(l+K326C9NzWA%OMfl=t^MJA$Vo)ct4qc8WUc}(V$blDz4!ZLhn ztOBgUxn%f|^~&}n-87+&F_jp8@%2S6XGkoRi@=rKhMN6;AKTJ5K|4XJ_x%mhbl4yU z@#*kZvv|Ca&!*^kNZs)uQ4D7W^0|fs4EH($<-gWq!D?b4WwxPu+Sx{EC!Pv&xHSxU zYJ^6r_F<)w4uR%FblZ8Y2*_7~BVTW;wxc%AD;IqP%Zn8BN5$XHPjwJzIB|k+dNrbf zCklcEL3j}n&%fu-Iy|RmynwCT37@AJrYcLg&>7ilxL!ZtL#TU69wnQH`-J@l7sGJG z0%3wvuEgsI2fvUbWPMHZk(Hb^AJva#s<&h0j8lb>5)l#Of zXh6;aiO6AxfBe`yswekIA{-%@Dp^$)LA42$g&R((0H@`7>&~Y#yPr%B!rM~4^R@s9 zg<}{vjQn|87V$z!EO25b?fd=Ur#Jn`={KoUag%my(uxr|J3McpOD}kR=9QgX} zJf5OrF$M*K7KnJUCb9-6v%Dk6)|;xf`-owT6#?{UXyb#O=rZk1FB~B|4x}rbks*$P zBgwt+ZWgde-!_a=Arrf0m=YqRv3lv5w%j8i;d$!gk6jw}oA%31(8EpmjAaO~T2r0v zYk0qdP1YqzG-GZw8X|=hI9{zn4C#pkLpXUw_1baHdG@+H&gVfJ-tn^6-NML@ zO6PlsL9--f(&-+}i@9UhyBexdy%*y?PkWMp6v}zJ1?dYswfe6wb^+_VieDHVH|94C@ciX=n}WFvD8pXte>m*5pqv1cPP zDJ)Hb1!{W97z~Sv>G|D>##7P-z z&xh&*a{)Lbym*5~Vp}tcUQ6E$-sW5dPaOu}0Ulpsou&Ao_T9GYG;gm(Z_ z>Xq#K+*axN_Ht;mb`(gc_c03}9L$_cu~?KM*Y;ny0%XU(7{riF$dB8|n}V~_2uJfp znn02YgIEA2Km)DJo<6_8OF8r+0WL`1)yW%GRdmqh6hZsYQ#L%(w$tu+52o8*O7slr zdN8CkC>qtE6JSJMzPSC~jA5P^0E%BbWZk~M@1A*+2Am7H*935Gn%rMC70`_wZ-I`I zE;LKqO@S^=({ap3D5OiezP|@&Y5vRAH#!TAow)~)0@#j)v!=qHv%0a-VBcs_5U9w2 zdh3N_=aXq?5g)HiUXHxv=p#U+8Cua z!rYvNdAqD3Ycgc7Z}@^V_ZQ8Ei1X9E^yn%x_TYuVbI{w)y`G66YV{S|l(v01*!5*l z7Z9A%`0Q=?P8m7;3kjvcy*2i=gi4sgZ<`>#N#uY4lo`{V|l8XUPeqe8D%0O}IDS;qk$Pgyp z=eXFr23v7vM2FsF(J353;17E*8P46PO6)n*s6K(9{YI{+0X}2K65j4<{?aAYd7OeX zf=-h_C$|?#y;s+~e@J(T(8@@}i2}HGu|X`}pP^|xMkvBufUOjx!_h^Mwk|#mBMfP* zj}PyY5#-L;Gj+5701kLY*O`2?RtsV#QF>nI38?6@l&%6(c zr*e2I&bx%Adga|-QgqEbvb1jXc*czRZe<9UU_8p(wwa{pMu0FxIGqsrOrw`D<>2GC zF!T0jD(;YbwI1J*t zrt@Cb@g8!O{aBar_V6Sr7@Q)HRns^hDzoX`KH|;JYWEz6owtpql6k#3cd?@|V)eJ~ z*cVUOT7L(SG|@OvWdyHTwGz^diJvyG>-aXoH0WqsIf#ETbfxoH*(wRpCVdIY%;oe5 zz4)U@e>ZStfZEOO)-*EMH88*FFGkLzNs5>7z}X2vOfL9)L@dICF#&46n3RFt@dJ@z z`NmO)20ol};AN0)AKH}%5beY_LC-~HmM2b$Vbe2qCt!^;UY;q;{?G$ijRH`AD%X2( z&wzzpqL{rK;UdaeI zW1P)_nH!&0sD*th;PO3{FB$SQ#=4cSX7LcFM5SdyO&+6n4Y>ob-0F&R0IclhxW{6S zFkb^b&Mp53tmgm@uplsm{|(mLk}a4T53t^r3+XUj4VJCnv7Y@6>)Qz_9wP}rPf5lb z49k-&-cAJ&tiY9S%IzCIKAty63p#SNup$Ab8!-A_rk3)06Ml(gBcTHgTfFTpoetIt z?jGoqU3?L%jQ@z(g*xpRV*4P2>NQ6DHnC8|I`m46$~Rbpb;Avb*FHSn_A4V?>Z!#P zjF@3;J#N^k7}FrPGc^JwnjMS&O`b&`pa!xis&wppycJ@AwF<0zigG=md@z>hEvMoteGnC3o;fOUX{%6H6gV$y0Ee2l zkH^qIdQ1{)$07K>!%2t;>(3UUjyDaM-P}bvc_Z4*xpT)+!VrN{IP>#(j3V15Fd11Q z(;_3NXGqR-s&Dywqv%);+N{BBJ-$0hbp-qQ%yZ=)u!~m`5rXg^-tRj^{~%r$eAsrr ziQ#Q6cpB$rlpY<;J2rZChrA2pz15BbAz4)FZLP;i%+dC2= zC}~wU%wQF!`y~Cm#uwp79AVl5e}&3!DcN;-6Xrc=L@HKH@uUE^A#R`Uxr@ak;QES zX?_WV4}1b>OMYSxi7UdF{u%DKovtzo#JsDsUIMrPc}k6#yIH?{j11>WO%Hszt%H{i z{JrpfV_S)iRC|xH)(TIzBFk}h5j!8v7kAWiw7Sj^Za8~Ut&lTc`<2o75;dzm#)={w zt1~gmVXkxZu1GI*EZvIz=XI22q5{bk1ZZ(>vJ$)D;&oLlJnvzsq-YoAo59{pBYm>x zAafFV9WdoP31)jt-p4BOjRbwb7cI+zVVD+57?BJP-57hWghOqPLF=+mgdw*?HPVL) zy9wWoWpqEBn?Ax8SaG_*8OPgPJtyRe->v;K_$dE#^uptye}69|Uvjmt#wDmCqMunn zC9$>v3VP2(P$0ru)?bsBmMs2lO_9F#Yg05E70 zs#l}#>Jgw^&*&hIz3F@H-gske-dUZJ*p!x!2o_^0Q6#te9RkAz6E$%-V+Mnt@R0&hRy)i*KL2(MPqwC zRQLU=xojL;Agi1vLIDhgagiKG8oF5Zc#ijU)!=Y$N<#ZQ#k-}F)AC&Ihczwa%^Ft( zbVr|jc1*a;FWEh{j3*zc`h+66*YZuvcBuYHtC6qABD+jUQOA8c))C+zeOdJD{vkay z@NmX|>S}eDien_u0KSh&hq{;m$)qfgkv2@91$xT?&ImYwGER9{Ov6Z`<-dEIQ zKHMaL^=E!x-!E(BT+4}q;PY~b^zd*|(cam|xo>NGOW&F4`DKe~V}NQ{KEnDY-*J-i z6YPD8KpnnU5~U@1!JnjUvFX4ED1h-UjGEYlXS};9U3pl_#0VenTi-ceA8si}P zrSr061{jQw;c)+yKGqb?rz}kO^LMrog+4g|nK3e$_fXW24E6Jgf z?9}O2S?Ll%B4sd3t@o!9>2948$K#6fc~ZQZC#r|QQ;C>t+bN1Y=EexJ4eX(>Z&DS` z;bRgC^l}|na00n*XtFr%&yx_Bp{^klu^R9)3+H*?#SP`V%sryw zwVIn)bB(N@`X?17n=4ciw#Q?oE}uFLbymI3su7wvpSKRDbvLP*h%(!vuEYY(6{e2S zJHmzI9Gha^zv5uAbVYEF{T1@oiy<=n?)W@RyGSwcn2OD#`#zV>D=aJrJnM6U-k%hn z_*w8wdf>~98qhPc9++NG9ISBubK=gG-LmS*t?&)4tzCR&==^*d07P{jJG*vs7`iB8 zi>w}9`Z>kMxJ&zmZ&7}S+;v!e3A!h)^GP}^;)rSMXE#@rWqH(5r%&&mEj|mczKP1r zkG_XL+}(nmd^cbhuT+ED?N2ZYfbWdEjGhM3L*CkbrsGIcM>^ln!6*_F167YBwI7bW zMOZvAXCnrBKO)0R$o59NjhZ;(dwb3Xi@V~7Q>B=BI3Mvwv(GNyO|9bAqMho6rox943F`)PU> zJuE`cD|~L6Gi3*@ELwVWAG{)>G$7lvTo>UDDmm!xch9ni9rA%=ypK({URd8;`V9HG z=pO{`C1Kdxk%JYaj<{58KWzAZk{`?_2MDtr>`n#yykG5HV%&Frq)tAKjcQL4O5ty1K9C+stsJ{E`b_4uLLzzu>@*{z#d4H=N}CH67$NXp zBD@`BV`{bLHlKuDb0WxZr3HPGdvs)Na=sRKLopSK9w;l`)7l8*&Auo?6eyALq`Vx? zeRQ9yPzlXVZaE}xtOLa609n-wCiMUmet0`sPv!2b*EK#ktZcTslRs$frAYznDi0=h zJXL^v=`*@4R}eUn5y>zk&~V*1Pg(Zb%h?FvZ9gX$Q3gHyXi>d-jQjJLc+;HKUqW%YV|7P zY>gT*gI_49nK!R@cC#U*j~x31)v&bsxbe2%^mj4j^1O~a%}viCr3zbj-ie`m7FeuR zTPWmNMrq94Fte9S=P>4om?U)X86m8T4kTC~Tlk)()V$v3PMwu^DEPvgSCVypgc|1_CckRqXFoj;?%1KWL-mL0y;LJ4kw& zm(?63%R7!piVhpE65q=n(2DdUx+nc8jd-AI{R5$im+uTPC=YAC7YX-#)*f->c>z-H zA=$-)-dKATT@_w$h%l=Ct9T3v&bK4Nh-@$1)w{M5LAKcmO26b(WJ4{r%41)75tg$u zLHEL7dQURejnL8rSBFU5TF>h>59$H-rn1LdYpZmbCHj`y3TjbeWuVHoV7FTKrXQfH zrM4yZg|o+&hw-*ZINP469?H$*7HVXlg=vrwnFai@tK70rXd)mi8A4BAfJ9D{)C_&K*>m{IJJ|LmwYm!S(jp(9RCuoh4yW<%wL2~swRVR(;ZZQ zlBB3Sd1XT11XZqy@Y8%))JV_Ec;09vnX8qHLS4)5Fx+Fjb2am0u0WxJV99ie3C+N_ z1UA`JTt%X^o{fLrF1D~nzqBS03&%xbcGwk9IPxU3-KFuoK=z@)+@c~qdg($SB4b+g3v1+A+BXSuj6=gJq4+!Jm zYSp@eIC8@Ti4QV^Of$s%F=L=@J;L=iWRT3g?ZV!$M+XZR%K{pd0wd>r^$d&xo#vCA z<#oWAPJ0C?P1r$$oES)Pnd&}zDX85>A?x%>d`w= z!@!p_^4i<8{o?MJ=}5}2iU~XRVMAol^dOWV`Zga{rvO~>*piX2M+rMK_J*7|+gwLCBtRYH?g{eIk3%Nrk-aG^IxcR&3^y z@Ptak1SPhL>cDFLAe=odtXv8tP4xww<1vQLKgwK-z2*L1IfsnnN-1?+8oCf zt`md=Ae0oDO?s}Y$)3zo=Uzl9s1WeAg0-f`b|o#?l4Zajj<17YqK*2J^TXMU0dqRj z4j)n5BuKWZ3tW!O<=b}%FrM+gy^DeyXsqV^z8dAxOM4CMD*ueEX4Lta*7dSd_222O_Ke$gt&J))kej0e5ipEJ)jMf1c z&$5_6b( zs*;N;%pH`8h4~TV`)r2INlo_~&f(^ntf-7Xj!N=RAajVz9Zp7kXO53o3mg^XD1Z?v%|*t{9k!3HM2n+Eb$rmZ7koAk+`J zKZBL9l2p2@14(PW<>ff2&(_qC?;1f&>J!uOK8-#vlB%ER`^MSufZ4?@cG^91+IxPR z>z7`Ie2b3k8E)PdkxC$VDBUXUe5V$E36@Wk&|xfHq56o((vmVFZH*IxX{NNcygzK( zqLQ2gb=1%ZC*SAJ5;HvD&6cXC2^M|Wuu^299_7VD@Uyz8$_e|XYv-Cc&$6D8=%duN zKEBbNKoxqdE6+U_zHZC)ocrKV!>11iH#`)_sZid8_9271uG?ZBFVLE=;gM&i#niMA z80{fjc>R4vI6qX#TG6y)sGRwlSaLUYYtbP3+ihO@o{MF`qtw-tfzwm*>^icHl@<@W z*&{h6GcZOTb(~-lsDzG=eE_atKBoL zZBbgupJzRrFBh}M>5*wD_n9xxW9s~CRNuqKG=0uFnm&b~sGo9UU0Y2O{7;vhkX<4t zhY}${FDIw@*_!)x8`QtOV)Ze6GDz#6_wxQ4Ye8Q6$+WNEyIVHva!?0JjvU87r@(X^*rW{Z4}4ei&ADjUICk3!}GITp3RPGC1l6< z?UpejU((7(WeepL3~M$!$@CR#dXgC_1`Nn=sb5Dd11RQ&B4N$-1;Lp?zDgIm^LUYz zFOv7M8)=t$-wWpaQCZGn`4f7dO}7MtWx)JA;0-^kEQ(jC1l=e)AeRlxQvMb!OVglw z1V0Kb6>?7ovHO-JpV>GyN1aS&U-KY(ysz-meXpgr(0sgF)-yCzOUGY$BnX*_;mEzI zVE#}UMrDPvN}mtmc=7n~SryGI;q8f=Im$TCir!c(eMcr)sP>)-q+ z2YkUW49oK>_p#<45q>!h6FwNT4$<`tI8q#agGSfV_> z6!N?*XrK>ft4zF61;`d0W*;5Ztt_og(=`FL%c(M!z`D)=v>fkkNo~_d6@;f=lB^h zeRl53<{`{0uh~5CZ>Yx8hY9zt+O3VdZZvc2CbDE7ts1O3(Cs*_ho~dndF5FZY~JIb z)}#y=H{X&mTk;;^6aSg*9lJ0*Wh8h}85_Te`0<(}{j$xi28}qBWqc$v@ zDNo6)=T!Zj2ib9;*&DrqwfO->rTW2E;=cEjpq!O5HqUN`(33Ce-mkk%Ame*#XJ^A(h=8GV&<(NM<_M!0jBOpDY9~9Xv zxTJ9jf7kBq34kT#=|FeuLp&Y zClqL~!ZGPqzPeC1whyFE)^N?yLjW?LVzszwn5dj-m=p) zTPYM!9hXGW#HKPM6^VRK;_JpdIHX`*A>YjCgg6|YkC%3Q&}7<3u>=56J-Q}?w%oQ# zh}l@dMER~{;eyqR)c`&}PmbXBH$W``Ikrh=E$lP_wsuV!y*KP*TPOew(}acIKYbPF zr&xmVYt9O*@^g5XeYO^mmfHuL-F+bzPcK~+P;ufL-b=E~zu8o^l&VR2Z#7(EvHh)()wDGDH z?ko`HyUu7s5=ldp-3c{>{XH@m4H!ke(eyUq8AaEg(Q{h&aD0cPf=1FWg*9i8b38%n z&yy&$!B&Lbg5;9q3;4YkYH;aGr~=rASh(gT(_;c4jAIxAMN7iemp3hJs!5s_3b>+5 zeytA6kKnf0kvQGOlK-M7TL~T`)H-L`88kHS+o(|NH9Fq= z3E1caVOS4)g-ezu2kni$^TV^2G2waI_oGtyy#ypwsPg-KqCDP`dVfShq3@E+g738K z%95ADvuMt@>AcNaimcgrG!;^M@&wRdk;`BafQVw>d)7l`chrjW=KI=bSax@0@_lHq z*%z_65sa3p_ru-|7u6;gfh_9d={#6zd$M~YRbb^VqEkUwDUXziWZRv1u_vfsdUDCYMNfdZD*)cA5k>Vwi|=rcLl{>a!avM z6zv9W0Z@BK1{Xx1)Wxv|zZ0ZC16;@eqwLTTELr(7Z>VuWng2ZS{P>In$oNe%@fUNZ zFBFZ9Vtb*~=h_tS&5W4+=m5G4$fHy_BERvid=aR6gQwo8OzAjD zobS{n?A%|lgj5nr4x_RtH)!;{8Z@02#q&~I{cYWOUbd!`h7|hNwO@u(0np-RYB^>H= z8-I?2c3oKOB`u|(V-2LvG`q1wJ)Wql4$eK2$HV}E6OU=)-1bY;G$~A)ttL2(6w+XhZKK2hm%d%hv-6sz7a|{He&+kaECEUx227RI zv7={a8Owtj(FOZ(*o(*km*OhSNSBVT5T*j#TT?JoZ?3r1G|iRPj~SDq+}39T*~wWf zKQ+xdz8EVY9m?;XB3BF>Cq#z0BbbpLX27Vuv!@=% z6zV+Ose2rD*5Moym2F-%b0i(NGuxRD%C+=8u9{z0%aIrZI@lc7>3-YNn#i%0P|wx% zENg1V?6Xciaw&E`((7;#u$gbJGe0;SXF3Wia3Y#vw}IE@R&X#+Cv%7zh!Ta+}WNVem*qw9k4FhuiI;W0y0+7|tMYP<@*7y=@y= z6N5S^nMca*>IZGv1~qfYtU3WnKSlV!iF;y(ABgM>41zE>6mOrBZEjxO*|q65GaTjI zxyvK7lD6$u&U{B!y5YF>yD*2YYUouJgMy;U10IsrSc0s4X5o%dr~9}h?2I@-L=W}1 zX})lq204I)E$YaYYPuOT8H9mwPBx0(HCwU$(lO5Ayrb5gCpg*Fa6A3NE|(xWVbm(` z$9#)c7iY$0-eXUdiIO8&7}#ArFno)Um}v1 zt9iCustd$4ch*K|y%CokyIUW{VBT`@0X>-W$Rsx6f?9eRXQKz7=hp$sWJ}MP#R(VI z&U#E-;7k2%Ehd&b}zvEPuR?#sL%>AkG*DC=4b0x)5uuM)3sQ2EuCV+Bw6;i_O!O#CY?&s<*aKsG()D_otNo_NS8jNab(0pXURq_gDQ_Hx z$p`8zfS*CH0?w2&zXN4ZU0?j3*fg_n?&-_95ut7x2bc^Bq{PPsciWaoW($Yp2wIeJ zwe*NF2VI>|%<YoZGdX>}7d$$gdRB9UqCybb8Ppmosfata?_91!{J8}HrrLx! z^yG4z5&}~9J%*P7FP3c&(Tdw=Ek2T`T~~1%NuIhkW5kSa_J#IE0s`?4W=R>*^}!IL}+qPgs! zY6EhwHWwRnlyzj(5sPqzEtYg`?K;xN*A`Y{%m4)m#AHWKUFDZlx#;e3F$4ibI5m%) zq>Wl2g0|Zqh*S>O2(cS?fm$#Qy^VnUx8))1l6EIBY9TZ9m7~)$*|5P@Z^bica`lbQ z2FB$q&jp*=I;p!36CA4xVJY-2FS&&6Z0y6ly5JI9qH`O;XmM8s%z$R31k#6EuMP1M zN=B)Hp5>zL4R70q6b)z*)s{SUGS4|9XfcUZbfrn!h$&}ClbvE@MxC@&p3m}Pw#qaD zK%I)6mUeoE++>G&@p3Nr62~&kVd*0q zg)!|-cX8-}y*lNQD!qlRdn^wE6~wZ{Mc>S})`nmp_G;&Xcp4%mxeVf!I%RBhzHXz; zD5!oXj(7yo8GInC_;S*AF*dd|Kg@f{59*d9_JzZxF|TzEW$ELN?$gn}E@%D%>ou%0 zcHUB`D_r1(!-^UYsbvgvN51%s>aWFurkA2a%%X)~q&&S!F!-!5y6R-WyDHNz^s%K5 zbTnMVC7F>%%UF;w5(KmZQ5!S|M`smu#(3cnw%lN#F`enU)LlWfR5`n{VOGLU+qfG| zE>EX*xWR*6nnwueut?V4XB4Oz@r@$eT6Zw_OCm5^3lxSzamdaxv^T;_s;;!=n#HuD zolWONoVR7Cm?ua$MZ5k$JFEDhm9Qw5NIWw`jx9EIt2?aTq7W4zd-4>q9*!KGem{M- zIYR7|Kcf8%MG)Mw{53bbq#+6m@G9J2`OPM26|I;zjFB8eF+nB z&>=Xjw)WNpF1t(&vu=?XTW+q(E~QzB?@1D;WGqIa1I%-?L__zTuS9)y?IWx66K?)2J z_fhF#TO|gmvMm&dC|aampUAm(Gte(7v3>z_XWlpbpxo) z;#X7~)g&u??LhmV!q(xnr?=cx|T^Ynz0>Q;rPhDzR zTb0Tz_q7*9Cv*pC3ogBEdQUH4+zs%&Hx3EAi+I^OHwVy_LAz5lE7~H0b(|LI5F(Wb z>NSoDkaMKQ7y~?hM&KcpK>cKa7ZBvOsUQ$UaIOd!Ihu1nWcQ@iZxS~$gAKpZLraiB zf5ky;v=;4oN5V6|W%AmsufBX8g_VGrdFJ#qImge9;jwEN0&PFO!$tbqTx=B*hzoD? z%_>rk#3{@;@v_x>W27jq+bc6`Qtd-4j?b~j#dSo2I9(T;i8d_O8I5JBdUb4%zIkw!hK5uDOK?rEe_o^ zns>%f85F&W+pb*_T`-^JBjZXH4457RWqUMc$7&s9XW!*avRbCGpArZDVmCCiF)8{q zy;a%sD9s7`-ROYXFaq=`)?_oGGdyT1MA33e#IIq>DzHN!N|qO44N( ziN2%dwxEo{(zqamV!NG~CVJ^(3;(h$Va6Z}YYmGH)SrWfF!p4;iq3n~J_hiK5XoI+ z@~srcXLlhvr#X?)2OZxyYza|u6(b18ff~TMimXnuyXG9)E0|El{y6K$xrWJb8O$-9 zy~Gf^to_Z<1pM|~Sdi7ZJG-z#6!c%26gHPtaA8Cu*=9Ih9&KKS{J2bee6!dlgEua> zC|yU9u;_(r#AauKN61dg6o=*aRG1w*O_pV+(u^j{iQZYK9jIg@*D(;u?}`acqRySNux!Pw7Z~8;Wy3Kcb*Cv9_t?>EP5SaA>DwL7CT#qO}^VOvx zoU0j{^QKR@M(k*()0VR@pm)}yZC-(b_L9kPgUwV8rxuoPajLV+j8bWW*kn;2mW;un zT^WS}=?3FQJuj0XJh+;(`AnRTYxkJ6^+_#WvuR>X1 z^s^rZ?l7>CHT{uY*&Gie9i;Pxs6y+bQLM7|jN4qv;*tn*($Ob{g=e%bBiA9bO~_Mz z*@#S`Etx^10!^gOmZ%1Kc9K>{!Dx8B#)j@h_p4mH9^3HbtwaPix}fu{w8B>krYOLa zR7=g6g20UsgiX+MtUHK3fx_Du@xCP@7nFVU_Po^*dX;AagS6guhQ@Pz>uY{A)X01d zTm5BNhv``&*UE63A^fhX({@$QTm8fy`M!mZZ2|48dd+hdqiKYH21T5bMRdHlEN0|3 zjG*9rVS&)k`Zc!8orIZ(u09+ghBLxj2*8_c~#y@7O2;uWCEKkY(>E|5+wASM)f*+es5 zUWbw+dThvh1<@FDQd_{#9O9HsZy&{r)2^j@TQa7{l4|UrR?BzByo?X}z_omMRWrw< z&8}o)p9$tydPkP(Jd;4dpq!9MXh|4X1X}i_1i=fo59aD+f3b}7N#++dyiZQpE~znW zv~p^FlJre6^ypDD&fLO0)T@+cXcY|^GaD8u4OM|yjXK6Dv;qpcBPiSqIgC(`zcLC> zHuSzbkB-Y+33v_KLJMsenoUtvw=up zxwV^@G;s7TxawOe)|YjrPe#yyoYe&@Y?K zmFx0|(CSM;@bt1L`%cf!FxQg(6`vz2%~C{=X*t()vmz6aFr!6>EdAO)&QYNSf{vDZ zz<}VDo@@q3gvS^l$Md3UD<32?NLg9h@@nG>D6PXLl;H~(b16q0A<%$#263qu?c7*n zhH39K_iD{+$lW$^EaPY5%vdX%gF$LoXH}alX5(=kwJcMvw%YcxLp352hLpnyZ7+m< z3FA(p5(K-aPc>dw3}@yA*TkiBnH3Q$i?y~hb!Y2=AmMr(eqHu-SxM=>$}Ompl&V7{ zZkXw?=ytNINYKu3Iz}-s+A6anz3v?%Ap9+mIK5b(fK{E4>qy#s%>oB>d--B+SEge{mzoFNoJwxp zSnn$}K~4w@YlqyW;ZtEWJJ>5u6whr*Q1>y{wW;?wOK5VXla~=1p^n5kEJQ+*BMgDa zNZL{cY`k`ZNI+|92CriGe89FK0>=eTSoLTNnrjm1*~UDicGzTCEwD?^f!7svWS6kT9@oh^X+m>Rd7U2XtL9Gter)`NhCNd0U9{j)>W{*~ipEI$ZspbUR(-cBR7BQa2D< zb)XA!xi#BThlE*qg!Y#r+($+$u2Lgzr7{dIyCOP;)yyzeirrBlGt+Qd5|zfQ<8p;i zsIddBv>{n-t-17dB_0f^kvH%XooyYolXNl%3fY#Iy(n+(QdkBgzBfkeWaxT4eJ-p^ z4h*OY57B8OiwBalj;gCBrAY7f5RC{OLqwKxJ747Y2I}xaN>lQHggdf#s1>=|!;A5l z;s=_#-|j zGt03C_<&A1YhY5*iC#n^Y?4=vtpYwKWrq|yZ8*i@Wp}28j3L4kh)fV}f~Jp%D2@oi z3X|1sKoT16kN(_z^-JnCFSL(ePsT{U8hh~OxBFC#_wV0ZRnSiJ9_q($o3A{dpS~FW zBmeXT^mfta?kTDxJ4&Nw;H=zDz3O2^!1dep_tVsh`}lze_{?)7ODHVYbNSpaKIUzj zezxi%cV3jKH9QRra4aYE+}oGee;H)(>8r2Ae*~K*f&4k#moL7*gJsjKh&R7IT($Y* zbySP({X6vU-{Svr@vx=#ykr`u@pRcd98lj@qxvur@(l0~3HmZE-~nIYHL6p2US5Yq zqbb6-V+4MJ=QelY)2Evle+4*53m~=Vya7shLUEsR;M{HjU_S~zJzV|j-FE)|`ww<> zo?SK0uhTG>Pw(&h-aMQHXlzsWVF1B>w#uDdz*hbH@2_r#kb19Pe*EYb&dsRae=!cV z0bmc)IbK2!^F|)WOaLAfFZHfg-rTuhib^b8@Aace)_?-vhO?ZXxL`G26|*AMc1ZnBe-AC|9?*G-q+ z-~RUU=}_Epyt1)?Vcsn8HNf+SGXC^~2^xRshYxP_vprvp`1t%Iih!Lwit07~>B&5A zaj)^}zvKV=Ve-ERH~i&!fSC3@a5Fu9|1=HcZ+`)i)ZJ^E5}i*(?Y`s^@p`xn6L>)V#UdvBxvE&LbFl;*0)tHE(UrVVVI#xXq%)cScO zd*bmSKuy|waOm%|^oLjX?D}leS0V3y_wMs|@BAu8KIC8gA)~&k?`4E_^{Q9X#I9FX z+Z0nOe%$c_|2`mpP0?48OeEq}z6Xc2~Ie*)l zdT)t)bqwmn&)-n)O|uyR>9)sL2A?kD^@ zN%Pm+0%&0-q8iZge;1%Xf6dGMzn?Dt`62t~Kc^{sO>}EVU)0TzPPy$CK6kllgWAojTn-0UQ< zrO;uu)i-ztA?AY}%Xh{xSnMeSk|?_7DZUe9z7db$LD3~26ah~XqrFs0hutLBu}tix z)EZ|fJ*eAw`t4+NW9i${8PMt6h>Y-nXVV1SpRN}VIF_cq9j)`GJ*a#y#Poe1XO^b! zk~SP{_!tjF5+9`7gTK-5u~2R2;_4Y6fX`_nAHEWX4eY{B`|Mt8!`oa~qM?00jSkDi zrY>He-G4YUY-|=C_xVkx-NYN9wQxD5+eg^dSpq(F0^Cbl@Eme7DK)drU@igv?6eRT zil&g8FEUXVoscOD^J|*FqthM5JAEUNF@;|p*vubf1N7dv&R9?w1) z;{GwYyUY{wY>s=94}|f)=NUgMJ7XI2tSqhb3BJkVW+U=sJCn>3H%n7@G@{3QK!&+_ zmaaCt8GznmBTh#1D5ZD0r!%)#CsTk8eAxqNoapSn-?QnAvsAiVGU>V%V=ekZ!xuYs zmf_WfiO^i0MvG+<8wN6o`5*7S(f2i8DaPSFC6D4!{sS1P0FMgTWMnUy!K4#GkVex4EkbZXw zVh6i{1>G%8PALG)2xQd#5NGZJI+UwBKtM)mZgIdqVj2=-=TC4?K1_Fjjz8Hq=?U;Z z{E%-Lz)U)C>@$N{XQ=eDQ!?@R6aFD5-==mh1D|G4Q|C8)E-lSbj(8HpLO{oXb)L?- z>3O7k@tAzEaacj^TU;?qo9!AK*q*UW7v8bxgcyhR%iH>jUz*wNU&PNIU@@?7FqVD# zh--?KE|=Ekak8hhwy7e1fXW{5e2*WN7Qit6%ez(UORrb_FT@jaRzb&aHnNhx~vw+853Jecd+48`xwjaw#`p^1vK#x zAK}--15F3+M$4CdETAu01maO_rBR$>Krc`<#8XMTr*7AsICKNZJ+KrJ6i?BBe{B?~ zDIX*~xW1hMt_SdZxcz3uK#Y*ZJ*Ln#$PWu4HfrIB1Dsj_d}tJ-t^s=nNhL%8H{D;} z_N!el4#y&Kjs&Ay@`)!Pxje>bD&4wC;fpq3t%T( zqVIYgCO&xRfxf^dflUIw9_;PDM^aRlKWZK;dB2JR(E7id-T``d z>yF+5n4-OHdiywk{>^jfFO>ZmipQPr`nNC8#ecl{>j1+Y;Q6uB%l+@{qW|zB%4@HA z{b#ry_rGh3^6iVia{3cQHA(Vcgt3dJDYAbNDE0jNITNR!{}Z%rzc{b|UcdhB>BW-| zFQLzG{`al+zO0I-Xok{zdw&P(?R^gWo40=f;Py_*zXI^pJ1+k^plIcwNvr+{@-1M3 zyuIk|eh9xq^ZXsOCnVZOfQEei>MOb4cD|b6-~8hB)9VJmX)mn$1#{m-f<3qP`tvXU O_J07-J@+qwg8%@nFao6j literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/image-cdeb2c7e.js b/config/www/community/frigate-hass-card/image-cdeb2c7e.js new file mode 100644 index 00000000..4e4b6599 --- /dev/null +++ b/config/www/community/frigate-hass-card/image-cdeb2c7e.js @@ -0,0 +1,9 @@ +import{a,cR as e,x as s,cV as t,r as i,d2 as r,_ as m,n as g,t as n}from"./card-09c4bade.js";import{g as u}from"./index-e610f971.js";import"./image-1c1ebdfa.js";import"./media-aef44451.js";let o=class extends a{constructor(){super(...arguments),this._refImage=e()}async play(){await(this._refImage.value?.play())}async pause(){await(this._refImage.value?.pause())}async mute(){await(this._refImage.value?.mute())}async unmute(){await(this._refImage.value?.unmute())}isMuted(){return!!this._refImage.value?.isMuted()}async seek(a){await(this._refImage.value?.seek(a))}async setControls(a){await(this._refImage.value?.setControls(a))}isPaused(){return this._refImage.value?.isPaused()??!0}async getScreenshotURL(){return await(this._refImage.value?.getScreenshotURL())??null}render(){if(this.hass&&this.cameraConfig)return u(this,this.hass,this.cameraConfig),s` + + + `}static get styles(){return i(r)}};m([g({attribute:!1})],o.prototype,"hass",void 0),m([g({attribute:!1})],o.prototype,"cameraConfig",void 0),o=m([n("frigate-card-live-image")],o);export{o as FrigateCardLiveImage}; diff --git a/config/www/community/frigate-hass-card/image-cdeb2c7e.js.gz b/config/www/community/frigate-hass-card/image-cdeb2c7e.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..cd71058ba4b736c762cd9e2e12a2b9f9f5b46dab GIT binary patch literal 552 zcmV+@0@wW?iwFo?dR%7$|7mSuXJsv8WMyJ9V>e|kYI6XMl-+9EKoEuR^Au}Qf&^>D zE^bTey1ob$3Mqt?_NJ6%yc)^dO1oxvSWC01rzicp-&G5`) zWrs71fLIzg#kAnBl}lJ<+cOB`>IN}~pYrxkmywXul5LwMe$ zWeyU$(Ta@D?RjM%^(pWCu^eKu|E27>`Ft>HeKVx5!XPTU)b#EC_AunR2&XDHQ0Ke>)qMw6!P3VGn4C*W%>6E=$Y3k3bN2ce!hsS1Om qw7Fbk6FKlxqA70b|B&|op-&BY!e.hasSelectedResult()}}))}async _setURL(){const e=this.media?.getContentID();if(!this.media||!e||!this.hass||this.viewerConfig?.lazy_load&&!this.load)return;let i=this.resolvedMediaCache?.get(e)??null;if(i||(i=await l(this.hass,e,this.resolvedMediaCache)),!i)return;const t=i.url;if(g(t))return void(this._url=h(this.hass,t));const a=this.cameraManager?.getStore().getCamera(this.media.getCameraID()),r=a?.getProxyConfig();if(r&&c(this.hass,r,"media")){if(r.dynamic){const e=t.split(/#/)[0];await u(this.hass,e,{sslVerification:r.ssl_verification,sslCiphers:r.ssl_ciphers,openLimit:0})}try{this._url=await m(this.hass,v(t))}catch(e){p(e)}}else this._url=t}willUpdate(e){if((e.has("load")||e.has("media")||e.has("viewerConfig")||e.has("resolvedMediaCache")||e.has("hass"))&&this._setURL().then((()=>{this.requestUpdate()})),e.has("viewerConfig")&&this.viewerConfig?.zoomable&&import("./zoomer-725f087c.js"),e.has("media")||e.has("cameraManager")){const e=this.media?.getCameraID(),i=e?this.cameraManager?.getStore().getCameraConfig(e):null;S(this,i?.dimensions?.layout),this.style.aspectRatio=C({ratio:i?.dimensions?.aspect_ratio})}}_useZoomIfRequired(e){if(!this.media)return e;const i=this.media.getCameraID(),t=this.media.getID()??void 0,a=this.cameraManager?.getStore().getCameraConfig(i),r=this.viewManagerEpoch?.manager.getView();return this.viewerConfig?.zoomable?w` a?.dimensions?.layout?{pan:a.dimensions.layout.pan,zoom:a.dimensions.layout.zoom}:void 0))} + .settings=${t?r?.context?.zoom?.[t]?.requested:void 0} + @frigate-card:zoom:zoomed=${()=>this.setControls(!1)} + @frigate-card:zoom:unzoomed=${()=>this.setControls()} + @frigate-card:zoom:change=${e=>f(e,this.viewManagerEpoch?.manager,t)} + > + ${e} + `:e}render(){if(this.load&&this.media&&this.hass&&this.viewerConfig)return this._url?this._useZoomIfRequired(w` + ${n.isVideo(this.media)?this.media.getVideoContentType()===Q.HLS?w` + `:w` + + `:w`{this.viewerConfig?.snapshot_click_plays_clip&&this._switchToRelatedClipView()}} + @load=${e=>{y(this,e,{player:this,technology:["jpg"]})}} + />`} + `):I({cardWideConfig:this.cardWideConfig})}static get styles(){return D(':host {\n background-color: var(--primary-background-color);\n background-position: center;\n background-repeat: no-repeat;\n background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4yLjIgKGIwYTg0ODY1NDEsIDIwMjItMTItMDEpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJjYW1lcmEtaXJpcy5zdmciCiAgIGlkPSJzdmc0IgogICB2ZXJzaW9uPSIxLjEiCiAgIHZpZXdCb3g9IjAgMCAyNCAyNCIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzOCIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzYiCiAgICAgcGFnZWNvbG9yPSIjYjkzZTNlIgogICAgIGJvcmRlcmNvbG9yPSIjMDAwMDAwIgogICAgIGJvcmRlcm9wYWNpdHk9IjAuMjUiCiAgICAgaW5rc2NhcGU6c2hvd3BhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuNjA3ODQzMTQiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6ZGVza2NvbG9yPSIjZDFkMWQxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp6b29tPSIyNi42MjUwNiIKICAgICBpbmtzY2FwZTpjeD0iLTEuOTM0MjY4IgogICAgIGlua3NjYXBlOmN5PSIxNS42ODA3MTYiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIzODQwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjE1MjciCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjEwODAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjIyNyIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzQiIC8+CiAgPGcKICAgICBpZD0iZzExMTkiCiAgICAgc3R5bGU9ImZpbGwtb3BhY2l0eTowLjA1O2ZpbGw6I2ZmZmZmZiI+CiAgICA8Y2lyY2xlCiAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eTowLjA1O3N0cm9rZS13aWR0aDoxLjM5NzI5IgogICAgICAgaWQ9InBhdGgxNzAiCiAgICAgICBjeD0iMTIiCiAgICAgICBjeT0iMTIiCiAgICAgICBpbmtzY2FwZTpsYWJlbD0iV2hpdGUgQmFja2dyb3VuZCIKICAgICAgIHI9IjExLjI1IiAvPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gMTMuNzMwMDAxLDE1IDkuODMwMDAwMywyMS43NiBDIDEwLjUzLDIxLjkxIDExLjI1LDIyIDEyLDIyIGMgMi40MDAwMDEsMCA0LjYsLTAuODUgNi4zMiwtMi4yNSBMIDE0LjY2MDAwMSwxMy40IE0gMi40NjAwMDAzLDE1IGMgMC45MiwyLjkyIDMuMTUsNS4yNiA1Ljk5LDYuMzQgTCAxMi4xMiwxNSBtIC0zLjU3OTk5OTcsLTMgLTMuOSwtNi43NDk5OTk2IGMgLTEuNjQsMS43NDk5OTkgLTIuNjQsNC4xMzk5OTkzIC0yLjY0LDYuNzQ5OTk5NiAwLDAuNjggMC4wNywxLjM1IDAuMiwyIGggNy40OSBNIDIxLjgsOS45OTk5OTk3IEggMTQuMzEwMDAxIEwgMTQuNjAwMDAxLDEwLjUgMTkuMzYsMTguNzUgQyAyMSwxNi45NyAyMiwxNC42IDIyLDEyIDIyLDExLjMxIDIxLjkzLDEwLjY0IDIxLjgsOS45OTk5OTk3IG0gLTAuMjYsLTEgQyAyMC42Miw2LjA3MDAwMDUgMTguMzksMy43NDAwMDAyIDE1LjU1MDAwMSwyLjY2MDAwMDIgTCAxMS44OCw4Ljk5OTk5OTcgTSA5LjQwMDAwMDMsMTAuNSAxNC4xNzAwMDEsMi4yNDAwMDAyIGMgLTAuNywtMC4xNSAtMS40MjAwMDEsLTAuMjQgLTIuMTcwMDAxLC0wLjI0IC0yLjM5OTk5OTcsMCAtNC41OTk5OTk3LDAuODQgLTYuMzE5OTk5NywyLjI1MDAwMDMgbCAzLjY2LDYuMzQ5OTk5NSB6IgogICAgICAgaWQ9InBhdGgyIgogICAgICAgaW5rc2NhcGU6bGFiZWw9IklyaXMiCiAgICAgICBzdHlsZT0iZmlsbC1vcGFjaXR5OjAuMDU7ZmlsbDojZmZmZmZmIiAvPgogIDwvZz4KPC9zdmc+Cg==");\n background-size: 10%;\n background-position: center;\n}\n\n:host {\n display: block;\n width: 100%;\n height: 100%;\n}\n\nimg,\nvideo,\nfrigate-card-ha-hls-player {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n object-view-box: inset(var(--frigate-card-media-layout-view-box-top, 0%) var(--frigate-card-media-layout-view-box-right, 0%) var(--frigate-card-media-layout-view-box-bottom, 0%) var(--frigate-card-media-layout-view-box-left, 0%));\n}\n\nfrigate-card-progress-indicator {\n padding: 30px;\n box-sizing: border-box;\n}')}};e([i({attribute:!1})],q.prototype,"hass",void 0),e([i({attribute:!1})],q.prototype,"viewManagerEpoch",void 0),e([i({attribute:!1})],q.prototype,"media",void 0),e([i({attribute:!1})],q.prototype,"viewerConfig",void 0),e([i({attribute:!1})],q.prototype,"resolvedMediaCache",void 0),e([i({attribute:!1})],q.prototype,"load",void 0),e([i({attribute:!1})],q.prototype,"cameraManager",void 0),e([i({attribute:!1})],q.prototype,"cardWideConfig",void 0),e([t()],q.prototype,"_url",void 0),q=e([a("frigate-card-viewer-provider")],q);let H=class extends r{constructor(){super(...arguments),this.showControls=!0,this._selected=0,this._media=null,this._mediaActionsController=new O,this._player=null,this._refCarousel=s()}updated(e){super.updated(e),e.has("viewManagerEpoch")&&this.viewManagerEpoch?.manager.getView()?.context?.mediaViewer!==this.viewManagerEpoch?.oldView?.context?.mediaViewer&&this._seekHandler(),!this._mediaActionsController.hasRoot()&&this._refCarousel.value&&this._mediaActionsController.initialize(this._refCarousel.value)}connectedCallback(){super.connectedCallback(),this.requestUpdate()}disconnectedCallback(){this._mediaActionsController.destroy(),super.disconnectedCallback()}_getTransitionEffect(){return this.viewerConfig?.transition_effect??k.media_viewer.transition_effect}_getPlugins(){return[R({...this.viewerConfig?.lazy_load&&{lazyLoadCallback:(e,i)=>this._lazyloadSlide(i)}}),U(),Y()]}_getMediaNeighbors(){const e=this._media?.length??0;if(!this._media)return null;const i=this._selected>0?this._selected-1:null,t=this._selected+1{if(!t||!this._media)return;const i=("previous"===e?t.previous?.index:t.next?.index)??null;null!==i&&this._setViewSelectedIndex(i)},r=this.viewManagerEpoch?.manager.getView();return w` + {this._setViewSelectedIndex(e.detail.index)}} + @frigate-card:media:loaded=${e=>{this._player=e.detail.player??null,this._seekHandler()}} + @frigate-card:media:unloaded=${()=>{this._player=null}} + > + ${this.showControls?w` {a("previous"),N(e)}} + >`:""} + ${W([this._media,r],(()=>this._getSlides()))} + ${this.showControls?w` {a("next"),N(e)}} + >`:""} + + ${r?w` + `:""} +
    + + +
    + `}async _seekHandler(){const e=this.viewManagerEpoch?.manager.getView(),i=e?.context?.mediaViewer?.seek;if(!(this.hass&&i&&this._media&&this._player))return;const t=this._media[this._selected];if(!t)return;const a=t.includesTime(i);$(this,!a,"unseekable"),a||this._player.isPaused()?a&&this._player.isPaused()&&this._player.play():this._player.pause();const r=await(this.cameraManager?.getMediaSeekTime(t,i))??null;null!==r&&this._player.seek(r)}_renderMediaItem(e){const i=this.viewManagerEpoch?.manager.getView();return this.hass&&i&&this.viewerConfig?w`
    + +
    `:null}static get styles(){return D(":host {\n position: relative;\n --video-max-height: none;\n}\n\n:host([unselected]) frigate-card-carousel,\n:host([unselected]) .seek-warning {\n pointer-events: none;\n}\n\n:host([unseekable]) frigate-card-carousel {\n filter: brightness(50%);\n}\n\n:host([unseekable]) .seek-warning {\n display: block;\n}\n\n.seek-warning {\n display: none;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n color: white;\n}\n\n.embla__slide {\n height: 100%;\n flex: 0 0 100%;\n}")}};e([i({attribute:!1})],H.prototype,"hass",void 0),e([i({attribute:!1})],H.prototype,"viewManagerEpoch",void 0),e([i({attribute:!1})],H.prototype,"viewFilterCameraID",void 0),e([i({attribute:!1,hasChanged:x})],H.prototype,"viewerConfig",void 0),e([i({attribute:!1})],H.prototype,"resolvedMediaCache",void 0),e([i({attribute:!1})],H.prototype,"cardWideConfig",void 0),e([i({attribute:!1})],H.prototype,"cameraManager",void 0),e([i({attribute:!1})],H.prototype,"showControls",void 0),e([t()],H.prototype,"_selected",void 0),H=e([a("frigate-card-viewer-carousel")],H);let X=class extends r{_renderCarousel(e){const i=this.viewManagerEpoch?.manager.getView()?.camera;return w` + + + `}willUpdate(e){e.has("viewManagerEpoch")&&this._needsGrid()&&import("./media-grid-3082f0ad.js")}_needsGrid(){const e=this.viewManagerEpoch?.manager.getView(),i=e?.queryResults?.getCameraIDs();return!!e?.isGrid()&&!!e?.supportsMultipleDisplayModes()&&(i?.size??0)>1}_gridSelectCamera(e){const i=this.viewManagerEpoch?.manager.getView();this.viewManagerEpoch?.manager.setViewByParameters({params:{camera:e,queryResults:i?.queryResults?.clone().promoteCameraSelectionToMainSelection(e)}})}render(){const e=this.viewManagerEpoch?.manager.getView(),i=e?.queryResults?.getCameraIDs();return i&&this._needsGrid()?w` + this._gridSelectCamera(e.detail.selected)} + > + ${[...i].map((e=>this._renderCarousel(e)))} + + `:this._renderCarousel()}static get styles(){return D(E)}};e([i({attribute:!1})],X.prototype,"hass",void 0),e([i({attribute:!1})],X.prototype,"viewManagerEpoch",void 0),e([i({attribute:!1})],X.prototype,"viewerConfig",void 0),e([i({attribute:!1})],X.prototype,"resolvedMediaCache",void 0),e([i({attribute:!1})],X.prototype,"cardWideConfig",void 0),e([i({attribute:!1})],X.prototype,"cameraManager",void 0),X=e([a("frigate-card-viewer-grid")],X);let J=class extends r{render(){if(this.hass&&this.viewManagerEpoch&&this.viewerConfig&&this.cameraManager&&this.cardWideConfig){if(!this.viewManagerEpoch.manager.getView()?.queryResults?.hasResults()){const e=!!this.viewManagerEpoch.manager.getView()?.context?.loading?.query;return P({type:"info",message:z(e?"error.awaiting_media":"common.no_media"),icon:"mdi:multimedia",dotdotdot:e})}return w` + `}}static get styles(){return D(":host {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n gap: 5px;\n}\n\nfrigate-card-viewer-carousel {\n flex: 1;\n min-height: 0;\n}")}};e([i({attribute:!1})],J.prototype,"hass",void 0),e([i({attribute:!1})],J.prototype,"viewManagerEpoch",void 0),e([i({attribute:!1})],J.prototype,"viewerConfig",void 0),e([i({attribute:!1})],J.prototype,"resolvedMediaCache",void 0),e([i({attribute:!1})],J.prototype,"cameraManager",void 0),e([i({attribute:!1})],J.prototype,"cardWideConfig",void 0),J=e([a("frigate-card-viewer")],J);export{J as FrigateCardViewer}; diff --git a/config/www/community/frigate-hass-card/index-0197eb89.js.gz b/config/www/community/frigate-hass-card/index-0197eb89.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..85b7ec08fa3bc84ba11670dc763da442b6a071a3 GIT binary patch literal 6431 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 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/index-0a012f43.js b/config/www/community/frigate-hass-card/index-0a012f43.js new file mode 100644 index 00000000..fc574140 --- /dev/null +++ b/config/www/community/frigate-hass-card/index-0a012f43.js @@ -0,0 +1,162 @@ +import{cL as e,cM as i,cN as t,cO as a,cP as r,cQ as o,l as s,_ as n,n as d,b as g,t as c,a as h,cR as l,cI as m,cS as v,cT as p,x as u,cU as C,cV as f,e as I,r as M,cW as _,cX as w,cY as b,cZ as y,c_ as L,c$ as A,d0 as D,d1 as $,d2 as j}from"./card-c642ee74.js";import{p as z,u as k,i as S,M as E,A as N,a as x,b as T}from"./media-6eadcd60.js"; +/** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const Z=e(class extends i{constructor(){super(...arguments),this.key=t}render(e,i){return this.key=e,i}update(e,[i,t]){return i!==this.key&&(a(e),this.key=i),t}});class O{constructor(e){this._inBackground=!1,this._messageReceived=!1,this._lastMediaLoadedInfo=null,this._renderEpoch=0,this._handleMessage=e=>{this._messageReceived=!0,this._inBackground&&(e.stopPropagation(),this._renderEpoch++)},this._handleMediaLoaded=e=>{this._lastMediaLoadedInfo={source:e.composedPath()[0],mediaLoadedInfo:e.detail},this._inBackground&&e.stopPropagation()},this._host=e,e.addController(this),this._intersectionObserver=new IntersectionObserver(this._intersectionHandler.bind(this))}shouldUpdate(){return!(this._inBackground&&this._messageReceived)}hostConnected(){this._intersectionObserver.observe(this._host),this._host.addEventListener("frigate-card:media:loaded",this._handleMediaLoaded),this._host.addEventListener("frigate-card:message",this._handleMessage)}hostDisconnected(){this._intersectionObserver.disconnect(),this._host.removeEventListener("frigate-card:media:loaded",this._handleMediaLoaded),this._host.removeEventListener("frigate-card:message",this._handleMessage)}clearMessageReceived(){this._messageReceived=!1}isInBackground(){return this._inBackground}getRenderEpoch(){return this._renderEpoch}_intersectionHandler(e){const i=this._inBackground;this._inBackground=!e.some((e=>e.isIntersecting)),this._inBackground||this._messageReceived||!this._lastMediaLoadedInfo||r(this._lastMediaLoadedInfo.source,this._lastMediaLoadedInfo.mediaLoadedInfo),i!==this._inBackground&&this._host.requestUpdate()}}const P=(e,i,t)=>{if(!t?.camera_entity)return o(e,s("error.no_live_camera"),{context:t}),null;const a=i.states[t.camera_entity];return a||(o(e,s("error.live_camera_not_found"),{context:t}),null)};let G=class extends h{constructor(){super(...arguments),this.load=!1,this.label="",this._isVideoMediaLoaded=!1,this._refProvider=l(),this._importPromises=[]}async play(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await z(this,this._refProvider.value)}async pause(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.pause())}async mute(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.mute())}async unmute(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.unmute())}isMuted(){return this._refProvider.value?.isMuted()??!0}async seek(e){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.seek(e))}async setControls(e){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.setControls(e))}isPaused(){return this._refProvider.value?.isPaused()??!0}async getScreenshotURL(){return await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.getScreenshotURL())??null}_getResolvedProvider(){return"auto"===this.cameraConfig?.live_provider?this.cameraConfig?.webrtc_card?.entity||this.cameraConfig?.webrtc_card?.url?"webrtc-card":this.cameraConfig?.camera_entity?"ha":this.cameraConfig?.frigate.camera_name?"jsmpeg":m.cameras.live_provider:this.cameraConfig?.live_provider||"image"}_shouldShowImageDuringLoading(){return!!this.cameraConfig?.camera_entity&&!!this.hass&&!!this.liveConfig?.show_image_during_load}disconnectedCallback(){this._isVideoMediaLoaded=!1}_videoMediaShowHandler(){this._isVideoMediaLoaded=!0}willUpdate(e){if(e.has("load")&&(this.load||(this._isVideoMediaLoaded=!1,v(this))),e.has("liveConfig")&&(this.liveConfig?.show_image_during_load&&this._importPromises.push(import("./image-c6a10ba0.js")),this.liveConfig?.zoomable&&this._importPromises.push(import("./zoomer-725f087c.js"))),e.has("cameraConfig")){const e=this._getResolvedProvider();"jsmpeg"===e?this._importPromises.push(import("./jsmpeg-66c8006d.js")):"ha"===e?this._importPromises.push(import("./ha-31684cf1.js")):"webrtc-card"===e?this._importPromises.push(import("./webrtc-card-74652e9d.js")):"image"===e?this._importPromises.push(import("./image-c6a10ba0.js")):"go2rtc"===e&&this._importPromises.push(import("./index-17f8eed5.js")),k(this,this.cameraConfig?.dimensions?.layout),this.style.aspectRatio=p({ratio:this.cameraConfig?.dimensions?.aspect_ratio})}}async getUpdateComplete(){const e=await super.getUpdateComplete();return await Promise.all(this._importPromises),this._importPromises=[],e}_useZoomIfRequired(e){return this.liveConfig?.zoomable?u` this.cameraConfig?.dimensions?.layout?{pan:this.cameraConfig.dimensions.layout.pan,zoom:this.cameraConfig.dimensions.layout.zoom}:void 0))} + .settings=${this.zoomSettings} + @frigate-card:zoom:zoomed=${()=>this.setControls(!1)} + @frigate-card:zoom:unzoomed=${()=>this.setControls()} + > + ${e} + `:e}render(){if(!(this.load&&this.hass&&this.liveConfig&&this.cameraConfig))return;this.title=this.label,this.ariaLabel=this.label;const e=this._getResolvedProvider(),i=!this._isVideoMediaLoaded&&this._shouldShowImageDuringLoading(),t={hidden:i};if("ha"===e||"image"===e){const e=P(this,this.hass,this.cameraConfig);if(!e)return;if("unavailable"===e.state)return v(this),C({message:`${s("error.live_camera_unavailable")}${this.label?`: ${this.label}`:""}`,type:"info",icon:"mdi:cctv-off",dotdotdot:!0})}return u`${this._useZoomIfRequired(u` + ${i||"image"===e?u` {"image"===e?this._videoMediaShowHandler():i.stopPropagation()}} + > + `:u``} + ${"ha"===e?u` + `:"go2rtc"===e?u` + `:"webrtc-card"===e?u` + `:"jsmpeg"===e?u` + `:u``} + `)} + ${i&&!this._isVideoMediaLoaded?u``:""} `}static get styles(){return M(':host {\n background-color: var(--primary-background-color);\n background-position: center;\n background-repeat: no-repeat;\n background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4yLjIgKGIwYTg0ODY1NDEsIDIwMjItMTItMDEpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJjYW1lcmEtaXJpcy5zdmciCiAgIGlkPSJzdmc0IgogICB2ZXJzaW9uPSIxLjEiCiAgIHZpZXdCb3g9IjAgMCAyNCAyNCIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzOCIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzYiCiAgICAgcGFnZWNvbG9yPSIjYjkzZTNlIgogICAgIGJvcmRlcmNvbG9yPSIjMDAwMDAwIgogICAgIGJvcmRlcm9wYWNpdHk9IjAuMjUiCiAgICAgaW5rc2NhcGU6c2hvd3BhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuNjA3ODQzMTQiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6ZGVza2NvbG9yPSIjZDFkMWQxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp6b29tPSIyNi42MjUwNiIKICAgICBpbmtzY2FwZTpjeD0iLTEuOTM0MjY4IgogICAgIGlua3NjYXBlOmN5PSIxNS42ODA3MTYiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIzODQwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjE1MjciCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjEwODAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjIyNyIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzQiIC8+CiAgPGcKICAgICBpZD0iZzExMTkiCiAgICAgc3R5bGU9ImZpbGwtb3BhY2l0eTowLjA1O2ZpbGw6I2ZmZmZmZiI+CiAgICA8Y2lyY2xlCiAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eTowLjA1O3N0cm9rZS13aWR0aDoxLjM5NzI5IgogICAgICAgaWQ9InBhdGgxNzAiCiAgICAgICBjeD0iMTIiCiAgICAgICBjeT0iMTIiCiAgICAgICBpbmtzY2FwZTpsYWJlbD0iV2hpdGUgQmFja2dyb3VuZCIKICAgICAgIHI9IjExLjI1IiAvPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gMTMuNzMwMDAxLDE1IDkuODMwMDAwMywyMS43NiBDIDEwLjUzLDIxLjkxIDExLjI1LDIyIDEyLDIyIGMgMi40MDAwMDEsMCA0LjYsLTAuODUgNi4zMiwtMi4yNSBMIDE0LjY2MDAwMSwxMy40IE0gMi40NjAwMDAzLDE1IGMgMC45MiwyLjkyIDMuMTUsNS4yNiA1Ljk5LDYuMzQgTCAxMi4xMiwxNSBtIC0zLjU3OTk5OTcsLTMgLTMuOSwtNi43NDk5OTk2IGMgLTEuNjQsMS43NDk5OTkgLTIuNjQsNC4xMzk5OTkzIC0yLjY0LDYuNzQ5OTk5NiAwLDAuNjggMC4wNywxLjM1IDAuMiwyIGggNy40OSBNIDIxLjgsOS45OTk5OTk3IEggMTQuMzEwMDAxIEwgMTQuNjAwMDAxLDEwLjUgMTkuMzYsMTguNzUgQyAyMSwxNi45NyAyMiwxNC42IDIyLDEyIDIyLDExLjMxIDIxLjkzLDEwLjY0IDIxLjgsOS45OTk5OTk3IG0gLTAuMjYsLTEgQyAyMC42Miw2LjA3MDAwMDUgMTguMzksMy43NDAwMDAyIDE1LjU1MDAwMSwyLjY2MDAwMDIgTCAxMS44OCw4Ljk5OTk5OTcgTSA5LjQwMDAwMDMsMTAuNSAxNC4xNzAwMDEsMi4yNDAwMDAyIGMgLTAuNywtMC4xNSAtMS40MjAwMDEsLTAuMjQgLTIuMTcwMDAxLC0wLjI0IC0yLjM5OTk5OTcsMCAtNC41OTk5OTk3LDAuODQgLTYuMzE5OTk5NywyLjI1MDAwMDMgbCAzLjY2LDYuMzQ5OTk5NSB6IgogICAgICAgaWQ9InBhdGgyIgogICAgICAgaW5rc2NhcGU6bGFiZWw9IklyaXMiCiAgICAgICBzdHlsZT0iZmlsbC1vcGFjaXR5OjAuMDU7ZmlsbDojZmZmZmZmIiAvPgogIDwvZz4KPC9zdmc+Cg==");\n background-size: 10%;\n background-position: center;\n}\n\n:host {\n display: block;\n height: 100%;\n width: 100%;\n position: relative;\n}\n\n.hidden {\n display: none;\n}\n\nha-icon {\n position: absolute;\n top: 10px;\n right: 10px;\n color: var(--primary-color);\n}')}};n([d({attribute:!1})],G.prototype,"hass",void 0),n([d({attribute:!1})],G.prototype,"cameraConfig",void 0),n([d({attribute:!1})],G.prototype,"cameraEndpoints",void 0),n([d({attribute:!1})],G.prototype,"liveConfig",void 0),n([d({attribute:!0,type:Boolean})],G.prototype,"load",void 0),n([d({attribute:!1})],G.prototype,"label",void 0),n([d({attribute:!1})],G.prototype,"cardWideConfig",void 0),n([d({attribute:!1})],G.prototype,"microphoneStream",void 0),n([d({attribute:!1})],G.prototype,"zoomSettings",void 0),n([g()],G.prototype,"_isVideoMediaLoaded",void 0),G=n([c("frigate-card-live-provider")],G);const W="frigate-card-live-provider";let U=class extends h{constructor(){super(...arguments),this._cameraToSlide={},this._refPTZControl=l(),this._refCarousel=l(),this._mediaActionsController=new E,this._mediaHasLoaded=!1}connectedCallback(){super.connectedCallback(),this.requestUpdate()}disconnectedCallback(){this._mediaActionsController.destroy(),super.disconnectedCallback()}_getTransitionEffect(){return this.overriddenLiveConfig?.transition_effect??m.live.transition_effect}_getSelectedCameraIndex(){if(this.viewFilterCameraID)return 0;const e=this.cameraManager?.getStore().getCameraIDsWithCapability("live"),i=this.viewManagerEpoch?.manager.getView();return e?.size&&i?Math.max(0,Array.from(e).indexOf(i.camera)):0}willUpdate(e){(e.has("microphoneManager")||e.has("overriddenLiveConfig"))&&this._mediaActionsController.setOptions({playerSelector:W,...this.overriddenLiveConfig?.auto_play&&{autoPlayConditions:this.overriddenLiveConfig.auto_play},...this.overriddenLiveConfig?.auto_pause&&{autoPauseConditions:this.overriddenLiveConfig.auto_pause},...this.overriddenLiveConfig?.auto_mute&&{autoMuteConditions:this.overriddenLiveConfig.auto_mute},...this.overriddenLiveConfig?.auto_unmute&&{autoUnmuteConditions:this.overriddenLiveConfig.auto_unmute},...(this.overriddenLiveConfig?.auto_unmute||this.overriddenLiveConfig?.auto_mute)&&{microphoneManager:this.microphoneManager,microphoneMuteSeconds:this.overriddenLiveConfig.microphone.mute_after_microphone_mute_seconds}})}_getPlugins(){return[N({...this.overriddenLiveConfig?.lazy_load&&{lazyLoadCallback:(e,i)=>this._lazyloadOrUnloadSlide("load",e,i)},lazyUnloadConditions:this.overriddenLiveConfig?.lazy_unload,lazyUnloadCallback:(e,i)=>this._lazyloadOrUnloadSlide("unload",e,i)}),x(),T()]}_getLazyLoadCount(){return!1===this.overriddenLiveConfig?.lazy_load?null:0}_getSlides(){if(!this.cameraManager)return[[],{}];const e=this.viewManagerEpoch?.manager.getView(),i=this.viewFilterCameraID?new Set([this.viewFilterCameraID]):this.cameraManager?.getStore().getCameraIDsWithCapability("live"),t=[],a={};for(const[r,o]of this.cameraManager.getStore().getCameraConfigEntries(i)){const i=this._getSubstreamCameraID(r,e),s=r===i?o:this.cameraManager?.getStore().getCameraConfig(i),n=s?this._renderLive(i,s):null;n&&(a[r]=t.length,t.push(n))}return[t,a]}_setViewHandler(e){const i=this.cameraManager?.getStore().getCameraIDsWithCapability("live");i?.size&&e.detail.index!==this._getSelectedCameraIndex()&&this._setViewCameraID([...i][e.detail.index])}_setViewCameraID(e){e&&this.viewManagerEpoch?.manager.setViewByParametersWithNewQuery({params:{camera:e}})}_lazyloadOrUnloadSlide(e,i,t){t instanceof HTMLSlotElement&&(t=t.assignedElements({flatten:!0})[0]);const a=t?.querySelector(W);a&&(a.load="load"===e)}_renderLive(e,i){if(!(this.overriddenLiveConfig&&this.nonOverriddenLiveConfig&&this.hass&&this.cameraManager&&this.conditionsManagerEpoch))return;let t=null;try{t=w(this.conditionsManagerEpoch.manager,{live:this.nonOverriddenLiveConfig},{configOverrides:this.overrides,stateOverrides:{camera:e},schema:b}).live}catch(e){return y(this,e)}const a=this.cameraManager.getCameraMetadata(e),r=this.viewManagerEpoch?.manager.getView();return u` +
    + this.cameraManager?.getCameraEndpoints(e)??void 0))} + .label=${a?.title??""} + .liveConfig=${t} + .hass=${this.hass} + .cardWideConfig=${this.cardWideConfig} + .zoomSettings=${r?.context?.zoom?.[e]?.requested} + @frigate-card:zoom:change=${i=>L(i,this.viewManagerEpoch?.manager,e)} + > + +
    + `}_getCameraIDsOfNeighbors(){const e=this.cameraManager?[...this.cameraManager?.getStore().getCameraIDsWithCapability("live")]:[],i=this.viewManagerEpoch?.manager.getView();if(this.viewFilterCameraID||e.length<=1||!i||!this.hass)return[null,null];const t=this.viewFilterCameraID??i.camera,a=e.indexOf(t);return a<0?[null,null]:[e[a>0?a-1:e.length-1],e[a+11,[r,o]=this._getCameraIDsOfNeighbors(),s=r?this.cameraManager.getCameraMetadata(this._getSubstreamCameraID(r,e)):null,n=o?this.cameraManager.getCameraMetadata(this._getSubstreamCameraID(o,e)):null,d=!(!this._mediaHasLoaded||this.viewFilterCameraID&&this.viewFilterCameraID!==e.camera||!1===e.context?.ptzControls?.enabled)&&e.context?.ptzControls?.enabled;return u` + {this._mediaHasLoaded=!0}} + @frigate-card:media:unloaded=${()=>{this._mediaHasLoaded=!1}} + > + {this._setViewCameraID(r),A(e)}} + > + + ${i} + {this._setViewCameraID(o),A(e)}} + > + + + + + `}_setMediaTarget(){const e=this.viewManagerEpoch?.manager.getView(),i=this._getSelectedCameraIndex();this.viewFilterCameraID?this._mediaActionsController.setTarget(i,e?.camera===this.viewFilterCameraID):this._mediaActionsController.setTarget(i,!0)}updated(e){super.updated(e);let i=!1;!this._mediaActionsController.hasRoot()&&this._refCarousel.value&&(this._mediaActionsController.initialize(this._refCarousel.value),i=!0),(i||e.has("viewManagerEpoch"))&&this._setMediaTarget()}static get styles(){return M(":host {\n display: block;\n --video-max-height: none;\n}\n\n:host(:not([grid-id])) {\n height: 100%;\n}\n\n:host([unselected]) frigate-card-carousel {\n pointer-events: none;\n}\n\n.embla__slide {\n display: flex;\n justify-content: center;\n height: 100%;\n flex: 0 0 100%;\n}")}};n([d({attribute:!1})],U.prototype,"hass",void 0),n([d({attribute:!1})],U.prototype,"viewManagerEpoch",void 0),n([d({attribute:!1})],U.prototype,"nonOverriddenLiveConfig",void 0),n([d({attribute:!1})],U.prototype,"overriddenLiveConfig",void 0),n([d({attribute:!1,hasChanged:_})],U.prototype,"overrides",void 0),n([d({attribute:!1})],U.prototype,"conditionsManagerEpoch",void 0),n([d({attribute:!1})],U.prototype,"cardWideConfig",void 0),n([d({attribute:!1})],U.prototype,"cameraManager",void 0),n([d({attribute:!1})],U.prototype,"microphoneManager",void 0),n([d({attribute:!1})],U.prototype,"viewFilterCameraID",void 0),n([g()],U.prototype,"_mediaHasLoaded",void 0),U=n([c("frigate-card-live-carousel")],U);let B=class extends h{_renderCarousel(e){const i=this.viewManagerEpoch?.manager.getView(),t=e??i?.camera;return u` + + + `}_gridSelectCamera(e){this.viewManagerEpoch?.manager.setViewByParameters({params:{camera:e}})}_needsGrid(){const e=this.cameraManager?.getStore().getCameraIDsWithCapability("live"),i=this.viewManagerEpoch?.manager.getView();return!!i?.isGrid()&&!!i?.supportsMultipleDisplayModes()&&!!e&&e.size>1}willUpdate(e){e.has("viewManagerEpoch")&&this._needsGrid()&&import("./media-grid-3082f0ad.js")}render(){if(!this.conditionsManagerEpoch||!this.nonOverriddenLiveConfig)return;const e=this.cameraManager?.getStore().getCameraIDsWithCapability("live");return e?.size&&this._needsGrid()?u` + this._gridSelectCamera(e.detail.selected)} + > + ${[...e].map((e=>this._renderCarousel(e)))} + + `:this._renderCarousel()}static get styles(){return M(":host {\n width: 100%;\n height: 100%;\n display: block;\n}\n\n@keyframes warning-pulse {\n 0% {\n border: solid 2px var(--frigate-card-triggered-color-1, rgba(0, 0, 0, 0));\n }\n 50% {\n border: solid 2px var(--frigate-card-triggered-color-2, var(--warning-color));\n }\n 100% {\n border: solid 2px var(--frigate-card-triggered-color-1, rgba(0, 0, 0, 0));\n }\n}\nfrigate-card-live-carousel[triggered] {\n animation: warning-pulse 5s infinite;\n}\n\nfrigate-card-live-carousel[selected] {\n --frigate-card-triggered-color-1: var(--primary-color);\n}")}};n([d({attribute:!1})],B.prototype,"hass",void 0),n([d({attribute:!1})],B.prototype,"viewManagerEpoch",void 0),n([d({attribute:!1})],B.prototype,"nonOverriddenLiveConfig",void 0),n([d({attribute:!1})],B.prototype,"overriddenLiveConfig",void 0),n([d({attribute:!1,hasChanged:_})],B.prototype,"overrides",void 0),n([d({attribute:!1})],B.prototype,"conditionsManagerEpoch",void 0),n([d({attribute:!1})],B.prototype,"cardWideConfig",void 0),n([d({attribute:!1})],B.prototype,"cameraManager",void 0),n([d({attribute:!1})],B.prototype,"microphoneManager",void 0),n([d({attribute:!1})],B.prototype,"triggeredCameraIDs",void 0),B=n([c("frigate-card-live-grid")],B);let V=class extends h{constructor(){super(...arguments),this._controller=new O(this)}shouldUpdate(e){return this._controller.shouldUpdate()}willUpdate(){this._controller.clearMessageReceived()}render(){if(this.hass&&this.nonOverriddenLiveConfig&&this.cameraManager)return u`${Z(this._controller.getRenderEpoch(),u` + + + `)}`}static get styles(){return M(j)}};n([d({attribute:!1})],V.prototype,"conditionsManagerEpoch",void 0),n([d({attribute:!1})],V.prototype,"hass",void 0),n([d({attribute:!1})],V.prototype,"viewManagerEpoch",void 0),n([d({attribute:!1})],V.prototype,"nonOverriddenLiveConfig",void 0),n([d({attribute:!1})],V.prototype,"overriddenLiveConfig",void 0),n([d({attribute:!1,hasChanged:_})],V.prototype,"overrides",void 0),n([d({attribute:!1})],V.prototype,"cameraManager",void 0),n([d({attribute:!1})],V.prototype,"cardWideConfig",void 0),n([d({attribute:!1})],V.prototype,"microphoneManager",void 0),n([d({attribute:!1})],V.prototype,"triggeredCameraIDs",void 0),V=n([c("frigate-card-live")],V);var Y=Object.freeze({__proto__:null,get FrigateCardLive(){return V}});export{P as g,Y as i}; diff --git a/config/www/community/frigate-hass-card/index-0a012f43.js.gz b/config/www/community/frigate-hass-card/index-0a012f43.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..242ea06c82353327ff7d8c1e5a41f0a191e00879 GIT binary patch literal 6883 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 dthis.onconnect())),this.ondisconnect()):(this.ondisconnect(),this.onconnect())}set src(e){"string"!=typeof e&&(e=e.toString()),e.startsWith("http")?e="ws"+e.substring(4):e.startsWith("/")&&(e="ws"+location.origin.substring(4)+e),this.wsURL=e,this.onconnect()}play(){}send(e){this.ws&&this.ws.send(JSON.stringify(e))}codecs(e){return this.CODECS.filter((e=>this.media.indexOf(e.indexOf("vc1")>0?"video":"audio")>=0)).filter((t=>e(`video/mp4; codecs="${t}"`))).join()}connectedCallback(){if(this.disconnectTID&&(clearTimeout(this.disconnectTID),this.disconnectTID=0),this.video){const e=this.video.seekable;e.length>0&&(this.video.currentTime=e.end(e.length-1)),this.play()}else this.oninit();this.onconnect()}disconnectedCallback(){this.background||this.disconnectTID||this.wsState===WebSocket.CLOSED&&this.pcState===WebSocket.CLOSED||(this.disconnectTID=setTimeout((()=>{this.reconnectTID&&(clearTimeout(this.reconnectTID),this.reconnectTID=0),this.disconnectTID=0,this.ondisconnect()}),this.DISCONNECT_TIMEOUT))}oninit(){this.video=document.createElement("video"),m(this.video,this.controls),this.video.playsInline=!0,this.video.preload="auto",this.video.style.display="block",this.video.style.width="100%",this.video.style.height="100%",this.appendChild(this.video),this.video.addEventListener("error",(e=>{this.ws&&this.wsState===WebSocket.OPEN&&this.ws.close()}));const n=window.navigator.userAgent.match(/Version\/(\d+).+Safari/);if(n){const e=n[1]<"13"?"mp4a.40.2":n[1]<"14"?"flac":"opus";this.CODECS.splice(this.CODECS.indexOf(e))}if(!this.background){if("hidden"in document&&this.visibilityCheck&&document.addEventListener("visibilitychange",(()=>{document.hidden?this.disconnectedCallback():this.isConnected&&this.connectedCallback()})),"IntersectionObserver"in window&&this.visibilityThreshold){new IntersectionObserver((e=>{e.forEach((e=>{e.isIntersecting?this.isConnected&&this.connectedCallback():this.disconnectedCallback()}))}),{threshold:this.visibilityThreshold}).observe(this)}this.video.onloadeddata=()=>{this.controls&&v(this.video,y),e(this,this.video,{player:this.containingPlayer,capabilities:{supports2WayAudio:!!this.pc,supportsPause:!0,hasAudio:g(this.video)},technology:f(this)})},this.video.onvolumechange=()=>t(this),this.video.onplay=()=>i(this),this.video.onpause=()=>s(this),this.video.muted=!0}}onconnect(){return!(!this.isConnected||!this.wsURL||this.ws||this.pc)&&(this.wsState=WebSocket.CONNECTING,this.connectTS=Date.now(),this.ws=new WebSocket(this.wsURL),this.ws.binaryType="arraybuffer",this.ws.addEventListener("open",(e=>this.onopen(e))),this.ws.addEventListener("close",(e=>this.onclose(e))),!0)}ondisconnect(){this.wsState=WebSocket.CLOSED,this.ws&&(this.ws.close(),this.ws=null),this.pcState=WebSocket.CLOSED,this.pc&&(this.pc.getSenders().forEach((e=>{e.track&&e.track.stop()})),this.pc.close(),this.pc=null),this.video.src="",this.video.srcObject=null}onopen(){this.wsState=WebSocket.OPEN,this.ws.addEventListener("message",(e=>{if("string"==typeof e.data){const t=JSON.parse(e.data);for(const e in this.onmessage)this.onmessage[e](t)}else this.ondata(e.data)})),this.ondata=null,this.onmessage={};const e=[];return this.mode.indexOf("mse")>=0&&("MediaSource"in window||"ManagedMediaSource"in window)?(e.push("mse"),this.onmse()):this.mode.indexOf("hls")>=0&&this.video.canPlayType("application/vnd.apple.mpegurl")?(e.push("hls"),this.onhls()):this.mode.indexOf("mp4")>=0&&(e.push("mp4"),this.onmp4()),this.mode.indexOf("webrtc")>=0&&"RTCPeerConnection"in window&&(e.push("webrtc"),this.onwebrtc()),this.mode.indexOf("mjpeg")>=0&&(e.length?this.onmessage.mjpeg=t=>{"error"===t.type&&0===t.value.indexOf(e[0])&&this.onmjpeg()}:(e.push("mjpeg"),this.onmjpeg())),e}onclose(){if(this.wsState===WebSocket.CLOSED)return!1;this.wsState=WebSocket.CONNECTING,this.ws=null;const e=Math.max(this.RECONNECT_TIMEOUT-(Date.now()-this.connectTS),0);return this.reconnectTID=setTimeout((()=>{this.reconnectTID=0,this.onconnect()}),e),!0}onmse(){let e;if("ManagedMediaSource"in window){const t=window.ManagedMediaSource;e=new t,e.addEventListener("sourceopen",(()=>{this.send({type:"mse",value:this.codecs(t.isTypeSupported)})}),{once:!0}),this.video.disableRemotePlayback=!0,this.video.srcObject=e}else e=new MediaSource,e.addEventListener("sourceopen",(()=>{URL.revokeObjectURL(this.video.src),this.send({type:"mse",value:this.codecs(MediaSource.isTypeSupported)})}),{once:!0}),this.video.src=URL.createObjectURL(e),this.video.srcObject=null;this.play(),this.mseCodecs="",this.onmessage.mse=t=>{if("mse"!==t.type)return;this.mseCodecs=t.value;const i=e.addSourceBuffer(t.value);i.mode="segments",i.addEventListener("updateend",(()=>{if(!i.updating)try{if(n>0){const e=s.slice(0,n);n=0,i.appendBuffer(e)}else if(i.buffered&&i.buffered.length){const t=i.buffered.end(i.buffered.length-1)-15,s=i.buffered.start(0);t>s&&(i.remove(s,t),e.setLiveSeekableRange(t,t+15))}}catch(e){}}));const s=new Uint8Array(2097152);let n=0;this.ondata=e=>{if(i.updating||n>0){const t=new Uint8Array(e);s.set(t,n),n+=t.byteLength}else try{i.appendBuffer(e)}catch(e){}}}}onwebrtc(){const e=new RTCPeerConnection(this.pcConfig);e.addEventListener("icecandidate",(e=>{if(e.candidate&&this.mode.indexOf("webrtc/tcp")>=0&&"udp"===e.candidate.protocol)return;const t=e.candidate?e.candidate.toJSON().candidate:"";this.send({type:"webrtc/candidate",value:t})})),e.addEventListener("connectionstatechange",(()=>{if("connected"===e.connectionState){const t=e.getTransceivers().filter((e=>"recvonly"===e.currentDirection)).map((e=>e.receiver.track)),i=document.createElement("video");i.addEventListener("loadeddata",(()=>this.onpcvideo(i)),{once:!0}),i.srcObject=new MediaStream(t)}else"failed"!==e.connectionState&&"disconnected"!==e.connectionState||(e.close(),this.pcState=WebSocket.CLOSED,this.pc=null,this.onconnect())})),this.onmessage.webrtc=t=>{switch(t.type){case"webrtc/candidate":if(this.mode.indexOf("webrtc/tcp")>=0&&t.value.indexOf(" udp ")>0)return;e.addIceCandidate({candidate:t.value,sdpMid:"0"}).catch((e=>{console.warn(e)}));break;case"webrtc/answer":e.setRemoteDescription({type:"answer",sdp:t.value}).catch((e=>{console.warn(e)}));break;case"error":if(t.value.indexOf("webrtc/offer")<0)return;e.close()}},this.createOffer(e).then((e=>{this.send({type:"webrtc/offer",value:e.sdp})})),this.pcState=WebSocket.CONNECTING,this.pc=e}async createOffer(e){this.microphoneStream?.getTracks().forEach((t=>{e.addTransceiver(t,{direction:"sendonly"})}));try{if(this.media.indexOf("microphone")>=0){(await navigator.mediaDevices.getUserMedia({audio:!0})).getTracks().forEach((t=>{e.addTransceiver(t,{direction:"sendonly"})}))}}catch(e){console.warn(e)}for(const t of["video","audio"])this.media.indexOf(t)>=0&&e.addTransceiver(t,{direction:"recvonly"});const t=await e.createOffer();return await e.setLocalDescription(t),t}onpcvideo(e){if(this.pc){let t=0,i=0;const s=e.srcObject;s.getVideoTracks().length>0&&(t+=544),s.getAudioTracks().length>0&&(t+=258),this.mseCodecs.indexOf("hvc1.")>=0&&(i+=560),this.mseCodecs.indexOf("avc1.")>=0&&(i+=528),this.mseCodecs.indexOf("mp4a.")>=0&&(i+=257),t>=i?(this.video.srcObject=s,this.play(),this.pcState=WebSocket.OPEN,this.wsState=WebSocket.CLOSED,this.ws&&(this.ws.close(),this.ws=null)):(this.pcState=WebSocket.CLOSED,this.pc&&(this.pc.close(),this.pc=null))}e.srcObject=null}onmjpeg(){let t=!1;this.ondata=i=>{m(this.video,!1),this.video.poster="data:image/jpeg;base64,"+b.btoa(i),t||(t=!0,e(this,this.video,{player:this.containingPlayer,technology:["mjpeg"]}))},this.send({type:"mjpeg"})}onhls(){this.onmessage.hls=e=>{if("hls"!==e.type)return;const t="http"+this.wsURL.substring(2,this.wsURL.indexOf("/ws"))+"/hls/",i=e.value.replace("hls/",t);this.video.src="data:application/vnd.apple.mpegurl;base64,"+btoa(i),this.play()},this.send({type:"hls",value:this.codecs((e=>this.video.canPlayType(e)))})}onmp4(){const t=document.createElement("canvas");let i;const s=document.createElement("video");s.autoplay=!0,s.playsInline=!0,s.muted=!0,s.addEventListener("loadeddata",(n=>{i||(t.width=s.videoWidth,t.height=s.videoHeight,i=t.getContext("2d"),e(this,s,{player:this.containingPlayer,technology:["mp4"]})),i.drawImage(s,0,0,t.width,t.height),m(this.video,!1),this.video.poster=t.toDataURL("image/jpeg")})),this.ondata=e=>{s.src="data:video/mp4;base64,"+b.btoa(e)},this.send({type:"mp4",value:this.codecs(this.video.canPlayType)})}static btoa(e){const t=new Uint8Array(e),i=t.byteLength;let s="";for(let e=0;e%0U1XV} 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

    !N( z66O5pV2hT~LOLGT56WQ~>KN>~btt*J3&9f&a9T7IbFL~&Pxj|6%mf1!PoKIfVdzI| z&XP{A^&W{*#I_Snds*Q>D=Op{RVym>=9_l6+EeLTuRb=LgU;7Oo4H03lLgJmg}J>b z0In;u!Sd*y4Tc?}J!5Q+>?5?VZ@TBVjDNFtAHj#BHK9u#ID_kgM+2CyoZye_g*1GN zxBDP0?r4niGLx_->Bc>-YA{RExCPdppp2`0*Y-rWD#M+f-MPruZ}OwuLro3Ch8V1X z$0`Z7_Z?gcL!jFYDBd+8RYrWKr@EsAxkb>fF+p+1($u`|*xLU79>qPu@Lp37FEA&r zJBk)saG(p`Y(`H5Z3#cL3ej-ckppzPqAd%w$}|Y{%H+y?gs`%u1-KJN0I;j z*P1ws-);DuVKl@$G@_zTd~Yy^=-=6X%{m>083rA^S~J9VjUAj1=I+j*qwem&r{Zh& zHB*j9kH8hC?@k%?T9e%Gc5AUw-#3O4_(~Cl9b-zt(CH0ugsIH(*&!@t_de{L^!^sS zyu(I!aHm}}de@!s`$30gSeSioEKA=7EE#rQGJDx0S3vN``b@Y4?D2!0QaaW1=#~D7 z4F>dA4Cnq$>TihzyflH>I{+9G+=h3$u8W{9^ju#6=uX9!AbfGh%F2JFZ^JtOT<2%G z20)F-^;gbQO0wn>tmi35xEsM3%g2$SheHHIdao|ZtN%^#cTIW*l>gvIpRdn~;a~m_ La=T-oZ!iD=6afKW literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/index-25c40d01.js b/config/www/community/frigate-hass-card/index-25c40d01.js new file mode 100644 index 00000000..30d57352 --- /dev/null +++ b/config/www/community/frigate-hass-card/index-25c40d01.js @@ -0,0 +1,131 @@ +import{_ as e,n as i,b as t,t as a,a as r,cR as s,dm as o,dn as n,da as d,dp as l,dq as g,dr as h,ds as c,dt as u,du as m,dv as v,db as p,cT as C,x as w,c_ as f,dl as I,cV as M,dw as y,dx as _,dy as b,dz as A,r as D,cW as x,cI as k,dA as j,s as $,dB as T,l as z,c$ as N,d1 as L,d2 as E,cU as P}from"./card-45855f1f.js";import"./ha-hls-player-ad38a2a0.js";import{p as Z,h as V,s as G,u as S,i as W,c as F,M as O,A as R,a as U,b as Y}from"./media-1a34ac2c.js";import{m as B}from"./audio-cf3a75aa.js";import{V as Q}from"./media-c9012082.js";let q=class extends r{constructor(){super(...arguments),this.load=!1,this._refFrigateCardMediaPlayer=s(),this._refVideoProvider=s(),this._refImageProvider=s(),this._url=null}async play(){await Z(this,this._refFrigateCardMediaPlayer.value??this._refVideoProvider.value)}async pause(){(this._refFrigateCardMediaPlayer.value||this._refVideoProvider.value)?.pause()}async mute(){this._refFrigateCardMediaPlayer.value?this._refFrigateCardMediaPlayer.value?.mute():this._refVideoProvider.value&&(this._refVideoProvider.value.muted=!0)}async unmute(){this._refFrigateCardMediaPlayer.value?this._refFrigateCardMediaPlayer.value?.mute():this._refVideoProvider.value&&(this._refVideoProvider.value.muted=!1)}isMuted(){return this._refFrigateCardMediaPlayer.value?this._refFrigateCardMediaPlayer.value?.isMuted()??!0:!this._refVideoProvider.value||this._refVideoProvider.value.muted}async seek(e){if(this._refFrigateCardMediaPlayer.value)return this._refFrigateCardMediaPlayer.value.seek(e);this._refVideoProvider.value&&(V(this._refVideoProvider.value),this._refVideoProvider.value.currentTime=e)}async setControls(e){if(this._refFrigateCardMediaPlayer.value)return this._refFrigateCardMediaPlayer.value.setControls(e);this._refVideoProvider.value&&G(this._refVideoProvider.value,e??this.viewerConfig?.controls.builtin??!0)}isPaused(){return this._refFrigateCardMediaPlayer.value?this._refFrigateCardMediaPlayer.value.isPaused():!this._refVideoProvider.value||this._refVideoProvider.value.paused}async getScreenshotURL(){return this._refFrigateCardMediaPlayer.value?await this._refFrigateCardMediaPlayer.value.getScreenshotURL():this._refVideoProvider.value?o(this._refVideoProvider.value):this._refImageProvider.value?this._refImageProvider.value.src:null}async _switchToRelatedClipView(){const e=this.viewManagerEpoch?.manager.getView();if(!(this.hass&&e&&this.cameraManager&&this.media&&n.isEvent(this.media)&&d.areEventQueries(e.query)))return;const i=e.query.clone();i.convertToClipsQueries();i.getQueries()&&await(this.viewManagerEpoch?.manager.setViewByParametersWithExistingQuery({params:{view:"media",query:i},queryExecutorOptions:{selectResult:{id:this.media.getID()??void 0},rejectResults:e=>!e.hasSelectedResult()}}))}async _setURL(){const e=this.media?.getContentID();if(!this.media||!e||!this.hass||this.viewerConfig?.lazy_load&&!this.load)return;let i=this.resolvedMediaCache?.get(e)??null;if(i||(i=await l(this.hass,e,this.resolvedMediaCache)),!i)return;const t=i.url;if(g(t))return void(this._url=h(this.hass,t));const a=this.cameraManager?.getStore().getCamera(this.media.getCameraID()),r=a?.getProxyConfig();if(r&&c(this.hass,r,"media")){if(r.dynamic){const e=t.split(/#/)[0];await u(this.hass,e,{sslVerification:r.ssl_verification,sslCiphers:r.ssl_ciphers,openLimit:0})}try{this._url=await m(this.hass,v(t))}catch(e){p(e)}}else this._url=t}willUpdate(e){if((e.has("load")||e.has("media")||e.has("viewerConfig")||e.has("resolvedMediaCache")||e.has("hass"))&&this._setURL().then((()=>{this.requestUpdate()})),e.has("viewerConfig")&&this.viewerConfig?.zoomable&&import("./zoomer-28db7d93.js"),e.has("media")||e.has("cameraManager")){const e=this.media?.getCameraID(),i=e?this.cameraManager?.getStore().getCameraConfig(e):null;S(this,i?.dimensions?.layout),this.style.aspectRatio=C({ratio:i?.dimensions?.aspect_ratio})}}_useZoomIfRequired(e){if(!this.media)return e;const i=this.media.getCameraID(),t=this.media.getID()??void 0,a=this.cameraManager?.getStore().getCameraConfig(i),r=this.viewManagerEpoch?.manager.getView();return this.viewerConfig?.zoomable?w` a?.dimensions?.layout?{pan:a.dimensions.layout.pan,zoom:a.dimensions.layout.zoom}:void 0))} + .settings=${t?r?.context?.zoom?.[t]?.requested:void 0} + @frigate-card:zoom:zoomed=${()=>this.setControls(!1)} + @frigate-card:zoom:unzoomed=${()=>this.setControls()} + @frigate-card:zoom:change=${e=>f(e,this.viewManagerEpoch?.manager,t)} + > + ${e} + `:e}render(){if(this.load&&this.media&&this.hass&&this.viewerConfig)return this._url?this._useZoomIfRequired(w` + ${n.isVideo(this.media)?this.media.getVideoContentType()===Q.HLS?w` + `:w` + + `:w`{this.viewerConfig?.snapshot_click_plays_clip&&this._switchToRelatedClipView()}} + @load=${e=>{y(this,e,{player:this,technology:["jpg"]})}} + />`} + `):I({cardWideConfig:this.cardWideConfig})}static get styles(){return D(':host {\n background-color: var(--primary-background-color);\n background-position: center;\n background-repeat: no-repeat;\n background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4yLjIgKGIwYTg0ODY1NDEsIDIwMjItMTItMDEpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJjYW1lcmEtaXJpcy5zdmciCiAgIGlkPSJzdmc0IgogICB2ZXJzaW9uPSIxLjEiCiAgIHZpZXdCb3g9IjAgMCAyNCAyNCIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzOCIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzYiCiAgICAgcGFnZWNvbG9yPSIjYjkzZTNlIgogICAgIGJvcmRlcmNvbG9yPSIjMDAwMDAwIgogICAgIGJvcmRlcm9wYWNpdHk9IjAuMjUiCiAgICAgaW5rc2NhcGU6c2hvd3BhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuNjA3ODQzMTQiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6ZGVza2NvbG9yPSIjZDFkMWQxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp6b29tPSIyNi42MjUwNiIKICAgICBpbmtzY2FwZTpjeD0iLTEuOTM0MjY4IgogICAgIGlua3NjYXBlOmN5PSIxNS42ODA3MTYiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIzODQwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjE1MjciCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjEwODAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjIyNyIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzQiIC8+CiAgPGcKICAgICBpZD0iZzExMTkiCiAgICAgc3R5bGU9ImZpbGwtb3BhY2l0eTowLjA1O2ZpbGw6I2ZmZmZmZiI+CiAgICA8Y2lyY2xlCiAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eTowLjA1O3N0cm9rZS13aWR0aDoxLjM5NzI5IgogICAgICAgaWQ9InBhdGgxNzAiCiAgICAgICBjeD0iMTIiCiAgICAgICBjeT0iMTIiCiAgICAgICBpbmtzY2FwZTpsYWJlbD0iV2hpdGUgQmFja2dyb3VuZCIKICAgICAgIHI9IjExLjI1IiAvPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gMTMuNzMwMDAxLDE1IDkuODMwMDAwMywyMS43NiBDIDEwLjUzLDIxLjkxIDExLjI1LDIyIDEyLDIyIGMgMi40MDAwMDEsMCA0LjYsLTAuODUgNi4zMiwtMi4yNSBMIDE0LjY2MDAwMSwxMy40IE0gMi40NjAwMDAzLDE1IGMgMC45MiwyLjkyIDMuMTUsNS4yNiA1Ljk5LDYuMzQgTCAxMi4xMiwxNSBtIC0zLjU3OTk5OTcsLTMgLTMuOSwtNi43NDk5OTk2IGMgLTEuNjQsMS43NDk5OTkgLTIuNjQsNC4xMzk5OTkzIC0yLjY0LDYuNzQ5OTk5NiAwLDAuNjggMC4wNywxLjM1IDAuMiwyIGggNy40OSBNIDIxLjgsOS45OTk5OTk3IEggMTQuMzEwMDAxIEwgMTQuNjAwMDAxLDEwLjUgMTkuMzYsMTguNzUgQyAyMSwxNi45NyAyMiwxNC42IDIyLDEyIDIyLDExLjMxIDIxLjkzLDEwLjY0IDIxLjgsOS45OTk5OTk3IG0gLTAuMjYsLTEgQyAyMC42Miw2LjA3MDAwMDUgMTguMzksMy43NDAwMDAyIDE1LjU1MDAwMSwyLjY2MDAwMDIgTCAxMS44OCw4Ljk5OTk5OTcgTSA5LjQwMDAwMDMsMTAuNSAxNC4xNzAwMDEsMi4yNDAwMDAyIGMgLTAuNywtMC4xNSAtMS40MjAwMDEsLTAuMjQgLTIuMTcwMDAxLC0wLjI0IC0yLjM5OTk5OTcsMCAtNC41OTk5OTk3LDAuODQgLTYuMzE5OTk5NywyLjI1MDAwMDMgbCAzLjY2LDYuMzQ5OTk5NSB6IgogICAgICAgaWQ9InBhdGgyIgogICAgICAgaW5rc2NhcGU6bGFiZWw9IklyaXMiCiAgICAgICBzdHlsZT0iZmlsbC1vcGFjaXR5OjAuMDU7ZmlsbDojZmZmZmZmIiAvPgogIDwvZz4KPC9zdmc+Cg==");\n background-size: 10%;\n background-position: center;\n}\n\n:host {\n display: block;\n width: 100%;\n height: 100%;\n}\n\nimg,\nvideo,\nfrigate-card-ha-hls-player {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n object-view-box: inset(var(--frigate-card-media-layout-view-box-top, 0%) var(--frigate-card-media-layout-view-box-right, 0%) var(--frigate-card-media-layout-view-box-bottom, 0%) var(--frigate-card-media-layout-view-box-left, 0%));\n}\n\nfrigate-card-progress-indicator {\n padding: 30px;\n box-sizing: border-box;\n}')}};e([i({attribute:!1})],q.prototype,"hass",void 0),e([i({attribute:!1})],q.prototype,"viewManagerEpoch",void 0),e([i({attribute:!1})],q.prototype,"media",void 0),e([i({attribute:!1})],q.prototype,"viewerConfig",void 0),e([i({attribute:!1})],q.prototype,"resolvedMediaCache",void 0),e([i({attribute:!1})],q.prototype,"load",void 0),e([i({attribute:!1})],q.prototype,"cameraManager",void 0),e([i({attribute:!1})],q.prototype,"cardWideConfig",void 0),e([t()],q.prototype,"_url",void 0),q=e([a("frigate-card-viewer-provider")],q);let H=class extends r{constructor(){super(...arguments),this.showControls=!0,this._selected=0,this._media=null,this._mediaActionsController=new O,this._player=null,this._refCarousel=s()}updated(e){super.updated(e),e.has("viewManagerEpoch")&&this.viewManagerEpoch?.manager.getView()?.context?.mediaViewer!==this.viewManagerEpoch?.oldView?.context?.mediaViewer&&this._seekHandler(),!this._mediaActionsController.hasRoot()&&this._refCarousel.value&&this._mediaActionsController.initialize(this._refCarousel.value)}connectedCallback(){super.connectedCallback(),this.requestUpdate()}disconnectedCallback(){this._mediaActionsController.destroy(),super.disconnectedCallback()}_getTransitionEffect(){return this.viewerConfig?.transition_effect??k.media_viewer.transition_effect}_getPlugins(){return[R({...this.viewerConfig?.lazy_load&&{lazyLoadCallback:(e,i)=>this._lazyloadSlide(i)}}),U(),Y()]}_getMediaNeighbors(){const e=this._media?.length??0;if(!this._media)return null;const i=this._selected>0?this._selected-1:null,t=this._selected+1{if(!t||!this._media)return;const i=("previous"===e?t.previous?.index:t.next?.index)??null;null!==i&&this._setViewSelectedIndex(i)},r=this.viewManagerEpoch?.manager.getView();return w` + {this._setViewSelectedIndex(e.detail.index)}} + @frigate-card:media:loaded=${e=>{this._player=e.detail.player??null,this._seekHandler()}} + @frigate-card:media:unloaded=${()=>{this._player=null}} + > + ${this.showControls?w` {a("previous"),N(e)}} + >`:""} + ${W([this._media,r],(()=>this._getSlides()))} + ${this.showControls?w` {a("next"),N(e)}} + >`:""} + + ${r?w` + `:""} +

    + + +
    + `}async _seekHandler(){const e=this.viewManagerEpoch?.manager.getView(),i=e?.context?.mediaViewer?.seek;if(!(this.hass&&i&&this._media&&this._player))return;const t=this._media[this._selected];if(!t)return;const a=t.includesTime(i);$(this,!a,"unseekable"),a||this._player.isPaused()?a&&this._player.isPaused()&&this._player.play():this._player.pause();const r=await(this.cameraManager?.getMediaSeekTime(t,i))??null;null!==r&&this._player.seek(r)}_renderMediaItem(e){const i=this.viewManagerEpoch?.manager.getView();return this.hass&&i&&this.viewerConfig?w`
    + +
    `:null}static get styles(){return D(":host {\n position: relative;\n --video-max-height: none;\n}\n\n:host([unselected]) frigate-card-carousel,\n:host([unselected]) .seek-warning {\n pointer-events: none;\n}\n\n:host([unseekable]) frigate-card-carousel {\n filter: brightness(50%);\n}\n\n:host([unseekable]) .seek-warning {\n display: block;\n}\n\n.seek-warning {\n display: none;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n color: white;\n}\n\n.embla__slide {\n height: 100%;\n flex: 0 0 100%;\n}")}};e([i({attribute:!1})],H.prototype,"hass",void 0),e([i({attribute:!1})],H.prototype,"viewManagerEpoch",void 0),e([i({attribute:!1})],H.prototype,"viewFilterCameraID",void 0),e([i({attribute:!1,hasChanged:x})],H.prototype,"viewerConfig",void 0),e([i({attribute:!1})],H.prototype,"resolvedMediaCache",void 0),e([i({attribute:!1})],H.prototype,"cardWideConfig",void 0),e([i({attribute:!1})],H.prototype,"cameraManager",void 0),e([i({attribute:!1})],H.prototype,"showControls",void 0),e([t()],H.prototype,"_selected",void 0),H=e([a("frigate-card-viewer-carousel")],H);let X=class extends r{_renderCarousel(e){const i=this.viewManagerEpoch?.manager.getView()?.camera;return w` + + + `}willUpdate(e){e.has("viewManagerEpoch")&&this._needsGrid()&&import("./media-grid-0f7352bc.js")}_needsGrid(){const e=this.viewManagerEpoch?.manager.getView(),i=e?.queryResults?.getCameraIDs();return!!e?.isGrid()&&!!e?.supportsMultipleDisplayModes()&&(i?.size??0)>1}_gridSelectCamera(e){const i=this.viewManagerEpoch?.manager.getView();this.viewManagerEpoch?.manager.setViewByParameters({params:{camera:e,queryResults:i?.queryResults?.clone().promoteCameraSelectionToMainSelection(e)}})}render(){const e=this.viewManagerEpoch?.manager.getView(),i=e?.queryResults?.getCameraIDs();return i&&this._needsGrid()?w` + this._gridSelectCamera(e.detail.selected)} + > + ${[...i].map((e=>this._renderCarousel(e)))} + + `:this._renderCarousel()}static get styles(){return D(E)}};e([i({attribute:!1})],X.prototype,"hass",void 0),e([i({attribute:!1})],X.prototype,"viewManagerEpoch",void 0),e([i({attribute:!1})],X.prototype,"viewerConfig",void 0),e([i({attribute:!1})],X.prototype,"resolvedMediaCache",void 0),e([i({attribute:!1})],X.prototype,"cardWideConfig",void 0),e([i({attribute:!1})],X.prototype,"cameraManager",void 0),X=e([a("frigate-card-viewer-grid")],X);let J=class extends r{render(){if(this.hass&&this.viewManagerEpoch&&this.viewerConfig&&this.cameraManager&&this.cardWideConfig){if(!this.viewManagerEpoch.manager.getView()?.queryResults?.hasResults()){const e=!!this.viewManagerEpoch.manager.getView()?.context?.loading?.query;return P({type:"info",message:z(e?"error.awaiting_media":"common.no_media"),icon:"mdi:multimedia",dotdotdot:e})}return w` + `}}static get styles(){return D(":host {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n gap: 5px;\n}\n\nfrigate-card-viewer-carousel {\n flex: 1;\n min-height: 0;\n}")}};e([i({attribute:!1})],J.prototype,"hass",void 0),e([i({attribute:!1})],J.prototype,"viewManagerEpoch",void 0),e([i({attribute:!1})],J.prototype,"viewerConfig",void 0),e([i({attribute:!1})],J.prototype,"resolvedMediaCache",void 0),e([i({attribute:!1})],J.prototype,"cameraManager",void 0),e([i({attribute:!1})],J.prototype,"cardWideConfig",void 0),J=e([a("frigate-card-viewer")],J);export{J as FrigateCardViewer}; diff --git a/config/www/community/frigate-hass-card/index-25c40d01.js.gz b/config/www/community/frigate-hass-card/index-25c40d01.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..76c70773960402382c317bb72063f1069eded282 GIT binary patch literal 6433 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 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/index-33db4eee.js b/config/www/community/frigate-hass-card/index-33db4eee.js new file mode 100644 index 00000000..bb79fff7 --- /dev/null +++ b/config/www/community/frigate-hass-card/index-33db4eee.js @@ -0,0 +1,154 @@ +import{cL as e,_ as i,n as a,b as t,t as r,a as o,cM as s,cI as n,cN as d,cO as g,x as c,cP as h,l,cQ as m,e as v,r as p,cR as u,cS as C,cT as f,cU as I,cV as M,cW as _,cX as w,cY as b,cZ as y,c_ as L}from"./card-320adb66.js";import{p as A,u as D,i as $,d as j,M as z,A as E,a as S,b as N}from"./dispatch-live-error-c649b480.js";class k{constructor(e){this._inBackground=!1,this._lastMediaLoadedInfo=null,this._handleMediaLoaded=e=>{this._lastMediaLoadedInfo={source:e.composedPath()[0],mediaLoadedInfo:e.detail},this._inBackground&&e.stopPropagation()},this._host=e,e.addController(this),this._intersectionObserver=new IntersectionObserver(this._intersectionHandler.bind(this))}hostConnected(){this._intersectionObserver.observe(this._host),this._host.addEventListener("frigate-card:media:loaded",this._handleMediaLoaded)}hostDisconnected(){this._intersectionObserver.disconnect(),this._host.removeEventListener("frigate-card:media:loaded",this._handleMediaLoaded)}isInBackground(){return this._inBackground}_intersectionHandler(i){const a=this._inBackground;this._inBackground=!i.some((e=>e.isIntersecting)),!this._inBackground&&this._lastMediaLoadedInfo&&e(this._lastMediaLoadedInfo.source,this._lastMediaLoadedInfo.mediaLoadedInfo),a!==this._inBackground&&this._host.requestUpdate()}}let x=class extends o{constructor(){super(...arguments),this.load=!1,this.label="",this._isVideoMediaLoaded=!1,this._hasProviderError=!1,this._refProvider=s(),this._importPromises=[]}async play(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await A(this,this._refProvider.value)}async pause(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.pause())}async mute(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.mute())}async unmute(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.unmute())}isMuted(){return this._refProvider.value?.isMuted()??!0}async seek(e){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.seek(e))}async setControls(e){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.setControls(e))}isPaused(){return this._refProvider.value?.isPaused()??!0}async getScreenshotURL(){return await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.getScreenshotURL())??null}_getResolvedProvider(){return"auto"===this.cameraConfig?.live_provider?this.cameraConfig?.webrtc_card?.entity||this.cameraConfig?.webrtc_card?.url?"webrtc-card":this.cameraConfig?.camera_entity?"ha":this.cameraConfig?.frigate.camera_name?"jsmpeg":n.cameras.live_provider:this.cameraConfig?.live_provider||"image"}_shouldShowImageDuringLoading(){return!(!this.cameraConfig?.camera_entity||!this.hass||!this.liveConfig?.show_image_during_load||this._hasProviderError)}disconnectedCallback(){this._isVideoMediaLoaded=!1}_videoMediaShowHandler(){this._isVideoMediaLoaded=!0}_providerErrorHandler(){this._hasProviderError=!0}willUpdate(e){if(e.has("load")&&(this.load||(this._isVideoMediaLoaded=!1,d(this))),e.has("liveConfig")&&(this.liveConfig?.show_image_during_load&&this._importPromises.push(import("./image-678a8283.js")),this.liveConfig?.zoomable&&this._importPromises.push(import("./zoomer-85596cd4.js"))),e.has("cameraConfig")){const e=this._getResolvedProvider();"jsmpeg"===e?this._importPromises.push(import("./jsmpeg-50dde246.js")):"ha"===e?this._importPromises.push(import("./ha-4f7cd760.js")):"webrtc-card"===e?this._importPromises.push(import("./webrtc-card-a69dcd1f.js")):"image"===e?this._importPromises.push(import("./image-678a8283.js")):"go2rtc"===e&&this._importPromises.push(import("./index-a3bb8676.js")),D(this,this.cameraConfig?.dimensions?.layout),this.style.aspectRatio=g({ratio:this.cameraConfig?.dimensions?.aspect_ratio})}}async getUpdateComplete(){const e=await super.getUpdateComplete();return await Promise.all(this._importPromises),this._importPromises=[],e}_useZoomIfRequired(e){return this.liveConfig?.zoomable?c` this.cameraConfig?.dimensions?.layout?{pan:this.cameraConfig.dimensions.layout.pan,zoom:this.cameraConfig.dimensions.layout.zoom}:void 0))} + .settings=${this.zoomSettings} + @frigate-card:zoom:zoomed=${()=>this.setControls(!1)} + @frigate-card:zoom:unzoomed=${()=>this.setControls()} + > + ${e} + `:e}render(){if(!(this.load&&this.hass&&this.liveConfig&&this.cameraConfig))return;this.title=this.label,this.ariaLabel=this.label;const e=this._getResolvedProvider(),i=!this._isVideoMediaLoaded&&this._shouldShowImageDuringLoading(),a={hidden:i};if("ha"===e||"image"===e||this.cameraConfig?.camera_entity&&this.cameraConfig.always_error_if_entity_unavailable){if(!this.cameraConfig?.camera_entity)return j(this),h({message:l("error.no_live_camera"),type:"error",icon:"mdi:camera",context:this.cameraConfig});const e=this.hass.states[this.cameraConfig.camera_entity];if(!e)return j(this),h({message:l("error.live_camera_not_found"),type:"error",icon:"mdi:camera",context:this.cameraConfig});if("unavailable"===e.state)return j(this),d(this),h({message:`${l("error.live_camera_unavailable")}${this.label?`: ${this.label}`:""}`,type:"info",icon:"mdi:cctv-off",dotdotdot:!0})}return c`${this._useZoomIfRequired(c` + ${i||"image"===e?c` this._providerErrorHandler()} + @frigate-card:media:loaded=${i=>{"image"===e?this._videoMediaShowHandler():i.stopPropagation()}} + > + `:c``} + ${"ha"===e?c` this._providerErrorHandler()} + @frigate-card:media:loaded=${this._videoMediaShowHandler.bind(this)} + > + `:"go2rtc"===e?c`this._providerErrorHandler()} + @frigate-card:media:loaded=${this._videoMediaShowHandler.bind(this)} + > + `:"webrtc-card"===e?c`this._providerErrorHandler()} + @frigate-card:media:loaded=${this._videoMediaShowHandler.bind(this)} + > + `:"jsmpeg"===e?c` this._providerErrorHandler()} + @frigate-card:media:loaded=${this._videoMediaShowHandler.bind(this)} + > + `:c``} + `)} + ${i&&!this._isVideoMediaLoaded?c``:""} `}static get styles(){return p(':host {\n background-color: var(--primary-background-color);\n background-position: center;\n background-repeat: no-repeat;\n background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4yLjIgKGIwYTg0ODY1NDEsIDIwMjItMTItMDEpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJjYW1lcmEtaXJpcy5zdmciCiAgIGlkPSJzdmc0IgogICB2ZXJzaW9uPSIxLjEiCiAgIHZpZXdCb3g9IjAgMCAyNCAyNCIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzOCIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzYiCiAgICAgcGFnZWNvbG9yPSIjYjkzZTNlIgogICAgIGJvcmRlcmNvbG9yPSIjMDAwMDAwIgogICAgIGJvcmRlcm9wYWNpdHk9IjAuMjUiCiAgICAgaW5rc2NhcGU6c2hvd3BhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuNjA3ODQzMTQiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6ZGVza2NvbG9yPSIjZDFkMWQxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp6b29tPSIyNi42MjUwNiIKICAgICBpbmtzY2FwZTpjeD0iLTEuOTM0MjY4IgogICAgIGlua3NjYXBlOmN5PSIxNS42ODA3MTYiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIzODQwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjE1MjciCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjEwODAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjIyNyIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzQiIC8+CiAgPGcKICAgICBpZD0iZzExMTkiCiAgICAgc3R5bGU9ImZpbGwtb3BhY2l0eTowLjA1O2ZpbGw6I2ZmZmZmZiI+CiAgICA8Y2lyY2xlCiAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eTowLjA1O3N0cm9rZS13aWR0aDoxLjM5NzI5IgogICAgICAgaWQ9InBhdGgxNzAiCiAgICAgICBjeD0iMTIiCiAgICAgICBjeT0iMTIiCiAgICAgICBpbmtzY2FwZTpsYWJlbD0iV2hpdGUgQmFja2dyb3VuZCIKICAgICAgIHI9IjExLjI1IiAvPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gMTMuNzMwMDAxLDE1IDkuODMwMDAwMywyMS43NiBDIDEwLjUzLDIxLjkxIDExLjI1LDIyIDEyLDIyIGMgMi40MDAwMDEsMCA0LjYsLTAuODUgNi4zMiwtMi4yNSBMIDE0LjY2MDAwMSwxMy40IE0gMi40NjAwMDAzLDE1IGMgMC45MiwyLjkyIDMuMTUsNS4yNiA1Ljk5LDYuMzQgTCAxMi4xMiwxNSBtIC0zLjU3OTk5OTcsLTMgLTMuOSwtNi43NDk5OTk2IGMgLTEuNjQsMS43NDk5OTkgLTIuNjQsNC4xMzk5OTkzIC0yLjY0LDYuNzQ5OTk5NiAwLDAuNjggMC4wNywxLjM1IDAuMiwyIGggNy40OSBNIDIxLjgsOS45OTk5OTk3IEggMTQuMzEwMDAxIEwgMTQuNjAwMDAxLDEwLjUgMTkuMzYsMTguNzUgQyAyMSwxNi45NyAyMiwxNC42IDIyLDEyIDIyLDExLjMxIDIxLjkzLDEwLjY0IDIxLjgsOS45OTk5OTk3IG0gLTAuMjYsLTEgQyAyMC42Miw2LjA3MDAwMDUgMTguMzksMy43NDAwMDAyIDE1LjU1MDAwMSwyLjY2MDAwMDIgTCAxMS44OCw4Ljk5OTk5OTcgTSA5LjQwMDAwMDMsMTAuNSAxNC4xNzAwMDEsMi4yNDAwMDAyIGMgLTAuNywtMC4xNSAtMS40MjAwMDEsLTAuMjQgLTIuMTcwMDAxLC0wLjI0IC0yLjM5OTk5OTcsMCAtNC41OTk5OTk3LDAuODQgLTYuMzE5OTk5NywyLjI1MDAwMDMgbCAzLjY2LDYuMzQ5OTk5NSB6IgogICAgICAgaWQ9InBhdGgyIgogICAgICAgaW5rc2NhcGU6bGFiZWw9IklyaXMiCiAgICAgICBzdHlsZT0iZmlsbC1vcGFjaXR5OjAuMDU7ZmlsbDojZmZmZmZmIiAvPgogIDwvZz4KPC9zdmc+Cg==");\n background-size: 10%;\n background-position: center;\n}\n\n:host {\n display: block;\n height: 100%;\n width: 100%;\n position: relative;\n}\n\n.hidden {\n display: none;\n}\n\nha-icon {\n position: absolute;\n top: 10px;\n right: 10px;\n color: var(--primary-color);\n}')}};i([a({attribute:!1})],x.prototype,"hass",void 0),i([a({attribute:!1})],x.prototype,"cameraConfig",void 0),i([a({attribute:!1})],x.prototype,"cameraEndpoints",void 0),i([a({attribute:!1})],x.prototype,"liveConfig",void 0),i([a({attribute:!0,type:Boolean})],x.prototype,"load",void 0),i([a({attribute:!1})],x.prototype,"label",void 0),i([a({attribute:!1})],x.prototype,"cardWideConfig",void 0),i([a({attribute:!1})],x.prototype,"microphoneStream",void 0),i([a({attribute:!1})],x.prototype,"zoomSettings",void 0),i([t()],x.prototype,"_isVideoMediaLoaded",void 0),i([t()],x.prototype,"_hasProviderError",void 0),x=i([r("frigate-card-live-provider")],x);const P="frigate-card-live-provider";let T=class extends o{constructor(){super(...arguments),this._cameraToSlide={},this._refPTZControl=s(),this._refCarousel=s(),this._mediaActionsController=new z,this._mediaHasLoaded=!1}connectedCallback(){super.connectedCallback(),this.requestUpdate()}disconnectedCallback(){this._mediaActionsController.destroy(),super.disconnectedCallback()}_getTransitionEffect(){return this.overriddenLiveConfig?.transition_effect??n.live.transition_effect}_getSelectedCameraIndex(){if(this.viewFilterCameraID)return 0;const e=this.cameraManager?.getStore().getCameraIDsWithCapability("live"),i=this.viewManagerEpoch?.manager.getView();return e?.size&&i?Math.max(0,Array.from(e).indexOf(i.camera)):0}willUpdate(e){(e.has("microphoneManager")||e.has("overriddenLiveConfig"))&&this._mediaActionsController.setOptions({playerSelector:P,...this.overriddenLiveConfig?.auto_play&&{autoPlayConditions:this.overriddenLiveConfig.auto_play},...this.overriddenLiveConfig?.auto_pause&&{autoPauseConditions:this.overriddenLiveConfig.auto_pause},...this.overriddenLiveConfig?.auto_mute&&{autoMuteConditions:this.overriddenLiveConfig.auto_mute},...this.overriddenLiveConfig?.auto_unmute&&{autoUnmuteConditions:this.overriddenLiveConfig.auto_unmute},...(this.overriddenLiveConfig?.auto_unmute||this.overriddenLiveConfig?.auto_mute)&&{microphoneManager:this.microphoneManager,microphoneMuteSeconds:this.overriddenLiveConfig.microphone.mute_after_microphone_mute_seconds}})}_getPlugins(){return[E({...this.overriddenLiveConfig?.lazy_load&&{lazyLoadCallback:(e,i)=>this._lazyloadOrUnloadSlide("load",e,i)},lazyUnloadConditions:this.overriddenLiveConfig?.lazy_unload,lazyUnloadCallback:(e,i)=>this._lazyloadOrUnloadSlide("unload",e,i)}),S(),N()]}_getLazyLoadCount(){return!1===this.overriddenLiveConfig?.lazy_load?null:0}_getSlides(){if(!this.cameraManager)return[[],{}];const e=this.viewManagerEpoch?.manager.getView(),i=this.viewFilterCameraID?new Set([this.viewFilterCameraID]):this.cameraManager?.getStore().getCameraIDsWithCapability("live"),a=[],t={};for(const[r,o]of this.cameraManager.getStore().getCameraConfigEntries(i)){const i=this._getSubstreamCameraID(r,e),s=r===i?o:this.cameraManager?.getStore().getCameraConfig(i),n=s?this._renderLive(i,s):null;n&&(t[r]=a.length,a.push(n))}return[a,t]}_setViewHandler(e){const i=this.cameraManager?.getStore().getCameraIDsWithCapability("live");i?.size&&e.detail.index!==this._getSelectedCameraIndex()&&this._setViewCameraID([...i][e.detail.index])}_setViewCameraID(e){e&&this.viewManagerEpoch?.manager.setViewByParametersWithNewQuery({params:{camera:e}})}_lazyloadOrUnloadSlide(e,i,a){a instanceof HTMLSlotElement&&(a=a.assignedElements({flatten:!0})[0]);const t=a?.querySelector(P);t&&(t.load="load"===e)}_renderLive(e,i){if(!(this.overriddenLiveConfig&&this.nonOverriddenLiveConfig&&this.hass&&this.cameraManager&&this.conditionsManagerEpoch))return;let a=null;try{a=C(this.conditionsManagerEpoch.manager,{live:this.nonOverriddenLiveConfig},{configOverrides:this.overrides,stateOverrides:{camera:e},schema:f}).live}catch(e){return I(this,e)}const t=this.cameraManager.getCameraMetadata(e),r=this.viewManagerEpoch?.manager.getView();return c` +
    + this.cameraManager?.getCameraEndpoints(e)??void 0))} + .label=${t?.title??""} + .liveConfig=${a} + .hass=${this.hass} + .cardWideConfig=${this.cardWideConfig} + .zoomSettings=${r?.context?.zoom?.[e]?.requested} + @frigate-card:zoom:change=${i=>M(i,this.viewManagerEpoch?.manager,e)} + > + +
    + `}_getSubstreamCameraID(e,i){return i?.context?.live?.overrides?.get(e)??e}_getCameraNeighbors(){const e=this.cameraManager?[...this.cameraManager?.getStore().getCameraIDsWithCapability("live")]:[],i=this.viewManagerEpoch?.manager.getView();if(this.viewFilterCameraID||e.length<=1||!i||!this.hass)return{};const a=this.viewFilterCameraID??i.camera,t=e.indexOf(a);if(t<0)return{};const r=e[t>0?t-1:e.length-1],o=e[t+1{this._setViewCameraID(t?.id),w(e)}} + > + `}render(){const e=this.viewManagerEpoch?.manager.getView();if(!(this.overriddenLiveConfig&&this.hass&&e&&this.cameraManager))return;const[i,a]=this._getSlides();if(this._cameraToSlide=a,!i.length)return;const t=i.length>1,r=this._getCameraNeighbors(),o=!(!this._mediaHasLoaded||this.viewFilterCameraID&&this.viewFilterCameraID!==e.camera||!1===e.context?.ptzControls?.enabled)&&e.context?.ptzControls?.enabled;return c` + {this._mediaHasLoaded=!0}} + @frigate-card:media:unloaded=${()=>{this._mediaHasLoaded=!1}} + > + ${this._renderNextPrevious("left",r)} + + ${i} + + ${this._renderNextPrevious("right",r)} + + + + `}_setMediaTarget(){const e=this.viewManagerEpoch?.manager.getView(),i=this._getSelectedCameraIndex();this.viewFilterCameraID?this._mediaActionsController.setTarget(i,e?.camera===this.viewFilterCameraID):this._mediaActionsController.setTarget(i,!0)}updated(e){super.updated(e);let i=!1;!this._mediaActionsController.hasRoot()&&this._refCarousel.value&&(this._mediaActionsController.initialize(this._refCarousel.value),i=!0),(i||e.has("viewManagerEpoch"))&&this._setMediaTarget()}static get styles(){return p(":host {\n display: block;\n --video-max-height: none;\n}\n\n:host(:not([grid-id])) {\n height: 100%;\n}\n\n:host([unselected]) frigate-card-carousel {\n pointer-events: none;\n}\n\n.embla__slide {\n display: flex;\n justify-content: center;\n height: 100%;\n flex: 0 0 100%;\n}")}};i([a({attribute:!1})],T.prototype,"hass",void 0),i([a({attribute:!1})],T.prototype,"viewManagerEpoch",void 0),i([a({attribute:!1})],T.prototype,"nonOverriddenLiveConfig",void 0),i([a({attribute:!1})],T.prototype,"overriddenLiveConfig",void 0),i([a({attribute:!1,hasChanged:u})],T.prototype,"overrides",void 0),i([a({attribute:!1})],T.prototype,"conditionsManagerEpoch",void 0),i([a({attribute:!1})],T.prototype,"cardWideConfig",void 0),i([a({attribute:!1})],T.prototype,"cameraManager",void 0),i([a({attribute:!1})],T.prototype,"microphoneManager",void 0),i([a({attribute:!1})],T.prototype,"viewFilterCameraID",void 0),i([t()],T.prototype,"_mediaHasLoaded",void 0),T=i([r("frigate-card-live-carousel")],T);let Z=class extends o{_renderCarousel(e){const i=this.viewManagerEpoch?.manager.getView(),a=e??i?.camera;return c` + + + `}_gridSelectCamera(e){this.viewManagerEpoch?.manager.setViewByParameters({params:{camera:e}})}_needsGrid(){const e=this.cameraManager?.getStore().getCameraIDsWithCapability("live"),i=this.viewManagerEpoch?.manager.getView();return!!i?.isGrid()&&!!i?.supportsMultipleDisplayModes()&&!!e&&e.size>1}willUpdate(e){e.has("viewManagerEpoch")&&this._needsGrid()&&import("./media-grid-adc03f7c.js")}render(){if(!this.conditionsManagerEpoch||!this.nonOverriddenLiveConfig)return;const e=this.cameraManager?.getStore().getCameraIDsWithCapability("live");return e?.size&&this._needsGrid()?c` + this._gridSelectCamera(e.detail.selected)} + > + ${[...e].map((e=>this._renderCarousel(e)))} + + `:this._renderCarousel()}static get styles(){return p(":host {\n width: 100%;\n height: 100%;\n display: block;\n}\n\n@keyframes warning-pulse {\n 0% {\n border: solid 2px var(--frigate-card-triggered-color-1, rgba(0, 0, 0, 0));\n }\n 50% {\n border: solid 2px var(--frigate-card-triggered-color-2, var(--warning-color));\n }\n 100% {\n border: solid 2px var(--frigate-card-triggered-color-1, rgba(0, 0, 0, 0));\n }\n}\nfrigate-card-live-carousel[triggered] {\n animation: warning-pulse 5s infinite;\n}\n\nfrigate-card-live-carousel[selected] {\n --frigate-card-triggered-color-1: var(--primary-color);\n}")}};i([a({attribute:!1})],Z.prototype,"hass",void 0),i([a({attribute:!1})],Z.prototype,"viewManagerEpoch",void 0),i([a({attribute:!1})],Z.prototype,"nonOverriddenLiveConfig",void 0),i([a({attribute:!1})],Z.prototype,"overriddenLiveConfig",void 0),i([a({attribute:!1,hasChanged:u})],Z.prototype,"overrides",void 0),i([a({attribute:!1})],Z.prototype,"conditionsManagerEpoch",void 0),i([a({attribute:!1})],Z.prototype,"cardWideConfig",void 0),i([a({attribute:!1})],Z.prototype,"cameraManager",void 0),i([a({attribute:!1})],Z.prototype,"microphoneManager",void 0),i([a({attribute:!1})],Z.prototype,"triggeredCameraIDs",void 0),Z=i([r("frigate-card-live-grid")],Z);let G=class extends o{constructor(){super(...arguments),this._controller=new k(this)}render(){if(this.hass&&this.nonOverriddenLiveConfig&&this.cameraManager)return c` + + + `}static get styles(){return p(L)}};i([a({attribute:!1})],G.prototype,"conditionsManagerEpoch",void 0),i([a({attribute:!1})],G.prototype,"hass",void 0),i([a({attribute:!1})],G.prototype,"viewManagerEpoch",void 0),i([a({attribute:!1})],G.prototype,"nonOverriddenLiveConfig",void 0),i([a({attribute:!1})],G.prototype,"overriddenLiveConfig",void 0),i([a({attribute:!1,hasChanged:u})],G.prototype,"overrides",void 0),i([a({attribute:!1})],G.prototype,"cameraManager",void 0),i([a({attribute:!1})],G.prototype,"cardWideConfig",void 0),i([a({attribute:!1})],G.prototype,"microphoneManager",void 0),i([a({attribute:!1})],G.prototype,"triggeredCameraIDs",void 0),G=i([r("frigate-card-live")],G);export{G as FrigateCardLive}; diff --git a/config/www/community/frigate-hass-card/index-33db4eee.js.gz b/config/www/community/frigate-hass-card/index-33db4eee.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..5174b75e31c0907c7880a9a2d42b4b2c186c0ab9 GIT binary patch literal 6687 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 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/index-37750213.js b/config/www/community/frigate-hass-card/index-37750213.js new file mode 100644 index 00000000..9b6c9aba --- /dev/null +++ b/config/www/community/frigate-hass-card/index-37750213.js @@ -0,0 +1,131 @@ +import{_ as e,n as i,b as t,t as a,a as r,cR as s,dm as o,dn as n,da as d,dp as l,dq as g,dr as h,ds as c,dt as u,du as m,dv as v,db as p,cT as C,x as w,c_ as f,dl as I,cV as M,dw as y,dx as _,dy as b,dz as A,r as D,cW as x,cI as k,dA as j,s as $,dB as T,l as z,c$ as N,d1 as L,d2 as E,cU as P}from"./card-769e2b91.js";import"./ha-hls-player-2c0fea5b.js";import{p as Z,h as V,s as G,u as S,i as W,c as F,M as O,A as R,a as U,b as Y}from"./media-d4c0d154.js";import{m as B}from"./audio-cf3a75aa.js";import{V as Q}from"./media-c9012082.js";let q=class extends r{constructor(){super(...arguments),this.load=!1,this._refFrigateCardMediaPlayer=s(),this._refVideoProvider=s(),this._refImageProvider=s(),this._url=null}async play(){await Z(this,this._refFrigateCardMediaPlayer.value??this._refVideoProvider.value)}async pause(){(this._refFrigateCardMediaPlayer.value||this._refVideoProvider.value)?.pause()}async mute(){this._refFrigateCardMediaPlayer.value?this._refFrigateCardMediaPlayer.value?.mute():this._refVideoProvider.value&&(this._refVideoProvider.value.muted=!0)}async unmute(){this._refFrigateCardMediaPlayer.value?this._refFrigateCardMediaPlayer.value?.mute():this._refVideoProvider.value&&(this._refVideoProvider.value.muted=!1)}isMuted(){return this._refFrigateCardMediaPlayer.value?this._refFrigateCardMediaPlayer.value?.isMuted()??!0:!this._refVideoProvider.value||this._refVideoProvider.value.muted}async seek(e){if(this._refFrigateCardMediaPlayer.value)return this._refFrigateCardMediaPlayer.value.seek(e);this._refVideoProvider.value&&(V(this._refVideoProvider.value),this._refVideoProvider.value.currentTime=e)}async setControls(e){if(this._refFrigateCardMediaPlayer.value)return this._refFrigateCardMediaPlayer.value.setControls(e);this._refVideoProvider.value&&G(this._refVideoProvider.value,e??this.viewerConfig?.controls.builtin??!0)}isPaused(){return this._refFrigateCardMediaPlayer.value?this._refFrigateCardMediaPlayer.value.isPaused():!this._refVideoProvider.value||this._refVideoProvider.value.paused}async getScreenshotURL(){return this._refFrigateCardMediaPlayer.value?await this._refFrigateCardMediaPlayer.value.getScreenshotURL():this._refVideoProvider.value?o(this._refVideoProvider.value):this._refImageProvider.value?this._refImageProvider.value.src:null}async _switchToRelatedClipView(){const e=this.viewManagerEpoch?.manager.getView();if(!(this.hass&&e&&this.cameraManager&&this.media&&n.isEvent(this.media)&&d.areEventQueries(e.query)))return;const i=e.query.clone();i.convertToClipsQueries();i.getQueries()&&await(this.viewManagerEpoch?.manager.setViewByParametersWithExistingQuery({params:{view:"media",query:i},queryExecutorOptions:{selectResult:{id:this.media.getID()??void 0},rejectResults:e=>!e.hasSelectedResult()}}))}async _setURL(){const e=this.media?.getContentID();if(!this.media||!e||!this.hass||this.viewerConfig?.lazy_load&&!this.load)return;let i=this.resolvedMediaCache?.get(e)??null;if(i||(i=await l(this.hass,e,this.resolvedMediaCache)),!i)return;const t=i.url;if(g(t))return void(this._url=h(this.hass,t));const a=this.cameraManager?.getStore().getCamera(this.media.getCameraID()),r=a?.getProxyConfig();if(r&&c(this.hass,r,"media")){if(r.dynamic){const e=t.split(/#/)[0];await u(this.hass,e,{sslVerification:r.ssl_verification,sslCiphers:r.ssl_ciphers,openLimit:0})}try{this._url=await m(this.hass,v(t))}catch(e){p(e)}}else this._url=t}willUpdate(e){if((e.has("load")||e.has("media")||e.has("viewerConfig")||e.has("resolvedMediaCache")||e.has("hass"))&&this._setURL().then((()=>{this.requestUpdate()})),e.has("viewerConfig")&&this.viewerConfig?.zoomable&&import("./zoomer-ddec5522.js"),e.has("media")||e.has("cameraManager")){const e=this.media?.getCameraID(),i=e?this.cameraManager?.getStore().getCameraConfig(e):null;S(this,i?.dimensions?.layout),this.style.aspectRatio=C({ratio:i?.dimensions?.aspect_ratio})}}_useZoomIfRequired(e){if(!this.media)return e;const i=this.media.getCameraID(),t=this.media.getID()??void 0,a=this.cameraManager?.getStore().getCameraConfig(i),r=this.viewManagerEpoch?.manager.getView();return this.viewerConfig?.zoomable?w` a?.dimensions?.layout?{pan:a.dimensions.layout.pan,zoom:a.dimensions.layout.zoom}:void 0))} + .settings=${t?r?.context?.zoom?.[t]?.requested:void 0} + @frigate-card:zoom:zoomed=${()=>this.setControls(!1)} + @frigate-card:zoom:unzoomed=${()=>this.setControls()} + @frigate-card:zoom:change=${e=>f(e,this.viewManagerEpoch?.manager,t)} + > + ${e} + `:e}render(){if(this.load&&this.media&&this.hass&&this.viewerConfig)return this._url?this._useZoomIfRequired(w` + ${n.isVideo(this.media)?this.media.getVideoContentType()===Q.HLS?w` + `:w` + + `:w`{this.viewerConfig?.snapshot_click_plays_clip&&this._switchToRelatedClipView()}} + @load=${e=>{y(this,e,{player:this,technology:["jpg"]})}} + />`} + `):I({cardWideConfig:this.cardWideConfig})}static get styles(){return D(':host {\n background-color: var(--primary-background-color);\n background-position: center;\n background-repeat: no-repeat;\n background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4yLjIgKGIwYTg0ODY1NDEsIDIwMjItMTItMDEpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJjYW1lcmEtaXJpcy5zdmciCiAgIGlkPSJzdmc0IgogICB2ZXJzaW9uPSIxLjEiCiAgIHZpZXdCb3g9IjAgMCAyNCAyNCIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzOCIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzYiCiAgICAgcGFnZWNvbG9yPSIjYjkzZTNlIgogICAgIGJvcmRlcmNvbG9yPSIjMDAwMDAwIgogICAgIGJvcmRlcm9wYWNpdHk9IjAuMjUiCiAgICAgaW5rc2NhcGU6c2hvd3BhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuNjA3ODQzMTQiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6ZGVza2NvbG9yPSIjZDFkMWQxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp6b29tPSIyNi42MjUwNiIKICAgICBpbmtzY2FwZTpjeD0iLTEuOTM0MjY4IgogICAgIGlua3NjYXBlOmN5PSIxNS42ODA3MTYiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIzODQwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjE1MjciCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjEwODAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjIyNyIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzQiIC8+CiAgPGcKICAgICBpZD0iZzExMTkiCiAgICAgc3R5bGU9ImZpbGwtb3BhY2l0eTowLjA1O2ZpbGw6I2ZmZmZmZiI+CiAgICA8Y2lyY2xlCiAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eTowLjA1O3N0cm9rZS13aWR0aDoxLjM5NzI5IgogICAgICAgaWQ9InBhdGgxNzAiCiAgICAgICBjeD0iMTIiCiAgICAgICBjeT0iMTIiCiAgICAgICBpbmtzY2FwZTpsYWJlbD0iV2hpdGUgQmFja2dyb3VuZCIKICAgICAgIHI9IjExLjI1IiAvPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gMTMuNzMwMDAxLDE1IDkuODMwMDAwMywyMS43NiBDIDEwLjUzLDIxLjkxIDExLjI1LDIyIDEyLDIyIGMgMi40MDAwMDEsMCA0LjYsLTAuODUgNi4zMiwtMi4yNSBMIDE0LjY2MDAwMSwxMy40IE0gMi40NjAwMDAzLDE1IGMgMC45MiwyLjkyIDMuMTUsNS4yNiA1Ljk5LDYuMzQgTCAxMi4xMiwxNSBtIC0zLjU3OTk5OTcsLTMgLTMuOSwtNi43NDk5OTk2IGMgLTEuNjQsMS43NDk5OTkgLTIuNjQsNC4xMzk5OTkzIC0yLjY0LDYuNzQ5OTk5NiAwLDAuNjggMC4wNywxLjM1IDAuMiwyIGggNy40OSBNIDIxLjgsOS45OTk5OTk3IEggMTQuMzEwMDAxIEwgMTQuNjAwMDAxLDEwLjUgMTkuMzYsMTguNzUgQyAyMSwxNi45NyAyMiwxNC42IDIyLDEyIDIyLDExLjMxIDIxLjkzLDEwLjY0IDIxLjgsOS45OTk5OTk3IG0gLTAuMjYsLTEgQyAyMC42Miw2LjA3MDAwMDUgMTguMzksMy43NDAwMDAyIDE1LjU1MDAwMSwyLjY2MDAwMDIgTCAxMS44OCw4Ljk5OTk5OTcgTSA5LjQwMDAwMDMsMTAuNSAxNC4xNzAwMDEsMi4yNDAwMDAyIGMgLTAuNywtMC4xNSAtMS40MjAwMDEsLTAuMjQgLTIuMTcwMDAxLC0wLjI0IC0yLjM5OTk5OTcsMCAtNC41OTk5OTk3LDAuODQgLTYuMzE5OTk5NywyLjI1MDAwMDMgbCAzLjY2LDYuMzQ5OTk5NSB6IgogICAgICAgaWQ9InBhdGgyIgogICAgICAgaW5rc2NhcGU6bGFiZWw9IklyaXMiCiAgICAgICBzdHlsZT0iZmlsbC1vcGFjaXR5OjAuMDU7ZmlsbDojZmZmZmZmIiAvPgogIDwvZz4KPC9zdmc+Cg==");\n background-size: 10%;\n background-position: center;\n}\n\n:host {\n display: block;\n width: 100%;\n height: 100%;\n}\n\nimg,\nvideo,\nfrigate-card-ha-hls-player {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n object-view-box: inset(var(--frigate-card-media-layout-view-box-top, 0%) var(--frigate-card-media-layout-view-box-right, 0%) var(--frigate-card-media-layout-view-box-bottom, 0%) var(--frigate-card-media-layout-view-box-left, 0%));\n}\n\nfrigate-card-progress-indicator {\n padding: 30px;\n box-sizing: border-box;\n}')}};e([i({attribute:!1})],q.prototype,"hass",void 0),e([i({attribute:!1})],q.prototype,"viewManagerEpoch",void 0),e([i({attribute:!1})],q.prototype,"media",void 0),e([i({attribute:!1})],q.prototype,"viewerConfig",void 0),e([i({attribute:!1})],q.prototype,"resolvedMediaCache",void 0),e([i({attribute:!1})],q.prototype,"load",void 0),e([i({attribute:!1})],q.prototype,"cameraManager",void 0),e([i({attribute:!1})],q.prototype,"cardWideConfig",void 0),e([t()],q.prototype,"_url",void 0),q=e([a("frigate-card-viewer-provider")],q);let H=class extends r{constructor(){super(...arguments),this.showControls=!0,this._selected=0,this._media=null,this._mediaActionsController=new O,this._player=null,this._refCarousel=s()}updated(e){super.updated(e),e.has("viewManagerEpoch")&&this.viewManagerEpoch?.manager.getView()?.context?.mediaViewer!==this.viewManagerEpoch?.oldView?.context?.mediaViewer&&this._seekHandler(),!this._mediaActionsController.hasRoot()&&this._refCarousel.value&&this._mediaActionsController.initialize(this._refCarousel.value)}connectedCallback(){super.connectedCallback(),this.requestUpdate()}disconnectedCallback(){this._mediaActionsController.destroy(),super.disconnectedCallback()}_getTransitionEffect(){return this.viewerConfig?.transition_effect??k.media_viewer.transition_effect}_getPlugins(){return[R({...this.viewerConfig?.lazy_load&&{lazyLoadCallback:(e,i)=>this._lazyloadSlide(i)}}),U(),Y()]}_getMediaNeighbors(){const e=this._media?.length??0;if(!this._media)return null;const i=this._selected>0?this._selected-1:null,t=this._selected+1{if(!t||!this._media)return;const i=("previous"===e?t.previous?.index:t.next?.index)??null;null!==i&&this._setViewSelectedIndex(i)},r=this.viewManagerEpoch?.manager.getView();return w` + {this._setViewSelectedIndex(e.detail.index)}} + @frigate-card:media:loaded=${e=>{this._player=e.detail.player??null,this._seekHandler()}} + @frigate-card:media:unloaded=${()=>{this._player=null}} + > + ${this.showControls?w` {a("previous"),N(e)}} + >`:""} + ${W([this._media,r],(()=>this._getSlides()))} + ${this.showControls?w` {a("next"),N(e)}} + >`:""} + + ${r?w` + `:""} +
    + + +
    + `}async _seekHandler(){const e=this.viewManagerEpoch?.manager.getView(),i=e?.context?.mediaViewer?.seek;if(!(this.hass&&i&&this._media&&this._player))return;const t=this._media[this._selected];if(!t)return;const a=t.includesTime(i);$(this,!a,"unseekable"),a||this._player.isPaused()?a&&this._player.isPaused()&&this._player.play():this._player.pause();const r=await(this.cameraManager?.getMediaSeekTime(t,i))??null;null!==r&&this._player.seek(r)}_renderMediaItem(e){const i=this.viewManagerEpoch?.manager.getView();return this.hass&&i&&this.viewerConfig?w`
    + +
    `:null}static get styles(){return D(":host {\n position: relative;\n --video-max-height: none;\n}\n\n:host([unselected]) frigate-card-carousel,\n:host([unselected]) .seek-warning {\n pointer-events: none;\n}\n\n:host([unseekable]) frigate-card-carousel {\n filter: brightness(50%);\n}\n\n:host([unseekable]) .seek-warning {\n display: block;\n}\n\n.seek-warning {\n display: none;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n color: white;\n}\n\n.embla__slide {\n height: 100%;\n flex: 0 0 100%;\n}")}};e([i({attribute:!1})],H.prototype,"hass",void 0),e([i({attribute:!1})],H.prototype,"viewManagerEpoch",void 0),e([i({attribute:!1})],H.prototype,"viewFilterCameraID",void 0),e([i({attribute:!1,hasChanged:x})],H.prototype,"viewerConfig",void 0),e([i({attribute:!1})],H.prototype,"resolvedMediaCache",void 0),e([i({attribute:!1})],H.prototype,"cardWideConfig",void 0),e([i({attribute:!1})],H.prototype,"cameraManager",void 0),e([i({attribute:!1})],H.prototype,"showControls",void 0),e([t()],H.prototype,"_selected",void 0),H=e([a("frigate-card-viewer-carousel")],H);let X=class extends r{_renderCarousel(e){const i=this.viewManagerEpoch?.manager.getView()?.camera;return w` + + + `}willUpdate(e){e.has("viewManagerEpoch")&&this._needsGrid()&&import("./media-grid-110faed3.js")}_needsGrid(){const e=this.viewManagerEpoch?.manager.getView(),i=e?.queryResults?.getCameraIDs();return!!e?.isGrid()&&!!e?.supportsMultipleDisplayModes()&&(i?.size??0)>1}_gridSelectCamera(e){const i=this.viewManagerEpoch?.manager.getView();this.viewManagerEpoch?.manager.setViewByParameters({params:{camera:e,queryResults:i?.queryResults?.clone().promoteCameraSelectionToMainSelection(e)}})}render(){const e=this.viewManagerEpoch?.manager.getView(),i=e?.queryResults?.getCameraIDs();return i&&this._needsGrid()?w` + this._gridSelectCamera(e.detail.selected)} + > + ${[...i].map((e=>this._renderCarousel(e)))} + + `:this._renderCarousel()}static get styles(){return D(E)}};e([i({attribute:!1})],X.prototype,"hass",void 0),e([i({attribute:!1})],X.prototype,"viewManagerEpoch",void 0),e([i({attribute:!1})],X.prototype,"viewerConfig",void 0),e([i({attribute:!1})],X.prototype,"resolvedMediaCache",void 0),e([i({attribute:!1})],X.prototype,"cardWideConfig",void 0),e([i({attribute:!1})],X.prototype,"cameraManager",void 0),X=e([a("frigate-card-viewer-grid")],X);let J=class extends r{render(){if(this.hass&&this.viewManagerEpoch&&this.viewerConfig&&this.cameraManager&&this.cardWideConfig){if(!this.viewManagerEpoch.manager.getView()?.queryResults?.hasResults()){const e=!!this.viewManagerEpoch.manager.getView()?.context?.loading?.query;return P({type:"info",message:z(e?"error.awaiting_media":"common.no_media"),icon:"mdi:multimedia",dotdotdot:e})}return w` + `}}static get styles(){return D(":host {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n gap: 5px;\n}\n\nfrigate-card-viewer-carousel {\n flex: 1;\n min-height: 0;\n}")}};e([i({attribute:!1})],J.prototype,"hass",void 0),e([i({attribute:!1})],J.prototype,"viewManagerEpoch",void 0),e([i({attribute:!1})],J.prototype,"viewerConfig",void 0),e([i({attribute:!1})],J.prototype,"resolvedMediaCache",void 0),e([i({attribute:!1})],J.prototype,"cameraManager",void 0),e([i({attribute:!1})],J.prototype,"cardWideConfig",void 0),J=e([a("frigate-card-viewer")],J);export{J as FrigateCardViewer}; diff --git a/config/www/community/frigate-hass-card/index-37750213.js.gz b/config/www/community/frigate-hass-card/index-37750213.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..be6634a261b9bcb99b0900726cc56f18105bad19 GIT binary patch literal 6430 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 sIe&{=Jzwt}(J!874#{this._messageReceived=!0,this._inBackground&&(e.stopPropagation(),this._renderEpoch++)},this._handleMediaLoaded=e=>{this._lastMediaLoadedInfo={source:e.composedPath()[0],mediaLoadedInfo:e.detail},this._inBackground&&e.stopPropagation()},this._host=e,e.addController(this),this._intersectionObserver=new IntersectionObserver(this._intersectionHandler.bind(this))}shouldUpdate(){return!(this._inBackground&&this._messageReceived)}hostConnected(){this._intersectionObserver.observe(this._host),this._host.addEventListener("frigate-card:media:loaded",this._handleMediaLoaded),this._host.addEventListener("frigate-card:message",this._handleMessage)}hostDisconnected(){this._intersectionObserver.disconnect(),this._host.removeEventListener("frigate-card:media:loaded",this._handleMediaLoaded),this._host.removeEventListener("frigate-card:message",this._handleMessage)}clearMessageReceived(){this._messageReceived=!1}isInBackground(){return this._inBackground}getRenderEpoch(){return this._renderEpoch}_intersectionHandler(e){const i=this._inBackground;this._inBackground=!e.some((e=>e.isIntersecting)),this._inBackground||this._messageReceived||!this._lastMediaLoadedInfo||r(this._lastMediaLoadedInfo.source,this._lastMediaLoadedInfo.mediaLoadedInfo),i!==this._inBackground&&this._host.requestUpdate()}}const P=(e,i,t)=>{if(!t?.camera_entity)return o(e,s("error.no_live_camera"),{context:t}),null;const a=i.states[t.camera_entity];return a||(o(e,s("error.live_camera_not_found"),{context:t}),null)};let G=class extends h{constructor(){super(...arguments),this.load=!1,this.label="",this._isVideoMediaLoaded=!1,this._refProvider=l(),this._importPromises=[]}async play(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await z(this,this._refProvider.value)}async pause(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.pause())}async mute(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.mute())}async unmute(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.unmute())}isMuted(){return this._refProvider.value?.isMuted()??!0}async seek(e){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.seek(e))}async setControls(e){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.setControls(e))}isPaused(){return this._refProvider.value?.isPaused()??!0}async getScreenshotURL(){return await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.getScreenshotURL())??null}_getResolvedProvider(){return"auto"===this.cameraConfig?.live_provider?this.cameraConfig?.webrtc_card?.entity||this.cameraConfig?.webrtc_card?.url?"webrtc-card":this.cameraConfig?.camera_entity?"ha":this.cameraConfig?.frigate.camera_name?"jsmpeg":m.cameras.live_provider:this.cameraConfig?.live_provider||"image"}_shouldShowImageDuringLoading(){return!!this.cameraConfig?.camera_entity&&!!this.hass&&!!this.liveConfig?.show_image_during_load}disconnectedCallback(){this._isVideoMediaLoaded=!1}_videoMediaShowHandler(){this._isVideoMediaLoaded=!0}willUpdate(e){if(e.has("load")&&(this.load||(this._isVideoMediaLoaded=!1,v(this))),e.has("liveConfig")&&(this.liveConfig?.show_image_during_load&&this._importPromises.push(import("./image-b5d57727.js")),this.liveConfig?.zoomable&&this._importPromises.push(import("./zoomer-672d26af.js"))),e.has("cameraConfig")){const e=this._getResolvedProvider();"jsmpeg"===e?this._importPromises.push(import("./jsmpeg-45778f1d.js")):"ha"===e?this._importPromises.push(import("./ha-9af0bc47.js")):"webrtc-card"===e?this._importPromises.push(import("./webrtc-card-b8854548.js")):"image"===e?this._importPromises.push(import("./image-b5d57727.js")):"go2rtc"===e&&this._importPromises.push(import("./index-78f3984a.js")),k(this,this.cameraConfig?.dimensions?.layout),this.style.aspectRatio=p({ratio:this.cameraConfig?.dimensions?.aspect_ratio})}}async getUpdateComplete(){const e=await super.getUpdateComplete();return await Promise.all(this._importPromises),this._importPromises=[],e}_useZoomIfRequired(e){return this.liveConfig?.zoomable?u` this.cameraConfig?.dimensions?.layout?{pan:this.cameraConfig.dimensions.layout.pan,zoom:this.cameraConfig.dimensions.layout.zoom}:void 0))} + .settings=${this.zoomSettings} + @frigate-card:zoom:zoomed=${()=>this.setControls(!1)} + @frigate-card:zoom:unzoomed=${()=>this.setControls()} + > + ${e} + `:e}render(){if(!(this.load&&this.hass&&this.liveConfig&&this.cameraConfig))return;this.title=this.label,this.ariaLabel=this.label;const e=this._getResolvedProvider(),i=!this._isVideoMediaLoaded&&this._shouldShowImageDuringLoading(),t={hidden:i};if("ha"===e||"image"===e){const e=P(this,this.hass,this.cameraConfig);if(!e)return;if("unavailable"===e.state)return v(this),C({message:`${s("error.live_camera_unavailable")}${this.label?`: ${this.label}`:""}`,type:"info",icon:"mdi:cctv-off",dotdotdot:!0})}return u`${this._useZoomIfRequired(u` + ${i||"image"===e?u` {"image"===e?this._videoMediaShowHandler():i.stopPropagation()}} + > + `:u``} + ${"ha"===e?u` + `:"go2rtc"===e?u` + `:"webrtc-card"===e?u` + `:"jsmpeg"===e?u` + `:u``} + `)} + ${i&&!this._isVideoMediaLoaded?u``:""} `}static get styles(){return M(':host {\n background-color: var(--primary-background-color);\n background-position: center;\n background-repeat: no-repeat;\n background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4yLjIgKGIwYTg0ODY1NDEsIDIwMjItMTItMDEpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJjYW1lcmEtaXJpcy5zdmciCiAgIGlkPSJzdmc0IgogICB2ZXJzaW9uPSIxLjEiCiAgIHZpZXdCb3g9IjAgMCAyNCAyNCIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzOCIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzYiCiAgICAgcGFnZWNvbG9yPSIjYjkzZTNlIgogICAgIGJvcmRlcmNvbG9yPSIjMDAwMDAwIgogICAgIGJvcmRlcm9wYWNpdHk9IjAuMjUiCiAgICAgaW5rc2NhcGU6c2hvd3BhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuNjA3ODQzMTQiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6ZGVza2NvbG9yPSIjZDFkMWQxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp6b29tPSIyNi42MjUwNiIKICAgICBpbmtzY2FwZTpjeD0iLTEuOTM0MjY4IgogICAgIGlua3NjYXBlOmN5PSIxNS42ODA3MTYiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIzODQwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjE1MjciCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjEwODAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjIyNyIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzQiIC8+CiAgPGcKICAgICBpZD0iZzExMTkiCiAgICAgc3R5bGU9ImZpbGwtb3BhY2l0eTowLjA1O2ZpbGw6I2ZmZmZmZiI+CiAgICA8Y2lyY2xlCiAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eTowLjA1O3N0cm9rZS13aWR0aDoxLjM5NzI5IgogICAgICAgaWQ9InBhdGgxNzAiCiAgICAgICBjeD0iMTIiCiAgICAgICBjeT0iMTIiCiAgICAgICBpbmtzY2FwZTpsYWJlbD0iV2hpdGUgQmFja2dyb3VuZCIKICAgICAgIHI9IjExLjI1IiAvPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gMTMuNzMwMDAxLDE1IDkuODMwMDAwMywyMS43NiBDIDEwLjUzLDIxLjkxIDExLjI1LDIyIDEyLDIyIGMgMi40MDAwMDEsMCA0LjYsLTAuODUgNi4zMiwtMi4yNSBMIDE0LjY2MDAwMSwxMy40IE0gMi40NjAwMDAzLDE1IGMgMC45MiwyLjkyIDMuMTUsNS4yNiA1Ljk5LDYuMzQgTCAxMi4xMiwxNSBtIC0zLjU3OTk5OTcsLTMgLTMuOSwtNi43NDk5OTk2IGMgLTEuNjQsMS43NDk5OTkgLTIuNjQsNC4xMzk5OTkzIC0yLjY0LDYuNzQ5OTk5NiAwLDAuNjggMC4wNywxLjM1IDAuMiwyIGggNy40OSBNIDIxLjgsOS45OTk5OTk3IEggMTQuMzEwMDAxIEwgMTQuNjAwMDAxLDEwLjUgMTkuMzYsMTguNzUgQyAyMSwxNi45NyAyMiwxNC42IDIyLDEyIDIyLDExLjMxIDIxLjkzLDEwLjY0IDIxLjgsOS45OTk5OTk3IG0gLTAuMjYsLTEgQyAyMC42Miw2LjA3MDAwMDUgMTguMzksMy43NDAwMDAyIDE1LjU1MDAwMSwyLjY2MDAwMDIgTCAxMS44OCw4Ljk5OTk5OTcgTSA5LjQwMDAwMDMsMTAuNSAxNC4xNzAwMDEsMi4yNDAwMDAyIGMgLTAuNywtMC4xNSAtMS40MjAwMDEsLTAuMjQgLTIuMTcwMDAxLC0wLjI0IC0yLjM5OTk5OTcsMCAtNC41OTk5OTk3LDAuODQgLTYuMzE5OTk5NywyLjI1MDAwMDMgbCAzLjY2LDYuMzQ5OTk5NSB6IgogICAgICAgaWQ9InBhdGgyIgogICAgICAgaW5rc2NhcGU6bGFiZWw9IklyaXMiCiAgICAgICBzdHlsZT0iZmlsbC1vcGFjaXR5OjAuMDU7ZmlsbDojZmZmZmZmIiAvPgogIDwvZz4KPC9zdmc+Cg==");\n background-size: 10%;\n background-position: center;\n}\n\n:host {\n display: block;\n height: 100%;\n width: 100%;\n position: relative;\n}\n\n.hidden {\n display: none;\n}\n\nha-icon {\n position: absolute;\n top: 10px;\n right: 10px;\n color: var(--primary-color);\n}')}};n([d({attribute:!1})],G.prototype,"hass",void 0),n([d({attribute:!1})],G.prototype,"cameraConfig",void 0),n([d({attribute:!1})],G.prototype,"cameraEndpoints",void 0),n([d({attribute:!1})],G.prototype,"liveConfig",void 0),n([d({attribute:!0,type:Boolean})],G.prototype,"load",void 0),n([d({attribute:!1})],G.prototype,"label",void 0),n([d({attribute:!1})],G.prototype,"cardWideConfig",void 0),n([d({attribute:!1})],G.prototype,"microphoneStream",void 0),n([d({attribute:!1})],G.prototype,"zoomSettings",void 0),n([g()],G.prototype,"_isVideoMediaLoaded",void 0),G=n([c("frigate-card-live-provider")],G);const W="frigate-card-live-provider";let U=class extends h{constructor(){super(...arguments),this._cameraToSlide={},this._refPTZControl=l(),this._refCarousel=l(),this._mediaActionsController=new E,this._mediaHasLoaded=!1}connectedCallback(){super.connectedCallback(),this.requestUpdate()}disconnectedCallback(){this._mediaActionsController.destroy(),super.disconnectedCallback()}_getTransitionEffect(){return this.overriddenLiveConfig?.transition_effect??m.live.transition_effect}_getSelectedCameraIndex(){if(this.viewFilterCameraID)return 0;const e=this.cameraManager?.getStore().getCameraIDsWithCapability("live"),i=this.viewManagerEpoch?.manager.getView();return e?.size&&i?Math.max(0,Array.from(e).indexOf(i.camera)):0}willUpdate(e){(e.has("microphoneManager")||e.has("overriddenLiveConfig"))&&this._mediaActionsController.setOptions({playerSelector:W,...this.overriddenLiveConfig?.auto_play&&{autoPlayConditions:this.overriddenLiveConfig.auto_play},...this.overriddenLiveConfig?.auto_pause&&{autoPauseConditions:this.overriddenLiveConfig.auto_pause},...this.overriddenLiveConfig?.auto_mute&&{autoMuteConditions:this.overriddenLiveConfig.auto_mute},...this.overriddenLiveConfig?.auto_unmute&&{autoUnmuteConditions:this.overriddenLiveConfig.auto_unmute},...(this.overriddenLiveConfig?.auto_unmute||this.overriddenLiveConfig?.auto_mute)&&{microphoneManager:this.microphoneManager,microphoneMuteSeconds:this.overriddenLiveConfig.microphone.mute_after_microphone_mute_seconds}})}_getPlugins(){return[N({...this.overriddenLiveConfig?.lazy_load&&{lazyLoadCallback:(e,i)=>this._lazyloadOrUnloadSlide("load",e,i)},lazyUnloadConditions:this.overriddenLiveConfig?.lazy_unload,lazyUnloadCallback:(e,i)=>this._lazyloadOrUnloadSlide("unload",e,i)}),x(),T()]}_getLazyLoadCount(){return!1===this.overriddenLiveConfig?.lazy_load?null:0}_getSlides(){if(!this.cameraManager)return[[],{}];const e=this.viewManagerEpoch?.manager.getView(),i=this.viewFilterCameraID?new Set([this.viewFilterCameraID]):this.cameraManager?.getStore().getCameraIDsWithCapability("live"),t=[],a={};for(const[r,o]of this.cameraManager.getStore().getCameraConfigEntries(i)){const i=this._getSubstreamCameraID(r,e),s=r===i?o:this.cameraManager?.getStore().getCameraConfig(i),n=s?this._renderLive(i,s):null;n&&(a[r]=t.length,t.push(n))}return[t,a]}_setViewHandler(e){const i=this.cameraManager?.getStore().getCameraIDsWithCapability("live");i?.size&&e.detail.index!==this._getSelectedCameraIndex()&&this._setViewCameraID([...i][e.detail.index])}_setViewCameraID(e){e&&this.viewManagerEpoch?.manager.setViewByParametersWithNewQuery({params:{camera:e}})}_lazyloadOrUnloadSlide(e,i,t){t instanceof HTMLSlotElement&&(t=t.assignedElements({flatten:!0})[0]);const a=t?.querySelector(W);a&&(a.load="load"===e)}_renderLive(e,i){if(!(this.overriddenLiveConfig&&this.nonOverriddenLiveConfig&&this.hass&&this.cameraManager&&this.conditionsManagerEpoch))return;let t=null;try{t=w(this.conditionsManagerEpoch.manager,{live:this.nonOverriddenLiveConfig},{configOverrides:this.overrides,stateOverrides:{camera:e},schema:b}).live}catch(e){return y(this,e)}const a=this.cameraManager.getCameraMetadata(e),r=this.viewManagerEpoch?.manager.getView();return u` +

    + this.cameraManager?.getCameraEndpoints(e)??void 0))} + .label=${a?.title??""} + .liveConfig=${t} + .hass=${this.hass} + .cardWideConfig=${this.cardWideConfig} + .zoomSettings=${r?.context?.zoom?.[e]?.requested} + @frigate-card:zoom:change=${i=>L(i,this.viewManagerEpoch?.manager,e)} + > + +
    + `}_getCameraIDsOfNeighbors(){const e=this.cameraManager?[...this.cameraManager?.getStore().getCameraIDsWithCapability("live")]:[],i=this.viewManagerEpoch?.manager.getView();if(this.viewFilterCameraID||e.length<=1||!i||!this.hass)return[null,null];const t=this.viewFilterCameraID??i.camera,a=e.indexOf(t);return a<0?[null,null]:[e[a>0?a-1:e.length-1],e[a+11,[r,o]=this._getCameraIDsOfNeighbors(),s=r?this.cameraManager.getCameraMetadata(this._getSubstreamCameraID(r,e)):null,n=o?this.cameraManager.getCameraMetadata(this._getSubstreamCameraID(o,e)):null,d=!(!this._mediaHasLoaded||this.viewFilterCameraID&&this.viewFilterCameraID!==e.camera||!1===e.context?.ptzControls?.enabled)&&e.context?.ptzControls?.enabled;return u` + {this._mediaHasLoaded=!0}} + @frigate-card:media:unloaded=${()=>{this._mediaHasLoaded=!1}} + > + {this._setViewCameraID(r),A(e)}} + > + + ${i} + {this._setViewCameraID(o),A(e)}} + > + + + + + `}_setMediaTarget(){const e=this.viewManagerEpoch?.manager.getView(),i=this._getSelectedCameraIndex();this.viewFilterCameraID?this._mediaActionsController.setTarget(i,e?.camera===this.viewFilterCameraID):this._mediaActionsController.setTarget(i,!0)}updated(e){super.updated(e);let i=!1;!this._mediaActionsController.hasRoot()&&this._refCarousel.value&&(this._mediaActionsController.initialize(this._refCarousel.value),i=!0),(i||e.has("viewManagerEpoch"))&&this._setMediaTarget()}static get styles(){return M(":host {\n display: block;\n --video-max-height: none;\n}\n\n:host(:not([grid-id])) {\n height: 100%;\n}\n\n:host([unselected]) frigate-card-carousel {\n pointer-events: none;\n}\n\n.embla__slide {\n display: flex;\n justify-content: center;\n height: 100%;\n flex: 0 0 100%;\n}")}};n([d({attribute:!1})],U.prototype,"hass",void 0),n([d({attribute:!1})],U.prototype,"viewManagerEpoch",void 0),n([d({attribute:!1})],U.prototype,"nonOverriddenLiveConfig",void 0),n([d({attribute:!1})],U.prototype,"overriddenLiveConfig",void 0),n([d({attribute:!1,hasChanged:_})],U.prototype,"overrides",void 0),n([d({attribute:!1})],U.prototype,"conditionsManagerEpoch",void 0),n([d({attribute:!1})],U.prototype,"cardWideConfig",void 0),n([d({attribute:!1})],U.prototype,"cameraManager",void 0),n([d({attribute:!1})],U.prototype,"microphoneManager",void 0),n([d({attribute:!1})],U.prototype,"viewFilterCameraID",void 0),n([g()],U.prototype,"_mediaHasLoaded",void 0),U=n([c("frigate-card-live-carousel")],U);let B=class extends h{_renderCarousel(e){const i=this.viewManagerEpoch?.manager.getView(),t=e??i?.camera;return u` + + + `}_gridSelectCamera(e){this.viewManagerEpoch?.manager.setViewByParameters({params:{camera:e}})}_needsGrid(){const e=this.cameraManager?.getStore().getCameraIDsWithCapability("live"),i=this.viewManagerEpoch?.manager.getView();return!!i?.isGrid()&&!!i?.supportsMultipleDisplayModes()&&!!e&&e.size>1}willUpdate(e){e.has("viewManagerEpoch")&&this._needsGrid()&&import("./media-grid-cff66b0b.js")}render(){if(!this.conditionsManagerEpoch||!this.nonOverriddenLiveConfig)return;const e=this.cameraManager?.getStore().getCameraIDsWithCapability("live");return e?.size&&this._needsGrid()?u` + this._gridSelectCamera(e.detail.selected)} + > + ${[...e].map((e=>this._renderCarousel(e)))} + + `:this._renderCarousel()}static get styles(){return M(":host {\n width: 100%;\n height: 100%;\n display: block;\n}\n\n@keyframes warning-pulse {\n 0% {\n border: solid 2px var(--frigate-card-triggered-color-1, rgba(0, 0, 0, 0));\n }\n 50% {\n border: solid 2px var(--frigate-card-triggered-color-2, var(--warning-color));\n }\n 100% {\n border: solid 2px var(--frigate-card-triggered-color-1, rgba(0, 0, 0, 0));\n }\n}\nfrigate-card-live-carousel[triggered] {\n animation: warning-pulse 5s infinite;\n}\n\nfrigate-card-live-carousel[selected] {\n --frigate-card-triggered-color-1: var(--primary-color);\n}")}};n([d({attribute:!1})],B.prototype,"hass",void 0),n([d({attribute:!1})],B.prototype,"viewManagerEpoch",void 0),n([d({attribute:!1})],B.prototype,"nonOverriddenLiveConfig",void 0),n([d({attribute:!1})],B.prototype,"overriddenLiveConfig",void 0),n([d({attribute:!1,hasChanged:_})],B.prototype,"overrides",void 0),n([d({attribute:!1})],B.prototype,"conditionsManagerEpoch",void 0),n([d({attribute:!1})],B.prototype,"cardWideConfig",void 0),n([d({attribute:!1})],B.prototype,"cameraManager",void 0),n([d({attribute:!1})],B.prototype,"microphoneManager",void 0),n([d({attribute:!1})],B.prototype,"triggeredCameraIDs",void 0),B=n([c("frigate-card-live-grid")],B);let V=class extends h{constructor(){super(...arguments),this._controller=new O(this)}shouldUpdate(e){return this._controller.shouldUpdate()}willUpdate(){this._controller.clearMessageReceived()}render(){if(this.hass&&this.nonOverriddenLiveConfig&&this.cameraManager)return u`${Z(this._controller.getRenderEpoch(),u` + + + `)}`}static get styles(){return M(j)}};n([d({attribute:!1})],V.prototype,"conditionsManagerEpoch",void 0),n([d({attribute:!1})],V.prototype,"hass",void 0),n([d({attribute:!1})],V.prototype,"viewManagerEpoch",void 0),n([d({attribute:!1})],V.prototype,"nonOverriddenLiveConfig",void 0),n([d({attribute:!1})],V.prototype,"overriddenLiveConfig",void 0),n([d({attribute:!1,hasChanged:_})],V.prototype,"overrides",void 0),n([d({attribute:!1})],V.prototype,"cameraManager",void 0),n([d({attribute:!1})],V.prototype,"cardWideConfig",void 0),n([d({attribute:!1})],V.prototype,"microphoneManager",void 0),n([d({attribute:!1})],V.prototype,"triggeredCameraIDs",void 0),V=n([c("frigate-card-live")],V);var Y=Object.freeze({__proto__:null,get FrigateCardLive(){return V}});export{P as g,Y as i}; diff --git a/config/www/community/frigate-hass-card/index-3c9b9749.js.gz b/config/www/community/frigate-hass-card/index-3c9b9749.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..0a5cf6403471fa2372e7395ba89bc86ec8f180d4 GIT binary patch literal 6887 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.hasSelectedResult()}}))}async _setURL(){const e=this.media?.getContentID();if(!this.media||!e||!this.hass||this.viewerConfig?.lazy_load&&!this.load)return;let i=this.resolvedMediaCache?.get(e)??null;if(i||(i=await l(this.hass,e,this.resolvedMediaCache)),!i)return;const t=i.url;if(g(t))return void(this._url=h(this.hass,t));const a=this.cameraManager?.getStore().getCamera(this.media.getCameraID()),r=a?.getProxyConfig();if(r&&c(this.hass,r,"media")){if(r.dynamic){const e=t.split(/#/)[0];await u(this.hass,e,{sslVerification:r.ssl_verification,sslCiphers:r.ssl_ciphers,openLimit:0})}try{this._url=await m(this.hass,v(t))}catch(e){C(e)}}else this._url=t}willUpdate(e){if((e.has("load")||e.has("media")||e.has("viewerConfig")||e.has("resolvedMediaCache")||e.has("hass"))&&this._setURL().then((()=>{this.requestUpdate()})),e.has("viewerConfig")&&this.viewerConfig?.zoomable&&import("./zoomer-85596cd4.js"),e.has("media")||e.has("cameraManager")){const e=this.media?.getCameraID(),i=e?this.cameraManager?.getStore().getCameraConfig(e):null;S(this,i?.dimensions?.layout),this.style.aspectRatio=p({ratio:i?.dimensions?.aspect_ratio})}}_useZoomIfRequired(e){if(!this.media)return e;const i=this.media.getCameraID(),t=this.media.getID()??void 0,a=this.cameraManager?.getStore().getCameraConfig(i),r=this.viewManagerEpoch?.manager.getView();return this.viewerConfig?.zoomable?w` a?.dimensions?.layout?{pan:a.dimensions.layout.pan,zoom:a.dimensions.layout.zoom}:void 0))} + .settings=${t?r?.context?.zoom?.[t]?.requested:void 0} + @frigate-card:zoom:zoomed=${()=>this.setControls(!1)} + @frigate-card:zoom:unzoomed=${()=>this.setControls()} + @frigate-card:zoom:change=${e=>I(e,this.viewManagerEpoch?.manager,t)} + > + ${e} + `:e}render(){if(this.load&&this.media&&this.hass&&this.viewerConfig)return this._url?this._useZoomIfRequired(w` + ${n.isVideo(this.media)?this.media.getVideoContentType()===Q.HLS?w` + `:w` + + `:w`{this.viewerConfig?.snapshot_click_plays_clip&&this._switchToRelatedClipView()}} + @load=${e=>{y(this,e,{player:this,technology:["jpg"]})}} + />`} + `):f({cardWideConfig:this.cardWideConfig})}static get styles(){return D(':host {\n background-color: var(--primary-background-color);\n background-position: center;\n background-repeat: no-repeat;\n background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4yLjIgKGIwYTg0ODY1NDEsIDIwMjItMTItMDEpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJjYW1lcmEtaXJpcy5zdmciCiAgIGlkPSJzdmc0IgogICB2ZXJzaW9uPSIxLjEiCiAgIHZpZXdCb3g9IjAgMCAyNCAyNCIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzOCIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzYiCiAgICAgcGFnZWNvbG9yPSIjYjkzZTNlIgogICAgIGJvcmRlcmNvbG9yPSIjMDAwMDAwIgogICAgIGJvcmRlcm9wYWNpdHk9IjAuMjUiCiAgICAgaW5rc2NhcGU6c2hvd3BhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuNjA3ODQzMTQiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6ZGVza2NvbG9yPSIjZDFkMWQxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp6b29tPSIyNi42MjUwNiIKICAgICBpbmtzY2FwZTpjeD0iLTEuOTM0MjY4IgogICAgIGlua3NjYXBlOmN5PSIxNS42ODA3MTYiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIzODQwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjE1MjciCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjEwODAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjIyNyIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzQiIC8+CiAgPGcKICAgICBpZD0iZzExMTkiCiAgICAgc3R5bGU9ImZpbGwtb3BhY2l0eTowLjA1O2ZpbGw6I2ZmZmZmZiI+CiAgICA8Y2lyY2xlCiAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eTowLjA1O3N0cm9rZS13aWR0aDoxLjM5NzI5IgogICAgICAgaWQ9InBhdGgxNzAiCiAgICAgICBjeD0iMTIiCiAgICAgICBjeT0iMTIiCiAgICAgICBpbmtzY2FwZTpsYWJlbD0iV2hpdGUgQmFja2dyb3VuZCIKICAgICAgIHI9IjExLjI1IiAvPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gMTMuNzMwMDAxLDE1IDkuODMwMDAwMywyMS43NiBDIDEwLjUzLDIxLjkxIDExLjI1LDIyIDEyLDIyIGMgMi40MDAwMDEsMCA0LjYsLTAuODUgNi4zMiwtMi4yNSBMIDE0LjY2MDAwMSwxMy40IE0gMi40NjAwMDAzLDE1IGMgMC45MiwyLjkyIDMuMTUsNS4yNiA1Ljk5LDYuMzQgTCAxMi4xMiwxNSBtIC0zLjU3OTk5OTcsLTMgLTMuOSwtNi43NDk5OTk2IGMgLTEuNjQsMS43NDk5OTkgLTIuNjQsNC4xMzk5OTkzIC0yLjY0LDYuNzQ5OTk5NiAwLDAuNjggMC4wNywxLjM1IDAuMiwyIGggNy40OSBNIDIxLjgsOS45OTk5OTk3IEggMTQuMzEwMDAxIEwgMTQuNjAwMDAxLDEwLjUgMTkuMzYsMTguNzUgQyAyMSwxNi45NyAyMiwxNC42IDIyLDEyIDIyLDExLjMxIDIxLjkzLDEwLjY0IDIxLjgsOS45OTk5OTk3IG0gLTAuMjYsLTEgQyAyMC42Miw2LjA3MDAwMDUgMTguMzksMy43NDAwMDAyIDE1LjU1MDAwMSwyLjY2MDAwMDIgTCAxMS44OCw4Ljk5OTk5OTcgTSA5LjQwMDAwMDMsMTAuNSAxNC4xNzAwMDEsMi4yNDAwMDAyIGMgLTAuNywtMC4xNSAtMS40MjAwMDEsLTAuMjQgLTIuMTcwMDAxLC0wLjI0IC0yLjM5OTk5OTcsMCAtNC41OTk5OTk3LDAuODQgLTYuMzE5OTk5NywyLjI1MDAwMDMgbCAzLjY2LDYuMzQ5OTk5NSB6IgogICAgICAgaWQ9InBhdGgyIgogICAgICAgaW5rc2NhcGU6bGFiZWw9IklyaXMiCiAgICAgICBzdHlsZT0iZmlsbC1vcGFjaXR5OjAuMDU7ZmlsbDojZmZmZmZmIiAvPgogIDwvZz4KPC9zdmc+Cg==");\n background-size: 10%;\n background-position: center;\n}\n\n:host {\n display: block;\n width: 100%;\n height: 100%;\n}\n\nimg,\nvideo,\nfrigate-card-ha-hls-player {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n object-view-box: inset(var(--frigate-card-media-layout-view-box-top, 0%) var(--frigate-card-media-layout-view-box-right, 0%) var(--frigate-card-media-layout-view-box-bottom, 0%) var(--frigate-card-media-layout-view-box-left, 0%));\n}\n\nfrigate-card-progress-indicator {\n padding: 30px;\n box-sizing: border-box;\n}')}};e([i({attribute:!1})],q.prototype,"hass",void 0),e([i({attribute:!1})],q.prototype,"viewManagerEpoch",void 0),e([i({attribute:!1})],q.prototype,"media",void 0),e([i({attribute:!1})],q.prototype,"viewerConfig",void 0),e([i({attribute:!1})],q.prototype,"resolvedMediaCache",void 0),e([i({attribute:!1})],q.prototype,"load",void 0),e([i({attribute:!1})],q.prototype,"cameraManager",void 0),e([i({attribute:!1})],q.prototype,"cardWideConfig",void 0),e([t()],q.prototype,"_url",void 0),q=e([a("frigate-card-viewer-provider")],q);let H=class extends r{constructor(){super(...arguments),this.showControls=!0,this._selected=0,this._media=null,this._mediaActionsController=new O,this._player=null,this._refCarousel=s()}updated(e){super.updated(e),e.has("viewManagerEpoch")&&this.viewManagerEpoch?.manager.getView()?.context?.mediaViewer!==this.viewManagerEpoch?.oldView?.context?.mediaViewer&&this._seekHandler(),!this._mediaActionsController.hasRoot()&&this._refCarousel.value&&this._mediaActionsController.initialize(this._refCarousel.value)}connectedCallback(){super.connectedCallback(),this.requestUpdate()}disconnectedCallback(){this._mediaActionsController.destroy(),super.disconnectedCallback()}_getTransitionEffect(){return this.viewerConfig?.transition_effect??k.media_viewer.transition_effect}_getPlugins(){return[R({...this.viewerConfig?.lazy_load&&{lazyLoadCallback:(e,i)=>this._lazyloadSlide(i)}}),U(),Y()]}_getMediaNeighbors(){const e=this._media?.length??0;if(!this._media)return null;const i=this._selected>0?this._selected-1:null,t=this._selected+1{if(!i||!this._media)return;const t=("previous"===e?i.previous?.index:i.next?.index)??null;null!==t&&this._setViewSelectedIndex(t)},a=N(this),r="ltr"===a&&"left"===e||"rtl"===a&&"right"===e?"previous":"next";return w` {t(r),z(e)}} + >`}render(){const e=this._media?.length??0;if(!this._media||!e)return $({message:L("common.no_media"),type:"info",icon:"mdi:multimedia",...this.viewFilterCameraID&&{context:{camera_id:this.viewFilterCameraID}}});const i=this._media[this._selected]??this._media[e-1];if(!this.hass||!this.cameraManager||!i)return;const t=this._getMediaNeighbors(),a=this.viewManagerEpoch?.manager.getView();return w` + {this._setViewSelectedIndex(e.detail.index)}} + @frigate-card:media:loaded=${e=>{this._player=e.detail.player??null,this._seekHandler()}} + @frigate-card:media:unloaded=${()=>{this._player=null}} + > + ${this.showControls?this._renderNextPrevious("left",t):""} + ${W([this._media,a],(()=>this._getSlides()))} + ${this.showControls?this._renderNextPrevious("right",t):""} + + ${a?w` + `:""} +
    + + +
    + `}async _seekHandler(){const e=this.viewManagerEpoch?.manager.getView(),i=e?.context?.mediaViewer?.seek;if(!(this.hass&&i&&this._media&&this._player))return;const t=this._media[this._selected];if(!t)return;const a=t.includesTime(i);T(this,!a,"unseekable"),a||this._player.isPaused()?a&&this._player.isPaused()&&this._player.play():this._player.pause();const r=await(this.cameraManager?.getMediaSeekTime(t,i))??null;null!==r&&this._player.seek(r)}_renderMediaItem(e){const i=this.viewManagerEpoch?.manager.getView();return this.hass&&i&&this.viewerConfig?w`
    + +
    `:null}static get styles(){return D(":host {\n position: relative;\n --video-max-height: none;\n}\n\n:host([unselected]) frigate-card-carousel,\n:host([unselected]) .seek-warning {\n pointer-events: none;\n}\n\n:host([unseekable]) frigate-card-carousel {\n filter: brightness(50%);\n}\n\n:host([unseekable]) .seek-warning {\n display: block;\n}\n\n.seek-warning {\n display: none;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n color: white;\n}\n\n.embla__slide {\n height: 100%;\n flex: 0 0 100%;\n}")}};e([i({attribute:!1})],H.prototype,"hass",void 0),e([i({attribute:!1})],H.prototype,"viewManagerEpoch",void 0),e([i({attribute:!1})],H.prototype,"viewFilterCameraID",void 0),e([i({attribute:!1,hasChanged:j})],H.prototype,"viewerConfig",void 0),e([i({attribute:!1})],H.prototype,"resolvedMediaCache",void 0),e([i({attribute:!1})],H.prototype,"cardWideConfig",void 0),e([i({attribute:!1})],H.prototype,"cameraManager",void 0),e([i({attribute:!1})],H.prototype,"showControls",void 0),e([t()],H.prototype,"_selected",void 0),H=e([a("frigate-card-viewer-carousel")],H);let X=class extends r{_renderCarousel(e){const i=this.viewManagerEpoch?.manager.getView()?.camera;return w` + + + `}willUpdate(e){e.has("viewManagerEpoch")&&this._needsGrid()&&import("./media-grid-adc03f7c.js")}_needsGrid(){const e=this.viewManagerEpoch?.manager.getView(),i=e?.queryResults?.getCameraIDs();return!!e?.isGrid()&&!!e?.supportsMultipleDisplayModes()&&(i?.size??0)>1}_gridSelectCamera(e){const i=this.viewManagerEpoch?.manager.getView();this.viewManagerEpoch?.manager.setViewByParameters({params:{camera:e,queryResults:i?.queryResults?.clone().promoteCameraSelectionToMainSelection(e)}})}render(){const e=this.viewManagerEpoch?.manager.getView(),i=e?.queryResults?.getCameraIDs();return i&&this._needsGrid()?w` + this._gridSelectCamera(e.detail.selected)} + > + ${[...i].map((e=>this._renderCarousel(e)))} + + `:this._renderCarousel()}static get styles(){return D(E)}};e([i({attribute:!1})],X.prototype,"hass",void 0),e([i({attribute:!1})],X.prototype,"viewManagerEpoch",void 0),e([i({attribute:!1})],X.prototype,"viewerConfig",void 0),e([i({attribute:!1})],X.prototype,"resolvedMediaCache",void 0),e([i({attribute:!1})],X.prototype,"cardWideConfig",void 0),e([i({attribute:!1})],X.prototype,"cameraManager",void 0),X=e([a("frigate-card-viewer-grid")],X);let J=class extends r{render(){if(this.hass&&this.viewManagerEpoch&&this.viewerConfig&&this.cameraManager&&this.cardWideConfig){if(!this.viewManagerEpoch.manager.getView()?.queryResults?.hasResults()){const e=!!this.viewManagerEpoch.manager.getView()?.context?.loading?.query;return $({type:"info",message:L(e?"error.awaiting_media":"common.no_media"),icon:"mdi:multimedia",dotdotdot:e})}return w` + `}}static get styles(){return D(":host {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n gap: 5px;\n}\n\nfrigate-card-viewer-carousel {\n flex: 1;\n min-height: 0;\n}")}};e([i({attribute:!1})],J.prototype,"hass",void 0),e([i({attribute:!1})],J.prototype,"viewManagerEpoch",void 0),e([i({attribute:!1})],J.prototype,"viewerConfig",void 0),e([i({attribute:!1})],J.prototype,"resolvedMediaCache",void 0),e([i({attribute:!1})],J.prototype,"cameraManager",void 0),e([i({attribute:!1})],J.prototype,"cardWideConfig",void 0),J=e([a("frigate-card-viewer")],J);export{J as FrigateCardViewer}; diff --git a/config/www/community/frigate-hass-card/index-5de5f421.js.gz b/config/www/community/frigate-hass-card/index-5de5f421.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..db72ad0bfe0aaa1c0b0c089077da671b5a14a6d1 GIT binary patch literal 6511 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.hasSelectedResult()}}))}async _setURL(){const e=this.media?.getContentID();if(!this.media||!e||!this.hass||this.viewerConfig?.lazy_load&&!this.load)return;let i=this.resolvedMediaCache?.get(e)??null;if(i||(i=await l(this.hass,e,this.resolvedMediaCache)),!i)return;const t=i.url;if(g(t))return void(this._url=h(this.hass,t));const a=this.cameraManager?.getStore().getCamera(this.media.getCameraID()),r=a?.getProxyConfig();if(r&&c(this.hass,r,"media")){if(r.dynamic){const e=t.split(/#/)[0];await u(this.hass,e,{sslVerification:r.ssl_verification,sslCiphers:r.ssl_ciphers,openLimit:0})}try{this._url=await m(this.hass,v(t))}catch(e){p(e)}}else this._url=t}willUpdate(e){if((e.has("load")||e.has("media")||e.has("viewerConfig")||e.has("resolvedMediaCache")||e.has("hass"))&&this._setURL().then((()=>{this.requestUpdate()})),e.has("viewerConfig")&&this.viewerConfig?.zoomable&&import("./zoomer-37e20bdd.js"),e.has("media")||e.has("cameraManager")){const e=this.media?.getCameraID(),i=e?this.cameraManager?.getStore().getCameraConfig(e):null;S(this,i?.dimensions?.layout),this.style.aspectRatio=C({ratio:i?.dimensions?.aspect_ratio})}}_useZoomIfRequired(e){if(!this.media)return e;const i=this.media.getCameraID(),t=this.media.getID()??void 0,a=this.cameraManager?.getStore().getCameraConfig(i),r=this.viewManagerEpoch?.manager.getView();return this.viewerConfig?.zoomable?w` a?.dimensions?.layout?{pan:a.dimensions.layout.pan,zoom:a.dimensions.layout.zoom}:void 0))} + .settings=${t?r?.context?.zoom?.[t]?.requested:void 0} + @frigate-card:zoom:zoomed=${()=>this.setControls(!1)} + @frigate-card:zoom:unzoomed=${()=>this.setControls()} + @frigate-card:zoom:change=${e=>f(e,this.viewManagerEpoch?.manager,t)} + > + ${e} + `:e}render(){if(this.load&&this.media&&this.hass&&this.viewerConfig)return this._url?this._useZoomIfRequired(w` + ${n.isVideo(this.media)?this.media.getVideoContentType()===Q.HLS?w` + `:w` + + `:w`{this.viewerConfig?.snapshot_click_plays_clip&&this._switchToRelatedClipView()}} + @load=${e=>{y(this,e,{player:this,technology:["jpg"]})}} + />`} + `):I({cardWideConfig:this.cardWideConfig})}static get styles(){return D(':host {\n background-color: var(--primary-background-color);\n background-position: center;\n background-repeat: no-repeat;\n background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4yLjIgKGIwYTg0ODY1NDEsIDIwMjItMTItMDEpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJjYW1lcmEtaXJpcy5zdmciCiAgIGlkPSJzdmc0IgogICB2ZXJzaW9uPSIxLjEiCiAgIHZpZXdCb3g9IjAgMCAyNCAyNCIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzOCIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzYiCiAgICAgcGFnZWNvbG9yPSIjYjkzZTNlIgogICAgIGJvcmRlcmNvbG9yPSIjMDAwMDAwIgogICAgIGJvcmRlcm9wYWNpdHk9IjAuMjUiCiAgICAgaW5rc2NhcGU6c2hvd3BhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuNjA3ODQzMTQiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6ZGVza2NvbG9yPSIjZDFkMWQxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp6b29tPSIyNi42MjUwNiIKICAgICBpbmtzY2FwZTpjeD0iLTEuOTM0MjY4IgogICAgIGlua3NjYXBlOmN5PSIxNS42ODA3MTYiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIzODQwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjE1MjciCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjEwODAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjIyNyIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzQiIC8+CiAgPGcKICAgICBpZD0iZzExMTkiCiAgICAgc3R5bGU9ImZpbGwtb3BhY2l0eTowLjA1O2ZpbGw6I2ZmZmZmZiI+CiAgICA8Y2lyY2xlCiAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eTowLjA1O3N0cm9rZS13aWR0aDoxLjM5NzI5IgogICAgICAgaWQ9InBhdGgxNzAiCiAgICAgICBjeD0iMTIiCiAgICAgICBjeT0iMTIiCiAgICAgICBpbmtzY2FwZTpsYWJlbD0iV2hpdGUgQmFja2dyb3VuZCIKICAgICAgIHI9IjExLjI1IiAvPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gMTMuNzMwMDAxLDE1IDkuODMwMDAwMywyMS43NiBDIDEwLjUzLDIxLjkxIDExLjI1LDIyIDEyLDIyIGMgMi40MDAwMDEsMCA0LjYsLTAuODUgNi4zMiwtMi4yNSBMIDE0LjY2MDAwMSwxMy40IE0gMi40NjAwMDAzLDE1IGMgMC45MiwyLjkyIDMuMTUsNS4yNiA1Ljk5LDYuMzQgTCAxMi4xMiwxNSBtIC0zLjU3OTk5OTcsLTMgLTMuOSwtNi43NDk5OTk2IGMgLTEuNjQsMS43NDk5OTkgLTIuNjQsNC4xMzk5OTkzIC0yLjY0LDYuNzQ5OTk5NiAwLDAuNjggMC4wNywxLjM1IDAuMiwyIGggNy40OSBNIDIxLjgsOS45OTk5OTk3IEggMTQuMzEwMDAxIEwgMTQuNjAwMDAxLDEwLjUgMTkuMzYsMTguNzUgQyAyMSwxNi45NyAyMiwxNC42IDIyLDEyIDIyLDExLjMxIDIxLjkzLDEwLjY0IDIxLjgsOS45OTk5OTk3IG0gLTAuMjYsLTEgQyAyMC42Miw2LjA3MDAwMDUgMTguMzksMy43NDAwMDAyIDE1LjU1MDAwMSwyLjY2MDAwMDIgTCAxMS44OCw4Ljk5OTk5OTcgTSA5LjQwMDAwMDMsMTAuNSAxNC4xNzAwMDEsMi4yNDAwMDAyIGMgLTAuNywtMC4xNSAtMS40MjAwMDEsLTAuMjQgLTIuMTcwMDAxLC0wLjI0IC0yLjM5OTk5OTcsMCAtNC41OTk5OTk3LDAuODQgLTYuMzE5OTk5NywyLjI1MDAwMDMgbCAzLjY2LDYuMzQ5OTk5NSB6IgogICAgICAgaWQ9InBhdGgyIgogICAgICAgaW5rc2NhcGU6bGFiZWw9IklyaXMiCiAgICAgICBzdHlsZT0iZmlsbC1vcGFjaXR5OjAuMDU7ZmlsbDojZmZmZmZmIiAvPgogIDwvZz4KPC9zdmc+Cg==");\n background-size: 10%;\n background-position: center;\n}\n\n:host {\n display: block;\n width: 100%;\n height: 100%;\n}\n\nimg,\nvideo,\nfrigate-card-ha-hls-player {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n object-view-box: inset(var(--frigate-card-media-layout-view-box-top, 0%) var(--frigate-card-media-layout-view-box-right, 0%) var(--frigate-card-media-layout-view-box-bottom, 0%) var(--frigate-card-media-layout-view-box-left, 0%));\n}\n\nfrigate-card-progress-indicator {\n padding: 30px;\n box-sizing: border-box;\n}')}};e([i({attribute:!1})],q.prototype,"hass",void 0),e([i({attribute:!1})],q.prototype,"viewManagerEpoch",void 0),e([i({attribute:!1})],q.prototype,"media",void 0),e([i({attribute:!1})],q.prototype,"viewerConfig",void 0),e([i({attribute:!1})],q.prototype,"resolvedMediaCache",void 0),e([i({attribute:!1})],q.prototype,"load",void 0),e([i({attribute:!1})],q.prototype,"cameraManager",void 0),e([i({attribute:!1})],q.prototype,"cardWideConfig",void 0),e([t()],q.prototype,"_url",void 0),q=e([a("frigate-card-viewer-provider")],q);let H=class extends r{constructor(){super(...arguments),this.showControls=!0,this._selected=0,this._media=null,this._mediaActionsController=new O,this._player=null,this._refCarousel=s()}updated(e){super.updated(e),e.has("viewManagerEpoch")&&this.viewManagerEpoch?.manager.getView()?.context?.mediaViewer!==this.viewManagerEpoch?.oldView?.context?.mediaViewer&&this._seekHandler(),!this._mediaActionsController.hasRoot()&&this._refCarousel.value&&this._mediaActionsController.initialize(this._refCarousel.value)}connectedCallback(){super.connectedCallback(),this.requestUpdate()}disconnectedCallback(){this._mediaActionsController.destroy(),super.disconnectedCallback()}_getTransitionEffect(){return this.viewerConfig?.transition_effect??k.media_viewer.transition_effect}_getPlugins(){return[R({...this.viewerConfig?.lazy_load&&{lazyLoadCallback:(e,i)=>this._lazyloadSlide(i)}}),U(),Y()]}_getMediaNeighbors(){const e=this._media?.length??0;if(!this._media)return null;const i=this._selected>0?this._selected-1:null,t=this._selected+1{if(!t||!this._media)return;const i=("previous"===e?t.previous?.index:t.next?.index)??null;null!==i&&this._setViewSelectedIndex(i)},r=this.viewManagerEpoch?.manager.getView();return w` + {this._setViewSelectedIndex(e.detail.index)}} + @frigate-card:media:loaded=${e=>{this._player=e.detail.player??null,this._seekHandler()}} + @frigate-card:media:unloaded=${()=>{this._player=null}} + > + ${this.showControls?w` {a("previous"),N(e)}} + >`:""} + ${W([this._media,r],(()=>this._getSlides()))} + ${this.showControls?w` {a("next"),N(e)}} + >`:""} + + ${r?w` + `:""} +
    + + +
    + `}async _seekHandler(){const e=this.viewManagerEpoch?.manager.getView(),i=e?.context?.mediaViewer?.seek;if(!(this.hass&&i&&this._media&&this._player))return;const t=this._media[this._selected];if(!t)return;const a=t.includesTime(i);$(this,!a,"unseekable"),a||this._player.isPaused()?a&&this._player.isPaused()&&this._player.play():this._player.pause();const r=await(this.cameraManager?.getMediaSeekTime(t,i))??null;null!==r&&this._player.seek(r)}_renderMediaItem(e){const i=this.viewManagerEpoch?.manager.getView();return this.hass&&i&&this.viewerConfig?w`
    + +
    `:null}static get styles(){return D(":host {\n position: relative;\n --video-max-height: none;\n}\n\n:host([unselected]) frigate-card-carousel,\n:host([unselected]) .seek-warning {\n pointer-events: none;\n}\n\n:host([unseekable]) frigate-card-carousel {\n filter: brightness(50%);\n}\n\n:host([unseekable]) .seek-warning {\n display: block;\n}\n\n.seek-warning {\n display: none;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n color: white;\n}\n\n.embla__slide {\n height: 100%;\n flex: 0 0 100%;\n}")}};e([i({attribute:!1})],H.prototype,"hass",void 0),e([i({attribute:!1})],H.prototype,"viewManagerEpoch",void 0),e([i({attribute:!1})],H.prototype,"viewFilterCameraID",void 0),e([i({attribute:!1,hasChanged:x})],H.prototype,"viewerConfig",void 0),e([i({attribute:!1})],H.prototype,"resolvedMediaCache",void 0),e([i({attribute:!1})],H.prototype,"cardWideConfig",void 0),e([i({attribute:!1})],H.prototype,"cameraManager",void 0),e([i({attribute:!1})],H.prototype,"showControls",void 0),e([t()],H.prototype,"_selected",void 0),H=e([a("frigate-card-viewer-carousel")],H);let X=class extends r{_renderCarousel(e){const i=this.viewManagerEpoch?.manager.getView()?.camera;return w` + + + `}willUpdate(e){e.has("viewManagerEpoch")&&this._needsGrid()&&import("./media-grid-ef47501a.js")}_needsGrid(){const e=this.viewManagerEpoch?.manager.getView(),i=e?.queryResults?.getCameraIDs();return!!e?.isGrid()&&!!e?.supportsMultipleDisplayModes()&&(i?.size??0)>1}_gridSelectCamera(e){const i=this.viewManagerEpoch?.manager.getView();this.viewManagerEpoch?.manager.setViewByParameters({params:{camera:e,queryResults:i?.queryResults?.clone().promoteCameraSelectionToMainSelection(e)}})}render(){const e=this.viewManagerEpoch?.manager.getView(),i=e?.queryResults?.getCameraIDs();return i&&this._needsGrid()?w` + this._gridSelectCamera(e.detail.selected)} + > + ${[...i].map((e=>this._renderCarousel(e)))} + + `:this._renderCarousel()}static get styles(){return D(E)}};e([i({attribute:!1})],X.prototype,"hass",void 0),e([i({attribute:!1})],X.prototype,"viewManagerEpoch",void 0),e([i({attribute:!1})],X.prototype,"viewerConfig",void 0),e([i({attribute:!1})],X.prototype,"resolvedMediaCache",void 0),e([i({attribute:!1})],X.prototype,"cardWideConfig",void 0),e([i({attribute:!1})],X.prototype,"cameraManager",void 0),X=e([a("frigate-card-viewer-grid")],X);let J=class extends r{render(){if(this.hass&&this.viewManagerEpoch&&this.viewerConfig&&this.cameraManager&&this.cardWideConfig){if(!this.viewManagerEpoch.manager.getView()?.queryResults?.hasResults()){const e=!!this.viewManagerEpoch.manager.getView()?.context?.loading?.query;return P({type:"info",message:z(e?"error.awaiting_media":"common.no_media"),icon:"mdi:multimedia",dotdotdot:e})}return w` + `}}static get styles(){return D(":host {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n gap: 5px;\n}\n\nfrigate-card-viewer-carousel {\n flex: 1;\n min-height: 0;\n}")}};e([i({attribute:!1})],J.prototype,"hass",void 0),e([i({attribute:!1})],J.prototype,"viewManagerEpoch",void 0),e([i({attribute:!1})],J.prototype,"viewerConfig",void 0),e([i({attribute:!1})],J.prototype,"resolvedMediaCache",void 0),e([i({attribute:!1})],J.prototype,"cameraManager",void 0),e([i({attribute:!1})],J.prototype,"cardWideConfig",void 0),J=e([a("frigate-card-viewer")],J);export{J as FrigateCardViewer}; diff --git a/config/www/community/frigate-hass-card/index-76cab2a3.js.gz b/config/www/community/frigate-hass-card/index-76cab2a3.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..3c653503a2d9bb2a8cb762553e952b4a79c08282 GIT binary patch literal 6434 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.onconnect())),this.ondisconnect()):(this.ondisconnect(),this.onconnect())}set src(e){"string"!=typeof e&&(e=e.toString()),e.startsWith("http")?e="ws"+e.substring(4):e.startsWith("/")&&(e="ws"+location.origin.substring(4)+e),this.wsURL=e,this.onconnect()}play(){}send(e){this.ws&&this.ws.send(JSON.stringify(e))}codecs(e){return this.CODECS.filter((e=>this.media.indexOf(e.indexOf("vc1")>0?"video":"audio")>=0)).filter((t=>e(`video/mp4; codecs="${t}"`))).join()}connectedCallback(){if(this.disconnectTID&&(clearTimeout(this.disconnectTID),this.disconnectTID=0),this.video){const e=this.video.seekable;e.length>0&&(this.video.currentTime=e.end(e.length-1)),this.play()}else this.oninit();this.onconnect()}disconnectedCallback(){this.background||this.disconnectTID||this.wsState===WebSocket.CLOSED&&this.pcState===WebSocket.CLOSED||(this.disconnectTID=setTimeout((()=>{this.reconnectTID&&(clearTimeout(this.reconnectTID),this.reconnectTID=0),this.disconnectTID=0,this.ondisconnect()}),this.DISCONNECT_TIMEOUT))}oninit(){this.video=document.createElement("video"),m(this.video,this.controls),this.video.playsInline=!0,this.video.preload="auto",this.video.style.display="block",this.video.style.width="100%",this.video.style.height="100%",this.appendChild(this.video),this.video.addEventListener("error",(e=>{this.ws&&this.wsState===WebSocket.OPEN&&this.ws.close()}));const n=window.navigator.userAgent.match(/Version\/(\d+).+Safari/);if(n){const e=n[1]<"13"?"mp4a.40.2":n[1]<"14"?"flac":"opus";this.CODECS.splice(this.CODECS.indexOf(e))}if(!this.background){if("hidden"in document&&this.visibilityCheck&&document.addEventListener("visibilitychange",(()=>{document.hidden?this.disconnectedCallback():this.isConnected&&this.connectedCallback()})),"IntersectionObserver"in window&&this.visibilityThreshold){new IntersectionObserver((e=>{e.forEach((e=>{e.isIntersecting?this.isConnected&&this.connectedCallback():this.disconnectedCallback()}))}),{threshold:this.visibilityThreshold}).observe(this)}this.video.onloadeddata=()=>{this.controls&&v(this.video,y),e(this,this.video,{player:this.containingPlayer,capabilities:{supports2WayAudio:!!this.pc,supportsPause:!0,hasAudio:g(this.video)},technology:f(this)})},this.video.onvolumechange=()=>t(this),this.video.onplay=()=>i(this),this.video.onpause=()=>s(this),this.video.muted=!0}}onconnect(){return!(!this.isConnected||!this.wsURL||this.ws||this.pc)&&(this.wsState=WebSocket.CONNECTING,this.connectTS=Date.now(),this.ws=new WebSocket(this.wsURL),this.ws.binaryType="arraybuffer",this.ws.addEventListener("open",(e=>this.onopen(e))),this.ws.addEventListener("close",(e=>this.onclose(e))),!0)}ondisconnect(){this.wsState=WebSocket.CLOSED,this.ws&&(this.ws.close(),this.ws=null),this.pcState=WebSocket.CLOSED,this.pc&&(this.pc.getSenders().forEach((e=>{e.track&&e.track.stop()})),this.pc.close(),this.pc=null),this.video.src="",this.video.srcObject=null}onopen(){this.wsState=WebSocket.OPEN,this.ws.addEventListener("message",(e=>{if("string"==typeof e.data){const t=JSON.parse(e.data);for(const e in this.onmessage)this.onmessage[e](t)}else this.ondata(e.data)})),this.ondata=null,this.onmessage={};const e=[];return this.mode.indexOf("mse")>=0&&("MediaSource"in window||"ManagedMediaSource"in window)?(e.push("mse"),this.onmse()):this.mode.indexOf("hls")>=0&&this.video.canPlayType("application/vnd.apple.mpegurl")?(e.push("hls"),this.onhls()):this.mode.indexOf("mp4")>=0&&(e.push("mp4"),this.onmp4()),this.mode.indexOf("webrtc")>=0&&"RTCPeerConnection"in window&&(e.push("webrtc"),this.onwebrtc()),this.mode.indexOf("mjpeg")>=0&&(e.length?this.onmessage.mjpeg=t=>{"error"===t.type&&0===t.value.indexOf(e[0])&&this.onmjpeg()}:(e.push("mjpeg"),this.onmjpeg())),e}onclose(){if(this.wsState===WebSocket.CLOSED)return!1;this.wsState=WebSocket.CONNECTING,this.ws=null;const e=Math.max(this.RECONNECT_TIMEOUT-(Date.now()-this.connectTS),0);return this.reconnectTID=setTimeout((()=>{this.reconnectTID=0,this.onconnect()}),e),!0}onmse(){let e;if("ManagedMediaSource"in window){const t=window.ManagedMediaSource;e=new t,e.addEventListener("sourceopen",(()=>{this.send({type:"mse",value:this.codecs(t.isTypeSupported)})}),{once:!0}),this.video.disableRemotePlayback=!0,this.video.srcObject=e}else e=new MediaSource,e.addEventListener("sourceopen",(()=>{URL.revokeObjectURL(this.video.src),this.send({type:"mse",value:this.codecs(MediaSource.isTypeSupported)})}),{once:!0}),this.video.src=URL.createObjectURL(e),this.video.srcObject=null;this.play(),this.mseCodecs="",this.onmessage.mse=t=>{if("mse"!==t.type)return;this.mseCodecs=t.value;const i=e.addSourceBuffer(t.value);i.mode="segments",i.addEventListener("updateend",(()=>{if(!i.updating)try{if(n>0){const e=s.slice(0,n);n=0,i.appendBuffer(e)}else if(i.buffered&&i.buffered.length){const t=i.buffered.end(i.buffered.length-1)-15,s=i.buffered.start(0);t>s&&(i.remove(s,t),e.setLiveSeekableRange(t,t+15))}}catch(e){}}));const s=new Uint8Array(2097152);let n=0;this.ondata=e=>{if(i.updating||n>0){const t=new Uint8Array(e);s.set(t,n),n+=t.byteLength}else try{i.appendBuffer(e)}catch(e){}}}}onwebrtc(){const e=new RTCPeerConnection(this.pcConfig);e.addEventListener("icecandidate",(e=>{if(e.candidate&&this.mode.indexOf("webrtc/tcp")>=0&&"udp"===e.candidate.protocol)return;const t=e.candidate?e.candidate.toJSON().candidate:"";this.send({type:"webrtc/candidate",value:t})})),e.addEventListener("connectionstatechange",(()=>{if("connected"===e.connectionState){const t=e.getTransceivers().filter((e=>"recvonly"===e.currentDirection)).map((e=>e.receiver.track)),i=document.createElement("video");i.addEventListener("loadeddata",(()=>this.onpcvideo(i)),{once:!0}),i.srcObject=new MediaStream(t)}else"failed"!==e.connectionState&&"disconnected"!==e.connectionState||(e.close(),this.pcState=WebSocket.CLOSED,this.pc=null,this.onconnect())})),this.onmessage.webrtc=t=>{switch(t.type){case"webrtc/candidate":if(this.mode.indexOf("webrtc/tcp")>=0&&t.value.indexOf(" udp ")>0)return;e.addIceCandidate({candidate:t.value,sdpMid:"0"}).catch((e=>{console.warn(e)}));break;case"webrtc/answer":e.setRemoteDescription({type:"answer",sdp:t.value}).catch((e=>{console.warn(e)}));break;case"error":if(t.value.indexOf("webrtc/offer")<0)return;e.close()}},this.createOffer(e).then((e=>{this.send({type:"webrtc/offer",value:e.sdp})})),this.pcState=WebSocket.CONNECTING,this.pc=e}async createOffer(e){this.microphoneStream?.getTracks().forEach((t=>{e.addTransceiver(t,{direction:"sendonly"})}));try{if(this.media.indexOf("microphone")>=0){(await navigator.mediaDevices.getUserMedia({audio:!0})).getTracks().forEach((t=>{e.addTransceiver(t,{direction:"sendonly"})}))}}catch(e){console.warn(e)}for(const t of["video","audio"])this.media.indexOf(t)>=0&&e.addTransceiver(t,{direction:"recvonly"});const t=await e.createOffer();return await e.setLocalDescription(t),t}onpcvideo(e){if(this.pc){let t=0,i=0;const s=e.srcObject;s.getVideoTracks().length>0&&(t+=544),s.getAudioTracks().length>0&&(t+=258),this.mseCodecs.indexOf("hvc1.")>=0&&(i+=560),this.mseCodecs.indexOf("avc1.")>=0&&(i+=528),this.mseCodecs.indexOf("mp4a.")>=0&&(i+=257),t>=i?(this.video.srcObject=s,this.play(),this.pcState=WebSocket.OPEN,this.wsState=WebSocket.CLOSED,this.ws&&(this.ws.close(),this.ws=null)):(this.pcState=WebSocket.CLOSED,this.pc&&(this.pc.close(),this.pc=null))}e.srcObject=null}onmjpeg(){let t=!1;this.ondata=i=>{m(this.video,!1),this.video.poster="data:image/jpeg;base64,"+b.btoa(i),t||(t=!0,e(this,this.video,{player:this.containingPlayer,technology:["mjpeg"]}))},this.send({type:"mjpeg"})}onhls(){this.onmessage.hls=e=>{if("hls"!==e.type)return;const t="http"+this.wsURL.substring(2,this.wsURL.indexOf("/ws"))+"/hls/",i=e.value.replace("hls/",t);this.video.src="data:application/vnd.apple.mpegurl;base64,"+btoa(i),this.play()},this.send({type:"hls",value:this.codecs((e=>this.video.canPlayType(e)))})}onmp4(){const t=document.createElement("canvas");let i;const s=document.createElement("video");s.autoplay=!0,s.playsInline=!0,s.muted=!0,s.addEventListener("loadeddata",(n=>{i||(t.width=s.videoWidth,t.height=s.videoHeight,i=t.getContext("2d"),e(this,s,{player:this.containingPlayer,technology:["mp4"]})),i.drawImage(s,0,0,t.width,t.height),m(this.video,!1),this.video.poster=t.toDataURL("image/jpeg")})),this.ondata=e=>{s.src="data:video/mp4;base64,"+b.btoa(e)},this.send({type:"mp4",value:this.codecs(this.video.canPlayType)})}static btoa(e){const t=new Uint8Array(e),i=t.byteLength;let s="";for(let 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 LgLe#%Z!iD=wJ0sW literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/index-8355422b.js b/config/www/community/frigate-hass-card/index-8355422b.js new file mode 100644 index 00000000..b3b282c8 --- /dev/null +++ b/config/www/community/frigate-hass-card/index-8355422b.js @@ -0,0 +1 @@ +import{dw as e,dx as t,dy as i,dz as s,a as n,dm as o,cQ as a,l as c,x as r,r as d,_ as h,n as l,t as p}from"./card-769e2b91.js";import{g as u}from"./endpoint-9c79ab63.js";import{s as m,h as v,c as y}from"./media-d4c0d154.js";import"./image-632882b9.js";import{m as g}from"./audio-cf3a75aa.js";import{g as f}from"./get-technology-for-video-rtc-778a0c05.js";class b extends HTMLElement{constructor(){super(),this.DISCONNECT_TIMEOUT=5e3,this.RECONNECT_TIMEOUT=15e3,this.CODECS=["avc1.640029","avc1.64002A","avc1.640033","hvc1.1.6.L153.B0","mp4a.40.2","mp4a.40.5","flac","opus"],this.mode="webrtc,mse,hls,mjpeg",this.media="video,audio",this.background=!1,this.visibilityThreshold=0,this.visibilityCheck=!0,this.pcConfig={bundlePolicy:"max-bundle",iceServers:[{urls:"stun:stun.l.google.com:19302"}],sdpSemantics:"unified-plan"},this.wsState=WebSocket.CLOSED,this.pcState=WebSocket.CLOSED,this.video=null,this.ws=null,this.wsURL="",this.pc=null,this.connectTS=0,this.mseCodecs="",this.disconnectTID=0,this.reconnectTID=0,this.ondata=null,this.onmessage=null,this.microphoneStream=null,this.containingPlayer=null,this.controls=!0}reconnect(){this.wsState!==WebSocket.CLOSED?(this.ws?.addEventListener("close",(()=>this.onconnect())),this.ondisconnect()):(this.ondisconnect(),this.onconnect())}set src(e){"string"!=typeof e&&(e=e.toString()),e.startsWith("http")?e="ws"+e.substring(4):e.startsWith("/")&&(e="ws"+location.origin.substring(4)+e),this.wsURL=e,this.onconnect()}play(){}send(e){this.ws&&this.ws.send(JSON.stringify(e))}codecs(e){return this.CODECS.filter((e=>this.media.indexOf(e.indexOf("vc1")>0?"video":"audio")>=0)).filter((t=>e(`video/mp4; codecs="${t}"`))).join()}connectedCallback(){if(this.disconnectTID&&(clearTimeout(this.disconnectTID),this.disconnectTID=0),this.video){const e=this.video.seekable;e.length>0&&(this.video.currentTime=e.end(e.length-1)),this.play()}else this.oninit();this.onconnect()}disconnectedCallback(){this.background||this.disconnectTID||this.wsState===WebSocket.CLOSED&&this.pcState===WebSocket.CLOSED||(this.disconnectTID=setTimeout((()=>{this.reconnectTID&&(clearTimeout(this.reconnectTID),this.reconnectTID=0),this.disconnectTID=0,this.ondisconnect()}),this.DISCONNECT_TIMEOUT))}oninit(){this.video=document.createElement("video"),m(this.video,this.controls),this.video.playsInline=!0,this.video.preload="auto",this.video.style.display="block",this.video.style.width="100%",this.video.style.height="100%",this.appendChild(this.video),this.video.addEventListener("error",(e=>{this.ws&&this.wsState===WebSocket.OPEN&&this.ws.close()}));const n=window.navigator.userAgent.match(/Version\/(\d+).+Safari/);if(n){const e=n[1]<"13"?"mp4a.40.2":n[1]<"14"?"flac":"opus";this.CODECS.splice(this.CODECS.indexOf(e))}if(!this.background){if("hidden"in document&&this.visibilityCheck&&document.addEventListener("visibilitychange",(()=>{document.hidden?this.disconnectedCallback():this.isConnected&&this.connectedCallback()})),"IntersectionObserver"in window&&this.visibilityThreshold){new IntersectionObserver((e=>{e.forEach((e=>{e.isIntersecting?this.isConnected&&this.connectedCallback():this.disconnectedCallback()}))}),{threshold:this.visibilityThreshold}).observe(this)}this.video.onloadeddata=()=>{this.controls&&v(this.video,y),e(this,this.video,{player:this.containingPlayer,capabilities:{supports2WayAudio:!!this.pc,supportsPause:!0,hasAudio:g(this.video)},technology:f(this)})},this.video.onvolumechange=()=>t(this),this.video.onplay=()=>i(this),this.video.onpause=()=>s(this),this.video.muted=!0}}onconnect(){return!(!this.isConnected||!this.wsURL||this.ws||this.pc)&&(this.wsState=WebSocket.CONNECTING,this.connectTS=Date.now(),this.ws=new WebSocket(this.wsURL),this.ws.binaryType="arraybuffer",this.ws.addEventListener("open",(e=>this.onopen(e))),this.ws.addEventListener("close",(e=>this.onclose(e))),!0)}ondisconnect(){this.wsState=WebSocket.CLOSED,this.ws&&(this.ws.close(),this.ws=null),this.pcState=WebSocket.CLOSED,this.pc&&(this.pc.getSenders().forEach((e=>{e.track&&e.track.stop()})),this.pc.close(),this.pc=null),this.video.src="",this.video.srcObject=null}onopen(){this.wsState=WebSocket.OPEN,this.ws.addEventListener("message",(e=>{if("string"==typeof e.data){const t=JSON.parse(e.data);for(const e in this.onmessage)this.onmessage[e](t)}else this.ondata(e.data)})),this.ondata=null,this.onmessage={};const e=[];return this.mode.indexOf("mse")>=0&&("MediaSource"in window||"ManagedMediaSource"in window)?(e.push("mse"),this.onmse()):this.mode.indexOf("hls")>=0&&this.video.canPlayType("application/vnd.apple.mpegurl")?(e.push("hls"),this.onhls()):this.mode.indexOf("mp4")>=0&&(e.push("mp4"),this.onmp4()),this.mode.indexOf("webrtc")>=0&&"RTCPeerConnection"in window&&(e.push("webrtc"),this.onwebrtc()),this.mode.indexOf("mjpeg")>=0&&(e.length?this.onmessage.mjpeg=t=>{"error"===t.type&&0===t.value.indexOf(e[0])&&this.onmjpeg()}:(e.push("mjpeg"),this.onmjpeg())),e}onclose(){if(this.wsState===WebSocket.CLOSED)return!1;this.wsState=WebSocket.CONNECTING,this.ws=null;const e=Math.max(this.RECONNECT_TIMEOUT-(Date.now()-this.connectTS),0);return this.reconnectTID=setTimeout((()=>{this.reconnectTID=0,this.onconnect()}),e),!0}onmse(){let e;if("ManagedMediaSource"in window){const t=window.ManagedMediaSource;e=new t,e.addEventListener("sourceopen",(()=>{this.send({type:"mse",value:this.codecs(t.isTypeSupported)})}),{once:!0}),this.video.disableRemotePlayback=!0,this.video.srcObject=e}else e=new MediaSource,e.addEventListener("sourceopen",(()=>{URL.revokeObjectURL(this.video.src),this.send({type:"mse",value:this.codecs(MediaSource.isTypeSupported)})}),{once:!0}),this.video.src=URL.createObjectURL(e),this.video.srcObject=null;this.play(),this.mseCodecs="",this.onmessage.mse=t=>{if("mse"!==t.type)return;this.mseCodecs=t.value;const i=e.addSourceBuffer(t.value);i.mode="segments",i.addEventListener("updateend",(()=>{if(!i.updating)try{if(n>0){const e=s.slice(0,n);n=0,i.appendBuffer(e)}else if(i.buffered&&i.buffered.length){const t=i.buffered.end(i.buffered.length-1)-15,s=i.buffered.start(0);t>s&&(i.remove(s,t),e.setLiveSeekableRange(t,t+15))}}catch(e){}}));const s=new Uint8Array(2097152);let n=0;this.ondata=e=>{if(i.updating||n>0){const t=new Uint8Array(e);s.set(t,n),n+=t.byteLength}else try{i.appendBuffer(e)}catch(e){}}}}onwebrtc(){const e=new RTCPeerConnection(this.pcConfig);e.addEventListener("icecandidate",(e=>{if(e.candidate&&this.mode.indexOf("webrtc/tcp")>=0&&"udp"===e.candidate.protocol)return;const t=e.candidate?e.candidate.toJSON().candidate:"";this.send({type:"webrtc/candidate",value:t})})),e.addEventListener("connectionstatechange",(()=>{if("connected"===e.connectionState){const t=e.getTransceivers().filter((e=>"recvonly"===e.currentDirection)).map((e=>e.receiver.track)),i=document.createElement("video");i.addEventListener("loadeddata",(()=>this.onpcvideo(i)),{once:!0}),i.srcObject=new MediaStream(t)}else"failed"!==e.connectionState&&"disconnected"!==e.connectionState||(e.close(),this.pcState=WebSocket.CLOSED,this.pc=null,this.onconnect())})),this.onmessage.webrtc=t=>{switch(t.type){case"webrtc/candidate":if(this.mode.indexOf("webrtc/tcp")>=0&&t.value.indexOf(" udp ")>0)return;e.addIceCandidate({candidate:t.value,sdpMid:"0"}).catch((e=>{console.warn(e)}));break;case"webrtc/answer":e.setRemoteDescription({type:"answer",sdp:t.value}).catch((e=>{console.warn(e)}));break;case"error":if(t.value.indexOf("webrtc/offer")<0)return;e.close()}},this.createOffer(e).then((e=>{this.send({type:"webrtc/offer",value:e.sdp})})),this.pcState=WebSocket.CONNECTING,this.pc=e}async createOffer(e){this.microphoneStream?.getTracks().forEach((t=>{e.addTransceiver(t,{direction:"sendonly"})}));try{if(this.media.indexOf("microphone")>=0){(await navigator.mediaDevices.getUserMedia({audio:!0})).getTracks().forEach((t=>{e.addTransceiver(t,{direction:"sendonly"})}))}}catch(e){console.warn(e)}for(const t of["video","audio"])this.media.indexOf(t)>=0&&e.addTransceiver(t,{direction:"recvonly"});const t=await e.createOffer();return await e.setLocalDescription(t),t}onpcvideo(e){if(this.pc){let t=0,i=0;const s=e.srcObject;s.getVideoTracks().length>0&&(t+=544),s.getAudioTracks().length>0&&(t+=258),this.mseCodecs.indexOf("hvc1.")>=0&&(i+=560),this.mseCodecs.indexOf("avc1.")>=0&&(i+=528),this.mseCodecs.indexOf("mp4a.")>=0&&(i+=257),t>=i?(this.video.srcObject=s,this.play(),this.pcState=WebSocket.OPEN,this.wsState=WebSocket.CLOSED,this.ws&&(this.ws.close(),this.ws=null)):(this.pcState=WebSocket.CLOSED,this.pc&&(this.pc.close(),this.pc=null))}e.srcObject=null}onmjpeg(){let t=!1;this.ondata=i=>{m(this.video,!1),this.video.poster="data:image/jpeg;base64,"+b.btoa(i),t||(t=!0,e(this,this.video,{player:this.containingPlayer,technology:["mjpeg"]}))},this.send({type:"mjpeg"})}onhls(){this.onmessage.hls=e=>{if("hls"!==e.type)return;const t="http"+this.wsURL.substring(2,this.wsURL.indexOf("/ws"))+"/hls/",i=e.value.replace("hls/",t);this.video.src="data:application/vnd.apple.mpegurl;base64,"+btoa(i),this.play()},this.send({type:"hls",value:this.codecs((e=>this.video.canPlayType(e)))})}onmp4(){const t=document.createElement("canvas");let i;const s=document.createElement("video");s.autoplay=!0,s.playsInline=!0,s.muted=!0,s.addEventListener("loadeddata",(n=>{i||(t.width=s.videoWidth,t.height=s.videoHeight,i=t.getContext("2d"),e(this,s,{player:this.containingPlayer,technology:["mp4"]})),i.drawImage(s,0,0,t.width,t.height),m(this.video,!1),this.video.poster=t.toDataURL("image/jpeg")})),this.ondata=e=>{s.src="data:video/mp4;base64,"+b.btoa(e)},this.send({type:"mp4",value:this.codecs(this.video.canPlayType)})}static btoa(e){const t=new Uint8Array(e),i=t.byteLength;let s="";for(let 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.hasSelectedResult()}}))}async _setURL(){const e=this.media?.getContentID();if(!this.media||!e||!this.hass||this.viewerConfig?.lazy_load&&!this.load)return;let i=this.resolvedMediaCache?.get(e)??null;if(i||(i=await l(this.hass,e,this.resolvedMediaCache)),!i)return;const t=i.url;if(g(t))return void(this._url=h(this.hass,t));const a=this.cameraManager?.getStore().getCamera(this.media.getCameraID()),r=a?.getProxyConfig();if(r&&c(this.hass,r,"media")){if(r.dynamic){const e=t.split(/#/)[0];await u(this.hass,e,{sslVerification:r.ssl_verification,sslCiphers:r.ssl_ciphers,openLimit:0})}try{this._url=await m(this.hass,v(t))}catch(e){p(e)}}else this._url=t}willUpdate(e){if((e.has("load")||e.has("media")||e.has("viewerConfig")||e.has("resolvedMediaCache")||e.has("hass"))&&this._setURL().then((()=>{this.requestUpdate()})),e.has("viewerConfig")&&this.viewerConfig?.zoomable&&import("./zoomer-672d26af.js"),e.has("media")||e.has("cameraManager")){const e=this.media?.getCameraID(),i=e?this.cameraManager?.getStore().getCameraConfig(e):null;S(this,i?.dimensions?.layout),this.style.aspectRatio=C({ratio:i?.dimensions?.aspect_ratio})}}_useZoomIfRequired(e){if(!this.media)return e;const i=this.media.getCameraID(),t=this.media.getID()??void 0,a=this.cameraManager?.getStore().getCameraConfig(i),r=this.viewManagerEpoch?.manager.getView();return this.viewerConfig?.zoomable?w` a?.dimensions?.layout?{pan:a.dimensions.layout.pan,zoom:a.dimensions.layout.zoom}:void 0))} + .settings=${t?r?.context?.zoom?.[t]?.requested:void 0} + @frigate-card:zoom:zoomed=${()=>this.setControls(!1)} + @frigate-card:zoom:unzoomed=${()=>this.setControls()} + @frigate-card:zoom:change=${e=>f(e,this.viewManagerEpoch?.manager,t)} + > + ${e} + `:e}render(){if(this.load&&this.media&&this.hass&&this.viewerConfig)return this._url?this._useZoomIfRequired(w` + ${n.isVideo(this.media)?this.media.getVideoContentType()===Q.HLS?w` + `:w` + + `:w`{this.viewerConfig?.snapshot_click_plays_clip&&this._switchToRelatedClipView()}} + @load=${e=>{y(this,e,{player:this,technology:["jpg"]})}} + />`} + `):I({cardWideConfig:this.cardWideConfig})}static get styles(){return D(':host {\n background-color: var(--primary-background-color);\n background-position: center;\n background-repeat: no-repeat;\n background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4yLjIgKGIwYTg0ODY1NDEsIDIwMjItMTItMDEpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJjYW1lcmEtaXJpcy5zdmciCiAgIGlkPSJzdmc0IgogICB2ZXJzaW9uPSIxLjEiCiAgIHZpZXdCb3g9IjAgMCAyNCAyNCIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzOCIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzYiCiAgICAgcGFnZWNvbG9yPSIjYjkzZTNlIgogICAgIGJvcmRlcmNvbG9yPSIjMDAwMDAwIgogICAgIGJvcmRlcm9wYWNpdHk9IjAuMjUiCiAgICAgaW5rc2NhcGU6c2hvd3BhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuNjA3ODQzMTQiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6ZGVza2NvbG9yPSIjZDFkMWQxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp6b29tPSIyNi42MjUwNiIKICAgICBpbmtzY2FwZTpjeD0iLTEuOTM0MjY4IgogICAgIGlua3NjYXBlOmN5PSIxNS42ODA3MTYiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIzODQwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjE1MjciCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjEwODAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjIyNyIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzQiIC8+CiAgPGcKICAgICBpZD0iZzExMTkiCiAgICAgc3R5bGU9ImZpbGwtb3BhY2l0eTowLjA1O2ZpbGw6I2ZmZmZmZiI+CiAgICA8Y2lyY2xlCiAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eTowLjA1O3N0cm9rZS13aWR0aDoxLjM5NzI5IgogICAgICAgaWQ9InBhdGgxNzAiCiAgICAgICBjeD0iMTIiCiAgICAgICBjeT0iMTIiCiAgICAgICBpbmtzY2FwZTpsYWJlbD0iV2hpdGUgQmFja2dyb3VuZCIKICAgICAgIHI9IjExLjI1IiAvPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gMTMuNzMwMDAxLDE1IDkuODMwMDAwMywyMS43NiBDIDEwLjUzLDIxLjkxIDExLjI1LDIyIDEyLDIyIGMgMi40MDAwMDEsMCA0LjYsLTAuODUgNi4zMiwtMi4yNSBMIDE0LjY2MDAwMSwxMy40IE0gMi40NjAwMDAzLDE1IGMgMC45MiwyLjkyIDMuMTUsNS4yNiA1Ljk5LDYuMzQgTCAxMi4xMiwxNSBtIC0zLjU3OTk5OTcsLTMgLTMuOSwtNi43NDk5OTk2IGMgLTEuNjQsMS43NDk5OTkgLTIuNjQsNC4xMzk5OTkzIC0yLjY0LDYuNzQ5OTk5NiAwLDAuNjggMC4wNywxLjM1IDAuMiwyIGggNy40OSBNIDIxLjgsOS45OTk5OTk3IEggMTQuMzEwMDAxIEwgMTQuNjAwMDAxLDEwLjUgMTkuMzYsMTguNzUgQyAyMSwxNi45NyAyMiwxNC42IDIyLDEyIDIyLDExLjMxIDIxLjkzLDEwLjY0IDIxLjgsOS45OTk5OTk3IG0gLTAuMjYsLTEgQyAyMC42Miw2LjA3MDAwMDUgMTguMzksMy43NDAwMDAyIDE1LjU1MDAwMSwyLjY2MDAwMDIgTCAxMS44OCw4Ljk5OTk5OTcgTSA5LjQwMDAwMDMsMTAuNSAxNC4xNzAwMDEsMi4yNDAwMDAyIGMgLTAuNywtMC4xNSAtMS40MjAwMDEsLTAuMjQgLTIuMTcwMDAxLC0wLjI0IC0yLjM5OTk5OTcsMCAtNC41OTk5OTk3LDAuODQgLTYuMzE5OTk5NywyLjI1MDAwMDMgbCAzLjY2LDYuMzQ5OTk5NSB6IgogICAgICAgaWQ9InBhdGgyIgogICAgICAgaW5rc2NhcGU6bGFiZWw9IklyaXMiCiAgICAgICBzdHlsZT0iZmlsbC1vcGFjaXR5OjAuMDU7ZmlsbDojZmZmZmZmIiAvPgogIDwvZz4KPC9zdmc+Cg==");\n background-size: 10%;\n background-position: center;\n}\n\n:host {\n display: block;\n width: 100%;\n height: 100%;\n}\n\nimg,\nvideo,\nfrigate-card-ha-hls-player {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n object-view-box: inset(var(--frigate-card-media-layout-view-box-top, 0%) var(--frigate-card-media-layout-view-box-right, 0%) var(--frigate-card-media-layout-view-box-bottom, 0%) var(--frigate-card-media-layout-view-box-left, 0%));\n}\n\nfrigate-card-progress-indicator {\n padding: 30px;\n box-sizing: border-box;\n}')}};e([i({attribute:!1})],q.prototype,"hass",void 0),e([i({attribute:!1})],q.prototype,"viewManagerEpoch",void 0),e([i({attribute:!1})],q.prototype,"media",void 0),e([i({attribute:!1})],q.prototype,"viewerConfig",void 0),e([i({attribute:!1})],q.prototype,"resolvedMediaCache",void 0),e([i({attribute:!1})],q.prototype,"load",void 0),e([i({attribute:!1})],q.prototype,"cameraManager",void 0),e([i({attribute:!1})],q.prototype,"cardWideConfig",void 0),e([t()],q.prototype,"_url",void 0),q=e([a("frigate-card-viewer-provider")],q);let H=class extends r{constructor(){super(...arguments),this.showControls=!0,this._selected=0,this._media=null,this._mediaActionsController=new O,this._player=null,this._refCarousel=s()}updated(e){super.updated(e),e.has("viewManagerEpoch")&&this.viewManagerEpoch?.manager.getView()?.context?.mediaViewer!==this.viewManagerEpoch?.oldView?.context?.mediaViewer&&this._seekHandler(),!this._mediaActionsController.hasRoot()&&this._refCarousel.value&&this._mediaActionsController.initialize(this._refCarousel.value)}connectedCallback(){super.connectedCallback(),this.requestUpdate()}disconnectedCallback(){this._mediaActionsController.destroy(),super.disconnectedCallback()}_getTransitionEffect(){return this.viewerConfig?.transition_effect??k.media_viewer.transition_effect}_getPlugins(){return[R({...this.viewerConfig?.lazy_load&&{lazyLoadCallback:(e,i)=>this._lazyloadSlide(i)}}),U(),Y()]}_getMediaNeighbors(){const e=this._media?.length??0;if(!this._media)return null;const i=this._selected>0?this._selected-1:null,t=this._selected+1{if(!t||!this._media)return;const i=("previous"===e?t.previous?.index:t.next?.index)??null;null!==i&&this._setViewSelectedIndex(i)},r=this.viewManagerEpoch?.manager.getView();return w` + {this._setViewSelectedIndex(e.detail.index)}} + @frigate-card:media:loaded=${e=>{this._player=e.detail.player??null,this._seekHandler()}} + @frigate-card:media:unloaded=${()=>{this._player=null}} + > + ${this.showControls?w` {a("previous"),N(e)}} + >`:""} + ${W([this._media,r],(()=>this._getSlides()))} + ${this.showControls?w` {a("next"),N(e)}} + >`:""} + + ${r?w` + `:""} +
    + + +
    + `}async _seekHandler(){const e=this.viewManagerEpoch?.manager.getView(),i=e?.context?.mediaViewer?.seek;if(!(this.hass&&i&&this._media&&this._player))return;const t=this._media[this._selected];if(!t)return;const a=t.includesTime(i);$(this,!a,"unseekable"),a||this._player.isPaused()?a&&this._player.isPaused()&&this._player.play():this._player.pause();const r=await(this.cameraManager?.getMediaSeekTime(t,i))??null;null!==r&&this._player.seek(r)}_renderMediaItem(e){const i=this.viewManagerEpoch?.manager.getView();return this.hass&&i&&this.viewerConfig?w`
    + +
    `:null}static get styles(){return D(":host {\n position: relative;\n --video-max-height: none;\n}\n\n:host([unselected]) frigate-card-carousel,\n:host([unselected]) .seek-warning {\n pointer-events: none;\n}\n\n:host([unseekable]) frigate-card-carousel {\n filter: brightness(50%);\n}\n\n:host([unseekable]) .seek-warning {\n display: block;\n}\n\n.seek-warning {\n display: none;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n color: white;\n}\n\n.embla__slide {\n height: 100%;\n flex: 0 0 100%;\n}")}};e([i({attribute:!1})],H.prototype,"hass",void 0),e([i({attribute:!1})],H.prototype,"viewManagerEpoch",void 0),e([i({attribute:!1})],H.prototype,"viewFilterCameraID",void 0),e([i({attribute:!1,hasChanged:x})],H.prototype,"viewerConfig",void 0),e([i({attribute:!1})],H.prototype,"resolvedMediaCache",void 0),e([i({attribute:!1})],H.prototype,"cardWideConfig",void 0),e([i({attribute:!1})],H.prototype,"cameraManager",void 0),e([i({attribute:!1})],H.prototype,"showControls",void 0),e([t()],H.prototype,"_selected",void 0),H=e([a("frigate-card-viewer-carousel")],H);let X=class extends r{_renderCarousel(e){const i=this.viewManagerEpoch?.manager.getView()?.camera;return w` + + + `}willUpdate(e){e.has("viewManagerEpoch")&&this._needsGrid()&&import("./media-grid-cff66b0b.js")}_needsGrid(){const e=this.viewManagerEpoch?.manager.getView(),i=e?.queryResults?.getCameraIDs();return!!e?.isGrid()&&!!e?.supportsMultipleDisplayModes()&&(i?.size??0)>1}_gridSelectCamera(e){const i=this.viewManagerEpoch?.manager.getView();this.viewManagerEpoch?.manager.setViewByParameters({params:{camera:e,queryResults:i?.queryResults?.clone().promoteCameraSelectionToMainSelection(e)}})}render(){const e=this.viewManagerEpoch?.manager.getView(),i=e?.queryResults?.getCameraIDs();return i&&this._needsGrid()?w` + this._gridSelectCamera(e.detail.selected)} + > + ${[...i].map((e=>this._renderCarousel(e)))} + + `:this._renderCarousel()}static get styles(){return D(E)}};e([i({attribute:!1})],X.prototype,"hass",void 0),e([i({attribute:!1})],X.prototype,"viewManagerEpoch",void 0),e([i({attribute:!1})],X.prototype,"viewerConfig",void 0),e([i({attribute:!1})],X.prototype,"resolvedMediaCache",void 0),e([i({attribute:!1})],X.prototype,"cardWideConfig",void 0),e([i({attribute:!1})],X.prototype,"cameraManager",void 0),X=e([a("frigate-card-viewer-grid")],X);let J=class extends r{render(){if(this.hass&&this.viewManagerEpoch&&this.viewerConfig&&this.cameraManager&&this.cardWideConfig){if(!this.viewManagerEpoch.manager.getView()?.queryResults?.hasResults()){const e=!!this.viewManagerEpoch.manager.getView()?.context?.loading?.query;return P({type:"info",message:z(e?"error.awaiting_media":"common.no_media"),icon:"mdi:multimedia",dotdotdot:e})}return w` + `}}static get styles(){return D(":host {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n gap: 5px;\n}\n\nfrigate-card-viewer-carousel {\n flex: 1;\n min-height: 0;\n}")}};e([i({attribute:!1})],J.prototype,"hass",void 0),e([i({attribute:!1})],J.prototype,"viewManagerEpoch",void 0),e([i({attribute:!1})],J.prototype,"viewerConfig",void 0),e([i({attribute:!1})],J.prototype,"resolvedMediaCache",void 0),e([i({attribute:!1})],J.prototype,"cameraManager",void 0),e([i({attribute:!1})],J.prototype,"cardWideConfig",void 0),J=e([a("frigate-card-viewer")],J);export{J as FrigateCardViewer}; diff --git a/config/www/community/frigate-hass-card/index-961f10b9.js.gz b/config/www/community/frigate-hass-card/index-961f10b9.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..71e0b9a908dff261c75f07ba65951e92b5f90eed GIT binary patch literal 6432 zcmV+*8Q`hEqwMw z)yAhHstnyoR7d#KMRknNv8b}yhN9BMXGNUiViX+_^gS_9X{)#I>F~mRN1&E zQJvwlEvj>T9*At#s;J!Kb1Et|d=5nQ0H1x45%Zg<9^$hpGURhn`3;{9Q7z!}TvUtr zJQ9^#d|oa(mZ_(6pA^|rvtJZ7zf;`J=lXVfk23Z_S5MCNG&?)gJMBICu4NbzwmD)=}S>-e}38O7I}{kL2uj~*pDQK_8${6*RM^1CdD zr(x1L^v1~}m6}9Jyo%yecJqZ|{`Vpqrx7RhS4q)i8#H6;5Ca5hJu9YR zJJv{XOiRc-+oK_|gj_BsTiuaP49CuhPLJ9-&6L&BMuERPS)_Ap(XQ-}3UIKFb6qk< zm24psjJcyKF)uB149{3sO_#eQp=)GmC1a#%3)!9-N($KzWXThmI;oa`V_qU5HotH=?6TD+WFU~tGwr-ixiW8A zTF%A3_X2F&Wkxw#1n#@-ZJCzk9&yKQWb-P|-lvPWaE z6d`EMY;LNshZ5F)H6j)zpvt+w;MXjZajjvGQ%6f~M^4d9gCG&8pJQSC&@JG@>}y#2#sm^h{ML-~bX@tD;jKn^aBZ7otV_{$N`orTq

    )~)Dbx{{AHW~y#z2A=V6iyx_|!M07KgFCFvSf)C*|xeD;Kq z&F1EYALV$$!ElN42`yrq+L&;gsK`o>u-U;kmCLAyI5++IQ=lboPg(C}YM`2*{_j)fTmJhVXUr(Vm}lG8 z?m(40RFP4kBv4gbdm4wDL};kcVGmT+?N#`jXby>SPIc-?`9)^oShMGVLwqtlG}##0 zxd5C>54Wu${BN-!noUvxl(U#nO}ibc;6vQKO<)=-q){)@nV&!1S9k6HdswSN&C4suNtS+Lcg3nD;m)jaRF@8u8;ADVp zaH9GArKlD^%N;x#_$cEGi)a%HdzBsfIwXQOE5B9~T@8c1fLYNEkMC(Yr$WqO*yv-> zNN48Aabp$RnQ0^^+e7pus3E0_@ND4^DF(*JJh47dki`@1nk`s*t#b_=r55bNT*e`% z;Tat9J@YD45uMU%S0}#S7F`ZdG`&~vQQ;jvS>ENzkJQ%=-^{b@kjth1A?5#*Q%Oe# zhkHXD+yv~>Z_oF_H#v#--$ka6iG5|*Hw;M*^|&1nrx+s6n%IdQ3yHG}3^PoZ9T4P{ zEgq`Dag{Hwocrc{FMCEoR2M}U!5`suON;`xcoh)hGPoXvB1}ACtcM>N>oL3puk>W2 zO8^=+y^i4S2rDHGPCdZ4AHodqLC4om3G&_lA&~_H?GP#nL2%A@xNyi43UHRRC>pAR zV{~J&W&4@@_}~$SF%S##!ZA=eY9g%P-LadqA=p8wRJzKYp5K7FMzu9^`4Zv)pRE4U znIj?({72R_bCM-fGZCX~Q8}y0ZK9RZzdc8ZZc;}hXxi!YA{~P(%Mc79Mv&}AAwH*f z#E3PsGh(a_aoE(*s6k>q4o?3zs&Fg&E!Yg>WHGUO1MqizK-nYQ8x&TKrGrxxdOz|O zQ_+Y}K~sJ8@yBC~Z^jy90*{;|mgM|?S-y+a$dHcVrtn( zNTgwGY9pQaJ{Udt6Qd$Qeg1Gcj)U5(2O(kZsDtED`%6$?ZF6KPBn5}ph<&CU@P(x` z)BR8Sa66s)6bJtLiS?vgrv+W)~{e`KVZ@Qgm~9yrTM zmE4Fg+y?Nr1Mw%jrb)5T)ebIbs=~jeo(WOr^Pfg4)s~e(*D^e^mgw#nyh@v^$R-M*i6RsC+J6t!`?pQrVk?MaOuYHhtSZk=eO);v$|?ygVHn_XHv zZR8*CcLtC5({WqB-L2_6<68gskCpy(uIkEvYL$boe7|EU#YRs#x&0i&J3H^!y8k(; zO&*)w{6+P#(5N2SwQ6lr@7J7q6aG|>hPAHQtyK=^?c()NIoTb^&EcS3Y>Xc73)v;p+vd)~!SY(1RK<@?>y*pXw3_Pa_2h#7K30mb&WA(j8;sz0LD3spOW&Qf zihy6g%b(}3Z?7x60Z(r7lXLw#--^<_M5j8hbNc4M!vJRh{~Tl0%bt$RM_V?yis+}4ks*8O!+zQ5aIykI(Vg}Q@08>qUb zsq;tb^#Ko!)_r5#KG~gt-1?9G!MxRMXq;}G^K7i>*PsKz7@!g9oGg#oojl$*hU)16 zWj(6*Z)re7pr=Z)H&(X}d#&Q#Ts}D-w6}mK{aW%^MqdUzH#?yw`-ck)kXEM;iCg-git`8vJ zVOw|RkHzCjt2zAKF77&jW7eSCMc~1tK@-RI3D9)jJQ`gz>-l>BaXa9rHj=j*{l|wx z?Lu$tpglEiwu=|lgROe=F_C_?2)^TFckBE?9kx!dO@NsLk0yyY4Hf9P9;>qg@JKV{ zQ_zq8QK8;fUcikud^7<%UKodRg7wc5*S!TWD08QMf4nW<7luT?8{isOtiPZbXIk61 z0-HYGX+6|-Yeu8knqSdc1$-gUae1Qn^DsHjkEZqJAkgux>zy|9E3IMsWa6|z_a2K{ zo;1zLdH|^}Zr4z*KvS(yqX*+lm!`{8MoTd61n3*&yY*&$ z)R@=N2TaeaM}=B-FuJI+_ep&=nZe$()u4yfTJ;Fle>*>~;(jog!aJJ--e>T8#-1nj zZk=xDxlcK=VSmV<_aE)^<^kZm?Sc)>>vZD4m|5fIunut8Uu5HNCe!+CJ6}7>GaTR- zkcK&<3Gr68cK{al!2!%yAJv<;HrNr^JG9kUTcZLv=d5iGIDwAG zJkHseUt!x0&@nl$qCe{*t&_%Vf_ee`1m6jC*G{_K2CVPm=CDy?JnY&RH`_a$uEAFA z2;iDmu!bWhi`vnIy}Nus*&zR+Z2)5)?Rv8dbAukt4ra(ZSj$cWf8)9<+eMfIWO6if zpGeD;&pViNT#xxgI!^Lklvka}?TF(Ce1NwI`oG0xi*$5>j)4s_170y2Q4c^Cw*^<8 zGhepV8kft>_Vz_(vW@a`<##21;mrZA0qutC5$cOK2a^+wnSmbR zn41F!@Pg0fV>#_tOm6k2!g*JLJ-=VebGg;MxlunIn5W>a9pwjp7GP1Aj<{TBxQ<%E zrLWtrfKI}?Tz%tXZVo@Mu>D!IJ@BvK|7h!e0ye1460pjF~&yn!}ZPu?!(pF zFL7Vx+j(^|Zb2Mz3GoiZCLb%^QYpO@Alq~f;cX%RuUACQi$9G&jZk#1QX7v7QmU<) z%77u5P}S)nJ{Mt+&~DH18yE&Sor!-M?Cb{5)t4dfog|eq+n7_!cBtbW7$URqDjT&64fp{%OZ=t`-r{BX+k z6Oe(%vc|S)!2ureBhr7vsdSGB->C2`JB~%$BZo*Eg+=DO_*V`la7?^V5P5=0bg$UO zR{+E>q~8SW=8NArou9sX3t&Q8?JeLem-iNcXcFvgkm2iq2&f~(2jhK8FyyZi43dR( zM145RP>a}=P8v~USfcv$y>)$d&zyL9jM7G4^sDVEJ)On!KrMh8m3spjdk3>6ifr!*g@jYQL z4!qI8+ysiHDdH`x_z{ekP0CzQ12<*x(RRE}<;hKuYsBa}y>dAp)Tlf~^35#!9Z5O+ z7Py};M;o#QiCa``;K#yOQjRzAygHu+xq+{s{}fg}w8)r(B1zA%7m=w%MMjboBJUgh zzF3F>m;+!2*o6n;B!D;ovRFL1B}ZOuPYuVTnMW4++Ip-I{+~aCni;?L(DzoQ5?Ly! zDf8MYx9q6w)mY^?kV{yQkv*mwgn(Y6-<>~-R4zFzmmjTLT7@B2AF=oLTCJcoE4&im zKDu)d3E!V28DyoKD(z4#midOBxbIeUa1WLi)9Acl*I0mEMs*uRLof_;WJ4ilCw1Da zpWkSvbEFa6EjBj=Qo_0mn|2MNx~)K2M}rNJ7}7?5fn`3Kprp;^JLeMYK`-oNd!Um7 zb<522+;1?_Y#~&o5iy%@-}gLogP$FkgO_Z9nSBk7cFk|^<45Z0pHqrzIa4LC(=Fb3 z;%Rhd;WdZoFknwcKEU{r46eYd6#5nY+lvnO8XAFIS#afJ*`SMWW?^oc&VQZ0M64k|tmDn$%M1Zvzc}=^E^On85 zjFkhSk6#&kyuF}Q3{1gyLD1>`UhOr?u9Hs!j(XMAD6kNTBu6u4Rzbc;OQoSf21g9(f##3e+1u;D`5EQG7(wRtfNaMkylfhapclTRCX89$nXtH##;E1>q22=_K zaIrN@uf_&GX8mAXrZ=2fyIWNAwjCbJP`zEg$$2;z(u%3;rjawuC%52EOjDy{rp0Fp z=%uu-Qb`AKQ{KJE#DW8NtBr8`dpXR?ZzNmz9uUJTU^kYl(!%>`)HfzXH>ggfeeR7t zY!Q#_lPRRV@FIJJ{qRa+#SrJ}&BUG4{8}a~^*V!$>g)Qm3=!?LOYIAMi z6E8Ff)8bp2my-7yf-z1k_V$M+#^nKAw2IARlf)-*^XO}YMBsej$W(LXyI6&o2avo< zB!bmFJoML<3Dt++52?b^33<7$616z%DRG6oh<9Nf;~sCIyKBcwTbf zFN?L7T!7S78Le0~}v_auy?(pa5*{o;%*vUBKCvE7t&s$w>A0c$wrs$>)O|Kr|S=|@V83@ zhfO)$9s=P9rbs=1gz_YB5E{Ci0r3EqdqQ9lDS8l*#?WB5UUFmkupH)3RBXgU#ylH0z~M4bvczOt0__ zt<1I2Oe)c{i^*eiVZZ26LNS+|CHMiTy>dEk)T^fBs5aoFwZ!S^E3=s|gT5h!8i5Q4(aQleea5VE-d_%!TS zs_jQl8yoEJKJn;cuilq8b-a8WYNX2dg1V{lzivRFFow=axt!1J7Zy)QJiqvHKP`Vx zF!w7NF*o-`#7JsvWzrA4g>K^Kf(XS4hkdPS)@5q=uk2))S#jh0cS;~d6Evi}!aoGs zl6e2;-;Rf`D!KI5o$uWtYcJ2(q*8b;|Ndi1{N8n)H#(Dat@bUK%hB(^xS=5UxRxAk zaHA44%77@>9;HMKFMND+v^q|Bcx#;S@GEh`!+ZDkhhN*f+0wSV^a*q9Tjel+6ApfB{?3-@LPM$LINGF*JZjTe-Q%Y5LW#kR*Q4|A9`G;) z@wYpH=N&GEXXLQt=7w|#{P7E|xj@QkVp*n@V<&U~bkj&uLSiW~p(LuN!~c^A^K@=t zk{ptRe9p?CPiJ#nN8?9EN8c|FDzw?{y_S zG>vqFb#-Mti?Q0#<*L(I6yu&M*~zKEpml2a=i>Yehp4l+I>)nLagJy2b&hAh<{Z!7 ueR?^2jaxli?HtiBo@MsPl>McSXY4PK4E~Y>enGj|`|w|l1BwynQvd)2ow`#1 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/index-9b434861.js b/config/www/community/frigate-hass-card/index-9b434861.js new file mode 100644 index 00000000..2581f2a8 --- /dev/null +++ b/config/www/community/frigate-hass-card/index-9b434861.js @@ -0,0 +1,162 @@ +import{cL as e,cM as i,cN as t,cO as a,cP as r,cQ as o,l as s,_ as n,n as d,b as g,t as c,a as h,cR as l,cI as m,cS as v,cT as p,x as u,cU as C,cV as f,e as I,r as M,cW as _,cX as w,cY as b,cZ as y,c_ as L,c$ as A,d0 as D,d1 as $,d2 as j}from"./card-769e2b91.js";import{p as z,u as k,i as S,M as E,A as N,a as x,b as T}from"./media-d4c0d154.js"; +/** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const Z=e(class extends i{constructor(){super(...arguments),this.key=t}render(e,i){return this.key=e,i}update(e,[i,t]){return i!==this.key&&(a(e),this.key=i),t}});class O{constructor(e){this._inBackground=!1,this._messageReceived=!1,this._lastMediaLoadedInfo=null,this._renderEpoch=0,this._handleMessage=e=>{this._messageReceived=!0,this._inBackground&&(e.stopPropagation(),this._renderEpoch++)},this._handleMediaLoaded=e=>{this._lastMediaLoadedInfo={source:e.composedPath()[0],mediaLoadedInfo:e.detail},this._inBackground&&e.stopPropagation()},this._host=e,e.addController(this),this._intersectionObserver=new IntersectionObserver(this._intersectionHandler.bind(this))}shouldUpdate(){return!(this._inBackground&&this._messageReceived)}hostConnected(){this._intersectionObserver.observe(this._host),this._host.addEventListener("frigate-card:media:loaded",this._handleMediaLoaded),this._host.addEventListener("frigate-card:message",this._handleMessage)}hostDisconnected(){this._intersectionObserver.disconnect(),this._host.removeEventListener("frigate-card:media:loaded",this._handleMediaLoaded),this._host.removeEventListener("frigate-card:message",this._handleMessage)}clearMessageReceived(){this._messageReceived=!1}isInBackground(){return this._inBackground}getRenderEpoch(){return this._renderEpoch}_intersectionHandler(e){const i=this._inBackground;this._inBackground=!e.some((e=>e.isIntersecting)),this._inBackground||this._messageReceived||!this._lastMediaLoadedInfo||r(this._lastMediaLoadedInfo.source,this._lastMediaLoadedInfo.mediaLoadedInfo),i!==this._inBackground&&this._host.requestUpdate()}}const P=(e,i,t)=>{if(!t?.camera_entity)return o(e,s("error.no_live_camera"),{context:t}),null;const a=i.states[t.camera_entity];return a||(o(e,s("error.live_camera_not_found"),{context:t}),null)};let G=class extends h{constructor(){super(...arguments),this.load=!1,this.label="",this._isVideoMediaLoaded=!1,this._refProvider=l(),this._importPromises=[]}async play(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await z(this,this._refProvider.value)}async pause(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.pause())}async mute(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.mute())}async unmute(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.unmute())}isMuted(){return this._refProvider.value?.isMuted()??!0}async seek(e){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.seek(e))}async setControls(e){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.setControls(e))}isPaused(){return this._refProvider.value?.isPaused()??!0}async getScreenshotURL(){return await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.getScreenshotURL())??null}_getResolvedProvider(){return"auto"===this.cameraConfig?.live_provider?this.cameraConfig?.webrtc_card?.entity||this.cameraConfig?.webrtc_card?.url?"webrtc-card":this.cameraConfig?.camera_entity?"ha":this.cameraConfig?.frigate.camera_name?"jsmpeg":m.cameras.live_provider:this.cameraConfig?.live_provider||"image"}_shouldShowImageDuringLoading(){return!!this.cameraConfig?.camera_entity&&!!this.hass&&!!this.liveConfig?.show_image_during_load}disconnectedCallback(){this._isVideoMediaLoaded=!1}_videoMediaShowHandler(){this._isVideoMediaLoaded=!0}willUpdate(e){if(e.has("load")&&(this.load||(this._isVideoMediaLoaded=!1,v(this))),e.has("liveConfig")&&(this.liveConfig?.show_image_during_load&&this._importPromises.push(import("./image-669f8abb.js")),this.liveConfig?.zoomable&&this._importPromises.push(import("./zoomer-ddec5522.js"))),e.has("cameraConfig")){const e=this._getResolvedProvider();"jsmpeg"===e?this._importPromises.push(import("./jsmpeg-ef28408a.js")):"ha"===e?this._importPromises.push(import("./ha-378b7a69.js")):"webrtc-card"===e?this._importPromises.push(import("./webrtc-card-ee41138a.js")):"image"===e?this._importPromises.push(import("./image-669f8abb.js")):"go2rtc"===e&&this._importPromises.push(import("./index-8355422b.js")),k(this,this.cameraConfig?.dimensions?.layout),this.style.aspectRatio=p({ratio:this.cameraConfig?.dimensions?.aspect_ratio})}}async getUpdateComplete(){const e=await super.getUpdateComplete();return await Promise.all(this._importPromises),this._importPromises=[],e}_useZoomIfRequired(e){return this.liveConfig?.zoomable?u` this.cameraConfig?.dimensions?.layout?{pan:this.cameraConfig.dimensions.layout.pan,zoom:this.cameraConfig.dimensions.layout.zoom}:void 0))} + .settings=${this.zoomSettings} + @frigate-card:zoom:zoomed=${()=>this.setControls(!1)} + @frigate-card:zoom:unzoomed=${()=>this.setControls()} + > + ${e} + `:e}render(){if(!(this.load&&this.hass&&this.liveConfig&&this.cameraConfig))return;this.title=this.label,this.ariaLabel=this.label;const e=this._getResolvedProvider(),i=!this._isVideoMediaLoaded&&this._shouldShowImageDuringLoading(),t={hidden:i};if("ha"===e||"image"===e){const e=P(this,this.hass,this.cameraConfig);if(!e)return;if("unavailable"===e.state)return v(this),C({message:`${s("error.live_camera_unavailable")}${this.label?`: ${this.label}`:""}`,type:"info",icon:"mdi:cctv-off",dotdotdot:!0})}return u`${this._useZoomIfRequired(u` + ${i||"image"===e?u` {"image"===e?this._videoMediaShowHandler():i.stopPropagation()}} + > + `:u``} + ${"ha"===e?u` + `:"go2rtc"===e?u` + `:"webrtc-card"===e?u` + `:"jsmpeg"===e?u` + `:u``} + `)} + ${i&&!this._isVideoMediaLoaded?u``:""} `}static get styles(){return M(':host {\n background-color: var(--primary-background-color);\n background-position: center;\n background-repeat: no-repeat;\n background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4yLjIgKGIwYTg0ODY1NDEsIDIwMjItMTItMDEpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJjYW1lcmEtaXJpcy5zdmciCiAgIGlkPSJzdmc0IgogICB2ZXJzaW9uPSIxLjEiCiAgIHZpZXdCb3g9IjAgMCAyNCAyNCIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzOCIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzYiCiAgICAgcGFnZWNvbG9yPSIjYjkzZTNlIgogICAgIGJvcmRlcmNvbG9yPSIjMDAwMDAwIgogICAgIGJvcmRlcm9wYWNpdHk9IjAuMjUiCiAgICAgaW5rc2NhcGU6c2hvd3BhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuNjA3ODQzMTQiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6ZGVza2NvbG9yPSIjZDFkMWQxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp6b29tPSIyNi42MjUwNiIKICAgICBpbmtzY2FwZTpjeD0iLTEuOTM0MjY4IgogICAgIGlua3NjYXBlOmN5PSIxNS42ODA3MTYiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIzODQwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjE1MjciCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjEwODAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjIyNyIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzQiIC8+CiAgPGcKICAgICBpZD0iZzExMTkiCiAgICAgc3R5bGU9ImZpbGwtb3BhY2l0eTowLjA1O2ZpbGw6I2ZmZmZmZiI+CiAgICA8Y2lyY2xlCiAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eTowLjA1O3N0cm9rZS13aWR0aDoxLjM5NzI5IgogICAgICAgaWQ9InBhdGgxNzAiCiAgICAgICBjeD0iMTIiCiAgICAgICBjeT0iMTIiCiAgICAgICBpbmtzY2FwZTpsYWJlbD0iV2hpdGUgQmFja2dyb3VuZCIKICAgICAgIHI9IjExLjI1IiAvPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gMTMuNzMwMDAxLDE1IDkuODMwMDAwMywyMS43NiBDIDEwLjUzLDIxLjkxIDExLjI1LDIyIDEyLDIyIGMgMi40MDAwMDEsMCA0LjYsLTAuODUgNi4zMiwtMi4yNSBMIDE0LjY2MDAwMSwxMy40IE0gMi40NjAwMDAzLDE1IGMgMC45MiwyLjkyIDMuMTUsNS4yNiA1Ljk5LDYuMzQgTCAxMi4xMiwxNSBtIC0zLjU3OTk5OTcsLTMgLTMuOSwtNi43NDk5OTk2IGMgLTEuNjQsMS43NDk5OTkgLTIuNjQsNC4xMzk5OTkzIC0yLjY0LDYuNzQ5OTk5NiAwLDAuNjggMC4wNywxLjM1IDAuMiwyIGggNy40OSBNIDIxLjgsOS45OTk5OTk3IEggMTQuMzEwMDAxIEwgMTQuNjAwMDAxLDEwLjUgMTkuMzYsMTguNzUgQyAyMSwxNi45NyAyMiwxNC42IDIyLDEyIDIyLDExLjMxIDIxLjkzLDEwLjY0IDIxLjgsOS45OTk5OTk3IG0gLTAuMjYsLTEgQyAyMC42Miw2LjA3MDAwMDUgMTguMzksMy43NDAwMDAyIDE1LjU1MDAwMSwyLjY2MDAwMDIgTCAxMS44OCw4Ljk5OTk5OTcgTSA5LjQwMDAwMDMsMTAuNSAxNC4xNzAwMDEsMi4yNDAwMDAyIGMgLTAuNywtMC4xNSAtMS40MjAwMDEsLTAuMjQgLTIuMTcwMDAxLC0wLjI0IC0yLjM5OTk5OTcsMCAtNC41OTk5OTk3LDAuODQgLTYuMzE5OTk5NywyLjI1MDAwMDMgbCAzLjY2LDYuMzQ5OTk5NSB6IgogICAgICAgaWQ9InBhdGgyIgogICAgICAgaW5rc2NhcGU6bGFiZWw9IklyaXMiCiAgICAgICBzdHlsZT0iZmlsbC1vcGFjaXR5OjAuMDU7ZmlsbDojZmZmZmZmIiAvPgogIDwvZz4KPC9zdmc+Cg==");\n background-size: 10%;\n background-position: center;\n}\n\n:host {\n display: block;\n height: 100%;\n width: 100%;\n position: relative;\n}\n\n.hidden {\n display: none;\n}\n\nha-icon {\n position: absolute;\n top: 10px;\n right: 10px;\n color: var(--primary-color);\n}')}};n([d({attribute:!1})],G.prototype,"hass",void 0),n([d({attribute:!1})],G.prototype,"cameraConfig",void 0),n([d({attribute:!1})],G.prototype,"cameraEndpoints",void 0),n([d({attribute:!1})],G.prototype,"liveConfig",void 0),n([d({attribute:!0,type:Boolean})],G.prototype,"load",void 0),n([d({attribute:!1})],G.prototype,"label",void 0),n([d({attribute:!1})],G.prototype,"cardWideConfig",void 0),n([d({attribute:!1})],G.prototype,"microphoneStream",void 0),n([d({attribute:!1})],G.prototype,"zoomSettings",void 0),n([g()],G.prototype,"_isVideoMediaLoaded",void 0),G=n([c("frigate-card-live-provider")],G);const W="frigate-card-live-provider";let U=class extends h{constructor(){super(...arguments),this._cameraToSlide={},this._refPTZControl=l(),this._refCarousel=l(),this._mediaActionsController=new E,this._mediaHasLoaded=!1}connectedCallback(){super.connectedCallback(),this.requestUpdate()}disconnectedCallback(){this._mediaActionsController.destroy(),super.disconnectedCallback()}_getTransitionEffect(){return this.overriddenLiveConfig?.transition_effect??m.live.transition_effect}_getSelectedCameraIndex(){if(this.viewFilterCameraID)return 0;const e=this.cameraManager?.getStore().getCameraIDsWithCapability("live"),i=this.viewManagerEpoch?.manager.getView();return e?.size&&i?Math.max(0,Array.from(e).indexOf(i.camera)):0}willUpdate(e){(e.has("microphoneManager")||e.has("overriddenLiveConfig"))&&this._mediaActionsController.setOptions({playerSelector:W,...this.overriddenLiveConfig?.auto_play&&{autoPlayConditions:this.overriddenLiveConfig.auto_play},...this.overriddenLiveConfig?.auto_pause&&{autoPauseConditions:this.overriddenLiveConfig.auto_pause},...this.overriddenLiveConfig?.auto_mute&&{autoMuteConditions:this.overriddenLiveConfig.auto_mute},...this.overriddenLiveConfig?.auto_unmute&&{autoUnmuteConditions:this.overriddenLiveConfig.auto_unmute},...(this.overriddenLiveConfig?.auto_unmute||this.overriddenLiveConfig?.auto_mute)&&{microphoneManager:this.microphoneManager,microphoneMuteSeconds:this.overriddenLiveConfig.microphone.mute_after_microphone_mute_seconds}})}_getPlugins(){return[N({...this.overriddenLiveConfig?.lazy_load&&{lazyLoadCallback:(e,i)=>this._lazyloadOrUnloadSlide("load",e,i)},lazyUnloadConditions:this.overriddenLiveConfig?.lazy_unload,lazyUnloadCallback:(e,i)=>this._lazyloadOrUnloadSlide("unload",e,i)}),x(),T()]}_getLazyLoadCount(){return!1===this.overriddenLiveConfig?.lazy_load?null:0}_getSlides(){if(!this.cameraManager)return[[],{}];const e=this.viewManagerEpoch?.manager.getView(),i=this.viewFilterCameraID?new Set([this.viewFilterCameraID]):this.cameraManager?.getStore().getCameraIDsWithCapability("live"),t=[],a={};for(const[r,o]of this.cameraManager.getStore().getCameraConfigEntries(i)){const i=this._getSubstreamCameraID(r,e),s=r===i?o:this.cameraManager?.getStore().getCameraConfig(i),n=s?this._renderLive(i,s):null;n&&(a[r]=t.length,t.push(n))}return[t,a]}_setViewHandler(e){const i=this.cameraManager?.getStore().getCameraIDsWithCapability("live");i?.size&&e.detail.index!==this._getSelectedCameraIndex()&&this._setViewCameraID([...i][e.detail.index])}_setViewCameraID(e){e&&this.viewManagerEpoch?.manager.setViewByParametersWithNewQuery({params:{camera:e}})}_lazyloadOrUnloadSlide(e,i,t){t instanceof HTMLSlotElement&&(t=t.assignedElements({flatten:!0})[0]);const a=t?.querySelector(W);a&&(a.load="load"===e)}_renderLive(e,i){if(!(this.overriddenLiveConfig&&this.nonOverriddenLiveConfig&&this.hass&&this.cameraManager&&this.conditionsManagerEpoch))return;let t=null;try{t=w(this.conditionsManagerEpoch.manager,{live:this.nonOverriddenLiveConfig},{configOverrides:this.overrides,stateOverrides:{camera:e},schema:b}).live}catch(e){return y(this,e)}const a=this.cameraManager.getCameraMetadata(e),r=this.viewManagerEpoch?.manager.getView();return u` +

    + this.cameraManager?.getCameraEndpoints(e)??void 0))} + .label=${a?.title??""} + .liveConfig=${t} + .hass=${this.hass} + .cardWideConfig=${this.cardWideConfig} + .zoomSettings=${r?.context?.zoom?.[e]?.requested} + @frigate-card:zoom:change=${i=>L(i,this.viewManagerEpoch?.manager,e)} + > + +
    + `}_getCameraIDsOfNeighbors(){const e=this.cameraManager?[...this.cameraManager?.getStore().getCameraIDsWithCapability("live")]:[],i=this.viewManagerEpoch?.manager.getView();if(this.viewFilterCameraID||e.length<=1||!i||!this.hass)return[null,null];const t=this.viewFilterCameraID??i.camera,a=e.indexOf(t);return a<0?[null,null]:[e[a>0?a-1:e.length-1],e[a+11,[r,o]=this._getCameraIDsOfNeighbors(),s=r?this.cameraManager.getCameraMetadata(this._getSubstreamCameraID(r,e)):null,n=o?this.cameraManager.getCameraMetadata(this._getSubstreamCameraID(o,e)):null,d=!(!this._mediaHasLoaded||this.viewFilterCameraID&&this.viewFilterCameraID!==e.camera||!1===e.context?.ptzControls?.enabled)&&e.context?.ptzControls?.enabled;return u` + {this._mediaHasLoaded=!0}} + @frigate-card:media:unloaded=${()=>{this._mediaHasLoaded=!1}} + > + {this._setViewCameraID(r),A(e)}} + > + + ${i} + {this._setViewCameraID(o),A(e)}} + > + + + + + `}_setMediaTarget(){const e=this.viewManagerEpoch?.manager.getView(),i=this._getSelectedCameraIndex();this.viewFilterCameraID?this._mediaActionsController.setTarget(i,e?.camera===this.viewFilterCameraID):this._mediaActionsController.setTarget(i,!0)}updated(e){super.updated(e);let i=!1;!this._mediaActionsController.hasRoot()&&this._refCarousel.value&&(this._mediaActionsController.initialize(this._refCarousel.value),i=!0),(i||e.has("viewManagerEpoch"))&&this._setMediaTarget()}static get styles(){return M(":host {\n display: block;\n --video-max-height: none;\n}\n\n:host(:not([grid-id])) {\n height: 100%;\n}\n\n:host([unselected]) frigate-card-carousel {\n pointer-events: none;\n}\n\n.embla__slide {\n display: flex;\n justify-content: center;\n height: 100%;\n flex: 0 0 100%;\n}")}};n([d({attribute:!1})],U.prototype,"hass",void 0),n([d({attribute:!1})],U.prototype,"viewManagerEpoch",void 0),n([d({attribute:!1})],U.prototype,"nonOverriddenLiveConfig",void 0),n([d({attribute:!1})],U.prototype,"overriddenLiveConfig",void 0),n([d({attribute:!1,hasChanged:_})],U.prototype,"overrides",void 0),n([d({attribute:!1})],U.prototype,"conditionsManagerEpoch",void 0),n([d({attribute:!1})],U.prototype,"cardWideConfig",void 0),n([d({attribute:!1})],U.prototype,"cameraManager",void 0),n([d({attribute:!1})],U.prototype,"microphoneManager",void 0),n([d({attribute:!1})],U.prototype,"viewFilterCameraID",void 0),n([g()],U.prototype,"_mediaHasLoaded",void 0),U=n([c("frigate-card-live-carousel")],U);let B=class extends h{_renderCarousel(e){const i=this.viewManagerEpoch?.manager.getView(),t=e??i?.camera;return u` + + + `}_gridSelectCamera(e){this.viewManagerEpoch?.manager.setViewByParameters({params:{camera:e}})}_needsGrid(){const e=this.cameraManager?.getStore().getCameraIDsWithCapability("live"),i=this.viewManagerEpoch?.manager.getView();return!!i?.isGrid()&&!!i?.supportsMultipleDisplayModes()&&!!e&&e.size>1}willUpdate(e){e.has("viewManagerEpoch")&&this._needsGrid()&&import("./media-grid-110faed3.js")}render(){if(!this.conditionsManagerEpoch||!this.nonOverriddenLiveConfig)return;const e=this.cameraManager?.getStore().getCameraIDsWithCapability("live");return e?.size&&this._needsGrid()?u` + this._gridSelectCamera(e.detail.selected)} + > + ${[...e].map((e=>this._renderCarousel(e)))} + + `:this._renderCarousel()}static get styles(){return M(":host {\n width: 100%;\n height: 100%;\n display: block;\n}\n\n@keyframes warning-pulse {\n 0% {\n border: solid 2px var(--frigate-card-triggered-color-1, rgba(0, 0, 0, 0));\n }\n 50% {\n border: solid 2px var(--frigate-card-triggered-color-2, var(--warning-color));\n }\n 100% {\n border: solid 2px var(--frigate-card-triggered-color-1, rgba(0, 0, 0, 0));\n }\n}\nfrigate-card-live-carousel[triggered] {\n animation: warning-pulse 5s infinite;\n}\n\nfrigate-card-live-carousel[selected] {\n --frigate-card-triggered-color-1: var(--primary-color);\n}")}};n([d({attribute:!1})],B.prototype,"hass",void 0),n([d({attribute:!1})],B.prototype,"viewManagerEpoch",void 0),n([d({attribute:!1})],B.prototype,"nonOverriddenLiveConfig",void 0),n([d({attribute:!1})],B.prototype,"overriddenLiveConfig",void 0),n([d({attribute:!1,hasChanged:_})],B.prototype,"overrides",void 0),n([d({attribute:!1})],B.prototype,"conditionsManagerEpoch",void 0),n([d({attribute:!1})],B.prototype,"cardWideConfig",void 0),n([d({attribute:!1})],B.prototype,"cameraManager",void 0),n([d({attribute:!1})],B.prototype,"microphoneManager",void 0),n([d({attribute:!1})],B.prototype,"triggeredCameraIDs",void 0),B=n([c("frigate-card-live-grid")],B);let V=class extends h{constructor(){super(...arguments),this._controller=new O(this)}shouldUpdate(e){return this._controller.shouldUpdate()}willUpdate(){this._controller.clearMessageReceived()}render(){if(this.hass&&this.nonOverriddenLiveConfig&&this.cameraManager)return u`${Z(this._controller.getRenderEpoch(),u` + + + `)}`}static get styles(){return M(j)}};n([d({attribute:!1})],V.prototype,"conditionsManagerEpoch",void 0),n([d({attribute:!1})],V.prototype,"hass",void 0),n([d({attribute:!1})],V.prototype,"viewManagerEpoch",void 0),n([d({attribute:!1})],V.prototype,"nonOverriddenLiveConfig",void 0),n([d({attribute:!1})],V.prototype,"overriddenLiveConfig",void 0),n([d({attribute:!1,hasChanged:_})],V.prototype,"overrides",void 0),n([d({attribute:!1})],V.prototype,"cameraManager",void 0),n([d({attribute:!1})],V.prototype,"cardWideConfig",void 0),n([d({attribute:!1})],V.prototype,"microphoneManager",void 0),n([d({attribute:!1})],V.prototype,"triggeredCameraIDs",void 0),V=n([c("frigate-card-live")],V);var Y=Object.freeze({__proto__:null,get FrigateCardLive(){return V}});export{P as g,Y as i}; diff --git a/config/www/community/frigate-hass-card/index-9b434861.js.gz b/config/www/community/frigate-hass-card/index-9b434861.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..593a09a5faed28d9e0b2a84804be39cec1339971 GIT binary patch literal 6883 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 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/index-9bf80040.js b/config/www/community/frigate-hass-card/index-9bf80040.js new file mode 100644 index 00000000..cb15a605 --- /dev/null +++ b/config/www/community/frigate-hass-card/index-9bf80040.js @@ -0,0 +1,162 @@ +import{cL as e,cM as i,cN as t,cO as a,cP as r,cQ as o,l as s,_ as n,n as d,b as g,t as c,a as h,cR as l,cI as m,cS as v,cT as p,x as u,cU as C,cV as f,e as I,r as M,cW as _,cX as w,cY as b,cZ as y,c_ as L,c$ as A,d0 as D,d1 as $,d2 as j}from"./card-45855f1f.js";import{p as z,u as k,i as S,M as E,A as N,a as x,b as T}from"./media-1a34ac2c.js"; +/** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const Z=e(class extends i{constructor(){super(...arguments),this.key=t}render(e,i){return this.key=e,i}update(e,[i,t]){return i!==this.key&&(a(e),this.key=i),t}});class O{constructor(e){this._inBackground=!1,this._messageReceived=!1,this._lastMediaLoadedInfo=null,this._renderEpoch=0,this._handleMessage=e=>{this._messageReceived=!0,this._inBackground&&(e.stopPropagation(),this._renderEpoch++)},this._handleMediaLoaded=e=>{this._lastMediaLoadedInfo={source:e.composedPath()[0],mediaLoadedInfo:e.detail},this._inBackground&&e.stopPropagation()},this._host=e,e.addController(this),this._intersectionObserver=new IntersectionObserver(this._intersectionHandler.bind(this))}shouldUpdate(){return!(this._inBackground&&this._messageReceived)}hostConnected(){this._intersectionObserver.observe(this._host),this._host.addEventListener("frigate-card:media:loaded",this._handleMediaLoaded),this._host.addEventListener("frigate-card:message",this._handleMessage)}hostDisconnected(){this._intersectionObserver.disconnect(),this._host.removeEventListener("frigate-card:media:loaded",this._handleMediaLoaded),this._host.removeEventListener("frigate-card:message",this._handleMessage)}clearMessageReceived(){this._messageReceived=!1}isInBackground(){return this._inBackground}getRenderEpoch(){return this._renderEpoch}_intersectionHandler(e){const i=this._inBackground;this._inBackground=!e.some((e=>e.isIntersecting)),this._inBackground||this._messageReceived||!this._lastMediaLoadedInfo||r(this._lastMediaLoadedInfo.source,this._lastMediaLoadedInfo.mediaLoadedInfo),i!==this._inBackground&&this._host.requestUpdate()}}const P=(e,i,t)=>{if(!t?.camera_entity)return o(e,s("error.no_live_camera"),{context:t}),null;const a=i.states[t.camera_entity];return a||(o(e,s("error.live_camera_not_found"),{context:t}),null)};let G=class extends h{constructor(){super(...arguments),this.load=!1,this.label="",this._isVideoMediaLoaded=!1,this._refProvider=l(),this._importPromises=[]}async play(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await z(this,this._refProvider.value)}async pause(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.pause())}async mute(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.mute())}async unmute(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.unmute())}isMuted(){return this._refProvider.value?.isMuted()??!0}async seek(e){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.seek(e))}async setControls(e){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.setControls(e))}isPaused(){return this._refProvider.value?.isPaused()??!0}async getScreenshotURL(){return await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.getScreenshotURL())??null}_getResolvedProvider(){return"auto"===this.cameraConfig?.live_provider?this.cameraConfig?.webrtc_card?.entity||this.cameraConfig?.webrtc_card?.url?"webrtc-card":this.cameraConfig?.camera_entity?"ha":this.cameraConfig?.frigate.camera_name?"jsmpeg":m.cameras.live_provider:this.cameraConfig?.live_provider||"image"}_shouldShowImageDuringLoading(){return!!this.cameraConfig?.camera_entity&&!!this.hass&&!!this.liveConfig?.show_image_during_load}disconnectedCallback(){this._isVideoMediaLoaded=!1}_videoMediaShowHandler(){this._isVideoMediaLoaded=!0}willUpdate(e){if(e.has("load")&&(this.load||(this._isVideoMediaLoaded=!1,v(this))),e.has("liveConfig")&&(this.liveConfig?.show_image_during_load&&this._importPromises.push(import("./image-c0a8dc12.js")),this.liveConfig?.zoomable&&this._importPromises.push(import("./zoomer-28db7d93.js"))),e.has("cameraConfig")){const e=this._getResolvedProvider();"jsmpeg"===e?this._importPromises.push(import("./jsmpeg-05cdf58e.js")):"ha"===e?this._importPromises.push(import("./ha-1d1cb9a1.js")):"webrtc-card"===e?this._importPromises.push(import("./webrtc-card-171319e4.js")):"image"===e?this._importPromises.push(import("./image-c0a8dc12.js")):"go2rtc"===e&&this._importPromises.push(import("./index-d3be62c7.js")),k(this,this.cameraConfig?.dimensions?.layout),this.style.aspectRatio=p({ratio:this.cameraConfig?.dimensions?.aspect_ratio})}}async getUpdateComplete(){const e=await super.getUpdateComplete();return await Promise.all(this._importPromises),this._importPromises=[],e}_useZoomIfRequired(e){return this.liveConfig?.zoomable?u` this.cameraConfig?.dimensions?.layout?{pan:this.cameraConfig.dimensions.layout.pan,zoom:this.cameraConfig.dimensions.layout.zoom}:void 0))} + .settings=${this.zoomSettings} + @frigate-card:zoom:zoomed=${()=>this.setControls(!1)} + @frigate-card:zoom:unzoomed=${()=>this.setControls()} + > + ${e} + `:e}render(){if(!(this.load&&this.hass&&this.liveConfig&&this.cameraConfig))return;this.title=this.label,this.ariaLabel=this.label;const e=this._getResolvedProvider(),i=!this._isVideoMediaLoaded&&this._shouldShowImageDuringLoading(),t={hidden:i};if("ha"===e||"image"===e){const e=P(this,this.hass,this.cameraConfig);if(!e)return;if("unavailable"===e.state)return v(this),C({message:`${s("error.live_camera_unavailable")}${this.label?`: ${this.label}`:""}`,type:"info",icon:"mdi:cctv-off",dotdotdot:!0})}return u`${this._useZoomIfRequired(u` + ${i||"image"===e?u` {"image"===e?this._videoMediaShowHandler():i.stopPropagation()}} + > + `:u``} + ${"ha"===e?u` + `:"go2rtc"===e?u` + `:"webrtc-card"===e?u` + `:"jsmpeg"===e?u` + `:u``} + `)} + ${i&&!this._isVideoMediaLoaded?u``:""} `}static get styles(){return M(':host {\n background-color: var(--primary-background-color);\n background-position: center;\n background-repeat: no-repeat;\n background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4yLjIgKGIwYTg0ODY1NDEsIDIwMjItMTItMDEpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJjYW1lcmEtaXJpcy5zdmciCiAgIGlkPSJzdmc0IgogICB2ZXJzaW9uPSIxLjEiCiAgIHZpZXdCb3g9IjAgMCAyNCAyNCIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzOCIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzYiCiAgICAgcGFnZWNvbG9yPSIjYjkzZTNlIgogICAgIGJvcmRlcmNvbG9yPSIjMDAwMDAwIgogICAgIGJvcmRlcm9wYWNpdHk9IjAuMjUiCiAgICAgaW5rc2NhcGU6c2hvd3BhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuNjA3ODQzMTQiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6ZGVza2NvbG9yPSIjZDFkMWQxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp6b29tPSIyNi42MjUwNiIKICAgICBpbmtzY2FwZTpjeD0iLTEuOTM0MjY4IgogICAgIGlua3NjYXBlOmN5PSIxNS42ODA3MTYiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIzODQwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjE1MjciCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjEwODAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjIyNyIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzQiIC8+CiAgPGcKICAgICBpZD0iZzExMTkiCiAgICAgc3R5bGU9ImZpbGwtb3BhY2l0eTowLjA1O2ZpbGw6I2ZmZmZmZiI+CiAgICA8Y2lyY2xlCiAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eTowLjA1O3N0cm9rZS13aWR0aDoxLjM5NzI5IgogICAgICAgaWQ9InBhdGgxNzAiCiAgICAgICBjeD0iMTIiCiAgICAgICBjeT0iMTIiCiAgICAgICBpbmtzY2FwZTpsYWJlbD0iV2hpdGUgQmFja2dyb3VuZCIKICAgICAgIHI9IjExLjI1IiAvPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gMTMuNzMwMDAxLDE1IDkuODMwMDAwMywyMS43NiBDIDEwLjUzLDIxLjkxIDExLjI1LDIyIDEyLDIyIGMgMi40MDAwMDEsMCA0LjYsLTAuODUgNi4zMiwtMi4yNSBMIDE0LjY2MDAwMSwxMy40IE0gMi40NjAwMDAzLDE1IGMgMC45MiwyLjkyIDMuMTUsNS4yNiA1Ljk5LDYuMzQgTCAxMi4xMiwxNSBtIC0zLjU3OTk5OTcsLTMgLTMuOSwtNi43NDk5OTk2IGMgLTEuNjQsMS43NDk5OTkgLTIuNjQsNC4xMzk5OTkzIC0yLjY0LDYuNzQ5OTk5NiAwLDAuNjggMC4wNywxLjM1IDAuMiwyIGggNy40OSBNIDIxLjgsOS45OTk5OTk3IEggMTQuMzEwMDAxIEwgMTQuNjAwMDAxLDEwLjUgMTkuMzYsMTguNzUgQyAyMSwxNi45NyAyMiwxNC42IDIyLDEyIDIyLDExLjMxIDIxLjkzLDEwLjY0IDIxLjgsOS45OTk5OTk3IG0gLTAuMjYsLTEgQyAyMC42Miw2LjA3MDAwMDUgMTguMzksMy43NDAwMDAyIDE1LjU1MDAwMSwyLjY2MDAwMDIgTCAxMS44OCw4Ljk5OTk5OTcgTSA5LjQwMDAwMDMsMTAuNSAxNC4xNzAwMDEsMi4yNDAwMDAyIGMgLTAuNywtMC4xNSAtMS40MjAwMDEsLTAuMjQgLTIuMTcwMDAxLC0wLjI0IC0yLjM5OTk5OTcsMCAtNC41OTk5OTk3LDAuODQgLTYuMzE5OTk5NywyLjI1MDAwMDMgbCAzLjY2LDYuMzQ5OTk5NSB6IgogICAgICAgaWQ9InBhdGgyIgogICAgICAgaW5rc2NhcGU6bGFiZWw9IklyaXMiCiAgICAgICBzdHlsZT0iZmlsbC1vcGFjaXR5OjAuMDU7ZmlsbDojZmZmZmZmIiAvPgogIDwvZz4KPC9zdmc+Cg==");\n background-size: 10%;\n background-position: center;\n}\n\n:host {\n display: block;\n height: 100%;\n width: 100%;\n position: relative;\n}\n\n.hidden {\n display: none;\n}\n\nha-icon {\n position: absolute;\n top: 10px;\n right: 10px;\n color: var(--primary-color);\n}')}};n([d({attribute:!1})],G.prototype,"hass",void 0),n([d({attribute:!1})],G.prototype,"cameraConfig",void 0),n([d({attribute:!1})],G.prototype,"cameraEndpoints",void 0),n([d({attribute:!1})],G.prototype,"liveConfig",void 0),n([d({attribute:!0,type:Boolean})],G.prototype,"load",void 0),n([d({attribute:!1})],G.prototype,"label",void 0),n([d({attribute:!1})],G.prototype,"cardWideConfig",void 0),n([d({attribute:!1})],G.prototype,"microphoneStream",void 0),n([d({attribute:!1})],G.prototype,"zoomSettings",void 0),n([g()],G.prototype,"_isVideoMediaLoaded",void 0),G=n([c("frigate-card-live-provider")],G);const W="frigate-card-live-provider";let U=class extends h{constructor(){super(...arguments),this._cameraToSlide={},this._refPTZControl=l(),this._refCarousel=l(),this._mediaActionsController=new E,this._mediaHasLoaded=!1}connectedCallback(){super.connectedCallback(),this.requestUpdate()}disconnectedCallback(){this._mediaActionsController.destroy(),super.disconnectedCallback()}_getTransitionEffect(){return this.overriddenLiveConfig?.transition_effect??m.live.transition_effect}_getSelectedCameraIndex(){if(this.viewFilterCameraID)return 0;const e=this.cameraManager?.getStore().getCameraIDsWithCapability("live"),i=this.viewManagerEpoch?.manager.getView();return e?.size&&i?Math.max(0,Array.from(e).indexOf(i.camera)):0}willUpdate(e){(e.has("microphoneManager")||e.has("overriddenLiveConfig"))&&this._mediaActionsController.setOptions({playerSelector:W,...this.overriddenLiveConfig?.auto_play&&{autoPlayConditions:this.overriddenLiveConfig.auto_play},...this.overriddenLiveConfig?.auto_pause&&{autoPauseConditions:this.overriddenLiveConfig.auto_pause},...this.overriddenLiveConfig?.auto_mute&&{autoMuteConditions:this.overriddenLiveConfig.auto_mute},...this.overriddenLiveConfig?.auto_unmute&&{autoUnmuteConditions:this.overriddenLiveConfig.auto_unmute},...(this.overriddenLiveConfig?.auto_unmute||this.overriddenLiveConfig?.auto_mute)&&{microphoneManager:this.microphoneManager,microphoneMuteSeconds:this.overriddenLiveConfig.microphone.mute_after_microphone_mute_seconds}})}_getPlugins(){return[N({...this.overriddenLiveConfig?.lazy_load&&{lazyLoadCallback:(e,i)=>this._lazyloadOrUnloadSlide("load",e,i)},lazyUnloadConditions:this.overriddenLiveConfig?.lazy_unload,lazyUnloadCallback:(e,i)=>this._lazyloadOrUnloadSlide("unload",e,i)}),x(),T()]}_getLazyLoadCount(){return!1===this.overriddenLiveConfig?.lazy_load?null:0}_getSlides(){if(!this.cameraManager)return[[],{}];const e=this.viewManagerEpoch?.manager.getView(),i=this.viewFilterCameraID?new Set([this.viewFilterCameraID]):this.cameraManager?.getStore().getCameraIDsWithCapability("live"),t=[],a={};for(const[r,o]of this.cameraManager.getStore().getCameraConfigEntries(i)){const i=this._getSubstreamCameraID(r,e),s=r===i?o:this.cameraManager?.getStore().getCameraConfig(i),n=s?this._renderLive(i,s):null;n&&(a[r]=t.length,t.push(n))}return[t,a]}_setViewHandler(e){const i=this.cameraManager?.getStore().getCameraIDsWithCapability("live");i?.size&&e.detail.index!==this._getSelectedCameraIndex()&&this._setViewCameraID([...i][e.detail.index])}_setViewCameraID(e){e&&this.viewManagerEpoch?.manager.setViewByParametersWithNewQuery({params:{camera:e}})}_lazyloadOrUnloadSlide(e,i,t){t instanceof HTMLSlotElement&&(t=t.assignedElements({flatten:!0})[0]);const a=t?.querySelector(W);a&&(a.load="load"===e)}_renderLive(e,i){if(!(this.overriddenLiveConfig&&this.nonOverriddenLiveConfig&&this.hass&&this.cameraManager&&this.conditionsManagerEpoch))return;let t=null;try{t=w(this.conditionsManagerEpoch.manager,{live:this.nonOverriddenLiveConfig},{configOverrides:this.overrides,stateOverrides:{camera:e},schema:b}).live}catch(e){return y(this,e)}const a=this.cameraManager.getCameraMetadata(e),r=this.viewManagerEpoch?.manager.getView();return u` +
    + this.cameraManager?.getCameraEndpoints(e)??void 0))} + .label=${a?.title??""} + .liveConfig=${t} + .hass=${this.hass} + .cardWideConfig=${this.cardWideConfig} + .zoomSettings=${r?.context?.zoom?.[e]?.requested} + @frigate-card:zoom:change=${i=>L(i,this.viewManagerEpoch?.manager,e)} + > + +
    + `}_getCameraIDsOfNeighbors(){const e=this.cameraManager?[...this.cameraManager?.getStore().getCameraIDsWithCapability("live")]:[],i=this.viewManagerEpoch?.manager.getView();if(this.viewFilterCameraID||e.length<=1||!i||!this.hass)return[null,null];const t=this.viewFilterCameraID??i.camera,a=e.indexOf(t);return a<0?[null,null]:[e[a>0?a-1:e.length-1],e[a+11,[r,o]=this._getCameraIDsOfNeighbors(),s=r?this.cameraManager.getCameraMetadata(this._getSubstreamCameraID(r,e)):null,n=o?this.cameraManager.getCameraMetadata(this._getSubstreamCameraID(o,e)):null,d=!(!this._mediaHasLoaded||this.viewFilterCameraID&&this.viewFilterCameraID!==e.camera||!1===e.context?.ptzControls?.enabled)&&e.context?.ptzControls?.enabled;return u` + {this._mediaHasLoaded=!0}} + @frigate-card:media:unloaded=${()=>{this._mediaHasLoaded=!1}} + > + {this._setViewCameraID(r),A(e)}} + > + + ${i} + {this._setViewCameraID(o),A(e)}} + > + + + + + `}_setMediaTarget(){const e=this.viewManagerEpoch?.manager.getView(),i=this._getSelectedCameraIndex();this.viewFilterCameraID?this._mediaActionsController.setTarget(i,e?.camera===this.viewFilterCameraID):this._mediaActionsController.setTarget(i,!0)}updated(e){super.updated(e);let i=!1;!this._mediaActionsController.hasRoot()&&this._refCarousel.value&&(this._mediaActionsController.initialize(this._refCarousel.value),i=!0),(i||e.has("viewManagerEpoch"))&&this._setMediaTarget()}static get styles(){return M(":host {\n display: block;\n --video-max-height: none;\n}\n\n:host(:not([grid-id])) {\n height: 100%;\n}\n\n:host([unselected]) frigate-card-carousel {\n pointer-events: none;\n}\n\n.embla__slide {\n display: flex;\n justify-content: center;\n height: 100%;\n flex: 0 0 100%;\n}")}};n([d({attribute:!1})],U.prototype,"hass",void 0),n([d({attribute:!1})],U.prototype,"viewManagerEpoch",void 0),n([d({attribute:!1})],U.prototype,"nonOverriddenLiveConfig",void 0),n([d({attribute:!1})],U.prototype,"overriddenLiveConfig",void 0),n([d({attribute:!1,hasChanged:_})],U.prototype,"overrides",void 0),n([d({attribute:!1})],U.prototype,"conditionsManagerEpoch",void 0),n([d({attribute:!1})],U.prototype,"cardWideConfig",void 0),n([d({attribute:!1})],U.prototype,"cameraManager",void 0),n([d({attribute:!1})],U.prototype,"microphoneManager",void 0),n([d({attribute:!1})],U.prototype,"viewFilterCameraID",void 0),n([g()],U.prototype,"_mediaHasLoaded",void 0),U=n([c("frigate-card-live-carousel")],U);let B=class extends h{_renderCarousel(e){const i=this.viewManagerEpoch?.manager.getView(),t=e??i?.camera;return u` + + + `}_gridSelectCamera(e){this.viewManagerEpoch?.manager.setViewByParameters({params:{camera:e}})}_needsGrid(){const e=this.cameraManager?.getStore().getCameraIDsWithCapability("live"),i=this.viewManagerEpoch?.manager.getView();return!!i?.isGrid()&&!!i?.supportsMultipleDisplayModes()&&!!e&&e.size>1}willUpdate(e){e.has("viewManagerEpoch")&&this._needsGrid()&&import("./media-grid-0f7352bc.js")}render(){if(!this.conditionsManagerEpoch||!this.nonOverriddenLiveConfig)return;const e=this.cameraManager?.getStore().getCameraIDsWithCapability("live");return e?.size&&this._needsGrid()?u` + this._gridSelectCamera(e.detail.selected)} + > + ${[...e].map((e=>this._renderCarousel(e)))} + + `:this._renderCarousel()}static get styles(){return M(":host {\n width: 100%;\n height: 100%;\n display: block;\n}\n\n@keyframes warning-pulse {\n 0% {\n border: solid 2px var(--frigate-card-triggered-color-1, rgba(0, 0, 0, 0));\n }\n 50% {\n border: solid 2px var(--frigate-card-triggered-color-2, var(--warning-color));\n }\n 100% {\n border: solid 2px var(--frigate-card-triggered-color-1, rgba(0, 0, 0, 0));\n }\n}\nfrigate-card-live-carousel[triggered] {\n animation: warning-pulse 5s infinite;\n}\n\nfrigate-card-live-carousel[selected] {\n --frigate-card-triggered-color-1: var(--primary-color);\n}")}};n([d({attribute:!1})],B.prototype,"hass",void 0),n([d({attribute:!1})],B.prototype,"viewManagerEpoch",void 0),n([d({attribute:!1})],B.prototype,"nonOverriddenLiveConfig",void 0),n([d({attribute:!1})],B.prototype,"overriddenLiveConfig",void 0),n([d({attribute:!1,hasChanged:_})],B.prototype,"overrides",void 0),n([d({attribute:!1})],B.prototype,"conditionsManagerEpoch",void 0),n([d({attribute:!1})],B.prototype,"cardWideConfig",void 0),n([d({attribute:!1})],B.prototype,"cameraManager",void 0),n([d({attribute:!1})],B.prototype,"microphoneManager",void 0),n([d({attribute:!1})],B.prototype,"triggeredCameraIDs",void 0),B=n([c("frigate-card-live-grid")],B);let V=class extends h{constructor(){super(...arguments),this._controller=new O(this)}shouldUpdate(e){return this._controller.shouldUpdate()}willUpdate(){this._controller.clearMessageReceived()}render(){if(this.hass&&this.nonOverriddenLiveConfig&&this.cameraManager)return u`${Z(this._controller.getRenderEpoch(),u` + + + `)}`}static get styles(){return M(j)}};n([d({attribute:!1})],V.prototype,"conditionsManagerEpoch",void 0),n([d({attribute:!1})],V.prototype,"hass",void 0),n([d({attribute:!1})],V.prototype,"viewManagerEpoch",void 0),n([d({attribute:!1})],V.prototype,"nonOverriddenLiveConfig",void 0),n([d({attribute:!1})],V.prototype,"overriddenLiveConfig",void 0),n([d({attribute:!1,hasChanged:_})],V.prototype,"overrides",void 0),n([d({attribute:!1})],V.prototype,"cameraManager",void 0),n([d({attribute:!1})],V.prototype,"cardWideConfig",void 0),n([d({attribute:!1})],V.prototype,"microphoneManager",void 0),n([d({attribute:!1})],V.prototype,"triggeredCameraIDs",void 0),V=n([c("frigate-card-live")],V);var Y=Object.freeze({__proto__:null,get FrigateCardLive(){return V}});export{P as g,Y as i}; diff --git a/config/www/community/frigate-hass-card/index-9bf80040.js.gz b/config/www/community/frigate-hass-card/index-9bf80040.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..3e1f9c5deb190535f4996502ba6a6f4ff2d04253 GIT binary patch literal 6885 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 fXg_&oe+R-f|63f`->^Ver|this.onconnect())),this.ondisconnect()):(this.ondisconnect(),this.onconnect())}set src(e){"string"!=typeof e&&(e=e.toString()),e.startsWith("http")?e="ws"+e.substring(4):e.startsWith("/")&&(e="ws"+location.origin.substring(4)+e),this.wsURL=e,this.onconnect()}play(){}send(e){this.ws&&this.ws.send(JSON.stringify(e))}codecs(e){return this.CODECS.filter((e=>this.media.indexOf(e.indexOf("vc1")>0?"video":"audio")>=0)).filter((t=>e(`video/mp4; codecs="${t}"`))).join()}connectedCallback(){if(this.disconnectTID&&(clearTimeout(this.disconnectTID),this.disconnectTID=0),this.video){const e=this.video.seekable;e.length>0&&(this.video.currentTime=e.end(e.length-1)),this.play()}else this.oninit();this.onconnect()}disconnectedCallback(){this.background||this.disconnectTID||this.wsState===WebSocket.CLOSED&&this.pcState===WebSocket.CLOSED||(this.disconnectTID=setTimeout((()=>{this.reconnectTID&&(clearTimeout(this.reconnectTID),this.reconnectTID=0),this.disconnectTID=0,this.ondisconnect()}),this.DISCONNECT_TIMEOUT))}oninit(){this.video=document.createElement("video"),u(this.video,this.controls),this.video.playsInline=!0,this.video.preload="auto",this.video.style.display="block",this.video.style.width="100%",this.video.style.height="100%",this.appendChild(this.video),this.video.addEventListener("error",(e=>{this.ws&&this.wsState===WebSocket.OPEN&&this.ws.close()}));const n=window.navigator.userAgent.match(/Version\/(\d+).+Safari/);if(n){const e=n[1]<"13"?"mp4a.40.2":n[1]<"14"?"flac":"opus";this.CODECS.splice(this.CODECS.indexOf(e))}if(!this.background){if("hidden"in document&&this.visibilityCheck&&document.addEventListener("visibilitychange",(()=>{document.hidden?this.disconnectedCallback():this.isConnected&&this.connectedCallback()})),"IntersectionObserver"in window&&this.visibilityThreshold){new IntersectionObserver((e=>{e.forEach((e=>{e.isIntersecting?this.isConnected&&this.connectedCallback():this.disconnectedCallback()}))}),{threshold:this.visibilityThreshold}).observe(this)}this.video.onloadeddata=()=>{this.controls&&v(this.video,y),e(this,this.video,{player:this.containingPlayer,capabilities:{supports2WayAudio:!!this.pc,supportsPause:!0,hasAudio:b(this.video)},technology:w(this)})},this.video.onvolumechange=()=>t(this),this.video.onplay=()=>i(this),this.video.onpause=()=>s(this),this.video.muted=!0}}onconnect(){return!(!this.isConnected||!this.wsURL||this.ws||this.pc)&&(this.wsState=WebSocket.CONNECTING,this.connectTS=Date.now(),this.ws=new WebSocket(this.wsURL),this.ws.binaryType="arraybuffer",this.ws.addEventListener("open",(e=>this.onopen(e))),this.ws.addEventListener("close",(e=>this.onclose(e))),!0)}ondisconnect(){this.wsState=WebSocket.CLOSED,this.ws&&(this.ws.close(),this.ws=null),this.pcState=WebSocket.CLOSED,this.pc&&(this.pc.getSenders().forEach((e=>{e.track&&e.track.stop()})),this.pc.close(),this.pc=null),this.video.src="",this.video.srcObject=null}onopen(){this.wsState=WebSocket.OPEN,this.ws.addEventListener("message",(e=>{if("string"==typeof e.data){const t=JSON.parse(e.data);for(const e in this.onmessage)this.onmessage[e](t)}else this.ondata(e.data)})),this.ondata=null,this.onmessage={};const e=[];return this.mode.indexOf("mse")>=0&&("MediaSource"in window||"ManagedMediaSource"in window)?(e.push("mse"),this.onmse()):this.mode.indexOf("hls")>=0&&this.video.canPlayType("application/vnd.apple.mpegurl")?(e.push("hls"),this.onhls()):this.mode.indexOf("mp4")>=0&&(e.push("mp4"),this.onmp4()),this.mode.indexOf("webrtc")>=0&&"RTCPeerConnection"in window&&(e.push("webrtc"),this.onwebrtc()),this.mode.indexOf("mjpeg")>=0&&(e.length?this.onmessage.mjpeg=t=>{"error"===t.type&&0===t.value.indexOf(e[0])&&this.onmjpeg()}:(e.push("mjpeg"),this.onmjpeg())),e}onclose(){if(this.wsState===WebSocket.CLOSED)return!1;this.wsState=WebSocket.CONNECTING,this.ws=null;const e=Math.max(this.RECONNECT_TIMEOUT-(Date.now()-this.connectTS),0);return this.reconnectTID=setTimeout((()=>{this.reconnectTID=0,this.onconnect()}),e),!0}onmse(){let e;if("ManagedMediaSource"in window){const t=window.ManagedMediaSource;e=new t,e.addEventListener("sourceopen",(()=>{this.send({type:"mse",value:this.codecs(t.isTypeSupported)})}),{once:!0}),this.video.disableRemotePlayback=!0,this.video.srcObject=e}else e=new MediaSource,e.addEventListener("sourceopen",(()=>{URL.revokeObjectURL(this.video.src),this.send({type:"mse",value:this.codecs(MediaSource.isTypeSupported)})}),{once:!0}),this.video.src=URL.createObjectURL(e),this.video.srcObject=null;this.play(),this.mseCodecs="",this.onmessage.mse=t=>{if("mse"!==t.type)return;this.mseCodecs=t.value;const i=e.addSourceBuffer(t.value);i.mode="segments",i.addEventListener("updateend",(()=>{if(!i.updating)try{if(n>0){const e=s.slice(0,n);n=0,i.appendBuffer(e)}else if(i.buffered&&i.buffered.length){const t=i.buffered.end(i.buffered.length-1)-15,s=i.buffered.start(0);t>s&&(i.remove(s,t),e.setLiveSeekableRange(t,t+15))}}catch(e){}}));const s=new Uint8Array(2097152);let n=0;this.ondata=e=>{if(i.updating||n>0){const t=new Uint8Array(e);s.set(t,n),n+=t.byteLength}else try{i.appendBuffer(e)}catch(e){}}}}onwebrtc(){const e=new RTCPeerConnection(this.pcConfig);e.addEventListener("icecandidate",(e=>{if(e.candidate&&this.mode.indexOf("webrtc/tcp")>=0&&"udp"===e.candidate.protocol)return;const t=e.candidate?e.candidate.toJSON().candidate:"";this.send({type:"webrtc/candidate",value:t})})),e.addEventListener("connectionstatechange",(()=>{if("connected"===e.connectionState){const t=e.getTransceivers().filter((e=>"recvonly"===e.currentDirection)).map((e=>e.receiver.track)),i=document.createElement("video");i.addEventListener("loadeddata",(()=>this.onpcvideo(i)),{once:!0}),i.srcObject=new MediaStream(t)}else"failed"!==e.connectionState&&"disconnected"!==e.connectionState||(e.close(),this.pcState=WebSocket.CLOSED,this.pc=null,this.onconnect())})),this.onmessage.webrtc=t=>{switch(t.type){case"webrtc/candidate":if(this.mode.indexOf("webrtc/tcp")>=0&&t.value.indexOf(" udp ")>0)return;e.addIceCandidate({candidate:t.value,sdpMid:"0"}).catch((e=>{console.warn(e)}));break;case"webrtc/answer":e.setRemoteDescription({type:"answer",sdp:t.value}).catch((e=>{console.warn(e)}));break;case"error":if(t.value.indexOf("webrtc/offer")<0)return;e.close()}},this.createOffer(e).then((e=>{this.send({type:"webrtc/offer",value:e.sdp})})),this.pcState=WebSocket.CONNECTING,this.pc=e}async createOffer(e){this.microphoneStream?.getTracks().forEach((t=>{e.addTransceiver(t,{direction:"sendonly"})}));try{if(this.media.indexOf("microphone")>=0){(await navigator.mediaDevices.getUserMedia({audio:!0})).getTracks().forEach((t=>{e.addTransceiver(t,{direction:"sendonly"})}))}}catch(e){console.warn(e)}for(const t of["video","audio"])this.media.indexOf(t)>=0&&e.addTransceiver(t,{direction:"recvonly"});const t=await e.createOffer();return await e.setLocalDescription(t),t}onpcvideo(e){if(this.pc){let t=0,i=0;const s=e.srcObject;s.getVideoTracks().length>0&&(t+=544),s.getAudioTracks().length>0&&(t+=258),this.mseCodecs.indexOf("hvc1.")>=0&&(i+=560),this.mseCodecs.indexOf("avc1.")>=0&&(i+=528),this.mseCodecs.indexOf("mp4a.")>=0&&(i+=257),t>=i?(this.video.srcObject=s,this.play(),this.pcState=WebSocket.OPEN,this.wsState=WebSocket.CLOSED,this.ws&&(this.ws.close(),this.ws=null)):(this.pcState=WebSocket.CLOSED,this.pc&&(this.pc.close(),this.pc=null))}e.srcObject=null}onmjpeg(){let t=!1;this.ondata=i=>{u(this.video,!1),this.video.poster="data:image/jpeg;base64,"+S.btoa(i),t||(t=!0,e(this,this.video,{player:this.containingPlayer,technology:["mjpeg"]}))},this.send({type:"mjpeg"})}onhls(){this.onmessage.hls=e=>{if("hls"!==e.type)return;const t="http"+this.wsURL.substring(2,this.wsURL.indexOf("/ws"))+"/hls/",i=e.value.replace("hls/",t);this.video.src="data:application/vnd.apple.mpegurl;base64,"+btoa(i),this.play()},this.send({type:"hls",value:this.codecs((e=>this.video.canPlayType(e)))})}onmp4(){const t=document.createElement("canvas");let i;const s=document.createElement("video");s.autoplay=!0,s.playsInline=!0,s.muted=!0,s.addEventListener("loadeddata",(n=>{i||(t.width=s.videoWidth,t.height=s.videoHeight,i=t.getContext("2d"),e(this,s,{player:this.containingPlayer,technology:["mp4"]})),i.drawImage(s,0,0,t.width,t.height),u(this.video,!1),this.video.poster=t.toDataURL("image/jpeg")})),this.ondata=e=>{s.src="data:video/mp4;base64,"+S.btoa(e)},this.send({type:"mp4",value:this.codecs(this.video.canPlayType)})}static btoa(e){const t=new Uint8Array(e),i=t.byteLength;let s="";for(let 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.onconnect())),this.ondisconnect()):(this.ondisconnect(),this.onconnect())}set src(e){"string"!=typeof e&&(e=e.toString()),e.startsWith("http")?e="ws"+e.substring(4):e.startsWith("/")&&(e="ws"+location.origin.substring(4)+e),this.wsURL=e,this.onconnect()}play(){}send(e){this.ws&&this.ws.send(JSON.stringify(e))}codecs(e){return this.CODECS.filter((e=>this.media.indexOf(e.indexOf("vc1")>0?"video":"audio")>=0)).filter((t=>e(`video/mp4; codecs="${t}"`))).join()}connectedCallback(){if(this.disconnectTID&&(clearTimeout(this.disconnectTID),this.disconnectTID=0),this.video){const e=this.video.seekable;e.length>0&&(this.video.currentTime=e.end(e.length-1)),this.play()}else this.oninit();this.onconnect()}disconnectedCallback(){this.background||this.disconnectTID||this.wsState===WebSocket.CLOSED&&this.pcState===WebSocket.CLOSED||(this.disconnectTID=setTimeout((()=>{this.reconnectTID&&(clearTimeout(this.reconnectTID),this.reconnectTID=0),this.disconnectTID=0,this.ondisconnect()}),this.DISCONNECT_TIMEOUT))}oninit(){this.video=document.createElement("video"),m(this.video,this.controls),this.video.playsInline=!0,this.video.preload="auto",this.video.style.display="block",this.video.style.width="100%",this.video.style.height="100%",this.appendChild(this.video),this.video.addEventListener("error",(e=>{this.ws&&this.wsState===WebSocket.OPEN&&this.ws.close()}));const n=window.navigator.userAgent.match(/Version\/(\d+).+Safari/);if(n){const e=n[1]<"13"?"mp4a.40.2":n[1]<"14"?"flac":"opus";this.CODECS.splice(this.CODECS.indexOf(e))}if(!this.background){if("hidden"in document&&this.visibilityCheck&&document.addEventListener("visibilitychange",(()=>{document.hidden?this.disconnectedCallback():this.isConnected&&this.connectedCallback()})),"IntersectionObserver"in window&&this.visibilityThreshold){new IntersectionObserver((e=>{e.forEach((e=>{e.isIntersecting?this.isConnected&&this.connectedCallback():this.disconnectedCallback()}))}),{threshold:this.visibilityThreshold}).observe(this)}this.video.onloadeddata=()=>{this.controls&&v(this.video,y),e(this,this.video,{player:this.containingPlayer,capabilities:{supports2WayAudio:!!this.pc,supportsPause:!0,hasAudio:g(this.video)},technology:f(this)})},this.video.onvolumechange=()=>t(this),this.video.onplay=()=>i(this),this.video.onpause=()=>s(this),this.video.muted=!0}}onconnect(){return!(!this.isConnected||!this.wsURL||this.ws||this.pc)&&(this.wsState=WebSocket.CONNECTING,this.connectTS=Date.now(),this.ws=new WebSocket(this.wsURL),this.ws.binaryType="arraybuffer",this.ws.addEventListener("open",(e=>this.onopen(e))),this.ws.addEventListener("close",(e=>this.onclose(e))),!0)}ondisconnect(){this.wsState=WebSocket.CLOSED,this.ws&&(this.ws.close(),this.ws=null),this.pcState=WebSocket.CLOSED,this.pc&&(this.pc.getSenders().forEach((e=>{e.track&&e.track.stop()})),this.pc.close(),this.pc=null),this.video.src="",this.video.srcObject=null}onopen(){this.wsState=WebSocket.OPEN,this.ws.addEventListener("message",(e=>{if("string"==typeof e.data){const t=JSON.parse(e.data);for(const e in this.onmessage)this.onmessage[e](t)}else this.ondata(e.data)})),this.ondata=null,this.onmessage={};const e=[];return this.mode.indexOf("mse")>=0&&("MediaSource"in window||"ManagedMediaSource"in window)?(e.push("mse"),this.onmse()):this.mode.indexOf("hls")>=0&&this.video.canPlayType("application/vnd.apple.mpegurl")?(e.push("hls"),this.onhls()):this.mode.indexOf("mp4")>=0&&(e.push("mp4"),this.onmp4()),this.mode.indexOf("webrtc")>=0&&"RTCPeerConnection"in window&&(e.push("webrtc"),this.onwebrtc()),this.mode.indexOf("mjpeg")>=0&&(e.length?this.onmessage.mjpeg=t=>{"error"===t.type&&0===t.value.indexOf(e[0])&&this.onmjpeg()}:(e.push("mjpeg"),this.onmjpeg())),e}onclose(){if(this.wsState===WebSocket.CLOSED)return!1;this.wsState=WebSocket.CONNECTING,this.ws=null;const e=Math.max(this.RECONNECT_TIMEOUT-(Date.now()-this.connectTS),0);return this.reconnectTID=setTimeout((()=>{this.reconnectTID=0,this.onconnect()}),e),!0}onmse(){let e;if("ManagedMediaSource"in window){const t=window.ManagedMediaSource;e=new t,e.addEventListener("sourceopen",(()=>{this.send({type:"mse",value:this.codecs(t.isTypeSupported)})}),{once:!0}),this.video.disableRemotePlayback=!0,this.video.srcObject=e}else e=new MediaSource,e.addEventListener("sourceopen",(()=>{URL.revokeObjectURL(this.video.src),this.send({type:"mse",value:this.codecs(MediaSource.isTypeSupported)})}),{once:!0}),this.video.src=URL.createObjectURL(e),this.video.srcObject=null;this.play(),this.mseCodecs="",this.onmessage.mse=t=>{if("mse"!==t.type)return;this.mseCodecs=t.value;const i=e.addSourceBuffer(t.value);i.mode="segments",i.addEventListener("updateend",(()=>{if(!i.updating)try{if(n>0){const e=s.slice(0,n);n=0,i.appendBuffer(e)}else if(i.buffered&&i.buffered.length){const t=i.buffered.end(i.buffered.length-1)-15,s=i.buffered.start(0);t>s&&(i.remove(s,t),e.setLiveSeekableRange(t,t+15))}}catch(e){}}));const s=new Uint8Array(2097152);let n=0;this.ondata=e=>{if(i.updating||n>0){const t=new Uint8Array(e);s.set(t,n),n+=t.byteLength}else try{i.appendBuffer(e)}catch(e){}}}}onwebrtc(){const e=new RTCPeerConnection(this.pcConfig);e.addEventListener("icecandidate",(e=>{if(e.candidate&&this.mode.indexOf("webrtc/tcp")>=0&&"udp"===e.candidate.protocol)return;const t=e.candidate?e.candidate.toJSON().candidate:"";this.send({type:"webrtc/candidate",value:t})})),e.addEventListener("connectionstatechange",(()=>{if("connected"===e.connectionState){const t=e.getTransceivers().filter((e=>"recvonly"===e.currentDirection)).map((e=>e.receiver.track)),i=document.createElement("video");i.addEventListener("loadeddata",(()=>this.onpcvideo(i)),{once:!0}),i.srcObject=new MediaStream(t)}else"failed"!==e.connectionState&&"disconnected"!==e.connectionState||(e.close(),this.pcState=WebSocket.CLOSED,this.pc=null,this.onconnect())})),this.onmessage.webrtc=t=>{switch(t.type){case"webrtc/candidate":if(this.mode.indexOf("webrtc/tcp")>=0&&t.value.indexOf(" udp ")>0)return;e.addIceCandidate({candidate:t.value,sdpMid:"0"}).catch((e=>{console.warn(e)}));break;case"webrtc/answer":e.setRemoteDescription({type:"answer",sdp:t.value}).catch((e=>{console.warn(e)}));break;case"error":if(t.value.indexOf("webrtc/offer")<0)return;e.close()}},this.createOffer(e).then((e=>{this.send({type:"webrtc/offer",value:e.sdp})})),this.pcState=WebSocket.CONNECTING,this.pc=e}async createOffer(e){this.microphoneStream?.getTracks().forEach((t=>{e.addTransceiver(t,{direction:"sendonly"})}));try{if(this.media.indexOf("microphone")>=0){(await navigator.mediaDevices.getUserMedia({audio:!0})).getTracks().forEach((t=>{e.addTransceiver(t,{direction:"sendonly"})}))}}catch(e){console.warn(e)}for(const t of["video","audio"])this.media.indexOf(t)>=0&&e.addTransceiver(t,{direction:"recvonly"});const t=await e.createOffer();return await e.setLocalDescription(t),t}onpcvideo(e){if(this.pc){let t=0,i=0;const s=e.srcObject;s.getVideoTracks().length>0&&(t+=544),s.getAudioTracks().length>0&&(t+=258),this.mseCodecs.indexOf("hvc1.")>=0&&(i+=560),this.mseCodecs.indexOf("avc1.")>=0&&(i+=528),this.mseCodecs.indexOf("mp4a.")>=0&&(i+=257),t>=i?(this.video.srcObject=s,this.play(),this.pcState=WebSocket.OPEN,this.wsState=WebSocket.CLOSED,this.ws&&(this.ws.close(),this.ws=null)):(this.pcState=WebSocket.CLOSED,this.pc&&(this.pc.close(),this.pc=null))}e.srcObject=null}onmjpeg(){let t=!1;this.ondata=i=>{m(this.video,!1),this.video.poster="data:image/jpeg;base64,"+b.btoa(i),t||(t=!0,e(this,this.video,{player:this.containingPlayer,technology:["mjpeg"]}))},this.send({type:"mjpeg"})}onhls(){this.onmessage.hls=e=>{if("hls"!==e.type)return;const t="http"+this.wsURL.substring(2,this.wsURL.indexOf("/ws"))+"/hls/",i=e.value.replace("hls/",t);this.video.src="data:application/vnd.apple.mpegurl;base64,"+btoa(i),this.play()},this.send({type:"hls",value:this.codecs((e=>this.video.canPlayType(e)))})}onmp4(){const t=document.createElement("canvas");let i;const s=document.createElement("video");s.autoplay=!0,s.playsInline=!0,s.muted=!0,s.addEventListener("loadeddata",(n=>{i||(t.width=s.videoWidth,t.height=s.videoHeight,i=t.getContext("2d"),e(this,s,{player:this.containingPlayer,technology:["mp4"]})),i.drawImage(s,0,0,t.width,t.height),m(this.video,!1),this.video.poster=t.toDataURL("image/jpeg")})),this.ondata=e=>{s.src="data:video/mp4;base64,"+b.btoa(e)},this.send({type:"mp4",value:this.codecs(this.video.canPlayType)})}static btoa(e){const t=new Uint8Array(e),i=t.byteLength;let s="";for(let e=0;ed}Lv=z$Xvm|H3B;Q+&js>Xe5$K9cYo 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 zthis.onconnect())),this.ondisconnect()):(this.ondisconnect(),this.onconnect())}set src(e){"string"!=typeof e&&(e=e.toString()),e.startsWith("http")?e="ws"+e.substring(4):e.startsWith("/")&&(e="ws"+location.origin.substring(4)+e),this.wsURL=e,this.onconnect()}play(){}send(e){this.ws&&this.ws.send(JSON.stringify(e))}codecs(e){return this.CODECS.filter((e=>this.media.indexOf(e.indexOf("vc1")>0?"video":"audio")>=0)).filter((t=>e(`video/mp4; codecs="${t}"`))).join()}connectedCallback(){if(this.disconnectTID&&(clearTimeout(this.disconnectTID),this.disconnectTID=0),this.video){const e=this.video.seekable;e.length>0&&(this.video.currentTime=e.end(e.length-1)),this.play()}else this.oninit();this.onconnect()}disconnectedCallback(){this.background||this.disconnectTID||this.wsState===WebSocket.CLOSED&&this.pcState===WebSocket.CLOSED||(this.disconnectTID=setTimeout((()=>{this.reconnectTID&&(clearTimeout(this.reconnectTID),this.reconnectTID=0),this.disconnectTID=0,this.ondisconnect()}),this.DISCONNECT_TIMEOUT))}oninit(){this.video=document.createElement("video"),m(this.video,this.controls),this.video.playsInline=!0,this.video.preload="auto",this.video.style.display="block",this.video.style.width="100%",this.video.style.height="100%",this.appendChild(this.video),this.video.addEventListener("error",(e=>{this.ws&&this.wsState===WebSocket.OPEN&&this.ws.close()}));const n=window.navigator.userAgent.match(/Version\/(\d+).+Safari/);if(n){const e=n[1]<"13"?"mp4a.40.2":n[1]<"14"?"flac":"opus";this.CODECS.splice(this.CODECS.indexOf(e))}if(!this.background){if("hidden"in document&&this.visibilityCheck&&document.addEventListener("visibilitychange",(()=>{document.hidden?this.disconnectedCallback():this.isConnected&&this.connectedCallback()})),"IntersectionObserver"in window&&this.visibilityThreshold){new IntersectionObserver((e=>{e.forEach((e=>{e.isIntersecting?this.isConnected&&this.connectedCallback():this.disconnectedCallback()}))}),{threshold:this.visibilityThreshold}).observe(this)}this.video.onloadeddata=()=>{this.controls&&v(this.video,y),e(this,this.video,{player:this.containingPlayer,capabilities:{supports2WayAudio:!!this.pc,supportsPause:!0,hasAudio:g(this.video)},technology:f(this)})},this.video.onvolumechange=()=>t(this),this.video.onplay=()=>i(this),this.video.onpause=()=>s(this),this.video.muted=!0}}onconnect(){return!(!this.isConnected||!this.wsURL||this.ws||this.pc)&&(this.wsState=WebSocket.CONNECTING,this.connectTS=Date.now(),this.ws=new WebSocket(this.wsURL),this.ws.binaryType="arraybuffer",this.ws.addEventListener("open",(e=>this.onopen(e))),this.ws.addEventListener("close",(e=>this.onclose(e))),!0)}ondisconnect(){this.wsState=WebSocket.CLOSED,this.ws&&(this.ws.close(),this.ws=null),this.pcState=WebSocket.CLOSED,this.pc&&(this.pc.getSenders().forEach((e=>{e.track&&e.track.stop()})),this.pc.close(),this.pc=null),this.video.src="",this.video.srcObject=null}onopen(){this.wsState=WebSocket.OPEN,this.ws.addEventListener("message",(e=>{if("string"==typeof e.data){const t=JSON.parse(e.data);for(const e in this.onmessage)this.onmessage[e](t)}else this.ondata(e.data)})),this.ondata=null,this.onmessage={};const e=[];return this.mode.indexOf("mse")>=0&&("MediaSource"in window||"ManagedMediaSource"in window)?(e.push("mse"),this.onmse()):this.mode.indexOf("hls")>=0&&this.video.canPlayType("application/vnd.apple.mpegurl")?(e.push("hls"),this.onhls()):this.mode.indexOf("mp4")>=0&&(e.push("mp4"),this.onmp4()),this.mode.indexOf("webrtc")>=0&&"RTCPeerConnection"in window&&(e.push("webrtc"),this.onwebrtc()),this.mode.indexOf("mjpeg")>=0&&(e.length?this.onmessage.mjpeg=t=>{"error"===t.type&&0===t.value.indexOf(e[0])&&this.onmjpeg()}:(e.push("mjpeg"),this.onmjpeg())),e}onclose(){if(this.wsState===WebSocket.CLOSED)return!1;this.wsState=WebSocket.CONNECTING,this.ws=null;const e=Math.max(this.RECONNECT_TIMEOUT-(Date.now()-this.connectTS),0);return this.reconnectTID=setTimeout((()=>{this.reconnectTID=0,this.onconnect()}),e),!0}onmse(){let e;if("ManagedMediaSource"in window){const t=window.ManagedMediaSource;e=new t,e.addEventListener("sourceopen",(()=>{this.send({type:"mse",value:this.codecs(t.isTypeSupported)})}),{once:!0}),this.video.disableRemotePlayback=!0,this.video.srcObject=e}else e=new MediaSource,e.addEventListener("sourceopen",(()=>{URL.revokeObjectURL(this.video.src),this.send({type:"mse",value:this.codecs(MediaSource.isTypeSupported)})}),{once:!0}),this.video.src=URL.createObjectURL(e),this.video.srcObject=null;this.play(),this.mseCodecs="",this.onmessage.mse=t=>{if("mse"!==t.type)return;this.mseCodecs=t.value;const i=e.addSourceBuffer(t.value);i.mode="segments",i.addEventListener("updateend",(()=>{if(!i.updating)try{if(n>0){const e=s.slice(0,n);n=0,i.appendBuffer(e)}else if(i.buffered&&i.buffered.length){const t=i.buffered.end(i.buffered.length-1)-15,s=i.buffered.start(0);t>s&&(i.remove(s,t),e.setLiveSeekableRange(t,t+15))}}catch(e){}}));const s=new Uint8Array(2097152);let n=0;this.ondata=e=>{if(i.updating||n>0){const t=new Uint8Array(e);s.set(t,n),n+=t.byteLength}else try{i.appendBuffer(e)}catch(e){}}}}onwebrtc(){const e=new RTCPeerConnection(this.pcConfig);e.addEventListener("icecandidate",(e=>{if(e.candidate&&this.mode.indexOf("webrtc/tcp")>=0&&"udp"===e.candidate.protocol)return;const t=e.candidate?e.candidate.toJSON().candidate:"";this.send({type:"webrtc/candidate",value:t})})),e.addEventListener("connectionstatechange",(()=>{if("connected"===e.connectionState){const t=e.getTransceivers().filter((e=>"recvonly"===e.currentDirection)).map((e=>e.receiver.track)),i=document.createElement("video");i.addEventListener("loadeddata",(()=>this.onpcvideo(i)),{once:!0}),i.srcObject=new MediaStream(t)}else"failed"!==e.connectionState&&"disconnected"!==e.connectionState||(e.close(),this.pcState=WebSocket.CLOSED,this.pc=null,this.onconnect())})),this.onmessage.webrtc=t=>{switch(t.type){case"webrtc/candidate":if(this.mode.indexOf("webrtc/tcp")>=0&&t.value.indexOf(" udp ")>0)return;e.addIceCandidate({candidate:t.value,sdpMid:"0"}).catch((e=>{console.warn(e)}));break;case"webrtc/answer":e.setRemoteDescription({type:"answer",sdp:t.value}).catch((e=>{console.warn(e)}));break;case"error":if(t.value.indexOf("webrtc/offer")<0)return;e.close()}},this.createOffer(e).then((e=>{this.send({type:"webrtc/offer",value:e.sdp})})),this.pcState=WebSocket.CONNECTING,this.pc=e}async createOffer(e){this.microphoneStream?.getTracks().forEach((t=>{e.addTransceiver(t,{direction:"sendonly"})}));try{if(this.media.indexOf("microphone")>=0){(await navigator.mediaDevices.getUserMedia({audio:!0})).getTracks().forEach((t=>{e.addTransceiver(t,{direction:"sendonly"})}))}}catch(e){console.warn(e)}for(const t of["video","audio"])this.media.indexOf(t)>=0&&e.addTransceiver(t,{direction:"recvonly"});const t=await e.createOffer();return await e.setLocalDescription(t),t}onpcvideo(e){if(this.pc){let t=0,i=0;const s=e.srcObject;s.getVideoTracks().length>0&&(t+=544),s.getAudioTracks().length>0&&(t+=258),this.mseCodecs.indexOf("hvc1.")>=0&&(i+=560),this.mseCodecs.indexOf("avc1.")>=0&&(i+=528),this.mseCodecs.indexOf("mp4a.")>=0&&(i+=257),t>=i?(this.video.srcObject=s,this.play(),this.pcState=WebSocket.OPEN,this.wsState=WebSocket.CLOSED,this.ws&&(this.ws.close(),this.ws=null)):(this.pcState=WebSocket.CLOSED,this.pc&&(this.pc.close(),this.pc=null))}e.srcObject=null}onmjpeg(){let t=!1;this.ondata=i=>{m(this.video,!1),this.video.poster="data:image/jpeg;base64,"+b.btoa(i),t||(t=!0,e(this,this.video,{player:this.containingPlayer,technology:["mjpeg"]}))},this.send({type:"mjpeg"})}onhls(){this.onmessage.hls=e=>{if("hls"!==e.type)return;const t="http"+this.wsURL.substring(2,this.wsURL.indexOf("/ws"))+"/hls/",i=e.value.replace("hls/",t);this.video.src="data:application/vnd.apple.mpegurl;base64,"+btoa(i),this.play()},this.send({type:"hls",value:this.codecs((e=>this.video.canPlayType(e)))})}onmp4(){const t=document.createElement("canvas");let i;const s=document.createElement("video");s.autoplay=!0,s.playsInline=!0,s.muted=!0,s.addEventListener("loadeddata",(n=>{i||(t.width=s.videoWidth,t.height=s.videoHeight,i=t.getContext("2d"),e(this,s,{player:this.containingPlayer,technology:["mp4"]})),i.drawImage(s,0,0,t.width,t.height),m(this.video,!1),this.video.poster=t.toDataURL("image/jpeg")})),this.ondata=e=>{s.src="data:video/mp4;base64,"+b.btoa(e)},this.send({type:"mp4",value:this.codecs(this.video.canPlayType)})}static btoa(e){const t=new Uint8Array(e),i=t.byteLength;let s="";for(let e=0;e%0U1XV} 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 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/index-e610f971.js b/config/www/community/frigate-hass-card/index-e610f971.js new file mode 100644 index 00000000..37e75546 --- /dev/null +++ b/config/www/community/frigate-hass-card/index-e610f971.js @@ -0,0 +1,162 @@ +import{cL as e,cM as i,cN as t,cO as a,cP as r,cQ as o,l as s,_ as n,n as d,b as g,t as c,a as h,cR as l,cI as m,cS as v,cT as p,x as u,cU as C,cV as f,e as I,r as M,cW as _,cX as w,cY as b,cZ as y,c_ as L,c$ as A,d0 as D,d1 as $,d2 as j}from"./card-09c4bade.js";import{p as z,u as k,i as S,M as E,A as N,a as x,b as T}from"./media-aef44451.js"; +/** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const Z=e(class extends i{constructor(){super(...arguments),this.key=t}render(e,i){return this.key=e,i}update(e,[i,t]){return i!==this.key&&(a(e),this.key=i),t}});class O{constructor(e){this._inBackground=!1,this._messageReceived=!1,this._lastMediaLoadedInfo=null,this._renderEpoch=0,this._handleMessage=e=>{this._messageReceived=!0,this._inBackground&&(e.stopPropagation(),this._renderEpoch++)},this._handleMediaLoaded=e=>{this._lastMediaLoadedInfo={source:e.composedPath()[0],mediaLoadedInfo:e.detail},this._inBackground&&e.stopPropagation()},this._host=e,e.addController(this),this._intersectionObserver=new IntersectionObserver(this._intersectionHandler.bind(this))}shouldUpdate(){return!(this._inBackground&&this._messageReceived)}hostConnected(){this._intersectionObserver.observe(this._host),this._host.addEventListener("frigate-card:media:loaded",this._handleMediaLoaded),this._host.addEventListener("frigate-card:message",this._handleMessage)}hostDisconnected(){this._intersectionObserver.disconnect(),this._host.removeEventListener("frigate-card:media:loaded",this._handleMediaLoaded),this._host.removeEventListener("frigate-card:message",this._handleMessage)}clearMessageReceived(){this._messageReceived=!1}isInBackground(){return this._inBackground}getRenderEpoch(){return this._renderEpoch}_intersectionHandler(e){const i=this._inBackground;this._inBackground=!e.some((e=>e.isIntersecting)),this._inBackground||this._messageReceived||!this._lastMediaLoadedInfo||r(this._lastMediaLoadedInfo.source,this._lastMediaLoadedInfo.mediaLoadedInfo),i!==this._inBackground&&this._host.requestUpdate()}}const P=(e,i,t)=>{if(!t?.camera_entity)return o(e,s("error.no_live_camera"),{context:t}),null;const a=i.states[t.camera_entity];return a||(o(e,s("error.live_camera_not_found"),{context:t}),null)};let G=class extends h{constructor(){super(...arguments),this.load=!1,this.label="",this._isVideoMediaLoaded=!1,this._refProvider=l(),this._importPromises=[]}async play(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await z(this,this._refProvider.value)}async pause(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.pause())}async mute(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.mute())}async unmute(){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.unmute())}isMuted(){return this._refProvider.value?.isMuted()??!0}async seek(e){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.seek(e))}async setControls(e){await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.setControls(e))}isPaused(){return this._refProvider.value?.isPaused()??!0}async getScreenshotURL(){return await this.updateComplete,await(this._refProvider.value?.updateComplete),await(this._refProvider.value?.getScreenshotURL())??null}_getResolvedProvider(){return"auto"===this.cameraConfig?.live_provider?this.cameraConfig?.webrtc_card?.entity||this.cameraConfig?.webrtc_card?.url?"webrtc-card":this.cameraConfig?.camera_entity?"ha":this.cameraConfig?.frigate.camera_name?"jsmpeg":m.cameras.live_provider:this.cameraConfig?.live_provider||"image"}_shouldShowImageDuringLoading(){return!!this.cameraConfig?.camera_entity&&!!this.hass&&!!this.liveConfig?.show_image_during_load}disconnectedCallback(){this._isVideoMediaLoaded=!1}_videoMediaShowHandler(){this._isVideoMediaLoaded=!0}willUpdate(e){if(e.has("load")&&(this.load||(this._isVideoMediaLoaded=!1,v(this))),e.has("liveConfig")&&(this.liveConfig?.show_image_during_load&&this._importPromises.push(import("./image-cdeb2c7e.js")),this.liveConfig?.zoomable&&this._importPromises.push(import("./zoomer-37e20bdd.js"))),e.has("cameraConfig")){const e=this._getResolvedProvider();"jsmpeg"===e?this._importPromises.push(import("./jsmpeg-fd152ef0.js")):"ha"===e?this._importPromises.push(import("./ha-a4f2c69e.js")):"webrtc-card"===e?this._importPromises.push(import("./webrtc-card-a9018c5e.js")):"image"===e?this._importPromises.push(import("./image-cdeb2c7e.js")):"go2rtc"===e&&this._importPromises.push(import("./index-e0b66e9f.js")),k(this,this.cameraConfig?.dimensions?.layout),this.style.aspectRatio=p({ratio:this.cameraConfig?.dimensions?.aspect_ratio})}}async getUpdateComplete(){const e=await super.getUpdateComplete();return await Promise.all(this._importPromises),this._importPromises=[],e}_useZoomIfRequired(e){return this.liveConfig?.zoomable?u` this.cameraConfig?.dimensions?.layout?{pan:this.cameraConfig.dimensions.layout.pan,zoom:this.cameraConfig.dimensions.layout.zoom}:void 0))} + .settings=${this.zoomSettings} + @frigate-card:zoom:zoomed=${()=>this.setControls(!1)} + @frigate-card:zoom:unzoomed=${()=>this.setControls()} + > + ${e} + `:e}render(){if(!(this.load&&this.hass&&this.liveConfig&&this.cameraConfig))return;this.title=this.label,this.ariaLabel=this.label;const e=this._getResolvedProvider(),i=!this._isVideoMediaLoaded&&this._shouldShowImageDuringLoading(),t={hidden:i};if("ha"===e||"image"===e){const e=P(this,this.hass,this.cameraConfig);if(!e)return;if("unavailable"===e.state)return v(this),C({message:`${s("error.live_camera_unavailable")}${this.label?`: ${this.label}`:""}`,type:"info",icon:"mdi:cctv-off",dotdotdot:!0})}return u`${this._useZoomIfRequired(u` + ${i||"image"===e?u` {"image"===e?this._videoMediaShowHandler():i.stopPropagation()}} + > + `:u``} + ${"ha"===e?u` + `:"go2rtc"===e?u` + `:"webrtc-card"===e?u` + `:"jsmpeg"===e?u` + `:u``} + `)} + ${i&&!this._isVideoMediaLoaded?u``:""} `}static get styles(){return M(':host {\n background-color: var(--primary-background-color);\n background-position: center;\n background-repeat: no-repeat;\n background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4yLjIgKGIwYTg0ODY1NDEsIDIwMjItMTItMDEpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJjYW1lcmEtaXJpcy5zdmciCiAgIGlkPSJzdmc0IgogICB2ZXJzaW9uPSIxLjEiCiAgIHZpZXdCb3g9IjAgMCAyNCAyNCIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzOCIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzYiCiAgICAgcGFnZWNvbG9yPSIjYjkzZTNlIgogICAgIGJvcmRlcmNvbG9yPSIjMDAwMDAwIgogICAgIGJvcmRlcm9wYWNpdHk9IjAuMjUiCiAgICAgaW5rc2NhcGU6c2hvd3BhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuNjA3ODQzMTQiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6ZGVza2NvbG9yPSIjZDFkMWQxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp6b29tPSIyNi42MjUwNiIKICAgICBpbmtzY2FwZTpjeD0iLTEuOTM0MjY4IgogICAgIGlua3NjYXBlOmN5PSIxNS42ODA3MTYiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIzODQwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjE1MjciCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjEwODAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjIyNyIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzQiIC8+CiAgPGcKICAgICBpZD0iZzExMTkiCiAgICAgc3R5bGU9ImZpbGwtb3BhY2l0eTowLjA1O2ZpbGw6I2ZmZmZmZiI+CiAgICA8Y2lyY2xlCiAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eTowLjA1O3N0cm9rZS13aWR0aDoxLjM5NzI5IgogICAgICAgaWQ9InBhdGgxNzAiCiAgICAgICBjeD0iMTIiCiAgICAgICBjeT0iMTIiCiAgICAgICBpbmtzY2FwZTpsYWJlbD0iV2hpdGUgQmFja2dyb3VuZCIKICAgICAgIHI9IjExLjI1IiAvPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gMTMuNzMwMDAxLDE1IDkuODMwMDAwMywyMS43NiBDIDEwLjUzLDIxLjkxIDExLjI1LDIyIDEyLDIyIGMgMi40MDAwMDEsMCA0LjYsLTAuODUgNi4zMiwtMi4yNSBMIDE0LjY2MDAwMSwxMy40IE0gMi40NjAwMDAzLDE1IGMgMC45MiwyLjkyIDMuMTUsNS4yNiA1Ljk5LDYuMzQgTCAxMi4xMiwxNSBtIC0zLjU3OTk5OTcsLTMgLTMuOSwtNi43NDk5OTk2IGMgLTEuNjQsMS43NDk5OTkgLTIuNjQsNC4xMzk5OTkzIC0yLjY0LDYuNzQ5OTk5NiAwLDAuNjggMC4wNywxLjM1IDAuMiwyIGggNy40OSBNIDIxLjgsOS45OTk5OTk3IEggMTQuMzEwMDAxIEwgMTQuNjAwMDAxLDEwLjUgMTkuMzYsMTguNzUgQyAyMSwxNi45NyAyMiwxNC42IDIyLDEyIDIyLDExLjMxIDIxLjkzLDEwLjY0IDIxLjgsOS45OTk5OTk3IG0gLTAuMjYsLTEgQyAyMC42Miw2LjA3MDAwMDUgMTguMzksMy43NDAwMDAyIDE1LjU1MDAwMSwyLjY2MDAwMDIgTCAxMS44OCw4Ljk5OTk5OTcgTSA5LjQwMDAwMDMsMTAuNSAxNC4xNzAwMDEsMi4yNDAwMDAyIGMgLTAuNywtMC4xNSAtMS40MjAwMDEsLTAuMjQgLTIuMTcwMDAxLC0wLjI0IC0yLjM5OTk5OTcsMCAtNC41OTk5OTk3LDAuODQgLTYuMzE5OTk5NywyLjI1MDAwMDMgbCAzLjY2LDYuMzQ5OTk5NSB6IgogICAgICAgaWQ9InBhdGgyIgogICAgICAgaW5rc2NhcGU6bGFiZWw9IklyaXMiCiAgICAgICBzdHlsZT0iZmlsbC1vcGFjaXR5OjAuMDU7ZmlsbDojZmZmZmZmIiAvPgogIDwvZz4KPC9zdmc+Cg==");\n background-size: 10%;\n background-position: center;\n}\n\n:host {\n display: block;\n height: 100%;\n width: 100%;\n position: relative;\n}\n\n.hidden {\n display: none;\n}\n\nha-icon {\n position: absolute;\n top: 10px;\n right: 10px;\n color: var(--primary-color);\n}')}};n([d({attribute:!1})],G.prototype,"hass",void 0),n([d({attribute:!1})],G.prototype,"cameraConfig",void 0),n([d({attribute:!1})],G.prototype,"cameraEndpoints",void 0),n([d({attribute:!1})],G.prototype,"liveConfig",void 0),n([d({attribute:!0,type:Boolean})],G.prototype,"load",void 0),n([d({attribute:!1})],G.prototype,"label",void 0),n([d({attribute:!1})],G.prototype,"cardWideConfig",void 0),n([d({attribute:!1})],G.prototype,"microphoneStream",void 0),n([d({attribute:!1})],G.prototype,"zoomSettings",void 0),n([g()],G.prototype,"_isVideoMediaLoaded",void 0),G=n([c("frigate-card-live-provider")],G);const W="frigate-card-live-provider";let U=class extends h{constructor(){super(...arguments),this._cameraToSlide={},this._refPTZControl=l(),this._refCarousel=l(),this._mediaActionsController=new E,this._mediaHasLoaded=!1}connectedCallback(){super.connectedCallback(),this.requestUpdate()}disconnectedCallback(){this._mediaActionsController.destroy(),super.disconnectedCallback()}_getTransitionEffect(){return this.overriddenLiveConfig?.transition_effect??m.live.transition_effect}_getSelectedCameraIndex(){if(this.viewFilterCameraID)return 0;const e=this.cameraManager?.getStore().getCameraIDsWithCapability("live"),i=this.viewManagerEpoch?.manager.getView();return e?.size&&i?Math.max(0,Array.from(e).indexOf(i.camera)):0}willUpdate(e){(e.has("microphoneManager")||e.has("overriddenLiveConfig"))&&this._mediaActionsController.setOptions({playerSelector:W,...this.overriddenLiveConfig?.auto_play&&{autoPlayConditions:this.overriddenLiveConfig.auto_play},...this.overriddenLiveConfig?.auto_pause&&{autoPauseConditions:this.overriddenLiveConfig.auto_pause},...this.overriddenLiveConfig?.auto_mute&&{autoMuteConditions:this.overriddenLiveConfig.auto_mute},...this.overriddenLiveConfig?.auto_unmute&&{autoUnmuteConditions:this.overriddenLiveConfig.auto_unmute},...(this.overriddenLiveConfig?.auto_unmute||this.overriddenLiveConfig?.auto_mute)&&{microphoneManager:this.microphoneManager,microphoneMuteSeconds:this.overriddenLiveConfig.microphone.mute_after_microphone_mute_seconds}})}_getPlugins(){return[N({...this.overriddenLiveConfig?.lazy_load&&{lazyLoadCallback:(e,i)=>this._lazyloadOrUnloadSlide("load",e,i)},lazyUnloadConditions:this.overriddenLiveConfig?.lazy_unload,lazyUnloadCallback:(e,i)=>this._lazyloadOrUnloadSlide("unload",e,i)}),x(),T()]}_getLazyLoadCount(){return!1===this.overriddenLiveConfig?.lazy_load?null:0}_getSlides(){if(!this.cameraManager)return[[],{}];const e=this.viewManagerEpoch?.manager.getView(),i=this.viewFilterCameraID?new Set([this.viewFilterCameraID]):this.cameraManager?.getStore().getCameraIDsWithCapability("live"),t=[],a={};for(const[r,o]of this.cameraManager.getStore().getCameraConfigEntries(i)){const i=this._getSubstreamCameraID(r,e),s=r===i?o:this.cameraManager?.getStore().getCameraConfig(i),n=s?this._renderLive(i,s):null;n&&(a[r]=t.length,t.push(n))}return[t,a]}_setViewHandler(e){const i=this.cameraManager?.getStore().getCameraIDsWithCapability("live");i?.size&&e.detail.index!==this._getSelectedCameraIndex()&&this._setViewCameraID([...i][e.detail.index])}_setViewCameraID(e){e&&this.viewManagerEpoch?.manager.setViewByParametersWithNewQuery({params:{camera:e}})}_lazyloadOrUnloadSlide(e,i,t){t instanceof HTMLSlotElement&&(t=t.assignedElements({flatten:!0})[0]);const a=t?.querySelector(W);a&&(a.load="load"===e)}_renderLive(e,i){if(!(this.overriddenLiveConfig&&this.nonOverriddenLiveConfig&&this.hass&&this.cameraManager&&this.conditionsManagerEpoch))return;let t=null;try{t=w(this.conditionsManagerEpoch.manager,{live:this.nonOverriddenLiveConfig},{configOverrides:this.overrides,stateOverrides:{camera:e},schema:b}).live}catch(e){return y(this,e)}const a=this.cameraManager.getCameraMetadata(e),r=this.viewManagerEpoch?.manager.getView();return u` +
    + this.cameraManager?.getCameraEndpoints(e)??void 0))} + .label=${a?.title??""} + .liveConfig=${t} + .hass=${this.hass} + .cardWideConfig=${this.cardWideConfig} + .zoomSettings=${r?.context?.zoom?.[e]?.requested} + @frigate-card:zoom:change=${i=>L(i,this.viewManagerEpoch?.manager,e)} + > + +
    + `}_getCameraIDsOfNeighbors(){const e=this.cameraManager?[...this.cameraManager?.getStore().getCameraIDsWithCapability("live")]:[],i=this.viewManagerEpoch?.manager.getView();if(this.viewFilterCameraID||e.length<=1||!i||!this.hass)return[null,null];const t=this.viewFilterCameraID??i.camera,a=e.indexOf(t);return a<0?[null,null]:[e[a>0?a-1:e.length-1],e[a+11,[r,o]=this._getCameraIDsOfNeighbors(),s=r?this.cameraManager.getCameraMetadata(this._getSubstreamCameraID(r,e)):null,n=o?this.cameraManager.getCameraMetadata(this._getSubstreamCameraID(o,e)):null,d=!(!this._mediaHasLoaded||this.viewFilterCameraID&&this.viewFilterCameraID!==e.camera||!1===e.context?.ptzControls?.enabled)&&e.context?.ptzControls?.enabled;return u` + {this._mediaHasLoaded=!0}} + @frigate-card:media:unloaded=${()=>{this._mediaHasLoaded=!1}} + > + {this._setViewCameraID(r),A(e)}} + > + + ${i} + {this._setViewCameraID(o),A(e)}} + > + + + + + `}_setMediaTarget(){const e=this.viewManagerEpoch?.manager.getView(),i=this._getSelectedCameraIndex();this.viewFilterCameraID?this._mediaActionsController.setTarget(i,e?.camera===this.viewFilterCameraID):this._mediaActionsController.setTarget(i,!0)}updated(e){super.updated(e);let i=!1;!this._mediaActionsController.hasRoot()&&this._refCarousel.value&&(this._mediaActionsController.initialize(this._refCarousel.value),i=!0),(i||e.has("viewManagerEpoch"))&&this._setMediaTarget()}static get styles(){return M(":host {\n display: block;\n --video-max-height: none;\n}\n\n:host(:not([grid-id])) {\n height: 100%;\n}\n\n:host([unselected]) frigate-card-carousel {\n pointer-events: none;\n}\n\n.embla__slide {\n display: flex;\n justify-content: center;\n height: 100%;\n flex: 0 0 100%;\n}")}};n([d({attribute:!1})],U.prototype,"hass",void 0),n([d({attribute:!1})],U.prototype,"viewManagerEpoch",void 0),n([d({attribute:!1})],U.prototype,"nonOverriddenLiveConfig",void 0),n([d({attribute:!1})],U.prototype,"overriddenLiveConfig",void 0),n([d({attribute:!1,hasChanged:_})],U.prototype,"overrides",void 0),n([d({attribute:!1})],U.prototype,"conditionsManagerEpoch",void 0),n([d({attribute:!1})],U.prototype,"cardWideConfig",void 0),n([d({attribute:!1})],U.prototype,"cameraManager",void 0),n([d({attribute:!1})],U.prototype,"microphoneManager",void 0),n([d({attribute:!1})],U.prototype,"viewFilterCameraID",void 0),n([g()],U.prototype,"_mediaHasLoaded",void 0),U=n([c("frigate-card-live-carousel")],U);let B=class extends h{_renderCarousel(e){const i=this.viewManagerEpoch?.manager.getView(),t=e??i?.camera;return u` + + + `}_gridSelectCamera(e){this.viewManagerEpoch?.manager.setViewByParameters({params:{camera:e}})}_needsGrid(){const e=this.cameraManager?.getStore().getCameraIDsWithCapability("live"),i=this.viewManagerEpoch?.manager.getView();return!!i?.isGrid()&&!!i?.supportsMultipleDisplayModes()&&!!e&&e.size>1}willUpdate(e){e.has("viewManagerEpoch")&&this._needsGrid()&&import("./media-grid-ef47501a.js")}render(){if(!this.conditionsManagerEpoch||!this.nonOverriddenLiveConfig)return;const e=this.cameraManager?.getStore().getCameraIDsWithCapability("live");return e?.size&&this._needsGrid()?u` + this._gridSelectCamera(e.detail.selected)} + > + ${[...e].map((e=>this._renderCarousel(e)))} + + `:this._renderCarousel()}static get styles(){return M(":host {\n width: 100%;\n height: 100%;\n display: block;\n}\n\n@keyframes warning-pulse {\n 0% {\n border: solid 2px var(--frigate-card-triggered-color-1, rgba(0, 0, 0, 0));\n }\n 50% {\n border: solid 2px var(--frigate-card-triggered-color-2, var(--warning-color));\n }\n 100% {\n border: solid 2px var(--frigate-card-triggered-color-1, rgba(0, 0, 0, 0));\n }\n}\nfrigate-card-live-carousel[triggered] {\n animation: warning-pulse 5s infinite;\n}\n\nfrigate-card-live-carousel[selected] {\n --frigate-card-triggered-color-1: var(--primary-color);\n}")}};n([d({attribute:!1})],B.prototype,"hass",void 0),n([d({attribute:!1})],B.prototype,"viewManagerEpoch",void 0),n([d({attribute:!1})],B.prototype,"nonOverriddenLiveConfig",void 0),n([d({attribute:!1})],B.prototype,"overriddenLiveConfig",void 0),n([d({attribute:!1,hasChanged:_})],B.prototype,"overrides",void 0),n([d({attribute:!1})],B.prototype,"conditionsManagerEpoch",void 0),n([d({attribute:!1})],B.prototype,"cardWideConfig",void 0),n([d({attribute:!1})],B.prototype,"cameraManager",void 0),n([d({attribute:!1})],B.prototype,"microphoneManager",void 0),n([d({attribute:!1})],B.prototype,"triggeredCameraIDs",void 0),B=n([c("frigate-card-live-grid")],B);let V=class extends h{constructor(){super(...arguments),this._controller=new O(this)}shouldUpdate(e){return this._controller.shouldUpdate()}willUpdate(){this._controller.clearMessageReceived()}render(){if(this.hass&&this.nonOverriddenLiveConfig&&this.cameraManager)return u`${Z(this._controller.getRenderEpoch(),u` + + + `)}`}static get styles(){return M(j)}};n([d({attribute:!1})],V.prototype,"conditionsManagerEpoch",void 0),n([d({attribute:!1})],V.prototype,"hass",void 0),n([d({attribute:!1})],V.prototype,"viewManagerEpoch",void 0),n([d({attribute:!1})],V.prototype,"nonOverriddenLiveConfig",void 0),n([d({attribute:!1})],V.prototype,"overriddenLiveConfig",void 0),n([d({attribute:!1,hasChanged:_})],V.prototype,"overrides",void 0),n([d({attribute:!1})],V.prototype,"cameraManager",void 0),n([d({attribute:!1})],V.prototype,"cardWideConfig",void 0),n([d({attribute:!1})],V.prototype,"microphoneManager",void 0),n([d({attribute:!1})],V.prototype,"triggeredCameraIDs",void 0),V=n([c("frigate-card-live")],V);var Y=Object.freeze({__proto__:null,get FrigateCardLive(){return V}});export{P as g,Y as i}; diff --git a/config/www/community/frigate-hass-card/index-e610f971.js.gz b/config/www/community/frigate-hass-card/index-e610f971.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..3f4b28c3294e5a6d840047305971cdfd057f3bb2 GIT binary patch literal 6881 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 bzXRc#|1A#eZ&;wK(|7+5XkVkWB4PjlzrKS- literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/jsmpeg-05cdf58e.js b/config/www/community/frigate-hass-card/jsmpeg-05cdf58e.js new file mode 100644 index 00000000..ae20ce44 --- /dev/null +++ b/config/www/community/frigate-hass-card/jsmpeg-05cdf58e.js @@ -0,0 +1,12 @@ +import{cL as A,eN as t,dC as i,eO as e,a as s,dD as o,dy as g,dz as I,dw as a,cQ as B,l as r,x as C,dl as n,r as E,_ as Q,n as h,t as d}from"./card-45855f1f.js";import{g as c}from"./endpoint-f74ef6db.js";function l(){return l=Object.assign?Object.assign.bind():function(A){for(var t=1;t"string"==typeof A&&A.constructor===String,D=function(A){var t,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t=A,"Promise"===Object.prototype.toString.call(t).slice(8,-1)?A:new Promise((t=>{A(),setTimeout(t,i)}))};var m="WJ3NAvwFY9",f="tR2-0dd-e1",y="ZgIIHVSSYI",R="kAA8SjbHe2",k="OueN4AU4CJ";!function(A,t){void 0===t&&(t={});var i=t.insertAt;if(A&&"undefined"!=typeof document){var e=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css","top"===i&&e.firstChild?e.insertBefore(s,e.firstChild):e.appendChild(s),s.styleSheet?s.styleSheet.cssText=A:s.appendChild(document.createTextNode(A))}}(".WJ3NAvwFY9,.ZgIIHVSSYI,.kAA8SjbHe2,.tR2-0dd-e1{height:100%;left:0;position:absolute;top:0;width:100%;z-index:1}.ZgIIHVSSYI{-ms-flex-pack:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;justify-content:center}.WJ3NAvwFY9,.tR2-0dd-e1{display:block}.tR2-0dd-e1.OueN4AU4CJ{display:none}.ZgIIHVSSYI,.kAA8SjbHe2{-webkit-tap-highlight-color:rgba(255,0,0,0);cursor:pointer;opacity:.7}.OueN4AU4CJ.ZgIIHVSSYI,.OueN4AU4CJ.kAA8SjbHe2{display:none}.ZgIIHVSSYI{z-index:10}.ZgIIHVSSYI>svg{fill:#fff;height:12vw;max-height:60px;max-width:60px;width:12vw}.kAA8SjbHe2{-ms-flex-pack:end;-ms-flex-align:end;-webkit-align-items:flex-end;align-items:flex-end;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-end;justify-content:flex-end;z-index:10}.kAA8SjbHe2>svg{fill:#fff;height:9vw;margin:0 15px 15px 0;max-height:40px;max-width:40px;width:9vw}");var b=function(){function A(A,t,i,e){var s=void 0===i?{}:i,o=s.canvas,g=void 0===o?"":o,I=s.poster,a=void 0===I?"":I,B=s.autoplay,r=void 0!==B&&B,C=s.autoSetWrapperSize,n=void 0!==C&&C,E=s.loop,Q=void 0!==E&&E,h=s.control,d=void 0===h||h,c=s.decodeFirstFrame,u=void 0===c||c,w=s.picMode,D=void 0!==w&&w,m=s.progressive,f=void 0===m||m,y=s.chunkSize,R=void 0===y?1048576:y,k=s.hooks,b=void 0===k?{}:k;void 0===e&&(e={}),this.options=l({videoUrl:t,canvas:g,poster:a,picMode:D,autoplay:r,autoSetWrapperSize:n,loop:Q,control:d,decodeFirstFrame:u,progressive:f,chunkSize:R,hooks:l({play:function(){},pause:function(){},stop:function(){},load:function(){}},b)},e),this.options.needPlayButton=this.options.control&&!this.options.picMode,this.player=null,this.els={wrapper:p(A)?document.querySelector(A):A,canvas:null,playButton:document.createElement("div"),unmuteButton:null,poster:null},"static"===window.getComputedStyle(this.els.wrapper).getPropertyValue("position")&&(this.els.wrapper.style.position="relative"),this.els.wrapper.clientRect=this.els.wrapper.getBoundingClientRect(),this.initCanvas(),this.initPlayButton(),this.initPlayer()}var t=A.prototype;return t.initCanvas=function(){this.options.canvas?this.els.canvas=p(this.options.canvas)?document.querySelector(this.options.canvas):this.options.canvas:(this.els.canvas=document.createElement("canvas"),this.els.canvas.classList.add(m),this.els.wrapper.appendChild(this.els.canvas))},t.initPlayer=function(){var A=this;this.options=l(this.options,{canvas:this.els.canvas});var t=l({},this.options,{autoplay:!1});if(this.player=new X(this.options.videoUrl,t,{play:function(){A.options.needPlayButton&&A.els.playButton.classList.add(k),A.els.poster&&A.els.poster.classList.add(k),A.options.hooks.play()},pause:function(){A.options.needPlayButton&&A.els.playButton.classList.remove(k),A.options.hooks.pause()},stop:function(){A.els.poster&&A.els.poster.classList.remove(k),A.options.hooks.stop()},load:function(){A.options.autoplay&&A.play(),A._autoSetWrapperSize(),A.options.hooks.load()}}),this._copyPlayerFuncs(),this.els.wrapper.playerInstance=this.player,!this.options.poster||this.options.autoplay||this.player.options.streaming||(this.options.decodeFirstFrame=!1,this.els.poster=new Image,this.els.poster.src=this.options.poster,this.els.poster.classList.add(f),this.els.wrapper.appendChild(this.els.poster)),this.player.options.streaming||this.els.wrapper.addEventListener("click",this.onClick.bind(this)),(this.options.autoplay||this.player.options.streaming)&&this.els.playButton.classList.add(k),this.player.audioOut&&!this.player.audioOut.unlocked){var i=this.els.wrapper;(this.options.autoplay||this.player.options.streaming)&&(this.els.unmuteButton=document.createElement("div"),this.els.unmuteButton.innerHTML='\n\n \n\n',this.els.unmuteButton.classList.add(R),this.els.wrapper.appendChild(this.els.unmuteButton),i=this.els.unmuteButton),this.unlockAudioBound=this.onUnlockAudio.bind(this,i),i.addEventListener("touchstart",this.unlockAudioBound,!1),i.addEventListener("click",this.unlockAudioBound,!0)}},t.initPlayButton=function(){this.options.needPlayButton&&(this.els.playButton.classList.add(y),this.els.playButton.innerHTML='\n\n \n\n',this.els.wrapper.appendChild(this.els.playButton))},t._autoSetWrapperSize=function(){var A=this;if(!this.options.autoSetWrapperSize)return Promise.resolve();var t=this.player.video.destination;return t?Promise.resolve().then((function(){return D((function(){A.els.wrapper.style.width=t.width+"px",A.els.wrapper.style.height=t.height+"px"}))})):Promise.resolve()},t.onUnlockAudio=function(A,t){var i=this;this.els.unmuteButton&&(t.preventDefault(),t.stopPropagation()),this.player.audioOut.unlock((function(){i.els.unmuteButton&&i.els.unmuteButton.classList.add(k),A.removeEventListener("touchstart",i.unlockAudioBound),A.removeEventListener("click",i.unlockAudioBound)}))},t.onClick=function(){this.options.control&&(this.player.isPlaying?this.pause():this.play())},t._copyPlayerFuncs=function(){var A=this;this.play=function(){return A.player.play()},this.pause=function(){return A.player.pause()},this.stop=function(){return A.player.stop()},this.destroy=function(){A.player.destroy(),A.els.wrapper.innerHTML="",A.els.wrapper.playerInstance=null}},A}(),S=function(){return window.performance?window.performance.now()/1e3:Date.now()/1e3},G=function(A,t){if(A.fill)A.fill(t);else for(var i=0;iA&&this.loadNextChunk())},t.destroy=function(){this.request.abort(),this.aborted=!0},t.loadNextChunk=function(){var A=this,t=this.loadedSize,i=Math.min(this.loadedSize+this.chunkSize-1,this.fileSize-1);if(t>=this.fileSize||this.aborted)return this.completed=!0,void(this.onCompletedCallback&&this.onCompletedCallback(this));this.isLoading=!0,this.loadStartTime=S(),this.request=new XMLHttpRequest,this.request.onreadystatechange=function(){A.request.readyState===A.request.DONE&&A.request.status>=200&&A.request.status<300?A.onChunkLoad(A.request.response):A.request.readyState===A.request.DONE&&A.loadFails++<3&&A.loadNextChunk()},0===t&&(this.request.onprogress=this.onProgress.bind(this)),this.request.open("GET",this.url+"?"+t+"-"+i),this.request.setRequestHeader("Range","bytes="+t+"-"+i),this.request.responseType="arraybuffer",this.request.send()},t.onProgress=function(A){this.progress=A.loaded/A.total},t.onChunkLoad=function(A){var t=!this.established;this.established=!0,this.progress=1,this.loadedSize+=A.byteLength,this.loadFails=0,this.isLoading=!1,t&&this.hookOnEstablished&&this.hookOnEstablished(),t&&this.onEstablishedCallback&&this.onEstablishedCallback(this),this.destination&&this.destination.write(A),this.loadTime=S()-this.loadStartTime,this.throttled||this.loadNextChunk()},A}(),N=function(){function A(A,t){this.url=A,this.options=t,this.socket=null,this.streaming=!0,this.callbacks={connect:[],data:[]},this.destination=null,this.reconnectInterval=void 0!==t.reconnectInterval?t.reconnectInterval:5,this.shouldAttemptReconnect=!!this.reconnectInterval,this.completed=!1,this.established=!1,this.progress=0,this.reconnectTimeoutId=0,this.onEstablishedCallback=t.onSourceEstablished,this.onCompletedCallback=t.onSourceCompleted,t.hookOnEstablished&&(this.hookOnEstablished=t.hookOnEstablished)}var t=A.prototype;return t.connect=function(A){this.destination=A},t.destroy=function(){clearTimeout(this.reconnectTimeoutId),this.shouldAttemptReconnect=!1,this.socket.close()},t.start=function(){this.shouldAttemptReconnect=!!this.reconnectInterval,this.progress=0,this.established=!1,this.options.protocols?this.socket=new WebSocket(this.url,this.options.protocols):this.socket=new WebSocket(this.url),this.socket.binaryType="arraybuffer",this.socket.onmessage=this.onMessage.bind(this),this.socket.onopen=this.onOpen.bind(this),this.socket.onerror=this.onClose.bind(this),this.socket.onclose=this.onClose.bind(this)},t.resume=function(){},t.onOpen=function(){this.progress=1},t.onClose=function(){var A=this;this.shouldAttemptReconnect&&(clearTimeout(this.reconnectTimeoutId),this.reconnectTimeoutId=setTimeout((function(){A.start()}),1e3*this.reconnectInterval))},t.onMessage=function(A){var t=!this.established;this.established=!0,t&&this.hookOnEstablished&&this.hookOnEstablished(),t&&this.onEstablishedCallback&&this.onEstablishedCallback(this),this.destination&&this.destination.write(A.data)},A}(),L=function(){function A(t,i){"object"==typeof t?(this.bytes=t instanceof Uint8Array?t:new Uint8Array(t),this.byteLength=this.bytes.length):(this.bytes=new Uint8Array(t||1048576),this.byteLength=0),this.mode=i||A.MODE.EXPAND,this.index=0}var t=A.prototype;return t.resize=function(A){var t=new Uint8Array(A);0!==this.byteLength&&(this.byteLength=Math.min(this.byteLength,A),t.set(this.bytes,0,this.byteLength)),this.bytes=t,this.index=Math.min(this.index,this.byteLength<<3)},t.evict=function(A){var t=this.index>>3,i=this.bytes.length-this.byteLength;if(this.index===this.byteLength<<3||A>i+t)return this.byteLength=0,void(this.index=0);0!==t&&(this.bytes.copyWithin?this.bytes.copyWithin(0,t,this.byteLength):this.bytes.set(this.bytes.subarray(t,this.byteLength)),this.byteLength-=t,this.index-=t<<3)},t.write=function(t){var i="object"==typeof t[0],e=0,s=this.bytes.length-this.byteLength;if(i){e=0;for(var o=0;os)if(this.mode===A.MODE.EXPAND){var g=Math.max(2*this.bytes.length,e-s);this.resize(g)}else this.evict(e);if(i)for(var I=0;I>3;A>3;return A>=this.byteLength||0===this.bytes[A]&&0===this.bytes[A+1]&&1===this.bytes[A+2]},t.peek=function(A){for(var t=this.index,i=0;A;){var e=8-(7&t),s=e>3]&255>>8-s<>o,t+=s,A-=s}return i},t.read=function(A){var t=this.peek(A);return this.index+=A,t},t.skip=function(A){return this.index+=A},t.rewind=function(A){this.index=Math.max(this.index-A,0)},t.has=function(A){return(this.byteLength<<3)-this.index>=A},A}();L.MODE={EVICT:1,EXPAND:2};var U=function(){function A(){this.bits=null,this.leftoverBytes=null,this.guessVideoFrameEnd=!0,this.pidsToStreamIds={},this.pesPacketInfo={},this.startTime=0,this.currentTime=0}var t=A.prototype;return t.connect=function(A,t){this.pesPacketInfo[A]={destination:t,currentLength:0,totalLength:0,pts:0,buffers:[]}},t.write=function(A){if(this.leftoverBytes){var t=A.byteLength+this.leftoverBytes.byteLength;this.bits=new L(t),this.bits.write([this.leftoverBytes,A])}else this.bits=new L(A);for(;this.bits.has(1504)&&this.parsePacket(););var i=this.bits.byteLength-(this.bits.index>>3);this.leftoverBytes=i>0?this.bits.bytes.subarray(this.bits.index>>3):null},t.parsePacket=function(){if(71!==this.bits.read(8)&&!this.resync())return!1;var A=187+(this.bits.index>>3);this.bits.read(1);var t=this.bits.read(1);this.bits.read(1);var i=this.bits.read(13);this.bits.read(2);var e=this.bits.read(2);this.bits.read(4);var s=this.pidsToStreamIds[i];if(t&&s){var o=this.pesPacketInfo[s];o&&o.currentLength&&this.packetComplete(o)}if(1&e){if(2&e){var g=this.bits.read(8);this.bits.skip(g<<3)}if(t&&this.bits.nextBytesAreStartCode()){this.bits.skip(24),s=this.bits.read(8),this.pidsToStreamIds[i]=s;var I=this.bits.read(16);this.bits.skip(8);var a=this.bits.read(2);this.bits.skip(6);var B=this.bits.read(8),r=this.bits.index+(B<<3),C=this.pesPacketInfo[s];if(C){var n=0;if(2&a){this.bits.skip(4);var E=this.bits.read(3);this.bits.skip(1);var Q=this.bits.read(15);this.bits.skip(1);var h=this.bits.read(15);this.bits.skip(1),n=(1073741824*E+32768*Q+h)/9e4,this.currentTime=n,-1===this.startTime&&(this.startTime=n)}var d=I?I-B-3:0;this.packetStart(C,n,d)}this.bits.index=r}if(s){var c=this.pesPacketInfo[s];if(c){var l=this.bits.index>>3,u=!t&&2&e;(this.packetAddData(c,l,A)||this.guessVideoFrameEnd&&u)&&this.packetComplete(c)}}}return this.bits.index=A<<3,!0},t.resync=function(){if(!this.bits.has(9024))return!1;for(var A=this.bits.index>>3,t=0;t<187;t++)if(71===this.bits.bytes[A+t]){for(var i=!0,e=1;e<5;e++)if(71!==this.bits.bytes[A+t+188*e]){i=!1;break}if(i)return this.bits.index=A+t+1<<3,!0}return console.warn("JSMpeg: Possible garbage data. Skipping."),this.bits.skip(1496),!1},t.packetStart=function(A,t,i){A.totalLength=i,A.currentLength=0,A.pts=t},t.packetAddData=function(A,t,i){return A.buffers.push(this.bits.bytes.subarray(t,i)),A.currentLength+=i-t,0!==A.totalLength&&A.currentLength>=A.totalLength},t.packetComplete=function(A){A.destination.write(A.pts,A.buffers),A.totalLength=0,A.currentLength=0,A.buffers=[]},A}();U.STREAM={PACK_HEADER:186,SYSTEM_HEADER:187,PROGRAM_MAP:188,PRIVATE_1:189,PADDING:190,PRIVATE_2:191,AUDIO_1:192,VIDEO_1:224,DIRECTORY:255};var J=function(){function A(A){this.destination=null,this.canPlay=!1,this.collectTimestamps=!A.streaming,this.bytesWritten=0,this.timestamps=[],this.timestampIndex=0,this.startTime=0,this.decodedTime=0,Object.defineProperty(this,"currentTime",{get:this.getCurrentTime})}var t=A.prototype;return t.destroy=function(){},t.connect=function(A){this.destination=A},t.bufferGetIndex=function(){return this.bits.index},t.bufferSetIndex=function(A){this.bits.index=A},t.bufferWrite=function(A){return this.bits.write(A)},t.write=function(A,t){this.collectTimestamps&&(0===this.timestamps.length&&(this.startTime=A,this.decodedTime=A),this.timestamps.push({index:this.bytesWritten<<3,time:A})),this.bytesWritten+=this.bufferWrite(t),this.canPlay=!0},t.seek=function(A){if(this.collectTimestamps){this.timestampIndex=0;for(var t=0;tA);t++)this.timestampIndex=t;var i=this.timestamps[this.timestampIndex];i?(this.bufferSetIndex(i.index),this.decodedTime=i.time):(this.bits.index=0,this.decodedTime=this.startTime)}},t.decode=function(){this.advanceDecodedTime(0)},t.advanceDecodedTime=function(A){if(this.collectTimestamps){for(var t=-1,i=this.bufferGetIndex(),e=this.timestampIndex;ei);e++)t=e;if(-1!==t&&t!==this.timestampIndex)return this.timestampIndex=t,void(this.decodedTime=this.timestamps[this.timestampIndex].time)}this.decodedTime+=A},t.getCurrentTime=function(){return this.decodedTime},A}(),T=function(A){function t(t){var i;(i=A.call(this,t)||this).onDecodeCallback=t.onVideoDecode;var e=t.videoBufferSize||524288,s=t.streaming?L.MODE.EVICT:L.MODE.EXPAND;return i.bits=new L(e,s),i.customIntraQuantMatrix=new Uint8Array(64),i.customNonIntraQuantMatrix=new Uint8Array(64),i.blockData=new Int32Array(64),i.currentFrame=0,i.decodeFirstFrame=!1!==t.decodeFirstFrame,i}u(t,A);var i=t.prototype;return i.write=function(A,i){if(J.prototype.write.call(this,A,i),!this.hasSequenceHeader){if(-1===this.bits.findStartCode(t.START.SEQUENCE))return!1;this.decodeSequenceHeader(),this.decodeFirstFrame&&this.decode()}},i.decode=function(){var A=S();if(!this.hasSequenceHeader)return!1;if(-1===this.bits.findStartCode(t.START.PICTURE))return!1;this.decodePicture(),this.advanceDecodedTime(1/this.frameRate);var i=S()-A;return this.onDecodeCallback&&this.onDecodeCallback(this,i),!0},i.readHuffman=function(A){var t=0;do{t=A[t+this.bits.read(1)]}while(t>=0&&0!==A[t]);return A[t+2]},i.decodeSequenceHeader=function(){var A=this.bits.read(12),i=this.bits.read(12);if(this.bits.skip(4),this.frameRate=t.PICTURE_RATE[this.bits.read(4)],this.bits.skip(30),A===this.width&&i===this.height||(this.width=A,this.height=i,this.initBuffers(),this.destination&&this.destination.resize(A,i)),this.bits.read(1)){for(var e=0;e<64;e++)this.customIntraQuantMatrix[t.ZIG_ZAG[e]]=this.bits.read(8);this.intraQuantMatrix=this.customIntraQuantMatrix}if(this.bits.read(1)){for(var s=0;s<64;s++){var o=t.ZIG_ZAG[s];this.customNonIntraQuantMatrix[o]=this.bits.read(8)}this.nonIntraQuantMatrix=this.customNonIntraQuantMatrix}this.hasSequenceHeader=!0},i.initBuffers=function(){this.intraQuantMatrix=t.DEFAULT_INTRA_QUANT_MATRIX,this.nonIntraQuantMatrix=t.DEFAULT_NON_INTRA_QUANT_MATRIX,this.mbWidth=this.width+15>>4,this.mbHeight=this.height+15>>4,this.mbSize=this.mbWidth*this.mbHeight,this.codedWidth=this.mbWidth<<4,this.codedHeight=this.mbHeight<<4,this.codedSize=this.codedWidth*this.codedHeight,this.halfWidth=this.mbWidth<<3,this.halfHeight=this.mbHeight<<3,this.currentY=new Uint8ClampedArray(this.codedSize),this.currentY32=new Uint32Array(this.currentY.buffer),this.currentCr=new Uint8ClampedArray(this.codedSize>>2),this.currentCr32=new Uint32Array(this.currentCr.buffer),this.currentCb=new Uint8ClampedArray(this.codedSize>>2),this.currentCb32=new Uint32Array(this.currentCb.buffer),this.forwardY=new Uint8ClampedArray(this.codedSize),this.forwardY32=new Uint32Array(this.forwardY.buffer),this.forwardCr=new Uint8ClampedArray(this.codedSize>>2),this.forwardCr32=new Uint32Array(this.forwardCr.buffer),this.forwardCb=new Uint8ClampedArray(this.codedSize>>2),this.forwardCb32=new Uint32Array(this.forwardCb.buffer)},i.decodePicture=function(){if(this.currentFrame++,this.bits.skip(10),this.pictureType=this.bits.read(3),this.bits.skip(16),!(this.pictureType<=0||this.pictureType>=t.PICTURE_TYPE.B)){if(this.pictureType===t.PICTURE_TYPE.PREDICTIVE){if(this.fullPelForward=this.bits.read(1),this.forwardFCode=this.bits.read(3),0===this.forwardFCode)return;this.forwardRSize=this.forwardFCode-1,this.forwardF=1<=t.START.SLICE_FIRST&&A<=t.START.SLICE_LAST;)this.decodeSlice(255&A),A=this.bits.findNextStartCode();if(-1!==A&&this.bits.rewind(32),this.destination&&this.destination.render(this.currentY,this.currentCr,this.currentCb,!0),this.pictureType===t.PICTURE_TYPE.INTRA||this.pictureType===t.PICTURE_TYPE.PREDICTIVE){var i=this.forwardY,e=this.forwardY32,s=this.forwardCr,o=this.forwardCr32,g=this.forwardCb,I=this.forwardCb32;this.forwardY=this.currentY,this.forwardY32=this.currentY32,this.forwardCr=this.currentCr,this.forwardCr32=this.currentCr32,this.forwardCb=this.currentCb,this.forwardCb32=this.currentCb32,this.currentY=i,this.currentY32=e,this.currentCr=s,this.currentCr32=o,this.currentCb=g,this.currentCb32=I}}},i.decodeSlice=function(A){for(this.sliceBegin=!0,this.macroblockAddress=(A-1)*this.mbWidth-1,this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0,this.dcPredictorY=128,this.dcPredictorCr=128,this.dcPredictorCb=128,this.quantizerScale=this.bits.read(5);this.bits.read(1);)this.bits.skip(8);do{this.decodeMacroblock()}while(!this.bits.nextBytesAreStartCode())},i.decodeMacroblock=function(){for(var A=0,i=this.readHuffman(t.MACROBLOCK_ADDRESS_INCREMENT);34===i;)i=this.readHuffman(t.MACROBLOCK_ADDRESS_INCREMENT);for(;35===i;)A+=33,i=this.readHuffman(t.MACROBLOCK_ADDRESS_INCREMENT);if(A+=i,this.sliceBegin)this.sliceBegin=!1,this.macroblockAddress+=A;else{if(this.macroblockAddress+A>=this.mbSize)return;for(A>1&&(this.dcPredictorY=128,this.dcPredictorCr=128,this.dcPredictorCb=128,this.pictureType===t.PICTURE_TYPE.PREDICTIVE&&(this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0));A>1;)this.macroblockAddress++,this.mbRow=this.macroblockAddress/this.mbWidth|0,this.mbCol=this.macroblockAddress%this.mbWidth,this.copyMacroblock(this.motionFwH,this.motionFwV,this.forwardY,this.forwardCr,this.forwardCb),A--;this.macroblockAddress++}this.mbRow=this.macroblockAddress/this.mbWidth|0,this.mbCol=this.macroblockAddress%this.mbWidth;var e=t.MACROBLOCK_TYPE[this.pictureType];this.macroblockType=this.readHuffman(e),this.macroblockIntra=1&this.macroblockType,this.macroblockMotFw=8&this.macroblockType,16&this.macroblockType&&(this.quantizerScale=this.bits.read(5)),this.macroblockIntra?(this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0):(this.dcPredictorY=128,this.dcPredictorCr=128,this.dcPredictorCb=128,this.decodeMotionVectors(),this.copyMacroblock(this.motionFwH,this.motionFwV,this.forwardY,this.forwardCr,this.forwardCb));for(var s=2&this.macroblockType?this.readHuffman(t.CODE_BLOCK_PATTERN):this.macroblockIntra?63:0,o=0,g=32;o<6;o++)s&g&&this.decodeBlock(o),g>>=1},i.decodeMotionVectors=function(){var A,i,e=0;this.macroblockMotFw?(0!==(A=this.readHuffman(t.MOTION))&&1!==this.forwardF?(e=this.bits.read(this.forwardRSize),i=(Math.abs(A)-1<(this.forwardF<<4)-1?this.motionFwHPrev-=this.forwardF<<5:this.motionFwHPrev<-this.forwardF<<4&&(this.motionFwHPrev+=this.forwardF<<5),this.motionFwH=this.motionFwHPrev,this.fullPelForward&&(this.motionFwH<<=1),0!==(A=this.readHuffman(t.MOTION))&&1!==this.forwardF?(e=this.bits.read(this.forwardRSize),i=(Math.abs(A)-1<(this.forwardF<<4)-1?this.motionFwVPrev-=this.forwardF<<5:this.motionFwVPrev<-this.forwardF<<4&&(this.motionFwVPrev+=this.forwardF<<5),this.motionFwV=this.motionFwVPrev,this.fullPelForward&&(this.motionFwV<<=1)):this.pictureType===t.PICTURE_TYPE.PREDICTIVE&&(this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0)},i.copyMacroblock=function(A,t,i,e,s){var o,g,I,a,B,r,C,n,E,Q,h,d,c,l,u,w,p,D,m,f=this.currentY32,y=this.currentCb32,R=this.currentCr32;if(g=(o=this.codedWidth)-16,I=A>>1,a=t>>1,B=!(1&~A),r=!(1&~t),C=((this.mbRow<<4)+a)*o+(this.mbCol<<4)+I,E=(n=this.mbRow*o+this.mbCol<<2)+(o<<2),B)if(r)for(;n>2&255,c|=(h=i[++C]+i[C+o])+d+2<<6&65280,c|=h+(d=i[++C]+i[C+o])+2<<14&16711680,h=i[++C]+i[C+o],C++,c|=h+d+2<<22&4278190080,f[n++]=c;n+=g>>2,C+=g-1}else for(;n>1&255,c|=(h=i[C++])+d+1<<7&65280,c|=h+(d=i[C++])+1<<15&16711680,c|=(h=i[C++])+d+1<<23&4278190080,f[n++]=c;n+=g>>2,C+=g-1}else if(r)for(;n>1&255,c|=i[++C]+i[C+o]+1<<7&65280,c|=i[++C]+i[C+o]+1<<15&16711680,c|=i[++C]+i[C+o]+1<<23&4278190080,C++,f[n++]=c;n+=g>>2,C+=g}else for(;n>2,C+=g}if(g=(o=this.halfWidth)-8,I=A/2>>1,a=t/2>>1,B=1==(A/2&1),r=1==(t/2&1),C=((this.mbRow<<3)+a)*o+(this.mbCol<<3)+I,E=(n=this.mbRow*o+this.mbCol<<1)+(o<<1),B)if(r)for(;n>2&255,m=p+(D=s[C]+s[C+o])+2>>2&255,w|=(l=e[++C]+e[C+o])+u+2<<6&65280,m|=(p=s[C]+s[C+o])+D+2<<6&65280,w|=l+(u=e[++C]+e[C+o])+2<<14&16711680,m|=p+(D=s[C]+s[C+o])+2<<14&16711680,l=e[++C]+e[C+o],p=s[C]+s[C+o],C++,w|=l+u+2<<22&4278190080,m|=p+D+2<<22&4278190080,R[n]=w,y[n]=m,n++;n+=g>>2,C+=g-1}else for(;n>1&255,m=p+(D=s[C++])+1>>1&255,w|=(l=e[C])+u+1<<7&65280,m|=(p=s[C++])+D+1<<7&65280,w|=l+(u=e[C])+1<<15&16711680,m|=p+(D=s[C++])+1<<15&16711680,w|=(l=e[C])+u+1<<23&4278190080,m|=(p=s[C++])+D+1<<23&4278190080,R[n]=w,y[n]=m,n++;n+=g>>2,C+=g-1}else if(r)for(;n>1&255,m=s[C]+s[C+o]+1>>1&255,w|=e[++C]+e[C+o]+1<<7&65280,m|=s[C]+s[C+o]+1<<7&65280,w|=e[++C]+e[C+o]+1<<15&16711680,m|=s[C]+s[C+o]+1<<15&16711680,w|=e[++C]+e[C+o]+1<<23&4278190080,m|=s[C]+s[C+o]+1<<23&4278190080,C++,R[n]=w,y[n]=m,n++;n+=g>>2,C+=g}else for(;n>2,C+=g}},i.decodeBlock=function(A){var i,e=0;if(this.macroblockIntra){var s,o;if(A<4?(s=this.dcPredictorY,o=this.readHuffman(t.DCT_DC_SIZE_LUMINANCE)):(s=4===A?this.dcPredictorCr:this.dcPredictorCb,o=this.readHuffman(t.DCT_DC_SIZE_CHROMINANCE)),o>0){var g=this.bits.read(o);this.blockData[0]=g&1<0&&0===this.bits.read(1))break;65535===n?(C=this.bits.read(6),0===(r=this.bits.read(8))?r=this.bits.read(8):128===r?r=this.bits.read(8)-256:r>128&&(r-=256)):(C=n>>8,r=255&n,this.bits.read(1)&&(r=-r)),e+=C;var E=t.ZIG_ZAG[e];e++,r<<=1,this.macroblockIntra||(r+=r<0?-1:1),1&(r=r*this.quantizerScale*i[E]>>4)||(r-=r>0?1:-1),r>2047?r=2047:r<-2048&&(r=-2048),this.blockData[E]=r*t.PREMULTIPLIER_MATRIX[E]}A<4?(I=this.currentY,B=this.codedWidth-8,a=this.mbRow*this.codedWidth+this.mbCol<<4,1&A&&(a+=8),2&A&&(a+=this.codedWidth<<3)):(I=4===A?this.currentCb:this.currentCr,B=(this.codedWidth>>1)-8,a=(this.mbRow*this.codedWidth<<2)+(this.mbCol<<3)),this.macroblockIntra?1===e?(t.CopyValueToDestination(this.blockData[0]+128>>8,I,a,B),this.blockData[0]=0):(t.IDCT(this.blockData),t.CopyBlockToDestination(this.blockData,I,a,B),G(this.blockData,0)):1===e?(t.AddValueToDestination(this.blockData[0]+128>>8,I,a,B),this.blockData[0]=0):(t.IDCT(this.blockData),t.AddBlockToDestination(this.blockData,I,a,B),G(this.blockData,0)),e=0},t.CopyBlockToDestination=function(A,t,i,e){for(var s=0;s<64;s+=8,i+=e+8)t[i+0]=A[s+0],t[i+1]=A[s+1],t[i+2]=A[s+2],t[i+3]=A[s+3],t[i+4]=A[s+4],t[i+5]=A[s+5],t[i+6]=A[s+6],t[i+7]=A[s+7]},t.AddBlockToDestination=function(A,t,i,e){for(var s=0;s<64;s+=8,i+=e+8)t[i+0]+=A[s+0],t[i+1]+=A[s+1],t[i+2]+=A[s+2],t[i+3]+=A[s+3],t[i+4]+=A[s+4],t[i+5]+=A[s+5],t[i+6]+=A[s+6],t[i+7]+=A[s+7]},t.CopyValueToDestination=function(A,t,i,e){for(var s=0;s<64;s+=8,i+=e+8)t[i+0]=A,t[i+1]=A,t[i+2]=A,t[i+3]=A,t[i+4]=A,t[i+5]=A,t[i+6]=A,t[i+7]=A},t.AddValueToDestination=function(A,t,i,e){for(var s=0;s<64;s+=8,i+=e+8)t[i+0]+=A,t[i+1]+=A,t[i+2]+=A,t[i+3]+=A,t[i+4]+=A,t[i+5]+=A,t[i+6]+=A,t[i+7]+=A},t.IDCT=function(A){for(var t,i,e,s,o,g,I,a,B,r,C,n,E,Q,h,d,c,l,u=0;u<8;++u)t=A[32+u],i=A[16+u]+A[48+u],e=A[40+u]-A[24+u],g=A[8+u]+A[56+u],I=A[24+u]+A[40+u],B=(E=(473*(s=A[8+u]-A[56+u])-196*e+128>>8)-(o=g+I))-(362*(g-I)+128>>8),Q=(r=(a=A[0+u])-t)+(C=(362*(A[16+u]-A[48+u])+128>>8)-i),h=(n=a+t)+i,d=r-C,c=n-i,l=-B-(473*e+196*s+128>>8),A[0+u]=o+h,A[8+u]=E+Q,A[16+u]=d-B,A[24+u]=c-l,A[32+u]=c+l,A[40+u]=B+d,A[48+u]=Q-E,A[56+u]=h-o;for(var w=0;w<64;w+=8)t=A[4+w],i=A[2+w]+A[6+w],e=A[5+w]-A[3+w],g=A[1+w]+A[7+w],I=A[3+w]+A[5+w],B=(E=(473*(s=A[1+w]-A[7+w])-196*e+128>>8)-(o=g+I))-(362*(g-I)+128>>8),Q=(r=(a=A[0+w])-t)+(C=(362*(A[2+w]-A[6+w])+128>>8)-i),h=(n=a+t)+i,d=r-C,c=n-i,l=-B-(473*e+196*s+128>>8),A[0+w]=o+h+128>>8,A[1+w]=E+Q+128>>8,A[2+w]=d-B+128>>8,A[3+w]=c-l+128>>8,A[4+w]=c+l+128>>8,A[5+w]=B+d+128>>8,A[6+w]=Q-E+128>>8,A[7+w]=h-o+128>>8},t}(J);T.prototype.frameRate=30,T.prototype.currentY=null,T.prototype.currentCr=null,T.prototype.currentCb=null,T.prototype.pictureType=0,T.prototype.forwardY=null,T.prototype.forwardCr=null,T.prototype.forwardCb=null,T.prototype.fullPelForward=!1,T.prototype.forwardFCode=0,T.prototype.forwardRSize=0,T.prototype.forwardF=0,T.prototype.quantizerScale=0,T.prototype.sliceBegin=!1,T.prototype.macroblockAddress=0,T.prototype.mbRow=0,T.prototype.mbCol=0,T.prototype.macroblockType=0,T.prototype.macroblockIntra=!1,T.prototype.macroblockMotFw=!1,T.prototype.motionFwH=0,T.prototype.motionFwV=0,T.prototype.motionFwHPrev=0,T.prototype.motionFwVPrev=0,T.prototype.dcPredictorY=0,T.prototype.dcPredictorCr=0,T.prototype.dcPredictorCb=0,T.prototype.blockData=null,T.PICTURE_RATE=[0,23.976,24,25,29.97,30,50,59.94,60,0,0,0,0,0,0,0],T.ZIG_ZAG=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),T.DEFAULT_INTRA_QUANT_MATRIX=new Uint8Array([8,16,19,22,26,27,29,34,16,16,22,24,27,29,34,37,19,22,26,27,29,34,34,38,22,22,26,27,29,34,37,40,22,26,27,29,32,35,40,48,26,27,29,32,35,40,48,58,26,27,29,34,38,46,56,69,27,29,35,38,46,56,69,83]),T.DEFAULT_NON_INTRA_QUANT_MATRIX=new Uint8Array([16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]),T.PREMULTIPLIER_MATRIX=new Uint8Array([32,44,42,38,32,25,17,9,44,62,58,52,44,35,24,12,42,58,55,49,42,33,23,12,38,52,49,44,38,30,20,10,32,44,42,38,32,25,17,9,25,35,33,30,25,20,14,7,17,24,23,20,17,14,9,5,9,12,12,10,9,7,5,2]),T.MACROBLOCK_ADDRESS_INCREMENT=new Int16Array([3,6,0,9,12,0,0,0,1,15,18,0,21,24,0,27,30,0,33,36,0,0,0,3,0,0,2,39,42,0,45,48,0,0,0,5,0,0,4,51,54,0,57,60,0,0,0,7,0,0,6,63,66,0,69,72,0,75,78,0,81,84,0,-1,87,0,-1,90,0,93,96,0,99,102,0,105,108,0,111,114,0,0,0,9,0,0,8,117,120,0,123,126,0,129,132,0,135,138,0,0,0,15,0,0,14,0,0,13,0,0,12,0,0,11,0,0,10,141,-1,0,-1,144,0,147,150,0,153,156,0,159,162,0,165,168,0,171,174,0,177,180,0,183,-1,0,-1,186,0,189,192,0,195,198,0,201,204,0,207,210,0,213,216,0,219,222,0,0,0,21,0,0,20,0,0,19,0,0,18,0,0,17,0,0,16,0,0,35,0,0,34,0,0,33,0,0,32,0,0,31,0,0,30,0,0,29,0,0,28,0,0,27,0,0,26,0,0,25,0,0,24,0,0,23,0,0,22]),T.MACROBLOCK_TYPE_INTRA=new Int8Array([3,6,0,-1,9,0,0,0,1,0,0,17]),T.MACROBLOCK_TYPE_PREDICTIVE=new Int8Array([3,6,0,9,12,0,0,0,10,15,18,0,0,0,2,21,24,0,0,0,8,27,30,0,33,36,0,-1,39,0,0,0,18,0,0,26,0,0,1,0,0,17]),T.MACROBLOCK_TYPE_B=new Int8Array([3,6,0,9,15,0,12,18,0,24,21,0,0,0,12,27,30,0,0,0,14,39,42,0,36,33,0,0,0,4,0,0,6,54,48,0,45,51,0,0,0,8,0,0,10,-1,57,0,0,0,1,60,63,0,0,0,30,0,0,17,0,0,22,0,0,26]),T.MACROBLOCK_TYPE=[null,T.MACROBLOCK_TYPE_INTRA,T.MACROBLOCK_TYPE_PREDICTIVE,T.MACROBLOCK_TYPE_B],T.CODE_BLOCK_PATTERN=new Int16Array([6,3,0,9,18,0,12,15,0,24,33,0,36,39,0,27,21,0,30,42,0,60,57,0,54,48,0,69,51,0,81,75,0,63,84,0,45,66,0,72,78,0,0,0,60,105,120,0,132,144,0,114,108,0,126,141,0,87,93,0,117,96,0,0,0,32,135,138,0,99,123,0,129,102,0,0,0,4,90,111,0,0,0,8,0,0,16,0,0,44,150,168,0,0,0,28,0,0,52,0,0,62,183,177,0,156,180,0,0,0,1,165,162,0,0,0,61,0,0,56,171,174,0,0,0,2,0,0,40,153,186,0,0,0,48,192,189,0,147,159,0,0,0,20,0,0,12,240,249,0,0,0,63,231,225,0,195,219,0,252,198,0,0,0,24,0,0,36,0,0,3,207,261,0,243,237,0,204,213,0,210,234,0,201,228,0,216,222,0,258,255,0,264,246,0,-1,282,0,285,291,0,0,0,33,0,0,9,318,330,0,306,348,0,0,0,5,0,0,10,279,267,0,0,0,6,0,0,18,0,0,17,0,0,34,339,357,0,309,312,0,270,276,0,327,321,0,351,354,0,303,297,0,294,288,0,300,273,0,342,345,0,315,324,0,336,333,0,363,375,0,0,0,41,0,0,14,0,0,21,372,366,0,360,369,0,0,0,11,0,0,19,0,0,7,0,0,35,0,0,13,0,0,50,0,0,49,0,0,58,0,0,37,0,0,25,0,0,45,0,0,57,0,0,26,0,0,29,0,0,38,0,0,53,0,0,23,0,0,43,0,0,46,0,0,42,0,0,22,0,0,54,0,0,51,0,0,15,0,0,30,0,0,39,0,0,47,0,0,55,0,0,27,0,0,59,0,0,31]),T.MOTION=new Int16Array([3,6,0,12,9,0,0,0,0,18,15,0,24,21,0,0,0,-1,0,0,1,27,30,0,36,33,0,0,0,2,0,0,-2,42,45,0,48,39,0,60,54,0,0,0,3,0,0,-3,51,57,0,-1,69,0,81,75,0,78,63,0,72,66,0,96,84,0,87,93,0,-1,99,0,108,105,0,0,0,-4,90,102,0,0,0,4,0,0,-7,0,0,5,111,123,0,0,0,-5,0,0,7,114,120,0,126,117,0,0,0,-6,0,0,6,153,162,0,150,147,0,135,138,0,156,141,0,129,159,0,132,144,0,0,0,10,0,0,9,0,0,8,0,0,-8,171,198,0,0,0,-9,180,192,0,168,183,0,165,186,0,174,189,0,0,0,-10,177,195,0,0,0,12,0,0,16,0,0,13,0,0,14,0,0,11,0,0,15,0,0,-16,0,0,-12,0,0,-14,0,0,-15,0,0,-11,0,0,-13]),T.DCT_DC_SIZE_LUMINANCE=new Int8Array([6,3,0,18,15,0,9,12,0,0,0,1,0,0,2,27,24,0,21,30,0,0,0,0,36,33,0,0,0,4,0,0,3,39,42,0,0,0,5,0,0,6,48,45,0,51,-1,0,0,0,7,0,0,8]),T.DCT_DC_SIZE_CHROMINANCE=new Int8Array([6,3,0,12,9,0,18,15,0,24,21,0,0,0,2,0,0,1,0,0,0,30,27,0,0,0,3,36,33,0,0,0,4,42,39,0,0,0,5,48,45,0,0,0,6,51,-1,0,0,0,7,0,0,8]),T.DCT_COEFF=new Int32Array([3,6,0,12,9,0,0,0,1,21,24,0,18,15,0,39,27,0,33,30,0,42,36,0,0,0,257,60,66,0,54,63,0,48,57,0,0,0,513,51,45,0,0,0,2,0,0,3,81,75,0,87,93,0,72,78,0,96,90,0,0,0,1025,69,84,0,0,0,769,0,0,258,0,0,1793,0,0,65535,0,0,1537,111,108,0,0,0,1281,105,102,0,117,114,0,99,126,0,120,123,0,156,150,0,162,159,0,144,147,0,129,135,0,138,132,0,0,0,2049,0,0,4,0,0,514,0,0,2305,153,141,0,165,171,0,180,168,0,177,174,0,183,186,0,0,0,2561,0,0,3329,0,0,6,0,0,259,0,0,5,0,0,770,0,0,2817,0,0,3073,228,225,0,201,210,0,219,213,0,234,222,0,216,231,0,207,192,0,204,189,0,198,195,0,243,261,0,273,240,0,246,237,0,249,258,0,279,276,0,252,255,0,270,282,0,264,267,0,0,0,515,0,0,260,0,0,7,0,0,1026,0,0,1282,0,0,4097,0,0,3841,0,0,3585,315,321,0,333,342,0,312,291,0,375,357,0,288,294,0,-1,369,0,285,303,0,318,363,0,297,306,0,339,309,0,336,348,0,330,300,0,372,345,0,351,366,0,327,354,0,360,324,0,381,408,0,417,420,0,390,378,0,435,438,0,384,387,0,0,0,2050,396,402,0,465,462,0,0,0,8,411,399,0,429,432,0,453,414,0,426,423,0,0,0,10,0,0,9,0,0,11,0,0,5377,0,0,1538,0,0,771,0,0,5121,0,0,1794,0,0,4353,0,0,4609,0,0,4865,444,456,0,0,0,1027,459,450,0,0,0,261,393,405,0,0,0,516,447,441,0,516,519,0,486,474,0,510,483,0,504,498,0,471,537,0,507,501,0,522,513,0,534,531,0,468,477,0,492,495,0,549,546,0,525,528,0,0,0,263,0,0,2562,0,0,2306,0,0,5633,0,0,5889,0,0,6401,0,0,6145,0,0,1283,0,0,772,0,0,13,0,0,12,0,0,14,0,0,15,0,0,517,0,0,6657,0,0,262,540,543,0,480,489,0,588,597,0,0,0,27,609,555,0,606,603,0,0,0,19,0,0,22,591,621,0,0,0,18,573,576,0,564,570,0,0,0,20,552,582,0,0,0,21,558,579,0,0,0,23,612,594,0,0,0,25,0,0,24,600,615,0,0,0,31,0,0,30,0,0,28,0,0,29,0,0,26,0,0,17,0,0,16,567,618,0,561,585,0,654,633,0,0,0,37,645,648,0,0,0,36,630,636,0,0,0,34,639,627,0,663,666,0,657,624,0,651,642,0,669,660,0,0,0,35,0,0,267,0,0,40,0,0,268,0,0,266,0,0,32,0,0,264,0,0,265,0,0,38,0,0,269,0,0,270,0,0,33,0,0,39,0,0,7937,0,0,6913,0,0,7681,0,0,4098,0,0,7425,0,0,7169,0,0,271,0,0,274,0,0,273,0,0,272,0,0,1539,0,0,2818,0,0,3586,0,0,3330,0,0,3074,0,0,3842]),T.PICTURE_TYPE={INTRA:1,PREDICTIVE:2,B:3},T.START={SEQUENCE:179,SLICE_FIRST:1,SLICE_LAST:175,PICTURE:0,EXTENSION:181,USER_DATA:178};var v=function(A){function t(t){var i;return(i=A.call(this,t)||this).onDecodeCallback=t.onVideoDecode,i.module=t.wasmModule,i.bufferSize=t.videoBufferSize||524288,i.bufferMode=t.streaming?L.MODE.EVICT:L.MODE.EXPAND,i.decodeFirstFrame=!1!==t.decodeFirstFrame,i.hasSequenceHeader=!1,i}u(t,A);var i=t.prototype;return i.initializeWasmDecoder=function(){this.module.instance?(this.instance=this.module.instance,this.functions=this.module.instance.exports,this.decoder=this.functions._mpeg1_decoder_create(this.bufferSize,this.bufferMode)):console.warn("JSMpeg: WASM module not compiled yet")},i.destroy=function(){this.decoder&&this.functions._mpeg1_decoder_destroy(this.decoder)},i.bufferGetIndex=function(){if(this.decoder)return this.functions._mpeg1_decoder_get_index(this.decoder)},i.bufferSetIndex=function(A){this.decoder&&this.functions._mpeg1_decoder_set_index(this.decoder,A)},i.bufferWrite=function(A){this.decoder||this.initializeWasmDecoder();for(var t=0,i=0;i>2)),g=this.instance.heapU8.subarray(e,e+(this.codedSize>>2));this.destination.render(s,o,g,!1)}this.advanceDecodedTime(1/this.frameRate);var I=S()-A;return this.onDecodeCallback&&this.onDecodeCallback(this,I),!0},t}(J),x=function(A){function t(i){var e;(e=A.call(this,i)||this).onDecodeCallback=i.onAudioDecode;var s=i.audioBufferSize||131072,o=i.streaming?L.MODE.EVICT:L.MODE.EXPAND;e.bits=new L(s,o),e.left=new Float32Array(1152),e.right=new Float32Array(1152),e.sampleRate=44100,e.D=new Float32Array(1024),e.D.set(t.SYNTHESIS_WINDOW,0),e.D.set(t.SYNTHESIS_WINDOW,512),e.V=[new Float32Array(1024),new Float32Array(1024)],e.U=new Int32Array(32),e.VPos=0,e.allocation=[new Array(32),new Array(32)],e.scaleFactorInfo=[new Uint8Array(32),new Uint8Array(32)],e.scaleFactor=[new Array(32),new Array(32)],e.sample=[new Array(32),new Array(32)];for(var g=0;g<2;g++)for(var I=0;I<32;I++)e.scaleFactor[g][I]=[0,0,0],e.sample[g][I]=[0,0,0];return e}u(t,A);var i=t.prototype;return i.decode=function(){var A=S(),t=this.bits.index>>3;if(t>=this.bits.byteLength)return!1;var i=this.decodeFrame(this.left,this.right);if(this.bits.index=t+i<<3,!i)return!1;this.destination&&this.destination.play(this.sampleRate,this.left,this.right),this.advanceDecodedTime(this.left.length/this.sampleRate);var e=S()-A;return this.onDecodeCallback&&this.onDecodeCallback(this,e),!0},i.getCurrentTime=function(){var A=this.destination?this.destination.enqueuedTime:0;return this.decodedTime-A},i.decodeFrame=function(A,i){var e=this.bits.read(11),s=this.bits.read(2),o=this.bits.read(2),g=!this.bits.read(1);if(e!==t.FRAME_SYNC||s!==t.VERSION.MPEG_1||o!==t.LAYER.II)return 0;var I=this.bits.read(4)-1;if(I>13)return 0;var a=this.bits.read(2),B=t.SAMPLE_RATE[a];if(3===a)return 0;s===t.VERSION.MPEG_2&&(a+=4,I+=14);var r=this.bits.read(1);this.bits.read(1);var C=this.bits.read(2),n=0;C===t.MODE.JOINT_STEREO?n=this.bits.read(2)+1<<2:(this.bits.skip(2),n=C===t.MODE.MONO?0:32),this.bits.skip(4),g&&this.bits.skip(16);var E=144e3*t.BIT_RATE[I]/(B=t.SAMPLE_RATE[a])+r|0,Q=0,h=0;if(s===t.VERSION.MPEG_2)Q=2,h=30;else{var d=C===t.MODE.MONO?0:1,c=t.QUANT_LUT_STEP_1[d][I];h=63&(Q=t.QUANT_LUT_STEP_2[c][a]),Q>>=6}n>h&&(n=h);for(var l=0;l>1),U=this.VPos%128>>1;U<1024;){for(var J=0;J<32;++J)this.U[J]+=this.D[L++]*this.V[N][U++];U+=96,L+=32}for(U=1120-U,L-=480;U<1024;){for(var T=0;T<32;++T)this.U[T]+=this.D[L++]*this.V[N][U++];U+=96,L+=32}for(var v=0===N?A:i,x=0;x<32;x++)v[R+x]=this.U[x]/2147418112}R+=32}}return this.sampleRate=B,E},i.readAllocation=function(A,i){var e=t.QUANT_LUT_STEP_3[i][A],s=t.QUANT_LUT_STEP4[15&e][this.bits.read(e>>4)];return s?t.QUANT_TAB[s-1]:0},i.readSamples=function(A,i,e){var s=this.allocation[A][i],o=this.scaleFactor[A][i][e],g=this.sample[A][i],I=0;if(s){if(63===o)o=0;else{var a=o/3|0;o=t.SCALEFACTOR_BASE[o%3]+(1<
    >1)>>a}var B=s.levels;s.group?(I=this.bits.read(s.bits),g[0]=I%B,I=I/B|0,g[1]=I%B,g[2]=I/B|0):(g[0]=this.bits.read(s.bits),g[1]=this.bits.read(s.bits),g[2]=this.bits.read(s.bits));var r=65536/(B+1)|0;I=((B=(B+1>>1)-1)-g[0])*r,g[0]=I*(o>>12)+(I*(4095&o)+2048>>12)>>12,I=(B-g[1])*r,g[1]=I*(o>>12)+(I*(4095&o)+2048>>12)>>12,I=(B-g[2])*r,g[2]=I*(o>>12)+(I*(4095&o)+2048>>12)>>12}else g[0]=g[1]=g[2]=0},t.MatrixTransform=function(A,t,i,e){var s,o,g,I,a,B,r,C,n,E,Q,h,d,c,l,u,w,p,D,m,f,y,R,k,b,S,G,F,M,q,N,L,U;s=A[0][t]+A[31][t],o=.500602998235*(A[0][t]-A[31][t]),g=A[1][t]+A[30][t],I=.505470959898*(A[1][t]-A[30][t]),a=A[2][t]+A[29][t],B=.515447309923*(A[2][t]-A[29][t]),r=A[3][t]+A[28][t],C=.53104259109*(A[3][t]-A[28][t]),n=A[4][t]+A[27][t],E=.553103896034*(A[4][t]-A[27][t]),Q=A[5][t]+A[26][t],h=.582934968206*(A[5][t]-A[26][t]),d=A[6][t]+A[25][t],c=.622504123036*(A[6][t]-A[25][t]),l=A[7][t]+A[24][t],u=.674808341455*(A[7][t]-A[24][t]),w=A[8][t]+A[23][t],p=.744536271002*(A[8][t]-A[23][t]),D=A[9][t]+A[22][t],m=.839349645416*(A[9][t]-A[22][t]),f=A[10][t]+A[21][t],y=.972568237862*(A[10][t]-A[21][t]),R=A[11][t]+A[20][t],k=1.16943993343*(A[11][t]-A[20][t]),b=A[12][t]+A[19][t],S=1.48416461631*(A[12][t]-A[19][t]),G=A[13][t]+A[18][t],F=2.05778100995*(A[13][t]-A[18][t]),M=A[14][t]+A[17][t],q=3.40760841847*(A[14][t]-A[17][t]),U=s+(N=A[15][t]+A[16][t]),N=.502419286188*(s-N),s=g+M,M=.52249861494*(g-M),g=a+G,G=.566944034816*(a-G),a=r+b,b=.64682178336*(r-b),r=n+R,R=.788154623451*(n-R),n=Q+f,f=1.06067768599*(Q-f),Q=d+D,D=1.72244709824*(d-D),d=l+w,w=5.10114861869*(l-w),l=U+d,d=.509795579104*(U-d),U=s+Q,s=.601344886935*(s-Q),Q=g+n,n=.899976223136*(g-n),g=a+r,r=2.56291544774*(a-r),a=l+g,l=.541196100146*(l-g),g=U+Q,Q=1.30656296488*(U-Q),U=a+g,a=.707106781187*(a-g),g=l+Q,g+=l=.707106781187*(l-Q),Q=d+r,d=.541196100146*(d-r),r=s+n,n=1.30656296488*(s-n),s=Q+r,r=.707106781187*(Q-r),Q=d+n,s+=Q+=d=.707106781187*(d-n),Q+=r,r+=d,n=N+w,N=.509795579104*(N-w),w=M+D,M=.601344886935*(M-D),D=G+f,f=.899976223136*(G-f),G=b+R,R=2.56291544774*(b-R),b=n+G,n=.541196100146*(n-G),G=w+D,D=1.30656296488*(w-D),w=b+G,G=.707106781187*(b-G),b=n+D,D=.707106781187*(n-D),n=N+R,N=.541196100146*(N-R),R=M+f,f=1.30656296488*(M-f),M=n+R,R=.707106781187*(n-R),n=N+f,w+=M+=n+=N=.707106781187*(N-f),M+=b+=D,b+=n+=R,n+=G,G+=R+=N,R+=D,D+=N,f=o+(L=10.1900081235*(A[15][t]-A[16][t])),o=.502419286188*(o-L),L=I+q,I=.52249861494*(I-q),q=B+F,F=.566944034816*(B-F),B=C+S,C=.64682178336*(C-S),S=E+k,E=.788154623451*(E-k),k=h+y,y=1.06067768599*(h-y),h=c+m,m=1.72244709824*(c-m),c=u+p,u=5.10114861869*(u-p),p=f+c,c=.509795579104*(f-c),f=L+h,L=.601344886935*(L-h),h=q+k,k=.899976223136*(q-k),q=B+S,S=2.56291544774*(B-S),B=p+q,p=.541196100146*(p-q),q=f+h,h=1.30656296488*(f-h),f=B+q,q=.707106781187*(B-q),B=p+h,h=.707106781187*(p-h),p=c+S,S=.541196100146*(c-S),c=L+k,k=1.30656296488*(L-k),L=p+c,c=.707106781187*(p-c),p=S+k,L+=p+=k=.707106781187*(S-k),p+=c,S=c+k,c=o+u,o=.509795579104*(o-u),u=I+m,I=.601344886935*(I-m),m=F+y,y=.899976223136*(F-y),F=C+E,E=2.56291544774*(C-E),C=c+F,c=.541196100146*(c-F),F=u+m,m=1.30656296488*(u-m),u=C+F,F=.707106781187*(C-F),C=c+m,m=.707106781187*(c-m),c=o+E,o=.541196100146*(o-E),E=I+y,y=1.30656296488*(I-y),I=c+E,E=.707106781187*(c-E),c=o+y,f+=u+=I+=c+=o=.707106781187*(o-y),u+=L,L+=I+=C+=m,I+=B+=h,B+=C+=c+=E,C+=p,p+=c+=F,c+=q,q+=F+=E+=o,F+=S,S+=E+=m,E+=h,h+=m+=o,m+=k,k+=o,i[e+48]=-U,i[e+49]=i[e+47]=-f,i[e+50]=i[e+46]=-w,i[e+51]=i[e+45]=-u,i[e+52]=i[e+44]=-s,i[e+53]=i[e+43]=-L,i[e+54]=i[e+42]=-M,i[e+55]=i[e+41]=-I,i[e+56]=i[e+40]=-g,i[e+57]=i[e+39]=-B,i[e+58]=i[e+38]=-b,i[e+59]=i[e+37]=-C,i[e+60]=i[e+36]=-Q,i[e+61]=i[e+35]=-p,i[e+62]=i[e+34]=-n,i[e+63]=i[e+33]=-c,i[e+32]=-a,i[e+0]=a,i[e+31]=-q,i[e+1]=q,i[e+30]=-G,i[e+2]=G,i[e+29]=-F,i[e+3]=F,i[e+28]=-r,i[e+4]=r,i[e+27]=-S,i[e+5]=S,i[e+26]=-R,i[e+6]=R,i[e+25]=-E,i[e+7]=E,i[e+24]=-l,i[e+8]=l,i[e+23]=-h,i[e+9]=h,i[e+22]=-D,i[e+10]=D,i[e+21]=-m,i[e+11]=m,i[e+20]=-d,i[e+12]=d,i[e+19]=-k,i[e+13]=k,i[e+18]=-N,i[e+14]=N,i[e+17]=-o,i[e+15]=o,i[e+16]=0},t}(J);x.FRAME_SYNC=2047,x.VERSION={MPEG_2_5:0,MPEG_2:2,MPEG_1:3},x.LAYER={III:1,II:2,I:3},x.MODE={STEREO:0,JOINT_STEREO:1,DUAL_CHANNEL:2,MONO:3},x.SAMPLE_RATE=new Uint16Array([44100,48e3,32e3,0,22050,24e3,16e3,0]),x.BIT_RATE=new Uint16Array([32,48,56,64,80,96,112,128,160,192,224,256,320,384,8,16,24,32,40,48,56,64,80,96,112,128,144,160]),x.SCALEFACTOR_BASE=new Uint32Array([33554432,26632170,21137968]),x.SYNTHESIS_WINDOW=new Float32Array([0,-.5,-.5,-.5,-.5,-.5,-.5,-1,-1,-1,-1,-1.5,-1.5,-2,-2,-2.5,-2.5,-3,-3.5,-3.5,-4,-4.5,-5,-5.5,-6.5,-7,-8,-8.5,-9.5,-10.5,-12,-13,-14.5,-15.5,-17.5,-19,-20.5,-22.5,-24.5,-26.5,-29,-31.5,-34,-36.5,-39.5,-42.5,-45.5,-48.5,-52,-55.5,-58.5,-62.5,-66,-69.5,-73.5,-77,-80.5,-84.5,-88,-91.5,-95,-98,-101,-104,106.5,109,111,112.5,113.5,114,114,113.5,112,110.5,107.5,104,100,94.5,88.5,81.5,73,63.5,53,41.5,28.5,14.5,-1,-18,-36,-55.5,-76.5,-98.5,-122,-147,-173.5,-200.5,-229.5,-259.5,-290.5,-322.5,-355.5,-389.5,-424,-459.5,-495.5,-532,-568.5,-605,-641.5,-678,-714,-749,-783.5,-817,-849,-879.5,-908.5,-935,-959.5,-981,-1000.5,-1016,-1028.5,-1037.5,-1042.5,-1043.5,-1040,-1031.5,1018.5,1e3,976,946.5,911,869.5,822,767.5,707,640,565.5,485,397,302.5,201,92.5,-22.5,-144,-272.5,-407,-547.5,-694,-846,-1003,-1165,-1331.5,-1502,-1675.5,-1852.5,-2031.5,-2212.5,-2394,-2576.5,-2758.5,-2939.5,-3118.5,-3294.5,-3467.5,-3635.5,-3798.5,-3955,-4104.5,-4245.5,-4377.5,-4499,-4609.5,-4708,-4792.5,-4863.5,-4919,-4958,-4979.5,-4983,-4967.5,-4931.5,-4875,-4796,-4694.5,-4569.5,-4420,-4246,-4046,-3820,-3567,3287,2979.5,2644,2280.5,1888,1467.5,1018.5,541,35,-499,-1061,-1650,-2266.5,-2909,-3577,-4270,-4987.5,-5727.5,-6490,-7274,-8077.5,-8899.5,-9739,-10594.5,-11464.5,-12347,-13241,-14144.5,-15056,-15973.5,-16895.5,-17820,-18744.5,-19668,-20588,-21503,-22410.5,-23308.5,-24195,-25068.5,-25926.5,-26767,-27589,-28389,-29166.5,-29919,-30644.5,-31342,-32009.5,-32645,-33247,-33814.5,-34346,-34839.5,-35295,-35710,-36084.5,-36417.5,-36707.5,-36954,-37156.5,-37315,-37428,-37496,37519,37496,37428,37315,37156.5,36954,36707.5,36417.5,36084.5,35710,35295,34839.5,34346,33814.5,33247,32645,32009.5,31342,30644.5,29919,29166.5,28389,27589,26767,25926.5,25068.5,24195,23308.5,22410.5,21503,20588,19668,18744.5,17820,16895.5,15973.5,15056,14144.5,13241,12347,11464.5,10594.5,9739,8899.5,8077.5,7274,6490,5727.5,4987.5,4270,3577,2909,2266.5,1650,1061,499,-35,-541,-1018.5,-1467.5,-1888,-2280.5,-2644,-2979.5,3287,3567,3820,4046,4246,4420,4569.5,4694.5,4796,4875,4931.5,4967.5,4983,4979.5,4958,4919,4863.5,4792.5,4708,4609.5,4499,4377.5,4245.5,4104.5,3955,3798.5,3635.5,3467.5,3294.5,3118.5,2939.5,2758.5,2576.5,2394,2212.5,2031.5,1852.5,1675.5,1502,1331.5,1165,1003,846,694,547.5,407,272.5,144,22.5,-92.5,-201,-302.5,-397,-485,-565.5,-640,-707,-767.5,-822,-869.5,-911,-946.5,-976,-1e3,1018.5,1031.5,1040,1043.5,1042.5,1037.5,1028.5,1016,1000.5,981,959.5,935,908.5,879.5,849,817,783.5,749,714,678,641.5,605,568.5,532,495.5,459.5,424,389.5,355.5,322.5,290.5,259.5,229.5,200.5,173.5,147,122,98.5,76.5,55.5,36,18,1,-14.5,-28.5,-41.5,-53,-63.5,-73,-81.5,-88.5,-94.5,-100,-104,-107.5,-110.5,-112,-113.5,-114,-114,-113.5,-112.5,-111,-109,106.5,104,101,98,95,91.5,88,84.5,80.5,77,73.5,69.5,66,62.5,58.5,55.5,52,48.5,45.5,42.5,39.5,36.5,34,31.5,29,26.5,24.5,22.5,20.5,19,17.5,15.5,14.5,13,12,10.5,9.5,8.5,8,7,6.5,5.5,5,4.5,4,3.5,3.5,3,2.5,2.5,2,2,1.5,1.5,1,1,1,1,.5,.5,.5,.5,.5,.5]),x.QUANT_LUT_STEP_1=[[0,0,1,1,1,2,2,2,2,2,2,2,2,2],[0,0,0,0,0,0,1,1,1,2,2,2,2,2]],x.QUANT_TAB={A:91,B:94,C:8,D:12},x.QUANT_LUT_STEP_2=[[x.QUANT_TAB.C,x.QUANT_TAB.C,x.QUANT_TAB.D],[x.QUANT_TAB.A,x.QUANT_TAB.A,x.QUANT_TAB.A],[x.QUANT_TAB.B,x.QUANT_TAB.A,x.QUANT_TAB.B]],x.QUANT_LUT_STEP_3=[[68,68,52,52,52,52,52,52,52,52,52,52],[67,67,67,66,66,66,66,66,66,66,66,49,49,49,49,49,49,49,49,49,49,49,49,32,32,32,32,32,32,32],[69,69,69,69,52,52,52,52,52,52,52,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36]],x.QUANT_LUT_STEP4=[[0,1,2,17],[0,1,2,3,4,5,6,17],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17],[0,1,3,5,6,7,8,9,10,11,12,13,14,15,16,17],[0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,17],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]],x.QUANT_TAB=[{levels:3,group:1,bits:5},{levels:5,group:1,bits:7},{levels:7,group:0,bits:3},{levels:9,group:1,bits:10},{levels:15,group:0,bits:4},{levels:31,group:0,bits:5},{levels:63,group:0,bits:6},{levels:127,group:0,bits:7},{levels:255,group:0,bits:8},{levels:511,group:0,bits:9},{levels:1023,group:0,bits:10},{levels:2047,group:0,bits:11},{levels:4095,group:0,bits:12},{levels:8191,group:0,bits:13},{levels:16383,group:0,bits:14},{levels:32767,group:0,bits:15},{levels:65535,group:0,bits:16}];var Y=function(A){function t(t){var i;return(i=A.call(this,t)||this).onDecodeCallback=t.onAudioDecode,i.module=t.wasmModule,i.bufferSize=t.audioBufferSize||131072,i.bufferMode=t.streaming?L.MODE.EVICT:L.MODE.EXPAND,i.sampleRate=0,i}u(t,A);var i=t.prototype;return i.initializeWasmDecoder=function(){this.module.instance?(this.instance=this.module.instance,this.functions=this.module.instance.exports,this.decoder=this.functions._mp2_decoder_create(this.bufferSize,this.bufferMode)):console.warn("JSMpeg: WASM module not compiled yet")},i.destroy=function(){this.decoder&&this.functions._mp2_decoder_destroy(this.decoder)},i.bufferGetIndex=function(){if(this.decoder)return this.functions._mp2_decoder_get_index(this.decoder)},i.bufferSetIndex=function(A){this.decoder&&this.functions._mp2_decoder_set_index(this.decoder,A)},i.bufferWrite=function(A){this.decoder||this.initializeWasmDecoder();for(var t=0,i=0;i>4<<4;this.gl.viewport(0,0,i,this.height)},t.createTexture=function(A,t){var i=this.gl,e=i.createTexture();return i.bindTexture(i.TEXTURE_2D,e),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),i.uniform1i(i.getUniformLocation(this.program,t),A),e},t.createProgram=function(A,t){var i=this.gl,e=i.createProgram();return i.attachShader(e,this.compileShader(i.VERTEX_SHADER,A)),i.attachShader(e,this.compileShader(i.FRAGMENT_SHADER,t)),i.linkProgram(e),i.useProgram(e),e},t.compileShader=function(A,t){var i=this.gl,e=i.createShader(A);if(i.shaderSource(e,t),i.compileShader(e),!i.getShaderParameter(e,i.COMPILE_STATUS))throw new Error(i.getShaderInfoLog(e));return e},t.allowsClampedTextureData=function(){var A=this.gl,t=A.createTexture();return A.bindTexture(A.TEXTURE_2D,t),A.texImage2D(A.TEXTURE_2D,0,A.LUMINANCE,1,1,0,A.LUMINANCE,A.UNSIGNED_BYTE,new Uint8ClampedArray([0])),0===A.getError()},t.renderProgress=function(A){var t=this.gl;t.useProgram(this.loadingProgram);var i=t.getUniformLocation(this.loadingProgram,"progress");t.uniform1f(i,A),t.drawArrays(t.TRIANGLE_STRIP,0,4)},t.render=function(A,t,i,e){if(this.enabled){var s=this.gl,o=this.width+15>>4<<4,g=this.height,I=o>>1,a=g>>1;e&&this.shouldCreateUnclampedViews&&(A=new Uint8Array(A.buffer),t=new Uint8Array(t.buffer),i=new Uint8Array(i.buffer)),s.useProgram(this.program),this.updateTexture(s.TEXTURE0,this.textureY,o,g,A),this.updateTexture(s.TEXTURE1,this.textureCb,I,a,t),this.updateTexture(s.TEXTURE2,this.textureCr,I,a,i),s.drawArrays(s.TRIANGLE_STRIP,0,4)}},t.updateTexture=function(A,t,i,e,s){var o=this.gl;o.activeTexture(A),o.bindTexture(o.TEXTURE_2D,t),this.hasTextureData[A]?o.texSubImage2D(o.TEXTURE_2D,0,0,0,i,e,o.LUMINANCE,o.UNSIGNED_BYTE,s):(this.hasTextureData[A]=!0,o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,i,e,0,o.LUMINANCE,o.UNSIGNED_BYTE,s))},t.deleteTexture=function(A,t){var i=this.gl;i.activeTexture(A),i.bindTexture(i.TEXTURE_2D,null),i.deleteTexture(t)},A.IsSupported=function(){try{if(!window.WebGLRenderingContext)return!1;var A=document.createElement("canvas");return!(!A.getContext("webgl")&&!A.getContext("experimental-webgl"))}catch(A){return!1}},A}();H.SHADER={FRAGMENT_YCRCB_TO_RGBA:["precision mediump float;","uniform sampler2D textureY;","uniform sampler2D textureCb;","uniform sampler2D textureCr;","varying vec2 texCoord;","mat4 rec601 = mat4(","1.16438, 0.00000, 1.59603, -0.87079,","1.16438, -0.39176, -0.81297, 0.52959,","1.16438, 2.01723, 0.00000, -1.08139,","0, 0, 0, 1",");","void main() {","float y = texture2D(textureY, texCoord).r;","float cb = texture2D(textureCb, texCoord).r;","float cr = texture2D(textureCr, texCoord).r;","gl_FragColor = vec4(y, cr, cb, 1.0) * rec601;","}"].join("\n"),FRAGMENT_LOADING:["precision mediump float;","uniform float progress;","varying vec2 texCoord;","void main() {","float c = ceil(progress-(1.0-texCoord.y));","gl_FragColor = vec4(c,c,c,1);","}"].join("\n"),VERTEX_IDENTITY:["attribute vec2 vertex;","varying vec2 texCoord;","void main() {","texCoord = vertex;","gl_Position = vec4((vertex * 2.0 - 1.0) * vec2(1, -1), 0.0, 1.0);","}"].join("\n")};var P=function(){function A(A){A.canvas?(this.canvas=A.canvas,this.ownsCanvasElement=!1):(this.canvas=document.createElement("canvas"),this.ownsCanvasElement=!0),this.width=this.canvas.width,this.height=this.canvas.height,this.enabled=!0,this.context=this.canvas.getContext("2d")}var t=A.prototype;return t.destroy=function(){this.ownsCanvasElement&&this.canvas.remove()},t.resize=function(A,t){this.width=0|A,this.height=0|t,this.canvas.width=this.width,this.canvas.height=this.height,this.imageData=this.context.getImageData(0,0,this.width,this.height),G(this.imageData.data,255)},t.renderProgress=function(A){var t=this.canvas.width,i=this.canvas.height,e=this.context;e.fillStyle="#222",e.fillRect(0,0,t,i),e.fillStyle="#fff",e.fillRect(0,i-i*A,t,i*A)},t.render=function(A,t,i){this.YCbCrToRGBA(A,t,i,this.imageData.data),this.context.putImageData(this.imageData,0,0)},t.YCbCrToRGBA=function(A,t,i,e){if(this.enabled)for(var s,o,g,I,a,B=this.width+15>>4<<4,r=B>>1,C=0,n=B,E=B+(B-this.width),Q=0,h=r-(this.width>>1),d=0,c=4*this.width,l=4*this.width,u=this.width>>1,w=this.height>>1,p=0;p>8)-179,I=(88*o>>8)-44+(183*s>>8)-91,a=o+(198*o>>8)-227;var m=A[C++],f=A[C++];e[d]=m+g,e[d+1]=m-I,e[d+2]=m+a,e[d+4]=f+g,e[d+5]=f-I,e[d+6]=f+a,d+=8;var y=A[n++],R=A[n++];e[c]=y+g,e[c+1]=y-I,e[c+2]=y+a,e[c+4]=R+g,e[c+5]=R-I,e[c+6]=R+a,c+=8}C+=E,n+=E,d+=l,c+=l,Q+=h}},A}(),O=function(){function A(){this.context=A.CachedContext=A.CachedContext||new(window.AudioContext||window.webkitAudioContext),this.gain=this.context.createGain(),this.destination=this.gain,this.gain.connect(this.context.destination),this.context._connections=(this.context._connections||0)+1,this.startTime=0,this.buffer=null,this.wallclockStartTime=0,this.volume=1,this.enabled=!0,this.unlocked=!A.NeedsUnlocking(),Object.defineProperty(this,"enqueuedTime",{get:this.getEnqueuedTime})}var t=A.prototype;return t.destroy=function(){this.gain.disconnect(),this.context._connections--,0===this.context._connections&&(this.context.close(),A.CachedContext=null)},t.play=function(A,t,i){if(this.enabled){if(!this.unlocked){var e=S();return this.wallclockStartTimethis.memory.buffer.byteLength){var i=this.brk-this.memory.buffer.byteLength,e=Math.ceil(i/this.pageSize);this.memory.grow(e),this.createHeapViews()}return t},t.c_abort=function(A){console.warn("JSMPeg: WASM abort",arguments)},t.c_assertFail=function(A){console.warn("JSMPeg: WASM ___assert_fail",arguments)},t.readDylinkSection=function(A){var t=new Uint8Array(A),i=0,e=function(){for(var A=0,e=1;;){var s=t[i++];if(A+=(127&s)*e,e*=128,!(128&s))return A}},s=function(A){for(var e=0;ethis.maxAudioLag&&(this.audioOut.resetEnqueuedTime(),this.audioOut.enabled=!1),A=this.audio.decode()}while(A);this.audioOut.enabled=!0}},t.updateForStaticFile=function(){var A=!1,t=0;if(this.audio&&this.audio.canPlay){for(;!A&&this.audio.decodedTime-this.audio.currentTime<.25;)A=!this.audio.decode();this.video&&this.video.currentTime0&&(e>2*s&&(this.startTime+=e),A=!this.video.decode()),t=this.demuxer.currentTime-i}this.source.resume(t),A&&this.source.completed?this.loop?this.seek(0):(this.stop(),this.options.onEnded&&this.options.onEnded(this)):A&&this.options.onStalled&&this.options.onStalled(this)},A}(),W={Player:X,VideoElement:b,BitBuffer:L,Source:{Ajax:M,AjaxProgressive:q,WebSocket:N,Fetch:function(){function A(A,t){this.url=A,this.destination=null,this.request=null,this.streaming=!0,this.completed=!1,this.established=!1,this.progress=0,this.aborted=!1,this.onEstablishedCallback=t.onSourceEstablished,this.onCompletedCallback=t.onSourceCompleted,t.hookOnEstablished&&(this.hookOnEstablished=t.hookOnEstablished)}var t=A.prototype;return t.connect=function(A){this.destination=A},t.start=function(){var A=this,t={method:"GET",headers:new Headers,cache:"default"};self.fetch(this.url,t).then((function(t){if(t.ok&&t.status>=200&&t.status<=299)return A.progress=1,A.established=!0,A.pump(t.body.getReader())})).catch((function(A){throw A}))},t.pump=function(A){var t=this;return A.read().then((function(i){if(!i.done)return t.aborted?A.cancel():(t.destination&&t.destination.write(i.value.buffer),t.pump(A));t.completed=!0})).catch((function(A){throw A}))},t.resume=function(){},t.abort=function(){this.aborted=!0},A}()},Demuxer:{TS:U},Decoder:{Base:J,MPEG1Video:T,MPEG1VideoWASM:v,MP2Audio:x,MP2AudioWASM:Y},Renderer:{WebGL:H,Canvas2D:P},AudioOutput:{WebAudio:O},WASMModule:K,Now:S,CreateVideoElements:function(){for(var A=document.querySelectorAll(".jsmpeg"),t=0;tthis.q=A))}resume(){this.q?.(),this.Z=this.q=void 0}} +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const V=A=>!e(A)&&"function"==typeof A.then,z=1073741823;const $=A(class extends t{constructor(){super(...arguments),this._$Cwt=z,this._$Cbt=[],this._$CK=new Z(this),this._$CX=new j}render(...A){return A.find((A=>!V(A)))??i}update(A,t){const e=this._$Cbt;let s=e.length;this._$Cbt=t;const o=this._$CK,g=this._$CX;this.isConnected||this.disconnected();for(let A=0;Athis._$Cwt);A++){const i=t[A];if(!V(i))return this._$Cwt=A,i;A{for(;g.get();)await g.get();const t=o.deref();if(void 0!==t){const e=t._$Cbt.indexOf(i);e>-1&&e{let i=!1;const e=new W.VideoElement(this,A,{canvas:this._jsmpegCanvasElement},{pauseWhenHidden:!1,autoplay:!1,protocols:[],audio:!1,videoBufferSize:4194304,preserveDrawingBuffer:!0,...this.cameraConfig?.jsmpeg?.options,reconnectInterval:0,onVideoDecode:()=>{!i&&this._jsmpegCanvasElement&&(i=!0,t(e))},onPlay:()=>g(this),onPause:()=>I(this)})})),this._jsmpegCanvasElement&&a(this,this._jsmpegCanvasElement,{player:this,capabilities:{supportsPause:!0},technology:["jsmpeg"]})}_resetPlayer(){if(this._refreshPlayerTimer.stop(),this._jsmpegVideoPlayer){try{this._jsmpegVideoPlayer.destroy()}catch(A){}this._jsmpegVideoPlayer=void 0}this._jsmpegCanvasElement&&(this._jsmpegCanvasElement.remove(),this._jsmpegCanvasElement=void 0)}connectedCallback(){super.connectedCallback(),this.isConnected&&this.requestUpdate()}disconnectedCallback(){this.isConnected||this._resetPlayer(),super.disconnectedCallback()}async _refreshPlayer(){if(!this.hass)return;this._resetPlayer(),this._jsmpegCanvasElement=document.createElement("canvas"),this._jsmpegCanvasElement.className="media";const A=this.cameraEndpoints?.jsmpeg;if(!A)return B(this,r("error.live_camera_no_endpoint"),{context:this.cameraConfig});const t=await c(this,this.hass,A,86400);t&&(await this._createJSMPEGPlayer(t),this._refreshPlayerTimer.start(82800,(()=>this.requestUpdate())))}render(){return C`${$((async()=>(await this._refreshPlayer(),this._jsmpegVideoPlayer&&this._jsmpegCanvasElement?C`${this._jsmpegCanvasElement}`:B(this,r("error.jsmpeg_no_player"))))(),n({cardWideConfig:this.cardWideConfig}))}`}static get styles(){return E(":host {\n width: 100%;\n height: 100%;\n display: flex;\n}\n\ncanvas {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n object-view-box: inset(var(--frigate-card-media-layout-view-box-top, 0%) var(--frigate-card-media-layout-view-box-right, 0%) var(--frigate-card-media-layout-view-box-bottom, 0%) var(--frigate-card-media-layout-view-box-left, 0%));\n}")}};Q([h({attribute:!1})],AA.prototype,"cameraConfig",void 0),Q([h({attribute:!1})],AA.prototype,"cameraEndpoints",void 0),Q([h({attribute:!1})],AA.prototype,"cardWideConfig",void 0),AA=Q([d("frigate-card-live-jsmpeg")],AA);export{AA as FrigateCardLiveJSMPEG}; diff --git a/config/www/community/frigate-hass-card/jsmpeg-05cdf58e.js.gz b/config/www/community/frigate-hass-card/jsmpeg-05cdf58e.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..e582a0e2e50ddfcc5d97eb8c7ff1b3e7125a0d4f GIT binary patch literal 42824 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 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/jsmpeg-45778f1d.js b/config/www/community/frigate-hass-card/jsmpeg-45778f1d.js new file mode 100644 index 00000000..fa1a1a43 --- /dev/null +++ b/config/www/community/frigate-hass-card/jsmpeg-45778f1d.js @@ -0,0 +1,12 @@ +import{cL as A,eN as t,dC as i,eO as e,a as s,dD as o,dy as g,dz as I,dw as a,cQ as B,l as r,x as C,dl as n,r as E,_ as Q,n as h,t as d}from"./card-7cd05290.js";import{g as c}from"./endpoint-760ea36f.js";function l(){return l=Object.assign?Object.assign.bind():function(A){for(var t=1;t"string"==typeof A&&A.constructor===String,D=function(A){var t,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t=A,"Promise"===Object.prototype.toString.call(t).slice(8,-1)?A:new Promise((t=>{A(),setTimeout(t,i)}))};var m="WJ3NAvwFY9",f="tR2-0dd-e1",y="ZgIIHVSSYI",R="kAA8SjbHe2",k="OueN4AU4CJ";!function(A,t){void 0===t&&(t={});var i=t.insertAt;if(A&&"undefined"!=typeof document){var e=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css","top"===i&&e.firstChild?e.insertBefore(s,e.firstChild):e.appendChild(s),s.styleSheet?s.styleSheet.cssText=A:s.appendChild(document.createTextNode(A))}}(".WJ3NAvwFY9,.ZgIIHVSSYI,.kAA8SjbHe2,.tR2-0dd-e1{height:100%;left:0;position:absolute;top:0;width:100%;z-index:1}.ZgIIHVSSYI{-ms-flex-pack:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;justify-content:center}.WJ3NAvwFY9,.tR2-0dd-e1{display:block}.tR2-0dd-e1.OueN4AU4CJ{display:none}.ZgIIHVSSYI,.kAA8SjbHe2{-webkit-tap-highlight-color:rgba(255,0,0,0);cursor:pointer;opacity:.7}.OueN4AU4CJ.ZgIIHVSSYI,.OueN4AU4CJ.kAA8SjbHe2{display:none}.ZgIIHVSSYI{z-index:10}.ZgIIHVSSYI>svg{fill:#fff;height:12vw;max-height:60px;max-width:60px;width:12vw}.kAA8SjbHe2{-ms-flex-pack:end;-ms-flex-align:end;-webkit-align-items:flex-end;align-items:flex-end;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-end;justify-content:flex-end;z-index:10}.kAA8SjbHe2>svg{fill:#fff;height:9vw;margin:0 15px 15px 0;max-height:40px;max-width:40px;width:9vw}");var b=function(){function A(A,t,i,e){var s=void 0===i?{}:i,o=s.canvas,g=void 0===o?"":o,I=s.poster,a=void 0===I?"":I,B=s.autoplay,r=void 0!==B&&B,C=s.autoSetWrapperSize,n=void 0!==C&&C,E=s.loop,Q=void 0!==E&&E,h=s.control,d=void 0===h||h,c=s.decodeFirstFrame,u=void 0===c||c,w=s.picMode,D=void 0!==w&&w,m=s.progressive,f=void 0===m||m,y=s.chunkSize,R=void 0===y?1048576:y,k=s.hooks,b=void 0===k?{}:k;void 0===e&&(e={}),this.options=l({videoUrl:t,canvas:g,poster:a,picMode:D,autoplay:r,autoSetWrapperSize:n,loop:Q,control:d,decodeFirstFrame:u,progressive:f,chunkSize:R,hooks:l({play:function(){},pause:function(){},stop:function(){},load:function(){}},b)},e),this.options.needPlayButton=this.options.control&&!this.options.picMode,this.player=null,this.els={wrapper:p(A)?document.querySelector(A):A,canvas:null,playButton:document.createElement("div"),unmuteButton:null,poster:null},"static"===window.getComputedStyle(this.els.wrapper).getPropertyValue("position")&&(this.els.wrapper.style.position="relative"),this.els.wrapper.clientRect=this.els.wrapper.getBoundingClientRect(),this.initCanvas(),this.initPlayButton(),this.initPlayer()}var t=A.prototype;return t.initCanvas=function(){this.options.canvas?this.els.canvas=p(this.options.canvas)?document.querySelector(this.options.canvas):this.options.canvas:(this.els.canvas=document.createElement("canvas"),this.els.canvas.classList.add(m),this.els.wrapper.appendChild(this.els.canvas))},t.initPlayer=function(){var A=this;this.options=l(this.options,{canvas:this.els.canvas});var t=l({},this.options,{autoplay:!1});if(this.player=new X(this.options.videoUrl,t,{play:function(){A.options.needPlayButton&&A.els.playButton.classList.add(k),A.els.poster&&A.els.poster.classList.add(k),A.options.hooks.play()},pause:function(){A.options.needPlayButton&&A.els.playButton.classList.remove(k),A.options.hooks.pause()},stop:function(){A.els.poster&&A.els.poster.classList.remove(k),A.options.hooks.stop()},load:function(){A.options.autoplay&&A.play(),A._autoSetWrapperSize(),A.options.hooks.load()}}),this._copyPlayerFuncs(),this.els.wrapper.playerInstance=this.player,!this.options.poster||this.options.autoplay||this.player.options.streaming||(this.options.decodeFirstFrame=!1,this.els.poster=new Image,this.els.poster.src=this.options.poster,this.els.poster.classList.add(f),this.els.wrapper.appendChild(this.els.poster)),this.player.options.streaming||this.els.wrapper.addEventListener("click",this.onClick.bind(this)),(this.options.autoplay||this.player.options.streaming)&&this.els.playButton.classList.add(k),this.player.audioOut&&!this.player.audioOut.unlocked){var i=this.els.wrapper;(this.options.autoplay||this.player.options.streaming)&&(this.els.unmuteButton=document.createElement("div"),this.els.unmuteButton.innerHTML='\n\n \n\n',this.els.unmuteButton.classList.add(R),this.els.wrapper.appendChild(this.els.unmuteButton),i=this.els.unmuteButton),this.unlockAudioBound=this.onUnlockAudio.bind(this,i),i.addEventListener("touchstart",this.unlockAudioBound,!1),i.addEventListener("click",this.unlockAudioBound,!0)}},t.initPlayButton=function(){this.options.needPlayButton&&(this.els.playButton.classList.add(y),this.els.playButton.innerHTML='\n\n \n\n',this.els.wrapper.appendChild(this.els.playButton))},t._autoSetWrapperSize=function(){var A=this;if(!this.options.autoSetWrapperSize)return Promise.resolve();var t=this.player.video.destination;return t?Promise.resolve().then((function(){return D((function(){A.els.wrapper.style.width=t.width+"px",A.els.wrapper.style.height=t.height+"px"}))})):Promise.resolve()},t.onUnlockAudio=function(A,t){var i=this;this.els.unmuteButton&&(t.preventDefault(),t.stopPropagation()),this.player.audioOut.unlock((function(){i.els.unmuteButton&&i.els.unmuteButton.classList.add(k),A.removeEventListener("touchstart",i.unlockAudioBound),A.removeEventListener("click",i.unlockAudioBound)}))},t.onClick=function(){this.options.control&&(this.player.isPlaying?this.pause():this.play())},t._copyPlayerFuncs=function(){var A=this;this.play=function(){return A.player.play()},this.pause=function(){return A.player.pause()},this.stop=function(){return A.player.stop()},this.destroy=function(){A.player.destroy(),A.els.wrapper.innerHTML="",A.els.wrapper.playerInstance=null}},A}(),S=function(){return window.performance?window.performance.now()/1e3:Date.now()/1e3},G=function(A,t){if(A.fill)A.fill(t);else for(var i=0;iA&&this.loadNextChunk())},t.destroy=function(){this.request.abort(),this.aborted=!0},t.loadNextChunk=function(){var A=this,t=this.loadedSize,i=Math.min(this.loadedSize+this.chunkSize-1,this.fileSize-1);if(t>=this.fileSize||this.aborted)return this.completed=!0,void(this.onCompletedCallback&&this.onCompletedCallback(this));this.isLoading=!0,this.loadStartTime=S(),this.request=new XMLHttpRequest,this.request.onreadystatechange=function(){A.request.readyState===A.request.DONE&&A.request.status>=200&&A.request.status<300?A.onChunkLoad(A.request.response):A.request.readyState===A.request.DONE&&A.loadFails++<3&&A.loadNextChunk()},0===t&&(this.request.onprogress=this.onProgress.bind(this)),this.request.open("GET",this.url+"?"+t+"-"+i),this.request.setRequestHeader("Range","bytes="+t+"-"+i),this.request.responseType="arraybuffer",this.request.send()},t.onProgress=function(A){this.progress=A.loaded/A.total},t.onChunkLoad=function(A){var t=!this.established;this.established=!0,this.progress=1,this.loadedSize+=A.byteLength,this.loadFails=0,this.isLoading=!1,t&&this.hookOnEstablished&&this.hookOnEstablished(),t&&this.onEstablishedCallback&&this.onEstablishedCallback(this),this.destination&&this.destination.write(A),this.loadTime=S()-this.loadStartTime,this.throttled||this.loadNextChunk()},A}(),N=function(){function A(A,t){this.url=A,this.options=t,this.socket=null,this.streaming=!0,this.callbacks={connect:[],data:[]},this.destination=null,this.reconnectInterval=void 0!==t.reconnectInterval?t.reconnectInterval:5,this.shouldAttemptReconnect=!!this.reconnectInterval,this.completed=!1,this.established=!1,this.progress=0,this.reconnectTimeoutId=0,this.onEstablishedCallback=t.onSourceEstablished,this.onCompletedCallback=t.onSourceCompleted,t.hookOnEstablished&&(this.hookOnEstablished=t.hookOnEstablished)}var t=A.prototype;return t.connect=function(A){this.destination=A},t.destroy=function(){clearTimeout(this.reconnectTimeoutId),this.shouldAttemptReconnect=!1,this.socket.close()},t.start=function(){this.shouldAttemptReconnect=!!this.reconnectInterval,this.progress=0,this.established=!1,this.options.protocols?this.socket=new WebSocket(this.url,this.options.protocols):this.socket=new WebSocket(this.url),this.socket.binaryType="arraybuffer",this.socket.onmessage=this.onMessage.bind(this),this.socket.onopen=this.onOpen.bind(this),this.socket.onerror=this.onClose.bind(this),this.socket.onclose=this.onClose.bind(this)},t.resume=function(){},t.onOpen=function(){this.progress=1},t.onClose=function(){var A=this;this.shouldAttemptReconnect&&(clearTimeout(this.reconnectTimeoutId),this.reconnectTimeoutId=setTimeout((function(){A.start()}),1e3*this.reconnectInterval))},t.onMessage=function(A){var t=!this.established;this.established=!0,t&&this.hookOnEstablished&&this.hookOnEstablished(),t&&this.onEstablishedCallback&&this.onEstablishedCallback(this),this.destination&&this.destination.write(A.data)},A}(),L=function(){function A(t,i){"object"==typeof t?(this.bytes=t instanceof Uint8Array?t:new Uint8Array(t),this.byteLength=this.bytes.length):(this.bytes=new Uint8Array(t||1048576),this.byteLength=0),this.mode=i||A.MODE.EXPAND,this.index=0}var t=A.prototype;return t.resize=function(A){var t=new Uint8Array(A);0!==this.byteLength&&(this.byteLength=Math.min(this.byteLength,A),t.set(this.bytes,0,this.byteLength)),this.bytes=t,this.index=Math.min(this.index,this.byteLength<<3)},t.evict=function(A){var t=this.index>>3,i=this.bytes.length-this.byteLength;if(this.index===this.byteLength<<3||A>i+t)return this.byteLength=0,void(this.index=0);0!==t&&(this.bytes.copyWithin?this.bytes.copyWithin(0,t,this.byteLength):this.bytes.set(this.bytes.subarray(t,this.byteLength)),this.byteLength-=t,this.index-=t<<3)},t.write=function(t){var i="object"==typeof t[0],e=0,s=this.bytes.length-this.byteLength;if(i){e=0;for(var o=0;os)if(this.mode===A.MODE.EXPAND){var g=Math.max(2*this.bytes.length,e-s);this.resize(g)}else this.evict(e);if(i)for(var I=0;I>3;A>3;return A>=this.byteLength||0===this.bytes[A]&&0===this.bytes[A+1]&&1===this.bytes[A+2]},t.peek=function(A){for(var t=this.index,i=0;A;){var e=8-(7&t),s=e>3]&255>>8-s<>o,t+=s,A-=s}return i},t.read=function(A){var t=this.peek(A);return this.index+=A,t},t.skip=function(A){return this.index+=A},t.rewind=function(A){this.index=Math.max(this.index-A,0)},t.has=function(A){return(this.byteLength<<3)-this.index>=A},A}();L.MODE={EVICT:1,EXPAND:2};var U=function(){function A(){this.bits=null,this.leftoverBytes=null,this.guessVideoFrameEnd=!0,this.pidsToStreamIds={},this.pesPacketInfo={},this.startTime=0,this.currentTime=0}var t=A.prototype;return t.connect=function(A,t){this.pesPacketInfo[A]={destination:t,currentLength:0,totalLength:0,pts:0,buffers:[]}},t.write=function(A){if(this.leftoverBytes){var t=A.byteLength+this.leftoverBytes.byteLength;this.bits=new L(t),this.bits.write([this.leftoverBytes,A])}else this.bits=new L(A);for(;this.bits.has(1504)&&this.parsePacket(););var i=this.bits.byteLength-(this.bits.index>>3);this.leftoverBytes=i>0?this.bits.bytes.subarray(this.bits.index>>3):null},t.parsePacket=function(){if(71!==this.bits.read(8)&&!this.resync())return!1;var A=187+(this.bits.index>>3);this.bits.read(1);var t=this.bits.read(1);this.bits.read(1);var i=this.bits.read(13);this.bits.read(2);var e=this.bits.read(2);this.bits.read(4);var s=this.pidsToStreamIds[i];if(t&&s){var o=this.pesPacketInfo[s];o&&o.currentLength&&this.packetComplete(o)}if(1&e){if(2&e){var g=this.bits.read(8);this.bits.skip(g<<3)}if(t&&this.bits.nextBytesAreStartCode()){this.bits.skip(24),s=this.bits.read(8),this.pidsToStreamIds[i]=s;var I=this.bits.read(16);this.bits.skip(8);var a=this.bits.read(2);this.bits.skip(6);var B=this.bits.read(8),r=this.bits.index+(B<<3),C=this.pesPacketInfo[s];if(C){var n=0;if(2&a){this.bits.skip(4);var E=this.bits.read(3);this.bits.skip(1);var Q=this.bits.read(15);this.bits.skip(1);var h=this.bits.read(15);this.bits.skip(1),n=(1073741824*E+32768*Q+h)/9e4,this.currentTime=n,-1===this.startTime&&(this.startTime=n)}var d=I?I-B-3:0;this.packetStart(C,n,d)}this.bits.index=r}if(s){var c=this.pesPacketInfo[s];if(c){var l=this.bits.index>>3,u=!t&&2&e;(this.packetAddData(c,l,A)||this.guessVideoFrameEnd&&u)&&this.packetComplete(c)}}}return this.bits.index=A<<3,!0},t.resync=function(){if(!this.bits.has(9024))return!1;for(var A=this.bits.index>>3,t=0;t<187;t++)if(71===this.bits.bytes[A+t]){for(var i=!0,e=1;e<5;e++)if(71!==this.bits.bytes[A+t+188*e]){i=!1;break}if(i)return this.bits.index=A+t+1<<3,!0}return console.warn("JSMpeg: Possible garbage data. Skipping."),this.bits.skip(1496),!1},t.packetStart=function(A,t,i){A.totalLength=i,A.currentLength=0,A.pts=t},t.packetAddData=function(A,t,i){return A.buffers.push(this.bits.bytes.subarray(t,i)),A.currentLength+=i-t,0!==A.totalLength&&A.currentLength>=A.totalLength},t.packetComplete=function(A){A.destination.write(A.pts,A.buffers),A.totalLength=0,A.currentLength=0,A.buffers=[]},A}();U.STREAM={PACK_HEADER:186,SYSTEM_HEADER:187,PROGRAM_MAP:188,PRIVATE_1:189,PADDING:190,PRIVATE_2:191,AUDIO_1:192,VIDEO_1:224,DIRECTORY:255};var J=function(){function A(A){this.destination=null,this.canPlay=!1,this.collectTimestamps=!A.streaming,this.bytesWritten=0,this.timestamps=[],this.timestampIndex=0,this.startTime=0,this.decodedTime=0,Object.defineProperty(this,"currentTime",{get:this.getCurrentTime})}var t=A.prototype;return t.destroy=function(){},t.connect=function(A){this.destination=A},t.bufferGetIndex=function(){return this.bits.index},t.bufferSetIndex=function(A){this.bits.index=A},t.bufferWrite=function(A){return this.bits.write(A)},t.write=function(A,t){this.collectTimestamps&&(0===this.timestamps.length&&(this.startTime=A,this.decodedTime=A),this.timestamps.push({index:this.bytesWritten<<3,time:A})),this.bytesWritten+=this.bufferWrite(t),this.canPlay=!0},t.seek=function(A){if(this.collectTimestamps){this.timestampIndex=0;for(var t=0;tA);t++)this.timestampIndex=t;var i=this.timestamps[this.timestampIndex];i?(this.bufferSetIndex(i.index),this.decodedTime=i.time):(this.bits.index=0,this.decodedTime=this.startTime)}},t.decode=function(){this.advanceDecodedTime(0)},t.advanceDecodedTime=function(A){if(this.collectTimestamps){for(var t=-1,i=this.bufferGetIndex(),e=this.timestampIndex;ei);e++)t=e;if(-1!==t&&t!==this.timestampIndex)return this.timestampIndex=t,void(this.decodedTime=this.timestamps[this.timestampIndex].time)}this.decodedTime+=A},t.getCurrentTime=function(){return this.decodedTime},A}(),T=function(A){function t(t){var i;(i=A.call(this,t)||this).onDecodeCallback=t.onVideoDecode;var e=t.videoBufferSize||524288,s=t.streaming?L.MODE.EVICT:L.MODE.EXPAND;return i.bits=new L(e,s),i.customIntraQuantMatrix=new Uint8Array(64),i.customNonIntraQuantMatrix=new Uint8Array(64),i.blockData=new Int32Array(64),i.currentFrame=0,i.decodeFirstFrame=!1!==t.decodeFirstFrame,i}u(t,A);var i=t.prototype;return i.write=function(A,i){if(J.prototype.write.call(this,A,i),!this.hasSequenceHeader){if(-1===this.bits.findStartCode(t.START.SEQUENCE))return!1;this.decodeSequenceHeader(),this.decodeFirstFrame&&this.decode()}},i.decode=function(){var A=S();if(!this.hasSequenceHeader)return!1;if(-1===this.bits.findStartCode(t.START.PICTURE))return!1;this.decodePicture(),this.advanceDecodedTime(1/this.frameRate);var i=S()-A;return this.onDecodeCallback&&this.onDecodeCallback(this,i),!0},i.readHuffman=function(A){var t=0;do{t=A[t+this.bits.read(1)]}while(t>=0&&0!==A[t]);return A[t+2]},i.decodeSequenceHeader=function(){var A=this.bits.read(12),i=this.bits.read(12);if(this.bits.skip(4),this.frameRate=t.PICTURE_RATE[this.bits.read(4)],this.bits.skip(30),A===this.width&&i===this.height||(this.width=A,this.height=i,this.initBuffers(),this.destination&&this.destination.resize(A,i)),this.bits.read(1)){for(var e=0;e<64;e++)this.customIntraQuantMatrix[t.ZIG_ZAG[e]]=this.bits.read(8);this.intraQuantMatrix=this.customIntraQuantMatrix}if(this.bits.read(1)){for(var s=0;s<64;s++){var o=t.ZIG_ZAG[s];this.customNonIntraQuantMatrix[o]=this.bits.read(8)}this.nonIntraQuantMatrix=this.customNonIntraQuantMatrix}this.hasSequenceHeader=!0},i.initBuffers=function(){this.intraQuantMatrix=t.DEFAULT_INTRA_QUANT_MATRIX,this.nonIntraQuantMatrix=t.DEFAULT_NON_INTRA_QUANT_MATRIX,this.mbWidth=this.width+15>>4,this.mbHeight=this.height+15>>4,this.mbSize=this.mbWidth*this.mbHeight,this.codedWidth=this.mbWidth<<4,this.codedHeight=this.mbHeight<<4,this.codedSize=this.codedWidth*this.codedHeight,this.halfWidth=this.mbWidth<<3,this.halfHeight=this.mbHeight<<3,this.currentY=new Uint8ClampedArray(this.codedSize),this.currentY32=new Uint32Array(this.currentY.buffer),this.currentCr=new Uint8ClampedArray(this.codedSize>>2),this.currentCr32=new Uint32Array(this.currentCr.buffer),this.currentCb=new Uint8ClampedArray(this.codedSize>>2),this.currentCb32=new Uint32Array(this.currentCb.buffer),this.forwardY=new Uint8ClampedArray(this.codedSize),this.forwardY32=new Uint32Array(this.forwardY.buffer),this.forwardCr=new Uint8ClampedArray(this.codedSize>>2),this.forwardCr32=new Uint32Array(this.forwardCr.buffer),this.forwardCb=new Uint8ClampedArray(this.codedSize>>2),this.forwardCb32=new Uint32Array(this.forwardCb.buffer)},i.decodePicture=function(){if(this.currentFrame++,this.bits.skip(10),this.pictureType=this.bits.read(3),this.bits.skip(16),!(this.pictureType<=0||this.pictureType>=t.PICTURE_TYPE.B)){if(this.pictureType===t.PICTURE_TYPE.PREDICTIVE){if(this.fullPelForward=this.bits.read(1),this.forwardFCode=this.bits.read(3),0===this.forwardFCode)return;this.forwardRSize=this.forwardFCode-1,this.forwardF=1<=t.START.SLICE_FIRST&&A<=t.START.SLICE_LAST;)this.decodeSlice(255&A),A=this.bits.findNextStartCode();if(-1!==A&&this.bits.rewind(32),this.destination&&this.destination.render(this.currentY,this.currentCr,this.currentCb,!0),this.pictureType===t.PICTURE_TYPE.INTRA||this.pictureType===t.PICTURE_TYPE.PREDICTIVE){var i=this.forwardY,e=this.forwardY32,s=this.forwardCr,o=this.forwardCr32,g=this.forwardCb,I=this.forwardCb32;this.forwardY=this.currentY,this.forwardY32=this.currentY32,this.forwardCr=this.currentCr,this.forwardCr32=this.currentCr32,this.forwardCb=this.currentCb,this.forwardCb32=this.currentCb32,this.currentY=i,this.currentY32=e,this.currentCr=s,this.currentCr32=o,this.currentCb=g,this.currentCb32=I}}},i.decodeSlice=function(A){for(this.sliceBegin=!0,this.macroblockAddress=(A-1)*this.mbWidth-1,this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0,this.dcPredictorY=128,this.dcPredictorCr=128,this.dcPredictorCb=128,this.quantizerScale=this.bits.read(5);this.bits.read(1);)this.bits.skip(8);do{this.decodeMacroblock()}while(!this.bits.nextBytesAreStartCode())},i.decodeMacroblock=function(){for(var A=0,i=this.readHuffman(t.MACROBLOCK_ADDRESS_INCREMENT);34===i;)i=this.readHuffman(t.MACROBLOCK_ADDRESS_INCREMENT);for(;35===i;)A+=33,i=this.readHuffman(t.MACROBLOCK_ADDRESS_INCREMENT);if(A+=i,this.sliceBegin)this.sliceBegin=!1,this.macroblockAddress+=A;else{if(this.macroblockAddress+A>=this.mbSize)return;for(A>1&&(this.dcPredictorY=128,this.dcPredictorCr=128,this.dcPredictorCb=128,this.pictureType===t.PICTURE_TYPE.PREDICTIVE&&(this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0));A>1;)this.macroblockAddress++,this.mbRow=this.macroblockAddress/this.mbWidth|0,this.mbCol=this.macroblockAddress%this.mbWidth,this.copyMacroblock(this.motionFwH,this.motionFwV,this.forwardY,this.forwardCr,this.forwardCb),A--;this.macroblockAddress++}this.mbRow=this.macroblockAddress/this.mbWidth|0,this.mbCol=this.macroblockAddress%this.mbWidth;var e=t.MACROBLOCK_TYPE[this.pictureType];this.macroblockType=this.readHuffman(e),this.macroblockIntra=1&this.macroblockType,this.macroblockMotFw=8&this.macroblockType,16&this.macroblockType&&(this.quantizerScale=this.bits.read(5)),this.macroblockIntra?(this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0):(this.dcPredictorY=128,this.dcPredictorCr=128,this.dcPredictorCb=128,this.decodeMotionVectors(),this.copyMacroblock(this.motionFwH,this.motionFwV,this.forwardY,this.forwardCr,this.forwardCb));for(var s=2&this.macroblockType?this.readHuffman(t.CODE_BLOCK_PATTERN):this.macroblockIntra?63:0,o=0,g=32;o<6;o++)s&g&&this.decodeBlock(o),g>>=1},i.decodeMotionVectors=function(){var A,i,e=0;this.macroblockMotFw?(0!==(A=this.readHuffman(t.MOTION))&&1!==this.forwardF?(e=this.bits.read(this.forwardRSize),i=(Math.abs(A)-1<(this.forwardF<<4)-1?this.motionFwHPrev-=this.forwardF<<5:this.motionFwHPrev<-this.forwardF<<4&&(this.motionFwHPrev+=this.forwardF<<5),this.motionFwH=this.motionFwHPrev,this.fullPelForward&&(this.motionFwH<<=1),0!==(A=this.readHuffman(t.MOTION))&&1!==this.forwardF?(e=this.bits.read(this.forwardRSize),i=(Math.abs(A)-1<(this.forwardF<<4)-1?this.motionFwVPrev-=this.forwardF<<5:this.motionFwVPrev<-this.forwardF<<4&&(this.motionFwVPrev+=this.forwardF<<5),this.motionFwV=this.motionFwVPrev,this.fullPelForward&&(this.motionFwV<<=1)):this.pictureType===t.PICTURE_TYPE.PREDICTIVE&&(this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0)},i.copyMacroblock=function(A,t,i,e,s){var o,g,I,a,B,r,C,n,E,Q,h,d,c,l,u,w,p,D,m,f=this.currentY32,y=this.currentCb32,R=this.currentCr32;if(g=(o=this.codedWidth)-16,I=A>>1,a=t>>1,B=!(1&~A),r=!(1&~t),C=((this.mbRow<<4)+a)*o+(this.mbCol<<4)+I,E=(n=this.mbRow*o+this.mbCol<<2)+(o<<2),B)if(r)for(;n>2&255,c|=(h=i[++C]+i[C+o])+d+2<<6&65280,c|=h+(d=i[++C]+i[C+o])+2<<14&16711680,h=i[++C]+i[C+o],C++,c|=h+d+2<<22&4278190080,f[n++]=c;n+=g>>2,C+=g-1}else for(;n>1&255,c|=(h=i[C++])+d+1<<7&65280,c|=h+(d=i[C++])+1<<15&16711680,c|=(h=i[C++])+d+1<<23&4278190080,f[n++]=c;n+=g>>2,C+=g-1}else if(r)for(;n>1&255,c|=i[++C]+i[C+o]+1<<7&65280,c|=i[++C]+i[C+o]+1<<15&16711680,c|=i[++C]+i[C+o]+1<<23&4278190080,C++,f[n++]=c;n+=g>>2,C+=g}else for(;n>2,C+=g}if(g=(o=this.halfWidth)-8,I=A/2>>1,a=t/2>>1,B=1==(A/2&1),r=1==(t/2&1),C=((this.mbRow<<3)+a)*o+(this.mbCol<<3)+I,E=(n=this.mbRow*o+this.mbCol<<1)+(o<<1),B)if(r)for(;n>2&255,m=p+(D=s[C]+s[C+o])+2>>2&255,w|=(l=e[++C]+e[C+o])+u+2<<6&65280,m|=(p=s[C]+s[C+o])+D+2<<6&65280,w|=l+(u=e[++C]+e[C+o])+2<<14&16711680,m|=p+(D=s[C]+s[C+o])+2<<14&16711680,l=e[++C]+e[C+o],p=s[C]+s[C+o],C++,w|=l+u+2<<22&4278190080,m|=p+D+2<<22&4278190080,R[n]=w,y[n]=m,n++;n+=g>>2,C+=g-1}else for(;n>1&255,m=p+(D=s[C++])+1>>1&255,w|=(l=e[C])+u+1<<7&65280,m|=(p=s[C++])+D+1<<7&65280,w|=l+(u=e[C])+1<<15&16711680,m|=p+(D=s[C++])+1<<15&16711680,w|=(l=e[C])+u+1<<23&4278190080,m|=(p=s[C++])+D+1<<23&4278190080,R[n]=w,y[n]=m,n++;n+=g>>2,C+=g-1}else if(r)for(;n>1&255,m=s[C]+s[C+o]+1>>1&255,w|=e[++C]+e[C+o]+1<<7&65280,m|=s[C]+s[C+o]+1<<7&65280,w|=e[++C]+e[C+o]+1<<15&16711680,m|=s[C]+s[C+o]+1<<15&16711680,w|=e[++C]+e[C+o]+1<<23&4278190080,m|=s[C]+s[C+o]+1<<23&4278190080,C++,R[n]=w,y[n]=m,n++;n+=g>>2,C+=g}else for(;n>2,C+=g}},i.decodeBlock=function(A){var i,e=0;if(this.macroblockIntra){var s,o;if(A<4?(s=this.dcPredictorY,o=this.readHuffman(t.DCT_DC_SIZE_LUMINANCE)):(s=4===A?this.dcPredictorCr:this.dcPredictorCb,o=this.readHuffman(t.DCT_DC_SIZE_CHROMINANCE)),o>0){var g=this.bits.read(o);this.blockData[0]=g&1<0&&0===this.bits.read(1))break;65535===n?(C=this.bits.read(6),0===(r=this.bits.read(8))?r=this.bits.read(8):128===r?r=this.bits.read(8)-256:r>128&&(r-=256)):(C=n>>8,r=255&n,this.bits.read(1)&&(r=-r)),e+=C;var E=t.ZIG_ZAG[e];e++,r<<=1,this.macroblockIntra||(r+=r<0?-1:1),1&(r=r*this.quantizerScale*i[E]>>4)||(r-=r>0?1:-1),r>2047?r=2047:r<-2048&&(r=-2048),this.blockData[E]=r*t.PREMULTIPLIER_MATRIX[E]}A<4?(I=this.currentY,B=this.codedWidth-8,a=this.mbRow*this.codedWidth+this.mbCol<<4,1&A&&(a+=8),2&A&&(a+=this.codedWidth<<3)):(I=4===A?this.currentCb:this.currentCr,B=(this.codedWidth>>1)-8,a=(this.mbRow*this.codedWidth<<2)+(this.mbCol<<3)),this.macroblockIntra?1===e?(t.CopyValueToDestination(this.blockData[0]+128>>8,I,a,B),this.blockData[0]=0):(t.IDCT(this.blockData),t.CopyBlockToDestination(this.blockData,I,a,B),G(this.blockData,0)):1===e?(t.AddValueToDestination(this.blockData[0]+128>>8,I,a,B),this.blockData[0]=0):(t.IDCT(this.blockData),t.AddBlockToDestination(this.blockData,I,a,B),G(this.blockData,0)),e=0},t.CopyBlockToDestination=function(A,t,i,e){for(var s=0;s<64;s+=8,i+=e+8)t[i+0]=A[s+0],t[i+1]=A[s+1],t[i+2]=A[s+2],t[i+3]=A[s+3],t[i+4]=A[s+4],t[i+5]=A[s+5],t[i+6]=A[s+6],t[i+7]=A[s+7]},t.AddBlockToDestination=function(A,t,i,e){for(var s=0;s<64;s+=8,i+=e+8)t[i+0]+=A[s+0],t[i+1]+=A[s+1],t[i+2]+=A[s+2],t[i+3]+=A[s+3],t[i+4]+=A[s+4],t[i+5]+=A[s+5],t[i+6]+=A[s+6],t[i+7]+=A[s+7]},t.CopyValueToDestination=function(A,t,i,e){for(var s=0;s<64;s+=8,i+=e+8)t[i+0]=A,t[i+1]=A,t[i+2]=A,t[i+3]=A,t[i+4]=A,t[i+5]=A,t[i+6]=A,t[i+7]=A},t.AddValueToDestination=function(A,t,i,e){for(var s=0;s<64;s+=8,i+=e+8)t[i+0]+=A,t[i+1]+=A,t[i+2]+=A,t[i+3]+=A,t[i+4]+=A,t[i+5]+=A,t[i+6]+=A,t[i+7]+=A},t.IDCT=function(A){for(var t,i,e,s,o,g,I,a,B,r,C,n,E,Q,h,d,c,l,u=0;u<8;++u)t=A[32+u],i=A[16+u]+A[48+u],e=A[40+u]-A[24+u],g=A[8+u]+A[56+u],I=A[24+u]+A[40+u],B=(E=(473*(s=A[8+u]-A[56+u])-196*e+128>>8)-(o=g+I))-(362*(g-I)+128>>8),Q=(r=(a=A[0+u])-t)+(C=(362*(A[16+u]-A[48+u])+128>>8)-i),h=(n=a+t)+i,d=r-C,c=n-i,l=-B-(473*e+196*s+128>>8),A[0+u]=o+h,A[8+u]=E+Q,A[16+u]=d-B,A[24+u]=c-l,A[32+u]=c+l,A[40+u]=B+d,A[48+u]=Q-E,A[56+u]=h-o;for(var w=0;w<64;w+=8)t=A[4+w],i=A[2+w]+A[6+w],e=A[5+w]-A[3+w],g=A[1+w]+A[7+w],I=A[3+w]+A[5+w],B=(E=(473*(s=A[1+w]-A[7+w])-196*e+128>>8)-(o=g+I))-(362*(g-I)+128>>8),Q=(r=(a=A[0+w])-t)+(C=(362*(A[2+w]-A[6+w])+128>>8)-i),h=(n=a+t)+i,d=r-C,c=n-i,l=-B-(473*e+196*s+128>>8),A[0+w]=o+h+128>>8,A[1+w]=E+Q+128>>8,A[2+w]=d-B+128>>8,A[3+w]=c-l+128>>8,A[4+w]=c+l+128>>8,A[5+w]=B+d+128>>8,A[6+w]=Q-E+128>>8,A[7+w]=h-o+128>>8},t}(J);T.prototype.frameRate=30,T.prototype.currentY=null,T.prototype.currentCr=null,T.prototype.currentCb=null,T.prototype.pictureType=0,T.prototype.forwardY=null,T.prototype.forwardCr=null,T.prototype.forwardCb=null,T.prototype.fullPelForward=!1,T.prototype.forwardFCode=0,T.prototype.forwardRSize=0,T.prototype.forwardF=0,T.prototype.quantizerScale=0,T.prototype.sliceBegin=!1,T.prototype.macroblockAddress=0,T.prototype.mbRow=0,T.prototype.mbCol=0,T.prototype.macroblockType=0,T.prototype.macroblockIntra=!1,T.prototype.macroblockMotFw=!1,T.prototype.motionFwH=0,T.prototype.motionFwV=0,T.prototype.motionFwHPrev=0,T.prototype.motionFwVPrev=0,T.prototype.dcPredictorY=0,T.prototype.dcPredictorCr=0,T.prototype.dcPredictorCb=0,T.prototype.blockData=null,T.PICTURE_RATE=[0,23.976,24,25,29.97,30,50,59.94,60,0,0,0,0,0,0,0],T.ZIG_ZAG=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),T.DEFAULT_INTRA_QUANT_MATRIX=new Uint8Array([8,16,19,22,26,27,29,34,16,16,22,24,27,29,34,37,19,22,26,27,29,34,34,38,22,22,26,27,29,34,37,40,22,26,27,29,32,35,40,48,26,27,29,32,35,40,48,58,26,27,29,34,38,46,56,69,27,29,35,38,46,56,69,83]),T.DEFAULT_NON_INTRA_QUANT_MATRIX=new Uint8Array([16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]),T.PREMULTIPLIER_MATRIX=new Uint8Array([32,44,42,38,32,25,17,9,44,62,58,52,44,35,24,12,42,58,55,49,42,33,23,12,38,52,49,44,38,30,20,10,32,44,42,38,32,25,17,9,25,35,33,30,25,20,14,7,17,24,23,20,17,14,9,5,9,12,12,10,9,7,5,2]),T.MACROBLOCK_ADDRESS_INCREMENT=new Int16Array([3,6,0,9,12,0,0,0,1,15,18,0,21,24,0,27,30,0,33,36,0,0,0,3,0,0,2,39,42,0,45,48,0,0,0,5,0,0,4,51,54,0,57,60,0,0,0,7,0,0,6,63,66,0,69,72,0,75,78,0,81,84,0,-1,87,0,-1,90,0,93,96,0,99,102,0,105,108,0,111,114,0,0,0,9,0,0,8,117,120,0,123,126,0,129,132,0,135,138,0,0,0,15,0,0,14,0,0,13,0,0,12,0,0,11,0,0,10,141,-1,0,-1,144,0,147,150,0,153,156,0,159,162,0,165,168,0,171,174,0,177,180,0,183,-1,0,-1,186,0,189,192,0,195,198,0,201,204,0,207,210,0,213,216,0,219,222,0,0,0,21,0,0,20,0,0,19,0,0,18,0,0,17,0,0,16,0,0,35,0,0,34,0,0,33,0,0,32,0,0,31,0,0,30,0,0,29,0,0,28,0,0,27,0,0,26,0,0,25,0,0,24,0,0,23,0,0,22]),T.MACROBLOCK_TYPE_INTRA=new Int8Array([3,6,0,-1,9,0,0,0,1,0,0,17]),T.MACROBLOCK_TYPE_PREDICTIVE=new Int8Array([3,6,0,9,12,0,0,0,10,15,18,0,0,0,2,21,24,0,0,0,8,27,30,0,33,36,0,-1,39,0,0,0,18,0,0,26,0,0,1,0,0,17]),T.MACROBLOCK_TYPE_B=new Int8Array([3,6,0,9,15,0,12,18,0,24,21,0,0,0,12,27,30,0,0,0,14,39,42,0,36,33,0,0,0,4,0,0,6,54,48,0,45,51,0,0,0,8,0,0,10,-1,57,0,0,0,1,60,63,0,0,0,30,0,0,17,0,0,22,0,0,26]),T.MACROBLOCK_TYPE=[null,T.MACROBLOCK_TYPE_INTRA,T.MACROBLOCK_TYPE_PREDICTIVE,T.MACROBLOCK_TYPE_B],T.CODE_BLOCK_PATTERN=new Int16Array([6,3,0,9,18,0,12,15,0,24,33,0,36,39,0,27,21,0,30,42,0,60,57,0,54,48,0,69,51,0,81,75,0,63,84,0,45,66,0,72,78,0,0,0,60,105,120,0,132,144,0,114,108,0,126,141,0,87,93,0,117,96,0,0,0,32,135,138,0,99,123,0,129,102,0,0,0,4,90,111,0,0,0,8,0,0,16,0,0,44,150,168,0,0,0,28,0,0,52,0,0,62,183,177,0,156,180,0,0,0,1,165,162,0,0,0,61,0,0,56,171,174,0,0,0,2,0,0,40,153,186,0,0,0,48,192,189,0,147,159,0,0,0,20,0,0,12,240,249,0,0,0,63,231,225,0,195,219,0,252,198,0,0,0,24,0,0,36,0,0,3,207,261,0,243,237,0,204,213,0,210,234,0,201,228,0,216,222,0,258,255,0,264,246,0,-1,282,0,285,291,0,0,0,33,0,0,9,318,330,0,306,348,0,0,0,5,0,0,10,279,267,0,0,0,6,0,0,18,0,0,17,0,0,34,339,357,0,309,312,0,270,276,0,327,321,0,351,354,0,303,297,0,294,288,0,300,273,0,342,345,0,315,324,0,336,333,0,363,375,0,0,0,41,0,0,14,0,0,21,372,366,0,360,369,0,0,0,11,0,0,19,0,0,7,0,0,35,0,0,13,0,0,50,0,0,49,0,0,58,0,0,37,0,0,25,0,0,45,0,0,57,0,0,26,0,0,29,0,0,38,0,0,53,0,0,23,0,0,43,0,0,46,0,0,42,0,0,22,0,0,54,0,0,51,0,0,15,0,0,30,0,0,39,0,0,47,0,0,55,0,0,27,0,0,59,0,0,31]),T.MOTION=new Int16Array([3,6,0,12,9,0,0,0,0,18,15,0,24,21,0,0,0,-1,0,0,1,27,30,0,36,33,0,0,0,2,0,0,-2,42,45,0,48,39,0,60,54,0,0,0,3,0,0,-3,51,57,0,-1,69,0,81,75,0,78,63,0,72,66,0,96,84,0,87,93,0,-1,99,0,108,105,0,0,0,-4,90,102,0,0,0,4,0,0,-7,0,0,5,111,123,0,0,0,-5,0,0,7,114,120,0,126,117,0,0,0,-6,0,0,6,153,162,0,150,147,0,135,138,0,156,141,0,129,159,0,132,144,0,0,0,10,0,0,9,0,0,8,0,0,-8,171,198,0,0,0,-9,180,192,0,168,183,0,165,186,0,174,189,0,0,0,-10,177,195,0,0,0,12,0,0,16,0,0,13,0,0,14,0,0,11,0,0,15,0,0,-16,0,0,-12,0,0,-14,0,0,-15,0,0,-11,0,0,-13]),T.DCT_DC_SIZE_LUMINANCE=new Int8Array([6,3,0,18,15,0,9,12,0,0,0,1,0,0,2,27,24,0,21,30,0,0,0,0,36,33,0,0,0,4,0,0,3,39,42,0,0,0,5,0,0,6,48,45,0,51,-1,0,0,0,7,0,0,8]),T.DCT_DC_SIZE_CHROMINANCE=new Int8Array([6,3,0,12,9,0,18,15,0,24,21,0,0,0,2,0,0,1,0,0,0,30,27,0,0,0,3,36,33,0,0,0,4,42,39,0,0,0,5,48,45,0,0,0,6,51,-1,0,0,0,7,0,0,8]),T.DCT_COEFF=new Int32Array([3,6,0,12,9,0,0,0,1,21,24,0,18,15,0,39,27,0,33,30,0,42,36,0,0,0,257,60,66,0,54,63,0,48,57,0,0,0,513,51,45,0,0,0,2,0,0,3,81,75,0,87,93,0,72,78,0,96,90,0,0,0,1025,69,84,0,0,0,769,0,0,258,0,0,1793,0,0,65535,0,0,1537,111,108,0,0,0,1281,105,102,0,117,114,0,99,126,0,120,123,0,156,150,0,162,159,0,144,147,0,129,135,0,138,132,0,0,0,2049,0,0,4,0,0,514,0,0,2305,153,141,0,165,171,0,180,168,0,177,174,0,183,186,0,0,0,2561,0,0,3329,0,0,6,0,0,259,0,0,5,0,0,770,0,0,2817,0,0,3073,228,225,0,201,210,0,219,213,0,234,222,0,216,231,0,207,192,0,204,189,0,198,195,0,243,261,0,273,240,0,246,237,0,249,258,0,279,276,0,252,255,0,270,282,0,264,267,0,0,0,515,0,0,260,0,0,7,0,0,1026,0,0,1282,0,0,4097,0,0,3841,0,0,3585,315,321,0,333,342,0,312,291,0,375,357,0,288,294,0,-1,369,0,285,303,0,318,363,0,297,306,0,339,309,0,336,348,0,330,300,0,372,345,0,351,366,0,327,354,0,360,324,0,381,408,0,417,420,0,390,378,0,435,438,0,384,387,0,0,0,2050,396,402,0,465,462,0,0,0,8,411,399,0,429,432,0,453,414,0,426,423,0,0,0,10,0,0,9,0,0,11,0,0,5377,0,0,1538,0,0,771,0,0,5121,0,0,1794,0,0,4353,0,0,4609,0,0,4865,444,456,0,0,0,1027,459,450,0,0,0,261,393,405,0,0,0,516,447,441,0,516,519,0,486,474,0,510,483,0,504,498,0,471,537,0,507,501,0,522,513,0,534,531,0,468,477,0,492,495,0,549,546,0,525,528,0,0,0,263,0,0,2562,0,0,2306,0,0,5633,0,0,5889,0,0,6401,0,0,6145,0,0,1283,0,0,772,0,0,13,0,0,12,0,0,14,0,0,15,0,0,517,0,0,6657,0,0,262,540,543,0,480,489,0,588,597,0,0,0,27,609,555,0,606,603,0,0,0,19,0,0,22,591,621,0,0,0,18,573,576,0,564,570,0,0,0,20,552,582,0,0,0,21,558,579,0,0,0,23,612,594,0,0,0,25,0,0,24,600,615,0,0,0,31,0,0,30,0,0,28,0,0,29,0,0,26,0,0,17,0,0,16,567,618,0,561,585,0,654,633,0,0,0,37,645,648,0,0,0,36,630,636,0,0,0,34,639,627,0,663,666,0,657,624,0,651,642,0,669,660,0,0,0,35,0,0,267,0,0,40,0,0,268,0,0,266,0,0,32,0,0,264,0,0,265,0,0,38,0,0,269,0,0,270,0,0,33,0,0,39,0,0,7937,0,0,6913,0,0,7681,0,0,4098,0,0,7425,0,0,7169,0,0,271,0,0,274,0,0,273,0,0,272,0,0,1539,0,0,2818,0,0,3586,0,0,3330,0,0,3074,0,0,3842]),T.PICTURE_TYPE={INTRA:1,PREDICTIVE:2,B:3},T.START={SEQUENCE:179,SLICE_FIRST:1,SLICE_LAST:175,PICTURE:0,EXTENSION:181,USER_DATA:178};var v=function(A){function t(t){var i;return(i=A.call(this,t)||this).onDecodeCallback=t.onVideoDecode,i.module=t.wasmModule,i.bufferSize=t.videoBufferSize||524288,i.bufferMode=t.streaming?L.MODE.EVICT:L.MODE.EXPAND,i.decodeFirstFrame=!1!==t.decodeFirstFrame,i.hasSequenceHeader=!1,i}u(t,A);var i=t.prototype;return i.initializeWasmDecoder=function(){this.module.instance?(this.instance=this.module.instance,this.functions=this.module.instance.exports,this.decoder=this.functions._mpeg1_decoder_create(this.bufferSize,this.bufferMode)):console.warn("JSMpeg: WASM module not compiled yet")},i.destroy=function(){this.decoder&&this.functions._mpeg1_decoder_destroy(this.decoder)},i.bufferGetIndex=function(){if(this.decoder)return this.functions._mpeg1_decoder_get_index(this.decoder)},i.bufferSetIndex=function(A){this.decoder&&this.functions._mpeg1_decoder_set_index(this.decoder,A)},i.bufferWrite=function(A){this.decoder||this.initializeWasmDecoder();for(var t=0,i=0;i>2)),g=this.instance.heapU8.subarray(e,e+(this.codedSize>>2));this.destination.render(s,o,g,!1)}this.advanceDecodedTime(1/this.frameRate);var I=S()-A;return this.onDecodeCallback&&this.onDecodeCallback(this,I),!0},t}(J),x=function(A){function t(i){var e;(e=A.call(this,i)||this).onDecodeCallback=i.onAudioDecode;var s=i.audioBufferSize||131072,o=i.streaming?L.MODE.EVICT:L.MODE.EXPAND;e.bits=new L(s,o),e.left=new Float32Array(1152),e.right=new Float32Array(1152),e.sampleRate=44100,e.D=new Float32Array(1024),e.D.set(t.SYNTHESIS_WINDOW,0),e.D.set(t.SYNTHESIS_WINDOW,512),e.V=[new Float32Array(1024),new Float32Array(1024)],e.U=new Int32Array(32),e.VPos=0,e.allocation=[new Array(32),new Array(32)],e.scaleFactorInfo=[new Uint8Array(32),new Uint8Array(32)],e.scaleFactor=[new Array(32),new Array(32)],e.sample=[new Array(32),new Array(32)];for(var g=0;g<2;g++)for(var I=0;I<32;I++)e.scaleFactor[g][I]=[0,0,0],e.sample[g][I]=[0,0,0];return e}u(t,A);var i=t.prototype;return i.decode=function(){var A=S(),t=this.bits.index>>3;if(t>=this.bits.byteLength)return!1;var i=this.decodeFrame(this.left,this.right);if(this.bits.index=t+i<<3,!i)return!1;this.destination&&this.destination.play(this.sampleRate,this.left,this.right),this.advanceDecodedTime(this.left.length/this.sampleRate);var e=S()-A;return this.onDecodeCallback&&this.onDecodeCallback(this,e),!0},i.getCurrentTime=function(){var A=this.destination?this.destination.enqueuedTime:0;return this.decodedTime-A},i.decodeFrame=function(A,i){var e=this.bits.read(11),s=this.bits.read(2),o=this.bits.read(2),g=!this.bits.read(1);if(e!==t.FRAME_SYNC||s!==t.VERSION.MPEG_1||o!==t.LAYER.II)return 0;var I=this.bits.read(4)-1;if(I>13)return 0;var a=this.bits.read(2),B=t.SAMPLE_RATE[a];if(3===a)return 0;s===t.VERSION.MPEG_2&&(a+=4,I+=14);var r=this.bits.read(1);this.bits.read(1);var C=this.bits.read(2),n=0;C===t.MODE.JOINT_STEREO?n=this.bits.read(2)+1<<2:(this.bits.skip(2),n=C===t.MODE.MONO?0:32),this.bits.skip(4),g&&this.bits.skip(16);var E=144e3*t.BIT_RATE[I]/(B=t.SAMPLE_RATE[a])+r|0,Q=0,h=0;if(s===t.VERSION.MPEG_2)Q=2,h=30;else{var d=C===t.MODE.MONO?0:1,c=t.QUANT_LUT_STEP_1[d][I];h=63&(Q=t.QUANT_LUT_STEP_2[c][a]),Q>>=6}n>h&&(n=h);for(var l=0;l>1),U=this.VPos%128>>1;U<1024;){for(var J=0;J<32;++J)this.U[J]+=this.D[L++]*this.V[N][U++];U+=96,L+=32}for(U=1120-U,L-=480;U<1024;){for(var T=0;T<32;++T)this.U[T]+=this.D[L++]*this.V[N][U++];U+=96,L+=32}for(var v=0===N?A:i,x=0;x<32;x++)v[R+x]=this.U[x]/2147418112}R+=32}}return this.sampleRate=B,E},i.readAllocation=function(A,i){var e=t.QUANT_LUT_STEP_3[i][A],s=t.QUANT_LUT_STEP4[15&e][this.bits.read(e>>4)];return s?t.QUANT_TAB[s-1]:0},i.readSamples=function(A,i,e){var s=this.allocation[A][i],o=this.scaleFactor[A][i][e],g=this.sample[A][i],I=0;if(s){if(63===o)o=0;else{var a=o/3|0;o=t.SCALEFACTOR_BASE[o%3]+(1<>1)>>a}var B=s.levels;s.group?(I=this.bits.read(s.bits),g[0]=I%B,I=I/B|0,g[1]=I%B,g[2]=I/B|0):(g[0]=this.bits.read(s.bits),g[1]=this.bits.read(s.bits),g[2]=this.bits.read(s.bits));var r=65536/(B+1)|0;I=((B=(B+1>>1)-1)-g[0])*r,g[0]=I*(o>>12)+(I*(4095&o)+2048>>12)>>12,I=(B-g[1])*r,g[1]=I*(o>>12)+(I*(4095&o)+2048>>12)>>12,I=(B-g[2])*r,g[2]=I*(o>>12)+(I*(4095&o)+2048>>12)>>12}else g[0]=g[1]=g[2]=0},t.MatrixTransform=function(A,t,i,e){var s,o,g,I,a,B,r,C,n,E,Q,h,d,c,l,u,w,p,D,m,f,y,R,k,b,S,G,F,M,q,N,L,U;s=A[0][t]+A[31][t],o=.500602998235*(A[0][t]-A[31][t]),g=A[1][t]+A[30][t],I=.505470959898*(A[1][t]-A[30][t]),a=A[2][t]+A[29][t],B=.515447309923*(A[2][t]-A[29][t]),r=A[3][t]+A[28][t],C=.53104259109*(A[3][t]-A[28][t]),n=A[4][t]+A[27][t],E=.553103896034*(A[4][t]-A[27][t]),Q=A[5][t]+A[26][t],h=.582934968206*(A[5][t]-A[26][t]),d=A[6][t]+A[25][t],c=.622504123036*(A[6][t]-A[25][t]),l=A[7][t]+A[24][t],u=.674808341455*(A[7][t]-A[24][t]),w=A[8][t]+A[23][t],p=.744536271002*(A[8][t]-A[23][t]),D=A[9][t]+A[22][t],m=.839349645416*(A[9][t]-A[22][t]),f=A[10][t]+A[21][t],y=.972568237862*(A[10][t]-A[21][t]),R=A[11][t]+A[20][t],k=1.16943993343*(A[11][t]-A[20][t]),b=A[12][t]+A[19][t],S=1.48416461631*(A[12][t]-A[19][t]),G=A[13][t]+A[18][t],F=2.05778100995*(A[13][t]-A[18][t]),M=A[14][t]+A[17][t],q=3.40760841847*(A[14][t]-A[17][t]),U=s+(N=A[15][t]+A[16][t]),N=.502419286188*(s-N),s=g+M,M=.52249861494*(g-M),g=a+G,G=.566944034816*(a-G),a=r+b,b=.64682178336*(r-b),r=n+R,R=.788154623451*(n-R),n=Q+f,f=1.06067768599*(Q-f),Q=d+D,D=1.72244709824*(d-D),d=l+w,w=5.10114861869*(l-w),l=U+d,d=.509795579104*(U-d),U=s+Q,s=.601344886935*(s-Q),Q=g+n,n=.899976223136*(g-n),g=a+r,r=2.56291544774*(a-r),a=l+g,l=.541196100146*(l-g),g=U+Q,Q=1.30656296488*(U-Q),U=a+g,a=.707106781187*(a-g),g=l+Q,g+=l=.707106781187*(l-Q),Q=d+r,d=.541196100146*(d-r),r=s+n,n=1.30656296488*(s-n),s=Q+r,r=.707106781187*(Q-r),Q=d+n,s+=Q+=d=.707106781187*(d-n),Q+=r,r+=d,n=N+w,N=.509795579104*(N-w),w=M+D,M=.601344886935*(M-D),D=G+f,f=.899976223136*(G-f),G=b+R,R=2.56291544774*(b-R),b=n+G,n=.541196100146*(n-G),G=w+D,D=1.30656296488*(w-D),w=b+G,G=.707106781187*(b-G),b=n+D,D=.707106781187*(n-D),n=N+R,N=.541196100146*(N-R),R=M+f,f=1.30656296488*(M-f),M=n+R,R=.707106781187*(n-R),n=N+f,w+=M+=n+=N=.707106781187*(N-f),M+=b+=D,b+=n+=R,n+=G,G+=R+=N,R+=D,D+=N,f=o+(L=10.1900081235*(A[15][t]-A[16][t])),o=.502419286188*(o-L),L=I+q,I=.52249861494*(I-q),q=B+F,F=.566944034816*(B-F),B=C+S,C=.64682178336*(C-S),S=E+k,E=.788154623451*(E-k),k=h+y,y=1.06067768599*(h-y),h=c+m,m=1.72244709824*(c-m),c=u+p,u=5.10114861869*(u-p),p=f+c,c=.509795579104*(f-c),f=L+h,L=.601344886935*(L-h),h=q+k,k=.899976223136*(q-k),q=B+S,S=2.56291544774*(B-S),B=p+q,p=.541196100146*(p-q),q=f+h,h=1.30656296488*(f-h),f=B+q,q=.707106781187*(B-q),B=p+h,h=.707106781187*(p-h),p=c+S,S=.541196100146*(c-S),c=L+k,k=1.30656296488*(L-k),L=p+c,c=.707106781187*(p-c),p=S+k,L+=p+=k=.707106781187*(S-k),p+=c,S=c+k,c=o+u,o=.509795579104*(o-u),u=I+m,I=.601344886935*(I-m),m=F+y,y=.899976223136*(F-y),F=C+E,E=2.56291544774*(C-E),C=c+F,c=.541196100146*(c-F),F=u+m,m=1.30656296488*(u-m),u=C+F,F=.707106781187*(C-F),C=c+m,m=.707106781187*(c-m),c=o+E,o=.541196100146*(o-E),E=I+y,y=1.30656296488*(I-y),I=c+E,E=.707106781187*(c-E),c=o+y,f+=u+=I+=c+=o=.707106781187*(o-y),u+=L,L+=I+=C+=m,I+=B+=h,B+=C+=c+=E,C+=p,p+=c+=F,c+=q,q+=F+=E+=o,F+=S,S+=E+=m,E+=h,h+=m+=o,m+=k,k+=o,i[e+48]=-U,i[e+49]=i[e+47]=-f,i[e+50]=i[e+46]=-w,i[e+51]=i[e+45]=-u,i[e+52]=i[e+44]=-s,i[e+53]=i[e+43]=-L,i[e+54]=i[e+42]=-M,i[e+55]=i[e+41]=-I,i[e+56]=i[e+40]=-g,i[e+57]=i[e+39]=-B,i[e+58]=i[e+38]=-b,i[e+59]=i[e+37]=-C,i[e+60]=i[e+36]=-Q,i[e+61]=i[e+35]=-p,i[e+62]=i[e+34]=-n,i[e+63]=i[e+33]=-c,i[e+32]=-a,i[e+0]=a,i[e+31]=-q,i[e+1]=q,i[e+30]=-G,i[e+2]=G,i[e+29]=-F,i[e+3]=F,i[e+28]=-r,i[e+4]=r,i[e+27]=-S,i[e+5]=S,i[e+26]=-R,i[e+6]=R,i[e+25]=-E,i[e+7]=E,i[e+24]=-l,i[e+8]=l,i[e+23]=-h,i[e+9]=h,i[e+22]=-D,i[e+10]=D,i[e+21]=-m,i[e+11]=m,i[e+20]=-d,i[e+12]=d,i[e+19]=-k,i[e+13]=k,i[e+18]=-N,i[e+14]=N,i[e+17]=-o,i[e+15]=o,i[e+16]=0},t}(J);x.FRAME_SYNC=2047,x.VERSION={MPEG_2_5:0,MPEG_2:2,MPEG_1:3},x.LAYER={III:1,II:2,I:3},x.MODE={STEREO:0,JOINT_STEREO:1,DUAL_CHANNEL:2,MONO:3},x.SAMPLE_RATE=new Uint16Array([44100,48e3,32e3,0,22050,24e3,16e3,0]),x.BIT_RATE=new Uint16Array([32,48,56,64,80,96,112,128,160,192,224,256,320,384,8,16,24,32,40,48,56,64,80,96,112,128,144,160]),x.SCALEFACTOR_BASE=new Uint32Array([33554432,26632170,21137968]),x.SYNTHESIS_WINDOW=new Float32Array([0,-.5,-.5,-.5,-.5,-.5,-.5,-1,-1,-1,-1,-1.5,-1.5,-2,-2,-2.5,-2.5,-3,-3.5,-3.5,-4,-4.5,-5,-5.5,-6.5,-7,-8,-8.5,-9.5,-10.5,-12,-13,-14.5,-15.5,-17.5,-19,-20.5,-22.5,-24.5,-26.5,-29,-31.5,-34,-36.5,-39.5,-42.5,-45.5,-48.5,-52,-55.5,-58.5,-62.5,-66,-69.5,-73.5,-77,-80.5,-84.5,-88,-91.5,-95,-98,-101,-104,106.5,109,111,112.5,113.5,114,114,113.5,112,110.5,107.5,104,100,94.5,88.5,81.5,73,63.5,53,41.5,28.5,14.5,-1,-18,-36,-55.5,-76.5,-98.5,-122,-147,-173.5,-200.5,-229.5,-259.5,-290.5,-322.5,-355.5,-389.5,-424,-459.5,-495.5,-532,-568.5,-605,-641.5,-678,-714,-749,-783.5,-817,-849,-879.5,-908.5,-935,-959.5,-981,-1000.5,-1016,-1028.5,-1037.5,-1042.5,-1043.5,-1040,-1031.5,1018.5,1e3,976,946.5,911,869.5,822,767.5,707,640,565.5,485,397,302.5,201,92.5,-22.5,-144,-272.5,-407,-547.5,-694,-846,-1003,-1165,-1331.5,-1502,-1675.5,-1852.5,-2031.5,-2212.5,-2394,-2576.5,-2758.5,-2939.5,-3118.5,-3294.5,-3467.5,-3635.5,-3798.5,-3955,-4104.5,-4245.5,-4377.5,-4499,-4609.5,-4708,-4792.5,-4863.5,-4919,-4958,-4979.5,-4983,-4967.5,-4931.5,-4875,-4796,-4694.5,-4569.5,-4420,-4246,-4046,-3820,-3567,3287,2979.5,2644,2280.5,1888,1467.5,1018.5,541,35,-499,-1061,-1650,-2266.5,-2909,-3577,-4270,-4987.5,-5727.5,-6490,-7274,-8077.5,-8899.5,-9739,-10594.5,-11464.5,-12347,-13241,-14144.5,-15056,-15973.5,-16895.5,-17820,-18744.5,-19668,-20588,-21503,-22410.5,-23308.5,-24195,-25068.5,-25926.5,-26767,-27589,-28389,-29166.5,-29919,-30644.5,-31342,-32009.5,-32645,-33247,-33814.5,-34346,-34839.5,-35295,-35710,-36084.5,-36417.5,-36707.5,-36954,-37156.5,-37315,-37428,-37496,37519,37496,37428,37315,37156.5,36954,36707.5,36417.5,36084.5,35710,35295,34839.5,34346,33814.5,33247,32645,32009.5,31342,30644.5,29919,29166.5,28389,27589,26767,25926.5,25068.5,24195,23308.5,22410.5,21503,20588,19668,18744.5,17820,16895.5,15973.5,15056,14144.5,13241,12347,11464.5,10594.5,9739,8899.5,8077.5,7274,6490,5727.5,4987.5,4270,3577,2909,2266.5,1650,1061,499,-35,-541,-1018.5,-1467.5,-1888,-2280.5,-2644,-2979.5,3287,3567,3820,4046,4246,4420,4569.5,4694.5,4796,4875,4931.5,4967.5,4983,4979.5,4958,4919,4863.5,4792.5,4708,4609.5,4499,4377.5,4245.5,4104.5,3955,3798.5,3635.5,3467.5,3294.5,3118.5,2939.5,2758.5,2576.5,2394,2212.5,2031.5,1852.5,1675.5,1502,1331.5,1165,1003,846,694,547.5,407,272.5,144,22.5,-92.5,-201,-302.5,-397,-485,-565.5,-640,-707,-767.5,-822,-869.5,-911,-946.5,-976,-1e3,1018.5,1031.5,1040,1043.5,1042.5,1037.5,1028.5,1016,1000.5,981,959.5,935,908.5,879.5,849,817,783.5,749,714,678,641.5,605,568.5,532,495.5,459.5,424,389.5,355.5,322.5,290.5,259.5,229.5,200.5,173.5,147,122,98.5,76.5,55.5,36,18,1,-14.5,-28.5,-41.5,-53,-63.5,-73,-81.5,-88.5,-94.5,-100,-104,-107.5,-110.5,-112,-113.5,-114,-114,-113.5,-112.5,-111,-109,106.5,104,101,98,95,91.5,88,84.5,80.5,77,73.5,69.5,66,62.5,58.5,55.5,52,48.5,45.5,42.5,39.5,36.5,34,31.5,29,26.5,24.5,22.5,20.5,19,17.5,15.5,14.5,13,12,10.5,9.5,8.5,8,7,6.5,5.5,5,4.5,4,3.5,3.5,3,2.5,2.5,2,2,1.5,1.5,1,1,1,1,.5,.5,.5,.5,.5,.5]),x.QUANT_LUT_STEP_1=[[0,0,1,1,1,2,2,2,2,2,2,2,2,2],[0,0,0,0,0,0,1,1,1,2,2,2,2,2]],x.QUANT_TAB={A:91,B:94,C:8,D:12},x.QUANT_LUT_STEP_2=[[x.QUANT_TAB.C,x.QUANT_TAB.C,x.QUANT_TAB.D],[x.QUANT_TAB.A,x.QUANT_TAB.A,x.QUANT_TAB.A],[x.QUANT_TAB.B,x.QUANT_TAB.A,x.QUANT_TAB.B]],x.QUANT_LUT_STEP_3=[[68,68,52,52,52,52,52,52,52,52,52,52],[67,67,67,66,66,66,66,66,66,66,66,49,49,49,49,49,49,49,49,49,49,49,49,32,32,32,32,32,32,32],[69,69,69,69,52,52,52,52,52,52,52,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36]],x.QUANT_LUT_STEP4=[[0,1,2,17],[0,1,2,3,4,5,6,17],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17],[0,1,3,5,6,7,8,9,10,11,12,13,14,15,16,17],[0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,17],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]],x.QUANT_TAB=[{levels:3,group:1,bits:5},{levels:5,group:1,bits:7},{levels:7,group:0,bits:3},{levels:9,group:1,bits:10},{levels:15,group:0,bits:4},{levels:31,group:0,bits:5},{levels:63,group:0,bits:6},{levels:127,group:0,bits:7},{levels:255,group:0,bits:8},{levels:511,group:0,bits:9},{levels:1023,group:0,bits:10},{levels:2047,group:0,bits:11},{levels:4095,group:0,bits:12},{levels:8191,group:0,bits:13},{levels:16383,group:0,bits:14},{levels:32767,group:0,bits:15},{levels:65535,group:0,bits:16}];var Y=function(A){function t(t){var i;return(i=A.call(this,t)||this).onDecodeCallback=t.onAudioDecode,i.module=t.wasmModule,i.bufferSize=t.audioBufferSize||131072,i.bufferMode=t.streaming?L.MODE.EVICT:L.MODE.EXPAND,i.sampleRate=0,i}u(t,A);var i=t.prototype;return i.initializeWasmDecoder=function(){this.module.instance?(this.instance=this.module.instance,this.functions=this.module.instance.exports,this.decoder=this.functions._mp2_decoder_create(this.bufferSize,this.bufferMode)):console.warn("JSMpeg: WASM module not compiled yet")},i.destroy=function(){this.decoder&&this.functions._mp2_decoder_destroy(this.decoder)},i.bufferGetIndex=function(){if(this.decoder)return this.functions._mp2_decoder_get_index(this.decoder)},i.bufferSetIndex=function(A){this.decoder&&this.functions._mp2_decoder_set_index(this.decoder,A)},i.bufferWrite=function(A){this.decoder||this.initializeWasmDecoder();for(var t=0,i=0;i>4<<4;this.gl.viewport(0,0,i,this.height)},t.createTexture=function(A,t){var i=this.gl,e=i.createTexture();return i.bindTexture(i.TEXTURE_2D,e),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),i.uniform1i(i.getUniformLocation(this.program,t),A),e},t.createProgram=function(A,t){var i=this.gl,e=i.createProgram();return i.attachShader(e,this.compileShader(i.VERTEX_SHADER,A)),i.attachShader(e,this.compileShader(i.FRAGMENT_SHADER,t)),i.linkProgram(e),i.useProgram(e),e},t.compileShader=function(A,t){var i=this.gl,e=i.createShader(A);if(i.shaderSource(e,t),i.compileShader(e),!i.getShaderParameter(e,i.COMPILE_STATUS))throw new Error(i.getShaderInfoLog(e));return e},t.allowsClampedTextureData=function(){var A=this.gl,t=A.createTexture();return A.bindTexture(A.TEXTURE_2D,t),A.texImage2D(A.TEXTURE_2D,0,A.LUMINANCE,1,1,0,A.LUMINANCE,A.UNSIGNED_BYTE,new Uint8ClampedArray([0])),0===A.getError()},t.renderProgress=function(A){var t=this.gl;t.useProgram(this.loadingProgram);var i=t.getUniformLocation(this.loadingProgram,"progress");t.uniform1f(i,A),t.drawArrays(t.TRIANGLE_STRIP,0,4)},t.render=function(A,t,i,e){if(this.enabled){var s=this.gl,o=this.width+15>>4<<4,g=this.height,I=o>>1,a=g>>1;e&&this.shouldCreateUnclampedViews&&(A=new Uint8Array(A.buffer),t=new Uint8Array(t.buffer),i=new Uint8Array(i.buffer)),s.useProgram(this.program),this.updateTexture(s.TEXTURE0,this.textureY,o,g,A),this.updateTexture(s.TEXTURE1,this.textureCb,I,a,t),this.updateTexture(s.TEXTURE2,this.textureCr,I,a,i),s.drawArrays(s.TRIANGLE_STRIP,0,4)}},t.updateTexture=function(A,t,i,e,s){var o=this.gl;o.activeTexture(A),o.bindTexture(o.TEXTURE_2D,t),this.hasTextureData[A]?o.texSubImage2D(o.TEXTURE_2D,0,0,0,i,e,o.LUMINANCE,o.UNSIGNED_BYTE,s):(this.hasTextureData[A]=!0,o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,i,e,0,o.LUMINANCE,o.UNSIGNED_BYTE,s))},t.deleteTexture=function(A,t){var i=this.gl;i.activeTexture(A),i.bindTexture(i.TEXTURE_2D,null),i.deleteTexture(t)},A.IsSupported=function(){try{if(!window.WebGLRenderingContext)return!1;var A=document.createElement("canvas");return!(!A.getContext("webgl")&&!A.getContext("experimental-webgl"))}catch(A){return!1}},A}();H.SHADER={FRAGMENT_YCRCB_TO_RGBA:["precision mediump float;","uniform sampler2D textureY;","uniform sampler2D textureCb;","uniform sampler2D textureCr;","varying vec2 texCoord;","mat4 rec601 = mat4(","1.16438, 0.00000, 1.59603, -0.87079,","1.16438, -0.39176, -0.81297, 0.52959,","1.16438, 2.01723, 0.00000, -1.08139,","0, 0, 0, 1",");","void main() {","float y = texture2D(textureY, texCoord).r;","float cb = texture2D(textureCb, texCoord).r;","float cr = texture2D(textureCr, texCoord).r;","gl_FragColor = vec4(y, cr, cb, 1.0) * rec601;","}"].join("\n"),FRAGMENT_LOADING:["precision mediump float;","uniform float progress;","varying vec2 texCoord;","void main() {","float c = ceil(progress-(1.0-texCoord.y));","gl_FragColor = vec4(c,c,c,1);","}"].join("\n"),VERTEX_IDENTITY:["attribute vec2 vertex;","varying vec2 texCoord;","void main() {","texCoord = vertex;","gl_Position = vec4((vertex * 2.0 - 1.0) * vec2(1, -1), 0.0, 1.0);","}"].join("\n")};var P=function(){function A(A){A.canvas?(this.canvas=A.canvas,this.ownsCanvasElement=!1):(this.canvas=document.createElement("canvas"),this.ownsCanvasElement=!0),this.width=this.canvas.width,this.height=this.canvas.height,this.enabled=!0,this.context=this.canvas.getContext("2d")}var t=A.prototype;return t.destroy=function(){this.ownsCanvasElement&&this.canvas.remove()},t.resize=function(A,t){this.width=0|A,this.height=0|t,this.canvas.width=this.width,this.canvas.height=this.height,this.imageData=this.context.getImageData(0,0,this.width,this.height),G(this.imageData.data,255)},t.renderProgress=function(A){var t=this.canvas.width,i=this.canvas.height,e=this.context;e.fillStyle="#222",e.fillRect(0,0,t,i),e.fillStyle="#fff",e.fillRect(0,i-i*A,t,i*A)},t.render=function(A,t,i){this.YCbCrToRGBA(A,t,i,this.imageData.data),this.context.putImageData(this.imageData,0,0)},t.YCbCrToRGBA=function(A,t,i,e){if(this.enabled)for(var s,o,g,I,a,B=this.width+15>>4<<4,r=B>>1,C=0,n=B,E=B+(B-this.width),Q=0,h=r-(this.width>>1),d=0,c=4*this.width,l=4*this.width,u=this.width>>1,w=this.height>>1,p=0;p>8)-179,I=(88*o>>8)-44+(183*s>>8)-91,a=o+(198*o>>8)-227;var m=A[C++],f=A[C++];e[d]=m+g,e[d+1]=m-I,e[d+2]=m+a,e[d+4]=f+g,e[d+5]=f-I,e[d+6]=f+a,d+=8;var y=A[n++],R=A[n++];e[c]=y+g,e[c+1]=y-I,e[c+2]=y+a,e[c+4]=R+g,e[c+5]=R-I,e[c+6]=R+a,c+=8}C+=E,n+=E,d+=l,c+=l,Q+=h}},A}(),O=function(){function A(){this.context=A.CachedContext=A.CachedContext||new(window.AudioContext||window.webkitAudioContext),this.gain=this.context.createGain(),this.destination=this.gain,this.gain.connect(this.context.destination),this.context._connections=(this.context._connections||0)+1,this.startTime=0,this.buffer=null,this.wallclockStartTime=0,this.volume=1,this.enabled=!0,this.unlocked=!A.NeedsUnlocking(),Object.defineProperty(this,"enqueuedTime",{get:this.getEnqueuedTime})}var t=A.prototype;return t.destroy=function(){this.gain.disconnect(),this.context._connections--,0===this.context._connections&&(this.context.close(),A.CachedContext=null)},t.play=function(A,t,i){if(this.enabled){if(!this.unlocked){var e=S();return this.wallclockStartTimethis.memory.buffer.byteLength){var i=this.brk-this.memory.buffer.byteLength,e=Math.ceil(i/this.pageSize);this.memory.grow(e),this.createHeapViews()}return t},t.c_abort=function(A){console.warn("JSMPeg: WASM abort",arguments)},t.c_assertFail=function(A){console.warn("JSMPeg: WASM ___assert_fail",arguments)},t.readDylinkSection=function(A){var t=new Uint8Array(A),i=0,e=function(){for(var A=0,e=1;;){var s=t[i++];if(A+=(127&s)*e,e*=128,!(128&s))return A}},s=function(A){for(var e=0;ethis.maxAudioLag&&(this.audioOut.resetEnqueuedTime(),this.audioOut.enabled=!1),A=this.audio.decode()}while(A);this.audioOut.enabled=!0}},t.updateForStaticFile=function(){var A=!1,t=0;if(this.audio&&this.audio.canPlay){for(;!A&&this.audio.decodedTime-this.audio.currentTime<.25;)A=!this.audio.decode();this.video&&this.video.currentTime0&&(e>2*s&&(this.startTime+=e),A=!this.video.decode()),t=this.demuxer.currentTime-i}this.source.resume(t),A&&this.source.completed?this.loop?this.seek(0):(this.stop(),this.options.onEnded&&this.options.onEnded(this)):A&&this.options.onStalled&&this.options.onStalled(this)},A}(),W={Player:X,VideoElement:b,BitBuffer:L,Source:{Ajax:M,AjaxProgressive:q,WebSocket:N,Fetch:function(){function A(A,t){this.url=A,this.destination=null,this.request=null,this.streaming=!0,this.completed=!1,this.established=!1,this.progress=0,this.aborted=!1,this.onEstablishedCallback=t.onSourceEstablished,this.onCompletedCallback=t.onSourceCompleted,t.hookOnEstablished&&(this.hookOnEstablished=t.hookOnEstablished)}var t=A.prototype;return t.connect=function(A){this.destination=A},t.start=function(){var A=this,t={method:"GET",headers:new Headers,cache:"default"};self.fetch(this.url,t).then((function(t){if(t.ok&&t.status>=200&&t.status<=299)return A.progress=1,A.established=!0,A.pump(t.body.getReader())})).catch((function(A){throw A}))},t.pump=function(A){var t=this;return A.read().then((function(i){if(!i.done)return t.aborted?A.cancel():(t.destination&&t.destination.write(i.value.buffer),t.pump(A));t.completed=!0})).catch((function(A){throw A}))},t.resume=function(){},t.abort=function(){this.aborted=!0},A}()},Demuxer:{TS:U},Decoder:{Base:J,MPEG1Video:T,MPEG1VideoWASM:v,MP2Audio:x,MP2AudioWASM:Y},Renderer:{WebGL:H,Canvas2D:P},AudioOutput:{WebAudio:O},WASMModule:K,Now:S,CreateVideoElements:function(){for(var A=document.querySelectorAll(".jsmpeg"),t=0;tthis.q=A))}resume(){this.q?.(),this.Z=this.q=void 0}} +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const V=A=>!e(A)&&"function"==typeof A.then,z=1073741823;const $=A(class extends t{constructor(){super(...arguments),this._$Cwt=z,this._$Cbt=[],this._$CK=new Z(this),this._$CX=new j}render(...A){return A.find((A=>!V(A)))??i}update(A,t){const e=this._$Cbt;let s=e.length;this._$Cbt=t;const o=this._$CK,g=this._$CX;this.isConnected||this.disconnected();for(let A=0;Athis._$Cwt);A++){const i=t[A];if(!V(i))return this._$Cwt=A,i;A{for(;g.get();)await g.get();const t=o.deref();if(void 0!==t){const e=t._$Cbt.indexOf(i);e>-1&&e{let i=!1;const e=new W.VideoElement(this,A,{canvas:this._jsmpegCanvasElement},{pauseWhenHidden:!1,autoplay:!1,protocols:[],audio:!1,videoBufferSize:4194304,preserveDrawingBuffer:!0,...this.cameraConfig?.jsmpeg?.options,reconnectInterval:0,onVideoDecode:()=>{!i&&this._jsmpegCanvasElement&&(i=!0,t(e))},onPlay:()=>g(this),onPause:()=>I(this)})})),this._jsmpegCanvasElement&&a(this,this._jsmpegCanvasElement,{player:this,capabilities:{supportsPause:!0},technology:["jsmpeg"]})}_resetPlayer(){if(this._refreshPlayerTimer.stop(),this._jsmpegVideoPlayer){try{this._jsmpegVideoPlayer.destroy()}catch(A){}this._jsmpegVideoPlayer=void 0}this._jsmpegCanvasElement&&(this._jsmpegCanvasElement.remove(),this._jsmpegCanvasElement=void 0)}connectedCallback(){super.connectedCallback(),this.isConnected&&this.requestUpdate()}disconnectedCallback(){this.isConnected||this._resetPlayer(),super.disconnectedCallback()}async _refreshPlayer(){if(!this.hass)return;this._resetPlayer(),this._jsmpegCanvasElement=document.createElement("canvas"),this._jsmpegCanvasElement.className="media";const A=this.cameraEndpoints?.jsmpeg;if(!A)return B(this,r("error.live_camera_no_endpoint"),{context:this.cameraConfig});const t=await c(this,this.hass,A,86400);t&&(await this._createJSMPEGPlayer(t),this._refreshPlayerTimer.start(82800,(()=>this.requestUpdate())))}render(){return C`${$((async()=>(await this._refreshPlayer(),this._jsmpegVideoPlayer&&this._jsmpegCanvasElement?C`${this._jsmpegCanvasElement}`:B(this,r("error.jsmpeg_no_player"))))(),n({cardWideConfig:this.cardWideConfig}))}`}static get styles(){return E(":host {\n width: 100%;\n height: 100%;\n display: flex;\n}\n\ncanvas {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n object-view-box: inset(var(--frigate-card-media-layout-view-box-top, 0%) var(--frigate-card-media-layout-view-box-right, 0%) var(--frigate-card-media-layout-view-box-bottom, 0%) var(--frigate-card-media-layout-view-box-left, 0%));\n}")}};Q([h({attribute:!1})],AA.prototype,"cameraConfig",void 0),Q([h({attribute:!1})],AA.prototype,"cameraEndpoints",void 0),Q([h({attribute:!1})],AA.prototype,"cardWideConfig",void 0),AA=Q([d("frigate-card-live-jsmpeg")],AA);export{AA as FrigateCardLiveJSMPEG}; diff --git a/config/www/community/frigate-hass-card/jsmpeg-45778f1d.js.gz b/config/www/community/frigate-hass-card/jsmpeg-45778f1d.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..185d8fa332443f9cde6d973f2fe2b29aa5d4b739 GIT binary patch literal 42824 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

    HnwmN{ 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 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/jsmpeg-50dde246.js b/config/www/community/frigate-hass-card/jsmpeg-50dde246.js new file mode 100644 index 00000000..4e26ebf4 --- /dev/null +++ b/config/www/community/frigate-hass-card/jsmpeg-50dde246.js @@ -0,0 +1,12 @@ +import{dx as A,eK as t,dz as i,eL as e,a as s,dA as o,du as g,dv as I,ds as a,l as B,cP as r,x as C,dh as n,r as E,_ as Q,n as h,b as d,t as c}from"./card-320adb66.js";import{d as l}from"./dispatch-live-error-c649b480.js";import{c as u}from"./endpoint-a6d38c7a.js";function w(){return w=Object.assign?Object.assign.bind():function(A){for(var t=1;t"string"==typeof A&&A.constructor===String,f=function(A){var t,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t=A,"Promise"===Object.prototype.toString.call(t).slice(8,-1)?A:new Promise((t=>{A(),setTimeout(t,i)}))};var y="WJ3NAvwFY9",R="tR2-0dd-e1",k="ZgIIHVSSYI",b="kAA8SjbHe2",S="OueN4AU4CJ";!function(A,t){void 0===t&&(t={});var i=t.insertAt;if(A&&"undefined"!=typeof document){var e=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css","top"===i&&e.firstChild?e.insertBefore(s,e.firstChild):e.appendChild(s),s.styleSheet?s.styleSheet.cssText=A:s.appendChild(document.createTextNode(A))}}(".WJ3NAvwFY9,.ZgIIHVSSYI,.kAA8SjbHe2,.tR2-0dd-e1{height:100%;left:0;position:absolute;top:0;width:100%;z-index:1}.ZgIIHVSSYI{-ms-flex-pack:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;justify-content:center}.WJ3NAvwFY9,.tR2-0dd-e1{display:block}.tR2-0dd-e1.OueN4AU4CJ{display:none}.ZgIIHVSSYI,.kAA8SjbHe2{-webkit-tap-highlight-color:rgba(255,0,0,0);cursor:pointer;opacity:.7}.OueN4AU4CJ.ZgIIHVSSYI,.OueN4AU4CJ.kAA8SjbHe2{display:none}.ZgIIHVSSYI{z-index:10}.ZgIIHVSSYI>svg{fill:#fff;height:12vw;max-height:60px;max-width:60px;width:12vw}.kAA8SjbHe2{-ms-flex-pack:end;-ms-flex-align:end;-webkit-align-items:flex-end;align-items:flex-end;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-end;justify-content:flex-end;z-index:10}.kAA8SjbHe2>svg{fill:#fff;height:9vw;margin:0 15px 15px 0;max-height:40px;max-width:40px;width:9vw}");var G=function(){function A(A,t,i,e){var s=void 0===i?{}:i,o=s.canvas,g=void 0===o?"":o,I=s.poster,a=void 0===I?"":I,B=s.autoplay,r=void 0!==B&&B,C=s.autoSetWrapperSize,n=void 0!==C&&C,E=s.loop,Q=void 0!==E&&E,h=s.control,d=void 0===h||h,c=s.decodeFirstFrame,l=void 0===c||c,u=s.picMode,p=void 0!==u&&u,m=s.progressive,f=void 0===m||m,y=s.chunkSize,R=void 0===y?1048576:y,k=s.hooks,b=void 0===k?{}:k;void 0===e&&(e={}),this.options=w({videoUrl:t,canvas:g,poster:a,picMode:p,autoplay:r,autoSetWrapperSize:n,loop:Q,control:d,decodeFirstFrame:l,progressive:f,chunkSize:R,hooks:w({play:function(){},pause:function(){},stop:function(){},load:function(){}},b)},e),this.options.needPlayButton=this.options.control&&!this.options.picMode,this.player=null,this.els={wrapper:D(A)?document.querySelector(A):A,canvas:null,playButton:document.createElement("div"),unmuteButton:null,poster:null},"static"===window.getComputedStyle(this.els.wrapper).getPropertyValue("position")&&(this.els.wrapper.style.position="relative"),this.els.wrapper.clientRect=this.els.wrapper.getBoundingClientRect(),this.initCanvas(),this.initPlayButton(),this.initPlayer()}var t=A.prototype;return t.initCanvas=function(){this.options.canvas?this.els.canvas=D(this.options.canvas)?document.querySelector(this.options.canvas):this.options.canvas:(this.els.canvas=document.createElement("canvas"),this.els.canvas.classList.add(y),this.els.wrapper.appendChild(this.els.canvas))},t.initPlayer=function(){var A=this;this.options=w(this.options,{canvas:this.els.canvas});var t=w({},this.options,{autoplay:!1});if(this.player=new Z(this.options.videoUrl,t,{play:function(){A.options.needPlayButton&&A.els.playButton.classList.add(S),A.els.poster&&A.els.poster.classList.add(S),A.options.hooks.play()},pause:function(){A.options.needPlayButton&&A.els.playButton.classList.remove(S),A.options.hooks.pause()},stop:function(){A.els.poster&&A.els.poster.classList.remove(S),A.options.hooks.stop()},load:function(){A.options.autoplay&&A.play(),A._autoSetWrapperSize(),A.options.hooks.load()}}),this._copyPlayerFuncs(),this.els.wrapper.playerInstance=this.player,!this.options.poster||this.options.autoplay||this.player.options.streaming||(this.options.decodeFirstFrame=!1,this.els.poster=new Image,this.els.poster.src=this.options.poster,this.els.poster.classList.add(R),this.els.wrapper.appendChild(this.els.poster)),this.player.options.streaming||this.els.wrapper.addEventListener("click",this.onClick.bind(this)),(this.options.autoplay||this.player.options.streaming)&&this.els.playButton.classList.add(S),this.player.audioOut&&!this.player.audioOut.unlocked){var i=this.els.wrapper;(this.options.autoplay||this.player.options.streaming)&&(this.els.unmuteButton=document.createElement("div"),this.els.unmuteButton.innerHTML='\n\n \n\n',this.els.unmuteButton.classList.add(b),this.els.wrapper.appendChild(this.els.unmuteButton),i=this.els.unmuteButton),this.unlockAudioBound=this.onUnlockAudio.bind(this,i),i.addEventListener("touchstart",this.unlockAudioBound,!1),i.addEventListener("click",this.unlockAudioBound,!0)}},t.initPlayButton=function(){this.options.needPlayButton&&(this.els.playButton.classList.add(k),this.els.playButton.innerHTML='\n\n \n\n',this.els.wrapper.appendChild(this.els.playButton))},t._autoSetWrapperSize=function(){var A=this;if(!this.options.autoSetWrapperSize)return Promise.resolve();var t=this.player.video.destination;return t?Promise.resolve().then((function(){return f((function(){A.els.wrapper.style.width=t.width+"px",A.els.wrapper.style.height=t.height+"px"}))})):Promise.resolve()},t.onUnlockAudio=function(A,t){var i=this;this.els.unmuteButton&&(t.preventDefault(),t.stopPropagation()),this.player.audioOut.unlock((function(){i.els.unmuteButton&&i.els.unmuteButton.classList.add(S),A.removeEventListener("touchstart",i.unlockAudioBound),A.removeEventListener("click",i.unlockAudioBound)}))},t.onClick=function(){this.options.control&&(this.player.isPlaying?this.pause():this.play())},t._copyPlayerFuncs=function(){var A=this;this.play=function(){return A.player.play()},this.pause=function(){return A.player.pause()},this.stop=function(){return A.player.stop()},this.destroy=function(){A.player.destroy(),A.els.wrapper.innerHTML="",A.els.wrapper.playerInstance=null}},A}(),F=function(){return window.performance?window.performance.now()/1e3:Date.now()/1e3},M=function(A,t){if(A.fill)A.fill(t);else for(var i=0;iA&&this.loadNextChunk())},t.destroy=function(){this.request.abort(),this.aborted=!0},t.loadNextChunk=function(){var A=this,t=this.loadedSize,i=Math.min(this.loadedSize+this.chunkSize-1,this.fileSize-1);if(t>=this.fileSize||this.aborted)return this.completed=!0,void(this.onCompletedCallback&&this.onCompletedCallback(this));this.isLoading=!0,this.loadStartTime=F(),this.request=new XMLHttpRequest,this.request.onreadystatechange=function(){A.request.readyState===A.request.DONE&&A.request.status>=200&&A.request.status<300?A.onChunkLoad(A.request.response):A.request.readyState===A.request.DONE&&A.loadFails++<3&&A.loadNextChunk()},0===t&&(this.request.onprogress=this.onProgress.bind(this)),this.request.open("GET",this.url+"?"+t+"-"+i),this.request.setRequestHeader("Range","bytes="+t+"-"+i),this.request.responseType="arraybuffer",this.request.send()},t.onProgress=function(A){this.progress=A.loaded/A.total},t.onChunkLoad=function(A){var t=!this.established;this.established=!0,this.progress=1,this.loadedSize+=A.byteLength,this.loadFails=0,this.isLoading=!1,t&&this.hookOnEstablished&&this.hookOnEstablished(),t&&this.onEstablishedCallback&&this.onEstablishedCallback(this),this.destination&&this.destination.write(A),this.loadTime=F()-this.loadStartTime,this.throttled||this.loadNextChunk()},A}(),U=function(){function A(A,t){this.url=A,this.options=t,this.socket=null,this.streaming=!0,this.callbacks={connect:[],data:[]},this.destination=null,this.reconnectInterval=void 0!==t.reconnectInterval?t.reconnectInterval:5,this.shouldAttemptReconnect=!!this.reconnectInterval,this.completed=!1,this.established=!1,this.progress=0,this.reconnectTimeoutId=0,this.onEstablishedCallback=t.onSourceEstablished,this.onCompletedCallback=t.onSourceCompleted,t.hookOnEstablished&&(this.hookOnEstablished=t.hookOnEstablished)}var t=A.prototype;return t.connect=function(A){this.destination=A},t.destroy=function(){clearTimeout(this.reconnectTimeoutId),this.shouldAttemptReconnect=!1,this.socket.close()},t.start=function(){this.shouldAttemptReconnect=!!this.reconnectInterval,this.progress=0,this.established=!1,this.options.protocols?this.socket=new WebSocket(this.url,this.options.protocols):this.socket=new WebSocket(this.url),this.socket.binaryType="arraybuffer",this.socket.onmessage=this.onMessage.bind(this),this.socket.onopen=this.onOpen.bind(this),this.socket.onerror=this.onClose.bind(this),this.socket.onclose=this.onClose.bind(this)},t.resume=function(){},t.onOpen=function(){this.progress=1},t.onClose=function(){var A=this;this.shouldAttemptReconnect&&(clearTimeout(this.reconnectTimeoutId),this.reconnectTimeoutId=setTimeout((function(){A.start()}),1e3*this.reconnectInterval))},t.onMessage=function(A){var t=!this.established;this.established=!0,t&&this.hookOnEstablished&&this.hookOnEstablished(),t&&this.onEstablishedCallback&&this.onEstablishedCallback(this),this.destination&&this.destination.write(A.data)},A}(),J=function(){function A(t,i){"object"==typeof t?(this.bytes=t instanceof Uint8Array?t:new Uint8Array(t),this.byteLength=this.bytes.length):(this.bytes=new Uint8Array(t||1048576),this.byteLength=0),this.mode=i||A.MODE.EXPAND,this.index=0}var t=A.prototype;return t.resize=function(A){var t=new Uint8Array(A);0!==this.byteLength&&(this.byteLength=Math.min(this.byteLength,A),t.set(this.bytes,0,this.byteLength)),this.bytes=t,this.index=Math.min(this.index,this.byteLength<<3)},t.evict=function(A){var t=this.index>>3,i=this.bytes.length-this.byteLength;if(this.index===this.byteLength<<3||A>i+t)return this.byteLength=0,void(this.index=0);0!==t&&(this.bytes.copyWithin?this.bytes.copyWithin(0,t,this.byteLength):this.bytes.set(this.bytes.subarray(t,this.byteLength)),this.byteLength-=t,this.index-=t<<3)},t.write=function(t){var i="object"==typeof t[0],e=0,s=this.bytes.length-this.byteLength;if(i){e=0;for(var o=0;os)if(this.mode===A.MODE.EXPAND){var g=Math.max(2*this.bytes.length,e-s);this.resize(g)}else this.evict(e);if(i)for(var I=0;I>3;A>3;return A>=this.byteLength||0===this.bytes[A]&&0===this.bytes[A+1]&&1===this.bytes[A+2]},t.peek=function(A){for(var t=this.index,i=0;A;){var e=8-(7&t),s=e>3]&255>>8-s<>o,t+=s,A-=s}return i},t.read=function(A){var t=this.peek(A);return this.index+=A,t},t.skip=function(A){return this.index+=A},t.rewind=function(A){this.index=Math.max(this.index-A,0)},t.has=function(A){return(this.byteLength<<3)-this.index>=A},A}();J.MODE={EVICT:1,EXPAND:2};var T=function(){function A(){this.bits=null,this.leftoverBytes=null,this.guessVideoFrameEnd=!0,this.pidsToStreamIds={},this.pesPacketInfo={},this.startTime=0,this.currentTime=0}var t=A.prototype;return t.connect=function(A,t){this.pesPacketInfo[A]={destination:t,currentLength:0,totalLength:0,pts:0,buffers:[]}},t.write=function(A){if(this.leftoverBytes){var t=A.byteLength+this.leftoverBytes.byteLength;this.bits=new J(t),this.bits.write([this.leftoverBytes,A])}else this.bits=new J(A);for(;this.bits.has(1504)&&this.parsePacket(););var i=this.bits.byteLength-(this.bits.index>>3);this.leftoverBytes=i>0?this.bits.bytes.subarray(this.bits.index>>3):null},t.parsePacket=function(){if(71!==this.bits.read(8)&&!this.resync())return!1;var A=187+(this.bits.index>>3);this.bits.read(1);var t=this.bits.read(1);this.bits.read(1);var i=this.bits.read(13);this.bits.read(2);var e=this.bits.read(2);this.bits.read(4);var s=this.pidsToStreamIds[i];if(t&&s){var o=this.pesPacketInfo[s];o&&o.currentLength&&this.packetComplete(o)}if(1&e){if(2&e){var g=this.bits.read(8);this.bits.skip(g<<3)}if(t&&this.bits.nextBytesAreStartCode()){this.bits.skip(24),s=this.bits.read(8),this.pidsToStreamIds[i]=s;var I=this.bits.read(16);this.bits.skip(8);var a=this.bits.read(2);this.bits.skip(6);var B=this.bits.read(8),r=this.bits.index+(B<<3),C=this.pesPacketInfo[s];if(C){var n=0;if(2&a){this.bits.skip(4);var E=this.bits.read(3);this.bits.skip(1);var Q=this.bits.read(15);this.bits.skip(1);var h=this.bits.read(15);this.bits.skip(1),n=(1073741824*E+32768*Q+h)/9e4,this.currentTime=n,-1===this.startTime&&(this.startTime=n)}var d=I?I-B-3:0;this.packetStart(C,n,d)}this.bits.index=r}if(s){var c=this.pesPacketInfo[s];if(c){var l=this.bits.index>>3,u=!t&&2&e;(this.packetAddData(c,l,A)||this.guessVideoFrameEnd&&u)&&this.packetComplete(c)}}}return this.bits.index=A<<3,!0},t.resync=function(){if(!this.bits.has(9024))return!1;for(var A=this.bits.index>>3,t=0;t<187;t++)if(71===this.bits.bytes[A+t]){for(var i=!0,e=1;e<5;e++)if(71!==this.bits.bytes[A+t+188*e]){i=!1;break}if(i)return this.bits.index=A+t+1<<3,!0}return console.warn("JSMpeg: Possible garbage data. Skipping."),this.bits.skip(1496),!1},t.packetStart=function(A,t,i){A.totalLength=i,A.currentLength=0,A.pts=t},t.packetAddData=function(A,t,i){return A.buffers.push(this.bits.bytes.subarray(t,i)),A.currentLength+=i-t,0!==A.totalLength&&A.currentLength>=A.totalLength},t.packetComplete=function(A){A.destination.write(A.pts,A.buffers),A.totalLength=0,A.currentLength=0,A.buffers=[]},A}();T.STREAM={PACK_HEADER:186,SYSTEM_HEADER:187,PROGRAM_MAP:188,PRIVATE_1:189,PADDING:190,PRIVATE_2:191,AUDIO_1:192,VIDEO_1:224,DIRECTORY:255};var v=function(){function A(A){this.destination=null,this.canPlay=!1,this.collectTimestamps=!A.streaming,this.bytesWritten=0,this.timestamps=[],this.timestampIndex=0,this.startTime=0,this.decodedTime=0,Object.defineProperty(this,"currentTime",{get:this.getCurrentTime})}var t=A.prototype;return t.destroy=function(){},t.connect=function(A){this.destination=A},t.bufferGetIndex=function(){return this.bits.index},t.bufferSetIndex=function(A){this.bits.index=A},t.bufferWrite=function(A){return this.bits.write(A)},t.write=function(A,t){this.collectTimestamps&&(0===this.timestamps.length&&(this.startTime=A,this.decodedTime=A),this.timestamps.push({index:this.bytesWritten<<3,time:A})),this.bytesWritten+=this.bufferWrite(t),this.canPlay=!0},t.seek=function(A){if(this.collectTimestamps){this.timestampIndex=0;for(var t=0;tA);t++)this.timestampIndex=t;var i=this.timestamps[this.timestampIndex];i?(this.bufferSetIndex(i.index),this.decodedTime=i.time):(this.bits.index=0,this.decodedTime=this.startTime)}},t.decode=function(){this.advanceDecodedTime(0)},t.advanceDecodedTime=function(A){if(this.collectTimestamps){for(var t=-1,i=this.bufferGetIndex(),e=this.timestampIndex;ei);e++)t=e;if(-1!==t&&t!==this.timestampIndex)return this.timestampIndex=t,void(this.decodedTime=this.timestamps[this.timestampIndex].time)}this.decodedTime+=A},t.getCurrentTime=function(){return this.decodedTime},A}(),x=function(A){function t(t){var i;(i=A.call(this,t)||this).onDecodeCallback=t.onVideoDecode;var e=t.videoBufferSize||524288,s=t.streaming?J.MODE.EVICT:J.MODE.EXPAND;return i.bits=new J(e,s),i.customIntraQuantMatrix=new Uint8Array(64),i.customNonIntraQuantMatrix=new Uint8Array(64),i.blockData=new Int32Array(64),i.currentFrame=0,i.decodeFirstFrame=!1!==t.decodeFirstFrame,i}p(t,A);var i=t.prototype;return i.write=function(A,i){if(v.prototype.write.call(this,A,i),!this.hasSequenceHeader){if(-1===this.bits.findStartCode(t.START.SEQUENCE))return!1;this.decodeSequenceHeader(),this.decodeFirstFrame&&this.decode()}},i.decode=function(){var A=F();if(!this.hasSequenceHeader)return!1;if(-1===this.bits.findStartCode(t.START.PICTURE))return!1;this.decodePicture(),this.advanceDecodedTime(1/this.frameRate);var i=F()-A;return this.onDecodeCallback&&this.onDecodeCallback(this,i),!0},i.readHuffman=function(A){var t=0;do{t=A[t+this.bits.read(1)]}while(t>=0&&0!==A[t]);return A[t+2]},i.decodeSequenceHeader=function(){var A=this.bits.read(12),i=this.bits.read(12);if(this.bits.skip(4),this.frameRate=t.PICTURE_RATE[this.bits.read(4)],this.bits.skip(30),A===this.width&&i===this.height||(this.width=A,this.height=i,this.initBuffers(),this.destination&&this.destination.resize(A,i)),this.bits.read(1)){for(var e=0;e<64;e++)this.customIntraQuantMatrix[t.ZIG_ZAG[e]]=this.bits.read(8);this.intraQuantMatrix=this.customIntraQuantMatrix}if(this.bits.read(1)){for(var s=0;s<64;s++){var o=t.ZIG_ZAG[s];this.customNonIntraQuantMatrix[o]=this.bits.read(8)}this.nonIntraQuantMatrix=this.customNonIntraQuantMatrix}this.hasSequenceHeader=!0},i.initBuffers=function(){this.intraQuantMatrix=t.DEFAULT_INTRA_QUANT_MATRIX,this.nonIntraQuantMatrix=t.DEFAULT_NON_INTRA_QUANT_MATRIX,this.mbWidth=this.width+15>>4,this.mbHeight=this.height+15>>4,this.mbSize=this.mbWidth*this.mbHeight,this.codedWidth=this.mbWidth<<4,this.codedHeight=this.mbHeight<<4,this.codedSize=this.codedWidth*this.codedHeight,this.halfWidth=this.mbWidth<<3,this.halfHeight=this.mbHeight<<3,this.currentY=new Uint8ClampedArray(this.codedSize),this.currentY32=new Uint32Array(this.currentY.buffer),this.currentCr=new Uint8ClampedArray(this.codedSize>>2),this.currentCr32=new Uint32Array(this.currentCr.buffer),this.currentCb=new Uint8ClampedArray(this.codedSize>>2),this.currentCb32=new Uint32Array(this.currentCb.buffer),this.forwardY=new Uint8ClampedArray(this.codedSize),this.forwardY32=new Uint32Array(this.forwardY.buffer),this.forwardCr=new Uint8ClampedArray(this.codedSize>>2),this.forwardCr32=new Uint32Array(this.forwardCr.buffer),this.forwardCb=new Uint8ClampedArray(this.codedSize>>2),this.forwardCb32=new Uint32Array(this.forwardCb.buffer)},i.decodePicture=function(){if(this.currentFrame++,this.bits.skip(10),this.pictureType=this.bits.read(3),this.bits.skip(16),!(this.pictureType<=0||this.pictureType>=t.PICTURE_TYPE.B)){if(this.pictureType===t.PICTURE_TYPE.PREDICTIVE){if(this.fullPelForward=this.bits.read(1),this.forwardFCode=this.bits.read(3),0===this.forwardFCode)return;this.forwardRSize=this.forwardFCode-1,this.forwardF=1<=t.START.SLICE_FIRST&&A<=t.START.SLICE_LAST;)this.decodeSlice(255&A),A=this.bits.findNextStartCode();if(-1!==A&&this.bits.rewind(32),this.destination&&this.destination.render(this.currentY,this.currentCr,this.currentCb,!0),this.pictureType===t.PICTURE_TYPE.INTRA||this.pictureType===t.PICTURE_TYPE.PREDICTIVE){var i=this.forwardY,e=this.forwardY32,s=this.forwardCr,o=this.forwardCr32,g=this.forwardCb,I=this.forwardCb32;this.forwardY=this.currentY,this.forwardY32=this.currentY32,this.forwardCr=this.currentCr,this.forwardCr32=this.currentCr32,this.forwardCb=this.currentCb,this.forwardCb32=this.currentCb32,this.currentY=i,this.currentY32=e,this.currentCr=s,this.currentCr32=o,this.currentCb=g,this.currentCb32=I}}},i.decodeSlice=function(A){for(this.sliceBegin=!0,this.macroblockAddress=(A-1)*this.mbWidth-1,this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0,this.dcPredictorY=128,this.dcPredictorCr=128,this.dcPredictorCb=128,this.quantizerScale=this.bits.read(5);this.bits.read(1);)this.bits.skip(8);do{this.decodeMacroblock()}while(!this.bits.nextBytesAreStartCode())},i.decodeMacroblock=function(){for(var A=0,i=this.readHuffman(t.MACROBLOCK_ADDRESS_INCREMENT);34===i;)i=this.readHuffman(t.MACROBLOCK_ADDRESS_INCREMENT);for(;35===i;)A+=33,i=this.readHuffman(t.MACROBLOCK_ADDRESS_INCREMENT);if(A+=i,this.sliceBegin)this.sliceBegin=!1,this.macroblockAddress+=A;else{if(this.macroblockAddress+A>=this.mbSize)return;for(A>1&&(this.dcPredictorY=128,this.dcPredictorCr=128,this.dcPredictorCb=128,this.pictureType===t.PICTURE_TYPE.PREDICTIVE&&(this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0));A>1;)this.macroblockAddress++,this.mbRow=this.macroblockAddress/this.mbWidth|0,this.mbCol=this.macroblockAddress%this.mbWidth,this.copyMacroblock(this.motionFwH,this.motionFwV,this.forwardY,this.forwardCr,this.forwardCb),A--;this.macroblockAddress++}this.mbRow=this.macroblockAddress/this.mbWidth|0,this.mbCol=this.macroblockAddress%this.mbWidth;var e=t.MACROBLOCK_TYPE[this.pictureType];this.macroblockType=this.readHuffman(e),this.macroblockIntra=1&this.macroblockType,this.macroblockMotFw=8&this.macroblockType,16&this.macroblockType&&(this.quantizerScale=this.bits.read(5)),this.macroblockIntra?(this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0):(this.dcPredictorY=128,this.dcPredictorCr=128,this.dcPredictorCb=128,this.decodeMotionVectors(),this.copyMacroblock(this.motionFwH,this.motionFwV,this.forwardY,this.forwardCr,this.forwardCb));for(var s=2&this.macroblockType?this.readHuffman(t.CODE_BLOCK_PATTERN):this.macroblockIntra?63:0,o=0,g=32;o<6;o++)s&g&&this.decodeBlock(o),g>>=1},i.decodeMotionVectors=function(){var A,i,e=0;this.macroblockMotFw?(0!==(A=this.readHuffman(t.MOTION))&&1!==this.forwardF?(e=this.bits.read(this.forwardRSize),i=(Math.abs(A)-1<(this.forwardF<<4)-1?this.motionFwHPrev-=this.forwardF<<5:this.motionFwHPrev<-this.forwardF<<4&&(this.motionFwHPrev+=this.forwardF<<5),this.motionFwH=this.motionFwHPrev,this.fullPelForward&&(this.motionFwH<<=1),0!==(A=this.readHuffman(t.MOTION))&&1!==this.forwardF?(e=this.bits.read(this.forwardRSize),i=(Math.abs(A)-1<(this.forwardF<<4)-1?this.motionFwVPrev-=this.forwardF<<5:this.motionFwVPrev<-this.forwardF<<4&&(this.motionFwVPrev+=this.forwardF<<5),this.motionFwV=this.motionFwVPrev,this.fullPelForward&&(this.motionFwV<<=1)):this.pictureType===t.PICTURE_TYPE.PREDICTIVE&&(this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0)},i.copyMacroblock=function(A,t,i,e,s){var o,g,I,a,B,r,C,n,E,Q,h,d,c,l,u,w,p,m,D,f=this.currentY32,y=this.currentCb32,R=this.currentCr32;if(g=(o=this.codedWidth)-16,I=A>>1,a=t>>1,B=!(1&~A),r=!(1&~t),C=((this.mbRow<<4)+a)*o+(this.mbCol<<4)+I,E=(n=this.mbRow*o+this.mbCol<<2)+(o<<2),B)if(r)for(;n>2&255,c|=(h=i[++C]+i[C+o])+d+2<<6&65280,c|=h+(d=i[++C]+i[C+o])+2<<14&16711680,h=i[++C]+i[C+o],C++,c|=h+d+2<<22&4278190080,f[n++]=c;n+=g>>2,C+=g-1}else for(;n>1&255,c|=(h=i[C++])+d+1<<7&65280,c|=h+(d=i[C++])+1<<15&16711680,c|=(h=i[C++])+d+1<<23&4278190080,f[n++]=c;n+=g>>2,C+=g-1}else if(r)for(;n>1&255,c|=i[++C]+i[C+o]+1<<7&65280,c|=i[++C]+i[C+o]+1<<15&16711680,c|=i[++C]+i[C+o]+1<<23&4278190080,C++,f[n++]=c;n+=g>>2,C+=g}else for(;n>2,C+=g}if(g=(o=this.halfWidth)-8,I=A/2>>1,a=t/2>>1,B=1==(A/2&1),r=1==(t/2&1),C=((this.mbRow<<3)+a)*o+(this.mbCol<<3)+I,E=(n=this.mbRow*o+this.mbCol<<1)+(o<<1),B)if(r)for(;n>2&255,D=p+(m=s[C]+s[C+o])+2>>2&255,w|=(l=e[++C]+e[C+o])+u+2<<6&65280,D|=(p=s[C]+s[C+o])+m+2<<6&65280,w|=l+(u=e[++C]+e[C+o])+2<<14&16711680,D|=p+(m=s[C]+s[C+o])+2<<14&16711680,l=e[++C]+e[C+o],p=s[C]+s[C+o],C++,w|=l+u+2<<22&4278190080,D|=p+m+2<<22&4278190080,R[n]=w,y[n]=D,n++;n+=g>>2,C+=g-1}else for(;n>1&255,D=p+(m=s[C++])+1>>1&255,w|=(l=e[C])+u+1<<7&65280,D|=(p=s[C++])+m+1<<7&65280,w|=l+(u=e[C])+1<<15&16711680,D|=p+(m=s[C++])+1<<15&16711680,w|=(l=e[C])+u+1<<23&4278190080,D|=(p=s[C++])+m+1<<23&4278190080,R[n]=w,y[n]=D,n++;n+=g>>2,C+=g-1}else if(r)for(;n>1&255,D=s[C]+s[C+o]+1>>1&255,w|=e[++C]+e[C+o]+1<<7&65280,D|=s[C]+s[C+o]+1<<7&65280,w|=e[++C]+e[C+o]+1<<15&16711680,D|=s[C]+s[C+o]+1<<15&16711680,w|=e[++C]+e[C+o]+1<<23&4278190080,D|=s[C]+s[C+o]+1<<23&4278190080,C++,R[n]=w,y[n]=D,n++;n+=g>>2,C+=g}else for(;n>2,C+=g}},i.decodeBlock=function(A){var i,e=0;if(this.macroblockIntra){var s,o;if(A<4?(s=this.dcPredictorY,o=this.readHuffman(t.DCT_DC_SIZE_LUMINANCE)):(s=4===A?this.dcPredictorCr:this.dcPredictorCb,o=this.readHuffman(t.DCT_DC_SIZE_CHROMINANCE)),o>0){var g=this.bits.read(o);this.blockData[0]=g&1<0&&0===this.bits.read(1))break;65535===n?(C=this.bits.read(6),0===(r=this.bits.read(8))?r=this.bits.read(8):128===r?r=this.bits.read(8)-256:r>128&&(r-=256)):(C=n>>8,r=255&n,this.bits.read(1)&&(r=-r)),e+=C;var E=t.ZIG_ZAG[e];e++,r<<=1,this.macroblockIntra||(r+=r<0?-1:1),1&(r=r*this.quantizerScale*i[E]>>4)||(r-=r>0?1:-1),r>2047?r=2047:r<-2048&&(r=-2048),this.blockData[E]=r*t.PREMULTIPLIER_MATRIX[E]}A<4?(I=this.currentY,B=this.codedWidth-8,a=this.mbRow*this.codedWidth+this.mbCol<<4,1&A&&(a+=8),2&A&&(a+=this.codedWidth<<3)):(I=4===A?this.currentCb:this.currentCr,B=(this.codedWidth>>1)-8,a=(this.mbRow*this.codedWidth<<2)+(this.mbCol<<3)),this.macroblockIntra?1===e?(t.CopyValueToDestination(this.blockData[0]+128>>8,I,a,B),this.blockData[0]=0):(t.IDCT(this.blockData),t.CopyBlockToDestination(this.blockData,I,a,B),M(this.blockData,0)):1===e?(t.AddValueToDestination(this.blockData[0]+128>>8,I,a,B),this.blockData[0]=0):(t.IDCT(this.blockData),t.AddBlockToDestination(this.blockData,I,a,B),M(this.blockData,0)),e=0},t.CopyBlockToDestination=function(A,t,i,e){for(var s=0;s<64;s+=8,i+=e+8)t[i+0]=A[s+0],t[i+1]=A[s+1],t[i+2]=A[s+2],t[i+3]=A[s+3],t[i+4]=A[s+4],t[i+5]=A[s+5],t[i+6]=A[s+6],t[i+7]=A[s+7]},t.AddBlockToDestination=function(A,t,i,e){for(var s=0;s<64;s+=8,i+=e+8)t[i+0]+=A[s+0],t[i+1]+=A[s+1],t[i+2]+=A[s+2],t[i+3]+=A[s+3],t[i+4]+=A[s+4],t[i+5]+=A[s+5],t[i+6]+=A[s+6],t[i+7]+=A[s+7]},t.CopyValueToDestination=function(A,t,i,e){for(var s=0;s<64;s+=8,i+=e+8)t[i+0]=A,t[i+1]=A,t[i+2]=A,t[i+3]=A,t[i+4]=A,t[i+5]=A,t[i+6]=A,t[i+7]=A},t.AddValueToDestination=function(A,t,i,e){for(var s=0;s<64;s+=8,i+=e+8)t[i+0]+=A,t[i+1]+=A,t[i+2]+=A,t[i+3]+=A,t[i+4]+=A,t[i+5]+=A,t[i+6]+=A,t[i+7]+=A},t.IDCT=function(A){for(var t,i,e,s,o,g,I,a,B,r,C,n,E,Q,h,d,c,l,u=0;u<8;++u)t=A[32+u],i=A[16+u]+A[48+u],e=A[40+u]-A[24+u],g=A[8+u]+A[56+u],I=A[24+u]+A[40+u],B=(E=(473*(s=A[8+u]-A[56+u])-196*e+128>>8)-(o=g+I))-(362*(g-I)+128>>8),Q=(r=(a=A[0+u])-t)+(C=(362*(A[16+u]-A[48+u])+128>>8)-i),h=(n=a+t)+i,d=r-C,c=n-i,l=-B-(473*e+196*s+128>>8),A[0+u]=o+h,A[8+u]=E+Q,A[16+u]=d-B,A[24+u]=c-l,A[32+u]=c+l,A[40+u]=B+d,A[48+u]=Q-E,A[56+u]=h-o;for(var w=0;w<64;w+=8)t=A[4+w],i=A[2+w]+A[6+w],e=A[5+w]-A[3+w],g=A[1+w]+A[7+w],I=A[3+w]+A[5+w],B=(E=(473*(s=A[1+w]-A[7+w])-196*e+128>>8)-(o=g+I))-(362*(g-I)+128>>8),Q=(r=(a=A[0+w])-t)+(C=(362*(A[2+w]-A[6+w])+128>>8)-i),h=(n=a+t)+i,d=r-C,c=n-i,l=-B-(473*e+196*s+128>>8),A[0+w]=o+h+128>>8,A[1+w]=E+Q+128>>8,A[2+w]=d-B+128>>8,A[3+w]=c-l+128>>8,A[4+w]=c+l+128>>8,A[5+w]=B+d+128>>8,A[6+w]=Q-E+128>>8,A[7+w]=h-o+128>>8},t}(v);x.prototype.frameRate=30,x.prototype.currentY=null,x.prototype.currentCr=null,x.prototype.currentCb=null,x.prototype.pictureType=0,x.prototype.forwardY=null,x.prototype.forwardCr=null,x.prototype.forwardCb=null,x.prototype.fullPelForward=!1,x.prototype.forwardFCode=0,x.prototype.forwardRSize=0,x.prototype.forwardF=0,x.prototype.quantizerScale=0,x.prototype.sliceBegin=!1,x.prototype.macroblockAddress=0,x.prototype.mbRow=0,x.prototype.mbCol=0,x.prototype.macroblockType=0,x.prototype.macroblockIntra=!1,x.prototype.macroblockMotFw=!1,x.prototype.motionFwH=0,x.prototype.motionFwV=0,x.prototype.motionFwHPrev=0,x.prototype.motionFwVPrev=0,x.prototype.dcPredictorY=0,x.prototype.dcPredictorCr=0,x.prototype.dcPredictorCb=0,x.prototype.blockData=null,x.PICTURE_RATE=[0,23.976,24,25,29.97,30,50,59.94,60,0,0,0,0,0,0,0],x.ZIG_ZAG=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),x.DEFAULT_INTRA_QUANT_MATRIX=new Uint8Array([8,16,19,22,26,27,29,34,16,16,22,24,27,29,34,37,19,22,26,27,29,34,34,38,22,22,26,27,29,34,37,40,22,26,27,29,32,35,40,48,26,27,29,32,35,40,48,58,26,27,29,34,38,46,56,69,27,29,35,38,46,56,69,83]),x.DEFAULT_NON_INTRA_QUANT_MATRIX=new Uint8Array([16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]),x.PREMULTIPLIER_MATRIX=new Uint8Array([32,44,42,38,32,25,17,9,44,62,58,52,44,35,24,12,42,58,55,49,42,33,23,12,38,52,49,44,38,30,20,10,32,44,42,38,32,25,17,9,25,35,33,30,25,20,14,7,17,24,23,20,17,14,9,5,9,12,12,10,9,7,5,2]),x.MACROBLOCK_ADDRESS_INCREMENT=new Int16Array([3,6,0,9,12,0,0,0,1,15,18,0,21,24,0,27,30,0,33,36,0,0,0,3,0,0,2,39,42,0,45,48,0,0,0,5,0,0,4,51,54,0,57,60,0,0,0,7,0,0,6,63,66,0,69,72,0,75,78,0,81,84,0,-1,87,0,-1,90,0,93,96,0,99,102,0,105,108,0,111,114,0,0,0,9,0,0,8,117,120,0,123,126,0,129,132,0,135,138,0,0,0,15,0,0,14,0,0,13,0,0,12,0,0,11,0,0,10,141,-1,0,-1,144,0,147,150,0,153,156,0,159,162,0,165,168,0,171,174,0,177,180,0,183,-1,0,-1,186,0,189,192,0,195,198,0,201,204,0,207,210,0,213,216,0,219,222,0,0,0,21,0,0,20,0,0,19,0,0,18,0,0,17,0,0,16,0,0,35,0,0,34,0,0,33,0,0,32,0,0,31,0,0,30,0,0,29,0,0,28,0,0,27,0,0,26,0,0,25,0,0,24,0,0,23,0,0,22]),x.MACROBLOCK_TYPE_INTRA=new Int8Array([3,6,0,-1,9,0,0,0,1,0,0,17]),x.MACROBLOCK_TYPE_PREDICTIVE=new Int8Array([3,6,0,9,12,0,0,0,10,15,18,0,0,0,2,21,24,0,0,0,8,27,30,0,33,36,0,-1,39,0,0,0,18,0,0,26,0,0,1,0,0,17]),x.MACROBLOCK_TYPE_B=new Int8Array([3,6,0,9,15,0,12,18,0,24,21,0,0,0,12,27,30,0,0,0,14,39,42,0,36,33,0,0,0,4,0,0,6,54,48,0,45,51,0,0,0,8,0,0,10,-1,57,0,0,0,1,60,63,0,0,0,30,0,0,17,0,0,22,0,0,26]),x.MACROBLOCK_TYPE=[null,x.MACROBLOCK_TYPE_INTRA,x.MACROBLOCK_TYPE_PREDICTIVE,x.MACROBLOCK_TYPE_B],x.CODE_BLOCK_PATTERN=new Int16Array([6,3,0,9,18,0,12,15,0,24,33,0,36,39,0,27,21,0,30,42,0,60,57,0,54,48,0,69,51,0,81,75,0,63,84,0,45,66,0,72,78,0,0,0,60,105,120,0,132,144,0,114,108,0,126,141,0,87,93,0,117,96,0,0,0,32,135,138,0,99,123,0,129,102,0,0,0,4,90,111,0,0,0,8,0,0,16,0,0,44,150,168,0,0,0,28,0,0,52,0,0,62,183,177,0,156,180,0,0,0,1,165,162,0,0,0,61,0,0,56,171,174,0,0,0,2,0,0,40,153,186,0,0,0,48,192,189,0,147,159,0,0,0,20,0,0,12,240,249,0,0,0,63,231,225,0,195,219,0,252,198,0,0,0,24,0,0,36,0,0,3,207,261,0,243,237,0,204,213,0,210,234,0,201,228,0,216,222,0,258,255,0,264,246,0,-1,282,0,285,291,0,0,0,33,0,0,9,318,330,0,306,348,0,0,0,5,0,0,10,279,267,0,0,0,6,0,0,18,0,0,17,0,0,34,339,357,0,309,312,0,270,276,0,327,321,0,351,354,0,303,297,0,294,288,0,300,273,0,342,345,0,315,324,0,336,333,0,363,375,0,0,0,41,0,0,14,0,0,21,372,366,0,360,369,0,0,0,11,0,0,19,0,0,7,0,0,35,0,0,13,0,0,50,0,0,49,0,0,58,0,0,37,0,0,25,0,0,45,0,0,57,0,0,26,0,0,29,0,0,38,0,0,53,0,0,23,0,0,43,0,0,46,0,0,42,0,0,22,0,0,54,0,0,51,0,0,15,0,0,30,0,0,39,0,0,47,0,0,55,0,0,27,0,0,59,0,0,31]),x.MOTION=new Int16Array([3,6,0,12,9,0,0,0,0,18,15,0,24,21,0,0,0,-1,0,0,1,27,30,0,36,33,0,0,0,2,0,0,-2,42,45,0,48,39,0,60,54,0,0,0,3,0,0,-3,51,57,0,-1,69,0,81,75,0,78,63,0,72,66,0,96,84,0,87,93,0,-1,99,0,108,105,0,0,0,-4,90,102,0,0,0,4,0,0,-7,0,0,5,111,123,0,0,0,-5,0,0,7,114,120,0,126,117,0,0,0,-6,0,0,6,153,162,0,150,147,0,135,138,0,156,141,0,129,159,0,132,144,0,0,0,10,0,0,9,0,0,8,0,0,-8,171,198,0,0,0,-9,180,192,0,168,183,0,165,186,0,174,189,0,0,0,-10,177,195,0,0,0,12,0,0,16,0,0,13,0,0,14,0,0,11,0,0,15,0,0,-16,0,0,-12,0,0,-14,0,0,-15,0,0,-11,0,0,-13]),x.DCT_DC_SIZE_LUMINANCE=new Int8Array([6,3,0,18,15,0,9,12,0,0,0,1,0,0,2,27,24,0,21,30,0,0,0,0,36,33,0,0,0,4,0,0,3,39,42,0,0,0,5,0,0,6,48,45,0,51,-1,0,0,0,7,0,0,8]),x.DCT_DC_SIZE_CHROMINANCE=new Int8Array([6,3,0,12,9,0,18,15,0,24,21,0,0,0,2,0,0,1,0,0,0,30,27,0,0,0,3,36,33,0,0,0,4,42,39,0,0,0,5,48,45,0,0,0,6,51,-1,0,0,0,7,0,0,8]),x.DCT_COEFF=new Int32Array([3,6,0,12,9,0,0,0,1,21,24,0,18,15,0,39,27,0,33,30,0,42,36,0,0,0,257,60,66,0,54,63,0,48,57,0,0,0,513,51,45,0,0,0,2,0,0,3,81,75,0,87,93,0,72,78,0,96,90,0,0,0,1025,69,84,0,0,0,769,0,0,258,0,0,1793,0,0,65535,0,0,1537,111,108,0,0,0,1281,105,102,0,117,114,0,99,126,0,120,123,0,156,150,0,162,159,0,144,147,0,129,135,0,138,132,0,0,0,2049,0,0,4,0,0,514,0,0,2305,153,141,0,165,171,0,180,168,0,177,174,0,183,186,0,0,0,2561,0,0,3329,0,0,6,0,0,259,0,0,5,0,0,770,0,0,2817,0,0,3073,228,225,0,201,210,0,219,213,0,234,222,0,216,231,0,207,192,0,204,189,0,198,195,0,243,261,0,273,240,0,246,237,0,249,258,0,279,276,0,252,255,0,270,282,0,264,267,0,0,0,515,0,0,260,0,0,7,0,0,1026,0,0,1282,0,0,4097,0,0,3841,0,0,3585,315,321,0,333,342,0,312,291,0,375,357,0,288,294,0,-1,369,0,285,303,0,318,363,0,297,306,0,339,309,0,336,348,0,330,300,0,372,345,0,351,366,0,327,354,0,360,324,0,381,408,0,417,420,0,390,378,0,435,438,0,384,387,0,0,0,2050,396,402,0,465,462,0,0,0,8,411,399,0,429,432,0,453,414,0,426,423,0,0,0,10,0,0,9,0,0,11,0,0,5377,0,0,1538,0,0,771,0,0,5121,0,0,1794,0,0,4353,0,0,4609,0,0,4865,444,456,0,0,0,1027,459,450,0,0,0,261,393,405,0,0,0,516,447,441,0,516,519,0,486,474,0,510,483,0,504,498,0,471,537,0,507,501,0,522,513,0,534,531,0,468,477,0,492,495,0,549,546,0,525,528,0,0,0,263,0,0,2562,0,0,2306,0,0,5633,0,0,5889,0,0,6401,0,0,6145,0,0,1283,0,0,772,0,0,13,0,0,12,0,0,14,0,0,15,0,0,517,0,0,6657,0,0,262,540,543,0,480,489,0,588,597,0,0,0,27,609,555,0,606,603,0,0,0,19,0,0,22,591,621,0,0,0,18,573,576,0,564,570,0,0,0,20,552,582,0,0,0,21,558,579,0,0,0,23,612,594,0,0,0,25,0,0,24,600,615,0,0,0,31,0,0,30,0,0,28,0,0,29,0,0,26,0,0,17,0,0,16,567,618,0,561,585,0,654,633,0,0,0,37,645,648,0,0,0,36,630,636,0,0,0,34,639,627,0,663,666,0,657,624,0,651,642,0,669,660,0,0,0,35,0,0,267,0,0,40,0,0,268,0,0,266,0,0,32,0,0,264,0,0,265,0,0,38,0,0,269,0,0,270,0,0,33,0,0,39,0,0,7937,0,0,6913,0,0,7681,0,0,4098,0,0,7425,0,0,7169,0,0,271,0,0,274,0,0,273,0,0,272,0,0,1539,0,0,2818,0,0,3586,0,0,3330,0,0,3074,0,0,3842]),x.PICTURE_TYPE={INTRA:1,PREDICTIVE:2,B:3},x.START={SEQUENCE:179,SLICE_FIRST:1,SLICE_LAST:175,PICTURE:0,EXTENSION:181,USER_DATA:178};var Y=function(A){function t(t){var i;return(i=A.call(this,t)||this).onDecodeCallback=t.onVideoDecode,i.module=t.wasmModule,i.bufferSize=t.videoBufferSize||524288,i.bufferMode=t.streaming?J.MODE.EVICT:J.MODE.EXPAND,i.decodeFirstFrame=!1!==t.decodeFirstFrame,i.hasSequenceHeader=!1,i}p(t,A);var i=t.prototype;return i.initializeWasmDecoder=function(){this.module.instance?(this.instance=this.module.instance,this.functions=this.module.instance.exports,this.decoder=this.functions._mpeg1_decoder_create(this.bufferSize,this.bufferMode)):console.warn("JSMpeg: WASM module not compiled yet")},i.destroy=function(){this.decoder&&this.functions._mpeg1_decoder_destroy(this.decoder)},i.bufferGetIndex=function(){if(this.decoder)return this.functions._mpeg1_decoder_get_index(this.decoder)},i.bufferSetIndex=function(A){this.decoder&&this.functions._mpeg1_decoder_set_index(this.decoder,A)},i.bufferWrite=function(A){this.decoder||this.initializeWasmDecoder();for(var t=0,i=0;i>2)),g=this.instance.heapU8.subarray(e,e+(this.codedSize>>2));this.destination.render(s,o,g,!1)}this.advanceDecodedTime(1/this.frameRate);var I=F()-A;return this.onDecodeCallback&&this.onDecodeCallback(this,I),!0},t}(v),H=function(A){function t(i){var e;(e=A.call(this,i)||this).onDecodeCallback=i.onAudioDecode;var s=i.audioBufferSize||131072,o=i.streaming?J.MODE.EVICT:J.MODE.EXPAND;e.bits=new J(s,o),e.left=new Float32Array(1152),e.right=new Float32Array(1152),e.sampleRate=44100,e.D=new Float32Array(1024),e.D.set(t.SYNTHESIS_WINDOW,0),e.D.set(t.SYNTHESIS_WINDOW,512),e.V=[new Float32Array(1024),new Float32Array(1024)],e.U=new Int32Array(32),e.VPos=0,e.allocation=[new Array(32),new Array(32)],e.scaleFactorInfo=[new Uint8Array(32),new Uint8Array(32)],e.scaleFactor=[new Array(32),new Array(32)],e.sample=[new Array(32),new Array(32)];for(var g=0;g<2;g++)for(var I=0;I<32;I++)e.scaleFactor[g][I]=[0,0,0],e.sample[g][I]=[0,0,0];return e}p(t,A);var i=t.prototype;return i.decode=function(){var A=F(),t=this.bits.index>>3;if(t>=this.bits.byteLength)return!1;var i=this.decodeFrame(this.left,this.right);if(this.bits.index=t+i<<3,!i)return!1;this.destination&&this.destination.play(this.sampleRate,this.left,this.right),this.advanceDecodedTime(this.left.length/this.sampleRate);var e=F()-A;return this.onDecodeCallback&&this.onDecodeCallback(this,e),!0},i.getCurrentTime=function(){var A=this.destination?this.destination.enqueuedTime:0;return this.decodedTime-A},i.decodeFrame=function(A,i){var e=this.bits.read(11),s=this.bits.read(2),o=this.bits.read(2),g=!this.bits.read(1);if(e!==t.FRAME_SYNC||s!==t.VERSION.MPEG_1||o!==t.LAYER.II)return 0;var I=this.bits.read(4)-1;if(I>13)return 0;var a=this.bits.read(2),B=t.SAMPLE_RATE[a];if(3===a)return 0;s===t.VERSION.MPEG_2&&(a+=4,I+=14);var r=this.bits.read(1);this.bits.read(1);var C=this.bits.read(2),n=0;C===t.MODE.JOINT_STEREO?n=this.bits.read(2)+1<<2:(this.bits.skip(2),n=C===t.MODE.MONO?0:32),this.bits.skip(4),g&&this.bits.skip(16);var E=144e3*t.BIT_RATE[I]/(B=t.SAMPLE_RATE[a])+r|0,Q=0,h=0;if(s===t.VERSION.MPEG_2)Q=2,h=30;else{var d=C===t.MODE.MONO?0:1,c=t.QUANT_LUT_STEP_1[d][I];h=63&(Q=t.QUANT_LUT_STEP_2[c][a]),Q>>=6}n>h&&(n=h);for(var l=0;l>1),U=this.VPos%128>>1;U<1024;){for(var J=0;J<32;++J)this.U[J]+=this.D[L++]*this.V[N][U++];U+=96,L+=32}for(U=1120-U,L-=480;U<1024;){for(var T=0;T<32;++T)this.U[T]+=this.D[L++]*this.V[N][U++];U+=96,L+=32}for(var v=0===N?A:i,x=0;x<32;x++)v[R+x]=this.U[x]/2147418112}R+=32}}return this.sampleRate=B,E},i.readAllocation=function(A,i){var e=t.QUANT_LUT_STEP_3[i][A],s=t.QUANT_LUT_STEP4[15&e][this.bits.read(e>>4)];return s?t.QUANT_TAB[s-1]:0},i.readSamples=function(A,i,e){var s=this.allocation[A][i],o=this.scaleFactor[A][i][e],g=this.sample[A][i],I=0;if(s){if(63===o)o=0;else{var a=o/3|0;o=t.SCALEFACTOR_BASE[o%3]+(1<>1)>>a}var B=s.levels;s.group?(I=this.bits.read(s.bits),g[0]=I%B,I=I/B|0,g[1]=I%B,g[2]=I/B|0):(g[0]=this.bits.read(s.bits),g[1]=this.bits.read(s.bits),g[2]=this.bits.read(s.bits));var r=65536/(B+1)|0;I=((B=(B+1>>1)-1)-g[0])*r,g[0]=I*(o>>12)+(I*(4095&o)+2048>>12)>>12,I=(B-g[1])*r,g[1]=I*(o>>12)+(I*(4095&o)+2048>>12)>>12,I=(B-g[2])*r,g[2]=I*(o>>12)+(I*(4095&o)+2048>>12)>>12}else g[0]=g[1]=g[2]=0},t.MatrixTransform=function(A,t,i,e){var s,o,g,I,a,B,r,C,n,E,Q,h,d,c,l,u,w,p,m,D,f,y,R,k,b,S,G,F,M,q,N,L,U;s=A[0][t]+A[31][t],o=.500602998235*(A[0][t]-A[31][t]),g=A[1][t]+A[30][t],I=.505470959898*(A[1][t]-A[30][t]),a=A[2][t]+A[29][t],B=.515447309923*(A[2][t]-A[29][t]),r=A[3][t]+A[28][t],C=.53104259109*(A[3][t]-A[28][t]),n=A[4][t]+A[27][t],E=.553103896034*(A[4][t]-A[27][t]),Q=A[5][t]+A[26][t],h=.582934968206*(A[5][t]-A[26][t]),d=A[6][t]+A[25][t],c=.622504123036*(A[6][t]-A[25][t]),l=A[7][t]+A[24][t],u=.674808341455*(A[7][t]-A[24][t]),w=A[8][t]+A[23][t],p=.744536271002*(A[8][t]-A[23][t]),m=A[9][t]+A[22][t],D=.839349645416*(A[9][t]-A[22][t]),f=A[10][t]+A[21][t],y=.972568237862*(A[10][t]-A[21][t]),R=A[11][t]+A[20][t],k=1.16943993343*(A[11][t]-A[20][t]),b=A[12][t]+A[19][t],S=1.48416461631*(A[12][t]-A[19][t]),G=A[13][t]+A[18][t],F=2.05778100995*(A[13][t]-A[18][t]),M=A[14][t]+A[17][t],q=3.40760841847*(A[14][t]-A[17][t]),U=s+(N=A[15][t]+A[16][t]),N=.502419286188*(s-N),s=g+M,M=.52249861494*(g-M),g=a+G,G=.566944034816*(a-G),a=r+b,b=.64682178336*(r-b),r=n+R,R=.788154623451*(n-R),n=Q+f,f=1.06067768599*(Q-f),Q=d+m,m=1.72244709824*(d-m),d=l+w,w=5.10114861869*(l-w),l=U+d,d=.509795579104*(U-d),U=s+Q,s=.601344886935*(s-Q),Q=g+n,n=.899976223136*(g-n),g=a+r,r=2.56291544774*(a-r),a=l+g,l=.541196100146*(l-g),g=U+Q,Q=1.30656296488*(U-Q),U=a+g,a=.707106781187*(a-g),g=l+Q,g+=l=.707106781187*(l-Q),Q=d+r,d=.541196100146*(d-r),r=s+n,n=1.30656296488*(s-n),s=Q+r,r=.707106781187*(Q-r),Q=d+n,s+=Q+=d=.707106781187*(d-n),Q+=r,r+=d,n=N+w,N=.509795579104*(N-w),w=M+m,M=.601344886935*(M-m),m=G+f,f=.899976223136*(G-f),G=b+R,R=2.56291544774*(b-R),b=n+G,n=.541196100146*(n-G),G=w+m,m=1.30656296488*(w-m),w=b+G,G=.707106781187*(b-G),b=n+m,m=.707106781187*(n-m),n=N+R,N=.541196100146*(N-R),R=M+f,f=1.30656296488*(M-f),M=n+R,R=.707106781187*(n-R),n=N+f,w+=M+=n+=N=.707106781187*(N-f),M+=b+=m,b+=n+=R,n+=G,G+=R+=N,R+=m,m+=N,f=o+(L=10.1900081235*(A[15][t]-A[16][t])),o=.502419286188*(o-L),L=I+q,I=.52249861494*(I-q),q=B+F,F=.566944034816*(B-F),B=C+S,C=.64682178336*(C-S),S=E+k,E=.788154623451*(E-k),k=h+y,y=1.06067768599*(h-y),h=c+D,D=1.72244709824*(c-D),c=u+p,u=5.10114861869*(u-p),p=f+c,c=.509795579104*(f-c),f=L+h,L=.601344886935*(L-h),h=q+k,k=.899976223136*(q-k),q=B+S,S=2.56291544774*(B-S),B=p+q,p=.541196100146*(p-q),q=f+h,h=1.30656296488*(f-h),f=B+q,q=.707106781187*(B-q),B=p+h,h=.707106781187*(p-h),p=c+S,S=.541196100146*(c-S),c=L+k,k=1.30656296488*(L-k),L=p+c,c=.707106781187*(p-c),p=S+k,L+=p+=k=.707106781187*(S-k),p+=c,S=c+k,c=o+u,o=.509795579104*(o-u),u=I+D,I=.601344886935*(I-D),D=F+y,y=.899976223136*(F-y),F=C+E,E=2.56291544774*(C-E),C=c+F,c=.541196100146*(c-F),F=u+D,D=1.30656296488*(u-D),u=C+F,F=.707106781187*(C-F),C=c+D,D=.707106781187*(c-D),c=o+E,o=.541196100146*(o-E),E=I+y,y=1.30656296488*(I-y),I=c+E,E=.707106781187*(c-E),c=o+y,f+=u+=I+=c+=o=.707106781187*(o-y),u+=L,L+=I+=C+=D,I+=B+=h,B+=C+=c+=E,C+=p,p+=c+=F,c+=q,q+=F+=E+=o,F+=S,S+=E+=D,E+=h,h+=D+=o,D+=k,k+=o,i[e+48]=-U,i[e+49]=i[e+47]=-f,i[e+50]=i[e+46]=-w,i[e+51]=i[e+45]=-u,i[e+52]=i[e+44]=-s,i[e+53]=i[e+43]=-L,i[e+54]=i[e+42]=-M,i[e+55]=i[e+41]=-I,i[e+56]=i[e+40]=-g,i[e+57]=i[e+39]=-B,i[e+58]=i[e+38]=-b,i[e+59]=i[e+37]=-C,i[e+60]=i[e+36]=-Q,i[e+61]=i[e+35]=-p,i[e+62]=i[e+34]=-n,i[e+63]=i[e+33]=-c,i[e+32]=-a,i[e+0]=a,i[e+31]=-q,i[e+1]=q,i[e+30]=-G,i[e+2]=G,i[e+29]=-F,i[e+3]=F,i[e+28]=-r,i[e+4]=r,i[e+27]=-S,i[e+5]=S,i[e+26]=-R,i[e+6]=R,i[e+25]=-E,i[e+7]=E,i[e+24]=-l,i[e+8]=l,i[e+23]=-h,i[e+9]=h,i[e+22]=-m,i[e+10]=m,i[e+21]=-D,i[e+11]=D,i[e+20]=-d,i[e+12]=d,i[e+19]=-k,i[e+13]=k,i[e+18]=-N,i[e+14]=N,i[e+17]=-o,i[e+15]=o,i[e+16]=0},t}(v);H.FRAME_SYNC=2047,H.VERSION={MPEG_2_5:0,MPEG_2:2,MPEG_1:3},H.LAYER={III:1,II:2,I:3},H.MODE={STEREO:0,JOINT_STEREO:1,DUAL_CHANNEL:2,MONO:3},H.SAMPLE_RATE=new Uint16Array([44100,48e3,32e3,0,22050,24e3,16e3,0]),H.BIT_RATE=new Uint16Array([32,48,56,64,80,96,112,128,160,192,224,256,320,384,8,16,24,32,40,48,56,64,80,96,112,128,144,160]),H.SCALEFACTOR_BASE=new Uint32Array([33554432,26632170,21137968]),H.SYNTHESIS_WINDOW=new Float32Array([0,-.5,-.5,-.5,-.5,-.5,-.5,-1,-1,-1,-1,-1.5,-1.5,-2,-2,-2.5,-2.5,-3,-3.5,-3.5,-4,-4.5,-5,-5.5,-6.5,-7,-8,-8.5,-9.5,-10.5,-12,-13,-14.5,-15.5,-17.5,-19,-20.5,-22.5,-24.5,-26.5,-29,-31.5,-34,-36.5,-39.5,-42.5,-45.5,-48.5,-52,-55.5,-58.5,-62.5,-66,-69.5,-73.5,-77,-80.5,-84.5,-88,-91.5,-95,-98,-101,-104,106.5,109,111,112.5,113.5,114,114,113.5,112,110.5,107.5,104,100,94.5,88.5,81.5,73,63.5,53,41.5,28.5,14.5,-1,-18,-36,-55.5,-76.5,-98.5,-122,-147,-173.5,-200.5,-229.5,-259.5,-290.5,-322.5,-355.5,-389.5,-424,-459.5,-495.5,-532,-568.5,-605,-641.5,-678,-714,-749,-783.5,-817,-849,-879.5,-908.5,-935,-959.5,-981,-1000.5,-1016,-1028.5,-1037.5,-1042.5,-1043.5,-1040,-1031.5,1018.5,1e3,976,946.5,911,869.5,822,767.5,707,640,565.5,485,397,302.5,201,92.5,-22.5,-144,-272.5,-407,-547.5,-694,-846,-1003,-1165,-1331.5,-1502,-1675.5,-1852.5,-2031.5,-2212.5,-2394,-2576.5,-2758.5,-2939.5,-3118.5,-3294.5,-3467.5,-3635.5,-3798.5,-3955,-4104.5,-4245.5,-4377.5,-4499,-4609.5,-4708,-4792.5,-4863.5,-4919,-4958,-4979.5,-4983,-4967.5,-4931.5,-4875,-4796,-4694.5,-4569.5,-4420,-4246,-4046,-3820,-3567,3287,2979.5,2644,2280.5,1888,1467.5,1018.5,541,35,-499,-1061,-1650,-2266.5,-2909,-3577,-4270,-4987.5,-5727.5,-6490,-7274,-8077.5,-8899.5,-9739,-10594.5,-11464.5,-12347,-13241,-14144.5,-15056,-15973.5,-16895.5,-17820,-18744.5,-19668,-20588,-21503,-22410.5,-23308.5,-24195,-25068.5,-25926.5,-26767,-27589,-28389,-29166.5,-29919,-30644.5,-31342,-32009.5,-32645,-33247,-33814.5,-34346,-34839.5,-35295,-35710,-36084.5,-36417.5,-36707.5,-36954,-37156.5,-37315,-37428,-37496,37519,37496,37428,37315,37156.5,36954,36707.5,36417.5,36084.5,35710,35295,34839.5,34346,33814.5,33247,32645,32009.5,31342,30644.5,29919,29166.5,28389,27589,26767,25926.5,25068.5,24195,23308.5,22410.5,21503,20588,19668,18744.5,17820,16895.5,15973.5,15056,14144.5,13241,12347,11464.5,10594.5,9739,8899.5,8077.5,7274,6490,5727.5,4987.5,4270,3577,2909,2266.5,1650,1061,499,-35,-541,-1018.5,-1467.5,-1888,-2280.5,-2644,-2979.5,3287,3567,3820,4046,4246,4420,4569.5,4694.5,4796,4875,4931.5,4967.5,4983,4979.5,4958,4919,4863.5,4792.5,4708,4609.5,4499,4377.5,4245.5,4104.5,3955,3798.5,3635.5,3467.5,3294.5,3118.5,2939.5,2758.5,2576.5,2394,2212.5,2031.5,1852.5,1675.5,1502,1331.5,1165,1003,846,694,547.5,407,272.5,144,22.5,-92.5,-201,-302.5,-397,-485,-565.5,-640,-707,-767.5,-822,-869.5,-911,-946.5,-976,-1e3,1018.5,1031.5,1040,1043.5,1042.5,1037.5,1028.5,1016,1000.5,981,959.5,935,908.5,879.5,849,817,783.5,749,714,678,641.5,605,568.5,532,495.5,459.5,424,389.5,355.5,322.5,290.5,259.5,229.5,200.5,173.5,147,122,98.5,76.5,55.5,36,18,1,-14.5,-28.5,-41.5,-53,-63.5,-73,-81.5,-88.5,-94.5,-100,-104,-107.5,-110.5,-112,-113.5,-114,-114,-113.5,-112.5,-111,-109,106.5,104,101,98,95,91.5,88,84.5,80.5,77,73.5,69.5,66,62.5,58.5,55.5,52,48.5,45.5,42.5,39.5,36.5,34,31.5,29,26.5,24.5,22.5,20.5,19,17.5,15.5,14.5,13,12,10.5,9.5,8.5,8,7,6.5,5.5,5,4.5,4,3.5,3.5,3,2.5,2.5,2,2,1.5,1.5,1,1,1,1,.5,.5,.5,.5,.5,.5]),H.QUANT_LUT_STEP_1=[[0,0,1,1,1,2,2,2,2,2,2,2,2,2],[0,0,0,0,0,0,1,1,1,2,2,2,2,2]],H.QUANT_TAB={A:91,B:94,C:8,D:12},H.QUANT_LUT_STEP_2=[[H.QUANT_TAB.C,H.QUANT_TAB.C,H.QUANT_TAB.D],[H.QUANT_TAB.A,H.QUANT_TAB.A,H.QUANT_TAB.A],[H.QUANT_TAB.B,H.QUANT_TAB.A,H.QUANT_TAB.B]],H.QUANT_LUT_STEP_3=[[68,68,52,52,52,52,52,52,52,52,52,52],[67,67,67,66,66,66,66,66,66,66,66,49,49,49,49,49,49,49,49,49,49,49,49,32,32,32,32,32,32,32],[69,69,69,69,52,52,52,52,52,52,52,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36]],H.QUANT_LUT_STEP4=[[0,1,2,17],[0,1,2,3,4,5,6,17],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17],[0,1,3,5,6,7,8,9,10,11,12,13,14,15,16,17],[0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,17],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]],H.QUANT_TAB=[{levels:3,group:1,bits:5},{levels:5,group:1,bits:7},{levels:7,group:0,bits:3},{levels:9,group:1,bits:10},{levels:15,group:0,bits:4},{levels:31,group:0,bits:5},{levels:63,group:0,bits:6},{levels:127,group:0,bits:7},{levels:255,group:0,bits:8},{levels:511,group:0,bits:9},{levels:1023,group:0,bits:10},{levels:2047,group:0,bits:11},{levels:4095,group:0,bits:12},{levels:8191,group:0,bits:13},{levels:16383,group:0,bits:14},{levels:32767,group:0,bits:15},{levels:65535,group:0,bits:16}];var P=function(A){function t(t){var i;return(i=A.call(this,t)||this).onDecodeCallback=t.onAudioDecode,i.module=t.wasmModule,i.bufferSize=t.audioBufferSize||131072,i.bufferMode=t.streaming?J.MODE.EVICT:J.MODE.EXPAND,i.sampleRate=0,i}p(t,A);var i=t.prototype;return i.initializeWasmDecoder=function(){this.module.instance?(this.instance=this.module.instance,this.functions=this.module.instance.exports,this.decoder=this.functions._mp2_decoder_create(this.bufferSize,this.bufferMode)):console.warn("JSMpeg: WASM module not compiled yet")},i.destroy=function(){this.decoder&&this.functions._mp2_decoder_destroy(this.decoder)},i.bufferGetIndex=function(){if(this.decoder)return this.functions._mp2_decoder_get_index(this.decoder)},i.bufferSetIndex=function(A){this.decoder&&this.functions._mp2_decoder_set_index(this.decoder,A)},i.bufferWrite=function(A){this.decoder||this.initializeWasmDecoder();for(var t=0,i=0;i>4<<4;this.gl.viewport(0,0,i,this.height)},t.createTexture=function(A,t){var i=this.gl,e=i.createTexture();return i.bindTexture(i.TEXTURE_2D,e),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),i.uniform1i(i.getUniformLocation(this.program,t),A),e},t.createProgram=function(A,t){var i=this.gl,e=i.createProgram();return i.attachShader(e,this.compileShader(i.VERTEX_SHADER,A)),i.attachShader(e,this.compileShader(i.FRAGMENT_SHADER,t)),i.linkProgram(e),i.useProgram(e),e},t.compileShader=function(A,t){var i=this.gl,e=i.createShader(A);if(i.shaderSource(e,t),i.compileShader(e),!i.getShaderParameter(e,i.COMPILE_STATUS))throw new Error(i.getShaderInfoLog(e));return e},t.allowsClampedTextureData=function(){var A=this.gl,t=A.createTexture();return A.bindTexture(A.TEXTURE_2D,t),A.texImage2D(A.TEXTURE_2D,0,A.LUMINANCE,1,1,0,A.LUMINANCE,A.UNSIGNED_BYTE,new Uint8ClampedArray([0])),0===A.getError()},t.renderProgress=function(A){var t=this.gl;t.useProgram(this.loadingProgram);var i=t.getUniformLocation(this.loadingProgram,"progress");t.uniform1f(i,A),t.drawArrays(t.TRIANGLE_STRIP,0,4)},t.render=function(A,t,i,e){if(this.enabled){var s=this.gl,o=this.width+15>>4<<4,g=this.height,I=o>>1,a=g>>1;e&&this.shouldCreateUnclampedViews&&(A=new Uint8Array(A.buffer),t=new Uint8Array(t.buffer),i=new Uint8Array(i.buffer)),s.useProgram(this.program),this.updateTexture(s.TEXTURE0,this.textureY,o,g,A),this.updateTexture(s.TEXTURE1,this.textureCb,I,a,t),this.updateTexture(s.TEXTURE2,this.textureCr,I,a,i),s.drawArrays(s.TRIANGLE_STRIP,0,4)}},t.updateTexture=function(A,t,i,e,s){var o=this.gl;o.activeTexture(A),o.bindTexture(o.TEXTURE_2D,t),this.hasTextureData[A]?o.texSubImage2D(o.TEXTURE_2D,0,0,0,i,e,o.LUMINANCE,o.UNSIGNED_BYTE,s):(this.hasTextureData[A]=!0,o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,i,e,0,o.LUMINANCE,o.UNSIGNED_BYTE,s))},t.deleteTexture=function(A,t){var i=this.gl;i.activeTexture(A),i.bindTexture(i.TEXTURE_2D,null),i.deleteTexture(t)},A.IsSupported=function(){try{if(!window.WebGLRenderingContext)return!1;var A=document.createElement("canvas");return!(!A.getContext("webgl")&&!A.getContext("experimental-webgl"))}catch(A){return!1}},A}();_.SHADER={FRAGMENT_YCRCB_TO_RGBA:["precision mediump float;","uniform sampler2D textureY;","uniform sampler2D textureCb;","uniform sampler2D textureCr;","varying vec2 texCoord;","mat4 rec601 = mat4(","1.16438, 0.00000, 1.59603, -0.87079,","1.16438, -0.39176, -0.81297, 0.52959,","1.16438, 2.01723, 0.00000, -1.08139,","0, 0, 0, 1",");","void main() {","float y = texture2D(textureY, texCoord).r;","float cb = texture2D(textureCb, texCoord).r;","float cr = texture2D(textureCr, texCoord).r;","gl_FragColor = vec4(y, cr, cb, 1.0) * rec601;","}"].join("\n"),FRAGMENT_LOADING:["precision mediump float;","uniform float progress;","varying vec2 texCoord;","void main() {","float c = ceil(progress-(1.0-texCoord.y));","gl_FragColor = vec4(c,c,c,1);","}"].join("\n"),VERTEX_IDENTITY:["attribute vec2 vertex;","varying vec2 texCoord;","void main() {","texCoord = vertex;","gl_Position = vec4((vertex * 2.0 - 1.0) * vec2(1, -1), 0.0, 1.0);","}"].join("\n")};var O=function(){function A(A){A.canvas?(this.canvas=A.canvas,this.ownsCanvasElement=!1):(this.canvas=document.createElement("canvas"),this.ownsCanvasElement=!0),this.width=this.canvas.width,this.height=this.canvas.height,this.enabled=!0,this.context=this.canvas.getContext("2d")}var t=A.prototype;return t.destroy=function(){this.ownsCanvasElement&&this.canvas.remove()},t.resize=function(A,t){this.width=0|A,this.height=0|t,this.canvas.width=this.width,this.canvas.height=this.height,this.imageData=this.context.getImageData(0,0,this.width,this.height),M(this.imageData.data,255)},t.renderProgress=function(A){var t=this.canvas.width,i=this.canvas.height,e=this.context;e.fillStyle="#222",e.fillRect(0,0,t,i),e.fillStyle="#fff",e.fillRect(0,i-i*A,t,i*A)},t.render=function(A,t,i){this.YCbCrToRGBA(A,t,i,this.imageData.data),this.context.putImageData(this.imageData,0,0)},t.YCbCrToRGBA=function(A,t,i,e){if(this.enabled)for(var s,o,g,I,a,B=this.width+15>>4<<4,r=B>>1,C=0,n=B,E=B+(B-this.width),Q=0,h=r-(this.width>>1),d=0,c=4*this.width,l=4*this.width,u=this.width>>1,w=this.height>>1,p=0;p>8)-179,I=(88*o>>8)-44+(183*s>>8)-91,a=o+(198*o>>8)-227;var D=A[C++],f=A[C++];e[d]=D+g,e[d+1]=D-I,e[d+2]=D+a,e[d+4]=f+g,e[d+5]=f-I,e[d+6]=f+a,d+=8;var y=A[n++],R=A[n++];e[c]=y+g,e[c+1]=y-I,e[c+2]=y+a,e[c+4]=R+g,e[c+5]=R-I,e[c+6]=R+a,c+=8}C+=E,n+=E,d+=l,c+=l,Q+=h}},A}(),K=function(){function A(){this.context=A.CachedContext=A.CachedContext||new(window.AudioContext||window.webkitAudioContext),this.gain=this.context.createGain(),this.destination=this.gain,this.gain.connect(this.context.destination),this.context._connections=(this.context._connections||0)+1,this.startTime=0,this.buffer=null,this.wallclockStartTime=0,this.volume=1,this.enabled=!0,this.unlocked=!A.NeedsUnlocking(),Object.defineProperty(this,"enqueuedTime",{get:this.getEnqueuedTime})}var t=A.prototype;return t.destroy=function(){this.gain.disconnect(),this.context._connections--,0===this.context._connections&&(this.context.close(),A.CachedContext=null)},t.play=function(A,t,i){if(this.enabled){if(!this.unlocked){var e=F();return this.wallclockStartTimethis.memory.buffer.byteLength){var i=this.brk-this.memory.buffer.byteLength,e=Math.ceil(i/this.pageSize);this.memory.grow(e),this.createHeapViews()}return t},t.c_abort=function(A){console.warn("JSMPeg: WASM abort",arguments)},t.c_assertFail=function(A){console.warn("JSMPeg: WASM ___assert_fail",arguments)},t.readDylinkSection=function(A){var t=new Uint8Array(A),i=0,e=function(){for(var A=0,e=1;;){var s=t[i++];if(A+=(127&s)*e,e*=128,!(128&s))return A}},s=function(A){for(var e=0;ethis.maxAudioLag&&(this.audioOut.resetEnqueuedTime(),this.audioOut.enabled=!1),A=this.audio.decode()}while(A);this.audioOut.enabled=!0}},t.updateForStaticFile=function(){var A=!1,t=0;if(this.audio&&this.audio.canPlay){for(;!A&&this.audio.decodedTime-this.audio.currentTime<.25;)A=!this.audio.decode();this.video&&this.video.currentTime0&&(e>2*s&&(this.startTime+=e),A=!this.video.decode()),t=this.demuxer.currentTime-i}this.source.resume(t),A&&this.source.completed?this.loop?this.seek(0):(this.stop(),this.options.onEnded&&this.options.onEnded(this)):A&&this.options.onStalled&&this.options.onStalled(this)},A}(),j={Player:Z,VideoElement:G,BitBuffer:J,Source:{Ajax:N,AjaxProgressive:L,WebSocket:U,Fetch:function(){function A(A,t){this.url=A,this.destination=null,this.request=null,this.streaming=!0,this.completed=!1,this.established=!1,this.progress=0,this.aborted=!1,this.onEstablishedCallback=t.onSourceEstablished,this.onCompletedCallback=t.onSourceCompleted,t.hookOnEstablished&&(this.hookOnEstablished=t.hookOnEstablished)}var t=A.prototype;return t.connect=function(A){this.destination=A},t.start=function(){var A=this,t={method:"GET",headers:new Headers,cache:"default"};self.fetch(this.url,t).then((function(t){if(t.ok&&t.status>=200&&t.status<=299)return A.progress=1,A.established=!0,A.pump(t.body.getReader())})).catch((function(A){throw A}))},t.pump=function(A){var t=this;return A.read().then((function(i){if(!i.done)return t.aborted?A.cancel():(t.destination&&t.destination.write(i.value.buffer),t.pump(A));t.completed=!0})).catch((function(A){throw A}))},t.resume=function(){},t.abort=function(){this.aborted=!0},A}()},Demuxer:{TS:T},Decoder:{Base:v,MPEG1Video:x,MPEG1VideoWASM:Y,MP2Audio:H,MP2AudioWASM:P},Renderer:{WebGL:_,Canvas2D:O},AudioOutput:{WebAudio:K},WASMModule:X,Now:F,CreateVideoElements:function(){for(var A=document.querySelectorAll(".jsmpeg"),t=0;tthis.q=A))}resume(){this.q?.(),this.Z=this.q=void 0}} +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const $=A=>!e(A)&&"function"==typeof A.then,AA=1073741823;const tA=A(class extends t{constructor(){super(...arguments),this._$Cwt=AA,this._$Cbt=[],this._$CK=new V(this),this._$CX=new z}render(...A){return A.find((A=>!$(A)))??i}update(A,t){const e=this._$Cbt;let s=e.length;this._$Cbt=t;const o=this._$CK,g=this._$CX;this.isConnected||this.disconnected();for(let A=0;Athis._$Cwt);A++){const i=t[A];if(!$(i))return this._$Cwt=A,i;A{for(;g.get();)await g.get();const t=o.deref();if(void 0!==t){const e=t._$Cbt.indexOf(i);e>-1&&eA.has(t)))&&(this._message=null)}async _createJSMPEGPlayer(A){this._jsmpegVideoPlayer=await new Promise((t=>{let i=!1;const e=new j.VideoElement(this,A,{canvas:this._jsmpegCanvasElement},{pauseWhenHidden:!1,autoplay:!1,protocols:[],audio:!1,videoBufferSize:4194304,preserveDrawingBuffer:!0,...this.cameraConfig?.jsmpeg?.options,reconnectInterval:0,onVideoDecode:()=>{!i&&this._jsmpegCanvasElement&&(i=!0,t(e))},onPlay:()=>g(this),onPause:()=>I(this)})})),this._jsmpegCanvasElement&&a(this,this._jsmpegCanvasElement,{player:this,capabilities:{supportsPause:!0},technology:["jsmpeg"]})}_resetPlayer(){if(this._message=null,this._refreshPlayerTimer.stop(),this._jsmpegVideoPlayer){try{this._jsmpegVideoPlayer.destroy()}catch(A){}this._jsmpegVideoPlayer=void 0}this._jsmpegCanvasElement&&(this._jsmpegCanvasElement.remove(),this._jsmpegCanvasElement=void 0)}connectedCallback(){super.connectedCallback(),this.isConnected&&this.requestUpdate()}disconnectedCallback(){this.isConnected||this._resetPlayer(),super.disconnectedCallback()}async _refreshPlayer(){if(!this.hass)return;this._resetPlayer(),this._jsmpegCanvasElement=document.createElement("canvas"),this._jsmpegCanvasElement.className="media";const A=this.cameraEndpoints?.jsmpeg;if(!A)return this._message={message:B("error.live_camera_no_endpoint"),type:"error",context:this.cameraConfig},void l(this);const t=await u(this.hass,A,86400);if(!t)return this._message={type:"error",message:B("error.failed_sign"),context:this.cameraConfig},void l(this);await this._createJSMPEGPlayer(t),this._refreshPlayerTimer.start(82800,(()=>this.requestUpdate()))}render(){if(this._message)return r(this._message);return C`${tA((async()=>{if(await this._refreshPlayer(),this._jsmpegVideoPlayer&&this._jsmpegCanvasElement)return C`${this._jsmpegCanvasElement}`;this._message||(this._message={message:B("error.jsmpeg_no_player"),type:"error",context:this.cameraConfig},l(this))})(),n({cardWideConfig:this.cardWideConfig}))}`}static get styles(){return E(":host {\n width: 100%;\n height: 100%;\n display: flex;\n}\n\ncanvas {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n object-view-box: inset(var(--frigate-card-media-layout-view-box-top, 0%) var(--frigate-card-media-layout-view-box-right, 0%) var(--frigate-card-media-layout-view-box-bottom, 0%) var(--frigate-card-media-layout-view-box-left, 0%));\n}")}};Q([h({attribute:!1})],iA.prototype,"cameraConfig",void 0),Q([h({attribute:!1})],iA.prototype,"cameraEndpoints",void 0),Q([h({attribute:!1})],iA.prototype,"cardWideConfig",void 0),Q([d()],iA.prototype,"_message",void 0),iA=Q([c("frigate-card-live-jsmpeg")],iA);export{iA as FrigateCardLiveJSMPEG}; diff --git a/config/www/community/frigate-hass-card/jsmpeg-50dde246.js.gz b/config/www/community/frigate-hass-card/jsmpeg-50dde246.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..bc918b7dbf8797f677e80c858d4c26a0e0d5c8e3 GIT binary patch literal 42968 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

    DbyP5qnosN_m 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 z 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 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/jsmpeg-66c8006d.js b/config/www/community/frigate-hass-card/jsmpeg-66c8006d.js new file mode 100644 index 00000000..b076d34f --- /dev/null +++ b/config/www/community/frigate-hass-card/jsmpeg-66c8006d.js @@ -0,0 +1,12 @@ +import{cL as A,eN as t,dC as i,eO as e,a as s,dD as o,dy as g,dz as I,dw as a,cQ as B,l as r,x as C,dl as n,r as E,_ as Q,n as h,t as d}from"./card-c642ee74.js";import{g as c}from"./endpoint-cc3caf82.js";function l(){return l=Object.assign?Object.assign.bind():function(A){for(var t=1;t"string"==typeof A&&A.constructor===String,D=function(A){var t,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t=A,"Promise"===Object.prototype.toString.call(t).slice(8,-1)?A:new Promise((t=>{A(),setTimeout(t,i)}))};var m="WJ3NAvwFY9",f="tR2-0dd-e1",y="ZgIIHVSSYI",R="kAA8SjbHe2",k="OueN4AU4CJ";!function(A,t){void 0===t&&(t={});var i=t.insertAt;if(A&&"undefined"!=typeof document){var e=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css","top"===i&&e.firstChild?e.insertBefore(s,e.firstChild):e.appendChild(s),s.styleSheet?s.styleSheet.cssText=A:s.appendChild(document.createTextNode(A))}}(".WJ3NAvwFY9,.ZgIIHVSSYI,.kAA8SjbHe2,.tR2-0dd-e1{height:100%;left:0;position:absolute;top:0;width:100%;z-index:1}.ZgIIHVSSYI{-ms-flex-pack:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;justify-content:center}.WJ3NAvwFY9,.tR2-0dd-e1{display:block}.tR2-0dd-e1.OueN4AU4CJ{display:none}.ZgIIHVSSYI,.kAA8SjbHe2{-webkit-tap-highlight-color:rgba(255,0,0,0);cursor:pointer;opacity:.7}.OueN4AU4CJ.ZgIIHVSSYI,.OueN4AU4CJ.kAA8SjbHe2{display:none}.ZgIIHVSSYI{z-index:10}.ZgIIHVSSYI>svg{fill:#fff;height:12vw;max-height:60px;max-width:60px;width:12vw}.kAA8SjbHe2{-ms-flex-pack:end;-ms-flex-align:end;-webkit-align-items:flex-end;align-items:flex-end;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-end;justify-content:flex-end;z-index:10}.kAA8SjbHe2>svg{fill:#fff;height:9vw;margin:0 15px 15px 0;max-height:40px;max-width:40px;width:9vw}");var b=function(){function A(A,t,i,e){var s=void 0===i?{}:i,o=s.canvas,g=void 0===o?"":o,I=s.poster,a=void 0===I?"":I,B=s.autoplay,r=void 0!==B&&B,C=s.autoSetWrapperSize,n=void 0!==C&&C,E=s.loop,Q=void 0!==E&&E,h=s.control,d=void 0===h||h,c=s.decodeFirstFrame,u=void 0===c||c,w=s.picMode,D=void 0!==w&&w,m=s.progressive,f=void 0===m||m,y=s.chunkSize,R=void 0===y?1048576:y,k=s.hooks,b=void 0===k?{}:k;void 0===e&&(e={}),this.options=l({videoUrl:t,canvas:g,poster:a,picMode:D,autoplay:r,autoSetWrapperSize:n,loop:Q,control:d,decodeFirstFrame:u,progressive:f,chunkSize:R,hooks:l({play:function(){},pause:function(){},stop:function(){},load:function(){}},b)},e),this.options.needPlayButton=this.options.control&&!this.options.picMode,this.player=null,this.els={wrapper:p(A)?document.querySelector(A):A,canvas:null,playButton:document.createElement("div"),unmuteButton:null,poster:null},"static"===window.getComputedStyle(this.els.wrapper).getPropertyValue("position")&&(this.els.wrapper.style.position="relative"),this.els.wrapper.clientRect=this.els.wrapper.getBoundingClientRect(),this.initCanvas(),this.initPlayButton(),this.initPlayer()}var t=A.prototype;return t.initCanvas=function(){this.options.canvas?this.els.canvas=p(this.options.canvas)?document.querySelector(this.options.canvas):this.options.canvas:(this.els.canvas=document.createElement("canvas"),this.els.canvas.classList.add(m),this.els.wrapper.appendChild(this.els.canvas))},t.initPlayer=function(){var A=this;this.options=l(this.options,{canvas:this.els.canvas});var t=l({},this.options,{autoplay:!1});if(this.player=new X(this.options.videoUrl,t,{play:function(){A.options.needPlayButton&&A.els.playButton.classList.add(k),A.els.poster&&A.els.poster.classList.add(k),A.options.hooks.play()},pause:function(){A.options.needPlayButton&&A.els.playButton.classList.remove(k),A.options.hooks.pause()},stop:function(){A.els.poster&&A.els.poster.classList.remove(k),A.options.hooks.stop()},load:function(){A.options.autoplay&&A.play(),A._autoSetWrapperSize(),A.options.hooks.load()}}),this._copyPlayerFuncs(),this.els.wrapper.playerInstance=this.player,!this.options.poster||this.options.autoplay||this.player.options.streaming||(this.options.decodeFirstFrame=!1,this.els.poster=new Image,this.els.poster.src=this.options.poster,this.els.poster.classList.add(f),this.els.wrapper.appendChild(this.els.poster)),this.player.options.streaming||this.els.wrapper.addEventListener("click",this.onClick.bind(this)),(this.options.autoplay||this.player.options.streaming)&&this.els.playButton.classList.add(k),this.player.audioOut&&!this.player.audioOut.unlocked){var i=this.els.wrapper;(this.options.autoplay||this.player.options.streaming)&&(this.els.unmuteButton=document.createElement("div"),this.els.unmuteButton.innerHTML='\n\n \n\n',this.els.unmuteButton.classList.add(R),this.els.wrapper.appendChild(this.els.unmuteButton),i=this.els.unmuteButton),this.unlockAudioBound=this.onUnlockAudio.bind(this,i),i.addEventListener("touchstart",this.unlockAudioBound,!1),i.addEventListener("click",this.unlockAudioBound,!0)}},t.initPlayButton=function(){this.options.needPlayButton&&(this.els.playButton.classList.add(y),this.els.playButton.innerHTML='\n\n \n\n',this.els.wrapper.appendChild(this.els.playButton))},t._autoSetWrapperSize=function(){var A=this;if(!this.options.autoSetWrapperSize)return Promise.resolve();var t=this.player.video.destination;return t?Promise.resolve().then((function(){return D((function(){A.els.wrapper.style.width=t.width+"px",A.els.wrapper.style.height=t.height+"px"}))})):Promise.resolve()},t.onUnlockAudio=function(A,t){var i=this;this.els.unmuteButton&&(t.preventDefault(),t.stopPropagation()),this.player.audioOut.unlock((function(){i.els.unmuteButton&&i.els.unmuteButton.classList.add(k),A.removeEventListener("touchstart",i.unlockAudioBound),A.removeEventListener("click",i.unlockAudioBound)}))},t.onClick=function(){this.options.control&&(this.player.isPlaying?this.pause():this.play())},t._copyPlayerFuncs=function(){var A=this;this.play=function(){return A.player.play()},this.pause=function(){return A.player.pause()},this.stop=function(){return A.player.stop()},this.destroy=function(){A.player.destroy(),A.els.wrapper.innerHTML="",A.els.wrapper.playerInstance=null}},A}(),S=function(){return window.performance?window.performance.now()/1e3:Date.now()/1e3},G=function(A,t){if(A.fill)A.fill(t);else for(var i=0;iA&&this.loadNextChunk())},t.destroy=function(){this.request.abort(),this.aborted=!0},t.loadNextChunk=function(){var A=this,t=this.loadedSize,i=Math.min(this.loadedSize+this.chunkSize-1,this.fileSize-1);if(t>=this.fileSize||this.aborted)return this.completed=!0,void(this.onCompletedCallback&&this.onCompletedCallback(this));this.isLoading=!0,this.loadStartTime=S(),this.request=new XMLHttpRequest,this.request.onreadystatechange=function(){A.request.readyState===A.request.DONE&&A.request.status>=200&&A.request.status<300?A.onChunkLoad(A.request.response):A.request.readyState===A.request.DONE&&A.loadFails++<3&&A.loadNextChunk()},0===t&&(this.request.onprogress=this.onProgress.bind(this)),this.request.open("GET",this.url+"?"+t+"-"+i),this.request.setRequestHeader("Range","bytes="+t+"-"+i),this.request.responseType="arraybuffer",this.request.send()},t.onProgress=function(A){this.progress=A.loaded/A.total},t.onChunkLoad=function(A){var t=!this.established;this.established=!0,this.progress=1,this.loadedSize+=A.byteLength,this.loadFails=0,this.isLoading=!1,t&&this.hookOnEstablished&&this.hookOnEstablished(),t&&this.onEstablishedCallback&&this.onEstablishedCallback(this),this.destination&&this.destination.write(A),this.loadTime=S()-this.loadStartTime,this.throttled||this.loadNextChunk()},A}(),N=function(){function A(A,t){this.url=A,this.options=t,this.socket=null,this.streaming=!0,this.callbacks={connect:[],data:[]},this.destination=null,this.reconnectInterval=void 0!==t.reconnectInterval?t.reconnectInterval:5,this.shouldAttemptReconnect=!!this.reconnectInterval,this.completed=!1,this.established=!1,this.progress=0,this.reconnectTimeoutId=0,this.onEstablishedCallback=t.onSourceEstablished,this.onCompletedCallback=t.onSourceCompleted,t.hookOnEstablished&&(this.hookOnEstablished=t.hookOnEstablished)}var t=A.prototype;return t.connect=function(A){this.destination=A},t.destroy=function(){clearTimeout(this.reconnectTimeoutId),this.shouldAttemptReconnect=!1,this.socket.close()},t.start=function(){this.shouldAttemptReconnect=!!this.reconnectInterval,this.progress=0,this.established=!1,this.options.protocols?this.socket=new WebSocket(this.url,this.options.protocols):this.socket=new WebSocket(this.url),this.socket.binaryType="arraybuffer",this.socket.onmessage=this.onMessage.bind(this),this.socket.onopen=this.onOpen.bind(this),this.socket.onerror=this.onClose.bind(this),this.socket.onclose=this.onClose.bind(this)},t.resume=function(){},t.onOpen=function(){this.progress=1},t.onClose=function(){var A=this;this.shouldAttemptReconnect&&(clearTimeout(this.reconnectTimeoutId),this.reconnectTimeoutId=setTimeout((function(){A.start()}),1e3*this.reconnectInterval))},t.onMessage=function(A){var t=!this.established;this.established=!0,t&&this.hookOnEstablished&&this.hookOnEstablished(),t&&this.onEstablishedCallback&&this.onEstablishedCallback(this),this.destination&&this.destination.write(A.data)},A}(),L=function(){function A(t,i){"object"==typeof t?(this.bytes=t instanceof Uint8Array?t:new Uint8Array(t),this.byteLength=this.bytes.length):(this.bytes=new Uint8Array(t||1048576),this.byteLength=0),this.mode=i||A.MODE.EXPAND,this.index=0}var t=A.prototype;return t.resize=function(A){var t=new Uint8Array(A);0!==this.byteLength&&(this.byteLength=Math.min(this.byteLength,A),t.set(this.bytes,0,this.byteLength)),this.bytes=t,this.index=Math.min(this.index,this.byteLength<<3)},t.evict=function(A){var t=this.index>>3,i=this.bytes.length-this.byteLength;if(this.index===this.byteLength<<3||A>i+t)return this.byteLength=0,void(this.index=0);0!==t&&(this.bytes.copyWithin?this.bytes.copyWithin(0,t,this.byteLength):this.bytes.set(this.bytes.subarray(t,this.byteLength)),this.byteLength-=t,this.index-=t<<3)},t.write=function(t){var i="object"==typeof t[0],e=0,s=this.bytes.length-this.byteLength;if(i){e=0;for(var o=0;os)if(this.mode===A.MODE.EXPAND){var g=Math.max(2*this.bytes.length,e-s);this.resize(g)}else this.evict(e);if(i)for(var I=0;I>3;A>3;return A>=this.byteLength||0===this.bytes[A]&&0===this.bytes[A+1]&&1===this.bytes[A+2]},t.peek=function(A){for(var t=this.index,i=0;A;){var e=8-(7&t),s=e>3]&255>>8-s<>o,t+=s,A-=s}return i},t.read=function(A){var t=this.peek(A);return this.index+=A,t},t.skip=function(A){return this.index+=A},t.rewind=function(A){this.index=Math.max(this.index-A,0)},t.has=function(A){return(this.byteLength<<3)-this.index>=A},A}();L.MODE={EVICT:1,EXPAND:2};var U=function(){function A(){this.bits=null,this.leftoverBytes=null,this.guessVideoFrameEnd=!0,this.pidsToStreamIds={},this.pesPacketInfo={},this.startTime=0,this.currentTime=0}var t=A.prototype;return t.connect=function(A,t){this.pesPacketInfo[A]={destination:t,currentLength:0,totalLength:0,pts:0,buffers:[]}},t.write=function(A){if(this.leftoverBytes){var t=A.byteLength+this.leftoverBytes.byteLength;this.bits=new L(t),this.bits.write([this.leftoverBytes,A])}else this.bits=new L(A);for(;this.bits.has(1504)&&this.parsePacket(););var i=this.bits.byteLength-(this.bits.index>>3);this.leftoverBytes=i>0?this.bits.bytes.subarray(this.bits.index>>3):null},t.parsePacket=function(){if(71!==this.bits.read(8)&&!this.resync())return!1;var A=187+(this.bits.index>>3);this.bits.read(1);var t=this.bits.read(1);this.bits.read(1);var i=this.bits.read(13);this.bits.read(2);var e=this.bits.read(2);this.bits.read(4);var s=this.pidsToStreamIds[i];if(t&&s){var o=this.pesPacketInfo[s];o&&o.currentLength&&this.packetComplete(o)}if(1&e){if(2&e){var g=this.bits.read(8);this.bits.skip(g<<3)}if(t&&this.bits.nextBytesAreStartCode()){this.bits.skip(24),s=this.bits.read(8),this.pidsToStreamIds[i]=s;var I=this.bits.read(16);this.bits.skip(8);var a=this.bits.read(2);this.bits.skip(6);var B=this.bits.read(8),r=this.bits.index+(B<<3),C=this.pesPacketInfo[s];if(C){var n=0;if(2&a){this.bits.skip(4);var E=this.bits.read(3);this.bits.skip(1);var Q=this.bits.read(15);this.bits.skip(1);var h=this.bits.read(15);this.bits.skip(1),n=(1073741824*E+32768*Q+h)/9e4,this.currentTime=n,-1===this.startTime&&(this.startTime=n)}var d=I?I-B-3:0;this.packetStart(C,n,d)}this.bits.index=r}if(s){var c=this.pesPacketInfo[s];if(c){var l=this.bits.index>>3,u=!t&&2&e;(this.packetAddData(c,l,A)||this.guessVideoFrameEnd&&u)&&this.packetComplete(c)}}}return this.bits.index=A<<3,!0},t.resync=function(){if(!this.bits.has(9024))return!1;for(var A=this.bits.index>>3,t=0;t<187;t++)if(71===this.bits.bytes[A+t]){for(var i=!0,e=1;e<5;e++)if(71!==this.bits.bytes[A+t+188*e]){i=!1;break}if(i)return this.bits.index=A+t+1<<3,!0}return console.warn("JSMpeg: Possible garbage data. Skipping."),this.bits.skip(1496),!1},t.packetStart=function(A,t,i){A.totalLength=i,A.currentLength=0,A.pts=t},t.packetAddData=function(A,t,i){return A.buffers.push(this.bits.bytes.subarray(t,i)),A.currentLength+=i-t,0!==A.totalLength&&A.currentLength>=A.totalLength},t.packetComplete=function(A){A.destination.write(A.pts,A.buffers),A.totalLength=0,A.currentLength=0,A.buffers=[]},A}();U.STREAM={PACK_HEADER:186,SYSTEM_HEADER:187,PROGRAM_MAP:188,PRIVATE_1:189,PADDING:190,PRIVATE_2:191,AUDIO_1:192,VIDEO_1:224,DIRECTORY:255};var J=function(){function A(A){this.destination=null,this.canPlay=!1,this.collectTimestamps=!A.streaming,this.bytesWritten=0,this.timestamps=[],this.timestampIndex=0,this.startTime=0,this.decodedTime=0,Object.defineProperty(this,"currentTime",{get:this.getCurrentTime})}var t=A.prototype;return t.destroy=function(){},t.connect=function(A){this.destination=A},t.bufferGetIndex=function(){return this.bits.index},t.bufferSetIndex=function(A){this.bits.index=A},t.bufferWrite=function(A){return this.bits.write(A)},t.write=function(A,t){this.collectTimestamps&&(0===this.timestamps.length&&(this.startTime=A,this.decodedTime=A),this.timestamps.push({index:this.bytesWritten<<3,time:A})),this.bytesWritten+=this.bufferWrite(t),this.canPlay=!0},t.seek=function(A){if(this.collectTimestamps){this.timestampIndex=0;for(var t=0;tA);t++)this.timestampIndex=t;var i=this.timestamps[this.timestampIndex];i?(this.bufferSetIndex(i.index),this.decodedTime=i.time):(this.bits.index=0,this.decodedTime=this.startTime)}},t.decode=function(){this.advanceDecodedTime(0)},t.advanceDecodedTime=function(A){if(this.collectTimestamps){for(var t=-1,i=this.bufferGetIndex(),e=this.timestampIndex;ei);e++)t=e;if(-1!==t&&t!==this.timestampIndex)return this.timestampIndex=t,void(this.decodedTime=this.timestamps[this.timestampIndex].time)}this.decodedTime+=A},t.getCurrentTime=function(){return this.decodedTime},A}(),T=function(A){function t(t){var i;(i=A.call(this,t)||this).onDecodeCallback=t.onVideoDecode;var e=t.videoBufferSize||524288,s=t.streaming?L.MODE.EVICT:L.MODE.EXPAND;return i.bits=new L(e,s),i.customIntraQuantMatrix=new Uint8Array(64),i.customNonIntraQuantMatrix=new Uint8Array(64),i.blockData=new Int32Array(64),i.currentFrame=0,i.decodeFirstFrame=!1!==t.decodeFirstFrame,i}u(t,A);var i=t.prototype;return i.write=function(A,i){if(J.prototype.write.call(this,A,i),!this.hasSequenceHeader){if(-1===this.bits.findStartCode(t.START.SEQUENCE))return!1;this.decodeSequenceHeader(),this.decodeFirstFrame&&this.decode()}},i.decode=function(){var A=S();if(!this.hasSequenceHeader)return!1;if(-1===this.bits.findStartCode(t.START.PICTURE))return!1;this.decodePicture(),this.advanceDecodedTime(1/this.frameRate);var i=S()-A;return this.onDecodeCallback&&this.onDecodeCallback(this,i),!0},i.readHuffman=function(A){var t=0;do{t=A[t+this.bits.read(1)]}while(t>=0&&0!==A[t]);return A[t+2]},i.decodeSequenceHeader=function(){var A=this.bits.read(12),i=this.bits.read(12);if(this.bits.skip(4),this.frameRate=t.PICTURE_RATE[this.bits.read(4)],this.bits.skip(30),A===this.width&&i===this.height||(this.width=A,this.height=i,this.initBuffers(),this.destination&&this.destination.resize(A,i)),this.bits.read(1)){for(var e=0;e<64;e++)this.customIntraQuantMatrix[t.ZIG_ZAG[e]]=this.bits.read(8);this.intraQuantMatrix=this.customIntraQuantMatrix}if(this.bits.read(1)){for(var s=0;s<64;s++){var o=t.ZIG_ZAG[s];this.customNonIntraQuantMatrix[o]=this.bits.read(8)}this.nonIntraQuantMatrix=this.customNonIntraQuantMatrix}this.hasSequenceHeader=!0},i.initBuffers=function(){this.intraQuantMatrix=t.DEFAULT_INTRA_QUANT_MATRIX,this.nonIntraQuantMatrix=t.DEFAULT_NON_INTRA_QUANT_MATRIX,this.mbWidth=this.width+15>>4,this.mbHeight=this.height+15>>4,this.mbSize=this.mbWidth*this.mbHeight,this.codedWidth=this.mbWidth<<4,this.codedHeight=this.mbHeight<<4,this.codedSize=this.codedWidth*this.codedHeight,this.halfWidth=this.mbWidth<<3,this.halfHeight=this.mbHeight<<3,this.currentY=new Uint8ClampedArray(this.codedSize),this.currentY32=new Uint32Array(this.currentY.buffer),this.currentCr=new Uint8ClampedArray(this.codedSize>>2),this.currentCr32=new Uint32Array(this.currentCr.buffer),this.currentCb=new Uint8ClampedArray(this.codedSize>>2),this.currentCb32=new Uint32Array(this.currentCb.buffer),this.forwardY=new Uint8ClampedArray(this.codedSize),this.forwardY32=new Uint32Array(this.forwardY.buffer),this.forwardCr=new Uint8ClampedArray(this.codedSize>>2),this.forwardCr32=new Uint32Array(this.forwardCr.buffer),this.forwardCb=new Uint8ClampedArray(this.codedSize>>2),this.forwardCb32=new Uint32Array(this.forwardCb.buffer)},i.decodePicture=function(){if(this.currentFrame++,this.bits.skip(10),this.pictureType=this.bits.read(3),this.bits.skip(16),!(this.pictureType<=0||this.pictureType>=t.PICTURE_TYPE.B)){if(this.pictureType===t.PICTURE_TYPE.PREDICTIVE){if(this.fullPelForward=this.bits.read(1),this.forwardFCode=this.bits.read(3),0===this.forwardFCode)return;this.forwardRSize=this.forwardFCode-1,this.forwardF=1<=t.START.SLICE_FIRST&&A<=t.START.SLICE_LAST;)this.decodeSlice(255&A),A=this.bits.findNextStartCode();if(-1!==A&&this.bits.rewind(32),this.destination&&this.destination.render(this.currentY,this.currentCr,this.currentCb,!0),this.pictureType===t.PICTURE_TYPE.INTRA||this.pictureType===t.PICTURE_TYPE.PREDICTIVE){var i=this.forwardY,e=this.forwardY32,s=this.forwardCr,o=this.forwardCr32,g=this.forwardCb,I=this.forwardCb32;this.forwardY=this.currentY,this.forwardY32=this.currentY32,this.forwardCr=this.currentCr,this.forwardCr32=this.currentCr32,this.forwardCb=this.currentCb,this.forwardCb32=this.currentCb32,this.currentY=i,this.currentY32=e,this.currentCr=s,this.currentCr32=o,this.currentCb=g,this.currentCb32=I}}},i.decodeSlice=function(A){for(this.sliceBegin=!0,this.macroblockAddress=(A-1)*this.mbWidth-1,this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0,this.dcPredictorY=128,this.dcPredictorCr=128,this.dcPredictorCb=128,this.quantizerScale=this.bits.read(5);this.bits.read(1);)this.bits.skip(8);do{this.decodeMacroblock()}while(!this.bits.nextBytesAreStartCode())},i.decodeMacroblock=function(){for(var A=0,i=this.readHuffman(t.MACROBLOCK_ADDRESS_INCREMENT);34===i;)i=this.readHuffman(t.MACROBLOCK_ADDRESS_INCREMENT);for(;35===i;)A+=33,i=this.readHuffman(t.MACROBLOCK_ADDRESS_INCREMENT);if(A+=i,this.sliceBegin)this.sliceBegin=!1,this.macroblockAddress+=A;else{if(this.macroblockAddress+A>=this.mbSize)return;for(A>1&&(this.dcPredictorY=128,this.dcPredictorCr=128,this.dcPredictorCb=128,this.pictureType===t.PICTURE_TYPE.PREDICTIVE&&(this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0));A>1;)this.macroblockAddress++,this.mbRow=this.macroblockAddress/this.mbWidth|0,this.mbCol=this.macroblockAddress%this.mbWidth,this.copyMacroblock(this.motionFwH,this.motionFwV,this.forwardY,this.forwardCr,this.forwardCb),A--;this.macroblockAddress++}this.mbRow=this.macroblockAddress/this.mbWidth|0,this.mbCol=this.macroblockAddress%this.mbWidth;var e=t.MACROBLOCK_TYPE[this.pictureType];this.macroblockType=this.readHuffman(e),this.macroblockIntra=1&this.macroblockType,this.macroblockMotFw=8&this.macroblockType,16&this.macroblockType&&(this.quantizerScale=this.bits.read(5)),this.macroblockIntra?(this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0):(this.dcPredictorY=128,this.dcPredictorCr=128,this.dcPredictorCb=128,this.decodeMotionVectors(),this.copyMacroblock(this.motionFwH,this.motionFwV,this.forwardY,this.forwardCr,this.forwardCb));for(var s=2&this.macroblockType?this.readHuffman(t.CODE_BLOCK_PATTERN):this.macroblockIntra?63:0,o=0,g=32;o<6;o++)s&g&&this.decodeBlock(o),g>>=1},i.decodeMotionVectors=function(){var A,i,e=0;this.macroblockMotFw?(0!==(A=this.readHuffman(t.MOTION))&&1!==this.forwardF?(e=this.bits.read(this.forwardRSize),i=(Math.abs(A)-1<(this.forwardF<<4)-1?this.motionFwHPrev-=this.forwardF<<5:this.motionFwHPrev<-this.forwardF<<4&&(this.motionFwHPrev+=this.forwardF<<5),this.motionFwH=this.motionFwHPrev,this.fullPelForward&&(this.motionFwH<<=1),0!==(A=this.readHuffman(t.MOTION))&&1!==this.forwardF?(e=this.bits.read(this.forwardRSize),i=(Math.abs(A)-1<(this.forwardF<<4)-1?this.motionFwVPrev-=this.forwardF<<5:this.motionFwVPrev<-this.forwardF<<4&&(this.motionFwVPrev+=this.forwardF<<5),this.motionFwV=this.motionFwVPrev,this.fullPelForward&&(this.motionFwV<<=1)):this.pictureType===t.PICTURE_TYPE.PREDICTIVE&&(this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0)},i.copyMacroblock=function(A,t,i,e,s){var o,g,I,a,B,r,C,n,E,Q,h,d,c,l,u,w,p,D,m,f=this.currentY32,y=this.currentCb32,R=this.currentCr32;if(g=(o=this.codedWidth)-16,I=A>>1,a=t>>1,B=!(1&~A),r=!(1&~t),C=((this.mbRow<<4)+a)*o+(this.mbCol<<4)+I,E=(n=this.mbRow*o+this.mbCol<<2)+(o<<2),B)if(r)for(;n>2&255,c|=(h=i[++C]+i[C+o])+d+2<<6&65280,c|=h+(d=i[++C]+i[C+o])+2<<14&16711680,h=i[++C]+i[C+o],C++,c|=h+d+2<<22&4278190080,f[n++]=c;n+=g>>2,C+=g-1}else for(;n>1&255,c|=(h=i[C++])+d+1<<7&65280,c|=h+(d=i[C++])+1<<15&16711680,c|=(h=i[C++])+d+1<<23&4278190080,f[n++]=c;n+=g>>2,C+=g-1}else if(r)for(;n>1&255,c|=i[++C]+i[C+o]+1<<7&65280,c|=i[++C]+i[C+o]+1<<15&16711680,c|=i[++C]+i[C+o]+1<<23&4278190080,C++,f[n++]=c;n+=g>>2,C+=g}else for(;n>2,C+=g}if(g=(o=this.halfWidth)-8,I=A/2>>1,a=t/2>>1,B=1==(A/2&1),r=1==(t/2&1),C=((this.mbRow<<3)+a)*o+(this.mbCol<<3)+I,E=(n=this.mbRow*o+this.mbCol<<1)+(o<<1),B)if(r)for(;n>2&255,m=p+(D=s[C]+s[C+o])+2>>2&255,w|=(l=e[++C]+e[C+o])+u+2<<6&65280,m|=(p=s[C]+s[C+o])+D+2<<6&65280,w|=l+(u=e[++C]+e[C+o])+2<<14&16711680,m|=p+(D=s[C]+s[C+o])+2<<14&16711680,l=e[++C]+e[C+o],p=s[C]+s[C+o],C++,w|=l+u+2<<22&4278190080,m|=p+D+2<<22&4278190080,R[n]=w,y[n]=m,n++;n+=g>>2,C+=g-1}else for(;n>1&255,m=p+(D=s[C++])+1>>1&255,w|=(l=e[C])+u+1<<7&65280,m|=(p=s[C++])+D+1<<7&65280,w|=l+(u=e[C])+1<<15&16711680,m|=p+(D=s[C++])+1<<15&16711680,w|=(l=e[C])+u+1<<23&4278190080,m|=(p=s[C++])+D+1<<23&4278190080,R[n]=w,y[n]=m,n++;n+=g>>2,C+=g-1}else if(r)for(;n>1&255,m=s[C]+s[C+o]+1>>1&255,w|=e[++C]+e[C+o]+1<<7&65280,m|=s[C]+s[C+o]+1<<7&65280,w|=e[++C]+e[C+o]+1<<15&16711680,m|=s[C]+s[C+o]+1<<15&16711680,w|=e[++C]+e[C+o]+1<<23&4278190080,m|=s[C]+s[C+o]+1<<23&4278190080,C++,R[n]=w,y[n]=m,n++;n+=g>>2,C+=g}else for(;n>2,C+=g}},i.decodeBlock=function(A){var i,e=0;if(this.macroblockIntra){var s,o;if(A<4?(s=this.dcPredictorY,o=this.readHuffman(t.DCT_DC_SIZE_LUMINANCE)):(s=4===A?this.dcPredictorCr:this.dcPredictorCb,o=this.readHuffman(t.DCT_DC_SIZE_CHROMINANCE)),o>0){var g=this.bits.read(o);this.blockData[0]=g&1<0&&0===this.bits.read(1))break;65535===n?(C=this.bits.read(6),0===(r=this.bits.read(8))?r=this.bits.read(8):128===r?r=this.bits.read(8)-256:r>128&&(r-=256)):(C=n>>8,r=255&n,this.bits.read(1)&&(r=-r)),e+=C;var E=t.ZIG_ZAG[e];e++,r<<=1,this.macroblockIntra||(r+=r<0?-1:1),1&(r=r*this.quantizerScale*i[E]>>4)||(r-=r>0?1:-1),r>2047?r=2047:r<-2048&&(r=-2048),this.blockData[E]=r*t.PREMULTIPLIER_MATRIX[E]}A<4?(I=this.currentY,B=this.codedWidth-8,a=this.mbRow*this.codedWidth+this.mbCol<<4,1&A&&(a+=8),2&A&&(a+=this.codedWidth<<3)):(I=4===A?this.currentCb:this.currentCr,B=(this.codedWidth>>1)-8,a=(this.mbRow*this.codedWidth<<2)+(this.mbCol<<3)),this.macroblockIntra?1===e?(t.CopyValueToDestination(this.blockData[0]+128>>8,I,a,B),this.blockData[0]=0):(t.IDCT(this.blockData),t.CopyBlockToDestination(this.blockData,I,a,B),G(this.blockData,0)):1===e?(t.AddValueToDestination(this.blockData[0]+128>>8,I,a,B),this.blockData[0]=0):(t.IDCT(this.blockData),t.AddBlockToDestination(this.blockData,I,a,B),G(this.blockData,0)),e=0},t.CopyBlockToDestination=function(A,t,i,e){for(var s=0;s<64;s+=8,i+=e+8)t[i+0]=A[s+0],t[i+1]=A[s+1],t[i+2]=A[s+2],t[i+3]=A[s+3],t[i+4]=A[s+4],t[i+5]=A[s+5],t[i+6]=A[s+6],t[i+7]=A[s+7]},t.AddBlockToDestination=function(A,t,i,e){for(var s=0;s<64;s+=8,i+=e+8)t[i+0]+=A[s+0],t[i+1]+=A[s+1],t[i+2]+=A[s+2],t[i+3]+=A[s+3],t[i+4]+=A[s+4],t[i+5]+=A[s+5],t[i+6]+=A[s+6],t[i+7]+=A[s+7]},t.CopyValueToDestination=function(A,t,i,e){for(var s=0;s<64;s+=8,i+=e+8)t[i+0]=A,t[i+1]=A,t[i+2]=A,t[i+3]=A,t[i+4]=A,t[i+5]=A,t[i+6]=A,t[i+7]=A},t.AddValueToDestination=function(A,t,i,e){for(var s=0;s<64;s+=8,i+=e+8)t[i+0]+=A,t[i+1]+=A,t[i+2]+=A,t[i+3]+=A,t[i+4]+=A,t[i+5]+=A,t[i+6]+=A,t[i+7]+=A},t.IDCT=function(A){for(var t,i,e,s,o,g,I,a,B,r,C,n,E,Q,h,d,c,l,u=0;u<8;++u)t=A[32+u],i=A[16+u]+A[48+u],e=A[40+u]-A[24+u],g=A[8+u]+A[56+u],I=A[24+u]+A[40+u],B=(E=(473*(s=A[8+u]-A[56+u])-196*e+128>>8)-(o=g+I))-(362*(g-I)+128>>8),Q=(r=(a=A[0+u])-t)+(C=(362*(A[16+u]-A[48+u])+128>>8)-i),h=(n=a+t)+i,d=r-C,c=n-i,l=-B-(473*e+196*s+128>>8),A[0+u]=o+h,A[8+u]=E+Q,A[16+u]=d-B,A[24+u]=c-l,A[32+u]=c+l,A[40+u]=B+d,A[48+u]=Q-E,A[56+u]=h-o;for(var w=0;w<64;w+=8)t=A[4+w],i=A[2+w]+A[6+w],e=A[5+w]-A[3+w],g=A[1+w]+A[7+w],I=A[3+w]+A[5+w],B=(E=(473*(s=A[1+w]-A[7+w])-196*e+128>>8)-(o=g+I))-(362*(g-I)+128>>8),Q=(r=(a=A[0+w])-t)+(C=(362*(A[2+w]-A[6+w])+128>>8)-i),h=(n=a+t)+i,d=r-C,c=n-i,l=-B-(473*e+196*s+128>>8),A[0+w]=o+h+128>>8,A[1+w]=E+Q+128>>8,A[2+w]=d-B+128>>8,A[3+w]=c-l+128>>8,A[4+w]=c+l+128>>8,A[5+w]=B+d+128>>8,A[6+w]=Q-E+128>>8,A[7+w]=h-o+128>>8},t}(J);T.prototype.frameRate=30,T.prototype.currentY=null,T.prototype.currentCr=null,T.prototype.currentCb=null,T.prototype.pictureType=0,T.prototype.forwardY=null,T.prototype.forwardCr=null,T.prototype.forwardCb=null,T.prototype.fullPelForward=!1,T.prototype.forwardFCode=0,T.prototype.forwardRSize=0,T.prototype.forwardF=0,T.prototype.quantizerScale=0,T.prototype.sliceBegin=!1,T.prototype.macroblockAddress=0,T.prototype.mbRow=0,T.prototype.mbCol=0,T.prototype.macroblockType=0,T.prototype.macroblockIntra=!1,T.prototype.macroblockMotFw=!1,T.prototype.motionFwH=0,T.prototype.motionFwV=0,T.prototype.motionFwHPrev=0,T.prototype.motionFwVPrev=0,T.prototype.dcPredictorY=0,T.prototype.dcPredictorCr=0,T.prototype.dcPredictorCb=0,T.prototype.blockData=null,T.PICTURE_RATE=[0,23.976,24,25,29.97,30,50,59.94,60,0,0,0,0,0,0,0],T.ZIG_ZAG=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),T.DEFAULT_INTRA_QUANT_MATRIX=new Uint8Array([8,16,19,22,26,27,29,34,16,16,22,24,27,29,34,37,19,22,26,27,29,34,34,38,22,22,26,27,29,34,37,40,22,26,27,29,32,35,40,48,26,27,29,32,35,40,48,58,26,27,29,34,38,46,56,69,27,29,35,38,46,56,69,83]),T.DEFAULT_NON_INTRA_QUANT_MATRIX=new Uint8Array([16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]),T.PREMULTIPLIER_MATRIX=new Uint8Array([32,44,42,38,32,25,17,9,44,62,58,52,44,35,24,12,42,58,55,49,42,33,23,12,38,52,49,44,38,30,20,10,32,44,42,38,32,25,17,9,25,35,33,30,25,20,14,7,17,24,23,20,17,14,9,5,9,12,12,10,9,7,5,2]),T.MACROBLOCK_ADDRESS_INCREMENT=new Int16Array([3,6,0,9,12,0,0,0,1,15,18,0,21,24,0,27,30,0,33,36,0,0,0,3,0,0,2,39,42,0,45,48,0,0,0,5,0,0,4,51,54,0,57,60,0,0,0,7,0,0,6,63,66,0,69,72,0,75,78,0,81,84,0,-1,87,0,-1,90,0,93,96,0,99,102,0,105,108,0,111,114,0,0,0,9,0,0,8,117,120,0,123,126,0,129,132,0,135,138,0,0,0,15,0,0,14,0,0,13,0,0,12,0,0,11,0,0,10,141,-1,0,-1,144,0,147,150,0,153,156,0,159,162,0,165,168,0,171,174,0,177,180,0,183,-1,0,-1,186,0,189,192,0,195,198,0,201,204,0,207,210,0,213,216,0,219,222,0,0,0,21,0,0,20,0,0,19,0,0,18,0,0,17,0,0,16,0,0,35,0,0,34,0,0,33,0,0,32,0,0,31,0,0,30,0,0,29,0,0,28,0,0,27,0,0,26,0,0,25,0,0,24,0,0,23,0,0,22]),T.MACROBLOCK_TYPE_INTRA=new Int8Array([3,6,0,-1,9,0,0,0,1,0,0,17]),T.MACROBLOCK_TYPE_PREDICTIVE=new Int8Array([3,6,0,9,12,0,0,0,10,15,18,0,0,0,2,21,24,0,0,0,8,27,30,0,33,36,0,-1,39,0,0,0,18,0,0,26,0,0,1,0,0,17]),T.MACROBLOCK_TYPE_B=new Int8Array([3,6,0,9,15,0,12,18,0,24,21,0,0,0,12,27,30,0,0,0,14,39,42,0,36,33,0,0,0,4,0,0,6,54,48,0,45,51,0,0,0,8,0,0,10,-1,57,0,0,0,1,60,63,0,0,0,30,0,0,17,0,0,22,0,0,26]),T.MACROBLOCK_TYPE=[null,T.MACROBLOCK_TYPE_INTRA,T.MACROBLOCK_TYPE_PREDICTIVE,T.MACROBLOCK_TYPE_B],T.CODE_BLOCK_PATTERN=new Int16Array([6,3,0,9,18,0,12,15,0,24,33,0,36,39,0,27,21,0,30,42,0,60,57,0,54,48,0,69,51,0,81,75,0,63,84,0,45,66,0,72,78,0,0,0,60,105,120,0,132,144,0,114,108,0,126,141,0,87,93,0,117,96,0,0,0,32,135,138,0,99,123,0,129,102,0,0,0,4,90,111,0,0,0,8,0,0,16,0,0,44,150,168,0,0,0,28,0,0,52,0,0,62,183,177,0,156,180,0,0,0,1,165,162,0,0,0,61,0,0,56,171,174,0,0,0,2,0,0,40,153,186,0,0,0,48,192,189,0,147,159,0,0,0,20,0,0,12,240,249,0,0,0,63,231,225,0,195,219,0,252,198,0,0,0,24,0,0,36,0,0,3,207,261,0,243,237,0,204,213,0,210,234,0,201,228,0,216,222,0,258,255,0,264,246,0,-1,282,0,285,291,0,0,0,33,0,0,9,318,330,0,306,348,0,0,0,5,0,0,10,279,267,0,0,0,6,0,0,18,0,0,17,0,0,34,339,357,0,309,312,0,270,276,0,327,321,0,351,354,0,303,297,0,294,288,0,300,273,0,342,345,0,315,324,0,336,333,0,363,375,0,0,0,41,0,0,14,0,0,21,372,366,0,360,369,0,0,0,11,0,0,19,0,0,7,0,0,35,0,0,13,0,0,50,0,0,49,0,0,58,0,0,37,0,0,25,0,0,45,0,0,57,0,0,26,0,0,29,0,0,38,0,0,53,0,0,23,0,0,43,0,0,46,0,0,42,0,0,22,0,0,54,0,0,51,0,0,15,0,0,30,0,0,39,0,0,47,0,0,55,0,0,27,0,0,59,0,0,31]),T.MOTION=new Int16Array([3,6,0,12,9,0,0,0,0,18,15,0,24,21,0,0,0,-1,0,0,1,27,30,0,36,33,0,0,0,2,0,0,-2,42,45,0,48,39,0,60,54,0,0,0,3,0,0,-3,51,57,0,-1,69,0,81,75,0,78,63,0,72,66,0,96,84,0,87,93,0,-1,99,0,108,105,0,0,0,-4,90,102,0,0,0,4,0,0,-7,0,0,5,111,123,0,0,0,-5,0,0,7,114,120,0,126,117,0,0,0,-6,0,0,6,153,162,0,150,147,0,135,138,0,156,141,0,129,159,0,132,144,0,0,0,10,0,0,9,0,0,8,0,0,-8,171,198,0,0,0,-9,180,192,0,168,183,0,165,186,0,174,189,0,0,0,-10,177,195,0,0,0,12,0,0,16,0,0,13,0,0,14,0,0,11,0,0,15,0,0,-16,0,0,-12,0,0,-14,0,0,-15,0,0,-11,0,0,-13]),T.DCT_DC_SIZE_LUMINANCE=new Int8Array([6,3,0,18,15,0,9,12,0,0,0,1,0,0,2,27,24,0,21,30,0,0,0,0,36,33,0,0,0,4,0,0,3,39,42,0,0,0,5,0,0,6,48,45,0,51,-1,0,0,0,7,0,0,8]),T.DCT_DC_SIZE_CHROMINANCE=new Int8Array([6,3,0,12,9,0,18,15,0,24,21,0,0,0,2,0,0,1,0,0,0,30,27,0,0,0,3,36,33,0,0,0,4,42,39,0,0,0,5,48,45,0,0,0,6,51,-1,0,0,0,7,0,0,8]),T.DCT_COEFF=new Int32Array([3,6,0,12,9,0,0,0,1,21,24,0,18,15,0,39,27,0,33,30,0,42,36,0,0,0,257,60,66,0,54,63,0,48,57,0,0,0,513,51,45,0,0,0,2,0,0,3,81,75,0,87,93,0,72,78,0,96,90,0,0,0,1025,69,84,0,0,0,769,0,0,258,0,0,1793,0,0,65535,0,0,1537,111,108,0,0,0,1281,105,102,0,117,114,0,99,126,0,120,123,0,156,150,0,162,159,0,144,147,0,129,135,0,138,132,0,0,0,2049,0,0,4,0,0,514,0,0,2305,153,141,0,165,171,0,180,168,0,177,174,0,183,186,0,0,0,2561,0,0,3329,0,0,6,0,0,259,0,0,5,0,0,770,0,0,2817,0,0,3073,228,225,0,201,210,0,219,213,0,234,222,0,216,231,0,207,192,0,204,189,0,198,195,0,243,261,0,273,240,0,246,237,0,249,258,0,279,276,0,252,255,0,270,282,0,264,267,0,0,0,515,0,0,260,0,0,7,0,0,1026,0,0,1282,0,0,4097,0,0,3841,0,0,3585,315,321,0,333,342,0,312,291,0,375,357,0,288,294,0,-1,369,0,285,303,0,318,363,0,297,306,0,339,309,0,336,348,0,330,300,0,372,345,0,351,366,0,327,354,0,360,324,0,381,408,0,417,420,0,390,378,0,435,438,0,384,387,0,0,0,2050,396,402,0,465,462,0,0,0,8,411,399,0,429,432,0,453,414,0,426,423,0,0,0,10,0,0,9,0,0,11,0,0,5377,0,0,1538,0,0,771,0,0,5121,0,0,1794,0,0,4353,0,0,4609,0,0,4865,444,456,0,0,0,1027,459,450,0,0,0,261,393,405,0,0,0,516,447,441,0,516,519,0,486,474,0,510,483,0,504,498,0,471,537,0,507,501,0,522,513,0,534,531,0,468,477,0,492,495,0,549,546,0,525,528,0,0,0,263,0,0,2562,0,0,2306,0,0,5633,0,0,5889,0,0,6401,0,0,6145,0,0,1283,0,0,772,0,0,13,0,0,12,0,0,14,0,0,15,0,0,517,0,0,6657,0,0,262,540,543,0,480,489,0,588,597,0,0,0,27,609,555,0,606,603,0,0,0,19,0,0,22,591,621,0,0,0,18,573,576,0,564,570,0,0,0,20,552,582,0,0,0,21,558,579,0,0,0,23,612,594,0,0,0,25,0,0,24,600,615,0,0,0,31,0,0,30,0,0,28,0,0,29,0,0,26,0,0,17,0,0,16,567,618,0,561,585,0,654,633,0,0,0,37,645,648,0,0,0,36,630,636,0,0,0,34,639,627,0,663,666,0,657,624,0,651,642,0,669,660,0,0,0,35,0,0,267,0,0,40,0,0,268,0,0,266,0,0,32,0,0,264,0,0,265,0,0,38,0,0,269,0,0,270,0,0,33,0,0,39,0,0,7937,0,0,6913,0,0,7681,0,0,4098,0,0,7425,0,0,7169,0,0,271,0,0,274,0,0,273,0,0,272,0,0,1539,0,0,2818,0,0,3586,0,0,3330,0,0,3074,0,0,3842]),T.PICTURE_TYPE={INTRA:1,PREDICTIVE:2,B:3},T.START={SEQUENCE:179,SLICE_FIRST:1,SLICE_LAST:175,PICTURE:0,EXTENSION:181,USER_DATA:178};var v=function(A){function t(t){var i;return(i=A.call(this,t)||this).onDecodeCallback=t.onVideoDecode,i.module=t.wasmModule,i.bufferSize=t.videoBufferSize||524288,i.bufferMode=t.streaming?L.MODE.EVICT:L.MODE.EXPAND,i.decodeFirstFrame=!1!==t.decodeFirstFrame,i.hasSequenceHeader=!1,i}u(t,A);var i=t.prototype;return i.initializeWasmDecoder=function(){this.module.instance?(this.instance=this.module.instance,this.functions=this.module.instance.exports,this.decoder=this.functions._mpeg1_decoder_create(this.bufferSize,this.bufferMode)):console.warn("JSMpeg: WASM module not compiled yet")},i.destroy=function(){this.decoder&&this.functions._mpeg1_decoder_destroy(this.decoder)},i.bufferGetIndex=function(){if(this.decoder)return this.functions._mpeg1_decoder_get_index(this.decoder)},i.bufferSetIndex=function(A){this.decoder&&this.functions._mpeg1_decoder_set_index(this.decoder,A)},i.bufferWrite=function(A){this.decoder||this.initializeWasmDecoder();for(var t=0,i=0;i>2)),g=this.instance.heapU8.subarray(e,e+(this.codedSize>>2));this.destination.render(s,o,g,!1)}this.advanceDecodedTime(1/this.frameRate);var I=S()-A;return this.onDecodeCallback&&this.onDecodeCallback(this,I),!0},t}(J),x=function(A){function t(i){var e;(e=A.call(this,i)||this).onDecodeCallback=i.onAudioDecode;var s=i.audioBufferSize||131072,o=i.streaming?L.MODE.EVICT:L.MODE.EXPAND;e.bits=new L(s,o),e.left=new Float32Array(1152),e.right=new Float32Array(1152),e.sampleRate=44100,e.D=new Float32Array(1024),e.D.set(t.SYNTHESIS_WINDOW,0),e.D.set(t.SYNTHESIS_WINDOW,512),e.V=[new Float32Array(1024),new Float32Array(1024)],e.U=new Int32Array(32),e.VPos=0,e.allocation=[new Array(32),new Array(32)],e.scaleFactorInfo=[new Uint8Array(32),new Uint8Array(32)],e.scaleFactor=[new Array(32),new Array(32)],e.sample=[new Array(32),new Array(32)];for(var g=0;g<2;g++)for(var I=0;I<32;I++)e.scaleFactor[g][I]=[0,0,0],e.sample[g][I]=[0,0,0];return e}u(t,A);var i=t.prototype;return i.decode=function(){var A=S(),t=this.bits.index>>3;if(t>=this.bits.byteLength)return!1;var i=this.decodeFrame(this.left,this.right);if(this.bits.index=t+i<<3,!i)return!1;this.destination&&this.destination.play(this.sampleRate,this.left,this.right),this.advanceDecodedTime(this.left.length/this.sampleRate);var e=S()-A;return this.onDecodeCallback&&this.onDecodeCallback(this,e),!0},i.getCurrentTime=function(){var A=this.destination?this.destination.enqueuedTime:0;return this.decodedTime-A},i.decodeFrame=function(A,i){var e=this.bits.read(11),s=this.bits.read(2),o=this.bits.read(2),g=!this.bits.read(1);if(e!==t.FRAME_SYNC||s!==t.VERSION.MPEG_1||o!==t.LAYER.II)return 0;var I=this.bits.read(4)-1;if(I>13)return 0;var a=this.bits.read(2),B=t.SAMPLE_RATE[a];if(3===a)return 0;s===t.VERSION.MPEG_2&&(a+=4,I+=14);var r=this.bits.read(1);this.bits.read(1);var C=this.bits.read(2),n=0;C===t.MODE.JOINT_STEREO?n=this.bits.read(2)+1<<2:(this.bits.skip(2),n=C===t.MODE.MONO?0:32),this.bits.skip(4),g&&this.bits.skip(16);var E=144e3*t.BIT_RATE[I]/(B=t.SAMPLE_RATE[a])+r|0,Q=0,h=0;if(s===t.VERSION.MPEG_2)Q=2,h=30;else{var d=C===t.MODE.MONO?0:1,c=t.QUANT_LUT_STEP_1[d][I];h=63&(Q=t.QUANT_LUT_STEP_2[c][a]),Q>>=6}n>h&&(n=h);for(var l=0;l>1),U=this.VPos%128>>1;U<1024;){for(var J=0;J<32;++J)this.U[J]+=this.D[L++]*this.V[N][U++];U+=96,L+=32}for(U=1120-U,L-=480;U<1024;){for(var T=0;T<32;++T)this.U[T]+=this.D[L++]*this.V[N][U++];U+=96,L+=32}for(var v=0===N?A:i,x=0;x<32;x++)v[R+x]=this.U[x]/2147418112}R+=32}}return this.sampleRate=B,E},i.readAllocation=function(A,i){var e=t.QUANT_LUT_STEP_3[i][A],s=t.QUANT_LUT_STEP4[15&e][this.bits.read(e>>4)];return s?t.QUANT_TAB[s-1]:0},i.readSamples=function(A,i,e){var s=this.allocation[A][i],o=this.scaleFactor[A][i][e],g=this.sample[A][i],I=0;if(s){if(63===o)o=0;else{var a=o/3|0;o=t.SCALEFACTOR_BASE[o%3]+(1<>1)>>a}var B=s.levels;s.group?(I=this.bits.read(s.bits),g[0]=I%B,I=I/B|0,g[1]=I%B,g[2]=I/B|0):(g[0]=this.bits.read(s.bits),g[1]=this.bits.read(s.bits),g[2]=this.bits.read(s.bits));var r=65536/(B+1)|0;I=((B=(B+1>>1)-1)-g[0])*r,g[0]=I*(o>>12)+(I*(4095&o)+2048>>12)>>12,I=(B-g[1])*r,g[1]=I*(o>>12)+(I*(4095&o)+2048>>12)>>12,I=(B-g[2])*r,g[2]=I*(o>>12)+(I*(4095&o)+2048>>12)>>12}else g[0]=g[1]=g[2]=0},t.MatrixTransform=function(A,t,i,e){var s,o,g,I,a,B,r,C,n,E,Q,h,d,c,l,u,w,p,D,m,f,y,R,k,b,S,G,F,M,q,N,L,U;s=A[0][t]+A[31][t],o=.500602998235*(A[0][t]-A[31][t]),g=A[1][t]+A[30][t],I=.505470959898*(A[1][t]-A[30][t]),a=A[2][t]+A[29][t],B=.515447309923*(A[2][t]-A[29][t]),r=A[3][t]+A[28][t],C=.53104259109*(A[3][t]-A[28][t]),n=A[4][t]+A[27][t],E=.553103896034*(A[4][t]-A[27][t]),Q=A[5][t]+A[26][t],h=.582934968206*(A[5][t]-A[26][t]),d=A[6][t]+A[25][t],c=.622504123036*(A[6][t]-A[25][t]),l=A[7][t]+A[24][t],u=.674808341455*(A[7][t]-A[24][t]),w=A[8][t]+A[23][t],p=.744536271002*(A[8][t]-A[23][t]),D=A[9][t]+A[22][t],m=.839349645416*(A[9][t]-A[22][t]),f=A[10][t]+A[21][t],y=.972568237862*(A[10][t]-A[21][t]),R=A[11][t]+A[20][t],k=1.16943993343*(A[11][t]-A[20][t]),b=A[12][t]+A[19][t],S=1.48416461631*(A[12][t]-A[19][t]),G=A[13][t]+A[18][t],F=2.05778100995*(A[13][t]-A[18][t]),M=A[14][t]+A[17][t],q=3.40760841847*(A[14][t]-A[17][t]),U=s+(N=A[15][t]+A[16][t]),N=.502419286188*(s-N),s=g+M,M=.52249861494*(g-M),g=a+G,G=.566944034816*(a-G),a=r+b,b=.64682178336*(r-b),r=n+R,R=.788154623451*(n-R),n=Q+f,f=1.06067768599*(Q-f),Q=d+D,D=1.72244709824*(d-D),d=l+w,w=5.10114861869*(l-w),l=U+d,d=.509795579104*(U-d),U=s+Q,s=.601344886935*(s-Q),Q=g+n,n=.899976223136*(g-n),g=a+r,r=2.56291544774*(a-r),a=l+g,l=.541196100146*(l-g),g=U+Q,Q=1.30656296488*(U-Q),U=a+g,a=.707106781187*(a-g),g=l+Q,g+=l=.707106781187*(l-Q),Q=d+r,d=.541196100146*(d-r),r=s+n,n=1.30656296488*(s-n),s=Q+r,r=.707106781187*(Q-r),Q=d+n,s+=Q+=d=.707106781187*(d-n),Q+=r,r+=d,n=N+w,N=.509795579104*(N-w),w=M+D,M=.601344886935*(M-D),D=G+f,f=.899976223136*(G-f),G=b+R,R=2.56291544774*(b-R),b=n+G,n=.541196100146*(n-G),G=w+D,D=1.30656296488*(w-D),w=b+G,G=.707106781187*(b-G),b=n+D,D=.707106781187*(n-D),n=N+R,N=.541196100146*(N-R),R=M+f,f=1.30656296488*(M-f),M=n+R,R=.707106781187*(n-R),n=N+f,w+=M+=n+=N=.707106781187*(N-f),M+=b+=D,b+=n+=R,n+=G,G+=R+=N,R+=D,D+=N,f=o+(L=10.1900081235*(A[15][t]-A[16][t])),o=.502419286188*(o-L),L=I+q,I=.52249861494*(I-q),q=B+F,F=.566944034816*(B-F),B=C+S,C=.64682178336*(C-S),S=E+k,E=.788154623451*(E-k),k=h+y,y=1.06067768599*(h-y),h=c+m,m=1.72244709824*(c-m),c=u+p,u=5.10114861869*(u-p),p=f+c,c=.509795579104*(f-c),f=L+h,L=.601344886935*(L-h),h=q+k,k=.899976223136*(q-k),q=B+S,S=2.56291544774*(B-S),B=p+q,p=.541196100146*(p-q),q=f+h,h=1.30656296488*(f-h),f=B+q,q=.707106781187*(B-q),B=p+h,h=.707106781187*(p-h),p=c+S,S=.541196100146*(c-S),c=L+k,k=1.30656296488*(L-k),L=p+c,c=.707106781187*(p-c),p=S+k,L+=p+=k=.707106781187*(S-k),p+=c,S=c+k,c=o+u,o=.509795579104*(o-u),u=I+m,I=.601344886935*(I-m),m=F+y,y=.899976223136*(F-y),F=C+E,E=2.56291544774*(C-E),C=c+F,c=.541196100146*(c-F),F=u+m,m=1.30656296488*(u-m),u=C+F,F=.707106781187*(C-F),C=c+m,m=.707106781187*(c-m),c=o+E,o=.541196100146*(o-E),E=I+y,y=1.30656296488*(I-y),I=c+E,E=.707106781187*(c-E),c=o+y,f+=u+=I+=c+=o=.707106781187*(o-y),u+=L,L+=I+=C+=m,I+=B+=h,B+=C+=c+=E,C+=p,p+=c+=F,c+=q,q+=F+=E+=o,F+=S,S+=E+=m,E+=h,h+=m+=o,m+=k,k+=o,i[e+48]=-U,i[e+49]=i[e+47]=-f,i[e+50]=i[e+46]=-w,i[e+51]=i[e+45]=-u,i[e+52]=i[e+44]=-s,i[e+53]=i[e+43]=-L,i[e+54]=i[e+42]=-M,i[e+55]=i[e+41]=-I,i[e+56]=i[e+40]=-g,i[e+57]=i[e+39]=-B,i[e+58]=i[e+38]=-b,i[e+59]=i[e+37]=-C,i[e+60]=i[e+36]=-Q,i[e+61]=i[e+35]=-p,i[e+62]=i[e+34]=-n,i[e+63]=i[e+33]=-c,i[e+32]=-a,i[e+0]=a,i[e+31]=-q,i[e+1]=q,i[e+30]=-G,i[e+2]=G,i[e+29]=-F,i[e+3]=F,i[e+28]=-r,i[e+4]=r,i[e+27]=-S,i[e+5]=S,i[e+26]=-R,i[e+6]=R,i[e+25]=-E,i[e+7]=E,i[e+24]=-l,i[e+8]=l,i[e+23]=-h,i[e+9]=h,i[e+22]=-D,i[e+10]=D,i[e+21]=-m,i[e+11]=m,i[e+20]=-d,i[e+12]=d,i[e+19]=-k,i[e+13]=k,i[e+18]=-N,i[e+14]=N,i[e+17]=-o,i[e+15]=o,i[e+16]=0},t}(J);x.FRAME_SYNC=2047,x.VERSION={MPEG_2_5:0,MPEG_2:2,MPEG_1:3},x.LAYER={III:1,II:2,I:3},x.MODE={STEREO:0,JOINT_STEREO:1,DUAL_CHANNEL:2,MONO:3},x.SAMPLE_RATE=new Uint16Array([44100,48e3,32e3,0,22050,24e3,16e3,0]),x.BIT_RATE=new Uint16Array([32,48,56,64,80,96,112,128,160,192,224,256,320,384,8,16,24,32,40,48,56,64,80,96,112,128,144,160]),x.SCALEFACTOR_BASE=new Uint32Array([33554432,26632170,21137968]),x.SYNTHESIS_WINDOW=new Float32Array([0,-.5,-.5,-.5,-.5,-.5,-.5,-1,-1,-1,-1,-1.5,-1.5,-2,-2,-2.5,-2.5,-3,-3.5,-3.5,-4,-4.5,-5,-5.5,-6.5,-7,-8,-8.5,-9.5,-10.5,-12,-13,-14.5,-15.5,-17.5,-19,-20.5,-22.5,-24.5,-26.5,-29,-31.5,-34,-36.5,-39.5,-42.5,-45.5,-48.5,-52,-55.5,-58.5,-62.5,-66,-69.5,-73.5,-77,-80.5,-84.5,-88,-91.5,-95,-98,-101,-104,106.5,109,111,112.5,113.5,114,114,113.5,112,110.5,107.5,104,100,94.5,88.5,81.5,73,63.5,53,41.5,28.5,14.5,-1,-18,-36,-55.5,-76.5,-98.5,-122,-147,-173.5,-200.5,-229.5,-259.5,-290.5,-322.5,-355.5,-389.5,-424,-459.5,-495.5,-532,-568.5,-605,-641.5,-678,-714,-749,-783.5,-817,-849,-879.5,-908.5,-935,-959.5,-981,-1000.5,-1016,-1028.5,-1037.5,-1042.5,-1043.5,-1040,-1031.5,1018.5,1e3,976,946.5,911,869.5,822,767.5,707,640,565.5,485,397,302.5,201,92.5,-22.5,-144,-272.5,-407,-547.5,-694,-846,-1003,-1165,-1331.5,-1502,-1675.5,-1852.5,-2031.5,-2212.5,-2394,-2576.5,-2758.5,-2939.5,-3118.5,-3294.5,-3467.5,-3635.5,-3798.5,-3955,-4104.5,-4245.5,-4377.5,-4499,-4609.5,-4708,-4792.5,-4863.5,-4919,-4958,-4979.5,-4983,-4967.5,-4931.5,-4875,-4796,-4694.5,-4569.5,-4420,-4246,-4046,-3820,-3567,3287,2979.5,2644,2280.5,1888,1467.5,1018.5,541,35,-499,-1061,-1650,-2266.5,-2909,-3577,-4270,-4987.5,-5727.5,-6490,-7274,-8077.5,-8899.5,-9739,-10594.5,-11464.5,-12347,-13241,-14144.5,-15056,-15973.5,-16895.5,-17820,-18744.5,-19668,-20588,-21503,-22410.5,-23308.5,-24195,-25068.5,-25926.5,-26767,-27589,-28389,-29166.5,-29919,-30644.5,-31342,-32009.5,-32645,-33247,-33814.5,-34346,-34839.5,-35295,-35710,-36084.5,-36417.5,-36707.5,-36954,-37156.5,-37315,-37428,-37496,37519,37496,37428,37315,37156.5,36954,36707.5,36417.5,36084.5,35710,35295,34839.5,34346,33814.5,33247,32645,32009.5,31342,30644.5,29919,29166.5,28389,27589,26767,25926.5,25068.5,24195,23308.5,22410.5,21503,20588,19668,18744.5,17820,16895.5,15973.5,15056,14144.5,13241,12347,11464.5,10594.5,9739,8899.5,8077.5,7274,6490,5727.5,4987.5,4270,3577,2909,2266.5,1650,1061,499,-35,-541,-1018.5,-1467.5,-1888,-2280.5,-2644,-2979.5,3287,3567,3820,4046,4246,4420,4569.5,4694.5,4796,4875,4931.5,4967.5,4983,4979.5,4958,4919,4863.5,4792.5,4708,4609.5,4499,4377.5,4245.5,4104.5,3955,3798.5,3635.5,3467.5,3294.5,3118.5,2939.5,2758.5,2576.5,2394,2212.5,2031.5,1852.5,1675.5,1502,1331.5,1165,1003,846,694,547.5,407,272.5,144,22.5,-92.5,-201,-302.5,-397,-485,-565.5,-640,-707,-767.5,-822,-869.5,-911,-946.5,-976,-1e3,1018.5,1031.5,1040,1043.5,1042.5,1037.5,1028.5,1016,1000.5,981,959.5,935,908.5,879.5,849,817,783.5,749,714,678,641.5,605,568.5,532,495.5,459.5,424,389.5,355.5,322.5,290.5,259.5,229.5,200.5,173.5,147,122,98.5,76.5,55.5,36,18,1,-14.5,-28.5,-41.5,-53,-63.5,-73,-81.5,-88.5,-94.5,-100,-104,-107.5,-110.5,-112,-113.5,-114,-114,-113.5,-112.5,-111,-109,106.5,104,101,98,95,91.5,88,84.5,80.5,77,73.5,69.5,66,62.5,58.5,55.5,52,48.5,45.5,42.5,39.5,36.5,34,31.5,29,26.5,24.5,22.5,20.5,19,17.5,15.5,14.5,13,12,10.5,9.5,8.5,8,7,6.5,5.5,5,4.5,4,3.5,3.5,3,2.5,2.5,2,2,1.5,1.5,1,1,1,1,.5,.5,.5,.5,.5,.5]),x.QUANT_LUT_STEP_1=[[0,0,1,1,1,2,2,2,2,2,2,2,2,2],[0,0,0,0,0,0,1,1,1,2,2,2,2,2]],x.QUANT_TAB={A:91,B:94,C:8,D:12},x.QUANT_LUT_STEP_2=[[x.QUANT_TAB.C,x.QUANT_TAB.C,x.QUANT_TAB.D],[x.QUANT_TAB.A,x.QUANT_TAB.A,x.QUANT_TAB.A],[x.QUANT_TAB.B,x.QUANT_TAB.A,x.QUANT_TAB.B]],x.QUANT_LUT_STEP_3=[[68,68,52,52,52,52,52,52,52,52,52,52],[67,67,67,66,66,66,66,66,66,66,66,49,49,49,49,49,49,49,49,49,49,49,49,32,32,32,32,32,32,32],[69,69,69,69,52,52,52,52,52,52,52,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36]],x.QUANT_LUT_STEP4=[[0,1,2,17],[0,1,2,3,4,5,6,17],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17],[0,1,3,5,6,7,8,9,10,11,12,13,14,15,16,17],[0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,17],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]],x.QUANT_TAB=[{levels:3,group:1,bits:5},{levels:5,group:1,bits:7},{levels:7,group:0,bits:3},{levels:9,group:1,bits:10},{levels:15,group:0,bits:4},{levels:31,group:0,bits:5},{levels:63,group:0,bits:6},{levels:127,group:0,bits:7},{levels:255,group:0,bits:8},{levels:511,group:0,bits:9},{levels:1023,group:0,bits:10},{levels:2047,group:0,bits:11},{levels:4095,group:0,bits:12},{levels:8191,group:0,bits:13},{levels:16383,group:0,bits:14},{levels:32767,group:0,bits:15},{levels:65535,group:0,bits:16}];var Y=function(A){function t(t){var i;return(i=A.call(this,t)||this).onDecodeCallback=t.onAudioDecode,i.module=t.wasmModule,i.bufferSize=t.audioBufferSize||131072,i.bufferMode=t.streaming?L.MODE.EVICT:L.MODE.EXPAND,i.sampleRate=0,i}u(t,A);var i=t.prototype;return i.initializeWasmDecoder=function(){this.module.instance?(this.instance=this.module.instance,this.functions=this.module.instance.exports,this.decoder=this.functions._mp2_decoder_create(this.bufferSize,this.bufferMode)):console.warn("JSMpeg: WASM module not compiled yet")},i.destroy=function(){this.decoder&&this.functions._mp2_decoder_destroy(this.decoder)},i.bufferGetIndex=function(){if(this.decoder)return this.functions._mp2_decoder_get_index(this.decoder)},i.bufferSetIndex=function(A){this.decoder&&this.functions._mp2_decoder_set_index(this.decoder,A)},i.bufferWrite=function(A){this.decoder||this.initializeWasmDecoder();for(var t=0,i=0;i>4<<4;this.gl.viewport(0,0,i,this.height)},t.createTexture=function(A,t){var i=this.gl,e=i.createTexture();return i.bindTexture(i.TEXTURE_2D,e),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),i.uniform1i(i.getUniformLocation(this.program,t),A),e},t.createProgram=function(A,t){var i=this.gl,e=i.createProgram();return i.attachShader(e,this.compileShader(i.VERTEX_SHADER,A)),i.attachShader(e,this.compileShader(i.FRAGMENT_SHADER,t)),i.linkProgram(e),i.useProgram(e),e},t.compileShader=function(A,t){var i=this.gl,e=i.createShader(A);if(i.shaderSource(e,t),i.compileShader(e),!i.getShaderParameter(e,i.COMPILE_STATUS))throw new Error(i.getShaderInfoLog(e));return e},t.allowsClampedTextureData=function(){var A=this.gl,t=A.createTexture();return A.bindTexture(A.TEXTURE_2D,t),A.texImage2D(A.TEXTURE_2D,0,A.LUMINANCE,1,1,0,A.LUMINANCE,A.UNSIGNED_BYTE,new Uint8ClampedArray([0])),0===A.getError()},t.renderProgress=function(A){var t=this.gl;t.useProgram(this.loadingProgram);var i=t.getUniformLocation(this.loadingProgram,"progress");t.uniform1f(i,A),t.drawArrays(t.TRIANGLE_STRIP,0,4)},t.render=function(A,t,i,e){if(this.enabled){var s=this.gl,o=this.width+15>>4<<4,g=this.height,I=o>>1,a=g>>1;e&&this.shouldCreateUnclampedViews&&(A=new Uint8Array(A.buffer),t=new Uint8Array(t.buffer),i=new Uint8Array(i.buffer)),s.useProgram(this.program),this.updateTexture(s.TEXTURE0,this.textureY,o,g,A),this.updateTexture(s.TEXTURE1,this.textureCb,I,a,t),this.updateTexture(s.TEXTURE2,this.textureCr,I,a,i),s.drawArrays(s.TRIANGLE_STRIP,0,4)}},t.updateTexture=function(A,t,i,e,s){var o=this.gl;o.activeTexture(A),o.bindTexture(o.TEXTURE_2D,t),this.hasTextureData[A]?o.texSubImage2D(o.TEXTURE_2D,0,0,0,i,e,o.LUMINANCE,o.UNSIGNED_BYTE,s):(this.hasTextureData[A]=!0,o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,i,e,0,o.LUMINANCE,o.UNSIGNED_BYTE,s))},t.deleteTexture=function(A,t){var i=this.gl;i.activeTexture(A),i.bindTexture(i.TEXTURE_2D,null),i.deleteTexture(t)},A.IsSupported=function(){try{if(!window.WebGLRenderingContext)return!1;var A=document.createElement("canvas");return!(!A.getContext("webgl")&&!A.getContext("experimental-webgl"))}catch(A){return!1}},A}();H.SHADER={FRAGMENT_YCRCB_TO_RGBA:["precision mediump float;","uniform sampler2D textureY;","uniform sampler2D textureCb;","uniform sampler2D textureCr;","varying vec2 texCoord;","mat4 rec601 = mat4(","1.16438, 0.00000, 1.59603, -0.87079,","1.16438, -0.39176, -0.81297, 0.52959,","1.16438, 2.01723, 0.00000, -1.08139,","0, 0, 0, 1",");","void main() {","float y = texture2D(textureY, texCoord).r;","float cb = texture2D(textureCb, texCoord).r;","float cr = texture2D(textureCr, texCoord).r;","gl_FragColor = vec4(y, cr, cb, 1.0) * rec601;","}"].join("\n"),FRAGMENT_LOADING:["precision mediump float;","uniform float progress;","varying vec2 texCoord;","void main() {","float c = ceil(progress-(1.0-texCoord.y));","gl_FragColor = vec4(c,c,c,1);","}"].join("\n"),VERTEX_IDENTITY:["attribute vec2 vertex;","varying vec2 texCoord;","void main() {","texCoord = vertex;","gl_Position = vec4((vertex * 2.0 - 1.0) * vec2(1, -1), 0.0, 1.0);","}"].join("\n")};var P=function(){function A(A){A.canvas?(this.canvas=A.canvas,this.ownsCanvasElement=!1):(this.canvas=document.createElement("canvas"),this.ownsCanvasElement=!0),this.width=this.canvas.width,this.height=this.canvas.height,this.enabled=!0,this.context=this.canvas.getContext("2d")}var t=A.prototype;return t.destroy=function(){this.ownsCanvasElement&&this.canvas.remove()},t.resize=function(A,t){this.width=0|A,this.height=0|t,this.canvas.width=this.width,this.canvas.height=this.height,this.imageData=this.context.getImageData(0,0,this.width,this.height),G(this.imageData.data,255)},t.renderProgress=function(A){var t=this.canvas.width,i=this.canvas.height,e=this.context;e.fillStyle="#222",e.fillRect(0,0,t,i),e.fillStyle="#fff",e.fillRect(0,i-i*A,t,i*A)},t.render=function(A,t,i){this.YCbCrToRGBA(A,t,i,this.imageData.data),this.context.putImageData(this.imageData,0,0)},t.YCbCrToRGBA=function(A,t,i,e){if(this.enabled)for(var s,o,g,I,a,B=this.width+15>>4<<4,r=B>>1,C=0,n=B,E=B+(B-this.width),Q=0,h=r-(this.width>>1),d=0,c=4*this.width,l=4*this.width,u=this.width>>1,w=this.height>>1,p=0;p>8)-179,I=(88*o>>8)-44+(183*s>>8)-91,a=o+(198*o>>8)-227;var m=A[C++],f=A[C++];e[d]=m+g,e[d+1]=m-I,e[d+2]=m+a,e[d+4]=f+g,e[d+5]=f-I,e[d+6]=f+a,d+=8;var y=A[n++],R=A[n++];e[c]=y+g,e[c+1]=y-I,e[c+2]=y+a,e[c+4]=R+g,e[c+5]=R-I,e[c+6]=R+a,c+=8}C+=E,n+=E,d+=l,c+=l,Q+=h}},A}(),O=function(){function A(){this.context=A.CachedContext=A.CachedContext||new(window.AudioContext||window.webkitAudioContext),this.gain=this.context.createGain(),this.destination=this.gain,this.gain.connect(this.context.destination),this.context._connections=(this.context._connections||0)+1,this.startTime=0,this.buffer=null,this.wallclockStartTime=0,this.volume=1,this.enabled=!0,this.unlocked=!A.NeedsUnlocking(),Object.defineProperty(this,"enqueuedTime",{get:this.getEnqueuedTime})}var t=A.prototype;return t.destroy=function(){this.gain.disconnect(),this.context._connections--,0===this.context._connections&&(this.context.close(),A.CachedContext=null)},t.play=function(A,t,i){if(this.enabled){if(!this.unlocked){var e=S();return this.wallclockStartTimethis.memory.buffer.byteLength){var i=this.brk-this.memory.buffer.byteLength,e=Math.ceil(i/this.pageSize);this.memory.grow(e),this.createHeapViews()}return t},t.c_abort=function(A){console.warn("JSMPeg: WASM abort",arguments)},t.c_assertFail=function(A){console.warn("JSMPeg: WASM ___assert_fail",arguments)},t.readDylinkSection=function(A){var t=new Uint8Array(A),i=0,e=function(){for(var A=0,e=1;;){var s=t[i++];if(A+=(127&s)*e,e*=128,!(128&s))return A}},s=function(A){for(var e=0;ethis.maxAudioLag&&(this.audioOut.resetEnqueuedTime(),this.audioOut.enabled=!1),A=this.audio.decode()}while(A);this.audioOut.enabled=!0}},t.updateForStaticFile=function(){var A=!1,t=0;if(this.audio&&this.audio.canPlay){for(;!A&&this.audio.decodedTime-this.audio.currentTime<.25;)A=!this.audio.decode();this.video&&this.video.currentTime0&&(e>2*s&&(this.startTime+=e),A=!this.video.decode()),t=this.demuxer.currentTime-i}this.source.resume(t),A&&this.source.completed?this.loop?this.seek(0):(this.stop(),this.options.onEnded&&this.options.onEnded(this)):A&&this.options.onStalled&&this.options.onStalled(this)},A}(),W={Player:X,VideoElement:b,BitBuffer:L,Source:{Ajax:M,AjaxProgressive:q,WebSocket:N,Fetch:function(){function A(A,t){this.url=A,this.destination=null,this.request=null,this.streaming=!0,this.completed=!1,this.established=!1,this.progress=0,this.aborted=!1,this.onEstablishedCallback=t.onSourceEstablished,this.onCompletedCallback=t.onSourceCompleted,t.hookOnEstablished&&(this.hookOnEstablished=t.hookOnEstablished)}var t=A.prototype;return t.connect=function(A){this.destination=A},t.start=function(){var A=this,t={method:"GET",headers:new Headers,cache:"default"};self.fetch(this.url,t).then((function(t){if(t.ok&&t.status>=200&&t.status<=299)return A.progress=1,A.established=!0,A.pump(t.body.getReader())})).catch((function(A){throw A}))},t.pump=function(A){var t=this;return A.read().then((function(i){if(!i.done)return t.aborted?A.cancel():(t.destination&&t.destination.write(i.value.buffer),t.pump(A));t.completed=!0})).catch((function(A){throw A}))},t.resume=function(){},t.abort=function(){this.aborted=!0},A}()},Demuxer:{TS:U},Decoder:{Base:J,MPEG1Video:T,MPEG1VideoWASM:v,MP2Audio:x,MP2AudioWASM:Y},Renderer:{WebGL:H,Canvas2D:P},AudioOutput:{WebAudio:O},WASMModule:K,Now:S,CreateVideoElements:function(){for(var A=document.querySelectorAll(".jsmpeg"),t=0;tthis.q=A))}resume(){this.q?.(),this.Z=this.q=void 0}} +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const V=A=>!e(A)&&"function"==typeof A.then,z=1073741823;const $=A(class extends t{constructor(){super(...arguments),this._$Cwt=z,this._$Cbt=[],this._$CK=new Z(this),this._$CX=new j}render(...A){return A.find((A=>!V(A)))??i}update(A,t){const e=this._$Cbt;let s=e.length;this._$Cbt=t;const o=this._$CK,g=this._$CX;this.isConnected||this.disconnected();for(let A=0;Athis._$Cwt);A++){const i=t[A];if(!V(i))return this._$Cwt=A,i;A{for(;g.get();)await g.get();const t=o.deref();if(void 0!==t){const e=t._$Cbt.indexOf(i);e>-1&&e{let i=!1;const e=new W.VideoElement(this,A,{canvas:this._jsmpegCanvasElement},{pauseWhenHidden:!1,autoplay:!1,protocols:[],audio:!1,videoBufferSize:4194304,preserveDrawingBuffer:!0,...this.cameraConfig?.jsmpeg?.options,reconnectInterval:0,onVideoDecode:()=>{!i&&this._jsmpegCanvasElement&&(i=!0,t(e))},onPlay:()=>g(this),onPause:()=>I(this)})})),this._jsmpegCanvasElement&&a(this,this._jsmpegCanvasElement,{player:this,capabilities:{supportsPause:!0},technology:["jsmpeg"]})}_resetPlayer(){if(this._refreshPlayerTimer.stop(),this._jsmpegVideoPlayer){try{this._jsmpegVideoPlayer.destroy()}catch(A){}this._jsmpegVideoPlayer=void 0}this._jsmpegCanvasElement&&(this._jsmpegCanvasElement.remove(),this._jsmpegCanvasElement=void 0)}connectedCallback(){super.connectedCallback(),this.isConnected&&this.requestUpdate()}disconnectedCallback(){this.isConnected||this._resetPlayer(),super.disconnectedCallback()}async _refreshPlayer(){if(!this.hass)return;this._resetPlayer(),this._jsmpegCanvasElement=document.createElement("canvas"),this._jsmpegCanvasElement.className="media";const A=this.cameraEndpoints?.jsmpeg;if(!A)return B(this,r("error.live_camera_no_endpoint"),{context:this.cameraConfig});const t=await c(this,this.hass,A,86400);t&&(await this._createJSMPEGPlayer(t),this._refreshPlayerTimer.start(82800,(()=>this.requestUpdate())))}render(){return C`${$((async()=>(await this._refreshPlayer(),this._jsmpegVideoPlayer&&this._jsmpegCanvasElement?C`${this._jsmpegCanvasElement}`:B(this,r("error.jsmpeg_no_player"))))(),n({cardWideConfig:this.cardWideConfig}))}`}static get styles(){return E(":host {\n width: 100%;\n height: 100%;\n display: flex;\n}\n\ncanvas {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n object-view-box: inset(var(--frigate-card-media-layout-view-box-top, 0%) var(--frigate-card-media-layout-view-box-right, 0%) var(--frigate-card-media-layout-view-box-bottom, 0%) var(--frigate-card-media-layout-view-box-left, 0%));\n}")}};Q([h({attribute:!1})],AA.prototype,"cameraConfig",void 0),Q([h({attribute:!1})],AA.prototype,"cameraEndpoints",void 0),Q([h({attribute:!1})],AA.prototype,"cardWideConfig",void 0),AA=Q([d("frigate-card-live-jsmpeg")],AA);export{AA as FrigateCardLiveJSMPEG}; diff --git a/config/www/community/frigate-hass-card/jsmpeg-66c8006d.js.gz b/config/www/community/frigate-hass-card/jsmpeg-66c8006d.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..e3701dcb64261657021204a0fd8514c9257ba4ef GIT binary patch literal 42824 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

    HnwmN{ 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 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/jsmpeg-ef28408a.js b/config/www/community/frigate-hass-card/jsmpeg-ef28408a.js new file mode 100644 index 00000000..da0f3038 --- /dev/null +++ b/config/www/community/frigate-hass-card/jsmpeg-ef28408a.js @@ -0,0 +1,12 @@ +import{cL as A,eN as t,dC as i,eO as e,a as s,dD as o,dy as g,dz as I,dw as a,cQ as B,l as r,x as C,dl as n,r as E,_ as Q,n as h,t as d}from"./card-769e2b91.js";import{g as c}from"./endpoint-9c79ab63.js";function l(){return l=Object.assign?Object.assign.bind():function(A){for(var t=1;t"string"==typeof A&&A.constructor===String,D=function(A){var t,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t=A,"Promise"===Object.prototype.toString.call(t).slice(8,-1)?A:new Promise((t=>{A(),setTimeout(t,i)}))};var m="WJ3NAvwFY9",f="tR2-0dd-e1",y="ZgIIHVSSYI",R="kAA8SjbHe2",k="OueN4AU4CJ";!function(A,t){void 0===t&&(t={});var i=t.insertAt;if(A&&"undefined"!=typeof document){var e=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css","top"===i&&e.firstChild?e.insertBefore(s,e.firstChild):e.appendChild(s),s.styleSheet?s.styleSheet.cssText=A:s.appendChild(document.createTextNode(A))}}(".WJ3NAvwFY9,.ZgIIHVSSYI,.kAA8SjbHe2,.tR2-0dd-e1{height:100%;left:0;position:absolute;top:0;width:100%;z-index:1}.ZgIIHVSSYI{-ms-flex-pack:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;justify-content:center}.WJ3NAvwFY9,.tR2-0dd-e1{display:block}.tR2-0dd-e1.OueN4AU4CJ{display:none}.ZgIIHVSSYI,.kAA8SjbHe2{-webkit-tap-highlight-color:rgba(255,0,0,0);cursor:pointer;opacity:.7}.OueN4AU4CJ.ZgIIHVSSYI,.OueN4AU4CJ.kAA8SjbHe2{display:none}.ZgIIHVSSYI{z-index:10}.ZgIIHVSSYI>svg{fill:#fff;height:12vw;max-height:60px;max-width:60px;width:12vw}.kAA8SjbHe2{-ms-flex-pack:end;-ms-flex-align:end;-webkit-align-items:flex-end;align-items:flex-end;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-end;justify-content:flex-end;z-index:10}.kAA8SjbHe2>svg{fill:#fff;height:9vw;margin:0 15px 15px 0;max-height:40px;max-width:40px;width:9vw}");var b=function(){function A(A,t,i,e){var s=void 0===i?{}:i,o=s.canvas,g=void 0===o?"":o,I=s.poster,a=void 0===I?"":I,B=s.autoplay,r=void 0!==B&&B,C=s.autoSetWrapperSize,n=void 0!==C&&C,E=s.loop,Q=void 0!==E&&E,h=s.control,d=void 0===h||h,c=s.decodeFirstFrame,u=void 0===c||c,w=s.picMode,D=void 0!==w&&w,m=s.progressive,f=void 0===m||m,y=s.chunkSize,R=void 0===y?1048576:y,k=s.hooks,b=void 0===k?{}:k;void 0===e&&(e={}),this.options=l({videoUrl:t,canvas:g,poster:a,picMode:D,autoplay:r,autoSetWrapperSize:n,loop:Q,control:d,decodeFirstFrame:u,progressive:f,chunkSize:R,hooks:l({play:function(){},pause:function(){},stop:function(){},load:function(){}},b)},e),this.options.needPlayButton=this.options.control&&!this.options.picMode,this.player=null,this.els={wrapper:p(A)?document.querySelector(A):A,canvas:null,playButton:document.createElement("div"),unmuteButton:null,poster:null},"static"===window.getComputedStyle(this.els.wrapper).getPropertyValue("position")&&(this.els.wrapper.style.position="relative"),this.els.wrapper.clientRect=this.els.wrapper.getBoundingClientRect(),this.initCanvas(),this.initPlayButton(),this.initPlayer()}var t=A.prototype;return t.initCanvas=function(){this.options.canvas?this.els.canvas=p(this.options.canvas)?document.querySelector(this.options.canvas):this.options.canvas:(this.els.canvas=document.createElement("canvas"),this.els.canvas.classList.add(m),this.els.wrapper.appendChild(this.els.canvas))},t.initPlayer=function(){var A=this;this.options=l(this.options,{canvas:this.els.canvas});var t=l({},this.options,{autoplay:!1});if(this.player=new X(this.options.videoUrl,t,{play:function(){A.options.needPlayButton&&A.els.playButton.classList.add(k),A.els.poster&&A.els.poster.classList.add(k),A.options.hooks.play()},pause:function(){A.options.needPlayButton&&A.els.playButton.classList.remove(k),A.options.hooks.pause()},stop:function(){A.els.poster&&A.els.poster.classList.remove(k),A.options.hooks.stop()},load:function(){A.options.autoplay&&A.play(),A._autoSetWrapperSize(),A.options.hooks.load()}}),this._copyPlayerFuncs(),this.els.wrapper.playerInstance=this.player,!this.options.poster||this.options.autoplay||this.player.options.streaming||(this.options.decodeFirstFrame=!1,this.els.poster=new Image,this.els.poster.src=this.options.poster,this.els.poster.classList.add(f),this.els.wrapper.appendChild(this.els.poster)),this.player.options.streaming||this.els.wrapper.addEventListener("click",this.onClick.bind(this)),(this.options.autoplay||this.player.options.streaming)&&this.els.playButton.classList.add(k),this.player.audioOut&&!this.player.audioOut.unlocked){var i=this.els.wrapper;(this.options.autoplay||this.player.options.streaming)&&(this.els.unmuteButton=document.createElement("div"),this.els.unmuteButton.innerHTML='\n\n \n\n',this.els.unmuteButton.classList.add(R),this.els.wrapper.appendChild(this.els.unmuteButton),i=this.els.unmuteButton),this.unlockAudioBound=this.onUnlockAudio.bind(this,i),i.addEventListener("touchstart",this.unlockAudioBound,!1),i.addEventListener("click",this.unlockAudioBound,!0)}},t.initPlayButton=function(){this.options.needPlayButton&&(this.els.playButton.classList.add(y),this.els.playButton.innerHTML='\n\n \n\n',this.els.wrapper.appendChild(this.els.playButton))},t._autoSetWrapperSize=function(){var A=this;if(!this.options.autoSetWrapperSize)return Promise.resolve();var t=this.player.video.destination;return t?Promise.resolve().then((function(){return D((function(){A.els.wrapper.style.width=t.width+"px",A.els.wrapper.style.height=t.height+"px"}))})):Promise.resolve()},t.onUnlockAudio=function(A,t){var i=this;this.els.unmuteButton&&(t.preventDefault(),t.stopPropagation()),this.player.audioOut.unlock((function(){i.els.unmuteButton&&i.els.unmuteButton.classList.add(k),A.removeEventListener("touchstart",i.unlockAudioBound),A.removeEventListener("click",i.unlockAudioBound)}))},t.onClick=function(){this.options.control&&(this.player.isPlaying?this.pause():this.play())},t._copyPlayerFuncs=function(){var A=this;this.play=function(){return A.player.play()},this.pause=function(){return A.player.pause()},this.stop=function(){return A.player.stop()},this.destroy=function(){A.player.destroy(),A.els.wrapper.innerHTML="",A.els.wrapper.playerInstance=null}},A}(),S=function(){return window.performance?window.performance.now()/1e3:Date.now()/1e3},G=function(A,t){if(A.fill)A.fill(t);else for(var i=0;iA&&this.loadNextChunk())},t.destroy=function(){this.request.abort(),this.aborted=!0},t.loadNextChunk=function(){var A=this,t=this.loadedSize,i=Math.min(this.loadedSize+this.chunkSize-1,this.fileSize-1);if(t>=this.fileSize||this.aborted)return this.completed=!0,void(this.onCompletedCallback&&this.onCompletedCallback(this));this.isLoading=!0,this.loadStartTime=S(),this.request=new XMLHttpRequest,this.request.onreadystatechange=function(){A.request.readyState===A.request.DONE&&A.request.status>=200&&A.request.status<300?A.onChunkLoad(A.request.response):A.request.readyState===A.request.DONE&&A.loadFails++<3&&A.loadNextChunk()},0===t&&(this.request.onprogress=this.onProgress.bind(this)),this.request.open("GET",this.url+"?"+t+"-"+i),this.request.setRequestHeader("Range","bytes="+t+"-"+i),this.request.responseType="arraybuffer",this.request.send()},t.onProgress=function(A){this.progress=A.loaded/A.total},t.onChunkLoad=function(A){var t=!this.established;this.established=!0,this.progress=1,this.loadedSize+=A.byteLength,this.loadFails=0,this.isLoading=!1,t&&this.hookOnEstablished&&this.hookOnEstablished(),t&&this.onEstablishedCallback&&this.onEstablishedCallback(this),this.destination&&this.destination.write(A),this.loadTime=S()-this.loadStartTime,this.throttled||this.loadNextChunk()},A}(),N=function(){function A(A,t){this.url=A,this.options=t,this.socket=null,this.streaming=!0,this.callbacks={connect:[],data:[]},this.destination=null,this.reconnectInterval=void 0!==t.reconnectInterval?t.reconnectInterval:5,this.shouldAttemptReconnect=!!this.reconnectInterval,this.completed=!1,this.established=!1,this.progress=0,this.reconnectTimeoutId=0,this.onEstablishedCallback=t.onSourceEstablished,this.onCompletedCallback=t.onSourceCompleted,t.hookOnEstablished&&(this.hookOnEstablished=t.hookOnEstablished)}var t=A.prototype;return t.connect=function(A){this.destination=A},t.destroy=function(){clearTimeout(this.reconnectTimeoutId),this.shouldAttemptReconnect=!1,this.socket.close()},t.start=function(){this.shouldAttemptReconnect=!!this.reconnectInterval,this.progress=0,this.established=!1,this.options.protocols?this.socket=new WebSocket(this.url,this.options.protocols):this.socket=new WebSocket(this.url),this.socket.binaryType="arraybuffer",this.socket.onmessage=this.onMessage.bind(this),this.socket.onopen=this.onOpen.bind(this),this.socket.onerror=this.onClose.bind(this),this.socket.onclose=this.onClose.bind(this)},t.resume=function(){},t.onOpen=function(){this.progress=1},t.onClose=function(){var A=this;this.shouldAttemptReconnect&&(clearTimeout(this.reconnectTimeoutId),this.reconnectTimeoutId=setTimeout((function(){A.start()}),1e3*this.reconnectInterval))},t.onMessage=function(A){var t=!this.established;this.established=!0,t&&this.hookOnEstablished&&this.hookOnEstablished(),t&&this.onEstablishedCallback&&this.onEstablishedCallback(this),this.destination&&this.destination.write(A.data)},A}(),L=function(){function A(t,i){"object"==typeof t?(this.bytes=t instanceof Uint8Array?t:new Uint8Array(t),this.byteLength=this.bytes.length):(this.bytes=new Uint8Array(t||1048576),this.byteLength=0),this.mode=i||A.MODE.EXPAND,this.index=0}var t=A.prototype;return t.resize=function(A){var t=new Uint8Array(A);0!==this.byteLength&&(this.byteLength=Math.min(this.byteLength,A),t.set(this.bytes,0,this.byteLength)),this.bytes=t,this.index=Math.min(this.index,this.byteLength<<3)},t.evict=function(A){var t=this.index>>3,i=this.bytes.length-this.byteLength;if(this.index===this.byteLength<<3||A>i+t)return this.byteLength=0,void(this.index=0);0!==t&&(this.bytes.copyWithin?this.bytes.copyWithin(0,t,this.byteLength):this.bytes.set(this.bytes.subarray(t,this.byteLength)),this.byteLength-=t,this.index-=t<<3)},t.write=function(t){var i="object"==typeof t[0],e=0,s=this.bytes.length-this.byteLength;if(i){e=0;for(var o=0;os)if(this.mode===A.MODE.EXPAND){var g=Math.max(2*this.bytes.length,e-s);this.resize(g)}else this.evict(e);if(i)for(var I=0;I>3;A>3;return A>=this.byteLength||0===this.bytes[A]&&0===this.bytes[A+1]&&1===this.bytes[A+2]},t.peek=function(A){for(var t=this.index,i=0;A;){var e=8-(7&t),s=e>3]&255>>8-s<>o,t+=s,A-=s}return i},t.read=function(A){var t=this.peek(A);return this.index+=A,t},t.skip=function(A){return this.index+=A},t.rewind=function(A){this.index=Math.max(this.index-A,0)},t.has=function(A){return(this.byteLength<<3)-this.index>=A},A}();L.MODE={EVICT:1,EXPAND:2};var U=function(){function A(){this.bits=null,this.leftoverBytes=null,this.guessVideoFrameEnd=!0,this.pidsToStreamIds={},this.pesPacketInfo={},this.startTime=0,this.currentTime=0}var t=A.prototype;return t.connect=function(A,t){this.pesPacketInfo[A]={destination:t,currentLength:0,totalLength:0,pts:0,buffers:[]}},t.write=function(A){if(this.leftoverBytes){var t=A.byteLength+this.leftoverBytes.byteLength;this.bits=new L(t),this.bits.write([this.leftoverBytes,A])}else this.bits=new L(A);for(;this.bits.has(1504)&&this.parsePacket(););var i=this.bits.byteLength-(this.bits.index>>3);this.leftoverBytes=i>0?this.bits.bytes.subarray(this.bits.index>>3):null},t.parsePacket=function(){if(71!==this.bits.read(8)&&!this.resync())return!1;var A=187+(this.bits.index>>3);this.bits.read(1);var t=this.bits.read(1);this.bits.read(1);var i=this.bits.read(13);this.bits.read(2);var e=this.bits.read(2);this.bits.read(4);var s=this.pidsToStreamIds[i];if(t&&s){var o=this.pesPacketInfo[s];o&&o.currentLength&&this.packetComplete(o)}if(1&e){if(2&e){var g=this.bits.read(8);this.bits.skip(g<<3)}if(t&&this.bits.nextBytesAreStartCode()){this.bits.skip(24),s=this.bits.read(8),this.pidsToStreamIds[i]=s;var I=this.bits.read(16);this.bits.skip(8);var a=this.bits.read(2);this.bits.skip(6);var B=this.bits.read(8),r=this.bits.index+(B<<3),C=this.pesPacketInfo[s];if(C){var n=0;if(2&a){this.bits.skip(4);var E=this.bits.read(3);this.bits.skip(1);var Q=this.bits.read(15);this.bits.skip(1);var h=this.bits.read(15);this.bits.skip(1),n=(1073741824*E+32768*Q+h)/9e4,this.currentTime=n,-1===this.startTime&&(this.startTime=n)}var d=I?I-B-3:0;this.packetStart(C,n,d)}this.bits.index=r}if(s){var c=this.pesPacketInfo[s];if(c){var l=this.bits.index>>3,u=!t&&2&e;(this.packetAddData(c,l,A)||this.guessVideoFrameEnd&&u)&&this.packetComplete(c)}}}return this.bits.index=A<<3,!0},t.resync=function(){if(!this.bits.has(9024))return!1;for(var A=this.bits.index>>3,t=0;t<187;t++)if(71===this.bits.bytes[A+t]){for(var i=!0,e=1;e<5;e++)if(71!==this.bits.bytes[A+t+188*e]){i=!1;break}if(i)return this.bits.index=A+t+1<<3,!0}return console.warn("JSMpeg: Possible garbage data. Skipping."),this.bits.skip(1496),!1},t.packetStart=function(A,t,i){A.totalLength=i,A.currentLength=0,A.pts=t},t.packetAddData=function(A,t,i){return A.buffers.push(this.bits.bytes.subarray(t,i)),A.currentLength+=i-t,0!==A.totalLength&&A.currentLength>=A.totalLength},t.packetComplete=function(A){A.destination.write(A.pts,A.buffers),A.totalLength=0,A.currentLength=0,A.buffers=[]},A}();U.STREAM={PACK_HEADER:186,SYSTEM_HEADER:187,PROGRAM_MAP:188,PRIVATE_1:189,PADDING:190,PRIVATE_2:191,AUDIO_1:192,VIDEO_1:224,DIRECTORY:255};var J=function(){function A(A){this.destination=null,this.canPlay=!1,this.collectTimestamps=!A.streaming,this.bytesWritten=0,this.timestamps=[],this.timestampIndex=0,this.startTime=0,this.decodedTime=0,Object.defineProperty(this,"currentTime",{get:this.getCurrentTime})}var t=A.prototype;return t.destroy=function(){},t.connect=function(A){this.destination=A},t.bufferGetIndex=function(){return this.bits.index},t.bufferSetIndex=function(A){this.bits.index=A},t.bufferWrite=function(A){return this.bits.write(A)},t.write=function(A,t){this.collectTimestamps&&(0===this.timestamps.length&&(this.startTime=A,this.decodedTime=A),this.timestamps.push({index:this.bytesWritten<<3,time:A})),this.bytesWritten+=this.bufferWrite(t),this.canPlay=!0},t.seek=function(A){if(this.collectTimestamps){this.timestampIndex=0;for(var t=0;tA);t++)this.timestampIndex=t;var i=this.timestamps[this.timestampIndex];i?(this.bufferSetIndex(i.index),this.decodedTime=i.time):(this.bits.index=0,this.decodedTime=this.startTime)}},t.decode=function(){this.advanceDecodedTime(0)},t.advanceDecodedTime=function(A){if(this.collectTimestamps){for(var t=-1,i=this.bufferGetIndex(),e=this.timestampIndex;ei);e++)t=e;if(-1!==t&&t!==this.timestampIndex)return this.timestampIndex=t,void(this.decodedTime=this.timestamps[this.timestampIndex].time)}this.decodedTime+=A},t.getCurrentTime=function(){return this.decodedTime},A}(),T=function(A){function t(t){var i;(i=A.call(this,t)||this).onDecodeCallback=t.onVideoDecode;var e=t.videoBufferSize||524288,s=t.streaming?L.MODE.EVICT:L.MODE.EXPAND;return i.bits=new L(e,s),i.customIntraQuantMatrix=new Uint8Array(64),i.customNonIntraQuantMatrix=new Uint8Array(64),i.blockData=new Int32Array(64),i.currentFrame=0,i.decodeFirstFrame=!1!==t.decodeFirstFrame,i}u(t,A);var i=t.prototype;return i.write=function(A,i){if(J.prototype.write.call(this,A,i),!this.hasSequenceHeader){if(-1===this.bits.findStartCode(t.START.SEQUENCE))return!1;this.decodeSequenceHeader(),this.decodeFirstFrame&&this.decode()}},i.decode=function(){var A=S();if(!this.hasSequenceHeader)return!1;if(-1===this.bits.findStartCode(t.START.PICTURE))return!1;this.decodePicture(),this.advanceDecodedTime(1/this.frameRate);var i=S()-A;return this.onDecodeCallback&&this.onDecodeCallback(this,i),!0},i.readHuffman=function(A){var t=0;do{t=A[t+this.bits.read(1)]}while(t>=0&&0!==A[t]);return A[t+2]},i.decodeSequenceHeader=function(){var A=this.bits.read(12),i=this.bits.read(12);if(this.bits.skip(4),this.frameRate=t.PICTURE_RATE[this.bits.read(4)],this.bits.skip(30),A===this.width&&i===this.height||(this.width=A,this.height=i,this.initBuffers(),this.destination&&this.destination.resize(A,i)),this.bits.read(1)){for(var e=0;e<64;e++)this.customIntraQuantMatrix[t.ZIG_ZAG[e]]=this.bits.read(8);this.intraQuantMatrix=this.customIntraQuantMatrix}if(this.bits.read(1)){for(var s=0;s<64;s++){var o=t.ZIG_ZAG[s];this.customNonIntraQuantMatrix[o]=this.bits.read(8)}this.nonIntraQuantMatrix=this.customNonIntraQuantMatrix}this.hasSequenceHeader=!0},i.initBuffers=function(){this.intraQuantMatrix=t.DEFAULT_INTRA_QUANT_MATRIX,this.nonIntraQuantMatrix=t.DEFAULT_NON_INTRA_QUANT_MATRIX,this.mbWidth=this.width+15>>4,this.mbHeight=this.height+15>>4,this.mbSize=this.mbWidth*this.mbHeight,this.codedWidth=this.mbWidth<<4,this.codedHeight=this.mbHeight<<4,this.codedSize=this.codedWidth*this.codedHeight,this.halfWidth=this.mbWidth<<3,this.halfHeight=this.mbHeight<<3,this.currentY=new Uint8ClampedArray(this.codedSize),this.currentY32=new Uint32Array(this.currentY.buffer),this.currentCr=new Uint8ClampedArray(this.codedSize>>2),this.currentCr32=new Uint32Array(this.currentCr.buffer),this.currentCb=new Uint8ClampedArray(this.codedSize>>2),this.currentCb32=new Uint32Array(this.currentCb.buffer),this.forwardY=new Uint8ClampedArray(this.codedSize),this.forwardY32=new Uint32Array(this.forwardY.buffer),this.forwardCr=new Uint8ClampedArray(this.codedSize>>2),this.forwardCr32=new Uint32Array(this.forwardCr.buffer),this.forwardCb=new Uint8ClampedArray(this.codedSize>>2),this.forwardCb32=new Uint32Array(this.forwardCb.buffer)},i.decodePicture=function(){if(this.currentFrame++,this.bits.skip(10),this.pictureType=this.bits.read(3),this.bits.skip(16),!(this.pictureType<=0||this.pictureType>=t.PICTURE_TYPE.B)){if(this.pictureType===t.PICTURE_TYPE.PREDICTIVE){if(this.fullPelForward=this.bits.read(1),this.forwardFCode=this.bits.read(3),0===this.forwardFCode)return;this.forwardRSize=this.forwardFCode-1,this.forwardF=1<=t.START.SLICE_FIRST&&A<=t.START.SLICE_LAST;)this.decodeSlice(255&A),A=this.bits.findNextStartCode();if(-1!==A&&this.bits.rewind(32),this.destination&&this.destination.render(this.currentY,this.currentCr,this.currentCb,!0),this.pictureType===t.PICTURE_TYPE.INTRA||this.pictureType===t.PICTURE_TYPE.PREDICTIVE){var i=this.forwardY,e=this.forwardY32,s=this.forwardCr,o=this.forwardCr32,g=this.forwardCb,I=this.forwardCb32;this.forwardY=this.currentY,this.forwardY32=this.currentY32,this.forwardCr=this.currentCr,this.forwardCr32=this.currentCr32,this.forwardCb=this.currentCb,this.forwardCb32=this.currentCb32,this.currentY=i,this.currentY32=e,this.currentCr=s,this.currentCr32=o,this.currentCb=g,this.currentCb32=I}}},i.decodeSlice=function(A){for(this.sliceBegin=!0,this.macroblockAddress=(A-1)*this.mbWidth-1,this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0,this.dcPredictorY=128,this.dcPredictorCr=128,this.dcPredictorCb=128,this.quantizerScale=this.bits.read(5);this.bits.read(1);)this.bits.skip(8);do{this.decodeMacroblock()}while(!this.bits.nextBytesAreStartCode())},i.decodeMacroblock=function(){for(var A=0,i=this.readHuffman(t.MACROBLOCK_ADDRESS_INCREMENT);34===i;)i=this.readHuffman(t.MACROBLOCK_ADDRESS_INCREMENT);for(;35===i;)A+=33,i=this.readHuffman(t.MACROBLOCK_ADDRESS_INCREMENT);if(A+=i,this.sliceBegin)this.sliceBegin=!1,this.macroblockAddress+=A;else{if(this.macroblockAddress+A>=this.mbSize)return;for(A>1&&(this.dcPredictorY=128,this.dcPredictorCr=128,this.dcPredictorCb=128,this.pictureType===t.PICTURE_TYPE.PREDICTIVE&&(this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0));A>1;)this.macroblockAddress++,this.mbRow=this.macroblockAddress/this.mbWidth|0,this.mbCol=this.macroblockAddress%this.mbWidth,this.copyMacroblock(this.motionFwH,this.motionFwV,this.forwardY,this.forwardCr,this.forwardCb),A--;this.macroblockAddress++}this.mbRow=this.macroblockAddress/this.mbWidth|0,this.mbCol=this.macroblockAddress%this.mbWidth;var e=t.MACROBLOCK_TYPE[this.pictureType];this.macroblockType=this.readHuffman(e),this.macroblockIntra=1&this.macroblockType,this.macroblockMotFw=8&this.macroblockType,16&this.macroblockType&&(this.quantizerScale=this.bits.read(5)),this.macroblockIntra?(this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0):(this.dcPredictorY=128,this.dcPredictorCr=128,this.dcPredictorCb=128,this.decodeMotionVectors(),this.copyMacroblock(this.motionFwH,this.motionFwV,this.forwardY,this.forwardCr,this.forwardCb));for(var s=2&this.macroblockType?this.readHuffman(t.CODE_BLOCK_PATTERN):this.macroblockIntra?63:0,o=0,g=32;o<6;o++)s&g&&this.decodeBlock(o),g>>=1},i.decodeMotionVectors=function(){var A,i,e=0;this.macroblockMotFw?(0!==(A=this.readHuffman(t.MOTION))&&1!==this.forwardF?(e=this.bits.read(this.forwardRSize),i=(Math.abs(A)-1<(this.forwardF<<4)-1?this.motionFwHPrev-=this.forwardF<<5:this.motionFwHPrev<-this.forwardF<<4&&(this.motionFwHPrev+=this.forwardF<<5),this.motionFwH=this.motionFwHPrev,this.fullPelForward&&(this.motionFwH<<=1),0!==(A=this.readHuffman(t.MOTION))&&1!==this.forwardF?(e=this.bits.read(this.forwardRSize),i=(Math.abs(A)-1<(this.forwardF<<4)-1?this.motionFwVPrev-=this.forwardF<<5:this.motionFwVPrev<-this.forwardF<<4&&(this.motionFwVPrev+=this.forwardF<<5),this.motionFwV=this.motionFwVPrev,this.fullPelForward&&(this.motionFwV<<=1)):this.pictureType===t.PICTURE_TYPE.PREDICTIVE&&(this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0)},i.copyMacroblock=function(A,t,i,e,s){var o,g,I,a,B,r,C,n,E,Q,h,d,c,l,u,w,p,D,m,f=this.currentY32,y=this.currentCb32,R=this.currentCr32;if(g=(o=this.codedWidth)-16,I=A>>1,a=t>>1,B=!(1&~A),r=!(1&~t),C=((this.mbRow<<4)+a)*o+(this.mbCol<<4)+I,E=(n=this.mbRow*o+this.mbCol<<2)+(o<<2),B)if(r)for(;n>2&255,c|=(h=i[++C]+i[C+o])+d+2<<6&65280,c|=h+(d=i[++C]+i[C+o])+2<<14&16711680,h=i[++C]+i[C+o],C++,c|=h+d+2<<22&4278190080,f[n++]=c;n+=g>>2,C+=g-1}else for(;n>1&255,c|=(h=i[C++])+d+1<<7&65280,c|=h+(d=i[C++])+1<<15&16711680,c|=(h=i[C++])+d+1<<23&4278190080,f[n++]=c;n+=g>>2,C+=g-1}else if(r)for(;n>1&255,c|=i[++C]+i[C+o]+1<<7&65280,c|=i[++C]+i[C+o]+1<<15&16711680,c|=i[++C]+i[C+o]+1<<23&4278190080,C++,f[n++]=c;n+=g>>2,C+=g}else for(;n>2,C+=g}if(g=(o=this.halfWidth)-8,I=A/2>>1,a=t/2>>1,B=1==(A/2&1),r=1==(t/2&1),C=((this.mbRow<<3)+a)*o+(this.mbCol<<3)+I,E=(n=this.mbRow*o+this.mbCol<<1)+(o<<1),B)if(r)for(;n>2&255,m=p+(D=s[C]+s[C+o])+2>>2&255,w|=(l=e[++C]+e[C+o])+u+2<<6&65280,m|=(p=s[C]+s[C+o])+D+2<<6&65280,w|=l+(u=e[++C]+e[C+o])+2<<14&16711680,m|=p+(D=s[C]+s[C+o])+2<<14&16711680,l=e[++C]+e[C+o],p=s[C]+s[C+o],C++,w|=l+u+2<<22&4278190080,m|=p+D+2<<22&4278190080,R[n]=w,y[n]=m,n++;n+=g>>2,C+=g-1}else for(;n>1&255,m=p+(D=s[C++])+1>>1&255,w|=(l=e[C])+u+1<<7&65280,m|=(p=s[C++])+D+1<<7&65280,w|=l+(u=e[C])+1<<15&16711680,m|=p+(D=s[C++])+1<<15&16711680,w|=(l=e[C])+u+1<<23&4278190080,m|=(p=s[C++])+D+1<<23&4278190080,R[n]=w,y[n]=m,n++;n+=g>>2,C+=g-1}else if(r)for(;n>1&255,m=s[C]+s[C+o]+1>>1&255,w|=e[++C]+e[C+o]+1<<7&65280,m|=s[C]+s[C+o]+1<<7&65280,w|=e[++C]+e[C+o]+1<<15&16711680,m|=s[C]+s[C+o]+1<<15&16711680,w|=e[++C]+e[C+o]+1<<23&4278190080,m|=s[C]+s[C+o]+1<<23&4278190080,C++,R[n]=w,y[n]=m,n++;n+=g>>2,C+=g}else for(;n>2,C+=g}},i.decodeBlock=function(A){var i,e=0;if(this.macroblockIntra){var s,o;if(A<4?(s=this.dcPredictorY,o=this.readHuffman(t.DCT_DC_SIZE_LUMINANCE)):(s=4===A?this.dcPredictorCr:this.dcPredictorCb,o=this.readHuffman(t.DCT_DC_SIZE_CHROMINANCE)),o>0){var g=this.bits.read(o);this.blockData[0]=g&1<0&&0===this.bits.read(1))break;65535===n?(C=this.bits.read(6),0===(r=this.bits.read(8))?r=this.bits.read(8):128===r?r=this.bits.read(8)-256:r>128&&(r-=256)):(C=n>>8,r=255&n,this.bits.read(1)&&(r=-r)),e+=C;var E=t.ZIG_ZAG[e];e++,r<<=1,this.macroblockIntra||(r+=r<0?-1:1),1&(r=r*this.quantizerScale*i[E]>>4)||(r-=r>0?1:-1),r>2047?r=2047:r<-2048&&(r=-2048),this.blockData[E]=r*t.PREMULTIPLIER_MATRIX[E]}A<4?(I=this.currentY,B=this.codedWidth-8,a=this.mbRow*this.codedWidth+this.mbCol<<4,1&A&&(a+=8),2&A&&(a+=this.codedWidth<<3)):(I=4===A?this.currentCb:this.currentCr,B=(this.codedWidth>>1)-8,a=(this.mbRow*this.codedWidth<<2)+(this.mbCol<<3)),this.macroblockIntra?1===e?(t.CopyValueToDestination(this.blockData[0]+128>>8,I,a,B),this.blockData[0]=0):(t.IDCT(this.blockData),t.CopyBlockToDestination(this.blockData,I,a,B),G(this.blockData,0)):1===e?(t.AddValueToDestination(this.blockData[0]+128>>8,I,a,B),this.blockData[0]=0):(t.IDCT(this.blockData),t.AddBlockToDestination(this.blockData,I,a,B),G(this.blockData,0)),e=0},t.CopyBlockToDestination=function(A,t,i,e){for(var s=0;s<64;s+=8,i+=e+8)t[i+0]=A[s+0],t[i+1]=A[s+1],t[i+2]=A[s+2],t[i+3]=A[s+3],t[i+4]=A[s+4],t[i+5]=A[s+5],t[i+6]=A[s+6],t[i+7]=A[s+7]},t.AddBlockToDestination=function(A,t,i,e){for(var s=0;s<64;s+=8,i+=e+8)t[i+0]+=A[s+0],t[i+1]+=A[s+1],t[i+2]+=A[s+2],t[i+3]+=A[s+3],t[i+4]+=A[s+4],t[i+5]+=A[s+5],t[i+6]+=A[s+6],t[i+7]+=A[s+7]},t.CopyValueToDestination=function(A,t,i,e){for(var s=0;s<64;s+=8,i+=e+8)t[i+0]=A,t[i+1]=A,t[i+2]=A,t[i+3]=A,t[i+4]=A,t[i+5]=A,t[i+6]=A,t[i+7]=A},t.AddValueToDestination=function(A,t,i,e){for(var s=0;s<64;s+=8,i+=e+8)t[i+0]+=A,t[i+1]+=A,t[i+2]+=A,t[i+3]+=A,t[i+4]+=A,t[i+5]+=A,t[i+6]+=A,t[i+7]+=A},t.IDCT=function(A){for(var t,i,e,s,o,g,I,a,B,r,C,n,E,Q,h,d,c,l,u=0;u<8;++u)t=A[32+u],i=A[16+u]+A[48+u],e=A[40+u]-A[24+u],g=A[8+u]+A[56+u],I=A[24+u]+A[40+u],B=(E=(473*(s=A[8+u]-A[56+u])-196*e+128>>8)-(o=g+I))-(362*(g-I)+128>>8),Q=(r=(a=A[0+u])-t)+(C=(362*(A[16+u]-A[48+u])+128>>8)-i),h=(n=a+t)+i,d=r-C,c=n-i,l=-B-(473*e+196*s+128>>8),A[0+u]=o+h,A[8+u]=E+Q,A[16+u]=d-B,A[24+u]=c-l,A[32+u]=c+l,A[40+u]=B+d,A[48+u]=Q-E,A[56+u]=h-o;for(var w=0;w<64;w+=8)t=A[4+w],i=A[2+w]+A[6+w],e=A[5+w]-A[3+w],g=A[1+w]+A[7+w],I=A[3+w]+A[5+w],B=(E=(473*(s=A[1+w]-A[7+w])-196*e+128>>8)-(o=g+I))-(362*(g-I)+128>>8),Q=(r=(a=A[0+w])-t)+(C=(362*(A[2+w]-A[6+w])+128>>8)-i),h=(n=a+t)+i,d=r-C,c=n-i,l=-B-(473*e+196*s+128>>8),A[0+w]=o+h+128>>8,A[1+w]=E+Q+128>>8,A[2+w]=d-B+128>>8,A[3+w]=c-l+128>>8,A[4+w]=c+l+128>>8,A[5+w]=B+d+128>>8,A[6+w]=Q-E+128>>8,A[7+w]=h-o+128>>8},t}(J);T.prototype.frameRate=30,T.prototype.currentY=null,T.prototype.currentCr=null,T.prototype.currentCb=null,T.prototype.pictureType=0,T.prototype.forwardY=null,T.prototype.forwardCr=null,T.prototype.forwardCb=null,T.prototype.fullPelForward=!1,T.prototype.forwardFCode=0,T.prototype.forwardRSize=0,T.prototype.forwardF=0,T.prototype.quantizerScale=0,T.prototype.sliceBegin=!1,T.prototype.macroblockAddress=0,T.prototype.mbRow=0,T.prototype.mbCol=0,T.prototype.macroblockType=0,T.prototype.macroblockIntra=!1,T.prototype.macroblockMotFw=!1,T.prototype.motionFwH=0,T.prototype.motionFwV=0,T.prototype.motionFwHPrev=0,T.prototype.motionFwVPrev=0,T.prototype.dcPredictorY=0,T.prototype.dcPredictorCr=0,T.prototype.dcPredictorCb=0,T.prototype.blockData=null,T.PICTURE_RATE=[0,23.976,24,25,29.97,30,50,59.94,60,0,0,0,0,0,0,0],T.ZIG_ZAG=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),T.DEFAULT_INTRA_QUANT_MATRIX=new Uint8Array([8,16,19,22,26,27,29,34,16,16,22,24,27,29,34,37,19,22,26,27,29,34,34,38,22,22,26,27,29,34,37,40,22,26,27,29,32,35,40,48,26,27,29,32,35,40,48,58,26,27,29,34,38,46,56,69,27,29,35,38,46,56,69,83]),T.DEFAULT_NON_INTRA_QUANT_MATRIX=new Uint8Array([16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]),T.PREMULTIPLIER_MATRIX=new Uint8Array([32,44,42,38,32,25,17,9,44,62,58,52,44,35,24,12,42,58,55,49,42,33,23,12,38,52,49,44,38,30,20,10,32,44,42,38,32,25,17,9,25,35,33,30,25,20,14,7,17,24,23,20,17,14,9,5,9,12,12,10,9,7,5,2]),T.MACROBLOCK_ADDRESS_INCREMENT=new Int16Array([3,6,0,9,12,0,0,0,1,15,18,0,21,24,0,27,30,0,33,36,0,0,0,3,0,0,2,39,42,0,45,48,0,0,0,5,0,0,4,51,54,0,57,60,0,0,0,7,0,0,6,63,66,0,69,72,0,75,78,0,81,84,0,-1,87,0,-1,90,0,93,96,0,99,102,0,105,108,0,111,114,0,0,0,9,0,0,8,117,120,0,123,126,0,129,132,0,135,138,0,0,0,15,0,0,14,0,0,13,0,0,12,0,0,11,0,0,10,141,-1,0,-1,144,0,147,150,0,153,156,0,159,162,0,165,168,0,171,174,0,177,180,0,183,-1,0,-1,186,0,189,192,0,195,198,0,201,204,0,207,210,0,213,216,0,219,222,0,0,0,21,0,0,20,0,0,19,0,0,18,0,0,17,0,0,16,0,0,35,0,0,34,0,0,33,0,0,32,0,0,31,0,0,30,0,0,29,0,0,28,0,0,27,0,0,26,0,0,25,0,0,24,0,0,23,0,0,22]),T.MACROBLOCK_TYPE_INTRA=new Int8Array([3,6,0,-1,9,0,0,0,1,0,0,17]),T.MACROBLOCK_TYPE_PREDICTIVE=new Int8Array([3,6,0,9,12,0,0,0,10,15,18,0,0,0,2,21,24,0,0,0,8,27,30,0,33,36,0,-1,39,0,0,0,18,0,0,26,0,0,1,0,0,17]),T.MACROBLOCK_TYPE_B=new Int8Array([3,6,0,9,15,0,12,18,0,24,21,0,0,0,12,27,30,0,0,0,14,39,42,0,36,33,0,0,0,4,0,0,6,54,48,0,45,51,0,0,0,8,0,0,10,-1,57,0,0,0,1,60,63,0,0,0,30,0,0,17,0,0,22,0,0,26]),T.MACROBLOCK_TYPE=[null,T.MACROBLOCK_TYPE_INTRA,T.MACROBLOCK_TYPE_PREDICTIVE,T.MACROBLOCK_TYPE_B],T.CODE_BLOCK_PATTERN=new Int16Array([6,3,0,9,18,0,12,15,0,24,33,0,36,39,0,27,21,0,30,42,0,60,57,0,54,48,0,69,51,0,81,75,0,63,84,0,45,66,0,72,78,0,0,0,60,105,120,0,132,144,0,114,108,0,126,141,0,87,93,0,117,96,0,0,0,32,135,138,0,99,123,0,129,102,0,0,0,4,90,111,0,0,0,8,0,0,16,0,0,44,150,168,0,0,0,28,0,0,52,0,0,62,183,177,0,156,180,0,0,0,1,165,162,0,0,0,61,0,0,56,171,174,0,0,0,2,0,0,40,153,186,0,0,0,48,192,189,0,147,159,0,0,0,20,0,0,12,240,249,0,0,0,63,231,225,0,195,219,0,252,198,0,0,0,24,0,0,36,0,0,3,207,261,0,243,237,0,204,213,0,210,234,0,201,228,0,216,222,0,258,255,0,264,246,0,-1,282,0,285,291,0,0,0,33,0,0,9,318,330,0,306,348,0,0,0,5,0,0,10,279,267,0,0,0,6,0,0,18,0,0,17,0,0,34,339,357,0,309,312,0,270,276,0,327,321,0,351,354,0,303,297,0,294,288,0,300,273,0,342,345,0,315,324,0,336,333,0,363,375,0,0,0,41,0,0,14,0,0,21,372,366,0,360,369,0,0,0,11,0,0,19,0,0,7,0,0,35,0,0,13,0,0,50,0,0,49,0,0,58,0,0,37,0,0,25,0,0,45,0,0,57,0,0,26,0,0,29,0,0,38,0,0,53,0,0,23,0,0,43,0,0,46,0,0,42,0,0,22,0,0,54,0,0,51,0,0,15,0,0,30,0,0,39,0,0,47,0,0,55,0,0,27,0,0,59,0,0,31]),T.MOTION=new Int16Array([3,6,0,12,9,0,0,0,0,18,15,0,24,21,0,0,0,-1,0,0,1,27,30,0,36,33,0,0,0,2,0,0,-2,42,45,0,48,39,0,60,54,0,0,0,3,0,0,-3,51,57,0,-1,69,0,81,75,0,78,63,0,72,66,0,96,84,0,87,93,0,-1,99,0,108,105,0,0,0,-4,90,102,0,0,0,4,0,0,-7,0,0,5,111,123,0,0,0,-5,0,0,7,114,120,0,126,117,0,0,0,-6,0,0,6,153,162,0,150,147,0,135,138,0,156,141,0,129,159,0,132,144,0,0,0,10,0,0,9,0,0,8,0,0,-8,171,198,0,0,0,-9,180,192,0,168,183,0,165,186,0,174,189,0,0,0,-10,177,195,0,0,0,12,0,0,16,0,0,13,0,0,14,0,0,11,0,0,15,0,0,-16,0,0,-12,0,0,-14,0,0,-15,0,0,-11,0,0,-13]),T.DCT_DC_SIZE_LUMINANCE=new Int8Array([6,3,0,18,15,0,9,12,0,0,0,1,0,0,2,27,24,0,21,30,0,0,0,0,36,33,0,0,0,4,0,0,3,39,42,0,0,0,5,0,0,6,48,45,0,51,-1,0,0,0,7,0,0,8]),T.DCT_DC_SIZE_CHROMINANCE=new Int8Array([6,3,0,12,9,0,18,15,0,24,21,0,0,0,2,0,0,1,0,0,0,30,27,0,0,0,3,36,33,0,0,0,4,42,39,0,0,0,5,48,45,0,0,0,6,51,-1,0,0,0,7,0,0,8]),T.DCT_COEFF=new Int32Array([3,6,0,12,9,0,0,0,1,21,24,0,18,15,0,39,27,0,33,30,0,42,36,0,0,0,257,60,66,0,54,63,0,48,57,0,0,0,513,51,45,0,0,0,2,0,0,3,81,75,0,87,93,0,72,78,0,96,90,0,0,0,1025,69,84,0,0,0,769,0,0,258,0,0,1793,0,0,65535,0,0,1537,111,108,0,0,0,1281,105,102,0,117,114,0,99,126,0,120,123,0,156,150,0,162,159,0,144,147,0,129,135,0,138,132,0,0,0,2049,0,0,4,0,0,514,0,0,2305,153,141,0,165,171,0,180,168,0,177,174,0,183,186,0,0,0,2561,0,0,3329,0,0,6,0,0,259,0,0,5,0,0,770,0,0,2817,0,0,3073,228,225,0,201,210,0,219,213,0,234,222,0,216,231,0,207,192,0,204,189,0,198,195,0,243,261,0,273,240,0,246,237,0,249,258,0,279,276,0,252,255,0,270,282,0,264,267,0,0,0,515,0,0,260,0,0,7,0,0,1026,0,0,1282,0,0,4097,0,0,3841,0,0,3585,315,321,0,333,342,0,312,291,0,375,357,0,288,294,0,-1,369,0,285,303,0,318,363,0,297,306,0,339,309,0,336,348,0,330,300,0,372,345,0,351,366,0,327,354,0,360,324,0,381,408,0,417,420,0,390,378,0,435,438,0,384,387,0,0,0,2050,396,402,0,465,462,0,0,0,8,411,399,0,429,432,0,453,414,0,426,423,0,0,0,10,0,0,9,0,0,11,0,0,5377,0,0,1538,0,0,771,0,0,5121,0,0,1794,0,0,4353,0,0,4609,0,0,4865,444,456,0,0,0,1027,459,450,0,0,0,261,393,405,0,0,0,516,447,441,0,516,519,0,486,474,0,510,483,0,504,498,0,471,537,0,507,501,0,522,513,0,534,531,0,468,477,0,492,495,0,549,546,0,525,528,0,0,0,263,0,0,2562,0,0,2306,0,0,5633,0,0,5889,0,0,6401,0,0,6145,0,0,1283,0,0,772,0,0,13,0,0,12,0,0,14,0,0,15,0,0,517,0,0,6657,0,0,262,540,543,0,480,489,0,588,597,0,0,0,27,609,555,0,606,603,0,0,0,19,0,0,22,591,621,0,0,0,18,573,576,0,564,570,0,0,0,20,552,582,0,0,0,21,558,579,0,0,0,23,612,594,0,0,0,25,0,0,24,600,615,0,0,0,31,0,0,30,0,0,28,0,0,29,0,0,26,0,0,17,0,0,16,567,618,0,561,585,0,654,633,0,0,0,37,645,648,0,0,0,36,630,636,0,0,0,34,639,627,0,663,666,0,657,624,0,651,642,0,669,660,0,0,0,35,0,0,267,0,0,40,0,0,268,0,0,266,0,0,32,0,0,264,0,0,265,0,0,38,0,0,269,0,0,270,0,0,33,0,0,39,0,0,7937,0,0,6913,0,0,7681,0,0,4098,0,0,7425,0,0,7169,0,0,271,0,0,274,0,0,273,0,0,272,0,0,1539,0,0,2818,0,0,3586,0,0,3330,0,0,3074,0,0,3842]),T.PICTURE_TYPE={INTRA:1,PREDICTIVE:2,B:3},T.START={SEQUENCE:179,SLICE_FIRST:1,SLICE_LAST:175,PICTURE:0,EXTENSION:181,USER_DATA:178};var v=function(A){function t(t){var i;return(i=A.call(this,t)||this).onDecodeCallback=t.onVideoDecode,i.module=t.wasmModule,i.bufferSize=t.videoBufferSize||524288,i.bufferMode=t.streaming?L.MODE.EVICT:L.MODE.EXPAND,i.decodeFirstFrame=!1!==t.decodeFirstFrame,i.hasSequenceHeader=!1,i}u(t,A);var i=t.prototype;return i.initializeWasmDecoder=function(){this.module.instance?(this.instance=this.module.instance,this.functions=this.module.instance.exports,this.decoder=this.functions._mpeg1_decoder_create(this.bufferSize,this.bufferMode)):console.warn("JSMpeg: WASM module not compiled yet")},i.destroy=function(){this.decoder&&this.functions._mpeg1_decoder_destroy(this.decoder)},i.bufferGetIndex=function(){if(this.decoder)return this.functions._mpeg1_decoder_get_index(this.decoder)},i.bufferSetIndex=function(A){this.decoder&&this.functions._mpeg1_decoder_set_index(this.decoder,A)},i.bufferWrite=function(A){this.decoder||this.initializeWasmDecoder();for(var t=0,i=0;i>2)),g=this.instance.heapU8.subarray(e,e+(this.codedSize>>2));this.destination.render(s,o,g,!1)}this.advanceDecodedTime(1/this.frameRate);var I=S()-A;return this.onDecodeCallback&&this.onDecodeCallback(this,I),!0},t}(J),x=function(A){function t(i){var e;(e=A.call(this,i)||this).onDecodeCallback=i.onAudioDecode;var s=i.audioBufferSize||131072,o=i.streaming?L.MODE.EVICT:L.MODE.EXPAND;e.bits=new L(s,o),e.left=new Float32Array(1152),e.right=new Float32Array(1152),e.sampleRate=44100,e.D=new Float32Array(1024),e.D.set(t.SYNTHESIS_WINDOW,0),e.D.set(t.SYNTHESIS_WINDOW,512),e.V=[new Float32Array(1024),new Float32Array(1024)],e.U=new Int32Array(32),e.VPos=0,e.allocation=[new Array(32),new Array(32)],e.scaleFactorInfo=[new Uint8Array(32),new Uint8Array(32)],e.scaleFactor=[new Array(32),new Array(32)],e.sample=[new Array(32),new Array(32)];for(var g=0;g<2;g++)for(var I=0;I<32;I++)e.scaleFactor[g][I]=[0,0,0],e.sample[g][I]=[0,0,0];return e}u(t,A);var i=t.prototype;return i.decode=function(){var A=S(),t=this.bits.index>>3;if(t>=this.bits.byteLength)return!1;var i=this.decodeFrame(this.left,this.right);if(this.bits.index=t+i<<3,!i)return!1;this.destination&&this.destination.play(this.sampleRate,this.left,this.right),this.advanceDecodedTime(this.left.length/this.sampleRate);var e=S()-A;return this.onDecodeCallback&&this.onDecodeCallback(this,e),!0},i.getCurrentTime=function(){var A=this.destination?this.destination.enqueuedTime:0;return this.decodedTime-A},i.decodeFrame=function(A,i){var e=this.bits.read(11),s=this.bits.read(2),o=this.bits.read(2),g=!this.bits.read(1);if(e!==t.FRAME_SYNC||s!==t.VERSION.MPEG_1||o!==t.LAYER.II)return 0;var I=this.bits.read(4)-1;if(I>13)return 0;var a=this.bits.read(2),B=t.SAMPLE_RATE[a];if(3===a)return 0;s===t.VERSION.MPEG_2&&(a+=4,I+=14);var r=this.bits.read(1);this.bits.read(1);var C=this.bits.read(2),n=0;C===t.MODE.JOINT_STEREO?n=this.bits.read(2)+1<<2:(this.bits.skip(2),n=C===t.MODE.MONO?0:32),this.bits.skip(4),g&&this.bits.skip(16);var E=144e3*t.BIT_RATE[I]/(B=t.SAMPLE_RATE[a])+r|0,Q=0,h=0;if(s===t.VERSION.MPEG_2)Q=2,h=30;else{var d=C===t.MODE.MONO?0:1,c=t.QUANT_LUT_STEP_1[d][I];h=63&(Q=t.QUANT_LUT_STEP_2[c][a]),Q>>=6}n>h&&(n=h);for(var l=0;l>1),U=this.VPos%128>>1;U<1024;){for(var J=0;J<32;++J)this.U[J]+=this.D[L++]*this.V[N][U++];U+=96,L+=32}for(U=1120-U,L-=480;U<1024;){for(var T=0;T<32;++T)this.U[T]+=this.D[L++]*this.V[N][U++];U+=96,L+=32}for(var v=0===N?A:i,x=0;x<32;x++)v[R+x]=this.U[x]/2147418112}R+=32}}return this.sampleRate=B,E},i.readAllocation=function(A,i){var e=t.QUANT_LUT_STEP_3[i][A],s=t.QUANT_LUT_STEP4[15&e][this.bits.read(e>>4)];return s?t.QUANT_TAB[s-1]:0},i.readSamples=function(A,i,e){var s=this.allocation[A][i],o=this.scaleFactor[A][i][e],g=this.sample[A][i],I=0;if(s){if(63===o)o=0;else{var a=o/3|0;o=t.SCALEFACTOR_BASE[o%3]+(1<>1)>>a}var B=s.levels;s.group?(I=this.bits.read(s.bits),g[0]=I%B,I=I/B|0,g[1]=I%B,g[2]=I/B|0):(g[0]=this.bits.read(s.bits),g[1]=this.bits.read(s.bits),g[2]=this.bits.read(s.bits));var r=65536/(B+1)|0;I=((B=(B+1>>1)-1)-g[0])*r,g[0]=I*(o>>12)+(I*(4095&o)+2048>>12)>>12,I=(B-g[1])*r,g[1]=I*(o>>12)+(I*(4095&o)+2048>>12)>>12,I=(B-g[2])*r,g[2]=I*(o>>12)+(I*(4095&o)+2048>>12)>>12}else g[0]=g[1]=g[2]=0},t.MatrixTransform=function(A,t,i,e){var s,o,g,I,a,B,r,C,n,E,Q,h,d,c,l,u,w,p,D,m,f,y,R,k,b,S,G,F,M,q,N,L,U;s=A[0][t]+A[31][t],o=.500602998235*(A[0][t]-A[31][t]),g=A[1][t]+A[30][t],I=.505470959898*(A[1][t]-A[30][t]),a=A[2][t]+A[29][t],B=.515447309923*(A[2][t]-A[29][t]),r=A[3][t]+A[28][t],C=.53104259109*(A[3][t]-A[28][t]),n=A[4][t]+A[27][t],E=.553103896034*(A[4][t]-A[27][t]),Q=A[5][t]+A[26][t],h=.582934968206*(A[5][t]-A[26][t]),d=A[6][t]+A[25][t],c=.622504123036*(A[6][t]-A[25][t]),l=A[7][t]+A[24][t],u=.674808341455*(A[7][t]-A[24][t]),w=A[8][t]+A[23][t],p=.744536271002*(A[8][t]-A[23][t]),D=A[9][t]+A[22][t],m=.839349645416*(A[9][t]-A[22][t]),f=A[10][t]+A[21][t],y=.972568237862*(A[10][t]-A[21][t]),R=A[11][t]+A[20][t],k=1.16943993343*(A[11][t]-A[20][t]),b=A[12][t]+A[19][t],S=1.48416461631*(A[12][t]-A[19][t]),G=A[13][t]+A[18][t],F=2.05778100995*(A[13][t]-A[18][t]),M=A[14][t]+A[17][t],q=3.40760841847*(A[14][t]-A[17][t]),U=s+(N=A[15][t]+A[16][t]),N=.502419286188*(s-N),s=g+M,M=.52249861494*(g-M),g=a+G,G=.566944034816*(a-G),a=r+b,b=.64682178336*(r-b),r=n+R,R=.788154623451*(n-R),n=Q+f,f=1.06067768599*(Q-f),Q=d+D,D=1.72244709824*(d-D),d=l+w,w=5.10114861869*(l-w),l=U+d,d=.509795579104*(U-d),U=s+Q,s=.601344886935*(s-Q),Q=g+n,n=.899976223136*(g-n),g=a+r,r=2.56291544774*(a-r),a=l+g,l=.541196100146*(l-g),g=U+Q,Q=1.30656296488*(U-Q),U=a+g,a=.707106781187*(a-g),g=l+Q,g+=l=.707106781187*(l-Q),Q=d+r,d=.541196100146*(d-r),r=s+n,n=1.30656296488*(s-n),s=Q+r,r=.707106781187*(Q-r),Q=d+n,s+=Q+=d=.707106781187*(d-n),Q+=r,r+=d,n=N+w,N=.509795579104*(N-w),w=M+D,M=.601344886935*(M-D),D=G+f,f=.899976223136*(G-f),G=b+R,R=2.56291544774*(b-R),b=n+G,n=.541196100146*(n-G),G=w+D,D=1.30656296488*(w-D),w=b+G,G=.707106781187*(b-G),b=n+D,D=.707106781187*(n-D),n=N+R,N=.541196100146*(N-R),R=M+f,f=1.30656296488*(M-f),M=n+R,R=.707106781187*(n-R),n=N+f,w+=M+=n+=N=.707106781187*(N-f),M+=b+=D,b+=n+=R,n+=G,G+=R+=N,R+=D,D+=N,f=o+(L=10.1900081235*(A[15][t]-A[16][t])),o=.502419286188*(o-L),L=I+q,I=.52249861494*(I-q),q=B+F,F=.566944034816*(B-F),B=C+S,C=.64682178336*(C-S),S=E+k,E=.788154623451*(E-k),k=h+y,y=1.06067768599*(h-y),h=c+m,m=1.72244709824*(c-m),c=u+p,u=5.10114861869*(u-p),p=f+c,c=.509795579104*(f-c),f=L+h,L=.601344886935*(L-h),h=q+k,k=.899976223136*(q-k),q=B+S,S=2.56291544774*(B-S),B=p+q,p=.541196100146*(p-q),q=f+h,h=1.30656296488*(f-h),f=B+q,q=.707106781187*(B-q),B=p+h,h=.707106781187*(p-h),p=c+S,S=.541196100146*(c-S),c=L+k,k=1.30656296488*(L-k),L=p+c,c=.707106781187*(p-c),p=S+k,L+=p+=k=.707106781187*(S-k),p+=c,S=c+k,c=o+u,o=.509795579104*(o-u),u=I+m,I=.601344886935*(I-m),m=F+y,y=.899976223136*(F-y),F=C+E,E=2.56291544774*(C-E),C=c+F,c=.541196100146*(c-F),F=u+m,m=1.30656296488*(u-m),u=C+F,F=.707106781187*(C-F),C=c+m,m=.707106781187*(c-m),c=o+E,o=.541196100146*(o-E),E=I+y,y=1.30656296488*(I-y),I=c+E,E=.707106781187*(c-E),c=o+y,f+=u+=I+=c+=o=.707106781187*(o-y),u+=L,L+=I+=C+=m,I+=B+=h,B+=C+=c+=E,C+=p,p+=c+=F,c+=q,q+=F+=E+=o,F+=S,S+=E+=m,E+=h,h+=m+=o,m+=k,k+=o,i[e+48]=-U,i[e+49]=i[e+47]=-f,i[e+50]=i[e+46]=-w,i[e+51]=i[e+45]=-u,i[e+52]=i[e+44]=-s,i[e+53]=i[e+43]=-L,i[e+54]=i[e+42]=-M,i[e+55]=i[e+41]=-I,i[e+56]=i[e+40]=-g,i[e+57]=i[e+39]=-B,i[e+58]=i[e+38]=-b,i[e+59]=i[e+37]=-C,i[e+60]=i[e+36]=-Q,i[e+61]=i[e+35]=-p,i[e+62]=i[e+34]=-n,i[e+63]=i[e+33]=-c,i[e+32]=-a,i[e+0]=a,i[e+31]=-q,i[e+1]=q,i[e+30]=-G,i[e+2]=G,i[e+29]=-F,i[e+3]=F,i[e+28]=-r,i[e+4]=r,i[e+27]=-S,i[e+5]=S,i[e+26]=-R,i[e+6]=R,i[e+25]=-E,i[e+7]=E,i[e+24]=-l,i[e+8]=l,i[e+23]=-h,i[e+9]=h,i[e+22]=-D,i[e+10]=D,i[e+21]=-m,i[e+11]=m,i[e+20]=-d,i[e+12]=d,i[e+19]=-k,i[e+13]=k,i[e+18]=-N,i[e+14]=N,i[e+17]=-o,i[e+15]=o,i[e+16]=0},t}(J);x.FRAME_SYNC=2047,x.VERSION={MPEG_2_5:0,MPEG_2:2,MPEG_1:3},x.LAYER={III:1,II:2,I:3},x.MODE={STEREO:0,JOINT_STEREO:1,DUAL_CHANNEL:2,MONO:3},x.SAMPLE_RATE=new Uint16Array([44100,48e3,32e3,0,22050,24e3,16e3,0]),x.BIT_RATE=new Uint16Array([32,48,56,64,80,96,112,128,160,192,224,256,320,384,8,16,24,32,40,48,56,64,80,96,112,128,144,160]),x.SCALEFACTOR_BASE=new Uint32Array([33554432,26632170,21137968]),x.SYNTHESIS_WINDOW=new Float32Array([0,-.5,-.5,-.5,-.5,-.5,-.5,-1,-1,-1,-1,-1.5,-1.5,-2,-2,-2.5,-2.5,-3,-3.5,-3.5,-4,-4.5,-5,-5.5,-6.5,-7,-8,-8.5,-9.5,-10.5,-12,-13,-14.5,-15.5,-17.5,-19,-20.5,-22.5,-24.5,-26.5,-29,-31.5,-34,-36.5,-39.5,-42.5,-45.5,-48.5,-52,-55.5,-58.5,-62.5,-66,-69.5,-73.5,-77,-80.5,-84.5,-88,-91.5,-95,-98,-101,-104,106.5,109,111,112.5,113.5,114,114,113.5,112,110.5,107.5,104,100,94.5,88.5,81.5,73,63.5,53,41.5,28.5,14.5,-1,-18,-36,-55.5,-76.5,-98.5,-122,-147,-173.5,-200.5,-229.5,-259.5,-290.5,-322.5,-355.5,-389.5,-424,-459.5,-495.5,-532,-568.5,-605,-641.5,-678,-714,-749,-783.5,-817,-849,-879.5,-908.5,-935,-959.5,-981,-1000.5,-1016,-1028.5,-1037.5,-1042.5,-1043.5,-1040,-1031.5,1018.5,1e3,976,946.5,911,869.5,822,767.5,707,640,565.5,485,397,302.5,201,92.5,-22.5,-144,-272.5,-407,-547.5,-694,-846,-1003,-1165,-1331.5,-1502,-1675.5,-1852.5,-2031.5,-2212.5,-2394,-2576.5,-2758.5,-2939.5,-3118.5,-3294.5,-3467.5,-3635.5,-3798.5,-3955,-4104.5,-4245.5,-4377.5,-4499,-4609.5,-4708,-4792.5,-4863.5,-4919,-4958,-4979.5,-4983,-4967.5,-4931.5,-4875,-4796,-4694.5,-4569.5,-4420,-4246,-4046,-3820,-3567,3287,2979.5,2644,2280.5,1888,1467.5,1018.5,541,35,-499,-1061,-1650,-2266.5,-2909,-3577,-4270,-4987.5,-5727.5,-6490,-7274,-8077.5,-8899.5,-9739,-10594.5,-11464.5,-12347,-13241,-14144.5,-15056,-15973.5,-16895.5,-17820,-18744.5,-19668,-20588,-21503,-22410.5,-23308.5,-24195,-25068.5,-25926.5,-26767,-27589,-28389,-29166.5,-29919,-30644.5,-31342,-32009.5,-32645,-33247,-33814.5,-34346,-34839.5,-35295,-35710,-36084.5,-36417.5,-36707.5,-36954,-37156.5,-37315,-37428,-37496,37519,37496,37428,37315,37156.5,36954,36707.5,36417.5,36084.5,35710,35295,34839.5,34346,33814.5,33247,32645,32009.5,31342,30644.5,29919,29166.5,28389,27589,26767,25926.5,25068.5,24195,23308.5,22410.5,21503,20588,19668,18744.5,17820,16895.5,15973.5,15056,14144.5,13241,12347,11464.5,10594.5,9739,8899.5,8077.5,7274,6490,5727.5,4987.5,4270,3577,2909,2266.5,1650,1061,499,-35,-541,-1018.5,-1467.5,-1888,-2280.5,-2644,-2979.5,3287,3567,3820,4046,4246,4420,4569.5,4694.5,4796,4875,4931.5,4967.5,4983,4979.5,4958,4919,4863.5,4792.5,4708,4609.5,4499,4377.5,4245.5,4104.5,3955,3798.5,3635.5,3467.5,3294.5,3118.5,2939.5,2758.5,2576.5,2394,2212.5,2031.5,1852.5,1675.5,1502,1331.5,1165,1003,846,694,547.5,407,272.5,144,22.5,-92.5,-201,-302.5,-397,-485,-565.5,-640,-707,-767.5,-822,-869.5,-911,-946.5,-976,-1e3,1018.5,1031.5,1040,1043.5,1042.5,1037.5,1028.5,1016,1000.5,981,959.5,935,908.5,879.5,849,817,783.5,749,714,678,641.5,605,568.5,532,495.5,459.5,424,389.5,355.5,322.5,290.5,259.5,229.5,200.5,173.5,147,122,98.5,76.5,55.5,36,18,1,-14.5,-28.5,-41.5,-53,-63.5,-73,-81.5,-88.5,-94.5,-100,-104,-107.5,-110.5,-112,-113.5,-114,-114,-113.5,-112.5,-111,-109,106.5,104,101,98,95,91.5,88,84.5,80.5,77,73.5,69.5,66,62.5,58.5,55.5,52,48.5,45.5,42.5,39.5,36.5,34,31.5,29,26.5,24.5,22.5,20.5,19,17.5,15.5,14.5,13,12,10.5,9.5,8.5,8,7,6.5,5.5,5,4.5,4,3.5,3.5,3,2.5,2.5,2,2,1.5,1.5,1,1,1,1,.5,.5,.5,.5,.5,.5]),x.QUANT_LUT_STEP_1=[[0,0,1,1,1,2,2,2,2,2,2,2,2,2],[0,0,0,0,0,0,1,1,1,2,2,2,2,2]],x.QUANT_TAB={A:91,B:94,C:8,D:12},x.QUANT_LUT_STEP_2=[[x.QUANT_TAB.C,x.QUANT_TAB.C,x.QUANT_TAB.D],[x.QUANT_TAB.A,x.QUANT_TAB.A,x.QUANT_TAB.A],[x.QUANT_TAB.B,x.QUANT_TAB.A,x.QUANT_TAB.B]],x.QUANT_LUT_STEP_3=[[68,68,52,52,52,52,52,52,52,52,52,52],[67,67,67,66,66,66,66,66,66,66,66,49,49,49,49,49,49,49,49,49,49,49,49,32,32,32,32,32,32,32],[69,69,69,69,52,52,52,52,52,52,52,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36]],x.QUANT_LUT_STEP4=[[0,1,2,17],[0,1,2,3,4,5,6,17],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17],[0,1,3,5,6,7,8,9,10,11,12,13,14,15,16,17],[0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,17],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]],x.QUANT_TAB=[{levels:3,group:1,bits:5},{levels:5,group:1,bits:7},{levels:7,group:0,bits:3},{levels:9,group:1,bits:10},{levels:15,group:0,bits:4},{levels:31,group:0,bits:5},{levels:63,group:0,bits:6},{levels:127,group:0,bits:7},{levels:255,group:0,bits:8},{levels:511,group:0,bits:9},{levels:1023,group:0,bits:10},{levels:2047,group:0,bits:11},{levels:4095,group:0,bits:12},{levels:8191,group:0,bits:13},{levels:16383,group:0,bits:14},{levels:32767,group:0,bits:15},{levels:65535,group:0,bits:16}];var Y=function(A){function t(t){var i;return(i=A.call(this,t)||this).onDecodeCallback=t.onAudioDecode,i.module=t.wasmModule,i.bufferSize=t.audioBufferSize||131072,i.bufferMode=t.streaming?L.MODE.EVICT:L.MODE.EXPAND,i.sampleRate=0,i}u(t,A);var i=t.prototype;return i.initializeWasmDecoder=function(){this.module.instance?(this.instance=this.module.instance,this.functions=this.module.instance.exports,this.decoder=this.functions._mp2_decoder_create(this.bufferSize,this.bufferMode)):console.warn("JSMpeg: WASM module not compiled yet")},i.destroy=function(){this.decoder&&this.functions._mp2_decoder_destroy(this.decoder)},i.bufferGetIndex=function(){if(this.decoder)return this.functions._mp2_decoder_get_index(this.decoder)},i.bufferSetIndex=function(A){this.decoder&&this.functions._mp2_decoder_set_index(this.decoder,A)},i.bufferWrite=function(A){this.decoder||this.initializeWasmDecoder();for(var t=0,i=0;i>4<<4;this.gl.viewport(0,0,i,this.height)},t.createTexture=function(A,t){var i=this.gl,e=i.createTexture();return i.bindTexture(i.TEXTURE_2D,e),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),i.uniform1i(i.getUniformLocation(this.program,t),A),e},t.createProgram=function(A,t){var i=this.gl,e=i.createProgram();return i.attachShader(e,this.compileShader(i.VERTEX_SHADER,A)),i.attachShader(e,this.compileShader(i.FRAGMENT_SHADER,t)),i.linkProgram(e),i.useProgram(e),e},t.compileShader=function(A,t){var i=this.gl,e=i.createShader(A);if(i.shaderSource(e,t),i.compileShader(e),!i.getShaderParameter(e,i.COMPILE_STATUS))throw new Error(i.getShaderInfoLog(e));return e},t.allowsClampedTextureData=function(){var A=this.gl,t=A.createTexture();return A.bindTexture(A.TEXTURE_2D,t),A.texImage2D(A.TEXTURE_2D,0,A.LUMINANCE,1,1,0,A.LUMINANCE,A.UNSIGNED_BYTE,new Uint8ClampedArray([0])),0===A.getError()},t.renderProgress=function(A){var t=this.gl;t.useProgram(this.loadingProgram);var i=t.getUniformLocation(this.loadingProgram,"progress");t.uniform1f(i,A),t.drawArrays(t.TRIANGLE_STRIP,0,4)},t.render=function(A,t,i,e){if(this.enabled){var s=this.gl,o=this.width+15>>4<<4,g=this.height,I=o>>1,a=g>>1;e&&this.shouldCreateUnclampedViews&&(A=new Uint8Array(A.buffer),t=new Uint8Array(t.buffer),i=new Uint8Array(i.buffer)),s.useProgram(this.program),this.updateTexture(s.TEXTURE0,this.textureY,o,g,A),this.updateTexture(s.TEXTURE1,this.textureCb,I,a,t),this.updateTexture(s.TEXTURE2,this.textureCr,I,a,i),s.drawArrays(s.TRIANGLE_STRIP,0,4)}},t.updateTexture=function(A,t,i,e,s){var o=this.gl;o.activeTexture(A),o.bindTexture(o.TEXTURE_2D,t),this.hasTextureData[A]?o.texSubImage2D(o.TEXTURE_2D,0,0,0,i,e,o.LUMINANCE,o.UNSIGNED_BYTE,s):(this.hasTextureData[A]=!0,o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,i,e,0,o.LUMINANCE,o.UNSIGNED_BYTE,s))},t.deleteTexture=function(A,t){var i=this.gl;i.activeTexture(A),i.bindTexture(i.TEXTURE_2D,null),i.deleteTexture(t)},A.IsSupported=function(){try{if(!window.WebGLRenderingContext)return!1;var A=document.createElement("canvas");return!(!A.getContext("webgl")&&!A.getContext("experimental-webgl"))}catch(A){return!1}},A}();H.SHADER={FRAGMENT_YCRCB_TO_RGBA:["precision mediump float;","uniform sampler2D textureY;","uniform sampler2D textureCb;","uniform sampler2D textureCr;","varying vec2 texCoord;","mat4 rec601 = mat4(","1.16438, 0.00000, 1.59603, -0.87079,","1.16438, -0.39176, -0.81297, 0.52959,","1.16438, 2.01723, 0.00000, -1.08139,","0, 0, 0, 1",");","void main() {","float y = texture2D(textureY, texCoord).r;","float cb = texture2D(textureCb, texCoord).r;","float cr = texture2D(textureCr, texCoord).r;","gl_FragColor = vec4(y, cr, cb, 1.0) * rec601;","}"].join("\n"),FRAGMENT_LOADING:["precision mediump float;","uniform float progress;","varying vec2 texCoord;","void main() {","float c = ceil(progress-(1.0-texCoord.y));","gl_FragColor = vec4(c,c,c,1);","}"].join("\n"),VERTEX_IDENTITY:["attribute vec2 vertex;","varying vec2 texCoord;","void main() {","texCoord = vertex;","gl_Position = vec4((vertex * 2.0 - 1.0) * vec2(1, -1), 0.0, 1.0);","}"].join("\n")};var P=function(){function A(A){A.canvas?(this.canvas=A.canvas,this.ownsCanvasElement=!1):(this.canvas=document.createElement("canvas"),this.ownsCanvasElement=!0),this.width=this.canvas.width,this.height=this.canvas.height,this.enabled=!0,this.context=this.canvas.getContext("2d")}var t=A.prototype;return t.destroy=function(){this.ownsCanvasElement&&this.canvas.remove()},t.resize=function(A,t){this.width=0|A,this.height=0|t,this.canvas.width=this.width,this.canvas.height=this.height,this.imageData=this.context.getImageData(0,0,this.width,this.height),G(this.imageData.data,255)},t.renderProgress=function(A){var t=this.canvas.width,i=this.canvas.height,e=this.context;e.fillStyle="#222",e.fillRect(0,0,t,i),e.fillStyle="#fff",e.fillRect(0,i-i*A,t,i*A)},t.render=function(A,t,i){this.YCbCrToRGBA(A,t,i,this.imageData.data),this.context.putImageData(this.imageData,0,0)},t.YCbCrToRGBA=function(A,t,i,e){if(this.enabled)for(var s,o,g,I,a,B=this.width+15>>4<<4,r=B>>1,C=0,n=B,E=B+(B-this.width),Q=0,h=r-(this.width>>1),d=0,c=4*this.width,l=4*this.width,u=this.width>>1,w=this.height>>1,p=0;p>8)-179,I=(88*o>>8)-44+(183*s>>8)-91,a=o+(198*o>>8)-227;var m=A[C++],f=A[C++];e[d]=m+g,e[d+1]=m-I,e[d+2]=m+a,e[d+4]=f+g,e[d+5]=f-I,e[d+6]=f+a,d+=8;var y=A[n++],R=A[n++];e[c]=y+g,e[c+1]=y-I,e[c+2]=y+a,e[c+4]=R+g,e[c+5]=R-I,e[c+6]=R+a,c+=8}C+=E,n+=E,d+=l,c+=l,Q+=h}},A}(),O=function(){function A(){this.context=A.CachedContext=A.CachedContext||new(window.AudioContext||window.webkitAudioContext),this.gain=this.context.createGain(),this.destination=this.gain,this.gain.connect(this.context.destination),this.context._connections=(this.context._connections||0)+1,this.startTime=0,this.buffer=null,this.wallclockStartTime=0,this.volume=1,this.enabled=!0,this.unlocked=!A.NeedsUnlocking(),Object.defineProperty(this,"enqueuedTime",{get:this.getEnqueuedTime})}var t=A.prototype;return t.destroy=function(){this.gain.disconnect(),this.context._connections--,0===this.context._connections&&(this.context.close(),A.CachedContext=null)},t.play=function(A,t,i){if(this.enabled){if(!this.unlocked){var e=S();return this.wallclockStartTimethis.memory.buffer.byteLength){var i=this.brk-this.memory.buffer.byteLength,e=Math.ceil(i/this.pageSize);this.memory.grow(e),this.createHeapViews()}return t},t.c_abort=function(A){console.warn("JSMPeg: WASM abort",arguments)},t.c_assertFail=function(A){console.warn("JSMPeg: WASM ___assert_fail",arguments)},t.readDylinkSection=function(A){var t=new Uint8Array(A),i=0,e=function(){for(var A=0,e=1;;){var s=t[i++];if(A+=(127&s)*e,e*=128,!(128&s))return A}},s=function(A){for(var e=0;ethis.maxAudioLag&&(this.audioOut.resetEnqueuedTime(),this.audioOut.enabled=!1),A=this.audio.decode()}while(A);this.audioOut.enabled=!0}},t.updateForStaticFile=function(){var A=!1,t=0;if(this.audio&&this.audio.canPlay){for(;!A&&this.audio.decodedTime-this.audio.currentTime<.25;)A=!this.audio.decode();this.video&&this.video.currentTime0&&(e>2*s&&(this.startTime+=e),A=!this.video.decode()),t=this.demuxer.currentTime-i}this.source.resume(t),A&&this.source.completed?this.loop?this.seek(0):(this.stop(),this.options.onEnded&&this.options.onEnded(this)):A&&this.options.onStalled&&this.options.onStalled(this)},A}(),W={Player:X,VideoElement:b,BitBuffer:L,Source:{Ajax:M,AjaxProgressive:q,WebSocket:N,Fetch:function(){function A(A,t){this.url=A,this.destination=null,this.request=null,this.streaming=!0,this.completed=!1,this.established=!1,this.progress=0,this.aborted=!1,this.onEstablishedCallback=t.onSourceEstablished,this.onCompletedCallback=t.onSourceCompleted,t.hookOnEstablished&&(this.hookOnEstablished=t.hookOnEstablished)}var t=A.prototype;return t.connect=function(A){this.destination=A},t.start=function(){var A=this,t={method:"GET",headers:new Headers,cache:"default"};self.fetch(this.url,t).then((function(t){if(t.ok&&t.status>=200&&t.status<=299)return A.progress=1,A.established=!0,A.pump(t.body.getReader())})).catch((function(A){throw A}))},t.pump=function(A){var t=this;return A.read().then((function(i){if(!i.done)return t.aborted?A.cancel():(t.destination&&t.destination.write(i.value.buffer),t.pump(A));t.completed=!0})).catch((function(A){throw A}))},t.resume=function(){},t.abort=function(){this.aborted=!0},A}()},Demuxer:{TS:U},Decoder:{Base:J,MPEG1Video:T,MPEG1VideoWASM:v,MP2Audio:x,MP2AudioWASM:Y},Renderer:{WebGL:H,Canvas2D:P},AudioOutput:{WebAudio:O},WASMModule:K,Now:S,CreateVideoElements:function(){for(var A=document.querySelectorAll(".jsmpeg"),t=0;tthis.q=A))}resume(){this.q?.(),this.Z=this.q=void 0}} +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const V=A=>!e(A)&&"function"==typeof A.then,z=1073741823;const $=A(class extends t{constructor(){super(...arguments),this._$Cwt=z,this._$Cbt=[],this._$CK=new Z(this),this._$CX=new j}render(...A){return A.find((A=>!V(A)))??i}update(A,t){const e=this._$Cbt;let s=e.length;this._$Cbt=t;const o=this._$CK,g=this._$CX;this.isConnected||this.disconnected();for(let A=0;Athis._$Cwt);A++){const i=t[A];if(!V(i))return this._$Cwt=A,i;A{for(;g.get();)await g.get();const t=o.deref();if(void 0!==t){const e=t._$Cbt.indexOf(i);e>-1&&e{let i=!1;const e=new W.VideoElement(this,A,{canvas:this._jsmpegCanvasElement},{pauseWhenHidden:!1,autoplay:!1,protocols:[],audio:!1,videoBufferSize:4194304,preserveDrawingBuffer:!0,...this.cameraConfig?.jsmpeg?.options,reconnectInterval:0,onVideoDecode:()=>{!i&&this._jsmpegCanvasElement&&(i=!0,t(e))},onPlay:()=>g(this),onPause:()=>I(this)})})),this._jsmpegCanvasElement&&a(this,this._jsmpegCanvasElement,{player:this,capabilities:{supportsPause:!0},technology:["jsmpeg"]})}_resetPlayer(){if(this._refreshPlayerTimer.stop(),this._jsmpegVideoPlayer){try{this._jsmpegVideoPlayer.destroy()}catch(A){}this._jsmpegVideoPlayer=void 0}this._jsmpegCanvasElement&&(this._jsmpegCanvasElement.remove(),this._jsmpegCanvasElement=void 0)}connectedCallback(){super.connectedCallback(),this.isConnected&&this.requestUpdate()}disconnectedCallback(){this.isConnected||this._resetPlayer(),super.disconnectedCallback()}async _refreshPlayer(){if(!this.hass)return;this._resetPlayer(),this._jsmpegCanvasElement=document.createElement("canvas"),this._jsmpegCanvasElement.className="media";const A=this.cameraEndpoints?.jsmpeg;if(!A)return B(this,r("error.live_camera_no_endpoint"),{context:this.cameraConfig});const t=await c(this,this.hass,A,86400);t&&(await this._createJSMPEGPlayer(t),this._refreshPlayerTimer.start(82800,(()=>this.requestUpdate())))}render(){return C`${$((async()=>(await this._refreshPlayer(),this._jsmpegVideoPlayer&&this._jsmpegCanvasElement?C`${this._jsmpegCanvasElement}`:B(this,r("error.jsmpeg_no_player"))))(),n({cardWideConfig:this.cardWideConfig}))}`}static get styles(){return E(":host {\n width: 100%;\n height: 100%;\n display: flex;\n}\n\ncanvas {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n object-view-box: inset(var(--frigate-card-media-layout-view-box-top, 0%) var(--frigate-card-media-layout-view-box-right, 0%) var(--frigate-card-media-layout-view-box-bottom, 0%) var(--frigate-card-media-layout-view-box-left, 0%));\n}")}};Q([h({attribute:!1})],AA.prototype,"cameraConfig",void 0),Q([h({attribute:!1})],AA.prototype,"cameraEndpoints",void 0),Q([h({attribute:!1})],AA.prototype,"cardWideConfig",void 0),AA=Q([d("frigate-card-live-jsmpeg")],AA);export{AA as FrigateCardLiveJSMPEG}; diff --git a/config/www/community/frigate-hass-card/jsmpeg-ef28408a.js.gz b/config/www/community/frigate-hass-card/jsmpeg-ef28408a.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..cceea55ca351857fbfaca11e73223ae38de87fb3 GIT binary patch literal 42824 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 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/jsmpeg-fd152ef0.js b/config/www/community/frigate-hass-card/jsmpeg-fd152ef0.js new file mode 100644 index 00000000..1e8683cc --- /dev/null +++ b/config/www/community/frigate-hass-card/jsmpeg-fd152ef0.js @@ -0,0 +1,12 @@ +import{cL as A,eN as t,dC as i,eO as e,a as s,dD as o,dy as g,dz as I,dw as a,cQ as B,l as r,x as C,dl as n,r as E,_ as Q,n as h,t as d}from"./card-09c4bade.js";import{g as c}from"./endpoint-e9cb8034.js";function l(){return l=Object.assign?Object.assign.bind():function(A){for(var t=1;t"string"==typeof A&&A.constructor===String,D=function(A){var t,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t=A,"Promise"===Object.prototype.toString.call(t).slice(8,-1)?A:new Promise((t=>{A(),setTimeout(t,i)}))};var m="WJ3NAvwFY9",f="tR2-0dd-e1",y="ZgIIHVSSYI",R="kAA8SjbHe2",k="OueN4AU4CJ";!function(A,t){void 0===t&&(t={});var i=t.insertAt;if(A&&"undefined"!=typeof document){var e=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css","top"===i&&e.firstChild?e.insertBefore(s,e.firstChild):e.appendChild(s),s.styleSheet?s.styleSheet.cssText=A:s.appendChild(document.createTextNode(A))}}(".WJ3NAvwFY9,.ZgIIHVSSYI,.kAA8SjbHe2,.tR2-0dd-e1{height:100%;left:0;position:absolute;top:0;width:100%;z-index:1}.ZgIIHVSSYI{-ms-flex-pack:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;justify-content:center}.WJ3NAvwFY9,.tR2-0dd-e1{display:block}.tR2-0dd-e1.OueN4AU4CJ{display:none}.ZgIIHVSSYI,.kAA8SjbHe2{-webkit-tap-highlight-color:rgba(255,0,0,0);cursor:pointer;opacity:.7}.OueN4AU4CJ.ZgIIHVSSYI,.OueN4AU4CJ.kAA8SjbHe2{display:none}.ZgIIHVSSYI{z-index:10}.ZgIIHVSSYI>svg{fill:#fff;height:12vw;max-height:60px;max-width:60px;width:12vw}.kAA8SjbHe2{-ms-flex-pack:end;-ms-flex-align:end;-webkit-align-items:flex-end;align-items:flex-end;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:flex-end;justify-content:flex-end;z-index:10}.kAA8SjbHe2>svg{fill:#fff;height:9vw;margin:0 15px 15px 0;max-height:40px;max-width:40px;width:9vw}");var b=function(){function A(A,t,i,e){var s=void 0===i?{}:i,o=s.canvas,g=void 0===o?"":o,I=s.poster,a=void 0===I?"":I,B=s.autoplay,r=void 0!==B&&B,C=s.autoSetWrapperSize,n=void 0!==C&&C,E=s.loop,Q=void 0!==E&&E,h=s.control,d=void 0===h||h,c=s.decodeFirstFrame,u=void 0===c||c,w=s.picMode,D=void 0!==w&&w,m=s.progressive,f=void 0===m||m,y=s.chunkSize,R=void 0===y?1048576:y,k=s.hooks,b=void 0===k?{}:k;void 0===e&&(e={}),this.options=l({videoUrl:t,canvas:g,poster:a,picMode:D,autoplay:r,autoSetWrapperSize:n,loop:Q,control:d,decodeFirstFrame:u,progressive:f,chunkSize:R,hooks:l({play:function(){},pause:function(){},stop:function(){},load:function(){}},b)},e),this.options.needPlayButton=this.options.control&&!this.options.picMode,this.player=null,this.els={wrapper:p(A)?document.querySelector(A):A,canvas:null,playButton:document.createElement("div"),unmuteButton:null,poster:null},"static"===window.getComputedStyle(this.els.wrapper).getPropertyValue("position")&&(this.els.wrapper.style.position="relative"),this.els.wrapper.clientRect=this.els.wrapper.getBoundingClientRect(),this.initCanvas(),this.initPlayButton(),this.initPlayer()}var t=A.prototype;return t.initCanvas=function(){this.options.canvas?this.els.canvas=p(this.options.canvas)?document.querySelector(this.options.canvas):this.options.canvas:(this.els.canvas=document.createElement("canvas"),this.els.canvas.classList.add(m),this.els.wrapper.appendChild(this.els.canvas))},t.initPlayer=function(){var A=this;this.options=l(this.options,{canvas:this.els.canvas});var t=l({},this.options,{autoplay:!1});if(this.player=new X(this.options.videoUrl,t,{play:function(){A.options.needPlayButton&&A.els.playButton.classList.add(k),A.els.poster&&A.els.poster.classList.add(k),A.options.hooks.play()},pause:function(){A.options.needPlayButton&&A.els.playButton.classList.remove(k),A.options.hooks.pause()},stop:function(){A.els.poster&&A.els.poster.classList.remove(k),A.options.hooks.stop()},load:function(){A.options.autoplay&&A.play(),A._autoSetWrapperSize(),A.options.hooks.load()}}),this._copyPlayerFuncs(),this.els.wrapper.playerInstance=this.player,!this.options.poster||this.options.autoplay||this.player.options.streaming||(this.options.decodeFirstFrame=!1,this.els.poster=new Image,this.els.poster.src=this.options.poster,this.els.poster.classList.add(f),this.els.wrapper.appendChild(this.els.poster)),this.player.options.streaming||this.els.wrapper.addEventListener("click",this.onClick.bind(this)),(this.options.autoplay||this.player.options.streaming)&&this.els.playButton.classList.add(k),this.player.audioOut&&!this.player.audioOut.unlocked){var i=this.els.wrapper;(this.options.autoplay||this.player.options.streaming)&&(this.els.unmuteButton=document.createElement("div"),this.els.unmuteButton.innerHTML='\n\n \n\n',this.els.unmuteButton.classList.add(R),this.els.wrapper.appendChild(this.els.unmuteButton),i=this.els.unmuteButton),this.unlockAudioBound=this.onUnlockAudio.bind(this,i),i.addEventListener("touchstart",this.unlockAudioBound,!1),i.addEventListener("click",this.unlockAudioBound,!0)}},t.initPlayButton=function(){this.options.needPlayButton&&(this.els.playButton.classList.add(y),this.els.playButton.innerHTML='\n\n \n\n',this.els.wrapper.appendChild(this.els.playButton))},t._autoSetWrapperSize=function(){var A=this;if(!this.options.autoSetWrapperSize)return Promise.resolve();var t=this.player.video.destination;return t?Promise.resolve().then((function(){return D((function(){A.els.wrapper.style.width=t.width+"px",A.els.wrapper.style.height=t.height+"px"}))})):Promise.resolve()},t.onUnlockAudio=function(A,t){var i=this;this.els.unmuteButton&&(t.preventDefault(),t.stopPropagation()),this.player.audioOut.unlock((function(){i.els.unmuteButton&&i.els.unmuteButton.classList.add(k),A.removeEventListener("touchstart",i.unlockAudioBound),A.removeEventListener("click",i.unlockAudioBound)}))},t.onClick=function(){this.options.control&&(this.player.isPlaying?this.pause():this.play())},t._copyPlayerFuncs=function(){var A=this;this.play=function(){return A.player.play()},this.pause=function(){return A.player.pause()},this.stop=function(){return A.player.stop()},this.destroy=function(){A.player.destroy(),A.els.wrapper.innerHTML="",A.els.wrapper.playerInstance=null}},A}(),S=function(){return window.performance?window.performance.now()/1e3:Date.now()/1e3},G=function(A,t){if(A.fill)A.fill(t);else for(var i=0;iA&&this.loadNextChunk())},t.destroy=function(){this.request.abort(),this.aborted=!0},t.loadNextChunk=function(){var A=this,t=this.loadedSize,i=Math.min(this.loadedSize+this.chunkSize-1,this.fileSize-1);if(t>=this.fileSize||this.aborted)return this.completed=!0,void(this.onCompletedCallback&&this.onCompletedCallback(this));this.isLoading=!0,this.loadStartTime=S(),this.request=new XMLHttpRequest,this.request.onreadystatechange=function(){A.request.readyState===A.request.DONE&&A.request.status>=200&&A.request.status<300?A.onChunkLoad(A.request.response):A.request.readyState===A.request.DONE&&A.loadFails++<3&&A.loadNextChunk()},0===t&&(this.request.onprogress=this.onProgress.bind(this)),this.request.open("GET",this.url+"?"+t+"-"+i),this.request.setRequestHeader("Range","bytes="+t+"-"+i),this.request.responseType="arraybuffer",this.request.send()},t.onProgress=function(A){this.progress=A.loaded/A.total},t.onChunkLoad=function(A){var t=!this.established;this.established=!0,this.progress=1,this.loadedSize+=A.byteLength,this.loadFails=0,this.isLoading=!1,t&&this.hookOnEstablished&&this.hookOnEstablished(),t&&this.onEstablishedCallback&&this.onEstablishedCallback(this),this.destination&&this.destination.write(A),this.loadTime=S()-this.loadStartTime,this.throttled||this.loadNextChunk()},A}(),N=function(){function A(A,t){this.url=A,this.options=t,this.socket=null,this.streaming=!0,this.callbacks={connect:[],data:[]},this.destination=null,this.reconnectInterval=void 0!==t.reconnectInterval?t.reconnectInterval:5,this.shouldAttemptReconnect=!!this.reconnectInterval,this.completed=!1,this.established=!1,this.progress=0,this.reconnectTimeoutId=0,this.onEstablishedCallback=t.onSourceEstablished,this.onCompletedCallback=t.onSourceCompleted,t.hookOnEstablished&&(this.hookOnEstablished=t.hookOnEstablished)}var t=A.prototype;return t.connect=function(A){this.destination=A},t.destroy=function(){clearTimeout(this.reconnectTimeoutId),this.shouldAttemptReconnect=!1,this.socket.close()},t.start=function(){this.shouldAttemptReconnect=!!this.reconnectInterval,this.progress=0,this.established=!1,this.options.protocols?this.socket=new WebSocket(this.url,this.options.protocols):this.socket=new WebSocket(this.url),this.socket.binaryType="arraybuffer",this.socket.onmessage=this.onMessage.bind(this),this.socket.onopen=this.onOpen.bind(this),this.socket.onerror=this.onClose.bind(this),this.socket.onclose=this.onClose.bind(this)},t.resume=function(){},t.onOpen=function(){this.progress=1},t.onClose=function(){var A=this;this.shouldAttemptReconnect&&(clearTimeout(this.reconnectTimeoutId),this.reconnectTimeoutId=setTimeout((function(){A.start()}),1e3*this.reconnectInterval))},t.onMessage=function(A){var t=!this.established;this.established=!0,t&&this.hookOnEstablished&&this.hookOnEstablished(),t&&this.onEstablishedCallback&&this.onEstablishedCallback(this),this.destination&&this.destination.write(A.data)},A}(),L=function(){function A(t,i){"object"==typeof t?(this.bytes=t instanceof Uint8Array?t:new Uint8Array(t),this.byteLength=this.bytes.length):(this.bytes=new Uint8Array(t||1048576),this.byteLength=0),this.mode=i||A.MODE.EXPAND,this.index=0}var t=A.prototype;return t.resize=function(A){var t=new Uint8Array(A);0!==this.byteLength&&(this.byteLength=Math.min(this.byteLength,A),t.set(this.bytes,0,this.byteLength)),this.bytes=t,this.index=Math.min(this.index,this.byteLength<<3)},t.evict=function(A){var t=this.index>>3,i=this.bytes.length-this.byteLength;if(this.index===this.byteLength<<3||A>i+t)return this.byteLength=0,void(this.index=0);0!==t&&(this.bytes.copyWithin?this.bytes.copyWithin(0,t,this.byteLength):this.bytes.set(this.bytes.subarray(t,this.byteLength)),this.byteLength-=t,this.index-=t<<3)},t.write=function(t){var i="object"==typeof t[0],e=0,s=this.bytes.length-this.byteLength;if(i){e=0;for(var o=0;os)if(this.mode===A.MODE.EXPAND){var g=Math.max(2*this.bytes.length,e-s);this.resize(g)}else this.evict(e);if(i)for(var I=0;I>3;A>3;return A>=this.byteLength||0===this.bytes[A]&&0===this.bytes[A+1]&&1===this.bytes[A+2]},t.peek=function(A){for(var t=this.index,i=0;A;){var e=8-(7&t),s=e>3]&255>>8-s<>o,t+=s,A-=s}return i},t.read=function(A){var t=this.peek(A);return this.index+=A,t},t.skip=function(A){return this.index+=A},t.rewind=function(A){this.index=Math.max(this.index-A,0)},t.has=function(A){return(this.byteLength<<3)-this.index>=A},A}();L.MODE={EVICT:1,EXPAND:2};var U=function(){function A(){this.bits=null,this.leftoverBytes=null,this.guessVideoFrameEnd=!0,this.pidsToStreamIds={},this.pesPacketInfo={},this.startTime=0,this.currentTime=0}var t=A.prototype;return t.connect=function(A,t){this.pesPacketInfo[A]={destination:t,currentLength:0,totalLength:0,pts:0,buffers:[]}},t.write=function(A){if(this.leftoverBytes){var t=A.byteLength+this.leftoverBytes.byteLength;this.bits=new L(t),this.bits.write([this.leftoverBytes,A])}else this.bits=new L(A);for(;this.bits.has(1504)&&this.parsePacket(););var i=this.bits.byteLength-(this.bits.index>>3);this.leftoverBytes=i>0?this.bits.bytes.subarray(this.bits.index>>3):null},t.parsePacket=function(){if(71!==this.bits.read(8)&&!this.resync())return!1;var A=187+(this.bits.index>>3);this.bits.read(1);var t=this.bits.read(1);this.bits.read(1);var i=this.bits.read(13);this.bits.read(2);var e=this.bits.read(2);this.bits.read(4);var s=this.pidsToStreamIds[i];if(t&&s){var o=this.pesPacketInfo[s];o&&o.currentLength&&this.packetComplete(o)}if(1&e){if(2&e){var g=this.bits.read(8);this.bits.skip(g<<3)}if(t&&this.bits.nextBytesAreStartCode()){this.bits.skip(24),s=this.bits.read(8),this.pidsToStreamIds[i]=s;var I=this.bits.read(16);this.bits.skip(8);var a=this.bits.read(2);this.bits.skip(6);var B=this.bits.read(8),r=this.bits.index+(B<<3),C=this.pesPacketInfo[s];if(C){var n=0;if(2&a){this.bits.skip(4);var E=this.bits.read(3);this.bits.skip(1);var Q=this.bits.read(15);this.bits.skip(1);var h=this.bits.read(15);this.bits.skip(1),n=(1073741824*E+32768*Q+h)/9e4,this.currentTime=n,-1===this.startTime&&(this.startTime=n)}var d=I?I-B-3:0;this.packetStart(C,n,d)}this.bits.index=r}if(s){var c=this.pesPacketInfo[s];if(c){var l=this.bits.index>>3,u=!t&&2&e;(this.packetAddData(c,l,A)||this.guessVideoFrameEnd&&u)&&this.packetComplete(c)}}}return this.bits.index=A<<3,!0},t.resync=function(){if(!this.bits.has(9024))return!1;for(var A=this.bits.index>>3,t=0;t<187;t++)if(71===this.bits.bytes[A+t]){for(var i=!0,e=1;e<5;e++)if(71!==this.bits.bytes[A+t+188*e]){i=!1;break}if(i)return this.bits.index=A+t+1<<3,!0}return console.warn("JSMpeg: Possible garbage data. Skipping."),this.bits.skip(1496),!1},t.packetStart=function(A,t,i){A.totalLength=i,A.currentLength=0,A.pts=t},t.packetAddData=function(A,t,i){return A.buffers.push(this.bits.bytes.subarray(t,i)),A.currentLength+=i-t,0!==A.totalLength&&A.currentLength>=A.totalLength},t.packetComplete=function(A){A.destination.write(A.pts,A.buffers),A.totalLength=0,A.currentLength=0,A.buffers=[]},A}();U.STREAM={PACK_HEADER:186,SYSTEM_HEADER:187,PROGRAM_MAP:188,PRIVATE_1:189,PADDING:190,PRIVATE_2:191,AUDIO_1:192,VIDEO_1:224,DIRECTORY:255};var J=function(){function A(A){this.destination=null,this.canPlay=!1,this.collectTimestamps=!A.streaming,this.bytesWritten=0,this.timestamps=[],this.timestampIndex=0,this.startTime=0,this.decodedTime=0,Object.defineProperty(this,"currentTime",{get:this.getCurrentTime})}var t=A.prototype;return t.destroy=function(){},t.connect=function(A){this.destination=A},t.bufferGetIndex=function(){return this.bits.index},t.bufferSetIndex=function(A){this.bits.index=A},t.bufferWrite=function(A){return this.bits.write(A)},t.write=function(A,t){this.collectTimestamps&&(0===this.timestamps.length&&(this.startTime=A,this.decodedTime=A),this.timestamps.push({index:this.bytesWritten<<3,time:A})),this.bytesWritten+=this.bufferWrite(t),this.canPlay=!0},t.seek=function(A){if(this.collectTimestamps){this.timestampIndex=0;for(var t=0;tA);t++)this.timestampIndex=t;var i=this.timestamps[this.timestampIndex];i?(this.bufferSetIndex(i.index),this.decodedTime=i.time):(this.bits.index=0,this.decodedTime=this.startTime)}},t.decode=function(){this.advanceDecodedTime(0)},t.advanceDecodedTime=function(A){if(this.collectTimestamps){for(var t=-1,i=this.bufferGetIndex(),e=this.timestampIndex;ei);e++)t=e;if(-1!==t&&t!==this.timestampIndex)return this.timestampIndex=t,void(this.decodedTime=this.timestamps[this.timestampIndex].time)}this.decodedTime+=A},t.getCurrentTime=function(){return this.decodedTime},A}(),T=function(A){function t(t){var i;(i=A.call(this,t)||this).onDecodeCallback=t.onVideoDecode;var e=t.videoBufferSize||524288,s=t.streaming?L.MODE.EVICT:L.MODE.EXPAND;return i.bits=new L(e,s),i.customIntraQuantMatrix=new Uint8Array(64),i.customNonIntraQuantMatrix=new Uint8Array(64),i.blockData=new Int32Array(64),i.currentFrame=0,i.decodeFirstFrame=!1!==t.decodeFirstFrame,i}u(t,A);var i=t.prototype;return i.write=function(A,i){if(J.prototype.write.call(this,A,i),!this.hasSequenceHeader){if(-1===this.bits.findStartCode(t.START.SEQUENCE))return!1;this.decodeSequenceHeader(),this.decodeFirstFrame&&this.decode()}},i.decode=function(){var A=S();if(!this.hasSequenceHeader)return!1;if(-1===this.bits.findStartCode(t.START.PICTURE))return!1;this.decodePicture(),this.advanceDecodedTime(1/this.frameRate);var i=S()-A;return this.onDecodeCallback&&this.onDecodeCallback(this,i),!0},i.readHuffman=function(A){var t=0;do{t=A[t+this.bits.read(1)]}while(t>=0&&0!==A[t]);return A[t+2]},i.decodeSequenceHeader=function(){var A=this.bits.read(12),i=this.bits.read(12);if(this.bits.skip(4),this.frameRate=t.PICTURE_RATE[this.bits.read(4)],this.bits.skip(30),A===this.width&&i===this.height||(this.width=A,this.height=i,this.initBuffers(),this.destination&&this.destination.resize(A,i)),this.bits.read(1)){for(var e=0;e<64;e++)this.customIntraQuantMatrix[t.ZIG_ZAG[e]]=this.bits.read(8);this.intraQuantMatrix=this.customIntraQuantMatrix}if(this.bits.read(1)){for(var s=0;s<64;s++){var o=t.ZIG_ZAG[s];this.customNonIntraQuantMatrix[o]=this.bits.read(8)}this.nonIntraQuantMatrix=this.customNonIntraQuantMatrix}this.hasSequenceHeader=!0},i.initBuffers=function(){this.intraQuantMatrix=t.DEFAULT_INTRA_QUANT_MATRIX,this.nonIntraQuantMatrix=t.DEFAULT_NON_INTRA_QUANT_MATRIX,this.mbWidth=this.width+15>>4,this.mbHeight=this.height+15>>4,this.mbSize=this.mbWidth*this.mbHeight,this.codedWidth=this.mbWidth<<4,this.codedHeight=this.mbHeight<<4,this.codedSize=this.codedWidth*this.codedHeight,this.halfWidth=this.mbWidth<<3,this.halfHeight=this.mbHeight<<3,this.currentY=new Uint8ClampedArray(this.codedSize),this.currentY32=new Uint32Array(this.currentY.buffer),this.currentCr=new Uint8ClampedArray(this.codedSize>>2),this.currentCr32=new Uint32Array(this.currentCr.buffer),this.currentCb=new Uint8ClampedArray(this.codedSize>>2),this.currentCb32=new Uint32Array(this.currentCb.buffer),this.forwardY=new Uint8ClampedArray(this.codedSize),this.forwardY32=new Uint32Array(this.forwardY.buffer),this.forwardCr=new Uint8ClampedArray(this.codedSize>>2),this.forwardCr32=new Uint32Array(this.forwardCr.buffer),this.forwardCb=new Uint8ClampedArray(this.codedSize>>2),this.forwardCb32=new Uint32Array(this.forwardCb.buffer)},i.decodePicture=function(){if(this.currentFrame++,this.bits.skip(10),this.pictureType=this.bits.read(3),this.bits.skip(16),!(this.pictureType<=0||this.pictureType>=t.PICTURE_TYPE.B)){if(this.pictureType===t.PICTURE_TYPE.PREDICTIVE){if(this.fullPelForward=this.bits.read(1),this.forwardFCode=this.bits.read(3),0===this.forwardFCode)return;this.forwardRSize=this.forwardFCode-1,this.forwardF=1<=t.START.SLICE_FIRST&&A<=t.START.SLICE_LAST;)this.decodeSlice(255&A),A=this.bits.findNextStartCode();if(-1!==A&&this.bits.rewind(32),this.destination&&this.destination.render(this.currentY,this.currentCr,this.currentCb,!0),this.pictureType===t.PICTURE_TYPE.INTRA||this.pictureType===t.PICTURE_TYPE.PREDICTIVE){var i=this.forwardY,e=this.forwardY32,s=this.forwardCr,o=this.forwardCr32,g=this.forwardCb,I=this.forwardCb32;this.forwardY=this.currentY,this.forwardY32=this.currentY32,this.forwardCr=this.currentCr,this.forwardCr32=this.currentCr32,this.forwardCb=this.currentCb,this.forwardCb32=this.currentCb32,this.currentY=i,this.currentY32=e,this.currentCr=s,this.currentCr32=o,this.currentCb=g,this.currentCb32=I}}},i.decodeSlice=function(A){for(this.sliceBegin=!0,this.macroblockAddress=(A-1)*this.mbWidth-1,this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0,this.dcPredictorY=128,this.dcPredictorCr=128,this.dcPredictorCb=128,this.quantizerScale=this.bits.read(5);this.bits.read(1);)this.bits.skip(8);do{this.decodeMacroblock()}while(!this.bits.nextBytesAreStartCode())},i.decodeMacroblock=function(){for(var A=0,i=this.readHuffman(t.MACROBLOCK_ADDRESS_INCREMENT);34===i;)i=this.readHuffman(t.MACROBLOCK_ADDRESS_INCREMENT);for(;35===i;)A+=33,i=this.readHuffman(t.MACROBLOCK_ADDRESS_INCREMENT);if(A+=i,this.sliceBegin)this.sliceBegin=!1,this.macroblockAddress+=A;else{if(this.macroblockAddress+A>=this.mbSize)return;for(A>1&&(this.dcPredictorY=128,this.dcPredictorCr=128,this.dcPredictorCb=128,this.pictureType===t.PICTURE_TYPE.PREDICTIVE&&(this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0));A>1;)this.macroblockAddress++,this.mbRow=this.macroblockAddress/this.mbWidth|0,this.mbCol=this.macroblockAddress%this.mbWidth,this.copyMacroblock(this.motionFwH,this.motionFwV,this.forwardY,this.forwardCr,this.forwardCb),A--;this.macroblockAddress++}this.mbRow=this.macroblockAddress/this.mbWidth|0,this.mbCol=this.macroblockAddress%this.mbWidth;var e=t.MACROBLOCK_TYPE[this.pictureType];this.macroblockType=this.readHuffman(e),this.macroblockIntra=1&this.macroblockType,this.macroblockMotFw=8&this.macroblockType,16&this.macroblockType&&(this.quantizerScale=this.bits.read(5)),this.macroblockIntra?(this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0):(this.dcPredictorY=128,this.dcPredictorCr=128,this.dcPredictorCb=128,this.decodeMotionVectors(),this.copyMacroblock(this.motionFwH,this.motionFwV,this.forwardY,this.forwardCr,this.forwardCb));for(var s=2&this.macroblockType?this.readHuffman(t.CODE_BLOCK_PATTERN):this.macroblockIntra?63:0,o=0,g=32;o<6;o++)s&g&&this.decodeBlock(o),g>>=1},i.decodeMotionVectors=function(){var A,i,e=0;this.macroblockMotFw?(0!==(A=this.readHuffman(t.MOTION))&&1!==this.forwardF?(e=this.bits.read(this.forwardRSize),i=(Math.abs(A)-1<(this.forwardF<<4)-1?this.motionFwHPrev-=this.forwardF<<5:this.motionFwHPrev<-this.forwardF<<4&&(this.motionFwHPrev+=this.forwardF<<5),this.motionFwH=this.motionFwHPrev,this.fullPelForward&&(this.motionFwH<<=1),0!==(A=this.readHuffman(t.MOTION))&&1!==this.forwardF?(e=this.bits.read(this.forwardRSize),i=(Math.abs(A)-1<(this.forwardF<<4)-1?this.motionFwVPrev-=this.forwardF<<5:this.motionFwVPrev<-this.forwardF<<4&&(this.motionFwVPrev+=this.forwardF<<5),this.motionFwV=this.motionFwVPrev,this.fullPelForward&&(this.motionFwV<<=1)):this.pictureType===t.PICTURE_TYPE.PREDICTIVE&&(this.motionFwH=this.motionFwHPrev=0,this.motionFwV=this.motionFwVPrev=0)},i.copyMacroblock=function(A,t,i,e,s){var o,g,I,a,B,r,C,n,E,Q,h,d,c,l,u,w,p,D,m,f=this.currentY32,y=this.currentCb32,R=this.currentCr32;if(g=(o=this.codedWidth)-16,I=A>>1,a=t>>1,B=!(1&~A),r=!(1&~t),C=((this.mbRow<<4)+a)*o+(this.mbCol<<4)+I,E=(n=this.mbRow*o+this.mbCol<<2)+(o<<2),B)if(r)for(;n>2&255,c|=(h=i[++C]+i[C+o])+d+2<<6&65280,c|=h+(d=i[++C]+i[C+o])+2<<14&16711680,h=i[++C]+i[C+o],C++,c|=h+d+2<<22&4278190080,f[n++]=c;n+=g>>2,C+=g-1}else for(;n>1&255,c|=(h=i[C++])+d+1<<7&65280,c|=h+(d=i[C++])+1<<15&16711680,c|=(h=i[C++])+d+1<<23&4278190080,f[n++]=c;n+=g>>2,C+=g-1}else if(r)for(;n>1&255,c|=i[++C]+i[C+o]+1<<7&65280,c|=i[++C]+i[C+o]+1<<15&16711680,c|=i[++C]+i[C+o]+1<<23&4278190080,C++,f[n++]=c;n+=g>>2,C+=g}else for(;n>2,C+=g}if(g=(o=this.halfWidth)-8,I=A/2>>1,a=t/2>>1,B=1==(A/2&1),r=1==(t/2&1),C=((this.mbRow<<3)+a)*o+(this.mbCol<<3)+I,E=(n=this.mbRow*o+this.mbCol<<1)+(o<<1),B)if(r)for(;n>2&255,m=p+(D=s[C]+s[C+o])+2>>2&255,w|=(l=e[++C]+e[C+o])+u+2<<6&65280,m|=(p=s[C]+s[C+o])+D+2<<6&65280,w|=l+(u=e[++C]+e[C+o])+2<<14&16711680,m|=p+(D=s[C]+s[C+o])+2<<14&16711680,l=e[++C]+e[C+o],p=s[C]+s[C+o],C++,w|=l+u+2<<22&4278190080,m|=p+D+2<<22&4278190080,R[n]=w,y[n]=m,n++;n+=g>>2,C+=g-1}else for(;n>1&255,m=p+(D=s[C++])+1>>1&255,w|=(l=e[C])+u+1<<7&65280,m|=(p=s[C++])+D+1<<7&65280,w|=l+(u=e[C])+1<<15&16711680,m|=p+(D=s[C++])+1<<15&16711680,w|=(l=e[C])+u+1<<23&4278190080,m|=(p=s[C++])+D+1<<23&4278190080,R[n]=w,y[n]=m,n++;n+=g>>2,C+=g-1}else if(r)for(;n>1&255,m=s[C]+s[C+o]+1>>1&255,w|=e[++C]+e[C+o]+1<<7&65280,m|=s[C]+s[C+o]+1<<7&65280,w|=e[++C]+e[C+o]+1<<15&16711680,m|=s[C]+s[C+o]+1<<15&16711680,w|=e[++C]+e[C+o]+1<<23&4278190080,m|=s[C]+s[C+o]+1<<23&4278190080,C++,R[n]=w,y[n]=m,n++;n+=g>>2,C+=g}else for(;n>2,C+=g}},i.decodeBlock=function(A){var i,e=0;if(this.macroblockIntra){var s,o;if(A<4?(s=this.dcPredictorY,o=this.readHuffman(t.DCT_DC_SIZE_LUMINANCE)):(s=4===A?this.dcPredictorCr:this.dcPredictorCb,o=this.readHuffman(t.DCT_DC_SIZE_CHROMINANCE)),o>0){var g=this.bits.read(o);this.blockData[0]=g&1<0&&0===this.bits.read(1))break;65535===n?(C=this.bits.read(6),0===(r=this.bits.read(8))?r=this.bits.read(8):128===r?r=this.bits.read(8)-256:r>128&&(r-=256)):(C=n>>8,r=255&n,this.bits.read(1)&&(r=-r)),e+=C;var E=t.ZIG_ZAG[e];e++,r<<=1,this.macroblockIntra||(r+=r<0?-1:1),1&(r=r*this.quantizerScale*i[E]>>4)||(r-=r>0?1:-1),r>2047?r=2047:r<-2048&&(r=-2048),this.blockData[E]=r*t.PREMULTIPLIER_MATRIX[E]}A<4?(I=this.currentY,B=this.codedWidth-8,a=this.mbRow*this.codedWidth+this.mbCol<<4,1&A&&(a+=8),2&A&&(a+=this.codedWidth<<3)):(I=4===A?this.currentCb:this.currentCr,B=(this.codedWidth>>1)-8,a=(this.mbRow*this.codedWidth<<2)+(this.mbCol<<3)),this.macroblockIntra?1===e?(t.CopyValueToDestination(this.blockData[0]+128>>8,I,a,B),this.blockData[0]=0):(t.IDCT(this.blockData),t.CopyBlockToDestination(this.blockData,I,a,B),G(this.blockData,0)):1===e?(t.AddValueToDestination(this.blockData[0]+128>>8,I,a,B),this.blockData[0]=0):(t.IDCT(this.blockData),t.AddBlockToDestination(this.blockData,I,a,B),G(this.blockData,0)),e=0},t.CopyBlockToDestination=function(A,t,i,e){for(var s=0;s<64;s+=8,i+=e+8)t[i+0]=A[s+0],t[i+1]=A[s+1],t[i+2]=A[s+2],t[i+3]=A[s+3],t[i+4]=A[s+4],t[i+5]=A[s+5],t[i+6]=A[s+6],t[i+7]=A[s+7]},t.AddBlockToDestination=function(A,t,i,e){for(var s=0;s<64;s+=8,i+=e+8)t[i+0]+=A[s+0],t[i+1]+=A[s+1],t[i+2]+=A[s+2],t[i+3]+=A[s+3],t[i+4]+=A[s+4],t[i+5]+=A[s+5],t[i+6]+=A[s+6],t[i+7]+=A[s+7]},t.CopyValueToDestination=function(A,t,i,e){for(var s=0;s<64;s+=8,i+=e+8)t[i+0]=A,t[i+1]=A,t[i+2]=A,t[i+3]=A,t[i+4]=A,t[i+5]=A,t[i+6]=A,t[i+7]=A},t.AddValueToDestination=function(A,t,i,e){for(var s=0;s<64;s+=8,i+=e+8)t[i+0]+=A,t[i+1]+=A,t[i+2]+=A,t[i+3]+=A,t[i+4]+=A,t[i+5]+=A,t[i+6]+=A,t[i+7]+=A},t.IDCT=function(A){for(var t,i,e,s,o,g,I,a,B,r,C,n,E,Q,h,d,c,l,u=0;u<8;++u)t=A[32+u],i=A[16+u]+A[48+u],e=A[40+u]-A[24+u],g=A[8+u]+A[56+u],I=A[24+u]+A[40+u],B=(E=(473*(s=A[8+u]-A[56+u])-196*e+128>>8)-(o=g+I))-(362*(g-I)+128>>8),Q=(r=(a=A[0+u])-t)+(C=(362*(A[16+u]-A[48+u])+128>>8)-i),h=(n=a+t)+i,d=r-C,c=n-i,l=-B-(473*e+196*s+128>>8),A[0+u]=o+h,A[8+u]=E+Q,A[16+u]=d-B,A[24+u]=c-l,A[32+u]=c+l,A[40+u]=B+d,A[48+u]=Q-E,A[56+u]=h-o;for(var w=0;w<64;w+=8)t=A[4+w],i=A[2+w]+A[6+w],e=A[5+w]-A[3+w],g=A[1+w]+A[7+w],I=A[3+w]+A[5+w],B=(E=(473*(s=A[1+w]-A[7+w])-196*e+128>>8)-(o=g+I))-(362*(g-I)+128>>8),Q=(r=(a=A[0+w])-t)+(C=(362*(A[2+w]-A[6+w])+128>>8)-i),h=(n=a+t)+i,d=r-C,c=n-i,l=-B-(473*e+196*s+128>>8),A[0+w]=o+h+128>>8,A[1+w]=E+Q+128>>8,A[2+w]=d-B+128>>8,A[3+w]=c-l+128>>8,A[4+w]=c+l+128>>8,A[5+w]=B+d+128>>8,A[6+w]=Q-E+128>>8,A[7+w]=h-o+128>>8},t}(J);T.prototype.frameRate=30,T.prototype.currentY=null,T.prototype.currentCr=null,T.prototype.currentCb=null,T.prototype.pictureType=0,T.prototype.forwardY=null,T.prototype.forwardCr=null,T.prototype.forwardCb=null,T.prototype.fullPelForward=!1,T.prototype.forwardFCode=0,T.prototype.forwardRSize=0,T.prototype.forwardF=0,T.prototype.quantizerScale=0,T.prototype.sliceBegin=!1,T.prototype.macroblockAddress=0,T.prototype.mbRow=0,T.prototype.mbCol=0,T.prototype.macroblockType=0,T.prototype.macroblockIntra=!1,T.prototype.macroblockMotFw=!1,T.prototype.motionFwH=0,T.prototype.motionFwV=0,T.prototype.motionFwHPrev=0,T.prototype.motionFwVPrev=0,T.prototype.dcPredictorY=0,T.prototype.dcPredictorCr=0,T.prototype.dcPredictorCb=0,T.prototype.blockData=null,T.PICTURE_RATE=[0,23.976,24,25,29.97,30,50,59.94,60,0,0,0,0,0,0,0],T.ZIG_ZAG=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),T.DEFAULT_INTRA_QUANT_MATRIX=new Uint8Array([8,16,19,22,26,27,29,34,16,16,22,24,27,29,34,37,19,22,26,27,29,34,34,38,22,22,26,27,29,34,37,40,22,26,27,29,32,35,40,48,26,27,29,32,35,40,48,58,26,27,29,34,38,46,56,69,27,29,35,38,46,56,69,83]),T.DEFAULT_NON_INTRA_QUANT_MATRIX=new Uint8Array([16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]),T.PREMULTIPLIER_MATRIX=new Uint8Array([32,44,42,38,32,25,17,9,44,62,58,52,44,35,24,12,42,58,55,49,42,33,23,12,38,52,49,44,38,30,20,10,32,44,42,38,32,25,17,9,25,35,33,30,25,20,14,7,17,24,23,20,17,14,9,5,9,12,12,10,9,7,5,2]),T.MACROBLOCK_ADDRESS_INCREMENT=new Int16Array([3,6,0,9,12,0,0,0,1,15,18,0,21,24,0,27,30,0,33,36,0,0,0,3,0,0,2,39,42,0,45,48,0,0,0,5,0,0,4,51,54,0,57,60,0,0,0,7,0,0,6,63,66,0,69,72,0,75,78,0,81,84,0,-1,87,0,-1,90,0,93,96,0,99,102,0,105,108,0,111,114,0,0,0,9,0,0,8,117,120,0,123,126,0,129,132,0,135,138,0,0,0,15,0,0,14,0,0,13,0,0,12,0,0,11,0,0,10,141,-1,0,-1,144,0,147,150,0,153,156,0,159,162,0,165,168,0,171,174,0,177,180,0,183,-1,0,-1,186,0,189,192,0,195,198,0,201,204,0,207,210,0,213,216,0,219,222,0,0,0,21,0,0,20,0,0,19,0,0,18,0,0,17,0,0,16,0,0,35,0,0,34,0,0,33,0,0,32,0,0,31,0,0,30,0,0,29,0,0,28,0,0,27,0,0,26,0,0,25,0,0,24,0,0,23,0,0,22]),T.MACROBLOCK_TYPE_INTRA=new Int8Array([3,6,0,-1,9,0,0,0,1,0,0,17]),T.MACROBLOCK_TYPE_PREDICTIVE=new Int8Array([3,6,0,9,12,0,0,0,10,15,18,0,0,0,2,21,24,0,0,0,8,27,30,0,33,36,0,-1,39,0,0,0,18,0,0,26,0,0,1,0,0,17]),T.MACROBLOCK_TYPE_B=new Int8Array([3,6,0,9,15,0,12,18,0,24,21,0,0,0,12,27,30,0,0,0,14,39,42,0,36,33,0,0,0,4,0,0,6,54,48,0,45,51,0,0,0,8,0,0,10,-1,57,0,0,0,1,60,63,0,0,0,30,0,0,17,0,0,22,0,0,26]),T.MACROBLOCK_TYPE=[null,T.MACROBLOCK_TYPE_INTRA,T.MACROBLOCK_TYPE_PREDICTIVE,T.MACROBLOCK_TYPE_B],T.CODE_BLOCK_PATTERN=new Int16Array([6,3,0,9,18,0,12,15,0,24,33,0,36,39,0,27,21,0,30,42,0,60,57,0,54,48,0,69,51,0,81,75,0,63,84,0,45,66,0,72,78,0,0,0,60,105,120,0,132,144,0,114,108,0,126,141,0,87,93,0,117,96,0,0,0,32,135,138,0,99,123,0,129,102,0,0,0,4,90,111,0,0,0,8,0,0,16,0,0,44,150,168,0,0,0,28,0,0,52,0,0,62,183,177,0,156,180,0,0,0,1,165,162,0,0,0,61,0,0,56,171,174,0,0,0,2,0,0,40,153,186,0,0,0,48,192,189,0,147,159,0,0,0,20,0,0,12,240,249,0,0,0,63,231,225,0,195,219,0,252,198,0,0,0,24,0,0,36,0,0,3,207,261,0,243,237,0,204,213,0,210,234,0,201,228,0,216,222,0,258,255,0,264,246,0,-1,282,0,285,291,0,0,0,33,0,0,9,318,330,0,306,348,0,0,0,5,0,0,10,279,267,0,0,0,6,0,0,18,0,0,17,0,0,34,339,357,0,309,312,0,270,276,0,327,321,0,351,354,0,303,297,0,294,288,0,300,273,0,342,345,0,315,324,0,336,333,0,363,375,0,0,0,41,0,0,14,0,0,21,372,366,0,360,369,0,0,0,11,0,0,19,0,0,7,0,0,35,0,0,13,0,0,50,0,0,49,0,0,58,0,0,37,0,0,25,0,0,45,0,0,57,0,0,26,0,0,29,0,0,38,0,0,53,0,0,23,0,0,43,0,0,46,0,0,42,0,0,22,0,0,54,0,0,51,0,0,15,0,0,30,0,0,39,0,0,47,0,0,55,0,0,27,0,0,59,0,0,31]),T.MOTION=new Int16Array([3,6,0,12,9,0,0,0,0,18,15,0,24,21,0,0,0,-1,0,0,1,27,30,0,36,33,0,0,0,2,0,0,-2,42,45,0,48,39,0,60,54,0,0,0,3,0,0,-3,51,57,0,-1,69,0,81,75,0,78,63,0,72,66,0,96,84,0,87,93,0,-1,99,0,108,105,0,0,0,-4,90,102,0,0,0,4,0,0,-7,0,0,5,111,123,0,0,0,-5,0,0,7,114,120,0,126,117,0,0,0,-6,0,0,6,153,162,0,150,147,0,135,138,0,156,141,0,129,159,0,132,144,0,0,0,10,0,0,9,0,0,8,0,0,-8,171,198,0,0,0,-9,180,192,0,168,183,0,165,186,0,174,189,0,0,0,-10,177,195,0,0,0,12,0,0,16,0,0,13,0,0,14,0,0,11,0,0,15,0,0,-16,0,0,-12,0,0,-14,0,0,-15,0,0,-11,0,0,-13]),T.DCT_DC_SIZE_LUMINANCE=new Int8Array([6,3,0,18,15,0,9,12,0,0,0,1,0,0,2,27,24,0,21,30,0,0,0,0,36,33,0,0,0,4,0,0,3,39,42,0,0,0,5,0,0,6,48,45,0,51,-1,0,0,0,7,0,0,8]),T.DCT_DC_SIZE_CHROMINANCE=new Int8Array([6,3,0,12,9,0,18,15,0,24,21,0,0,0,2,0,0,1,0,0,0,30,27,0,0,0,3,36,33,0,0,0,4,42,39,0,0,0,5,48,45,0,0,0,6,51,-1,0,0,0,7,0,0,8]),T.DCT_COEFF=new Int32Array([3,6,0,12,9,0,0,0,1,21,24,0,18,15,0,39,27,0,33,30,0,42,36,0,0,0,257,60,66,0,54,63,0,48,57,0,0,0,513,51,45,0,0,0,2,0,0,3,81,75,0,87,93,0,72,78,0,96,90,0,0,0,1025,69,84,0,0,0,769,0,0,258,0,0,1793,0,0,65535,0,0,1537,111,108,0,0,0,1281,105,102,0,117,114,0,99,126,0,120,123,0,156,150,0,162,159,0,144,147,0,129,135,0,138,132,0,0,0,2049,0,0,4,0,0,514,0,0,2305,153,141,0,165,171,0,180,168,0,177,174,0,183,186,0,0,0,2561,0,0,3329,0,0,6,0,0,259,0,0,5,0,0,770,0,0,2817,0,0,3073,228,225,0,201,210,0,219,213,0,234,222,0,216,231,0,207,192,0,204,189,0,198,195,0,243,261,0,273,240,0,246,237,0,249,258,0,279,276,0,252,255,0,270,282,0,264,267,0,0,0,515,0,0,260,0,0,7,0,0,1026,0,0,1282,0,0,4097,0,0,3841,0,0,3585,315,321,0,333,342,0,312,291,0,375,357,0,288,294,0,-1,369,0,285,303,0,318,363,0,297,306,0,339,309,0,336,348,0,330,300,0,372,345,0,351,366,0,327,354,0,360,324,0,381,408,0,417,420,0,390,378,0,435,438,0,384,387,0,0,0,2050,396,402,0,465,462,0,0,0,8,411,399,0,429,432,0,453,414,0,426,423,0,0,0,10,0,0,9,0,0,11,0,0,5377,0,0,1538,0,0,771,0,0,5121,0,0,1794,0,0,4353,0,0,4609,0,0,4865,444,456,0,0,0,1027,459,450,0,0,0,261,393,405,0,0,0,516,447,441,0,516,519,0,486,474,0,510,483,0,504,498,0,471,537,0,507,501,0,522,513,0,534,531,0,468,477,0,492,495,0,549,546,0,525,528,0,0,0,263,0,0,2562,0,0,2306,0,0,5633,0,0,5889,0,0,6401,0,0,6145,0,0,1283,0,0,772,0,0,13,0,0,12,0,0,14,0,0,15,0,0,517,0,0,6657,0,0,262,540,543,0,480,489,0,588,597,0,0,0,27,609,555,0,606,603,0,0,0,19,0,0,22,591,621,0,0,0,18,573,576,0,564,570,0,0,0,20,552,582,0,0,0,21,558,579,0,0,0,23,612,594,0,0,0,25,0,0,24,600,615,0,0,0,31,0,0,30,0,0,28,0,0,29,0,0,26,0,0,17,0,0,16,567,618,0,561,585,0,654,633,0,0,0,37,645,648,0,0,0,36,630,636,0,0,0,34,639,627,0,663,666,0,657,624,0,651,642,0,669,660,0,0,0,35,0,0,267,0,0,40,0,0,268,0,0,266,0,0,32,0,0,264,0,0,265,0,0,38,0,0,269,0,0,270,0,0,33,0,0,39,0,0,7937,0,0,6913,0,0,7681,0,0,4098,0,0,7425,0,0,7169,0,0,271,0,0,274,0,0,273,0,0,272,0,0,1539,0,0,2818,0,0,3586,0,0,3330,0,0,3074,0,0,3842]),T.PICTURE_TYPE={INTRA:1,PREDICTIVE:2,B:3},T.START={SEQUENCE:179,SLICE_FIRST:1,SLICE_LAST:175,PICTURE:0,EXTENSION:181,USER_DATA:178};var v=function(A){function t(t){var i;return(i=A.call(this,t)||this).onDecodeCallback=t.onVideoDecode,i.module=t.wasmModule,i.bufferSize=t.videoBufferSize||524288,i.bufferMode=t.streaming?L.MODE.EVICT:L.MODE.EXPAND,i.decodeFirstFrame=!1!==t.decodeFirstFrame,i.hasSequenceHeader=!1,i}u(t,A);var i=t.prototype;return i.initializeWasmDecoder=function(){this.module.instance?(this.instance=this.module.instance,this.functions=this.module.instance.exports,this.decoder=this.functions._mpeg1_decoder_create(this.bufferSize,this.bufferMode)):console.warn("JSMpeg: WASM module not compiled yet")},i.destroy=function(){this.decoder&&this.functions._mpeg1_decoder_destroy(this.decoder)},i.bufferGetIndex=function(){if(this.decoder)return this.functions._mpeg1_decoder_get_index(this.decoder)},i.bufferSetIndex=function(A){this.decoder&&this.functions._mpeg1_decoder_set_index(this.decoder,A)},i.bufferWrite=function(A){this.decoder||this.initializeWasmDecoder();for(var t=0,i=0;i>2)),g=this.instance.heapU8.subarray(e,e+(this.codedSize>>2));this.destination.render(s,o,g,!1)}this.advanceDecodedTime(1/this.frameRate);var I=S()-A;return this.onDecodeCallback&&this.onDecodeCallback(this,I),!0},t}(J),x=function(A){function t(i){var e;(e=A.call(this,i)||this).onDecodeCallback=i.onAudioDecode;var s=i.audioBufferSize||131072,o=i.streaming?L.MODE.EVICT:L.MODE.EXPAND;e.bits=new L(s,o),e.left=new Float32Array(1152),e.right=new Float32Array(1152),e.sampleRate=44100,e.D=new Float32Array(1024),e.D.set(t.SYNTHESIS_WINDOW,0),e.D.set(t.SYNTHESIS_WINDOW,512),e.V=[new Float32Array(1024),new Float32Array(1024)],e.U=new Int32Array(32),e.VPos=0,e.allocation=[new Array(32),new Array(32)],e.scaleFactorInfo=[new Uint8Array(32),new Uint8Array(32)],e.scaleFactor=[new Array(32),new Array(32)],e.sample=[new Array(32),new Array(32)];for(var g=0;g<2;g++)for(var I=0;I<32;I++)e.scaleFactor[g][I]=[0,0,0],e.sample[g][I]=[0,0,0];return e}u(t,A);var i=t.prototype;return i.decode=function(){var A=S(),t=this.bits.index>>3;if(t>=this.bits.byteLength)return!1;var i=this.decodeFrame(this.left,this.right);if(this.bits.index=t+i<<3,!i)return!1;this.destination&&this.destination.play(this.sampleRate,this.left,this.right),this.advanceDecodedTime(this.left.length/this.sampleRate);var e=S()-A;return this.onDecodeCallback&&this.onDecodeCallback(this,e),!0},i.getCurrentTime=function(){var A=this.destination?this.destination.enqueuedTime:0;return this.decodedTime-A},i.decodeFrame=function(A,i){var e=this.bits.read(11),s=this.bits.read(2),o=this.bits.read(2),g=!this.bits.read(1);if(e!==t.FRAME_SYNC||s!==t.VERSION.MPEG_1||o!==t.LAYER.II)return 0;var I=this.bits.read(4)-1;if(I>13)return 0;var a=this.bits.read(2),B=t.SAMPLE_RATE[a];if(3===a)return 0;s===t.VERSION.MPEG_2&&(a+=4,I+=14);var r=this.bits.read(1);this.bits.read(1);var C=this.bits.read(2),n=0;C===t.MODE.JOINT_STEREO?n=this.bits.read(2)+1<<2:(this.bits.skip(2),n=C===t.MODE.MONO?0:32),this.bits.skip(4),g&&this.bits.skip(16);var E=144e3*t.BIT_RATE[I]/(B=t.SAMPLE_RATE[a])+r|0,Q=0,h=0;if(s===t.VERSION.MPEG_2)Q=2,h=30;else{var d=C===t.MODE.MONO?0:1,c=t.QUANT_LUT_STEP_1[d][I];h=63&(Q=t.QUANT_LUT_STEP_2[c][a]),Q>>=6}n>h&&(n=h);for(var l=0;l>1),U=this.VPos%128>>1;U<1024;){for(var J=0;J<32;++J)this.U[J]+=this.D[L++]*this.V[N][U++];U+=96,L+=32}for(U=1120-U,L-=480;U<1024;){for(var T=0;T<32;++T)this.U[T]+=this.D[L++]*this.V[N][U++];U+=96,L+=32}for(var v=0===N?A:i,x=0;x<32;x++)v[R+x]=this.U[x]/2147418112}R+=32}}return this.sampleRate=B,E},i.readAllocation=function(A,i){var e=t.QUANT_LUT_STEP_3[i][A],s=t.QUANT_LUT_STEP4[15&e][this.bits.read(e>>4)];return s?t.QUANT_TAB[s-1]:0},i.readSamples=function(A,i,e){var s=this.allocation[A][i],o=this.scaleFactor[A][i][e],g=this.sample[A][i],I=0;if(s){if(63===o)o=0;else{var a=o/3|0;o=t.SCALEFACTOR_BASE[o%3]+(1<>1)>>a}var B=s.levels;s.group?(I=this.bits.read(s.bits),g[0]=I%B,I=I/B|0,g[1]=I%B,g[2]=I/B|0):(g[0]=this.bits.read(s.bits),g[1]=this.bits.read(s.bits),g[2]=this.bits.read(s.bits));var r=65536/(B+1)|0;I=((B=(B+1>>1)-1)-g[0])*r,g[0]=I*(o>>12)+(I*(4095&o)+2048>>12)>>12,I=(B-g[1])*r,g[1]=I*(o>>12)+(I*(4095&o)+2048>>12)>>12,I=(B-g[2])*r,g[2]=I*(o>>12)+(I*(4095&o)+2048>>12)>>12}else g[0]=g[1]=g[2]=0},t.MatrixTransform=function(A,t,i,e){var s,o,g,I,a,B,r,C,n,E,Q,h,d,c,l,u,w,p,D,m,f,y,R,k,b,S,G,F,M,q,N,L,U;s=A[0][t]+A[31][t],o=.500602998235*(A[0][t]-A[31][t]),g=A[1][t]+A[30][t],I=.505470959898*(A[1][t]-A[30][t]),a=A[2][t]+A[29][t],B=.515447309923*(A[2][t]-A[29][t]),r=A[3][t]+A[28][t],C=.53104259109*(A[3][t]-A[28][t]),n=A[4][t]+A[27][t],E=.553103896034*(A[4][t]-A[27][t]),Q=A[5][t]+A[26][t],h=.582934968206*(A[5][t]-A[26][t]),d=A[6][t]+A[25][t],c=.622504123036*(A[6][t]-A[25][t]),l=A[7][t]+A[24][t],u=.674808341455*(A[7][t]-A[24][t]),w=A[8][t]+A[23][t],p=.744536271002*(A[8][t]-A[23][t]),D=A[9][t]+A[22][t],m=.839349645416*(A[9][t]-A[22][t]),f=A[10][t]+A[21][t],y=.972568237862*(A[10][t]-A[21][t]),R=A[11][t]+A[20][t],k=1.16943993343*(A[11][t]-A[20][t]),b=A[12][t]+A[19][t],S=1.48416461631*(A[12][t]-A[19][t]),G=A[13][t]+A[18][t],F=2.05778100995*(A[13][t]-A[18][t]),M=A[14][t]+A[17][t],q=3.40760841847*(A[14][t]-A[17][t]),U=s+(N=A[15][t]+A[16][t]),N=.502419286188*(s-N),s=g+M,M=.52249861494*(g-M),g=a+G,G=.566944034816*(a-G),a=r+b,b=.64682178336*(r-b),r=n+R,R=.788154623451*(n-R),n=Q+f,f=1.06067768599*(Q-f),Q=d+D,D=1.72244709824*(d-D),d=l+w,w=5.10114861869*(l-w),l=U+d,d=.509795579104*(U-d),U=s+Q,s=.601344886935*(s-Q),Q=g+n,n=.899976223136*(g-n),g=a+r,r=2.56291544774*(a-r),a=l+g,l=.541196100146*(l-g),g=U+Q,Q=1.30656296488*(U-Q),U=a+g,a=.707106781187*(a-g),g=l+Q,g+=l=.707106781187*(l-Q),Q=d+r,d=.541196100146*(d-r),r=s+n,n=1.30656296488*(s-n),s=Q+r,r=.707106781187*(Q-r),Q=d+n,s+=Q+=d=.707106781187*(d-n),Q+=r,r+=d,n=N+w,N=.509795579104*(N-w),w=M+D,M=.601344886935*(M-D),D=G+f,f=.899976223136*(G-f),G=b+R,R=2.56291544774*(b-R),b=n+G,n=.541196100146*(n-G),G=w+D,D=1.30656296488*(w-D),w=b+G,G=.707106781187*(b-G),b=n+D,D=.707106781187*(n-D),n=N+R,N=.541196100146*(N-R),R=M+f,f=1.30656296488*(M-f),M=n+R,R=.707106781187*(n-R),n=N+f,w+=M+=n+=N=.707106781187*(N-f),M+=b+=D,b+=n+=R,n+=G,G+=R+=N,R+=D,D+=N,f=o+(L=10.1900081235*(A[15][t]-A[16][t])),o=.502419286188*(o-L),L=I+q,I=.52249861494*(I-q),q=B+F,F=.566944034816*(B-F),B=C+S,C=.64682178336*(C-S),S=E+k,E=.788154623451*(E-k),k=h+y,y=1.06067768599*(h-y),h=c+m,m=1.72244709824*(c-m),c=u+p,u=5.10114861869*(u-p),p=f+c,c=.509795579104*(f-c),f=L+h,L=.601344886935*(L-h),h=q+k,k=.899976223136*(q-k),q=B+S,S=2.56291544774*(B-S),B=p+q,p=.541196100146*(p-q),q=f+h,h=1.30656296488*(f-h),f=B+q,q=.707106781187*(B-q),B=p+h,h=.707106781187*(p-h),p=c+S,S=.541196100146*(c-S),c=L+k,k=1.30656296488*(L-k),L=p+c,c=.707106781187*(p-c),p=S+k,L+=p+=k=.707106781187*(S-k),p+=c,S=c+k,c=o+u,o=.509795579104*(o-u),u=I+m,I=.601344886935*(I-m),m=F+y,y=.899976223136*(F-y),F=C+E,E=2.56291544774*(C-E),C=c+F,c=.541196100146*(c-F),F=u+m,m=1.30656296488*(u-m),u=C+F,F=.707106781187*(C-F),C=c+m,m=.707106781187*(c-m),c=o+E,o=.541196100146*(o-E),E=I+y,y=1.30656296488*(I-y),I=c+E,E=.707106781187*(c-E),c=o+y,f+=u+=I+=c+=o=.707106781187*(o-y),u+=L,L+=I+=C+=m,I+=B+=h,B+=C+=c+=E,C+=p,p+=c+=F,c+=q,q+=F+=E+=o,F+=S,S+=E+=m,E+=h,h+=m+=o,m+=k,k+=o,i[e+48]=-U,i[e+49]=i[e+47]=-f,i[e+50]=i[e+46]=-w,i[e+51]=i[e+45]=-u,i[e+52]=i[e+44]=-s,i[e+53]=i[e+43]=-L,i[e+54]=i[e+42]=-M,i[e+55]=i[e+41]=-I,i[e+56]=i[e+40]=-g,i[e+57]=i[e+39]=-B,i[e+58]=i[e+38]=-b,i[e+59]=i[e+37]=-C,i[e+60]=i[e+36]=-Q,i[e+61]=i[e+35]=-p,i[e+62]=i[e+34]=-n,i[e+63]=i[e+33]=-c,i[e+32]=-a,i[e+0]=a,i[e+31]=-q,i[e+1]=q,i[e+30]=-G,i[e+2]=G,i[e+29]=-F,i[e+3]=F,i[e+28]=-r,i[e+4]=r,i[e+27]=-S,i[e+5]=S,i[e+26]=-R,i[e+6]=R,i[e+25]=-E,i[e+7]=E,i[e+24]=-l,i[e+8]=l,i[e+23]=-h,i[e+9]=h,i[e+22]=-D,i[e+10]=D,i[e+21]=-m,i[e+11]=m,i[e+20]=-d,i[e+12]=d,i[e+19]=-k,i[e+13]=k,i[e+18]=-N,i[e+14]=N,i[e+17]=-o,i[e+15]=o,i[e+16]=0},t}(J);x.FRAME_SYNC=2047,x.VERSION={MPEG_2_5:0,MPEG_2:2,MPEG_1:3},x.LAYER={III:1,II:2,I:3},x.MODE={STEREO:0,JOINT_STEREO:1,DUAL_CHANNEL:2,MONO:3},x.SAMPLE_RATE=new Uint16Array([44100,48e3,32e3,0,22050,24e3,16e3,0]),x.BIT_RATE=new Uint16Array([32,48,56,64,80,96,112,128,160,192,224,256,320,384,8,16,24,32,40,48,56,64,80,96,112,128,144,160]),x.SCALEFACTOR_BASE=new Uint32Array([33554432,26632170,21137968]),x.SYNTHESIS_WINDOW=new Float32Array([0,-.5,-.5,-.5,-.5,-.5,-.5,-1,-1,-1,-1,-1.5,-1.5,-2,-2,-2.5,-2.5,-3,-3.5,-3.5,-4,-4.5,-5,-5.5,-6.5,-7,-8,-8.5,-9.5,-10.5,-12,-13,-14.5,-15.5,-17.5,-19,-20.5,-22.5,-24.5,-26.5,-29,-31.5,-34,-36.5,-39.5,-42.5,-45.5,-48.5,-52,-55.5,-58.5,-62.5,-66,-69.5,-73.5,-77,-80.5,-84.5,-88,-91.5,-95,-98,-101,-104,106.5,109,111,112.5,113.5,114,114,113.5,112,110.5,107.5,104,100,94.5,88.5,81.5,73,63.5,53,41.5,28.5,14.5,-1,-18,-36,-55.5,-76.5,-98.5,-122,-147,-173.5,-200.5,-229.5,-259.5,-290.5,-322.5,-355.5,-389.5,-424,-459.5,-495.5,-532,-568.5,-605,-641.5,-678,-714,-749,-783.5,-817,-849,-879.5,-908.5,-935,-959.5,-981,-1000.5,-1016,-1028.5,-1037.5,-1042.5,-1043.5,-1040,-1031.5,1018.5,1e3,976,946.5,911,869.5,822,767.5,707,640,565.5,485,397,302.5,201,92.5,-22.5,-144,-272.5,-407,-547.5,-694,-846,-1003,-1165,-1331.5,-1502,-1675.5,-1852.5,-2031.5,-2212.5,-2394,-2576.5,-2758.5,-2939.5,-3118.5,-3294.5,-3467.5,-3635.5,-3798.5,-3955,-4104.5,-4245.5,-4377.5,-4499,-4609.5,-4708,-4792.5,-4863.5,-4919,-4958,-4979.5,-4983,-4967.5,-4931.5,-4875,-4796,-4694.5,-4569.5,-4420,-4246,-4046,-3820,-3567,3287,2979.5,2644,2280.5,1888,1467.5,1018.5,541,35,-499,-1061,-1650,-2266.5,-2909,-3577,-4270,-4987.5,-5727.5,-6490,-7274,-8077.5,-8899.5,-9739,-10594.5,-11464.5,-12347,-13241,-14144.5,-15056,-15973.5,-16895.5,-17820,-18744.5,-19668,-20588,-21503,-22410.5,-23308.5,-24195,-25068.5,-25926.5,-26767,-27589,-28389,-29166.5,-29919,-30644.5,-31342,-32009.5,-32645,-33247,-33814.5,-34346,-34839.5,-35295,-35710,-36084.5,-36417.5,-36707.5,-36954,-37156.5,-37315,-37428,-37496,37519,37496,37428,37315,37156.5,36954,36707.5,36417.5,36084.5,35710,35295,34839.5,34346,33814.5,33247,32645,32009.5,31342,30644.5,29919,29166.5,28389,27589,26767,25926.5,25068.5,24195,23308.5,22410.5,21503,20588,19668,18744.5,17820,16895.5,15973.5,15056,14144.5,13241,12347,11464.5,10594.5,9739,8899.5,8077.5,7274,6490,5727.5,4987.5,4270,3577,2909,2266.5,1650,1061,499,-35,-541,-1018.5,-1467.5,-1888,-2280.5,-2644,-2979.5,3287,3567,3820,4046,4246,4420,4569.5,4694.5,4796,4875,4931.5,4967.5,4983,4979.5,4958,4919,4863.5,4792.5,4708,4609.5,4499,4377.5,4245.5,4104.5,3955,3798.5,3635.5,3467.5,3294.5,3118.5,2939.5,2758.5,2576.5,2394,2212.5,2031.5,1852.5,1675.5,1502,1331.5,1165,1003,846,694,547.5,407,272.5,144,22.5,-92.5,-201,-302.5,-397,-485,-565.5,-640,-707,-767.5,-822,-869.5,-911,-946.5,-976,-1e3,1018.5,1031.5,1040,1043.5,1042.5,1037.5,1028.5,1016,1000.5,981,959.5,935,908.5,879.5,849,817,783.5,749,714,678,641.5,605,568.5,532,495.5,459.5,424,389.5,355.5,322.5,290.5,259.5,229.5,200.5,173.5,147,122,98.5,76.5,55.5,36,18,1,-14.5,-28.5,-41.5,-53,-63.5,-73,-81.5,-88.5,-94.5,-100,-104,-107.5,-110.5,-112,-113.5,-114,-114,-113.5,-112.5,-111,-109,106.5,104,101,98,95,91.5,88,84.5,80.5,77,73.5,69.5,66,62.5,58.5,55.5,52,48.5,45.5,42.5,39.5,36.5,34,31.5,29,26.5,24.5,22.5,20.5,19,17.5,15.5,14.5,13,12,10.5,9.5,8.5,8,7,6.5,5.5,5,4.5,4,3.5,3.5,3,2.5,2.5,2,2,1.5,1.5,1,1,1,1,.5,.5,.5,.5,.5,.5]),x.QUANT_LUT_STEP_1=[[0,0,1,1,1,2,2,2,2,2,2,2,2,2],[0,0,0,0,0,0,1,1,1,2,2,2,2,2]],x.QUANT_TAB={A:91,B:94,C:8,D:12},x.QUANT_LUT_STEP_2=[[x.QUANT_TAB.C,x.QUANT_TAB.C,x.QUANT_TAB.D],[x.QUANT_TAB.A,x.QUANT_TAB.A,x.QUANT_TAB.A],[x.QUANT_TAB.B,x.QUANT_TAB.A,x.QUANT_TAB.B]],x.QUANT_LUT_STEP_3=[[68,68,52,52,52,52,52,52,52,52,52,52],[67,67,67,66,66,66,66,66,66,66,66,49,49,49,49,49,49,49,49,49,49,49,49,32,32,32,32,32,32,32],[69,69,69,69,52,52,52,52,52,52,52,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36]],x.QUANT_LUT_STEP4=[[0,1,2,17],[0,1,2,3,4,5,6,17],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17],[0,1,3,5,6,7,8,9,10,11,12,13,14,15,16,17],[0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,17],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]],x.QUANT_TAB=[{levels:3,group:1,bits:5},{levels:5,group:1,bits:7},{levels:7,group:0,bits:3},{levels:9,group:1,bits:10},{levels:15,group:0,bits:4},{levels:31,group:0,bits:5},{levels:63,group:0,bits:6},{levels:127,group:0,bits:7},{levels:255,group:0,bits:8},{levels:511,group:0,bits:9},{levels:1023,group:0,bits:10},{levels:2047,group:0,bits:11},{levels:4095,group:0,bits:12},{levels:8191,group:0,bits:13},{levels:16383,group:0,bits:14},{levels:32767,group:0,bits:15},{levels:65535,group:0,bits:16}];var Y=function(A){function t(t){var i;return(i=A.call(this,t)||this).onDecodeCallback=t.onAudioDecode,i.module=t.wasmModule,i.bufferSize=t.audioBufferSize||131072,i.bufferMode=t.streaming?L.MODE.EVICT:L.MODE.EXPAND,i.sampleRate=0,i}u(t,A);var i=t.prototype;return i.initializeWasmDecoder=function(){this.module.instance?(this.instance=this.module.instance,this.functions=this.module.instance.exports,this.decoder=this.functions._mp2_decoder_create(this.bufferSize,this.bufferMode)):console.warn("JSMpeg: WASM module not compiled yet")},i.destroy=function(){this.decoder&&this.functions._mp2_decoder_destroy(this.decoder)},i.bufferGetIndex=function(){if(this.decoder)return this.functions._mp2_decoder_get_index(this.decoder)},i.bufferSetIndex=function(A){this.decoder&&this.functions._mp2_decoder_set_index(this.decoder,A)},i.bufferWrite=function(A){this.decoder||this.initializeWasmDecoder();for(var t=0,i=0;i>4<<4;this.gl.viewport(0,0,i,this.height)},t.createTexture=function(A,t){var i=this.gl,e=i.createTexture();return i.bindTexture(i.TEXTURE_2D,e),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),i.uniform1i(i.getUniformLocation(this.program,t),A),e},t.createProgram=function(A,t){var i=this.gl,e=i.createProgram();return i.attachShader(e,this.compileShader(i.VERTEX_SHADER,A)),i.attachShader(e,this.compileShader(i.FRAGMENT_SHADER,t)),i.linkProgram(e),i.useProgram(e),e},t.compileShader=function(A,t){var i=this.gl,e=i.createShader(A);if(i.shaderSource(e,t),i.compileShader(e),!i.getShaderParameter(e,i.COMPILE_STATUS))throw new Error(i.getShaderInfoLog(e));return e},t.allowsClampedTextureData=function(){var A=this.gl,t=A.createTexture();return A.bindTexture(A.TEXTURE_2D,t),A.texImage2D(A.TEXTURE_2D,0,A.LUMINANCE,1,1,0,A.LUMINANCE,A.UNSIGNED_BYTE,new Uint8ClampedArray([0])),0===A.getError()},t.renderProgress=function(A){var t=this.gl;t.useProgram(this.loadingProgram);var i=t.getUniformLocation(this.loadingProgram,"progress");t.uniform1f(i,A),t.drawArrays(t.TRIANGLE_STRIP,0,4)},t.render=function(A,t,i,e){if(this.enabled){var s=this.gl,o=this.width+15>>4<<4,g=this.height,I=o>>1,a=g>>1;e&&this.shouldCreateUnclampedViews&&(A=new Uint8Array(A.buffer),t=new Uint8Array(t.buffer),i=new Uint8Array(i.buffer)),s.useProgram(this.program),this.updateTexture(s.TEXTURE0,this.textureY,o,g,A),this.updateTexture(s.TEXTURE1,this.textureCb,I,a,t),this.updateTexture(s.TEXTURE2,this.textureCr,I,a,i),s.drawArrays(s.TRIANGLE_STRIP,0,4)}},t.updateTexture=function(A,t,i,e,s){var o=this.gl;o.activeTexture(A),o.bindTexture(o.TEXTURE_2D,t),this.hasTextureData[A]?o.texSubImage2D(o.TEXTURE_2D,0,0,0,i,e,o.LUMINANCE,o.UNSIGNED_BYTE,s):(this.hasTextureData[A]=!0,o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,i,e,0,o.LUMINANCE,o.UNSIGNED_BYTE,s))},t.deleteTexture=function(A,t){var i=this.gl;i.activeTexture(A),i.bindTexture(i.TEXTURE_2D,null),i.deleteTexture(t)},A.IsSupported=function(){try{if(!window.WebGLRenderingContext)return!1;var A=document.createElement("canvas");return!(!A.getContext("webgl")&&!A.getContext("experimental-webgl"))}catch(A){return!1}},A}();H.SHADER={FRAGMENT_YCRCB_TO_RGBA:["precision mediump float;","uniform sampler2D textureY;","uniform sampler2D textureCb;","uniform sampler2D textureCr;","varying vec2 texCoord;","mat4 rec601 = mat4(","1.16438, 0.00000, 1.59603, -0.87079,","1.16438, -0.39176, -0.81297, 0.52959,","1.16438, 2.01723, 0.00000, -1.08139,","0, 0, 0, 1",");","void main() {","float y = texture2D(textureY, texCoord).r;","float cb = texture2D(textureCb, texCoord).r;","float cr = texture2D(textureCr, texCoord).r;","gl_FragColor = vec4(y, cr, cb, 1.0) * rec601;","}"].join("\n"),FRAGMENT_LOADING:["precision mediump float;","uniform float progress;","varying vec2 texCoord;","void main() {","float c = ceil(progress-(1.0-texCoord.y));","gl_FragColor = vec4(c,c,c,1);","}"].join("\n"),VERTEX_IDENTITY:["attribute vec2 vertex;","varying vec2 texCoord;","void main() {","texCoord = vertex;","gl_Position = vec4((vertex * 2.0 - 1.0) * vec2(1, -1), 0.0, 1.0);","}"].join("\n")};var P=function(){function A(A){A.canvas?(this.canvas=A.canvas,this.ownsCanvasElement=!1):(this.canvas=document.createElement("canvas"),this.ownsCanvasElement=!0),this.width=this.canvas.width,this.height=this.canvas.height,this.enabled=!0,this.context=this.canvas.getContext("2d")}var t=A.prototype;return t.destroy=function(){this.ownsCanvasElement&&this.canvas.remove()},t.resize=function(A,t){this.width=0|A,this.height=0|t,this.canvas.width=this.width,this.canvas.height=this.height,this.imageData=this.context.getImageData(0,0,this.width,this.height),G(this.imageData.data,255)},t.renderProgress=function(A){var t=this.canvas.width,i=this.canvas.height,e=this.context;e.fillStyle="#222",e.fillRect(0,0,t,i),e.fillStyle="#fff",e.fillRect(0,i-i*A,t,i*A)},t.render=function(A,t,i){this.YCbCrToRGBA(A,t,i,this.imageData.data),this.context.putImageData(this.imageData,0,0)},t.YCbCrToRGBA=function(A,t,i,e){if(this.enabled)for(var s,o,g,I,a,B=this.width+15>>4<<4,r=B>>1,C=0,n=B,E=B+(B-this.width),Q=0,h=r-(this.width>>1),d=0,c=4*this.width,l=4*this.width,u=this.width>>1,w=this.height>>1,p=0;p>8)-179,I=(88*o>>8)-44+(183*s>>8)-91,a=o+(198*o>>8)-227;var m=A[C++],f=A[C++];e[d]=m+g,e[d+1]=m-I,e[d+2]=m+a,e[d+4]=f+g,e[d+5]=f-I,e[d+6]=f+a,d+=8;var y=A[n++],R=A[n++];e[c]=y+g,e[c+1]=y-I,e[c+2]=y+a,e[c+4]=R+g,e[c+5]=R-I,e[c+6]=R+a,c+=8}C+=E,n+=E,d+=l,c+=l,Q+=h}},A}(),O=function(){function A(){this.context=A.CachedContext=A.CachedContext||new(window.AudioContext||window.webkitAudioContext),this.gain=this.context.createGain(),this.destination=this.gain,this.gain.connect(this.context.destination),this.context._connections=(this.context._connections||0)+1,this.startTime=0,this.buffer=null,this.wallclockStartTime=0,this.volume=1,this.enabled=!0,this.unlocked=!A.NeedsUnlocking(),Object.defineProperty(this,"enqueuedTime",{get:this.getEnqueuedTime})}var t=A.prototype;return t.destroy=function(){this.gain.disconnect(),this.context._connections--,0===this.context._connections&&(this.context.close(),A.CachedContext=null)},t.play=function(A,t,i){if(this.enabled){if(!this.unlocked){var e=S();return this.wallclockStartTimethis.memory.buffer.byteLength){var i=this.brk-this.memory.buffer.byteLength,e=Math.ceil(i/this.pageSize);this.memory.grow(e),this.createHeapViews()}return t},t.c_abort=function(A){console.warn("JSMPeg: WASM abort",arguments)},t.c_assertFail=function(A){console.warn("JSMPeg: WASM ___assert_fail",arguments)},t.readDylinkSection=function(A){var t=new Uint8Array(A),i=0,e=function(){for(var A=0,e=1;;){var s=t[i++];if(A+=(127&s)*e,e*=128,!(128&s))return A}},s=function(A){for(var e=0;ethis.maxAudioLag&&(this.audioOut.resetEnqueuedTime(),this.audioOut.enabled=!1),A=this.audio.decode()}while(A);this.audioOut.enabled=!0}},t.updateForStaticFile=function(){var A=!1,t=0;if(this.audio&&this.audio.canPlay){for(;!A&&this.audio.decodedTime-this.audio.currentTime<.25;)A=!this.audio.decode();this.video&&this.video.currentTime0&&(e>2*s&&(this.startTime+=e),A=!this.video.decode()),t=this.demuxer.currentTime-i}this.source.resume(t),A&&this.source.completed?this.loop?this.seek(0):(this.stop(),this.options.onEnded&&this.options.onEnded(this)):A&&this.options.onStalled&&this.options.onStalled(this)},A}(),W={Player:X,VideoElement:b,BitBuffer:L,Source:{Ajax:M,AjaxProgressive:q,WebSocket:N,Fetch:function(){function A(A,t){this.url=A,this.destination=null,this.request=null,this.streaming=!0,this.completed=!1,this.established=!1,this.progress=0,this.aborted=!1,this.onEstablishedCallback=t.onSourceEstablished,this.onCompletedCallback=t.onSourceCompleted,t.hookOnEstablished&&(this.hookOnEstablished=t.hookOnEstablished)}var t=A.prototype;return t.connect=function(A){this.destination=A},t.start=function(){var A=this,t={method:"GET",headers:new Headers,cache:"default"};self.fetch(this.url,t).then((function(t){if(t.ok&&t.status>=200&&t.status<=299)return A.progress=1,A.established=!0,A.pump(t.body.getReader())})).catch((function(A){throw A}))},t.pump=function(A){var t=this;return A.read().then((function(i){if(!i.done)return t.aborted?A.cancel():(t.destination&&t.destination.write(i.value.buffer),t.pump(A));t.completed=!0})).catch((function(A){throw A}))},t.resume=function(){},t.abort=function(){this.aborted=!0},A}()},Demuxer:{TS:U},Decoder:{Base:J,MPEG1Video:T,MPEG1VideoWASM:v,MP2Audio:x,MP2AudioWASM:Y},Renderer:{WebGL:H,Canvas2D:P},AudioOutput:{WebAudio:O},WASMModule:K,Now:S,CreateVideoElements:function(){for(var A=document.querySelectorAll(".jsmpeg"),t=0;tthis.q=A))}resume(){this.q?.(),this.Z=this.q=void 0}} +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const V=A=>!e(A)&&"function"==typeof A.then,z=1073741823;const $=A(class extends t{constructor(){super(...arguments),this._$Cwt=z,this._$Cbt=[],this._$CK=new Z(this),this._$CX=new j}render(...A){return A.find((A=>!V(A)))??i}update(A,t){const e=this._$Cbt;let s=e.length;this._$Cbt=t;const o=this._$CK,g=this._$CX;this.isConnected||this.disconnected();for(let A=0;Athis._$Cwt);A++){const i=t[A];if(!V(i))return this._$Cwt=A,i;A{for(;g.get();)await g.get();const t=o.deref();if(void 0!==t){const e=t._$Cbt.indexOf(i);e>-1&&e{let i=!1;const e=new W.VideoElement(this,A,{canvas:this._jsmpegCanvasElement},{pauseWhenHidden:!1,autoplay:!1,protocols:[],audio:!1,videoBufferSize:4194304,preserveDrawingBuffer:!0,...this.cameraConfig?.jsmpeg?.options,reconnectInterval:0,onVideoDecode:()=>{!i&&this._jsmpegCanvasElement&&(i=!0,t(e))},onPlay:()=>g(this),onPause:()=>I(this)})})),this._jsmpegCanvasElement&&a(this,this._jsmpegCanvasElement,{player:this,capabilities:{supportsPause:!0},technology:["jsmpeg"]})}_resetPlayer(){if(this._refreshPlayerTimer.stop(),this._jsmpegVideoPlayer){try{this._jsmpegVideoPlayer.destroy()}catch(A){}this._jsmpegVideoPlayer=void 0}this._jsmpegCanvasElement&&(this._jsmpegCanvasElement.remove(),this._jsmpegCanvasElement=void 0)}connectedCallback(){super.connectedCallback(),this.isConnected&&this.requestUpdate()}disconnectedCallback(){this.isConnected||this._resetPlayer(),super.disconnectedCallback()}async _refreshPlayer(){if(!this.hass)return;this._resetPlayer(),this._jsmpegCanvasElement=document.createElement("canvas"),this._jsmpegCanvasElement.className="media";const A=this.cameraEndpoints?.jsmpeg;if(!A)return B(this,r("error.live_camera_no_endpoint"),{context:this.cameraConfig});const t=await c(this,this.hass,A,86400);t&&(await this._createJSMPEGPlayer(t),this._refreshPlayerTimer.start(82800,(()=>this.requestUpdate())))}render(){return C`${$((async()=>(await this._refreshPlayer(),this._jsmpegVideoPlayer&&this._jsmpegCanvasElement?C`${this._jsmpegCanvasElement}`:B(this,r("error.jsmpeg_no_player"))))(),n({cardWideConfig:this.cardWideConfig}))}`}static get styles(){return E(":host {\n width: 100%;\n height: 100%;\n display: flex;\n}\n\ncanvas {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: var(--frigate-card-media-layout-fit, contain);\n object-position: var(--frigate-card-media-layout-position-x, 50%) var(--frigate-card-media-layout-position-y, 50%);\n object-view-box: inset(var(--frigate-card-media-layout-view-box-top, 0%) var(--frigate-card-media-layout-view-box-right, 0%) var(--frigate-card-media-layout-view-box-bottom, 0%) var(--frigate-card-media-layout-view-box-left, 0%));\n}")}};Q([h({attribute:!1})],AA.prototype,"cameraConfig",void 0),Q([h({attribute:!1})],AA.prototype,"cameraEndpoints",void 0),Q([h({attribute:!1})],AA.prototype,"cardWideConfig",void 0),AA=Q([d("frigate-card-live-jsmpeg")],AA);export{AA as FrigateCardLiveJSMPEG}; diff --git a/config/www/community/frigate-hass-card/jsmpeg-fd152ef0.js.gz b/config/www/community/frigate-hass-card/jsmpeg-fd152ef0.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..04e53e2f98970291cac630466e4121c03fcaf4ba GIT binary patch literal 42824 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 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/lang-ca-449daa4a.js b/config/www/community/frigate-hass-card/lang-ca-449daa4a.js new file mode 100644 index 00000000..f31ba121 --- /dev/null +++ b/config/www/community/frigate-hass-card/lang-ca-449daa4a.js @@ -0,0 +1 @@ +var e={frigate_card:"Tarjeta Frigate",frigate_card_description:"Una targeta Lovelace per a utilitzar amb Frigate",live:"En directe",no_media:"No hi ha suport per mostrar",recordings:"Enregistraments",version:"Versió"},a={cameras:{camera_entity:"Entitat de càmera",capabilities:{capabilities:{clips:"","favorite-events":"","favorite-recordings":"",live:"",menu:"",ptz:"",recordings:"",seek:"",snapshots:"",substream:""},disable:"",disable_except:"",editor_label:""},cast:{dashboard:{dashboard_path:"Ruta del tauler de control",view_path:"Ruta de la visualització"},editor_label:"Opcions d'emissió",method:"Mètode d'emissió",methods:{dashboard:"Tauler de control",standard:"Estàndard"}},dependencies:{all_cameras:"Mostra els esdeveniments de totes les càmeres amb aquesta càmera",cameras:"Mostra esdeveniments per a càmeres específiques amb aquesta càmera",editor_label:"Opcions de dependències"},dimensions:{aspect_ratio:"Relació d'aspecte estàtica",editor_label:"Dimensions de la càmera",layout:{editor_label:"Maquetació de la càmera",fit:"Ajust de la maquetació",fits:{contain:"Els mitjans multimèdia estan continguts/en bústia",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",y:"Percentatge d'emplaçament vertical"},view_box:{bottom:"",editor_label:"",left:"",right:"",top:""},zoom:""}},engines:{editor_label:"Opcions del motor de càmera"},frigate:{camera_name:"Nom de la càmera de Frigate (detecció automàtica de l'entitat)",client_id:"Identificador de client de Frigate (per a > 1 servidor de Frigate)",editor_label:"Opcions de Frigate",labels:"Etiquetes de Frigate/filtres d'objectes",url:"URL del servidor de Frigate",zones:"Zones de Frigate"},go2rtc:{editor_label:"Opcions de go2rtc",modes:{editor_label:"Modes de go2rtc",mjpeg:"",mp4:"",mse:"",webrtc:""},stream:"nom del flux de go2rtc"},icon:"Icona d'aquesta càmera (detecció automàtica des de l'entitat)",id:"Identificador únic per a aquesta càmera en aquesta targeta",image:{editor_label:"Opcions d'imatge",refresh_seconds:"Nombre de segons després dels quals actualitzar la imatge en directe (0=mai)",url:"URL de la imatge que cal utilitzar en lloc de la instantània de l'entitat de la càmera"},live_provider:"Proveïdor de visualització en directe per a aquesta càmera",live_provider_options:{editor_label:"Opcions de proveïdor en directe"},live_providers:{auto:"Automàtic",go2rtc:"",ha:"Transmissió de vídeo de Home Assistant (és a dir, HLS, LL-HLS, WebRTC mitjançant HA)",image:"Imatges de Home Assistant",jsmpeg:"","webrtc-card":"Targeta WebRTC (és a dir, la targeta WebRTC d'AlexxIT)"},motioneye:{editor_label:"Opcions de MotionEye",images:{directory_pattern:"Patró del directori d'imatges",file_pattern:"Patró de fitxer d'imatges"},movies:{directory_pattern:"Patró del directori de pel·lícules",file_pattern:"Patró de fitxer de pel·lícules"},url:"URL de la interfície d'usuari de MotionEye"},proxy:{dynamic:"",editor_label:"",media:{auto:"",editor_label:"",false:"",true:""},ssl_ciphers:{auto:"",default:"",editor_label:"",insecure:"",intermediate:"",modern:""},ssl_verification:{auto:"",editor_label:"",false:"",true:""}},reolink:{editor_label:"",media_resolution:{editor_label:"",high:"",low:""},url:""},title:"Títol d'aquesta càmera (detecció automàtica de l'entitat)",triggers:{editor_label:"Opcions d'activació",entities:"Activador d'altres entitats",events:{clips:"Esdeveniments amb nous clips",editor_label:"Activar esdeveniments",events:"Tots els esdeveniments",snapshots:"Esdeveniments amb noves instantànies"},motion:"Activa la detecció automàtica del sensor de moviment",occupancy:"Activa la detecció automàtica del sensor d'ocupació"},webrtc_card:{editor_label:"Opcions de la targeta WebRTC",entity:"Entitat de càmera de targeta WebRTC (no una càmera de Frigate)",url:"URL de la càmera de la targeta WebRTC"}},common:{controls:{builtin:"Controls de vídeo integrats",filter:{editor_label:"Filtre multimèdia",mode:"Mode de filtre",modes:{left:"Filtre multimèdia en un calaix a l'esquerra",none:"Sense filtre multimèdia",right:"Filtre multimèdia en un calaix a la dreta"}},next_previous:{editor_label:"Següent i anterior",size:"Mida del control següent i anterior en píxels",style:"Estil de control següent i anterior",styles:{chevrons:"Xebrons",icons:"Icones",none:"Cap",thumbnails:"Miniatures"}},thumbnails:{editor_label:"Miniatures",events_media_type:"Si voleu mostrar miniatures d'esdeveniments de clips o instantànies",events_media_types:{clips:"Miniatures de clips",snapshots:"Miniatures d'instantànies"},media_type:"Si voleu mostrar miniatures d'esdeveniments o enregistraments",media_types:{events:"Esdeveniments",recordings:"Enregistraments"},mode:"Mode de miniatures",modes:{above:"Miniatures a dalt",below:"Miniatures a baix",left:"Miniatures en un calaix a l'esquerra",none:"Sense miniatures",right:"Miniatures en un calaix a la dreta"},show_details:"Mostra els detalls amb miniatures",show_download_control:"Mostra el control de descàrrega a les miniatures",show_favorite_control:"Mostra el control preferit a les miniatures",show_timeline_control:"Mostra el control de la línia de temps a les miniatures",size:"Mida de les miniatures en píxels"},timeline:{editor_label:"Mini cronologia",mode:"Mode",modes:{above:"A dalt",below:"Baix",none:"Cap"},pan_mode:"Mode d'escombratge predeterminat",pan_modes:{pan:"Escombratge",seek:"Cerca d'escombratge en tots els mitjans","seek-in-camera":"Cerca d'escombratge només a la càmera seleccionada","seek-in-media":"Cerca d'escombratge només dins de l'element multimèdia seleccionat"}}},display:{editor_label:"Visualització",grid_columns:"Nombre exacte de columnes de la graella",grid_max_columns:"Nombre màxim de columnes de la graella",grid_selected_width_factor:"Augmenta l'amplada del suport multimèdia seleccionat en aquest factor",mode:"Mode"},image:{entity:"",entity_parameters:"",mode:"Mode de visualització d'imatges",modes:{camera:"Instantània de l'entitat de la càmera de Home Assistant",entity:"",screensaver:"Logotip de Frigate incrustat",url:"Imatge arbitrària especificada per URL"},refresh_seconds:"Nombre de segons després dels quals cal actualitzar (0=mai)",url:"URL d'imatge estàtica per a la visualització d'imatges"},media_action_conditions:{all:"Totes les oportunitats",hidden:"A l'amagat del navegador/pestanya",microphone_mute:"Si el micròfon està en silenci",microphone_unmute:"Si el micròfon no està en silenci",never:"Mai",selected:"A la selecció",unselected:"En desselecció",visible:"En la visualització del navegador/pestanya"},timeline:{clustering_threshold:"El recompte d'esdeveniments en què s'agrupen (0=sense agrupació)",events_media_type:"Els esdeveniments multimèdia que mostra la línia de temps",events_media_types:{all:"Tots els tipus de mitjans",clips:"Clips",snapshots:"Imatges instantànies"},show_recordings:"Mostra les gravacions",style:"Estil de cronologia",styles:{ribbon:"Esdeveniments en una sola cinta",stack:"Esdeveniments apilats i agrupats"},window_seconds:"La durada predeterminada de la visualització de la línia de temps en segons"}},dimensions:{aspect_ratio:"Relació d'aspecte predeterminada (p. ex., '16:9')",aspect_ratio_mode:"Mode de relació d'aspecte",aspect_ratio_modes:{dynamic:"La relació d'aspecte s'ajusta al suport multimèdia",static:"Relació d'aspecte estàtica",unconstrained:"Relació d'aspecte sense restriccions"},height:""},live:{auto_mute:"Silencia automàticament les càmeres en directe",auto_pause:"Posa en pausa automàticament les càmeres en directe",auto_play:"Reprodueix automàticament les càmeres en directe",auto_unmute:"Activa automàticament el so de les càmeres en directe",controls:{editor_label:"Controls del directe",ptz:{editor_label:"PTZ",hide_home:"Amaga el control de casa",hide_pan_tilt:"Amaga el control d'escombratge i inclinació",hide_zoom:"Amaga el control de zoom",mode:"Mode",modes:{off:"Desactivat",on:"Activat"},orientation:"Orientació",orientations:{horizontal:"Horitzontal",vertical:"Vertical"},position:"Posició",positions:{"bottom-left":"Inferior esquerra","bottom-right":"Inferior dreta","top-left":"Superior left","top-right":"Superior dreta"}}},draggable:"La vista de càmeres en directe es pot arrossegar/lliscar",lazy_load:"Les càmeres en directe es carreguen amb mandra",lazy_unload:"Les càmeres en directe es descarreguen amb mandra",microphone:{always_connected:"Mantingueu sempre el micròfon connectat",disconnect_seconds:"Segons després dels quals desconnectar el micròfon (0=mai)",editor_label:"Micròfon",enabled:"El micròfon està activat",mute_after_microphone_mute_seconds:"Segons després de silenciar el micròfon per silenciar l'àudio entrant"},preload:"Carregueu prèviament la visualització en directe en segon pla",show_image_during_load:"Mostra la imatge fixa mentre es carrega la reproducció en directe",transition_effect:"Efecte de transició de càmera en directe",zoomable:"Les càmeres en directe es poden ampliar/escombrar"},media_viewer:{auto_mute:"Silencia automàticament els continguts multimèdia",auto_pause:"Atura automàticament el contingut multimèdia",auto_play:"Reprodueix automàticament els continguts multimèdia",auto_unmute:"Activa automàticament el so del contingut multimèdia",controls:{editor_label:"Controls del visualitzador de contingut multimèdia"},draggable:"El visualitzador de mitjans es pot arrossegar/lliscar",lazy_load:"El contingut multimèdia del visualitzador multimèdia es carreguen amb mandra al carrusel",snapshot_click_plays_clip:"Si feu clic a una instantània, es reprodueix un clip relacionat",transition_effect:"Efecte de transició del visualitzador multimèdia",transition_effects:{none:"Sense transició",slide:"Transició de diapositives"},zoomable:"El visualitzador de mitjans es pot ampliar/escombrar"},menu:{alignment:"Alineació del menú",alignments:{bottom:"Alineat a la part inferior",left:"Alineat a l'esquerra",right:"Alineat a la dreta",top:"Alineat a la part superior"},button_size:"Mida del botó del menú en píxels",buttons:{alignment:"Alineació de botons",alignments:{matching:"Coincideix amb l'alineació del menú",opposing:"Oposat a l'alineació del menú"},camera_ui:"Interfície d'usuari de la càmera",cameras:"Càmeres",clips:"Clips",display_mode:"Mode de visualització",download:"Descarregar",enabled:"Botó habilitat",expand:"Expandir",frigate:"Menú de Frigate / Vista per defecte",fullscreen:"Pantalla completa",icon:"Icona",image:"Imatge",live:"En directe",media_player:"Envia al reproductor multimèdia",microphone:"Micròfon",mute:"Silenciar / Activar el so",permanent:"",play:"Reproduir / Pausa",priority:"Prioritat",ptz_controls:"",ptz_home:"",recordings:"Enregistraments",screenshot:"Captura de pantalla",snapshots:"Imatges instantànies",substreams:"Subfluxos",timeline:"Cronologia",type:"Tipus de botó",types:{momentary:"Momentani",toggle:"Commuta"}},position:"Posició del menú",positions:{bottom:"Situat a la part inferior",left:"Situat a l'esquerra",right:"Situat a la dreta",top:"Situat a la part superior"},style:"Estil de menú",styles:{hidden:"Menú ocult",hover:"Menú passant el cursor","hover-card":"Menú passant el cursor (a tota la targeta)",none:"Sense menú",outside:"Menú exterior",overlay:"Menú superposat"}},overrides:{info:"Aquesta configuració de targeta ha especificat manualment substitucions configurades que poden anul·lar els valors que es mostren a l'editor visual; consulteu l'editor de codi per veure/modificar aquestes substitucions."},performance:{features:{animated_progress_indicator:"Indicador animat del progrés",editor_label:"Opcions de característiques",max_simultaneous_engine_requests:"",media_chunk_size:"Mida del fragment multimèdia"},style:{border_radius:"Corbes",box_shadow:"Ombres",editor_label:"Opcions d'estil"},warning:"Aquesta targeta està en mode de perfil baix, de manera que els valors predeterminats han canviat per optimitzar el rendiment"},profiles:{casting:"",editor_label:"","low-performance":"",scrubbing:""},status_bar:{height:"",items:{enabled:"",engine:"",live_provider:"",priority:"",resolution:"",technology:"",title:""},popup_seconds:"",position:"",positions:{bottom:"",top:""},style:"",styles:{hover:"","hover-card":"",none:"",outside:"",overlay:"",popup:""}},view:{camera_select:"Visualitza les càmeres seleccionades recentment",dark_mode:"Mode fosc",dark_modes:{auto:"Automàtic",off:"Desactivat",on:"Activat"},default:"Vista per defecte",default_cycle_camera:"Passeu per les càmeres quan s'actualitzi la vista predeterminada",default_reset:{after_interaction:"Restableix la vista predeterminada després de la interacció de l'usuari",editor_label:"",entities:"",every_seconds:"Actualitza la vista predeterminada cada X segons (0=mai)",interaction_mode:"",interaction_modes:{active:"",all:"",inactive:""}},interaction_seconds:"Segons després de l'acció de l'usuari per continuar interactuant (0=mai)",keyboard_shortcuts:{editor_label:"",enabled:"",ptz_down:"",ptz_home:"",ptz_left:"",ptz_right:"",ptz_up:"",ptz_zoom_in:"",ptz_zoom_out:""},triggers:{actions:{editor_label:"Activar accions",interaction_mode:"Com gestionar les accions quan la targeta té interacció humana",interaction_modes:{active:"Activa només accions quan la targeta té interacció humana",all:"Activa accions independentment de la interacció humana",inactive:"Només activa accions quan la targeta no té interacció humana"},trigger:"Activar l'acció",triggers:{default:"Canvia o actualitza la vista predeterminada",live:"Canvia o actualitza la visualització en directe",media:"Canvieu a la visualització de mitjans rellevants per als nous mitjans",none:"Sense acció"},untrigger:"Desactiva l'acció",untriggers:{default:"Canvia a la vista/càmera predeterminada",none:"Sense acció"}},editor_label:"Comportament quan s'activa una càmera",filter_selected_camera:"Activa només a la càmera seleccionada",show_trigger_status:"Mostra la vora intermitent quan s'activa",untrigger_seconds:"Segons després del canvi d'estat inactiu a desactivat"},views:{clip:"Clip més recent",clips:"Galeria de clips",current:"Vista actual",image:"Imatge estàtica",live:"Visualització en directe",recording:"Enregistrament més recent",recordings:"Galeria d'enregistraments",snapshot:"Instantània més recent",snapshots:"Galeria d'instantànies",timeline:"Vista cronològica"}}},i={grid:"Mostra el visualitzador multimèdia per a cada càmera d'una quadrícula",single:"Mostra un visualitzador multimèdia únic"},t={add_new_camera:"Afegeix una càmera nova",button:"Botó",camera:"Càmera",cameras:"Càmeres",cameras_secondary:"Quines càmeres renderitzar en aquesta targeta",delete:"Suprimeix",dimensions:"Dimensions",dimensions_secondary:"Opcions de dimensions i forma",image:"Imatge",image_secondary:"Opcions de visualització d'imatges estàtiques",live:"En directe",live_secondary:"Opcions de visualització de la càmera en directe",media_gallery:"Galeria multimèdia",media_gallery_secondary:"Opcions de la galeria multimèdia",media_viewer:"Visor multimèdia",media_viewer_secondary:"Visor de suports estàtics (clips, instantànies o enregistraments)",menu:"Menú",menu_secondary:"Opcions d'aspecte del menú",move_down:"Moure cap avall",move_up:"Moure cap amunt",overrides:"Les substitucions estan actives",overrides_secondary:"S'han detectat substitucions de configuració dinàmica",performance:"Rendiment",performance_secondary:"Opcions de rendiment de la targeta",profiles:"",profiles_secondary:"",status_bar:"",status_bar_secondary:"",timeline:"Cronologia",timeline_secondary:"Opcions de la cronologia d'esdeveniments",upgrade:"Upgrade",upgrade_available:"Hi ha disponible una actualització automàtica de la configuració de la targeta",view:"Vista",view_secondary:"Què ha de mostrar la targeta i com mostrar-la"},r={ptz:{down:"Avall",home:"Casa",left:"Esquerra",right:"Dreta",up:"Amunt",zoom_in:"Ampliar",zoom_out:"Reduir"}},s={awaiting_live:"S'està esperant que es carregui la transmissió en directe ...",awaiting_media:"",camera_initialization:"",camera_initialization_reolink:"",could_not_render_elements:"No s'han pogut representar els elements de la imatge",could_not_resolve:"No s'ha pogut resoldre l'URL multimèdia",diagnostics:"Diagnòstic de targetes. Reviseu la informació confidencial abans de compartir-la",download_no_media:"No hi ha contingut multimèdia per descarregar",download_sign_failed:"No s'ha pogut signar l'URL multimèdia per baixar-la",duplicate_camera_id:"Duplica l'identificador de la càmera Frigate per a la següent càmera, utilitza el paràmetre 'id' per identificar les càmeres de manera única",empty_response:"S'ha rebut una resposta buida de Home Assistant per a la sol·licitud",failed_response:"No s'ha pogut rebre la resposta de Home Assistant per a la sol·licitud",failed_retain:"No s'ha pogut retenir l'esdeveniment",failed_sign:"No s'ha pogut signar l'URL de Home Assistant",image_load_error:"No s'ha pogut carregar la imatge",invalid_configuration:"Configuració no vàlida",invalid_configuration_no_hint:"No hi ha cap indicació d'ubicació disponible (tipus dolent o faltant?)",invalid_configuration_override:"",invalid_elements_config:"La configuració dels elements de la imatge no és vàlida",invalid_response:"S'ha rebut una resposta no vàlida de Home Assistant per a la sol·licitud",jsmpeg_no_player:"No s'ha pogut iniciar el reproductor JSMPEG",live_camera_no_endpoint:"No s'ha pogut obtenir el punt final de la càmera per a aquest proveïdor en directe (configuració incompleta?)",live_camera_not_found:"No s'ha trobat la 'camera_entity' (entitat de la càmera) configurada",live_camera_unavailable:"Càmera no disponible",no_camera_engine:"No s'ha pogut determinar el motor adequat per a la càmera",no_camera_entity:"No s'ha pogut trobar l'entitat de la càmera",no_camera_entity_for_triggers:"Es requereix una entitat de càmera per detectar automàticament els activadors",no_camera_id:"No s'ha pogut determinar l'identificador de la càmera per a la següent càmera, és possible que hagis d'establir el paràmetre 'id' manualment",no_camera_name:"No s'ha pogut determinar el nom de la càmera Frigate per a la càmera (o una de les seves dependències), especifiqueu 'camera_entity' o 'camera_name'",no_dashboard_or_view:"Tant els paràmetres 'dashboard_path' com 'view_path' són necessaris per al mètode d'emissió 'dashboard'",no_live_camera:"El paràmetre 'camera_entity' s'ha de configurar i validar per a aquest proveïdor en directe",no_supported_camera:"",no_supported_cameras:"",reconnecting:"Reconnectant",too_many_automations:"Hi ha massa trucades d'automatització imbricades, comproveu la vostra configuració per veure si hi ha bucles",troubleshooting:"Comproveu la resolució de problemes",unknown:"Error desconegut",upgrade_available:"Hi ha disponible una actualització automàtica de la configuració de la targeta; visiteu l'editor de targetes visuals",webrtc_card_reported_error:"La targeta WebRTC ha informat d'un error",webrtc_card_waiting:"S'està esperant que es carregui la targeta WebRTC ..."},n={camera:"Càmera",duration:"Durada",in_progress:"En procés",score:"Puntuació",seek:"Buscar",start:"Començar",tag:"Etiqueta",what:"Què",where:"On"},o={assign:"",assigning:"",modifiers:{alt:"",ctrl:"",meta:"",shift:""},unassign:""},l={all:"Tots",camera:"Càmera",favorite:"Preferit",media_type:"Tipus de suport multimèdia",media_types:{clips:"Clips",recordings:"Enregistraments",snapshots:"Imatges instantànies"},not_favorite:"No preferit",select_camera:"Selecciona la càmera...",select_favorite:"Selecciona el preferit...",select_media_type:"Selecciona el tipus de suport multimèdia...",select_tag:"Selecciona l'etiqueta...",select_what:"Selecciona el què...",select_when:"Selecciona quan...",select_where:"Selecciona on...",tag:"Etiqueta",what:"Què",when:"Quan",whens:{custom:"Personalitzat",past_month:"El mes passat",past_week:"La setmana passada",today:"Avui",yesterday:"Ahir"},where:"On"},d={unseekable:"Busqueu temps no trobat als mitjans multimèdia"},c={camera:"Càmera",duration:"Durada",events:"Esdeveniments",in_progress:"En procés",seek:"Buscar",start:"Començar"},m={download:"Descarregar mitjans multimèdia",no_thumbnail:"No hi ha cap miniatura disponible",retain_indefinitely:"Els mitjans multimèdia es conservaran indefinidament",timeline:"Veure els mitjans multimèdia a la línia de temps"},u={select_date:"Escolliu la data"},p={common:e,config:a,display_modes:i,editor:t,elements:r,error:s,event:n,key_assigner:o,media_filter:l,media_viewer:d,recording:c,thumbnail:m,timeline:u};export{e as common,a as config,p as default,i as display_modes,t as editor,r as elements,s as error,n as event,o as key_assigner,l as media_filter,d as media_viewer,c as recording,m as thumbnail,u as timeline}; diff --git a/config/www/community/frigate-hass-card/lang-ca-449daa4a.js.gz b/config/www/community/frigate-hass-card/lang-ca-449daa4a.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..2ed7928c469c87cad9c37258316181824a87642a GIT binary patch literal 6773 zcmV-*8j9r~iwFoFf?;O@|7>AyXDwr4Ei^PaWMN@6VJ>QO0KHsKkK8zRzvoj3x|9vb zb~XqCqz6vW)8pNlz`f(xp2=b_0!w05ajX(G6jj~rMt_&NW%e)#Fnb6v$SL*3@_vt` zME$99dk;C-Es5kK`S||7$2tg;$d~sUqqf4zybz|mNZ$+dgR~;~z5AMGadTeEwlJ!( zO4k?ZceO~YFk5tgtq-yig-jZ05|MOPRmy&(3B-Oqz^c?iUZk(;q*O*0_)_b9FH0pZ z(m(2Cr;?pW+OE;YGN8R~tq~^8sJAwys<$nM8@W|z*vs0sX?BpN}|jw-!yi)7E|L*0eb(_Vn_Qm8uo%ib46uT;3M4 zvG_umv)bg9Sj&og7oxQn_oZleYmMU^9`i=n-9`Ggqr)m?MF-bagkfMo*VgEY@Tla? zxLZ<*#X zKX#I4iV0x?Yy`;Bb`L?ejVzA8Y!sj@!#ja1LJ9BV_%m;WkC~k&Vm857JrsX<{X!~nr#m8zasO*9*n05e0UJdWcKJisTHmrC`f@8+ zgHB5*V!T&`^S!b^2%31`RaWhfKNC}9p`zwPC5rEC`$E>q`uJOG6>v==!(eRS_;w|4 z8#;EWZj;7n`UZ4~3dm>N7kX`!!D77F!9uEP0)wE_$)UgAH`TcRLq-!^+~0zE?wDg5 z-6|Gm6V#*`b$TOBL6Zx+bwu1$;`pB|c9I>q{v!}jF{m?LX`48#ie_ULTkG44`?a=K z?-!UjtK^26n}p_$AFOV8sUI~DATE&gR@GpDQ}k7l=%j{N$UOu}-b=)q{y^^T$7hc> zFR_y+rL?kO`Vbwh*O49fUr8rOpVCQIie7R>-1<$4&l~Dg`sulC1kY{w9~!x3&CvWK|7lsc-^ev)!8r%%U-QXS$)@UV zBM1+fDxmGYq5lP>!dU2>KC^auZu0{>{#L8P%eg6B;@$A6XFs(UTX_;SD{3ZwfY#g4 ziR|*0v|mlaA4In{kb-m=TZhKBF~`3!?Y7B}q;W{17S?MX=3xg6%kb7i^5pMd?uB|f zI^L)!EjAξ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 XHi6{U#ozrO1%DBe4pIOB>%KQU literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/lang-fr-674e5de5.js b/config/www/community/frigate-hass-card/lang-fr-674e5de5.js new file mode 100644 index 00000000..b8f2fa9e --- /dev/null +++ b/config/www/community/frigate-hass-card/lang-fr-674e5de5.js @@ -0,0 +1 @@ +var e={frigate_card:"Carte Frigate",frigate_card_description:"Une carte Lovelace à utiliser avec Frigate",live:"En direct",no_media:"Aucun média à afficher",recordings:"Enregistrements",version:"Version"},a={cameras:{camera_entity:"Entité caméra",capabilities:{capabilities:{clips:"Clips","favorite-events":"Événements favoris","favorite-recordings":"Enregistrements favoris",live:"Vue en direct",menu:"Menu",ptz:"PTZ",recordings:"Enregistrements",seek:"Chercher",snapshots:"Snapshots",substream:"flux secondaire"},disable:"Désactiver",disable_except:"Désactive sauf",editor_label:"Capacités de la caméra"},cast:{dashboard:{dashboard_path:"Chemin du tableau de bord",view_path:"Voir le chemin"},editor_label:"Cast les options",method:"Cast les méthodes",methods:{dashboard:"Dashboard",standard:"Standard"}},dependencies:{all_cameras:"Afficher les événements pour toutes les caméras avec cette caméra",cameras:"Afficher les événements pour des caméras spécifiques avec cette caméra",editor_label:"Options de dépendance"},dimensions:{aspect_ratio:"ratio d'aspect",editor_label:"Dimensions de la caméra",layout:{editor_label:"Disposition de la caméra",fit:"Ajustement de la disposition",fits:{contain:"Le média est contenu",cover:"Le média s'étend proportionnellement pour couvrir la carte",fill:"Le média est étiré pour remplir la carte"},pan:{x:"",y:""},position:{editor_label:"",x:"Pourcentage de positionnement horizontal",y:"Pourcentage de positionnement vertical"},view_box:{bottom:"",editor_label:"",left:"",right:"",top:""},zoom:""}},engines:{editor_label:"Options du moteur de caméra"},frigate:{camera_name:"Nom de la caméra de la frégate (détecté automatiquement par l'entité)",client_id:"ID client Frigate (pour plus 1 d'un serveur Frigate)",editor_label:"Options de Frigate",labels:"Étiquettes de Frigate/filtres d'objets",url:"URL du serveur Frigate",zones:"Zones Frigate"},go2rtc:{editor_label:"Options go2rtc",modes:{editor_label:"Modes go2rtc",mjpeg:"Motion JPEG (MJPEG)",mp4:"MPEG-4 (MP4)",mse:"Extensions de sources multimédias (MSE)",webrtc:"Web Real-Time Communication (WebRTC)"},stream:"nom du flux go2rtc"},icon:"Icône pour cette caméra (auto-détectée par l'entité)",id:"ID unique pour cette caméra dans cette carte",image:{editor_label:"Options d'images",refresh_seconds:"Nombre de secondes après lesquelles actualiser l'image en direct (0=jamais)",url:"URL de l'image à utiliser à la place de l'instantané de l'entité de la caméra"},live_provider:"Fournisseur de visualisation en direct pour cette caméra",live_provider_options:{editor_label:"Options du fournisseur en direct"},live_providers:{auto:"Automatique",go2rtc:"go2rtc",ha:"Flux vidéo Home Assistant (c'est-à-dire HLS, LL-HLS, WebRTC via HA)",image:"Images d'Home Assistant",jsmpeg:"JSMpeg","webrtc-card":"Carte WebRTC (c.-⁠à-⁠d. La cartte WebRTC d'AlexxIT)"},motioneye:{editor_label:"Options de MotionEye",images:{directory_pattern:"Modèle de répertoire d'images",file_pattern:"Modèle de fichier images"},movies:{directory_pattern:"Modèle de répertoire de films",file_pattern:"Modèle de fichier de films"},url:"URL de l’interface MotionEye"},proxy:{dynamic:"",editor_label:"",media:{auto:"",editor_label:"",false:"",true:""},ssl_ciphers:{auto:"",default:"",editor_label:"",insecure:"",intermediate:"",modern:""},ssl_verification:{auto:"",editor_label:"",false:"",true:""}},reolink:{editor_label:"",media_resolution:{editor_label:"",high:"",low:""},url:""},title:"Titre de cette caméra (détection automatique à partir de l'entité)",triggers:{editor_label:"Modèle de répertoire des films",entities:"Déclencheur à partir d'autres entités",events:{clips:"Événements avec de nouveaux clips",editor_label:"Événements déclencheurs",events:"Tous les événements",snapshots:"Événements avec de nouveaux instantanés"},motion:"Déclenchement par détection automatique du capteur de mouvement",occupancy:"Déclenchement par détection automatique du capteur de présence"},webrtc_card:{editor_label:"Options de la carte WebRTC",entity:"Entité de caméra de carte WebRTC (pas une caméra de Frigate)",url:"URL de la caméra de la carte WebRTC"}},common:{controls:{builtin:"Commandes vidéo intégrées",filter:{editor_label:"Filtre multimédia",mode:"Mode de filtre",modes:{left:"Filtre média dans un menu à gauche",none:"Pas de filtre média",right:"Filtre média dans un menu à droite"}},next_previous:{editor_label:"Suivant et précédent",size:"Taille des contrôles suivant et précédent en pixels",style:"Style de contrôle suivant et précédent",styles:{chevrons:"Chevrons",icons:"Icônes",none:"Aucun",thumbnails:"Miniatures"}},thumbnails:{editor_label:"Miniatures",events_media_type:"S'il faut afficher des vignettes de clips ou des instantanés",events_media_types:{clips:"Miniatures de clips",snapshots:"Miniatures d'instantanés"},media_type:"Afficher ou non les vignettes des événements ou des enregistrements",media_types:{events:"Événements",recordings:"Enregistrements"},mode:"Mode vignettes",modes:{above:"Miniatures ci-dessus",below:"Miniatures ci-dessous",left:"Miniatures dans un menu à gauche",none:"Aucune vignette",right:"Miniatures dans un menu à droite"},show_details:"Afficher les détails avec des vignettes",show_download_control:"Afficher le contrôle de téléchargement sur les vignettes",show_favorite_control:"Afficher le contrôle favori sur les vignettes",show_timeline_control:"Afficher le contrôle de la chronologie sur les vignettes",size:"Taille des vignettes en pixels"},timeline:{editor_label:"Mini-chronologie",mode:"Mode",modes:{above:"Au-dessus",below:"En dessous",none:"Aucun"},pan_mode:"Mode panoramique par défaut",pan_modes:{pan:"Pan",seek:"Pan cherche parmi toutes les caméras","seek-in-camera":"Pan ne cherche que parmi la caméra sélectionnée","seek-in-media":"Pan ne cherche que parmi les médias sélectionnés"}}},display:{editor_label:"Affichage",grid_columns:"Nombre de colonnes de la grille",grid_max_columns:"Nombre maximum de colonnes de la grille",grid_selected_width_factor:"Augmenter la largeur du média sélectionnée par ce facteur",mode:"Mode"},image:{entity:"",entity_parameters:"",mode:"Mode d'affichage des images",modes:{camera:"Instantané de la caméra Home Assistant de l'entité caméra",entity:"",screensaver:"Logo Frigate intégré",url:"Image arbitraire spécifiée par URL"},refresh_seconds:"Nombre de secondes après lesquelles actualiser (0=jamais)",url:"URL d'image statique pour l'affichage de l'image"},media_action_conditions:{all:"Toutes les opportunités",hidden:"Sur le navigateur/onglet masqué",microphone_mute:"",microphone_unmute:"",never:"Jamais",selected:"Sur sélection",unselected:"Lors de la désélection",visible:"Sur la visibilité du navigateur/onglet"},timeline:{clustering_threshold:"Le nombre d'événements pour lesquels ils sont regroupés (0 = pas de clustering)",events_media_type:"Les médias affichés par la chronologie",events_media_types:{all:"Tous types de médias",clips:"Extraits",snapshots:"Instantanés"},show_recordings:"Afficher les enregistrements",style:"Style de chronologie",styles:{ribbon:"Événements sur un seul ruban",stack:"Événements empilés et groupés"},window_seconds:"La durée par défaut de la vue chronologique en secondes"}},dimensions:{aspect_ratio:"Format d'image par défaut (par exemple '16:9')",aspect_ratio_mode:"Mode rapport hauteur/largeur",aspect_ratio_modes:{dynamic:"Le rapport hauteur/largeur s'adapte au média",static:"Rapport hauteur/largeur statique",unconstrained:"Rapport hauteur/largeur sans contrainte"},height:""},live:{auto_mute:"Couper automatiquement le son des caméras en direct",auto_pause:"Mettre automatiquement en pause les caméras en direct",auto_play:"Lire automatiquement les caméras en direct",auto_unmute:"Activer automatiquement le son des caméras en direct",controls:{editor_label:"Contrôles en direct",ptz:{editor_label:"PTZ",hide_home:"Cacher le bouton d'origine",hide_pan_tilt:"Caher les boutons panoramiques/inclinaison",hide_zoom:"Cahger le bouton de zoom",mode:"Mode",modes:{off:"Eteint",on:"Allumé"},orientation:"",orientations:{horizontal:"",vertical:""},position:"",positions:{"bottom-left":"Bas à gauche","bottom-right":"Bas à droite","top-left":"Haut à gauche","top-right":"haut à droite"}}},draggable:"La vue des caméras en direct peut être glissée/glissée",lazy_load:"Les caméras en direct sont chargeés en différé",lazy_unload:"Les caméras en direct sont déchargés en différé",microphone:{always_connected:"Gardez toujours le microphone connecté",disconnect_seconds:"Secondes après quoi déconnecter le microphone (0=jamais)",editor_label:"Microphone",enabled:"Microphone activé",mute_after_microphone_mute_seconds:""},preload:"Précharger la vue en direct en arrière-plan",show_image_during_load:"Afficher une image fixe pendant le chargement du flux en direct",transition_effect:"Effet de transition de caméra en direct",zoomable:"Les caméras en direct peuvent être zoomées/panoramiques"},media_viewer:{auto_mute:"Couper automatiquement le son des médias",auto_pause:"Mettre automatiquement en pause les médias",auto_play:"Lire automatiquement les médias",auto_unmute:"Activer automatiquement le son des médias",controls:{editor_label:"Commandes de la visionneuse multimédia"},draggable:"La visionneuse multimédia peut être glissée/glissée",lazy_load:"Les médias Media Viewer sont chargés paresseusement dans le carrousel",snapshot_click_plays_clip:"Cliquer sur un instantané lit un clip associé",transition_effect:"Effet de transition de la visionneuse multimédia",transition_effects:{none:"Pas de transition",slide:"Transition de diapositive"},zoomable:"La visionneuse multimédia peut être zoomée/panoramique"},menu:{alignment:"Alignement des menus",alignments:{bottom:"Aligné vers le bas",left:"Aligné à gauche",right:"Aligné à droite",top:"Aligné vers le haut"},button_size:"Taille du bouton de menu en pixels",buttons:{alignment:"Alignement des boutons",alignments:{matching:"Faire correspondre l'alignement du menu",opposing:"S'opposer à l'alignement des menus"},camera_ui:"Interface utilisateur de la caméra",cameras:"Appareils photo",clips:"Extraits",display_mode:"",download:"Télécharger",enabled:"Bouton activé",expand:"Développer",frigate:"Menu Frégate / Vue par défaut",fullscreen:"Plein écran",icon:"Icône",image:"Image",live:"En direct",media_player:"Envoyer au lecteur multimédia",microphone:"Microphone",mute:"Désactiver/Réactiver le son",permanent:"",play:"Jouer / Pause",priority:"Priorité",ptz_controls:"",ptz_home:"",recordings:"Enregistrements",screenshot:"Capture d'écran",snapshots:"Instantanés",substreams:"Sous-flux",timeline:"Chronologie",type:"Type de bouton",types:{momentary:"Momentané",toggle:"Basculer"}},position:"Emplacement des menus",positions:{bottom:"Positionné en bas",left:"Positionné à gauche",right:"Positionné à droite",top:"Positionné en haut"},style:"Style de menu",styles:{hidden:"Menu caché",hover:"Menu survolé","hover-card":"Menu survolé (à l'échelle de la carte)",none:"Pas de menu",outside:"Menu extérieur",overlay:"Menu superposé"}},overrides:{info:"Cette configuration de carte comporte des remplacements spécifiés manuellement et configurés qui peuvent remplacer les valeurs affichées dans l'éditeur visuel. Veuillez consulter l'éditeur de code pour afficher/modifier ces remplacements."},performance:{features:{animated_progress_indicator:"Indicateur de progression animé",editor_label:"Options de fonctionnalités",max_simultaneous_engine_requests:"",media_chunk_size:"Taille du morceau de média"},style:{border_radius:"Courbes",box_shadow:"Ombres",editor_label:"Options de style"},warning:"Cette carte est en mode profil bas, les paramètres par défaut ont donc été modifiés pour optimiser les performances."},profiles:{casting:"",editor_label:"Configuration des profils","low-performance":"Basse performance",scrubbing:"Balayage vidéo"},status_bar:{height:"",items:{enabled:"",engine:"",live_provider:"",priority:"",resolution:"",technology:"",title:""},popup_seconds:"",position:"",positions:{bottom:"",top:""},style:"",styles:{hover:"","hover-card":"",none:"",outside:"",overlay:"",popup:""}},view:{camera_select:"Afficher les caméras nouvellement sélectionnées",dark_mode:"Mode sombre",dark_modes:{auto:"Automatique",off:"Désactivé",on:"Activé"},default:"Vue par défaut",default_cycle_camera:"Parcourez les caméras lorsque la vue par défaut est mise à jour",default_reset:{after_interaction:"",editor_label:"",entities:"",every_seconds:"Actualiser la vue par défaut toutes les X secondes (0=jamais)",interaction_mode:"",interaction_modes:{active:"",all:"",inactive:""}},interaction_seconds:"Secondes après l'action de l'utilisateur pour maintenir l'interaction (0=jamais)",keyboard_shortcuts:{editor_label:"",enabled:"",ptz_down:"",ptz_home:"",ptz_left:"",ptz_right:"",ptz_up:"",ptz_zoom_in:"",ptz_zoom_out:""},triggers:{actions:{editor_label:"Actions de déclenchement",interaction_mode:"Comment gérer les actions lorsque la carte comporte une interaction humaine ?",interaction_modes:{active:"Ne déclencher des actions que lorsque la carte a une interaction humaine",all:"Déclencher des actions sans interaction humaine",inactive:"Ne déclencher des actions que lorsque la carte n'a pas d'interaction humaine"},trigger:"Actions de déclenchement",triggers:{default:"Changement ou mise à jour de la vue par défaut",live:"Change ou met a jour la vue en direct",media:"Changement d'affichage pour les nouveaux médias",none:"Pas d'acction"},untrigger:"Action de désactivation",untriggers:{default:"Passage à la vue/caméra par défaut",none:"Pas d'action"}},editor_label:"Comportement en cas de déclenchement d'une caméra",filter_selected_camera:"Déclenchement uniquement sur la caméra sélectionnée",show_trigger_status:"Afficher la bordure clignotante lors du déclenchement",untrigger_seconds:"Quelques secondes après le changement d'état inactif pour débloquer"},views:{clip:"Clip le plus récent",clips:"Galerie de clips",current:"Vue actuelle",image:"Image statique",live:"Vue en direct",recording:"Enregistrement le plus récent",recordings:"Galerie d'enregistrements",snapshot:"Instantané le plus récent",snapshots:"Galerie d'instantanés",timeline:"Vue chronologique"}}},t={grid:"Afficher la visionneuse de médias pour chaque caméra d'une grille",single:"Affi une seule visionneuse"},i={add_new_camera:"Ajouter une nouvelle caméra",button:"Bouton",camera:"Caméra",cameras:"Caméras",cameras_secondary:"Quelles caméras afficher sur cette carte",delete:"Supprimer",dimensions:"Dimensions",dimensions_secondary:"Options de dimensions et de forme",image:"Image",image_secondary:"Options d'affichage d'image statique",live:"En direct",live_secondary:"Options d'affichage de la caméra en direct",media_gallery:"Galerie des médias",media_gallery_secondary:"Options de la galerie multimédia",media_viewer:"Visionneuse de médias",media_viewer_secondary:"Visionneuse de médias statiques (clips, instantanés ou enregistrements)",menu:"Menu",menu_secondary:"Options d'apparence et de convivialité du menu",move_down:"Descendre",move_up:"Déplacer vers le haut",overrides:"Les remplacements sont actifs",overrides_secondary:"Remplacements de configuration dynamique détectés",performance:"Performance",performance_secondary:"Options de performances de la carte",profiles:"Profils de confi",profiles_secondary:"",status_bar:"",status_bar_secondary:"",timeline:"Chronologie",timeline_secondary:"Options de chronologie des événements",upgrade:"Mise à niveau",upgrade_available:"Une mise à niveau automatique de la configuration de la carte est disponible",view:"Voir",view_secondary:"Ce que la carte doit montrer et comment la montrer"},n={ptz:{down:"Bas",home:"Origine",left:"Gauche",right:"Droite",up:"Haut",zoom_in:"Zoomer",zoom_out:"Dézoomer"}},r={awaiting_live:"En attente du flux en direct...",awaiting_media:"",camera_initialization:"",camera_initialization_reolink:"",could_not_render_elements:"Impossible de restituer les éléments de l'image",could_not_resolve:"Impossible de résoudre l'URL du média",diagnostics:"Diagnostic de la carte. Veuillez enlever les informations confidentielles avant de les partager",download_no_media:"Aucun média à télécharger",download_sign_failed:"Impossible de signer l'URL du média à télécharger",duplicate_camera_id:"ID de caméra Frigate en double pour la caméra suivante, utilisez le paramètre « ID » pour identifier de manière unique les caméras",empty_response:"Réponse vide reçue de Home Assistant pour la demande",failed_response:"Échec de la réponse de Home Assistant à la demande",failed_retain:"Impossible de conserver l'événement",failed_sign:"Impossible de signer l'URL de Home Assistant",image_load_error:"L'image n'a pas pu être chargée",invalid_configuration:"Configuration invalide",invalid_configuration_no_hint:"Aucune indication de localisation disponible (type incorrect ou manquant ?)",invalid_configuration_override:"",invalid_elements_config:"Configuration des éléments d'image invalide",invalid_response:"Réponse non valide reçue de Home Assistant pour la demande",jsmpeg_no_player:"Impossible de démarrer le lecteur JSMPEG",live_camera_no_endpoint:"Impossible d'obtenir le point de terminaison de la caméra pour ce fournisseur en direct (configuration incomplète ?)",live_camera_not_found:"L'entité caméra configurée n'a pas été trouvée",live_camera_unavailable:"Caméra indisponible",no_camera_engine:"Impossible de déterminer le moteur approprié pour la caméra",no_camera_entity:"Impossible de trouver l'entité de caméra",no_camera_entity_for_triggers:"Une entité caméra est requise pour détecter automatiquement les déclencheurs",no_camera_id:"Impossible de déterminer l'identifiant de la caméra suivante. Il faudra peut-être définir le paramètre « ID » manuellement",no_camera_name:"Impossible de déterminer le nom de la caméra Frigate pour la caméra (ou l'une de ses dépendances). Veuillez spécifier soit « camera_entity » soit « camera_name ».",no_dashboard_or_view:"",no_live_camera:"Le paramètre camera_entity doit être défini et valide pour ce fournisseur en direct",no_supported_camera:"",no_supported_cameras:"",reconnecting:"Reconnexion",too_many_automations:"Trop d'appels d'automatisation imbriqués, veuillez vérifier votre configuration pour les boucles",troubleshooting:"Vérifier le dépannage",unknown:"Erreur inconnue",upgrade_available:"Une mise à niveau automatisée de la configuration de la carte est disponible, veuillez visiter l'éditeur visuel de la carte",webrtc_card_reported_error:"La carte WebRTC a signalé une erreur",webrtc_card_waiting:"En attente du chargement de la carte WebRTC..."},s={camera:"Caméra",duration:"Durée",in_progress:"En cours",score:"Score",seek:"Chercher",start:"Commencer",tag:"Étiqueter",what:"Quoi",where:"Où"},o={assign:"",assigning:"",modifiers:{alt:"",ctrl:"",meta:"",shift:""},unassign:""},l={all:"Tous",camera:"Caméra",favorite:"Préféré",media_type:"Type de support",media_types:{clips:"Extraits",recordings:"Enregistrements",snapshots:"Instantanés"},not_favorite:"Pas favori",select_camera:"Sélectionnez une caméra...",select_favorite:"Sélectionnez un favori...",select_media_type:"Sélectionnez le type de média...",select_tag:"Sélectionnez la balise...",select_what:"Sélectionnez quoi...",select_when:"Sélectionnez quand...",select_where:"Sélectionnez où...",tag:"Étiqueter",what:"Quoi",when:"Quand",whens:{custom:"",past_month:"Mois passé",past_week:"La semaine dernière",today:"Aujourd'hui",yesterday:"Hier"},where:"Où"},d={unseekable:"Temps non trouvé dans les médias"},c={camera:"Caméra",duration:"Durée",events:"Événements",in_progress:"En cours",seek:"Chercher",start:"Commencer"},u={download:"Télécharger des médias",no_thumbnail:"Aucune vignette disponible",retain_indefinitely:"Les médias seront conservés indéfiniment",timeline:"Voir les médias dans la chronologie"},m={select_date:"Choisir une date"},p={common:e,config:a,display_modes:t,editor:i,elements:n,error:r,event:s,key_assigner:o,media_filter:l,media_viewer:d,recording:c,thumbnail:u,timeline:m};export{e as common,a as config,p as default,t as display_modes,i as editor,n as elements,r as error,s as event,o as key_assigner,l as media_filter,d as media_viewer,c as recording,u as thumbnail,m as timeline}; diff --git a/config/www/community/frigate-hass-card/lang-fr-674e5de5.js.gz b/config/www/community/frigate-hass-card/lang-fr-674e5de5.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..eedf1d89af52f44526791ba15c09b068507cfc62 GIT binary patch literal 6938 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 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/lang-fr-ea16daba.js b/config/www/community/frigate-hass-card/lang-fr-ea16daba.js new file mode 100644 index 00000000..9fa4983c --- /dev/null +++ b/config/www/community/frigate-hass-card/lang-fr-ea16daba.js @@ -0,0 +1 @@ +var e={frigate_card:"Carte Frigate",frigate_card_description:"Une carte Lovelace à utiliser avec Frigate",live:"En direct",no_media:"Aucun média à afficher",recordings:"Enregistrements",version:"Version"},a={cameras:{camera_entity:"Entité caméra",capabilities:{capabilities:{clips:"Clips","favorite-events":"Événements favoris","favorite-recordings":"Enregistrements favoris",live:"Vue en direct",menu:"Menu",ptz:"PTZ",recordings:"Enregistrements",seek:"Recherche",snapshots:"Snapshots",substream:"flux secondaire"},disable:"Désactiver",disable_except:"Désactive sauf",editor_label:"Capacités de la caméra"},cast:{dashboard:{dashboard_path:"Chemin du tableau de bord",view_path:"Voir le chemin"},editor_label:"Options de diffusion",method:"Méthodes de diffusion",methods:{dashboard:"Dashboard",standard:"Standard"}},dependencies:{all_cameras:"Afficher les événements pour toutes les caméras avec cette caméra",cameras:"Afficher les événements pour des caméras spécifiques avec cette caméra",editor_label:"Options de dépendance"},dimensions:{aspect_ratio:"Rapport d'aspect d'image",editor_label:"Dimensions de la caméra",layout:{editor_label:"Disposition de la caméra",fit:"Ajustement de la disposition",fits:{contain:"Le média est contenu",cover:"Le média s'étend proportionnellement pour couvrir la carte",fill:"Le média est étiré pour remplir la carte"},pan:{x:"Pourcentage de panoramique horizontal",y:"Pourcentage de panoramique vertical"},position:{editor_label:"Position de la couverture",x:"Pourcentage de positionnement horizontal",y:"Pourcentage de positionnement vertical"},view_box:{bottom:"",editor_label:"",left:"",right:"",top:""},zoom:"Facteur de zoom"}},engines:{editor_label:"Options du moteur de caméra"},frigate:{camera_name:"Nom de la caméra Frigate (détecté automatiquement par l'entité)",client_id:"ID client Frigate (Si plus d'un serveur Frigate)",editor_label:"Options de Frigate",labels:"Étiquettes de Frigate/filtres d'objets",url:"URL du serveur Frigate",zones:"Zones Frigate"},go2rtc:{editor_label:"Options go2rtc",modes:{editor_label:"Modes go2rtc",mjpeg:"Motion JPEG (MJPEG)",mp4:"MPEG-4 (MP4)",mse:"Extensions de sources multimédias (MSE)",webrtc:"Web Real-Time Communication (WebRTC)"},stream:"nom du flux go2rtc"},icon:"Icône pour cette caméra (auto-détectée par l'entité)",id:"ID unique pour cette caméra dans cette carte",image:{editor_label:"Options d'images",refresh_seconds:"Nombre de secondes après lesquelles actualiser l'image en direct (0=jamais)",url:"URL de l'image à utiliser à la place de l'instantané de l'entité de la caméra"},live_provider:"Fournisseur de visualisation en direct pour cette caméra",live_provider_options:{editor_label:"Options du fournisseur en direct"},live_providers:{auto:"Automatique",go2rtc:"go2rtc",ha:"Flux vidéo Home Assistant (c'est-à-dire HLS, LL-HLS, WebRTC via HA)",image:"Images d'Home Assistant",jsmpeg:"JSMpeg","webrtc-card":"Carte WebRTC (c.-⁠à-⁠d. La carte WebRTC d'AlexxIT)"},motioneye:{editor_label:"Options de MotionEye",images:{directory_pattern:"Modèle de répertoire d'images",file_pattern:"Modèle de fichier images"},movies:{directory_pattern:"Modèle de répertoire de films",file_pattern:"Modèle de fichier de films"},url:"URL de l’interface MotionEye"},proxy:{dynamic:"",editor_label:"",media:{auto:"",editor_label:"",false:"",true:""},ssl_ciphers:{auto:"",default:"",editor_label:"",insecure:"",intermediate:"",modern:""},ssl_verification:{auto:"",editor_label:"",false:"",true:""}},reolink:{editor_label:"Option Reolink",media_resolution:{editor_label:"Désolution du média",high:"Haute résolution",low:"Basse résolution"},url:"URL de l'interface utilisateur Reolink"},title:"Titre de cette caméra (détection automatique à partir de l'entité)",triggers:{editor_label:"Modèle de répertoire des films",entities:"Déclencheur à partir d'autres entités",events:{clips:"Événements avec de nouveaux clips",editor_label:"Événements déclencheurs",events:"Tous les événements",snapshots:"Événements avec de nouveaux instantanés"},motion:"Déclenchement par détection automatique du capteur de mouvement",occupancy:"Déclenchement par détection automatique du capteur de présence"},webrtc_card:{editor_label:"Options de la carte WebRTC",entity:"Entité de caméra de carte WebRTC (pas une caméra de Frigate)",url:"URL de la caméra de la carte WebRTC"}},common:{controls:{builtin:"Commandes vidéo intégrées",filter:{editor_label:"Filtre multimédia",mode:"Mode de filtre",modes:{left:"Filtre média dans un menu à gauche",none:"Pas de filtre média",right:"Filtre média dans un menu à droite"}},next_previous:{editor_label:"Suivant et précédent",size:"Taille des contrôles suivant et précédent en pixels",style:"Style de contrôle suivant et précédent",styles:{chevrons:"Chevrons",icons:"Icônes",none:"Aucun",thumbnails:"Vignettes"}},thumbnails:{editor_label:"Vignettes",events_media_type:"S'il faut afficher des vignettes de clips ou des instantanés",events_media_types:{clips:"Vignettes de clips",snapshots:"Vignettes d'instantanés"},media_type:"Afficher ou non les vignettes des événements ou des enregistrements",media_types:{events:"Événements",recordings:"Enregistrements"},mode:"Mode vignettes",modes:{above:"Vignettes en haut",below:"Vignettes en bas",left:"Vignettes dans un menu à gauche",none:"Aucune vignette",right:"Vignettes dans un menu à droite"},show_details:"Afficher les détails avec des vignettes",show_download_control:"Afficher le contrôle de téléchargement sur les vignettes",show_favorite_control:"Afficher le contrôle favori sur les vignettes",show_timeline_control:"Afficher le contrôle de la chronologie sur les vignettes",size:"Taille des vignettes en pixels"},timeline:{editor_label:"Mini-chronologie",mode:"Mode",modes:{above:"Au-dessus",below:"En dessous",none:"Aucun"},pan_mode:"Mode panoramique par défaut",pan_modes:{pan:"Pan",seek:"Pan cherche parmi toutes les caméras","seek-in-camera":"Pan ne cherche que parmi la caméra sélectionnée","seek-in-media":"Pan ne cherche que parmi les médias sélectionnés"}}},display:{editor_label:"Affichage",grid_columns:"Nombre de colonnes de la grille",grid_max_columns:"Nombre maximum de colonnes de la grille",grid_selected_width_factor:"Augmenter la largeur du média sélectionnée par ce facteur",mode:"Mode"},image:{entity:"Entité à utiliser avec le mode entité",entity_parameters:"Paramètres de requête ajoutés aux URL des images basées sur l'entité (par exemple, width=1920&height=1080)",mode:"Mode d'affichage des images",modes:{camera:"Instantané de la caméra Home Assistant de l'entité caméra",entity:"Entité avec l'attribut entity_picture",screensaver:"Logo Frigate intégré",url:"Image arbitraire spécifiée par URL"},refresh_seconds:"Nombre de secondes après lesquelles actualiser (0=jamais)",url:"URL d'image statique pour l'affichage de l'image"},media_action_conditions:{all:"Toutes les opportunités",hidden:"Sur le navigateur/onglet masqué",microphone_mute:"Sourdine du microphone activée",microphone_unmute:"Sourdine du microphone désactivée",never:"Jamais",selected:"Sur sélection",unselected:"Lors de la désélection",visible:"Sur la visibilité du navigateur/onglet"},timeline:{clustering_threshold:"Le nombre d'événements pour lesquels ils sont regroupés (0 = pas de clustering)",events_media_type:"Les médias affichés par la chronologie",events_media_types:{all:"Tous types de médias",clips:"Extraits",snapshots:"Instantanés"},show_recordings:"Afficher les enregistrements",style:"Style de chronologie",styles:{ribbon:"Événements sur un seul ruban",stack:"Événements empilés et groupés"},window_seconds:"La durée par défaut de la vue chronologique en secondes"}},dimensions:{aspect_ratio:"Format d'image par défaut (par exemple '16:9')",aspect_ratio_mode:"Mode rapport hauteur/largeur",aspect_ratio_modes:{dynamic:"Le rapport hauteur/largeur s'adapte au média",static:"Rapport hauteur/largeur statique",unconstrained:"Rapport hauteur/largeur sans contrainte"},height:"Hauteur de la carte en unités CSS (par exemple, '500px')"},live:{auto_mute:"Couper automatiquement le son des caméras en direct",auto_pause:"Mettre automatiquement en pause les caméras en direct",auto_play:"Lire automatiquement les caméras en direct",auto_unmute:"Activer automatiquement le son des caméras en direct",controls:{editor_label:"Contrôles en direct",ptz:{editor_label:"PTZ",hide_home:"Cacher le bouton position d'origine",hide_pan_tilt:"Cacher les boutons panoramiques/inclinaison",hide_zoom:"Cacher le bouton de zoom",mode:"Mode",modes:{off:"Eteint",on:"Allumé"},orientation:"",orientations:{horizontal:"Horizontale",vertical:"Verticale"},position:"",positions:{"bottom-left":"En bas à gauche","bottom-right":"En bas à droite","top-left":"En haut à gauche","top-right":"En haut à droite"}}},draggable:"La vue des caméras en direct peut être déplacée/glissée",lazy_load:"Les caméras en direct sont chargeés en différé",lazy_unload:"Les caméras en direct sont déchargés en différé",microphone:{always_connected:"Toujours garder le microphone connecté",disconnect_seconds:"Secondes après quoi déconnecter le microphone (0=jamais)",editor_label:"Microphone",enabled:"Microphone activé",mute_after_microphone_mute_seconds:"Secondes après la mise en sourdine du microphone pour couper l'audio entrant"},preload:"Précharger la vue en direct en arrière-plan",show_image_during_load:"Afficher une image fixe pendant le chargement du flux en direct",transition_effect:"Effet de transition de caméra en direct",zoomable:"Les caméras en direct peuvent être zoomées/panoramiques"},media_viewer:{auto_mute:"Couper automatiquement le son des médias",auto_pause:"Mettre automatiquement en pause les médias",auto_play:"Lire automatiquement les médias",auto_unmute:"Activer automatiquement le son des médias",controls:{editor_label:"Commandes de la visionneuse multimédia"},draggable:"La visionneuse multimédia peut être déplacée/glissée",lazy_load:"Les médias Media Viewer sont chargés en différé dans le carrousel",snapshot_click_plays_clip:"Cliquer sur un instantané lit l'extrait associé",transition_effect:"Effet de transition de la visionneuse multimédia",transition_effects:{none:"Pas de transition",slide:"Transition de diapositive"},zoomable:"La visionneuse multimédia peut être zoomée/panoramique"},menu:{alignment:"Alignement des menus",alignments:{bottom:"Aligné vers le bas",left:"Aligné à gauche",right:"Aligné à droite",top:"Aligné vers le haut"},button_size:"Taille du bouton de menu en pixels",buttons:{alignment:"Alignement des boutons",alignments:{matching:"Faire correspondre l'alignement du menu",opposing:"S'opposer à l'alignement des menus"},camera_ui:"Interface utilisateur de la caméra",cameras:"Cameras",clips:"Extraits",display_mode:"Mode d'afficahge",download:"Télécharger",enabled:"Bouton activé",expand:"Développer",frigate:"Menu Frigate / Vue par défaut",fullscreen:"Plein écran",icon:"Icône",image:"Image",live:"En direct",media_player:"Envoyer au lecteur multimédia",microphone:"Microphone",mute:"Désactiver/Réactiver le son",permanent:"Afficher lorsque le menu est caché",play:"Jouer / Pause",priority:"Priorité",ptz_controls:"Afficher les controles PTZ",ptz_home:"Position d'origine PTZ",recordings:"Enregistrements",screenshot:"Capture d'écran",snapshots:"Instantanés",substreams:"flux secondaires",timeline:"Chronologie",type:"Type de bouton",types:{momentary:"Momentané",toggle:"Basculer"}},position:"Emplacement des menus",positions:{bottom:"Positionné en bas",left:"Positionné à gauche",right:"Positionné à droite",top:"Positionné en haut"},style:"Style de menu",styles:{hidden:"Menu caché",hover:"Menu survolé","hover-card":"Menu survolé (à l'échelle de la carte)",none:"Pas de menu",outside:"Menu extérieur",overlay:"Menu superposé"}},overrides:{info:"Cette configuration de carte comporte des remplacements spécifiés manuellement et configurés qui peuvent remplacer les valeurs affichées dans l'éditeur visuel. Veuillez consulter l'éditeur de code pour afficher/modifier ces remplacements."},performance:{features:{animated_progress_indicator:"Indicateur de progression animé",editor_label:"Options de fonctionnalités",max_simultaneous_engine_requests:"Nombre maximal de requêtes simultanées au moteur de caméra",media_chunk_size:"Taille du morceau de média"},style:{border_radius:"Courbes",box_shadow:"Ombres",editor_label:"Options de style"},warning:"Cette carte est en mode profil bas, les paramètres par défaut ont donc été modifiés pour optimiser les performances."},profiles:{casting:"Diffusion",editor_label:"Configuration des profils","low-performance":"Basse performance",scrubbing:"Balayage vidéo"},status_bar:{height:"Hauteur de la barre d'état en pixels",items:{enabled:"Item activé",engine:"Moteur de camera",live_provider:"fournisseur de flux en direc",priority:"Priorité de l'item",resolution:"Résolution",technology:"Technologie",title:"Titre"},popup_seconds:"Secondes de popup de la barre d'état",position:"Position de la barre d'état",positions:{bottom:"Postionné en bas",top:"Postionné en haut"},style:"Style de la barre d'état",styles:{hover:"Barre d'état au survol","hover-card":"Barre d'état au survol (sur toute la carte)",none:"Pas de barre d'état",outside:"Barre d'état extérieure",overlay:"Barre d'état superposée",popup:"Barre d'état contextuelle"}},view:{camera_select:"Afficher les caméras nouvellement sélectionnées",dark_mode:"Mode sombre",dark_modes:{auto:"Automatique",off:"Désactivé",on:"Activé"},default:"Vue par défaut",default_cycle_camera:"Parcourez les caméras lorsque la vue par défaut est mise à jour",default_reset:{after_interaction:"Réinitialiser à la vue par défaut après la fin de l'interaction de l'utilisateur",editor_label:"Comportement de réinitialisation de la vue par défaut",entities:"Réinitialiser à la vue par défaut lors du changement d'état de l'entité",every_seconds:"Actualiser la vue par défaut toutes les X secondes (0=jamais)",interaction_mode:"Comment la réinitialisation par défaut se comporte lorsque la carte a une interaction humaine",interaction_modes:{active:"Autoriser la réinitialisation uniquement lorsque la carte a une interaction humaine active",all:"Réinitialiser indépendamment de l'interaction humaine",inactive:"Réinitialiser uniquement lorsque la carte n'a pas d'interaction humaine"}},interaction_seconds:"Secondes après l'action de l'utilisateur pour maintenir l'interaction (0=jamais)",keyboard_shortcuts:{editor_label:"Raccourcis clavier",enabled:"Raccourcis clavier activés",ptz_down:"PTZ bas",ptz_home:"PTZ position d'origine",ptz_left:"PTZ gauche",ptz_right:"PTZ droite",ptz_up:"PTZ haut",ptz_zoom_in:"PTZ zoomer",ptz_zoom_out:"PTZ dézoomer"},triggers:{actions:{editor_label:"Actions de déclenchement",interaction_mode:"Comment gérer les actions lorsque la carte comporte une interaction humaine ?",interaction_modes:{active:"Ne déclencher des actions que lorsque la carte a une interaction humaine",all:"Déclencher des actions sans interaction humaine",inactive:"Ne déclencher des actions que lorsque la carte n'a pas d'interaction humaine"},trigger:"Actions de déclenchement",triggers:{default:"Changement ou mise à jour de la vue par défaut",live:"Change ou met a jour la vue en direct",media:"Changement d'affichage pour les nouveaux médias",none:"Pas d'acction"},untrigger:"Action de désactivation",untriggers:{default:"Passage à la vue/caméra par défaut",none:"Pas d'action"}},editor_label:"Comportement en cas de déclenchement d'une caméra",filter_selected_camera:"Déclenchement uniquement sur la caméra sélectionnée",show_trigger_status:"Afficher la bordure clignotante lors du déclenchement",untrigger_seconds:"Quelques secondes après le changement d'état inactif pour débloquer"},views:{clip:"Clip le plus récent",clips:"Galerie de clips",current:"Vue actuelle",image:"Image statique",live:"Vue en direct",recording:"Enregistrement le plus récent",recordings:"Galerie d'enregistrements",snapshot:"Instantané le plus récent",snapshots:"Galerie d'instantanés",timeline:"Vue chronologique"}}},t={grid:"Afficher la visionneuse de médias pour chaque caméra d'une grille",single:"Afficher une seule visionneuse"},i={add_new_camera:"Ajouter une nouvelle caméra",button:"Bouton",camera:"Caméra",cameras:"Caméras",cameras_secondary:"Quelles caméras afficher sur cette carte",delete:"Supprimer",dimensions:"Dimensions",dimensions_secondary:"Options de dimensions et de forme",image:"Image",image_secondary:"Options d'affichage d'image statique",live:"En direct",live_secondary:"Options d'affichage de la caméra en direct",media_gallery:"Galerie des médias",media_gallery_secondary:"Options de la galerie multimédia",media_viewer:"Visionneuse de médias",media_viewer_secondary:"Visionneuse de médias statiques (clips, instantanés ou enregistrements)",menu:"Menu",menu_secondary:"Options d'apparence et de convivialité du menu",move_down:"Descendre",move_up:"Déplacer vers le haut",overrides:"Les remplacements sont actifs",overrides_secondary:"Remplacements de configuration dynamique détectés",performance:"Performance",performance_secondary:"Options de performances de la carte",profiles:"Profils de confi",profiles_secondary:"Choisir des ensembles de paramètres par défaut pré-configurés",status_bar:"Barre d'état",status_bar_secondary:"Options d'apparence et de comportement de la barre d'état",timeline:"Chronologie",timeline_secondary:"Options de chronologie des événements",upgrade:"Mise à niveau",upgrade_available:"Une mise à niveau automatique de la configuration de la carte est disponible",view:"Voir",view_secondary:"Ce que la carte doit montrer et comment la montrer"},n={ptz:{down:"Bas",home:"Origine",left:"Gauche",right:"Droite",up:"Haut",zoom_in:"Zoomer",zoom_out:"Dézoomer"}},r={awaiting_live:"En attente du flux en direct...",awaiting_media:"En attente du chargement des médias",camera_initialization:"Échec de l'initialisation de la caméra",camera_initialization_reolink:"Impossible d'initialiser la caméra Reolink",could_not_render_elements:"Impossible de restituer les éléments de l'image",could_not_resolve:"Impossible de résoudre l'URL du média",diagnostics:"Diagnostic de la carte. Veuillez enlever les informations confidentielles avant de les partager",download_no_media:"Aucun média à télécharger",download_sign_failed:"Impossible de signer l'URL du média à télécharger",duplicate_camera_id:"ID de caméra Frigate en double pour la caméra suivante, utilisez le paramètre « ID » pour identifier de manière unique les caméras",empty_response:"Réponse vide reçue de Home Assistant pour la demande",failed_response:"Échec de la réponse de Home Assistant à la demande",failed_retain:"Impossible de conserver l'événement",failed_sign:"Impossible de signer l'URL de Home Assistant",image_load_error:"L'image n'a pas pu être chargée",invalid_configuration:"Configuration invalide",invalid_configuration_no_hint:"Aucune indication de localisation disponible (type incorrect ou manquant ?)",invalid_configuration_override:"Configuration de remplacement invalide",invalid_elements_config:"Configuration des éléments d'image invalide",invalid_response:"Réponse non valide reçue de Home Assistant pour la demande",jsmpeg_no_player:"Impossible de démarrer le lecteur JSMPEG",live_camera_no_endpoint:"Impossible d'obtenir le point de terminaison de la caméra pour ce fournisseur en direct (configuration incomplète ?)",live_camera_not_found:"L'entité caméra configurée n'a pas été trouvée",live_camera_unavailable:"Caméra indisponible",no_camera_engine:"Impossible de déterminer le moteur approprié pour la caméra",no_camera_entity:"Impossible de trouver l'entité de caméra",no_camera_entity_for_triggers:"Une entité caméra est requise pour détecter automatiquement les déclencheurs",no_camera_id:"Impossible de déterminer l'identifiant de la caméra suivante. Il faudra peut-être définir le paramètre « ID » manuellement",no_camera_name:"Impossible de déterminer le nom de la caméra Frigate pour la caméra (ou l'une de ses dépendances). Veuillez spécifier soit « camera_entity » soit « camera_name ».",no_dashboard_or_view:"Les paramètres 'dashboard_path' et 'view_path' sont requis pour la méthode de conversion 'dashboard'",no_live_camera:"Le paramètre camera_entity doit être défini et valide pour ce fournisseur en direct",no_supported_camera:"La caméra sélectionnée ne prend pas en charge cette vue",no_supported_cameras:"Aucune caméra ne prend en charge cette vue",reconnecting:"Reconnexion",too_many_automations:"Trop d'appels d'automatisation imbriqués, veuillez vérifier votre configuration pour les boucles",troubleshooting:"Vérifier le dépannage",unknown:"Erreur inconnue",upgrade_available:"Une mise à niveau automatisée de la configuration de la carte est disponible, veuillez visiter l'éditeur visuel de la carte",webrtc_card_reported_error:"La carte WebRTC a signalé une erreur",webrtc_card_waiting:"En attente du chargement de la carte WebRTC..."},o={camera:"Caméra",duration:"Durée",in_progress:"En cours",score:"Score",seek:"Chercher",start:"Commencer",tag:"Étiqueter",what:"Quoi",where:"Où"},s={assign:"Assigner",assigning:"Assignation",modifiers:{alt:"",ctrl:"",meta:"",shift:""},unassign:"Désassigner"},l={all:"Tous",camera:"Caméra",favorite:"Préféré",media_type:"Type de support",media_types:{clips:"Extraits",recordings:"Enregistrements",snapshots:"Instantanés"},not_favorite:"Pas favori",select_camera:"Sélectionnez une caméra...",select_favorite:"Sélectionnez un favori...",select_media_type:"Sélectionnez le type de média...",select_tag:"Sélectionnez la balise...",select_what:"Sélectionnez quoi...",select_when:"Sélectionnez quand...",select_where:"Sélectionnez où...",tag:"Étiqueter",what:"Quoi",when:"Quand",whens:{custom:"",past_month:"Mois passé",past_week:"La semaine dernière",today:"Aujourd'hui",yesterday:"Hier"},where:"Où"},d={unseekable:"Temps non trouvé dans les médias"},c={camera:"Caméra",duration:"Durée",events:"Événements",in_progress:"En cours",seek:"Chercher",start:"Commencer"},u={download:"Télécharger des médias",no_thumbnail:"Aucune vignette disponible",retain_indefinitely:"Les médias seront conservés indéfiniment",timeline:"Voir les médias dans la chronologie"},m={select_date:"Choisir une date"},p={common:e,config:a,display_modes:t,editor:i,elements:n,error:r,event:o,key_assigner:s,media_filter:l,media_viewer:d,recording:c,thumbnail:u,timeline:m};export{e as common,a as config,p as default,t as display_modes,i as editor,n as elements,r as error,o as event,s as key_assigner,l as media_filter,d as media_viewer,c as recording,u as thumbnail,m as timeline}; diff --git a/config/www/community/frigate-hass-card/lang-fr-ea16daba.js.gz b/config/www/community/frigate-hass-card/lang-fr-ea16daba.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..485746340ccecf54cfdfa65b647c9497765d7c1a GIT binary patch literal 7536 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 1 Frigate server)",editor_label:"Frigate Opzione",labels:"Etichette per fregate/filtri per oggetti",url:"Frigate URL del server",zones:"Frigate Zone"},go2rtc:{editor_label:"Opzioni go2rtc",modes:{editor_label:"Modalità go2rtc",mjpeg:"JPEG animato (MJPEG)",mp4:"MPEG-4 (MP4)",mse:"Estensioni sorgente multimediale (MSE)",webrtc:"Comunicazione Web in tempo reale (WebRTC)"},stream:"nome del flusso go2rtc"},icon:"Icona per questa telecamera (Autoidentificato dall'entità)",id:"ID univoco per questa telecamera in questa carta",image:{editor_label:"Opzioni immagine",refresh_seconds:"Numero di secondi dopo i quali aggiornare l'immagine live (0=mai)",url:"URL dell'immagine da utilizzare al posto dell'istantanea dell'entità fotocamera"},live_provider:"Provider di visualizzazione dal vivo per questa telecamera",live_provider_options:{editor_label:"Opzioni del fornitore in tempo reale"},live_providers:{auto:"Automatica",go2rtc:"go2rtc",ha:"Streaming video di Home Assistant (ovvero HLS, LL-HLS, WebRTC tramite HA)",image:"Immagini Home Assistant",jsmpeg:"JSMpeg","webrtc-card":"Scheda WebRTC (ovvero la scheda WebRTC di Alexxit)"},motioneye:{editor_label:"Opzioni di MotionEye",images:{directory_pattern:"Modello di directory delle immagini",file_pattern:"Modello di file di immagini"},movies:{directory_pattern:"Modello di directory dei film",file_pattern:"Modello di file di film"},url:"URL dell'interfaccia utente di MotionEye"},proxy:{dynamic:"",editor_label:"",media:{auto:"",editor_label:"",false:"",true:""},ssl_ciphers:{auto:"",default:"",editor_label:"",insecure:"",intermediate:"",modern:""},ssl_verification:{auto:"",editor_label:"",false:"",true:""}},reolink:{editor_label:"",media_resolution:{editor_label:"",high:"",low:""},url:""},title:"Titolo per questa telecamera (Autoidentificato dall'entità)",triggers:{editor_label:"Trigger Opzioni",entities:"Trigger da altre entità",events:{clips:"",editor_label:"",events:"",snapshots:""},motion:"Trigger rilevando automaticamente dal sensore di movimento",occupancy:"Attivare rilevando automatico tramite il sensore di presenza"},webrtc_card:{editor_label:"Opzioni della scheda WebRTC",entity:"Entità della telecamera della scheda WebRTC (non una telecamera Frigate)",url:"URL della telecamera della scheda WebRTC"}},common:{controls:{builtin:"",filter:{editor_label:"Filtro multimediale",mode:"Modalità filtro",modes:{left:"Filtro multimediale in un cassetto a sinistra",none:"Nessun filtro multimediale",right:"Filtro multimediale in un cassetto a destra"}},next_previous:{editor_label:"Successivo e precedente",size:"Successiva e Precedenti dimensioni di controllo nei pixel",style:"Stile di controllo successivo e precedente",styles:{chevrons:"Chevrons",icons:"Icone",none:"Nessuno",thumbnails:"Miniature"}},thumbnails:{editor_label:"Miniature",events_media_type:"Se mostrare miniature di clip o istantanee",events_media_types:{clips:"Miniature di clip",snapshots:"Miniature istantanee"},media_type:"",media_types:{events:"",recordings:""},mode:"Modalità miniatura",modes:{above:"Miniature sopra",below:"Miniature sotto",left:"Miniature in un cassetto a sinistra",none:"Nessuna miniatura",right:"Miniature in un cassetto a destra"},show_details:"Mostra i dettagli con le miniature",show_download_control:"Mostra il controllo del download sulle miniature",show_favorite_control:"Mostra il controllo preferito sulle miniature",show_timeline_control:"Mostra il controllo della sequenza temporale sulle miniature",size:"Dimensione delle miniature in pixel"},timeline:{editor_label:"Mini Cronologia",mode:"Modalità",modes:{above:"sopra",below:"sotto",none:"sessuna"},pan_mode:"",pan_modes:{pan:"",seek:"","seek-in-camera":"","seek-in-media":""}}},display:{editor_label:"",grid_columns:"",grid_max_columns:"",grid_selected_width_factor:"",mode:""},image:{entity:"",entity_parameters:"",mode:"Modalità Visualizza immagine",modes:{camera:"Istantanea della telecamera di Home Assistant dell'entità telecamera",entity:"",screensaver:"Logo Frigate incorporato",url:"Immagine arbitraria specificata dall'URL"},refresh_seconds:"Numero di secondi dopo i quali aggiornare (0 = mai)",url:"URL di immagine statica per la vista dell'immagine"},media_action_conditions:{all:"Tutte le opportunità",hidden:"Sul browser/nascondere le schede",microphone_mute:"",microphone_unmute:"",never:"Mai",selected:"Sulla selezione",unselected:"Sulla non selezione",visible:"Sul browser/visibilità della scheda"},timeline:{clustering_threshold:"Il conteggio degli eventi in cui sono raggruppati (0 = nessun clustering)",events_media_type:"I media vengono visualizzati la sequenza temporale",events_media_types:{all:"Tutti i tipi di media",clips:"Clip",snapshots:"Istantanee"},show_recordings:"Mostra registrazioni",style:"",styles:{ribbon:"",stack:""},window_seconds:"La lunghezza predefinita della vista della sequenza temporale in secondi"}},dimensions:{aspect_ratio:"Proporzioni predefinite (ad es. '16:9')",aspect_ratio_mode:"Modalità proporzioni",aspect_ratio_modes:{dynamic:"Le proporzioni si adattano ai media",static:"Proporzioni statiche",unconstrained:"Proporzioni non vincolate"},height:""},live:{auto_mute:"Muta automaticamente le telecamere in diretta",auto_pause:"Metti in pausa automaticamente le telecamere in diretta",auto_play:"Gioca automaticamente le telecamere dal vivo",auto_unmute:"Riattiva automaticamente l'audio delle telecamere live",controls:{editor_label:"Controlli dal vivo",ptz:{editor_label:"",hide_home:"",hide_pan_tilt:"",hide_zoom:"",mode:"",modes:{off:"",on:""},orientation:"",orientations:{horizontal:"",vertical:""},position:"",positions:{"bottom-left":"","bottom-right":"","top-left":"","top-right":""}}},draggable:"Il Visualizzatore eventi può essere trascinato oppure puoi scorrere",lazy_load:"Le telecamere dal vivo sono pigramente cariche",lazy_unload:"Le telecamere dal vivo sono pigramente non caricate",microphone:{always_connected:"",disconnect_seconds:"",editor_label:"",enabled:"",mute_after_microphone_mute_seconds:""},preload:"Precarica Live View in background",show_image_during_load:"Mostra un'immagine fissa durante il caricamento del live streaming",transition_effect:"Effetto di transizione della telecamera dal vivo",zoomable:""},media_viewer:{auto_mute:"Muta automaticamente i media",auto_pause:"Metti in Pausa automaticamente i media",auto_play:"Riproduci automaticamente i contenuti multimediali",auto_unmute:"Riattiva automaticamente i contenuti multimediali",controls:{editor_label:"Controlli di visualizzatore multimediale"},draggable:"Il visualizzatore multimediale può essere trascinato oppure può scorrere",lazy_load:"Il media Viewer viene caricato pigramente nel carosello",snapshot_click_plays_clip:"",transition_effect:"Effetto di transizione del visualizzatore multimediale",transition_effects:{none:"Nessuna transizione",slide:"Transizione diapositiva"},zoomable:""},menu:{alignment:"Allineamento dei menu",alignments:{bottom:"Allineato al fondo",left:"Allineato a sinistra",right:"Allineato a destra",top:"Allineato in cima"},button_size:"Dimensione del pulsante menu in pixel",buttons:{alignment:"Allineamento dei pulsanti",alignments:{matching:"Corrispondenza con l'allineamento del menu",opposing:"Contrastare l'allineamento del menu"},camera_ui:"Interfaccia utente della fotocamera",cameras:"Telecamere",clips:"Clip",display_mode:"",download:"Download",enabled:"Pulsante abilitato",expand:"Espandere",frigate:"Frigate menu / Visualizzazione predefinita",fullscreen:"A schermo intero",icon:"Icona",image:"Immagine",live:"Abitare",media_player:"Invia a Media Player",microphone:"",mute:"",permanent:"",play:"",priority:"Priorità",ptz_controls:"",ptz_home:"",recordings:"",screenshot:"",snapshots:"Istantanee",substreams:"Flusso/i secondario/i",timeline:"Timeline",type:"",types:{momentary:"",toggle:""}},position:"Posizione del menu",positions:{bottom:"Posizionato sul fondo",left:"Posizionato a sinistra",right:"Posizionato a destra",top:"Posizionato in alto"},style:"Stile menu",styles:{hidden:"Menu nascosto",hover:"Menu al passaggio del mouse","hover-card":"",none:"Nessun menu",outside:"Menu esterno",overlay:"Menu di overlay"}},overrides:{info:"Questa configurazione della scheda ha specificato manualmente le sostituzioni configurate che possono sostituire i valori mostrati nell'editor visivo, consultare l'editor di codice per visualizzare/modificare queste sostituzioni"},performance:{features:{animated_progress_indicator:"Indicatore di avanzamento animato",editor_label:"Opzioni funzionalità",max_simultaneous_engine_requests:"",media_chunk_size:"Dimensione del blocco multimediale"},style:{border_radius:"Curve",box_shadow:"Ombre",editor_label:"Opzione di stile"},warning:"Questa scheda è in modalità basso profilo, quindi le impostazioni predefinite sono state modificate per ottimizzare le prestazioni"},profiles:{casting:"",editor_label:"","low-performance":"",scrubbing:""},status_bar:{height:"",items:{enabled:"",engine:"",live_provider:"",priority:"",resolution:"",technology:"",title:""},popup_seconds:"",position:"",positions:{bottom:"",top:""},style:"",styles:{hover:"","hover-card":"",none:"",outside:"",overlay:"",popup:""}},view:{camera_select:"Visualizza per le telecamere appena selezionate",dark_mode:"Tema scuro",dark_modes:{auto:"auto",off:"Off",on:"On"},default:"Visualizzazione predefinita",default_cycle_camera:"Scorri le telecamere quando si aggiorna la visualizzazione predefinita",default_reset:{after_interaction:"",editor_label:"",entities:"",every_seconds:"Aggiorna la visualizzazione predefinita ogni x secondi (0 = mai)",interaction_mode:"",interaction_modes:{active:"",all:"",inactive:""}},interaction_seconds:"",keyboard_shortcuts:{editor_label:"",enabled:"",ptz_down:"",ptz_home:"",ptz_left:"",ptz_right:"",ptz_up:"",ptz_zoom_in:"",ptz_zoom_out:""},triggers:{actions:{editor_label:"",interaction_mode:"",interaction_modes:{active:"",all:"",inactive:""},trigger:"",triggers:{default:"",live:"",media:"",none:""},untrigger:"",untriggers:{default:"",none:""}},editor_label:"",filter_selected_camera:"",show_trigger_status:"Mostra bordo pulsante quando attivato",untrigger_seconds:"Reimposta la vista ai valori predefiniti dopo aver annullato l'attivazione"},views:{clip:"Clip più recente",clips:"Galleria delle clip",current:"Vista corrente",image:"Immagine statica",live:"Dal vivo",recording:"",recordings:"",snapshot:"Snapshot più recente",snapshots:"Galleria delle istantanee",timeline:"Vista della timeline"}}},a={grid:"",single:""},t={add_new_camera:"Aggiungi nuova telecamera",button:"Pulsante",camera:"Telecamera",cameras:"Telecamere",cameras_secondary:"Quali telecamere visualizzare su questa card",delete:"Elimina",dimensions:"",dimensions_secondary:"",image:"Immagine",image_secondary:"Opzioni di visualizzazione dell'immagine statica",live:"Live",live_secondary:"Opzioni di visualizzazione della telecamera live",media_gallery:"Galleria multimediale",media_gallery_secondary:"Opzioni della galleria multimediale",media_viewer:"Visualizzatore dei media",media_viewer_secondary:"Visualizzatore per supporti statici (clip, istantanee o registrazioni)",menu:"Menu",menu_secondary:"Opzioni di aspetto e funzionalità del menu",move_down:"Sposta verso il basso",move_up:"Sposta verso l'alto",overrides:"La sovrascrittura è attiva",overrides_secondary:"Rilevate sovrascritture della configurazione dinamica",performance:"",performance_secondary:"",profiles:"",profiles_secondary:"",status_bar:"",status_bar_secondary:"",timeline:"Timeline",timeline_secondary:"Opzioni della timeline degli eventi",upgrade:"Aggiornamento",upgrade_available:"È disponibile un aggiornamento della configurazione della scheda automatica",view:"Visualizzazione",view_secondary:"Cosa dovrebbe mostrare la carta e come mostrarla"},o={ptz:{down:"Giù",home:"Home",left:"Sinistra",right:"Destra",up:"Su",zoom_in:"Ingrandire",zoom_out:"Zoom indietro"}},n={awaiting_live:"",awaiting_media:"",camera_initialization:"",camera_initialization_reolink:"",could_not_render_elements:"Impossibile renderizzare gli elementi dell'immagine",could_not_resolve:"Impossibile risolvere l'URL dei media",diagnostics:"Diagnostica delle carte.Si prega di rivedere per informazioni riservate prima di condividere",download_no_media:"Nessun media da scaricare",download_sign_failed:"Impossibile firmare URL multimediale per il download",duplicate_camera_id:"Duplicato ID dellla telecamera Frigate, utilizzare il parametro 'ID' per identificare in modo univoco le telecamere",empty_response:"Ricevuto risposta vuota da Home Assistant per la richiesta",failed_response:"Impossibile ricevere risposta da Home Assistant per la richiesta",failed_retain:"Impossibile conservare l'evento",failed_sign:"Impossibile firmare l'URL ad Home Assistant",image_load_error:"L'immagine non può essere caricata",invalid_configuration:"Configurazione non valida",invalid_configuration_no_hint:"Nessun suggerimento di posizione disponibile (tipo difettoso o mancante?)",invalid_configuration_override:"",invalid_elements_config:"Configurazione degli elementi di immagine non valida",invalid_response:"Ricevuta una risposta non valida da Home Assistant per la richiesta",jsmpeg_no_player:"Impossibile avviare JSMPEG Player",live_camera_no_endpoint:"Impossibile ottenere l'endpoint della videocamera per questo provider live (configurazione incompleta?)",live_camera_not_found:"La telecamera configurata non è stata trovata",live_camera_unavailable:"Telecamera non disponibile",no_camera_engine:"Impossibile determinare il motore adatto per la fotocamera",no_camera_entity:"Impossibile trovare l'entità fotocamera",no_camera_entity_for_triggers:"È necessaria un'entità telecamera per rilevare automaticamente i trigger",no_camera_id:"Impossibile determinare l'ID della telecamera , potrebbe essere necessario impostare manualmente il parametro 'ID'",no_camera_name:"Impossibile determinare un nome della telecamera in Frigate, si prega di specificare 'camera_enty' o 'camera_name'",no_dashboard_or_view:"",no_live_camera:"Il parametro fotocamera_enty deve essere impostato e valido per questo provider live",no_supported_camera:"",no_supported_cameras:"",reconnecting:"Riconnessione",too_many_automations:"",troubleshooting:"Controllare la risoluzione dei problemi",unknown:"Errore sconosciuto",upgrade_available:"È disponibile un aggiornamento di configurazione della scheda automatizzato, visitare l'editor di schede visive",webrtc_card_reported_error:"La scheda WebRTC ha riportato un errore",webrtc_card_waiting:"Aspettando che la scheda WebRTC si carichi ..."},r={camera:"Camera",duration:"Durata",in_progress:"In corso",score:"Punteggio",seek:"Cercare",start:"Avvia",tag:"",what:"Che cosa",where:"Dove"},l={assign:"",assigning:"",modifiers:{alt:"",ctrl:"",meta:"",shift:""},unassign:""},s={all:"Tutto",camera:"Telecamera",favorite:"Preferito",media_type:"Tipo di supporto",media_types:{clips:"Clip",recordings:"Registrazioni",snapshots:"Istantanee"},not_favorite:"Non preferito",select_camera:"Seleziona fotocamera...",select_favorite:"Seleziona preferito...",select_media_type:"Seleziona il tipo di supporto...",select_tag:"",select_what:"Seleziona cosa...",select_when:"Seleziona quando...",select_where:"Seleziona dove...",tag:"Tag",what:"Che cosa",when:"Quando",whens:{custom:"",past_month:"Mese scorso",past_week:"Settimana scorso",today:"Oggi",yesterday:"Ieri"},where:"Dove"},d={unseekable:""},m={camera:"Camera",duration:"Durata",events:"Eventi",in_progress:"In corso",seek:"Cercare",start:"Inizio"},c={download:"",no_thumbnail:"Nessuna miniatura disponibile",retain_indefinitely:"L'evento sarà mantenuto indefinitamente",timeline:"Vedi evento nella timeline"},u={select_date:"Scegli la data"},p={common:e,config:i,display_modes:a,editor:t,elements:o,error:n,event:r,key_assigner:l,media_filter:s,media_viewer:d,recording:m,thumbnail:c,timeline:u};export{e as common,i as config,p as default,a as display_modes,t as editor,o as elements,n as error,r as event,l as key_assigner,s as media_filter,d as media_viewer,m as recording,c as thumbnail,u as timeline}; diff --git a/config/www/community/frigate-hass-card/lang-it-2a20a319.js.gz b/config/www/community/frigate-hass-card/lang-it-2a20a319.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..64af2c941ad4181bf33253ae48ff280e2e7671c8 GIT binary patch literal 6037 zcmV;G7i#DqiwFoFf?;O@|7>AyXDw-TEiz#;Fkv$>IWB5*0Igh2kK8zVzUNm6y0i_* zj3o%h`V{&-0R$D3!|g zYyucv5=BxZ->>KWkPoU!^ws0KF&owCyiiSfnf}S$CA>?s_*q`+wrI@0Gq%1=|5B@@ zEw;K;$vb<{l`3?y*G*Dg^sP+_TPJ>|G^@-(U#9QyH_d9B?{sO@W%`qD+rDPcPS<^B zlU-kRMjlo=!L$d{_Np=u530eyMi;gzO}%L^(+_%M+OAO#ScyrqgKk<`(=YBqr%#!= zdMwmVH>$n#7rCxG(;Y9$=o+At$A(Di3F$-dGYUk)txgAYI>qy+GpOF$2s3*RIq|G9-fC^=#fiTuMoaMCVs6qtSCgtJN=ZI2_K zx33Kd@~TuFR-mfHb(3bY5LjIq@ac7xwEcc>8*u&SzmFpD(m)~`RY6p_lB$}{0!FAc7F+c-#MR2c#^~LC zI`S#Qn=T*kxyz&Q%-*&}biv6fpwoNZ6j(+EikIC?E&0sXU;i_Y$4#Sc~nfMa#NF*TX>3~T5r*;zc$UQ4WT zpcE;kUT>orX;bKiSMb7H63hW&&*;5y#`C%L5^`a8-4EB%??jZEmjlsZnt?0ds9P;r$6r_6KDC7wH?PO#X0XS}_p@`Ds} zx6+CB0{^sAYhm|OvEo~DD6#`i3!3h|zv5a)DB!4uBShQb%xR_5sd6ij<%`0;#-@$P z`;-~x%c5xjJ)z_A7yJo|ra=bMz{Xpkn_J-=82E(aQD>Ukh_dhHH+K2Mtct=&1XxxK+Ju!!UI7lPoh5(m=!%;Bwr zVh<0nz*m*Nzc(EjAIgsheLTxz=zb%8-X67IA~6DNMuFZ(A`959TBIBlx6a!7r{1=C z)-ht0^x_ac;P23tOFNj~_AZ%b_YH56ZclRtheB!AswfN@T-3{C^Du;sy+2|>M;HQA zELkK6c|Gf#K3=P;6=>Hry%tN=w!lzkzl}H!z)!Cg6x-4ariM88jds^qu)MKz&=VWw zhW)f4ztcowy1#izPtYZ{GWDlZb1(18p=WH>F9U)tEU{Q-dnfCV6UHyJ05R=H^sekb zsz71JV8EIa`TpqIy+H(*$q@3+@Teq8gQO;YHuMopAHn_kR(yvUS`QL4PThc~4!~wM zQG=>*$c)OXg~<|hVG{DQ;G8tGMbQIg6+lFPV_ByHoJ)6J z?ah^dKcX-ANK2!VXEk7VUr+jZm@qdNUz>}3R@mK+Ohj1RSRk0kRS&R2;4Cr>?w;@I zPXsel57O~{j4}lA*a3_@vtrM+ zzVBdU^ugHvgpqIiqQDzz?}+qup(zb`7f`Z}9>YOO-iOCjfx7^Vz#RTGA!aoc;@;fr zif-JI@^{;L1vqwU&%TpGC?H#XXlPZ_*ZwLMG}Jmcq^D8ZdEHoNP2?lY>o zT$b2m>qTw@Bl@lnhv<;4qAzwp?3(k6_Ziusoi z)V@;3Q|rEI42fIyySg3jck2G6t)=eobeZ3ovfF~5L}&q`h>Qfc#+#vFkbv4?@pMNk zpPp*=Uk3Lea((=E-L{~VrY^|T5S@VYiI*}7B@HWUi$;UwO2RVl?8Xibx~U=eWEWCJ z%-?lzl2o%Y)L6ihA#9}>>mj0njZB~ZFCN>o-z8Vc+(#R|!30|)3UOgtiLd%F)8NDn znhlfzFX!?;?>s36jy{Iqot5YjoL1q^ttnw1Xo{+2)!4gMH!o||ayTP&6dPK3QpFUF z-EYCF`L6f)bZqMD&{%6Z*BfQXs*Y`Bev!&b`xr-G&mR(tL>;h6BXQGsY0_w_2;mGt zu2Dh@xcXo?sPDYnk|ee&C2}U=I-WYlQtkPuBx83yV-PibM^L5d_wY50qe|_A-NT&E z7fsrAB6kU%Y&g&8_hO<&eY9-a23lcRNoV$g0Gu#q-t4`eTe|DmzKN!c?U&b)%{21v z@xzD;8nas2+DC|sPa@NI2I%!}WaxJ)VXSehDX-AhaBHCcx*(S$TQ2HfQwKSa$n)8l z?fW4jYND4g5LYI;{Vuuq{l8rP;R0lchvjq4GR9TSLeDmG`rgGsSi{(?k}xo+sD`t5 z5;$F)YugGl6F=c}!GGnn6S?|8y;3ow@|110k8Qg6g!ALPMBVfZKF^$vX}leWNC&xN zBuPf@RZn;CMt6>rdH>rdp>;@qFt+&G&=9}z1B2LqfW@TSb2|D$^`)`iv_=zEl2jT! zg{f(J?ajG~UdRN@f`3}-d~0`lxS_!WD(;2`A3F}FDwr3$Uh~d6{~GWF>vgU*TgO{; z-7@MeL2t>w_@MSQlulFauQ4KZG42<{dCoBV1_5oZrL+6!Iq!ytVzjA>T;>R>Yc!M+ z>k9dl{_}rBCR!dSxUVftO*b1Vp73SgTQDg!K_hvHNpS?C?IVJ3E-&9`cb^W(okNyLF>5s-;%KNqGi^!=(x z;pw7CVOoa(ei4fJz8LG>V@hgmSD(;|sN-ko?x~E{9P0dYSrmreuu|XinN_7ub2tC>{4d}blV`VrW zkR$lV(UZs__I_{t&^x*=T{u1?{qnZ_U^Cqs z_`29a?#ZJ~1MkbaT(xtwFVu9F${!AqdFw~jL^WWvR9y>{aOw}gjbSK*sc&~hFAC5kAGDOK6&XOutYF0Xo{;xhAUXo^V*v@XwvxAe z8GK0S6WpYux08PKS7`G=E$>R~EICFsN0&(7Y$~4)7%|Ix8>jo`t4hK@UDU#NG`K!tng`J}W$9iD>Ii&D~tDTRmr&B&%2d`winhbyKBk3 zbf8sJi$eE&;aTAG-^uU0!B<@=mL}lP)}{ire(iZ|iR4+CidUz;uw#Qx)M+SAafF1( znw?MOSE5zJ1TNpnjHv|Iutu)z6lABBy?YT+IQ4p~U#;ATC-H`H@+$@8IXJW#7Pccu z8$r4wO{k`eN(5p(N)w`nLBbb_1cfA7ZOf3^jW90A=QFJX+kj8c&J3vCq&1 z62~JVuKT2qt{xMHyXlI)YfqyRkq8h95Jt^m0k1>38?T3wH{J-B$rVv{ZtBS`>lY;l zKcvsyDi;>=|8WxGJ#!6W!4<4lGDeLQK>~J$39Xg+uvbv1%n0p9(8`42; zw%jSB!A+<3wj-$b{Op`g3G3Ixz(CXw+AG>IxUL4nIz8(JlFrLG>CHIkR&?OuO(SC6VJ^IG2x zl%%Nlun|e!+rzXF%z0mnl8ZG z3Z|4kMii`0~}PSI1G8978dAONqzZ=IIlXA725KLKvO2X*%3IUV=TI}pxEU;?GJ2S$|u zeVD~36m;q%>KCu{gA@@7;)})w0?+*nBPk7)P5^p3xt+4?00^V&X^#l%P41?>7TwX1 zu0P8`p~oa02MxX70DJ2Z3HTx_-=4#FFqI2Eeg4m+l<*3(f|}(IDjsv@m|}NKMdhFZ z>gGtwe{d0P;7*7doxN}~m{$-+e|Ia^d?RH84UR)n+*B}h-XR{2H}MwTh|Ix9 z*(qOLRT^S^G&Z@oeskeoHB@T46d|yo9g5p0P67b# zZr>eAB#2%sQT;+6_$inKJ4FZfR>~vh^%=f|fr%wUlgolto=G&>l;njLiVqY2rYZeb zJJEy;g^;{16moEy#rG$PmTBYoO_e7l+|I-cfuX$_=Xf_-ai+lHe1gvgFlbo=T}tgu zi13KWy`Cy6$sM!bxe;W+ts!9a9N6|mw#F;J@p~LSQIpR)v*%+;B*0Qh6sjP~`nTuj z-W05p^A22(Anm^E$@;xoAA~)sXj$6Y2|FpNO&usdj`=1gaMkrZq9OPjQC1xehLrvD zEx$||BEf>O!q-7IhvM2>IpBD#?K)jMH557wB@m_d@%FJOT0%SSiwO5U#>^hEI$*a4 z|4hKNGQ`2d1ilfOK;j@g4_(Hz%96q^pk(+qi zCCj)7h@A@YpIJ$R8<)bnj*@S-sNKZ;7tH$hTyfiel=pM>sR zRh|p*>oopq0BY19STIQQs{bwb%046x7AO5?lX#E_3@-kW#88-mIQfJC?B>cuO!D1# z-?0qxYN*_N?S;7<4BQ)0SycH$j(}j6kq$ai%&cqr{Ju^v6uZ9GjYCruC#GSkyg^YV zVUD}4>ZF(*)3l2BnzOut$zqiiFmUTEI}5>h<-;Q`a_$0XE*4dEP56k~$C=E!^O3A! zlBcY_8te4za$q7_Cq42udX5&Ggi2lyeavV&G#=Sw?I)3iLd$S(R zx8j;SR`BzaBVkpz9~^9Xy@Vsp?ITLu(bQ2@fP^59Nb^p>?WP&;aP z*x8b4gP+03X?B!+qBLCN+?X4haA|q<$ck9~X)LMu7C8!^EWGuu^EtU%l%ngJ*pP(; zSC3<+U$pM^S-X?GY#83p zou~sbR$eImw@d9bxK&2c*4_9q%w;j|s(<>Uz9-8+0)n)OTViJ1HCLJKdF{jDnUb4$ z)mg_TxA4r$wO@Ny%N>`WHFC)vWEC&tO=K-w;(cW0*y6U5?btHxCM$S5Y$)sH*6-=* PkN@<)_mjJIe?$NPU1#)e literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/lang-pt-BR-83a703b9.js b/config/www/community/frigate-hass-card/lang-pt-BR-83a703b9.js new file mode 100644 index 00000000..b8033988 --- /dev/null +++ b/config/www/community/frigate-hass-card/lang-pt-BR-83a703b9.js @@ -0,0 +1 @@ +var e={frigate_card:"Cartão Frigate",frigate_card_description:"Um cartão da Lovelace para usar com Frigate",live:"Ao Vivo",no_media:"Nenhuma mídia para exibir",recordings:"Gravações",version:"Versão"},a={cameras:{camera_entity:"Entidade da Câmera",capabilities:{capabilities:{clips:"","favorite-events":"","favorite-recordings":"",live:"",menu:"",ptz:"",recordings:"",seek:"",snapshots:"",substream:""},disable:"",disable_except:"",editor_label:""},cast:{dashboard:{dashboard_path:"",view_path:""},editor_label:"",method:"",methods:{dashboard:"",standard:""}},dependencies:{all_cameras:"Mostrar eventos para todas as câmeras nesta câmera",cameras:"Mostrar eventos para câmeras específicas nesta câmera",editor_label:"Opções de dependência"},dimensions:{aspect_ratio:"",editor_label:"",layout:{editor_label:"",fit:"Ajuste de layout",fits:{contain:"A mídia é contida no cartão",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",y:"Porcentagem do posicionamento vertical"},view_box:{bottom:"",editor_label:"",left:"",right:"",top:""},zoom:""}},engines:{editor_label:"Opções do motor da câmera"},frigate:{camera_name:"Nome da câmera do Frigate (detectado automaticamente pela entidade)",client_id:"ID do cliente do Frigate (para >1 servidor Frigate)",editor_label:"Opções do Frigate",labels:"Rótulos do Frigate/filtros de objetos",url:"URL do servidor Frigate",zones:"Zonas do Frigate"},go2rtc:{editor_label:"Opções do go2rtc",modes:{editor_label:"Modos do go2rtc",mjpeg:"Motion JPEG (MJPEG)",mp4:"MPEG-4 (MP4)",mse:"Media Source Extensions (MSE)",webrtc:"Web Real-Time Communication (WebRTC)"},stream:"Nome do stream do go2rtc"},icon:"Ícone para esta câmera (detectado automaticamente pela entidade)",id:"ID exclusivo para esta câmera nesse cartão",image:{editor_label:"Opções de Imagem",refresh_seconds:"Número de segundos após os quais atualizar a imagem ao vivo (0=nunca)",url:"URL da imagem para usar em vez do instantâneo da entidade da câmera"},live_provider:"Provedor de visualização ao vivo para esta câmera",live_provider_options:{editor_label:"Opções do provedor de visualização ao vivo"},live_providers:{auto:"Automatico",go2rtc:"go2rtc",ha:"Stream de vídeo do Home Assistant (ou seja, HLS, LL-HLS, WebRTC via HA)",image:"Imagens do Home Assistant",jsmpeg:"JSMpeg","webrtc-card":"Cartão WebRTC (de @AlexxIT)"},motioneye:{editor_label:"Opções do MotionEye",images:{directory_pattern:"Padrão de diretório de imagens",file_pattern:"Padrão de arquivo de imagens"},movies:{directory_pattern:"Padrão de diretório de filmes",file_pattern:"Padrão de arquivo de filmes"},url:"URL da interface de usuário do MotionEye"},proxy:{dynamic:"",editor_label:"",media:{auto:"",editor_label:"",false:"",true:""},ssl_ciphers:{auto:"",default:"",editor_label:"",insecure:"",intermediate:"",modern:""},ssl_verification:{auto:"",editor_label:"",false:"",true:""}},reolink:{editor_label:"",media_resolution:{editor_label:"",high:"",low:""},url:""},title:"Título para esta câmera (detectado automaticamente pela entidade)",triggers:{editor_label:"Opções de acionamento",entities:"Acionar a partir de outras entidades",events:{clips:"",editor_label:"",events:"",snapshots:""},motion:"Acionar detectando automaticamente o sensor de movimento",occupancy:"Acionar detectando automaticamente o sensor de ocupação"},webrtc_card:{editor_label:"Opções do cartão WebRTC",entity:"Entidade de câmera de cartão WebRTC (não é uma câmera Frigate)",url:"URL da câmera do cartão WebRTC"}},common:{controls:{builtin:"",filter:{editor_label:"Filtro de Mídia",mode:"Modo do filtro",modes:{left:"Filtro de mídia em uma gaveta à esquerda",none:"Sem filtro de mídia",right:"Filtro de mídia em uma gaveta à direita"}},next_previous:{editor_label:"Próximo",size:"Tamanho de controle próximo e anterior",style:"Estilo do controle próximo e anterior",styles:{chevrons:"Setas",icons:"Ícones",none:"Nenhum",thumbnails:"Miniaturas"}},thumbnails:{editor_label:"Miniaturas",events_media_type:"Se deve mostrar miniaturas de clipes ou snapshots",events_media_types:{clips:"Miniaturas de clipes",snapshots:"Miniaturas de Snapshots"},media_type:"",media_types:{events:"",recordings:""},mode:"Modo de miniaturas",modes:{above:"Miniaturas acima da mídia",below:"Miniaturas abaixo da mídia",left:"Miniaturas em uma gaveta à esquerda",none:"Sem miniaturas",right:"Miniaturas em uma gaveta à direita"},show_details:"Mostrar detalhes com miniaturas",show_download_control:"Mostrar controle de download nas miniaturas",show_favorite_control:"Mostrar controle de favorito nas miniaturas",show_timeline_control:"Mostrar controle da linha do tempo nas miniaturas",size:"Tamanho das miniaturas em pixels"},timeline:{editor_label:"Controles da linha do tempo",mode:"Modo",modes:{above:"Acima",below:"Abaixo",none:"Nenhum"},pan_mode:"",pan_modes:{pan:"",seek:"","seek-in-camera":"","seek-in-media":""}}},display:{editor_label:"",grid_columns:"",grid_max_columns:"",grid_selected_width_factor:"",mode:""},image:{entity:"",entity_parameters:"",mode:"Modo de visualização de imagem",modes:{camera:"Instantâneo da câmera do Home Assistant, da entidade de câmera",entity:"",screensaver:"Logo Frigate embutido",url:"Imagem arbitrária especificada por URL"},refresh_seconds:"Número de segundos após o qual atualizar (0 = nunca)",url:"Imagem arbitrária especificada por URL"},media_action_conditions:{all:"Todas as oportunidades",hidden:"Ao ocultar o navegador/aba",microphone_mute:"",microphone_unmute:"",never:"Nunca",selected:"Ao selecionar",unselected:"Ao desselecionar",visible:"Ao mostrar o navegador/aba"},timeline:{clustering_threshold:"A contagem de eventos nos quais eles são agrupados (0 = sem agrupamento)",events_media_type:"A mídia que a linha do tempo exibe",events_media_types:{all:"Todos os tipos de mídia",clips:"Clipes",snapshots:"Instantâneos"},show_recordings:"Mostrar gravações",style:"",styles:{ribbon:"",stack:""},window_seconds:"A duração padrão da visualização da linha do tempo em segundos"}},dimensions:{aspect_ratio:"Proporção padrão (e.g. '16:9')",aspect_ratio_mode:"Modo de proporção",aspect_ratio_modes:{dynamic:"A proporção se ajusta à mídia",static:"Proporção estática",unconstrained:"Proporção irrestrita"},height:""},live:{auto_mute:"Silenciar câmeras ao vivo automaticamente",auto_pause:"Pausar câmeras ao vivo automaticamente",auto_play:"Reproduzir câmeras ao vivo automaticamente",auto_unmute:"Ativar automaticamente o som das câmeras ao vivo",controls:{editor_label:"Controles da visualização ao vivo",ptz:{editor_label:"",hide_home:"",hide_pan_tilt:"",hide_zoom:"",mode:"",modes:{off:"",on:""},orientation:"",orientations:{horizontal:"",vertical:""},position:"",positions:{"bottom-left":"","bottom-right":"","top-left":"","top-right":""}}},draggable:"A visualização ao vivo das câmeras pode ser arrastada/deslizada",lazy_load:"As câmeras ao vivo são carregadas lentamente",lazy_unload:"As câmeras ao vivo são descarregadas preguiçosamente",microphone:{always_connected:"",disconnect_seconds:"",editor_label:"",enabled:"",mute_after_microphone_mute_seconds:""},preload:"Pré-carregar a visualização ao vivo em segundo plano",show_image_during_load:"Mostrar imagem estática enquanto a transmissão ao vivo está carregando",transition_effect:"Efeito de transição de câmera ao vivo",zoomable:""},media_viewer:{auto_mute:"Silenciar mídia automaticamente",auto_pause:"Pausar mídia automaticamente",auto_play:"Reproduzir mídia automaticamente",auto_unmute:"Ativar mídia automaticamente",controls:{editor_label:"Controles do visualizador de mídia"},draggable:"Visualizador de eventos pode ser arrastado/deslizado",lazy_load:"A mídia do Visualizador de eventos é carregada lentamente no carrossel",snapshot_click_plays_clip:"Clicar em um instantâneo reproduz um clipe relacionado",transition_effect:"Efeito de transição do Visualizador de eventos",transition_effects:{none:"Sem transição",slide:"Transição de slides"},zoomable:""},menu:{alignment:"Alinhamento do menu",alignments:{bottom:"Alinhado à parte inferior",left:"Alinhado à esquerda",right:"Alinhado à direita",top:"Alinhado ao topo"},button_size:"Tamanho do botão de menu (e.g. '40px')",buttons:{alignment:"Alinhamento do botão",alignments:{matching:"Mesmo alinhamento do menu",opposing:"Opor-se ao alinhamento do menu"},camera_ui:"Interface de usuário da câmera",cameras:"Selecionar câmera",clips:"Clipes",display_mode:"",download:"Baixe a mídia do evento",enabled:"Botão ativado",expand:"Expandir",frigate:"Frigate menu / Visualização padrão",fullscreen:"Tela cheia",icon:"Ícone",image:"Imagem",live:"Ao vivo",media_player:"Enviar para o reprodutor de mídia",microphone:"",mute:"",permanent:"",play:"",priority:"Prioridade",ptz_controls:"",ptz_home:"",recordings:"Gravações",screenshot:"",snapshots:"Instantâneos",substreams:"Substream(s)",timeline:"Linha do tempo",type:"",types:{momentary:"",toggle:""}},position:"Posição do menu",positions:{bottom:"Posicionado na parte inferior",left:"Posicionado à esquerda",right:"Posicionado à direita",top:"Posicionado no topo"},style:"Estilo do menu",styles:{hidden:"Menu oculto",hover:"Menu suspenso","hover-card":"Menu suspenso (em todo o cartão)",none:"Sem menu",outside:"Menu externo",overlay:"Menu sobreposto"}},overrides:{info:"Esta configuração do cartão especificou manualmente as substituições configuradas que podem substituir os valores mostrados no editor visual, consulte o editor de código para visualizar/modificar essas substituições"},performance:{features:{animated_progress_indicator:"Indicador de Carregamento Animado",editor_label:"Opções de recursos",max_simultaneous_engine_requests:"",media_chunk_size:"Tamanho do bloco de mídia"},style:{border_radius:"Curvas",box_shadow:"Sombras",editor_label:"Opções de estilo"},warning:"Este cartão está no modo de baixo desempenho, então os padrões foram alterados para otimizar o desempenho"},profiles:{casting:"",editor_label:"","low-performance":"",scrubbing:""},status_bar:{height:"",items:{enabled:"",engine:"",live_provider:"",priority:"",resolution:"",technology:"",title:""},popup_seconds:"",position:"",positions:{bottom:"",top:""},style:"",styles:{hover:"","hover-card":"",none:"",outside:"",overlay:"",popup:""}},view:{camera_select:"Visualização de câmeras recém-selecionadas",dark_mode:"Modo escuro",dark_modes:{auto:"Automático",off:"Desligado",on:"Ligado"},default:"Visualização padrão",default_cycle_camera:"Percorrer as câmeras quando a visualização padrão for atualizada",default_reset:{after_interaction:"",editor_label:"",entities:"",every_seconds:"Atualize a visualização padrão a cada X segundos (0 = nunca)",interaction_mode:"",interaction_modes:{active:"",all:"",inactive:""}},interaction_seconds:"",keyboard_shortcuts:{editor_label:"",enabled:"",ptz_down:"",ptz_home:"",ptz_left:"",ptz_right:"",ptz_up:"",ptz_zoom_in:"",ptz_zoom_out:""},triggers:{actions:{editor_label:"",interaction_mode:"",interaction_modes:{active:"",all:"",inactive:""},trigger:"",triggers:{default:"",live:"",media:"",none:""},untrigger:"",untriggers:{default:"",none:""}},editor_label:"",filter_selected_camera:"",show_trigger_status:"Pulsar borda quando acionado",untrigger_seconds:"Segundos após a mudar para o estado inativo para desacionar"},views:{clip:"Clipe mais recente",clips:"Galeria de clipes",current:"Visualização atual",image:"Imagem estática",live:"Visualização ao vivo",recording:"Gravação mais recente",recordings:"Galeria de gravações",snapshot:"Snapshot mais recente",snapshots:"Galeria de Snapshots",timeline:"Visualização da linha do tempo"}}},o={grid:"",single:""},i={add_new_camera:"Adicionar nova câmera",button:"Botão",camera:"Câmera",cameras:"Câmeras",cameras_secondary:"Quais câmeras renderizar neste cartão",delete:"Excluir",dimensions:"",dimensions_secondary:"",image:"Imagem",image_secondary:"Opções de visualização de imagem estática",live:"Ao vivo",live_secondary:"Opções de visualização da câmera ao vivo",media_gallery:"Galeria de mídia",media_gallery_secondary:"Opções da galeria de mídia",media_viewer:"Visualizador de eventos",media_viewer_secondary:"Opções do visualizador de Snapshots e clipes",menu:"Menu",menu_secondary:"Opções de aparência do menu",move_down:"Descer",move_up:"Subir",overrides:"As substituições estão ativas",overrides_secondary:"Substituições de configuração dinâmica detectadas",performance:"Desempenho",performance_secondary:"Opções de desempenho do cartão",profiles:"",profiles_secondary:"",status_bar:"",status_bar_secondary:"",timeline:"Linha do tempo",timeline_secondary:"Opções do evento da linha do tempo",upgrade:"Upgrade",upgrade_available:"Um upgrade automático da configuração de cartão está disponível",view:"Visualizar",view_secondary:"O que o cartão deve mostrar e como mostrá-lo"},r={ptz:{down:"Baixo",home:"Casa",left:"Esquerda",right:"Direita",up:"Cima",zoom_in:"Aumentar Zoom",zoom_out:"Reduzir Zoom"}},t={awaiting_live:"",awaiting_media:"",camera_initialization:"",camera_initialization_reolink:"",could_not_render_elements:"Não foi possível renderizar os elementos da imagem",could_not_resolve:"Não foi possível resolver o URL de mídia",diagnostics:"Diagnósticos do cartão. Revise as informações confidenciais antes de compartilhar",download_no_media:"Nenhuma mídia para download",download_sign_failed:"Não foi possível assinar o URL de mídia para download",duplicate_camera_id:"Duplique o ID da câmera Frigate para a câmera a seguir, use o parâmetro 'id' para identificar exclusivamente as câmeras",empty_response:"Sem resposta do Home Assistant para a solicitação",failed_response:"Falha ao receber resposta do Home Assistant para solicitação",failed_retain:"Não foi possível reter o evento",failed_sign:"Não foi possível assinar a URL do Home Assistant",image_load_error:"A imagem não pôde ser carregada",invalid_configuration:"Configuração inválida",invalid_configuration_no_hint:"Nenhuma dica de local disponível (tipo incorreto ou ausente?)",invalid_configuration_override:"",invalid_elements_config:"Configuração de elementos de imagem inválida",invalid_response:"Resposta inválida recebida do Home Assistant para a solicitação",jsmpeg_no_player:"Não foi possível iniciar o player JSMPEG",live_camera_no_endpoint:"Não foi possível obter o endereço da câmera para este provedor ao vivo (configuração incompleta?)",live_camera_not_found:"A entidade de câmera configurada não foi encontrada",live_camera_unavailable:"Câmera indisponível",no_camera_engine:"Não foi possível determinar o motor adequado para a câmera",no_camera_entity:"Não foi possível encontrar a entidade da câmera",no_camera_entity_for_triggers:"Uma entidade de câmera é necessária para detectar automaticamente os gatilhos",no_camera_id:"Não foi possível determinar o ID da câmera para a câmera a seguir, pode ser necessário definir o parâmetro 'id' manualmente",no_camera_name:"Não foi possível determinar o nome da câmera da Frigate, especifique 'camera_entity' ou 'camera_name' para a câmera a seguir",no_dashboard_or_view:"",no_live_camera:"O parâmetro camera_entity deve ser definido e válido para este provedor ativo",no_supported_camera:"",no_supported_cameras:"",reconnecting:"Reconectando",too_many_automations:"",troubleshooting:"Verifique a solução de problemas",unknown:"Erro desconhecido",upgrade_available:"Uma atualização automatizada da configuração do cartão está disponível, visite o editor visual do cartão",webrtc_card_reported_error:"O cartão WebRTC relatou um erro",webrtc_card_waiting:"Aguardando o cartão WebRTC carregar ..."},s={camera:"Câmera",duration:"Duração",in_progress:"Em andamento",score:"Pontuação",seek:"Procurar",start:"Início",tag:"Etiqueta",what:"O que",where:"Onde"},n={assign:"",assigning:"",modifiers:{alt:"",ctrl:"",meta:"",shift:""},unassign:""},d={all:"Todos",camera:"Câmera",favorite:"Favorito",media_type:"Tipo de mídia",media_types:{clips:"Clipes",recordings:"Gravações",snapshots:"Instantâneos"},not_favorite:"Não favorito",select_camera:"Selecione a câmera...",select_favorite:"Selecione favorito...",select_media_type:"Selecione o tipo de mídia...",select_tag:"Selecione a etiqueta...",select_what:"Selecione o que...",select_when:"Selecione quando...",select_where:"Selecione onde...",tag:"Etiqueta",what:"O que",when:"Quando",whens:{custom:"",past_month:"Mês passado",past_week:"Semana passada",today:"Hoje",yesterday:"Ontem"},where:"Onde"},m={unseekable:""},l={camera:"Câmera",duration:"Duração",events:"Eventos",in_progress:"Em andamento",seek:"Procurar",start:"Começar"},c={download:"Baixar mídia",no_thumbnail:"Nenhuma miniatura disponível",retain_indefinitely:"Evento será retido por tempo indeterminado",timeline:"Ver evento na linha do tempo"},u={select_date:"Escolha a data"},p={common:e,config:a,display_modes:o,editor:i,elements:r,error:t,event:s,key_assigner:n,media_filter:d,media_viewer:m,recording:l,thumbnail:c,timeline:u};export{e as common,a as config,p as default,o as display_modes,i as editor,r as elements,t as error,s as event,n as key_assigner,d as media_filter,m as media_viewer,l as recording,c as thumbnail,u as timeline}; diff --git a/config/www/community/frigate-hass-card/lang-pt-BR-83a703b9.js.gz b/config/www/community/frigate-hass-card/lang-pt-BR-83a703b9.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..53e5bad7cd8f6ca57c6bfe976a8d2ede402ca410 GIT binary patch literal 5948 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 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/lang-pt-PT-c4863423.js b/config/www/community/frigate-hass-card/lang-pt-PT-c4863423.js new file mode 100644 index 00000000..fd669394 --- /dev/null +++ b/config/www/community/frigate-hass-card/lang-pt-PT-c4863423.js @@ -0,0 +1 @@ +var e={frigate_card:"Cartão Frigate",frigate_card_description:"Um cartão da Lovelace para usar com Frigate",live:"Ao Vivo",no_media:"Sem média",recordings:"Gravações",version:"Versão"},a={cameras:{camera_entity:"Entidade da Câmera",capabilities:{capabilities:{clips:"","favorite-events":"","favorite-recordings":"",live:"",menu:"",ptz:"",recordings:"",seek:"",snapshots:"",substream:""},disable:"",disable_except:"",editor_label:""},cast:{dashboard:{dashboard_path:"",view_path:""},editor_label:"",method:"",methods:{dashboard:"",standard:""}},dependencies:{all_cameras:"Mostrar eventos para todas as câmeras nesta câmera",cameras:"Mostrar eventos para câmeras específicas nesta câmera",editor_label:"Opções de dependência"},dimensions:{aspect_ratio:"",editor_label:"",layout:{editor_label:"",fit:"Fit",fits:{contain:"Conter",cover:"Tapar",fill:"Preencher"},pan:{x:"",y:""},position:{editor_label:"",x:"Percentagem da localização horizontal",y:"Percentagem da localização vertical"},view_box:{bottom:"",editor_label:"",left:"",right:"",top:""},zoom:""}},engines:{editor_label:"Editor de etiquetas"},frigate:{camera_name:"Nome da câmera do Frigate (detectado automaticamente pela entidade)",client_id:"ID do cliente do Frigate (para >1 servidor Frigate)",editor_label:"Opções do Frigate",labels:"Etiquetas",url:"URL do servidor Frigate",zones:"Zonas"},go2rtc:{editor_label:"Editor de etiquetas",modes:{editor_label:"Editor de etiquetas",mjpeg:"Mjpeg",mp4:"Mp4",mse:"Mse",webrtc:"Webrtc"},stream:"Stream"},icon:"Ícone para esta câmera (detectado automaticamente pela entidade)",id:"ID exclusivo para esta câmera nesse cartão",image:{editor_label:"Editor etiquetas",refresh_seconds:"Atualizar em segundos",url:"Link"},live_provider:"Fonte de visualização ao vivo para esta câmera",live_provider_options:{editor_label:"Editor de etiquetas"},live_providers:{auto:"Automatico",go2rtc:"Go2rtc",ha:"Ha",image:"Imagem",jsmpeg:"JSMpeg","webrtc-card":"Cartão WebRTC (de @AlexxIT)"},motioneye:{editor_label:"Directoria pre-definido",images:{directory_pattern:"Directoria pre-definido",file_pattern:"Ficheiro pre-definido"},movies:{directory_pattern:"Directoria pre-definida",file_pattern:"Ficheiro pre-definido"},url:"Link"},proxy:{dynamic:"",editor_label:"",media:{auto:"",editor_label:"",false:"",true:""},ssl_ciphers:{auto:"",default:"",editor_label:"",insecure:"",intermediate:"",modern:""},ssl_verification:{auto:"",editor_label:"",false:"",true:""}},reolink:{editor_label:"",media_resolution:{editor_label:"",high:"",low:""},url:""},title:"Título para esta câmera (detectado automaticamente pela entidade)",triggers:{editor_label:"Opções de activação",entities:"Activar a partir de outras entidades",events:{clips:"",editor_label:"",events:"",snapshots:""},motion:"Activar detectando automaticamente o sensor de movimento",occupancy:"Activar detectando automaticamente o sensor de ocupação"},webrtc_card:{editor_label:"Opções do cartão WebRTC",entity:"Entidade de câmera de cartão WebRTC (não é uma câmera Frigate)",url:"URL da câmera do cartão WebRTC"}},common:{controls:{builtin:"",filter:{editor_label:"Editor de titulos",mode:"Modo",modes:{left:"Esquerda",none:"Nenhum",right:"Direita"}},next_previous:{editor_label:"Editor de titulos",size:"Tamanho de controle próximo e anterior",style:"Estilo do controle próximo e anterior",styles:{chevrons:"Setas",icons:"Ícones",none:"Nenhum",thumbnails:"Miniaturas"}},thumbnails:{editor_label:"Editor de titulos",events_media_type:"Mostrar miniaturas de clipes ou snapshots",events_media_types:{clips:"Miniaturas de clipes",snapshots:"Miniaturas de Snapshots"},media_type:"",media_types:{events:"",recordings:""},mode:"Modos",modes:{above:"Miniaturas acima da mídia",below:"Miniaturas abaixo da mídia",left:"Miniaturas em uma gaveta à esquerda",none:"Sem miniaturas",right:"Miniaturas em uma gaveta à direita"},show_details:"Mostrar detalhes",show_download_control:"Mostrar o botão de download",show_favorite_control:"Mostrar o botão de favorito nas miniaturas",show_timeline_control:"Mostrar a linha do tempo nas miniaturas",size:"Tamanho das miniaturas em pixels"},timeline:{editor_label:"Controles de linha do tempo",mode:"Modo",modes:{above:"Por cima",below:"Abaixo",none:"Nenhum"},pan_mode:"",pan_modes:{pan:"",seek:"","seek-in-camera":"","seek-in-media":""}}},display:{editor_label:"",grid_columns:"",grid_max_columns:"",grid_selected_width_factor:"",mode:""},image:{entity:"",entity_parameters:"",mode:"Modo de visualização de imagem",modes:{camera:"Instantâneo da câmera do Home Assistant, da entidade de câmera",entity:"",screensaver:"Logo Frigate embutido",url:"Imagem arbitrária especificada por URL"},refresh_seconds:"Número de segundos após o qual atualizar (0 = nunca)",url:"Imagem arbitrária especificada por URL"},media_action_conditions:{all:"Todas as oportunidades",hidden:"Ao ocultar o navegador/aba",microphone_mute:"",microphone_unmute:"",never:"Nunca",selected:"Ao selecionar",unselected:"Ao desselecionar",visible:"Ao mostrar o navegador/aba"},timeline:{clustering_threshold:"A contagem de eventos nos quais eles são agrupados (0 = sem agrupamento)",events_media_type:"A mídia que a linha do tempo exibe",events_media_types:{all:"Todos os tipos de mídia",clips:"Clipes",snapshots:"Instantâneos"},show_recordings:"Mostrar gravações",style:"",styles:{ribbon:"",stack:""},window_seconds:"A duração padrão da visualização da linha do tempo em segundos"}},dimensions:{aspect_ratio:"Proporção padrão (e.g. '16:9')",aspect_ratio_mode:"Modo de proporção",aspect_ratio_modes:{dynamic:"A proporção se ajusta à mídia",static:"Proporção estática",unconstrained:"Proporção irrestrita"},height:""},live:{auto_mute:"Silenciar câmeras ao vivo automaticamente",auto_pause:"Parar câmeras ao vivo automaticamente",auto_play:"Reproduzir câmeras ao vivo automaticamente",auto_unmute:"Ativar automaticamente o som das câmeras ao vivo",controls:{editor_label:"Controles da visualização ao vivo",ptz:{editor_label:"",hide_home:"",hide_pan_tilt:"",hide_zoom:"",mode:"",modes:{off:"",on:""},orientation:"",orientations:{horizontal:"",vertical:""},position:"",positions:{"bottom-left":"","bottom-right":"","top-left":"","top-right":""}}},draggable:"A visualização ao vivo das câmeras pode ser arrastada/deslizada",lazy_load:"As câmeras ao vivo são carregadas lentamente",lazy_unload:"As câmeras ao vivo são descarregadas preguiçosamente",microphone:{always_connected:"",disconnect_seconds:"",editor_label:"",enabled:"",mute_after_microphone_mute_seconds:""},preload:"Pré-carregar a visualização ao vivo em segundo plano",show_image_during_load:"Mostar imagem durante o carregamento",transition_effect:"Efeito de transição de câmera ao vivo",zoomable:""},media_viewer:{auto_mute:"Silenciar mídia automaticamente",auto_pause:"Parar mídia automaticamente",auto_play:"Reproduzir mídia automaticamente",auto_unmute:"Ativar mídia automaticamente",controls:{editor_label:"Controles do visualizador de mídia"},draggable:"Visualizador de eventos pode ser arrastado/deslizado",lazy_load:"A mídia do Visualizador de eventos é carregada lentamente no carrossel",snapshot_click_plays_clip:"",transition_effect:"Efeito de transição do Visualizador de eventos",transition_effects:{none:"Sem transição",slide:"Transição de slides"},zoomable:""},menu:{alignment:"Alinhamento do menu",alignments:{bottom:"Alinhado à parte inferior",left:"Alinhado à esquerda",right:"Alinhado à direita",top:"Alinhado ao topo"},button_size:"Tamanho do botão de menu (e.g. '40px')",buttons:{alignment:"Alinhamento do botão",alignments:{matching:"Mesmo alinhamento do menu",opposing:"Opor-se ao alinhamento do menu"},camera_ui:"Camera",cameras:"Selecionar câmera",clips:"Clipes",display_mode:"",download:"Descarregar mídia do evento",enabled:"Botão ativado",expand:"Expandir",frigate:"Frigate menu / Visualização padrão",fullscreen:"Tela cheia",icon:"Ícone",image:"Imagem",live:"Ao vivo",media_player:"Enviar para o reprodutor de mídia",microphone:"",mute:"",permanent:"",play:"",priority:"Prioridade",ptz_controls:"",ptz_home:"",recordings:"",screenshot:"",snapshots:"Instantâneos",substreams:"substreams",timeline:"Linha do tempo",type:"",types:{momentary:"",toggle:""}},position:"Posição do menu",positions:{bottom:"Posicionado na parte inferior",left:"Posicionado à esquerda",right:"Posicionado à direita",top:"Posicionado no topo"},style:"Estilo do menu",styles:{hidden:"Menu oculto",hover:"Menu suspenso","hover-card":"",none:"Sem menu",outside:"Menu externo",overlay:"Menu sobreposto"}},overrides:{info:"Esta configuração do cartão especificou manualmente as substituições configuradas que podem substituir os valores mostrados no editor visual, consulte o editor de código para visualizar/modificar essas substituições"},performance:{features:{animated_progress_indicator:"Animação na barra de progresso",editor_label:"Editor de etiquetas",max_simultaneous_engine_requests:"",media_chunk_size:"Tamanho do ficheiro"},style:{border_radius:"Tamanho do bordo",box_shadow:"Caixa de Fundo",editor_label:"Editor de etiquetas"},warning:"Avisos"},profiles:{casting:"",editor_label:"","low-performance":"",scrubbing:""},status_bar:{height:"",items:{enabled:"",engine:"",live_provider:"",priority:"",resolution:"",technology:"",title:""},popup_seconds:"",position:"",positions:{bottom:"",top:""},style:"",styles:{hover:"","hover-card":"",none:"",outside:"",overlay:"",popup:""}},view:{camera_select:"Visualização de câmeras recém-selecionadas",dark_mode:"Modo escuro",dark_modes:{auto:"Automático",off:"Desligado",on:"Ligado"},default:"Visualização padrão",default_cycle_camera:"Percorrer as câmeras quando a visualização padrão for atualizada",default_reset:{after_interaction:"",editor_label:"",entities:"",every_seconds:"Atualize a visualização padrão a cada X segundos (0 = nunca)",interaction_mode:"",interaction_modes:{active:"",all:"",inactive:""}},interaction_seconds:"",keyboard_shortcuts:{editor_label:"",enabled:"",ptz_down:"",ptz_home:"",ptz_left:"",ptz_right:"",ptz_up:"",ptz_zoom_in:"",ptz_zoom_out:""},triggers:{actions:{editor_label:"",interaction_mode:"",interaction_modes:{active:"",all:"",inactive:""},trigger:"",triggers:{default:"",live:"",media:"",none:""},untrigger:"",untriggers:{default:"",none:""}},editor_label:"",filter_selected_camera:"",show_trigger_status:"Exibir estado do gatilho",untrigger_seconds:"Segundos após a mudar para o estado inativo para desacionar"},views:{clip:"Clipe mais recente",clips:"Galeria de clipes",current:"Visualização atual",image:"Imagem estática",live:"Visualização ao vivo",recording:"",recordings:"",snapshot:"Snapshot mais recente",snapshots:"Galeria de Snapshots",timeline:"Visualização da linha do tempo"}}},o={grid:"",single:""},i={add_new_camera:"Adicionar nova câmera",button:"Botão",camera:"Câmera",cameras:"Câmeras",cameras_secondary:"Câmeras para renderizar neste cartão",delete:"Excluir",dimensions:"",dimensions_secondary:"",image:"Imagem",image_secondary:"Opções de visualização de imagem estática",live:"Ao vivo",live_secondary:"Opções de visualização da câmera ao vivo",media_gallery:"Galeria",media_gallery_secondary:"Galeria Secundaria",media_viewer:"Visualizador de eventos",media_viewer_secondary:"Opções do visualizador de Snapshots e clipes",menu:"Menu",menu_secondary:"Opções de aparência do menu",move_down:"Descer",move_up:"Subir",overrides:"As substituições estão ativas",overrides_secondary:"Substituições de configuração dinâmica detectadas",performance:"",performance_secondary:"",profiles:"",profiles_secondary:"",status_bar:"",status_bar_secondary:"",timeline:"Linha do tempo",timeline_secondary:"Opções do evento da linha do tempo",upgrade:"Actualização",upgrade_available:"Está disponível uma atualização automática do cartão",view:"Visualizar",view_secondary:"O que deve ser mostrado neste cartão"},t={ptz:{down:"Baixo",home:"Origem",left:"Esquerda",right:"Direira",up:"Cima",zoom_in:"Ampliar",zoom_out:"Reduzir"}},r={awaiting_live:"",awaiting_media:"",camera_initialization:"",camera_initialization_reolink:"",could_not_render_elements:"Não foi possível renderizar os elementos da imagem",could_not_resolve:"Não foi possível resolver o URL de mídia",diagnostics:"Diagnósticos do cartão. Reveja as informações confidenciais antes de partilhar",download_no_media:"Nenhuma mídia para download",download_sign_failed:"Não foi possível assinar o URL de mídia para download",duplicate_camera_id:"Duplique o ID da câmera Frigate para a câmera a seguir, use o parâmetro 'id' para identificar exclusivamente as câmeras",empty_response:"Sem resposta do Home Assistant para a solicitação",failed_response:"Falha ao receber resposta do Home Assistant para solicitação",failed_retain:"Não foi possível reter o evento",failed_sign:"Não foi possível assinar a URL do Home Assistant",image_load_error:"A imagem não pôde ser carregada",invalid_configuration:"Configuração inválida",invalid_configuration_no_hint:"Nenhuma dica de local disponível (tipo incorreto ou ausente?)",invalid_configuration_override:"",invalid_elements_config:"Configuração de elementos de imagem inválida",invalid_response:"Resposta inválida recebida do Home Assistant para a solicitação",jsmpeg_no_player:"Não foi possível iniciar o player JSMPEG",live_camera_no_endpoint:"Nenhuma câmera ao vivo",live_camera_not_found:"Nenhuma câmera ao vivo não foi encontrada",live_camera_unavailable:"Câmera ao vivo indisponivel",no_camera_engine:"Não existe câmera",no_camera_entity:"Não existe uma entidade câmera",no_camera_entity_for_triggers:"Não existe camera para a acção",no_camera_id:"Não foi possível determinar o ID da câmera para a câmera a seguir, pode ser necessário definir o parâmetro 'id' manualmente",no_camera_name:"Não foi possível determinar o nome da câmera da Frigate, especifique 'camera_entity' ou 'camera_name' para a câmera a seguir",no_dashboard_or_view:"",no_live_camera:"O parâmetro camera_entity deve ser definido e válido para este serviço ativo",no_supported_camera:"",no_supported_cameras:"",reconnecting:"A voltar a ligar",too_many_automations:"",troubleshooting:"Verifique a solução de problemas",unknown:"Erro desconhecido",upgrade_available:"Uma atualização automatizada da configuração do cartão está disponível, visite o editor visual do cartão",webrtc_card_reported_error:"O cartão WebRTC relatou um erro",webrtc_card_waiting:"Aguardar o cartão WebRTC carregar ..."},s={camera:"Camera",duration:"Duração",in_progress:"Em andamento",score:"Pontuação",seek:"Procurar",start:"Início",tag:"",what:"O quê",where:"Onde"},n={assign:"",assigning:"",modifiers:{alt:"",ctrl:"",meta:"",shift:""},unassign:""},d={all:"Todos",camera:"Camera",favorite:"Favoritos",media_type:"Tipos de media",media_types:{clips:"Clips",recordings:"Gravações",snapshots:"Imagens"},not_favorite:"Não favorito",select_camera:"Seleciona a camara",select_favorite:"Seleciona o favorito",select_media_type:"Seleciona o tipo de media",select_tag:"",select_what:"Seleciona",select_when:"Seleciona quando",select_where:"Seleciona onde",tag:"",what:"O que",when:"Quando",whens:{custom:"",past_month:"O mes passado",past_week:"A semana passada",today:"Hoje",yesterday:"Ontem"},where:"Onde"},l={unseekable:""},m={camera:"Camera",duration:"Duração",events:"Eventos",in_progress:"Em andamento",seek:"Procurar",start:"Começar"},c={download:"",no_thumbnail:"Nenhuma miniatura disponível",retain_indefinitely:"Evento será retido por tempo indeterminado",timeline:"Ver evento na linha do tempo"},u={select_date:"Selecionar a data"},_={common:e,config:a,display_modes:o,editor:i,elements:t,error:r,event:s,key_assigner:n,media_filter:d,media_viewer:l,recording:m,thumbnail:c,timeline:u};export{e as common,a as config,_ as default,o as display_modes,i as editor,t as elements,r as error,s as event,n as key_assigner,d as media_filter,l as media_viewer,m as recording,c as thumbnail,u as timeline}; diff --git a/config/www/community/frigate-hass-card/lang-pt-PT-c4863423.js.gz b/config/www/community/frigate-hass-card/lang-pt-PT-c4863423.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..faec0e45b8fd18d7588fe2a6a7ed136008c6fe64 GIT binary patch literal 5507 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 F000)s)uaFb literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/media-1a34ac2c.js b/config/www/community/frigate-hass-card/media-1a34ac2c.js new file mode 100644 index 00000000..4def2bf4 --- /dev/null +++ b/config/www/community/frigate-hass-card/media-1a34ac2c.js @@ -0,0 +1,33 @@ +import{cL as t,cM as a,dC as n,dD as i,cP as o,dE as e,_ as r,n as s,b as c,t as d,a as l,dF as h,x as p,e as m,dG as u,r as g,dH as _,dI as f,dJ as v,dK as b,dL as y,l as z}from"./card-45855f1f.js"; +/** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const w={},C=t(class extends a{constructor(){super(...arguments),this.ot=w}render(t,a){return a()}update(t,[a,i]){if(Array.isArray(a)){if(Array.isArray(this.ot)&&this.ot.length===a.length&&a.every(((t,a)=>t===this.ot[a])))return n}else if(this.ot===a)return n;return this.ot=Array.isArray(a)?Array.from(a):a,this.render(a,i)}});class x{constructor(){this._options=null,this._viewportIntersecting=null,this._microphoneMuteTimer=new i,this._root=null,this._eventListeners=new Map,this._children=[],this._target=null,this._mutationObserver=new MutationObserver(this._mutationHandler.bind(this)),this._intersectionObserver=new IntersectionObserver(this._intersectionHandler.bind(this)),this._mediaLoadedHandler=async t=>{this._target?.index===t&&(await this._unmuteTargetIfConfigured(this._target.selected?"selected":"visible"),await this._playTargetIfConfigured(this._target.selected?"selected":"visible"))},this._visibilityHandler=async()=>{await this._changeVisibility("visible"===document.visibilityState)},this._changeVisibility=async t=>{t?(await this._unmuteTargetIfConfigured("visible"),await this._playTargetIfConfigured("visible")):(await this._pauseAllIfConfigured("hidden"),await this._muteAllIfConfigured("hidden"))},this._microphoneChangeHandler=async t=>{"unmuted"===t?await this._unmuteTargetIfConfigured("microphone"):"muted"===t&&this._options?.autoMuteConditions?.includes("microphone")&&this._microphoneMuteTimer.start(this._options.microphoneMuteSeconds??60,(async()=>{await this._muteTargetIfConfigured("microphone")}))}}setOptions(t){this._options=t,this._options?.microphoneManager&&(this._options.microphoneManager.removeListener(this._microphoneChangeHandler),this._options.microphoneManager.addListener(this._microphoneChangeHandler))}hasRoot(){return!!this._root}destroy(){this._viewportIntersecting=null,this._microphoneMuteTimer.stop(),this._root=null,this._removeChildHandlers(),this._children=[],this._target=null,this._mutationObserver.disconnect(),this._intersectionObserver.disconnect(),this._options?.microphoneManager?.removeListener(this._microphoneChangeHandler),document.removeEventListener("visibilitychange",this._visibilityHandler)}async setTarget(t,a){this._target?.index===t&&this._target?.selected===a||(this._target?.selected&&(await this._pauseTargetIfConfigured("unselected"),await this._muteTargetIfConfigured("unselected"),this._microphoneMuteTimer.stop()),this._target={selected:a,index:t},a?(await this._unmuteTargetIfConfigured("selected"),await this._playTargetIfConfigured("selected")):(await this._unmuteTargetIfConfigured("visible"),await this._playTargetIfConfigured("visible")))}unsetTarget(){this._target=null}async _playTargetIfConfigured(t){null!==this._target&&this._options?.autoPlayConditions?.includes(t)&&await this._play(this._target.index)}async _play(t){await(this._children[t]?.play())}async _unmuteTargetIfConfigured(t){null!==this._target&&this._options?.autoUnmuteConditions?.includes(t)&&await this._unmute(this._target.index)}async _unmute(t){await(this._children[t]?.unmute())}async _pauseAllIfConfigured(t){if(this._options?.autoPauseConditions?.includes(t))for(const t of this._children.keys())await this._pause(t)}async _pauseTargetIfConfigured(t){null!==this._target&&this._options?.autoPauseConditions?.includes(t)&&await this._pause(this._target.index)}async _pause(t){await(this._children[t]?.pause())}async _muteAllIfConfigured(t){if(this._options?.autoMuteConditions?.includes(t))for(const t of this._children.keys())await this._mute(t)}async _muteTargetIfConfigured(t){null!==this._target&&this._options?.autoMuteConditions?.includes(t)&&await this._mute(this._target.index)}async _mute(t){await(this._children[t]?.mute())}_mutationHandler(t,a){this._initializeRoot()}_removeChildHandlers(){for(const[t,a]of this._eventListeners.entries())t.removeEventListener("frigate-card:media:loaded",a);this._eventListeners.clear()}initialize(t){this._root=t,this._initializeRoot(),document.addEventListener("visibilitychange",this._visibilityHandler),this._intersectionObserver.disconnect(),this._intersectionObserver.observe(t),this._mutationObserver.disconnect(),this._mutationObserver.observe(this._root,{childList:!0,subtree:!0})}_initializeRoot(){if(this._options&&this._root){this._removeChildHandlers(),this._children=[...this._root.querySelectorAll(this._options.playerSelector)];for(const[t,a]of this._children.entries()){const n=()=>this._mediaLoadedHandler(t);this._eventListeners.set(a,n),a.addEventListener("frigate-card:media:loaded",n)}}}async _intersectionHandler(t){const a=this._viewportIntersecting;this._viewportIntersecting=t.some((t=>t.isIntersecting)),null!==a&&a!==this._viewportIntersecting&&await this._changeVisibility(this._viewportIntersecting)}}const I={active:!0,breakpoints:{},lazyLoadCount:0};function A(t={}){let a,n,i;const o=new Set,e=["init","select"],r=["select"];function s(){"hidden"===document.visibilityState&&a.lazyUnloadConditions?.includes("hidden")?o.forEach((t=>{a.lazyUnloadCallback&&(a.lazyUnloadCallback(t,i[t]),o.delete(t))})):"visible"===document.visibilityState&&a.lazyLoadCallback&&d()}function c(t){return o.has(t)}function d(){const t=a.lazyLoadCount,e=n.selectedScrollSnap(),r=new Set;for(let a=1;a<=t&&e-a>=0;a++)r.add(e-a);r.add(e);for(let a=1;a<=t&&e+a{!c(t)&&a.lazyLoadCallback&&(o.add(t),a.lazyLoadCallback(t,i[t]))}))}function l(){const t=n.previousScrollSnap();c(t)&&a.lazyUnloadCallback&&(a.lazyUnloadCallback(t,i[t]),o.delete(t))}return{name:"autoLazyLoad",options:t,init:function(o,c){const{mergeOptions:h,optionsAtMedia:p}=c,m=h(I,t);a=p(m),n=o,i=n.slideNodes(),a.lazyLoadCallback&&e.forEach((t=>n.on(t,d))),a.lazyUnloadCallback&&a.lazyUnloadConditions?.includes("unselected")&&r.forEach((t=>n.on(t,l))),document.addEventListener("visibilitychange",s)},destroy:function(){a.lazyLoadCallback&&e.forEach((t=>n.off(t,d))),a.lazyUnloadCallback&&r.forEach((t=>n.off(t,l))),document.removeEventListener("visibilitychange",s)}}}function L(){let t,a=[];const n=[];function i(i){const o=i.composedPath();for(const[e,r]of[...a.entries()].reverse())if(o.includes(r)){n[e]=i.detail,e!==t.selectedScrollSnap()&&i.stopPropagation();break}}function e(i){const o=i.composedPath();for(const[e,r]of a.entries())if(o.includes(r)){delete n[e],e!==t.selectedScrollSnap()&&i.stopPropagation();break}}function r(){const i=t.selectedScrollSnap(),e=n[i];e&&o(a[i],e)}return{name:"autoMediaLoadedInfo",options:{},init:function(n){t=n,a=t.slideNodes();for(const t of a)t.addEventListener("frigate-card:media:loaded",i),t.addEventListener("frigate-card:media:unloaded",e);t.on("init",r),t.containerNode().addEventListener("frigate-card:carousel:force-select",r)},destroy:function(){for(const t of a)t.removeEventListener("frigate-card:media:loaded",i),t.removeEventListener("frigate-card:media:unloaded",e);t.off("init",r),t.containerNode().removeEventListener("frigate-card:carousel:force-select",r)}}}class S{constructor(t){this._scrolling=!1,this._shouldReInitOnScrollStop=!1,this._scrollingStart=()=>{this._scrolling=!0},this._scrollingStop=()=>{this._scrolling=!1,this._shouldReInitOnScrollStop&&(this._shouldReInitOnScrollStop=!1,this._debouncedReInit())},this._debouncedReInit=e((()=>{this._scrolling=!1,this._shouldReInitOnScrollStop=!1,this._emblaApi?.reInit()}),500,{trailing:!0}),this._emblaApi=t,this._emblaApi.on("scroll",this._scrollingStart),this._emblaApi.on("settle",this._scrollingStop),this._emblaApi.on("destroy",this.destroy)}destroy(){this._emblaApi.off("scroll",this._scrollingStart),this._emblaApi.off("settle",this._scrollingStop),this._emblaApi.off("destroy",this.destroy)}reinit(){this._scrolling?this._shouldReInitOnScrollStop=!0:this._debouncedReInit()}}function T(){let t,a=null,n=null;const i=new Map,o=new ResizeObserver((function(t){let a=!1;for(const n of t){const t={height:n.contentRect.height,width:n.contentRect.width},o=i.get(n.target);t.width&&t.height&&(o?.height!==t.height||o?.width!==t.width)&&(i.set(n.target,t),a=!0)}a&&s()})),r=new IntersectionObserver((function(t){const i=t.some((t=>t.isIntersecting));if(i!==n){const t=i&&null!==n;n=i,t&&a?.reinit()}})),s=e((()=>function(){const{slideRegistry:n,options:{axis:i}}=t.internalEngine();if("y"===i)return;t.containerNode().style.removeProperty("max-height");const o=n[t.selectedScrollSnap()],e=t.slideNodes(),r=Math.max(...o.map((t=>e[t].getBoundingClientRect().height)));!isNaN(r)&&r>0&&(t.containerNode().style.maxHeight=`${r}px`);a?.reinit()}()),200,{trailing:!0});return{name:"autoSize",options:{},init:function(n){t=n,a=new S(t),r.observe(t.containerNode()),o.observe(t.containerNode());for(const a of t.slideNodes())o.observe(a);t.containerNode().addEventListener("frigate-card:media:loaded",s),t.on("settle",s)},destroy:function(){r.disconnect(),o.disconnect(),a?.destroy(),t.containerNode().removeEventListener("frigate-card:media:loaded",s),t.off("settle",s)}}}let $=class extends l{constructor(){super(...arguments),this.disabled=!1,this.label="",this._embedThumbnailTask=h(this,(()=>this.hass),(()=>this.thumbnail))}set controlConfig(t){t?.size&&this.style.setProperty("--frigate-card-next-prev-size",`${t.size}px`),this._controlConfig=t}render(){if(this.disabled||!this._controlConfig||"none"==this._controlConfig.style)return p``;const t=!this.thumbnail||["chevrons","icons"].includes(this._controlConfig.style),a={controls:!0,previous:"previous"===this.direction,next:"next"===this.direction,thumbnails:!t,icons:t,button:t};if(t){const t=this.thumbnail&&this.icon&&"chevrons"!==this._controlConfig.style?this.icon:"previous"===this.direction?"mdi:chevron-left":"mdi:chevron-right";return p` + + `}return u(this,this._embedThumbnailTask,(t=>t?p``:p``),{inProgressFunc:()=>p`

    `})}static get styles(){return g("ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n --frigate-card-next-prev-size: 48px;\n --frigate-card-next-prev-size-hover: calc(var(--frigate-card-next-prev-size) * 2);\n --frigate-card-prev-position: 45px;\n --frigate-card-next-position: 45px;\n --mdc-icon-button-size: var(--frigate-card-next-prev-size);\n --mdc-icon-size: calc(var(--mdc-icon-button-size) / 2);\n}\n\n.controls {\n position: absolute;\n z-index: 1;\n overflow: hidden;\n}\n\n.controls.previous {\n left: var(--frigate-card-prev-position);\n}\n\n.controls.next {\n right: var(--frigate-card-next-position);\n}\n\n.controls.icons {\n top: calc(50% - var(--frigate-card-next-prev-size) / 2);\n}\n\n.controls.thumbnails {\n border-radius: 50%;\n height: var(--frigate-card-next-prev-size);\n top: calc(50% - var(--frigate-card-next-prev-size) / 2);\n box-shadow: var(--frigate-card-css-box-shadow, 0px 0px 20px 5px black);\n transition: all 0.2s ease-out;\n opacity: 0.8;\n aspect-ratio: 1/1;\n}\n\n.controls.thumbnails:hover {\n opacity: 1 !important;\n height: var(--frigate-card-next-prev-size-hover);\n top: calc(50% - var(--frigate-card-next-prev-size-hover) / 2);\n}\n\n.controls.previous.thumbnails:hover {\n left: calc(var(--frigate-card-prev-position) - (var(--frigate-card-next-prev-size-hover) - var(--frigate-card-next-prev-size)) / 2);\n}\n\n.controls.next.thumbnails:hover {\n right: calc(var(--frigate-card-next-position) - (var(--frigate-card-next-prev-size-hover) - var(--frigate-card-next-prev-size)) / 2);\n}")}};r([s({attribute:!1})],$.prototype,"direction",void 0),r([s({attribute:!1})],$.prototype,"hass",void 0),r([c()],$.prototype,"_controlConfig",void 0),r([s({attribute:!1})],$.prototype,"thumbnail",void 0),r([s({attribute:!1})],$.prototype,"icon",void 0),r([s({attribute:!0,type:Boolean})],$.prototype,"disabled",void 0),r([s()],$.prototype,"label",void 0),$=r([d("frigate-card-next-previous-control")],$);class P{constructor(t){this._config=null,this._hass=null,this._cameraManager=null,this._cameraID=null,this._host=t}setConfig(t){this._config=t??null,this._host.setAttribute("data-orientation",t?.orientation??"horizontal"),this._host.setAttribute("data-position",t?.position??"bottom-right"),this._host.setAttribute("style",Object.entries(t?.style??{}).map((([t,a])=>`${t}:${a}`)).join(";"))}getConfig(){return this._config}setCamera(t,a){this._cameraManager=t??null,this._cameraID=a??null}setForceVisibility(t){this._forceVisibility=t}handleAction(t,a){t.stopPropagation();const n=t.detail.action,i=_(n,a);i&&f(this._host,{action:i,...a&&{config:a}})}hasUsefulAction(){const t={pt:!0,z:!0,home:!0};if(!this._cameraID)return t;const a=this._cameraManager?.getCameraCapabilities(this._cameraID);if(!a||!a.hasPTZCapability())return t;const n=a.getPTZCapabilities();return{pt:!!(n?.up||n?.down||n?.left||n?.right),z:!!n?.zoomIn||!!n?.zoomOut,home:!!n?.presets?.length}}shouldDisplay(){return void 0!==this._forceVisibility?this._forceVisibility:"auto"===this._config?.mode?!!this._cameraID&&!!this._cameraManager?.getCameraCapabilities(this._cameraID)?.hasPTZCapability():"on"===this._config?.mode}getPTZActions(){const t=t=>({start_tap_action:v({ptzAction:t?.ptzAction,ptzPhase:"start",ptzPreset:t?.preset}),end_tap_action:v({ptzAction:t?.ptzAction,ptzPhase:"stop",ptzPreset:t?.preset})}),a={};return a.up=t({ptzAction:"up"}),a.down=t({ptzAction:"down"}),a.left=t({ptzAction:"left"}),a.right=t({ptzAction:"right"}),a.zoom_in=t({ptzAction:"zoom_in"}),a.zoom_out=t({ptzAction:"zoom_out"}),a.home={tap_action:v()},a}}let k=class extends l{constructor(){super(...arguments),this._controller=new P(this),this._actions=this._controller.getPTZActions(),this._actionPresence=null}willUpdate(t){t.has("config")&&this._controller.setConfig(this.config),(t.has("cameraManager")||t.has("cameraID"))&&this._controller.setCamera(this.cameraManager,this.cameraID),t.has("forceVisibility")&&this._controller.setForceVisibility(this.forceVisibility),(t.has("cameraID")||t.has("cameraManager"))&&(this._actionPresence=this._controller.hasUsefulAction())}render(){if(!this._controller.shouldDisplay())return;const t=(t,a,n)=>n?p`this._controller.handleAction(t,n)} + >`:p``,a=this._controller.getConfig();return p`
    + ${!a?.hide_pan_tilt&&this._actionPresence?.pt?p`
    + ${t("right","mdi:arrow-right",this._actions.right)} + ${t("left","mdi:arrow-left",this._actions.left)} + ${t("up","mdi:arrow-up",this._actions.up)} + ${t("down","mdi:arrow-down",this._actions.down)} +
    `:""} + ${!a?.hide_zoom&&this._actionPresence?.z?p`
    + ${t("zoom_in","mdi:plus",this._actions.zoom_in)} + ${t("zoom_out","mdi:minus",this._actions.zoom_out)} +
    `:p``} + ${!a?.hide_home&&this._actionPresence?.home?p`
    + ${t("home","mdi:home",this._actions.home)} +
    `:p``} +
    `}static get styles(){return g(":host {\n position: absolute;\n width: fit-content;\n height: fit-content;\n --frigate-card-ptz-icon-size: 24px;\n}\n\n:host([data-position$=-left]) {\n left: 5%;\n}\n\n:host([data-position$=-right]) {\n right: 5%;\n}\n\n:host([data-position^=top-]) {\n top: 5%;\n}\n\n:host([data-position^=bottom-]) {\n bottom: 5%;\n}\n\n/*****************\n * Main Containers\n *****************/\n.ptz {\n display: flex;\n gap: 10px;\n color: var(--light-primary-color);\n opacity: 0.4;\n transition: opacity 0.3s ease-in-out;\n}\n\n:host([data-orientation=vertical]) .ptz {\n flex-direction: column;\n}\n\n:host([data-orientation=horizontal]) .ptz {\n flex-direction: row;\n}\n\n.ptz:hover {\n opacity: 1;\n}\n\n:host([data-orientation=vertical]) .ptz div {\n width: calc(var(--frigate-card-ptz-icon-size) * 3);\n}\n\n:host([data-orientation=horizontal]) .ptz div {\n height: calc(var(--frigate-card-ptz-icon-size) * 3);\n}\n\n.ptz-move,\n.ptz-zoom,\n.ptz-home {\n position: relative;\n background-color: rgba(0, 0, 0, 0.3);\n}\n\n.ptz-move {\n height: calc(var(--frigate-card-ptz-icon-size) * 3);\n width: calc(var(--frigate-card-ptz-icon-size) * 3);\n border-radius: 50%;\n}\n\n:host([data-orientation=horizontal]) .ptz .ptz-zoom,\n:host([data-orientation=horizontal]) .ptz .ptz-home {\n width: calc(var(--frigate-card-ptz-icon-size) * 1.5);\n}\n\n:host([data-orientation=vertical]) .ptz .ptz-zoom,\n:host([data-orientation=vertical]) .ptz .ptz-home {\n height: calc(var(--frigate-card-ptz-icon-size) * 1.5);\n}\n\n.ptz-zoom,\n.ptz-home {\n border-radius: var(--ha-card-border-radius, 4px);\n}\n\n/***********\n * PTZ Icons\n ***********/\nha-icon {\n position: absolute;\n --mdc-icon-size: var(--frigate-card-ptz-icon-size);\n}\n\nha-icon:not(.disabled) {\n cursor: pointer;\n}\n\n.disabled {\n color: var(--disabled-text-color);\n}\n\n.up {\n top: 5px;\n left: 50%;\n transform: translateX(-50%);\n}\n\n.down {\n bottom: 5px;\n left: 50%;\n transform: translateX(-50%);\n}\n\n.left {\n left: 5px;\n top: 50%;\n transform: translateY(-50%);\n}\n\n.right {\n right: 5px;\n top: 50%;\n transform: translateY(-50%);\n}\n\n:host([data-orientation=vertical]) .zoom_in {\n right: 5px;\n top: 50%;\n}\n\n:host([data-orientation=vertical]) .zoom_out {\n left: 5px;\n top: 50%;\n}\n\n:host([data-orientation=horizontal]) .zoom_in {\n left: 50%;\n top: 5px;\n}\n\n:host([data-orientation=horizontal]) .zoom_out {\n left: 50%;\n bottom: 5px;\n}\n\n:host([data-orientation=vertical]) .zoom_in,\n:host([data-orientation=vertical]) .zoom_out {\n transform: translateY(-50%);\n}\n\n:host([data-orientation=horizontal]) .zoom_in,\n:host([data-orientation=horizontal]) .zoom_out {\n transform: translateX(-50%);\n}\n\n.home {\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n}")}};r([s({attribute:!1})],k.prototype,"config",void 0),r([s({attribute:!1})],k.prototype,"cameraManager",void 0),r([s({attribute:!1})],k.prototype,"cameraID",void 0),r([s({attribute:!1})],k.prototype,"forceVisibility",void 0),k=r([d("frigate-card-ptz")],k);const M=(t,a)=>{void 0!==a?.fit?t.style.setProperty("--frigate-card-media-layout-fit",a.fit):t.style.removeProperty("--frigate-card-media-layout-fit");for(const n of["x","y"])void 0!==a?.position?.[n]?t.style.setProperty(`--frigate-card-media-layout-position-${n}`,`${a.position[n]}%`):t.style.removeProperty(`--frigate-card-media-layout-position-${n}`);for(const n of["top","bottom","left","right"])void 0!==a?.view_box?.[n]?t.style.setProperty(`--frigate-card-media-layout-view-box-${n}`,`${a.view_box[n]}%`):t.style.removeProperty(`--frigate-card-media-layout-view-box-${n}`)},E=2,H=(t,a)=>{t._controlsHideTimer&&(t._controlsHideTimer.stop(),delete t._controlsHideTimer,delete t._controlsOriginalValue),t.controls=a},O=(t,a=1)=>{const n=t._controlsOriginalValue??t.controls;H(t,!1),t._controlsHideTimer??=new i,t._controlsOriginalValue=n;const o=()=>{H(t,n),t.removeEventListener("loadstart",o)};t.addEventListener("loadstart",o),t._controlsHideTimer.start(a,(()=>{H(t,n)}))},R=async(t,a)=>{if(a?.play)try{await a.play()}catch(n){if("NotAllowedError"===n.name&&!t.isMuted()){await t.mute();try{await a.play()}catch(t){}}}};export{A,x as M,L as a,T as b,E as c,O as h,C as i,R as p,H as s,M as u}; diff --git a/config/www/community/frigate-hass-card/media-1a34ac2c.js.gz b/config/www/community/frigate-hass-card/media-1a34ac2c.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..1c6fac3eb6350fc057b133d5db70bcc7b21e9781 GIT binary patch literal 6207 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.ot[a])))return n}else if(this.ot===a)return n;return this.ot=Array.isArray(a)?Array.from(a):a,this.render(a,i)}});class x{constructor(){this._options=null,this._viewportIntersecting=null,this._microphoneMuteTimer=new i,this._root=null,this._eventListeners=new Map,this._children=[],this._target=null,this._mutationObserver=new MutationObserver(this._mutationHandler.bind(this)),this._intersectionObserver=new IntersectionObserver(this._intersectionHandler.bind(this)),this._mediaLoadedHandler=async t=>{this._target?.index===t&&(await this._unmuteTargetIfConfigured(this._target.selected?"selected":"visible"),await this._playTargetIfConfigured(this._target.selected?"selected":"visible"))},this._visibilityHandler=async()=>{await this._changeVisibility("visible"===document.visibilityState)},this._changeVisibility=async t=>{t?(await this._unmuteTargetIfConfigured("visible"),await this._playTargetIfConfigured("visible")):(await this._pauseAllIfConfigured("hidden"),await this._muteAllIfConfigured("hidden"))},this._microphoneChangeHandler=async t=>{"unmuted"===t?await this._unmuteTargetIfConfigured("microphone"):"muted"===t&&this._options?.autoMuteConditions?.includes("microphone")&&this._microphoneMuteTimer.start(this._options.microphoneMuteSeconds??60,(async()=>{await this._muteTargetIfConfigured("microphone")}))}}setOptions(t){this._options=t,this._options?.microphoneManager&&(this._options.microphoneManager.removeListener(this._microphoneChangeHandler),this._options.microphoneManager.addListener(this._microphoneChangeHandler))}hasRoot(){return!!this._root}destroy(){this._viewportIntersecting=null,this._microphoneMuteTimer.stop(),this._root=null,this._removeChildHandlers(),this._children=[],this._target=null,this._mutationObserver.disconnect(),this._intersectionObserver.disconnect(),this._options?.microphoneManager?.removeListener(this._microphoneChangeHandler),document.removeEventListener("visibilitychange",this._visibilityHandler)}async setTarget(t,a){this._target?.index===t&&this._target?.selected===a||(this._target?.selected&&(await this._pauseTargetIfConfigured("unselected"),await this._muteTargetIfConfigured("unselected"),this._microphoneMuteTimer.stop()),this._target={selected:a,index:t},a?(await this._unmuteTargetIfConfigured("selected"),await this._playTargetIfConfigured("selected")):(await this._unmuteTargetIfConfigured("visible"),await this._playTargetIfConfigured("visible")))}unsetTarget(){this._target=null}async _playTargetIfConfigured(t){null!==this._target&&this._options?.autoPlayConditions?.includes(t)&&await this._play(this._target.index)}async _play(t){await(this._children[t]?.play())}async _unmuteTargetIfConfigured(t){null!==this._target&&this._options?.autoUnmuteConditions?.includes(t)&&await this._unmute(this._target.index)}async _unmute(t){await(this._children[t]?.unmute())}async _pauseAllIfConfigured(t){if(this._options?.autoPauseConditions?.includes(t))for(const t of this._children.keys())await this._pause(t)}async _pauseTargetIfConfigured(t){null!==this._target&&this._options?.autoPauseConditions?.includes(t)&&await this._pause(this._target.index)}async _pause(t){await(this._children[t]?.pause())}async _muteAllIfConfigured(t){if(this._options?.autoMuteConditions?.includes(t))for(const t of this._children.keys())await this._mute(t)}async _muteTargetIfConfigured(t){null!==this._target&&this._options?.autoMuteConditions?.includes(t)&&await this._mute(this._target.index)}async _mute(t){await(this._children[t]?.mute())}_mutationHandler(t,a){this._initializeRoot()}_removeChildHandlers(){for(const[t,a]of this._eventListeners.entries())t.removeEventListener("frigate-card:media:loaded",a);this._eventListeners.clear()}initialize(t){this._root=t,this._initializeRoot(),document.addEventListener("visibilitychange",this._visibilityHandler),this._intersectionObserver.disconnect(),this._intersectionObserver.observe(t),this._mutationObserver.disconnect(),this._mutationObserver.observe(this._root,{childList:!0,subtree:!0})}_initializeRoot(){if(this._options&&this._root){this._removeChildHandlers(),this._children=[...this._root.querySelectorAll(this._options.playerSelector)];for(const[t,a]of this._children.entries()){const n=()=>this._mediaLoadedHandler(t);this._eventListeners.set(a,n),a.addEventListener("frigate-card:media:loaded",n)}}}async _intersectionHandler(t){const a=this._viewportIntersecting;this._viewportIntersecting=t.some((t=>t.isIntersecting)),null!==a&&a!==this._viewportIntersecting&&await this._changeVisibility(this._viewportIntersecting)}}const I={active:!0,breakpoints:{},lazyLoadCount:0};function A(t={}){let a,n,i;const o=new Set,e=["init","select"],r=["select"];function s(){"hidden"===document.visibilityState&&a.lazyUnloadConditions?.includes("hidden")?o.forEach((t=>{a.lazyUnloadCallback&&(a.lazyUnloadCallback(t,i[t]),o.delete(t))})):"visible"===document.visibilityState&&a.lazyLoadCallback&&d()}function c(t){return o.has(t)}function d(){const t=a.lazyLoadCount,e=n.selectedScrollSnap(),r=new Set;for(let a=1;a<=t&&e-a>=0;a++)r.add(e-a);r.add(e);for(let a=1;a<=t&&e+a{!c(t)&&a.lazyLoadCallback&&(o.add(t),a.lazyLoadCallback(t,i[t]))}))}function l(){const t=n.previousScrollSnap();c(t)&&a.lazyUnloadCallback&&(a.lazyUnloadCallback(t,i[t]),o.delete(t))}return{name:"autoLazyLoad",options:t,init:function(o,c){const{mergeOptions:h,optionsAtMedia:p}=c,m=h(I,t);a=p(m),n=o,i=n.slideNodes(),a.lazyLoadCallback&&e.forEach((t=>n.on(t,d))),a.lazyUnloadCallback&&a.lazyUnloadConditions?.includes("unselected")&&r.forEach((t=>n.on(t,l))),document.addEventListener("visibilitychange",s)},destroy:function(){a.lazyLoadCallback&&e.forEach((t=>n.off(t,d))),a.lazyUnloadCallback&&r.forEach((t=>n.off(t,l))),document.removeEventListener("visibilitychange",s)}}}function L(){let t,a=[];const n=[];function i(i){const o=i.composedPath();for(const[e,r]of[...a.entries()].reverse())if(o.includes(r)){n[e]=i.detail,e!==t.selectedScrollSnap()&&i.stopPropagation();break}}function e(i){const o=i.composedPath();for(const[e,r]of a.entries())if(o.includes(r)){delete n[e],e!==t.selectedScrollSnap()&&i.stopPropagation();break}}function r(){const i=t.selectedScrollSnap(),e=n[i];e&&o(a[i],e)}return{name:"autoMediaLoadedInfo",options:{},init:function(n){t=n,a=t.slideNodes();for(const t of a)t.addEventListener("frigate-card:media:loaded",i),t.addEventListener("frigate-card:media:unloaded",e);t.on("init",r),t.containerNode().addEventListener("frigate-card:carousel:force-select",r)},destroy:function(){for(const t of a)t.removeEventListener("frigate-card:media:loaded",i),t.removeEventListener("frigate-card:media:unloaded",e);t.off("init",r),t.containerNode().removeEventListener("frigate-card:carousel:force-select",r)}}}class S{constructor(t){this._scrolling=!1,this._shouldReInitOnScrollStop=!1,this._scrollingStart=()=>{this._scrolling=!0},this._scrollingStop=()=>{this._scrolling=!1,this._shouldReInitOnScrollStop&&(this._shouldReInitOnScrollStop=!1,this._debouncedReInit())},this._debouncedReInit=e((()=>{this._scrolling=!1,this._shouldReInitOnScrollStop=!1,this._emblaApi?.reInit()}),500,{trailing:!0}),this._emblaApi=t,this._emblaApi.on("scroll",this._scrollingStart),this._emblaApi.on("settle",this._scrollingStop),this._emblaApi.on("destroy",this.destroy)}destroy(){this._emblaApi.off("scroll",this._scrollingStart),this._emblaApi.off("settle",this._scrollingStop),this._emblaApi.off("destroy",this.destroy)}reinit(){this._scrolling?this._shouldReInitOnScrollStop=!0:this._debouncedReInit()}}function T(){let t,a=null,n=null;const i=new Map,o=new ResizeObserver((function(t){let a=!1;for(const n of t){const t={height:n.contentRect.height,width:n.contentRect.width},o=i.get(n.target);t.width&&t.height&&(o?.height!==t.height||o?.width!==t.width)&&(i.set(n.target,t),a=!0)}a&&s()})),r=new IntersectionObserver((function(t){const i=t.some((t=>t.isIntersecting));if(i!==n){const t=i&&null!==n;n=i,t&&a?.reinit()}})),s=e((()=>function(){const{slideRegistry:n,options:{axis:i}}=t.internalEngine();if("y"===i)return;t.containerNode().style.removeProperty("max-height");const o=n[t.selectedScrollSnap()],e=t.slideNodes(),r=Math.max(...o.map((t=>e[t].getBoundingClientRect().height)));!isNaN(r)&&r>0&&(t.containerNode().style.maxHeight=`${r}px`);a?.reinit()}()),200,{trailing:!0});return{name:"autoSize",options:{},init:function(n){t=n,a=new S(t),r.observe(t.containerNode()),o.observe(t.containerNode());for(const a of t.slideNodes())o.observe(a);t.containerNode().addEventListener("frigate-card:media:loaded",s),t.on("settle",s)},destroy:function(){r.disconnect(),o.disconnect(),a?.destroy(),t.containerNode().removeEventListener("frigate-card:media:loaded",s),t.off("settle",s)}}}let $=class extends l{constructor(){super(...arguments),this.disabled=!1,this.label="",this._embedThumbnailTask=h(this,(()=>this.hass),(()=>this.thumbnail))}set controlConfig(t){t?.size&&this.style.setProperty("--frigate-card-next-prev-size",`${t.size}px`),this._controlConfig=t}render(){if(this.disabled||!this._controlConfig||"none"==this._controlConfig.style)return p``;const t=!this.thumbnail||["chevrons","icons"].includes(this._controlConfig.style),a={controls:!0,previous:"previous"===this.direction,next:"next"===this.direction,thumbnails:!t,icons:t,button:t};if(t){const t=this.thumbnail&&this.icon&&"chevrons"!==this._controlConfig.style?this.icon:"previous"===this.direction?"mdi:chevron-left":"mdi:chevron-right";return p` + + `}return u(this,this._embedThumbnailTask,(t=>t?p``:p``),{inProgressFunc:()=>p`
    `})}static get styles(){return g("ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n --frigate-card-next-prev-size: 48px;\n --frigate-card-next-prev-size-hover: calc(var(--frigate-card-next-prev-size) * 2);\n --frigate-card-prev-position: 45px;\n --frigate-card-next-position: 45px;\n --mdc-icon-button-size: var(--frigate-card-next-prev-size);\n --mdc-icon-size: calc(var(--mdc-icon-button-size) / 2);\n}\n\n.controls {\n position: absolute;\n z-index: 1;\n overflow: hidden;\n}\n\n.controls.previous {\n left: var(--frigate-card-prev-position);\n}\n\n.controls.next {\n right: var(--frigate-card-next-position);\n}\n\n.controls.icons {\n top: calc(50% - var(--frigate-card-next-prev-size) / 2);\n}\n\n.controls.thumbnails {\n border-radius: 50%;\n height: var(--frigate-card-next-prev-size);\n top: calc(50% - var(--frigate-card-next-prev-size) / 2);\n box-shadow: var(--frigate-card-css-box-shadow, 0px 0px 20px 5px black);\n transition: all 0.2s ease-out;\n opacity: 0.8;\n aspect-ratio: 1/1;\n}\n\n.controls.thumbnails:hover {\n opacity: 1 !important;\n height: var(--frigate-card-next-prev-size-hover);\n top: calc(50% - var(--frigate-card-next-prev-size-hover) / 2);\n}\n\n.controls.previous.thumbnails:hover {\n left: calc(var(--frigate-card-prev-position) - (var(--frigate-card-next-prev-size-hover) - var(--frigate-card-next-prev-size)) / 2);\n}\n\n.controls.next.thumbnails:hover {\n right: calc(var(--frigate-card-next-position) - (var(--frigate-card-next-prev-size-hover) - var(--frigate-card-next-prev-size)) / 2);\n}")}};r([s({attribute:!1})],$.prototype,"direction",void 0),r([s({attribute:!1})],$.prototype,"hass",void 0),r([c()],$.prototype,"_controlConfig",void 0),r([s({attribute:!1})],$.prototype,"thumbnail",void 0),r([s({attribute:!1})],$.prototype,"icon",void 0),r([s({attribute:!0,type:Boolean})],$.prototype,"disabled",void 0),r([s()],$.prototype,"label",void 0),$=r([d("frigate-card-next-previous-control")],$);class P{constructor(t){this._config=null,this._hass=null,this._cameraManager=null,this._cameraID=null,this._host=t}setConfig(t){this._config=t??null,this._host.setAttribute("data-orientation",t?.orientation??"horizontal"),this._host.setAttribute("data-position",t?.position??"bottom-right"),this._host.setAttribute("style",Object.entries(t?.style??{}).map((([t,a])=>`${t}:${a}`)).join(";"))}getConfig(){return this._config}setCamera(t,a){this._cameraManager=t??null,this._cameraID=a??null}setForceVisibility(t){this._forceVisibility=t}handleAction(t,a){t.stopPropagation();const n=t.detail.action,i=_(n,a);i&&f(this._host,{action:i,...a&&{config:a}})}hasUsefulAction(){const t={pt:!0,z:!0,home:!0};if(!this._cameraID)return t;const a=this._cameraManager?.getCameraCapabilities(this._cameraID);if(!a||!a.hasPTZCapability())return t;const n=a.getPTZCapabilities();return{pt:!!(n?.up||n?.down||n?.left||n?.right),z:!!n?.zoomIn||!!n?.zoomOut,home:!!n?.presets?.length}}shouldDisplay(){return void 0!==this._forceVisibility?this._forceVisibility:"auto"===this._config?.mode?!!this._cameraID&&!!this._cameraManager?.getCameraCapabilities(this._cameraID)?.hasPTZCapability():"on"===this._config?.mode}getPTZActions(){const t=t=>({start_tap_action:v({ptzAction:t?.ptzAction,ptzPhase:"start",ptzPreset:t?.preset}),end_tap_action:v({ptzAction:t?.ptzAction,ptzPhase:"stop",ptzPreset:t?.preset})}),a={};return a.up=t({ptzAction:"up"}),a.down=t({ptzAction:"down"}),a.left=t({ptzAction:"left"}),a.right=t({ptzAction:"right"}),a.zoom_in=t({ptzAction:"zoom_in"}),a.zoom_out=t({ptzAction:"zoom_out"}),a.home={tap_action:v()},a}}let k=class extends l{constructor(){super(...arguments),this._controller=new P(this),this._actions=this._controller.getPTZActions(),this._actionPresence=null}willUpdate(t){t.has("config")&&this._controller.setConfig(this.config),(t.has("cameraManager")||t.has("cameraID"))&&this._controller.setCamera(this.cameraManager,this.cameraID),t.has("forceVisibility")&&this._controller.setForceVisibility(this.forceVisibility),(t.has("cameraID")||t.has("cameraManager"))&&(this._actionPresence=this._controller.hasUsefulAction())}render(){if(!this._controller.shouldDisplay())return;const t=(t,a,n)=>n?p`this._controller.handleAction(t,n)} + >`:p``,a=this._controller.getConfig();return p`
    + ${!a?.hide_pan_tilt&&this._actionPresence?.pt?p`
    + ${t("right","mdi:arrow-right",this._actions.right)} + ${t("left","mdi:arrow-left",this._actions.left)} + ${t("up","mdi:arrow-up",this._actions.up)} + ${t("down","mdi:arrow-down",this._actions.down)} +
    `:""} + ${!a?.hide_zoom&&this._actionPresence?.z?p`
    + ${t("zoom_in","mdi:plus",this._actions.zoom_in)} + ${t("zoom_out","mdi:minus",this._actions.zoom_out)} +
    `:p``} + ${!a?.hide_home&&this._actionPresence?.home?p`
    + ${t("home","mdi:home",this._actions.home)} +
    `:p``} +
    `}static get styles(){return g(":host {\n position: absolute;\n width: fit-content;\n height: fit-content;\n --frigate-card-ptz-icon-size: 24px;\n}\n\n:host([data-position$=-left]) {\n left: 5%;\n}\n\n:host([data-position$=-right]) {\n right: 5%;\n}\n\n:host([data-position^=top-]) {\n top: 5%;\n}\n\n:host([data-position^=bottom-]) {\n bottom: 5%;\n}\n\n/*****************\n * Main Containers\n *****************/\n.ptz {\n display: flex;\n gap: 10px;\n color: var(--light-primary-color);\n opacity: 0.4;\n transition: opacity 0.3s ease-in-out;\n}\n\n:host([data-orientation=vertical]) .ptz {\n flex-direction: column;\n}\n\n:host([data-orientation=horizontal]) .ptz {\n flex-direction: row;\n}\n\n.ptz:hover {\n opacity: 1;\n}\n\n:host([data-orientation=vertical]) .ptz div {\n width: calc(var(--frigate-card-ptz-icon-size) * 3);\n}\n\n:host([data-orientation=horizontal]) .ptz div {\n height: calc(var(--frigate-card-ptz-icon-size) * 3);\n}\n\n.ptz-move,\n.ptz-zoom,\n.ptz-home {\n position: relative;\n background-color: rgba(0, 0, 0, 0.3);\n}\n\n.ptz-move {\n height: calc(var(--frigate-card-ptz-icon-size) * 3);\n width: calc(var(--frigate-card-ptz-icon-size) * 3);\n border-radius: 50%;\n}\n\n:host([data-orientation=horizontal]) .ptz .ptz-zoom,\n:host([data-orientation=horizontal]) .ptz .ptz-home {\n width: calc(var(--frigate-card-ptz-icon-size) * 1.5);\n}\n\n:host([data-orientation=vertical]) .ptz .ptz-zoom,\n:host([data-orientation=vertical]) .ptz .ptz-home {\n height: calc(var(--frigate-card-ptz-icon-size) * 1.5);\n}\n\n.ptz-zoom,\n.ptz-home {\n border-radius: var(--ha-card-border-radius, 4px);\n}\n\n/***********\n * PTZ Icons\n ***********/\nha-icon {\n position: absolute;\n --mdc-icon-size: var(--frigate-card-ptz-icon-size);\n}\n\nha-icon:not(.disabled) {\n cursor: pointer;\n}\n\n.disabled {\n color: var(--disabled-text-color);\n}\n\n.up {\n top: 5px;\n left: 50%;\n transform: translateX(-50%);\n}\n\n.down {\n bottom: 5px;\n left: 50%;\n transform: translateX(-50%);\n}\n\n.left {\n left: 5px;\n top: 50%;\n transform: translateY(-50%);\n}\n\n.right {\n right: 5px;\n top: 50%;\n transform: translateY(-50%);\n}\n\n:host([data-orientation=vertical]) .zoom_in {\n right: 5px;\n top: 50%;\n}\n\n:host([data-orientation=vertical]) .zoom_out {\n left: 5px;\n top: 50%;\n}\n\n:host([data-orientation=horizontal]) .zoom_in {\n left: 50%;\n top: 5px;\n}\n\n:host([data-orientation=horizontal]) .zoom_out {\n left: 50%;\n bottom: 5px;\n}\n\n:host([data-orientation=vertical]) .zoom_in,\n:host([data-orientation=vertical]) .zoom_out {\n transform: translateY(-50%);\n}\n\n:host([data-orientation=horizontal]) .zoom_in,\n:host([data-orientation=horizontal]) .zoom_out {\n transform: translateX(-50%);\n}\n\n.home {\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n}")}};r([s({attribute:!1})],k.prototype,"config",void 0),r([s({attribute:!1})],k.prototype,"cameraManager",void 0),r([s({attribute:!1})],k.prototype,"cameraID",void 0),r([s({attribute:!1})],k.prototype,"forceVisibility",void 0),k=r([d("frigate-card-ptz")],k);const M=(t,a)=>{void 0!==a?.fit?t.style.setProperty("--frigate-card-media-layout-fit",a.fit):t.style.removeProperty("--frigate-card-media-layout-fit");for(const n of["x","y"])void 0!==a?.position?.[n]?t.style.setProperty(`--frigate-card-media-layout-position-${n}`,`${a.position[n]}%`):t.style.removeProperty(`--frigate-card-media-layout-position-${n}`);for(const n of["top","bottom","left","right"])void 0!==a?.view_box?.[n]?t.style.setProperty(`--frigate-card-media-layout-view-box-${n}`,`${a.view_box[n]}%`):t.style.removeProperty(`--frigate-card-media-layout-view-box-${n}`)},E=2,H=(t,a)=>{t._controlsHideTimer&&(t._controlsHideTimer.stop(),delete t._controlsHideTimer,delete t._controlsOriginalValue),t.controls=a},O=(t,a=1)=>{const n=t._controlsOriginalValue??t.controls;H(t,!1),t._controlsHideTimer??=new i,t._controlsOriginalValue=n;const o=()=>{H(t,n),t.removeEventListener("loadstart",o)};t.addEventListener("loadstart",o),t._controlsHideTimer.start(a,(()=>{H(t,n)}))},R=async(t,a)=>{if(a?.play)try{await a.play()}catch(n){if("NotAllowedError"===n.name&&!t.isMuted()){await t.mute();try{await a.play()}catch(t){}}}};export{A,x as M,L as a,T as b,E as c,O as h,C as i,R as p,H as s,M as u}; diff --git a/config/www/community/frigate-hass-card/media-67c578aa.js.gz b/config/www/community/frigate-hass-card/media-67c578aa.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..12fe00b92373e97c4c5f3c21effc62d6cf6bd049 GIT binary patch literal 6207 zcmV-F7{KQriwFpB_*Q2E|7~StX<;okH)Az7IALKfYI6X^J!^N{wvylbD`;-&L#7bz zq|M!4s*IXC>5X@jCMRj{xx22{hDgXlLy@{9WXF;D-**N8p8_Sy=_98#NnmC$GZ@Sa z9;EnUnPy@gzOra;2@<}>D<#nhUK0{M$15k{TfC+udVyC)F7T3(1TQ(6;w2;kFA<@5 ziAnS$UgzW^UY3O6WkI5U;B`eZyj+p!C0;K`bc)v*iT(?(*ChIHyiQ3Z`MM=BUOpAG zEM3^%QAo3B^q*mL{N(Z9kGEZ!>;17uMtBN8eii zNYksBS+8E5VCDO_&;K=grGQ7L5laN0ahCbk5AUCkz8;;#bS0@Ag=vxt>n2zit}`Z9 z8K}>3i`6osf075MY8q4REYd&$&2N*?62a4T zQ@Du-xa=cZ#NnYsZzvb4hc8yi0(B~(PG=`+GUHdPj73fp-OE`Fys&6umv^>rU-O(# zV`jUgNpKm{+s`BC7L{E<36HtBZAs^Vaj%W&cqwlh$Ff#OOTF$4K`>(uUH0ytCvv)0j_e9UbE6WIa@o*CA+B6 zC>lu0E#@?T2cFU?1Jc1k?LG_W5|O31m7BhYPlldKmyX-xl$G2k=zTRyc?EkPpX^0E zhi*@RHD{ZrHNo|F;AGGKsl1Cqd(n(MdZ0_EqMVG~=h)mr4N0&*Wu+={=yl=kiqeT< zAiukF%#|I#FMW+^M68m^CvUo(od~;(!)^EPxb`7uq%>;X-@Vb&T_e0+1bb{Li#cblwW!xG1756m-h zKJg@gTfz5d4#S!MMba3=zG`lp042m05j03GgfZj_nSz^ijnF;Zx-&>})dWIV>C9@k z?tNgl;P2dxAqbc)UOv+pwlLVS2G#f$bI{yvu?GoJ>(Z2y^s4f8f4}dqN!{;FMm|rE zuZLRYE}PtGk)=I$=Ml{Sz!Ttu#{3gg@w+ew({-h{GeADCG}oREdGL^NhAQldS~HkP zLxMcQnYS;e7=A407&fppHqs1ZMq!Fq)STAYlS~8zF^f_MP{?HN9X{*(#A*u$}?m>%v{f3^YIz!pDkQ zD%Ty}GeKBzW~24lMCV2JImw``e5h%mXDO$aTjtZa0EGR}!tI)q_xlD}%^RDzOBPyKZf%VL2bJB##@CC*Cq+ z*F0V2O*zNS=02k@mGajKT`=FqVEjrmXcO(Oe82vIs)52F*UKbGIORI$x{ET@R9IHrp;zW<+T7IB+VQqYJO>>y@Lt6@;7M?0j4X zm9vH;;tnruFb%jDri*2ov*;}qbH{B&EJiYjSQr3l9jDHLt!s3z5V9c1rgbM|5W|u) zb`B&XCMb^yL!WLO%ZGpH-nCbP62m=KiOBQt@dB}kx8MQeDCJ1IVO#eVUhL&7r* zW0jOR;7C7~rr>i)6$4-HvH;J}6u-FDfiS!;< zd}ThlN$$AVga#sJ;9YH3%eA|ii`W#Re8@DAQ!lc2Y63_a@5fCI!4}h)K3j5Jja01_ zE_rf%Ox7X;2L;sR{GkI~O|r@YY3zyt+o)sLh`@x1nQcL|(?F(=E3mRUZD1NIRUXSn0-Cvs%ND1HZ{(^G}yhDT!Fsgh*{!I*^0l8L95EYMfT zDwu3)bj%PZ`d-Eyb$fRQr4m#Y$~y=>4wv(|k{-dd67=O3Fh9!CcFP>txZ&9nyAhrG zr(a`;k{mclYF+TdLp>);#!0{lNI-G)aNR?|LSBx{hKE);ql`@N*cCXz?AA}}XhuKs z+~-9R;Ia;IkkI%=as@8bkv!P9IN9KO?|i)JVRLaCGwo+FGP4XfCl~bNNa@pd>v`Fk zIUqv-?!->e*OqcnK+UL#eo$|9HbGjW@D|_h95hQUp0m!Z}G}8Kuh_ z&K3GA8-s<)!O~KkTchGS*1oa79hmX3N6TIIWZj)*qqO}9>a6_ay&|-UsiwD-NjCbD z2SNKZOFZ;63-C)}S{+rT6b4h$G~cXopN#N~QVt5We;o}yV^UXDx8bkLUg?(WPE=j=LzYMa;` z!R+(K0&_2I7$Iw2p5tOrIS2Rc^3E<#{6sucPL`lzd>j87Dl4Xd9!#l2HMO3ugh&%# z6zJj_;ifHz?ixfoJgg-;*rJ_Dg|Ut0iM@!puL+J~HWRkrDw4;%>~W=P>$^D}A=Q!M z+>(YK*bmltLaDGVZLts5wfPoLzp(Vb65GN*2vj`%?nsxFP*s6$;_0QH6Im-|>U~3j z$N)B3UVg_HS5=ehU!H}?q$uo8MTh@Rt>7@QC1Nd27lvk>j`TR)0(kWF(g#y@$(koH zw5~Fi=Rbn$@^PR7&k?`Y%xGRfGf)Q7!?4AL@6dv9W693Vt78S$m1DQn<>`)D|C)ew zX`E)hbxkv81TzXexk0nrkt`v;K57A(NE@x-^j*3Y9+$tDbZTmkp3X`F^1WaZIA>j%ko zZiO_lXnaF&b8E^#Aw2xRBJ1IiY$TP5!ALG^L*p3lBtA^TLoR^ivG;c zS4G&9EJ%}c(gO=3E#!*AK!hnzphquqmgH$R5GMqV&=3ZLFIYxfz!1wAT|kHT;y@_v z&|k9N7G`v)xG>&%BoCAhM2OLW4TR;%awRUNX&SS^451CTKyh6FZMF|VCJ`5E4`^T; zy(n^1c>k8LXiMM0ER8RR>MUQiHASb;^B40pNI**H7HieHsUK%)vLYwrXLtpk@sXVpU0AM<5}SNJXYm@9y2~oKex!ELLr6 zwyxj5*(kg1X*H_Ds;SYcdV8BRrrDxQ=Ps5sVX>((38v_c;EqLQqcZUrO=)z+Mj4Ct zZ>%LOWavnI7Y8Mri3vz^Sn_#nz<7zajNM)6P}|dGO&N3}CJ}B~9H%#~N`JtOsPOFT ztm08_amc!1lFdFxNCAoV70Y%jy8_(S<@e_kLPH{q9;HY9pKj=NXN)jvltK*%>3Ud} zfhcM`l-wNQdnHg{i8-^>9ARdy5_%2UJx&y54%p(LjJFj?f2$3kPP6Ugd7r$^h%z93 zGvN));!LQ!lQ}cipq$Q#x+}FaA#Kg@Ob9~~JrmxJe9we3Fzqw8HX!>m;SEay_rl!B z1^2_=NC{2oyD~!~&cFoGh`S?CG~oC)oZRz1+-#9VGFctJ+vOXCaMx- zndV&e>^D!gHEsf1L}629T8P~obQyPd%8P27!65W4b-Z?iSan)cQN=A4qdYCmZSv%yyo!X}g4v>zej0L<8%65<`3P{_G(KA4mC|M%XC^yfDv4H3-2C3iE_akdze>d-RC{pwhhcUgSi>f^?f`eSP#E?3~hIJe*(j{TNLBW zIm?|j6%aYWIWhm>QQ@AG2cYv*q~dnTh+S>a+T=Rrk#+2n0a&>6-$DqTE=YT;crWUe zX7|EEAG8JGm>`({gPMFB^q>w2bSQMeWXe&)JO}_PY9HRH`vlE;q}5;}rScORZ_URm zLv@6q@pd%ox%sRXQ}j#Cn-!97BsG26Ye8an!Th_J^+bn3UPCx4*+Z-A~&RM@@D!Qo_Z?}SL2xy zc?@B)E?jkJ%8_q3xxrIBFH-mq*0i{EUGKM)CyqVF4=G$#I;pm|o0^e2lNxQluh&+7 zTX~iKsVYVaKjP`y=4(MEp;@~E`e-iSZ+fQB%gH7U=f2C+^Fp6!_ozDX!GjAY!I${> z;bHlr8S0O$6@bqPo&Y*LTr2T>S`_lT0l(yIwu+y%j?Li-#HDZnYomnX(jb(F3;E~D*l;w{pMO%6H=KRj%g?5E<1L9@P{ zCg#QqrC?l-Jf2%>>*dkV^u|YnuvlW1fogOUM+0|lD5&Q!Xj0P_R^`8CzoWUw4qL|@?o+X z?dXDcY3tGk2;_Sv7${aiXotbNr5d*&R2~2OaNpy9Wps}9H;dk?FA(WU)lwdGLA{Pq zw7_LABq38DLb%~^{EPl77J4&$<<3?HR(}_!LAep7uu4I?#3?bG25-A}cdhc%=it

    SZw{_z2V3XUn zw`oT%-1Rv5F;b~&~X-htk%hBG5$YYi?%hDU2W3@-Q4u-`hzVvlX zbXCyC#xfH!IM^mCKDH58OB0%OzD-0`&_>0w7P3CT=-YO&sZ;c)efs<~+3c4QBAE19 zI&a0^GG66f#x#UUu*$0|>;+GH&;iCM8 zx!&;P%N;0k%#=8K&c7Y${{l!?MkR_|MA?O)Cq^ZXdTgQ{J?#DixQEtj$`k9PeCZ&^ zvhKg5Ula6=ig0yKb`~?WTzW-;y+`E<+tvcI-1dg)EnigUd)@AW)i)b!T)GnKzSiqp zJkd*C8wzMlFoSEBfho}#bWrn)Y>ujh3m^GgEs|ZN>Y3_RV&HSC1s?!1FQo0uHjcn` z!?b(XvzoSxi{W3p`-@dIRt}hZwC0s@h3I>9P31j$g6;s$SWIy8%Nr4hpQ~dL7?9%sMJw{nYP_^)kxrC zVtb1YGN)z`(N07@X{1&Iqb&GMGhmBFnvLAx0~JYD$X5ErkB3 zLr8t?xfNFLNot6N>wIljd;8IYu(m@LdpMXDhn;?@yMJGTT^2RPwjJ!NMRFe`nsDGsFi6EWaLQF+>M1UW2p=xBzY#-NDn`l9D$?Oph8=LP*U`y)(^ zZtZio$zHXI;hiPtMn*5UHB_RH9;}n%65np66-gjie0kX`z#eorMUm^KdfNqV^fX_s z4YUQsZ$JtLEcC{f=9?ny<=m>olI)n@k_uvc!cCOnV3w< zPviGc3XqH ze!(-s&lBno@aYe2j(h0}cU{20G5aWgB;%R-EsNLWmHLs4pVe@kagJ#fkdC djCbl+FJ7u2$dJFPu`0%2{6EUSC6#Yu007H`?8E>7 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/media-6eadcd60.js b/config/www/community/frigate-hass-card/media-6eadcd60.js new file mode 100644 index 00000000..0dce9440 --- /dev/null +++ b/config/www/community/frigate-hass-card/media-6eadcd60.js @@ -0,0 +1,33 @@ +import{cL as t,cM as a,dC as n,dD as i,cP as o,dE as e,_ as r,n as s,b as c,t as d,a as l,dF as h,x as p,e as m,dG as u,r as g,dH as _,dI as f,dJ as v,dK as b,dL as y,l as z}from"./card-c642ee74.js"; +/** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const w={},C=t(class extends a{constructor(){super(...arguments),this.ot=w}render(t,a){return a()}update(t,[a,i]){if(Array.isArray(a)){if(Array.isArray(this.ot)&&this.ot.length===a.length&&a.every(((t,a)=>t===this.ot[a])))return n}else if(this.ot===a)return n;return this.ot=Array.isArray(a)?Array.from(a):a,this.render(a,i)}});class x{constructor(){this._options=null,this._viewportIntersecting=null,this._microphoneMuteTimer=new i,this._root=null,this._eventListeners=new Map,this._children=[],this._target=null,this._mutationObserver=new MutationObserver(this._mutationHandler.bind(this)),this._intersectionObserver=new IntersectionObserver(this._intersectionHandler.bind(this)),this._mediaLoadedHandler=async t=>{this._target?.index===t&&(await this._unmuteTargetIfConfigured(this._target.selected?"selected":"visible"),await this._playTargetIfConfigured(this._target.selected?"selected":"visible"))},this._visibilityHandler=async()=>{await this._changeVisibility("visible"===document.visibilityState)},this._changeVisibility=async t=>{t?(await this._unmuteTargetIfConfigured("visible"),await this._playTargetIfConfigured("visible")):(await this._pauseAllIfConfigured("hidden"),await this._muteAllIfConfigured("hidden"))},this._microphoneChangeHandler=async t=>{"unmuted"===t?await this._unmuteTargetIfConfigured("microphone"):"muted"===t&&this._options?.autoMuteConditions?.includes("microphone")&&this._microphoneMuteTimer.start(this._options.microphoneMuteSeconds??60,(async()=>{await this._muteTargetIfConfigured("microphone")}))}}setOptions(t){this._options=t,this._options?.microphoneManager&&(this._options.microphoneManager.removeListener(this._microphoneChangeHandler),this._options.microphoneManager.addListener(this._microphoneChangeHandler))}hasRoot(){return!!this._root}destroy(){this._viewportIntersecting=null,this._microphoneMuteTimer.stop(),this._root=null,this._removeChildHandlers(),this._children=[],this._target=null,this._mutationObserver.disconnect(),this._intersectionObserver.disconnect(),this._options?.microphoneManager?.removeListener(this._microphoneChangeHandler),document.removeEventListener("visibilitychange",this._visibilityHandler)}async setTarget(t,a){this._target?.index===t&&this._target?.selected===a||(this._target?.selected&&(await this._pauseTargetIfConfigured("unselected"),await this._muteTargetIfConfigured("unselected"),this._microphoneMuteTimer.stop()),this._target={selected:a,index:t},a?(await this._unmuteTargetIfConfigured("selected"),await this._playTargetIfConfigured("selected")):(await this._unmuteTargetIfConfigured("visible"),await this._playTargetIfConfigured("visible")))}unsetTarget(){this._target=null}async _playTargetIfConfigured(t){null!==this._target&&this._options?.autoPlayConditions?.includes(t)&&await this._play(this._target.index)}async _play(t){await(this._children[t]?.play())}async _unmuteTargetIfConfigured(t){null!==this._target&&this._options?.autoUnmuteConditions?.includes(t)&&await this._unmute(this._target.index)}async _unmute(t){await(this._children[t]?.unmute())}async _pauseAllIfConfigured(t){if(this._options?.autoPauseConditions?.includes(t))for(const t of this._children.keys())await this._pause(t)}async _pauseTargetIfConfigured(t){null!==this._target&&this._options?.autoPauseConditions?.includes(t)&&await this._pause(this._target.index)}async _pause(t){await(this._children[t]?.pause())}async _muteAllIfConfigured(t){if(this._options?.autoMuteConditions?.includes(t))for(const t of this._children.keys())await this._mute(t)}async _muteTargetIfConfigured(t){null!==this._target&&this._options?.autoMuteConditions?.includes(t)&&await this._mute(this._target.index)}async _mute(t){await(this._children[t]?.mute())}_mutationHandler(t,a){this._initializeRoot()}_removeChildHandlers(){for(const[t,a]of this._eventListeners.entries())t.removeEventListener("frigate-card:media:loaded",a);this._eventListeners.clear()}initialize(t){this._root=t,this._initializeRoot(),document.addEventListener("visibilitychange",this._visibilityHandler),this._intersectionObserver.disconnect(),this._intersectionObserver.observe(t),this._mutationObserver.disconnect(),this._mutationObserver.observe(this._root,{childList:!0,subtree:!0})}_initializeRoot(){if(this._options&&this._root){this._removeChildHandlers(),this._children=[...this._root.querySelectorAll(this._options.playerSelector)];for(const[t,a]of this._children.entries()){const n=()=>this._mediaLoadedHandler(t);this._eventListeners.set(a,n),a.addEventListener("frigate-card:media:loaded",n)}}}async _intersectionHandler(t){const a=this._viewportIntersecting;this._viewportIntersecting=t.some((t=>t.isIntersecting)),null!==a&&a!==this._viewportIntersecting&&await this._changeVisibility(this._viewportIntersecting)}}const I={active:!0,breakpoints:{},lazyLoadCount:0};function A(t={}){let a,n,i;const o=new Set,e=["init","select"],r=["select"];function s(){"hidden"===document.visibilityState&&a.lazyUnloadConditions?.includes("hidden")?o.forEach((t=>{a.lazyUnloadCallback&&(a.lazyUnloadCallback(t,i[t]),o.delete(t))})):"visible"===document.visibilityState&&a.lazyLoadCallback&&d()}function c(t){return o.has(t)}function d(){const t=a.lazyLoadCount,e=n.selectedScrollSnap(),r=new Set;for(let a=1;a<=t&&e-a>=0;a++)r.add(e-a);r.add(e);for(let a=1;a<=t&&e+a{!c(t)&&a.lazyLoadCallback&&(o.add(t),a.lazyLoadCallback(t,i[t]))}))}function l(){const t=n.previousScrollSnap();c(t)&&a.lazyUnloadCallback&&(a.lazyUnloadCallback(t,i[t]),o.delete(t))}return{name:"autoLazyLoad",options:t,init:function(o,c){const{mergeOptions:h,optionsAtMedia:p}=c,m=h(I,t);a=p(m),n=o,i=n.slideNodes(),a.lazyLoadCallback&&e.forEach((t=>n.on(t,d))),a.lazyUnloadCallback&&a.lazyUnloadConditions?.includes("unselected")&&r.forEach((t=>n.on(t,l))),document.addEventListener("visibilitychange",s)},destroy:function(){a.lazyLoadCallback&&e.forEach((t=>n.off(t,d))),a.lazyUnloadCallback&&r.forEach((t=>n.off(t,l))),document.removeEventListener("visibilitychange",s)}}}function L(){let t,a=[];const n=[];function i(i){const o=i.composedPath();for(const[e,r]of[...a.entries()].reverse())if(o.includes(r)){n[e]=i.detail,e!==t.selectedScrollSnap()&&i.stopPropagation();break}}function e(i){const o=i.composedPath();for(const[e,r]of a.entries())if(o.includes(r)){delete n[e],e!==t.selectedScrollSnap()&&i.stopPropagation();break}}function r(){const i=t.selectedScrollSnap(),e=n[i];e&&o(a[i],e)}return{name:"autoMediaLoadedInfo",options:{},init:function(n){t=n,a=t.slideNodes();for(const t of a)t.addEventListener("frigate-card:media:loaded",i),t.addEventListener("frigate-card:media:unloaded",e);t.on("init",r),t.containerNode().addEventListener("frigate-card:carousel:force-select",r)},destroy:function(){for(const t of a)t.removeEventListener("frigate-card:media:loaded",i),t.removeEventListener("frigate-card:media:unloaded",e);t.off("init",r),t.containerNode().removeEventListener("frigate-card:carousel:force-select",r)}}}class S{constructor(t){this._scrolling=!1,this._shouldReInitOnScrollStop=!1,this._scrollingStart=()=>{this._scrolling=!0},this._scrollingStop=()=>{this._scrolling=!1,this._shouldReInitOnScrollStop&&(this._shouldReInitOnScrollStop=!1,this._debouncedReInit())},this._debouncedReInit=e((()=>{this._scrolling=!1,this._shouldReInitOnScrollStop=!1,this._emblaApi?.reInit()}),500,{trailing:!0}),this._emblaApi=t,this._emblaApi.on("scroll",this._scrollingStart),this._emblaApi.on("settle",this._scrollingStop),this._emblaApi.on("destroy",this.destroy)}destroy(){this._emblaApi.off("scroll",this._scrollingStart),this._emblaApi.off("settle",this._scrollingStop),this._emblaApi.off("destroy",this.destroy)}reinit(){this._scrolling?this._shouldReInitOnScrollStop=!0:this._debouncedReInit()}}function T(){let t,a=null,n=null;const i=new Map,o=new ResizeObserver((function(t){let a=!1;for(const n of t){const t={height:n.contentRect.height,width:n.contentRect.width},o=i.get(n.target);t.width&&t.height&&(o?.height!==t.height||o?.width!==t.width)&&(i.set(n.target,t),a=!0)}a&&s()})),r=new IntersectionObserver((function(t){const i=t.some((t=>t.isIntersecting));if(i!==n){const t=i&&null!==n;n=i,t&&a?.reinit()}})),s=e((()=>function(){const{slideRegistry:n,options:{axis:i}}=t.internalEngine();if("y"===i)return;t.containerNode().style.removeProperty("max-height");const o=n[t.selectedScrollSnap()],e=t.slideNodes(),r=Math.max(...o.map((t=>e[t].getBoundingClientRect().height)));!isNaN(r)&&r>0&&(t.containerNode().style.maxHeight=`${r}px`);a?.reinit()}()),200,{trailing:!0});return{name:"autoSize",options:{},init:function(n){t=n,a=new S(t),r.observe(t.containerNode()),o.observe(t.containerNode());for(const a of t.slideNodes())o.observe(a);t.containerNode().addEventListener("frigate-card:media:loaded",s),t.on("settle",s)},destroy:function(){r.disconnect(),o.disconnect(),a?.destroy(),t.containerNode().removeEventListener("frigate-card:media:loaded",s),t.off("settle",s)}}}let $=class extends l{constructor(){super(...arguments),this.disabled=!1,this.label="",this._embedThumbnailTask=h(this,(()=>this.hass),(()=>this.thumbnail))}set controlConfig(t){t?.size&&this.style.setProperty("--frigate-card-next-prev-size",`${t.size}px`),this._controlConfig=t}render(){if(this.disabled||!this._controlConfig||"none"==this._controlConfig.style)return p``;const t=!this.thumbnail||["chevrons","icons"].includes(this._controlConfig.style),a={controls:!0,previous:"previous"===this.direction,next:"next"===this.direction,thumbnails:!t,icons:t,button:t};if(t){const t=this.thumbnail&&this.icon&&"chevrons"!==this._controlConfig.style?this.icon:"previous"===this.direction?"mdi:chevron-left":"mdi:chevron-right";return p` + + `}return u(this,this._embedThumbnailTask,(t=>t?p``:p``),{inProgressFunc:()=>p`

    `})}static get styles(){return g("ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n --frigate-card-next-prev-size: 48px;\n --frigate-card-next-prev-size-hover: calc(var(--frigate-card-next-prev-size) * 2);\n --frigate-card-prev-position: 45px;\n --frigate-card-next-position: 45px;\n --mdc-icon-button-size: var(--frigate-card-next-prev-size);\n --mdc-icon-size: calc(var(--mdc-icon-button-size) / 2);\n}\n\n.controls {\n position: absolute;\n z-index: 1;\n overflow: hidden;\n}\n\n.controls.previous {\n left: var(--frigate-card-prev-position);\n}\n\n.controls.next {\n right: var(--frigate-card-next-position);\n}\n\n.controls.icons {\n top: calc(50% - var(--frigate-card-next-prev-size) / 2);\n}\n\n.controls.thumbnails {\n border-radius: 50%;\n height: var(--frigate-card-next-prev-size);\n top: calc(50% - var(--frigate-card-next-prev-size) / 2);\n box-shadow: var(--frigate-card-css-box-shadow, 0px 0px 20px 5px black);\n transition: all 0.2s ease-out;\n opacity: 0.8;\n aspect-ratio: 1/1;\n}\n\n.controls.thumbnails:hover {\n opacity: 1 !important;\n height: var(--frigate-card-next-prev-size-hover);\n top: calc(50% - var(--frigate-card-next-prev-size-hover) / 2);\n}\n\n.controls.previous.thumbnails:hover {\n left: calc(var(--frigate-card-prev-position) - (var(--frigate-card-next-prev-size-hover) - var(--frigate-card-next-prev-size)) / 2);\n}\n\n.controls.next.thumbnails:hover {\n right: calc(var(--frigate-card-next-position) - (var(--frigate-card-next-prev-size-hover) - var(--frigate-card-next-prev-size)) / 2);\n}")}};r([s({attribute:!1})],$.prototype,"direction",void 0),r([s({attribute:!1})],$.prototype,"hass",void 0),r([c()],$.prototype,"_controlConfig",void 0),r([s({attribute:!1})],$.prototype,"thumbnail",void 0),r([s({attribute:!1})],$.prototype,"icon",void 0),r([s({attribute:!0,type:Boolean})],$.prototype,"disabled",void 0),r([s()],$.prototype,"label",void 0),$=r([d("frigate-card-next-previous-control")],$);class P{constructor(t){this._config=null,this._hass=null,this._cameraManager=null,this._cameraID=null,this._host=t}setConfig(t){this._config=t??null,this._host.setAttribute("data-orientation",t?.orientation??"horizontal"),this._host.setAttribute("data-position",t?.position??"bottom-right"),this._host.setAttribute("style",Object.entries(t?.style??{}).map((([t,a])=>`${t}:${a}`)).join(";"))}getConfig(){return this._config}setCamera(t,a){this._cameraManager=t??null,this._cameraID=a??null}setForceVisibility(t){this._forceVisibility=t}handleAction(t,a){t.stopPropagation();const n=t.detail.action,i=_(n,a);i&&f(this._host,{action:i,...a&&{config:a}})}hasUsefulAction(){const t={pt:!0,z:!0,home:!0};if(!this._cameraID)return t;const a=this._cameraManager?.getCameraCapabilities(this._cameraID);if(!a||!a.hasPTZCapability())return t;const n=a.getPTZCapabilities();return{pt:!!(n?.up||n?.down||n?.left||n?.right),z:!!n?.zoomIn||!!n?.zoomOut,home:!!n?.presets?.length}}shouldDisplay(){return void 0!==this._forceVisibility?this._forceVisibility:"auto"===this._config?.mode?!!this._cameraID&&!!this._cameraManager?.getCameraCapabilities(this._cameraID)?.hasPTZCapability():"on"===this._config?.mode}getPTZActions(){const t=t=>({start_tap_action:v({ptzAction:t?.ptzAction,ptzPhase:"start",ptzPreset:t?.preset}),end_tap_action:v({ptzAction:t?.ptzAction,ptzPhase:"stop",ptzPreset:t?.preset})}),a={};return a.up=t({ptzAction:"up"}),a.down=t({ptzAction:"down"}),a.left=t({ptzAction:"left"}),a.right=t({ptzAction:"right"}),a.zoom_in=t({ptzAction:"zoom_in"}),a.zoom_out=t({ptzAction:"zoom_out"}),a.home={tap_action:v()},a}}let k=class extends l{constructor(){super(...arguments),this._controller=new P(this),this._actions=this._controller.getPTZActions(),this._actionPresence=null}willUpdate(t){t.has("config")&&this._controller.setConfig(this.config),(t.has("cameraManager")||t.has("cameraID"))&&this._controller.setCamera(this.cameraManager,this.cameraID),t.has("forceVisibility")&&this._controller.setForceVisibility(this.forceVisibility),(t.has("cameraID")||t.has("cameraManager"))&&(this._actionPresence=this._controller.hasUsefulAction())}render(){if(!this._controller.shouldDisplay())return;const t=(t,a,n)=>n?p`this._controller.handleAction(t,n)} + >`:p``,a=this._controller.getConfig();return p`
    + ${!a?.hide_pan_tilt&&this._actionPresence?.pt?p`
    + ${t("right","mdi:arrow-right",this._actions.right)} + ${t("left","mdi:arrow-left",this._actions.left)} + ${t("up","mdi:arrow-up",this._actions.up)} + ${t("down","mdi:arrow-down",this._actions.down)} +
    `:""} + ${!a?.hide_zoom&&this._actionPresence?.z?p`
    + ${t("zoom_in","mdi:plus",this._actions.zoom_in)} + ${t("zoom_out","mdi:minus",this._actions.zoom_out)} +
    `:p``} + ${!a?.hide_home&&this._actionPresence?.home?p`
    + ${t("home","mdi:home",this._actions.home)} +
    `:p``} +
    `}static get styles(){return g(":host {\n position: absolute;\n width: fit-content;\n height: fit-content;\n --frigate-card-ptz-icon-size: 24px;\n}\n\n:host([data-position$=-left]) {\n left: 5%;\n}\n\n:host([data-position$=-right]) {\n right: 5%;\n}\n\n:host([data-position^=top-]) {\n top: 5%;\n}\n\n:host([data-position^=bottom-]) {\n bottom: 5%;\n}\n\n/*****************\n * Main Containers\n *****************/\n.ptz {\n display: flex;\n gap: 10px;\n color: var(--light-primary-color);\n opacity: 0.4;\n transition: opacity 0.3s ease-in-out;\n}\n\n:host([data-orientation=vertical]) .ptz {\n flex-direction: column;\n}\n\n:host([data-orientation=horizontal]) .ptz {\n flex-direction: row;\n}\n\n.ptz:hover {\n opacity: 1;\n}\n\n:host([data-orientation=vertical]) .ptz div {\n width: calc(var(--frigate-card-ptz-icon-size) * 3);\n}\n\n:host([data-orientation=horizontal]) .ptz div {\n height: calc(var(--frigate-card-ptz-icon-size) * 3);\n}\n\n.ptz-move,\n.ptz-zoom,\n.ptz-home {\n position: relative;\n background-color: rgba(0, 0, 0, 0.3);\n}\n\n.ptz-move {\n height: calc(var(--frigate-card-ptz-icon-size) * 3);\n width: calc(var(--frigate-card-ptz-icon-size) * 3);\n border-radius: 50%;\n}\n\n:host([data-orientation=horizontal]) .ptz .ptz-zoom,\n:host([data-orientation=horizontal]) .ptz .ptz-home {\n width: calc(var(--frigate-card-ptz-icon-size) * 1.5);\n}\n\n:host([data-orientation=vertical]) .ptz .ptz-zoom,\n:host([data-orientation=vertical]) .ptz .ptz-home {\n height: calc(var(--frigate-card-ptz-icon-size) * 1.5);\n}\n\n.ptz-zoom,\n.ptz-home {\n border-radius: var(--ha-card-border-radius, 4px);\n}\n\n/***********\n * PTZ Icons\n ***********/\nha-icon {\n position: absolute;\n --mdc-icon-size: var(--frigate-card-ptz-icon-size);\n}\n\nha-icon:not(.disabled) {\n cursor: pointer;\n}\n\n.disabled {\n color: var(--disabled-text-color);\n}\n\n.up {\n top: 5px;\n left: 50%;\n transform: translateX(-50%);\n}\n\n.down {\n bottom: 5px;\n left: 50%;\n transform: translateX(-50%);\n}\n\n.left {\n left: 5px;\n top: 50%;\n transform: translateY(-50%);\n}\n\n.right {\n right: 5px;\n top: 50%;\n transform: translateY(-50%);\n}\n\n:host([data-orientation=vertical]) .zoom_in {\n right: 5px;\n top: 50%;\n}\n\n:host([data-orientation=vertical]) .zoom_out {\n left: 5px;\n top: 50%;\n}\n\n:host([data-orientation=horizontal]) .zoom_in {\n left: 50%;\n top: 5px;\n}\n\n:host([data-orientation=horizontal]) .zoom_out {\n left: 50%;\n bottom: 5px;\n}\n\n:host([data-orientation=vertical]) .zoom_in,\n:host([data-orientation=vertical]) .zoom_out {\n transform: translateY(-50%);\n}\n\n:host([data-orientation=horizontal]) .zoom_in,\n:host([data-orientation=horizontal]) .zoom_out {\n transform: translateX(-50%);\n}\n\n.home {\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n}")}};r([s({attribute:!1})],k.prototype,"config",void 0),r([s({attribute:!1})],k.prototype,"cameraManager",void 0),r([s({attribute:!1})],k.prototype,"cameraID",void 0),r([s({attribute:!1})],k.prototype,"forceVisibility",void 0),k=r([d("frigate-card-ptz")],k);const M=(t,a)=>{void 0!==a?.fit?t.style.setProperty("--frigate-card-media-layout-fit",a.fit):t.style.removeProperty("--frigate-card-media-layout-fit");for(const n of["x","y"])void 0!==a?.position?.[n]?t.style.setProperty(`--frigate-card-media-layout-position-${n}`,`${a.position[n]}%`):t.style.removeProperty(`--frigate-card-media-layout-position-${n}`);for(const n of["top","bottom","left","right"])void 0!==a?.view_box?.[n]?t.style.setProperty(`--frigate-card-media-layout-view-box-${n}`,`${a.view_box[n]}%`):t.style.removeProperty(`--frigate-card-media-layout-view-box-${n}`)},E=2,H=(t,a)=>{t._controlsHideTimer&&(t._controlsHideTimer.stop(),delete t._controlsHideTimer,delete t._controlsOriginalValue),t.controls=a},O=(t,a=1)=>{const n=t._controlsOriginalValue??t.controls;H(t,!1),t._controlsHideTimer??=new i,t._controlsOriginalValue=n;const o=()=>{H(t,n),t.removeEventListener("loadstart",o)};t.addEventListener("loadstart",o),t._controlsHideTimer.start(a,(()=>{H(t,n)}))},R=async(t,a)=>{if(a?.play)try{await a.play()}catch(n){if("NotAllowedError"===n.name&&!t.isMuted()){await t.mute();try{await a.play()}catch(t){}}}};export{A,x as M,L as a,T as b,E as c,O as h,C as i,R as p,H as s,M as u}; diff --git a/config/www/community/frigate-hass-card/media-6eadcd60.js.gz b/config/www/community/frigate-hass-card/media-6eadcd60.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..7c57f011670674fd2ab774f1f5de835886a326e1 GIT binary patch literal 6206 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 c-l<=`c&UCML;kA9su+Lu|K!t===this.ot[a])))return n}else if(this.ot===a)return n;return this.ot=Array.isArray(a)?Array.from(a):a,this.render(a,i)}});class x{constructor(){this._options=null,this._viewportIntersecting=null,this._microphoneMuteTimer=new i,this._root=null,this._eventListeners=new Map,this._children=[],this._target=null,this._mutationObserver=new MutationObserver(this._mutationHandler.bind(this)),this._intersectionObserver=new IntersectionObserver(this._intersectionHandler.bind(this)),this._mediaLoadedHandler=async t=>{this._target?.index===t&&(await this._unmuteTargetIfConfigured(this._target.selected?"selected":"visible"),await this._playTargetIfConfigured(this._target.selected?"selected":"visible"))},this._visibilityHandler=async()=>{await this._changeVisibility("visible"===document.visibilityState)},this._changeVisibility=async t=>{t?(await this._unmuteTargetIfConfigured("visible"),await this._playTargetIfConfigured("visible")):(await this._pauseAllIfConfigured("hidden"),await this._muteAllIfConfigured("hidden"))},this._microphoneChangeHandler=async t=>{"unmuted"===t?await this._unmuteTargetIfConfigured("microphone"):"muted"===t&&this._options?.autoMuteConditions?.includes("microphone")&&this._microphoneMuteTimer.start(this._options.microphoneMuteSeconds??60,(async()=>{await this._muteTargetIfConfigured("microphone")}))}}setOptions(t){this._options=t,this._options?.microphoneManager&&(this._options.microphoneManager.removeListener(this._microphoneChangeHandler),this._options.microphoneManager.addListener(this._microphoneChangeHandler))}hasRoot(){return!!this._root}destroy(){this._viewportIntersecting=null,this._microphoneMuteTimer.stop(),this._root=null,this._removeChildHandlers(),this._children=[],this._target=null,this._mutationObserver.disconnect(),this._intersectionObserver.disconnect(),this._options?.microphoneManager?.removeListener(this._microphoneChangeHandler),document.removeEventListener("visibilitychange",this._visibilityHandler)}async setTarget(t,a){this._target?.index===t&&this._target?.selected===a||(this._target?.selected&&(await this._pauseTargetIfConfigured("unselected"),await this._muteTargetIfConfigured("unselected"),this._microphoneMuteTimer.stop()),this._target={selected:a,index:t},a?(await this._unmuteTargetIfConfigured("selected"),await this._playTargetIfConfigured("selected")):(await this._unmuteTargetIfConfigured("visible"),await this._playTargetIfConfigured("visible")))}unsetTarget(){this._target=null}async _playTargetIfConfigured(t){null!==this._target&&this._options?.autoPlayConditions?.includes(t)&&await this._play(this._target.index)}async _play(t){await(this._children[t]?.play())}async _unmuteTargetIfConfigured(t){null!==this._target&&this._options?.autoUnmuteConditions?.includes(t)&&await this._unmute(this._target.index)}async _unmute(t){await(this._children[t]?.unmute())}async _pauseAllIfConfigured(t){if(this._options?.autoPauseConditions?.includes(t))for(const t of this._children.keys())await this._pause(t)}async _pauseTargetIfConfigured(t){null!==this._target&&this._options?.autoPauseConditions?.includes(t)&&await this._pause(this._target.index)}async _pause(t){await(this._children[t]?.pause())}async _muteAllIfConfigured(t){if(this._options?.autoMuteConditions?.includes(t))for(const t of this._children.keys())await this._mute(t)}async _muteTargetIfConfigured(t){null!==this._target&&this._options?.autoMuteConditions?.includes(t)&&await this._mute(this._target.index)}async _mute(t){await(this._children[t]?.mute())}_mutationHandler(t,a){this._initializeRoot()}_removeChildHandlers(){for(const[t,a]of this._eventListeners.entries())t.removeEventListener("frigate-card:media:loaded",a);this._eventListeners.clear()}initialize(t){this._root=t,this._initializeRoot(),document.addEventListener("visibilitychange",this._visibilityHandler),this._intersectionObserver.disconnect(),this._intersectionObserver.observe(t),this._mutationObserver.disconnect(),this._mutationObserver.observe(this._root,{childList:!0,subtree:!0})}_initializeRoot(){if(this._options&&this._root){this._removeChildHandlers(),this._children=[...this._root.querySelectorAll(this._options.playerSelector)];for(const[t,a]of this._children.entries()){const n=()=>this._mediaLoadedHandler(t);this._eventListeners.set(a,n),a.addEventListener("frigate-card:media:loaded",n)}}}async _intersectionHandler(t){const a=this._viewportIntersecting;this._viewportIntersecting=t.some((t=>t.isIntersecting)),null!==a&&a!==this._viewportIntersecting&&await this._changeVisibility(this._viewportIntersecting)}}const I={active:!0,breakpoints:{},lazyLoadCount:0};function A(t={}){let a,n,i;const o=new Set,e=["init","select"],r=["select"];function s(){"hidden"===document.visibilityState&&a.lazyUnloadConditions?.includes("hidden")?o.forEach((t=>{a.lazyUnloadCallback&&(a.lazyUnloadCallback(t,i[t]),o.delete(t))})):"visible"===document.visibilityState&&a.lazyLoadCallback&&d()}function c(t){return o.has(t)}function d(){const t=a.lazyLoadCount,e=n.selectedScrollSnap(),r=new Set;for(let a=1;a<=t&&e-a>=0;a++)r.add(e-a);r.add(e);for(let a=1;a<=t&&e+a{!c(t)&&a.lazyLoadCallback&&(o.add(t),a.lazyLoadCallback(t,i[t]))}))}function l(){const t=n.previousScrollSnap();c(t)&&a.lazyUnloadCallback&&(a.lazyUnloadCallback(t,i[t]),o.delete(t))}return{name:"autoLazyLoad",options:t,init:function(o,c){const{mergeOptions:h,optionsAtMedia:p}=c,m=h(I,t);a=p(m),n=o,i=n.slideNodes(),a.lazyLoadCallback&&e.forEach((t=>n.on(t,d))),a.lazyUnloadCallback&&a.lazyUnloadConditions?.includes("unselected")&&r.forEach((t=>n.on(t,l))),document.addEventListener("visibilitychange",s)},destroy:function(){a.lazyLoadCallback&&e.forEach((t=>n.off(t,d))),a.lazyUnloadCallback&&r.forEach((t=>n.off(t,l))),document.removeEventListener("visibilitychange",s)}}}function L(){let t,a=[];const n=[];function i(i){const o=i.composedPath();for(const[e,r]of[...a.entries()].reverse())if(o.includes(r)){n[e]=i.detail,e!==t.selectedScrollSnap()&&i.stopPropagation();break}}function e(i){const o=i.composedPath();for(const[e,r]of a.entries())if(o.includes(r)){delete n[e],e!==t.selectedScrollSnap()&&i.stopPropagation();break}}function r(){const i=t.selectedScrollSnap(),e=n[i];e&&o(a[i],e)}return{name:"autoMediaLoadedInfo",options:{},init:function(n){t=n,a=t.slideNodes();for(const t of a)t.addEventListener("frigate-card:media:loaded",i),t.addEventListener("frigate-card:media:unloaded",e);t.on("init",r),t.containerNode().addEventListener("frigate-card:carousel:force-select",r)},destroy:function(){for(const t of a)t.removeEventListener("frigate-card:media:loaded",i),t.removeEventListener("frigate-card:media:unloaded",e);t.off("init",r),t.containerNode().removeEventListener("frigate-card:carousel:force-select",r)}}}class S{constructor(t){this._scrolling=!1,this._shouldReInitOnScrollStop=!1,this._scrollingStart=()=>{this._scrolling=!0},this._scrollingStop=()=>{this._scrolling=!1,this._shouldReInitOnScrollStop&&(this._shouldReInitOnScrollStop=!1,this._debouncedReInit())},this._debouncedReInit=e((()=>{this._scrolling=!1,this._shouldReInitOnScrollStop=!1,this._emblaApi?.reInit()}),500,{trailing:!0}),this._emblaApi=t,this._emblaApi.on("scroll",this._scrollingStart),this._emblaApi.on("settle",this._scrollingStop),this._emblaApi.on("destroy",this.destroy)}destroy(){this._emblaApi.off("scroll",this._scrollingStart),this._emblaApi.off("settle",this._scrollingStop),this._emblaApi.off("destroy",this.destroy)}reinit(){this._scrolling?this._shouldReInitOnScrollStop=!0:this._debouncedReInit()}}function T(){let t,a=null,n=null;const i=new Map,o=new ResizeObserver((function(t){let a=!1;for(const n of t){const t={height:n.contentRect.height,width:n.contentRect.width},o=i.get(n.target);t.width&&t.height&&(o?.height!==t.height||o?.width!==t.width)&&(i.set(n.target,t),a=!0)}a&&s()})),r=new IntersectionObserver((function(t){const i=t.some((t=>t.isIntersecting));if(i!==n){const t=i&&null!==n;n=i,t&&a?.reinit()}})),s=e((()=>function(){const{slideRegistry:n,options:{axis:i}}=t.internalEngine();if("y"===i)return;t.containerNode().style.removeProperty("max-height");const o=n[t.selectedScrollSnap()],e=t.slideNodes(),r=Math.max(...o.map((t=>e[t].getBoundingClientRect().height)));!isNaN(r)&&r>0&&(t.containerNode().style.maxHeight=`${r}px`);a?.reinit()}()),200,{trailing:!0});return{name:"autoSize",options:{},init:function(n){t=n,a=new S(t),r.observe(t.containerNode()),o.observe(t.containerNode());for(const a of t.slideNodes())o.observe(a);t.containerNode().addEventListener("frigate-card:media:loaded",s),t.on("settle",s)},destroy:function(){r.disconnect(),o.disconnect(),a?.destroy(),t.containerNode().removeEventListener("frigate-card:media:loaded",s),t.off("settle",s)}}}let $=class extends l{constructor(){super(...arguments),this.disabled=!1,this.label="",this._embedThumbnailTask=h(this,(()=>this.hass),(()=>this.thumbnail))}set controlConfig(t){t?.size&&this.style.setProperty("--frigate-card-next-prev-size",`${t.size}px`),this._controlConfig=t}render(){if(this.disabled||!this._controlConfig||"none"==this._controlConfig.style)return p``;const t=!this.thumbnail||["chevrons","icons"].includes(this._controlConfig.style),a={controls:!0,previous:"previous"===this.direction,next:"next"===this.direction,thumbnails:!t,icons:t,button:t};if(t){const t=this.thumbnail&&this.icon&&"chevrons"!==this._controlConfig.style?this.icon:"previous"===this.direction?"mdi:chevron-left":"mdi:chevron-right";return p` + + `}return u(this,this._embedThumbnailTask,(t=>t?p``:p``),{inProgressFunc:()=>p`
    `})}static get styles(){return g("ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n --frigate-card-next-prev-size: 48px;\n --frigate-card-next-prev-size-hover: calc(var(--frigate-card-next-prev-size) * 2);\n --frigate-card-prev-position: 45px;\n --frigate-card-next-position: 45px;\n --mdc-icon-button-size: var(--frigate-card-next-prev-size);\n --mdc-icon-size: calc(var(--mdc-icon-button-size) / 2);\n}\n\n.controls {\n position: absolute;\n z-index: 1;\n overflow: hidden;\n}\n\n.controls.previous {\n left: var(--frigate-card-prev-position);\n}\n\n.controls.next {\n right: var(--frigate-card-next-position);\n}\n\n.controls.icons {\n top: calc(50% - var(--frigate-card-next-prev-size) / 2);\n}\n\n.controls.thumbnails {\n border-radius: 50%;\n height: var(--frigate-card-next-prev-size);\n top: calc(50% - var(--frigate-card-next-prev-size) / 2);\n box-shadow: var(--frigate-card-css-box-shadow, 0px 0px 20px 5px black);\n transition: all 0.2s ease-out;\n opacity: 0.8;\n aspect-ratio: 1/1;\n}\n\n.controls.thumbnails:hover {\n opacity: 1 !important;\n height: var(--frigate-card-next-prev-size-hover);\n top: calc(50% - var(--frigate-card-next-prev-size-hover) / 2);\n}\n\n.controls.previous.thumbnails:hover {\n left: calc(var(--frigate-card-prev-position) - (var(--frigate-card-next-prev-size-hover) - var(--frigate-card-next-prev-size)) / 2);\n}\n\n.controls.next.thumbnails:hover {\n right: calc(var(--frigate-card-next-position) - (var(--frigate-card-next-prev-size-hover) - var(--frigate-card-next-prev-size)) / 2);\n}")}};r([s({attribute:!1})],$.prototype,"direction",void 0),r([s({attribute:!1})],$.prototype,"hass",void 0),r([c()],$.prototype,"_controlConfig",void 0),r([s({attribute:!1})],$.prototype,"thumbnail",void 0),r([s({attribute:!1})],$.prototype,"icon",void 0),r([s({attribute:!0,type:Boolean})],$.prototype,"disabled",void 0),r([s()],$.prototype,"label",void 0),$=r([d("frigate-card-next-previous-control")],$);class P{constructor(t){this._config=null,this._hass=null,this._cameraManager=null,this._cameraID=null,this._host=t}setConfig(t){this._config=t??null,this._host.setAttribute("data-orientation",t?.orientation??"horizontal"),this._host.setAttribute("data-position",t?.position??"bottom-right"),this._host.setAttribute("style",Object.entries(t?.style??{}).map((([t,a])=>`${t}:${a}`)).join(";"))}getConfig(){return this._config}setCamera(t,a){this._cameraManager=t??null,this._cameraID=a??null}setForceVisibility(t){this._forceVisibility=t}handleAction(t,a){t.stopPropagation();const n=t.detail.action,i=_(n,a);i&&f(this._host,{action:i,...a&&{config:a}})}hasUsefulAction(){const t={pt:!0,z:!0,home:!0};if(!this._cameraID)return t;const a=this._cameraManager?.getCameraCapabilities(this._cameraID);if(!a||!a.hasPTZCapability())return t;const n=a.getPTZCapabilities();return{pt:!!(n?.up||n?.down||n?.left||n?.right),z:!!n?.zoomIn||!!n?.zoomOut,home:!!n?.presets?.length}}shouldDisplay(){return void 0!==this._forceVisibility?this._forceVisibility:"auto"===this._config?.mode?!!this._cameraID&&!!this._cameraManager?.getCameraCapabilities(this._cameraID)?.hasPTZCapability():"on"===this._config?.mode}getPTZActions(){const t=t=>({start_tap_action:v({ptzAction:t?.ptzAction,ptzPhase:"start",ptzPreset:t?.preset}),end_tap_action:v({ptzAction:t?.ptzAction,ptzPhase:"stop",ptzPreset:t?.preset})}),a={};return a.up=t({ptzAction:"up"}),a.down=t({ptzAction:"down"}),a.left=t({ptzAction:"left"}),a.right=t({ptzAction:"right"}),a.zoom_in=t({ptzAction:"zoom_in"}),a.zoom_out=t({ptzAction:"zoom_out"}),a.home={tap_action:v()},a}}let k=class extends l{constructor(){super(...arguments),this._controller=new P(this),this._actions=this._controller.getPTZActions(),this._actionPresence=null}willUpdate(t){t.has("config")&&this._controller.setConfig(this.config),(t.has("cameraManager")||t.has("cameraID"))&&this._controller.setCamera(this.cameraManager,this.cameraID),t.has("forceVisibility")&&this._controller.setForceVisibility(this.forceVisibility),(t.has("cameraID")||t.has("cameraManager"))&&(this._actionPresence=this._controller.hasUsefulAction())}render(){if(!this._controller.shouldDisplay())return;const t=(t,a,n)=>n?p`this._controller.handleAction(t,n)} + >`:p``,a=this._controller.getConfig();return p`
    + ${!a?.hide_pan_tilt&&this._actionPresence?.pt?p`
    + ${t("right","mdi:arrow-right",this._actions.right)} + ${t("left","mdi:arrow-left",this._actions.left)} + ${t("up","mdi:arrow-up",this._actions.up)} + ${t("down","mdi:arrow-down",this._actions.down)} +
    `:""} + ${!a?.hide_zoom&&this._actionPresence?.z?p`
    + ${t("zoom_in","mdi:plus",this._actions.zoom_in)} + ${t("zoom_out","mdi:minus",this._actions.zoom_out)} +
    `:p``} + ${!a?.hide_home&&this._actionPresence?.home?p`
    + ${t("home","mdi:home",this._actions.home)} +
    `:p``} +
    `}static get styles(){return g(":host {\n position: absolute;\n width: fit-content;\n height: fit-content;\n --frigate-card-ptz-icon-size: 24px;\n}\n\n:host([data-position$=-left]) {\n left: 5%;\n}\n\n:host([data-position$=-right]) {\n right: 5%;\n}\n\n:host([data-position^=top-]) {\n top: 5%;\n}\n\n:host([data-position^=bottom-]) {\n bottom: 5%;\n}\n\n/*****************\n * Main Containers\n *****************/\n.ptz {\n display: flex;\n gap: 10px;\n color: var(--light-primary-color);\n opacity: 0.4;\n transition: opacity 0.3s ease-in-out;\n}\n\n:host([data-orientation=vertical]) .ptz {\n flex-direction: column;\n}\n\n:host([data-orientation=horizontal]) .ptz {\n flex-direction: row;\n}\n\n.ptz:hover {\n opacity: 1;\n}\n\n:host([data-orientation=vertical]) .ptz div {\n width: calc(var(--frigate-card-ptz-icon-size) * 3);\n}\n\n:host([data-orientation=horizontal]) .ptz div {\n height: calc(var(--frigate-card-ptz-icon-size) * 3);\n}\n\n.ptz-move,\n.ptz-zoom,\n.ptz-home {\n position: relative;\n background-color: rgba(0, 0, 0, 0.3);\n}\n\n.ptz-move {\n height: calc(var(--frigate-card-ptz-icon-size) * 3);\n width: calc(var(--frigate-card-ptz-icon-size) * 3);\n border-radius: 50%;\n}\n\n:host([data-orientation=horizontal]) .ptz .ptz-zoom,\n:host([data-orientation=horizontal]) .ptz .ptz-home {\n width: calc(var(--frigate-card-ptz-icon-size) * 1.5);\n}\n\n:host([data-orientation=vertical]) .ptz .ptz-zoom,\n:host([data-orientation=vertical]) .ptz .ptz-home {\n height: calc(var(--frigate-card-ptz-icon-size) * 1.5);\n}\n\n.ptz-zoom,\n.ptz-home {\n border-radius: var(--ha-card-border-radius, 4px);\n}\n\n/***********\n * PTZ Icons\n ***********/\nha-icon {\n position: absolute;\n --mdc-icon-size: var(--frigate-card-ptz-icon-size);\n}\n\nha-icon:not(.disabled) {\n cursor: pointer;\n}\n\n.disabled {\n color: var(--disabled-text-color);\n}\n\n.up {\n top: 5px;\n left: 50%;\n transform: translateX(-50%);\n}\n\n.down {\n bottom: 5px;\n left: 50%;\n transform: translateX(-50%);\n}\n\n.left {\n left: 5px;\n top: 50%;\n transform: translateY(-50%);\n}\n\n.right {\n right: 5px;\n top: 50%;\n transform: translateY(-50%);\n}\n\n:host([data-orientation=vertical]) .zoom_in {\n right: 5px;\n top: 50%;\n}\n\n:host([data-orientation=vertical]) .zoom_out {\n left: 5px;\n top: 50%;\n}\n\n:host([data-orientation=horizontal]) .zoom_in {\n left: 50%;\n top: 5px;\n}\n\n:host([data-orientation=horizontal]) .zoom_out {\n left: 50%;\n bottom: 5px;\n}\n\n:host([data-orientation=vertical]) .zoom_in,\n:host([data-orientation=vertical]) .zoom_out {\n transform: translateY(-50%);\n}\n\n:host([data-orientation=horizontal]) .zoom_in,\n:host([data-orientation=horizontal]) .zoom_out {\n transform: translateX(-50%);\n}\n\n.home {\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n}")}};r([s({attribute:!1})],k.prototype,"config",void 0),r([s({attribute:!1})],k.prototype,"cameraManager",void 0),r([s({attribute:!1})],k.prototype,"cameraID",void 0),r([s({attribute:!1})],k.prototype,"forceVisibility",void 0),k=r([d("frigate-card-ptz")],k);const M=(t,a)=>{void 0!==a?.fit?t.style.setProperty("--frigate-card-media-layout-fit",a.fit):t.style.removeProperty("--frigate-card-media-layout-fit");for(const n of["x","y"])void 0!==a?.position?.[n]?t.style.setProperty(`--frigate-card-media-layout-position-${n}`,`${a.position[n]}%`):t.style.removeProperty(`--frigate-card-media-layout-position-${n}`);for(const n of["top","bottom","left","right"])void 0!==a?.view_box?.[n]?t.style.setProperty(`--frigate-card-media-layout-view-box-${n}`,`${a.view_box[n]}%`):t.style.removeProperty(`--frigate-card-media-layout-view-box-${n}`)},E=2,H=(t,a)=>{t._controlsHideTimer&&(t._controlsHideTimer.stop(),delete t._controlsHideTimer,delete t._controlsOriginalValue),t.controls=a},O=(t,a=1)=>{const n=t._controlsOriginalValue??t.controls;H(t,!1),t._controlsHideTimer??=new i,t._controlsOriginalValue=n;const o=()=>{H(t,n),t.removeEventListener("loadstart",o)};t.addEventListener("loadstart",o),t._controlsHideTimer.start(a,(()=>{H(t,n)}))},R=async(t,a)=>{if(a?.play)try{await a.play()}catch(n){if("NotAllowedError"===n.name&&!t.isMuted()){await t.mute();try{await a.play()}catch(t){}}}};export{A,x as M,L as a,T as b,E as c,O as h,C as i,R as p,H as s,M as u}; diff --git a/config/www/community/frigate-hass-card/media-aef44451.js.gz b/config/www/community/frigate-hass-card/media-aef44451.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..45af40007def1d49e8c30a75d7fc6a57c1f678ef GIT binary patch literal 6206 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 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/media-c9012082.js b/config/www/community/frigate-hass-card/media-c9012082.js new file mode 100644 index 00000000..45e63029 --- /dev/null +++ b/config/www/community/frigate-hass-card/media-c9012082.js @@ -0,0 +1 @@ +var e;!function(e){e.MP4="mp4",e.HLS="hls"}(e||(e={}));class t{constructor(e,t){this._mediaType=e,this._cameraID=t}getCameraID(){return this._cameraID}getMediaType(){return this._mediaType}getVideoContentType(){return null}getID(){return null}getStartTime(){return null}getEndTime(){return null}getUsableEndTime(){return this.getEndTime()??(this.inProgress()?new Date:this.getStartTime())}inProgress(){return null}getContentID(){return null}getTitle(){return null}getThumbnail(){return null}isFavorite(){return null}includesTime(e){const t=this.getStartTime(),r=this.getUsableEndTime();return!!t&&!!r&&e>=t&&e<=r}setFavorite(e){}getWhere(){return null}}export{e as V,t as a}; diff --git a/config/www/community/frigate-hass-card/media-c9012082.js.gz b/config/www/community/frigate-hass-card/media-c9012082.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..c6837be4803d5941d1e79aa5d412cd38d973d7d5 GIT binary patch literal 345 zcmV-f0jB;RiwFoFf?;O@|7~StX<;p6IWRFYFgP+UYI6W>lEH3+Fbsz8dy2pTfrNVM zX)NoZ-Ly%oRH>{xPAPaLQb;Ptbem}2eZbm^Qcg*Jf3|-oIS6Escwd#yNE#hNRKsMs znsUF~PyHAsFK=t^7s~oBgyS&;Ub`qtG9|2KRA)w8!YU(!A;c8bR7gAdEFqU7{oMm^ z#7@aX2`F9{oZJp*emaFwjX)J@c1^X+@?2vGU5dBVM&@AVMiXedhIOS>OZ2;(wKWN( zRF)(7lg`Hj?^bLT+=M$%{k+*M>@=xYXm$wJHkyWSwh#pOXT0Yia(#5z_B7kr6saUN zVl*wPa;t?@gOIe(;$TqHFh}Z4RXNzsPV)h}M`grEyvBG@2ltWuSM)pz0?)%BfJfeJ r;en&GK$q4{{nq410XX#G;Ad};YGA^$O-$_~TypmZVX{5!qyhi{`nI4j literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/media-d4c0d154.js b/config/www/community/frigate-hass-card/media-d4c0d154.js new file mode 100644 index 00000000..0dfb8e68 --- /dev/null +++ b/config/www/community/frigate-hass-card/media-d4c0d154.js @@ -0,0 +1,33 @@ +import{cL as t,cM as a,dC as n,dD as i,cP as o,dE as e,_ as r,n as s,b as c,t as d,a as l,dF as h,x as p,e as m,dG as u,r as g,dH as _,dI as f,dJ as v,dK as b,dL as y,l as z}from"./card-769e2b91.js"; +/** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const w={},C=t(class extends a{constructor(){super(...arguments),this.ot=w}render(t,a){return a()}update(t,[a,i]){if(Array.isArray(a)){if(Array.isArray(this.ot)&&this.ot.length===a.length&&a.every(((t,a)=>t===this.ot[a])))return n}else if(this.ot===a)return n;return this.ot=Array.isArray(a)?Array.from(a):a,this.render(a,i)}});class x{constructor(){this._options=null,this._viewportIntersecting=null,this._microphoneMuteTimer=new i,this._root=null,this._eventListeners=new Map,this._children=[],this._target=null,this._mutationObserver=new MutationObserver(this._mutationHandler.bind(this)),this._intersectionObserver=new IntersectionObserver(this._intersectionHandler.bind(this)),this._mediaLoadedHandler=async t=>{this._target?.index===t&&(await this._unmuteTargetIfConfigured(this._target.selected?"selected":"visible"),await this._playTargetIfConfigured(this._target.selected?"selected":"visible"))},this._visibilityHandler=async()=>{await this._changeVisibility("visible"===document.visibilityState)},this._changeVisibility=async t=>{t?(await this._unmuteTargetIfConfigured("visible"),await this._playTargetIfConfigured("visible")):(await this._pauseAllIfConfigured("hidden"),await this._muteAllIfConfigured("hidden"))},this._microphoneChangeHandler=async t=>{"unmuted"===t?await this._unmuteTargetIfConfigured("microphone"):"muted"===t&&this._options?.autoMuteConditions?.includes("microphone")&&this._microphoneMuteTimer.start(this._options.microphoneMuteSeconds??60,(async()=>{await this._muteTargetIfConfigured("microphone")}))}}setOptions(t){this._options=t,this._options?.microphoneManager&&(this._options.microphoneManager.removeListener(this._microphoneChangeHandler),this._options.microphoneManager.addListener(this._microphoneChangeHandler))}hasRoot(){return!!this._root}destroy(){this._viewportIntersecting=null,this._microphoneMuteTimer.stop(),this._root=null,this._removeChildHandlers(),this._children=[],this._target=null,this._mutationObserver.disconnect(),this._intersectionObserver.disconnect(),this._options?.microphoneManager?.removeListener(this._microphoneChangeHandler),document.removeEventListener("visibilitychange",this._visibilityHandler)}async setTarget(t,a){this._target?.index===t&&this._target?.selected===a||(this._target?.selected&&(await this._pauseTargetIfConfigured("unselected"),await this._muteTargetIfConfigured("unselected"),this._microphoneMuteTimer.stop()),this._target={selected:a,index:t},a?(await this._unmuteTargetIfConfigured("selected"),await this._playTargetIfConfigured("selected")):(await this._unmuteTargetIfConfigured("visible"),await this._playTargetIfConfigured("visible")))}unsetTarget(){this._target=null}async _playTargetIfConfigured(t){null!==this._target&&this._options?.autoPlayConditions?.includes(t)&&await this._play(this._target.index)}async _play(t){await(this._children[t]?.play())}async _unmuteTargetIfConfigured(t){null!==this._target&&this._options?.autoUnmuteConditions?.includes(t)&&await this._unmute(this._target.index)}async _unmute(t){await(this._children[t]?.unmute())}async _pauseAllIfConfigured(t){if(this._options?.autoPauseConditions?.includes(t))for(const t of this._children.keys())await this._pause(t)}async _pauseTargetIfConfigured(t){null!==this._target&&this._options?.autoPauseConditions?.includes(t)&&await this._pause(this._target.index)}async _pause(t){await(this._children[t]?.pause())}async _muteAllIfConfigured(t){if(this._options?.autoMuteConditions?.includes(t))for(const t of this._children.keys())await this._mute(t)}async _muteTargetIfConfigured(t){null!==this._target&&this._options?.autoMuteConditions?.includes(t)&&await this._mute(this._target.index)}async _mute(t){await(this._children[t]?.mute())}_mutationHandler(t,a){this._initializeRoot()}_removeChildHandlers(){for(const[t,a]of this._eventListeners.entries())t.removeEventListener("frigate-card:media:loaded",a);this._eventListeners.clear()}initialize(t){this._root=t,this._initializeRoot(),document.addEventListener("visibilitychange",this._visibilityHandler),this._intersectionObserver.disconnect(),this._intersectionObserver.observe(t),this._mutationObserver.disconnect(),this._mutationObserver.observe(this._root,{childList:!0,subtree:!0})}_initializeRoot(){if(this._options&&this._root){this._removeChildHandlers(),this._children=[...this._root.querySelectorAll(this._options.playerSelector)];for(const[t,a]of this._children.entries()){const n=()=>this._mediaLoadedHandler(t);this._eventListeners.set(a,n),a.addEventListener("frigate-card:media:loaded",n)}}}async _intersectionHandler(t){const a=this._viewportIntersecting;this._viewportIntersecting=t.some((t=>t.isIntersecting)),null!==a&&a!==this._viewportIntersecting&&await this._changeVisibility(this._viewportIntersecting)}}const I={active:!0,breakpoints:{},lazyLoadCount:0};function A(t={}){let a,n,i;const o=new Set,e=["init","select"],r=["select"];function s(){"hidden"===document.visibilityState&&a.lazyUnloadConditions?.includes("hidden")?o.forEach((t=>{a.lazyUnloadCallback&&(a.lazyUnloadCallback(t,i[t]),o.delete(t))})):"visible"===document.visibilityState&&a.lazyLoadCallback&&d()}function c(t){return o.has(t)}function d(){const t=a.lazyLoadCount,e=n.selectedScrollSnap(),r=new Set;for(let a=1;a<=t&&e-a>=0;a++)r.add(e-a);r.add(e);for(let a=1;a<=t&&e+a{!c(t)&&a.lazyLoadCallback&&(o.add(t),a.lazyLoadCallback(t,i[t]))}))}function l(){const t=n.previousScrollSnap();c(t)&&a.lazyUnloadCallback&&(a.lazyUnloadCallback(t,i[t]),o.delete(t))}return{name:"autoLazyLoad",options:t,init:function(o,c){const{mergeOptions:h,optionsAtMedia:p}=c,m=h(I,t);a=p(m),n=o,i=n.slideNodes(),a.lazyLoadCallback&&e.forEach((t=>n.on(t,d))),a.lazyUnloadCallback&&a.lazyUnloadConditions?.includes("unselected")&&r.forEach((t=>n.on(t,l))),document.addEventListener("visibilitychange",s)},destroy:function(){a.lazyLoadCallback&&e.forEach((t=>n.off(t,d))),a.lazyUnloadCallback&&r.forEach((t=>n.off(t,l))),document.removeEventListener("visibilitychange",s)}}}function L(){let t,a=[];const n=[];function i(i){const o=i.composedPath();for(const[e,r]of[...a.entries()].reverse())if(o.includes(r)){n[e]=i.detail,e!==t.selectedScrollSnap()&&i.stopPropagation();break}}function e(i){const o=i.composedPath();for(const[e,r]of a.entries())if(o.includes(r)){delete n[e],e!==t.selectedScrollSnap()&&i.stopPropagation();break}}function r(){const i=t.selectedScrollSnap(),e=n[i];e&&o(a[i],e)}return{name:"autoMediaLoadedInfo",options:{},init:function(n){t=n,a=t.slideNodes();for(const t of a)t.addEventListener("frigate-card:media:loaded",i),t.addEventListener("frigate-card:media:unloaded",e);t.on("init",r),t.containerNode().addEventListener("frigate-card:carousel:force-select",r)},destroy:function(){for(const t of a)t.removeEventListener("frigate-card:media:loaded",i),t.removeEventListener("frigate-card:media:unloaded",e);t.off("init",r),t.containerNode().removeEventListener("frigate-card:carousel:force-select",r)}}}class S{constructor(t){this._scrolling=!1,this._shouldReInitOnScrollStop=!1,this._scrollingStart=()=>{this._scrolling=!0},this._scrollingStop=()=>{this._scrolling=!1,this._shouldReInitOnScrollStop&&(this._shouldReInitOnScrollStop=!1,this._debouncedReInit())},this._debouncedReInit=e((()=>{this._scrolling=!1,this._shouldReInitOnScrollStop=!1,this._emblaApi?.reInit()}),500,{trailing:!0}),this._emblaApi=t,this._emblaApi.on("scroll",this._scrollingStart),this._emblaApi.on("settle",this._scrollingStop),this._emblaApi.on("destroy",this.destroy)}destroy(){this._emblaApi.off("scroll",this._scrollingStart),this._emblaApi.off("settle",this._scrollingStop),this._emblaApi.off("destroy",this.destroy)}reinit(){this._scrolling?this._shouldReInitOnScrollStop=!0:this._debouncedReInit()}}function T(){let t,a=null,n=null;const i=new Map,o=new ResizeObserver((function(t){let a=!1;for(const n of t){const t={height:n.contentRect.height,width:n.contentRect.width},o=i.get(n.target);t.width&&t.height&&(o?.height!==t.height||o?.width!==t.width)&&(i.set(n.target,t),a=!0)}a&&s()})),r=new IntersectionObserver((function(t){const i=t.some((t=>t.isIntersecting));if(i!==n){const t=i&&null!==n;n=i,t&&a?.reinit()}})),s=e((()=>function(){const{slideRegistry:n,options:{axis:i}}=t.internalEngine();if("y"===i)return;t.containerNode().style.removeProperty("max-height");const o=n[t.selectedScrollSnap()],e=t.slideNodes(),r=Math.max(...o.map((t=>e[t].getBoundingClientRect().height)));!isNaN(r)&&r>0&&(t.containerNode().style.maxHeight=`${r}px`);a?.reinit()}()),200,{trailing:!0});return{name:"autoSize",options:{},init:function(n){t=n,a=new S(t),r.observe(t.containerNode()),o.observe(t.containerNode());for(const a of t.slideNodes())o.observe(a);t.containerNode().addEventListener("frigate-card:media:loaded",s),t.on("settle",s)},destroy:function(){r.disconnect(),o.disconnect(),a?.destroy(),t.containerNode().removeEventListener("frigate-card:media:loaded",s),t.off("settle",s)}}}let $=class extends l{constructor(){super(...arguments),this.disabled=!1,this.label="",this._embedThumbnailTask=h(this,(()=>this.hass),(()=>this.thumbnail))}set controlConfig(t){t?.size&&this.style.setProperty("--frigate-card-next-prev-size",`${t.size}px`),this._controlConfig=t}render(){if(this.disabled||!this._controlConfig||"none"==this._controlConfig.style)return p``;const t=!this.thumbnail||["chevrons","icons"].includes(this._controlConfig.style),a={controls:!0,previous:"previous"===this.direction,next:"next"===this.direction,thumbnails:!t,icons:t,button:t};if(t){const t=this.thumbnail&&this.icon&&"chevrons"!==this._controlConfig.style?this.icon:"previous"===this.direction?"mdi:chevron-left":"mdi:chevron-right";return p` + + `}return u(this,this._embedThumbnailTask,(t=>t?p``:p``),{inProgressFunc:()=>p`
    `})}static get styles(){return g("ha-icon-button.button {\n color: var(--secondary-color, white);\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 50%;\n padding: 0px;\n margin: 3px;\n --ha-icon-display: block;\n /* Buttons can always be clicked */\n pointer-events: auto;\n opacity: 0.9;\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.6;\n }\n 100% {\n opacity: 1;\n }\n}\nha-icon[data-domain=alert][data-state=on],\nha-icon[data-domain=automation][data-state=on],\nha-icon[data-domain=binary_sensor][data-state=on],\nha-icon[data-domain=calendar][data-state=on],\nha-icon[data-domain=camera][data-state=streaming],\nha-icon[data-domain=cover][data-state=open],\nha-icon[data-domain=fan][data-state=on],\nha-icon[data-domain=humidifier][data-state=on],\nha-icon[data-domain=light][data-state=on],\nha-icon[data-domain=input_boolean][data-state=on],\nha-icon[data-domain=lock][data-state=unlocked],\nha-icon[data-domain=media_player][data-state=on],\nha-icon[data-domain=media_player][data-state=paused],\nha-icon[data-domain=media_player][data-state=playing],\nha-icon[data-domain=script][data-state=on],\nha-icon[data-domain=sun][data-state=above_horizon],\nha-icon[data-domain=switch][data-state=on],\nha-icon[data-domain=timer][data-state=active],\nha-icon[data-domain=vacuum][data-state=cleaning],\nha-icon[data-domain=group][data-state=on],\nha-icon[data-domain=group][data-state=home],\nha-icon[data-domain=group][data-state=open],\nha-icon[data-domain=group][data-state=locked],\nha-icon[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=pending],\nha-icon[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon[data-domain=plant][data-state=problem],\nha-icon[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\nha-icon-button[data-domain=alert][data-state=on],\nha-icon-button[data-domain=automation][data-state=on],\nha-icon-button[data-domain=binary_sensor][data-state=on],\nha-icon-button[data-domain=calendar][data-state=on],\nha-icon-button[data-domain=camera][data-state=streaming],\nha-icon-button[data-domain=cover][data-state=open],\nha-icon-button[data-domain=fan][data-state=on],\nha-icon-button[data-domain=humidifier][data-state=on],\nha-icon-button[data-domain=light][data-state=on],\nha-icon-button[data-domain=input_boolean][data-state=on],\nha-icon-button[data-domain=lock][data-state=unlocked],\nha-icon-button[data-domain=media_player][data-state=on],\nha-icon-button[data-domain=media_player][data-state=paused],\nha-icon-button[data-domain=media_player][data-state=playing],\nha-icon-button[data-domain=script][data-state=on],\nha-icon-button[data-domain=sun][data-state=above_horizon],\nha-icon-button[data-domain=switch][data-state=on],\nha-icon-button[data-domain=timer][data-state=active],\nha-icon-button[data-domain=vacuum][data-state=cleaning],\nha-icon-button[data-domain=group][data-state=on],\nha-icon-button[data-domain=group][data-state=home],\nha-icon-button[data-domain=group][data-state=open],\nha-icon-button[data-domain=group][data-state=locked],\nha-icon-button[data-domain=group][data-state=problem] {\n color: var(--paper-item-icon-active-color, #fdd835);\n}\n\nha-icon-button[data-domain=climate][data-state=cooling] {\n color: var(--cool-color, var(--state-climate-cool-color));\n}\n\nha-icon-button[data-domain=climate][data-state=heating] {\n color: var(--heat-color, var(--state-climate-heat-color));\n}\n\nha-icon-button[data-domain=climate][data-state=drying] {\n color: var(--dry-color, var(--state-climate-dry-color));\n}\n\nha-icon-button[data-domain=alarm_control_panel] {\n color: var(--alarm-color-armed, var(--label-badge-red));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=disarmed] {\n color: var(--alarm-color-disarmed, var(--label-badge-green));\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=pending],\nha-icon-button[data-domain=alarm_control_panel][data-state=arming] {\n color: var(--alarm-color-pending, var(--label-badge-yellow));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=alarm_control_panel][data-state=triggered] {\n color: var(--alarm-color-triggered, var(--label-badge-red));\n animation: pulse 1s infinite;\n}\n\nha-icon-button[data-domain=plant][data-state=problem],\nha-icon-button[data-domain=zwave][data-state=dead] {\n color: var(--state-icon-error-color);\n}\n\n/* Color the icon if unavailable */\nha-icon-button[data-state=unavailable] {\n color: var(--state-unavailable-color);\n}\n\n:host {\n --frigate-card-next-prev-size: 48px;\n --frigate-card-next-prev-size-hover: calc(var(--frigate-card-next-prev-size) * 2);\n --frigate-card-prev-position: 45px;\n --frigate-card-next-position: 45px;\n --mdc-icon-button-size: var(--frigate-card-next-prev-size);\n --mdc-icon-size: calc(var(--mdc-icon-button-size) / 2);\n}\n\n.controls {\n position: absolute;\n z-index: 1;\n overflow: hidden;\n}\n\n.controls.previous {\n left: var(--frigate-card-prev-position);\n}\n\n.controls.next {\n right: var(--frigate-card-next-position);\n}\n\n.controls.icons {\n top: calc(50% - var(--frigate-card-next-prev-size) / 2);\n}\n\n.controls.thumbnails {\n border-radius: 50%;\n height: var(--frigate-card-next-prev-size);\n top: calc(50% - var(--frigate-card-next-prev-size) / 2);\n box-shadow: var(--frigate-card-css-box-shadow, 0px 0px 20px 5px black);\n transition: all 0.2s ease-out;\n opacity: 0.8;\n aspect-ratio: 1/1;\n}\n\n.controls.thumbnails:hover {\n opacity: 1 !important;\n height: var(--frigate-card-next-prev-size-hover);\n top: calc(50% - var(--frigate-card-next-prev-size-hover) / 2);\n}\n\n.controls.previous.thumbnails:hover {\n left: calc(var(--frigate-card-prev-position) - (var(--frigate-card-next-prev-size-hover) - var(--frigate-card-next-prev-size)) / 2);\n}\n\n.controls.next.thumbnails:hover {\n right: calc(var(--frigate-card-next-position) - (var(--frigate-card-next-prev-size-hover) - var(--frigate-card-next-prev-size)) / 2);\n}")}};r([s({attribute:!1})],$.prototype,"direction",void 0),r([s({attribute:!1})],$.prototype,"hass",void 0),r([c()],$.prototype,"_controlConfig",void 0),r([s({attribute:!1})],$.prototype,"thumbnail",void 0),r([s({attribute:!1})],$.prototype,"icon",void 0),r([s({attribute:!0,type:Boolean})],$.prototype,"disabled",void 0),r([s()],$.prototype,"label",void 0),$=r([d("frigate-card-next-previous-control")],$);class P{constructor(t){this._config=null,this._hass=null,this._cameraManager=null,this._cameraID=null,this._host=t}setConfig(t){this._config=t??null,this._host.setAttribute("data-orientation",t?.orientation??"horizontal"),this._host.setAttribute("data-position",t?.position??"bottom-right"),this._host.setAttribute("style",Object.entries(t?.style??{}).map((([t,a])=>`${t}:${a}`)).join(";"))}getConfig(){return this._config}setCamera(t,a){this._cameraManager=t??null,this._cameraID=a??null}setForceVisibility(t){this._forceVisibility=t}handleAction(t,a){t.stopPropagation();const n=t.detail.action,i=_(n,a);i&&f(this._host,{action:i,...a&&{config:a}})}hasUsefulAction(){const t={pt:!0,z:!0,home:!0};if(!this._cameraID)return t;const a=this._cameraManager?.getCameraCapabilities(this._cameraID);if(!a||!a.hasPTZCapability())return t;const n=a.getPTZCapabilities();return{pt:!!(n?.up||n?.down||n?.left||n?.right),z:!!n?.zoomIn||!!n?.zoomOut,home:!!n?.presets?.length}}shouldDisplay(){return void 0!==this._forceVisibility?this._forceVisibility:"auto"===this._config?.mode?!!this._cameraID&&!!this._cameraManager?.getCameraCapabilities(this._cameraID)?.hasPTZCapability():"on"===this._config?.mode}getPTZActions(){const t=t=>({start_tap_action:v({ptzAction:t?.ptzAction,ptzPhase:"start",ptzPreset:t?.preset}),end_tap_action:v({ptzAction:t?.ptzAction,ptzPhase:"stop",ptzPreset:t?.preset})}),a={};return a.up=t({ptzAction:"up"}),a.down=t({ptzAction:"down"}),a.left=t({ptzAction:"left"}),a.right=t({ptzAction:"right"}),a.zoom_in=t({ptzAction:"zoom_in"}),a.zoom_out=t({ptzAction:"zoom_out"}),a.home={tap_action:v()},a}}let k=class extends l{constructor(){super(...arguments),this._controller=new P(this),this._actions=this._controller.getPTZActions(),this._actionPresence=null}willUpdate(t){t.has("config")&&this._controller.setConfig(this.config),(t.has("cameraManager")||t.has("cameraID"))&&this._controller.setCamera(this.cameraManager,this.cameraID),t.has("forceVisibility")&&this._controller.setForceVisibility(this.forceVisibility),(t.has("cameraID")||t.has("cameraManager"))&&(this._actionPresence=this._controller.hasUsefulAction())}render(){if(!this._controller.shouldDisplay())return;const t=(t,a,n)=>n?p`this._controller.handleAction(t,n)} + >`:p``,a=this._controller.getConfig();return p`
    + ${!a?.hide_pan_tilt&&this._actionPresence?.pt?p`
    + ${t("right","mdi:arrow-right",this._actions.right)} + ${t("left","mdi:arrow-left",this._actions.left)} + ${t("up","mdi:arrow-up",this._actions.up)} + ${t("down","mdi:arrow-down",this._actions.down)} +
    `:""} + ${!a?.hide_zoom&&this._actionPresence?.z?p`
    + ${t("zoom_in","mdi:plus",this._actions.zoom_in)} + ${t("zoom_out","mdi:minus",this._actions.zoom_out)} +
    `:p``} + ${!a?.hide_home&&this._actionPresence?.home?p`
    + ${t("home","mdi:home",this._actions.home)} +
    `:p``} +
    `}static get styles(){return g(":host {\n position: absolute;\n width: fit-content;\n height: fit-content;\n --frigate-card-ptz-icon-size: 24px;\n}\n\n:host([data-position$=-left]) {\n left: 5%;\n}\n\n:host([data-position$=-right]) {\n right: 5%;\n}\n\n:host([data-position^=top-]) {\n top: 5%;\n}\n\n:host([data-position^=bottom-]) {\n bottom: 5%;\n}\n\n/*****************\n * Main Containers\n *****************/\n.ptz {\n display: flex;\n gap: 10px;\n color: var(--light-primary-color);\n opacity: 0.4;\n transition: opacity 0.3s ease-in-out;\n}\n\n:host([data-orientation=vertical]) .ptz {\n flex-direction: column;\n}\n\n:host([data-orientation=horizontal]) .ptz {\n flex-direction: row;\n}\n\n.ptz:hover {\n opacity: 1;\n}\n\n:host([data-orientation=vertical]) .ptz div {\n width: calc(var(--frigate-card-ptz-icon-size) * 3);\n}\n\n:host([data-orientation=horizontal]) .ptz div {\n height: calc(var(--frigate-card-ptz-icon-size) * 3);\n}\n\n.ptz-move,\n.ptz-zoom,\n.ptz-home {\n position: relative;\n background-color: rgba(0, 0, 0, 0.3);\n}\n\n.ptz-move {\n height: calc(var(--frigate-card-ptz-icon-size) * 3);\n width: calc(var(--frigate-card-ptz-icon-size) * 3);\n border-radius: 50%;\n}\n\n:host([data-orientation=horizontal]) .ptz .ptz-zoom,\n:host([data-orientation=horizontal]) .ptz .ptz-home {\n width: calc(var(--frigate-card-ptz-icon-size) * 1.5);\n}\n\n:host([data-orientation=vertical]) .ptz .ptz-zoom,\n:host([data-orientation=vertical]) .ptz .ptz-home {\n height: calc(var(--frigate-card-ptz-icon-size) * 1.5);\n}\n\n.ptz-zoom,\n.ptz-home {\n border-radius: var(--ha-card-border-radius, 4px);\n}\n\n/***********\n * PTZ Icons\n ***********/\nha-icon {\n position: absolute;\n --mdc-icon-size: var(--frigate-card-ptz-icon-size);\n}\n\nha-icon:not(.disabled) {\n cursor: pointer;\n}\n\n.disabled {\n color: var(--disabled-text-color);\n}\n\n.up {\n top: 5px;\n left: 50%;\n transform: translateX(-50%);\n}\n\n.down {\n bottom: 5px;\n left: 50%;\n transform: translateX(-50%);\n}\n\n.left {\n left: 5px;\n top: 50%;\n transform: translateY(-50%);\n}\n\n.right {\n right: 5px;\n top: 50%;\n transform: translateY(-50%);\n}\n\n:host([data-orientation=vertical]) .zoom_in {\n right: 5px;\n top: 50%;\n}\n\n:host([data-orientation=vertical]) .zoom_out {\n left: 5px;\n top: 50%;\n}\n\n:host([data-orientation=horizontal]) .zoom_in {\n left: 50%;\n top: 5px;\n}\n\n:host([data-orientation=horizontal]) .zoom_out {\n left: 50%;\n bottom: 5px;\n}\n\n:host([data-orientation=vertical]) .zoom_in,\n:host([data-orientation=vertical]) .zoom_out {\n transform: translateY(-50%);\n}\n\n:host([data-orientation=horizontal]) .zoom_in,\n:host([data-orientation=horizontal]) .zoom_out {\n transform: translateX(-50%);\n}\n\n.home {\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n}")}};r([s({attribute:!1})],k.prototype,"config",void 0),r([s({attribute:!1})],k.prototype,"cameraManager",void 0),r([s({attribute:!1})],k.prototype,"cameraID",void 0),r([s({attribute:!1})],k.prototype,"forceVisibility",void 0),k=r([d("frigate-card-ptz")],k);const M=(t,a)=>{void 0!==a?.fit?t.style.setProperty("--frigate-card-media-layout-fit",a.fit):t.style.removeProperty("--frigate-card-media-layout-fit");for(const n of["x","y"])void 0!==a?.position?.[n]?t.style.setProperty(`--frigate-card-media-layout-position-${n}`,`${a.position[n]}%`):t.style.removeProperty(`--frigate-card-media-layout-position-${n}`);for(const n of["top","bottom","left","right"])void 0!==a?.view_box?.[n]?t.style.setProperty(`--frigate-card-media-layout-view-box-${n}`,`${a.view_box[n]}%`):t.style.removeProperty(`--frigate-card-media-layout-view-box-${n}`)},E=2,H=(t,a)=>{t._controlsHideTimer&&(t._controlsHideTimer.stop(),delete t._controlsHideTimer,delete t._controlsOriginalValue),t.controls=a},O=(t,a=1)=>{const n=t._controlsOriginalValue??t.controls;H(t,!1),t._controlsHideTimer??=new i,t._controlsOriginalValue=n;const o=()=>{H(t,n),t.removeEventListener("loadstart",o)};t.addEventListener("loadstart",o),t._controlsHideTimer.start(a,(()=>{H(t,n)}))},R=async(t,a)=>{if(a?.play)try{await a.play()}catch(n){if("NotAllowedError"===n.name&&!t.isMuted()){await t.mute();try{await a.play()}catch(t){}}}};export{A,x as M,L as a,T as b,E as c,O as h,C as i,R as p,H as s,M as u}; diff --git a/config/www/community/frigate-hass-card/media-d4c0d154.js.gz b/config/www/community/frigate-hass-card/media-d4c0d154.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..925fe27e02fb8b188f65ddc9db4d03b0c17980ff GIT binary patch literal 6208 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 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/media-grid-0f7352bc.js b/config/www/community/frigate-hass-card/media-grid-0f7352bc.js new file mode 100644 index 00000000..69a2913d --- /dev/null +++ b/config/www/community/frigate-hass-card/media-grid-0f7352bc.js @@ -0,0 +1,22 @@ +import{dN as t,dM as e,dh as i,eE as n,i as o,dg as s,cP as r,cS as a,s as h,_ as l,n as d,t as u,a as c,cR as f,x as m,cV as p,r as g}from"./card-45855f1f.js";var v,y={exports:{}},_={exports:{}},b={exports:{}};function C(){return v||(v=1,e=b,i="undefined"!=typeof window?window:t,n=function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{};return(i[t]=i[t]||{})[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var n=this._onceEvents&&this._onceEvents[t],o=0;o

    10FjDS2LKsBKJ9DEGfCe6`MH~DP`!txKm8~55i4d?W|2=Dv7<=EIs z=ncnl%`wP0llg z3lRiCn0)69v``VAMTEQg?QF*IPK3zSk>i|`%^x3~>f^ze>#}a%?;1K!cz#v$>K4Ds zi9mJ=VK!W}o^X}ss~z5a{HwJ(^o`%ZfI+BT(aROj^MB^}2)`r|XLPqH=(c@Bf#ixp z$nqwQ4ewLOGi|>z-q+TV;08*%0$MICFfp&8NQI=AY$H56OVIWZ?&nfe05WS!!iR?s zlr##Y0;2CmD#!BBrnPOzD5Rvopf$aBsar8@i2(Pw zAcB7?f%k|)a8W&hr!=m1xhIoi9_AurItfl$N$}p*-YPAMvhl9)>z(Op%`*}nSLv`dpaXMfJfrVzfil3W0qISu zE>K^=+@B6Ef@HRha0uk^KM+59$$$gV=1!>$7etZhJ}P>+Kx%H7J7U5Yk$zq*EKz2W zD7LX)7YiQ|F~#qZnvs98R2ROFWw+F!jWNj(mGZ%y8*_y%fZ`N5Fb@ezGay)Gc<>XG zLv*v8^*$x`AupTuP~1?Gs)hzDps5?~KSg#tNx%f*p$!l2N6`X{27)ZCH12>H9BMU) zlabM$(hkS_I^GNk45sA%K^zW<2>KqHm2pw(RbdnL>wpTkM0Mj0bM`HMNdg($zQs;g z`JAO#acrl%0_y-0?4?brXx5kdNUlrPpag;;YHyxKK;hx0qaxh%yAFK1tqdZJw6#=(+AcJ`+gF(yYb@6>=tVkuPS(gVuEwjg{f}*l? zJjJ#t%z;ytUQ%PqTchVidt^EsHsxSHcZCE5&uoNydDO6{l7iH+5Js1$2ZIHMVOJ(w zBJD9~4?XKZpVM@0+Qy=LZs>jhf1mh0(SEc}(bQ1EyrGsd5rLi#SPA*^%!USRIB3G zbO<`W=&9@_YunUH*^NQgj;rzVLXZMN0SeYgx&@iY)%FYwbX^Is<@gl;7)nh17w7uJ zn2(tM0QA??*4S~Ge-QM+vHo+=cXn*=C~|FNSc$JOjSv3W54H^6Td@o$GN%X!KMrAC z1w3V)&p(ad@_SzUOvXiGy*BlZl)Q+xbAaFeJ*96#p3zl_waB4+r#^m$iSaW_}AXb2>^!sdIt~%z;Nc0 ztJVnkk()BlF?M9Et%_fxFOyuuI+eQS*;$(BSLy1L9xocG(I>h719-Uk8?h<+b*<8O zM(IMZFy})?pp)|s4|kAK0Z%*ckGkE>m$+zQQp&Wd)Sd7lMvoj zUamgPu}J>)5$|+1`-a|CI>8hS@t69;A9N=e{}Rk-LyOBF8FG+iWA8b20EJ(H)cPEI z>8>fMs9qs@uhMF&R)Al*kfU$vsqQc(e6*E^--_RglV=`&QNxTtp944p4Y=XV`;cCz zm7s4;oC6=E-m{b63PNEV>#tdvo-S7HS>hOX2U+D=D4SiCcT;&c8t~u#<&?RsqSq?T z#IBCLTX5;8({(D*<5V*IqdQ>-De}I*y`6G|ukJ@^%{<=0+Ud}vzYFA%MIz52^cQ=f z_i@>-`VUVan{F$yNvnGVxvWBaaj3MAme}Z^gTxei&z^)AIoFpdrOhP;(jtiwhuP== zhRI=`2Nzjj{3Xh&EZHY>h{&>bn7rH-vL|$MMNHfCQv!W=uI)QDUcZmSgmam-+JC~o cc=%ejJcEX038SHXnE&bj1GK_5=8kay05CE<5&!@I literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/parse-114e8d53.js b/config/www/community/frigate-hass-card/parse-114e8d53.js new file mode 100644 index 00000000..328f3e68 --- /dev/null +++ b/config/www/community/frigate-hass-card/parse-114e8d53.js @@ -0,0 +1 @@ +import{ek as t,d3 as e,el as r,em as n,en as a,eo as s,ep as i,eq as o,er as c,es as u,et as d,eu as l,ev as w,ew as h,ex as m,ey as f,ez as y,eA as p}from"./card-45855f1f.js";class x{subPriority=0;validate(t,e){return!0}}class g extends x{constructor(t,e,r,n,a){super(),this.value=t,this.validateValue=e,this.setValue=r,this.priority=n,a&&(this.subPriority=a)}validate(t,e){return this.validateValue(t,this.value,e)}set(t,e,r){return this.setValue(t,e,this.value,r)}}class b extends x{priority=10;subPriority=-1;set(t,e){return e.timestampIsSet?t:r(t,function(t,e){const n=e instanceof Date?r(e,0):new e(0);return n.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),n.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()),n}(t,Date))}}class T{run(t,e,r,n){const a=this.parse(t,e,r,n);return a?{setter:new g(a.value,this.validate,this.set,this.priority,this.subPriority),rest:a.rest}:null}validate(t,e,r){return!0}}const k=/^(1[0-2]|0?\d)/,v=/^(3[0-1]|[0-2]?\d)/,D=/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,q=/^(5[0-3]|[0-4]?\d)/,M=/^(2[0-3]|[0-1]?\d)/,H=/^(2[0-4]|[0-1]?\d)/,Y=/^(1[0-1]|0?\d)/,N=/^(1[0-2]|0?\d)/,E=/^[0-5]?\d/,P=/^[0-5]?\d/,L=/^\d/,Q=/^\d{1,2}/,I=/^\d{1,3}/,R=/^\d{1,4}/,S=/^-?\d+/,O=/^-?\d/,B=/^-?\d{1,2}/,G=/^-?\d{1,3}/,X=/^-?\d{1,4}/,F=/^([+-])(\d{2})(\d{2})?|Z/,A=/^([+-])(\d{2})(\d{2})|Z/,W=/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,C=/^([+-])(\d{2}):(\d{2})|Z/,K=/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/;function Z(t,e){return t?{value:e(t.value),rest:t.rest}:t}function $(t,e){const r=e.match(t);return r?{value:parseInt(r[0],10),rest:e.slice(r[0].length)}:null}function j(t,e){const r=e.match(t);if(!r)return null;if("Z"===r[0])return{value:0,rest:e.slice(1)};const i="+"===r[1]?1:-1,o=r[2]?parseInt(r[2],10):0,c=r[3]?parseInt(r[3],10):0,u=r[5]?parseInt(r[5],10):0;return{value:i*(o*n+c*a+u*s),rest:e.slice(r[0].length)}}function V(t){return $(S,t)}function z(t,e){switch(t){case 1:return $(L,e);case 2:return $(Q,e);case 3:return $(I,e);case 4:return $(R,e);default:return $(new RegExp("^\\d{1,"+t+"}"),e)}}function J(t,e){switch(t){case 1:return $(O,e);case 2:return $(B,e);case 3:return $(G,e);case 4:return $(X,e);default:return $(new RegExp("^-?\\d{1,"+t+"}"),e)}}function U(t){switch(t){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;default:return 0}}function _(t,e){const r=e>0,n=r?e:1-e;let a;if(n<=50)a=t||100;else{const e=n+50;a=t+100*Math.trunc(e/100)-(t>=e%100?100:0)}return r?a:1-a}function tt(t){return t%400==0||t%4==0&&t%100!=0}const et=[31,28,31,30,31,30,31,31,30,31,30,31],rt=[31,29,31,30,31,30,31,31,30,31,30,31];function nt(r,n,a){const s=t(),i=a?.weekStartsOn??a?.locale?.options?.weekStartsOn??s.weekStartsOn??s.locale?.options?.weekStartsOn??0,o=e(r),c=o.getDay(),u=7-i;return l(o,n<0||n>6?n-(c+u)%7:((n%7+7)%7+u)%7-(c+u)%7)}function at(t,r){const n=e(t),a=function(t){let r=e(t).getDay();return 0===r&&(r=7),r}(n);return l(n,r-a)}const st={G:new class extends T{priority=140;parse(t,e,r){switch(e){case"G":case"GG":case"GGG":return r.era(t,{width:"abbreviated"})||r.era(t,{width:"narrow"});case"GGGGG":return r.era(t,{width:"narrow"});default:return r.era(t,{width:"wide"})||r.era(t,{width:"abbreviated"})||r.era(t,{width:"narrow"})}}set(t,e,r){return e.era=r,t.setFullYear(r,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["R","u","t","T"]},y:new class extends T{priority=130;incompatibleTokens=["Y","R","u","w","I","i","e","c","t","T"];parse(t,e,r){const n=t=>({year:t,isTwoDigitYear:"yy"===e});switch(e){case"y":return Z(z(4,t),n);case"yo":return Z(r.ordinalNumber(t,{unit:"year"}),n);default:return Z(z(e.length,t),n)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,r){const n=t.getFullYear();if(r.isTwoDigitYear){const e=_(r.year,n);return t.setFullYear(e,0,1),t.setHours(0,0,0,0),t}const a="era"in e&&1!==e.era?1-r.year:r.year;return t.setFullYear(a,0,1),t.setHours(0,0,0,0),t}},Y:new class extends T{priority=130;parse(t,e,r){const n=t=>({year:t,isTwoDigitYear:"YY"===e});switch(e){case"Y":return Z(z(4,t),n);case"Yo":return Z(r.ordinalNumber(t,{unit:"year"}),n);default:return Z(z(e.length,t),n)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,r,n){const a=i(t,n);if(r.isTwoDigitYear){const e=_(r.year,a);return t.setFullYear(e,0,n.firstWeekContainsDate),t.setHours(0,0,0,0),o(t,n)}const s="era"in e&&1!==e.era?1-r.year:r.year;return t.setFullYear(s,0,n.firstWeekContainsDate),t.setHours(0,0,0,0),o(t,n)}incompatibleTokens=["y","R","u","Q","q","M","L","I","d","D","i","t","T"]},R:new class extends T{priority=130;parse(t,e){return J("R"===e?4:e.length,t)}set(t,e,n){const a=r(t,0);return a.setFullYear(n,0,4),a.setHours(0,0,0,0),c(a)}incompatibleTokens=["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]},u:new class extends T{priority=130;parse(t,e){return J("u"===e?4:e.length,t)}set(t,e,r){return t.setFullYear(r,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["G","y","Y","R","w","I","i","e","c","t","T"]},Q:new class extends T{priority=120;parse(t,e,r){switch(e){case"Q":case"QQ":return z(e.length,t);case"Qo":return r.ordinalNumber(t,{unit:"quarter"});case"QQQ":return r.quarter(t,{width:"abbreviated",context:"formatting"})||r.quarter(t,{width:"narrow",context:"formatting"});case"QQQQQ":return r.quarter(t,{width:"narrow",context:"formatting"});default:return r.quarter(t,{width:"wide",context:"formatting"})||r.quarter(t,{width:"abbreviated",context:"formatting"})||r.quarter(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=1&&e<=4}set(t,e,r){return t.setMonth(3*(r-1),1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]},q:new class extends T{priority=120;parse(t,e,r){switch(e){case"q":case"qq":return z(e.length,t);case"qo":return r.ordinalNumber(t,{unit:"quarter"});case"qqq":return r.quarter(t,{width:"abbreviated",context:"standalone"})||r.quarter(t,{width:"narrow",context:"standalone"});case"qqqqq":return r.quarter(t,{width:"narrow",context:"standalone"});default:return r.quarter(t,{width:"wide",context:"standalone"})||r.quarter(t,{width:"abbreviated",context:"standalone"})||r.quarter(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=1&&e<=4}set(t,e,r){return t.setMonth(3*(r-1),1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]},M:new class extends T{incompatibleTokens=["Y","R","q","Q","L","w","I","D","i","e","c","t","T"];priority=110;parse(t,e,r){const n=t=>t-1;switch(e){case"M":return Z($(k,t),n);case"MM":return Z(z(2,t),n);case"Mo":return Z(r.ordinalNumber(t,{unit:"month"}),n);case"MMM":return r.month(t,{width:"abbreviated",context:"formatting"})||r.month(t,{width:"narrow",context:"formatting"});case"MMMMM":return r.month(t,{width:"narrow",context:"formatting"});default:return r.month(t,{width:"wide",context:"formatting"})||r.month(t,{width:"abbreviated",context:"formatting"})||r.month(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.setMonth(r,1),t.setHours(0,0,0,0),t}},L:new class extends T{priority=110;parse(t,e,r){const n=t=>t-1;switch(e){case"L":return Z($(k,t),n);case"LL":return Z(z(2,t),n);case"Lo":return Z(r.ordinalNumber(t,{unit:"month"}),n);case"LLL":return r.month(t,{width:"abbreviated",context:"standalone"})||r.month(t,{width:"narrow",context:"standalone"});case"LLLLL":return r.month(t,{width:"narrow",context:"standalone"});default:return r.month(t,{width:"wide",context:"standalone"})||r.month(t,{width:"abbreviated",context:"standalone"})||r.month(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.setMonth(r,1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]},w:new class extends T{priority=100;parse(t,e,r){switch(e){case"w":return $(q,t);case"wo":return r.ordinalNumber(t,{unit:"week"});default:return z(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,r,n,a){return o(function(t,r,n){const a=e(t),s=u(a,n)-r;return a.setDate(a.getDate()-7*s),a}(t,n,a),a)}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","i","t","T"]},I:new class extends T{priority=100;parse(t,e,r){switch(e){case"I":return $(q,t);case"Io":return r.ordinalNumber(t,{unit:"week"});default:return z(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,r,n){return c(function(t,r){const n=e(t),a=d(n)-r;return n.setDate(n.getDate()-7*a),n}(t,n))}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]},d:new class extends T{priority=90;subPriority=1;parse(t,e,r){switch(e){case"d":return $(v,t);case"do":return r.ordinalNumber(t,{unit:"date"});default:return z(e.length,t)}}validate(t,e){const r=tt(t.getFullYear()),n=t.getMonth();return r?e>=1&&e<=rt[n]:e>=1&&e<=et[n]}set(t,e,r){return t.setDate(r),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","w","I","D","i","e","c","t","T"]},D:new class extends T{priority=90;subpriority=1;parse(t,e,r){switch(e){case"D":case"DD":return $(D,t);case"Do":return r.ordinalNumber(t,{unit:"date"});default:return z(e.length,t)}}validate(t,e){return tt(t.getFullYear())?e>=1&&e<=366:e>=1&&e<=365}set(t,e,r){return t.setMonth(0,r),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]},E:new class extends T{priority=90;parse(t,e,r){switch(e){case"E":case"EE":case"EEE":return r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"EEEEE":return r.day(t,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});default:return r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=nt(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["D","i","e","c","t","T"]},e:new class extends T{priority=90;parse(t,e,r,n){const a=t=>{const e=7*Math.floor((t-1)/7);return(t+n.weekStartsOn+6)%7+e};switch(e){case"e":case"ee":return Z(z(e.length,t),a);case"eo":return Z(r.ordinalNumber(t,{unit:"day"}),a);case"eee":return r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"eeeee":return r.day(t,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});default:return r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=nt(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]},c:new class extends T{priority=90;parse(t,e,r,n){const a=t=>{const e=7*Math.floor((t-1)/7);return(t+n.weekStartsOn+6)%7+e};switch(e){case"c":case"cc":return Z(z(e.length,t),a);case"co":return Z(r.ordinalNumber(t,{unit:"day"}),a);case"ccc":return r.day(t,{width:"abbreviated",context:"standalone"})||r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"});case"ccccc":return r.day(t,{width:"narrow",context:"standalone"});case"cccccc":return r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"});default:return r.day(t,{width:"wide",context:"standalone"})||r.day(t,{width:"abbreviated",context:"standalone"})||r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=nt(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]},i:new class extends T{priority=90;parse(t,e,r){const n=t=>0===t?7:t;switch(e){case"i":case"ii":return z(e.length,t);case"io":return r.ordinalNumber(t,{unit:"day"});case"iii":return Z(r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n);case"iiiii":return Z(r.day(t,{width:"narrow",context:"formatting"}),n);case"iiiiii":return Z(r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n);default:return Z(r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n)}}validate(t,e){return e>=1&&e<=7}set(t,e,r){return(t=at(t,r)).setHours(0,0,0,0),t}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]},a:new class extends T{priority=80;parse(t,e,r){switch(e){case"a":case"aa":case"aaa":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaaa":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(U(r),0,0,0),t}incompatibleTokens=["b","B","H","k","t","T"]},b:new class extends T{priority=80;parse(t,e,r){switch(e){case"b":case"bb":case"bbb":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbbb":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(U(r),0,0,0),t}incompatibleTokens=["a","B","H","k","t","T"]},B:new class extends T{priority=80;parse(t,e,r){switch(e){case"B":case"BB":case"BBB":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBBB":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(U(r),0,0,0),t}incompatibleTokens=["a","b","t","T"]},h:new class extends T{priority=70;parse(t,e,r){switch(e){case"h":return $(N,t);case"ho":return r.ordinalNumber(t,{unit:"hour"});default:return z(e.length,t)}}validate(t,e){return e>=1&&e<=12}set(t,e,r){const n=t.getHours()>=12;return n&&r<12?t.setHours(r+12,0,0,0):n||12!==r?t.setHours(r,0,0,0):t.setHours(0,0,0,0),t}incompatibleTokens=["H","K","k","t","T"]},H:new class extends T{priority=70;parse(t,e,r){switch(e){case"H":return $(M,t);case"Ho":return r.ordinalNumber(t,{unit:"hour"});default:return z(e.length,t)}}validate(t,e){return e>=0&&e<=23}set(t,e,r){return t.setHours(r,0,0,0),t}incompatibleTokens=["a","b","h","K","k","t","T"]},K:new class extends T{priority=70;parse(t,e,r){switch(e){case"K":return $(Y,t);case"Ko":return r.ordinalNumber(t,{unit:"hour"});default:return z(e.length,t)}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.getHours()>=12&&r<12?t.setHours(r+12,0,0,0):t.setHours(r,0,0,0),t}incompatibleTokens=["h","H","k","t","T"]},k:new class extends T{priority=70;parse(t,e,r){switch(e){case"k":return $(H,t);case"ko":return r.ordinalNumber(t,{unit:"hour"});default:return z(e.length,t)}}validate(t,e){return e>=1&&e<=24}set(t,e,r){const n=r<=24?r%24:r;return t.setHours(n,0,0,0),t}incompatibleTokens=["a","b","h","H","K","t","T"]},m:new class extends T{priority=60;parse(t,e,r){switch(e){case"m":return $(E,t);case"mo":return r.ordinalNumber(t,{unit:"minute"});default:return z(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,r){return t.setMinutes(r,0,0),t}incompatibleTokens=["t","T"]},s:new class extends T{priority=50;parse(t,e,r){switch(e){case"s":return $(P,t);case"so":return r.ordinalNumber(t,{unit:"second"});default:return z(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,r){return t.setSeconds(r,0),t}incompatibleTokens=["t","T"]},S:new class extends T{priority=30;parse(t,e){return Z(z(e.length,t),(t=>Math.trunc(t*Math.pow(10,3-e.length))))}set(t,e,r){return t.setMilliseconds(r),t}incompatibleTokens=["t","T"]},X:new class extends T{priority=10;parse(t,e){switch(e){case"X":return j(F,t);case"XX":return j(A,t);case"XXXX":return j(W,t);case"XXXXX":return j(K,t);default:return j(C,t)}}set(t,e,n){return e.timestampIsSet?t:r(t,t.getTime()-w(t)-n)}incompatibleTokens=["t","T","x"]},x:new class extends T{priority=10;parse(t,e){switch(e){case"x":return j(F,t);case"xx":return j(A,t);case"xxxx":return j(W,t);case"xxxxx":return j(K,t);default:return j(C,t)}}set(t,e,n){return e.timestampIsSet?t:r(t,t.getTime()-w(t)-n)}incompatibleTokens=["t","T","X"]},t:new class extends T{priority=40;parse(t){return V(t)}set(t,e,n){return[r(t,1e3*n),{timestampIsSet:!0}]}incompatibleTokens="*"},T:new class extends T{priority=20;parse(t){return V(t)}set(t,e,n){return[r(t,n),{timestampIsSet:!0}]}incompatibleTokens="*"}},it=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,ot=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,ct=/^'([^]*?)'?$/,ut=/''/g,dt=/\S/,lt=/[a-zA-Z]/;function wt(n,a,s,i){const o=Object.assign({},t()),c=i?.locale??o.locale??h,u=i?.firstWeekContainsDate??i?.locale?.options?.firstWeekContainsDate??o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,d=i?.weekStartsOn??i?.locale?.options?.weekStartsOn??o.weekStartsOn??o.locale?.options?.weekStartsOn??0;if(""===a)return""===n?e(s):r(s,NaN);const l={firstWeekContainsDate:u,weekStartsOn:d,locale:c},w=[new b],x=a.match(ot).map((t=>{const e=t[0];if(e in m){return(0,m[e])(t,c.formatLong)}return t})).join("").match(it),g=[];for(let t of x){!i?.useAdditionalWeekYearTokens&&f(t)&&y(t,a,n),!i?.useAdditionalDayOfYearTokens&&p(t)&&y(t,a,n);const e=t[0],o=st[e];if(o){const{incompatibleTokens:a}=o;if(Array.isArray(a)){const r=g.find((t=>a.includes(t.token)||t.token===e));if(r)throw new RangeError(`The format string mustn't contain \`${r.fullToken}\` and \`${t}\` at the same time`)}else if("*"===o.incompatibleTokens&&g.length>0)throw new RangeError(`The format string mustn't contain \`${t}\` and any other token at the same time`);g.push({token:e,fullToken:t});const i=o.run(n,t,c.match,l);if(!i)return r(s,NaN);w.push(i.setter),n=i.rest}else{if(e.match(lt))throw new RangeError("Format string contains an unescaped latin alphabet character `"+e+"`");if("''"===t?t="'":"'"===e&&(t=t.match(ct)[1].replace(ut,"'")),0!==n.indexOf(t))return r(s,NaN);n=n.slice(t.length)}}if(n.length>0&&dt.test(n))return r(s,NaN);const T=w.map((t=>t.priority)).sort(((t,e)=>e-t)).filter(((t,e,r)=>r.indexOf(t)===e)).map((t=>w.filter((e=>e.priority===t)).sort(((t,e)=>e.subPriority-t.subPriority)))).map((t=>t[0]));let k=e(s);if(isNaN(k.getTime()))return r(s,NaN);const v={};for(const t of T){if(!t.validate(k,l))return r(s,NaN);const e=t.set(k,v,l);Array.isArray(e)?(k=e[0],Object.assign(v,e[1])):k=e}return r(s,k)}export{wt as p}; diff --git a/config/www/community/frigate-hass-card/parse-114e8d53.js.gz b/config/www/community/frigate-hass-card/parse-114e8d53.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..6dae833e81087e8ca5647f3254dd7d4e63c839e7 GIT binary patch literal 4021 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,n=r?e:1-e;let a;if(n<=50)a=t||100;else{const e=n+50;a=t+100*Math.trunc(e/100)-(t>=e%100?100:0)}return r?a:1-a}function tt(t){return t%400==0||t%4==0&&t%100!=0}const et=[31,28,31,30,31,30,31,31,30,31,30,31],rt=[31,29,31,30,31,30,31,31,30,31,30,31];function nt(r,n,a){const s=t(),i=a?.weekStartsOn??a?.locale?.options?.weekStartsOn??s.weekStartsOn??s.locale?.options?.weekStartsOn??0,o=e(r),c=o.getDay(),u=7-i;return l(o,n<0||n>6?n-(c+u)%7:((n%7+7)%7+u)%7-(c+u)%7)}function at(t,r){const n=e(t),a=function(t){let r=e(t).getDay();return 0===r&&(r=7),r}(n);return l(n,r-a)}const st={G:new class extends T{priority=140;parse(t,e,r){switch(e){case"G":case"GG":case"GGG":return r.era(t,{width:"abbreviated"})||r.era(t,{width:"narrow"});case"GGGGG":return r.era(t,{width:"narrow"});default:return r.era(t,{width:"wide"})||r.era(t,{width:"abbreviated"})||r.era(t,{width:"narrow"})}}set(t,e,r){return e.era=r,t.setFullYear(r,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["R","u","t","T"]},y:new class extends T{priority=130;incompatibleTokens=["Y","R","u","w","I","i","e","c","t","T"];parse(t,e,r){const n=t=>({year:t,isTwoDigitYear:"yy"===e});switch(e){case"y":return Z(z(4,t),n);case"yo":return Z(r.ordinalNumber(t,{unit:"year"}),n);default:return Z(z(e.length,t),n)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,r){const n=t.getFullYear();if(r.isTwoDigitYear){const e=_(r.year,n);return t.setFullYear(e,0,1),t.setHours(0,0,0,0),t}const a="era"in e&&1!==e.era?1-r.year:r.year;return t.setFullYear(a,0,1),t.setHours(0,0,0,0),t}},Y:new class extends T{priority=130;parse(t,e,r){const n=t=>({year:t,isTwoDigitYear:"YY"===e});switch(e){case"Y":return Z(z(4,t),n);case"Yo":return Z(r.ordinalNumber(t,{unit:"year"}),n);default:return Z(z(e.length,t),n)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,r,n){const a=i(t,n);if(r.isTwoDigitYear){const e=_(r.year,a);return t.setFullYear(e,0,n.firstWeekContainsDate),t.setHours(0,0,0,0),o(t,n)}const s="era"in e&&1!==e.era?1-r.year:r.year;return t.setFullYear(s,0,n.firstWeekContainsDate),t.setHours(0,0,0,0),o(t,n)}incompatibleTokens=["y","R","u","Q","q","M","L","I","d","D","i","t","T"]},R:new class extends T{priority=130;parse(t,e){return J("R"===e?4:e.length,t)}set(t,e,n){const a=r(t,0);return a.setFullYear(n,0,4),a.setHours(0,0,0,0),c(a)}incompatibleTokens=["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]},u:new class extends T{priority=130;parse(t,e){return J("u"===e?4:e.length,t)}set(t,e,r){return t.setFullYear(r,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["G","y","Y","R","w","I","i","e","c","t","T"]},Q:new class extends T{priority=120;parse(t,e,r){switch(e){case"Q":case"QQ":return z(e.length,t);case"Qo":return r.ordinalNumber(t,{unit:"quarter"});case"QQQ":return r.quarter(t,{width:"abbreviated",context:"formatting"})||r.quarter(t,{width:"narrow",context:"formatting"});case"QQQQQ":return r.quarter(t,{width:"narrow",context:"formatting"});default:return r.quarter(t,{width:"wide",context:"formatting"})||r.quarter(t,{width:"abbreviated",context:"formatting"})||r.quarter(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=1&&e<=4}set(t,e,r){return t.setMonth(3*(r-1),1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]},q:new class extends T{priority=120;parse(t,e,r){switch(e){case"q":case"qq":return z(e.length,t);case"qo":return r.ordinalNumber(t,{unit:"quarter"});case"qqq":return r.quarter(t,{width:"abbreviated",context:"standalone"})||r.quarter(t,{width:"narrow",context:"standalone"});case"qqqqq":return r.quarter(t,{width:"narrow",context:"standalone"});default:return r.quarter(t,{width:"wide",context:"standalone"})||r.quarter(t,{width:"abbreviated",context:"standalone"})||r.quarter(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=1&&e<=4}set(t,e,r){return t.setMonth(3*(r-1),1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]},M:new class extends T{incompatibleTokens=["Y","R","q","Q","L","w","I","D","i","e","c","t","T"];priority=110;parse(t,e,r){const n=t=>t-1;switch(e){case"M":return Z($(k,t),n);case"MM":return Z(z(2,t),n);case"Mo":return Z(r.ordinalNumber(t,{unit:"month"}),n);case"MMM":return r.month(t,{width:"abbreviated",context:"formatting"})||r.month(t,{width:"narrow",context:"formatting"});case"MMMMM":return r.month(t,{width:"narrow",context:"formatting"});default:return r.month(t,{width:"wide",context:"formatting"})||r.month(t,{width:"abbreviated",context:"formatting"})||r.month(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.setMonth(r,1),t.setHours(0,0,0,0),t}},L:new class extends T{priority=110;parse(t,e,r){const n=t=>t-1;switch(e){case"L":return Z($(k,t),n);case"LL":return Z(z(2,t),n);case"Lo":return Z(r.ordinalNumber(t,{unit:"month"}),n);case"LLL":return r.month(t,{width:"abbreviated",context:"standalone"})||r.month(t,{width:"narrow",context:"standalone"});case"LLLLL":return r.month(t,{width:"narrow",context:"standalone"});default:return r.month(t,{width:"wide",context:"standalone"})||r.month(t,{width:"abbreviated",context:"standalone"})||r.month(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.setMonth(r,1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]},w:new class extends T{priority=100;parse(t,e,r){switch(e){case"w":return $(q,t);case"wo":return r.ordinalNumber(t,{unit:"week"});default:return z(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,r,n,a){return o(function(t,r,n){const a=e(t),s=u(a,n)-r;return a.setDate(a.getDate()-7*s),a}(t,n,a),a)}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","i","t","T"]},I:new class extends T{priority=100;parse(t,e,r){switch(e){case"I":return $(q,t);case"Io":return r.ordinalNumber(t,{unit:"week"});default:return z(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,r,n){return c(function(t,r){const n=e(t),a=d(n)-r;return n.setDate(n.getDate()-7*a),n}(t,n))}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]},d:new class extends T{priority=90;subPriority=1;parse(t,e,r){switch(e){case"d":return $(v,t);case"do":return r.ordinalNumber(t,{unit:"date"});default:return z(e.length,t)}}validate(t,e){const r=tt(t.getFullYear()),n=t.getMonth();return r?e>=1&&e<=rt[n]:e>=1&&e<=et[n]}set(t,e,r){return t.setDate(r),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","w","I","D","i","e","c","t","T"]},D:new class extends T{priority=90;subpriority=1;parse(t,e,r){switch(e){case"D":case"DD":return $(D,t);case"Do":return r.ordinalNumber(t,{unit:"date"});default:return z(e.length,t)}}validate(t,e){return tt(t.getFullYear())?e>=1&&e<=366:e>=1&&e<=365}set(t,e,r){return t.setMonth(0,r),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]},E:new class extends T{priority=90;parse(t,e,r){switch(e){case"E":case"EE":case"EEE":return r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"EEEEE":return r.day(t,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});default:return r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=nt(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["D","i","e","c","t","T"]},e:new class extends T{priority=90;parse(t,e,r,n){const a=t=>{const e=7*Math.floor((t-1)/7);return(t+n.weekStartsOn+6)%7+e};switch(e){case"e":case"ee":return Z(z(e.length,t),a);case"eo":return Z(r.ordinalNumber(t,{unit:"day"}),a);case"eee":return r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"eeeee":return r.day(t,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});default:return r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=nt(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]},c:new class extends T{priority=90;parse(t,e,r,n){const a=t=>{const e=7*Math.floor((t-1)/7);return(t+n.weekStartsOn+6)%7+e};switch(e){case"c":case"cc":return Z(z(e.length,t),a);case"co":return Z(r.ordinalNumber(t,{unit:"day"}),a);case"ccc":return r.day(t,{width:"abbreviated",context:"standalone"})||r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"});case"ccccc":return r.day(t,{width:"narrow",context:"standalone"});case"cccccc":return r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"});default:return r.day(t,{width:"wide",context:"standalone"})||r.day(t,{width:"abbreviated",context:"standalone"})||r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=nt(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]},i:new class extends T{priority=90;parse(t,e,r){const n=t=>0===t?7:t;switch(e){case"i":case"ii":return z(e.length,t);case"io":return r.ordinalNumber(t,{unit:"day"});case"iii":return Z(r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n);case"iiiii":return Z(r.day(t,{width:"narrow",context:"formatting"}),n);case"iiiiii":return Z(r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n);default:return Z(r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n)}}validate(t,e){return e>=1&&e<=7}set(t,e,r){return(t=at(t,r)).setHours(0,0,0,0),t}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]},a:new class extends T{priority=80;parse(t,e,r){switch(e){case"a":case"aa":case"aaa":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaaa":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(U(r),0,0,0),t}incompatibleTokens=["b","B","H","k","t","T"]},b:new class extends T{priority=80;parse(t,e,r){switch(e){case"b":case"bb":case"bbb":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbbb":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(U(r),0,0,0),t}incompatibleTokens=["a","B","H","k","t","T"]},B:new class extends T{priority=80;parse(t,e,r){switch(e){case"B":case"BB":case"BBB":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBBB":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(U(r),0,0,0),t}incompatibleTokens=["a","b","t","T"]},h:new class extends T{priority=70;parse(t,e,r){switch(e){case"h":return $(N,t);case"ho":return r.ordinalNumber(t,{unit:"hour"});default:return z(e.length,t)}}validate(t,e){return e>=1&&e<=12}set(t,e,r){const n=t.getHours()>=12;return n&&r<12?t.setHours(r+12,0,0,0):n||12!==r?t.setHours(r,0,0,0):t.setHours(0,0,0,0),t}incompatibleTokens=["H","K","k","t","T"]},H:new class extends T{priority=70;parse(t,e,r){switch(e){case"H":return $(M,t);case"Ho":return r.ordinalNumber(t,{unit:"hour"});default:return z(e.length,t)}}validate(t,e){return e>=0&&e<=23}set(t,e,r){return t.setHours(r,0,0,0),t}incompatibleTokens=["a","b","h","K","k","t","T"]},K:new class extends T{priority=70;parse(t,e,r){switch(e){case"K":return $(Y,t);case"Ko":return r.ordinalNumber(t,{unit:"hour"});default:return z(e.length,t)}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.getHours()>=12&&r<12?t.setHours(r+12,0,0,0):t.setHours(r,0,0,0),t}incompatibleTokens=["h","H","k","t","T"]},k:new class extends T{priority=70;parse(t,e,r){switch(e){case"k":return $(H,t);case"ko":return r.ordinalNumber(t,{unit:"hour"});default:return z(e.length,t)}}validate(t,e){return e>=1&&e<=24}set(t,e,r){const n=r<=24?r%24:r;return t.setHours(n,0,0,0),t}incompatibleTokens=["a","b","h","H","K","t","T"]},m:new class extends T{priority=60;parse(t,e,r){switch(e){case"m":return $(E,t);case"mo":return r.ordinalNumber(t,{unit:"minute"});default:return z(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,r){return t.setMinutes(r,0,0),t}incompatibleTokens=["t","T"]},s:new class extends T{priority=50;parse(t,e,r){switch(e){case"s":return $(P,t);case"so":return r.ordinalNumber(t,{unit:"second"});default:return z(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,r){return t.setSeconds(r,0),t}incompatibleTokens=["t","T"]},S:new class extends T{priority=30;parse(t,e){return Z(z(e.length,t),(t=>Math.trunc(t*Math.pow(10,3-e.length))))}set(t,e,r){return t.setMilliseconds(r),t}incompatibleTokens=["t","T"]},X:new class extends T{priority=10;parse(t,e){switch(e){case"X":return j(F,t);case"XX":return j(A,t);case"XXXX":return j(W,t);case"XXXXX":return j(K,t);default:return j(C,t)}}set(t,e,n){return e.timestampIsSet?t:r(t,t.getTime()-w(t)-n)}incompatibleTokens=["t","T","x"]},x:new class extends T{priority=10;parse(t,e){switch(e){case"x":return j(F,t);case"xx":return j(A,t);case"xxxx":return j(W,t);case"xxxxx":return j(K,t);default:return j(C,t)}}set(t,e,n){return e.timestampIsSet?t:r(t,t.getTime()-w(t)-n)}incompatibleTokens=["t","T","X"]},t:new class extends T{priority=40;parse(t){return V(t)}set(t,e,n){return[r(t,1e3*n),{timestampIsSet:!0}]}incompatibleTokens="*"},T:new class extends T{priority=20;parse(t){return V(t)}set(t,e,n){return[r(t,n),{timestampIsSet:!0}]}incompatibleTokens="*"}},it=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,ot=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,ct=/^'([^]*?)'?$/,ut=/''/g,dt=/\S/,lt=/[a-zA-Z]/;function wt(n,a,s,i){const o=Object.assign({},t()),c=i?.locale??o.locale??h,u=i?.firstWeekContainsDate??i?.locale?.options?.firstWeekContainsDate??o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,d=i?.weekStartsOn??i?.locale?.options?.weekStartsOn??o.weekStartsOn??o.locale?.options?.weekStartsOn??0;if(""===a)return""===n?e(s):r(s,NaN);const l={firstWeekContainsDate:u,weekStartsOn:d,locale:c},w=[new b],x=a.match(ot).map((t=>{const e=t[0];if(e in m){return(0,m[e])(t,c.formatLong)}return t})).join("").match(it),g=[];for(let t of x){!i?.useAdditionalWeekYearTokens&&f(t)&&y(t,a,n),!i?.useAdditionalDayOfYearTokens&&p(t)&&y(t,a,n);const e=t[0],o=st[e];if(o){const{incompatibleTokens:a}=o;if(Array.isArray(a)){const r=g.find((t=>a.includes(t.token)||t.token===e));if(r)throw new RangeError(`The format string mustn't contain \`${r.fullToken}\` and \`${t}\` at the same time`)}else if("*"===o.incompatibleTokens&&g.length>0)throw new RangeError(`The format string mustn't contain \`${t}\` and any other token at the same time`);g.push({token:e,fullToken:t});const i=o.run(n,t,c.match,l);if(!i)return r(s,NaN);w.push(i.setter),n=i.rest}else{if(e.match(lt))throw new RangeError("Format string contains an unescaped latin alphabet character `"+e+"`");if("''"===t?t="'":"'"===e&&(t=t.match(ct)[1].replace(ut,"'")),0!==n.indexOf(t))return r(s,NaN);n=n.slice(t.length)}}if(n.length>0&&dt.test(n))return r(s,NaN);const T=w.map((t=>t.priority)).sort(((t,e)=>e-t)).filter(((t,e,r)=>r.indexOf(t)===e)).map((t=>w.filter((e=>e.priority===t)).sort(((t,e)=>e.subPriority-t.subPriority)))).map((t=>t[0]));let k=e(s);if(isNaN(k.getTime()))return r(s,NaN);const v={};for(const t of T){if(!t.validate(k,l))return r(s,NaN);const e=t.set(k,v,l);Array.isArray(e)?(k=e[0],Object.assign(v,e[1])):k=e}return r(s,k)}export{wt as p}; diff --git a/config/www/community/frigate-hass-card/parse-645a86cb.js.gz b/config/www/community/frigate-hass-card/parse-645a86cb.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..796be8de84e3450c11924d19ea04b9e48cce2b46 GIT binary patch literal 4020 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 az#?yh?^%sm_#LU{fBpw+TOg$2N&o0,n=r?e:1-e;let a;if(n<=50)a=t||100;else{const e=n+50;a=t+100*Math.trunc(e/100)-(t>=e%100?100:0)}return r?a:1-a}function tt(t){return t%400==0||t%4==0&&t%100!=0}const et=[31,28,31,30,31,30,31,31,30,31,30,31],rt=[31,29,31,30,31,30,31,31,30,31,30,31];function nt(r,n,a){const s=t(),i=a?.weekStartsOn??a?.locale?.options?.weekStartsOn??s.weekStartsOn??s.locale?.options?.weekStartsOn??0,o=e(r),c=o.getDay(),u=7-i;return l(o,n<0||n>6?n-(c+u)%7:((n%7+7)%7+u)%7-(c+u)%7)}function at(t,r){const n=e(t),a=function(t){let r=e(t).getDay();return 0===r&&(r=7),r}(n);return l(n,r-a)}const st={G:new class extends T{priority=140;parse(t,e,r){switch(e){case"G":case"GG":case"GGG":return r.era(t,{width:"abbreviated"})||r.era(t,{width:"narrow"});case"GGGGG":return r.era(t,{width:"narrow"});default:return r.era(t,{width:"wide"})||r.era(t,{width:"abbreviated"})||r.era(t,{width:"narrow"})}}set(t,e,r){return e.era=r,t.setFullYear(r,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["R","u","t","T"]},y:new class extends T{priority=130;incompatibleTokens=["Y","R","u","w","I","i","e","c","t","T"];parse(t,e,r){const n=t=>({year:t,isTwoDigitYear:"yy"===e});switch(e){case"y":return Z(z(4,t),n);case"yo":return Z(r.ordinalNumber(t,{unit:"year"}),n);default:return Z(z(e.length,t),n)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,r){const n=t.getFullYear();if(r.isTwoDigitYear){const e=_(r.year,n);return t.setFullYear(e,0,1),t.setHours(0,0,0,0),t}const a="era"in e&&1!==e.era?1-r.year:r.year;return t.setFullYear(a,0,1),t.setHours(0,0,0,0),t}},Y:new class extends T{priority=130;parse(t,e,r){const n=t=>({year:t,isTwoDigitYear:"YY"===e});switch(e){case"Y":return Z(z(4,t),n);case"Yo":return Z(r.ordinalNumber(t,{unit:"year"}),n);default:return Z(z(e.length,t),n)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,r,n){const a=i(t,n);if(r.isTwoDigitYear){const e=_(r.year,a);return t.setFullYear(e,0,n.firstWeekContainsDate),t.setHours(0,0,0,0),o(t,n)}const s="era"in e&&1!==e.era?1-r.year:r.year;return t.setFullYear(s,0,n.firstWeekContainsDate),t.setHours(0,0,0,0),o(t,n)}incompatibleTokens=["y","R","u","Q","q","M","L","I","d","D","i","t","T"]},R:new class extends T{priority=130;parse(t,e){return J("R"===e?4:e.length,t)}set(t,e,n){const a=r(t,0);return a.setFullYear(n,0,4),a.setHours(0,0,0,0),c(a)}incompatibleTokens=["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]},u:new class extends T{priority=130;parse(t,e){return J("u"===e?4:e.length,t)}set(t,e,r){return t.setFullYear(r,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["G","y","Y","R","w","I","i","e","c","t","T"]},Q:new class extends T{priority=120;parse(t,e,r){switch(e){case"Q":case"QQ":return z(e.length,t);case"Qo":return r.ordinalNumber(t,{unit:"quarter"});case"QQQ":return r.quarter(t,{width:"abbreviated",context:"formatting"})||r.quarter(t,{width:"narrow",context:"formatting"});case"QQQQQ":return r.quarter(t,{width:"narrow",context:"formatting"});default:return r.quarter(t,{width:"wide",context:"formatting"})||r.quarter(t,{width:"abbreviated",context:"formatting"})||r.quarter(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=1&&e<=4}set(t,e,r){return t.setMonth(3*(r-1),1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]},q:new class extends T{priority=120;parse(t,e,r){switch(e){case"q":case"qq":return z(e.length,t);case"qo":return r.ordinalNumber(t,{unit:"quarter"});case"qqq":return r.quarter(t,{width:"abbreviated",context:"standalone"})||r.quarter(t,{width:"narrow",context:"standalone"});case"qqqqq":return r.quarter(t,{width:"narrow",context:"standalone"});default:return r.quarter(t,{width:"wide",context:"standalone"})||r.quarter(t,{width:"abbreviated",context:"standalone"})||r.quarter(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=1&&e<=4}set(t,e,r){return t.setMonth(3*(r-1),1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]},M:new class extends T{incompatibleTokens=["Y","R","q","Q","L","w","I","D","i","e","c","t","T"];priority=110;parse(t,e,r){const n=t=>t-1;switch(e){case"M":return Z($(k,t),n);case"MM":return Z(z(2,t),n);case"Mo":return Z(r.ordinalNumber(t,{unit:"month"}),n);case"MMM":return r.month(t,{width:"abbreviated",context:"formatting"})||r.month(t,{width:"narrow",context:"formatting"});case"MMMMM":return r.month(t,{width:"narrow",context:"formatting"});default:return r.month(t,{width:"wide",context:"formatting"})||r.month(t,{width:"abbreviated",context:"formatting"})||r.month(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.setMonth(r,1),t.setHours(0,0,0,0),t}},L:new class extends T{priority=110;parse(t,e,r){const n=t=>t-1;switch(e){case"L":return Z($(k,t),n);case"LL":return Z(z(2,t),n);case"Lo":return Z(r.ordinalNumber(t,{unit:"month"}),n);case"LLL":return r.month(t,{width:"abbreviated",context:"standalone"})||r.month(t,{width:"narrow",context:"standalone"});case"LLLLL":return r.month(t,{width:"narrow",context:"standalone"});default:return r.month(t,{width:"wide",context:"standalone"})||r.month(t,{width:"abbreviated",context:"standalone"})||r.month(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.setMonth(r,1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]},w:new class extends T{priority=100;parse(t,e,r){switch(e){case"w":return $(q,t);case"wo":return r.ordinalNumber(t,{unit:"week"});default:return z(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,r,n,a){return o(function(t,r,n){const a=e(t),s=u(a,n)-r;return a.setDate(a.getDate()-7*s),a}(t,n,a),a)}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","i","t","T"]},I:new class extends T{priority=100;parse(t,e,r){switch(e){case"I":return $(q,t);case"Io":return r.ordinalNumber(t,{unit:"week"});default:return z(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,r,n){return c(function(t,r){const n=e(t),a=d(n)-r;return n.setDate(n.getDate()-7*a),n}(t,n))}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]},d:new class extends T{priority=90;subPriority=1;parse(t,e,r){switch(e){case"d":return $(v,t);case"do":return r.ordinalNumber(t,{unit:"date"});default:return z(e.length,t)}}validate(t,e){const r=tt(t.getFullYear()),n=t.getMonth();return r?e>=1&&e<=rt[n]:e>=1&&e<=et[n]}set(t,e,r){return t.setDate(r),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","w","I","D","i","e","c","t","T"]},D:new class extends T{priority=90;subpriority=1;parse(t,e,r){switch(e){case"D":case"DD":return $(D,t);case"Do":return r.ordinalNumber(t,{unit:"date"});default:return z(e.length,t)}}validate(t,e){return tt(t.getFullYear())?e>=1&&e<=366:e>=1&&e<=365}set(t,e,r){return t.setMonth(0,r),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]},E:new class extends T{priority=90;parse(t,e,r){switch(e){case"E":case"EE":case"EEE":return r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"EEEEE":return r.day(t,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});default:return r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=nt(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["D","i","e","c","t","T"]},e:new class extends T{priority=90;parse(t,e,r,n){const a=t=>{const e=7*Math.floor((t-1)/7);return(t+n.weekStartsOn+6)%7+e};switch(e){case"e":case"ee":return Z(z(e.length,t),a);case"eo":return Z(r.ordinalNumber(t,{unit:"day"}),a);case"eee":return r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"eeeee":return r.day(t,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});default:return r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=nt(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]},c:new class extends T{priority=90;parse(t,e,r,n){const a=t=>{const e=7*Math.floor((t-1)/7);return(t+n.weekStartsOn+6)%7+e};switch(e){case"c":case"cc":return Z(z(e.length,t),a);case"co":return Z(r.ordinalNumber(t,{unit:"day"}),a);case"ccc":return r.day(t,{width:"abbreviated",context:"standalone"})||r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"});case"ccccc":return r.day(t,{width:"narrow",context:"standalone"});case"cccccc":return r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"});default:return r.day(t,{width:"wide",context:"standalone"})||r.day(t,{width:"abbreviated",context:"standalone"})||r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=nt(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]},i:new class extends T{priority=90;parse(t,e,r){const n=t=>0===t?7:t;switch(e){case"i":case"ii":return z(e.length,t);case"io":return r.ordinalNumber(t,{unit:"day"});case"iii":return Z(r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n);case"iiiii":return Z(r.day(t,{width:"narrow",context:"formatting"}),n);case"iiiiii":return Z(r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n);default:return Z(r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n)}}validate(t,e){return e>=1&&e<=7}set(t,e,r){return(t=at(t,r)).setHours(0,0,0,0),t}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]},a:new class extends T{priority=80;parse(t,e,r){switch(e){case"a":case"aa":case"aaa":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaaa":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(U(r),0,0,0),t}incompatibleTokens=["b","B","H","k","t","T"]},b:new class extends T{priority=80;parse(t,e,r){switch(e){case"b":case"bb":case"bbb":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbbb":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(U(r),0,0,0),t}incompatibleTokens=["a","B","H","k","t","T"]},B:new class extends T{priority=80;parse(t,e,r){switch(e){case"B":case"BB":case"BBB":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBBB":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(U(r),0,0,0),t}incompatibleTokens=["a","b","t","T"]},h:new class extends T{priority=70;parse(t,e,r){switch(e){case"h":return $(N,t);case"ho":return r.ordinalNumber(t,{unit:"hour"});default:return z(e.length,t)}}validate(t,e){return e>=1&&e<=12}set(t,e,r){const n=t.getHours()>=12;return n&&r<12?t.setHours(r+12,0,0,0):n||12!==r?t.setHours(r,0,0,0):t.setHours(0,0,0,0),t}incompatibleTokens=["H","K","k","t","T"]},H:new class extends T{priority=70;parse(t,e,r){switch(e){case"H":return $(M,t);case"Ho":return r.ordinalNumber(t,{unit:"hour"});default:return z(e.length,t)}}validate(t,e){return e>=0&&e<=23}set(t,e,r){return t.setHours(r,0,0,0),t}incompatibleTokens=["a","b","h","K","k","t","T"]},K:new class extends T{priority=70;parse(t,e,r){switch(e){case"K":return $(Y,t);case"Ko":return r.ordinalNumber(t,{unit:"hour"});default:return z(e.length,t)}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.getHours()>=12&&r<12?t.setHours(r+12,0,0,0):t.setHours(r,0,0,0),t}incompatibleTokens=["h","H","k","t","T"]},k:new class extends T{priority=70;parse(t,e,r){switch(e){case"k":return $(H,t);case"ko":return r.ordinalNumber(t,{unit:"hour"});default:return z(e.length,t)}}validate(t,e){return e>=1&&e<=24}set(t,e,r){const n=r<=24?r%24:r;return t.setHours(n,0,0,0),t}incompatibleTokens=["a","b","h","H","K","t","T"]},m:new class extends T{priority=60;parse(t,e,r){switch(e){case"m":return $(E,t);case"mo":return r.ordinalNumber(t,{unit:"minute"});default:return z(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,r){return t.setMinutes(r,0,0),t}incompatibleTokens=["t","T"]},s:new class extends T{priority=50;parse(t,e,r){switch(e){case"s":return $(P,t);case"so":return r.ordinalNumber(t,{unit:"second"});default:return z(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,r){return t.setSeconds(r,0),t}incompatibleTokens=["t","T"]},S:new class extends T{priority=30;parse(t,e){return Z(z(e.length,t),(t=>Math.trunc(t*Math.pow(10,3-e.length))))}set(t,e,r){return t.setMilliseconds(r),t}incompatibleTokens=["t","T"]},X:new class extends T{priority=10;parse(t,e){switch(e){case"X":return j(F,t);case"XX":return j(A,t);case"XXXX":return j(W,t);case"XXXXX":return j(K,t);default:return j(C,t)}}set(t,e,n){return e.timestampIsSet?t:r(t,t.getTime()-w(t)-n)}incompatibleTokens=["t","T","x"]},x:new class extends T{priority=10;parse(t,e){switch(e){case"x":return j(F,t);case"xx":return j(A,t);case"xxxx":return j(W,t);case"xxxxx":return j(K,t);default:return j(C,t)}}set(t,e,n){return e.timestampIsSet?t:r(t,t.getTime()-w(t)-n)}incompatibleTokens=["t","T","X"]},t:new class extends T{priority=40;parse(t){return V(t)}set(t,e,n){return[r(t,1e3*n),{timestampIsSet:!0}]}incompatibleTokens="*"},T:new class extends T{priority=20;parse(t){return V(t)}set(t,e,n){return[r(t,n),{timestampIsSet:!0}]}incompatibleTokens="*"}},it=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,ot=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,ct=/^'([^]*?)'?$/,ut=/''/g,dt=/\S/,lt=/[a-zA-Z]/;function wt(n,a,s,i){const o=Object.assign({},t()),c=i?.locale??o.locale??h,u=i?.firstWeekContainsDate??i?.locale?.options?.firstWeekContainsDate??o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,d=i?.weekStartsOn??i?.locale?.options?.weekStartsOn??o.weekStartsOn??o.locale?.options?.weekStartsOn??0;if(""===a)return""===n?e(s):r(s,NaN);const l={firstWeekContainsDate:u,weekStartsOn:d,locale:c},w=[new b],x=a.match(ot).map((t=>{const e=t[0];if(e in m){return(0,m[e])(t,c.formatLong)}return t})).join("").match(it),g=[];for(let t of x){!i?.useAdditionalWeekYearTokens&&f(t)&&y(t,a,n),!i?.useAdditionalDayOfYearTokens&&p(t)&&y(t,a,n);const e=t[0],o=st[e];if(o){const{incompatibleTokens:a}=o;if(Array.isArray(a)){const r=g.find((t=>a.includes(t.token)||t.token===e));if(r)throw new RangeError(`The format string mustn't contain \`${r.fullToken}\` and \`${t}\` at the same time`)}else if("*"===o.incompatibleTokens&&g.length>0)throw new RangeError(`The format string mustn't contain \`${t}\` and any other token at the same time`);g.push({token:e,fullToken:t});const i=o.run(n,t,c.match,l);if(!i)return r(s,NaN);w.push(i.setter),n=i.rest}else{if(e.match(lt))throw new RangeError("Format string contains an unescaped latin alphabet character `"+e+"`");if("''"===t?t="'":"'"===e&&(t=t.match(ct)[1].replace(ut,"'")),0!==n.indexOf(t))return r(s,NaN);n=n.slice(t.length)}}if(n.length>0&&dt.test(n))return r(s,NaN);const T=w.map((t=>t.priority)).sort(((t,e)=>e-t)).filter(((t,e,r)=>r.indexOf(t)===e)).map((t=>w.filter((e=>e.priority===t)).sort(((t,e)=>e.subPriority-t.subPriority)))).map((t=>t[0]));let k=e(s);if(isNaN(k.getTime()))return r(s,NaN);const v={};for(const t of T){if(!t.validate(k,l))return r(s,NaN);const e=t.set(k,v,l);Array.isArray(e)?(k=e[0],Object.assign(v,e[1])):k=e}return r(s,k)}export{wt as p}; diff --git a/config/www/community/frigate-hass-card/parse-7dfc1897.js.gz b/config/www/community/frigate-hass-card/parse-7dfc1897.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..7d1023be32e25abae55820e23134f77fe51a5de3 GIT binary patch literal 4021 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 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/parse-7f4a6e12.js b/config/www/community/frigate-hass-card/parse-7f4a6e12.js new file mode 100644 index 00000000..a23c5878 --- /dev/null +++ b/config/www/community/frigate-hass-card/parse-7f4a6e12.js @@ -0,0 +1 @@ +import{eh as t,c$ as e,ei as r,ej as n,ek as a,el as s,em as i,en as o,eo as c,ep as u,eq as d,er as l,es as w,et as h,eu as m,ev as f,ew as y,ex as p}from"./card-320adb66.js";class x{subPriority=0;validate(t,e){return!0}}class g extends x{constructor(t,e,r,n,a){super(),this.value=t,this.validateValue=e,this.setValue=r,this.priority=n,a&&(this.subPriority=a)}validate(t,e){return this.validateValue(t,this.value,e)}set(t,e,r){return this.setValue(t,e,this.value,r)}}class b extends x{priority=10;subPriority=-1;set(t,e){return e.timestampIsSet?t:r(t,function(t,e){const n=e instanceof Date?r(e,0):new e(0);return n.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),n.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()),n}(t,Date))}}class T{run(t,e,r,n){const a=this.parse(t,e,r,n);return a?{setter:new g(a.value,this.validate,this.set,this.priority,this.subPriority),rest:a.rest}:null}validate(t,e,r){return!0}}const k=/^(1[0-2]|0?\d)/,v=/^(3[0-1]|[0-2]?\d)/,D=/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,q=/^(5[0-3]|[0-4]?\d)/,M=/^(2[0-3]|[0-1]?\d)/,H=/^(2[0-4]|[0-1]?\d)/,Y=/^(1[0-1]|0?\d)/,N=/^(1[0-2]|0?\d)/,E=/^[0-5]?\d/,P=/^[0-5]?\d/,L=/^\d/,Q=/^\d{1,2}/,I=/^\d{1,3}/,R=/^\d{1,4}/,S=/^-?\d+/,O=/^-?\d/,B=/^-?\d{1,2}/,G=/^-?\d{1,3}/,X=/^-?\d{1,4}/,F=/^([+-])(\d{2})(\d{2})?|Z/,W=/^([+-])(\d{2})(\d{2})|Z/,A=/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,C=/^([+-])(\d{2}):(\d{2})|Z/,K=/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/;function Z(t,e){return t?{value:e(t.value),rest:t.rest}:t}function $(t,e){const r=e.match(t);return r?{value:parseInt(r[0],10),rest:e.slice(r[0].length)}:null}function j(t,e){const r=e.match(t);if(!r)return null;if("Z"===r[0])return{value:0,rest:e.slice(1)};const i="+"===r[1]?1:-1,o=r[2]?parseInt(r[2],10):0,c=r[3]?parseInt(r[3],10):0,u=r[5]?parseInt(r[5],10):0;return{value:i*(o*n+c*a+u*s),rest:e.slice(r[0].length)}}function V(t){return $(S,t)}function z(t,e){switch(t){case 1:return $(L,e);case 2:return $(Q,e);case 3:return $(I,e);case 4:return $(R,e);default:return $(new RegExp("^\\d{1,"+t+"}"),e)}}function J(t,e){switch(t){case 1:return $(O,e);case 2:return $(B,e);case 3:return $(G,e);case 4:return $(X,e);default:return $(new RegExp("^-?\\d{1,"+t+"}"),e)}}function U(t){switch(t){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;default:return 0}}function _(t,e){const r=e>0,n=r?e:1-e;let a;if(n<=50)a=t||100;else{const e=n+50;a=t+100*Math.trunc(e/100)-(t>=e%100?100:0)}return r?a:1-a}function tt(t){return t%400==0||t%4==0&&t%100!=0}const et=[31,28,31,30,31,30,31,31,30,31,30,31],rt=[31,29,31,30,31,30,31,31,30,31,30,31];function nt(r,n,a){const s=t(),i=a?.weekStartsOn??a?.locale?.options?.weekStartsOn??s.weekStartsOn??s.locale?.options?.weekStartsOn??0,o=e(r),c=o.getDay(),u=7-i;return l(o,n<0||n>6?n-(c+u)%7:((n%7+7)%7+u)%7-(c+u)%7)}function at(t,r){const n=e(t),a=function(t){let r=e(t).getDay();return 0===r&&(r=7),r}(n);return l(n,r-a)}const st={G:new class extends T{priority=140;parse(t,e,r){switch(e){case"G":case"GG":case"GGG":return r.era(t,{width:"abbreviated"})||r.era(t,{width:"narrow"});case"GGGGG":return r.era(t,{width:"narrow"});default:return r.era(t,{width:"wide"})||r.era(t,{width:"abbreviated"})||r.era(t,{width:"narrow"})}}set(t,e,r){return e.era=r,t.setFullYear(r,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["R","u","t","T"]},y:new class extends T{priority=130;incompatibleTokens=["Y","R","u","w","I","i","e","c","t","T"];parse(t,e,r){const n=t=>({year:t,isTwoDigitYear:"yy"===e});switch(e){case"y":return Z(z(4,t),n);case"yo":return Z(r.ordinalNumber(t,{unit:"year"}),n);default:return Z(z(e.length,t),n)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,r){const n=t.getFullYear();if(r.isTwoDigitYear){const e=_(r.year,n);return t.setFullYear(e,0,1),t.setHours(0,0,0,0),t}const a="era"in e&&1!==e.era?1-r.year:r.year;return t.setFullYear(a,0,1),t.setHours(0,0,0,0),t}},Y:new class extends T{priority=130;parse(t,e,r){const n=t=>({year:t,isTwoDigitYear:"YY"===e});switch(e){case"Y":return Z(z(4,t),n);case"Yo":return Z(r.ordinalNumber(t,{unit:"year"}),n);default:return Z(z(e.length,t),n)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,r,n){const a=i(t,n);if(r.isTwoDigitYear){const e=_(r.year,a);return t.setFullYear(e,0,n.firstWeekContainsDate),t.setHours(0,0,0,0),o(t,n)}const s="era"in e&&1!==e.era?1-r.year:r.year;return t.setFullYear(s,0,n.firstWeekContainsDate),t.setHours(0,0,0,0),o(t,n)}incompatibleTokens=["y","R","u","Q","q","M","L","I","d","D","i","t","T"]},R:new class extends T{priority=130;parse(t,e){return J("R"===e?4:e.length,t)}set(t,e,n){const a=r(t,0);return a.setFullYear(n,0,4),a.setHours(0,0,0,0),c(a)}incompatibleTokens=["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]},u:new class extends T{priority=130;parse(t,e){return J("u"===e?4:e.length,t)}set(t,e,r){return t.setFullYear(r,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["G","y","Y","R","w","I","i","e","c","t","T"]},Q:new class extends T{priority=120;parse(t,e,r){switch(e){case"Q":case"QQ":return z(e.length,t);case"Qo":return r.ordinalNumber(t,{unit:"quarter"});case"QQQ":return r.quarter(t,{width:"abbreviated",context:"formatting"})||r.quarter(t,{width:"narrow",context:"formatting"});case"QQQQQ":return r.quarter(t,{width:"narrow",context:"formatting"});default:return r.quarter(t,{width:"wide",context:"formatting"})||r.quarter(t,{width:"abbreviated",context:"formatting"})||r.quarter(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=1&&e<=4}set(t,e,r){return t.setMonth(3*(r-1),1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]},q:new class extends T{priority=120;parse(t,e,r){switch(e){case"q":case"qq":return z(e.length,t);case"qo":return r.ordinalNumber(t,{unit:"quarter"});case"qqq":return r.quarter(t,{width:"abbreviated",context:"standalone"})||r.quarter(t,{width:"narrow",context:"standalone"});case"qqqqq":return r.quarter(t,{width:"narrow",context:"standalone"});default:return r.quarter(t,{width:"wide",context:"standalone"})||r.quarter(t,{width:"abbreviated",context:"standalone"})||r.quarter(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=1&&e<=4}set(t,e,r){return t.setMonth(3*(r-1),1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]},M:new class extends T{incompatibleTokens=["Y","R","q","Q","L","w","I","D","i","e","c","t","T"];priority=110;parse(t,e,r){const n=t=>t-1;switch(e){case"M":return Z($(k,t),n);case"MM":return Z(z(2,t),n);case"Mo":return Z(r.ordinalNumber(t,{unit:"month"}),n);case"MMM":return r.month(t,{width:"abbreviated",context:"formatting"})||r.month(t,{width:"narrow",context:"formatting"});case"MMMMM":return r.month(t,{width:"narrow",context:"formatting"});default:return r.month(t,{width:"wide",context:"formatting"})||r.month(t,{width:"abbreviated",context:"formatting"})||r.month(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.setMonth(r,1),t.setHours(0,0,0,0),t}},L:new class extends T{priority=110;parse(t,e,r){const n=t=>t-1;switch(e){case"L":return Z($(k,t),n);case"LL":return Z(z(2,t),n);case"Lo":return Z(r.ordinalNumber(t,{unit:"month"}),n);case"LLL":return r.month(t,{width:"abbreviated",context:"standalone"})||r.month(t,{width:"narrow",context:"standalone"});case"LLLLL":return r.month(t,{width:"narrow",context:"standalone"});default:return r.month(t,{width:"wide",context:"standalone"})||r.month(t,{width:"abbreviated",context:"standalone"})||r.month(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.setMonth(r,1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]},w:new class extends T{priority=100;parse(t,e,r){switch(e){case"w":return $(q,t);case"wo":return r.ordinalNumber(t,{unit:"week"});default:return z(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,r,n,a){return o(function(t,r,n){const a=e(t),s=u(a,n)-r;return a.setDate(a.getDate()-7*s),a}(t,n,a),a)}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","i","t","T"]},I:new class extends T{priority=100;parse(t,e,r){switch(e){case"I":return $(q,t);case"Io":return r.ordinalNumber(t,{unit:"week"});default:return z(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,r,n){return c(function(t,r){const n=e(t),a=d(n)-r;return n.setDate(n.getDate()-7*a),n}(t,n))}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]},d:new class extends T{priority=90;subPriority=1;parse(t,e,r){switch(e){case"d":return $(v,t);case"do":return r.ordinalNumber(t,{unit:"date"});default:return z(e.length,t)}}validate(t,e){const r=tt(t.getFullYear()),n=t.getMonth();return r?e>=1&&e<=rt[n]:e>=1&&e<=et[n]}set(t,e,r){return t.setDate(r),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","w","I","D","i","e","c","t","T"]},D:new class extends T{priority=90;subpriority=1;parse(t,e,r){switch(e){case"D":case"DD":return $(D,t);case"Do":return r.ordinalNumber(t,{unit:"date"});default:return z(e.length,t)}}validate(t,e){return tt(t.getFullYear())?e>=1&&e<=366:e>=1&&e<=365}set(t,e,r){return t.setMonth(0,r),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]},E:new class extends T{priority=90;parse(t,e,r){switch(e){case"E":case"EE":case"EEE":return r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"EEEEE":return r.day(t,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});default:return r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=nt(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["D","i","e","c","t","T"]},e:new class extends T{priority=90;parse(t,e,r,n){const a=t=>{const e=7*Math.floor((t-1)/7);return(t+n.weekStartsOn+6)%7+e};switch(e){case"e":case"ee":return Z(z(e.length,t),a);case"eo":return Z(r.ordinalNumber(t,{unit:"day"}),a);case"eee":return r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"eeeee":return r.day(t,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});default:return r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=nt(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]},c:new class extends T{priority=90;parse(t,e,r,n){const a=t=>{const e=7*Math.floor((t-1)/7);return(t+n.weekStartsOn+6)%7+e};switch(e){case"c":case"cc":return Z(z(e.length,t),a);case"co":return Z(r.ordinalNumber(t,{unit:"day"}),a);case"ccc":return r.day(t,{width:"abbreviated",context:"standalone"})||r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"});case"ccccc":return r.day(t,{width:"narrow",context:"standalone"});case"cccccc":return r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"});default:return r.day(t,{width:"wide",context:"standalone"})||r.day(t,{width:"abbreviated",context:"standalone"})||r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=nt(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]},i:new class extends T{priority=90;parse(t,e,r){const n=t=>0===t?7:t;switch(e){case"i":case"ii":return z(e.length,t);case"io":return r.ordinalNumber(t,{unit:"day"});case"iii":return Z(r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n);case"iiiii":return Z(r.day(t,{width:"narrow",context:"formatting"}),n);case"iiiiii":return Z(r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n);default:return Z(r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n)}}validate(t,e){return e>=1&&e<=7}set(t,e,r){return(t=at(t,r)).setHours(0,0,0,0),t}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]},a:new class extends T{priority=80;parse(t,e,r){switch(e){case"a":case"aa":case"aaa":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaaa":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(U(r),0,0,0),t}incompatibleTokens=["b","B","H","k","t","T"]},b:new class extends T{priority=80;parse(t,e,r){switch(e){case"b":case"bb":case"bbb":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbbb":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(U(r),0,0,0),t}incompatibleTokens=["a","B","H","k","t","T"]},B:new class extends T{priority=80;parse(t,e,r){switch(e){case"B":case"BB":case"BBB":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBBB":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(U(r),0,0,0),t}incompatibleTokens=["a","b","t","T"]},h:new class extends T{priority=70;parse(t,e,r){switch(e){case"h":return $(N,t);case"ho":return r.ordinalNumber(t,{unit:"hour"});default:return z(e.length,t)}}validate(t,e){return e>=1&&e<=12}set(t,e,r){const n=t.getHours()>=12;return n&&r<12?t.setHours(r+12,0,0,0):n||12!==r?t.setHours(r,0,0,0):t.setHours(0,0,0,0),t}incompatibleTokens=["H","K","k","t","T"]},H:new class extends T{priority=70;parse(t,e,r){switch(e){case"H":return $(M,t);case"Ho":return r.ordinalNumber(t,{unit:"hour"});default:return z(e.length,t)}}validate(t,e){return e>=0&&e<=23}set(t,e,r){return t.setHours(r,0,0,0),t}incompatibleTokens=["a","b","h","K","k","t","T"]},K:new class extends T{priority=70;parse(t,e,r){switch(e){case"K":return $(Y,t);case"Ko":return r.ordinalNumber(t,{unit:"hour"});default:return z(e.length,t)}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.getHours()>=12&&r<12?t.setHours(r+12,0,0,0):t.setHours(r,0,0,0),t}incompatibleTokens=["h","H","k","t","T"]},k:new class extends T{priority=70;parse(t,e,r){switch(e){case"k":return $(H,t);case"ko":return r.ordinalNumber(t,{unit:"hour"});default:return z(e.length,t)}}validate(t,e){return e>=1&&e<=24}set(t,e,r){const n=r<=24?r%24:r;return t.setHours(n,0,0,0),t}incompatibleTokens=["a","b","h","H","K","t","T"]},m:new class extends T{priority=60;parse(t,e,r){switch(e){case"m":return $(E,t);case"mo":return r.ordinalNumber(t,{unit:"minute"});default:return z(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,r){return t.setMinutes(r,0,0),t}incompatibleTokens=["t","T"]},s:new class extends T{priority=50;parse(t,e,r){switch(e){case"s":return $(P,t);case"so":return r.ordinalNumber(t,{unit:"second"});default:return z(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,r){return t.setSeconds(r,0),t}incompatibleTokens=["t","T"]},S:new class extends T{priority=30;parse(t,e){return Z(z(e.length,t),(t=>Math.trunc(t*Math.pow(10,3-e.length))))}set(t,e,r){return t.setMilliseconds(r),t}incompatibleTokens=["t","T"]},X:new class extends T{priority=10;parse(t,e){switch(e){case"X":return j(F,t);case"XX":return j(W,t);case"XXXX":return j(A,t);case"XXXXX":return j(K,t);default:return j(C,t)}}set(t,e,n){return e.timestampIsSet?t:r(t,t.getTime()-w(t)-n)}incompatibleTokens=["t","T","x"]},x:new class extends T{priority=10;parse(t,e){switch(e){case"x":return j(F,t);case"xx":return j(W,t);case"xxxx":return j(A,t);case"xxxxx":return j(K,t);default:return j(C,t)}}set(t,e,n){return e.timestampIsSet?t:r(t,t.getTime()-w(t)-n)}incompatibleTokens=["t","T","X"]},t:new class extends T{priority=40;parse(t){return V(t)}set(t,e,n){return[r(t,1e3*n),{timestampIsSet:!0}]}incompatibleTokens="*"},T:new class extends T{priority=20;parse(t){return V(t)}set(t,e,n){return[r(t,n),{timestampIsSet:!0}]}incompatibleTokens="*"}},it=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,ot=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,ct=/^'([^]*?)'?$/,ut=/''/g,dt=/\S/,lt=/[a-zA-Z]/;function wt(n,a,s,i){const o=Object.assign({},t()),c=i?.locale??o.locale??h,u=i?.firstWeekContainsDate??i?.locale?.options?.firstWeekContainsDate??o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,d=i?.weekStartsOn??i?.locale?.options?.weekStartsOn??o.weekStartsOn??o.locale?.options?.weekStartsOn??0;if(""===a)return""===n?e(s):r(s,NaN);const l={firstWeekContainsDate:u,weekStartsOn:d,locale:c},w=[new b],x=a.match(ot).map((t=>{const e=t[0];if(e in m){return(0,m[e])(t,c.formatLong)}return t})).join("").match(it),g=[];for(let t of x){!i?.useAdditionalWeekYearTokens&&f(t)&&y(t,a,n),!i?.useAdditionalDayOfYearTokens&&p(t)&&y(t,a,n);const e=t[0],o=st[e];if(o){const{incompatibleTokens:a}=o;if(Array.isArray(a)){const r=g.find((t=>a.includes(t.token)||t.token===e));if(r)throw new RangeError(`The format string mustn't contain \`${r.fullToken}\` and \`${t}\` at the same time`)}else if("*"===o.incompatibleTokens&&g.length>0)throw new RangeError(`The format string mustn't contain \`${t}\` and any other token at the same time`);g.push({token:e,fullToken:t});const i=o.run(n,t,c.match,l);if(!i)return r(s,NaN);w.push(i.setter),n=i.rest}else{if(e.match(lt))throw new RangeError("Format string contains an unescaped latin alphabet character `"+e+"`");if("''"===t?t="'":"'"===e&&(t=t.match(ct)[1].replace(ut,"'")),0!==n.indexOf(t))return r(s,NaN);n=n.slice(t.length)}}if(n.length>0&&dt.test(n))return r(s,NaN);const T=w.map((t=>t.priority)).sort(((t,e)=>e-t)).filter(((t,e,r)=>r.indexOf(t)===e)).map((t=>w.filter((e=>e.priority===t)).sort(((t,e)=>e.subPriority-t.subPriority)))).map((t=>t[0]));let k=e(s);if(isNaN(k.getTime()))return r(s,NaN);const v={};for(const t of T){if(!t.validate(k,l))return r(s,NaN);const e=t.set(k,v,l);Array.isArray(e)?(k=e[0],Object.assign(v,e[1])):k=e}return r(s,k)}export{wt as p}; diff --git a/config/www/community/frigate-hass-card/parse-7f4a6e12.js.gz b/config/www/community/frigate-hass-card/parse-7f4a6e12.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..bb99956601a7e6536f86a2fde6029d05075383d5 GIT binary patch literal 4019 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 Z7I_zZ&uYxV??^TO^FL0nz2o6Z003kx)3pEq literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/parse-a53fb39b.js b/config/www/community/frigate-hass-card/parse-a53fb39b.js new file mode 100644 index 00000000..e5ac1525 --- /dev/null +++ b/config/www/community/frigate-hass-card/parse-a53fb39b.js @@ -0,0 +1 @@ +import{ek as t,d3 as e,el as r,em as n,en as a,eo as s,ep as i,eq as o,er as c,es as u,et as d,eu as l,ev as w,ew as h,ex as m,ey as f,ez as y,eA as p}from"./card-c642ee74.js";class x{subPriority=0;validate(t,e){return!0}}class g extends x{constructor(t,e,r,n,a){super(),this.value=t,this.validateValue=e,this.setValue=r,this.priority=n,a&&(this.subPriority=a)}validate(t,e){return this.validateValue(t,this.value,e)}set(t,e,r){return this.setValue(t,e,this.value,r)}}class b extends x{priority=10;subPriority=-1;set(t,e){return e.timestampIsSet?t:r(t,function(t,e){const n=e instanceof Date?r(e,0):new e(0);return n.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),n.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()),n}(t,Date))}}class T{run(t,e,r,n){const a=this.parse(t,e,r,n);return a?{setter:new g(a.value,this.validate,this.set,this.priority,this.subPriority),rest:a.rest}:null}validate(t,e,r){return!0}}const k=/^(1[0-2]|0?\d)/,v=/^(3[0-1]|[0-2]?\d)/,D=/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,q=/^(5[0-3]|[0-4]?\d)/,M=/^(2[0-3]|[0-1]?\d)/,H=/^(2[0-4]|[0-1]?\d)/,Y=/^(1[0-1]|0?\d)/,N=/^(1[0-2]|0?\d)/,E=/^[0-5]?\d/,P=/^[0-5]?\d/,L=/^\d/,Q=/^\d{1,2}/,I=/^\d{1,3}/,R=/^\d{1,4}/,S=/^-?\d+/,O=/^-?\d/,B=/^-?\d{1,2}/,G=/^-?\d{1,3}/,X=/^-?\d{1,4}/,F=/^([+-])(\d{2})(\d{2})?|Z/,A=/^([+-])(\d{2})(\d{2})|Z/,W=/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,C=/^([+-])(\d{2}):(\d{2})|Z/,K=/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/;function Z(t,e){return t?{value:e(t.value),rest:t.rest}:t}function $(t,e){const r=e.match(t);return r?{value:parseInt(r[0],10),rest:e.slice(r[0].length)}:null}function j(t,e){const r=e.match(t);if(!r)return null;if("Z"===r[0])return{value:0,rest:e.slice(1)};const i="+"===r[1]?1:-1,o=r[2]?parseInt(r[2],10):0,c=r[3]?parseInt(r[3],10):0,u=r[5]?parseInt(r[5],10):0;return{value:i*(o*n+c*a+u*s),rest:e.slice(r[0].length)}}function V(t){return $(S,t)}function z(t,e){switch(t){case 1:return $(L,e);case 2:return $(Q,e);case 3:return $(I,e);case 4:return $(R,e);default:return $(new RegExp("^\\d{1,"+t+"}"),e)}}function J(t,e){switch(t){case 1:return $(O,e);case 2:return $(B,e);case 3:return $(G,e);case 4:return $(X,e);default:return $(new RegExp("^-?\\d{1,"+t+"}"),e)}}function U(t){switch(t){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;default:return 0}}function _(t,e){const r=e>0,n=r?e:1-e;let a;if(n<=50)a=t||100;else{const e=n+50;a=t+100*Math.trunc(e/100)-(t>=e%100?100:0)}return r?a:1-a}function tt(t){return t%400==0||t%4==0&&t%100!=0}const et=[31,28,31,30,31,30,31,31,30,31,30,31],rt=[31,29,31,30,31,30,31,31,30,31,30,31];function nt(r,n,a){const s=t(),i=a?.weekStartsOn??a?.locale?.options?.weekStartsOn??s.weekStartsOn??s.locale?.options?.weekStartsOn??0,o=e(r),c=o.getDay(),u=7-i;return l(o,n<0||n>6?n-(c+u)%7:((n%7+7)%7+u)%7-(c+u)%7)}function at(t,r){const n=e(t),a=function(t){let r=e(t).getDay();return 0===r&&(r=7),r}(n);return l(n,r-a)}const st={G:new class extends T{priority=140;parse(t,e,r){switch(e){case"G":case"GG":case"GGG":return r.era(t,{width:"abbreviated"})||r.era(t,{width:"narrow"});case"GGGGG":return r.era(t,{width:"narrow"});default:return r.era(t,{width:"wide"})||r.era(t,{width:"abbreviated"})||r.era(t,{width:"narrow"})}}set(t,e,r){return e.era=r,t.setFullYear(r,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["R","u","t","T"]},y:new class extends T{priority=130;incompatibleTokens=["Y","R","u","w","I","i","e","c","t","T"];parse(t,e,r){const n=t=>({year:t,isTwoDigitYear:"yy"===e});switch(e){case"y":return Z(z(4,t),n);case"yo":return Z(r.ordinalNumber(t,{unit:"year"}),n);default:return Z(z(e.length,t),n)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,r){const n=t.getFullYear();if(r.isTwoDigitYear){const e=_(r.year,n);return t.setFullYear(e,0,1),t.setHours(0,0,0,0),t}const a="era"in e&&1!==e.era?1-r.year:r.year;return t.setFullYear(a,0,1),t.setHours(0,0,0,0),t}},Y:new class extends T{priority=130;parse(t,e,r){const n=t=>({year:t,isTwoDigitYear:"YY"===e});switch(e){case"Y":return Z(z(4,t),n);case"Yo":return Z(r.ordinalNumber(t,{unit:"year"}),n);default:return Z(z(e.length,t),n)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,r,n){const a=i(t,n);if(r.isTwoDigitYear){const e=_(r.year,a);return t.setFullYear(e,0,n.firstWeekContainsDate),t.setHours(0,0,0,0),o(t,n)}const s="era"in e&&1!==e.era?1-r.year:r.year;return t.setFullYear(s,0,n.firstWeekContainsDate),t.setHours(0,0,0,0),o(t,n)}incompatibleTokens=["y","R","u","Q","q","M","L","I","d","D","i","t","T"]},R:new class extends T{priority=130;parse(t,e){return J("R"===e?4:e.length,t)}set(t,e,n){const a=r(t,0);return a.setFullYear(n,0,4),a.setHours(0,0,0,0),c(a)}incompatibleTokens=["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]},u:new class extends T{priority=130;parse(t,e){return J("u"===e?4:e.length,t)}set(t,e,r){return t.setFullYear(r,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["G","y","Y","R","w","I","i","e","c","t","T"]},Q:new class extends T{priority=120;parse(t,e,r){switch(e){case"Q":case"QQ":return z(e.length,t);case"Qo":return r.ordinalNumber(t,{unit:"quarter"});case"QQQ":return r.quarter(t,{width:"abbreviated",context:"formatting"})||r.quarter(t,{width:"narrow",context:"formatting"});case"QQQQQ":return r.quarter(t,{width:"narrow",context:"formatting"});default:return r.quarter(t,{width:"wide",context:"formatting"})||r.quarter(t,{width:"abbreviated",context:"formatting"})||r.quarter(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=1&&e<=4}set(t,e,r){return t.setMonth(3*(r-1),1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]},q:new class extends T{priority=120;parse(t,e,r){switch(e){case"q":case"qq":return z(e.length,t);case"qo":return r.ordinalNumber(t,{unit:"quarter"});case"qqq":return r.quarter(t,{width:"abbreviated",context:"standalone"})||r.quarter(t,{width:"narrow",context:"standalone"});case"qqqqq":return r.quarter(t,{width:"narrow",context:"standalone"});default:return r.quarter(t,{width:"wide",context:"standalone"})||r.quarter(t,{width:"abbreviated",context:"standalone"})||r.quarter(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=1&&e<=4}set(t,e,r){return t.setMonth(3*(r-1),1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]},M:new class extends T{incompatibleTokens=["Y","R","q","Q","L","w","I","D","i","e","c","t","T"];priority=110;parse(t,e,r){const n=t=>t-1;switch(e){case"M":return Z($(k,t),n);case"MM":return Z(z(2,t),n);case"Mo":return Z(r.ordinalNumber(t,{unit:"month"}),n);case"MMM":return r.month(t,{width:"abbreviated",context:"formatting"})||r.month(t,{width:"narrow",context:"formatting"});case"MMMMM":return r.month(t,{width:"narrow",context:"formatting"});default:return r.month(t,{width:"wide",context:"formatting"})||r.month(t,{width:"abbreviated",context:"formatting"})||r.month(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.setMonth(r,1),t.setHours(0,0,0,0),t}},L:new class extends T{priority=110;parse(t,e,r){const n=t=>t-1;switch(e){case"L":return Z($(k,t),n);case"LL":return Z(z(2,t),n);case"Lo":return Z(r.ordinalNumber(t,{unit:"month"}),n);case"LLL":return r.month(t,{width:"abbreviated",context:"standalone"})||r.month(t,{width:"narrow",context:"standalone"});case"LLLLL":return r.month(t,{width:"narrow",context:"standalone"});default:return r.month(t,{width:"wide",context:"standalone"})||r.month(t,{width:"abbreviated",context:"standalone"})||r.month(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.setMonth(r,1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]},w:new class extends T{priority=100;parse(t,e,r){switch(e){case"w":return $(q,t);case"wo":return r.ordinalNumber(t,{unit:"week"});default:return z(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,r,n,a){return o(function(t,r,n){const a=e(t),s=u(a,n)-r;return a.setDate(a.getDate()-7*s),a}(t,n,a),a)}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","i","t","T"]},I:new class extends T{priority=100;parse(t,e,r){switch(e){case"I":return $(q,t);case"Io":return r.ordinalNumber(t,{unit:"week"});default:return z(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,r,n){return c(function(t,r){const n=e(t),a=d(n)-r;return n.setDate(n.getDate()-7*a),n}(t,n))}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]},d:new class extends T{priority=90;subPriority=1;parse(t,e,r){switch(e){case"d":return $(v,t);case"do":return r.ordinalNumber(t,{unit:"date"});default:return z(e.length,t)}}validate(t,e){const r=tt(t.getFullYear()),n=t.getMonth();return r?e>=1&&e<=rt[n]:e>=1&&e<=et[n]}set(t,e,r){return t.setDate(r),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","w","I","D","i","e","c","t","T"]},D:new class extends T{priority=90;subpriority=1;parse(t,e,r){switch(e){case"D":case"DD":return $(D,t);case"Do":return r.ordinalNumber(t,{unit:"date"});default:return z(e.length,t)}}validate(t,e){return tt(t.getFullYear())?e>=1&&e<=366:e>=1&&e<=365}set(t,e,r){return t.setMonth(0,r),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]},E:new class extends T{priority=90;parse(t,e,r){switch(e){case"E":case"EE":case"EEE":return r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"EEEEE":return r.day(t,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});default:return r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=nt(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["D","i","e","c","t","T"]},e:new class extends T{priority=90;parse(t,e,r,n){const a=t=>{const e=7*Math.floor((t-1)/7);return(t+n.weekStartsOn+6)%7+e};switch(e){case"e":case"ee":return Z(z(e.length,t),a);case"eo":return Z(r.ordinalNumber(t,{unit:"day"}),a);case"eee":return r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"eeeee":return r.day(t,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});default:return r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=nt(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]},c:new class extends T{priority=90;parse(t,e,r,n){const a=t=>{const e=7*Math.floor((t-1)/7);return(t+n.weekStartsOn+6)%7+e};switch(e){case"c":case"cc":return Z(z(e.length,t),a);case"co":return Z(r.ordinalNumber(t,{unit:"day"}),a);case"ccc":return r.day(t,{width:"abbreviated",context:"standalone"})||r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"});case"ccccc":return r.day(t,{width:"narrow",context:"standalone"});case"cccccc":return r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"});default:return r.day(t,{width:"wide",context:"standalone"})||r.day(t,{width:"abbreviated",context:"standalone"})||r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=nt(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]},i:new class extends T{priority=90;parse(t,e,r){const n=t=>0===t?7:t;switch(e){case"i":case"ii":return z(e.length,t);case"io":return r.ordinalNumber(t,{unit:"day"});case"iii":return Z(r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n);case"iiiii":return Z(r.day(t,{width:"narrow",context:"formatting"}),n);case"iiiiii":return Z(r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n);default:return Z(r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n)}}validate(t,e){return e>=1&&e<=7}set(t,e,r){return(t=at(t,r)).setHours(0,0,0,0),t}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]},a:new class extends T{priority=80;parse(t,e,r){switch(e){case"a":case"aa":case"aaa":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaaa":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(U(r),0,0,0),t}incompatibleTokens=["b","B","H","k","t","T"]},b:new class extends T{priority=80;parse(t,e,r){switch(e){case"b":case"bb":case"bbb":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbbb":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(U(r),0,0,0),t}incompatibleTokens=["a","B","H","k","t","T"]},B:new class extends T{priority=80;parse(t,e,r){switch(e){case"B":case"BB":case"BBB":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBBB":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(U(r),0,0,0),t}incompatibleTokens=["a","b","t","T"]},h:new class extends T{priority=70;parse(t,e,r){switch(e){case"h":return $(N,t);case"ho":return r.ordinalNumber(t,{unit:"hour"});default:return z(e.length,t)}}validate(t,e){return e>=1&&e<=12}set(t,e,r){const n=t.getHours()>=12;return n&&r<12?t.setHours(r+12,0,0,0):n||12!==r?t.setHours(r,0,0,0):t.setHours(0,0,0,0),t}incompatibleTokens=["H","K","k","t","T"]},H:new class extends T{priority=70;parse(t,e,r){switch(e){case"H":return $(M,t);case"Ho":return r.ordinalNumber(t,{unit:"hour"});default:return z(e.length,t)}}validate(t,e){return e>=0&&e<=23}set(t,e,r){return t.setHours(r,0,0,0),t}incompatibleTokens=["a","b","h","K","k","t","T"]},K:new class extends T{priority=70;parse(t,e,r){switch(e){case"K":return $(Y,t);case"Ko":return r.ordinalNumber(t,{unit:"hour"});default:return z(e.length,t)}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.getHours()>=12&&r<12?t.setHours(r+12,0,0,0):t.setHours(r,0,0,0),t}incompatibleTokens=["h","H","k","t","T"]},k:new class extends T{priority=70;parse(t,e,r){switch(e){case"k":return $(H,t);case"ko":return r.ordinalNumber(t,{unit:"hour"});default:return z(e.length,t)}}validate(t,e){return e>=1&&e<=24}set(t,e,r){const n=r<=24?r%24:r;return t.setHours(n,0,0,0),t}incompatibleTokens=["a","b","h","H","K","t","T"]},m:new class extends T{priority=60;parse(t,e,r){switch(e){case"m":return $(E,t);case"mo":return r.ordinalNumber(t,{unit:"minute"});default:return z(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,r){return t.setMinutes(r,0,0),t}incompatibleTokens=["t","T"]},s:new class extends T{priority=50;parse(t,e,r){switch(e){case"s":return $(P,t);case"so":return r.ordinalNumber(t,{unit:"second"});default:return z(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,r){return t.setSeconds(r,0),t}incompatibleTokens=["t","T"]},S:new class extends T{priority=30;parse(t,e){return Z(z(e.length,t),(t=>Math.trunc(t*Math.pow(10,3-e.length))))}set(t,e,r){return t.setMilliseconds(r),t}incompatibleTokens=["t","T"]},X:new class extends T{priority=10;parse(t,e){switch(e){case"X":return j(F,t);case"XX":return j(A,t);case"XXXX":return j(W,t);case"XXXXX":return j(K,t);default:return j(C,t)}}set(t,e,n){return e.timestampIsSet?t:r(t,t.getTime()-w(t)-n)}incompatibleTokens=["t","T","x"]},x:new class extends T{priority=10;parse(t,e){switch(e){case"x":return j(F,t);case"xx":return j(A,t);case"xxxx":return j(W,t);case"xxxxx":return j(K,t);default:return j(C,t)}}set(t,e,n){return e.timestampIsSet?t:r(t,t.getTime()-w(t)-n)}incompatibleTokens=["t","T","X"]},t:new class extends T{priority=40;parse(t){return V(t)}set(t,e,n){return[r(t,1e3*n),{timestampIsSet:!0}]}incompatibleTokens="*"},T:new class extends T{priority=20;parse(t){return V(t)}set(t,e,n){return[r(t,n),{timestampIsSet:!0}]}incompatibleTokens="*"}},it=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,ot=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,ct=/^'([^]*?)'?$/,ut=/''/g,dt=/\S/,lt=/[a-zA-Z]/;function wt(n,a,s,i){const o=Object.assign({},t()),c=i?.locale??o.locale??h,u=i?.firstWeekContainsDate??i?.locale?.options?.firstWeekContainsDate??o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,d=i?.weekStartsOn??i?.locale?.options?.weekStartsOn??o.weekStartsOn??o.locale?.options?.weekStartsOn??0;if(""===a)return""===n?e(s):r(s,NaN);const l={firstWeekContainsDate:u,weekStartsOn:d,locale:c},w=[new b],x=a.match(ot).map((t=>{const e=t[0];if(e in m){return(0,m[e])(t,c.formatLong)}return t})).join("").match(it),g=[];for(let t of x){!i?.useAdditionalWeekYearTokens&&f(t)&&y(t,a,n),!i?.useAdditionalDayOfYearTokens&&p(t)&&y(t,a,n);const e=t[0],o=st[e];if(o){const{incompatibleTokens:a}=o;if(Array.isArray(a)){const r=g.find((t=>a.includes(t.token)||t.token===e));if(r)throw new RangeError(`The format string mustn't contain \`${r.fullToken}\` and \`${t}\` at the same time`)}else if("*"===o.incompatibleTokens&&g.length>0)throw new RangeError(`The format string mustn't contain \`${t}\` and any other token at the same time`);g.push({token:e,fullToken:t});const i=o.run(n,t,c.match,l);if(!i)return r(s,NaN);w.push(i.setter),n=i.rest}else{if(e.match(lt))throw new RangeError("Format string contains an unescaped latin alphabet character `"+e+"`");if("''"===t?t="'":"'"===e&&(t=t.match(ct)[1].replace(ut,"'")),0!==n.indexOf(t))return r(s,NaN);n=n.slice(t.length)}}if(n.length>0&&dt.test(n))return r(s,NaN);const T=w.map((t=>t.priority)).sort(((t,e)=>e-t)).filter(((t,e,r)=>r.indexOf(t)===e)).map((t=>w.filter((e=>e.priority===t)).sort(((t,e)=>e.subPriority-t.subPriority)))).map((t=>t[0]));let k=e(s);if(isNaN(k.getTime()))return r(s,NaN);const v={};for(const t of T){if(!t.validate(k,l))return r(s,NaN);const e=t.set(k,v,l);Array.isArray(e)?(k=e[0],Object.assign(v,e[1])):k=e}return r(s,k)}export{wt as p}; diff --git a/config/www/community/frigate-hass-card/parse-a53fb39b.js.gz b/config/www/community/frigate-hass-card/parse-a53fb39b.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..7e10fd300987c9084141e577111d0f2dfab38b6c GIT binary patch literal 4020 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 a!6NU1?^%sm_#LU{fBpvmyZ|KON&o=q>g-|w literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/parse-feacefaa.js b/config/www/community/frigate-hass-card/parse-feacefaa.js new file mode 100644 index 00000000..20bdf4a4 --- /dev/null +++ b/config/www/community/frigate-hass-card/parse-feacefaa.js @@ -0,0 +1 @@ +import{ek as t,d3 as e,el as r,em as n,en as a,eo as s,ep as i,eq as o,er as c,es as u,et as d,eu as l,ev as w,ew as h,ex as m,ey as f,ez as y,eA as p}from"./card-7cd05290.js";class x{subPriority=0;validate(t,e){return!0}}class g extends x{constructor(t,e,r,n,a){super(),this.value=t,this.validateValue=e,this.setValue=r,this.priority=n,a&&(this.subPriority=a)}validate(t,e){return this.validateValue(t,this.value,e)}set(t,e,r){return this.setValue(t,e,this.value,r)}}class b extends x{priority=10;subPriority=-1;set(t,e){return e.timestampIsSet?t:r(t,function(t,e){const n=e instanceof Date?r(e,0):new e(0);return n.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),n.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()),n}(t,Date))}}class T{run(t,e,r,n){const a=this.parse(t,e,r,n);return a?{setter:new g(a.value,this.validate,this.set,this.priority,this.subPriority),rest:a.rest}:null}validate(t,e,r){return!0}}const k=/^(1[0-2]|0?\d)/,v=/^(3[0-1]|[0-2]?\d)/,D=/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,q=/^(5[0-3]|[0-4]?\d)/,M=/^(2[0-3]|[0-1]?\d)/,H=/^(2[0-4]|[0-1]?\d)/,Y=/^(1[0-1]|0?\d)/,N=/^(1[0-2]|0?\d)/,E=/^[0-5]?\d/,P=/^[0-5]?\d/,L=/^\d/,Q=/^\d{1,2}/,I=/^\d{1,3}/,R=/^\d{1,4}/,S=/^-?\d+/,O=/^-?\d/,B=/^-?\d{1,2}/,G=/^-?\d{1,3}/,X=/^-?\d{1,4}/,F=/^([+-])(\d{2})(\d{2})?|Z/,A=/^([+-])(\d{2})(\d{2})|Z/,W=/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,C=/^([+-])(\d{2}):(\d{2})|Z/,K=/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/;function Z(t,e){return t?{value:e(t.value),rest:t.rest}:t}function $(t,e){const r=e.match(t);return r?{value:parseInt(r[0],10),rest:e.slice(r[0].length)}:null}function j(t,e){const r=e.match(t);if(!r)return null;if("Z"===r[0])return{value:0,rest:e.slice(1)};const i="+"===r[1]?1:-1,o=r[2]?parseInt(r[2],10):0,c=r[3]?parseInt(r[3],10):0,u=r[5]?parseInt(r[5],10):0;return{value:i*(o*n+c*a+u*s),rest:e.slice(r[0].length)}}function V(t){return $(S,t)}function z(t,e){switch(t){case 1:return $(L,e);case 2:return $(Q,e);case 3:return $(I,e);case 4:return $(R,e);default:return $(new RegExp("^\\d{1,"+t+"}"),e)}}function J(t,e){switch(t){case 1:return $(O,e);case 2:return $(B,e);case 3:return $(G,e);case 4:return $(X,e);default:return $(new RegExp("^-?\\d{1,"+t+"}"),e)}}function U(t){switch(t){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;default:return 0}}function _(t,e){const r=e>0,n=r?e:1-e;let a;if(n<=50)a=t||100;else{const e=n+50;a=t+100*Math.trunc(e/100)-(t>=e%100?100:0)}return r?a:1-a}function tt(t){return t%400==0||t%4==0&&t%100!=0}const et=[31,28,31,30,31,30,31,31,30,31,30,31],rt=[31,29,31,30,31,30,31,31,30,31,30,31];function nt(r,n,a){const s=t(),i=a?.weekStartsOn??a?.locale?.options?.weekStartsOn??s.weekStartsOn??s.locale?.options?.weekStartsOn??0,o=e(r),c=o.getDay(),u=7-i;return l(o,n<0||n>6?n-(c+u)%7:((n%7+7)%7+u)%7-(c+u)%7)}function at(t,r){const n=e(t),a=function(t){let r=e(t).getDay();return 0===r&&(r=7),r}(n);return l(n,r-a)}const st={G:new class extends T{priority=140;parse(t,e,r){switch(e){case"G":case"GG":case"GGG":return r.era(t,{width:"abbreviated"})||r.era(t,{width:"narrow"});case"GGGGG":return r.era(t,{width:"narrow"});default:return r.era(t,{width:"wide"})||r.era(t,{width:"abbreviated"})||r.era(t,{width:"narrow"})}}set(t,e,r){return e.era=r,t.setFullYear(r,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["R","u","t","T"]},y:new class extends T{priority=130;incompatibleTokens=["Y","R","u","w","I","i","e","c","t","T"];parse(t,e,r){const n=t=>({year:t,isTwoDigitYear:"yy"===e});switch(e){case"y":return Z(z(4,t),n);case"yo":return Z(r.ordinalNumber(t,{unit:"year"}),n);default:return Z(z(e.length,t),n)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,r){const n=t.getFullYear();if(r.isTwoDigitYear){const e=_(r.year,n);return t.setFullYear(e,0,1),t.setHours(0,0,0,0),t}const a="era"in e&&1!==e.era?1-r.year:r.year;return t.setFullYear(a,0,1),t.setHours(0,0,0,0),t}},Y:new class extends T{priority=130;parse(t,e,r){const n=t=>({year:t,isTwoDigitYear:"YY"===e});switch(e){case"Y":return Z(z(4,t),n);case"Yo":return Z(r.ordinalNumber(t,{unit:"year"}),n);default:return Z(z(e.length,t),n)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,r,n){const a=i(t,n);if(r.isTwoDigitYear){const e=_(r.year,a);return t.setFullYear(e,0,n.firstWeekContainsDate),t.setHours(0,0,0,0),o(t,n)}const s="era"in e&&1!==e.era?1-r.year:r.year;return t.setFullYear(s,0,n.firstWeekContainsDate),t.setHours(0,0,0,0),o(t,n)}incompatibleTokens=["y","R","u","Q","q","M","L","I","d","D","i","t","T"]},R:new class extends T{priority=130;parse(t,e){return J("R"===e?4:e.length,t)}set(t,e,n){const a=r(t,0);return a.setFullYear(n,0,4),a.setHours(0,0,0,0),c(a)}incompatibleTokens=["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]},u:new class extends T{priority=130;parse(t,e){return J("u"===e?4:e.length,t)}set(t,e,r){return t.setFullYear(r,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["G","y","Y","R","w","I","i","e","c","t","T"]},Q:new class extends T{priority=120;parse(t,e,r){switch(e){case"Q":case"QQ":return z(e.length,t);case"Qo":return r.ordinalNumber(t,{unit:"quarter"});case"QQQ":return r.quarter(t,{width:"abbreviated",context:"formatting"})||r.quarter(t,{width:"narrow",context:"formatting"});case"QQQQQ":return r.quarter(t,{width:"narrow",context:"formatting"});default:return r.quarter(t,{width:"wide",context:"formatting"})||r.quarter(t,{width:"abbreviated",context:"formatting"})||r.quarter(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=1&&e<=4}set(t,e,r){return t.setMonth(3*(r-1),1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]},q:new class extends T{priority=120;parse(t,e,r){switch(e){case"q":case"qq":return z(e.length,t);case"qo":return r.ordinalNumber(t,{unit:"quarter"});case"qqq":return r.quarter(t,{width:"abbreviated",context:"standalone"})||r.quarter(t,{width:"narrow",context:"standalone"});case"qqqqq":return r.quarter(t,{width:"narrow",context:"standalone"});default:return r.quarter(t,{width:"wide",context:"standalone"})||r.quarter(t,{width:"abbreviated",context:"standalone"})||r.quarter(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=1&&e<=4}set(t,e,r){return t.setMonth(3*(r-1),1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]},M:new class extends T{incompatibleTokens=["Y","R","q","Q","L","w","I","D","i","e","c","t","T"];priority=110;parse(t,e,r){const n=t=>t-1;switch(e){case"M":return Z($(k,t),n);case"MM":return Z(z(2,t),n);case"Mo":return Z(r.ordinalNumber(t,{unit:"month"}),n);case"MMM":return r.month(t,{width:"abbreviated",context:"formatting"})||r.month(t,{width:"narrow",context:"formatting"});case"MMMMM":return r.month(t,{width:"narrow",context:"formatting"});default:return r.month(t,{width:"wide",context:"formatting"})||r.month(t,{width:"abbreviated",context:"formatting"})||r.month(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.setMonth(r,1),t.setHours(0,0,0,0),t}},L:new class extends T{priority=110;parse(t,e,r){const n=t=>t-1;switch(e){case"L":return Z($(k,t),n);case"LL":return Z(z(2,t),n);case"Lo":return Z(r.ordinalNumber(t,{unit:"month"}),n);case"LLL":return r.month(t,{width:"abbreviated",context:"standalone"})||r.month(t,{width:"narrow",context:"standalone"});case"LLLLL":return r.month(t,{width:"narrow",context:"standalone"});default:return r.month(t,{width:"wide",context:"standalone"})||r.month(t,{width:"abbreviated",context:"standalone"})||r.month(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.setMonth(r,1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]},w:new class extends T{priority=100;parse(t,e,r){switch(e){case"w":return $(q,t);case"wo":return r.ordinalNumber(t,{unit:"week"});default:return z(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,r,n,a){return o(function(t,r,n){const a=e(t),s=u(a,n)-r;return a.setDate(a.getDate()-7*s),a}(t,n,a),a)}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","i","t","T"]},I:new class extends T{priority=100;parse(t,e,r){switch(e){case"I":return $(q,t);case"Io":return r.ordinalNumber(t,{unit:"week"});default:return z(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,r,n){return c(function(t,r){const n=e(t),a=d(n)-r;return n.setDate(n.getDate()-7*a),n}(t,n))}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]},d:new class extends T{priority=90;subPriority=1;parse(t,e,r){switch(e){case"d":return $(v,t);case"do":return r.ordinalNumber(t,{unit:"date"});default:return z(e.length,t)}}validate(t,e){const r=tt(t.getFullYear()),n=t.getMonth();return r?e>=1&&e<=rt[n]:e>=1&&e<=et[n]}set(t,e,r){return t.setDate(r),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","w","I","D","i","e","c","t","T"]},D:new class extends T{priority=90;subpriority=1;parse(t,e,r){switch(e){case"D":case"DD":return $(D,t);case"Do":return r.ordinalNumber(t,{unit:"date"});default:return z(e.length,t)}}validate(t,e){return tt(t.getFullYear())?e>=1&&e<=366:e>=1&&e<=365}set(t,e,r){return t.setMonth(0,r),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]},E:new class extends T{priority=90;parse(t,e,r){switch(e){case"E":case"EE":case"EEE":return r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"EEEEE":return r.day(t,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});default:return r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=nt(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["D","i","e","c","t","T"]},e:new class extends T{priority=90;parse(t,e,r,n){const a=t=>{const e=7*Math.floor((t-1)/7);return(t+n.weekStartsOn+6)%7+e};switch(e){case"e":case"ee":return Z(z(e.length,t),a);case"eo":return Z(r.ordinalNumber(t,{unit:"day"}),a);case"eee":return r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"eeeee":return r.day(t,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});default:return r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=nt(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]},c:new class extends T{priority=90;parse(t,e,r,n){const a=t=>{const e=7*Math.floor((t-1)/7);return(t+n.weekStartsOn+6)%7+e};switch(e){case"c":case"cc":return Z(z(e.length,t),a);case"co":return Z(r.ordinalNumber(t,{unit:"day"}),a);case"ccc":return r.day(t,{width:"abbreviated",context:"standalone"})||r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"});case"ccccc":return r.day(t,{width:"narrow",context:"standalone"});case"cccccc":return r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"});default:return r.day(t,{width:"wide",context:"standalone"})||r.day(t,{width:"abbreviated",context:"standalone"})||r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=6}set(t,e,r,n){return(t=nt(t,r,n)).setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]},i:new class extends T{priority=90;parse(t,e,r){const n=t=>0===t?7:t;switch(e){case"i":case"ii":return z(e.length,t);case"io":return r.ordinalNumber(t,{unit:"day"});case"iii":return Z(r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n);case"iiiii":return Z(r.day(t,{width:"narrow",context:"formatting"}),n);case"iiiiii":return Z(r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n);default:return Z(r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),n)}}validate(t,e){return e>=1&&e<=7}set(t,e,r){return(t=at(t,r)).setHours(0,0,0,0),t}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]},a:new class extends T{priority=80;parse(t,e,r){switch(e){case"a":case"aa":case"aaa":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaaa":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(U(r),0,0,0),t}incompatibleTokens=["b","B","H","k","t","T"]},b:new class extends T{priority=80;parse(t,e,r){switch(e){case"b":case"bb":case"bbb":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbbb":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(U(r),0,0,0),t}incompatibleTokens=["a","B","H","k","t","T"]},B:new class extends T{priority=80;parse(t,e,r){switch(e){case"B":case"BB":case"BBB":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBBB":return r.dayPeriod(t,{width:"narrow",context:"formatting"});default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,r){return t.setHours(U(r),0,0,0),t}incompatibleTokens=["a","b","t","T"]},h:new class extends T{priority=70;parse(t,e,r){switch(e){case"h":return $(N,t);case"ho":return r.ordinalNumber(t,{unit:"hour"});default:return z(e.length,t)}}validate(t,e){return e>=1&&e<=12}set(t,e,r){const n=t.getHours()>=12;return n&&r<12?t.setHours(r+12,0,0,0):n||12!==r?t.setHours(r,0,0,0):t.setHours(0,0,0,0),t}incompatibleTokens=["H","K","k","t","T"]},H:new class extends T{priority=70;parse(t,e,r){switch(e){case"H":return $(M,t);case"Ho":return r.ordinalNumber(t,{unit:"hour"});default:return z(e.length,t)}}validate(t,e){return e>=0&&e<=23}set(t,e,r){return t.setHours(r,0,0,0),t}incompatibleTokens=["a","b","h","K","k","t","T"]},K:new class extends T{priority=70;parse(t,e,r){switch(e){case"K":return $(Y,t);case"Ko":return r.ordinalNumber(t,{unit:"hour"});default:return z(e.length,t)}}validate(t,e){return e>=0&&e<=11}set(t,e,r){return t.getHours()>=12&&r<12?t.setHours(r+12,0,0,0):t.setHours(r,0,0,0),t}incompatibleTokens=["h","H","k","t","T"]},k:new class extends T{priority=70;parse(t,e,r){switch(e){case"k":return $(H,t);case"ko":return r.ordinalNumber(t,{unit:"hour"});default:return z(e.length,t)}}validate(t,e){return e>=1&&e<=24}set(t,e,r){const n=r<=24?r%24:r;return t.setHours(n,0,0,0),t}incompatibleTokens=["a","b","h","H","K","t","T"]},m:new class extends T{priority=60;parse(t,e,r){switch(e){case"m":return $(E,t);case"mo":return r.ordinalNumber(t,{unit:"minute"});default:return z(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,r){return t.setMinutes(r,0,0),t}incompatibleTokens=["t","T"]},s:new class extends T{priority=50;parse(t,e,r){switch(e){case"s":return $(P,t);case"so":return r.ordinalNumber(t,{unit:"second"});default:return z(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,r){return t.setSeconds(r,0),t}incompatibleTokens=["t","T"]},S:new class extends T{priority=30;parse(t,e){return Z(z(e.length,t),(t=>Math.trunc(t*Math.pow(10,3-e.length))))}set(t,e,r){return t.setMilliseconds(r),t}incompatibleTokens=["t","T"]},X:new class extends T{priority=10;parse(t,e){switch(e){case"X":return j(F,t);case"XX":return j(A,t);case"XXXX":return j(W,t);case"XXXXX":return j(K,t);default:return j(C,t)}}set(t,e,n){return e.timestampIsSet?t:r(t,t.getTime()-w(t)-n)}incompatibleTokens=["t","T","x"]},x:new class extends T{priority=10;parse(t,e){switch(e){case"x":return j(F,t);case"xx":return j(A,t);case"xxxx":return j(W,t);case"xxxxx":return j(K,t);default:return j(C,t)}}set(t,e,n){return e.timestampIsSet?t:r(t,t.getTime()-w(t)-n)}incompatibleTokens=["t","T","X"]},t:new class extends T{priority=40;parse(t){return V(t)}set(t,e,n){return[r(t,1e3*n),{timestampIsSet:!0}]}incompatibleTokens="*"},T:new class extends T{priority=20;parse(t){return V(t)}set(t,e,n){return[r(t,n),{timestampIsSet:!0}]}incompatibleTokens="*"}},it=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,ot=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,ct=/^'([^]*?)'?$/,ut=/''/g,dt=/\S/,lt=/[a-zA-Z]/;function wt(n,a,s,i){const o=Object.assign({},t()),c=i?.locale??o.locale??h,u=i?.firstWeekContainsDate??i?.locale?.options?.firstWeekContainsDate??o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,d=i?.weekStartsOn??i?.locale?.options?.weekStartsOn??o.weekStartsOn??o.locale?.options?.weekStartsOn??0;if(""===a)return""===n?e(s):r(s,NaN);const l={firstWeekContainsDate:u,weekStartsOn:d,locale:c},w=[new b],x=a.match(ot).map((t=>{const e=t[0];if(e in m){return(0,m[e])(t,c.formatLong)}return t})).join("").match(it),g=[];for(let t of x){!i?.useAdditionalWeekYearTokens&&f(t)&&y(t,a,n),!i?.useAdditionalDayOfYearTokens&&p(t)&&y(t,a,n);const e=t[0],o=st[e];if(o){const{incompatibleTokens:a}=o;if(Array.isArray(a)){const r=g.find((t=>a.includes(t.token)||t.token===e));if(r)throw new RangeError(`The format string mustn't contain \`${r.fullToken}\` and \`${t}\` at the same time`)}else if("*"===o.incompatibleTokens&&g.length>0)throw new RangeError(`The format string mustn't contain \`${t}\` and any other token at the same time`);g.push({token:e,fullToken:t});const i=o.run(n,t,c.match,l);if(!i)return r(s,NaN);w.push(i.setter),n=i.rest}else{if(e.match(lt))throw new RangeError("Format string contains an unescaped latin alphabet character `"+e+"`");if("''"===t?t="'":"'"===e&&(t=t.match(ct)[1].replace(ut,"'")),0!==n.indexOf(t))return r(s,NaN);n=n.slice(t.length)}}if(n.length>0&&dt.test(n))return r(s,NaN);const T=w.map((t=>t.priority)).sort(((t,e)=>e-t)).filter(((t,e,r)=>r.indexOf(t)===e)).map((t=>w.filter((e=>e.priority===t)).sort(((t,e)=>e.subPriority-t.subPriority)))).map((t=>t[0]));let k=e(s);if(isNaN(k.getTime()))return r(s,NaN);const v={};for(const t of T){if(!t.validate(k,l))return r(s,NaN);const e=t.set(k,v,l);Array.isArray(e)?(k=e[0],Object.assign(v,e[1])):k=e}return r(s,k)}export{wt as p}; diff --git a/config/www/community/frigate-hass-card/parse-feacefaa.js.gz b/config/www/community/frigate-hass-card/parse-feacefaa.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..4b78e12fd780a288b21d0c5fad38879f3054afd0 GIT binary patch literal 4020 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 literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/startOfHour-b41e160a.js b/config/www/community/frigate-hass-card/startOfHour-b41e160a.js new file mode 100644 index 00000000..878bddda --- /dev/null +++ b/config/www/community/frigate-hass-card/startOfHour-b41e160a.js @@ -0,0 +1 @@ +import{c$ as t}from"./card-320adb66.js";function s(s){const n=t(s);return n.setMinutes(59,59,999),n}function n(s){const n=t(s);return n.setMinutes(0,0,0),n}export{s as e,n as s}; diff --git a/config/www/community/frigate-hass-card/startOfHour-b41e160a.js.gz b/config/www/community/frigate-hass-card/startOfHour-b41e160a.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..ca8fe320ec2c780950d905723e2b65c932046381 GIT binary patch literal 167 zcmV;Y09gMYiwFoHf?;O@|8sOQO0F9183c@fDMfaX! zC@xw^V^J)G;1N7TOjC%^iOftuD7m|d3)k{LeE#CWi`y%a?EVOjLCQ*L>-5PxTE@$H za?4|$^^-fhX7myh0{1-ZJ|PR>P3o}}BohK^4swr}C2)T=s@51YC@en~|6(Uq)41^d Vx^Ytr3fpk8hY#9*9z(ML007h-N7w)W literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/startOfHour-f3ea02fd.js b/config/www/community/frigate-hass-card/startOfHour-f3ea02fd.js new file mode 100644 index 00000000..4933b9de --- /dev/null +++ b/config/www/community/frigate-hass-card/startOfHour-f3ea02fd.js @@ -0,0 +1 @@ +import{d3 as t}from"./card-7cd05290.js";function s(s){const n=t(s);return n.setMinutes(59,59,999),n}function n(s){const n=t(s);return n.setMinutes(0,0,0),n}export{s as e,n as s}; diff --git a/config/www/community/frigate-hass-card/startOfHour-f3ea02fd.js.gz b/config/www/community/frigate-hass-card/startOfHour-f3ea02fd.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..1a023ba3f85002ba6011a6839e1067b5d24a2a9c GIT binary patch literal 166 zcmV;X09pSZiwFpC_*Q2E|8sOkKiFnGKC18NM-_slDnI@a4rAC=Pw?-xV=-BBiz)&O6r=^HkgZFayZ|8 zu=5qHdGX-ZLSAAb#UoFLPsF0=A?>(~QZgwrjPi_B1bLi6w*tVVss32{i?zC?bGU!q UxT~S2K3v`D1AAz}!LtAW0G&WiIRF3v literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/timeline-116cbe0a.js b/config/www/community/frigate-hass-card/timeline-116cbe0a.js new file mode 100644 index 00000000..3774fb2f --- /dev/null +++ b/config/www/community/frigate-hass-card/timeline-116cbe0a.js @@ -0,0 +1,13 @@ +import{_ as i,n as t,t as e,a,x as r,r as o,d2 as s}from"./card-769e2b91.js";import"./timeline-core-744686a3.js";import"./startOfHour-1a5ce3ae.js";import"./endOfDay-696ac7f4.js";import"./date-picker-8102261e.js";let n=class extends a{render(){return this.timelineConfig?r` + + + `:r``}static get styles(){return o(s)}};i([t({attribute:!1})],n.prototype,"hass",void 0),i([t({attribute:!1})],n.prototype,"viewManagerEpoch",void 0),i([t({attribute:!1})],n.prototype,"timelineConfig",void 0),i([t({attribute:!1})],n.prototype,"cameraManager",void 0),i([t({attribute:!1})],n.prototype,"cardWideConfig",void 0),n=i([e("frigate-card-timeline")],n);export{n as FrigateCardTimeline}; diff --git a/config/www/community/frigate-hass-card/timeline-116cbe0a.js.gz b/config/www/community/frigate-hass-card/timeline-116cbe0a.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..67546d9ed5820d8241f8f562788cd27c0e12743a GIT binary patch literal 557 zcmV+|0@D2-iwFo!dR%7$|8!|>Wo&6~Wi2r=He+ICFkvoga{!f;QE!_t5Xay9DVVhf zkbpL6Mw(O)m6jyb|@U?cm|C5rg&GbAh_>!ya6JM7;b=RbcLi&AOY zes{QW(3f=}pXvZU_t$lzeO(9TC;d8_D%GlB;icd@35L-K`ioI7{9)Jxn`U;4uz(yT z1VU*DhJ!(L6Y=XVV~A_IOFyZV4to5JfNKt20%UTR-ttWljUq0F>7cuvaDt#j@e_1# z)4S^Tqu#DT4&=yK_wtf>`^7cdcD6|LvC@Gau{uyt1Ar6pq!$F|^6S9PFrE z<5krJ-3PKF5ouhk2*$5^mG|h&u+)kaZA$Q2Z8hdUDNLLz&woL|sp-xt?kaRvX~!UE vRv!P)L#d2yF}UnmwOQT8o4~rc(VDC5 + + `:r``}static get styles(){return o(s)}};i([t({attribute:!1})],n.prototype,"hass",void 0),i([t({attribute:!1})],n.prototype,"viewManagerEpoch",void 0),i([t({attribute:!1})],n.prototype,"timelineConfig",void 0),i([t({attribute:!1})],n.prototype,"cameraManager",void 0),i([t({attribute:!1})],n.prototype,"cardWideConfig",void 0),n=i([e("frigate-card-timeline")],n);export{n as FrigateCardTimeline}; diff --git a/config/www/community/frigate-hass-card/timeline-3c6e5e5d.js.gz b/config/www/community/frigate-hass-card/timeline-3c6e5e5d.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..68aed8b2d8ca6db41922ddc677ee8ef6d8bf3e16 GIT binary patch literal 556 zcmV+{0@M8;iwFoHf?;O@|8!|>Wo&6~Wi2yfHf1$sHDoSoa{!f;QE!_t5Xay9DVVi~ zAOR)aO44L3n$k_%!_O)m6jyb|@U?cm|21R`L85)+5byLI39p?8xpO3$cMX5Ax ze>mJY=*cFKM@;~adz&WFo^FEjL`#`E)v92@x!^kS-&}+|Sw>Ot)37PF#q1}-0&am1sm(NTef6Zj>HU!eWV zQIuSUeB2T_kRxM}b7N1jAzQ{ce5-8)J#cM8Yb_nh&;(thb0t$;&Gh2TX`gqg##K|l zJ!J1VJHl~-%x)0B-nNCByxxC$KzRJhC0~L5SSpcq*zx*-q~A&>=&v5)*}7Otj`{!i zKqyICp~~Dm>f;1zj}ZpK{3y*M?MHbB`wdS zlEC6Pe&M)+LM1R`WzH)$VFq###JU~ccXm1dw_l!^#Y8U_we>uqaO`{>LsbrDZ$~vS zZe34ta7T7XL>iZCg2}64?cRGbD77L*RS6zztj4?tg^3fo-U|fBraMX8pU_Fto + + `:r``}static get styles(){return o(s)}};i([t({attribute:!1})],n.prototype,"hass",void 0),i([t({attribute:!1})],n.prototype,"viewManagerEpoch",void 0),i([t({attribute:!1})],n.prototype,"timelineConfig",void 0),i([t({attribute:!1})],n.prototype,"cameraManager",void 0),i([t({attribute:!1})],n.prototype,"cardWideConfig",void 0),n=i([e("frigate-card-timeline")],n);export{n as FrigateCardTimeline}; diff --git a/config/www/community/frigate-hass-card/timeline-62b72e11.js.gz b/config/www/community/frigate-hass-card/timeline-62b72e11.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..3bfb747c5aad11534915896aa58d8a9683e99d1f GIT binary patch literal 555 zcmV+`0@VEWo&6~Wi2)`VmC5nF)=P`a{!f;QE$^Q5Xay5DT2jA zBPH2d+Lg703UwfOKzjgb57R_l`_ddFc4S|-MpeE$PS((-47BFuF81#(=YRe(=7l!2 z{o!%zVW8?j0o4Hl9&GBw1f~u;kb^qfDls}|(YfG8hT?KK02mLWpO#IrY38;FbI4FZ zD71kv;Y)eZAHC@^mbjstG>|9wNW0WXrp$}xmF3TW@d5bHP5@m;HvK5 z9I|tq9pQOV>OK&^-ZqWuyxMO)AUuBMim$+YEVM{l?0Eg4q&rGm&|N*m({;X79JBxN zkpPoKo-{4BySucIYhr1%J7=&w{gP1@w)aK0Uuq=PiAUl+JmvwO@GO+U5M;etBXR6SG)U&hv!AbNYCe$_(t@j=E?4 zs+wZ&j+{tD2A6As$*X?l-v=rxj3!NG0RgM6#)1cp(!2137Ze3{@_j~jN004Z|7drp| literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/timeline-c30d9341.js b/config/www/community/frigate-hass-card/timeline-c30d9341.js new file mode 100644 index 00000000..4c1f4317 --- /dev/null +++ b/config/www/community/frigate-hass-card/timeline-c30d9341.js @@ -0,0 +1,13 @@ +import{_ as i,n as t,t as e,a,x as r,r as o,d2 as s}from"./card-45855f1f.js";import"./timeline-core-91693473.js";import"./startOfHour-5e3c525d.js";import"./endOfDay-24d35e3f.js";import"./date-picker-40111fdc.js";let n=class extends a{render(){return this.timelineConfig?r` + + + `:r``}static get styles(){return o(s)}};i([t({attribute:!1})],n.prototype,"hass",void 0),i([t({attribute:!1})],n.prototype,"viewManagerEpoch",void 0),i([t({attribute:!1})],n.prototype,"timelineConfig",void 0),i([t({attribute:!1})],n.prototype,"cameraManager",void 0),i([t({attribute:!1})],n.prototype,"cardWideConfig",void 0),n=i([e("frigate-card-timeline")],n);export{n as FrigateCardTimeline}; diff --git a/config/www/community/frigate-hass-card/timeline-c30d9341.js.gz b/config/www/community/frigate-hass-card/timeline-c30d9341.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..e1814d3c72cfd5b7de1517c1f2bc26e771f7ac59 GIT binary patch literal 555 zcmV+`0@VEWo&6~Wi4YfFl0G1G%+q}a{!f;QE!_t5Xay9DVVhf zkbssXY-=(WP3flXVd}#s^`WX3#~k4{u#tV~f+D{A3=K=jx~b*m4)eS7`Oja*vQnCM z-yLoo^ko~!r#67k{cW3QU$;T|>8OpS$+Rk2crLh3gGu}*jtspyCT$dQRCxUr|$l5JxgzSA~>c0HTWMoWisG+{sJLdgu*bG~#I8WH?G+FkC&x^G&&u9E<<) zp-_^vD$D^to>K4wN((+6y z2`ovHC(0F;Dup?#3SP4*Gf;pa*6;AHx6Apz{qn#pr+T?;tmg@ZWA$+i)diS?9hGam zrkSC8OI9QzjjIj8^hMNocfJfOtw>Q_fzMj2G5=m+>RfpK6ADgE_pIWfLeDB48049i t$N%$CDid1_E_+mM)^_n`u6deEn literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/timeline-c3ef17c4.js b/config/www/community/frigate-hass-card/timeline-c3ef17c4.js new file mode 100644 index 00000000..b06f73a2 --- /dev/null +++ b/config/www/community/frigate-hass-card/timeline-c3ef17c4.js @@ -0,0 +1,13 @@ +import{_ as i,n as t,t as e,a,x as r,r as o,d2 as s}from"./card-09c4bade.js";import"./timeline-core-b390cfa1.js";import"./startOfHour-7a3519fb.js";import"./endOfDay-8be4da1b.js";import"./date-picker-3dacab82.js";let n=class extends a{render(){return this.timelineConfig?r` + + + `:r``}static get styles(){return o(s)}};i([t({attribute:!1})],n.prototype,"hass",void 0),i([t({attribute:!1})],n.prototype,"viewManagerEpoch",void 0),i([t({attribute:!1})],n.prototype,"timelineConfig",void 0),i([t({attribute:!1})],n.prototype,"cameraManager",void 0),i([t({attribute:!1})],n.prototype,"cardWideConfig",void 0),n=i([e("frigate-card-timeline")],n);export{n as FrigateCardTimeline}; diff --git a/config/www/community/frigate-hass-card/timeline-c3ef17c4.js.gz b/config/www/community/frigate-hass-card/timeline-c3ef17c4.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..c3041cf2442153411c08d5f2495dce97fdb0eecd GIT binary patch literal 554 zcmV+_0@eK=iwFo_dR%7$|8!|>Wo&6~Wi4YfWo9uqV>B*ma{!f;QE$^Q5Xay5DT2jA zBPCh84zad`3UwfOKzjgb57R^)`_ddFc4S|-MpeE$PS((-47BFuF81#(=YRe(7Ns_{ z{o!%zVW65o0W|>v9&DP#1f~f(kQYs~b!v3MqI1EG42KhOnQ#fwPs?W5Hgj8q1>~q8 z6xu+Tj3+~p@=>3$#0}k~pY_^=Z~6GmXp$y<0+hT-uXz<-C2%SE=xAGVg0MvK3rskc zT=3-Tq9t-5PsJkV)}3NQu8sBh*0=~};Jbv@MtPK>jk-Y>TBW#}o8_6;KJQY4tEPW@ z$lh^wgy%(>`#}79+cs+QdcXC6@c5N0z5?^H)FSJ!kG27Z$+I{FqVTkw)6m?Kq#Emzf_ zR|Gq~VRB0Gu@&JOBUy literal 0 HcmV?d00001 diff --git a/config/www/community/frigate-hass-card/timeline-core-744686a3.js b/config/www/community/frigate-hass-card/timeline-core-744686a3.js new file mode 100644 index 00000000..639f06f2 --- /dev/null +++ b/config/www/community/frigate-hass-card/timeline-core-744686a3.js @@ -0,0 +1,143 @@ +import{d3 as t,dM as e,dN as n,d4 as o,dO as s,dP as r,db as a,df as h,dQ as l,dR as d,_ as c,n as u,t as p,cW as m,b as f,a as g,x as v,cR as y,dS as b,dh as w,l as _,cV as x,dT as k,dU as S,dV as D,c$ as C,dW as T,dg as E,dX as O,da as M,d6 as P,d8 as I,cI as A,dn as N,dY as R,dZ as F,i as L,s as j,r as Y}from"./card-769e2b91.js";import{s as z,e as H}from"./startOfHour-1a5ce3ae.js";import{e as G}from"./endOfDay-696ac7f4.js";import"./date-picker-8102261e.js";var W={exports:{}};!function(t){function e(t){if(t)return function(t){for(var i in e.prototype)t[i]=e.prototype[i];return t}(t)}W.exports=e,e.prototype.on=e.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks["$"+t]=this._callbacks["$"+t]||[]).push(e),this},e.prototype.once=function(t,e){function i(){this.off(t,i),e.apply(this,arguments)}return i.fn=e,this.on(t,i),this},e.prototype.off=e.prototype.removeListener=e.prototype.removeAllListeners=e.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i,n=this._callbacks["$"+t];if(!n)return this;if(1==arguments.length)return delete this._callbacks["$"+t],this;for(var o=0;o-1}var At=function(){function t(t,e){this.manager=t,this.set(e)}var e=t.prototype;return e.set=function(t){t===ot&&(t=this.compute()),nt&&this.manager.element.style&&dt[t]&&(this.manager.element.style[it]=t),this.actions=t.toLowerCase().trim()},e.update=function(){this.set(this.manager.options.touchAction)},e.compute=function(){var t=[];return Mt(this.manager.recognizers,(function(e){Pt(e.options.enable,[e])&&(t=t.concat(e.getTouchAction()))})),function(t){if(It(t,at))return at;var e=It(t,ht),i=It(t,lt);return e&&i?at:e||i?e?ht:lt:It(t,rt)?rt:st}(t.join(" "))},e.preventDefaults=function(t){var e=t.srcEvent,i=t.offsetDirection;if(this.manager.session.prevented)e.preventDefault();else{var n=this.actions,o=It(n,at)&&!dt[at],s=It(n,lt)&&!dt[lt],r=It(n,ht)&&!dt[ht];if(o){var a=1===t.pointers.length,h=t.distance<2,l=t.deltaTime<250;if(a&&h&&l)return}if(!r||!s)return o||s&&i&Dt||r&&i&Ct?this.preventSrc(e):void 0}},e.preventSrc=function(t){this.manager.session.prevented=!0,t.preventDefault()},t}();function Nt(t,e){for(;t;){if(t===e)return!0;t=t.parentNode}return!1}function Rt(t){var e=t.length;if(1===e)return{x:K(t[0].clientX),y:K(t[0].clientY)};for(var i=0,n=0,o=0;o=J(e)?t<0?_t:xt:e<0?kt:St}function zt(t,e,i){return{x:e/t||0,y:i/t||0}}function Ht(t,e){var i=t.session,n=e.pointers,o=n.length;i.firstInput||(i.firstInput=Ft(e)),o>1&&!i.firstMultiple?i.firstMultiple=Ft(e):1===o&&(i.firstMultiple=!1);var s=i.firstInput,r=i.firstMultiple,a=r?r.center:s.center,h=e.center=Rt(n);e.timeStamp=tt(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=jt(a,h),e.distance=Lt(a,h),function(t,e){var i=e.center,n=t.offsetDelta||{},o=t.prevDelta||{},s=t.prevInput||{};e.eventType!==vt&&s.eventType!==yt||(o=t.prevDelta={x:s.deltaX||0,y:s.deltaY||0},n=t.offsetDelta={x:i.x,y:i.y}),e.deltaX=o.x+(i.x-n.x),e.deltaY=o.y+(i.y-n.y)}(i,e),e.offsetDirection=Yt(e.deltaX,e.deltaY);var l,d,c=zt(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=c.x,e.overallVelocityY=c.y,e.overallVelocity=J(c.x)>J(c.y)?c.x:c.y,e.scale=r?(l=r.pointers,Lt((d=n)[0],d[1],Ot)/Lt(l[0],l[1],Ot)):1,e.rotation=r?function(t,e){return jt(e[1],e[0],Ot)+jt(t[1],t[0],Ot)}(r.pointers,n):0,e.maxPointers=i.prevInput?e.pointers.length>i.prevInput.maxPointers?e.pointers.length:i.prevInput.maxPointers:e.pointers.length,function(t,e){var i,n,o,s,r=t.lastInterval||e,a=e.timeStamp-r.timeStamp;if(e.eventType!==bt&&(a>gt||void 0===r.velocity)){var h=e.deltaX-r.deltaX,l=e.deltaY-r.deltaY,d=zt(a,h,l);n=d.x,o=d.y,i=J(d.x)>J(d.y)?d.x:d.y,s=Yt(h,l),t.lastInterval=e}else i=r.velocity,n=r.velocityX,o=r.velocityY,s=r.direction;e.velocity=i,e.velocityX=n,e.velocityY=o,e.direction=s}(i,e);var u,p=t.element,m=e.srcEvent;Nt(u=m.composedPath?m.composedPath()[0]:m.path?m.path[0]:m.target,p)&&(p=u),e.target=p}function Gt(t,e,i){var n=i.pointers.length,o=i.changedPointers.length,s=e&vt&&n-o==0,r=e&(yt|bt)&&n-o==0;i.isFirst=!!s,i.isFinal=!!r,s&&(t.session={}),i.eventType=e,Ht(t,i),t.emit("hammer.input",i),t.recognize(i),t.session.prevInput=i}function Wt(t){return t.trim().split(/\s+/g)}function Bt(t,e,i){Mt(Wt(e),(function(e){t.addEventListener(e,i,!1)}))}function Vt(t,e,i){Mt(Wt(e),(function(e){t.removeEventListener(e,i,!1)}))}function Ut(t){var e=t.ownerDocument||t;return e.defaultView||e.parentWindow||window}var $t=function(){function t(t,e){var i=this;this.manager=t,this.callback=e,this.element=t.element,this.target=t.options.inputTarget,this.domHandler=function(e){Pt(t.options.enable,[t])&&i.handler(e)},this.init()}var e=t.prototype;return e.handler=function(){},e.init=function(){this.evEl&&Bt(this.element,this.evEl,this.domHandler),this.evTarget&&Bt(this.target,this.evTarget,this.domHandler),this.evWin&&Bt(Ut(this.element),this.evWin,this.domHandler)},e.destroy=function(){this.evEl&&Vt(this.element,this.evEl,this.domHandler),this.evTarget&&Vt(this.target,this.evTarget,this.domHandler),this.evWin&&Vt(Ut(this.element),this.evWin,this.domHandler)},t}();function qt(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var n=0;ni[e]})):n.sort()),n}var ie={touchstart:vt,touchmove:2,touchend:yt,touchcancel:bt},ne=function(t){function e(){var i;return e.prototype.evTarget="touchstart touchmove touchend touchcancel",(i=t.apply(this,arguments)||this).targetIds={},i}return U(e,t),e.prototype.handler=function(t){var e=ie[t.type],i=oe.call(this,t,e);i&&this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:mt,srcEvent:t})},e}($t);function oe(t,e){var i,n,o=te(t.touches),s=this.targetIds;if(e&(2|vt)&&1===o.length)return s[o[0].identifier]=!0,[o,o];var r=te(t.changedTouches),a=[],h=this.target;if(n=o.filter((function(t){return Nt(t.target,h)})),e===vt)for(i=0;i-1&&n.splice(t,1)}),ae)}}function le(t,e){t&vt?(this.primaryTouch=e.changedPointers[0].identifier,he.call(this,e)):t&(yt|bt)&&he.call(this,e)}function de(t){for(var e=t.srcEvent.clientX,i=t.srcEvent.clientY,n=0;n-1&&this.requireFail.splice(e,1),this},e.hasRequireFailures=function(){return this.requireFail.length>0},e.canRecognizeWith=function(t){return!!this.simultaneous[t.id]},e.emit=function(t){var e=this,i=this.state;function n(i){e.manager.emit(i,t)}i<8&&n(e.options.event+ge(i)),n(e.options.event),t.additionalEvent&&n(t.additionalEvent),i>=8&&n(e.options.event+ge(i))},e.tryEmit=function(t){if(this.canEmit())return this.emit(t);this.state=pe},e.canEmit=function(){for(var t=0;te.threshold&&o&e.direction},i.attrTest=function(t){return be.prototype.attrTest.call(this,t)&&(2&this.state||!(2&this.state)&&this.directionTest(t))},i.emit=function(e){this.pX=e.deltaX,this.pY=e.deltaY;var i=we(e.direction);i&&(e.additionalEvent=this.options.event+i),t.prototype.emit.call(this,e)},e}(be),xe=function(t){function e(e){return void 0===e&&(e={}),t.call(this,V({event:"swipe",threshold:10,velocity:.3,direction:Dt|Ct,pointers:1},e))||this}U(e,t);var i=e.prototype;return i.getTouchAction=function(){return _e.prototype.getTouchAction.call(this)},i.attrTest=function(e){var i,n=this.options.direction;return n&(Dt|Ct)?i=e.overallVelocity:n&Dt?i=e.overallVelocityX:n&Ct&&(i=e.overallVelocityY),t.prototype.attrTest.call(this,e)&&n&e.offsetDirection&&e.distance>this.options.threshold&&e.maxPointers===this.options.pointers&&J(i)>this.options.velocity&&e.eventType&yt},i.emit=function(t){var e=we(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)},e}(be),ke=function(t){function e(e){return void 0===e&&(e={}),t.call(this,V({event:"pinch",threshold:0,pointers:2},e))||this}U(e,t);var i=e.prototype;return i.getTouchAction=function(){return[at]},i.attrTest=function(e){return t.prototype.attrTest.call(this,e)&&(Math.abs(e.scale-1)>this.options.threshold||2&this.state)},i.emit=function(e){if(1!==e.scale){var i=e.scale<1?"in":"out";e.additionalEvent=this.options.event+i}t.prototype.emit.call(this,e)},e}(be),Se=function(t){function e(e){return void 0===e&&(e={}),t.call(this,V({event:"rotate",threshold:0,pointers:2},e))||this}U(e,t);var i=e.prototype;return i.getTouchAction=function(){return[at]},i.attrTest=function(e){return t.prototype.attrTest.call(this,e)&&(Math.abs(e.rotation)>this.options.threshold||2&this.state)},e}(be),De=function(t){function e(e){var i;return void 0===e&&(e={}),(i=t.call(this,V({event:"press",pointers:1,time:251,threshold:9},e))||this)._timer=null,i._input=null,i}U(e,t);var i=e.prototype;return i.getTouchAction=function(){return[st]},i.process=function(t){var e=this,i=this.options,n=t.pointers.length===i.pointers,o=t.distancei.time;if(this._input=t,!o||!n||t.eventType&(yt|bt)&&!s)this.reset();else if(t.eventType&vt)this.reset(),this._timer=setTimeout((function(){e.state=8,e.tryEmit()}),i.time);else if(t.eventType&yt)return 8;return pe},i.reset=function(){clearTimeout(this._timer)},i.emit=function(t){8===this.state&&(t&&t.eventType&yt?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=tt(),this.manager.emit(this.options.event,this._input)))},e}(ve),Ce={domEvents:!1,touchAction:ot,enable:!0,inputTarget:null,inputClass:null,cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},Te=[[Se,{enable:!1}],[ke,{enable:!1},["rotate"]],[xe,{direction:Dt}],[_e,{direction:Dt},["swipe"]],[ye],[ye,{event:"doubletap",taps:2},["tap"]],[De]];function Ee(t,e){var i,n=t.element;n.style&&(Mt(t.options.cssProps,(function(o,s){i=et(n.style,s),e?(t.oldCssProps[i]=n.style[i],n.style[i]=o):n.style[i]=t.oldCssProps[i]||""})),e||(t.oldCssProps={}))}var Oe=function(){function t(t,e){var i,n=this;this.options=X({},Ce,e||{}),this.options.inputTarget=this.options.inputTarget||t,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=t,this.input=new((i=this).options.inputClass||(ut?Jt:pt?ne:ct?ce:re))(i,Gt),this.touchAction=new At(this,this.options.touchAction),Ee(this,!0),Mt(this.options.recognizers,(function(t){var e=n.add(new t[0](t[1]));t[2]&&e.recognizeWith(t[2]),t[3]&&e.requireFailure(t[3])}),this)}var e=t.prototype;return e.set=function(t){return X(this.options,t),t.touchAction&&this.touchAction.update(),t.inputTarget&&(this.input.destroy(),this.input.target=t.inputTarget,this.input.init()),this},e.stop=function(t){this.session.stopped=t?2:1},e.recognize=function(t){var e=this.session;if(!e.stopped){var i;this.touchAction.preventDefaults(t);var n=this.recognizers,o=e.curRecognizer;(!o||o&&8&o.state)&&(e.curRecognizer=null,o=null);for(var s=0;s\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=window.console&&(window.console.warn||window.console.log);return o&&o.call(window.console,n,i),t.apply(this,arguments)}}var Ne=Ae((function(t,e,i){for(var n=Object.keys(e),o=0;o2)return We(Ge(t[0],t[1]),...t.slice(2));const e=t[0],i=t[1];if(e instanceof Date&&i instanceof Date)return e.setTime(i.getTime()),e;for(const t of Reflect.ownKeys(i))Object.prototype.propertyIsEnumerable.call(i,t)&&(i[t]===ze?delete e[t]:null===e[t]||null===i[t]||"object"!=typeof e[t]||"object"!=typeof i[t]||Array.isArray(e[t])||Array.isArray(i[t])?e[t]=Be(i[t]):e[t]=We(e[t],i[t]));return e}function Be(t){return Array.isArray(t)?t.map((t=>Be(t))):"object"==typeof t&&null!==t?t instanceof Date?new Date(t.getTime()):We({},t):t}function Ve(t){for(const e of Object.keys(t))t[e]===ze?delete t[e]:"object"==typeof t[e]&&null!==t[e]&&Ve(t[e])}const Ue="undefined"!=typeof window?window.Hammer||Ye:function(){return function(){const t=()=>{};return{on:t,off:t,destroy:t,emit:t,get:()=>({set:t})}}()};function $e(t){this._cleanupQueue=[],this.active=!1,this._dom={container:t,overlay:document.createElement("div")},this._dom.overlay.classList.add("vis-overlay"),this._dom.container.appendChild(this._dom.overlay),this._cleanupQueue.push((()=>{this._dom.overlay.parentNode.removeChild(this._dom.overlay)}));const e=Ue(this._dom.overlay);e.on("tap",this._onTapOverlay.bind(this)),this._cleanupQueue.push((()=>{e.destroy()}));["tap","doubletap","press","pinch","pan","panstart","panmove","panend"].forEach((t=>{e.on(t,(t=>{t.srcEvent.stopPropagation()}))})),document&&document.body&&(this._onClick=e=>{(function(t,e){for(;t;){if(t===e)return!0;t=t.parentNode}return!1})(e.target,t)||this.deactivate()},document.body.addEventListener("click",this._onClick),this._cleanupQueue.push((()=>{document.body.removeEventListener("click",this._onClick)}))),this._escListener=t=>{("key"in t?"Escape"===t.key:27===t.keyCode)&&this.deactivate()}}B($e.prototype),$e.current=null,$e.prototype.destroy=function(){this.deactivate();for(const t of this._cleanupQueue.splice(0).reverse())t()},$e.prototype.activate=function(){$e.current&&$e.current.deactivate(),$e.current=this,this.active=!0,this._dom.overlay.style.display="none",this._dom.container.classList.add("vis-active"),this.emit("change"),this.emit("activate"),document.body.addEventListener("keydown",this._escListener)},$e.prototype.deactivate=function(){this.active=!1,this._dom.overlay.style.display="block",this._dom.container.classList.remove("vis-active"),document.body.removeEventListener("keydown",this._escListener),this.emit("change"),this.emit("deactivate")},$e.prototype._onTapOverlay=function(t){this.activate(),t.srcEvent.stopPropagation()};const qe=/^\/?Date\((-?\d+)/i,Xe=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,Qe=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,Ze=/^rgb\( *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *(1?\d{1,2}|2[0-4]\d|25[0-5]) *\)$/i,Ke=/^rgba\( *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *([01]|0?\.\d+) *\)$/i;function Je(t){return t instanceof Number||"number"==typeof t}function ti(t){return t instanceof String||"string"==typeof t}function ei(t){return"object"==typeof t&&null!==t}function ii(t,e,i,n){let o=!1;!0===n&&(o=null===e[i]&&void 0!==t[i]),o?delete t[i]:t[i]=e[i]}const ni=Object.assign;function oi(t,e,i=!1,n=!1){for(const o in e)(Object.prototype.hasOwnProperty.call(e,o)||!0===i)&&("object"==typeof e[o]&&null!==e[o]&&Object.getPrototypeOf(e[o])===Object.prototype?void 0===t[o]?t[o]=oi({},e[o],i):"object"==typeof t[o]&&null!==t[o]&&Object.getPrototypeOf(t[o])===Object.prototype?oi(t[o],e[o],i):ii(t,e,o,n):Array.isArray(e[o])?t[o]=e[o].slice():ii(t,e,o,n));return t}function si(t){const e=typeof t;return"object"===e?null===t?"null":t instanceof Boolean?"Boolean":t instanceof Number?"Number":t instanceof String?"String":Array.isArray(t)?"Array":t instanceof Date?"Date":"Object":"number"===e?"Number":"boolean"===e?"Boolean":"string"===e?"String":void 0===e?"undefined":e}function ri(t,e){return[...t,e]}function ai(t){return t.slice()}const hi=Object.values;const li={asBoolean:(t,e)=>("function"==typeof t&&(t=t()),null!=t?0!=t:e||null),asNumber:(t,e)=>("function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null),asString:(t,e)=>("function"==typeof t&&(t=t()),null!=t?String(t):e||null),asSize:(t,e)=>("function"==typeof t&&(t=t()),ti(t)?t:Je(t)?t+"px":e||null),asElement:(t,e)=>("function"==typeof t&&(t=t()),t||e||null)};function di(t){let e;switch(t.length){case 3:case 4:return e=Qe.exec(t),e?{r:parseInt(e[1]+e[1],16),g:parseInt(e[2]+e[2],16),b:parseInt(e[3]+e[3],16)}:null;case 6:case 7:return e=Xe.exec(t),e?{r:parseInt(e[1],16),g:parseInt(e[2],16),b:parseInt(e[3],16)}:null;default:return null}}function ci(t,e,i){return"#"+((1<<24)+(t<<16)+(e<<8)+i).toString(16).slice(1)}function ui(t,e,i){t/=255,e/=255,i/=255;const n=Math.min(t,Math.min(e,i)),o=Math.max(t,Math.max(e,i));if(n===o)return{h:0,s:0,v:n};return{h:60*((t===n?3:i===n?1:5)-(t===n?e-i:i===n?t-e:i-t)/(o-n))/360,s:(o-n)/o,v:o}}function pi(t){const e=document.createElement("div"),i={};e.style.cssText=t;for(let t=0;tt,easeInQuad:t=>t*t,easeOutQuad:t=>t*(2-t),easeInOutQuad:t=>t<.5?2*t*t:(4-2*t)*t-1,easeInCubic:t=>t*t*t,easeOutCubic:t=>--t*t*t+1,easeInOutCubic:t=>t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1,easeInQuart:t=>t*t*t*t,easeOutQuart:t=>1- --t*t*t*t,easeInOutQuart:t=>t<.5?8*t*t*t*t:1-8*--t*t*t*t,easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>1+--t*t*t*t*t,easeInOutQuint:t=>t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t};const xi={black:"#000000",navy:"#000080",darkblue:"#00008B",mediumblue:"#0000CD",blue:"#0000FF",darkgreen:"#006400",green:"#008000",teal:"#008080",darkcyan:"#008B8B",deepskyblue:"#00BFFF",darkturquoise:"#00CED1",mediumspringgreen:"#00FA9A",lime:"#00FF00",springgreen:"#00FF7F",aqua:"#00FFFF",cyan:"#00FFFF",midnightblue:"#191970",dodgerblue:"#1E90FF",lightseagreen:"#20B2AA",forestgreen:"#228B22",seagreen:"#2E8B57",darkslategray:"#2F4F4F",limegreen:"#32CD32",mediumseagreen:"#3CB371",turquoise:"#40E0D0",royalblue:"#4169E1",steelblue:"#4682B4",darkslateblue:"#483D8B",mediumturquoise:"#48D1CC",indigo:"#4B0082",darkolivegreen:"#556B2F",cadetblue:"#5F9EA0",cornflowerblue:"#6495ED",mediumaquamarine:"#66CDAA",dimgray:"#696969",slateblue:"#6A5ACD",olivedrab:"#6B8E23",slategray:"#708090",lightslategray:"#778899",mediumslateblue:"#7B68EE",lawngreen:"#7CFC00",chartreuse:"#7FFF00",aquamarine:"#7FFFD4",maroon:"#800000",purple:"#800080",olive:"#808000",gray:"#808080",skyblue:"#87CEEB",lightskyblue:"#87CEFA",blueviolet:"#8A2BE2",darkred:"#8B0000",darkmagenta:"#8B008B",saddlebrown:"#8B4513",darkseagreen:"#8FBC8F",lightgreen:"#90EE90",mediumpurple:"#9370D8",darkviolet:"#9400D3",palegreen:"#98FB98",darkorchid:"#9932CC",yellowgreen:"#9ACD32",sienna:"#A0522D",brown:"#A52A2A",darkgray:"#A9A9A9",lightblue:"#ADD8E6",greenyellow:"#ADFF2F",paleturquoise:"#AFEEEE",lightsteelblue:"#B0C4DE",powderblue:"#B0E0E6",firebrick:"#B22222",darkgoldenrod:"#B8860B",mediumorchid:"#BA55D3",rosybrown:"#BC8F8F",darkkhaki:"#BDB76B",silver:"#C0C0C0",mediumvioletred:"#C71585",indianred:"#CD5C5C",peru:"#CD853F",chocolate:"#D2691E",tan:"#D2B48C",lightgrey:"#D3D3D3",palevioletred:"#D87093",thistle:"#D8BFD8",orchid:"#DA70D6",goldenrod:"#DAA520",crimson:"#DC143C",gainsboro:"#DCDCDC",plum:"#DDA0DD",burlywood:"#DEB887",lightcyan:"#E0FFFF",lavender:"#E6E6FA",darksalmon:"#E9967A",violet:"#EE82EE",palegoldenrod:"#EEE8AA",lightcoral:"#F08080",khaki:"#F0E68C",aliceblue:"#F0F8FF",honeydew:"#F0FFF0",azure:"#F0FFFF",sandybrown:"#F4A460",wheat:"#F5DEB3",beige:"#F5F5DC",whitesmoke:"#F5F5F5",mintcream:"#F5FFFA",ghostwhite:"#F8F8FF",salmon:"#FA8072",antiquewhite:"#FAEBD7",linen:"#FAF0E6",lightgoldenrodyellow:"#FAFAD2",oldlace:"#FDF5E6",red:"#FF0000",fuchsia:"#FF00FF",magenta:"#FF00FF",deeppink:"#FF1493",orangered:"#FF4500",tomato:"#FF6347",hotpink:"#FF69B4",coral:"#FF7F50",darkorange:"#FF8C00",lightsalmon:"#FFA07A",orange:"#FFA500",lightpink:"#FFB6C1",pink:"#FFC0CB",gold:"#FFD700",peachpuff:"#FFDAB9",navajowhite:"#FFDEAD",moccasin:"#FFE4B5",bisque:"#FFE4C4",mistyrose:"#FFE4E1",blanchedalmond:"#FFEBCD",papayawhip:"#FFEFD5",lavenderblush:"#FFF0F5",seashell:"#FFF5EE",cornsilk:"#FFF8DC",lemonchiffon:"#FFFACD",floralwhite:"#FFFAF0",snow:"#FFFAFA",yellow:"#FFFF00",lightyellow:"#FFFFE0",ivory:"#FFFFF0",white:"#FFFFFF"};let ki=class{constructor(t=1){this.pixelRatio=t,this.generated=!1,this.centerCoordinates={x:144.5,y:144.5},this.r=289*.49,this.color={r:255,g:255,b:255,a:1},this.hueCircle=void 0,this.initialColor={r:255,g:255,b:255,a:1},this.previousColor=void 0,this.applied=!1,this.updateCallback=()=>{},this.closeCallback=()=>{},this._create()}insertTo(t){void 0!==this.hammer&&(this.hammer.destroy(),this.hammer=void 0),this.container=t,this.container.appendChild(this.frame),this._bindHammer(),this._setSize()}setUpdateCallback(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker update callback is not a function.");this.updateCallback=t}setCloseCallback(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker closing callback is not a function.");this.closeCallback=t}_isColorString(t){if("string"==typeof t)return xi[t]}setColor(t,e=!0){if("none"===t)return;let i;const n=this._isColorString(t);if(void 0!==n&&(t=n),!0===ti(t)){if(!0===yi(t)){const e=t.substr(4).substr(0,t.length-5).split(",");i={r:e[0],g:e[1],b:e[2],a:1}}else if(!0===bi(t)){const e=t.substr(5).substr(0,t.length-6).split(",");i={r:e[0],g:e[1],b:e[2],a:e[3]}}else if(!0===vi(t)){const e=di(t);i={r:e.r,g:e.g,b:e.b,a:1}}}else if(t instanceof Object&&void 0!==t.r&&void 0!==t.g&&void 0!==t.b){const e=void 0!==t.a?t.a:"1.0";i={r:t.r,g:t.g,b:t.b,a:e}}if(void 0===i)throw new Error("Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: "+JSON.stringify(t));this._setColor(i,e)}show(){void 0!==this.closeCallback&&(this.closeCallback(),this.closeCallback=void 0),this.applied=!1,this.frame.style.display="block",this._generateHueCircle()}_hide(t=!0){!0===t&&(this.previousColor=Object.assign({},this.color)),!0===this.applied&&this.updateCallback(this.initialColor),this.frame.style.display="none",setTimeout((()=>{void 0!==this.closeCallback&&(this.closeCallback(),this.closeCallback=void 0)}),0)}_save(){this.updateCallback(this.color),this.applied=!1,this._hide()}_apply(){this.applied=!0,this.updateCallback(this.color),this._updatePicker(this.color)}_loadLast(){void 0!==this.previousColor?this.setColor(this.previousColor,!1):alert("There is no last color to load...")}_setColor(t,e=!0){!0===e&&(this.initialColor=Object.assign({},t)),this.color=t;const i=ui(t.r,t.g,t.b),n=2*Math.PI,o=this.r*i.s,s=this.centerCoordinates.x+o*Math.sin(n*i.h),r=this.centerCoordinates.y+o*Math.cos(n*i.h);this.colorPickerSelector.style.left=s-.5*this.colorPickerSelector.clientWidth+"px",this.colorPickerSelector.style.top=r-.5*this.colorPickerSelector.clientHeight+"px",this._updatePicker(t)}_setOpacity(t){this.color.a=t/100,this._updatePicker(this.color)}_setBrightness(t){const e=ui(this.color.r,this.color.g,this.color.b);e.v=t/100;const i=mi(e.h,e.s,e.v);i.a=this.color.a,this.color=i,this._updatePicker()}_updatePicker(t=this.color){const e=ui(t.r,t.g,t.b),i=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(i.webkitBackingStorePixelRatio||i.mozBackingStorePixelRatio||i.msBackingStorePixelRatio||i.oBackingStorePixelRatio||i.backingStorePixelRatio||1)),i.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);const n=this.colorPickerCanvas.clientWidth,o=this.colorPickerCanvas.clientHeight;i.clearRect(0,0,n,o),i.putImageData(this.hueCircle,0,0),i.fillStyle="rgba(0,0,0,"+(1-e.v)+")",i.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),i.fill(),this.brightnessRange.value=100*e.v,this.opacityRange.value=100*t.a,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}_setSize(){this.colorPickerCanvas.style.width="100%",this.colorPickerCanvas.style.height="100%",this.colorPickerCanvas.width=289*this.pixelRatio,this.colorPickerCanvas.height=289*this.pixelRatio}_create(){if(this.frame=document.createElement("div"),this.frame.className="vis-color-picker",this.colorPickerDiv=document.createElement("div"),this.colorPickerSelector=document.createElement("div"),this.colorPickerSelector.className="vis-selector",this.colorPickerDiv.appendChild(this.colorPickerSelector),this.colorPickerCanvas=document.createElement("canvas"),this.colorPickerDiv.appendChild(this.colorPickerCanvas),this.colorPickerCanvas.getContext){const t=this.colorPickerCanvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1),this.colorPickerCanvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{const t=document.createElement("DIV");t.style.color="red",t.style.fontWeight="bold",t.style.padding="10px",t.innerText="Error: your browser does not support HTML canvas",this.colorPickerCanvas.appendChild(t)}this.colorPickerDiv.className="vis-color",this.opacityDiv=document.createElement("div"),this.opacityDiv.className="vis-opacity",this.brightnessDiv=document.createElement("div"),this.brightnessDiv.className="vis-brightness",this.arrowDiv=document.createElement("div"),this.arrowDiv.className="vis-arrow",this.opacityRange=document.createElement("input");try{this.opacityRange.type="range",this.opacityRange.min="0",this.opacityRange.max="100"}catch(t){}this.opacityRange.value="100",this.opacityRange.className="vis-range",this.brightnessRange=document.createElement("input");try{this.brightnessRange.type="range",this.brightnessRange.min="0",this.brightnessRange.max="100"}catch(t){}this.brightnessRange.value="100",this.brightnessRange.className="vis-range",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);const t=this;this.opacityRange.onchange=function(){t._setOpacity(this.value)},this.opacityRange.oninput=function(){t._setOpacity(this.value)},this.brightnessRange.onchange=function(){t._setBrightness(this.value)},this.brightnessRange.oninput=function(){t._setBrightness(this.value)},this.brightnessLabel=document.createElement("div"),this.brightnessLabel.className="vis-label vis-brightness",this.brightnessLabel.innerText="brightness:",this.opacityLabel=document.createElement("div"),this.opacityLabel.className="vis-label vis-opacity",this.opacityLabel.innerText="opacity:",this.newColorDiv=document.createElement("div"),this.newColorDiv.className="vis-new-color",this.newColorDiv.innerText="new",this.initialColorDiv=document.createElement("div"),this.initialColorDiv.className="vis-initial-color",this.initialColorDiv.innerText="initial",this.cancelButton=document.createElement("div"),this.cancelButton.className="vis-button vis-cancel",this.cancelButton.innerText="cancel",this.cancelButton.onclick=this._hide.bind(this,!1),this.applyButton=document.createElement("div"),this.applyButton.className="vis-button vis-apply",this.applyButton.innerText="apply",this.applyButton.onclick=this._apply.bind(this),this.saveButton=document.createElement("div"),this.saveButton.className="vis-button vis-save",this.saveButton.innerText="save",this.saveButton.onclick=this._save.bind(this),this.loadButton=document.createElement("div"),this.loadButton.className="vis-button vis-load",this.loadButton.innerText="load last",this.loadButton.onclick=this._loadLast.bind(this),this.frame.appendChild(this.colorPickerDiv),this.frame.appendChild(this.arrowDiv),this.frame.appendChild(this.brightnessLabel),this.frame.appendChild(this.brightnessDiv),this.frame.appendChild(this.opacityLabel),this.frame.appendChild(this.opacityDiv),this.frame.appendChild(this.newColorDiv),this.frame.appendChild(this.initialColorDiv),this.frame.appendChild(this.cancelButton),this.frame.appendChild(this.applyButton),this.frame.appendChild(this.saveButton),this.frame.appendChild(this.loadButton)}_bindHammer(){this.drag={},this.pinch={},this.hammer=new Ue(this.colorPickerCanvas),this.hammer.get("pinch").set({enable:!0}),this.hammer.on("hammer.input",(t=>{t.isFirst&&this._moveSelector(t)})),this.hammer.on("tap",(t=>{this._moveSelector(t)})),this.hammer.on("panstart",(t=>{this._moveSelector(t)})),this.hammer.on("panmove",(t=>{this._moveSelector(t)})),this.hammer.on("panend",(t=>{this._moveSelector(t)}))}_generateHueCircle(){if(!1===this.generated){const t=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)),t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);const e=this.colorPickerCanvas.clientWidth,i=this.colorPickerCanvas.clientHeight;let n,o,s,r;t.clearRect(0,0,e,i),this.centerCoordinates={x:.5*e,y:.5*i},this.r=.49*e;const a=2*Math.PI/360,h=1/360,l=1/this.r;let d;for(s=0;s<360;s++)for(r=0;r!1)){this.parent=t,this.changedOptions=[],this.container=e,this.allowCreation=!1,this.hideOption=o,this.options={},this.initialized=!1,this.popupCounter=0,this.defaultOptions={enabled:!1,filter:!0,container:void 0,showButton:!0},Object.assign(this.options,this.defaultOptions),this.configureOptions=i,this.moduleOptions={},this.domElements=[],this.popupDiv={},this.popupLimit=5,this.popupHistory={},this.colorPicker=new ki(n),this.wrapper=void 0}setOptions(t){if(void 0!==t){this.popupHistory={},this._removePopup();let e=!0;if("string"==typeof t)this.options.filter=t;else if(Array.isArray(t))this.options.filter=t.join();else if("object"==typeof t){if(null==t)throw new TypeError("options cannot be null");void 0!==t.container&&(this.options.container=t.container),void 0!==t.filter&&(this.options.filter=t.filter),void 0!==t.showButton&&(this.options.showButton=t.showButton),void 0!==t.enabled&&(e=t.enabled)}else"boolean"==typeof t?(this.options.filter=!0,e=t):"function"==typeof t&&(this.options.filter=t,e=!0);!1===this.options.filter&&(e=!1),this.options.enabled=e}this._clean()}setModuleOptions(t){this.moduleOptions=t,!0===this.options.enabled&&(this._clean(),void 0!==this.options.container&&(this.container=this.options.container),this._create())}_create(){this._clean(),this.changedOptions=[];const t=this.options.filter;let e=0,i=!1;for(const n in this.configureOptions)Object.prototype.hasOwnProperty.call(this.configureOptions,n)&&(this.allowCreation=!1,i=!1,"function"==typeof t?(i=t(n,[]),i=i||this._handleObject(this.configureOptions[n],[n],!0)):!0!==t&&-1===t.indexOf(n)||(i=!0),!1!==i&&(this.allowCreation=!0,e>0&&this._makeItem([]),this._makeHeader(n),this._handleObject(this.configureOptions[n],[n])),e++);this._makeButton(),this._push()}_push(){this.wrapper=document.createElement("div"),this.wrapper.className="vis-configuration-wrapper",this.container.appendChild(this.wrapper);for(let t=0;t{i.appendChild(t)})),this.domElements.push(i),this.domElements.length}return 0}_makeHeader(t){const e=document.createElement("div");e.className="vis-configuration vis-config-header",e.innerText=t,this._makeItem([],e)}_makeLabel(t,e,i=!1){const n=document.createElement("div");if(n.className="vis-configuration vis-config-label vis-config-s"+e.length,!0===i){for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(Si("i","b",t))}else n.innerText=t+":";return n}_makeDropdown(t,e,i){const n=document.createElement("select");n.className="vis-configuration vis-config-select";let o=0;void 0!==e&&-1!==t.indexOf(e)&&(o=t.indexOf(e));for(let e=0;es&&1!==s&&(a.max=Math.ceil(e*t),l=a.max,h="range increased"),a.value=e}else a.value=n;const d=document.createElement("input");d.className="vis-configuration vis-config-rangeinput",d.value=a.value;const c=this;a.onchange=function(){d.value=this.value,c._update(Number(this.value),i)},a.oninput=function(){d.value=this.value};const u=this._makeLabel(i[i.length-1],i),p=this._makeItem(i,u,a,d);""!==h&&this.popupHistory[p]!==l&&(this.popupHistory[p]=l,this._setupPopup(h,p))}_makeButton(){if(!0===this.options.showButton){const t=document.createElement("div");t.className="vis-configuration vis-config-button",t.innerText="generate options",t.onclick=()=>{this._printOptions()},t.onmouseover=()=>{t.className="vis-configuration vis-config-button hover"},t.onmouseout=()=>{t.className="vis-configuration vis-config-button"},this.optionsContainer=document.createElement("div"),this.optionsContainer.className="vis-configuration vis-config-option-container",this.domElements.push(this.optionsContainer),this.domElements.push(t)}}_setupPopup(t,e){if(!0===this.initialized&&!0===this.allowCreation&&this.popupCounter{this._removePopup()},this.popupCounter+=1,this.popupDiv={html:i,index:e}}}_removePopup(){void 0!==this.popupDiv.html&&(this.popupDiv.html.parentNode.removeChild(this.popupDiv.html),clearTimeout(this.popupDiv.hideTimeout),clearTimeout(this.popupDiv.deleteTimeout),this.popupDiv={})}_showPopupIfNeeded(){if(void 0!==this.popupDiv.html){const t=this.domElements[this.popupDiv.index].getBoundingClientRect();this.popupDiv.html.style.left=t.left+"px",this.popupDiv.html.style.top=t.top-30+"px",document.body.appendChild(this.popupDiv.html),this.popupDiv.hideTimeout=setTimeout((()=>{this.popupDiv.html.style.opacity=0}),1500),this.popupDiv.deleteTimeout=setTimeout((()=>{this._removePopup()}),1800)}}_makeCheckbox(t,e,i){const n=document.createElement("input");n.type="checkbox",n.className="vis-configuration vis-config-checkbox",n.checked=t,void 0!==e&&(n.checked=e,e!==t&&("object"==typeof t?e!==t.enabled&&this.changedOptions.push({path:i,value:e}):this.changedOptions.push({path:i,value:e})));const o=this;n.onchange=function(){o._update(this.checked,i)};const s=this._makeLabel(i[i.length-1],i);this._makeItem(i,s,n)}_makeTextInput(t,e,i){const n=document.createElement("input");n.type="text",n.className="vis-configuration vis-config-text",n.value=e,e!==t&&this.changedOptions.push({path:i,value:e});const o=this;n.onchange=function(){o._update(this.value,i)};const s=this._makeLabel(i[i.length-1],i);this._makeItem(i,s,n)}_makeColorField(t,e,i){const n=t[1],o=document.createElement("div");"none"!==(e=void 0===e?n:e)?(o.className="vis-configuration vis-config-colorBlock",o.style.backgroundColor=e):o.className="vis-configuration vis-config-colorBlock none",e=void 0===e?n:e,o.onclick=()=>{this._showColorPicker(e,o,i)};const s=this._makeLabel(i[i.length-1],i);this._makeItem(i,s,o)}_showColorPicker(t,e,i){e.onclick=function(){},this.colorPicker.insertTo(e),this.colorPicker.show(),this.colorPicker.setColor(t),this.colorPicker.setUpdateCallback((t=>{const n="rgba("+t.r+","+t.g+","+t.b+","+t.a+")";e.style.backgroundColor=n,this._update(n,i)})),this.colorPicker.setCloseCallback((()=>{e.onclick=()=>{this._showColorPicker(t,e,i)}}))}_handleObject(t,e=[],i=!1){let n=!1;const o=this.options.filter;let s=!1;for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)){n=!0;const a=t[r],h=ri(e,r);if("function"==typeof o&&(n=o(r,e),!1===n&&!Array.isArray(a)&&"string"!=typeof a&&"boolean"!=typeof a&&a instanceof Object&&(this.allowCreation=!1,n=this._handleObject(a,h,!0),this.allowCreation=!1===i)),!1!==n){s=!0;const t=this._getValue(h);if(Array.isArray(a))this._handleArray(a,t,h);else if("string"==typeof a)this._makeTextInput(a,t,h);else if("boolean"==typeof a)this._makeCheckbox(a,t,h);else if(a instanceof Object){if(!this.hideOption(e,r,this.moduleOptions))if(void 0!==a.enabled){const t=ri(h,"enabled"),e=this._getValue(t);if(!0===e){const t=this._makeLabel(r,h,!0);this._makeItem(h,t),s=this._handleObject(a,h)||s}else this._makeCheckbox(a,e,h)}else{const t=this._makeLabel(r,h,!0);this._makeItem(h,t),s=this._handleObject(a,h)||s}}else console.error("dont know how to handle",a,r,h)}}return s}_handleArray(t,e,i){"string"==typeof t[0]&&"color"===t[0]?(this._makeColorField(t,e,i),t[1]!==e&&this.changedOptions.push({path:i,value:e})):"string"==typeof t[0]?(this._makeDropdown(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:e})):"number"==typeof t[0]&&(this._makeRange(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:Number(e)}))}_update(t,e){const i=this._constructOptions(t,e);this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit&&this.parent.body.emitter.emit("configChange",i),this.initialized=!0,this.parent.setOptions(i)}_constructOptions(t,e,i={}){let n=i;t="false"!==(t="true"===t||t)&&t;for(let i=0;in-this.padding&&(i=!0),o=i?this.x-e:this.x,s=r?this.y-t:this.y}else s=this.y-t,s+t+this.padding>i&&(s=i-t-this.padding),sn&&(o=n-e-this.padding),os.distance?" in "+t.printLocation(o.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+t.printLocation(s.path,s.closestMatch,""):o.distance<=8?'. Did you mean "'+o.closestMatch+'"?'+t.printLocation(o.path,e):". Did you mean one of these: "+t.print(Object.keys(i))+t.printLocation(n,e),console.error('%cUnknown option detected: "'+e+'"'+r,Ti),Ci=!0}static findInOptions(e,i,n,o=!1){let s=1e9,r="",a=[];const h=e.toLowerCase();let l;for(const d in i){let c;if(void 0!==i[d].__type__&&!0===o){const o=t.findInOptions(e,i[d],ri(n,d));s>o.distance&&(r=o.closestMatch,a=o.path,s=o.distance,l=o.indexMatch)}else-1!==d.toLowerCase().indexOf(h)&&(l=d),c=t.levenshteinDistance(e,d),s>c&&(r=d,a=ai(n),s=c)}return{closestMatch:r,path:a,distance:s,indexMatch:l}}static printLocation(t,e,i="Problem value found at: \n"){let n="\n\n"+i+"options = {\n";for(let e=0;e>>0,n-=t,n*=t,t=n>>>0,n-=t,t+=4294967296*n}return 2.3283064365386963e-10*(t>>>0)}}();let i=e(" "),n=e(" "),o=e(" ");for(let s=0;s{const t=2091639*e+2.3283064365386963e-10*o;return e=i,i=n,n=t-(o=0|t)};return s.uint32=()=>4294967296*s(),s.fract53=()=>s()+11102230246251565e-32*(2097152*s()|0),s.algorithm="Alea",s.seed=t,s.version="0.9",s}(t.length?t:[Date.now()])},ColorPicker:Oi,Configurator:Mi,DELETE:ze,HSVToHex:fi,HSVToRGB:mi,Hammer:Pi,Popup:Ii,RGBToHSV:ui,RGBToHex:ci,VALIDATOR_PRINT_STYLE:Ai,Validator:Ni,addClassName:function(t,e){let i=t.className.split(" ");const n=e.split(" ");i=i.concat(n.filter((function(t){return!i.includes(t)}))),t.className=i.join(" ")},addCssText:function(t,e){const i=pi(e);for(const[e,n]of Object.entries(i))t.style.setProperty(e,n)},binarySearchCustom:function(t,e,i,n){let o=0,s=0,r=t.length-1;for(;s<=r&&o<1e4;){const a=Math.floor((s+r)/2),h=t[a],l=e(void 0===n?h[i]:h[i][n]);if(0==l)return a;-1==l?s=a+1:r=a-1,o++}return-1},binarySearchValue:function(t,e,i,n,o){let s,r,a,h,l=0,d=0,c=t.length-1;for(o=null!=o?o:function(t,e){return t==e?0:t0)return"before"==n?Math.max(0,h-1):h;if(o(r,e)<0&&o(a,e)>0)return"before"==n?h:Math.min(t.length-1,h+1);o(r,e)<0?d=h+1:c=h-1,l++}return-1},bridgeObject:wi,copyAndExtendArray:ri,copyArray:ai,deepExtend:oi,deepObjectAssign:Ge,easingFunctions:_i,equalArray:function(t,e){if(t.length!==e.length)return!1;for(let i=0,n=t.length;i0&&e(n,t[o-1])<0;o--)t[o]=t[o-1];t[o]=n}return t},isDate:function(t){if(t instanceof Date)return!0;if(ti(t)){if(qe.exec(t))return!0;if(!isNaN(Date.parse(t)))return!0}return!1},isNumber:Je,isObject:ei,isString:ti,isValidHex:vi,isValidRGB:yi,isValidRGBA:bi,mergeOptions:function(t,e,i,n={}){const o=function(t){return null!=t},s=function(t){return null!==t&&"object"==typeof t};if(!s(t))throw new Error("Parameter mergeTarget must be an object");if(!s(e))throw new Error("Parameter options must be an object");if(!o(i))throw new Error("Parameter option must have a value");if(!s(n))throw new Error("Parameter globalOptions must be an object");const r=e[i],a=s(n)&&!function(t){for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0}(n),h=a?n[i]:void 0,l=h?h.enabled:void 0;if(void 0===r)return;if("boolean"==typeof r)return s(t[i])||(t[i]={}),void(t[i].enabled=r);if(null===r&&!s(t[i])){if(!o(h))return;t[i]=Object.create(h)}if(!s(r))return;let d=!0;void 0!==r.enabled?d=r.enabled:void 0!==l&&(d=h.enabled),function(t,e,i){s(t[i])||(t[i]={});const n=e[i],o=t[i];for(const t in n)Object.prototype.hasOwnProperty.call(n,t)&&(o[t]=n[t])}(t,e,i),t[i].enabled=d},option:li,overrideOpacity:function(t,e){if(t.includes("rgba"))return t;if(t.includes("rgb")){const i=t.substr(t.indexOf("(")+1).replace(")","").split(",");return"rgba("+i[0]+","+i[1]+","+i[2]+","+e+")"}{const i=di(t);return null==i?t:"rgba("+i.r+","+i.g+","+i.b+","+e+")"}},parseColor:function(t,e){if(ti(t)){let e=t;if(yi(e)){const t=e.substr(4).substr(0,e.length-5).split(",").map((function(t){return parseInt(t)}));e=ci(t[0],t[1],t[2])}if(!0===vi(e)){const t=gi(e),i={h:t.h,s:.8*t.s,v:Math.min(1,1.02*t.v)},n={h:t.h,s:Math.min(1,1.25*t.s),v:.8*t.v},o=fi(n.h,n.s,n.v),s=fi(i.h,i.s,i.v);return{background:e,border:o,highlight:{background:s,border:o},hover:{background:s,border:o}}}return{background:e,border:e,highlight:{background:e,border:e},hover:{background:e,border:e}}}if(e){return{background:t.background||e.background,border:t.border||e.border,highlight:ti(t.highlight)?{border:t.highlight,background:t.highlight}:{background:t.highlight&&t.highlight.background||e.highlight.background,border:t.highlight&&t.highlight.border||e.highlight.border},hover:ti(t.hover)?{border:t.hover,background:t.hover}:{border:t.hover&&t.hover.border||e.hover.border,background:t.hover&&t.hover.background||e.hover.background}}}return{background:t.background||void 0,border:t.border||void 0,highlight:ti(t.highlight)?{border:t.highlight,background:t.highlight}:{background:t.highlight&&t.highlight.background||void 0,border:t.highlight&&t.highlight.border||void 0},hover:ti(t.hover)?{border:t.hover,background:t.hover}:{border:t.hover&&t.hover.border||void 0,background:t.hover&&t.hover.background||void 0}}},preventDefault:function(t){t||(t=window.event),t&&(t.preventDefault?t.preventDefault():t.returnValue=!1)},pureDeepObjectAssign:He,recursiveDOMDelete:function t(e){if(e)for(;!0===e.hasChildNodes();){const i=e.firstChild;i&&(t(i),e.removeChild(i))}},removeClassName:function(t,e){let i=t.className.split(" ");const n=e.split(" ");i=i.filter((function(t){return!n.includes(t)})),t.className=i.join(" ")},removeCssText:function(t,e){const i=pi(e);for(const e of Object.keys(i))t.style.removeProperty(e)},selectiveBridgeObject:function(t,e){if(null!==e&&"object"==typeof e){const i=Object.create(e);for(let n=0;n{e||(e=!0,requestAnimationFrame((()=>{e=!1,t()})))}},toArray:hi,topMost:function(t,e){let i;Array.isArray(e)||(e=[e]);for(const n of t)if(n){i=n[e[0]];for(let t=1;t1&&void 0!==arguments[1]?arguments[1]:0,i=(zi[t[e+0]]+zi[t[e+1]]+zi[t[e+2]]+zi[t[e+3]]+"-"+zi[t[e+4]]+zi[t[e+5]]+"-"+zi[t[e+6]]+zi[t[e+7]]+"-"+zi[t[e+8]]+zi[t[e+9]]+"-"+zi[t[e+10]]+zi[t[e+11]]+zi[t[e+12]]+zi[t[e+13]]+zi[t[e+14]]+zi[t[e+15]]).toLowerCase();if(!function(t){return"string"==typeof t&&Yi.test(t)}(i))throw TypeError("Stringified UUID is invalid");return i}function Wi(t,e,i){var n=(t=t||{}).random||(t.rng||ji)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,e){i=i||0;for(var o=0;o<16;++o)e[i+o]=n[o];return e}return Gi(n)} +/** + * vis-data + * http://visjs.org/ + * + * Manage unstructured data using DataSet. Add, update, and remove data, and listen for changes in the data. + * + * @version 7.1.9 + * @date 2023-11-24T17:53:34.179Z + * + * @copyright (c) 2011-2017 Almende B.V, http://almende.com + * @copyright (c) 2017-2019 visjs contributors, https://github.com/visjs + * + * @license + * vis.js is dual licensed under both + * + * 1. The Apache 2.0 License + * http://www.apache.org/licenses/LICENSE-2.0 + * + * and + * + * 2. The MIT License + * http://opensource.org/licenses/MIT + * + * vis.js may be distributed under either license. + */class Bi{_source;_transformers;_target;_listeners={add:this._add.bind(this),remove:this._remove.bind(this),update:this._update.bind(this)};constructor(t,e,i){this._source=t,this._transformers=e,this._target=i}all(){return this._target.update(this._transformItems(this._source.get())),this}start(){return this._source.on("add",this._listeners.add),this._source.on("remove",this._listeners.remove),this._source.on("update",this._listeners.update),this}stop(){return this._source.off("add",this._listeners.add),this._source.off("remove",this._listeners.remove),this._source.off("update",this._listeners.update),this}_transformItems(t){return this._transformers.reduce(((t,e)=>e(t)),t)}_add(t,e){null!=e&&this._target.add(this._transformItems(this._source.get(e.items)))}_update(t,e){null!=e&&this._target.update(this._transformItems(this._source.get(e.items)))}_remove(t,e){null!=e&&this._target.remove(this._transformItems(e.oldData))}}class Vi{_source;_transformers=[];constructor(t){this._source=t}filter(t){return this._transformers.push((e=>e.filter(t))),this}map(t){return this._transformers.push((e=>e.map(t))),this}flatMap(t){return this._transformers.push((e=>e.flatMap(t))),this}to(t){return new Bi(this._source,this._transformers,t)}}function Ui(t){return"string"==typeof t||"number"==typeof t}class $i{delay;max;_queue=[];_timeout=null;_extended=null;constructor(t){this.delay=null,this.max=1/0,this.setOptions(t)}setOptions(t){t&&void 0!==t.delay&&(this.delay=t.delay),t&&void 0!==t.max&&(this.max=t.max),this._flushIfNeeded()}static extend(t,e){const i=new $i(e);if(void 0!==t.flush)throw new Error("Target object already has a property flush");t.flush=()=>{i.flush()};const n=[{name:"flush",original:void 0}];if(e&&e.replace)for(let o=0;othis.max&&this.flush(),null!=this._timeout&&(clearTimeout(this._timeout),this._timeout=null),this.queue.length>0&&"number"==typeof this.delay&&(this._timeout=setTimeout((()=>{this.flush()}),this.delay))}flush(){this._queue.splice(0).forEach((t=>{t.fn.apply(t.context||t.fn,t.args||[])}))}}class qi{_subscribers={"*":[],add:[],remove:[],update:[]};_trigger(t,e,i){if("*"===t)throw new Error("Cannot trigger event *");[...this._subscribers[t],...this._subscribers["*"]].forEach((n=>{n(t,e,null!=i?i:null)}))}on(t,e){"function"==typeof e&&this._subscribers[t].push(e)}off(t,e){this._subscribers[t]=this._subscribers[t].filter((t=>t!==e))}subscribe=qi.prototype.on;unsubscribe=qi.prototype.off}class Xi{_pairs;constructor(t){this._pairs=t}*[Symbol.iterator](){for(const[t,e]of this._pairs)yield[t,e]}*entries(){for(const[t,e]of this._pairs)yield[t,e]}*keys(){for(const[t]of this._pairs)yield t}*values(){for(const[,t]of this._pairs)yield t}toIdArray(){return[...this._pairs].map((t=>t[0]))}toItemArray(){return[...this._pairs].map((t=>t[1]))}toEntryArray(){return[...this._pairs]}toObjectMap(){const t=Object.create(null);for(const[e,i]of this._pairs)t[e]=i;return t}toMap(){return new Map(this._pairs)}toIdSet(){return new Set(this.toIdArray())}toItemSet(){return new Set(this.toItemArray())}cache(){return new Xi([...this._pairs])}distinct(t){const e=new Set;for(const[i,n]of this._pairs)e.add(t(n,i));return e}filter(t){const e=this._pairs;return new Xi({*[Symbol.iterator](){for(const[i,n]of e)t(n,i)&&(yield[i,n])}})}forEach(t){for(const[e,i]of this._pairs)t(i,e)}map(t){const e=this._pairs;return new Xi({*[Symbol.iterator](){for(const[i,n]of e)yield[i,t(n,i)]}})}max(t){const e=this._pairs[Symbol.iterator]();let i=e.next();if(i.done)return null;let n=i.value[1],o=t(i.value[1],i.value[0]);for(;!(i=e.next()).done;){const[e,s]=i.value,r=t(s,e);r>o&&(o=r,n=s)}return n}min(t){const e=this._pairs[Symbol.iterator]();let i=e.next();if(i.done)return null;let n=i.value[1],o=t(i.value[1],i.value[0]);for(;!(i=e.next()).done;){const[e,s]=i.value,r=t(s,e);r[...this._pairs].sort((([e,i],[n,o])=>t(i,o,e,n)))[Symbol.iterator]()})}}class Qi extends qi{flush;length;get idProp(){return this._idProp}_options;_data;_idProp;_queue=null;constructor(t,e){super(),t&&!Array.isArray(t)&&(e=t,t=[]),this._options=e||{},this._data=new Map,this.length=0,this._idProp=this._options.fieldId||"id",t&&t.length&&this.add(t),this.setOptions(e)}setOptions(t){t&&void 0!==t.queue&&(!1===t.queue?this._queue&&(this._queue.destroy(),this._queue=null):(this._queue||(this._queue=$i.extend(this,{replace:["add","update","remove"]})),t.queue&&"object"==typeof t.queue&&this._queue.setOptions(t.queue)))}add(t,e){const i=[];let n;if(Array.isArray(t)){if(t.map((t=>t[this._idProp])).some((t=>this._data.has(t))))throw new Error("A duplicate id was found in the parameter array.");for(let e=0,o=t.length;e{const e=t[r];if(null!=e&&this._data.has(e)){const i=t,r=Object.assign({},this._data.get(e)),a=this._updateItem(i);n.push(a),s.push(i),o.push(r)}else{const e=this._addItem(t);i.push(e)}};if(Array.isArray(t))for(let e=0,i=t.length;e{const e=this._data.get(t[this._idProp]);if(null==e)throw new Error("Updating non-existent items is not allowed.");return{oldData:e,update:t}})).map((({oldData:t,update:e})=>{const i=t[this._idProp],n=He(t,e);return this._data.set(i,n),{id:i,oldData:t,updatedData:n}}));if(i.length){const t={items:i.map((t=>t.id)),oldData:i.map((t=>t.oldData)),data:i.map((t=>t.updatedData))};return this._trigger("update",t,e),t.items}return[]}get(t,e){let i,n,o;Ui(t)?(i=t,o=e):Array.isArray(t)?(n=t,o=e):o=t;const s=o&&"Object"===o.returnType?"Object":"Array",r=o&&o.filter,a=[];let h,l,d;if(null!=i)h=this._data.get(i),h&&r&&!r(h)&&(h=void 0);else if(null!=n)for(let t=0,e=n.length;t(e[i]=t[i],e)),{}):t}_sort(t,e){if("string"==typeof e){const i=e;t.sort(((t,e)=>{const n=t[i],o=e[i];return n>o?1:ni)&&(e=n,i=o)}return e||null}min(t){let e=null,i=null;for(const n of this._data.values()){const o=n[t];"number"==typeof o&&(null==i||os(t)&&r(t)),null==n?this._data.get(o):this._data.get(n,o)}getIds(t){if(this._data.length){const e=this._options.filter,i=null!=t?t.filter:null;let n;return n=i?e?t=>e(t)&&i(t):i:e,this._data.getIds({filter:n,order:t&&t.order})}return[]}forEach(t,e){if(this._data){const i=this._options.filter,n=e&&e.filter;let o;o=n?i?function(t){return i(t)&&n(t)}:n:i,this._data.forEach(t,{filter:o,order:e&&e.order})}}map(t,e){if(this._data){const i=this._options.filter,n=e&&e.filter;let o;return o=n?i?t=>i(t)&&n(t):n:i,this._data.map(t,{filter:o,order:e&&e.order})}return[]}getDataSet(){return this._data.getDataSet()}stream(t){return this._data.stream(t||{[Symbol.iterator]:this._ids.keys.bind(this._ids)})}dispose(){this._data?.off&&this._data.off("*",this._listener);const t="This data view has already been disposed of.",e={get:()=>{throw new Error(t)},set:()=>{throw new Error(t)},configurable:!1};for(const t of Reflect.ownKeys(Zi.prototype))Object.defineProperty(this,t,e)}_onEvent(t,e,i){if(!e||!e.items||!this._data)return;const n=e.items,o=[],s=[],r=[],a=[],h=[],l=[];switch(t){case"add":for(let t=0,e=n.length;t>>0;for(e=0;e0)for(i=0;i=0?i?"+":"":"-")+Math.pow(10,Math.max(0,o)).toString().substr(1)+n}var R=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,F=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,L={},j={};function Y(t,e,i,n){var o=n;"string"==typeof n&&(o=function(){return this[n]()}),t&&(j[t]=o),e&&(j[e[0]]=function(){return N(o.apply(this,arguments),e[1],e[2])}),i&&(j[i]=function(){return this.localeData().ordinal(o.apply(this,arguments),t)})}function z(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function H(t){var e,i,n=t.match(R);for(e=0,i=n.length;e=0&&F.test(t);)t=t.replace(F,n),F.lastIndex=0,i-=1;return t}var B={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function V(t){var e=this._longDateFormat[t],i=this._longDateFormat[t.toUpperCase()];return e||!i?e:(this._longDateFormat[t]=i.match(R).map((function(t){return"MMMM"===t||"MM"===t||"DD"===t||"dddd"===t?t.slice(1):t})).join(""),this._longDateFormat[t])}var U="Invalid date";function $(){return this._invalidDate}var q="%d",X=/\d{1,2}/;function Q(t){return this._ordinal.replace("%d",t)}var Z={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function K(t,e,i,n){var o=this._relativeTime[i];return E(o)?o(t,e,i,n):o.replace(/%d/i,t)}function J(t,e){var i=this._relativeTime[t>0?"future":"past"];return E(i)?i(e):i.replace(/%s/i,e)}var tt={D:"date",dates:"date",date:"date",d:"day",days:"day",day:"day",e:"weekday",weekdays:"weekday",weekday:"weekday",E:"isoWeekday",isoweekdays:"isoWeekday",isoweekday:"isoWeekday",DDD:"dayOfYear",dayofyears:"dayOfYear",dayofyear:"dayOfYear",h:"hour",hours:"hour",hour:"hour",ms:"millisecond",milliseconds:"millisecond",millisecond:"millisecond",m:"minute",minutes:"minute",minute:"minute",M:"month",months:"month",month:"month",Q:"quarter",quarters:"quarter",quarter:"quarter",s:"second",seconds:"second",second:"second",gg:"weekYear",weekyears:"weekYear",weekyear:"weekYear",GG:"isoWeekYear",isoweekyears:"isoWeekYear",isoweekyear:"isoWeekYear",w:"week",weeks:"week",week:"week",W:"isoWeek",isoweeks:"isoWeek",isoweek:"isoWeek",y:"year",years:"year",year:"year"};function et(t){return"string"==typeof t?tt[t]||tt[t.toLowerCase()]:void 0}function it(t){var e,i,n={};for(i in t)r(t,i)&&(e=et(i))&&(n[e]=t[i]);return n}var nt={date:9,day:11,weekday:11,isoWeekday:11,dayOfYear:4,hour:13,millisecond:16,minute:14,month:8,quarter:7,second:15,weekYear:1,isoWeekYear:1,week:5,isoWeek:5,year:1};function ot(t){var e,i=[];for(e in t)r(t,e)&&i.push({unit:e,priority:nt[e]});return i.sort((function(t,e){return t.priority-e.priority})),i}var st,rt=/\d/,at=/\d\d/,ht=/\d{3}/,lt=/\d{4}/,dt=/[+-]?\d{6}/,ct=/\d\d?/,ut=/\d\d\d\d?/,pt=/\d\d\d\d\d\d?/,mt=/\d{1,3}/,ft=/\d{1,4}/,gt=/[+-]?\d{1,6}/,vt=/\d+/,yt=/[+-]?\d+/,bt=/Z|[+-]\d\d:?\d\d/gi,wt=/Z|[+-]\d\d(?::?\d\d)?/gi,_t=/[+-]?\d+(\.\d{1,3})?/,xt=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,kt=/^[1-9]\d?/,St=/^([1-9]\d|\d)/;function Dt(t,e,i){st[t]=E(e)?e:function(t,n){return t&&i?i:e}}function Ct(t,e){return r(st,t)?st[t](e._strict,e._locale):new RegExp(Tt(t))}function Tt(t){return Et(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(t,e,i,n,o){return e||i||n||o})))}function Et(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Ot(t){return t<0?Math.ceil(t)||0:Math.floor(t)}function Mt(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=Ot(e)),i}st={};var Pt={};function It(t,e){var i,n,o=e;for("string"==typeof t&&(t=[t]),l(e)&&(o=function(t,i){i[e]=Mt(t)}),n=t.length,i=0;i68?1900:2e3)};var Ut,$t=Xt("FullYear",!0);function qt(){return Rt(this.year())}function Xt(t,e){return function(n){return null!=n?(Zt(this,t,n),i.updateOffset(this,e),this):Qt(this,t)}}function Qt(t,e){if(!t.isValid())return NaN;var i=t._d,n=t._isUTC;switch(e){case"Milliseconds":return n?i.getUTCMilliseconds():i.getMilliseconds();case"Seconds":return n?i.getUTCSeconds():i.getSeconds();case"Minutes":return n?i.getUTCMinutes():i.getMinutes();case"Hours":return n?i.getUTCHours():i.getHours();case"Date":return n?i.getUTCDate():i.getDate();case"Day":return n?i.getUTCDay():i.getDay();case"Month":return n?i.getUTCMonth():i.getMonth();case"FullYear":return n?i.getUTCFullYear():i.getFullYear();default:return NaN}}function Zt(t,e,i){var n,o,s,r,a;if(t.isValid()&&!isNaN(i)){switch(n=t._d,o=t._isUTC,e){case"Milliseconds":return void(o?n.setUTCMilliseconds(i):n.setMilliseconds(i));case"Seconds":return void(o?n.setUTCSeconds(i):n.setSeconds(i));case"Minutes":return void(o?n.setUTCMinutes(i):n.setMinutes(i));case"Hours":return void(o?n.setUTCHours(i):n.setHours(i));case"Date":return void(o?n.setUTCDate(i):n.setDate(i));case"FullYear":break;default:return}s=i,r=t.month(),a=29!==(a=t.date())||1!==r||Rt(s)?a:28,o?n.setUTCFullYear(s,r,a):n.setFullYear(s,r,a)}}function Kt(t){return E(this[t=et(t)])?this[t]():this}function Jt(t,e){if("object"==typeof t){var i,n=ot(t=it(t)),o=n.length;for(i=0;i=0?(a=new Date(t+400,e,i,n,o,s,r),isFinite(a.getFullYear())&&a.setFullYear(t)):a=new Date(t,e,i,n,o,s,r),a}function ye(t){var e,i;return t<100&&t>=0?((i=Array.prototype.slice.call(arguments))[0]=t+400,e=new Date(Date.UTC.apply(null,i)),isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t)):e=new Date(Date.UTC.apply(null,arguments)),e}function be(t,e,i){var n=7+e-i;return-(7+ye(t,0,n).getUTCDay()-e)%7+n-1}function we(t,e,i,n,o){var s,r,a=1+7*(e-1)+(7+i-n)%7+be(t,n,o);return a<=0?r=Vt(s=t-1)+a:a>Vt(t)?(s=t+1,r=a-Vt(t)):(s=t,r=a),{year:s,dayOfYear:r}}function _e(t,e,i){var n,o,s=be(t.year(),e,i),r=Math.floor((t.dayOfYear()-s-1)/7)+1;return r<1?n=r+xe(o=t.year()-1,e,i):r>xe(t.year(),e,i)?(n=r-xe(t.year(),e,i),o=t.year()+1):(o=t.year(),n=r),{week:n,year:o}}function xe(t,e,i){var n=be(t,e,i),o=be(t+1,e,i);return(Vt(t)-n+o)/7}function ke(t){return _e(t,this._week.dow,this._week.doy).week}Y("w",["ww",2],"wo","week"),Y("W",["WW",2],"Wo","isoWeek"),Dt("w",ct,kt),Dt("ww",ct,at),Dt("W",ct,kt),Dt("WW",ct,at),At(["w","ww","W","WW"],(function(t,e,i,n){e[n.substr(0,1)]=Mt(t)}));var Se={dow:0,doy:6};function De(){return this._week.dow}function Ce(){return this._week.doy}function Te(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function Ee(t){var e=_e(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function Oe(t,e){return"string"!=typeof t?t:isNaN(t)?"number"==typeof(t=e.weekdaysParse(t))?t:null:parseInt(t,10)}function Me(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}function Pe(t,e){return t.slice(e,7).concat(t.slice(0,e))}Y("d",0,"do","day"),Y("dd",0,0,(function(t){return this.localeData().weekdaysMin(this,t)})),Y("ddd",0,0,(function(t){return this.localeData().weekdaysShort(this,t)})),Y("dddd",0,0,(function(t){return this.localeData().weekdays(this,t)})),Y("e",0,0,"weekday"),Y("E",0,0,"isoWeekday"),Dt("d",ct),Dt("e",ct),Dt("E",ct),Dt("dd",(function(t,e){return e.weekdaysMinRegex(t)})),Dt("ddd",(function(t,e){return e.weekdaysShortRegex(t)})),Dt("dddd",(function(t,e){return e.weekdaysRegex(t)})),At(["dd","ddd","dddd"],(function(t,e,i,n){var o=i._locale.weekdaysParse(t,n,i._strict);null!=o?e.d=o:f(i).invalidWeekday=t})),At(["d","e","E"],(function(t,e,i,n){e[n]=Mt(t)}));var Ie="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Ae="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Ne="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Re=xt,Fe=xt,Le=xt;function je(t,e){var i=o(this._weekdays)?this._weekdays:this._weekdays[t&&!0!==t&&this._weekdays.isFormat.test(e)?"format":"standalone"];return!0===t?Pe(i,this._week.dow):t?i[t.day()]:i}function Ye(t){return!0===t?Pe(this._weekdaysShort,this._week.dow):t?this._weekdaysShort[t.day()]:this._weekdaysShort}function ze(t){return!0===t?Pe(this._weekdaysMin,this._week.dow):t?this._weekdaysMin[t.day()]:this._weekdaysMin}function He(t,e,i){var n,o,s,r=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],n=0;n<7;++n)s=p([2e3,1]).day(n),this._minWeekdaysParse[n]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[n]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[n]=this.weekdays(s,"").toLocaleLowerCase();return i?"dddd"===e?-1!==(o=Ut.call(this._weekdaysParse,r))?o:null:"ddd"===e?-1!==(o=Ut.call(this._shortWeekdaysParse,r))?o:null:-1!==(o=Ut.call(this._minWeekdaysParse,r))?o:null:"dddd"===e?-1!==(o=Ut.call(this._weekdaysParse,r))||-1!==(o=Ut.call(this._shortWeekdaysParse,r))||-1!==(o=Ut.call(this._minWeekdaysParse,r))?o:null:"ddd"===e?-1!==(o=Ut.call(this._shortWeekdaysParse,r))||-1!==(o=Ut.call(this._weekdaysParse,r))||-1!==(o=Ut.call(this._minWeekdaysParse,r))?o:null:-1!==(o=Ut.call(this._minWeekdaysParse,r))||-1!==(o=Ut.call(this._weekdaysParse,r))||-1!==(o=Ut.call(this._shortWeekdaysParse,r))?o:null}function Ge(t,e,i){var n,o,s;if(this._weekdaysParseExact)return He.call(this,t,e,i);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),n=0;n<7;n++){if(o=p([2e3,1]).day(n),i&&!this._fullWeekdaysParse[n]&&(this._fullWeekdaysParse[n]=new RegExp("^"+this.weekdays(o,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[n]=new RegExp("^"+this.weekdaysShort(o,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[n]=new RegExp("^"+this.weekdaysMin(o,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[n]||(s="^"+this.weekdays(o,"")+"|^"+this.weekdaysShort(o,"")+"|^"+this.weekdaysMin(o,""),this._weekdaysParse[n]=new RegExp(s.replace(".",""),"i")),i&&"dddd"===e&&this._fullWeekdaysParse[n].test(t))return n;if(i&&"ddd"===e&&this._shortWeekdaysParse[n].test(t))return n;if(i&&"dd"===e&&this._minWeekdaysParse[n].test(t))return n;if(!i&&this._weekdaysParse[n].test(t))return n}}function We(t){if(!this.isValid())return null!=t?this:NaN;var e=Qt(this,"Day");return null!=t?(t=Oe(t,this.localeData()),this.add(t-e,"d")):e}function Be(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function Ve(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=Me(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7}function Ue(t){return this._weekdaysParseExact?(r(this,"_weekdaysRegex")||Xe.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(r(this,"_weekdaysRegex")||(this._weekdaysRegex=Re),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)}function $e(t){return this._weekdaysParseExact?(r(this,"_weekdaysRegex")||Xe.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(r(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Fe),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function qe(t){return this._weekdaysParseExact?(r(this,"_weekdaysRegex")||Xe.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(r(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Le),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Xe(){function t(t,e){return e.length-t.length}var e,i,n,o,s,r=[],a=[],h=[],l=[];for(e=0;e<7;e++)i=p([2e3,1]).day(e),n=Et(this.weekdaysMin(i,"")),o=Et(this.weekdaysShort(i,"")),s=Et(this.weekdays(i,"")),r.push(n),a.push(o),h.push(s),l.push(n),l.push(o),l.push(s);r.sort(t),a.sort(t),h.sort(t),l.sort(t),this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Qe(){return this.hours()%12||12}function Ze(){return this.hours()||24}function Ke(t,e){Y(t,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)}))}function Je(t,e){return e._meridiemParse}function ti(t){return"p"===(t+"").toLowerCase().charAt(0)}Y("H",["HH",2],0,"hour"),Y("h",["hh",2],0,Qe),Y("k",["kk",2],0,Ze),Y("hmm",0,0,(function(){return""+Qe.apply(this)+N(this.minutes(),2)})),Y("hmmss",0,0,(function(){return""+Qe.apply(this)+N(this.minutes(),2)+N(this.seconds(),2)})),Y("Hmm",0,0,(function(){return""+this.hours()+N(this.minutes(),2)})),Y("Hmmss",0,0,(function(){return""+this.hours()+N(this.minutes(),2)+N(this.seconds(),2)})),Ke("a",!0),Ke("A",!1),Dt("a",Je),Dt("A",Je),Dt("H",ct,St),Dt("h",ct,kt),Dt("k",ct,kt),Dt("HH",ct,at),Dt("hh",ct,at),Dt("kk",ct,at),Dt("hmm",ut),Dt("hmmss",pt),Dt("Hmm",ut),Dt("Hmmss",pt),It(["H","HH"],Yt),It(["k","kk"],(function(t,e,i){var n=Mt(t);e[Yt]=24===n?0:n})),It(["a","A"],(function(t,e,i){i._isPm=i._locale.isPM(t),i._meridiem=t})),It(["h","hh"],(function(t,e,i){e[Yt]=Mt(t),f(i).bigHour=!0})),It("hmm",(function(t,e,i){var n=t.length-2;e[Yt]=Mt(t.substr(0,n)),e[zt]=Mt(t.substr(n)),f(i).bigHour=!0})),It("hmmss",(function(t,e,i){var n=t.length-4,o=t.length-2;e[Yt]=Mt(t.substr(0,n)),e[zt]=Mt(t.substr(n,2)),e[Ht]=Mt(t.substr(o)),f(i).bigHour=!0})),It("Hmm",(function(t,e,i){var n=t.length-2;e[Yt]=Mt(t.substr(0,n)),e[zt]=Mt(t.substr(n))})),It("Hmmss",(function(t,e,i){var n=t.length-4,o=t.length-2;e[Yt]=Mt(t.substr(0,n)),e[zt]=Mt(t.substr(n,2)),e[Ht]=Mt(t.substr(o))}));var ei=/[ap]\.?m?\.?/i,ii=Xt("Hours",!0);function ni(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}var oi,si={calendar:I,longDateFormat:B,invalidDate:U,ordinal:q,dayOfMonthOrdinalParse:X,relativeTime:Z,months:ie,monthsShort:ne,week:Se,weekdays:Ie,weekdaysMin:Ne,weekdaysShort:Ae,meridiemParse:ei},ri={},ai={};function hi(t,e){var i,n=Math.min(t.length,e.length);for(i=0;i0;){if(n=ui(o.slice(0,e).join("-")))return n;if(i&&i.length>=e&&hi(o,i)>=e-1)break;e--}s++}return oi}function ci(t){return!(!t||!t.match("^[^/\\\\]*$"))}function ui(t){var e=null;if(void 0===ri[t]&&Ji&&Ji.exports&&ci(t))try{e=oi._abbr,Ki("./locale/"+t),pi(e)}catch(e){ri[t]=null}return ri[t]}function pi(t,e){var i;return t&&((i=h(e)?gi(t):mi(t,e))?oi=i:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+t+" not found. Did you forget to load it?")),oi._abbr}function mi(t,e){if(null!==e){var i,n=si;if(e.abbr=t,null!=ri[t])T("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=ri[t]._config;else if(null!=e.parentLocale)if(null!=ri[e.parentLocale])n=ri[e.parentLocale]._config;else{if(null==(i=ui(e.parentLocale)))return ai[e.parentLocale]||(ai[e.parentLocale]=[]),ai[e.parentLocale].push({name:t,config:e}),null;n=i._config}return ri[t]=new P(M(n,e)),ai[t]&&ai[t].forEach((function(t){mi(t.name,t.config)})),pi(t),ri[t]}return delete ri[t],null}function fi(t,e){if(null!=e){var i,n,o=si;null!=ri[t]&&null!=ri[t].parentLocale?ri[t].set(M(ri[t]._config,e)):(null!=(n=ui(t))&&(o=n._config),e=M(o,e),null==n&&(e.abbr=t),(i=new P(e)).parentLocale=ri[t],ri[t]=i),pi(t)}else null!=ri[t]&&(null!=ri[t].parentLocale?(ri[t]=ri[t].parentLocale,t===pi()&&pi(t)):null!=ri[t]&&delete ri[t]);return ri[t]}function gi(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return oi;if(!o(t)){if(e=ui(t))return e;t=[t]}return di(t)}function vi(){return D(ri)}function yi(t){var e,i=t._a;return i&&-2===f(t).overflow&&(e=i[Lt]<0||i[Lt]>11?Lt:i[jt]<1||i[jt]>ee(i[Ft],i[Lt])?jt:i[Yt]<0||i[Yt]>24||24===i[Yt]&&(0!==i[zt]||0!==i[Ht]||0!==i[Gt])?Yt:i[zt]<0||i[zt]>59?zt:i[Ht]<0||i[Ht]>59?Ht:i[Gt]<0||i[Gt]>999?Gt:-1,f(t)._overflowDayOfYear&&(ejt)&&(e=jt),f(t)._overflowWeeks&&-1===e&&(e=Wt),f(t)._overflowWeekday&&-1===e&&(e=Bt),f(t).overflow=e),t}var bi=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,wi=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,_i=/Z|[+-]\d\d(?::?\d\d)?/,xi=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],ki=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Si=/^\/?Date\((-?\d+)/i,Di=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,Ci={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Ti(t){var e,i,n,o,s,r,a=t._i,h=bi.exec(a)||wi.exec(a),l=xi.length,d=ki.length;if(h){for(f(t).iso=!0,e=0,i=l;eVt(s)||0===t._dayOfYear)&&(f(t)._overflowDayOfYear=!0),i=ye(s,0,t._dayOfYear),t._a[Lt]=i.getUTCMonth(),t._a[jt]=i.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=r[e]=n[e];for(;e<7;e++)t._a[e]=r[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[Yt]&&0===t._a[zt]&&0===t._a[Ht]&&0===t._a[Gt]&&(t._nextDay=!0,t._a[Yt]=0),t._d=(t._useUTC?ye:ve).apply(null,r),o=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[Yt]=24),t._w&&void 0!==t._w.d&&t._w.d!==o&&(f(t).weekdayMismatch=!0)}}function ji(t){var e,i,n,o,s,r,a,h,l;null!=(e=t._w).GG||null!=e.W||null!=e.E?(s=1,r=4,i=Ri(e.GG,t._a[Ft],_e($i(),1,4).year),n=Ri(e.W,1),((o=Ri(e.E,1))<1||o>7)&&(h=!0)):(s=t._locale._week.dow,r=t._locale._week.doy,l=_e($i(),s,r),i=Ri(e.gg,t._a[Ft],l.year),n=Ri(e.w,l.week),null!=e.d?((o=e.d)<0||o>6)&&(h=!0):null!=e.e?(o=e.e+s,(e.e<0||e.e>6)&&(h=!0)):o=s),n<1||n>xe(i,s,r)?f(t)._overflowWeeks=!0:null!=h?f(t)._overflowWeekday=!0:(a=we(i,n,o,s,r),t._a[Ft]=a.year,t._dayOfYear=a.dayOfYear)}function Yi(t){if(t._f!==i.ISO_8601)if(t._f!==i.RFC_2822){t._a=[],f(t).empty=!0;var e,n,o,s,r,a,h,l=""+t._i,d=l.length,c=0;for(h=(o=W(t._f,t._locale).match(R)||[]).length,e=0;e0&&f(t).unusedInput.push(r),l=l.slice(l.indexOf(n)+n.length),c+=n.length),j[s]?(n?f(t).empty=!1:f(t).unusedTokens.push(s),Nt(s,n,t)):t._strict&&!n&&f(t).unusedTokens.push(s);f(t).charsLeftOver=d-c,l.length>0&&f(t).unusedInput.push(l),t._a[Yt]<=12&&!0===f(t).bigHour&&t._a[Yt]>0&&(f(t).bigHour=void 0),f(t).parsedDateParts=t._a.slice(0),f(t).meridiem=t._meridiem,t._a[Yt]=zi(t._locale,t._a[Yt],t._meridiem),null!==(a=f(t).era)&&(t._a[Ft]=t._locale.erasConvertYear(a,t._a[Ft])),Li(t),yi(t)}else Ai(t);else Ti(t)}function zi(t,e,i){var n;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?((n=t.isPM(i))&&e<12&&(e+=12),n||12!==e||(e=0),e):e}function Hi(t){var e,i,n,o,s,r,a=!1,h=t._f.length;if(0===h)return f(t).invalidFormat=!0,void(t._d=new Date(NaN));for(o=0;othis?this:t:v()}));function Qi(t,e){var i,n;if(1===e.length&&o(e[0])&&(e=e[0]),!e.length)return $i();for(i=e[0],n=1;nthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function kn(){if(!h(this._isDSTShifted))return this._isDSTShifted;var t,e={};return w(e,this),(e=Bi(e))._a?(t=e._isUTC?p(e._a):$i(e._a),this._isDSTShifted=this.isValid()&&dn(e._a,t.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function Sn(){return!!this.isValid()&&!this._isUTC}function Dn(){return!!this.isValid()&&this._isUTC}function Cn(){return!!this.isValid()&&this._isUTC&&0===this._offset}i.updateOffset=function(){};var Tn=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,En=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function On(t,e){var i,n,o,s=t,a=null;return hn(t)?s={ms:t._milliseconds,d:t._days,M:t._months}:l(t)||!isNaN(+t)?(s={},e?s[e]=+t:s.milliseconds=+t):(a=Tn.exec(t))?(i="-"===a[1]?-1:1,s={y:0,d:Mt(a[jt])*i,h:Mt(a[Yt])*i,m:Mt(a[zt])*i,s:Mt(a[Ht])*i,ms:Mt(ln(1e3*a[Gt]))*i}):(a=En.exec(t))?(i="-"===a[1]?-1:1,s={y:Mn(a[2],i),M:Mn(a[3],i),w:Mn(a[4],i),d:Mn(a[5],i),h:Mn(a[6],i),m:Mn(a[7],i),s:Mn(a[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(o=In($i(s.from),$i(s.to)),(s={}).ms=o.milliseconds,s.M=o.months),n=new an(s),hn(t)&&r(t,"_locale")&&(n._locale=t._locale),hn(t)&&r(t,"_isValid")&&(n._isValid=t._isValid),n}function Mn(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function Pn(t,e){var i={};return i.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(i.months,"M").isAfter(e)&&--i.months,i.milliseconds=+e-+t.clone().add(i.months,"M"),i}function In(t,e){var i;return t.isValid()&&e.isValid()?(e=mn(e,t),t.isBefore(e)?i=Pn(t,e):((i=Pn(e,t)).milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function An(t,e){return function(i,n){var o;return null===n||isNaN(+n)||(T(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),o=i,i=n,n=o),Nn(this,On(i,n),t),this}}function Nn(t,e,n,o){var s=e._milliseconds,r=ln(e._days),a=ln(e._months);t.isValid()&&(o=null==o||o,a&&ce(t,Qt(t,"Month")+a*n),r&&Zt(t,"Date",Qt(t,"Date")+r*n),s&&t._d.setTime(t._d.valueOf()+s*n),o&&i.updateOffset(t,r||a))}On.fn=an.prototype,On.invalid=rn;var Rn=An(1,"add"),Fn=An(-1,"subtract");function Ln(t){return"string"==typeof t||t instanceof String}function jn(t){return x(t)||d(t)||Ln(t)||l(t)||zn(t)||Yn(t)||null==t}function Yn(t){var e,i,n=s(t)&&!a(t),o=!1,h=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],l=h.length;for(e=0;ei.valueOf():i.valueOf()9999?G(i,e?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):E(Date.prototype.toISOString)?e?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",G(i,"Z")):G(i,e?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function eo(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t,e,i,n,o="moment",s="";return this.isLocal()||(o=0===this.utcOffset()?"moment.utc":"moment.parseZone",s="Z"),t="["+o+'("]',e=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",i="-MM-DD[T]HH:mm:ss.SSS",n=s+'[")]',this.format(t+e+i+n)}function io(t){t||(t=this.isUtc()?i.defaultFormatUtc:i.defaultFormat);var e=G(this,t);return this.localeData().postformat(e)}function no(t,e){return this.isValid()&&(x(t)&&t.isValid()||$i(t).isValid())?On({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function oo(t){return this.from($i(),t)}function so(t,e){return this.isValid()&&(x(t)&&t.isValid()||$i(t).isValid())?On({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function ro(t){return this.to($i(),t)}function ao(t){var e;return void 0===t?this._locale._abbr:(null!=(e=gi(t))&&(this._locale=e),this)}i.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",i.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var ho=S("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(t){return void 0===t?this.localeData():this.locale(t)}));function lo(){return this._locale}var co=1e3,uo=60*co,po=60*uo,mo=3506328*po;function fo(t,e){return(t%e+e)%e}function go(t,e,i){return t<100&&t>=0?new Date(t+400,e,i)-mo:new Date(t,e,i).valueOf()}function vo(t,e,i){return t<100&&t>=0?Date.UTC(t+400,e,i)-mo:Date.UTC(t,e,i)}function yo(t){var e,n;if(void 0===(t=et(t))||"millisecond"===t||!this.isValid())return this;switch(n=this._isUTC?vo:go,t){case"year":e=n(this.year(),0,1);break;case"quarter":e=n(this.year(),this.month()-this.month()%3,1);break;case"month":e=n(this.year(),this.month(),1);break;case"week":e=n(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":e=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":e=n(this.year(),this.month(),this.date());break;case"hour":e=this._d.valueOf(),e-=fo(e+(this._isUTC?0:this.utcOffset()*uo),po);break;case"minute":e=this._d.valueOf(),e-=fo(e,uo);break;case"second":e=this._d.valueOf(),e-=fo(e,co)}return this._d.setTime(e),i.updateOffset(this,!0),this}function bo(t){var e,n;if(void 0===(t=et(t))||"millisecond"===t||!this.isValid())return this;switch(n=this._isUTC?vo:go,t){case"year":e=n(this.year()+1,0,1)-1;break;case"quarter":e=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":e=n(this.year(),this.month()+1,1)-1;break;case"week":e=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":e=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":e=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":e=this._d.valueOf(),e+=po-fo(e+(this._isUTC?0:this.utcOffset()*uo),po)-1;break;case"minute":e=this._d.valueOf(),e+=uo-fo(e,uo)-1;break;case"second":e=this._d.valueOf(),e+=co-fo(e,co)-1}return this._d.setTime(e),i.updateOffset(this,!0),this}function wo(){return this._d.valueOf()-6e4*(this._offset||0)}function _o(){return Math.floor(this.valueOf()/1e3)}function xo(){return new Date(this.valueOf())}function ko(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]}function So(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}}function Do(){return this.isValid()?this.toISOString():null}function Co(){return g(this)}function To(){return u({},f(this))}function Eo(){return f(this).overflow}function Oo(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Mo(t,e){var n,o,s,r=this._eras||gi("en")._eras;for(n=0,o=r.length;n=0)return h[n]}function Io(t,e){var n=t.since<=t.until?1:-1;return void 0===e?i(t.since).year():i(t.since).year()+(e-t.offset)*n}function Ao(){var t,e,i,n=this.localeData().eras();for(t=0,e=n.length;t(s=xe(t,n,o))&&(e=s),Jo.call(this,t,e,i,n,o))}function Jo(t,e,i,n,o){var s=we(t,e,i,n,o),r=ye(s.year,0,s.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}function ts(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}Y("N",0,0,"eraAbbr"),Y("NN",0,0,"eraAbbr"),Y("NNN",0,0,"eraAbbr"),Y("NNNN",0,0,"eraName"),Y("NNNNN",0,0,"eraNarrow"),Y("y",["y",1],"yo","eraYear"),Y("y",["yy",2],0,"eraYear"),Y("y",["yyy",3],0,"eraYear"),Y("y",["yyyy",4],0,"eraYear"),Dt("N",zo),Dt("NN",zo),Dt("NNN",zo),Dt("NNNN",Ho),Dt("NNNNN",Go),It(["N","NN","NNN","NNNN","NNNNN"],(function(t,e,i,n){var o=i._locale.erasParse(t,n,i._strict);o?f(i).era=o:f(i).invalidEra=t})),Dt("y",vt),Dt("yy",vt),Dt("yyy",vt),Dt("yyyy",vt),Dt("yo",Wo),It(["y","yy","yyy","yyyy"],Ft),It(["yo"],(function(t,e,i,n){var o;i._locale._eraYearOrdinalRegex&&(o=t.match(i._locale._eraYearOrdinalRegex)),i._locale.eraYearOrdinalParse?e[Ft]=i._locale.eraYearOrdinalParse(t,o):e[Ft]=parseInt(t,10)})),Y(0,["gg",2],0,(function(){return this.weekYear()%100})),Y(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),Vo("gggg","weekYear"),Vo("ggggg","weekYear"),Vo("GGGG","isoWeekYear"),Vo("GGGGG","isoWeekYear"),Dt("G",yt),Dt("g",yt),Dt("GG",ct,at),Dt("gg",ct,at),Dt("GGGG",ft,lt),Dt("gggg",ft,lt),Dt("GGGGG",gt,dt),Dt("ggggg",gt,dt),At(["gggg","ggggg","GGGG","GGGGG"],(function(t,e,i,n){e[n.substr(0,2)]=Mt(t)})),At(["gg","GG"],(function(t,e,n,o){e[o]=i.parseTwoDigitYear(t)})),Y("Q",0,"Qo","quarter"),Dt("Q",rt),It("Q",(function(t,e){e[Lt]=3*(Mt(t)-1)})),Y("D",["DD",2],"Do","date"),Dt("D",ct,kt),Dt("DD",ct,at),Dt("Do",(function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient})),It(["D","DD"],jt),It("Do",(function(t,e){e[jt]=Mt(t.match(ct)[0])}));var es=Xt("Date",!0);function is(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}Y("DDD",["DDDD",3],"DDDo","dayOfYear"),Dt("DDD",mt),Dt("DDDD",ht),It(["DDD","DDDD"],(function(t,e,i){i._dayOfYear=Mt(t)})),Y("m",["mm",2],0,"minute"),Dt("m",ct,St),Dt("mm",ct,at),It(["m","mm"],zt);var ns=Xt("Minutes",!1);Y("s",["ss",2],0,"second"),Dt("s",ct,St),Dt("ss",ct,at),It(["s","ss"],Ht);var os,ss,rs=Xt("Seconds",!1);for(Y("S",0,0,(function(){return~~(this.millisecond()/100)})),Y(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),Y(0,["SSS",3],0,"millisecond"),Y(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),Y(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),Y(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),Y(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),Y(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),Y(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),Dt("S",mt,rt),Dt("SS",mt,at),Dt("SSS",mt,ht),os="SSSS";os.length<=9;os+="S")Dt(os,vt);function as(t,e){e[Gt]=Mt(1e3*("0."+t))}for(os="S";os.length<=9;os+="S")It(os,as);function hs(){return this._isUTC?"UTC":""}function ls(){return this._isUTC?"Coordinated Universal Time":""}ss=Xt("Milliseconds",!1),Y("z",0,0,"zoneAbbr"),Y("zz",0,0,"zoneName");var ds=_.prototype;function cs(t){return $i(1e3*t)}function us(){return $i.apply(null,arguments).parseZone()}function ps(t){return t}ds.add=Rn,ds.calendar=Wn,ds.clone=Bn,ds.diff=Zn,ds.endOf=bo,ds.format=io,ds.from=no,ds.fromNow=oo,ds.to=so,ds.toNow=ro,ds.get=Kt,ds.invalidAt=Eo,ds.isAfter=Vn,ds.isBefore=Un,ds.isBetween=$n,ds.isSame=qn,ds.isSameOrAfter=Xn,ds.isSameOrBefore=Qn,ds.isValid=Co,ds.lang=ho,ds.locale=ao,ds.localeData=lo,ds.max=Xi,ds.min=qi,ds.parsingFlags=To,ds.set=Jt,ds.startOf=yo,ds.subtract=Fn,ds.toArray=ko,ds.toObject=So,ds.toDate=xo,ds.toISOString=to,ds.inspect=eo,"undefined"!=typeof Symbol&&null!=Symbol.for&&(ds[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),ds.toJSON=Do,ds.toString=Jn,ds.unix=_o,ds.valueOf=wo,ds.creationData=Oo,ds.eraName=Ao,ds.eraNarrow=No,ds.eraAbbr=Ro,ds.eraYear=Fo,ds.year=$t,ds.isLeapYear=qt,ds.weekYear=Uo,ds.isoWeekYear=$o,ds.quarter=ds.quarters=ts,ds.month=ue,ds.daysInMonth=pe,ds.week=ds.weeks=Te,ds.isoWeek=ds.isoWeeks=Ee,ds.weeksInYear=Qo,ds.weeksInWeekYear=Zo,ds.isoWeeksInYear=qo,ds.isoWeeksInISOWeekYear=Xo,ds.date=es,ds.day=ds.days=We,ds.weekday=Be,ds.isoWeekday=Ve,ds.dayOfYear=is,ds.hour=ds.hours=ii,ds.minute=ds.minutes=ns,ds.second=ds.seconds=rs,ds.millisecond=ds.milliseconds=ss,ds.utcOffset=gn,ds.utc=yn,ds.local=bn,ds.parseZone=wn,ds.hasAlignedHourOffset=_n,ds.isDST=xn,ds.isLocal=Sn,ds.isUtcOffset=Dn,ds.isUtc=Cn,ds.isUTC=Cn,ds.zoneAbbr=hs,ds.zoneName=ls,ds.dates=S("dates accessor is deprecated. Use date instead.",es),ds.months=S("months accessor is deprecated. Use month instead",ue),ds.years=S("years accessor is deprecated. Use year instead",$t),ds.zone=S("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",vn),ds.isDSTShifted=S("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",kn);var ms=P.prototype;function fs(t,e,i,n){var o=gi(),s=p().set(n,e);return o[i](s,t)}function gs(t,e,i){if(l(t)&&(e=t,t=void 0),t=t||"",null!=e)return fs(t,e,i,"month");var n,o=[];for(n=0;n<12;n++)o[n]=fs(t,n,i,"month");return o}function vs(t,e,i,n){"boolean"==typeof t?(l(e)&&(i=e,e=void 0),e=e||""):(i=e=t,t=!1,l(e)&&(i=e,e=void 0),e=e||"");var o,s=gi(),r=t?s._week.dow:0,a=[];if(null!=i)return fs(e,(i+r)%7,n,"day");for(o=0;o<7;o++)a[o]=fs(e,(o+r)%7,n,"day");return a}function ys(t,e){return gs(t,e,"months")}function bs(t,e){return gs(t,e,"monthsShort")}function ws(t,e,i){return vs(t,e,i,"weekdays")}function _s(t,e,i){return vs(t,e,i,"weekdaysShort")}function xs(t,e,i){return vs(t,e,i,"weekdaysMin")}ms.calendar=A,ms.longDateFormat=V,ms.invalidDate=$,ms.ordinal=Q,ms.preparse=ps,ms.postformat=ps,ms.relativeTime=K,ms.pastFuture=J,ms.set=O,ms.eras=Mo,ms.erasParse=Po,ms.erasConvertYear=Io,ms.erasAbbrRegex=jo,ms.erasNameRegex=Lo,ms.erasNarrowRegex=Yo,ms.months=ae,ms.monthsShort=he,ms.monthsParse=de,ms.monthsRegex=fe,ms.monthsShortRegex=me,ms.week=ke,ms.firstDayOfYear=Ce,ms.firstDayOfWeek=De,ms.weekdays=je,ms.weekdaysMin=ze,ms.weekdaysShort=Ye,ms.weekdaysParse=Ge,ms.weekdaysRegex=Ue,ms.weekdaysShortRegex=$e,ms.weekdaysMinRegex=qe,ms.isPM=ti,ms.meridiem=ni,pi("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===Mt(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),i.lang=S("moment.lang is deprecated. Use moment.locale instead.",pi),i.langData=S("moment.langData is deprecated. Use moment.localeData instead.",gi);var ks=Math.abs;function Ss(){var t=this._data;return this._milliseconds=ks(this._milliseconds),this._days=ks(this._days),this._months=ks(this._months),t.milliseconds=ks(t.milliseconds),t.seconds=ks(t.seconds),t.minutes=ks(t.minutes),t.hours=ks(t.hours),t.months=ks(t.months),t.years=ks(t.years),this}function Ds(t,e,i,n){var o=On(e,i);return t._milliseconds+=n*o._milliseconds,t._days+=n*o._days,t._months+=n*o._months,t._bubble()}function Cs(t,e){return Ds(this,t,e,1)}function Ts(t,e){return Ds(this,t,e,-1)}function Es(t){return t<0?Math.floor(t):Math.ceil(t)}function Os(){var t,e,i,n,o,s=this._milliseconds,r=this._days,a=this._months,h=this._data;return s>=0&&r>=0&&a>=0||s<=0&&r<=0&&a<=0||(s+=864e5*Es(Ps(a)+r),r=0,a=0),h.milliseconds=s%1e3,t=Ot(s/1e3),h.seconds=t%60,e=Ot(t/60),h.minutes=e%60,i=Ot(e/60),h.hours=i%24,r+=Ot(i/24),a+=o=Ot(Ms(r)),r-=Es(Ps(o)),n=Ot(a/12),a%=12,h.days=r,h.months=a,h.years=n,this}function Ms(t){return 4800*t/146097}function Ps(t){return 146097*t/4800}function Is(t){if(!this.isValid())return NaN;var e,i,n=this._milliseconds;if("month"===(t=et(t))||"quarter"===t||"year"===t)switch(e=this._days+n/864e5,i=this._months+Ms(e),t){case"month":return i;case"quarter":return i/3;case"year":return i/12}else switch(e=this._days+Math.round(Ps(this._months)),t){case"week":return e/7+n/6048e5;case"day":return e+n/864e5;case"hour":return 24*e+n/36e5;case"minute":return 1440*e+n/6e4;case"second":return 86400*e+n/1e3;case"millisecond":return Math.floor(864e5*e)+n;default:throw new Error("Unknown unit "+t)}}function As(t){return function(){return this.as(t)}}var Ns=As("ms"),Rs=As("s"),Fs=As("m"),Ls=As("h"),js=As("d"),Ys=As("w"),zs=As("M"),Hs=As("Q"),Gs=As("y"),Ws=Ns;function Bs(){return On(this)}function Vs(t){return t=et(t),this.isValid()?this[t+"s"]():NaN}function Us(t){return function(){return this.isValid()?this._data[t]:NaN}}var $s=Us("milliseconds"),qs=Us("seconds"),Xs=Us("minutes"),Qs=Us("hours"),Zs=Us("days"),Ks=Us("months"),Js=Us("years");function tr(){return Ot(this.days()/7)}var er=Math.round,ir={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function nr(t,e,i,n,o){return o.relativeTime(e||1,!!i,t,n)}function or(t,e,i,n){var o=On(t).abs(),s=er(o.as("s")),r=er(o.as("m")),a=er(o.as("h")),h=er(o.as("d")),l=er(o.as("M")),d=er(o.as("w")),c=er(o.as("y")),u=s<=i.ss&&["s",s]||s0,u[4]=n,nr.apply(null,u)}function sr(t){return void 0===t?er:"function"==typeof t&&(er=t,!0)}function rr(t,e){return void 0!==ir[t]&&(void 0===e?ir[t]:(ir[t]=e,"s"===t&&(ir.ss=e-1),!0))}function ar(t,e){if(!this.isValid())return this.localeData().invalidDate();var i,n,o=!1,s=ir;return"object"==typeof t&&(e=t,t=!1),"boolean"==typeof t&&(o=t),"object"==typeof e&&(s=Object.assign({},ir,e),null!=e.s&&null==e.ss&&(s.ss=e.s-1)),n=or(this,!o,s,i=this.localeData()),o&&(n=i.pastFuture(+this,n)),i.postformat(n)}var hr=Math.abs;function lr(t){return(t>0)-(t<0)||+t}function dr(){if(!this.isValid())return this.localeData().invalidDate();var t,e,i,n,o,s,r,a,h=hr(this._milliseconds)/1e3,l=hr(this._days),d=hr(this._months),c=this.asSeconds();return c?(t=Ot(h/60),e=Ot(t/60),h%=60,t%=60,i=Ot(d/12),d%=12,n=h?h.toFixed(3).replace(/\.?0+$/,""):"",o=c<0?"-":"",s=lr(this._months)!==lr(c)?"-":"",r=lr(this._days)!==lr(c)?"-":"",a=lr(this._milliseconds)!==lr(c)?"-":"",o+"P"+(i?s+i+"Y":"")+(d?s+d+"M":"")+(l?r+l+"D":"")+(e||t||h?"T":"")+(e?a+e+"H":"")+(t?a+t+"M":"")+(h?a+n+"S":"")):"P0D"}var cr=an.prototype;return cr.isValid=sn,cr.abs=Ss,cr.add=Cs,cr.subtract=Ts,cr.as=Is,cr.asMilliseconds=Ns,cr.asSeconds=Rs,cr.asMinutes=Fs,cr.asHours=Ls,cr.asDays=js,cr.asWeeks=Ys,cr.asMonths=zs,cr.asQuarters=Hs,cr.asYears=Gs,cr.valueOf=Ws,cr._bubble=Os,cr.clone=Bs,cr.get=Vs,cr.milliseconds=$s,cr.seconds=qs,cr.minutes=Xs,cr.hours=Qs,cr.days=Zs,cr.weeks=tr,cr.months=Ks,cr.years=Js,cr.humanize=ar,cr.toISOString=dr,cr.toString=dr,cr.toJSON=dr,cr.locale=ao,cr.localeData=lo,cr.toIsoString=S("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",dr),cr.lang=ho,Y("X",0,0,"unix"),Y("x",0,0,"valueOf"),Dt("x",yt),Dt("X",_t),It("X",(function(t,e,i){i._d=new Date(1e3*parseFloat(t))})),It("x",(function(t,e,i){i._d=new Date(Mt(t))})), +//! moment.js +i.version="2.30.1",n($i),i.fn=ds,i.min=Zi,i.max=tn,i.now=en,i.utc=p,i.unix=cs,i.months=ys,i.isDate=d,i.locale=pi,i.invalid=v,i.duration=On,i.isMoment=x,i.weekdays=ws,i.parseZone=us,i.localeData=gi,i.isDuration=hn,i.monthsShort=bs,i.weekdaysMin=xs,i.defineLocale=mi,i.updateLocale=fi,i.locales=vi,i.weekdaysShort=_s,i.normalizeUnits=et,i.relativeTimeRounding=sr,i.relativeTimeThreshold=rr,i.calendarFormat=Gn,i.prototype=ds,i.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},i}();var en=e(tn.exports),nn={exports:{}},on={},sn={exports:{}},rn={};function an(){var t={"align-content":!1,"align-items":!1,"align-self":!1,"alignment-adjust":!1,"alignment-baseline":!1,all:!1,"anchor-point":!1,animation:!1,"animation-delay":!1,"animation-direction":!1,"animation-duration":!1,"animation-fill-mode":!1,"animation-iteration-count":!1,"animation-name":!1,"animation-play-state":!1,"animation-timing-function":!1,azimuth:!1,"backface-visibility":!1,background:!0,"background-attachment":!0,"background-clip":!0,"background-color":!0,"background-image":!0,"background-origin":!0,"background-position":!0,"background-repeat":!0,"background-size":!0,"baseline-shift":!1,binding:!1,bleed:!1,"bookmark-label":!1,"bookmark-level":!1,"bookmark-state":!1,border:!0,"border-bottom":!0,"border-bottom-color":!0,"border-bottom-left-radius":!0,"border-bottom-right-radius":!0,"border-bottom-style":!0,"border-bottom-width":!0,"border-collapse":!0,"border-color":!0,"border-image":!0,"border-image-outset":!0,"border-image-repeat":!0,"border-image-slice":!0,"border-image-source":!0,"border-image-width":!0,"border-left":!0,"border-left-color":!0,"border-left-style":!0,"border-left-width":!0,"border-radius":!0,"border-right":!0,"border-right-color":!0,"border-right-style":!0,"border-right-width":!0,"border-spacing":!0,"border-style":!0,"border-top":!0,"border-top-color":!0,"border-top-left-radius":!0,"border-top-right-radius":!0,"border-top-style":!0,"border-top-width":!0,"border-width":!0,bottom:!1,"box-decoration-break":!0,"box-shadow":!0,"box-sizing":!0,"box-snap":!0,"box-suppress":!0,"break-after":!0,"break-before":!0,"break-inside":!0,"caption-side":!1,chains:!1,clear:!0,clip:!1,"clip-path":!1,"clip-rule":!1,color:!0,"color-interpolation-filters":!0,"column-count":!1,"column-fill":!1,"column-gap":!1,"column-rule":!1,"column-rule-color":!1,"column-rule-style":!1,"column-rule-width":!1,"column-span":!1,"column-width":!1,columns:!1,contain:!1,content:!1,"counter-increment":!1,"counter-reset":!1,"counter-set":!1,crop:!1,cue:!1,"cue-after":!1,"cue-before":!1,cursor:!1,direction:!1,display:!0,"display-inside":!0,"display-list":!0,"display-outside":!0,"dominant-baseline":!1,elevation:!1,"empty-cells":!1,filter:!1,flex:!1,"flex-basis":!1,"flex-direction":!1,"flex-flow":!1,"flex-grow":!1,"flex-shrink":!1,"flex-wrap":!1,float:!1,"float-offset":!1,"flood-color":!1,"flood-opacity":!1,"flow-from":!1,"flow-into":!1,font:!0,"font-family":!0,"font-feature-settings":!0,"font-kerning":!0,"font-language-override":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-synthesis":!0,"font-variant":!0,"font-variant-alternates":!0,"font-variant-caps":!0,"font-variant-east-asian":!0,"font-variant-ligatures":!0,"font-variant-numeric":!0,"font-variant-position":!0,"font-weight":!0,grid:!1,"grid-area":!1,"grid-auto-columns":!1,"grid-auto-flow":!1,"grid-auto-rows":!1,"grid-column":!1,"grid-column-end":!1,"grid-column-start":!1,"grid-row":!1,"grid-row-end":!1,"grid-row-start":!1,"grid-template":!1,"grid-template-areas":!1,"grid-template-columns":!1,"grid-template-rows":!1,"hanging-punctuation":!1,height:!0,hyphens:!1,icon:!1,"image-orientation":!1,"image-resolution":!1,"ime-mode":!1,"initial-letters":!1,"inline-box-align":!1,"justify-content":!1,"justify-items":!1,"justify-self":!1,left:!1,"letter-spacing":!0,"lighting-color":!0,"line-box-contain":!1,"line-break":!1,"line-grid":!1,"line-height":!1,"line-snap":!1,"line-stacking":!1,"line-stacking-ruby":!1,"line-stacking-shift":!1,"line-stacking-strategy":!1,"list-style":!0,"list-style-image":!0,"list-style-position":!0,"list-style-type":!0,margin:!0,"margin-bottom":!0,"margin-left":!0,"margin-right":!0,"margin-top":!0,"marker-offset":!1,"marker-side":!1,marks:!1,mask:!1,"mask-box":!1,"mask-box-outset":!1,"mask-box-repeat":!1,"mask-box-slice":!1,"mask-box-source":!1,"mask-box-width":!1,"mask-clip":!1,"mask-image":!1,"mask-origin":!1,"mask-position":!1,"mask-repeat":!1,"mask-size":!1,"mask-source-type":!1,"mask-type":!1,"max-height":!0,"max-lines":!1,"max-width":!0,"min-height":!0,"min-width":!0,"move-to":!1,"nav-down":!1,"nav-index":!1,"nav-left":!1,"nav-right":!1,"nav-up":!1,"object-fit":!1,"object-position":!1,opacity:!1,order:!1,orphans:!1,outline:!1,"outline-color":!1,"outline-offset":!1,"outline-style":!1,"outline-width":!1,overflow:!1,"overflow-wrap":!1,"overflow-x":!1,"overflow-y":!1,padding:!0,"padding-bottom":!0,"padding-left":!0,"padding-right":!0,"padding-top":!0,page:!1,"page-break-after":!1,"page-break-before":!1,"page-break-inside":!1,"page-policy":!1,pause:!1,"pause-after":!1,"pause-before":!1,perspective:!1,"perspective-origin":!1,pitch:!1,"pitch-range":!1,"play-during":!1,position:!1,"presentation-level":!1,quotes:!1,"region-fragment":!1,resize:!1,rest:!1,"rest-after":!1,"rest-before":!1,richness:!1,right:!1,rotation:!1,"rotation-point":!1,"ruby-align":!1,"ruby-merge":!1,"ruby-position":!1,"shape-image-threshold":!1,"shape-outside":!1,"shape-margin":!1,size:!1,speak:!1,"speak-as":!1,"speak-header":!1,"speak-numeral":!1,"speak-punctuation":!1,"speech-rate":!1,stress:!1,"string-set":!1,"tab-size":!1,"table-layout":!1,"text-align":!0,"text-align-last":!0,"text-combine-upright":!0,"text-decoration":!0,"text-decoration-color":!0,"text-decoration-line":!0,"text-decoration-skip":!0,"text-decoration-style":!0,"text-emphasis":!0,"text-emphasis-color":!0,"text-emphasis-position":!0,"text-emphasis-style":!0,"text-height":!0,"text-indent":!0,"text-justify":!0,"text-orientation":!0,"text-overflow":!0,"text-shadow":!0,"text-space-collapse":!0,"text-transform":!0,"text-underline-position":!0,"text-wrap":!0,top:!1,transform:!1,"transform-origin":!1,"transform-style":!1,transition:!1,"transition-delay":!1,"transition-duration":!1,"transition-property":!1,"transition-timing-function":!1,"unicode-bidi":!1,"vertical-align":!1,visibility:!1,"voice-balance":!1,"voice-duration":!1,"voice-family":!1,"voice-pitch":!1,"voice-range":!1,"voice-rate":!1,"voice-stress":!1,"voice-volume":!1,volume:!1,"white-space":!1,widows:!1,width:!0,"will-change":!1,"word-break":!0,"word-spacing":!0,"word-wrap":!0,"wrap-flow":!1,"wrap-through":!1,"writing-mode":!1,"z-index":!1};return t}var hn=/javascript\s*\:/gim;rn.whiteList=an(),rn.getDefaultWhiteList=an,rn.onAttr=function(t,e,i){},rn.onIgnoreAttr=function(t,e,i){},rn.safeAttrValue=function(t,e){return hn.test(e)?"":e};var ln={indexOf:function(t,e){var i,n;if(Array.prototype.indexOf)return t.indexOf(e);for(i=0,n=t.length;i/g,Cn=/"/g,Tn=/"/g,En=/&#([a-zA-Z0-9]*);?/gim,On=/:?/gim,Mn=/&newline;?/gim,Pn=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a):/gi,In=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,An=/u\s*r\s*l\s*\(.*/gi;function Nn(t){return t.replace(Cn,""")}function Rn(t){return t.replace(Tn,'"')}function Fn(t){return t.replace(En,(function(t,e){return"x"===e[0]||"X"===e[0]?String.fromCharCode(parseInt(e.substr(1),16)):String.fromCharCode(parseInt(e,10))}))}function Ln(t){return t.replace(On,":").replace(Mn," ")}function jn(t){for(var e="",i=0,n=t.length;i0;e--){var i=t[e];if(" "!==i)return"="===i?e:-1}}function Xn(t){return function(t){return'"'===t[0]&&'"'===t[t.length-1]||"'"===t[0]&&"'"===t[t.length-1]}(t)?t.substr(1,t.length-2):t}Hn.parseTag=function(t,e,i){var n="",o=0,s=!1,r=!1,a=0,h=t.length,l="",d="";t:for(a=0;a"===c||a===h-1){n+=i(t.slice(o,s)),l=Wn(d=t.slice(s,a+1)),n+=e(s,n.length,l,d,Bn(d)),o=a+1,s=!1;continue}if('"'===c||"'"===c)for(var u=1,p=t.charAt(a-u);""===p.trim()||"="===p;){if("="===p){r=c;continue t}p=t.charAt(a-++u)}}else if(c===r){r=!1;continue}}return o";var g=function(t){var e=eo.spaceIndex(t);if(-1===e)return{html:"",closing:"/"===t[t.length-2]};var i="/"===(t=eo.trim(t.slice(e+1,-1)))[t.length-1];return i&&(t=eo.trim(t.slice(0,-1))),{html:t,closing:i}}(u),v=n[i],y=to(g.html,(function(t,e){var n=-1!==eo.indexOf(v,t),o=r(i,t,e,n);return io(o)?n?(e=h(i,t,e,c))?t+"="+d+e+d:t:io(o=a(i,t,e,n))?void 0:o:o}));return u="<"+i,y&&(u+=" "+y),g.closing&&(u+=" /"),u+=">"}return io(f=s(i,u,m))?l(u):f}),l);return u&&(p=u.remove(p)),p};var oo=no;!function(t,e){var i=on,n=Hn,o=oo;function s(t,e){return new o(e).process(t)}(e=t.exports=s).filterXSS=s,e.FilterXSS=o,function(){for(var t in i)e[t]=i[t];for(var o in n)e[o]=n[o]}(),"undefined"!=typeof window&&(window.filterXSS=t.exports),"undefined"!=typeof self&&"undefined"!=typeof DedicatedWorkerGlobalScope&&self instanceof DedicatedWorkerGlobalScope&&(self.filterXSS=t.exports)}(nn,nn.exports);var so=e(nn.exports),ro=null; +/** + * vis-timeline and vis-graph2d + * https://visjs.github.io/vis-timeline/ + * + * Create a fully customizable, interactive timeline with items and ranges. + * + * @version 7.7.3 + * @date 2023-10-27T17:57:57.604Z + * + * @copyright (c) 2011-2017 Almende B.V, http://almende.com + * @copyright (c) 2017-2019 visjs contributors, https://github.com/visjs + * + * @license + * vis.js is dual licensed under both + * + * 1. The Apache 2.0 License + * http://www.apache.org/licenses/LICENSE-2.0 + * + * and + * + * 2. The MIT License + * http://opensource.org/licenses/MIT + * + * vis.js may be distributed under either license. + */ +function ao(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var ho=ao("undefined"!=typeof window&&window.moment||en);function lo(t){if(!t)return!1;let e=t.idProp??t._idProp;return!!e&&function(t,e){return"object"==typeof e&&null!==e&&t===e.idProp&&"function"==typeof e.forEach&&"function"==typeof e.get&&"function"==typeof e.getDataSet&&"function"==typeof e.getIds&&"number"==typeof e.length&&"function"==typeof e.map&&"function"==typeof e.off&&"function"==typeof e.on&&"function"==typeof e.stream&&function(t,e){return"object"==typeof e&&null!==e&&t===e.idProp&&"function"==typeof e.add&&"function"==typeof e.clear&&"function"==typeof e.distinct&&"function"==typeof e.forEach&&"function"==typeof e.get&&"function"==typeof e.getDataSet&&"function"==typeof e.getIds&&"number"==typeof e.length&&"function"==typeof e.map&&"function"==typeof e.max&&"function"==typeof e.min&&"function"==typeof e.off&&"function"==typeof e.on&&"function"==typeof e.remove&&"function"==typeof e.setOptions&&"function"==typeof e.stream&&"function"==typeof e.update&&"function"==typeof e.updateOnly}(t,e.getDataSet())}(e,t)}const co=/^\/?Date\((-?\d+)/i,uo=/^\d+$/;function po(t,e){let i;if(void 0!==t){if(null===t)return null;if(!e)return t;if("string"!=typeof e&&!(e instanceof String))throw new Error("Type must be a string");switch(e){case"boolean":case"Boolean":return Boolean(t);case"number":case"Number":return ti(t)&&!isNaN(Date.parse(t))?en(t).valueOf():Number(t.valueOf());case"string":case"String":return String(t);case"Date":try{return po(t,"Moment").toDate()}catch(i){throw i instanceof TypeError?new TypeError("Cannot convert object of type "+si(t)+" to type "+e):i}case"Moment":if(Je(t))return en(t);if(t instanceof Date)return en(t.valueOf());if(en.isMoment(t))return en(t);if(ti(t))return i=co.exec(t),i?en(Number(i[1])):(i=uo.exec(t),en(i?Number(t):t));throw new TypeError("Cannot convert object of type "+si(t)+" to type "+e);case"ISODate":if(Je(t))return new Date(t);if(t instanceof Date)return t.toISOString();if(en.isMoment(t))return t.toDate().toISOString();if(ti(t))return i=co.exec(t),i?new Date(Number(i[1])).toISOString():en(t).format();throw new Error("Cannot convert object of type "+si(t)+" to type ISODate");case"ASPDate":if(Je(t))return"/Date("+t+")/";if(t instanceof Date||en.isMoment(t))return"/Date("+t.valueOf()+")/";if(ti(t)){let e;return i=co.exec(t),e=i?new Date(Number(i[1])).valueOf():new Date(t).valueOf(),"/Date("+e+")/"}throw new Error("Cannot convert object of type "+si(t)+" to type ASPDate");default:throw new Error(`Unknown type ${e}`)}}}function mo(t,e={start:"Date",end:"Date"}){const i=t._idProp,n=new Qi({fieldId:i}),o=(s=t,new Vi(s)).map((t=>Object.keys(t).reduce(((i,n)=>(i[n]=po(t[n],e[n]),i)),{}))).to(n);var s;return o.all().start(),{add:(...e)=>t.getDataSet().add(...e),remove:(...e)=>t.getDataSet().remove(...e),update:(...e)=>t.getDataSet().update(...e),updateOnly:(...e)=>t.getDataSet().updateOnly(...e),clear:(...e)=>t.getDataSet().clear(...e),forEach:n.forEach.bind(n),get:n.get.bind(n),getIds:n.getIds.bind(n),off:n.off.bind(n),on:n.on.bind(n),get length(){return n.length},idProp:i,type:e,rawDS:t,coercedDS:n,dispose:()=>o.stop()}}const fo=t=>{const e=new so.FilterXSS(t);return t=>e.process(t)},go=t=>t;let vo=fo();const yo={...Fi,convert:po,setupXSSProtection:t=>{t&&(!0===t.disabled?(vo=go,console.warn("You disabled XSS protection for vis-Timeline. I sure hope you know what you're doing!")):t.filterOptions&&(vo=fo(t.filterOptions)))}};Object.defineProperty(yo,"xss",{get:function(){return vo}});class bo{constructor(t,e){this.options=null,this.props=null}setOptions(t){t&&yo.extend(this.options,t)}redraw(){return!1}destroy(){}_isResized(){const t=this.props._previousWidth!==this.props.width||this.props._previousHeight!==this.props.height;return this.props._previousWidth=this.props.width,this.props._previousHeight=this.props.height,t}}function wo(t,e,i){if(i&&!Array.isArray(i))return wo(t,e,[i]);if(e.hiddenDates=[],i&&1==Array.isArray(i)){for(let n=0;nt.start-e.start))}}function _o(t,e,i){if(i&&!Array.isArray(i))return _o(t,e,[i]);if(i&&void 0!==e.domProps.centerContainer.width){wo(t,e,i);const n=t(e.range.start),o=t(e.range.end),s=(e.range.end-e.range.start)/e.domProps.centerContainer.width;for(let r=0;r=4*s){let t=0;const s=o.clone();switch(i[r].repeat){case"daily":a.day()!=h.day()&&(t=1),a.dayOfYear(n.dayOfYear()),a.year(n.year()),a.subtract(7,"days"),h.dayOfYear(n.dayOfYear()),h.year(n.year()),h.subtract(7-t,"days"),s.add(1,"weeks");break;case"weekly":{const t=h.diff(a,"days"),e=a.day();a.date(n.date()),a.month(n.month()),a.year(n.year()),h=a.clone(),a.day(e),h.day(e),h.add(t,"days"),a.subtract(1,"weeks"),h.subtract(1,"weeks"),s.add(1,"weeks");break}case"monthly":a.month()!=h.month()&&(t=1),a.month(n.month()),a.year(n.year()),a.subtract(1,"months"),h.month(n.month()),h.year(n.year()),h.subtract(1,"months"),h.add(t,"months"),s.add(1,"months");break;case"yearly":a.year()!=h.year()&&(t=1),a.year(n.year()),a.subtract(1,"years"),h.year(n.year()),h.subtract(1,"years"),h.add(t,"years"),s.add(1,"years");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",i[r].repeat)}for(;a=e[n].start&&e[t].end<=e[n].end?e[t].remove=!0:e[t].start>=e[n].start&&e[t].start<=e[n].end?(e[n].end=e[t].end,e[t].remove=!0):e[t].end>=e[n].start&&e[t].end<=e[n].end&&(e[n].start=e[t].start,e[t].remove=!0));for(n=0;nt.start-e.start))}(e);const r=Eo(e.range.start,e.hiddenDates),a=Eo(e.range.end,e.hiddenDates);let h=e.range.start,l=e.range.end;1==r.hidden&&(h=1==e.range.startToFront?r.startDate-1:r.endDate+1),1==a.hidden&&(l=1==e.range.endToFront?a.startDate-1:a.endDate+1),1!=r.hidden&&1!=a.hidden||e.range._applyRange(h,l)}}function xo(t,e,i){let n;if(0==t.body.hiddenDates.length)return n=t.range.conversion(i),(e.valueOf()-n.offset)*n.scale;{const o=Eo(e,t.body.hiddenDates);1==o.hidden&&(e=o.startDate);const s=So(t.body.hiddenDates,t.range.start,t.range.end);if(e=e&&r<=i&&(n+=r-s)}return n}(t.body.hiddenDates,e,n.offset);return e=t.options.moment(e).toDate().valueOf(),e+=o,-(n.offset-e.valueOf())*n.scale}if(e>t.range.end){const o={start:t.range.start,end:e};return e=Do(t.options.moment,t.body.hiddenDates,o,e),n=t.range.conversion(i,s),(e.valueOf()-n.offset)*n.scale}return e=Do(t.options.moment,t.body.hiddenDates,t.range,e),n=t.range.conversion(i,s),(e.valueOf()-n.offset)*n.scale}}function ko(t,e,i){if(0==t.body.hiddenDates.length){const n=t.range.conversion(i);return new Date(e/n.scale+n.offset)}{const n=So(t.body.hiddenDates,t.range.start,t.range.end),o=(t.range.end-t.range.start-n)*e/i,s=function(t,e,i){let n=0,o=0,s=e.start;for(let r=0;r=e.start&&h=i)break;n+=h-a}}return n}(t.body.hiddenDates,t.range,o);return new Date(s+o+t.range.start)}}function So(t,e,i){let n=0;for(let o=0;o=e&&r=i.start&&r=r&&(o+=r-s)}return o}function To(t,e,i,n){const o=Eo(e,t);return 1==o.hidden?i<0?1==n?o.startDate-(o.endDate-e)-1:o.startDate-1:1==n?o.endDate+(e-o.startDate)+1:o.endDate+1:e}function Eo(t,e){for(let o=0;o=i&&t1e3&&(i=1e3),t.body.dom.rollingModeBtn.style.visibility="hidden",t.currentTimeTimer=setTimeout(e,i)}()}stopRolling(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),this.rolling=!1,this.body.dom.rollingModeBtn.style.visibility="visible")}setRange(t,e,i,n,o){i||(i={}),!0!==i.byUser&&(i.byUser=!1);const s=this,r=null!=t?yo.convert(t,"Date").valueOf():null,a=null!=e?yo.convert(e,"Date").valueOf():null;if(this._cancelAnimation(),this.millisecondsPerPixelCache=void 0,i.animation){const t=this.start,e=this.end,l="object"==typeof i.animation&&"duration"in i.animation?i.animation.duration:500,d="object"==typeof i.animation&&"easingFunction"in i.animation?i.animation.easingFunction:"easeInOutQuad",c=yo.easingFunctions[d];if(!c)throw new Error(`Unknown easing function ${JSON.stringify(d)}. Choose from: ${Object.keys(yo.easingFunctions).join(", ")}`);const u=Date.now();let p=!1;const m=()=>{if(!s.props.touch.dragging){const d=Date.now()-u,f=c(d/l),g=d>l,v=g||null===r?r:t+(r-t)*f,y=g||null===a?a:e+(a-e)*f;h=s._applyRange(v,y),_o(s.options.moment,s.body,s.options.hiddenDates),p=p||h;const b={start:new Date(s.start),end:new Date(s.end),byUser:i.byUser,event:i.event};if(o&&o(f,h,g),h&&s.body.emitter.emit("rangechange",b),g){if(p&&(s.body.emitter.emit("rangechanged",b),n))return n()}else s.animationTimer=setTimeout(m,20)}};return m()}var h=this._applyRange(r,a);if(_o(this.options.moment,this.body,this.options.hiddenDates),h){const t={start:new Date(this.start),end:new Date(this.end),byUser:i.byUser,event:i.event};if(this.body.emitter.emit("rangechange",t),clearTimeout(s.timeoutID),s.timeoutID=setTimeout((()=>{s.body.emitter.emit("rangechanged",t)}),200),n)return n()}}getMillisecondsPerPixel(){return void 0===this.millisecondsPerPixelCache&&(this.millisecondsPerPixelCache=(this.end-this.start)/this.body.dom.center.clientWidth),this.millisecondsPerPixelCache}_cancelAnimation(){this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=null)}_applyRange(t,e){let i=null!=t?yo.convert(t,"Date").valueOf():this.start,n=null!=e?yo.convert(e,"Date").valueOf():this.end;const o=null!=this.options.max?yo.convert(this.options.max,"Date").valueOf():null,s=null!=this.options.min?yo.convert(this.options.min,"Date").valueOf():null;let r;if(isNaN(i)||null===i)throw new Error(`Invalid start "${t}"`);if(isNaN(n)||null===n)throw new Error(`Invalid end "${e}"`);if(no&&(n=o)),null!==o&&n>o&&(r=n-o,i-=r,n-=r,null!=s&&i=this.start-e&&n<=this.end?(i=this.start,n=this.end):(r=t-(n-i),i-=r/2,n+=r/2)}}if(null!==this.options.zoomMax){let t=parseFloat(this.options.zoomMax);t<0&&(t=0),n-i>t&&(this.end-this.start===t&&ithis.end?(i=this.start,n=this.end):(r=n-i-t,i+=r/2,n-=r/2))}const a=this.start!=i||this.end!=n;return i>=this.start&&i<=this.end||n>=this.start&&n<=this.end||this.start>=i&&this.start<=n||this.end>=i&&this.end<=n||this.body.emitter.emit("checkRangedItems"),this.start=i,this.end=n,a}getRange(){return{start:this.start,end:this.end}}conversion(t,e){return Oo.conversion(this.start,this.end,t,e)}static conversion(t,e,i,n){return void 0===n&&(n=0),0!=i&&e-t!=0?{offset:t,scale:i/(e-t-n)}:{offset:0,scale:1}}_onDragStart(t){this.deltaDifference=0,this.previousDelta=0,this.options.moveable&&this._isInsideRange(t)&&this.props.touch.allowDragging&&(this.stopRolling(),this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.dragging=!0,this.body.dom.root&&(this.body.dom.root.style.cursor="move"))}_onDrag(t){if(!t)return;if(!this.props.touch.dragging)return;if(!this.options.moveable)return;if(!this.props.touch.allowDragging)return;const e=this.options.direction;Mo(e);let i="horizontal"==e?t.deltaX:t.deltaY;i-=this.deltaDifference;let n=this.props.touch.end-this.props.touch.start;n-=So(this.body.hiddenDates,this.start,this.end);const o="horizontal"==e?this.body.domProps.center.width:this.body.domProps.center.height;let s;s=this.options.rtl?i/o*n:-i/o*n;const r=this.props.touch.start+s,a=this.props.touch.end+s,h=To(this.body.hiddenDates,r,this.previousDelta-i,!0),l=To(this.body.hiddenDates,a,this.previousDelta-i,!0);if(h!=r||l!=a)return this.deltaDifference+=i,this.props.touch.start=h,this.props.touch.end=l,void this._onDrag(t);this.previousDelta=i,this._applyRange(r,a);const d=new Date(this.start),c=new Date(this.end);this.body.emitter.emit("rangechange",{start:d,end:c,byUser:!0,event:t}),this.body.emitter.emit("panmove")}_onDragEnd(t){this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.dragging=!1,this.body.dom.root&&(this.body.dom.root.style.cursor="auto"),this.body.emitter.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end),byUser:!0,event:t}))}_onMouseWheel(t){let e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail?e=-t.detail/3:t.deltaY&&(e=-t.deltaY/3),!(this.options.zoomKey&&!t[this.options.zoomKey]&&this.options.zoomable||!this.options.zoomable&&this.options.moveable)&&this.options.zoomable&&this.options.moveable&&this._isInsideRange(t)&&e){const i=this.options.zoomFriction||5;let n,o;if(n=e<0?1-e/i:1/(1+e/i),this.rolling){const t=this.options.rollingMode&&this.options.rollingMode.offset||.5;o=this.start+(this.end-this.start)*t}else{const e=this.getPointer({x:t.clientX,y:t.clientY},this.body.dom.center);o=this._pointerToDate(e)}this.zoom(n,o,e,t),t.preventDefault()}}_onTouch(t){this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.allowDragging=!0,this.props.touch.center=null,this.props.touch.centerDate=null,this.scaleOffset=0,this.deltaDifference=0,yo.preventDefault(t)}_onPinch(t){if(!this.options.zoomable||!this.options.moveable)return;yo.preventDefault(t),this.props.touch.allowDragging=!1,this.props.touch.center||(this.props.touch.center=this.getPointer(t.center,this.body.dom.center),this.props.touch.centerDate=this._pointerToDate(this.props.touch.center)),this.stopRolling();const e=1/(t.scale+this.scaleOffset),i=this.props.touch.centerDate,n=So(this.body.hiddenDates,this.start,this.end),o=Co(this.options.moment,this.body.hiddenDates,this,i),s=n-o;let r=i-o+(this.props.touch.start-(i-o))*e,a=i+s+(this.props.touch.end-(i+s))*e;this.startToFront=1-e<=0,this.endToFront=e-1<=0;const h=To(this.body.hiddenDates,r,1-e,!0),l=To(this.body.hiddenDates,a,e-1,!0);h==r&&l==a||(this.props.touch.start=h,this.props.touch.end=l,this.scaleOffset=1-t.scale,r=h,a=l);const d={animation:!1,byUser:!0,event:t};this.setRange(r,a,d),this.startToFront=!1,this.endToFront=!0}_isInsideRange(t){const e=t.center?t.center.x:t.clientX,i=this.body.dom.centerContainer.getBoundingClientRect(),n=this.options.rtl?e-i.left:i.right-e,o=this.body.util.toTime(n);return o>=this.start&&o<=this.end}_pointerToDate(t){let e;const i=this.options.direction;if(Mo(i),"horizontal"==i)return this.body.util.toTime(t.x).valueOf();{const i=this.body.domProps.center.height;return e=this.conversion(i),t.y/e.scale+e.offset}}getPointer(t,e){const i=e.getBoundingClientRect();return this.options.rtl?{x:i.right-t.x,y:t.y-i.top}:{x:t.x-i.left,y:t.y-i.top}}zoom(t,e,i,n){null==e&&(e=(this.start+this.end)/2);const o=So(this.body.hiddenDates,this.start,this.end),s=Co(this.options.moment,this.body.hiddenDates,this,e),r=o-s;let a=e-s+(this.start-(e-s))*t,h=e+r+(this.end-(e+r))*t;this.startToFront=!(i>0),this.endToFront=!(-i>0);const l=To(this.body.hiddenDates,a,i,!0),d=To(this.body.hiddenDates,h,-i,!0);l==a&&d==h||(a=l,h=d);const c={animation:!1,byUser:!0,event:n};this.setRange(a,h,c),this.startToFront=!1,this.endToFront=!0}move(t){const e=this.end-this.start,i=this.start+e*t,n=this.end+e*t;this.start=i,this.end=n}moveTo(t){const e=(this.start+this.end)/2-t,i=this.start-e,n=this.end-e;this.setRange(i,n,{animation:!1,byUser:!0,event:null})}destroy(){this.stopRolling()}}function Mo(t){if("horizontal"!=t&&"vertical"!=t)throw new TypeError(`Unknown direction "${t}". Choose "horizontal" or "vertical".`)}let Po;if("undefined"!=typeof window){Po=function t(e,i){var n=i||{preventDefault:!1};if(e.Manager){var o=e,s=function(e,i){var s=Object.create(n);return i&&o.assign(s,i),t(new o(e,s),s)};return o.assign(s,o),s.Manager=function(e,i){var s=Object.create(n);return i&&o.assign(s,i),t(new o.Manager(e,s),s)},s}var r=Object.create(e),a=e.element;function h(t){return t.match(/[^ ]+/g)}function l(t){if("hammer.input"!==t.type){if(t.srcEvent._handled||(t.srcEvent._handled={}),t.srcEvent._handled[t.type])return;t.srcEvent._handled[t.type]=!0}var e=!1;t.stopPropagation=function(){e=!0};var i=t.srcEvent.stopPropagation.bind(t.srcEvent);"function"==typeof i&&(t.srcEvent.stopPropagation=function(){i(),t.stopPropagation()}),t.firstTarget=ro;for(var n=ro;n&&!e;){var o=n.hammer;if(o)for(var s,r=0;r0?r._handlers[t]=n:(e.off(t,l),delete r._handlers[t]))})),r},r.emit=function(t,i){ro=i.target,e.emit(t,i)},r.destroy=function(){var t=e.element.hammer,i=t.indexOf(r);-1!==i&&t.splice(i,1),t.length||delete e.element.hammer,r._handlers={},e.destroy()},r}(window.Hammer||Ye,{preventDefault:"mouse"})}else Po=()=>function(){const t=()=>{};return{on:t,off:t,destroy:t,emit:t,get:e=>({set:t})}}();var Io=Po;function Ao(t,e){e.inputHandler=function(t){t.isFirst&&e(t)},t.on("hammer.input",e.inputHandler)}class No{constructor(t,e,i,n,o){this.moment=o&&o.moment||ho,this.options=o||{},this.current=this.moment(),this._start=this.moment(),this._end=this.moment(),this.autoScale=!0,this.scale="day",this.step=1,this.setRange(t,e,i),this.switchedDay=!1,this.switchedMonth=!1,this.switchedYear=!1,Array.isArray(n)?this.hiddenDates=n:this.hiddenDates=null!=n?[n]:[],this.format=No.FORMAT}setMoment(t){this.moment=t,this.current=this.moment(this.current.valueOf()),this._start=this.moment(this._start.valueOf()),this._end=this.moment(this._end.valueOf())}setFormat(t){const e=yo.deepExtend({},No.FORMAT);this.format=yo.deepExtend(e,t)}setRange(t,e,i){if(!(t instanceof Date&&e instanceof Date))throw"No legal start or end date in method setRange";this._start=null!=t?this.moment(t.valueOf()):Date.now(),this._end=null!=e?this.moment(e.valueOf()):Date.now(),this.autoScale&&this.setMinimumStep(i)}start(){this.current=this._start.clone(),this.roundToMinor()}roundToMinor(){switch("week"==this.scale&&this.current.weekday(0),this.scale){case"year":this.current.year(this.step*Math.floor(this.current.year()/this.step)),this.current.month(0);case"month":this.current.date(1);case"week":case"day":case"weekday":this.current.hours(0);case"hour":this.current.minutes(0);case"minute":this.current.seconds(0);case"second":this.current.milliseconds(0)}if(1!=this.step){let t=this.current.clone();switch(this.scale){case"millisecond":this.current.subtract(this.current.milliseconds()%this.step,"milliseconds");break;case"second":this.current.subtract(this.current.seconds()%this.step,"seconds");break;case"minute":this.current.subtract(this.current.minutes()%this.step,"minutes");break;case"hour":this.current.subtract(this.current.hours()%this.step,"hours");break;case"weekday":case"day":this.current.subtract((this.current.date()-1)%this.step,"day");break;case"week":this.current.subtract(this.current.week()%this.step,"week");break;case"month":this.current.subtract(this.current.month()%this.step,"month");break;case"year":this.current.subtract(this.current.year()%this.step,"year")}t.isSame(this.current)||(this.current=this.moment(To(this.hiddenDates,this.current.valueOf(),-1,!0)))}}hasNext(){return this.current.valueOf()<=this._end.valueOf()}next(){const t=this.current.valueOf();switch(this.scale){case"millisecond":this.current.add(this.step,"millisecond");break;case"second":this.current.add(this.step,"second");break;case"minute":this.current.add(this.step,"minute");break;case"hour":this.current.add(this.step,"hour"),this.current.month()<6?this.current.subtract(this.current.hours()%this.step,"hour"):this.current.hours()%this.step!=0&&this.current.add(this.step-this.current.hours()%this.step,"hour");break;case"weekday":case"day":this.current.add(this.step,"day");break;case"week":if(0!==this.current.weekday())this.current.weekday(0),this.current.add(this.step,"week");else if(!1===this.options.showMajorLabels)this.current.add(this.step,"week");else{const t=this.current.clone();t.add(1,"week"),t.isSame(this.current,"month")?this.current.add(this.step,"week"):(this.current.add(this.step,"week"),this.current.date(1))}break;case"month":this.current.add(this.step,"month");break;case"year":this.current.add(this.step,"year")}if(1!=this.step)switch(this.scale){case"millisecond":this.current.milliseconds()>0&&this.current.milliseconds()0&&this.current.seconds()0&&this.current.minutes()0&&this.current.hours()=i&&o0?t.step:1,this.autoScale=!1)}setAutoScale(t){this.autoScale=t}setMinimumStep(t){if(null==t)return;const e=31104e6,i=2592e6,n=864e5,o=36e5,s=6e4,r=1e3;1e3*e>t&&(this.scale="year",this.step=1e3),500*e>t&&(this.scale="year",this.step=500),100*e>t&&(this.scale="year",this.step=100),50*e>t&&(this.scale="year",this.step=50),10*e>t&&(this.scale="year",this.step=10),5*e>t&&(this.scale="year",this.step=5),e>t&&(this.scale="year",this.step=1),7776e6>t&&(this.scale="month",this.step=3),i>t&&(this.scale="month",this.step=1),6048e5>t&&this.options.showWeekScale&&(this.scale="week",this.step=1),1728e5>t&&(this.scale="day",this.step=2),n>t&&(this.scale="day",this.step=1),432e5>t&&(this.scale="weekday",this.step=1),144e5>t&&(this.scale="hour",this.step=4),o>t&&(this.scale="hour",this.step=1),9e5>t&&(this.scale="minute",this.step=15),6e5>t&&(this.scale="minute",this.step=10),3e5>t&&(this.scale="minute",this.step=5),s>t&&(this.scale="minute",this.step=1),15e3>t&&(this.scale="second",this.step=15),1e4>t&&(this.scale="second",this.step=10),5e3>t&&(this.scale="second",this.step=5),r>t&&(this.scale="second",this.step=1),200>t&&(this.scale="millisecond",this.step=200),100>t&&(this.scale="millisecond",this.step=100),50>t&&(this.scale="millisecond",this.step=50),10>t&&(this.scale="millisecond",this.step=10),5>t&&(this.scale="millisecond",this.step=5),1>t&&(this.scale="millisecond",this.step=1)}static snap(t,e,i){const n=ho(t);if("year"==e){const t=n.year()+Math.round(n.month()/12);n.year(Math.round(t/i)*i),n.month(0),n.date(0),n.hours(0),n.minutes(0),n.seconds(0),n.milliseconds(0)}else if("month"==e)n.date()>15?(n.date(1),n.add(1,"month")):n.date(1),n.hours(0),n.minutes(0),n.seconds(0),n.milliseconds(0);else if("week"==e)n.weekday()>2?(n.weekday(0),n.add(1,"week")):n.weekday(0),n.hours(0),n.minutes(0),n.seconds(0),n.milliseconds(0);else if("day"==e){switch(i){case 5:case 2:n.hours(24*Math.round(n.hours()/24));break;default:n.hours(12*Math.round(n.hours()/12))}n.minutes(0),n.seconds(0),n.milliseconds(0)}else if("weekday"==e){switch(i){case 5:case 2:n.hours(12*Math.round(n.hours()/12));break;default:n.hours(6*Math.round(n.hours()/6))}n.minutes(0),n.seconds(0),n.milliseconds(0)}else if("hour"==e){if(4===i)n.minutes(60*Math.round(n.minutes()/60));else n.minutes(30*Math.round(n.minutes()/30));n.seconds(0),n.milliseconds(0)}else if("minute"==e){switch(i){case 15:case 10:n.minutes(5*Math.round(n.minutes()/5)),n.seconds(0);break;case 5:n.seconds(60*Math.round(n.seconds()/60));break;default:n.seconds(30*Math.round(n.seconds()/30))}n.milliseconds(0)}else if("second"==e)switch(i){case 15:case 10:n.seconds(5*Math.round(n.seconds()/5)),n.milliseconds(0);break;case 5:n.milliseconds(1e3*Math.round(n.milliseconds()/1e3));break;default:n.milliseconds(500*Math.round(n.milliseconds()/500))}else if("millisecond"==e){const t=i>5?i/2:1;n.milliseconds(Math.round(n.milliseconds()/t)*t)}return n}isMajor(){if(1==this.switchedYear)switch(this.scale){case"year":case"month":case"week":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedMonth)switch(this.scale){case"week":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedDay)switch(this.scale){case"millisecond":case"second":case"minute":case"hour":return!0;default:return!1}const t=this.moment(this.current);switch(this.scale){case"millisecond":return 0==t.milliseconds();case"second":return 0==t.seconds();case"minute":return 0==t.hours()&&0==t.minutes();case"hour":return 0==t.hours();case"weekday":case"day":return this.options.showWeekScale?1==t.isoWeekday():1==t.date();case"week":return 1==t.date();case"month":return 0==t.month();default:return!1}}getLabelMinor(t){if(null==t&&(t=this.current),t instanceof Date&&(t=this.moment(t)),"function"==typeof this.format.minorLabels)return this.format.minorLabels(t,this.scale,this.step);const e=this.format.minorLabels[this.scale];return"week"===this.scale&&1===t.date()&&0!==t.weekday()?"":e&&e.length>0?this.moment(t).format(e):""}getLabelMajor(t){if(null==t&&(t=this.current),t instanceof Date&&(t=this.moment(t)),"function"==typeof this.format.majorLabels)return this.format.majorLabels(t,this.scale,this.step);const e=this.format.majorLabels[this.scale];return e&&e.length>0?this.moment(t).format(e):""}getClassName(){const t=this.moment,e=this.moment(this.current),i=e.locale?e.locale("en"):e.lang("en"),n=this.step,o=[];function s(t){return t/n%2==0?" vis-even":" vis-odd"}function r(e){return e.isSame(Date.now(),"day")?" vis-today":e.isSame(t().add(1,"day"),"day")?" vis-tomorrow":e.isSame(t().add(-1,"day"),"day")?" vis-yesterday":""}function a(t){return t.isSame(Date.now(),"week")?" vis-current-week":""}function h(t){return t.isSame(Date.now(),"month")?" vis-current-month":""}switch(this.scale){case"millisecond":o.push(r(i)),o.push(s(i.milliseconds()));break;case"second":o.push(r(i)),o.push(s(i.seconds()));break;case"minute":o.push(r(i)),o.push(s(i.minutes()));break;case"hour":o.push(`vis-h${i.hours()}${4==this.step?"-h"+(i.hours()+4):""}`),o.push(r(i)),o.push(s(i.hours()));break;case"weekday":o.push(`vis-${i.format("dddd").toLowerCase()}`),o.push(r(i)),o.push(a(i)),o.push(s(i.date()));break;case"day":o.push(`vis-day${i.date()}`),o.push(`vis-${i.format("MMMM").toLowerCase()}`),o.push(r(i)),o.push(h(i)),o.push(this.step<=2?r(i):""),o.push(this.step<=2?`vis-${i.format("dddd").toLowerCase()}`:""),o.push(s(i.date()-1));break;case"week":o.push(`vis-week${i.format("w")}`),o.push(a(i)),o.push(s(i.week()));break;case"month":o.push(`vis-${i.format("MMMM").toLowerCase()}`),o.push(h(i)),o.push(s(i.month()));break;case"year":o.push(`vis-year${i.year()}`),o.push(function(t){return t.isSame(Date.now(),"year")?" vis-current-year":""}(i)),o.push(s(i.year()))}return o.filter(String).join(" ")}}No.FORMAT={minorLabels:{millisecond:"SSS",second:"s",minute:"HH:mm",hour:"HH:mm",weekday:"ddd D",day:"D",week:"w",month:"MMM",year:"YYYY"},majorLabels:{millisecond:"HH:mm:ss",second:"D MMMM HH:mm",minute:"ddd D MMMM",hour:"ddd D MMMM",weekday:"MMMM YYYY",day:"MMMM YYYY",week:"MMMM YYYY",month:"YYYY",year:""}};class Ro extends bo{constructor(t,e){super(),this.dom={foreground:null,lines:[],majorTexts:[],minorTexts:[],redundant:{lines:[],majorTexts:[],minorTexts:[]}},this.props={range:{start:0,end:0,minimumStep:0},lineTop:0},this.defaultOptions={orientation:{axis:"bottom"},showMinorLabels:!0,showMajorLabels:!0,showWeekScale:!1,maxMinorChars:7,format:yo.extend({},No.FORMAT),moment:ho,timeAxis:null},this.options=yo.extend({},this.defaultOptions),this.body=t,this._create(),this.setOptions(e)}setOptions(t){t&&(yo.selectiveExtend(["showMinorLabels","showMajorLabels","showWeekScale","maxMinorChars","hiddenDates","timeAxis","moment","rtl"],this.options,t),yo.selectiveDeepExtend(["format"],this.options,t),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation.axis=t.orientation:"object"==typeof t.orientation&&"axis"in t.orientation&&(this.options.orientation.axis=t.orientation.axis)),"locale"in t&&("function"==typeof ho.locale?ho.locale(t.locale):ho.lang(t.locale)))}_create(){this.dom.foreground=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.foreground.className="vis-time-axis vis-foreground",this.dom.background.className="vis-time-axis vis-background"}destroy(){this.dom.foreground.parentNode&&this.dom.foreground.parentNode.removeChild(this.dom.foreground),this.dom.background.parentNode&&this.dom.background.parentNode.removeChild(this.dom.background),this.body=null}redraw(){const t=this.props,e=this.dom.foreground,i=this.dom.background,n="top"==this.options.orientation.axis?this.body.dom.top:this.body.dom.bottom,o=e.parentNode!==n;this._calculateCharSize();const s=this.options.showMinorLabels&&"none"!==this.options.orientation.axis,r=this.options.showMajorLabels&&"none"!==this.options.orientation.axis;t.minorLabelHeight=s?t.minorCharHeight:0,t.majorLabelHeight=r?t.majorCharHeight:0,t.height=t.minorLabelHeight+t.majorLabelHeight,t.width=e.offsetWidth,t.minorLineHeight=this.body.domProps.root.height-t.majorLabelHeight-("top"==this.options.orientation.axis?this.body.domProps.bottom.height:this.body.domProps.top.height),t.minorLineWidth=1,t.majorLineHeight=t.minorLineHeight+t.majorLabelHeight,t.majorLineWidth=1;const a=e.nextSibling,h=i.nextSibling;return e.parentNode&&e.parentNode.removeChild(e),i.parentNode&&i.parentNode.removeChild(i),e.style.height=`${this.props.height}px`,this._repaintLabels(),a?n.insertBefore(e,a):n.appendChild(e),h?this.body.dom.backgroundVertical.insertBefore(i,h):this.body.dom.backgroundVertical.appendChild(i),this._isResized()||o}_repaintLabels(){const t=this.options.orientation.axis,e=yo.convert(this.body.range.start,"Number"),i=yo.convert(this.body.range.end,"Number"),n=this.body.util.toTime((this.props.minorCharWidth||10)*this.options.maxMinorChars).valueOf();let o=n-Co(this.options.moment,this.body.hiddenDates,this.body.range,n);o-=this.body.util.toTime(0).valueOf();const s=new No(new Date(e),new Date(i),o,this.body.hiddenDates,this.options);s.setMoment(this.options.moment),this.options.format&&s.setFormat(this.options.format),this.options.timeAxis&&s.setScale(this.options.timeAxis),this.step=s;const r=this.dom;let a,h,l,d,c,u;r.redundant.lines=r.lines,r.redundant.majorTexts=r.majorTexts,r.redundant.minorTexts=r.minorTexts,r.lines=[],r.majorTexts=[],r.minorTexts=[];let p,m,f,g=0,v=0;const y=1e3;let b;for(s.start(),h=s.getCurrent(),d=this.body.util.toScreen(h);s.hasNext()&&v=.4*p;if(this.options.showMinorLabels&&u){var w=this._repaintMinorText(l,s.getLabelMinor(a),t,b);w.style.width=`${g}px`}c&&this.options.showMajorLabels?(l>0&&(null==f&&(f=l),w=this._repaintMajorText(l,s.getLabelMajor(a),t,b)),m=this._repaintMajorLine(l,g,t,b)):u?m=this._repaintMinorLine(l,g,t,b):m&&(m.style.width=`${parseInt(m.style.width)+g}px`)}if(v!==y||Fo||(console.warn("Something is wrong with the Timeline scale. Limited drawing of grid lines to 1000 lines."),Fo=!0),this.options.showMajorLabels){const e=this.body.util.toTime(0),i=s.getLabelMajor(e),n=i.length*(this.props.majorCharWidth||10)+10;(null==f||n{for(;t.length;){const e=t.pop();e&&e.parentNode&&e.parentNode.removeChild(e)}}))}_repaintMinorText(t,e,i,n){let o=this.dom.redundant.minorTexts.shift();if(!o){const t=document.createTextNode("");o=document.createElement("div"),o.appendChild(t),this.dom.foreground.appendChild(o)}this.dom.minorTexts.push(o),o.innerHTML=yo.xss(e);let s="top"==i?this.props.majorLabelHeight:0;return this._setXY(o,t,s),o.className=`vis-text vis-minor ${n}`,o}_repaintMajorText(t,e,i,n){let o=this.dom.redundant.majorTexts.shift();if(!o){const t=document.createElement("div");o=document.createElement("div"),o.appendChild(t),this.dom.foreground.appendChild(o)}o.childNodes[0].innerHTML=yo.xss(e),o.className=`vis-text vis-major ${n}`;let s="top"==i?0:this.props.minorLabelHeight;return this._setXY(o,t,s),this.dom.majorTexts.push(o),o}_setXY(t,e,i){const n=this.options.rtl?-1*e:e;t.style.transform=`translate(${n}px, ${i}px)`}_repaintMinorLine(t,e,i,n){let o=this.dom.redundant.lines.shift();o||(o=document.createElement("div"),this.dom.background.appendChild(o)),this.dom.lines.push(o);const s=this.props;o.style.width=`${e}px`,o.style.height=`${s.minorLineHeight}px`;let r="top"==i?s.majorLabelHeight:this.body.domProps.top.height,a=t-s.minorLineWidth/2;return this._setXY(o,a,r),o.className=`vis-grid ${this.options.rtl?"vis-vertical-rtl":"vis-vertical"} vis-minor ${n}`,o}_repaintMajorLine(t,e,i,n){let o=this.dom.redundant.lines.shift();o||(o=document.createElement("div"),this.dom.background.appendChild(o)),this.dom.lines.push(o);const s=this.props;o.style.width=`${e}px`,o.style.height=`${s.majorLineHeight}px`;let r="top"==i?0:this.body.domProps.top.height,a=t-s.majorLineWidth/2;return this._setXY(o,a,r),o.className=`vis-grid ${this.options.rtl?"vis-vertical-rtl":"vis-vertical"} vis-major ${n}`,o}_calculateCharSize(){this.dom.measureCharMinor||(this.dom.measureCharMinor=document.createElement("DIV"),this.dom.measureCharMinor.className="vis-text vis-minor vis-measure",this.dom.measureCharMinor.style.position="absolute",this.dom.measureCharMinor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMinor)),this.props.minorCharHeight=this.dom.measureCharMinor.clientHeight,this.props.minorCharWidth=this.dom.measureCharMinor.clientWidth,this.dom.measureCharMajor||(this.dom.measureCharMajor=document.createElement("DIV"),this.dom.measureCharMajor.className="vis-text vis-major vis-measure",this.dom.measureCharMajor.style.position="absolute",this.dom.measureCharMajor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMajor)),this.props.majorCharHeight=this.dom.measureCharMajor.clientHeight,this.props.majorCharWidth=this.dom.measureCharMajor.clientWidth}}var Fo=!1;function Lo(t){this.active=!1,this.dom={container:t},this.dom.overlay=document.createElement("div"),this.dom.overlay.className="vis-overlay",this.dom.container.appendChild(this.dom.overlay),this.hammer=Io(this.dom.overlay),this.hammer.on("tap",this._onTapOverlay.bind(this));var e=this;["tap","doubletap","press","pinch","pan","panstart","panmove","panend"].forEach((function(t){e.hammer.on(t,(function(t){t.stopPropagation()}))})),document&&document.body&&(this.onClick=function(i){(function(t,e){for(;t;){if(t===e)return!0;t=t.parentNode}return!1})(i.target,t)||e.deactivate()},document.body.addEventListener("click",this.onClick)),void 0!==this.keycharm&&this.keycharm.destroy(),this.keycharm=function(t){var e,i=t&&t.preventDefault||!1,n=t&&t.container||window,o={},s={keydown:{},keyup:{}},r={};for(e=97;e<=122;e++)r[String.fromCharCode(e)]={code:e-97+65,shift:!1};for(e=65;e<=90;e++)r[String.fromCharCode(e)]={code:e,shift:!0};for(e=0;e<=9;e++)r[""+e]={code:48+e,shift:!1};for(e=1;e<=12;e++)r["F"+e]={code:111+e,shift:!1};for(e=0;e<=9;e++)r["num"+e]={code:96+e,shift:!1};r["num*"]={code:106,shift:!1},r["num+"]={code:107,shift:!1},r["num-"]={code:109,shift:!1},r["num/"]={code:111,shift:!1},r["num."]={code:110,shift:!1},r.left={code:37,shift:!1},r.up={code:38,shift:!1},r.right={code:39,shift:!1},r.down={code:40,shift:!1},r.space={code:32,shift:!1},r.enter={code:13,shift:!1},r.shift={code:16,shift:void 0},r.esc={code:27,shift:!1},r.backspace={code:8,shift:!1},r.tab={code:9,shift:!1},r.ctrl={code:17,shift:!1},r.alt={code:18,shift:!1},r.delete={code:46,shift:!1},r.pageup={code:33,shift:!1},r.pagedown={code:34,shift:!1},r["="]={code:187,shift:!1},r["-"]={code:189,shift:!1},r["]"]={code:221,shift:!1},r["["]={code:219,shift:!1};var a=function(t){l(t,"keydown")},h=function(t){l(t,"keyup")},l=function(t,e){if(void 0!==s[e][t.keyCode]){for(var n=s[e][t.keyCode],o=0;o{this.options.locales[t]=yo.extend({},i,this.options.locales[t])})),e&&null!=e.time?this.customTime=e.time:this.customTime=new Date,this.eventParams={},this._create()}setOptions(t){t&&yo.selectiveExtend(["moment","locale","locales","id","title","rtl","snap"],this.options,t)}_create(){const t=document.createElement("div");t["custom-time"]=this,t.className=`vis-custom-time ${this.options.id||""}`,t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t;const e=document.createElement("div");function i(t){this.body.range._onMouseWheel(t)}e.style.position="relative",e.style.top="0px",this.options.rtl?e.style.right="-10px":e.style.left="-10px",e.style.height="100%",e.style.width="20px",e.addEventListener?(e.addEventListener("mousewheel",i.bind(this),!1),e.addEventListener("DOMMouseScroll",i.bind(this),!1)):e.attachEvent("onmousewheel",i.bind(this)),t.appendChild(e),this.hammer=new Io(e),this.hammer.on("panstart",this._onDragStart.bind(this)),this.hammer.on("panmove",this._onDrag.bind(this)),this.hammer.on("panend",this._onDragEnd.bind(this)),this.hammer.get("pan").set({threshold:5,direction:Io.DIRECTION_ALL}),this.hammer.get("press").set({time:1e4})}destroy(){this.hide(),this.hammer.destroy(),this.hammer=null,this.body=null}redraw(){const t=this.body.dom.backgroundVertical;this.bar.parentNode!=t&&(this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),t.appendChild(this.bar));const e=this.body.util.toScreen(this.customTime);let i=this.options.locales[this.options.locale];i||(this.warned||(console.warn(`WARNING: options.locales['${this.options.locale}'] not found. See https://visjs.github.io/vis-timeline/docs/timeline/#Localization`),this.warned=!0),i=this.options.locales.en);let n=this.options.title;return void 0===n?(n=`${i.time}: ${this.options.moment(this.customTime).format("dddd, MMMM Do YYYY, H:mm:ss")}`,n=n.charAt(0).toUpperCase()+n.substring(1)):"function"==typeof n&&(n=n.call(this,this.customTime)),this.options.rtl?this.bar.style.right=`${e}px`:this.bar.style.left=`${e}px`,this.bar.title=n,!1}hide(){this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar)}setCustomTime(t){this.customTime=yo.convert(t,"Date"),this.redraw()}getCustomTime(){return new Date(this.customTime.valueOf())}setCustomMarker(t,e){this.marker&&this.bar.removeChild(this.marker),this.marker=document.createElement("div"),this.marker.className="vis-custom-time-marker",this.marker.innerHTML=yo.xss(t),this.marker.style.position="absolute",e&&(this.marker.setAttribute("contenteditable","true"),this.marker.addEventListener("pointerdown",(function(){this.marker.focus()})),this.marker.addEventListener("input",this._onMarkerChange.bind(this)),this.marker.title=t,this.marker.addEventListener("blur",function(t){this.title!=t.target.innerHTML&&(this._onMarkerChanged(t),this.title=t.target.innerHTML)}.bind(this))),this.bar.appendChild(this.marker)}setCustomTitle(t){this.options.title=t}_onDragStart(t){this.eventParams.dragging=!0,this.eventParams.customTime=this.customTime,t.stopPropagation()}_onDrag(t){if(!this.eventParams.dragging)return;let e=this.options.rtl?-1*t.deltaX:t.deltaX;const i=this.body.util.toScreen(this.eventParams.customTime)+e,n=this.body.util.toTime(i),o=this.body.util.getScale(),s=this.body.util.getStep(),r=this.options.snap,a=r?r(n,o,s):n;this.setCustomTime(a),this.body.emitter.emit("timechange",{id:this.options.id,time:new Date(this.customTime.valueOf()),event:t}),t.stopPropagation()}_onDragEnd(t){this.eventParams.dragging&&(this.body.emitter.emit("timechanged",{id:this.options.id,time:new Date(this.customTime.valueOf()),event:t}),t.stopPropagation())}_onMarkerChange(t){this.body.emitter.emit("markerchange",{id:this.options.id,title:t.target.innerHTML,event:t}),t.stopPropagation()}_onMarkerChanged(t){this.body.emitter.emit("markerchanged",{id:this.options.id,title:t.target.innerHTML,event:t}),t.stopPropagation()}static customTimeFromTarget(t){let e=t.target;for(;e;){if(e.hasOwnProperty("custom-time"))return e["custom-time"];e=e.parentNode}return null}}class ts{_create(t){this.dom={},this.dom.container=t,this.dom.container.style.position="relative",this.dom.root=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.backgroundVertical=document.createElement("div"),this.dom.backgroundHorizontal=document.createElement("div"),this.dom.centerContainer=document.createElement("div"),this.dom.leftContainer=document.createElement("div"),this.dom.rightContainer=document.createElement("div"),this.dom.center=document.createElement("div"),this.dom.left=document.createElement("div"),this.dom.right=document.createElement("div"),this.dom.top=document.createElement("div"),this.dom.bottom=document.createElement("div"),this.dom.shadowTop=document.createElement("div"),this.dom.shadowBottom=document.createElement("div"),this.dom.shadowTopLeft=document.createElement("div"),this.dom.shadowBottomLeft=document.createElement("div"),this.dom.shadowTopRight=document.createElement("div"),this.dom.shadowBottomRight=document.createElement("div"),this.dom.rollingModeBtn=document.createElement("div"),this.dom.loadingScreen=document.createElement("div"),this.dom.root.className="vis-timeline",this.dom.background.className="vis-panel vis-background",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical",this.dom.backgroundHorizontal.className="vis-panel vis-background vis-horizontal",this.dom.centerContainer.className="vis-panel vis-center",this.dom.leftContainer.className="vis-panel vis-left",this.dom.rightContainer.className="vis-panel vis-right",this.dom.top.className="vis-panel vis-top",this.dom.bottom.className="vis-panel vis-bottom",this.dom.left.className="vis-content",this.dom.center.className="vis-content",this.dom.right.className="vis-content",this.dom.shadowTop.className="vis-shadow vis-top",this.dom.shadowBottom.className="vis-shadow vis-bottom",this.dom.shadowTopLeft.className="vis-shadow vis-top",this.dom.shadowBottomLeft.className="vis-shadow vis-bottom",this.dom.shadowTopRight.className="vis-shadow vis-top",this.dom.shadowBottomRight.className="vis-shadow vis-bottom",this.dom.rollingModeBtn.className="vis-rolling-mode-btn",this.dom.loadingScreen.className="vis-loading-screen",this.dom.root.appendChild(this.dom.background),this.dom.root.appendChild(this.dom.backgroundVertical),this.dom.root.appendChild(this.dom.backgroundHorizontal),this.dom.root.appendChild(this.dom.centerContainer),this.dom.root.appendChild(this.dom.leftContainer),this.dom.root.appendChild(this.dom.rightContainer),this.dom.root.appendChild(this.dom.top),this.dom.root.appendChild(this.dom.bottom),this.dom.root.appendChild(this.dom.rollingModeBtn),this.dom.centerContainer.appendChild(this.dom.center),this.dom.leftContainer.appendChild(this.dom.left),this.dom.rightContainer.appendChild(this.dom.right),this.dom.centerContainer.appendChild(this.dom.shadowTop),this.dom.centerContainer.appendChild(this.dom.shadowBottom),this.dom.leftContainer.appendChild(this.dom.shadowTopLeft),this.dom.leftContainer.appendChild(this.dom.shadowBottomLeft),this.dom.rightContainer.appendChild(this.dom.shadowTopRight),this.dom.rightContainer.appendChild(this.dom.shadowBottomRight),this.props={root:{},background:{},centerContainer:{},leftContainer:{},rightContainer:{},center:{},left:{},right:{},top:{},bottom:{},border:{},scrollTop:0,scrollTopMin:0},this.on("rangechange",(()=>{!0===this.initialDrawDone&&this._redraw()})),this.on("rangechanged",(()=>{this.initialRangeChangeDone||(this.initialRangeChangeDone=!0)})),this.on("touch",this._onTouch.bind(this)),this.on("panmove",this._onDrag.bind(this));const e=this;this._origRedraw=this._redraw.bind(this),this._redraw=yo.throttle(this._origRedraw),this.on("_change",(t=>{e.itemSet&&e.itemSet.initialItemSetDrawn&&t&&1==t.queue?e._redraw():e._origRedraw()})),this.hammer=new Io(this.dom.root);const i=this.hammer.get("pinch").set({enable:!0});i&&function(t){t.getTouchAction=function(){return["pan-y"]}}(i),this.hammer.get("pan").set({threshold:5,direction:Io.DIRECTION_ALL}),this.timelineListeners={};var n,o;function s(t){this.isActive()&&this.emit("mousewheel",t);let e=0,i=0;if("detail"in t&&(i=-1*t.detail),"wheelDelta"in t&&(i=t.wheelDelta),"wheelDeltaY"in t&&(i=t.wheelDeltaY),"wheelDeltaX"in t&&(e=-1*t.wheelDeltaX),"axis"in t&&t.axis===t.HORIZONTAL_AXIS&&(e=-1*i,i=0),"deltaY"in t&&(i=-1*t.deltaY),"deltaX"in t&&(e=t.deltaX),t.deltaMode&&(1===t.deltaMode?(e*=40,i*=40):(e*=40,i*=800)),this.options.preferZoom){if(!this.options.zoomKey||t[this.options.zoomKey])return}else if(this.options.zoomKey&&t[this.options.zoomKey])return;if(this.options.verticalScroll||this.options.horizontalScroll)if(this.options.verticalScroll&&Math.abs(i)>=Math.abs(e)){const e=this.props.scrollTop,n=e+i;if(this.isActive()){this._setScrollTop(n)!==e&&(this._redraw(),this.emit("scroll",t),t.preventDefault())}}else if(this.options.horizontalScroll){const n=(Math.abs(e)>=Math.abs(i)?e:i)/120*(this.range.end-this.range.start)/20,o=this.range.start+n,s=this.range.end+n,r={animation:!1,byUser:!0,event:t};this.range.setRange(o,s,r),t.preventDefault()}}["tap","doubletap","press","pinch","pan","panstart","panmove","panend"].forEach((t=>{const i=i=>{e.isActive()&&e.emit(t,i)};e.hammer.on(t,i),e.timelineListeners[t]=i})),Ao(this.hammer,(t=>{e.emit("touch",t)})),n=this.hammer,(o=t=>{e.emit("release",t)}).inputHandler=function(t){t.isFinal&&o(t)},n.on("hammer.input",o.inputHandler);const r="onwheel"in document.createElement("div")?"wheel":void 0!==document.onmousewheel?"mousewheel":this.dom.centerContainer.addEventListener?"DOMMouseScroll":"onmousewheel";function a(t){if(e.options.verticalScroll&&(t.preventDefault(),e.isActive())){const i=-t.target.scrollTop;e._setScrollTop(i),e._redraw(),e.emit("scrollSide",t)}}this.dom.top.addEventListener,this.dom.bottom.addEventListener,this.dom.centerContainer.addEventListener(r,s.bind(this),!1),this.dom.top.addEventListener(r,s.bind(this),!1),this.dom.bottom.addEventListener(r,s.bind(this),!1),this.dom.left.parentNode.addEventListener("scroll",a.bind(this)),this.dom.right.parentNode.addEventListener("scroll",a.bind(this));let h=!1;if(this.dom.center.addEventListener("dragover",function(t){if(t.preventDefault&&(e.emit("dragover",e.getEventProperties(t)),t.preventDefault()),t.target.className.indexOf("timeline")>-1&&!h)return t.dataTransfer.dropEffect="move",h=!0,!1}.bind(this),!1),this.dom.center.addEventListener("drop",function(t){t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation();try{var i=JSON.parse(t.dataTransfer.getData("text"));if(!i||!i.content)return}catch(t){return!1}return h=!1,t.center={x:t.clientX,y:t.clientY},"item"!==i.target?e.itemSet._onAddItem(t):e.itemSet._onDropObjectOnItem(t),e.emit("drop",e.getEventProperties(t)),!1}.bind(this),!1),this.customTimes=[],this.touch={},this.redrawCount=0,this.initialDrawDone=!1,this.initialRangeChangeDone=!1,!t)throw new Error("No container provided");t.appendChild(this.dom.root),t.appendChild(this.dom.loadingScreen)}setOptions(t){if(t){const e=["width","height","minHeight","maxHeight","autoResize","start","end","clickToUse","dataAttributes","hiddenDates","locale","locales","moment","preferZoom","rtl","zoomKey","horizontalScroll","verticalScroll","longSelectPressTime","snap"];if(yo.selectiveExtend(e,this.options,t),this.dom.rollingModeBtn.style.visibility="hidden",this.options.rtl&&(this.dom.container.style.direction="rtl",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical-rtl"),this.options.verticalScroll&&(this.options.rtl?this.dom.rightContainer.className="vis-panel vis-right vis-vertical-scroll":this.dom.leftContainer.className="vis-panel vis-left vis-vertical-scroll"),"object"!=typeof this.options.orientation&&(this.options.orientation={item:void 0,axis:void 0}),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation={item:t.orientation,axis:t.orientation}:"object"==typeof t.orientation&&("item"in t.orientation&&(this.options.orientation.item=t.orientation.item),"axis"in t.orientation&&(this.options.orientation.axis=t.orientation.axis))),"both"===this.options.orientation.axis){if(!this.timeAxis2){const t=this.timeAxis2=new Ro(this.body,this.options);t.setOptions=e=>{const i=e?yo.extend({},e):{};i.orientation="top",Ro.prototype.setOptions.call(t,i)},this.components.push(t)}}else if(this.timeAxis2){const t=this.components.indexOf(this.timeAxis2);-1!==t&&this.components.splice(t,1),this.timeAxis2.destroy(),this.timeAxis2=null}"function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),"hiddenDates"in this.options&&wo(this.options.moment,this.body,this.options.hiddenDates),"clickToUse"in t&&(t.clickToUse?this.activator||(this.activator=new Lo(this.dom.root)):this.activator&&(this.activator.destroy(),delete this.activator)),this._initAutoResize()}if(this.components.forEach((e=>e.setOptions(t))),"configure"in t){this.configurator||(this.configurator=this._createConfigurator()),this.configurator.setOptions(t.configure);const e=yo.deepExtend({},this.options);this.components.forEach((t=>{yo.deepExtend(e,t.options)})),this.configurator.setModuleOptions({global:e})}this._redraw()}isActive(){return!this.activator||this.activator.active}destroy(){this.setItems(null),this.setGroups(null),this.off(),this._stopAutoResize(),this.dom.root.parentNode&&this.dom.root.parentNode.removeChild(this.dom.root),this.dom=null,this.activator&&(this.activator.destroy(),delete this.activator);for(const t in this.timelineListeners)this.timelineListeners.hasOwnProperty(t)&&delete this.timelineListeners[t];this.timelineListeners=null,this.hammer&&this.hammer.destroy(),this.hammer=null,this.components.forEach((t=>t.destroy())),this.body=null}setCustomTime(t,e){const i=this.customTimes.filter((t=>e===t.options.id));if(0===i.length)throw new Error(`No custom time bar found with id ${JSON.stringify(e)}`);i.length>0&&i[0].setCustomTime(t)}getCustomTime(t){const e=this.customTimes.filter((e=>e.options.id===t));if(0===e.length)throw new Error(`No custom time bar found with id ${JSON.stringify(t)}`);return e[0].getCustomTime()}setCustomTimeMarker(t,e,i){const n=this.customTimes.filter((t=>t.options.id===e));if(0===n.length)throw new Error(`No custom time bar found with id ${JSON.stringify(e)}`);n.length>0&&n[0].setCustomMarker(t,i)}setCustomTimeTitle(t,e){const i=this.customTimes.filter((t=>t.options.id===e));if(0===i.length)throw new Error(`No custom time bar found with id ${JSON.stringify(e)}`);if(i.length>0)return i[0].setCustomTitle(t)}getEventProperties(t){return{event:t}}addCustomTime(t,e){const i=void 0!==t?yo.convert(t,"Date"):new Date,n=this.customTimes.some((t=>t.options.id===e));if(n)throw new Error(`A custom time with id ${JSON.stringify(e)} already exists`);const o=new Jo(this.body,yo.extend({},this.options,{time:i,id:e,snap:this.itemSet?this.itemSet.options.snap:this.options.snap}));return this.customTimes.push(o),this.components.push(o),this._redraw(),e}removeCustomTime(t){const e=this.customTimes.filter((e=>e.options.id===t));if(0===e.length)throw new Error(`No custom time bar found with id ${JSON.stringify(t)}`);e.forEach((t=>{this.customTimes.splice(this.customTimes.indexOf(t),1),this.components.splice(this.components.indexOf(t),1),t.destroy()}))}getVisibleItems(){return this.itemSet&&this.itemSet.getVisibleItems()||[]}getItemsAtCurrentTime(t){return this.time=t,this.itemSet&&this.itemSet.getItemsAtCurrentTime(this.time)||[]}getVisibleGroups(){return this.itemSet&&this.itemSet.getVisibleGroups()||[]}fit(t,e){const i=this.getDataRange();if(null===i.min&&null===i.max)return;const n=i.max-i.min,o=new Date(i.min.valueOf()-.01*n),s=new Date(i.max.valueOf()+.01*n),r=!t||void 0===t.animation||t.animation;this.range.setRange(o,s,{animation:r},e)}getDataRange(){throw new Error("Cannot invoke abstract method getDataRange")}setWindow(t,e,i,n){let o,s;"function"==typeof arguments[2]&&(n=arguments[2],i={}),1==arguments.length?(s=arguments[0],o=void 0===s.animation||s.animation,this.range.setRange(s.start,s.end,{animation:o})):2==arguments.length&&"function"==typeof arguments[1]?(s=arguments[0],n=arguments[1],o=void 0===s.animation||s.animation,this.range.setRange(s.start,s.end,{animation:o},n)):(o=!i||void 0===i.animation||i.animation,this.range.setRange(t,e,{animation:o},n))}moveTo(t,e,i){"function"==typeof arguments[1]&&(i=arguments[1],e={});const n=this.range.end-this.range.start,o=yo.convert(t,"Date").valueOf(),s=o-n/2,r=o+n/2,a=!e||void 0===e.animation||e.animation;this.range.setRange(s,r,{animation:a},i)}getWindow(){const t=this.range.getRange();return{start:new Date(t.start),end:new Date(t.end)}}zoomIn(t,e,i){if(!t||t<0||t>1)return;"function"==typeof arguments[1]&&(i=arguments[1],e={});const n=this.getWindow(),o=n.start.valueOf(),s=n.end.valueOf(),r=s-o,a=(r-r/(1+t))/2,h=o+a,l=s-a;this.setWindow(h,l,e,i)}zoomOut(t,e,i){if(!t||t<0||t>1)return;"function"==typeof arguments[1]&&(i=arguments[1],e={});const n=this.getWindow(),o=n.start.valueOf(),s=n.end.valueOf(),r=s-o,a=o-r*t/2,h=s+r*t/2;this.setWindow(a,h,e,i)}redraw(){this._redraw()}_redraw(){this.redrawCount++;const t=this.dom;if(!t||!t.container||0==t.root.offsetWidth)return;let e=!1;const i=this.options,n=this.props;_o(this.options.moment,this.body,this.options.hiddenDates),"top"==i.orientation?(yo.addClassName(t.root,"vis-top"),yo.removeClassName(t.root,"vis-bottom")):(yo.removeClassName(t.root,"vis-top"),yo.addClassName(t.root,"vis-bottom")),i.rtl?(yo.addClassName(t.root,"vis-rtl"),yo.removeClassName(t.root,"vis-ltr")):(yo.addClassName(t.root,"vis-ltr"),yo.removeClassName(t.root,"vis-rtl")),t.root.style.maxHeight=yo.option.asSize(i.maxHeight,""),t.root.style.minHeight=yo.option.asSize(i.minHeight,""),t.root.style.width=yo.option.asSize(i.width,"");const o=t.root.offsetWidth;n.border.left=1,n.border.right=1,n.border.top=1,n.border.bottom=1,n.center.height=t.center.offsetHeight,n.left.height=t.left.offsetHeight,n.right.height=t.right.offsetHeight,n.top.height=t.top.clientHeight||-n.border.top,n.bottom.height=Math.round(t.bottom.getBoundingClientRect().height)||t.bottom.clientHeight||-n.border.bottom;const s=Math.max(n.left.height,n.center.height,n.right.height),r=n.top.height+s+n.bottom.height+n.border.top+n.border.bottom;t.root.style.height=yo.option.asSize(i.height,`${r}px`),n.root.height=t.root.offsetHeight,n.background.height=n.root.height;const a=n.root.height-n.top.height-n.bottom.height;n.centerContainer.height=a,n.leftContainer.height=a,n.rightContainer.height=n.leftContainer.height,n.root.width=o,n.background.width=n.root.width,this.initialDrawDone||(n.scrollbarWidth=yo.getScrollBarWidth());const h=t.leftContainer.clientWidth,l=t.rightContainer.clientWidth;i.verticalScroll?i.rtl?(n.left.width=h||-n.border.left,n.right.width=l+n.scrollbarWidth||-n.border.right):(n.left.width=h+n.scrollbarWidth||-n.border.left,n.right.width=l||-n.border.right):(n.left.width=h||-n.border.left,n.right.width=l||-n.border.right),this._setDOM();let d=this._updateScrollTop();"top"!=i.orientation.item&&(d+=Math.max(n.centerContainer.height-n.center.height-n.border.top-n.border.bottom,0)),t.center.style.transform=`translateY(${d}px)`;const c=0==n.scrollTop?"hidden":"",u=n.scrollTop==n.scrollTopMin?"hidden":"";t.shadowTop.style.visibility=c,t.shadowBottom.style.visibility=u,t.shadowTopLeft.style.visibility=c,t.shadowBottomLeft.style.visibility=u,t.shadowTopRight.style.visibility=c,t.shadowBottomRight.style.visibility=u,i.verticalScroll&&(t.rightContainer.className="vis-panel vis-right vis-vertical-scroll",t.leftContainer.className="vis-panel vis-left vis-vertical-scroll",t.shadowTopRight.style.visibility="hidden",t.shadowBottomRight.style.visibility="hidden",t.shadowTopLeft.style.visibility="hidden",t.shadowBottomLeft.style.visibility="hidden",t.left.style.top="0px",t.right.style.top="0px"),(!i.verticalScroll||n.center.heightn.centerContainer.height;this.hammer.get("pan").set({direction:p?Io.DIRECTION_ALL:Io.DIRECTION_HORIZONTAL}),this.hammer.get("press").set({time:this.options.longSelectPressTime}),this.components.forEach((t=>{e=t.redraw()||e}));if(e){if(this.redrawCount<5)return void this.body.emitter.emit("_change");console.log("WARNING: infinite loop in redraw?")}else this.redrawCount=0;this.body.emitter.emit("changed")}_setDOM(){const t=this.props,e=this.dom;t.leftContainer.width=t.left.width,t.rightContainer.width=t.right.width;const i=t.root.width-t.left.width-t.right.width;t.center.width=i,t.centerContainer.width=i,t.top.width=i,t.bottom.width=i,e.background.style.height=`${t.background.height}px`,e.backgroundVertical.style.height=`${t.background.height}px`,e.backgroundHorizontal.style.height=`${t.centerContainer.height}px`,e.centerContainer.style.height=`${t.centerContainer.height}px`,e.leftContainer.style.height=`${t.leftContainer.height}px`,e.rightContainer.style.height=`${t.rightContainer.height}px`,e.background.style.width=`${t.background.width}px`,e.backgroundVertical.style.width=`${t.centerContainer.width}px`,e.backgroundHorizontal.style.width=`${t.background.width}px`,e.centerContainer.style.width=`${t.center.width}px`,e.top.style.width=`${t.top.width}px`,e.bottom.style.width=`${t.bottom.width}px`,e.background.style.left="0",e.background.style.top="0",e.backgroundVertical.style.left=`${t.left.width+t.border.left}px`,e.backgroundVertical.style.top="0",e.backgroundHorizontal.style.left="0",e.backgroundHorizontal.style.top=`${t.top.height}px`,e.centerContainer.style.left=`${t.left.width}px`,e.centerContainer.style.top=`${t.top.height}px`,e.leftContainer.style.left="0",e.leftContainer.style.top=`${t.top.height}px`,e.rightContainer.style.left=`${t.left.width+t.center.width}px`,e.rightContainer.style.top=`${t.top.height}px`,e.top.style.left=`${t.left.width}px`,e.top.style.top="0",e.bottom.style.left=`${t.left.width}px`,e.bottom.style.top=`${t.top.height+t.centerContainer.height}px`,e.center.style.left="0",e.left.style.left="0",e.right.style.left="0"}setCurrentTime(t){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");this.currentTime.setCurrentTime(t)}getCurrentTime(){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");return this.currentTime.getCurrentTime()}_toTime(t){return ko(this,t,this.props.center.width)}_toGlobalTime(t){return ko(this,t,this.props.root.width)}_toScreen(t){return xo(this,t,this.props.center.width)}_toGlobalScreen(t){return xo(this,t,this.props.root.width)}_initAutoResize(){1==this.options.autoResize?this._startAutoResize():this._stopAutoResize()}_startAutoResize(){const t=this;this._stopAutoResize(),this._onResize=()=>{if(1==t.options.autoResize){if(t.dom.root){const e=t.dom.root.offsetHeight,i=t.dom.root.offsetWidth;i==t.props.lastWidth&&e==t.props.lastHeight||(t.props.lastWidth=i,t.props.lastHeight=e,t.props.scrollbarWidth=yo.getScrollBarWidth(),t.body.emitter.emit("_change"))}}else t._stopAutoResize()},window.addEventListener("resize",this._onResize),t.dom.root&&(t.props.lastWidth=t.dom.root.offsetWidth,t.props.lastHeight=t.dom.root.offsetHeight),this.watchTimer=setInterval(this._onResize,1e3)}_stopAutoResize(){this.watchTimer&&(clearInterval(this.watchTimer),this.watchTimer=void 0),this._onResize&&(window.removeEventListener("resize",this._onResize),this._onResize=null)}_onTouch(t){this.touch.allowDragging=!0,this.touch.initialScrollTop=this.props.scrollTop}_onPinch(t){this.touch.allowDragging=!1}_onDrag(t){if(!t)return;if(!this.touch.allowDragging)return;const e=t.deltaY,i=this._getScrollTop(),n=this._setScrollTop(this.touch.initialScrollTop+e);this.options.verticalScroll&&(this.dom.left.parentNode.scrollTop=-this.props.scrollTop,this.dom.right.parentNode.scrollTop=-this.props.scrollTop),n!=i&&this.emit("verticalDrag")}_setScrollTop(t){return this.props.scrollTop=t,this._updateScrollTop(),this.props.scrollTop}_updateScrollTop(){const t=Math.min(this.props.centerContainer.height-this.props.border.top-this.props.border.bottom-this.props.center.height,0);return t!=this.props.scrollTopMin&&("top"!=this.options.orientation.item&&(this.props.scrollTop+=t-this.props.scrollTopMin),this.props.scrollTopMin=t),this.props.scrollTop>0&&(this.props.scrollTop=0),this.props.scrollTop{this.options.locales[t]=yo.extend({},i,this.options.locales[t])})),this.offset=0,this._create()}_create(){const t=document.createElement("div");t.className="vis-current-time",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t}destroy(){this.options.showCurrentTime=!1,this.redraw(),this.body=null}setOptions(t){t&&yo.selectiveExtend(["rtl","showCurrentTime","alignCurrentTime","moment","locale","locales"],this.options,t)}redraw(){if(this.options.showCurrentTime){const t=this.body.dom.backgroundVertical;this.bar.parentNode!=t&&(this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),t.appendChild(this.bar),this.start());let e=this.options.moment(Date.now()+this.offset);this.options.alignCurrentTime&&(e=e.startOf(this.options.alignCurrentTime));const i=this.body.util.toScreen(e);let n=this.options.locales[this.options.locale];n||(this.warned||(console.warn(`WARNING: options.locales['${this.options.locale}'] not found. See https://visjs.github.io/vis-timeline/docs/timeline/#Localization`),this.warned=!0),n=this.options.locales.en);let o=`${n.current} ${n.time}: ${e.format("dddd, MMMM Do YYYY, H:mm:ss")}`;o=o.charAt(0).toUpperCase()+o.substring(1),this.options.rtl?this.bar.style.transform=`translateX(${-1*i}px)`:this.bar.style.transform=`translateX(${i}px)`,this.bar.title=o}else this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),this.stop();return!1}start(){const t=this;!function e(){t.stop();let i=1/t.body.range.conversion(t.body.domProps.center.width).scale/10;i<30&&(i=30),i>1e3&&(i=1e3),t.redraw(),t.body.emitter.emit("currentTimeTick"),t.currentTimeTimer=setTimeout(e,i)}()}stop(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer)}setCurrentTime(t){const e=yo.convert(t,"Date").valueOf(),i=Date.now();this.offset=e-i,this.redraw()}getCurrentTime(){return new Date(Date.now()+this.offset)}}const is=.001;function ns(t,e,i,n){return null===as(t,e.item,!1,(t=>t.stack&&(i||null===t.top)),(t=>t.stack),(t=>e.axis),n)}function os(t,e,i){const n=as(t,e.item,!1,(t=>t.stack),(t=>!0),(t=>t.baseTop));i.height=n-i.top+.5*e.item.vertical}function ss(t,e,i,n){for(let o=0;ot.index>e.index?1:t.index!0),(t=>!0),(t=>0));for(let n=0;ni[t].index&&(i[s].top+=i[t].height);const o=t[s];for(let t=0;tt.start,h=t=>t.end;if(!i){const i=!(!t[0]||!t[0].options.rtl);a=i?t=>t.right:t=>t.left,h=t=>a(t)+t.width+e.horizontal}const l=[],d=[];let c=null,u=0;for(const e of t)if(n(e))l.push(e);else if(o(e)){const t=a(e);null!==c&&ta(e)-is>t),u),d.splice(u,0,e),u++}c=null;let p=null;u=0;let m=0,f=0,g=0;for(;l.length>0;){const t=l.shift();t.top=s(t);const i=a(t),n=h(t);null!==c&&iinn&&(f=ls(d,(t=>n+is>=a(t)),m,f)+1);const w=d.slice(m,f).filter((t=>ia(t))).sort(((t,e)=>t.top-e.top));for(let i=0;iy.top&&(t.top=n.top+n.height+e.vertical)}o(t)&&(u=hs(d,(t=>a(t)-is>i),u),d.splice(u,0,t),u++);const _=t.top+t.height;if(_>g&&(g=_),r&&r())return null}var v,y,b;return g}function hs(t,e,i){i||(i=0);const n=t.slice(i).findIndex(e);return-1===n?t.length:n+i}function ls(t,e,n,o){for(n||(n=0),o||(o=t.length),i=o-1;i>=n;i--)if(e(t[i]))return i;return n-1}const ds="__background__";class cs{constructor(t,e,i){if(this.groupId=t,this.subgroups={},this.subgroupStack={},this.subgroupStackAll=!1,this.subgroupVisibility={},this.doInnerStack=!1,this.shouldBailStackItems=!1,this.subgroupIndex=0,this.subgroupOrderer=e&&e.subgroupOrder,this.itemSet=i,this.isVisible=null,this.stackDirty=!0,this._disposeCallbacks=[],e&&e.nestedGroups&&(this.nestedGroups=e.nestedGroups,0==e.showNested?this.showNested=!1:this.showNested=!0),e&&e.subgroupStack)if("boolean"==typeof e.subgroupStack)this.doInnerStack=e.subgroupStack,this.subgroupStackAll=e.subgroupStack;else for(const t in e.subgroupStack)this.subgroupStack[t]=e.subgroupStack[t],this.doInnerStack=this.doInnerStack||e.subgroupStack[t];e&&e.heightMode?this.heightMode=e.heightMode:this.heightMode=i.options.groupHeightMode,this.nestedInGroup=null,this.dom={},this.props={label:{width:0,height:0}},this.className=null,this.items={},this.visibleItems=[],this.itemsInRange=[],this.orderedItems={byStart:[],byEnd:[]},this.checkRangedItems=!1;const n=()=>{this.checkRangedItems=!0};this.itemSet.body.emitter.on("checkRangedItems",n),this._disposeCallbacks.push((()=>{this.itemSet.body.emitter.off("checkRangedItems",n)})),this._create(),this.setData(e)}_create(){const t=document.createElement("div");this.itemSet.options.groupEditable.order?t.className="vis-label draggable":t.className="vis-label",this.dom.label=t;const e=document.createElement("div");e.className="vis-inner",t.appendChild(e),this.dom.inner=e;const i=document.createElement("div");i.className="vis-group",i["vis-group"]=this,this.dom.foreground=i,this.dom.background=document.createElement("div"),this.dom.background.className="vis-group",this.dom.axis=document.createElement("div"),this.dom.axis.className="vis-group",this.dom.marker=document.createElement("div"),this.dom.marker.style.visibility="hidden",this.dom.marker.style.position="absolute",this.dom.marker.innerHTML="",this.dom.background.appendChild(this.dom.marker)}setData(t){if(this.itemSet.groupTouchParams.isDragging)return;let e,i;if(t&&t.subgroupVisibility)for(const e in t.subgroupVisibility)this.subgroupVisibility[e]=t.subgroupVisibility[e];if(this.itemSet.options&&this.itemSet.options.groupTemplate?(i=this.itemSet.options.groupTemplate.bind(this),e=i(t,this.dom.inner)):e=t&&t.content,e instanceof Element){for(;this.dom.inner.firstChild;)this.dom.inner.removeChild(this.dom.inner.firstChild);this.dom.inner.appendChild(e)}else e instanceof Object&&e.isReactComponent||(e instanceof Object?i(t,this.dom.inner):this.dom.inner.innerHTML=null!=e?yo.xss(e):yo.xss(this.groupId||""));this.dom.label.title=t&&t.title||"",this.dom.inner.firstChild?yo.removeClassName(this.dom.inner,"vis-hidden"):yo.addClassName(this.dom.inner,"vis-hidden"),t&&t.nestedGroups?(this.nestedGroups&&this.nestedGroups==t.nestedGroups||(this.nestedGroups=t.nestedGroups),void 0===t.showNested&&void 0!==this.showNested||(0==t.showNested?this.showNested=!1:this.showNested=!0),yo.addClassName(this.dom.label,"vis-nesting-group"),this.showNested?(yo.removeClassName(this.dom.label,"collapsed"),yo.addClassName(this.dom.label,"expanded")):(yo.removeClassName(this.dom.label,"expanded"),yo.addClassName(this.dom.label,"collapsed"))):this.nestedGroups&&(this.nestedGroups=null,yo.removeClassName(this.dom.label,"collapsed"),yo.removeClassName(this.dom.label,"expanded"),yo.removeClassName(this.dom.label,"vis-nesting-group")),t&&(t.treeLevel||t.nestedInGroup)?(yo.addClassName(this.dom.label,"vis-nested-group"),t.treeLevel?yo.addClassName(this.dom.label,"vis-group-level-"+t.treeLevel):yo.addClassName(this.dom.label,"vis-group-level-unknown-but-gte1")):yo.addClassName(this.dom.label,"vis-group-level-0");const n=t&&t.className||null;n!=this.className&&(this.className&&(yo.removeClassName(this.dom.label,this.className),yo.removeClassName(this.dom.foreground,this.className),yo.removeClassName(this.dom.background,this.className),yo.removeClassName(this.dom.axis,this.className)),yo.addClassName(this.dom.label,n),yo.addClassName(this.dom.foreground,n),yo.addClassName(this.dom.background,n),yo.addClassName(this.dom.axis,n),this.className=n),this.style&&(yo.removeCssText(this.dom.label,this.style),this.style=null),t&&t.style&&(yo.addCssText(this.dom.label,t.style),this.style=t.style)}getLabelWidth(){return this.props.label.width}_didMarkerHeightChange(){const t=this.dom.marker.clientHeight;if(t!=this.lastMarkerHeight){this.lastMarkerHeight=t;const e={};let i=0;yo.forEach(this.items,((t,n)=>{if(t.dirty=!0,t.displayed){const o=!0;e[n]=t.redraw(o),i=e[n].length}}));if(i>0)for(let t=0;t{e[t]()}));return!0}return!1}_calculateGroupSizeAndPosition(){const{offsetTop:t,offsetLeft:e,offsetWidth:i}=this.dom.foreground;this.top=t,this.right=e,this.width=i}_shouldBailItemsRedraw(){const t=this,e=this.itemSet.options.onTimeout,i={relativeBailingTime:this.itemSet.itemsSettingTime,bailTimeMs:e&&e.timeoutMs,userBailFunction:e&&e.callback,shouldBailStackItems:this.shouldBailStackItems};let n=null;if(!this.itemSet.initialDrawDone){if(i.shouldBailStackItems)return!0;Math.abs(Date.now()-new Date(i.relativeBailingTime))>i.bailTimeMs&&(i.userBailFunction&&null==this.itemSet.userContinueNotBail?i.userBailFunction((e=>{t.itemSet.userContinueNotBail=e,n=!e})):n=0==t.itemSet.userContinueNotBail)}return n}_redrawItems(t,e,i,n){if(t||this.stackDirty||this.isVisible&&!e){const t={byEnd:this.orderedItems.byEnd.filter((t=>!t.isCluster)),byStart:this.orderedItems.byStart.filter((t=>!t.isCluster))},e={byEnd:[...new Set(this.orderedItems.byEnd.map((t=>t.cluster)).filter((t=>!!t)))],byStart:[...new Set(this.orderedItems.byStart.map((t=>t.cluster)).filter((t=>!!t)))]},o=()=>[...this._updateItemsInRange(t,this.visibleItems.filter((t=>!t.isCluster)),n),...this._updateClustersInRange(e,this.visibleItems.filter((t=>t.isCluster)),n)],s=t=>{let e={};for(const i in this.subgroups){const n=this.visibleItems.filter((t=>t.data.subgroup===i));e[i]=t?n.sort(((e,i)=>t(e.data,i.data))):n}return e};if("function"==typeof this.itemSet.options.order){const t=this;if(this.doInnerStack&&this.itemSet.options.stackSubgroups){rs(s(this.itemSet.options.order),i,this.subgroups),this.visibleItems=o(),this._updateSubGroupHeights(i)}else{this.visibleItems=o(),this._updateSubGroupHeights(i);const e=this.visibleItems.slice().filter((t=>t.isCluster||!t.isCluster&&!t.cluster)).sort(((e,i)=>t.itemSet.options.order(e.data,i.data)));this.shouldBailStackItems=ns(e,i,!0,this._shouldBailItemsRedraw.bind(this))}}else if(this.visibleItems=o(),this._updateSubGroupHeights(i),this.itemSet.options.stack)if(this.doInnerStack&&this.itemSet.options.stackSubgroups){rs(s(),i,this.subgroups)}else this.shouldBailStackItems=ns(this.visibleItems,i,!0,this._shouldBailItemsRedraw.bind(this));else ss(this.visibleItems,i,this.subgroups,this.itemSet.options.stackSubgroups);for(let t=0;t{t.cluster&&t.displayed&&t.hide()})),this.shouldBailStackItems&&this.itemSet.body.emitter.emit("destroyTimeline"),this.stackDirty=!1}}_didResize(t,e){t=yo.updateProperty(this,"height",e)||t;const i=this.dom.inner.clientWidth,n=this.dom.inner.clientHeight;return t=yo.updateProperty(this.props.label,"width",i)||t,t=yo.updateProperty(this.props.label,"height",n)||t}_applyGroupHeight(t){this.dom.background.style.height=`${t}px`,this.dom.foreground.style.height=`${t}px`,this.dom.label.style.height=`${t}px`}_updateItemsVerticalPosition(t){for(let e=0,i=this.visibleItems.length;e{i=this._didMarkerHeightChange.call(this)||i},this._updateSubGroupHeights.bind(this,e),this._calculateGroupSizeAndPosition.bind(this),()=>{this.isVisible=this._isGroupVisible.bind(this)(t,e)},()=>{this._redrawItems.bind(this)(i,s,e,t)},this._updateSubgroupsSizes.bind(this),()=>{r=this._calculateHeight.bind(this)(e)},this._calculateGroupSizeAndPosition.bind(this),()=>{o=this._didResize.bind(this)(o,r)},()=>{this._applyGroupHeight.bind(this)(r)},()=>{this._updateItemsVerticalPosition.bind(this)(e)},(()=>(!this.isVisible&&this.height&&(o=!1),o)).bind(this)];if(n)return a;{let t;return a.forEach((e=>{t=e()})),t}}_updateSubGroupHeights(t){if(Object.keys(this.subgroups).length>0){const e=this;this._resetSubgroups(),yo.forEach(this.visibleItems,(i=>{void 0!==i.data.subgroup&&(e.subgroups[i.data.subgroup].height=Math.max(e.subgroups[i.data.subgroup].height,i.height+t.item.vertical),e.subgroups[i.data.subgroup].visible=void 0===this.subgroupVisibility[i.data.subgroup]||Boolean(this.subgroupVisibility[i.data.subgroup]))}))}}_isGroupVisible(t,e){return this.top<=t.body.domProps.centerContainer.height-t.body.domProps.scrollTop+e.axis&&this.top+this.height+e.axis>=-t.body.domProps.scrollTop}_calculateHeight(t){let e,i;if(i="fixed"===this.heightMode?yo.toArray(this.items):this.visibleItems,i.length>0){let n=i[0].top,o=i[0].top+i[0].height;if(yo.forEach(i,(t=>{n=Math.min(n,t.top),o=Math.max(o,t.top+t.height)})),n>t.axis){const e=n-t.axis;o-=e,yo.forEach(i,(t=>{t.top-=e}))}e=Math.ceil(o+t.item.vertical/2),"fitItems"!==this.heightMode&&(e=Math.max(e,this.props.label.height))}else e=this.props.label.height;return e}show(){this.dom.label.parentNode||this.itemSet.dom.labelSet.appendChild(this.dom.label),this.dom.foreground.parentNode||this.itemSet.dom.foreground.appendChild(this.dom.foreground),this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background),this.dom.axis.parentNode||this.itemSet.dom.axis.appendChild(this.dom.axis)}hide(){const t=this.dom.label;t.parentNode&&t.parentNode.removeChild(t);const e=this.dom.foreground;e.parentNode&&e.parentNode.removeChild(e);const i=this.dom.background;i.parentNode&&i.parentNode.removeChild(i);const n=this.dom.axis;n.parentNode&&n.parentNode.removeChild(n)}add(t){if(this.items[t.id]=t,t.setParent(this),this.stackDirty=!0,void 0!==t.data.subgroup&&(this._addToSubgroup(t),this.orderSubgroups()),!this.visibleItems.includes(t)){const e=this.itemSet.body.range;this._checkIfVisible(t,this.visibleItems,e)}}_addToSubgroup(t,e=t.data.subgroup){null!=e&&void 0===this.subgroups[e]&&(this.subgroups[e]={height:0,top:0,start:t.data.start,end:t.data.end||t.data.start,visible:!1,index:this.subgroupIndex,items:[],stack:this.subgroupStackAll||this.subgroupStack[e]||!1},this.subgroupIndex++),new Date(t.data.start)new Date(this.subgroups[e].end)&&(this.subgroups[e].end=i),this.subgroups[e].items.push(t)}_updateSubgroupsSizes(){const t=this;if(t.subgroups)for(const e in t.subgroups){const i=t.subgroups[e].items[0].data.end||t.subgroups[e].items[0].data.start;let n=t.subgroups[e].items[0].data.start,o=i-1;t.subgroups[e].items.forEach((t=>{new Date(t.data.start)new Date(o)&&(o=e)})),t.subgroups[e].start=n,t.subgroups[e].end=new Date(o-1)}}orderSubgroups(){if(void 0!==this.subgroupOrderer){const t=[];if("string"==typeof this.subgroupOrderer){for(const e in this.subgroups)t.push({subgroup:e,sortField:this.subgroups[e].items[0].data[this.subgroupOrderer]});t.sort(((t,e)=>t.sortField-e.sortField))}else if("function"==typeof this.subgroupOrderer){for(const e in this.subgroups)t.push(this.subgroups[e].items[0].data);t.sort(this.subgroupOrderer)}if(t.length>0)for(let e=0;e=0&&(i.items.splice(n,1),i.items.length?this._updateSubgroupsSizes():delete this.subgroups[e])}}}removeFromDataSet(t){this.itemSet.removeItem(t.id)}order(){const t=yo.toArray(this.items),e=[],i=[];for(let n=0;nt.data.start-e.data.start)),function(t){t.sort(((t,e)=>("end"in t.data?t.data.end:t.data.start)-("end"in e.data?e.data.end:e.data.start)))}(this.orderedItems.byEnd)}_updateItemsInRange(t,e,i){const n=[],o={};if(!this.isVisible&&void 0!==this.height&&this.groupId!=ds){for(let t=0;t{const{start:e,end:i}=t;return i0)for(let t=0;ttt.data.starth)),1==this.checkRangedItems){this.checkRangedItems=!1;for(let e=0;et.data.endh))}const c={};let u=0;for(let t=0;t0)for(let t=0;t{e[t]()}));for(let t=0;t=0;s--){let t=e[s];if(o(t))break;t.isCluster&&!t.hasItems()||t.cluster||void 0===n[t.id]&&(n[t.id]=!0,i.push(t))}for(let s=t+1;s0)for(let t=0;t0)for(var a=0;a{this.options.locales[t]=yo.extend({},n,this.options.locales[t])})),this.selected=!1,this.displayed=!1,this.groupShowing=!0,this.selectable=i&&i.selectable||!1,this.dirty=!0,this.top=null,this.right=null,this.left=null,this.width=null,this.height=null,this.setSelectability(t),this.editable=null,this._updateEditStatus()}select(){this.selectable&&(this.selected=!0,this.dirty=!0,this.displayed&&this.redraw())}unselect(){this.selected=!1,this.dirty=!0,this.displayed&&this.redraw()}setData(t){null!=t.group&&this.data.group!=t.group&&null!=this.parent&&this.parent.itemSet._moveToGroup(this,t.group),this.setSelectability(t),this.parent&&(this.parent.stackDirty=!0);null!=t.subgroup&&this.data.subgroup!=t.subgroup&&null!=this.parent&&this.parent.changeSubgroup(this,this.data.subgroup,t.subgroup),this.data=t,this._updateEditStatus(),this.dirty=!0,this.displayed&&this.redraw()}setSelectability(t){t&&(this.selectable=void 0===t.selectable||Boolean(t.selectable))}setParent(t){this.displayed?(this.hide(),this.parent=t,this.parent&&this.show()):this.parent=t}isVisible(t){return!1}show(){return!1}hide(){return!1}redraw(){}repositionX(){}repositionY(){}_repaintDragCenter(){if(this.selected&&this.editable.updateTime&&!this.dom.dragCenter){const t=this,e=document.createElement("div");e.className="vis-drag-center",e.dragCenterItem=this,this.hammerDragCenter=new Io(e),this.hammerDragCenter.on("tap",(e=>{t.parent.itemSet.body.emitter.emit("click",{event:e,item:t.id})})),this.hammerDragCenter.on("doubletap",(e=>{e.stopPropagation(),t.parent.itemSet._onUpdateItem(t),t.parent.itemSet.body.emitter.emit("doubleClick",{event:e,item:t.id})})),this.hammerDragCenter.on("panstart",(e=>{e.stopPropagation(),t.parent.itemSet._onDragStart(e)})),this.hammerDragCenter.on("panmove",t.parent.itemSet._onDrag.bind(t.parent.itemSet)),this.hammerDragCenter.on("panend",t.parent.itemSet._onDragEnd.bind(t.parent.itemSet)),this.hammerDragCenter.get("press").set({time:1e4}),this.dom.box?this.dom.dragLeft?this.dom.box.insertBefore(e,this.dom.dragLeft):this.dom.box.appendChild(e):this.dom.point&&this.dom.point.appendChild(e),this.dom.dragCenter=e}else!this.selected&&this.dom.dragCenter&&(this.dom.dragCenter.parentNode&&this.dom.dragCenter.parentNode.removeChild(this.dom.dragCenter),this.dom.dragCenter=null,this.hammerDragCenter&&(this.hammerDragCenter.destroy(),this.hammerDragCenter=null))}_repaintDeleteButton(t){const e=(this.options.editable.overrideItems||null==this.editable)&&this.options.editable.remove||!this.options.editable.overrideItems&&null!=this.editable&&this.editable.remove;if(this.selected&&e&&!this.dom.deleteButton){const e=this,i=document.createElement("div");this.options.rtl?i.className="vis-delete-rtl":i.className="vis-delete";let n=this.options.locales[this.options.locale];n||(this.warned||(console.warn(`WARNING: options.locales['${this.options.locale}'] not found. See https://visjs.github.io/vis-timeline/docs/timeline/#Localization`),this.warned=!0),n=this.options.locales.en),i.title=n.deleteSelected,this.hammerDeleteButton=new Io(i).on("tap",(t=>{t.stopPropagation(),e.parent.removeFromDataSet(e)})),t.appendChild(i),this.dom.deleteButton=i}else this.selected&&e||!this.dom.deleteButton||(this.dom.deleteButton.parentNode&&this.dom.deleteButton.parentNode.removeChild(this.dom.deleteButton),this.dom.deleteButton=null,this.hammerDeleteButton&&(this.hammerDeleteButton.destroy(),this.hammerDeleteButton=null))}_repaintOnItemUpdateTimeTooltip(t){if(!this.options.tooltipOnItemUpdateTime)return;const e=(this.options.editable.updateTime||!0===this.data.editable)&&!1!==this.data.editable;if(this.selected&&e&&!this.dom.onItemUpdateTimeTooltip){const e=document.createElement("div");e.className="vis-onUpdateTime-tooltip",t.appendChild(e),this.dom.onItemUpdateTimeTooltip=e}else!this.selected&&this.dom.onItemUpdateTimeTooltip&&(this.dom.onItemUpdateTimeTooltip.parentNode&&this.dom.onItemUpdateTimeTooltip.parentNode.removeChild(this.dom.onItemUpdateTimeTooltip),this.dom.onItemUpdateTimeTooltip=null);if(this.dom.onItemUpdateTimeTooltip){this.dom.onItemUpdateTimeTooltip.style.visibility=this.parent.itemSet.touchParams.itemIsDragging?"visible":"hidden",this.dom.onItemUpdateTimeTooltip.style.transform="translateX(-50%)",this.dom.onItemUpdateTimeTooltip.style.left="50%";const t=50,e=this.parent.itemSet.body.domProps.scrollTop;let i;i="top"==this.options.orientation.item?this.top:this.parent.height-this.top-this.height;let n,o;i+this.parent.top-t<-e?(this.dom.onItemUpdateTimeTooltip.style.bottom="",this.dom.onItemUpdateTimeTooltip.style.top=`${this.height+2}px`):(this.dom.onItemUpdateTimeTooltip.style.top="",this.dom.onItemUpdateTimeTooltip.style.bottom=`${this.height+2}px`),this.options.tooltipOnItemUpdateTime&&this.options.tooltipOnItemUpdateTime.template?(o=this.options.tooltipOnItemUpdateTime.template.bind(this),n=o(this.data)):(n=`start: ${ho(this.data.start).format("MM/DD/YYYY hh:mm")}`,this.data.end&&(n+=`
    end: ${ho(this.data.end).format("MM/DD/YYYY hh:mm")}`)),this.dom.onItemUpdateTimeTooltip.innerHTML=yo.xss(n)}}_getItemData(){return this.parent.itemSet.itemsData.get(this.id)}_updateContents(t){let e,i,n,o,s;const r=this._getItemData(),a=(this.dom.box||this.dom.point).getElementsByClassName("vis-item-visible-frame")[0];if(this.options.visibleFrameTemplate?(s=this.options.visibleFrameTemplate.bind(this),o=yo.xss(s(r,a))):o="",a)if(o instanceof Object&&!(o instanceof Element))s(r,a);else if(i=this._contentToString(this.itemVisibleFrameContent)!==this._contentToString(o),i){if(o instanceof Element)a.innerHTML="",a.appendChild(o);else if(null!=o)a.innerHTML=yo.xss(o);else if("background"!=this.data.type||void 0!==this.data.content)throw new Error(`Property "content" missing in item ${this.id}`);this.itemVisibleFrameContent=o}if(this.options.template?(n=this.options.template.bind(this),e=n(r,t,this.data)):e=this.data.content,e instanceof Object&&!(e instanceof Element))n(r,t);else if(i=this._contentToString(this.content)!==this._contentToString(e),i){if(e instanceof Element)t.innerHTML="",t.appendChild(e);else if(null!=e)t.innerHTML=yo.xss(e);else if("background"!=this.data.type||void 0!==this.data.content)throw new Error(`Property "content" missing in item ${this.id}`);this.content=e}}_updateDataAttributes(t){if(this.options.dataAttributes&&this.options.dataAttributes.length>0){let e=[];if(Array.isArray(this.options.dataAttributes))e=this.options.dataAttributes;else{if("all"!=this.options.dataAttributes)return;e=Object.keys(this.data)}for(const i of e){const e=this.data[i];null!=e?t.setAttribute(`data-${i}`,e):t.removeAttribute(`data-${i}`)}}}_updateStyle(t){this.style&&(yo.removeCssText(t,this.style),this.style=null),this.data.style&&(yo.addCssText(t,this.data.style),this.style=this.data.style)}_contentToString(t){return"string"==typeof t?t:t&&"outerHTML"in t?t.outerHTML:t}_updateEditStatus(){this.options&&("boolean"==typeof this.options.editable?this.editable={updateTime:this.options.editable,updateGroup:this.options.editable,remove:this.options.editable}:"object"==typeof this.options.editable&&(this.editable={},yo.selectiveExtend(["updateTime","updateGroup","remove"],this.editable,this.options.editable))),this.options&&this.options.editable&&!0===this.options.editable.overrideItems||this.data&&("boolean"==typeof this.data.editable?this.editable={updateTime:this.data.editable,updateGroup:this.data.editable,remove:this.data.editable}:"object"==typeof this.data.editable&&(this.editable={},yo.selectiveExtend(["updateTime","updateGroup","remove"],this.editable,this.data.editable)))}getWidthLeft(){return 0}getWidthRight(){return 0}getTitle(){if(this.options.tooltip&&this.options.tooltip.template){return this.options.tooltip.template.bind(this)(this._getItemData(),this.data)}return this.data.title}}ps.prototype.stack=!0;class ms extends ps{constructor(t,e,i){if(super(t,e,i),this.props={content:{width:0}},this.overflow=!1,t){if(null==t.start)throw new Error(`Property "start" missing in item ${t.id}`);if(null==t.end)throw new Error(`Property "end" missing in item ${t.id}`)}}isVisible(t){return!this.cluster&&(this.data.startt.start)}_createDomElement(){this.dom||(this.dom={},this.dom.box=document.createElement("div"),this.dom.frame=document.createElement("div"),this.dom.frame.className="vis-item-overflow",this.dom.box.appendChild(this.dom.frame),this.dom.visibleFrame=document.createElement("div"),this.dom.visibleFrame.className="vis-item-visible-frame",this.dom.box.appendChild(this.dom.visibleFrame),this.dom.content=document.createElement("div"),this.dom.content.className="vis-item-content",this.dom.frame.appendChild(this.dom.content),this.dom.box["vis-item"]=this,this.dirty=!0)}_appendDomElement(){if(!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!this.dom.box.parentNode){const t=this.parent.dom.foreground;if(!t)throw new Error("Cannot redraw item: parent has no foreground container element");t.appendChild(this.dom.box)}this.displayed=!0}_updateDirtyDomComponents(){if(this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);const t=this.editable.updateTime||this.editable.updateGroup,e=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"")+(t?" vis-editable":" vis-readonly");this.dom.box.className=this.baseClassName+e,this.dom.content.style.maxWidth="none"}}_getDomComponentsSizes(){return this.overflow="hidden"!==window.getComputedStyle(this.dom.frame).overflow,this.whiteSpace="nowrap"!==window.getComputedStyle(this.dom.content).whiteSpace,{content:{width:this.dom.content.offsetWidth},box:{height:this.dom.box.offsetHeight}}}_updateDomComponentsSizes(t){this.props.content.width=t.content.width,this.height=t.box.height,this.dom.content.style.maxWidth="",this.dirty=!1}_repaintDomAdditionals(){this._repaintOnItemUpdateTimeTooltip(this.dom.box),this._repaintDeleteButton(this.dom.box),this._repaintDragCenter(),this._repaintDragLeft(),this._repaintDragRight()}redraw(t){let e;const i=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),()=>{this.dirty&&(e=this._getDomComponentsSizes.bind(this)())},()=>{this.dirty&&this._updateDomComponentsSizes.bind(this)(e)},this._repaintDomAdditionals.bind(this)];if(t)return i;{let t;return i.forEach((e=>{t=e()})),t}}show(t){if(!this.displayed)return this.redraw(t)}hide(){if(this.displayed){const t=this.dom.box;t.parentNode&&t.parentNode.removeChild(t),this.displayed=!1}}repositionX(t){const e=this.parent.width;let i=this.conversion.toScreen(this.data.start),n=this.conversion.toScreen(this.data.end);const o=void 0===this.data.align?this.options.align:this.data.align;let s,r;!1===this.data.limitSize||void 0!==t&&!0!==t||(i<-e&&(i=-e),n>2*e&&(n=2*e));const a=Math.max(Math.round(1e3*(n-i))/1e3,1);switch(this.overflow?(this.options.rtl?this.right=i:this.left=i,this.width=a+this.props.content.width,r=this.props.content.width):(this.options.rtl?this.right=i:this.left=i,this.width=a,r=Math.min(n-i,this.props.content.width)),this.options.rtl?this.dom.box.style.transform=`translateX(${-1*this.right}px)`:this.dom.box.style.transform=`translateX(${this.left}px)`,this.dom.box.style.width=`${a}px`,this.whiteSpace&&(this.height=this.dom.box.offsetHeight),o){case"left":this.dom.content.style.transform="translateX(0)";break;case"right":if(this.options.rtl){const t=-1*Math.max(a-r,0);this.dom.content.style.transform=`translateX(${t}px)`}else this.dom.content.style.transform=`translateX(${Math.max(a-r,0)}px)`;break;case"center":if(this.options.rtl){const t=-1*Math.max((a-r)/2,0);this.dom.content.style.transform=`translateX(${t}px)`}else this.dom.content.style.transform=`translateX(${Math.max((a-r)/2,0)}px)`;break;default:if(s=this.overflow?n>0?Math.max(-i,0):-r:i<0?-i:0,this.options.rtl){const t=-1*s;this.dom.content.style.transform=`translateX(${t}px)`}else this.dom.content.style.transform=`translateX(${s}px)`}}repositionY(){const t=this.options.orientation.item,e=this.dom.box;e.style.top="top"==t?`${this.top}px`:this.parent.height-this.top-this.height+"px"}_repaintDragLeft(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.editable.updateTime&&!this.dom.dragLeft){const t=document.createElement("div");t.className="vis-drag-left",t.dragLeftItem=this,this.dom.box.appendChild(t),this.dom.dragLeft=t}else this.selected||this.options.itemsAlwaysDraggable.range||!this.dom.dragLeft||(this.dom.dragLeft.parentNode&&this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft),this.dom.dragLeft=null)}_repaintDragRight(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.editable.updateTime&&!this.dom.dragRight){const t=document.createElement("div");t.className="vis-drag-right",t.dragRightItem=this,this.dom.box.appendChild(t),this.dom.dragRight=t}else this.selected||this.options.itemsAlwaysDraggable.range||!this.dom.dragRight||(this.dom.dragRight.parentNode&&this.dom.dragRight.parentNode.removeChild(this.dom.dragRight),this.dom.dragRight=null)}}ms.prototype.baseClassName="vis-item vis-range";class fs extends ps{constructor(t,e,i){if(super(t,e,i),this.props={content:{width:0}},this.overflow=!1,t){if(null==t.start)throw new Error(`Property "start" missing in item ${t.id}`);if(null==t.end)throw new Error(`Property "end" missing in item ${t.id}`)}}isVisible(t){return this.data.startt.start}_createDomElement(){this.dom||(this.dom={},this.dom.box=document.createElement("div"),this.dom.frame=document.createElement("div"),this.dom.frame.className="vis-item-overflow",this.dom.box.appendChild(this.dom.frame),this.dom.content=document.createElement("div"),this.dom.content.className="vis-item-content",this.dom.frame.appendChild(this.dom.content),this.dirty=!0)}_appendDomElement(){if(!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!this.dom.box.parentNode){const t=this.parent.dom.background;if(!t)throw new Error("Cannot redraw item: parent has no background container element");t.appendChild(this.dom.box)}this.displayed=!0}_updateDirtyDomComponents(){if(this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.content),this._updateStyle(this.dom.box);const t=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"");this.dom.box.className=this.baseClassName+t}}_getDomComponentsSizes(){return this.overflow="hidden"!==window.getComputedStyle(this.dom.content).overflow,{content:{width:this.dom.content.offsetWidth}}}_updateDomComponentsSizes(t){this.props.content.width=t.content.width,this.height=0,this.dirty=!1}_repaintDomAdditionals(){}redraw(t){let e;const i=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),()=>{this.dirty&&(e=this._getDomComponentsSizes.bind(this)())},()=>{this.dirty&&this._updateDomComponentsSizes.bind(this)(e)},this._repaintDomAdditionals.bind(this)];if(t)return i;{let t;return i.forEach((e=>{t=e()})),t}}repositionY(t){let e;const i=this.options.orientation.item;if(void 0!==this.data.subgroup){const t=this.data.subgroup;this.dom.box.style.height=`${this.parent.subgroups[t].height}px`,this.dom.box.style.top="top"==i?`${this.parent.top+this.parent.subgroups[t].top}px`:this.parent.top+this.parent.height-this.parent.subgroups[t].top-this.parent.subgroups[t].height+"px",this.dom.box.style.bottom=""}else this.parent instanceof us?(e=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height),this.dom.box.style.bottom="bottom"==i?"0":"",this.dom.box.style.top="top"==i?"0":""):(e=this.parent.height,this.dom.box.style.top=`${this.parent.top}px`,this.dom.box.style.bottom="");this.dom.box.style.height=`${e}px`}}fs.prototype.baseClassName="vis-item vis-background",fs.prototype.stack=!1,fs.prototype.show=ms.prototype.show,fs.prototype.hide=ms.prototype.hide,fs.prototype.repositionX=ms.prototype.repositionX;class gs{constructor(t,e){this.container=t,this.overflowMethod=e||"cap",this.x=0,this.y=0,this.padding=5,this.hidden=!1,this.frame=document.createElement("div"),this.frame.className="vis-tooltip",this.container.appendChild(this.frame)}setPosition(t,e){this.x=parseInt(t),this.y=parseInt(e)}setText(t){t instanceof Element?(this.frame.innerHTML="",this.frame.appendChild(t)):this.frame.innerHTML=yo.xss(t)}show(t){if(void 0===t&&(t=!0),!0===t){var e=this.frame.clientHeight,i=this.frame.clientWidth,n=this.frame.parentNode.clientHeight,o=this.frame.parentNode.clientWidth,s=0,r=0;if("flip"==this.overflowMethod||"none"==this.overflowMethod){let t=!1,n=!0;"flip"==this.overflowMethod&&(this.y-eo-this.padding&&(t=!0)),s=t?this.x-i:this.x,r=n?this.y-e:this.y}else(r=this.y-e)+e+this.padding>n&&(r=n-e-this.padding),ro&&(s=o-i-this.padding),st.start&&this.hasItems()}getData(){return{isCluster:!0,id:this.id,items:this.data.items||[],data:this.data}}redraw(t){var e,i,n=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){this.dirty&&(e=this._getDomComponentsSizes())}.bind(this),function(){this.dirty&&this._updateDomComponentsSizes.bind(this)(e)}.bind(this),this._repaintDomAdditionals.bind(this)];return t?n:(n.forEach((function(t){i=t()})),i)}show(){this.displayed||this.redraw()}hide(){if(this.displayed){var t=this.dom;t.box.parentNode&&t.box.parentNode.removeChild(t.box),this.options.showStipes&&(t.line.parentNode&&t.line.parentNode.removeChild(t.line),t.dot.parentNode&&t.dot.parentNode.removeChild(t.dot)),this.displayed=!1}}repositionX(){let t=this.conversion.toScreen(this.data.start),e=this.data.end?this.conversion.toScreen(this.data.end):0;if(e)this.repositionXWithRanges(t,e);else{let e=void 0===this.data.align?this.options.align:this.data.align;this.repositionXWithoutRanges(t,e)}this.options.showStipes&&(this.dom.line.style.display=this._isStipeVisible()?"block":"none",this.dom.dot.style.display=this._isStipeVisible()?"block":"none",this._isStipeVisible()&&this.repositionStype(t,e))}repositionStype(t,e){this.dom.line.style.display="block",this.dom.dot.style.display="block";const i=this.dom.line.offsetWidth,n=this.dom.dot.offsetWidth;if(e){const o=i+t+(e-t)/2,s=o-n/2,r=this.options.rtl?-1*o:o,a=this.options.rtl?-1*s:s;this.dom.line.style.transform=`translateX(${r}px)`,this.dom.dot.style.transform=`translateX(${a}px)`}else{const e=this.options.rtl?-1*t:t,i=this.options.rtl?-1*(t-n/2):t-n/2;this.dom.line.style.transform=`translateX(${e}px)`,this.dom.dot.style.transform=`translateX(${i}px)`}}repositionXWithoutRanges(t,e){"right"==e?this.options.rtl?(this.right=t-this.width,this.dom.box.style.right=this.right+"px"):(this.left=t-this.width,this.dom.box.style.left=this.left+"px"):"left"==e?this.options.rtl?(this.right=t,this.dom.box.style.right=this.right+"px"):(this.left=t,this.dom.box.style.left=this.left+"px"):this.options.rtl?(this.right=t-this.width/2,this.dom.box.style.right=this.right+"px"):(this.left=t-this.width/2,this.dom.box.style.left=this.left+"px")}repositionXWithRanges(t,e){let i=Math.round(Math.max(e-t+.5,1));this.options.rtl?this.right=t:this.left=t,this.width=Math.max(i,this.minWidth||0),this.options.rtl?this.dom.box.style.right=this.right+"px":this.dom.box.style.left=this.left+"px",this.dom.box.style.width=i+"px"}repositionY(){var t=this.options.orientation.item,e=this.dom.box;if(e.style.top="top"==t?(this.top||0)+"px":(this.parent.height-this.top-this.height||0)+"px",this.options.showStipes){if("top"==t)this.dom.line.style.top="0",this.dom.line.style.height=this.parent.top+this.top+1+"px",this.dom.line.style.bottom="";else{var i=this.parent.itemSet.props.height,n=i-this.parent.top-this.parent.height+this.top;this.dom.line.style.top=i-n+"px",this.dom.line.style.bottom="0"}this.dom.dot.style.top=-this.dom.dot.offsetHeight/2+"px"}}getWidthLeft(){return this.width/2}getWidthRight(){return this.width/2}move(){this.repositionX(),this.repositionY()}attach(){for(let t of this.data.uiItems)t.cluster=this;this.data.items=this.data.uiItems.map((t=>t.data)),this.attached=!0,this.dirty=!0}detach(t=!1){if(this.hasItems()){for(let t of this.data.uiItems)delete t.cluster;this.attached=!1,t&&this.group&&(this.group.remove(this),this.group=null),this.data.items=[],this.dirty=!0}}_onDoubleClick(){this._fit()}_setupRange(){const t=this.data.uiItems.map((t=>({start:t.data.start.valueOf(),end:t.data.end?t.data.end.valueOf():t.data.start.valueOf()})));this.data.min=Math.min(...t.map((t=>Math.min(t.start,t.end||t.start)))),this.data.max=Math.max(...t.map((t=>Math.max(t.start,t.end||t.start))));const e=this.data.uiItems.map((t=>t.center)).reduce(((t,e)=>t+e),0)/this.data.uiItems.length;this.data.uiItems.some((t=>t.data.end))?(this.data.start=new Date(this.data.min),this.data.end=new Date(this.data.max)):(this.data.start=new Date(e),this.data.end=null)}_getUiItems(){return this.data.uiItems&&this.data.uiItems.length?this.data.uiItems.filter((t=>t.cluster===this)):[]}_createDomElement(){this.dom||(this.dom={},this.dom.box=document.createElement("DIV"),this.dom.content=document.createElement("DIV"),this.dom.content.className="vis-item-content",this.dom.box.appendChild(this.dom.content),this.options.showStipes&&(this.dom.line=document.createElement("DIV"),this.dom.line.className="vis-cluster-line",this.dom.line.style.display="none",this.dom.dot=document.createElement("DIV"),this.dom.dot.className="vis-cluster-dot",this.dom.dot.style.display="none"),this.options.fitOnDoubleClick&&(this.dom.box.ondblclick=vs.prototype._onDoubleClick.bind(this)),this.dom.box["vis-item"]=this,this.dirty=!0)}_appendDomElement(){if(!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!this.dom.box.parentNode){const t=this.parent.dom.foreground;if(!t)throw new Error("Cannot redraw item: parent has no foreground container element");t.appendChild(this.dom.box)}const t=this.parent.dom.background;if(this.options.showStipes){if(!this.dom.line.parentNode){if(!t)throw new Error("Cannot redraw item: parent has no background container element");t.appendChild(this.dom.line)}if(!this.dom.dot.parentNode){var e=this.parent.dom.axis;if(!t)throw new Error("Cannot redraw item: parent has no axis container element");e.appendChild(this.dom.dot)}}this.displayed=!0}_updateDirtyDomComponents(){if(this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);const t=this.baseClassName+" "+(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"")+" vis-readonly";this.dom.box.className="vis-item "+t,this.options.showStipes&&(this.dom.line.className="vis-item vis-cluster-line "+(this.selected?" vis-selected":""),this.dom.dot.className="vis-item vis-cluster-dot "+(this.selected?" vis-selected":"")),this.data.end&&(this.dom.content.style.maxWidth="none")}}_getDomComponentsSizes(){const t={previous:{right:this.dom.box.style.right,left:this.dom.box.style.left},box:{width:this.dom.box.offsetWidth,height:this.dom.box.offsetHeight}};return this.options.showStipes&&(t.dot={height:this.dom.dot.offsetHeight,width:this.dom.dot.offsetWidth},t.line={width:this.dom.line.offsetWidth}),t}_updateDomComponentsSizes(t){this.options.rtl?this.dom.box.style.right="0px":this.dom.box.style.left="0px",this.data.end?this.minWidth=t.box.width:this.width=t.box.width,this.height=t.box.height,this.options.rtl?this.dom.box.style.right=t.previous.right:this.dom.box.style.left=t.previous.left,this.dirty=!1}_repaintDomAdditionals(){this._repaintOnItemUpdateTimeTooltip(this.dom.box)}_isStipeVisible(){return this.minWidth>=this.width||!this.data.end}_getFitRange(){const t=.05*(this.data.max-this.data.min)/2;return{fitStart:this.data.min-t,fitEnd:this.data.max+t}}_fit(){if(this.emitter){const{fitStart:t,fitEnd:e}=this._getFitRange(),i={start:new Date(t),end:new Date(e),animation:!0};this.emitter.emit("fit",i)}}_getItemData(){return this.data}}vs.prototype.baseClassName="vis-item vis-range vis-cluster";const ys="__ungrouped__";class bs{constructor(t){this.itemSet=t,this.groups={},this.cache={},this.cache[-1]=[]}createClusterItem(t,e,i){return new vs(t,e,i)}setItems(t,e){this.items=t||[],this.dataChanged=!0,this.applyOnChangedLevel=!1,e&&e.applyOnChangedLevel&&(this.applyOnChangedLevel=e.applyOnChangedLevel)}updateData(){this.dataChanged=!0,this.applyOnChangedLevel=!1}getClusters(t,e,i){let{maxItems:n,clusterCriteria:o}="boolean"==typeof i?{}:i;o||(o=()=>!0),n=n||1;let s=-1,r=0;if(e>0){if(e>=1)return[];s=Math.abs(Math.round(Math.log(100/e)/Math.log(2))),r=Math.abs(Math.pow(2,s))}if(this.dataChanged){const t=s!=this.cacheLevel;(!this.applyOnChangedLevel||t)&&(this._dropLevelsCache(),this._filterData())}this.cacheLevel=s;let a=this.cache[s];if(!a){a=[];for(let e in this.groups)if(this.groups.hasOwnProperty(e)){const s=this.groups[e],h=s.length;let l=0;for(;l=0&&e.center-s[d].center=0&&e.center-a[u].centern){const r=h-n+1,d=[];let c=l;for(;d.lengtht.center-e.center));this.dataChanged=!1}_getClusterForItems(t,e,i,n){const o=(i||[]).map((t=>({cluster:t,itemsIds:new Set(t.data.uiItems.map((t=>t.id)))})));let s;if(o.length)for(let e of o)if(e.itemsIds.size===t.length&&t.every((t=>e.itemsIds.has(t.id)))){s=e.cluster;break}if(s)return s.setUiItems(t),s.group!==e&&(s.group&&s.group.remove(s),e&&(e.add(s),s.group=e)),s;let r=n.titleTemplate||"";const a={toScreen:this.itemSet.body.util.toScreen,toTime:this.itemSet.body.util.toTime},h=r.replace(/{count}/,t.length),l='