@camstack/addon-benchmark 1.2.34 → 1.2.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{MotionZonesSettings-CJQ1qIkl.mjs → MotionZonesSettings-D0ZWade-.mjs} +2 -2
- package/dist/{PrivacyMaskSettings-DqyCPYRr.mjs → PrivacyMaskSettings-CCaDEYqV.mjs} +4 -4
- package/dist/{SceneMonitorEditor-CN-XsRrp.mjs → SceneMonitorEditor-DxET6Fog.mjs} +3 -3
- package/dist/_stub.js +321 -321
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_benchmark_page-BWwUyiel.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_benchmark_page-CdNasi0D.mjs} +4 -4
- package/dist/_virtual_mf___mfe_internal__addon_benchmark_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-B8fB0oqf.mjs +26 -0
- package/dist/{hostInit-CLhuyXAy.mjs → hostInit-rbQfRadV.mjs} +3 -3
- package/dist/{player-overlays-0rmH0H8O.mjs → player-overlays-C7-_Xisc.mjs} +1 -1
- package/dist/remoteEntry.js +1 -1
- package/dist/{responsive-CUJot3AN.mjs → responsive-CaW2oK5P.mjs} +1 -1
- package/dist/{square-9qrfIVAE.mjs → square-Cld4asmu.mjs} +1 -1
- package/dist/{trash-2-DXimPeDh.mjs → trash-2-AlHHPRiP.mjs} +1 -1
- package/dist/{use-device-snapshot-CWhgQbX2.mjs → use-device-snapshot-CrXFafOP.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_benchmark_page__remoteEntry_js-oZkDdD9C.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_benchmark_page__remoteEntry_js-BrGHsBZM.mjs} +1 -1
- package/package.json +1 -1
- package/dist/_virtual_mf___mfe_internal__addon_benchmark_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-HpVJnRY1.mjs +0 -26
package/dist/_stub.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import "./virtualExposes-erbhyesj.mjs";
|
|
2
|
-
import { a as e, i as t, o as n, r } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_benchmark_page__remoteEntry_js-
|
|
2
|
+
import { a as e, i as t, o as n, r } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_benchmark_page__remoteEntry_js-BrGHsBZM.mjs";
|
|
3
3
|
import { _ as i, b as a, c as o, d as s, f as c, g as l, h as u, i as d, l as f, m as p, n as m, p as h, r as g, t as _, u as v, v as y, x as b, y as x } from "./_virtual_mf___mfe_internal__addon_benchmark_page__loadShare__react__loadShare__.js-GeuxDuzQ.mjs";
|
|
4
|
-
import { a as S, i as C, n as w, o as T, r as E, s as D } from "./responsive-
|
|
5
|
-
import { c as ee, l as O, u as te } from "./use-device-snapshot-
|
|
6
|
-
import { a as ne, i as k, n as A, o as re, r as j } from "./player-overlays-
|
|
7
|
-
import { n as M, r as N, t as P } from "./square-
|
|
8
|
-
import { t as F } from "./trash-2-
|
|
4
|
+
import { a as S, i as C, n as w, o as T, r as E, s as D } from "./responsive-CaW2oK5P.mjs";
|
|
5
|
+
import { c as ee, l as O, u as te } from "./use-device-snapshot-CrXFafOP.mjs";
|
|
6
|
+
import { a as ne, i as k, n as A, o as re, r as j } from "./player-overlays-C7-_Xisc.mjs";
|
|
7
|
+
import { n as M, r as N, t as P } from "./square-Cld4asmu.mjs";
|
|
8
|
+
import { t as F } from "./trash-2-AlHHPRiP.mjs";
|
|
9
9
|
import { n as I, t as L } from "./_virtual_mf___mfe_internal__addon_benchmark_page__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.js-Bh7FS7ML.mjs";
|
|
10
10
|
import { i as R, n as z, r as B, t as V } from "./_virtual_mf___mfe_internal__addon_benchmark_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-SOU_VnTj.mjs";
|
|
11
11
|
import { n as H, t as ie } from "./_virtual_mf___mfe_internal__addon_benchmark_page__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-lv97RBhq.mjs";
|
|
12
12
|
import { n as ae, t as oe } from "./_virtual_mf___mfe_internal__addon_benchmark_page__loadShare__react_mf_2_dom__loadShare__.js-DQaf3kYb.mjs";
|
|
13
13
|
import { t as se } from "./_virtual_mf___mfe_internal__addon_benchmark_page__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-DUzuN6aS.mjs";
|
|
14
14
|
import { t as U } from "./_virtual_mf___mfe_internal__addon_benchmark_page__loadShare___mf_0_trpc_mf_1_client__loadShare__.js-DtWmo0vJ.mjs";
|
|
15
|
-
import { C as ce, D as le, E as ue, O as de, S as fe, T as pe, _ as W, a as G, b as me, c as he, d as ge, f as _e, g as
|
|
15
|
+
import { C as ce, D as le, E as ue, O as de, S as fe, T as pe, _ as W, a as G, b as me, c as he, d as ge, f as _e, g as K, h as ve, i as ye, l as be, m as xe, n as Se, o as Ce, p as we, s as Te, t as Ee, u as De, v as Oe, w as ke, y as q } from "./_virtual_mf___mfe_internal__addon_benchmark_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-B8fB0oqf.mjs";
|
|
16
16
|
import "./_virtual_mf___mfe_internal__addon_benchmark_page__loadShare___mf_0_camstack_mf_1_sdk__loadShare__.js-DSTkBuYy.mjs";
|
|
17
17
|
var Ae = D("activity", [["path", {
|
|
18
18
|
d: "M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",
|
|
@@ -2653,7 +2653,7 @@ J.recording.pruneFootage.useMutation, J.recording.deleteFootprint.useMutation, J
|
|
|
2653
2653
|
var qr = J.recording.getStatus.useQuery;
|
|
2654
2654
|
J.recording.getDeviceSettingsContribution.useQuery, J.recording.getDeviceLiveContribution.useQuery, J.recording.applyDeviceSettingsPatch.useMutation, J.recordingExport.createExport.useMutation, J.recordingExport.listExports.useQuery, J.recordingExport.getExport.useQuery, J.recordingExport.cancelExport.useMutation, J.recordingExport.deleteExport.useMutation, J.recordingExport.getDownloadUrl.useQuery, J.recordingExport.readExportBytes.useQuery, J.sceneMonitor.listScenes.useQuery, J.sceneMonitor.createScene.useMutation, J.sceneMonitor.updateScene.useMutation, J.sceneMonitor.deleteScene.useMutation, J.sceneMonitor.captureReference.useMutation, J.sceneMonitor.deleteReference.useMutation, J.sceneMonitor.recheckNow.useMutation, J.sceneMonitor.resetScene.useMutation, J.sceneMonitor.getStatus.useQuery, J.scriptRunner.run.useMutation, J.scriptRunner.stop.useMutation, J.scriptRunner.getStatus.useQuery, J.serverManagement.getServerPackageStatus.useQuery, J.serverManagement.checkServerUpdate.useMutation, J.serverManagement.applyServerUpdate.useMutation, J.serverManagement.rollbackServerUpdate.useMutation, J.serverManagement.restartServer.useMutation, J.settingsStore.get.useQuery, J.settingsStore.set.useMutation, J.settingsStore.query.useQuery, J.settingsStore.insert.useMutation, J.settingsStore.update.useMutation, J.settingsStore.delete.useMutation, J.settingsStore.deleteWhere.useMutation, J.settingsStore.updateWhere.useMutation, J.settingsStore.count.useQuery, J.settingsStore.histogram.useQuery, J.settingsStore.isEmpty.useQuery, J.settingsStore.declareCollection.useMutation, J.smoke.getStatus.useQuery, J.snapshot.getSnapshot.useQuery, J.snapshot.invalidateCache.useMutation, J.snapshot.getSnapshotOverview.useQuery, J.snapshot.getDebugState.useQuery, J.snapshot.getSnapshotLinks.useQuery, J.snapshot.getStatus.useQuery, J.snapshot.getDeviceSettingsContribution.useQuery, J.snapshot.getDeviceLiveContribution.useQuery, J.snapshot.applyDeviceSettingsPatch.useMutation, J.storage.resolve.useQuery, J.storage.write.useMutation, J.storage.read.useQuery, J.storage.exists.useQuery, J.storage.list.useQuery, J.storage.delete.useMutation, J.storage.getAvailableSpace.useQuery, J.storage.beginUpload.useMutation, J.storage.writeChunk.useMutation, J.storage.finalizeUpload.useMutation, J.storage.abortUpload.useMutation, J.storage.beginDownload.useMutation, J.storage.readChunk.useQuery, J.storage.endDownload.useMutation, J.storage.listLocations.useQuery, J.storage.getDefaultLocation.useQuery, J.storage.listLocationDeclarations.useQuery, J.storage.upsertLocation.useMutation, J.storage.deleteLocation.useMutation, J.storage.testLocation.useQuery, J.storage.listProviders.useQuery, J.storage.testConfig.useQuery, J.storageMigration.plan.useQuery, J.storageMigration.start.useMutation, J.storageMigration.status.useQuery, J.storageMigration.cancel.useMutation, J.streamBroker.publishCameraStream.useMutation, J.streamBroker.retractCameraStream.useMutation, J.streamBroker.assignProfile.useMutation, J.streamBroker.unassignProfile.useMutation, J.streamBroker.renderPreBufferClip.useMutation, J.streamBroker.produceEventMedia.useMutation, J.streamBroker.fetchEventMedia.useMutation, J.streamBroker.listAllCameraStreams.useQuery;
|
|
2655
2655
|
var Jr = J.streamBroker.listAllProfileSlots.useQuery;
|
|
2656
|
-
J.streamBroker.getBrokerStats.useQuery, J.streamBroker.probeStream.useMutation, J.streamBroker.listClients.useQuery, J.streamBroker.killClient.useMutation, J.streamBroker.restartProfile.useMutation, J.streamBroker.getStreamUrl.useQuery, J.streamBroker.getStreamWithCodec.useMutation, J.streamBroker.releaseStreamWithCodec.useMutation, J.streamBroker.acquireEgressTranscode.useMutation, J.streamBroker.releaseEgressTranscode.useMutation, J.streamBroker.subscribeAudioChunks.useMutation, J.streamBroker.pullAudioChunks.useQuery, J.streamBroker.unsubscribeAudioChunks.useMutation, J.streamBroker.subscribeFrames.useMutation, J.streamBroker.pullFrameHandles.useQuery, J.streamBroker.unsubscribeFrames.useMutation, J.streamBroker.setPreBufferDuration.useMutation, J.streamBroker.getPreBufferInfo.useQuery, J.streamBroker.getRtspPort.useQuery, J.streamBroker.getAllRtspEntries.useQuery, J.streamBroker.getRtspEntry.useQuery, J.streamBroker.regenerateRtspToken.useMutation, J.streamBroker.setRtspEnabled.useMutation, J.streamBroker.isRtspEnabled.useQuery, J.streamBroker.getDeviceAudioMute.useQuery, J.streamBroker.setDeviceAudioMute.useMutation, J.streamBroker.getDeviceSettingsContribution.useQuery, J.streamBroker.getDeviceLiveContribution.useQuery, J.streamBroker.applyDeviceSettingsPatch.useMutation, J.streamCatalog.getCatalog.useQuery, J.streamParams.getOptions.useQuery, J.streamParams.setProfile.useMutation, J.streamParams.getConfigSchema.useQuery, J.streamParams.getStatus.useQuery, J.switch.setState.useMutation, J.switch.getStatus.useQuery, J.system.info.useQuery, J.system.health.useQuery, J.system.featureFlags.useQuery, J.system.networkAddresses.useQuery, J.system.getRetentionConfig.useQuery, J.system.setRetentionConfig.useMutation, J.system.forceRetentionCleanup.useMutation, J.system.getSiteLocation.useQuery, J.system.setSiteLocation.useMutation, J.system.detectSiteLocation.useMutation, J.tamper.getStatus.useQuery, J.temperatureSensor.getStatus.useQuery, J.terminalSession.listProfiles.useQuery, J.terminalSession.listInstances.useQuery, J.terminalSession.createInstance.useMutation, J.terminalSession.updateInstance.useMutation, J.terminalSession.deleteInstance.useMutation, J.terminalSession.setInstanceEnabled.useMutation, J.terminalSession.listLegacyCameras.useQuery, J.terminalSession.adoptLegacyMonitor.useMutation, J.terminalSession.listSessions.useQuery, J.terminalSession.openSession.useMutation, J.terminalSession.resize.useMutation, J.terminalSession.pullOutput.useMutation, J.terminalSession.writeInput.useMutation, J.terminalSession.close.useMutation, J.toast.onToast.useSubscription, J.turnProvider.getTurnServers.useQuery, J.update.installUpdate.useMutation, J.update.getStatus.useQuery, J.userManagement.listUsers.useQuery, J.userManagement.createUser.useMutation, J.userManagement.updateUser.useMutation, J.userManagement.deleteUser.useMutation, J.userManagement.resetPassword.useMutation, J.userManagement.setUserScopes.useMutation, J.userManagement.validateCredentials.useMutation, J.userManagement.listApiKeys.useQuery, J.userManagement.createApiKey.useMutation, J.userManagement.revokeApiKey.useMutation, J.userManagement.validateApiKey.useMutation, J.userManagement.createScopedToken.useMutation, J.userManagement.revokeScopedToken.useMutation, J.userManagement.validateScopedToken.useQuery, J.userManagement.listScopedTokens.useQuery, J.userManagement.setupTotp.useMutation, J.userManagement.confirmTotp.useMutation, J.userManagement.disableTotp.useMutation, J.userManagement.getTotpStatus.useQuery, J.userManagement.verifyTotp.useMutation, J.userManagement.oauthIssueCode.useMutation, J.userManagement.oauthExchangeCode.useMutation, J.userManagement.oauthRefresh.useMutation, J.userManagement.oauthVerifyAccessToken.useQuery, J.userManagement.listOauthSessions.useQuery, J.userManagement.revokeOauthSession.useMutation, J.vacuumControl.start.useMutation, J.vacuumControl.pause.useMutation, J.vacuumControl.stop.useMutation, J.vacuumControl.returnToBase.useMutation, J.vacuumControl.locate.useMutation, J.vacuumControl.setFanSpeed.useMutation, J.vacuumControl.getStatus.useQuery, J.valve.open.useMutation, J.valve.close.useMutation, J.valve.stop.useMutation, J.valve.setPosition.useMutation, J.valve.getStatus.useQuery, J.vibration.getStatus.useQuery, J.videoclips.listClips.useQuery, J.videoclips.getClipPlayback.useQuery, J.waterHeater.setTargetTemp.useMutation, J.waterHeater.setOperationMode.useMutation, J.waterHeater.setAway.useMutation, J.waterHeater.getStatus.useQuery, J.weather.getStatus.useQuery, J.webrtcSession.listStreams.useQuery, J.webrtcSession.createSession.useMutation, J.webrtcSession.handleOffer.useMutation, J.webrtcSession.handleAnswer.useMutation, J.webrtcSession.addIceCandidate.useMutation, J.webrtcSession.getIceCandidates.useQuery, J.webrtcSession.closeSession.useMutation, J.webrtcSession.hasAdaptiveBitrate.useQuery, J.webrtcSession.getSessionState.useQuery, J.zoneAnalytics.getCurrentSnapshot.useQuery, J.zoneAnalytics.getZoneHistory.useQuery, J.zoneAnalytics.getCameraHistory.useQuery, J.zoneAnalytics.getUnzonedHistory.useQuery, J.zoneRules.listRules.useQuery, J.zoneRules.setRules.useMutation, J.zones.listZones.useQuery, J.zones.addZone.useMutation, J.zones.removeZone.useMutation, J.zones.updateZone.useMutation;
|
|
2656
|
+
J.streamBroker.getBrokerStats.useQuery, J.streamBroker.probeStream.useMutation, J.streamBroker.listClients.useQuery, J.streamBroker.killClient.useMutation, J.streamBroker.restartProfile.useMutation, J.streamBroker.getStreamUrl.useQuery, J.streamBroker.getStreamWithCodec.useMutation, J.streamBroker.releaseStreamWithCodec.useMutation, J.streamBroker.acquireEgressTranscode.useMutation, J.streamBroker.releaseEgressTranscode.useMutation, J.streamBroker.subscribeAudioChunks.useMutation, J.streamBroker.pullAudioChunks.useQuery, J.streamBroker.unsubscribeAudioChunks.useMutation, J.streamBroker.subscribeFrames.useMutation, J.streamBroker.pullFrameHandles.useQuery, J.streamBroker.unsubscribeFrames.useMutation, J.streamBroker.setPreBufferDuration.useMutation, J.streamBroker.getPreBufferInfo.useQuery, J.streamBroker.getRtspPort.useQuery, J.streamBroker.getAllRtspEntries.useQuery, J.streamBroker.getRtspEntry.useQuery, J.streamBroker.regenerateRtspToken.useMutation, J.streamBroker.setRtspEnabled.useMutation, J.streamBroker.isRtspEnabled.useQuery, J.streamBroker.getDeviceAudioMute.useQuery, J.streamBroker.setDeviceAudioMute.useMutation, J.streamBroker.getDeviceSettingsContribution.useQuery, J.streamBroker.getDeviceLiveContribution.useQuery, J.streamBroker.applyDeviceSettingsPatch.useMutation, J.streamCatalog.getCatalog.useQuery, J.streamParams.getOptions.useQuery, J.streamParams.setProfile.useMutation, J.streamParams.getConfigSchema.useQuery, J.streamParams.getStatus.useQuery, J.switch.setState.useMutation, J.switch.getStatus.useQuery, J.system.info.useQuery, J.system.health.useQuery, J.system.featureFlags.useQuery, J.system.networkAddresses.useQuery, J.system.getRetentionConfig.useQuery, J.system.setRetentionConfig.useMutation, J.system.forceRetentionCleanup.useMutation, J.system.getSiteLocation.useQuery, J.system.setSiteLocation.useMutation, J.system.detectSiteLocation.useMutation, J.system.getRequestCensus.useQuery, J.system.getLoggingSettings.useQuery, J.system.setLoggingSettings.useMutation, J.tamper.getStatus.useQuery, J.temperatureSensor.getStatus.useQuery, J.terminalSession.listProfiles.useQuery, J.terminalSession.listInstances.useQuery, J.terminalSession.createInstance.useMutation, J.terminalSession.updateInstance.useMutation, J.terminalSession.deleteInstance.useMutation, J.terminalSession.setInstanceEnabled.useMutation, J.terminalSession.listLegacyCameras.useQuery, J.terminalSession.adoptLegacyMonitor.useMutation, J.terminalSession.listSessions.useQuery, J.terminalSession.openSession.useMutation, J.terminalSession.resize.useMutation, J.terminalSession.pullOutput.useMutation, J.terminalSession.writeInput.useMutation, J.terminalSession.close.useMutation, J.toast.onToast.useSubscription, J.turnProvider.getTurnServers.useQuery, J.update.installUpdate.useMutation, J.update.getStatus.useQuery, J.userManagement.listUsers.useQuery, J.userManagement.createUser.useMutation, J.userManagement.updateUser.useMutation, J.userManagement.deleteUser.useMutation, J.userManagement.resetPassword.useMutation, J.userManagement.setUserScopes.useMutation, J.userManagement.validateCredentials.useMutation, J.userManagement.listApiKeys.useQuery, J.userManagement.createApiKey.useMutation, J.userManagement.revokeApiKey.useMutation, J.userManagement.validateApiKey.useMutation, J.userManagement.createScopedToken.useMutation, J.userManagement.revokeScopedToken.useMutation, J.userManagement.validateScopedToken.useQuery, J.userManagement.listScopedTokens.useQuery, J.userManagement.setupTotp.useMutation, J.userManagement.confirmTotp.useMutation, J.userManagement.disableTotp.useMutation, J.userManagement.getTotpStatus.useQuery, J.userManagement.verifyTotp.useMutation, J.userManagement.oauthIssueCode.useMutation, J.userManagement.oauthExchangeCode.useMutation, J.userManagement.oauthRefresh.useMutation, J.userManagement.oauthVerifyAccessToken.useQuery, J.userManagement.listOauthSessions.useQuery, J.userManagement.revokeOauthSession.useMutation, J.vacuumControl.start.useMutation, J.vacuumControl.pause.useMutation, J.vacuumControl.stop.useMutation, J.vacuumControl.returnToBase.useMutation, J.vacuumControl.locate.useMutation, J.vacuumControl.setFanSpeed.useMutation, J.vacuumControl.getStatus.useQuery, J.valve.open.useMutation, J.valve.close.useMutation, J.valve.stop.useMutation, J.valve.setPosition.useMutation, J.valve.getStatus.useQuery, J.vibration.getStatus.useQuery, J.videoclips.listClips.useQuery, J.videoclips.getClipPlayback.useQuery, J.waterHeater.setTargetTemp.useMutation, J.waterHeater.setOperationMode.useMutation, J.waterHeater.setAway.useMutation, J.waterHeater.getStatus.useQuery, J.weather.getStatus.useQuery, J.webrtcSession.listStreams.useQuery, J.webrtcSession.createSession.useMutation, J.webrtcSession.handleOffer.useMutation, J.webrtcSession.handleAnswer.useMutation, J.webrtcSession.addIceCandidate.useMutation, J.webrtcSession.getIceCandidates.useQuery, J.webrtcSession.closeSession.useMutation, J.webrtcSession.hasAdaptiveBitrate.useQuery, J.webrtcSession.getSessionState.useQuery, J.zoneAnalytics.getCurrentSnapshot.useQuery, J.zoneAnalytics.getZoneHistory.useQuery, J.zoneAnalytics.getCameraHistory.useQuery, J.zoneAnalytics.getUnzonedHistory.useQuery, J.zoneRules.listRules.useQuery, J.zoneRules.setRules.useMutation, J.zones.listZones.useQuery, J.zones.addZone.useMutation, J.zones.removeZone.useMutation, J.zones.updateZone.useMutation;
|
|
2657
2657
|
//#endregion
|
|
2658
2658
|
//#region ../ui-library/src/composites/device-select-filter.ts
|
|
2659
2659
|
function Yr(e, t) {
|
|
@@ -5846,7 +5846,7 @@ function Vo({ band: e, onChange: t, onRemove: n }) {
|
|
|
5846
5846
|
type: "number",
|
|
5847
5847
|
min: 0,
|
|
5848
5848
|
value: e.preBufferSec ?? "",
|
|
5849
|
-
placeholder: String(
|
|
5849
|
+
placeholder: String(_e.preBufferSec),
|
|
5850
5850
|
onChange: (e) => t({ preBufferSec: Bo(e.target.value) }),
|
|
5851
5851
|
className: "w-16 rounded-md border border-border bg-background px-1 py-1 text-xs"
|
|
5852
5852
|
}),
|
|
@@ -5860,7 +5860,7 @@ function Vo({ band: e, onChange: t, onRemove: n }) {
|
|
|
5860
5860
|
type: "number",
|
|
5861
5861
|
min: 0,
|
|
5862
5862
|
value: e.postBufferSec ?? "",
|
|
5863
|
-
placeholder: String(
|
|
5863
|
+
placeholder: String(_e.postBufferSec),
|
|
5864
5864
|
onChange: (e) => t({ postBufferSec: Bo(e.target.value) }),
|
|
5865
5865
|
className: "w-16 rounded-md border border-border bg-background px-1 py-1 text-xs"
|
|
5866
5866
|
}),
|
|
@@ -5901,10 +5901,10 @@ function Uo({ initial: e, availableProfiles: t, saving: n, onSave: r }) {
|
|
|
5901
5901
|
...c,
|
|
5902
5902
|
...e
|
|
5903
5903
|
}
|
|
5904
|
-
}), d = (e) => e === "" ? void 0 : Number(e), f =
|
|
5904
|
+
}), d = (e) => e === "" ? void 0 : Number(e), f = ye({
|
|
5905
5905
|
enabled: i.length > 0,
|
|
5906
5906
|
bands: i
|
|
5907
|
-
}), p =
|
|
5907
|
+
}), p = he(t, o.profiles), m = (e) => {
|
|
5908
5908
|
let t = p.includes(e) ? p.filter((t) => t !== e) : [...p, e];
|
|
5909
5909
|
s({
|
|
5910
5910
|
...o,
|
|
@@ -5917,7 +5917,7 @@ function Uo({ initial: e, availableProfiles: t, saving: n, onSave: r }) {
|
|
|
5917
5917
|
}
|
|
5918
5918
|
e !== f && a([No(e)]);
|
|
5919
5919
|
}, g = () => {
|
|
5920
|
-
let e = t.length > 0 ?
|
|
5920
|
+
let e = t.length > 0 ? he(t, o.profiles) : o.profiles ? [...o.profiles] : void 0;
|
|
5921
5921
|
r({
|
|
5922
5922
|
enabled: i.length > 0,
|
|
5923
5923
|
bands: i,
|
|
@@ -5925,7 +5925,7 @@ function Uo({ initial: e, availableProfiles: t, saving: n, onSave: r }) {
|
|
|
5925
5925
|
segmentSeconds: o.segmentSeconds,
|
|
5926
5926
|
retention: o.retention
|
|
5927
5927
|
});
|
|
5928
|
-
}, _ =
|
|
5928
|
+
}, _ = Ce.filter((e) => t.includes(e));
|
|
5929
5929
|
return /* @__PURE__ */ B("div", {
|
|
5930
5930
|
className: "space-y-4",
|
|
5931
5931
|
children: [
|
|
@@ -6838,13 +6838,13 @@ function Ls({ deviceId: e }) {
|
|
|
6838
6838
|
until: ge,
|
|
6839
6839
|
limit: F,
|
|
6840
6840
|
projection: "slim"
|
|
6841
|
-
}, { enabled: me && M.has("object") }),
|
|
6841
|
+
}, { enabled: me && M.has("object") }), K = Ir({
|
|
6842
6842
|
deviceId: e,
|
|
6843
6843
|
since: he,
|
|
6844
6844
|
until: ge,
|
|
6845
6845
|
limit: F,
|
|
6846
6846
|
projection: "slim"
|
|
6847
|
-
}, { enabled: me && M.has("motion") }),
|
|
6847
|
+
}, { enabled: me && M.has("motion") }), ve = Rr({
|
|
6848
6848
|
deviceId: e,
|
|
6849
6849
|
since: he,
|
|
6850
6850
|
until: ge,
|
|
@@ -6860,14 +6860,14 @@ function Ls({ deviceId: e }) {
|
|
|
6860
6860
|
label: t.label ?? t.className,
|
|
6861
6861
|
mediaUrl: t.mediaUrl
|
|
6862
6862
|
});
|
|
6863
|
-
if (M.has("motion")) for (let t of
|
|
6863
|
+
if (M.has("motion")) for (let t of K.data ?? []) e.push({
|
|
6864
6864
|
id: t.id,
|
|
6865
6865
|
timestamp: t.timestamp,
|
|
6866
6866
|
kind: "motion",
|
|
6867
6867
|
label: `Motion (${t.regionCount})`,
|
|
6868
6868
|
mediaUrl: t.mediaUrl
|
|
6869
6869
|
});
|
|
6870
|
-
if (M.has("audio")) for (let t of
|
|
6870
|
+
if (M.has("audio")) for (let t of ve.data ?? []) e.push({
|
|
6871
6871
|
id: t.id,
|
|
6872
6872
|
timestamp: t.timestamp,
|
|
6873
6873
|
kind: "audio",
|
|
@@ -6879,15 +6879,15 @@ function Ls({ deviceId: e }) {
|
|
|
6879
6879
|
G,
|
|
6880
6880
|
M,
|
|
6881
6881
|
_e.data,
|
|
6882
|
-
|
|
6883
|
-
|
|
6884
|
-
]), be = h(() => !!(M.has("object") && (_e.data?.length ?? 0) === F || M.has("motion") && (
|
|
6882
|
+
K.data,
|
|
6883
|
+
ve.data
|
|
6884
|
+
]), be = h(() => !!(M.has("object") && (_e.data?.length ?? 0) === F || M.has("motion") && (K.data?.length ?? 0) === F || M.has("audio") && (ve.data?.length ?? 0) === F), [
|
|
6885
6885
|
M,
|
|
6886
6886
|
_e.data,
|
|
6887
|
-
ve.data,
|
|
6888
6887
|
K.data,
|
|
6888
|
+
ve.data,
|
|
6889
6889
|
F
|
|
6890
|
-
]),
|
|
6890
|
+
]), xe = o(async (r, i, a, o, c) => {
|
|
6891
6891
|
d(r), p(null);
|
|
6892
6892
|
try {
|
|
6893
6893
|
let r = await t.trpcClient.recording.getPlaybackManifest.query({
|
|
@@ -6908,7 +6908,7 @@ function Ls({ deviceId: e }) {
|
|
|
6908
6908
|
t,
|
|
6909
6909
|
e,
|
|
6910
6910
|
n
|
|
6911
|
-
]),
|
|
6911
|
+
]), Se = o((e) => {
|
|
6912
6912
|
let t = ls(e, pe);
|
|
6913
6913
|
if (!t) return;
|
|
6914
6914
|
if (w.current) {
|
|
@@ -6921,18 +6921,18 @@ function Ls({ deviceId: e }) {
|
|
|
6921
6921
|
hour: "2-digit",
|
|
6922
6922
|
minute: "2-digit"
|
|
6923
6923
|
})}`;
|
|
6924
|
-
|
|
6924
|
+
xe(`seek:${t.fromMs}`, t.fromMs, t.toMs, n, t.fromMs);
|
|
6925
6925
|
}, [
|
|
6926
6926
|
pe,
|
|
6927
|
-
|
|
6927
|
+
xe,
|
|
6928
6928
|
ne
|
|
6929
|
-
]),
|
|
6929
|
+
]), Ce = o(() => {
|
|
6930
6930
|
ee("timeline");
|
|
6931
|
-
}, [ee]),
|
|
6931
|
+
}, [ee]), we = o((e) => {
|
|
6932
6932
|
O(e, "timeline");
|
|
6933
|
-
}, [O]),
|
|
6933
|
+
}, [O]), Te = o((e) => {
|
|
6934
6934
|
te(ls(e, pe)?.fromMs ?? e, "timeline");
|
|
6935
|
-
}, [pe, te]),
|
|
6935
|
+
}, [pe, te]), Ee = o((e) => {
|
|
6936
6936
|
if (w.current) {
|
|
6937
6937
|
ne(e.timestamp - Ns, "timeline");
|
|
6938
6938
|
return;
|
|
@@ -6941,10 +6941,10 @@ function Ls({ deviceId: e }) {
|
|
|
6941
6941
|
hour: "2-digit",
|
|
6942
6942
|
minute: "2-digit"
|
|
6943
6943
|
})}`;
|
|
6944
|
-
|
|
6945
|
-
}, [
|
|
6944
|
+
xe(`event:${e.id}`, e.timestamp - Ns, e.timestamp + Ps, t, e.timestamp);
|
|
6945
|
+
}, [xe, ne]), De = o((e) => {
|
|
6946
6946
|
i((t) => t === e ? null : e);
|
|
6947
|
-
}, []),
|
|
6947
|
+
}, []), Oe = ue.isLoading, ke = de.isLoading, q = (_e.isLoading || K.isLoading || ve.isLoading) && me, Ae = h(() => _s(H.fromMs, H.toMs, 5), [H.fromMs, H.toMs]), je = C ? D.scrubbing ? D.scrubEpoch : D.playheadEpoch : a, Me = C && (_ === "playing" || _ === "paused");
|
|
6948
6948
|
return /* @__PURE__ */ B("div", {
|
|
6949
6949
|
className: "space-y-3",
|
|
6950
6950
|
children: [
|
|
@@ -7012,7 +7012,7 @@ function Ls({ deviceId: e }) {
|
|
|
7012
7012
|
children: [/* @__PURE__ */ z("div", {
|
|
7013
7013
|
className: "text-[10px] font-semibold uppercase tracking-wider text-foreground-subtle",
|
|
7014
7014
|
children: "Recorded"
|
|
7015
|
-
}),
|
|
7015
|
+
}), Oe ? /* @__PURE__ */ z("div", { className: "h-5 animate-pulse rounded bg-background/40" }) : pe.length === 0 ? /* @__PURE__ */ z(ts, {
|
|
7016
7016
|
icon: Ft,
|
|
7017
7017
|
title: "No recordings for this window."
|
|
7018
7018
|
}) : /* @__PURE__ */ z(vs, {
|
|
@@ -7020,11 +7020,11 @@ function Ls({ deviceId: e }) {
|
|
|
7020
7020
|
windowTo: H.toMs,
|
|
7021
7021
|
spans: pe,
|
|
7022
7022
|
playheadMs: je,
|
|
7023
|
-
onSeek:
|
|
7023
|
+
onSeek: Se,
|
|
7024
7024
|
...C ? {
|
|
7025
|
-
onScrubStart:
|
|
7026
|
-
onScrubMove:
|
|
7027
|
-
onScrubEnd:
|
|
7025
|
+
onScrubStart: Ce,
|
|
7026
|
+
onScrubMove: we,
|
|
7027
|
+
onScrubEnd: Te
|
|
7028
7028
|
} : {}
|
|
7029
7029
|
})]
|
|
7030
7030
|
}),
|
|
@@ -7033,12 +7033,12 @@ function Ls({ deviceId: e }) {
|
|
|
7033
7033
|
children: [/* @__PURE__ */ z("div", {
|
|
7034
7034
|
className: "text-[10px] font-semibold uppercase tracking-wider text-foreground-subtle",
|
|
7035
7035
|
children: "Events · density"
|
|
7036
|
-
}),
|
|
7036
|
+
}), ke ? /* @__PURE__ */ z("div", { className: "h-6 animate-pulse rounded bg-background/40" }) : /* @__PURE__ */ z(bs, {
|
|
7037
7037
|
windowFrom: H.fromMs,
|
|
7038
7038
|
windowTo: H.toMs,
|
|
7039
7039
|
buckets: W,
|
|
7040
7040
|
selectedIndex: r,
|
|
7041
|
-
onSelectBucket:
|
|
7041
|
+
onSelectBucket: De
|
|
7042
7042
|
})]
|
|
7043
7043
|
}),
|
|
7044
7044
|
/* @__PURE__ */ z("div", {
|
|
@@ -7053,9 +7053,9 @@ function Ls({ deviceId: e }) {
|
|
|
7053
7053
|
}),
|
|
7054
7054
|
G ? /* @__PURE__ */ z(Ts, {
|
|
7055
7055
|
clips: ye,
|
|
7056
|
-
loading:
|
|
7056
|
+
loading: q,
|
|
7057
7057
|
busyKey: c,
|
|
7058
|
-
onPlay:
|
|
7058
|
+
onPlay: Ee,
|
|
7059
7059
|
enabledKinds: M,
|
|
7060
7060
|
onToggleKind: P,
|
|
7061
7061
|
hasMore: be,
|
|
@@ -7076,7 +7076,7 @@ function zs(e) {
|
|
|
7076
7076
|
return n > 0 ? `${n}h ${r}m` : r > 0 ? `${r}m ${i}s` : `${i}s`;
|
|
7077
7077
|
}
|
|
7078
7078
|
function Bs({ deviceId: e }) {
|
|
7079
|
-
let t = ie(), n = qr({ deviceId: e }), r = Wr({ deviceId: e }), i = Gr(), a = Kr(), { data: s } = Jr(void 0, { staleTime: 3e4 }), c = h(() =>
|
|
7079
|
+
let t = ie(), n = qr({ deviceId: e }), r = Wr({ deviceId: e }), i = Gr(), a = Kr(), { data: s } = Jr(void 0, { staleTime: 3e4 }), c = h(() => De(s ?? [], e).map((e) => e.profile), [s, e]), l = (t) => {
|
|
7080
7080
|
i.mutate({
|
|
7081
7081
|
deviceId: e,
|
|
7082
7082
|
config: t
|
|
@@ -7095,7 +7095,7 @@ function Bs({ deviceId: e }) {
|
|
|
7095
7095
|
deviceId: e,
|
|
7096
7096
|
fromMs: d - Rs,
|
|
7097
7097
|
toMs: d
|
|
7098
|
-
}), p = n.data ?
|
|
7098
|
+
}), p = n.data ? ue.safeParse(n.data) : null, m = p?.success ? p.data : null, g = r.data ? pe.safeParse(r.data) : null, _ = g?.success ? g.data : null, v = f.data?.ranges ?? [], y = v.reduce((e, t) => e + Math.max(0, t.endMs - t.startMs), 0), b = m?.enabled === !0 && m.activeMode === "continuous";
|
|
7099
7099
|
return /* @__PURE__ */ B("div", {
|
|
7100
7100
|
className: "space-y-3",
|
|
7101
7101
|
children: [/* @__PURE__ */ z(k, {
|
|
@@ -7170,8 +7170,8 @@ function Bs({ deviceId: e }) {
|
|
|
7170
7170
|
//#region ../ui-library/src/widgets/host-widgets.ts
|
|
7171
7171
|
b();
|
|
7172
7172
|
var Vs = {
|
|
7173
|
-
"host/motion-zones-grid": d(() => import("./MotionZonesSettings-
|
|
7174
|
-
"host/privacy-mask-grid": d(() => import("./PrivacyMaskSettings-
|
|
7173
|
+
"host/motion-zones-grid": d(() => import("./MotionZonesSettings-D0ZWade-.mjs").then((e) => ({ default: e.MotionZonesSettings }))),
|
|
7174
|
+
"host/privacy-mask-grid": d(() => import("./PrivacyMaskSettings-CCaDEYqV.mjs").then((e) => ({ default: e.PrivacyMaskSettings }))),
|
|
7175
7175
|
"host/ptz-panel": ko,
|
|
7176
7176
|
"host/consumables-panel": Ji,
|
|
7177
7177
|
"host/ptz-autotrack": Hi,
|
|
@@ -8214,18 +8214,18 @@ function xc({ value: e, size: t = bc, className: n, alt: r }) {
|
|
|
8214
8214
|
var Sc = "w-full rounded-md border border-border bg-background px-2.5 py-1.5 text-xs text-foreground focus:border-primary focus:ring-1 focus:ring-primary/30 outline-none disabled:opacity-50 disabled:cursor-not-allowed";
|
|
8215
8215
|
function Cc({ value: e, onChange: t, disabled: n }) {
|
|
8216
8216
|
let r = [];
|
|
8217
|
-
for (let e of
|
|
8217
|
+
for (let e of de) r.includes(e.region) || r.push(e.region);
|
|
8218
8218
|
return /* @__PURE__ */ B("select", {
|
|
8219
8219
|
className: Sc,
|
|
8220
8220
|
value: e,
|
|
8221
8221
|
disabled: n,
|
|
8222
8222
|
onChange: (e) => t(e.target.value),
|
|
8223
|
-
children: [!
|
|
8223
|
+
children: [!Te(e) && /* @__PURE__ */ z("option", {
|
|
8224
8224
|
value: "",
|
|
8225
8225
|
children: "— Select timezone —"
|
|
8226
8226
|
}), r.map((e) => /* @__PURE__ */ z("optgroup", {
|
|
8227
8227
|
label: e,
|
|
8228
|
-
children:
|
|
8228
|
+
children: de.filter((t) => t.region === e).map((e) => /* @__PURE__ */ z("option", {
|
|
8229
8229
|
value: e.id,
|
|
8230
8230
|
children: e.label
|
|
8231
8231
|
}, e.id))
|
|
@@ -10065,7 +10065,7 @@ function Tl({ active: e, onClick: t, disabled: n, children: r, title: i }) {
|
|
|
10065
10065
|
});
|
|
10066
10066
|
}
|
|
10067
10067
|
function El({ catalog: e, value: t, onChange: n, disabled: r }) {
|
|
10068
|
-
let i =
|
|
10068
|
+
let i = Ee(e), a = G(e, t), o = i.find((e) => e.family === a?.family)?.family ?? i[0]?.family ?? "", s = i.find((e) => e.family === o) ?? i[0];
|
|
10069
10069
|
if (!s) return null;
|
|
10070
10070
|
let c = s.tiers.find((e) => e.tier === a?.tier)?.tier ?? s.tiers[0]?.tier ?? "", l = s.tiers.find((e) => e.tier === c) ?? s.tiers[0];
|
|
10071
10071
|
if (!l) return null;
|
|
@@ -10076,7 +10076,7 @@ function El({ catalog: e, value: t, onChange: n, disabled: r }) {
|
|
|
10076
10076
|
let t = l.options.filter((t) => t.resolution === e), r = t.find((e) => e.precision === (a?.precision ?? "fp32") && e.optimization === (a?.optimization ?? "standard")) ?? t[0];
|
|
10077
10077
|
r && n(r.modelId);
|
|
10078
10078
|
}, g = (t) => {
|
|
10079
|
-
let r =
|
|
10079
|
+
let r = be(e, {
|
|
10080
10080
|
family: s.family,
|
|
10081
10081
|
tier: l.tier,
|
|
10082
10082
|
precision: t.precision,
|
|
@@ -10198,7 +10198,7 @@ function kl({ models: e, value: t, onChange: n, disabled: r }) {
|
|
|
10198
10198
|
r ? r.push(n) : t.set(e, [n]);
|
|
10199
10199
|
}
|
|
10200
10200
|
return t;
|
|
10201
|
-
}, [e]), a = h(() =>
|
|
10201
|
+
}, [e]), a = h(() => fe.filter((e) => (i.get(e)?.length ?? 0) > 0), [i]), o = h(() => {
|
|
10202
10202
|
let n = e.find((e) => e.id === t);
|
|
10203
10203
|
return n ? Ol(n) : void 0;
|
|
10204
10204
|
}, [e, t]) ?? (a.includes("camstack") ? "camstack" : a[0] ?? "camstack"), [s, c] = l(o);
|
|
@@ -11328,21 +11328,21 @@ function Bu({ serverUrl: e, streamKey: t, label: n, autoPlay: r = !0, muted: i =
|
|
|
11328
11328
|
R.current = k, v(() => (R.current?.(A.current), () => R.current?.(null)), []);
|
|
11329
11329
|
let V = u(null), H = u(null), ie = u(0), ae = u(!1), oe = u(!1), se = u(async () => {}), [U, ce] = l("idle"), [le, ue] = l(""), [de, fe] = l(i), pe = u(de);
|
|
11330
11330
|
pe.current = de;
|
|
11331
|
-
let [W, G] = l(!1), [me, he] = l(!1), ge = Mu(), [_e,
|
|
11331
|
+
let [W, G] = l(!1), [me, he] = l(!1), ge = Mu(), [_e, K] = l(!0), ve = u(null), ye = u(!1);
|
|
11332
11332
|
(b || y) && (ye.current = !0);
|
|
11333
|
-
let be = ye.current,
|
|
11334
|
-
x && (
|
|
11335
|
-
let
|
|
11333
|
+
let be = ye.current, xe = u(!1);
|
|
11334
|
+
x && (xe.current = !0);
|
|
11335
|
+
let Se = xe.current, [Ce, we] = l(!1), Te = u(null), [Ee, De] = l(null), [Oe, ke] = l(!1), q = o(() => {
|
|
11336
11336
|
let e = A.current;
|
|
11337
11337
|
if (!(!e || e.readyState < 2 || !e.videoWidth || !e.videoHeight)) try {
|
|
11338
11338
|
let t = document.createElement("canvas");
|
|
11339
11339
|
t.width = e.videoWidth, t.height = e.videoHeight;
|
|
11340
11340
|
let n = t.getContext("2d");
|
|
11341
11341
|
if (!n || (n.drawImage(e, 0, 0), Nu(n, t.width, t.height))) return;
|
|
11342
|
-
|
|
11342
|
+
Te.current = t.toDataURL("image/jpeg", .6);
|
|
11343
11343
|
} catch {}
|
|
11344
11344
|
}, []), Ae = o((e) => {
|
|
11345
|
-
ce(e), e === "playing" &&
|
|
11345
|
+
ce(e), e === "playing" && we(!0), m?.(e);
|
|
11346
11346
|
}, [m]), je = o(() => {
|
|
11347
11347
|
if (N.current?.abort(), N.current = null, P.current &&= (clearTimeout(P.current), null), H.current &&= (clearTimeout(H.current), null), V.current = null, oe.current = !1, ie.current = 0, j.current &&= (j.current.close(), null), T && M.current.size > 0) {
|
|
11348
11348
|
for (let e of M.current) T(e).catch(() => {});
|
|
@@ -11708,7 +11708,7 @@ function Bu({ serverUrl: e, streamKey: t, label: n, autoPlay: r = !0, muted: i =
|
|
|
11708
11708
|
Pe,
|
|
11709
11709
|
O
|
|
11710
11710
|
]);
|
|
11711
|
-
let Re =
|
|
11711
|
+
let Re = Se ? Le : be ? Fe : Ie, ze = u(() => {}), Be = u(g);
|
|
11712
11712
|
Be.current = g;
|
|
11713
11713
|
let Ve = u(() => {});
|
|
11714
11714
|
Ve.current = (e) => {
|
|
@@ -11734,7 +11734,7 @@ function Bu({ serverUrl: e, streamKey: t, label: n, autoPlay: r = !0, muted: i =
|
|
|
11734
11734
|
let Ue = u(!1);
|
|
11735
11735
|
v(() => {
|
|
11736
11736
|
if (r) {
|
|
11737
|
-
if (
|
|
11737
|
+
if (Se) {
|
|
11738
11738
|
if (!x) return;
|
|
11739
11739
|
} else if (be) {
|
|
11740
11740
|
if (!y || !b) return;
|
|
@@ -11743,7 +11743,7 @@ function Bu({ serverUrl: e, streamKey: t, label: n, autoPlay: r = !0, muted: i =
|
|
|
11743
11743
|
}
|
|
11744
11744
|
}, [
|
|
11745
11745
|
r,
|
|
11746
|
-
|
|
11746
|
+
Se,
|
|
11747
11747
|
be,
|
|
11748
11748
|
x,
|
|
11749
11749
|
y,
|
|
@@ -11753,7 +11753,7 @@ function Bu({ serverUrl: e, streamKey: t, label: n, autoPlay: r = !0, muted: i =
|
|
|
11753
11753
|
let We = () => {
|
|
11754
11754
|
F.current = 0, Re();
|
|
11755
11755
|
}, Ge = () => {
|
|
11756
|
-
if (F.current = 0, j.current &&
|
|
11756
|
+
if (F.current = 0, j.current && Se) {
|
|
11757
11757
|
Le(!0);
|
|
11758
11758
|
return;
|
|
11759
11759
|
}
|
|
@@ -11939,30 +11939,30 @@ function Bu({ serverUrl: e, streamKey: t, label: n, autoPlay: r = !0, muted: i =
|
|
|
11939
11939
|
e && (ju(e, i), i || e.play().catch(() => {}));
|
|
11940
11940
|
}, [i]);
|
|
11941
11941
|
let it = () => {
|
|
11942
|
-
ge || (
|
|
11942
|
+
ge || (K(!0), ve.current && clearTimeout(ve.current), ve.current = setTimeout(() => K(!1), 3e3));
|
|
11943
11943
|
}, at = () => {
|
|
11944
|
-
|
|
11944
|
+
K((e) => !e), ve.current && clearTimeout(ve.current);
|
|
11945
11945
|
};
|
|
11946
11946
|
v(() => {
|
|
11947
11947
|
if (U === "playing") {
|
|
11948
|
-
|
|
11949
|
-
let e = setInterval(
|
|
11948
|
+
q();
|
|
11949
|
+
let e = setInterval(q, 2e3);
|
|
11950
11950
|
return () => clearInterval(e);
|
|
11951
11951
|
}
|
|
11952
|
-
|
|
11952
|
+
Ce && Te.current && De(Te.current);
|
|
11953
11953
|
}, [
|
|
11954
11954
|
U,
|
|
11955
|
-
|
|
11956
|
-
|
|
11955
|
+
Ce,
|
|
11956
|
+
q
|
|
11957
11957
|
]), v(() => {
|
|
11958
11958
|
if (U !== "playing") {
|
|
11959
|
-
|
|
11959
|
+
ke(!1);
|
|
11960
11960
|
return;
|
|
11961
11961
|
}
|
|
11962
11962
|
let e = A.current;
|
|
11963
11963
|
if (!e) return;
|
|
11964
11964
|
let t = !1, n = () => {
|
|
11965
|
-
t ||
|
|
11965
|
+
t || ke(!0);
|
|
11966
11966
|
}, r;
|
|
11967
11967
|
typeof e.requestVideoFrameCallback == "function" && (r = e.requestVideoFrameCallback(() => n())), e.addEventListener("loadeddata", n, { once: !0 });
|
|
11968
11968
|
let i = setTimeout(n, 12e3);
|
|
@@ -11970,7 +11970,7 @@ function Bu({ serverUrl: e, streamKey: t, label: n, autoPlay: r = !0, muted: i =
|
|
|
11970
11970
|
t = !0, clearTimeout(i), r !== void 0 && typeof e.cancelVideoFrameCallback == "function" && e.cancelVideoFrameCallback(r), e.removeEventListener("loadeddata", n);
|
|
11971
11971
|
};
|
|
11972
11972
|
}, [U]);
|
|
11973
|
-
let ot =
|
|
11973
|
+
let ot = Ce && Ee ? Ee : ee ?? null, st = !Oe && ot !== null;
|
|
11974
11974
|
return /* @__PURE__ */ B("div", {
|
|
11975
11975
|
ref: re,
|
|
11976
11976
|
className: `relative isolate bg-black overflow-hidden group ${p}`,
|
|
@@ -12218,7 +12218,7 @@ var Uu = {
|
|
|
12218
12218
|
face: "#a855f7",
|
|
12219
12219
|
plate: "#ec4899"
|
|
12220
12220
|
}, Wu = Object.freeze({
|
|
12221
|
-
...Object.fromEntries(Object.values(
|
|
12221
|
+
...Object.fromEntries(Object.values(Oe).filter((e) => e.category === "detection" || e.kind === "motion").map((e) => [e.kind, e.color])),
|
|
12222
12222
|
...Uu
|
|
12223
12223
|
}), Gu = [
|
|
12224
12224
|
"#ef4444",
|
|
@@ -12231,11 +12231,11 @@ var Uu = {
|
|
|
12231
12231
|
"#0891b2",
|
|
12232
12232
|
"#7c3aed",
|
|
12233
12233
|
"#059669"
|
|
12234
|
-
], Ku =
|
|
12234
|
+
], Ku = we;
|
|
12235
12235
|
function qu(e, t) {
|
|
12236
12236
|
if (t?.[e]) return t[e];
|
|
12237
12237
|
if (t?.[e.toLowerCase()]) return t[e.toLowerCase()];
|
|
12238
|
-
let n =
|
|
12238
|
+
let n = Oe[e] ?? Oe[e.toLowerCase()];
|
|
12239
12239
|
if (n !== void 0) return n.color;
|
|
12240
12240
|
if (Wu[e]) return Wu[e];
|
|
12241
12241
|
if (Wu[e.toLowerCase()]) return Wu[e.toLowerCase()];
|
|
@@ -13382,9 +13382,9 @@ function Af({ agentId: e, addonId: t, deviceId: n, containerDeviceId: r, integra
|
|
|
13382
13382
|
]), v(() => {
|
|
13383
13383
|
L && he && ge(!1);
|
|
13384
13384
|
}, [L, he]);
|
|
13385
|
-
let
|
|
13385
|
+
let K = o(() => {
|
|
13386
13386
|
R(!0), me("smooth");
|
|
13387
|
-
}, [me]),
|
|
13387
|
+
}, [me]), ve = o(() => {
|
|
13388
13388
|
if (V.current) {
|
|
13389
13389
|
V.current = !1;
|
|
13390
13390
|
return;
|
|
@@ -13395,7 +13395,7 @@ function Af({ agentId: e, addonId: t, deviceId: n, containerDeviceId: r, integra
|
|
|
13395
13395
|
R((e) => e === t ? e : t);
|
|
13396
13396
|
}, []), ye = h(() => G.filter((e) => e.tags && Object.keys(e.tags).length > 0 || e.meta && Object.keys(e.meta).length > 0).map((e) => `${e.timestamp}|${e.level}|${e.scope ?? ""}|${e.message}`), [G]), be = o(() => {
|
|
13397
13397
|
ie((e) => (e && U(/* @__PURE__ */ new Set()), !e));
|
|
13398
|
-
}, []),
|
|
13398
|
+
}, []), xe = o(() => {
|
|
13399
13399
|
let e = G.map((e) => {
|
|
13400
13400
|
let t = new Date(e.timestamp).toLocaleTimeString(), n = e.tags ? " " + Object.entries(e.tags).filter(([, e]) => e).map(([e, t]) => `${e}=${t}`).join(" ") : "";
|
|
13401
13401
|
return `${t} [${e.level.toUpperCase()}]${e.scope ? ` [${e.scope}]` : ""}${n} ${e.message}`;
|
|
@@ -13403,23 +13403,23 @@ function Af({ agentId: e, addonId: t, deviceId: n, containerDeviceId: r, integra
|
|
|
13403
13403
|
navigator.clipboard.writeText(e.join("\n")).then(() => {
|
|
13404
13404
|
oe(!0), setTimeout(() => oe(!1), 1500);
|
|
13405
13405
|
});
|
|
13406
|
-
}, [G]),
|
|
13407
|
-
I(Date.now()), M.reset(),
|
|
13406
|
+
}, [G]), Se = J.logs.clear.useMutation(), Ce = o(() => {
|
|
13407
|
+
I(Date.now()), M.reset(), Se.mutate(A ? { tags: A } : {});
|
|
13408
13408
|
}, [
|
|
13409
13409
|
M,
|
|
13410
|
-
|
|
13410
|
+
Se,
|
|
13411
13411
|
A
|
|
13412
|
-
]),
|
|
13412
|
+
]), we = o((e) => {
|
|
13413
13413
|
U((t) => {
|
|
13414
13414
|
let n = new Set(t);
|
|
13415
13415
|
return n.has(e) ? n.delete(e) : n.add(e), n;
|
|
13416
13416
|
});
|
|
13417
|
-
}, []), [
|
|
13417
|
+
}, []), [Te, Ee] = l(null), De = o((e, t) => {
|
|
13418
13418
|
let n = new Date(e.timestamp).toISOString(), r = e.tags ? " " + Object.entries(e.tags).filter(([, e]) => e).map(([e, t]) => `${e}=${t}`).join(" ") : "", i = e.meta && Object.keys(e.meta).length > 0 ? ` meta=${JSON.stringify(e.meta)}` : "", a = `${n} [${e.level.toUpperCase()}]${e.scope ? ` [${e.scope}]` : ""}${r} ${e.message}${i}`;
|
|
13419
13419
|
navigator.clipboard.writeText(a).then(() => {
|
|
13420
|
-
|
|
13420
|
+
Ee(t), setTimeout(() => Ee((e) => e === t ? null : e), 1200);
|
|
13421
13421
|
});
|
|
13422
|
-
}, []),
|
|
13422
|
+
}, []), Oe = o((e) => `${e.timestamp}|${e.level}|${e.scope ?? ""}|${e.message}`, []);
|
|
13423
13423
|
return /* @__PURE__ */ B("div", {
|
|
13424
13424
|
className: Z("h-full min-h-0 flex flex-col", b),
|
|
13425
13425
|
onClick: (e) => e.stopPropagation(),
|
|
@@ -13459,7 +13459,7 @@ function Af({ agentId: e, addonId: t, deviceId: n, containerDeviceId: r, integra
|
|
|
13459
13459
|
label: L ? "Following" : "Paused",
|
|
13460
13460
|
active: L,
|
|
13461
13461
|
onClick: () => {
|
|
13462
|
-
L ? R(!1) :
|
|
13462
|
+
L ? R(!1) : K();
|
|
13463
13463
|
}
|
|
13464
13464
|
}),
|
|
13465
13465
|
/* @__PURE__ */ z(Pf, {
|
|
@@ -13472,13 +13472,13 @@ function Af({ agentId: e, addonId: t, deviceId: n, containerDeviceId: r, integra
|
|
|
13472
13472
|
/* @__PURE__ */ z(Pf, {
|
|
13473
13473
|
icon: St,
|
|
13474
13474
|
label: ae ? "Copied!" : "Copy",
|
|
13475
|
-
onClick:
|
|
13475
|
+
onClick: xe,
|
|
13476
13476
|
disabled: G.length === 0
|
|
13477
13477
|
}),
|
|
13478
13478
|
/* @__PURE__ */ z(Pf, {
|
|
13479
13479
|
icon: F,
|
|
13480
13480
|
label: "Clear",
|
|
13481
|
-
onClick:
|
|
13481
|
+
onClick: Ce
|
|
13482
13482
|
}),
|
|
13483
13483
|
/* @__PURE__ */ B("div", {
|
|
13484
13484
|
className: "relative",
|
|
@@ -13545,13 +13545,13 @@ function Af({ agentId: e, addonId: t, deviceId: n, containerDeviceId: r, integra
|
|
|
13545
13545
|
className: "relative flex-1 min-h-0 flex flex-col",
|
|
13546
13546
|
children: [!L && he && /* @__PURE__ */ B("button", {
|
|
13547
13547
|
type: "button",
|
|
13548
|
-
onClick:
|
|
13548
|
+
onClick: K,
|
|
13549
13549
|
className: "absolute bottom-2 left-1/2 -translate-x-1/2 z-10 inline-flex items-center gap-1 px-2 py-1 rounded-full border border-primary/40 bg-primary/15 text-primary text-[10px] font-medium shadow-md backdrop-blur-sm hover:bg-primary/25 transition-colors",
|
|
13550
13550
|
title: "Jump to the newest log line and resume following",
|
|
13551
13551
|
children: [/* @__PURE__ */ z(Ne, { className: "h-3 w-3" }), "Jump to latest"]
|
|
13552
13552
|
}), /* @__PURE__ */ B("div", {
|
|
13553
13553
|
ref: ue,
|
|
13554
|
-
onScroll:
|
|
13554
|
+
onScroll: ve,
|
|
13555
13555
|
className: Z("flex-1 min-h-0 overflow-auto font-mono text-[10px]", d),
|
|
13556
13556
|
children: [
|
|
13557
13557
|
W && /* @__PURE__ */ B("div", {
|
|
@@ -13565,10 +13565,10 @@ function Af({ agentId: e, addonId: t, deviceId: n, containerDeviceId: r, integra
|
|
|
13565
13565
|
G.length > 0 && /* @__PURE__ */ z("table", {
|
|
13566
13566
|
className: "w-full",
|
|
13567
13567
|
children: /* @__PURE__ */ z("tbody", { children: G.map((e) => {
|
|
13568
|
-
let t = Tf[e.level] ?? Tf.info, n = t.icon, r =
|
|
13568
|
+
let t = Tf[e.level] ?? Tf.info, n = t.icon, r = Oe(e), i = H || se.has(r), a = e.tags && Object.keys(e.tags).length > 0, o = e.meta && Object.keys(e.meta).length > 0, s = a || o;
|
|
13569
13569
|
return /* @__PURE__ */ B("tr", {
|
|
13570
13570
|
className: Z("hover:bg-surface-hover/30 border-b border-border/30", s && "cursor-pointer"),
|
|
13571
|
-
onClick: s ? () =>
|
|
13571
|
+
onClick: s ? () => we(r) : void 0,
|
|
13572
13572
|
children: [
|
|
13573
13573
|
/* @__PURE__ */ z("td", {
|
|
13574
13574
|
className: "px-2 py-1 text-foreground-subtle whitespace-nowrap align-top w-[70px]",
|
|
@@ -13638,8 +13638,8 @@ function Af({ agentId: e, addonId: t, deviceId: n, containerDeviceId: r, integra
|
|
|
13638
13638
|
/* @__PURE__ */ z("td", {
|
|
13639
13639
|
className: "px-1 py-1 align-top w-5",
|
|
13640
13640
|
children: /* @__PURE__ */ z(Nf, {
|
|
13641
|
-
copied:
|
|
13642
|
-
onCopy: () =>
|
|
13641
|
+
copied: Te === r,
|
|
13642
|
+
onCopy: () => De(e, r)
|
|
13643
13643
|
})
|
|
13644
13644
|
})
|
|
13645
13645
|
]
|
|
@@ -13702,122 +13702,122 @@ function Ff(e, t, n, r) {
|
|
|
13702
13702
|
return !0;
|
|
13703
13703
|
}
|
|
13704
13704
|
var If = {
|
|
13705
|
-
[
|
|
13705
|
+
[q.AddonStarted]: {
|
|
13706
13706
|
icon: En,
|
|
13707
13707
|
color: "bg-emerald-500/15 text-emerald-400 border-emerald-500/30",
|
|
13708
13708
|
label: "Started"
|
|
13709
13709
|
},
|
|
13710
|
-
[
|
|
13710
|
+
[q.AddonInstalled]: {
|
|
13711
13711
|
icon: Ot,
|
|
13712
13712
|
color: "bg-emerald-500/15 text-emerald-400 border-emerald-500/30",
|
|
13713
13713
|
label: "Installed"
|
|
13714
13714
|
},
|
|
13715
|
-
[
|
|
13715
|
+
[q.AddonRestarted]: {
|
|
13716
13716
|
icon: jn,
|
|
13717
13717
|
color: "bg-blue-500/15 text-blue-400 border-blue-500/30",
|
|
13718
13718
|
label: "Restarted"
|
|
13719
13719
|
},
|
|
13720
|
-
[
|
|
13720
|
+
[q.AddonUpdated]: {
|
|
13721
13721
|
icon: ur,
|
|
13722
13722
|
color: "bg-blue-500/15 text-blue-400 border-blue-500/30",
|
|
13723
13723
|
label: "Updated"
|
|
13724
13724
|
},
|
|
13725
|
-
[
|
|
13725
|
+
[q.AddonStopped]: {
|
|
13726
13726
|
icon: P,
|
|
13727
13727
|
color: "bg-foreground-subtle/10 text-foreground-subtle border-border",
|
|
13728
13728
|
label: "Stopped"
|
|
13729
13729
|
},
|
|
13730
|
-
[
|
|
13730
|
+
[q.AddonUninstalled]: {
|
|
13731
13731
|
icon: F,
|
|
13732
13732
|
color: "bg-foreground-subtle/10 text-foreground-subtle border-border",
|
|
13733
13733
|
label: "Uninstalled"
|
|
13734
13734
|
},
|
|
13735
|
-
[
|
|
13735
|
+
[q.AddonCrashed]: {
|
|
13736
13736
|
icon: st,
|
|
13737
13737
|
color: "bg-red-500/15 text-red-400 border-red-500/30",
|
|
13738
13738
|
label: "Crashed"
|
|
13739
13739
|
},
|
|
13740
|
-
[
|
|
13740
|
+
[q.AddonError]: {
|
|
13741
13741
|
icon: sr,
|
|
13742
13742
|
color: "bg-red-500/15 text-red-400 border-red-500/30",
|
|
13743
13743
|
label: "Error"
|
|
13744
13744
|
},
|
|
13745
|
-
[
|
|
13745
|
+
[q.DetectionPhaseTransition]: {
|
|
13746
13746
|
icon: Ae,
|
|
13747
13747
|
color: "bg-violet-500/15 text-violet-400 border-violet-500/30",
|
|
13748
13748
|
label: "Phase"
|
|
13749
13749
|
},
|
|
13750
|
-
[
|
|
13750
|
+
[q.DetectionResult]: {
|
|
13751
13751
|
icon: Pn,
|
|
13752
13752
|
color: "bg-purple-500/15 text-purple-400 border-purple-500/30",
|
|
13753
13753
|
label: "Detection"
|
|
13754
13754
|
},
|
|
13755
|
-
[
|
|
13755
|
+
[q.DetectionEvent]: {
|
|
13756
13756
|
icon: Mt,
|
|
13757
13757
|
color: "bg-blue-500/15 text-blue-400 border-blue-500/30",
|
|
13758
13758
|
label: "Event"
|
|
13759
13759
|
},
|
|
13760
|
-
[
|
|
13760
|
+
[q.DetectionCameraNative]: {
|
|
13761
13761
|
icon: tr,
|
|
13762
13762
|
color: "bg-cyan-500/15 text-cyan-400 border-cyan-500/30",
|
|
13763
13763
|
label: "Camera AI"
|
|
13764
13764
|
},
|
|
13765
|
-
[
|
|
13765
|
+
[q.ProviderMotion]: {
|
|
13766
13766
|
icon: Tr,
|
|
13767
13767
|
color: "bg-orange-500/15 text-orange-400 border-orange-500/30",
|
|
13768
13768
|
label: "Motion"
|
|
13769
13769
|
},
|
|
13770
|
-
[
|
|
13770
|
+
[q.MotionOnMotionChanged]: {
|
|
13771
13771
|
icon: Tr,
|
|
13772
13772
|
color: "bg-orange-500/15 text-orange-400 border-orange-500/30",
|
|
13773
13773
|
label: "Motion"
|
|
13774
13774
|
},
|
|
13775
|
-
[
|
|
13775
|
+
[q.MotionAnalysis]: {
|
|
13776
13776
|
icon: Ae,
|
|
13777
13777
|
color: "bg-orange-500/10 text-orange-300 border-orange-500/20",
|
|
13778
13778
|
label: "Motion analysis"
|
|
13779
13779
|
},
|
|
13780
|
-
[
|
|
13780
|
+
[q.MotionZonesRaw]: {
|
|
13781
13781
|
icon: Ae,
|
|
13782
13782
|
color: "bg-orange-500/10 text-orange-300 border-orange-500/20",
|
|
13783
13783
|
label: "Motion zones"
|
|
13784
13784
|
},
|
|
13785
|
-
[
|
|
13785
|
+
[q.ProviderDetection]: {
|
|
13786
13786
|
icon: tr,
|
|
13787
13787
|
color: "bg-cyan-500/15 text-cyan-400 border-cyan-500/30",
|
|
13788
13788
|
label: "Provider Det"
|
|
13789
13789
|
},
|
|
13790
|
-
[
|
|
13790
|
+
[q.PipelineAudioInferenceResult]: {
|
|
13791
13791
|
icon: M,
|
|
13792
13792
|
color: "bg-pink-500/15 text-pink-400 border-pink-500/30",
|
|
13793
13793
|
label: "Audio"
|
|
13794
13794
|
},
|
|
13795
|
-
[
|
|
13795
|
+
[q.AgentOnline]: {
|
|
13796
13796
|
icon: En,
|
|
13797
13797
|
color: "bg-emerald-500/15 text-emerald-400 border-emerald-500/30",
|
|
13798
13798
|
label: "Agent Online"
|
|
13799
13799
|
},
|
|
13800
|
-
[
|
|
13800
|
+
[q.AgentOffline]: {
|
|
13801
13801
|
icon: P,
|
|
13802
13802
|
color: "bg-red-500/15 text-red-400 border-red-500/30",
|
|
13803
13803
|
label: "Agent Offline"
|
|
13804
13804
|
},
|
|
13805
|
-
[
|
|
13805
|
+
[q.DeviceRegistered]: {
|
|
13806
13806
|
icon: Ot,
|
|
13807
13807
|
color: "bg-emerald-500/15 text-emerald-400 border-emerald-500/30",
|
|
13808
13808
|
label: "Registered"
|
|
13809
13809
|
},
|
|
13810
|
-
[
|
|
13810
|
+
[q.DeviceUnregistered]: {
|
|
13811
13811
|
icon: F,
|
|
13812
13812
|
color: "bg-red-500/15 text-red-400 border-red-500/30",
|
|
13813
13813
|
label: "Unregistered"
|
|
13814
13814
|
},
|
|
13815
|
-
[
|
|
13815
|
+
[q.DeviceStateChanged]: {
|
|
13816
13816
|
icon: Ae,
|
|
13817
13817
|
color: "bg-foreground-subtle/10 text-foreground-subtle border-border",
|
|
13818
13818
|
label: "State"
|
|
13819
13819
|
},
|
|
13820
|
-
[
|
|
13820
|
+
[q.EventEmitted]: {
|
|
13821
13821
|
icon: Tr,
|
|
13822
13822
|
color: "bg-amber-500/15 text-amber-400 border-amber-500/30",
|
|
13823
13823
|
label: "Event"
|
|
@@ -13829,7 +13829,7 @@ function Lf(e, t) {
|
|
|
13829
13829
|
color: "bg-foreground-subtle/10 text-foreground-subtle border-border",
|
|
13830
13830
|
label: e.split(".").pop() ?? e
|
|
13831
13831
|
};
|
|
13832
|
-
if (e ===
|
|
13832
|
+
if (e === q.DeviceStateChanged && t && typeof t.capName == "string") {
|
|
13833
13833
|
let e = t.capName;
|
|
13834
13834
|
return {
|
|
13835
13835
|
...n,
|
|
@@ -13838,31 +13838,31 @@ function Lf(e, t) {
|
|
|
13838
13838
|
}
|
|
13839
13839
|
return n;
|
|
13840
13840
|
}
|
|
13841
|
-
var Rf = Object.freeze([...new Set(Object.values(
|
|
13842
|
-
|
|
13843
|
-
|
|
13844
|
-
|
|
13845
|
-
|
|
13846
|
-
|
|
13847
|
-
|
|
13848
|
-
|
|
13849
|
-
|
|
13850
|
-
|
|
13851
|
-
|
|
13852
|
-
|
|
13853
|
-
|
|
13854
|
-
|
|
13855
|
-
|
|
13856
|
-
|
|
13857
|
-
|
|
13858
|
-
|
|
13841
|
+
var Rf = Object.freeze([...new Set(Object.values(q))].toSorted()), zf = Object.freeze([
|
|
13842
|
+
q.PipelineCameraMetricsSnapshot,
|
|
13843
|
+
q.PipelineRunnerLoadSnapshot,
|
|
13844
|
+
q.PipelineEngineMetricsSnapshot,
|
|
13845
|
+
q.PipelineInferenceResult,
|
|
13846
|
+
q.PipelineTrace,
|
|
13847
|
+
q.PipelineProgress,
|
|
13848
|
+
q.StreamBrokerMetricsSnapshot,
|
|
13849
|
+
q.MetricsNodeResourcesSnapshot,
|
|
13850
|
+
q.MetricsNodeProcessesSnapshot,
|
|
13851
|
+
q.ClusterTopologySnapshot,
|
|
13852
|
+
q.MotionAnalysis,
|
|
13853
|
+
q.MotionZonesRaw,
|
|
13854
|
+
q.DetectionResult,
|
|
13855
|
+
q.PipelineAudioInferenceResult,
|
|
13856
|
+
q.PlatformProbePhase,
|
|
13857
|
+
q.BenchmarkProgress,
|
|
13858
|
+
q.ModelDownloadProgress
|
|
13859
13859
|
]), Bf = new Set(zf), Vf = Object.freeze(Rf.filter((e) => !Bf.has(e)));
|
|
13860
13860
|
function Hf(e, t) {
|
|
13861
|
-
if (e ===
|
|
13861
|
+
if (e === q.DetectionPhaseTransition) {
|
|
13862
13862
|
let e = t.to, n = t.from, r = typeof t.source == "string" ? t.source : null, i = typeof t.cooldownMs == "number" ? t.cooldownMs : null, a = r ? ` (${r}${i ? `, ${Math.round(i / 1e3)}s cooldown` : ""})` : "";
|
|
13863
13863
|
return e === "active" ? `Motion detected — phase active${a}` : e === "watching" ? `Cooldown expired — phase watching${a}` : `Phase: ${String(n)} → ${String(e)}${a}`;
|
|
13864
13864
|
}
|
|
13865
|
-
if (e ===
|
|
13865
|
+
if (e === q.DetectionResult) {
|
|
13866
13866
|
let e = t.frame?.detections ?? [];
|
|
13867
13867
|
if (e.length === 0) return null;
|
|
13868
13868
|
let n = /* @__PURE__ */ new Map();
|
|
@@ -13872,19 +13872,19 @@ function Hf(e, t) {
|
|
|
13872
13872
|
}
|
|
13873
13873
|
return [...n.entries()].map(([e, t]) => t > 1 ? `${e} ×${t}` : e).join(", ");
|
|
13874
13874
|
}
|
|
13875
|
-
if (e ===
|
|
13875
|
+
if (e === q.PipelineAudioInferenceResult) {
|
|
13876
13876
|
let e = t.frame?.detections ?? [];
|
|
13877
13877
|
return e.length === 0 ? null : e.map((e) => {
|
|
13878
13878
|
let t = e, n = t.macroClass ?? t.class ?? t.label, r = typeof n == "string" ? n : "", i = t.score;
|
|
13879
13879
|
return i ? `${r} (${Math.round(i * 100)}%)` : r;
|
|
13880
13880
|
}).filter(Boolean).join(", ");
|
|
13881
13881
|
}
|
|
13882
|
-
if (e ===
|
|
13882
|
+
if (e === q.DetectionEvent) {
|
|
13883
13883
|
let e = t.label ?? t.class, n = t.score ?? t.confidence, r = [];
|
|
13884
13884
|
return typeof e == "string" && r.push(e), typeof n == "number" && r.push(`${Math.round(n * 100)}%`), r.length > 0 ? r.join(" — ") : null;
|
|
13885
13885
|
}
|
|
13886
|
-
if (e ===
|
|
13887
|
-
if (e ===
|
|
13886
|
+
if (e === q.ProviderMotion) return t.active === !0 ? "motion start" : "motion stop";
|
|
13887
|
+
if (e === q.DeviceStateChanged) {
|
|
13888
13888
|
let e = t.slice;
|
|
13889
13889
|
if (e && typeof e == "object") {
|
|
13890
13890
|
let t = Object.keys(e).filter((e) => e !== "lastFetchedAt" && e !== "ts");
|
|
@@ -13892,12 +13892,12 @@ function Hf(e, t) {
|
|
|
13892
13892
|
}
|
|
13893
13893
|
return null;
|
|
13894
13894
|
}
|
|
13895
|
-
if (e ===
|
|
13896
|
-
if (e ===
|
|
13895
|
+
if (e === q.EventEmitted) return (typeof t.eventType == "string" ? t.eventType : null) ?? null;
|
|
13896
|
+
if (e === q.MotionOnMotionChanged) {
|
|
13897
13897
|
let e = t.detected, n = typeof t.source == "string" ? t.source : null, r = e === !0 ? "motion start" : e === !1 ? "motion stop" : "motion";
|
|
13898
13898
|
return n ? `${r} (${n})` : r;
|
|
13899
13899
|
}
|
|
13900
|
-
if (e ===
|
|
13900
|
+
if (e === q.ProviderDetection || e === q.DetectionCameraNative) {
|
|
13901
13901
|
let e = t.detections ?? [];
|
|
13902
13902
|
if (!Array.isArray(e) || e.length === 0) return (typeof t.class == "string" ? t.class : null) ?? null;
|
|
13903
13903
|
let n = /* @__PURE__ */ new Map();
|
|
@@ -13912,7 +13912,7 @@ function Hf(e, t) {
|
|
|
13912
13912
|
}
|
|
13913
13913
|
function Uf(e) {
|
|
13914
13914
|
let t = e.category;
|
|
13915
|
-
return t ===
|
|
13915
|
+
return t === q.DetectionResult || t === q.PipelineAudioInferenceResult ? Hf(t, e.data) !== null : !0;
|
|
13916
13916
|
}
|
|
13917
13917
|
var Wf = 300;
|
|
13918
13918
|
function Gf({ agentId: e, addonId: t, deviceId: n, defaultCategories: r, categories: i, category: a, maxHeight: s = "max-h-96", limit: c = 50, showCategoryFilter: d = !0, showFilters: f = !1, liveBuffer: p, onClose: m, className: g }) {
|
|
@@ -14016,26 +14016,26 @@ function Gf({ agentId: e, addonId: t, deviceId: n, defaultCategories: r, categor
|
|
|
14016
14016
|
x(new Set(_)), A(""), L(0);
|
|
14017
14017
|
}, [_]), me = o(() => {
|
|
14018
14018
|
L(Date.now()), w.reset();
|
|
14019
|
-
}, [w]), [he, ge] = l(!1), [_e,
|
|
14019
|
+
}, [w]), [he, ge] = l(!1), [_e, K] = l(null), ve = o((e) => {
|
|
14020
14020
|
let t = new Date(e.timestamp).toISOString(), n = Hf(e.category, e.data) ?? "", r = n ? ` ${n}` : "";
|
|
14021
14021
|
return `${t} [${e.category}]${r} data=${JSON.stringify(e.data)}`;
|
|
14022
14022
|
}, []), ye = o(() => {
|
|
14023
|
-
let e = fe.map(
|
|
14023
|
+
let e = fe.map(ve);
|
|
14024
14024
|
navigator.clipboard.writeText(e.join("\n")).then(() => {
|
|
14025
14025
|
ge(!0), setTimeout(() => ge(!1), 1500);
|
|
14026
14026
|
});
|
|
14027
|
-
}, [fe,
|
|
14028
|
-
navigator.clipboard.writeText(
|
|
14029
|
-
|
|
14027
|
+
}, [fe, ve]), be = o((e) => {
|
|
14028
|
+
navigator.clipboard.writeText(ve(e)).then(() => {
|
|
14029
|
+
K(e.id), setTimeout(() => K((t) => t === e.id ? null : t), 1200);
|
|
14030
14030
|
});
|
|
14031
|
-
}, [
|
|
14031
|
+
}, [ve]), xe = o(() => {
|
|
14032
14032
|
x(new Set(Rf));
|
|
14033
|
-
}, []),
|
|
14033
|
+
}, []), Se = o(() => {
|
|
14034
14034
|
x(/* @__PURE__ */ new Set());
|
|
14035
|
-
}, []),
|
|
14035
|
+
}, []), Ce = h(() => {
|
|
14036
14036
|
let e = N.trim().toLowerCase();
|
|
14037
14037
|
return e ? Rf.filter((t) => t.toLowerCase().includes(e)) : Rf;
|
|
14038
|
-
}, [N]),
|
|
14038
|
+
}, [N]), we = Rf.length, Te = b.size, Ee = Te === we, De = Ee ? "All" : `${Te}/${we}`;
|
|
14039
14039
|
return /* @__PURE__ */ B("div", {
|
|
14040
14040
|
className: Z("h-full min-h-0 flex flex-col", g),
|
|
14041
14041
|
onClick: (e) => e.stopPropagation(),
|
|
@@ -14081,22 +14081,22 @@ function Gf({ agentId: e, addonId: t, deviceId: n, defaultCategories: r, categor
|
|
|
14081
14081
|
children: [/* @__PURE__ */ B("button", {
|
|
14082
14082
|
type: "button",
|
|
14083
14083
|
onClick: () => M((e) => !e),
|
|
14084
|
-
className: Z("inline-flex items-center gap-1 text-[9px] px-1.5 py-0.5 rounded border transition-colors",
|
|
14084
|
+
className: Z("inline-flex items-center gap-1 text-[9px] px-1.5 py-0.5 rounded border transition-colors", Ee ? "border-border text-foreground-subtle hover:text-foreground" : "border-violet-500/30 bg-violet-500/10 text-violet-400"),
|
|
14085
14085
|
title: "Pick events to track",
|
|
14086
14086
|
children: [
|
|
14087
14087
|
/* @__PURE__ */ z(Bt, { className: "h-2.5 w-2.5" }),
|
|
14088
14088
|
"Filter (",
|
|
14089
|
-
|
|
14089
|
+
De,
|
|
14090
14090
|
")"
|
|
14091
14091
|
]
|
|
14092
14092
|
}), j && /* @__PURE__ */ z(Kf, {
|
|
14093
14093
|
search: N,
|
|
14094
14094
|
onSearchChange: P,
|
|
14095
|
-
categories:
|
|
14095
|
+
categories: Ce,
|
|
14096
14096
|
active: b,
|
|
14097
14097
|
onToggle: W,
|
|
14098
|
-
onSelectAll:
|
|
14099
|
-
onSelectNone:
|
|
14098
|
+
onSelectAll: xe,
|
|
14099
|
+
onSelectNone: Se,
|
|
14100
14100
|
onResetDefaults: G
|
|
14101
14101
|
})]
|
|
14102
14102
|
}),
|
|
@@ -14363,7 +14363,7 @@ function Jf({ copied: e, onCopy: t }) {
|
|
|
14363
14363
|
}
|
|
14364
14364
|
//#endregion
|
|
14365
14365
|
//#region ../ui-library/src/composites/device-controls/atoms.tsx
|
|
14366
|
-
b(), Object.freeze([...new Set(
|
|
14366
|
+
b(), Object.freeze([...new Set(me.filter((e) => e.scope === "device").map((e) => e.name))].toSorted()), b(), b();
|
|
14367
14367
|
function Yf({ value: e, unit: t, onDelta: n }) {
|
|
14368
14368
|
return /* @__PURE__ */ B("div", {
|
|
14369
14369
|
className: "flex h-8 w-full overflow-hidden rounded-lg border border-border bg-surface",
|
|
@@ -14638,7 +14638,7 @@ function gp({ trpc: e, deviceId: t, layout: n, optimistic: r, features: i }) {
|
|
|
14638
14638
|
slice: (e) => e.state.lockControl
|
|
14639
14639
|
}), { display: c, applyOptimistic: u } = mp(o, { enabled: r ?? !0 }), [d, f] = l(null), [p, m] = l(!1), [h, g] = l(null);
|
|
14640
14640
|
if (c === void 0) return null;
|
|
14641
|
-
let _ = c.state === "locked" || c.state === "locking", v = !s || c.state === "jammed", y = i?.includes(
|
|
14641
|
+
let _ = c.state === "locked" || c.state === "locking", v = !s || c.state === "jammed", y = i?.includes(ve.LockOpen) === !0, b = n === "compact", x = () => {
|
|
14642
14642
|
u({ state: "locking" }), a?.lock({});
|
|
14643
14643
|
}, S = () => {
|
|
14644
14644
|
u({ state: "unlocking" }), a?.unlock({});
|
|
@@ -15546,10 +15546,10 @@ b();
|
|
|
15546
15546
|
var Gp = (e) => e;
|
|
15547
15547
|
function Kp(e) {
|
|
15548
15548
|
let t = e.capName === void 0 ? void 0 : e.display?.perCap?.[e.capName], n = t?.precision ?? e.display?.precision ?? e.roleDefault?.precision ?? e.slicePrecision, r = e.sliceUnit ?? e.canonicalUnit, i = t?.unit ?? e.display?.unit ?? e.roleDefault?.unit;
|
|
15549
|
-
return i !== void 0 && r !== void 0 && i !== r &&
|
|
15549
|
+
return i !== void 0 && r !== void 0 && i !== r && Se(r, i) ? {
|
|
15550
15550
|
unit: i,
|
|
15551
15551
|
precision: n,
|
|
15552
|
-
toDisplayValue: (e) =>
|
|
15552
|
+
toDisplayValue: (e) => ge(e, r, i) ?? e
|
|
15553
15553
|
} : {
|
|
15554
15554
|
unit: r ?? "",
|
|
15555
15555
|
precision: n,
|
|
@@ -16015,7 +16015,7 @@ function fm({ trpc: e, deviceId: t, features: n, optimistic: r }) {
|
|
|
16015
16015
|
slice: (e) => e.state.cover
|
|
16016
16016
|
}), { display: s, applyOptimistic: c } = mp(a, { enabled: r ?? !0 });
|
|
16017
16017
|
if (i === void 0) return null;
|
|
16018
|
-
let l = !o, u = (n ?? []).includes(
|
|
16018
|
+
let l = !o, u = (n ?? []).includes(ve.CoverPositionable), d = (n ?? []).includes(ve.CoverTilt), f = im(s?.state), p = s?.position ?? null, m = p !== null, h = s?.state === "open" || s?.state === "opening", g = (e, t) => {
|
|
16019
16019
|
l || !e || (t !== void 0 && c(t), e({}));
|
|
16020
16020
|
}, _ = (e) => {
|
|
16021
16021
|
l || (c({ position: e }), i?.setPosition({ position: e }));
|
|
@@ -17647,7 +17647,7 @@ function fh({ label: e, busy: t, variant: n, onClick: r, children: i }) {
|
|
|
17647
17647
|
function ph({ trpc: e, deviceId: t, features: n, optimistic: r }) {
|
|
17648
17648
|
let { cap: i, slice: a, available: o } = ah(e, t), { display: s, applyOptimistic: c } = mp(a, { enabled: r ?? !0 });
|
|
17649
17649
|
if (i === void 0) return null;
|
|
17650
|
-
let l = !o, u = (n ?? []).includes(
|
|
17650
|
+
let l = !o, u = (n ?? []).includes(ve.ValvePositionable), d = im(s?.state), f = ih(s?.state), p = s?.position ?? null, m = p !== null, h = (e, t) => {
|
|
17651
17651
|
l || !e || (t !== void 0 && c(t), e({}));
|
|
17652
17652
|
}, g = (e) => {
|
|
17653
17653
|
l || (c({ position: e }), i.setPosition({ position: e }));
|
|
@@ -18940,7 +18940,7 @@ function Uh({ trpc: e, deviceId: t, deviceName: n }) {
|
|
|
18940
18940
|
b();
|
|
18941
18941
|
var Wh = 20, Gh = 9, Kh = "#f59e0b", qh = "#ef4444";
|
|
18942
18942
|
function Jh(e) {
|
|
18943
|
-
return Math.min(
|
|
18943
|
+
return Math.min(ce, Math.max(ke, e));
|
|
18944
18944
|
}
|
|
18945
18945
|
var Yh = "\n@keyframes pf-eat { 0%,100%{transform:translateY(0)} 50%{transform:translateY(2px)} }\n@keyframes pf-pulse { 0%,100%{opacity:.55} 50%{opacity:1} }\n@media (prefers-reduced-motion: reduce) {\n .pf-eat, .pf-pulse { animation: none !important; }\n}\n";
|
|
18946
18946
|
function Xh({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
|
|
@@ -19239,7 +19239,7 @@ function Qh({ icon: e, label: t }) {
|
|
|
19239
19239
|
});
|
|
19240
19240
|
}
|
|
19241
19241
|
function $h({ grams: e, low: t, eating: n }) {
|
|
19242
|
-
let r = Math.min(1, Math.max(0, (e ?? 0) /
|
|
19242
|
+
let r = Math.min(1, Math.max(0, (e ?? 0) / ce)), i = t ? qh : Kh, a = 52 - r * 24;
|
|
19243
19243
|
return /* @__PURE__ */ B("svg", {
|
|
19244
19244
|
width: 72,
|
|
19245
19245
|
height: 72,
|
|
@@ -19304,7 +19304,7 @@ function eg({ label: e, grams: t, busy: n, onGrams: r, onFeed: i }) {
|
|
|
19304
19304
|
/* @__PURE__ */ z(tg, {
|
|
19305
19305
|
label: `Decrease ${e} portion`,
|
|
19306
19306
|
symbol: "−",
|
|
19307
|
-
disabled: n || t <=
|
|
19307
|
+
disabled: n || t <= ke,
|
|
19308
19308
|
onClick: () => r(Jh(t - 1))
|
|
19309
19309
|
}),
|
|
19310
19310
|
/* @__PURE__ */ B("span", {
|
|
@@ -19317,7 +19317,7 @@ function eg({ label: e, grams: t, busy: n, onGrams: r, onFeed: i }) {
|
|
|
19317
19317
|
/* @__PURE__ */ z(tg, {
|
|
19318
19318
|
label: `Increase ${e} portion`,
|
|
19319
19319
|
symbol: "+",
|
|
19320
|
-
disabled: n || t >=
|
|
19320
|
+
disabled: n || t >= ce,
|
|
19321
19321
|
onClick: () => r(Jh(t + 1))
|
|
19322
19322
|
})
|
|
19323
19323
|
]
|
|
@@ -20141,7 +20141,7 @@ function Hg({ trpc: e, deviceId: t, features: n, optimistic: r }) {
|
|
|
20141
20141
|
slice: (e) => e.state.lockControl
|
|
20142
20142
|
}), { display: s, applyOptimistic: c } = mp(a, { enabled: r ?? !0 });
|
|
20143
20143
|
if (i === void 0 || s === void 0) return null;
|
|
20144
|
-
let l = Ig(s.state), u = Lg(s.state) || !o, d = n?.includes(
|
|
20144
|
+
let l = Ig(s.state), u = Lg(s.state) || !o, d = n?.includes(ve.LockOpen) === !0, f = () => {
|
|
20145
20145
|
u || (l ? (c({ state: "unlocking" }), i.unlock({})) : (c({ state: "locking" }), i.lock({})));
|
|
20146
20146
|
}, p = () => {
|
|
20147
20147
|
u || i.open({});
|
|
@@ -20199,7 +20199,7 @@ function Xg({ trpc: e, deviceId: t, features: n, optimistic: r }) {
|
|
|
20199
20199
|
slice: (e) => e.state.color
|
|
20200
20200
|
}), s = mp(i.slice, { enabled: r ?? !0 }), c = mp(a.slice, { enabled: r ?? !0 }), l = mp(o.slice, { enabled: r ?? !0 });
|
|
20201
20201
|
if (i.cap === void 0 || s.display === void 0) return null;
|
|
20202
|
-
let u = s.display.on === !0, d = !i.available, f = c.display?.percentage ?? 0, p = !a.available, m = u ? f / 100 : 0, h = u ? Jg : Yg, g = (n?.includes(
|
|
20202
|
+
let u = s.display.on === !0, d = !i.available, f = c.display?.percentage ?? 0, p = !a.available, m = u ? f / 100 : 0, h = u ? Jg : Yg, g = (n?.includes(ve.LightColorMired) ?? !1) && o.cap !== void 0, _ = l.display?.mireds, v = !o.available;
|
|
20203
20203
|
return /* @__PURE__ */ B("div", {
|
|
20204
20204
|
className: "flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-4",
|
|
20205
20205
|
children: [
|
|
@@ -20324,7 +20324,7 @@ function $g({ trpc: e, deviceId: t, features: n, optimistic: r }) {
|
|
|
20324
20324
|
slice: (e) => e.state.fanControl
|
|
20325
20325
|
}), o = mp(i.slice, { enabled: r ?? !0 }), s = mp(a.slice, { enabled: r ?? !0 });
|
|
20326
20326
|
if (i.cap === void 0 || o.display === void 0) return null;
|
|
20327
|
-
let c = o.display.on === !0, l = !i.available, u = s.display?.percentage ?? 0, d = !a.available, f = c ? u / 100 : 0, p = c ? Zg : Qg, m = n?.includes(
|
|
20327
|
+
let c = o.display.on === !0, l = !i.available, u = s.display?.percentage ?? 0, d = !a.available, f = c ? u / 100 : 0, p = c ? Zg : Qg, m = n?.includes(ve.FanSpeed) ?? !1, h = (n?.includes(ve.FanOscillating) ?? !1) && a.cap !== void 0, g = s.display?.availablePresets ?? [], _ = (n?.includes(ve.FanPreset) ?? !1) && a.cap !== void 0 && g.length > 0, v = s.display?.preset ?? "", y = s.display?.oscillating === !0, b = () => {
|
|
20328
20328
|
if (l) return;
|
|
20329
20329
|
let e = !c;
|
|
20330
20330
|
o.applyOptimistic({ on: e }), i.cap?.setState({ on: e });
|
|
@@ -20513,7 +20513,7 @@ function o_({ trpc: e, deviceId: t, features: n, optimistic: r }) {
|
|
|
20513
20513
|
slice: (e) => e.state.mediaPlayer
|
|
20514
20514
|
}), { display: s, applyOptimistic: c } = mp(a, { enabled: r ?? !0 });
|
|
20515
20515
|
if (i === void 0 || s === void 0) return null;
|
|
20516
|
-
let l = !o, u = t_(s.state), d = (n?.includes(
|
|
20516
|
+
let l = !o, u = t_(s.state), d = (n?.includes(ve.MediaPlayerSeek) ?? !1) && s.durationMs !== null && s.durationMs > 0, f = n?.includes(ve.MediaPlayerNext) ?? !1, p = n?.includes(ve.MediaPlayerPrevious) ?? !1, m = (n?.includes(ve.MediaPlayerVolume) ?? !1) && s.volumeLevel !== null, h = () => {
|
|
20517
20517
|
l || (u === "play" ? (c({ state: "playing" }), i.play({})) : (c({ state: "paused" }), i.pause({})));
|
|
20518
20518
|
}, g = s.currentMedia?.artist ?? s.currentMedia?.album ?? null, _ = n_(s.positionMs, s.durationMs), v = s.volumeLevel ?? 0;
|
|
20519
20519
|
return /* @__PURE__ */ B("div", {
|
|
@@ -21329,7 +21329,7 @@ var K_ = {
|
|
|
21329
21329
|
HeroCard: mm
|
|
21330
21330
|
}
|
|
21331
21331
|
};
|
|
21332
|
-
Object.fromEntries(Object.values(
|
|
21332
|
+
Object.fromEntries(Object.values(W).map((e) => [e, K_[xe[e]]])), W.Cover, W.Valve, W.Thermostat, W.Climate, W.Control, W.Button, W.MediaPlayer, W.AlarmPanel, W.Lock, W.Vacuum, W.LawnMower, W.Humidifier, W.Switch, W.Siren, W.Light, W.Fan, W.WaterHeater, W.Sensor, W.Presence, W.EventEmitter, W.Notifier, W.Script, W.Automation, W.Camera, W.Hub, W.Update, W.Generic, W.Weather, W.Container, W.Image, W.PetFeeder, new Set(Object.values(W));
|
|
21333
21333
|
//#endregion
|
|
21334
21334
|
//#region ../ui-library/src/lib/format-last-seen.ts
|
|
21335
21335
|
var q_ = 1e3;
|
|
@@ -24338,343 +24338,343 @@ b(), b();
|
|
|
24338
24338
|
//#endregion
|
|
24339
24339
|
//#region ../ui-library/src/composites/device-meta.ts
|
|
24340
24340
|
var xw = {
|
|
24341
|
-
[
|
|
24341
|
+
[W.Camera]: {
|
|
24342
24342
|
icon: te,
|
|
24343
24343
|
label: "Camera"
|
|
24344
24344
|
},
|
|
24345
|
-
[
|
|
24345
|
+
[W.Hub]: {
|
|
24346
24346
|
icon: yn,
|
|
24347
24347
|
label: "Hub"
|
|
24348
24348
|
},
|
|
24349
|
-
[
|
|
24349
|
+
[W.Light]: {
|
|
24350
24350
|
icon: Zt,
|
|
24351
24351
|
label: "Light"
|
|
24352
24352
|
},
|
|
24353
|
-
[
|
|
24353
|
+
[W.Siren]: {
|
|
24354
24354
|
icon: Un,
|
|
24355
24355
|
label: "Siren"
|
|
24356
24356
|
},
|
|
24357
|
-
[
|
|
24357
|
+
[W.Switch]: {
|
|
24358
24358
|
icon: rr,
|
|
24359
24359
|
label: "Switch"
|
|
24360
24360
|
},
|
|
24361
|
-
[
|
|
24361
|
+
[W.Sensor]: {
|
|
24362
24362
|
icon: Ae,
|
|
24363
24363
|
label: "Sensor"
|
|
24364
24364
|
},
|
|
24365
|
-
[
|
|
24365
|
+
[W.Thermostat]: {
|
|
24366
24366
|
icon: nr,
|
|
24367
24367
|
label: "Thermostat"
|
|
24368
24368
|
},
|
|
24369
|
-
[
|
|
24369
|
+
[W.Climate]: {
|
|
24370
24370
|
icon: je,
|
|
24371
24371
|
label: "Air conditioner"
|
|
24372
24372
|
},
|
|
24373
|
-
[
|
|
24373
|
+
[W.Button]: {
|
|
24374
24374
|
icon: ut,
|
|
24375
24375
|
label: "Button"
|
|
24376
24376
|
},
|
|
24377
|
-
[
|
|
24377
|
+
[W.EventEmitter]: {
|
|
24378
24378
|
icon: Tr,
|
|
24379
24379
|
label: "Event Emitter"
|
|
24380
24380
|
},
|
|
24381
|
-
[
|
|
24381
|
+
[W.Update]: {
|
|
24382
24382
|
icon: jn,
|
|
24383
24383
|
label: "Update"
|
|
24384
24384
|
},
|
|
24385
|
-
[
|
|
24385
|
+
[W.Generic]: {
|
|
24386
24386
|
icon: Ze,
|
|
24387
24387
|
label: "Generic"
|
|
24388
24388
|
},
|
|
24389
|
-
[
|
|
24389
|
+
[W.Notifier]: {
|
|
24390
24390
|
icon: Ge,
|
|
24391
24391
|
label: "Notifier"
|
|
24392
24392
|
},
|
|
24393
|
-
[
|
|
24393
|
+
[W.Script]: {
|
|
24394
24394
|
icon: Fn,
|
|
24395
24395
|
label: "Script"
|
|
24396
24396
|
},
|
|
24397
|
-
[
|
|
24397
|
+
[W.Automation]: {
|
|
24398
24398
|
icon: Sr,
|
|
24399
24399
|
label: "Automation"
|
|
24400
24400
|
},
|
|
24401
|
-
[
|
|
24401
|
+
[W.Lock]: {
|
|
24402
24402
|
icon: nn,
|
|
24403
24403
|
label: "Lock"
|
|
24404
24404
|
},
|
|
24405
|
-
[
|
|
24405
|
+
[W.Cover]: {
|
|
24406
24406
|
icon: Je,
|
|
24407
24407
|
label: "Cover"
|
|
24408
24408
|
},
|
|
24409
|
-
[
|
|
24409
|
+
[W.Valve]: {
|
|
24410
24410
|
icon: wn,
|
|
24411
24411
|
label: "Valve"
|
|
24412
24412
|
},
|
|
24413
|
-
[
|
|
24413
|
+
[W.Humidifier]: {
|
|
24414
24414
|
icon: vr,
|
|
24415
24415
|
label: "Humidifier"
|
|
24416
24416
|
},
|
|
24417
|
-
[
|
|
24417
|
+
[W.WaterHeater]: {
|
|
24418
24418
|
icon: Ve,
|
|
24419
24419
|
label: "Water heater"
|
|
24420
24420
|
},
|
|
24421
|
-
[
|
|
24421
|
+
[W.Fan]: {
|
|
24422
24422
|
icon: Nt,
|
|
24423
24423
|
label: "Fan"
|
|
24424
24424
|
},
|
|
24425
|
-
[
|
|
24425
|
+
[W.MediaPlayer]: {
|
|
24426
24426
|
icon: dn,
|
|
24427
24427
|
label: "Media player"
|
|
24428
24428
|
},
|
|
24429
|
-
[
|
|
24429
|
+
[W.AlarmPanel]: {
|
|
24430
24430
|
icon: zn,
|
|
24431
24431
|
label: "Alarm panel"
|
|
24432
24432
|
},
|
|
24433
|
-
[
|
|
24433
|
+
[W.Control]: {
|
|
24434
24434
|
icon: Kn,
|
|
24435
24435
|
label: "Control"
|
|
24436
24436
|
},
|
|
24437
|
-
[
|
|
24437
|
+
[W.Presence]: {
|
|
24438
24438
|
icon: an,
|
|
24439
24439
|
label: "Presence"
|
|
24440
24440
|
},
|
|
24441
|
-
[
|
|
24441
|
+
[W.Weather]: {
|
|
24442
24442
|
icon: vt,
|
|
24443
24443
|
label: "Weather"
|
|
24444
24444
|
},
|
|
24445
|
-
[
|
|
24445
|
+
[W.Vacuum]: {
|
|
24446
24446
|
icon: Xe,
|
|
24447
24447
|
label: "Vacuum"
|
|
24448
24448
|
},
|
|
24449
|
-
[
|
|
24449
|
+
[W.LawnMower]: {
|
|
24450
24450
|
icon: ar,
|
|
24451
24451
|
label: "Lawn mower"
|
|
24452
24452
|
},
|
|
24453
|
-
[
|
|
24453
|
+
[W.Container]: {
|
|
24454
24454
|
icon: Ze,
|
|
24455
24455
|
label: "Container"
|
|
24456
24456
|
},
|
|
24457
|
-
[
|
|
24457
|
+
[W.Image]: {
|
|
24458
24458
|
icon: qt,
|
|
24459
24459
|
label: "Image"
|
|
24460
24460
|
},
|
|
24461
|
-
[
|
|
24461
|
+
[W.PetFeeder]: {
|
|
24462
24462
|
icon: Ye,
|
|
24463
24463
|
label: "Pet feeder"
|
|
24464
24464
|
}
|
|
24465
24465
|
}, Sw = {
|
|
24466
|
-
[
|
|
24466
|
+
[K.Siren]: {
|
|
24467
24467
|
icon: Un,
|
|
24468
24468
|
label: "Siren"
|
|
24469
24469
|
},
|
|
24470
|
-
[
|
|
24470
|
+
[K.Floodlight]: {
|
|
24471
24471
|
icon: Zt,
|
|
24472
24472
|
label: "Floodlight"
|
|
24473
24473
|
},
|
|
24474
|
-
[
|
|
24474
|
+
[K.Spotlight]: {
|
|
24475
24475
|
icon: Lt,
|
|
24476
24476
|
label: "Spotlight"
|
|
24477
24477
|
},
|
|
24478
|
-
[
|
|
24478
|
+
[K.PirSensor]: {
|
|
24479
24479
|
icon: kn,
|
|
24480
24480
|
label: "PIR sensor"
|
|
24481
24481
|
},
|
|
24482
|
-
[
|
|
24482
|
+
[K.Chime]: {
|
|
24483
24483
|
icon: Ge,
|
|
24484
24484
|
label: "Chime"
|
|
24485
24485
|
},
|
|
24486
|
-
[
|
|
24486
|
+
[K.Autotrack]: {
|
|
24487
24487
|
icon: wt,
|
|
24488
24488
|
label: "Auto-track"
|
|
24489
24489
|
},
|
|
24490
|
-
[
|
|
24490
|
+
[K.Nightvision]: {
|
|
24491
24491
|
icon: fn,
|
|
24492
24492
|
label: "Night vision"
|
|
24493
24493
|
},
|
|
24494
|
-
[
|
|
24494
|
+
[K.PrivacyMask]: {
|
|
24495
24495
|
icon: N,
|
|
24496
24496
|
label: "Privacy mask"
|
|
24497
24497
|
},
|
|
24498
|
-
[
|
|
24498
|
+
[K.Doorbell]: {
|
|
24499
24499
|
icon: Et,
|
|
24500
24500
|
label: "Doorbell"
|
|
24501
24501
|
},
|
|
24502
|
-
[
|
|
24502
|
+
[K.BinaryHelper]: {
|
|
24503
24503
|
icon: rr,
|
|
24504
24504
|
label: "Binary helper"
|
|
24505
24505
|
},
|
|
24506
|
-
[
|
|
24506
|
+
[K.MotionSensor]: {
|
|
24507
24507
|
icon: zt,
|
|
24508
24508
|
label: "Motion sensor"
|
|
24509
24509
|
},
|
|
24510
|
-
[
|
|
24510
|
+
[K.ContactSensor]: {
|
|
24511
24511
|
icon: Dt,
|
|
24512
24512
|
label: "Contact sensor"
|
|
24513
24513
|
},
|
|
24514
|
-
[
|
|
24514
|
+
[K.LeakSensor]: {
|
|
24515
24515
|
icon: kt,
|
|
24516
24516
|
label: "Leak sensor"
|
|
24517
24517
|
},
|
|
24518
|
-
[
|
|
24518
|
+
[K.SmokeSensor]: {
|
|
24519
24519
|
icon: Me,
|
|
24520
24520
|
label: "Smoke sensor"
|
|
24521
24521
|
},
|
|
24522
|
-
[
|
|
24522
|
+
[K.COSensor]: {
|
|
24523
24523
|
icon: xr,
|
|
24524
24524
|
label: "CO sensor"
|
|
24525
24525
|
},
|
|
24526
|
-
[
|
|
24526
|
+
[K.GasSensor]: {
|
|
24527
24527
|
icon: It,
|
|
24528
24528
|
label: "Gas sensor"
|
|
24529
24529
|
},
|
|
24530
|
-
[
|
|
24530
|
+
[K.TamperSensor]: {
|
|
24531
24531
|
icon: zn,
|
|
24532
24532
|
label: "Tamper sensor"
|
|
24533
24533
|
},
|
|
24534
|
-
[
|
|
24534
|
+
[K.VibrationSensor]: {
|
|
24535
24535
|
icon: hr,
|
|
24536
24536
|
label: "Vibration sensor"
|
|
24537
24537
|
},
|
|
24538
|
-
[
|
|
24538
|
+
[K.ConnectivitySensor]: {
|
|
24539
24539
|
icon: br,
|
|
24540
24540
|
label: "Connectivity"
|
|
24541
24541
|
},
|
|
24542
|
-
[
|
|
24542
|
+
[K.SoundSensor]: {
|
|
24543
24543
|
icon: gr,
|
|
24544
24544
|
label: "Sound sensor"
|
|
24545
24545
|
},
|
|
24546
|
-
[
|
|
24546
|
+
[K.BinarySensor]: {
|
|
24547
24547
|
icon: rr,
|
|
24548
24548
|
label: "Binary sensor"
|
|
24549
24549
|
},
|
|
24550
|
-
[
|
|
24550
|
+
[K.TemperatureSensor]: {
|
|
24551
24551
|
icon: nr,
|
|
24552
24552
|
label: "Temperature"
|
|
24553
24553
|
},
|
|
24554
|
-
[
|
|
24554
|
+
[K.HumiditySensor]: {
|
|
24555
24555
|
icon: At,
|
|
24556
24556
|
label: "Humidity"
|
|
24557
24557
|
},
|
|
24558
|
-
[
|
|
24558
|
+
[K.AmbientLightSensor]: {
|
|
24559
24559
|
icon: Qn,
|
|
24560
24560
|
label: "Ambient light"
|
|
24561
24561
|
},
|
|
24562
|
-
[
|
|
24562
|
+
[K.PressureSensor]: {
|
|
24563
24563
|
icon: Vt,
|
|
24564
24564
|
label: "Pressure"
|
|
24565
24565
|
},
|
|
24566
|
-
[
|
|
24566
|
+
[K.WindSensor]: {
|
|
24567
24567
|
icon: xr,
|
|
24568
24568
|
label: "Wind"
|
|
24569
24569
|
},
|
|
24570
|
-
[
|
|
24570
|
+
[K.RainSensor]: {
|
|
24571
24571
|
icon: gt,
|
|
24572
24572
|
label: "Rain"
|
|
24573
24573
|
},
|
|
24574
|
-
[
|
|
24574
|
+
[K.UvSensor]: {
|
|
24575
24575
|
icon: Zn,
|
|
24576
24576
|
label: "UV index"
|
|
24577
24577
|
},
|
|
24578
|
-
[
|
|
24578
|
+
[K.SolarRadiationSensor]: {
|
|
24579
24579
|
icon: $n,
|
|
24580
24580
|
label: "Solar radiation"
|
|
24581
24581
|
},
|
|
24582
|
-
[
|
|
24582
|
+
[K.SoilMoistureSensor]: {
|
|
24583
24583
|
icon: Xn,
|
|
24584
24584
|
label: "Soil moisture"
|
|
24585
24585
|
},
|
|
24586
|
-
[
|
|
24586
|
+
[K.PowerSensor]: {
|
|
24587
24587
|
icon: Tr,
|
|
24588
24588
|
label: "Power"
|
|
24589
24589
|
},
|
|
24590
|
-
[
|
|
24590
|
+
[K.EnergySensor]: {
|
|
24591
24591
|
icon: Tr,
|
|
24592
24592
|
label: "Energy"
|
|
24593
24593
|
},
|
|
24594
|
-
[
|
|
24594
|
+
[K.VoltageSensor]: {
|
|
24595
24595
|
icon: Tr,
|
|
24596
24596
|
label: "Voltage"
|
|
24597
24597
|
},
|
|
24598
|
-
[
|
|
24598
|
+
[K.CurrentSensor]: {
|
|
24599
24599
|
icon: Tr,
|
|
24600
24600
|
label: "Current"
|
|
24601
24601
|
},
|
|
24602
|
-
[
|
|
24602
|
+
[K.AirQualitySensor]: {
|
|
24603
24603
|
icon: xr,
|
|
24604
24604
|
label: "Air quality"
|
|
24605
24605
|
},
|
|
24606
|
-
[
|
|
24606
|
+
[K.BatterySensor]: {
|
|
24607
24607
|
icon: Vt,
|
|
24608
24608
|
label: "Battery"
|
|
24609
24609
|
},
|
|
24610
|
-
[
|
|
24610
|
+
[K.NumericSensor]: {
|
|
24611
24611
|
icon: Gt,
|
|
24612
24612
|
label: "Numeric sensor"
|
|
24613
24613
|
},
|
|
24614
|
-
[
|
|
24614
|
+
[K.EnumSensor]: {
|
|
24615
24615
|
icon: $t,
|
|
24616
24616
|
label: "Enum sensor"
|
|
24617
24617
|
},
|
|
24618
|
-
[
|
|
24618
|
+
[K.DateTimeSensor]: {
|
|
24619
24619
|
icon: pt,
|
|
24620
24620
|
label: "Date / time"
|
|
24621
24621
|
},
|
|
24622
|
-
[
|
|
24622
|
+
[K.GenericSensor]: {
|
|
24623
24623
|
icon: Vt,
|
|
24624
24624
|
label: "Sensor"
|
|
24625
24625
|
},
|
|
24626
|
-
[
|
|
24626
|
+
[K.NumericControl]: {
|
|
24627
24627
|
icon: Kn,
|
|
24628
24628
|
label: "Numeric control"
|
|
24629
24629
|
},
|
|
24630
|
-
[
|
|
24630
|
+
[K.SelectControl]: {
|
|
24631
24631
|
icon: Qt,
|
|
24632
24632
|
label: "Select control"
|
|
24633
24633
|
},
|
|
24634
|
-
[
|
|
24634
|
+
[K.TextControl]: {
|
|
24635
24635
|
icon: lr,
|
|
24636
24636
|
label: "Text control"
|
|
24637
24637
|
},
|
|
24638
|
-
[
|
|
24638
|
+
[K.DateTimeControl]: {
|
|
24639
24639
|
icon: pt,
|
|
24640
24640
|
label: "Date / time control"
|
|
24641
24641
|
},
|
|
24642
|
-
[
|
|
24642
|
+
[K.MobilePushNotifier]: {
|
|
24643
24643
|
icon: qn,
|
|
24644
24644
|
label: "Mobile push"
|
|
24645
24645
|
},
|
|
24646
|
-
[
|
|
24646
|
+
[K.MessagingNotifier]: {
|
|
24647
24647
|
icon: cn,
|
|
24648
24648
|
label: "Messaging"
|
|
24649
24649
|
},
|
|
24650
|
-
[
|
|
24650
|
+
[K.EmailNotifier]: {
|
|
24651
24651
|
icon: rn,
|
|
24652
24652
|
label: "Email"
|
|
24653
24653
|
},
|
|
24654
|
-
[
|
|
24654
|
+
[K.GenericNotifier]: {
|
|
24655
24655
|
icon: Ge,
|
|
24656
24656
|
label: "Notifier"
|
|
24657
24657
|
}
|
|
24658
|
-
}, Cw = new Set(Object.values(
|
|
24659
|
-
new Set(Object.values(
|
|
24658
|
+
}, Cw = new Set(Object.values(W));
|
|
24659
|
+
new Set(Object.values(K));
|
|
24660
24660
|
function ww(e) {
|
|
24661
24661
|
return Cw.has(e);
|
|
24662
24662
|
}
|
|
24663
|
-
var Tw = xw[
|
|
24664
|
-
Sw[
|
|
24663
|
+
var Tw = xw[W.Generic];
|
|
24664
|
+
Sw[K.GenericSensor];
|
|
24665
24665
|
function Ew(e) {
|
|
24666
24666
|
return ww(e) ? xw[e] ?? Tw : Tw;
|
|
24667
24667
|
}
|
|
24668
24668
|
//#endregion
|
|
24669
24669
|
//#region ../ui-library/src/composites/filter-bar.tsx
|
|
24670
|
-
Object.values(
|
|
24670
|
+
Object.values(W).map((e) => {
|
|
24671
24671
|
let t = Ew(e);
|
|
24672
24672
|
return {
|
|
24673
24673
|
id: e,
|
|
24674
24674
|
label: t.label,
|
|
24675
24675
|
icon: t.icon
|
|
24676
24676
|
};
|
|
24677
|
-
}), b(), b(), b(), b(), _(null), b(), new Set([
|
|
24677
|
+
}), b(), b(), b(), b(), _(null), b(), new Set([W.Sensor, W.Presence]), b(), b(), Object.freeze([]), b(), b(), b(), b(), b(), b(), b(), b(), b(), b(), b(), b(), GC({
|
|
24678
24678
|
id: NC(),
|
|
24679
24679
|
stableId: dC(),
|
|
24680
24680
|
addonId: dC(),
|
|
@@ -24686,7 +24686,7 @@ Object.values(K).map((e) => {
|
|
|
24686
24686
|
role: dC().nullable().optional(),
|
|
24687
24687
|
features: UC(dC()).optional(),
|
|
24688
24688
|
isCamera: LC().optional(),
|
|
24689
|
-
sourceInfo:
|
|
24689
|
+
sourceInfo: le.optional()
|
|
24690
24690
|
}), b(), b(), b(), b();
|
|
24691
24691
|
//#endregion
|
|
24692
24692
|
//#region ../ui-library/src/composites/hls-quality.ts
|
|
@@ -25434,11 +25434,11 @@ function Yw({ className: e }) {
|
|
|
25434
25434
|
});
|
|
25435
25435
|
}
|
|
25436
25436
|
function Xw({ serverUrl: e, createSession: t, sendAnswer: n, handleOffer: r, getIceServers: i, addIceCandidate: a, getIceCandidates: s, closeSession: c, getSessionState: d, playbackUrl: f, playbackAuthToken: p, onExitPlayback: m, posterUrl: g, streams: _, activeStreamId: y, onStreamChange: b, deviceName: x, phase: S, pipelineMetrics: C, detections: w, defaultShowDetections: T = !0, defaultShowMotion: E = !1, streamStats: D, autoPlay: ee = !1, showPlayStop: O = !1, snapshotSrc: te, snapshotLoading: ne = !1, onRefreshSnapshot: k, showStreamStats: re = !1, children: j, extraOverlay: M, ptzAvailable: N = !1, ptzShown: P = !1, ptzOverlay: F, onPtzToggle: I, intercomAvailable: L = !1, intercomShown: R = !1, onIntercomToggle: H, chromeless: ie = !1, className: ae }) {
|
|
25437
|
-
let oe = A(), se = qo(), [U, ce] = l(ee), [le, ue] = l(T), [de, fe] = l(E), [pe, W] = l(null), [G, me] = l([]), [he, ge] = l(-1), [_e,
|
|
25437
|
+
let oe = A(), se = qo(), [U, ce] = l(ee), [le, ue] = l(T), [de, fe] = l(E), [pe, W] = l(null), [G, me] = l([]), [he, ge] = l(-1), [_e, K] = l(!1), ve = u(null);
|
|
25438
25438
|
v(() => {
|
|
25439
25439
|
if (!_e) return;
|
|
25440
25440
|
function e(e) {
|
|
25441
|
-
|
|
25441
|
+
ve.current && !ve.current.contains(e.target) && K(!1);
|
|
25442
25442
|
}
|
|
25443
25443
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
25444
25444
|
}, [_e]), v(() => {
|
|
@@ -25446,21 +25446,21 @@ function Xw({ serverUrl: e, createSession: t, sendAnswer: n, handleOffer: r, get
|
|
|
25446
25446
|
}, [f]);
|
|
25447
25447
|
let ye = o((e) => {
|
|
25448
25448
|
me(e);
|
|
25449
|
-
}, []), be = y ?? pe ?? _?.[0]?.id ?? "",
|
|
25450
|
-
status:
|
|
25451
|
-
inputFps:
|
|
25452
|
-
bitrateKbps:
|
|
25453
|
-
},
|
|
25449
|
+
}, []), be = y ?? pe ?? _?.[0]?.id ?? "", xe = _?.find((e) => e.id === be) ?? _?.[0], Se = xe?.inputFps == null ? null : {
|
|
25450
|
+
status: xe.status ?? "unknown",
|
|
25451
|
+
inputFps: xe.inputFps,
|
|
25452
|
+
bitrateKbps: xe.bitrateKbps ?? 0
|
|
25453
|
+
}, Ce = (e) => {
|
|
25454
25454
|
W(e), b?.(e), U && O && (ce(!1), setTimeout(() => ce(!0), 50));
|
|
25455
|
-
},
|
|
25456
|
-
let e =
|
|
25455
|
+
}, we = h(() => {
|
|
25456
|
+
let e = xe?.target;
|
|
25457
25457
|
if (!(!e || !t)) return (n) => t(e, n);
|
|
25458
|
-
}, [t,
|
|
25459
|
-
let e =
|
|
25458
|
+
}, [t, xe]), Te = h(() => {
|
|
25459
|
+
let e = xe?.target;
|
|
25460
25460
|
if (!(!e || !r)) return (t, n) => r(e, t, n);
|
|
25461
|
-
}, [r,
|
|
25461
|
+
}, [r, xe]), Ee = h(() => {
|
|
25462
25462
|
if (r) return (e, t, n) => r(n, t, e);
|
|
25463
|
-
}, [r]),
|
|
25463
|
+
}, [r]), De = _, Oe = () => ce(!0), ke = () => ce(!1), q = C?.phase ?? S, Ae = q === "active", je = !!w, Me = je && (le || de), Ne = N && P && !!F, Pe = !!f, Fe = Pe || (O ? U : !0);
|
|
25464
25464
|
return /* @__PURE__ */ B("div", {
|
|
25465
25465
|
className: `overflow-hidden ${ie ? "" : "rounded-xl border border-border bg-surface"} ${ae ?? ""}`,
|
|
25466
25466
|
children: [
|
|
@@ -25469,19 +25469,19 @@ function Xw({ serverUrl: e, createSession: t, sendAnswer: n, handleOffer: r, get
|
|
|
25469
25469
|
children: [/* @__PURE__ */ B("div", {
|
|
25470
25470
|
className: "flex items-center gap-2 min-w-0",
|
|
25471
25471
|
children: [
|
|
25472
|
-
(D ??
|
|
25472
|
+
(D ?? Se) && /* @__PURE__ */ z("span", { className: `shrink-0 w-2 h-2 rounded-full ${Bw((D ?? Se).status)}` }),
|
|
25473
25473
|
x && /* @__PURE__ */ z("span", {
|
|
25474
25474
|
className: "text-xs font-medium text-foreground truncate",
|
|
25475
25475
|
children: x
|
|
25476
25476
|
}),
|
|
25477
|
-
!Pe &&
|
|
25477
|
+
!Pe && De && De.length > 1 && /* @__PURE__ */ B("div", {
|
|
25478
25478
|
className: "relative",
|
|
25479
25479
|
children: [/* @__PURE__ */ z("select", {
|
|
25480
25480
|
"data-testid": "stream-profile-select",
|
|
25481
25481
|
value: be,
|
|
25482
|
-
onChange: (e) =>
|
|
25482
|
+
onChange: (e) => Ce(e.target.value),
|
|
25483
25483
|
className: "appearance-none cursor-pointer rounded-md border border-border bg-surface-hover hover:bg-surface text-foreground text-[11px] font-medium pl-2 pr-6 py-1 focus:outline-none focus:ring-1 focus:ring-primary transition-colors",
|
|
25484
|
-
children:
|
|
25484
|
+
children: De.map((e) => /* @__PURE__ */ z("option", {
|
|
25485
25485
|
value: e.id,
|
|
25486
25486
|
children: e.label
|
|
25487
25487
|
}, e.id))
|
|
@@ -25559,7 +25559,7 @@ function Xw({ serverUrl: e, createSession: t, sendAnswer: n, handleOffer: r, get
|
|
|
25559
25559
|
"data-testid": "stream-play-toggle",
|
|
25560
25560
|
"data-stream-playing": Fe ? "true" : "false",
|
|
25561
25561
|
"data-vod": Pe ? "true" : "false",
|
|
25562
|
-
onClick: Pe ? m : Fe ?
|
|
25562
|
+
onClick: Pe ? m : Fe ? ke : Oe,
|
|
25563
25563
|
className: `inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs font-medium transition-colors ${Pe ? "bg-primary/10 text-primary hover:bg-primary/20" : Fe ? "bg-danger/10 text-danger hover:bg-danger/20" : "bg-primary/10 text-primary hover:bg-primary/20"}`,
|
|
25564
25564
|
title: Pe ? "Return to live" : Fe ? "Stop stream" : "Start stream",
|
|
25565
25565
|
children: [z(Pe ? qw : Fe ? Uw : Hw, { className: "h-3 w-3" }), /* @__PURE__ */ z("span", {
|
|
@@ -25578,11 +25578,11 @@ function Xw({ serverUrl: e, createSession: t, sendAnswer: n, handleOffer: r, get
|
|
|
25578
25578
|
children: "Snapshot"
|
|
25579
25579
|
})]
|
|
25580
25580
|
}),
|
|
25581
|
-
(je || N || C ||
|
|
25582
|
-
ref:
|
|
25581
|
+
(je || N || C || q || D || Se && Se.inputFps > 0) && /* @__PURE__ */ B("div", {
|
|
25582
|
+
ref: ve,
|
|
25583
25583
|
className: "relative",
|
|
25584
25584
|
children: [/* @__PURE__ */ z("button", {
|
|
25585
|
-
onClick: () =>
|
|
25585
|
+
onClick: () => K((e) => !e),
|
|
25586
25586
|
title: "More controls",
|
|
25587
25587
|
className: "inline-flex items-center justify-center rounded-md p-1 text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors",
|
|
25588
25588
|
children: /* @__PURE__ */ z(Gw, { className: "h-3.5 w-3.5" })
|
|
@@ -25615,23 +25615,23 @@ function Xw({ serverUrl: e, createSession: t, sendAnswer: n, handleOffer: r, get
|
|
|
25615
25615
|
})
|
|
25616
25616
|
]
|
|
25617
25617
|
}),
|
|
25618
|
-
!re &&
|
|
25618
|
+
!re && Se && Se.inputFps > 0 && /* @__PURE__ */ B("div", {
|
|
25619
25619
|
className: "px-3 py-1.5 text-[10px] text-foreground-subtle border-b border-border-subtle",
|
|
25620
25620
|
children: [/* @__PURE__ */ B("div", {
|
|
25621
25621
|
className: "flex justify-between gap-3",
|
|
25622
25622
|
children: [/* @__PURE__ */ z("span", { children: "Input" }), /* @__PURE__ */ B("span", {
|
|
25623
25623
|
className: "tabular-nums text-foreground",
|
|
25624
|
-
children: [
|
|
25624
|
+
children: [Se.inputFps.toFixed(1), " fps"]
|
|
25625
25625
|
})]
|
|
25626
|
-
}),
|
|
25626
|
+
}), Se.bitrateKbps > 0 && /* @__PURE__ */ B("div", {
|
|
25627
25627
|
className: "flex justify-between gap-3",
|
|
25628
25628
|
children: [/* @__PURE__ */ z("span", { children: "Bitrate" }), /* @__PURE__ */ B("span", {
|
|
25629
25629
|
className: "tabular-nums text-foreground",
|
|
25630
|
-
children: [
|
|
25630
|
+
children: [Se.bitrateKbps, " kbps"]
|
|
25631
25631
|
})]
|
|
25632
25632
|
})]
|
|
25633
25633
|
}),
|
|
25634
|
-
(C || je &&
|
|
25634
|
+
(C || je && q) && /* @__PURE__ */ B("div", {
|
|
25635
25635
|
className: "px-3 py-1.5 text-[10px] text-foreground-subtle border-b border-border-subtle",
|
|
25636
25636
|
children: [
|
|
25637
25637
|
/* @__PURE__ */ B("div", {
|
|
@@ -25670,7 +25670,7 @@ function Xw({ serverUrl: e, createSession: t, sendAnswer: n, handleOffer: r, get
|
|
|
25670
25670
|
label: "PTZ controls",
|
|
25671
25671
|
active: P,
|
|
25672
25672
|
onClick: () => {
|
|
25673
|
-
I?.(),
|
|
25673
|
+
I?.(), K(!1);
|
|
25674
25674
|
}
|
|
25675
25675
|
})
|
|
25676
25676
|
]
|
|
@@ -25695,10 +25695,10 @@ function Xw({ serverUrl: e, createSession: t, sendAnswer: n, handleOffer: r, get
|
|
|
25695
25695
|
streamKey: be,
|
|
25696
25696
|
autoPlay: !0,
|
|
25697
25697
|
className: "w-full h-full",
|
|
25698
|
-
createSession:
|
|
25698
|
+
createSession: we,
|
|
25699
25699
|
sendAnswer: n,
|
|
25700
|
-
handleOffer:
|
|
25701
|
-
reoffer:
|
|
25700
|
+
handleOffer: Te,
|
|
25701
|
+
reoffer: Ee,
|
|
25702
25702
|
getSessionState: d,
|
|
25703
25703
|
getIceServers: i,
|
|
25704
25704
|
addIceCandidate: a,
|
|
@@ -25721,7 +25721,7 @@ function Xw({ serverUrl: e, createSession: t, sendAnswer: n, handleOffer: r, get
|
|
|
25721
25721
|
}) : /* @__PURE__ */ z(Zw, {
|
|
25722
25722
|
src: te ?? null,
|
|
25723
25723
|
isLoading: ne,
|
|
25724
|
-
onPlay:
|
|
25724
|
+
onPlay: Oe,
|
|
25725
25725
|
onRetry: k,
|
|
25726
25726
|
extraOverlay: M || Ne ? /* @__PURE__ */ B(V, { children: [M, Ne && F] }) : null,
|
|
25727
25727
|
suppressPlayHover: !!M || Ne
|
|
@@ -26104,7 +26104,7 @@ function uT(e, t, n = 5e3) {
|
|
|
26104
26104
|
}, [e, t])
|
|
26105
26105
|
};
|
|
26106
26106
|
}
|
|
26107
|
-
b(), b(), b(), b(), b(), d(() => import("./MaskShapeCanvas-BDvrLf-K.mjs").then((e) => ({ default: e.MaskShapeCanvas }))), d(() => import("./MotionZonesSettings-
|
|
26107
|
+
b(), b(), b(), b(), b(), d(() => import("./MaskShapeCanvas-BDvrLf-K.mjs").then((e) => ({ default: e.MaskShapeCanvas }))), d(() => import("./MotionZonesSettings-D0ZWade-.mjs").then((e) => ({ default: e.MotionZonesSettings }))), d(() => import("./SceneMonitorEditor-DxET6Fog.mjs").then((e) => ({ default: e.SceneMonitorEditor }))), d(() => import("./PrivacyMaskSettings-CCaDEYqV.mjs").then((e) => ({ default: e.PrivacyMaskSettings })));
|
|
26108
26108
|
//#endregion
|
|
26109
26109
|
//#region src/components/NodeSelector.tsx
|
|
26110
26110
|
function dT({ selectedNodeId: e, onSelect: t }) {
|
|
@@ -29169,7 +29169,7 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
|
|
|
29169
29169
|
let [r, i] = l(null), [a, s] = l([]), [c, d] = l(null), [f, p] = l([]), [m, h] = l(""), [g, _] = l(null), [y, b] = l(""), [x, S] = l(null), [C, w] = l({
|
|
29170
29170
|
w: 640,
|
|
29171
29171
|
h: 480
|
|
29172
|
-
}), [T, E] = l([]), [D, ee] = l(null), [O, te] = l(null), [ne, k] = l(null), [A, re] = l(!1), [j, M] = l(""), [N, P] = l(null), [F, I] = l(!0), [L, R] = l([]), [V, H] = l(200), [ie, ae] = l(4), [oe, se] = l(1), [U, ce] = l(!1), [le, ue] = l(null), [de, fe] = l(null), [pe, W] = l(null), [G, me] = l(null), he = u(null), [ge, _e] = l(/* @__PURE__ */ new Set()),
|
|
29172
|
+
}), [T, E] = l([]), [D, ee] = l(null), [O, te] = l(null), [ne, k] = l(null), [A, re] = l(!1), [j, M] = l(""), [N, P] = l(null), [F, I] = l(!0), [L, R] = l([]), [V, H] = l(200), [ie, ae] = l(4), [oe, se] = l(1), [U, ce] = l(!1), [le, ue] = l(null), [de, fe] = l(null), [pe, W] = l(null), [G, me] = l(null), he = u(null), [ge, _e] = l(/* @__PURE__ */ new Set()), K = o((e, t) => {
|
|
29173
29173
|
_e((n) => {
|
|
29174
29174
|
let r = new Set(n);
|
|
29175
29175
|
return t ? r.delete(e) : r.add(e), r;
|
|
@@ -29227,7 +29227,7 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
|
|
|
29227
29227
|
h(n);
|
|
29228
29228
|
try {
|
|
29229
29229
|
let t = await e.pipelineExecutor.getReferenceImage.query({ filename: n });
|
|
29230
|
-
t && (_(t.base64),
|
|
29230
|
+
t && (_(t.base64), ve(`data:image/jpeg;base64,${t.base64}`));
|
|
29231
29231
|
} catch (e) {
|
|
29232
29232
|
console.warn("[benchmark:image] Failed to load reference image:", e);
|
|
29233
29233
|
}
|
|
@@ -29242,7 +29242,7 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
|
|
|
29242
29242
|
console.error("[benchmark:image] Failed to load pipeline data:", e), I(!1);
|
|
29243
29243
|
});
|
|
29244
29244
|
}, [e, t]);
|
|
29245
|
-
let
|
|
29245
|
+
let ve = (e) => {
|
|
29246
29246
|
S(e);
|
|
29247
29247
|
let t = new Image();
|
|
29248
29248
|
t.addEventListener("load", () => w({
|
|
@@ -29253,11 +29253,11 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
|
|
|
29253
29253
|
h(t), P(null);
|
|
29254
29254
|
try {
|
|
29255
29255
|
let n = await e.pipelineExecutor.getReferenceImage.query({ filename: t });
|
|
29256
|
-
n && (_(n.base64),
|
|
29256
|
+
n && (_(n.base64), ve(`data:image/jpeg;base64,${n.base64}`));
|
|
29257
29257
|
} catch (e) {
|
|
29258
29258
|
console.warn("[benchmark:image] Failed to load image:", e);
|
|
29259
29259
|
}
|
|
29260
|
-
}, be = ne ? vT(ne.steps) : T.map((e) => wE(e)),
|
|
29260
|
+
}, be = ne ? vT(ne.steps) : T.map((e) => wE(e)), xe = async () => {
|
|
29261
29261
|
re(!0), M(""), P(null), R([]);
|
|
29262
29262
|
let n = `ui-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;
|
|
29263
29263
|
he.current = n;
|
|
@@ -29283,7 +29283,7 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
|
|
|
29283
29283
|
} finally {
|
|
29284
29284
|
he.current = null, re(!1);
|
|
29285
29285
|
}
|
|
29286
|
-
},
|
|
29286
|
+
}, Se = async (n) => {
|
|
29287
29287
|
if (!g) {
|
|
29288
29288
|
M("No image loaded");
|
|
29289
29289
|
return;
|
|
@@ -29357,10 +29357,10 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
|
|
|
29357
29357
|
className: "text-sm text-foreground-subtle animate-pulse py-8 text-center",
|
|
29358
29358
|
children: "Loading..."
|
|
29359
29359
|
});
|
|
29360
|
-
let
|
|
29361
|
-
for (let e of
|
|
29362
|
-
let
|
|
29363
|
-
for (let e of
|
|
29360
|
+
let Ce = C.w, we = C.h, Te = N?.detections ? [...N.detections] : [], Ee = /* @__PURE__ */ new Set();
|
|
29361
|
+
for (let e of Te) e.kind === "first-level" && ge.has(e.id) && Ee.add(e.id);
|
|
29362
|
+
let De = Te.filter((e) => !(ge.has(e.id) || e.kind === "detail" && e.parentId && Ee.has(e.parentId))), Oe = {}, ke = N?.debug?.stepTimings ?? [];
|
|
29363
|
+
for (let e of ke) Oe[`${e.source}${e.modelId ? ` (${e.modelId})` : ""}`] = e.ms;
|
|
29364
29364
|
return /* @__PURE__ */ B("div", {
|
|
29365
29365
|
className: "space-y-4",
|
|
29366
29366
|
children: [
|
|
@@ -29381,7 +29381,7 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
|
|
|
29381
29381
|
uploadedName: y,
|
|
29382
29382
|
onSelect: ye,
|
|
29383
29383
|
onUpload: (e, t, n) => {
|
|
29384
|
-
_(e), b(t), h(""),
|
|
29384
|
+
_(e), b(t), h(""), ve(n), P(null);
|
|
29385
29385
|
}
|
|
29386
29386
|
}),
|
|
29387
29387
|
j && /* @__PURE__ */ z("div", {
|
|
@@ -29394,7 +29394,7 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
|
|
|
29394
29394
|
className: "space-y-2",
|
|
29395
29395
|
children: [
|
|
29396
29396
|
/* @__PURE__ */ z("button", {
|
|
29397
|
-
onClick:
|
|
29397
|
+
onClick: xe,
|
|
29398
29398
|
disabled: !A && !m && !g,
|
|
29399
29399
|
className: `w-full px-4 py-2.5 text-sm font-medium rounded-lg transition-colors ${A ? "bg-primary text-primary-foreground animate-pulse" : "bg-primary text-primary-foreground hover:bg-primary/90 disabled:opacity-50"}`,
|
|
29400
29400
|
children: A ? L.length > 0 ? L[L.length - 1] : "Processing..." : "Run Pipeline"
|
|
@@ -29461,7 +29461,7 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
|
|
|
29461
29461
|
children: [
|
|
29462
29462
|
/* @__PURE__ */ z("button", {
|
|
29463
29463
|
type: "button",
|
|
29464
|
-
onClick: () =>
|
|
29464
|
+
onClick: () => Se("live-frame"),
|
|
29465
29465
|
disabled: U || !m && !g,
|
|
29466
29466
|
title: "The live per-frame dispatch: one runPipeline per call with plane='frame' — root-plane steps only, crop children skipped (they are served per track via runDetailSubtree). This is the shape a production camera frame takes.",
|
|
29467
29467
|
className: "px-3 py-2.5 sm:py-1.5 text-sm rounded-md border border-primary/40 bg-primary/10 hover:bg-primary hover:text-primary-foreground disabled:opacity-50 transition-colors",
|
|
@@ -29469,7 +29469,7 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
|
|
|
29469
29469
|
}),
|
|
29470
29470
|
/* @__PURE__ */ z("button", {
|
|
29471
29471
|
type: "button",
|
|
29472
|
-
onClick: () =>
|
|
29472
|
+
onClick: () => Se("full-tree"),
|
|
29473
29473
|
disabled: U || !m && !g,
|
|
29474
29474
|
title: "One runPipeline per call on the default 'full' plane: root AND crop children together, through sharp encode → IPC → pool. Not the live path — the live path runs the root plane only.",
|
|
29475
29475
|
className: "px-3 py-2.5 sm:py-1.5 text-sm rounded-md border border-border bg-surface hover:bg-primary/10 disabled:opacity-50 transition-colors",
|
|
@@ -29477,7 +29477,7 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
|
|
|
29477
29477
|
}),
|
|
29478
29478
|
/* @__PURE__ */ z("button", {
|
|
29479
29479
|
type: "button",
|
|
29480
|
-
onClick: () =>
|
|
29480
|
+
onClick: () => Se("inference"),
|
|
29481
29481
|
disabled: U || !m && !g,
|
|
29482
29482
|
title: "Pure inference: frame cached in pool once, each call sends only a 5-byte reference. Isolates the model.predict() + batching cost — no IPC, no JPEG encode/decode.",
|
|
29483
29483
|
className: "px-3 py-2.5 sm:py-1.5 text-sm rounded-md border border-border bg-surface hover:bg-primary/10 disabled:opacity-50 transition-colors",
|
|
@@ -29618,21 +29618,21 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
|
|
|
29618
29618
|
}),
|
|
29619
29619
|
/* @__PURE__ */ z(Ju, {
|
|
29620
29620
|
src: x,
|
|
29621
|
-
imageWidth:
|
|
29622
|
-
imageHeight:
|
|
29623
|
-
detections:
|
|
29621
|
+
imageWidth: Ce,
|
|
29622
|
+
imageHeight: we,
|
|
29623
|
+
detections: De,
|
|
29624
29624
|
placeholder: "Select an image above"
|
|
29625
29625
|
}),
|
|
29626
|
-
N &&
|
|
29626
|
+
N && De.length > 0 && /* @__PURE__ */ B("div", {
|
|
29627
29627
|
className: "text-xs text-foreground-subtle",
|
|
29628
29628
|
children: [
|
|
29629
|
-
|
|
29629
|
+
De.length,
|
|
29630
29630
|
" detection",
|
|
29631
|
-
|
|
29631
|
+
De.length === 1 ? "" : "s",
|
|
29632
29632
|
" — ",
|
|
29633
|
-
|
|
29633
|
+
Ce,
|
|
29634
29634
|
"x",
|
|
29635
|
-
|
|
29635
|
+
we
|
|
29636
29636
|
]
|
|
29637
29637
|
}),
|
|
29638
29638
|
L.length > 0 && /* @__PURE__ */ z("div", {
|
|
@@ -29642,14 +29642,14 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
|
|
|
29642
29642
|
children: [/* @__PURE__ */ z("span", { className: `h-1.5 w-1.5 rounded-full shrink-0 ${t === L.length - 1 ? "bg-primary animate-pulse" : "bg-foreground-subtle/30"}` }), e]
|
|
29643
29643
|
}, t))
|
|
29644
29644
|
}),
|
|
29645
|
-
Object.keys(
|
|
29646
|
-
timings:
|
|
29645
|
+
Object.keys(Oe).length > 0 && /* @__PURE__ */ z(zw, {
|
|
29646
|
+
timings: Oe,
|
|
29647
29647
|
totalMs: N?.debug?.totalInferenceMs
|
|
29648
29648
|
}),
|
|
29649
29649
|
N && /* @__PURE__ */ z(od, {
|
|
29650
|
-
detections:
|
|
29650
|
+
detections: Te,
|
|
29651
29651
|
hiddenKeys: ge,
|
|
29652
|
-
onToggleVisibility:
|
|
29652
|
+
onToggleVisibility: K
|
|
29653
29653
|
}),
|
|
29654
29654
|
/* @__PURE__ */ z(Rw, {
|
|
29655
29655
|
data: N,
|