@camera.ui/server 2.1.8 → 2.1.9
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/interface/assets/{404-vRjJVgl4.js → 404-BEb5gvkW.js} +1 -1
- package/dist/interface/assets/{About-CO9cx5Gp.js → About-BKkjuIVJ.js} +1 -1
- package/dist/interface/assets/Automation-DA89AEEI.js +3 -0
- package/dist/interface/assets/{AutomationImport-DAeFd-SZ.js → AutomationImport-hYr3Lp8F.js} +2 -2
- package/dist/interface/assets/{AutomationStore-NyXuw3tI.js → AutomationStore-DKhnExZn.js} +2 -2
- package/dist/interface/assets/{AutomationStoreDetail-Dz9Y8j8g.js → AutomationStoreDetail-DmqqEOir.js} +2 -2
- package/dist/interface/assets/{Automations-BeGe7iQE.js → Automations-B6WFJyxS.js} +2 -2
- package/dist/interface/assets/{Camera-C0sNg85L.js → Camera-DmsSKvpY.js} +2 -2
- package/dist/interface/assets/{CameraConsole-S9Il0g0K.js → CameraConsole-DVpyGhx8.js} +1 -1
- package/dist/interface/assets/Cameras-KOOphtlx.js +652 -0
- package/dist/interface/assets/Camview-BPQIinyP.js +1 -0
- package/dist/interface/assets/{Camview-CS7PIBMz.css → Camview-Lp3QU0de.css} +1 -1
- package/dist/interface/assets/{Config-B0cy1RIU.js → Config-DeUec_TN.js} +1 -1
- package/dist/interface/assets/ConfigActionCameraControl-DWHg-YEU.js +1 -0
- package/dist/interface/assets/{ConfigActionDelay-DrzMP_7q.js → ConfigActionDelay-C8nNA7TC.js} +1 -1
- package/dist/interface/assets/{ConfigActionHttp-BUANm5zh.js → ConfigActionHttp-Dc97gItH.js} +1 -1
- package/dist/interface/assets/{ConfigActionImageInput-CKvnzs_4.js → ConfigActionImageInput-DpOGqlzA.js} +1 -1
- package/dist/interface/assets/{ConfigActionMqtt-Cz-fMzXH.js → ConfigActionMqtt-D5DJ21oe.js} +1 -1
- package/dist/interface/assets/{ConfigActionNotification-exxG4m-k.js → ConfigActionNotification-4wKfanGB.js} +1 -1
- package/dist/interface/assets/{ConfigActionNotificationControl-BMFbm9lJ.js → ConfigActionNotificationControl-jSgxCZmV.js} +1 -1
- package/dist/interface/assets/{ConfigActionOutput-js-UUBci.js → ConfigActionOutput-C8Esieni.js} +1 -1
- package/dist/interface/assets/{ConfigActionPlugin-B5hrC_B6.js → ConfigActionPlugin-C_cv60d3.js} +1 -1
- package/dist/interface/assets/{ConfigActionSensor-BESCtedA.js → ConfigActionSensor-CFIKoJ3-.js} +1 -1
- package/dist/interface/assets/{ConfigActionSnapshot-Uxz9dCqh.js → ConfigActionSnapshot-BqaTwtN3.js} +1 -1
- package/dist/interface/assets/{ConfigActionVariable-CsiC6bgF.js → ConfigActionVariable-De9RCGU4.js} +1 -1
- package/dist/interface/assets/{ConfigConditionIfElse-CiScJB42.js → ConfigConditionIfElse-CeNDIucw.js} +1 -1
- package/dist/interface/assets/{ConfigConditionSensorState-CbDfsuOl.js → ConfigConditionSensorState-C_Q9gU23.js} +1 -1
- package/dist/interface/assets/{ConfigConditionSwitch-B7E5DAoC.js → ConfigConditionSwitch-DR63IGcD.js} +1 -1
- package/dist/interface/assets/{ConfigConditionTime-BmeGYmwH.js → ConfigConditionTime-C9iuSxxe.js} +1 -1
- package/dist/interface/assets/{ConfigSensorValueInput-CNTToTaw.js → ConfigSensorValueInput-DnMlFzil.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerDetection-ijTkd_SS.js → ConfigTriggerDetection-iThbCKOO.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerGeofence-Q7LQpVoM.js → ConfigTriggerGeofence-BeKwVWvS.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerManual-Z1_1wUUM.js → ConfigTriggerManual-DPkRlUqD.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerMqtt-BBvD0ow9.js → ConfigTriggerMqtt-kd65tGJE.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSchedule-B0rMjsZL.js → ConfigTriggerSchedule-D6MoVDPc.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSensor-B1p15KGD.js → ConfigTriggerSensor-AMQM6f2r.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSystem-Du-AkCKy.js → ConfigTriggerSystem-CNBgtDF1.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerWebhook-Debqt-nw.js → ConfigTriggerWebhook-B70DobSi.js} +1 -1
- package/dist/interface/assets/{Console-Gu1eu82G.js → Console-N_2Vornl.js} +1 -1
- package/dist/interface/assets/{CuiAutomationRunsDialog-CxcWpqrI.js → CuiAutomationRunsDialog-Cp6Apki9.js} +1 -1
- package/dist/interface/assets/CuiBottomSheet-CIR_fmSk.js +1 -0
- package/dist/interface/assets/{CuiBottomSheet-DECWGdrp.js → CuiBottomSheet-D5N8X1K-.js} +1 -1
- package/dist/interface/assets/CuiCameraPipCard-DP6X45oq.js +1 -0
- package/dist/interface/assets/CuiCameraRecordings-CRjXsdO4.js +1 -0
- package/dist/interface/assets/{CuiCameraShares-D32cM63m.js → CuiCameraShares-DMHwZEf1.js} +1 -1
- package/dist/interface/assets/{CuiCameraTable-Bk9N-Oc6.js → CuiCameraTable-AnEPu3XS.js} +1 -1
- package/dist/interface/assets/CuiCameraTable-D5ZqTLVt.js +1 -0
- package/dist/interface/assets/CuiConsole-CqEvNGe_.js +5 -0
- package/dist/interface/assets/{CuiDataTable-P8bWN0ZK.js → CuiDataTable-wA_LbHH8.js} +1 -1
- package/dist/interface/assets/{CuiLightControl-D5Z1AqWH.js → CuiLightControl-CB_Tp4tI.js} +1 -1
- package/dist/interface/assets/{CuiList-w69dERIq.js → CuiList-DrYuFhK4.js} +1 -1
- package/dist/interface/assets/CuiPluginCard-DEuNt5ni.js +2 -0
- package/dist/interface/assets/{CuiPluginCategoryChip-CQ2FJafE.js → CuiPluginCategoryChip-BbkbkYj6.js} +1 -1
- package/dist/interface/assets/{CuiPluginOAuthButton-CNxj7cuf.js → CuiPluginOAuthButton-vMuRa9Qd.js} +2 -2
- package/dist/interface/assets/{CuiPluginTrustBadge-DYsEz6WI.js → CuiPluginTrustBadge-2wsPzYZA.js} +1 -1
- package/dist/interface/assets/{CuiQRCode-CZnspFFw.js → CuiQRCode-Dh9EcaVc.js} +1 -1
- package/dist/interface/assets/{CuiRecordingsGrid-wEaU6-3c.js → CuiRecordingsGrid-HjZEiSyp.js} +1 -1
- package/dist/interface/assets/{CuiSchema-DLV1lIiB.js → CuiSchema-CSFoI6cg.js} +1 -1
- package/dist/interface/assets/{CuiTopNavbarItem-7yu9c68R.js → CuiTopNavbarItem-CSdvkKHR.js} +1 -1
- package/dist/interface/assets/{Faces-BlPQek1-.js → Faces-CPZ5RA68.js} +1 -1
- package/dist/interface/assets/{FirstSteps-C-DKv_P2.js → FirstSteps-CaF8STWH.js} +1 -1
- package/dist/interface/assets/{Instances-Bmb-yWM-.js → Instances-Cw7A4I7E.js} +1 -1
- package/dist/interface/assets/{Logs-DxHqkMpx.js → Logs-4Mgj7YWu.js} +2 -2
- package/dist/interface/assets/{Menu-DceReBlq.js → Menu-T-54ZSSD.js} +1 -1
- package/dist/interface/assets/Metrics-CQGKmHev.css +1 -0
- package/dist/interface/assets/Metrics-Dgm5qpzh.js +6 -0
- package/dist/interface/assets/{OAuthDeviceFlow-CLi6l8jS.js → OAuthDeviceFlow-DGikOkgK.js} +1 -1
- package/dist/interface/assets/{Plugin-BBVxbQeT.js → Plugin-YxqbMbUc.js} +1 -1
- package/dist/interface/assets/{PluginConsole-xOY_kwz_.js → PluginConsole-ZZvJlgIh.js} +1 -1
- package/dist/interface/assets/PluginDetail-B9NgbzkJ.js +2 -0
- package/dist/interface/assets/{PluginSchema-DG3ou73v.js → PluginSchema-Cx_LInpM.js} +1 -1
- package/dist/interface/assets/PluginSearch-5AgSWlmi.js +1 -0
- package/dist/interface/assets/PluginSearch-P274oMvy.js +2 -0
- package/dist/interface/assets/{PluginUpdateProgress-Bx0MXwAk.js → PluginUpdateProgress-0nV-8LvI.js} +1 -1
- package/dist/interface/assets/{Plugins-COHwVV0A.js → Plugins-Bvru3q2P.js} +1 -1
- package/dist/interface/assets/Recordings-BWGWC6Kq.js +1 -0
- package/dist/interface/assets/Recordings-cR4_6aGN.css +1 -0
- package/dist/interface/assets/{SensorEdit-C-H_3ap8.js → SensorEdit-gEw6HHZs.js} +1 -1
- package/dist/interface/assets/{SensorHistory-CTIUwIWN.js → SensorHistory-IgMpuLdC.js} +1 -1
- package/dist/interface/assets/{Sensors-lPcOdHJN.js → Sensors-DukA8Xqx.js} +2 -2
- package/dist/interface/assets/{Settings-BUoXoFiH.js → Settings-DWpeWPJh.js} +1 -1
- package/dist/interface/assets/{SettingsAccount-DUy_W02_.js → SettingsAccount-C1OpCtob.js} +1 -1
- package/dist/interface/assets/SettingsAccount-CrLcqzSn.js +1 -0
- package/dist/interface/assets/SettingsAppearance-AhUjml5E.js +1 -0
- package/dist/interface/assets/{SettingsAppearance-CoTdsIwM.js → SettingsAppearance-C8EEBVZN.js} +1 -1
- package/dist/interface/assets/{SettingsBackup-ibb5I5Jv.js → SettingsBackup-BJupyZCJ.js} +1 -1
- package/dist/interface/assets/{SettingsList-W5FvbkXm.js → SettingsList-MXYSQMZ3.js} +1 -1
- package/dist/interface/assets/{SettingsMqtt-Ct42icAW.js → SettingsMqtt-F3pV1Bvo.js} +1 -1
- package/dist/interface/assets/{SettingsNotifications-B4lyMlLR.js → SettingsNotifications-BmaAccX9.js} +1 -1
- package/dist/interface/assets/SettingsPermissions-Dd_yfNlk.js +1 -0
- package/dist/interface/assets/{SettingsRecordings-COUi9BQg.js → SettingsRecordings-85B2bQIf.js} +1 -1
- package/dist/interface/assets/SettingsRemote-C_ikoXW7.js +2 -0
- package/dist/interface/assets/SettingsRemote-DzrfpHjw.css +1 -0
- package/dist/interface/assets/SettingsSystem-Ct3qms5O.js +2 -0
- package/dist/interface/assets/{SettingsUsers-Cjk6mevW.js → SettingsUsers-D36vZ8Zf.js} +1 -1
- package/dist/interface/assets/{Terminal-BIdBrL4g.js → Terminal-ltPiB9CB.js} +3 -3
- package/dist/interface/assets/{VariableInput-DhAhhfsm.js → VariableInput-7c7Px-DM.js} +1 -1
- package/dist/interface/assets/{VariableSuggestions-q0Jd1DVI.js → VariableSuggestions-CrEa2zN-.js} +1 -1
- package/dist/interface/assets/{VersionsHandler-XEn3uFy7.js → VersionsHandler-BFuLGk6Y.js} +1 -1
- package/dist/interface/assets/{VirtualSensorCreate-_E5E0U7E.js → VirtualSensorCreate-uumfOHgB.js} +1 -1
- package/dist/interface/assets/{Workers-DVABUc39.js → Workers-Bowrc1AF.js} +1 -1
- package/dist/interface/assets/{api-C7Yv5Scr.js → api-DLVsQBAO.js} +1 -1
- package/dist/interface/assets/api-daCggwpn.css +2 -0
- package/dist/interface/assets/api-py5HP4SF.js +2 -0
- package/dist/interface/assets/{auth-BixzEnBM.js → auth-uQlIia9h.js} +1 -1
- package/dist/interface/assets/{automations-K8XPcP3U.js → automations-ChG1qcO7.js} +1 -1
- package/dist/interface/assets/cameras.schema-Cv7cjMz3.js +1 -0
- package/dist/interface/assets/cloudHandoff-CL4sircA.js +1 -0
- package/dist/interface/assets/{config-CURuT8_k.js → config-B1aWtF-N.js} +1 -1
- package/dist/interface/assets/content-copy-CLkJTA4w.js +1 -0
- package/dist/interface/assets/eventLabels-BsPoPWS9.js +1 -0
- package/dist/interface/assets/{flowSchema-szT9B0sA.js → flowSchema-CNnBxcwy.js} +1 -1
- package/dist/interface/assets/{intercomService-BjB4QQiX.js → intercomService-DJHBix4X.js} +1 -1
- package/dist/interface/assets/main-CLvcwWW7.js +3 -0
- package/dist/interface/assets/main-mJXdi_gx.css +1 -0
- package/dist/interface/assets/{mqtt-uItF3Vd7.js → mqtt-Cyhv8shC.js} +1 -1
- package/dist/interface/assets/{notifications-CuZPzI4-.js → notifications-DniREnpL.js} +1 -1
- package/dist/interface/assets/{plugins-QEqfAk0G.js → plugins-5gXj0utE.js} +1 -1
- package/dist/interface/assets/round-restart-alt-D3jT5i_T.js +1 -0
- package/dist/interface/assets/round-restart-alt-DdIfy7mU.css +1 -0
- package/dist/interface/assets/{sensorIcons-BujySw0j.js → sensorIcons-BXauWntX.js} +1 -1
- package/dist/interface/assets/{sensors-BxvL01cB.js → sensors-Bc02Z1G9.js} +1 -1
- package/dist/interface/assets/{server-CDm6FwHH.js → server-D2KGja0u.js} +1 -1
- package/dist/interface/assets/{theme-CRw47tnu.js → theme-vkX_uBgJ.js} +1 -1
- package/dist/interface/assets/types-CrvnT4-i.js +1 -0
- package/dist/interface/assets/types-D6IQ6ssc.js +1 -0
- package/dist/interface/assets/{types-DtdpTPfZ.js → types-fCQkAGfW.js} +1 -1
- package/dist/interface/assets/{useAppVersion-BxTTVLKg.js → useAppVersion-9zH_FspP.js} +1 -1
- package/dist/interface/assets/{useBackupRestore-DLieDBFC.js → useBackupRestore-Dbf24OqP.js} +1 -1
- package/dist/interface/assets/{useCameraOptions-DMC2KjMS.js → useCameraOptions-BIaDXHeq.js} +1 -1
- package/dist/interface/assets/{useLogsSocket-CmyalQi8.js → useLogsSocket-BLV7dWSG.js} +1 -1
- package/dist/interface/assets/{useNavLayout-BacPxpZv.js → useNavLayout-wq-6JyWK.js} +1 -1
- package/dist/interface/assets/{usePermissions-C2wQBWmH.js → usePermissions-BiBlyeQl.js} +1 -1
- package/dist/interface/assets/{usePluginUpdates-CyjxFTTi.js → usePluginUpdates-BZJSqnSF.js} +1 -1
- package/dist/interface/assets/{usePushRegistration-BPSfvI_w.js → usePushRegistration-CGFiyCuv.js} +1 -1
- package/dist/interface/assets/{useServerRestart-x8p2rFqn.js → useServerRestart-CjPAgzoX.js} +1 -1
- package/dist/interface/assets/{useStreamStatus-PMpl519O.js → useStreamStatus-BFCF1B3T.js} +1 -1
- package/dist/interface/assets/{useUpdateChannel-ChscS5KW.js → useUpdateChannel-F4WpbMJR.js} +1 -1
- package/dist/interface/assets/{useUserOptions-YiEj2ox6.js → useUserOptions-GbSC7_qt.js} +1 -1
- package/dist/interface/assets/{vendor-cameraui-Cf0XVNQ7.js → vendor-cameraui-0EJfDg8o.js} +56 -56
- package/dist/interface/assets/vendor-core-RnPzfwaA.js +1 -0
- package/dist/interface/assets/{vendor-primevue-BDu2BpXv.js → vendor-primevue-b9CB9Uh0.js} +1 -1
- package/dist/interface/index.html +26 -25
- package/dist/interface/sw.js +1 -1
- package/dist/server/package.json +6 -6
- package/dist/server/requirements.txt +2 -2
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc/client.py +8 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc/types.py +20 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +4 -2
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/__init__.py +6 -2
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +3 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/detection.py +22 -8
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/enums.py +0 -7
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/notification.py +28 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/__init__.py +4 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/base.py +18 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/spec.py +27 -3
- package/dist/server/src/api/controllers/auth.controller.js +5 -0
- package/dist/server/src/api/controllers/auth.controller.js.map +1 -1
- package/dist/server/src/api/controllers/frameWorkers.controller.d.ts +14 -0
- package/dist/server/src/api/controllers/frameWorkers.controller.js +120 -1
- package/dist/server/src/api/controllers/frameWorkers.controller.js.map +1 -1
- package/dist/server/src/api/controllers/remote.controller.js +3 -0
- package/dist/server/src/api/controllers/remote.controller.js.map +1 -1
- package/dist/server/src/api/controllers/server.controller.js +1 -0
- package/dist/server/src/api/controllers/server.controller.js.map +1 -1
- package/dist/server/src/api/database/constants.d.ts +0 -1
- package/dist/server/src/api/database/constants.js +0 -1
- package/dist/server/src/api/database/constants.js.map +1 -1
- package/dist/server/src/api/database/index.d.ts +2 -3
- package/dist/server/src/api/database/index.js +3 -6
- package/dist/server/src/api/database/index.js.map +1 -1
- package/dist/server/src/api/database/migrations/v2-1-10.js +33 -0
- package/dist/server/src/api/database/migrations/v2-1-10.js.map +1 -0
- package/dist/server/src/api/database/migrations/v2-1-11.js +31 -0
- package/dist/server/src/api/database/migrations/v2-1-11.js.map +1 -0
- package/dist/server/src/api/database/migrations/v2-1-12.js +25 -0
- package/dist/server/src/api/database/migrations/v2-1-12.js.map +1 -0
- package/dist/server/src/api/database/migrations/v2-1-6.js.map +1 -1
- package/dist/server/src/api/database/migrations/v2-1-9.d.ts +3 -0
- package/dist/server/src/api/database/migrations/v2-1-9.js +38 -0
- package/dist/server/src/api/database/migrations/v2-1-9.js.map +1 -0
- package/dist/server/src/api/database/record-schemas.d.ts +18 -13
- package/dist/server/src/api/database/record-schemas.js +3 -3
- package/dist/server/src/api/database/record-schemas.js.map +1 -1
- package/dist/server/src/api/database/types.d.ts +3 -11
- package/dist/server/src/api/routes/frameWorkers.routes.js +22 -1
- package/dist/server/src/api/routes/frameWorkers.routes.js.map +1 -1
- package/dist/server/src/api/schemas/cameras.schema.d.ts +127 -28
- package/dist/server/src/api/schemas/cameras.schema.js +40 -7
- package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
- package/dist/server/src/api/schemas/frameWorkers.schema.d.ts +6 -0
- package/dist/server/src/api/schemas/frameWorkers.schema.js +7 -0
- package/dist/server/src/api/schemas/frameWorkers.schema.js.map +1 -1
- package/dist/server/src/api/schemas/server.schema.d.ts +1 -0
- package/dist/server/src/api/schemas/server.schema.js +4 -0
- package/dist/server/src/api/schemas/server.schema.js.map +1 -1
- package/dist/server/src/api/schemas/users.schema.d.ts +119 -84
- package/dist/server/src/api/schemas/users.schema.js +3 -0
- package/dist/server/src/api/schemas/users.schema.js.map +1 -1
- package/dist/server/src/api/types/index.d.ts +1 -0
- package/dist/server/src/api/types/index.js.map +1 -1
- package/dist/server/src/api/websocket/nsp/metrics.d.ts +1 -1
- package/dist/server/src/api/websocket/nsp/metrics.js +54 -33
- package/dist/server/src/api/websocket/nsp/metrics.js.map +1 -1
- package/dist/server/src/api/websocket/nsp/server.js +2 -2
- package/dist/server/src/api/websocket/nsp/server.js.map +1 -1
- package/dist/server/src/api/websocket/types.d.ts +20 -17
- package/dist/server/src/camera/controller.js +1 -0
- package/dist/server/src/camera/controller.js.map +1 -1
- package/dist/server/src/camera/decoder/audio-loop.d.ts +0 -1
- package/dist/server/src/camera/decoder/audio-loop.js +38 -68
- package/dist/server/src/camera/decoder/audio-loop.js.map +1 -1
- package/dist/server/src/camera/decoder/child.d.ts +4 -1
- package/dist/server/src/camera/decoder/child.js +27 -0
- package/dist/server/src/camera/decoder/child.js.map +1 -1
- package/dist/server/src/camera/decoder/detection-coordinator.d.ts +7 -2
- package/dist/server/src/camera/decoder/detection-coordinator.js +226 -130
- package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
- package/dist/server/src/camera/decoder/detection-pipeline.d.ts +2 -2
- package/dist/server/src/camera/decoder/detection-pipeline.js +5 -6
- package/dist/server/src/camera/decoder/detection-pipeline.js.map +1 -1
- package/dist/server/src/camera/decoder/event-thumbnailer.d.ts +3 -3
- package/dist/server/src/camera/decoder/event-thumbnailer.js +2 -2
- package/dist/server/src/camera/decoder/event-thumbnailer.js.map +1 -1
- package/dist/server/src/camera/decoder/frame-scaler.d.ts +2 -1
- package/dist/server/src/camera/decoder/frame-scaler.js +25 -13
- package/dist/server/src/camera/decoder/frame-scaler.js.map +1 -1
- package/dist/server/src/camera/decoder/perf-tracker.d.ts +27 -8
- package/dist/server/src/camera/decoder/perf-tracker.js +72 -50
- package/dist/server/src/camera/decoder/perf-tracker.js.map +1 -1
- package/dist/server/src/camera/decoder/plugin-registry.d.ts +1 -0
- package/dist/server/src/camera/decoder/plugin-registry.js +7 -0
- package/dist/server/src/camera/decoder/plugin-registry.js.map +1 -1
- package/dist/server/src/camera/decoder/secondary-stage.d.ts +4 -1
- package/dist/server/src/camera/decoder/secondary-stage.js +26 -3
- package/dist/server/src/camera/decoder/secondary-stage.js.map +1 -1
- package/dist/server/src/camera/decoder/sources/analysis-source.d.ts +14 -1
- package/dist/server/src/camera/decoder/sources/audio-source.d.ts +7 -3
- package/dist/server/src/camera/decoder/sources/audio-source.js +89 -78
- package/dist/server/src/camera/decoder/sources/audio-source.js.map +1 -1
- package/dist/server/src/camera/decoder/sources/buffered-source.d.ts +26 -9
- package/dist/server/src/camera/decoder/sources/buffered-source.js +113 -65
- package/dist/server/src/camera/decoder/sources/buffered-source.js.map +1 -1
- package/dist/server/src/camera/decoder/sources/frame-handle.d.ts +13 -0
- package/dist/server/src/camera/decoder/sources/frame-handle.js +106 -0
- package/dist/server/src/camera/decoder/sources/frame-handle.js.map +1 -0
- package/dist/server/src/camera/decoder/sources/frame-source.d.ts +25 -26
- package/dist/server/src/camera/decoder/sources/frame-source.js +213 -268
- package/dist/server/src/camera/decoder/sources/frame-source.js.map +1 -1
- package/dist/server/src/camera/decoder/sources/reconnect-loop.d.ts +17 -0
- package/dist/server/src/camera/decoder/sources/reconnect-loop.js +59 -0
- package/dist/server/src/camera/decoder/sources/reconnect-loop.js.map +1 -0
- package/dist/server/src/camera/decoder/sources/snapshot-fetcher.d.ts +15 -0
- package/dist/server/src/camera/decoder/sources/snapshot-fetcher.js +58 -0
- package/dist/server/src/camera/decoder/sources/snapshot-fetcher.js.map +1 -0
- package/dist/server/src/camera/decoder/sources/video-input.d.ts +18 -0
- package/dist/server/src/camera/decoder/sources/video-input.js +55 -0
- package/dist/server/src/camera/decoder/sources/video-input.js.map +1 -0
- package/dist/server/src/camera/decoder/types.d.ts +73 -18
- package/dist/server/src/camera/decoder/types.js +2 -0
- package/dist/server/src/camera/decoder/types.js.map +1 -1
- package/dist/server/src/camera/decoder/worker.d.ts +5 -1
- package/dist/server/src/camera/decoder/worker.js +35 -5
- package/dist/server/src/camera/decoder/worker.js.map +1 -1
- package/dist/server/src/camera/index.d.ts +2 -1
- package/dist/server/src/camera/index.js +3 -0
- package/dist/server/src/camera/index.js.map +1 -1
- package/dist/server/src/camera/streaming/fmp4-session.js +1 -1
- package/dist/server/src/camera/streaming/fmp4-session.js.map +1 -1
- package/dist/server/src/camera/streaming/rtp-session.js +1 -1
- package/dist/server/src/camera/streaming/rtp-session.js.map +1 -1
- package/dist/server/src/mqtt/bridge.d.ts +0 -1
- package/dist/server/src/mqtt/bridge.js +0 -33
- package/dist/server/src/mqtt/bridge.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js +9 -0
- package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/proxy/sensorManager.js +8 -0
- package/dist/server/src/plugins/runtime/node/proxy/sensorManager.js.map +1 -1
- package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +14 -0
- package/dist/server/src/plugins/runtime/python/proxy/sensor.py +1 -0
- package/dist/server/src/plugins/runtime/python/proxy/sensor_manager.py +13 -0
- package/dist/server/src/remote/services/cloudflare-managed.d.ts +2 -0
- package/dist/server/src/remote/services/cloudflare-managed.js +9 -2
- package/dist/server/src/remote/services/cloudflare-managed.js.map +1 -1
- package/dist/server/src/remote/services/cloudflare.d.ts +3 -0
- package/dist/server/src/remote/services/cloudflare.js +11 -0
- package/dist/server/src/remote/services/cloudflare.js.map +1 -1
- package/dist/server/src/remote/services/index.d.ts +2 -0
- package/dist/server/src/remote/services/index.js +60 -8
- package/dist/server/src/remote/services/index.js.map +1 -1
- package/dist/server/src/remote/services/tunnelConnections.d.ts +9 -0
- package/dist/server/src/remote/services/tunnelConnections.js +45 -0
- package/dist/server/src/remote/services/tunnelConnections.js.map +1 -0
- package/dist/server/src/remote/services/urlReadiness.d.ts +2 -0
- package/dist/server/src/remote/services/urlReadiness.js +7 -4
- package/dist/server/src/remote/services/urlReadiness.js.map +1 -1
- package/dist/server/src/rpc/interfaces/frameworker.d.ts +4 -1
- package/dist/server/src/rpc/interfaces/sensor.d.ts +1 -0
- package/dist/server/src/sensors/registry.d.ts +2 -0
- package/dist/server/src/sensors/registry.js +16 -0
- package/dist/server/src/sensors/registry.js.map +1 -1
- package/dist/server/src/utils/plugin-registry/index.js +1 -1
- package/dist/server/src/utils/plugin-registry/index.js.map +1 -1
- package/dist/server/src/workers/agent.js +1 -1
- package/dist/server/src/workers/agent.js.map +1 -1
- package/package.json +6 -6
- package/dist/interface/assets/Automation-DDNhcjDg.js +0 -3
- package/dist/interface/assets/Cameras-lDMBkoUW.js +0 -652
- package/dist/interface/assets/Camview-DzMmXQvW.js +0 -1
- package/dist/interface/assets/ConfigActionCameraControl-BMlRbdRM.js +0 -1
- package/dist/interface/assets/CuiBottomSheet-BkmkKf1u.js +0 -1
- package/dist/interface/assets/CuiCameraPipCard-CuZZZ7Cv.js +0 -1
- package/dist/interface/assets/CuiCameraRecordings-BxEA_Vhd.js +0 -1
- package/dist/interface/assets/CuiCameraTable-67Itb7my.js +0 -1
- package/dist/interface/assets/CuiConsole-De9JpSLz.js +0 -5
- package/dist/interface/assets/CuiPluginCard-D3x9FPb6.js +0 -2
- package/dist/interface/assets/Metrics-BstlZavQ.css +0 -1
- package/dist/interface/assets/Metrics-Cw_Z_e0C.js +0 -1
- package/dist/interface/assets/PluginDetail-D2RncxpL.js +0 -2
- package/dist/interface/assets/PluginSearch-CBhloRm6.js +0 -1
- package/dist/interface/assets/PluginSearch-RGhSeM1T.js +0 -2
- package/dist/interface/assets/Recordings-H5qOm_rD.js +0 -1
- package/dist/interface/assets/Recordings-zdTzwv7C.css +0 -1
- package/dist/interface/assets/SettingsAccount-CudWgknL.js +0 -1
- package/dist/interface/assets/SettingsAppearance-eZsdWWp3.js +0 -1
- package/dist/interface/assets/SettingsPermissions-Bsv293ri.js +0 -1
- package/dist/interface/assets/SettingsRemote-DYld6-1F.css +0 -1
- package/dist/interface/assets/SettingsRemote-Dq_BD0fk.js +0 -1
- package/dist/interface/assets/SettingsSystem-C5xROdA0.js +0 -2
- package/dist/interface/assets/api-AVHJeggR.css +0 -2
- package/dist/interface/assets/api-CmdQlVDD.js +0 -2
- package/dist/interface/assets/cameras.schema-A_6JklLs.js +0 -1
- package/dist/interface/assets/cloudHandoff-D0ytFfHK.js +0 -1
- package/dist/interface/assets/main-B1ryIyTr.css +0 -1
- package/dist/interface/assets/main-BdIdmDhs.js +0 -3
- package/dist/interface/assets/round-restart-alt-B_7HR24a.js +0 -1
- package/dist/interface/assets/round-restart-alt-CmrjVFat.css +0 -1
- package/dist/interface/assets/types-R10eIequ.js +0 -1
- package/dist/interface/assets/types-p_uC0rfp.js +0 -1
- package/dist/interface/assets/vendor-core-u4xNQ-aF.js +0 -1
- package/dist/server/src/api/database/migrations/v2-0-50.js +0 -45
- package/dist/server/src/api/database/migrations/v2-0-50.js.map +0 -1
- package/dist/server/src/api/database/migrations/v2-0-51.js +0 -43
- package/dist/server/src/api/database/migrations/v2-0-51.js.map +0 -1
- package/dist/server/src/api/database/migrations/v2-1-0.js +0 -72
- package/dist/server/src/api/database/migrations/v2-1-0.js.map +0 -1
- /package/dist/server/src/api/database/migrations/{v2-0-50.d.ts → v2-1-10.d.ts} +0 -0
- /package/dist/server/src/api/database/migrations/{v2-0-51.d.ts → v2-1-11.d.ts} +0 -0
- /package/dist/server/src/api/database/migrations/{v2-1-0.d.ts → v2-1-12.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Ft as e,H as t,Ir as n,M as r,Vt as i,jt as a}from"./vendor-cameraui-Cf0XVNQ7.js";import{hr as o,s,st as c,xn as l}from"./api-CmdQlVDD.js";import{$t as u,Fn as d,Gn as f,Nn as p,Xn as m,Zn as h,an as g,br as _,cn as v,cr as y,dr as b,en as x,fn as S,gr as C,hn as w,in as T,ir as E,jn as D,mr as O,on as k,or as ee,pn as A,sn as j,zn as M}from"./vendor-BaiDFVEr.js";import{K as N,M as P,U as F,_ as I,j as L,z as R}from"./vendor-primevue-BDu2BpXv.js";import{a as z,c as te,i as ne,n as re,o as ie,r as ae,s as oe}from"./useBackupRestore-DLieDBFC.js";import{t as se}from"./trash-can-outline-DLKniIWM.js";import{t as B}from"./close-circle-zhDWvz98.js";import{t as ce}from"./download-BCPfm6aN.js";var V={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function H(e,t){return p(),v(`svg`,V,[...t[0]||=[g(`path`,{fill:`currentColor`,d:`M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H15v-8h5V8zm-1 7V3.5L18.5 9zm4 12.66V16h5.66v2h-2.24l2.95 2.95l-1.41 1.41L19 19.41v2.24h-2z`},null,-1)]])}var U=E({name:`ic-baseline-file-open`,render:H}),W={class:`flex flex-col gap-6 p-4 items-center justify-center w-full`},G={class:`flex flex-col justify-center items-center`},K={for:`restoreInput`,class:`cursor-pointer text-center`},q=[`accept`],J={key:0,class:`text-red`},Y={class:`mx-2`},X={class:`text-muted`},le=w({__name:`CuiUploadFiles`,props:{multiple:{type:Boolean,default:!1},accept:{},icon:{default:U}},emits:[`files-uploaded`],setup(t,{expose:n,emit:r}){let i=t,a=r,{accept:o,multiple:s}=O(i),c=f(`fileInputRef`),l=b([]),d=y(!1),h=y(!1);function x(e){let t=l.value.findIndex(t=>t.name===e);t>-1&&(l.value.splice(t,1),T())}function S(e){if(d.value=!1,h.value=!1,l.value=[],e.dataTransfer)if(!s.value&&e.dataTransfer.files.length>1)h.value=!0;else{for(let[,t]of Object.entries(e.dataTransfer.files))l.value.push(t);a(`files-uploaded`,l.value)}}function w(e){h.value=!1,l.value=[];let t=e.target;if(t&&t.files)if(!s.value&&t.files?.length>1)h.value=!0;else{for(let[,e]of Object.entries(t.files))l.value.push(e);a(`files-uploaded`,l.value)}}function T(){c.value&&(c.value.value=``)}function E(){l.value=[],T()}return n({reset:E}),(n,r)=>{let i=B,a=e,s=F,f=P;return p(),v(`div`,{class:`file-upload-box`,onDrop:r[0]||=u(e=>S(e),[`prevent`]),onDragover:r[1]||=u(e=>d.value=!0,[`prevent`]),onDragenter:r[2]||=u(e=>d.value=!0,[`prevent`]),onDragleave:r[3]||=u(e=>d.value=!1,[`prevent`])},[g(`div`,W,[g(`div`,G,[(p(),k(M(t.icon),{class:`w-15 h-15`})),g(`label`,K,_(n.$t(`components.upload_files.drop_or_select_file`)),1),g(`input`,{id:`restoreInput`,ref_key:`fileInputRef`,ref:c,type:`file`,class:`hidden`,accept:C(o),onChange:w},null,40,q),C(h)?(p(),v(`p`,J,_(n.$t(`components.upload_files.only_one_file_allowed`)),1)):j(``,!0)]),C(l).length>0?(p(),k(f,{key:0,items:C(l),"item-size":50,"scroll-height":`50px`,"scroll-width":`100%`,class:`w-full`},{item:m(({item:e})=>[(p(),v(`div`,{key:e.name,class:`w-full flex flex-row items-center justify-start p-2`},[A(a,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md shrink-0`,onClick:t=>x(e.name)},{icon:m(()=>[A(i,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`]),g(`b`,Y,_(e.name),1),g(`span`,X,`(`+_(e.size)+` bytes)`,1)])),C(l).length>1?(p(),k(s,{key:0,class:`m-0 py-4`})):j(``,!0)]),_:1},8,[`items`])):j(``,!0)])],32)}}}),ue={class:`flex flex-col w-full gap-6`},de={class:`card-title`},fe={class:`flex flex-col gap-6`},pe={class:`text-sm`},me={class:`card-title`},he={class:`flex flex-col gap-6`},ge={class:`text-sm`},_e={class:`card-title`},ve={key:0,class:`flex w-full items-center justify-center py-6`},ye={key:1,class:`flex flex-col gap-6`},be={class:`flex items-center gap-4`},xe={class:`flex flex-col gap-1 min-w-0`},Se={class:`text-sm`},Ce={class:`text-xs text-muted`},we={class:`grid grid-cols-1 sm:grid-cols-2 gap-4`},Te={class:`flex flex-col field-gap`},Ee={for:`backupInterval`,class:`cui-label`},De={class:`flex flex-col field-gap`},Oe={for:`backupTime`,class:`cui-label`},ke={key:0,class:`flex flex-col field-gap`},Ae={for:`backupWeekday`,class:`cui-label`},je={key:1,class:`flex flex-col field-gap`},Me={for:`backupDayOfMonth`,class:`cui-label`},Ne={class:`flex flex-col field-gap`},Pe={for:`backupRetention`,class:`cui-label`},Fe={class:`flex flex-col field-gap`},Ie={for:`backupDestination`,class:`cui-label`},Le={class:`flex items-center gap-2`},Re={key:1,class:`flex flex-col gap-2`},ze={class:`text-sm font-semibold border-b-[1px] border-color pb-2`},Be={class:`flex flex-col min-w-0`},Ve={class:`text-sm truncate`},He={class:`text-xs text-muted`},Z={class:`flex gap-1 ml-auto shrink-0`},Q=w({__name:`SettingsBackup`,setup(u){let w=c(),E=o(),{t:O,locale:M}=n(),P=f(`filesRef`),F=b([]),B=y(!1),V=y(!0),H=y(!1),U=y(!1),W=y(null),G=y([]),K=y(``),q=y(),J=ee({enabled:!1,interval:`daily`,time:`03:00`,weekday:0,dayOfMonth:1,retention:7,destinationPath:``}),Y=T(()=>/^([01]\d|2[0-3]):[0-5]\d$/.test(J.time)),X=T(()=>[`daily`,`weekly`,`monthly`].map(e=>({label:O(`views.settings.backup_interval_${e}`),value:e}))),Q=T(()=>Array.from({length:7},(e,t)=>({label:new Intl.DateTimeFormat(M.value,{weekday:`long`}).format(new Date(Date.UTC(2024,0,7+t,12))),value:t}))),Ue=T(()=>{if(!q.value)return O(`views.settings.backup_last_run`,{info:O(`views.settings.backup_last_run_never`)});let e=new Date(q.value.timestamp).toLocaleString(),t=q.value.status===`success`?`✓`:`✗ ${q.value.message??``}`;return O(`views.settings.backup_last_run`,{info:`${e} ${t}`})});async function We(){B.value=!0;try{let e={};if(localStorage.getItem(`ui`)){let t=localStorage.getItem(`ui`);e.ui=JSON.parse(t)}if(localStorage.getItem(`language`)&&(e.language=localStorage.getItem(`language`)),localStorage.getItem(`theme`)){let t=localStorage.getItem(`theme`);e.theme=JSON.parse(t)}let t=Date.now(),n=await ne(e);await l({blob:new Blob([n]),filename:`cameraui-backup-${t}.tar.gz`,mimeType:`application/gzip`})}catch(e){E.add({severity:`error`,detail:s(e),life:3e3})}B.value=!1}function Ge(){w.openTextDialog({data:{title:O(`components.dialog.title.confirm`),contentText:O(`components.dialog.message.confirm_restore`),confirmText:O(`components.form.button.restore_and_restart`),loading:B},onConfirm:Ke})}async function Ke(){let e=F.value[0];e&&(B.value=!0,await re().run(e),P.value?.reset(),B.value=!1)}function qe(e){if(e<1024)return`${e} B`;let t=[`KB`,`MB`,`GB`,`TB`],n=e,r=-1;do n/=1024,r++;while(n>=1024&&r<t.length-1);return`${n.toFixed(1)} ${t[r]}`}async function $(){try{let e=await ie(),{lastRun:t,...n}=e.settings;Object.assign(J,n),q.value=t,G.value=e.backups,K.value=e.defaultDestination}catch(e){E.add({severity:`error`,detail:s(e),life:3e3})}finally{V.value=!1}}async function Je(){if(Y.value){H.value=!0;try{let e=await oe({...J});q.value=e.lastRun,E.add({severity:`success`,detail:O(`components.toast.backup_scheduler_saved`),life:3e3})}catch(e){E.add({severity:`error`,detail:s(e),life:3e3})}finally{H.value=!1}}}async function Ye(){U.value=!0;try{let e=await te();q.value=e,E.add({severity:`success`,detail:O(`components.toast.backup_created`),life:3e3})}catch(e){E.add({severity:`error`,detail:s(e),life:3e3})}finally{U.value=!1,await $()}}async function Xe(e){W.value=e.filename;try{let t=await z(e.filename);await l({blob:new Blob([t]),filename:e.filename,mimeType:`application/gzip`})}catch(e){E.add({severity:`error`,detail:s(e),life:3e3})}finally{W.value=null}}function Ze(e){w.openTextDialog({data:{title:O(`components.dialog.title.confirm`),contentText:O(`components.dialog.message.confirm_delete_backup`,{filename:e.filename}),confirmText:O(`components.form.button.remove`)},onConfirm:async()=>{try{await ae(e.filename),E.add({severity:`success`,detail:O(`components.toast.backup_deleted`),life:3e3}),await $()}catch(e){E.add({severity:`error`,detail:s(e),life:3e3})}}})}return D($),(n,o)=>{let s=e,c=t,l=le,u=a,f=N,y=L,b=r,w=I,T=R,E=ce,D=se,O=i;return p(),v(`div`,null,[g(`div`,ue,[g(`div`,null,[g(`span`,de,_(n.$t(`views.settings.create_backup`)),1),A(c,{class:`cui-card`},{content:m(()=>[g(`div`,fe,[g(`span`,pe,_(n.$t(`views.settings.create_backup_info`)),1),A(s,{loading:C(B),class:`ml-auto cui-button-medium`,label:n.$t(`components.form.button.download_backup_archive`),onClick:We},null,8,[`loading`,`label`])])]),_:1})]),g(`div`,null,[g(`span`,me,_(n.$t(`views.settings.restore_backup`)),1),A(c,{class:`cui-card`},{content:m(()=>[g(`div`,he,[g(`span`,ge,_(n.$t(`views.settings.restore_backup_info`)),1),A(l,{ref_key:`filesRef`,ref:P,accept:`application/gzip, .tar, .tar.gz`,onFilesUploaded:o[0]||=e=>F.value=e},null,512),A(s,{loading:C(B),disabled:!C(F).length,class:`ml-auto cui-button-medium`,label:n.$t(`components.form.button.restore_backup_archive`),onClick:Ge},null,8,[`loading`,`disabled`,`label`])])]),_:1})]),g(`div`,null,[g(`span`,_e,_(n.$t(`views.settings.scheduled_backup`)),1),A(c,{class:`cui-card`},{content:m(()=>[C(V)?(p(),v(`div`,ve,[A(u,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(p(),v(`div`,ye,[g(`div`,be,[g(`div`,xe,[g(`span`,Se,_(n.$t(`views.settings.scheduled_backup_info`)),1),g(`span`,Ce,_(C(Ue)),1)]),A(f,{modelValue:C(J).enabled,"onUpdate:modelValue":o[1]||=e=>C(J).enabled=e,disabled:C(H),class:`ml-auto shrink-0`},null,8,[`modelValue`,`disabled`])]),C(J).enabled?(p(),v(x,{key:0},[g(`div`,we,[g(`div`,Te,[g(`label`,Ee,_(n.$t(`views.settings.backup_interval`)),1),A(y,{modelValue:C(J).interval,"onUpdate:modelValue":o[2]||=e=>C(J).interval=e,"input-id":`backupInterval`,options:C(X),"option-label":`label`,"option-value":`value`,disabled:C(H)},null,8,[`modelValue`,`options`,`disabled`])]),g(`div`,De,[g(`label`,Oe,_(n.$t(`views.settings.backup_time`)),1),A(b,{id:`backupTime`,modelValue:C(J).time,"onUpdate:modelValue":o[3]||=e=>C(J).time=e,placeholder:`03:00`,disabled:C(H),invalid:!C(Y)},null,8,[`modelValue`,`disabled`,`invalid`])]),C(J).interval===`weekly`?(p(),v(`div`,ke,[g(`label`,Ae,_(n.$t(`views.settings.backup_weekday`)),1),A(y,{modelValue:C(J).weekday,"onUpdate:modelValue":o[4]||=e=>C(J).weekday=e,"input-id":`backupWeekday`,options:C(Q),"option-label":`label`,"option-value":`value`,disabled:C(H)},null,8,[`modelValue`,`options`,`disabled`])])):j(``,!0),C(J).interval===`monthly`?(p(),v(`div`,je,[g(`label`,Me,_(n.$t(`views.settings.backup_day_of_month`)),1),A(w,{modelValue:C(J).dayOfMonth,"onUpdate:modelValue":o[5]||=e=>C(J).dayOfMonth=e,"input-id":`backupDayOfMonth`,min:1,max:28,"show-buttons":``,"use-grouping":!1,disabled:C(H)},null,8,[`modelValue`,`disabled`])])):j(``,!0),g(`div`,Ne,[g(`label`,Pe,_(n.$t(`views.settings.backup_retention`)),1),A(w,{modelValue:C(J).retention,"onUpdate:modelValue":o[6]||=e=>C(J).retention=e,"input-id":`backupRetention`,min:1,max:60,"show-buttons":``,"use-grouping":!1,disabled:C(H)},null,8,[`modelValue`,`disabled`]),A(T,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[S(_(n.$t(`views.settings.backup_retention_hint`)),1)]),_:1})])]),g(`div`,Fe,[g(`label`,Ie,_(n.$t(`views.settings.backup_destination`)),1),A(b,{id:`backupDestination`,modelValue:C(J).destinationPath,"onUpdate:modelValue":o[7]||=e=>C(J).destinationPath=e,placeholder:C(K),disabled:C(H)},null,8,[`modelValue`,`placeholder`,`disabled`]),A(T,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[S(_(n.$t(`views.settings.backup_destination_hint`)),1)]),_:1})])],64)):j(``,!0),g(`div`,Le,[A(s,{severity:`secondary`,outlined:``,loading:C(U),disabled:C(H),class:`ml-auto cui-button-medium`,label:n.$t(`components.form.button.run_now`),onClick:Ye},null,8,[`loading`,`disabled`,`label`]),A(s,{loading:C(H),disabled:C(U)||!C(Y),class:`cui-button-medium`,label:n.$t(`components.form.button.save`),onClick:Je},null,8,[`loading`,`disabled`,`label`])]),C(G).length?(p(),v(`div`,Re,[g(`span`,ze,_(n.$t(`views.settings.backup_existing`)),1),(p(!0),v(x,null,d(C(G),e=>(p(),v(`div`,{key:e.filename,class:`flex items-center gap-3 py-1 min-w-0`},[g(`div`,Be,[g(`span`,Ve,_(e.filename),1),g(`span`,He,_(new Date(e.timestamp).toLocaleString())+` · `+_(qe(e.size)),1)]),g(`div`,Z,[h((p(),k(s,{text:``,rounded:``,severity:`secondary`,class:`cui-icon-md`,disabled:C(W)===e.filename,onClick:t=>Xe(e)},{icon:m(()=>[A(E,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`,`onClick`])),[[O,{value:n.$t(`components.form.button.download`)},void 0,{top:!0}]]),h((p(),k(s,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md`,onClick:t=>Ze(e)},{icon:m(()=>[A(D,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[O,{value:n.$t(`components.form.button.remove`)},void 0,{top:!0}]])])]))),128))])):j(``,!0)]))]),_:1})])])])}}});export{Q as default};
|
|
1
|
+
import{Ft as e,H as t,Ir as n,M as r,Vt as i,jt as a}from"./vendor-cameraui-0EJfDg8o.js";import{hr as o,s,st as c,xn as l}from"./api-py5HP4SF.js";import{$t as u,Fn as d,Gn as f,Nn as p,Xn as m,Zn as h,an as g,br as _,cn as v,cr as y,dr as b,en as x,fn as S,gr as C,hn as w,in as T,ir as E,jn as D,mr as O,on as k,or as ee,pn as A,sn as j,zn as M}from"./vendor-BaiDFVEr.js";import{K as N,M as P,U as F,_ as I,j as L,z as R}from"./vendor-primevue-b9CB9Uh0.js";import{a as z,c as te,i as ne,n as re,o as ie,r as ae,s as oe}from"./useBackupRestore-Dbf24OqP.js";import{t as se}from"./trash-can-outline-DLKniIWM.js";import{t as B}from"./close-circle-zhDWvz98.js";import{t as ce}from"./download-BCPfm6aN.js";var V={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function H(e,t){return p(),v(`svg`,V,[...t[0]||=[g(`path`,{fill:`currentColor`,d:`M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H15v-8h5V8zm-1 7V3.5L18.5 9zm4 12.66V16h5.66v2h-2.24l2.95 2.95l-1.41 1.41L19 19.41v2.24h-2z`},null,-1)]])}var U=E({name:`ic-baseline-file-open`,render:H}),W={class:`flex flex-col gap-6 p-4 items-center justify-center w-full`},G={class:`flex flex-col justify-center items-center`},K={for:`restoreInput`,class:`cursor-pointer text-center`},q=[`accept`],J={key:0,class:`text-red`},Y={class:`mx-2`},X={class:`text-muted`},le=w({__name:`CuiUploadFiles`,props:{multiple:{type:Boolean,default:!1},accept:{},icon:{default:U}},emits:[`files-uploaded`],setup(t,{expose:n,emit:r}){let i=t,a=r,{accept:o,multiple:s}=O(i),c=f(`fileInputRef`),l=b([]),d=y(!1),h=y(!1);function x(e){let t=l.value.findIndex(t=>t.name===e);t>-1&&(l.value.splice(t,1),T())}function S(e){if(d.value=!1,h.value=!1,l.value=[],e.dataTransfer)if(!s.value&&e.dataTransfer.files.length>1)h.value=!0;else{for(let[,t]of Object.entries(e.dataTransfer.files))l.value.push(t);a(`files-uploaded`,l.value)}}function w(e){h.value=!1,l.value=[];let t=e.target;if(t&&t.files)if(!s.value&&t.files?.length>1)h.value=!0;else{for(let[,e]of Object.entries(t.files))l.value.push(e);a(`files-uploaded`,l.value)}}function T(){c.value&&(c.value.value=``)}function E(){l.value=[],T()}return n({reset:E}),(n,r)=>{let i=B,a=e,s=F,f=P;return p(),v(`div`,{class:`file-upload-box`,onDrop:r[0]||=u(e=>S(e),[`prevent`]),onDragover:r[1]||=u(e=>d.value=!0,[`prevent`]),onDragenter:r[2]||=u(e=>d.value=!0,[`prevent`]),onDragleave:r[3]||=u(e=>d.value=!1,[`prevent`])},[g(`div`,W,[g(`div`,G,[(p(),k(M(t.icon),{class:`w-15 h-15`})),g(`label`,K,_(n.$t(`components.upload_files.drop_or_select_file`)),1),g(`input`,{id:`restoreInput`,ref_key:`fileInputRef`,ref:c,type:`file`,class:`hidden`,accept:C(o),onChange:w},null,40,q),C(h)?(p(),v(`p`,J,_(n.$t(`components.upload_files.only_one_file_allowed`)),1)):j(``,!0)]),C(l).length>0?(p(),k(f,{key:0,items:C(l),"item-size":50,"scroll-height":`50px`,"scroll-width":`100%`,class:`w-full`},{item:m(({item:e})=>[(p(),v(`div`,{key:e.name,class:`w-full flex flex-row items-center justify-start p-2`},[A(a,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md shrink-0`,onClick:t=>x(e.name)},{icon:m(()=>[A(i,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`]),g(`b`,Y,_(e.name),1),g(`span`,X,`(`+_(e.size)+` bytes)`,1)])),C(l).length>1?(p(),k(s,{key:0,class:`m-0 py-4`})):j(``,!0)]),_:1},8,[`items`])):j(``,!0)])],32)}}}),ue={class:`flex flex-col w-full gap-6`},de={class:`card-title`},fe={class:`flex flex-col gap-6`},pe={class:`text-sm`},me={class:`card-title`},he={class:`flex flex-col gap-6`},ge={class:`text-sm`},_e={class:`card-title`},ve={key:0,class:`flex w-full items-center justify-center py-6`},ye={key:1,class:`flex flex-col gap-6`},be={class:`flex items-center gap-4`},xe={class:`flex flex-col gap-1 min-w-0`},Se={class:`text-sm`},Ce={class:`text-xs text-muted`},we={class:`grid grid-cols-1 sm:grid-cols-2 gap-4`},Te={class:`flex flex-col field-gap`},Ee={for:`backupInterval`,class:`cui-label`},De={class:`flex flex-col field-gap`},Oe={for:`backupTime`,class:`cui-label`},ke={key:0,class:`flex flex-col field-gap`},Ae={for:`backupWeekday`,class:`cui-label`},je={key:1,class:`flex flex-col field-gap`},Me={for:`backupDayOfMonth`,class:`cui-label`},Ne={class:`flex flex-col field-gap`},Pe={for:`backupRetention`,class:`cui-label`},Fe={class:`flex flex-col field-gap`},Ie={for:`backupDestination`,class:`cui-label`},Le={class:`flex items-center gap-2`},Re={key:1,class:`flex flex-col gap-2`},ze={class:`text-sm font-semibold border-b-[1px] border-color pb-2`},Be={class:`flex flex-col min-w-0`},Ve={class:`text-sm truncate`},He={class:`text-xs text-muted`},Z={class:`flex gap-1 ml-auto shrink-0`},Q=w({__name:`SettingsBackup`,setup(u){let w=c(),E=o(),{t:O,locale:M}=n(),P=f(`filesRef`),F=b([]),B=y(!1),V=y(!0),H=y(!1),U=y(!1),W=y(null),G=y([]),K=y(``),q=y(),J=ee({enabled:!1,interval:`daily`,time:`03:00`,weekday:0,dayOfMonth:1,retention:7,destinationPath:``}),Y=T(()=>/^([01]\d|2[0-3]):[0-5]\d$/.test(J.time)),X=T(()=>[`daily`,`weekly`,`monthly`].map(e=>({label:O(`views.settings.backup_interval_${e}`),value:e}))),Q=T(()=>Array.from({length:7},(e,t)=>({label:new Intl.DateTimeFormat(M.value,{weekday:`long`}).format(new Date(Date.UTC(2024,0,7+t,12))),value:t}))),Ue=T(()=>{if(!q.value)return O(`views.settings.backup_last_run`,{info:O(`views.settings.backup_last_run_never`)});let e=new Date(q.value.timestamp).toLocaleString(),t=q.value.status===`success`?`✓`:`✗ ${q.value.message??``}`;return O(`views.settings.backup_last_run`,{info:`${e} ${t}`})});async function We(){B.value=!0;try{let e={};if(localStorage.getItem(`ui`)){let t=localStorage.getItem(`ui`);e.ui=JSON.parse(t)}if(localStorage.getItem(`language`)&&(e.language=localStorage.getItem(`language`)),localStorage.getItem(`theme`)){let t=localStorage.getItem(`theme`);e.theme=JSON.parse(t)}let t=Date.now(),n=await ne(e);await l({blob:new Blob([n]),filename:`cameraui-backup-${t}.tar.gz`,mimeType:`application/gzip`})}catch(e){E.add({severity:`error`,detail:s(e),life:3e3})}B.value=!1}function Ge(){w.openTextDialog({data:{title:O(`components.dialog.title.confirm`),contentText:O(`components.dialog.message.confirm_restore`),confirmText:O(`components.form.button.restore_and_restart`),loading:B},onConfirm:Ke})}async function Ke(){let e=F.value[0];e&&(B.value=!0,await re().run(e),P.value?.reset(),B.value=!1)}function qe(e){if(e<1024)return`${e} B`;let t=[`KB`,`MB`,`GB`,`TB`],n=e,r=-1;do n/=1024,r++;while(n>=1024&&r<t.length-1);return`${n.toFixed(1)} ${t[r]}`}async function $(){try{let e=await ie(),{lastRun:t,...n}=e.settings;Object.assign(J,n),q.value=t,G.value=e.backups,K.value=e.defaultDestination}catch(e){E.add({severity:`error`,detail:s(e),life:3e3})}finally{V.value=!1}}async function Je(){if(Y.value){H.value=!0;try{let e=await oe({...J});q.value=e.lastRun,E.add({severity:`success`,detail:O(`components.toast.backup_scheduler_saved`),life:3e3})}catch(e){E.add({severity:`error`,detail:s(e),life:3e3})}finally{H.value=!1}}}async function Ye(){U.value=!0;try{let e=await te();q.value=e,E.add({severity:`success`,detail:O(`components.toast.backup_created`),life:3e3})}catch(e){E.add({severity:`error`,detail:s(e),life:3e3})}finally{U.value=!1,await $()}}async function Xe(e){W.value=e.filename;try{let t=await z(e.filename);await l({blob:new Blob([t]),filename:e.filename,mimeType:`application/gzip`})}catch(e){E.add({severity:`error`,detail:s(e),life:3e3})}finally{W.value=null}}function Ze(e){w.openTextDialog({data:{title:O(`components.dialog.title.confirm`),contentText:O(`components.dialog.message.confirm_delete_backup`,{filename:e.filename}),confirmText:O(`components.form.button.remove`)},onConfirm:async()=>{try{await ae(e.filename),E.add({severity:`success`,detail:O(`components.toast.backup_deleted`),life:3e3}),await $()}catch(e){E.add({severity:`error`,detail:s(e),life:3e3})}}})}return D($),(n,o)=>{let s=e,c=t,l=le,u=a,f=N,y=L,b=r,w=I,T=R,E=ce,D=se,O=i;return p(),v(`div`,null,[g(`div`,ue,[g(`div`,null,[g(`span`,de,_(n.$t(`views.settings.create_backup`)),1),A(c,{class:`cui-card`},{content:m(()=>[g(`div`,fe,[g(`span`,pe,_(n.$t(`views.settings.create_backup_info`)),1),A(s,{loading:C(B),class:`ml-auto cui-button-medium`,label:n.$t(`components.form.button.download_backup_archive`),onClick:We},null,8,[`loading`,`label`])])]),_:1})]),g(`div`,null,[g(`span`,me,_(n.$t(`views.settings.restore_backup`)),1),A(c,{class:`cui-card`},{content:m(()=>[g(`div`,he,[g(`span`,ge,_(n.$t(`views.settings.restore_backup_info`)),1),A(l,{ref_key:`filesRef`,ref:P,accept:`application/gzip, .tar, .tar.gz`,onFilesUploaded:o[0]||=e=>F.value=e},null,512),A(s,{loading:C(B),disabled:!C(F).length,class:`ml-auto cui-button-medium`,label:n.$t(`components.form.button.restore_backup_archive`),onClick:Ge},null,8,[`loading`,`disabled`,`label`])])]),_:1})]),g(`div`,null,[g(`span`,_e,_(n.$t(`views.settings.scheduled_backup`)),1),A(c,{class:`cui-card`},{content:m(()=>[C(V)?(p(),v(`div`,ve,[A(u,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(p(),v(`div`,ye,[g(`div`,be,[g(`div`,xe,[g(`span`,Se,_(n.$t(`views.settings.scheduled_backup_info`)),1),g(`span`,Ce,_(C(Ue)),1)]),A(f,{modelValue:C(J).enabled,"onUpdate:modelValue":o[1]||=e=>C(J).enabled=e,disabled:C(H),class:`ml-auto shrink-0`},null,8,[`modelValue`,`disabled`])]),C(J).enabled?(p(),v(x,{key:0},[g(`div`,we,[g(`div`,Te,[g(`label`,Ee,_(n.$t(`views.settings.backup_interval`)),1),A(y,{modelValue:C(J).interval,"onUpdate:modelValue":o[2]||=e=>C(J).interval=e,"input-id":`backupInterval`,options:C(X),"option-label":`label`,"option-value":`value`,disabled:C(H)},null,8,[`modelValue`,`options`,`disabled`])]),g(`div`,De,[g(`label`,Oe,_(n.$t(`views.settings.backup_time`)),1),A(b,{id:`backupTime`,modelValue:C(J).time,"onUpdate:modelValue":o[3]||=e=>C(J).time=e,placeholder:`03:00`,disabled:C(H),invalid:!C(Y)},null,8,[`modelValue`,`disabled`,`invalid`])]),C(J).interval===`weekly`?(p(),v(`div`,ke,[g(`label`,Ae,_(n.$t(`views.settings.backup_weekday`)),1),A(y,{modelValue:C(J).weekday,"onUpdate:modelValue":o[4]||=e=>C(J).weekday=e,"input-id":`backupWeekday`,options:C(Q),"option-label":`label`,"option-value":`value`,disabled:C(H)},null,8,[`modelValue`,`options`,`disabled`])])):j(``,!0),C(J).interval===`monthly`?(p(),v(`div`,je,[g(`label`,Me,_(n.$t(`views.settings.backup_day_of_month`)),1),A(w,{modelValue:C(J).dayOfMonth,"onUpdate:modelValue":o[5]||=e=>C(J).dayOfMonth=e,"input-id":`backupDayOfMonth`,min:1,max:28,"show-buttons":``,"use-grouping":!1,disabled:C(H)},null,8,[`modelValue`,`disabled`])])):j(``,!0),g(`div`,Ne,[g(`label`,Pe,_(n.$t(`views.settings.backup_retention`)),1),A(w,{modelValue:C(J).retention,"onUpdate:modelValue":o[6]||=e=>C(J).retention=e,"input-id":`backupRetention`,min:1,max:60,"show-buttons":``,"use-grouping":!1,disabled:C(H)},null,8,[`modelValue`,`disabled`]),A(T,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[S(_(n.$t(`views.settings.backup_retention_hint`)),1)]),_:1})])]),g(`div`,Fe,[g(`label`,Ie,_(n.$t(`views.settings.backup_destination`)),1),A(b,{id:`backupDestination`,modelValue:C(J).destinationPath,"onUpdate:modelValue":o[7]||=e=>C(J).destinationPath=e,placeholder:C(K),disabled:C(H)},null,8,[`modelValue`,`placeholder`,`disabled`]),A(T,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[S(_(n.$t(`views.settings.backup_destination_hint`)),1)]),_:1})])],64)):j(``,!0),g(`div`,Le,[A(s,{severity:`secondary`,outlined:``,loading:C(U),disabled:C(H),class:`ml-auto cui-button-medium`,label:n.$t(`components.form.button.run_now`),onClick:Ye},null,8,[`loading`,`disabled`,`label`]),A(s,{loading:C(H),disabled:C(U)||!C(Y),class:`cui-button-medium`,label:n.$t(`components.form.button.save`),onClick:Je},null,8,[`loading`,`disabled`,`label`])]),C(G).length?(p(),v(`div`,Re,[g(`span`,ze,_(n.$t(`views.settings.backup_existing`)),1),(p(!0),v(x,null,d(C(G),e=>(p(),v(`div`,{key:e.filename,class:`flex items-center gap-3 py-1 min-w-0`},[g(`div`,Be,[g(`span`,Ve,_(e.filename),1),g(`span`,He,_(new Date(e.timestamp).toLocaleString())+` · `+_(qe(e.size)),1)]),g(`div`,Z,[h((p(),k(s,{text:``,rounded:``,severity:`secondary`,class:`cui-icon-md`,disabled:C(W)===e.filename,onClick:t=>Xe(e)},{icon:m(()=>[A(E,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`,`onClick`])),[[O,{value:n.$t(`components.form.button.download`)},void 0,{top:!0}]]),h((p(),k(s,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md`,onClick:t=>Ze(e)},{icon:m(()=>[A(D,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[O,{value:n.$t(`components.form.button.remove`)},void 0,{top:!0}]])])]))),128))])):j(``,!0)]))]),_:1})])])])}}});export{Q as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Ir as e}from"./vendor-cameraui-
|
|
1
|
+
import{Ir as e}from"./vendor-cameraui-0EJfDg8o.js";import{b as t,hn as n,mn as r,un as i}from"./api-py5HP4SF.js";import{Fn as a,Nn as o,Xn as s,an as c,br as l,cn as u,en as d,fn as f,gr as p,hn as m,in as h,on as g,pn as _,zn as v}from"./vendor-BaiDFVEr.js";import{t as y}from"./CuiList-DrYuFhK4.js";var b={class:`card-title`},x=m({__name:`SettingsList`,setup(m){let{t:x}=e(),S=h(()=>t.find(e=>e.name===`Settings`).children.filter(e=>e.meta?.settingsBar&&n(e)).map(e=>({to:`/settings/${e.path}`,label:x(`navigation.${e.meta.name.toLowerCase()}`),icon:e.meta.settingsBar.icon.default,group:e.meta.settingsBar.group??`personal`}))),C=h(()=>[`personal`,`system`].map(e=>({key:e,items:S.value.filter(t=>t.group===e)})).filter(e=>e.items.length>0));return(e,t)=>{let n=r,m=i,h=y;return o(),u(`div`,null,[(o(!0),u(d,null,a(p(C),t=>(o(),u(d,{key:t.key},[c(`span`,b,l(e.$t(`views.settings.section_${t.key}`)),1),_(h,{size:`large`,dividers:``,class:`!h-auto mb-4`},{default:s(()=>[(o(!0),u(d,null,a(t.items,e=>(o(),g(m,{key:e.to,to:e.to},{prepend:s(()=>[(o(),g(v(e.icon),{class:`w-5 h-5 text-muted`}))]),append:s(()=>[_(n,{class:`w-5 h-5 text-muted`})]),default:s(()=>[f(` `+l(e.label)+` `,1)]),_:2},1032,[`to`]))),128))]),_:2},1024)],64))),128))])}}});export{x as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Ft as e,H as t,Ir as n,M as ee,jt as te}from"./vendor-cameraui-Cf0XVNQ7.js";import{gt as ne,hr as r,ht as i,i as a,o,sr as s}from"./api-CmdQlVDD.js";import{Nn as c,Xn as l,an as u,b as re,br as d,cn as f,cr as p,en as m,fn as h,gr as g,hn as _,in as v,on as y,pn as b,qn as x,qt as S,rr as ie,sn as C,v as w,wn as T,y as E}from"./vendor-BaiDFVEr.js";import{J as D}from"./types-R10eIequ.js";import{K as ae,L as oe,R as se,_ as ce,a as le,i as ue,j as de,s as fe,z as pe}from"./vendor-primevue-BDu2BpXv.js";import{t as O}from"./mqtt-uItF3Vd7.js";var me=D,k={class:`w-full h-full`},A={key:0,class:`w-full h-full flex items-center justify-center`},j={key:1,class:`flex flex-col w-full gap-6`},M={class:`card-title`},N={class:`flex items-center gap-4`},P={class:`flex flex-col field-switch-gap min-w-0`},F={class:`text-sm font-bold text-color`},I={class:`card-title`},L={class:`flex flex-col gap-6`},R={class:`flex items-center gap-4 cui-toggle-switch`},z={class:`flex flex-col field-switch-gap`},he={for:`enabled`,class:`cui-label-switch`},ge={class:`flex flex-col field-gap`},_e={for:`mode`,class:`cui-label`},ve={class:`flex flex-col sm:flex-row gap-6`},ye={for:`host`,class:`cui-label`},be={class:`flex flex-col field-gap w-full sm:w-40 shrink-0`},xe={for:`port`,class:`cui-label`},Se={class:`flex flex-col field-gap`},Ce={for:`protocol`,class:`cui-label`},we={class:`flex flex-col sm:flex-row gap-6`},Te={class:`flex flex-col field-gap flex-1 min-w-0`},Ee={for:`username`,class:`cui-label`},De={class:`flex flex-col field-gap flex-1 min-w-0`},Oe={for:`password`,class:`cui-label`},ke={class:`flex flex-col field-gap`},Ae={for:`brokerAddress`,class:`cui-label`},je={class:`flex flex-col sm:flex-row gap-6`},Me={class:`flex flex-col field-gap w-full sm:w-40 shrink-0`},Ne={for:`brokerPort`,class:`cui-label`},Pe={class:`flex flex-col field-gap flex-1 min-w-0`},Fe={for:`brokerUsername`,class:`cui-label`},B={class:`flex flex-col field-gap flex-1 min-w-0`},Ie={for:`brokerPassword`,class:`cui-label`},Le={class:`flex flex-col sm:flex-row gap-6`},Re={for:`clientId`,class:`cui-label`},ze={for:`topicPrefix`,class:`cui-label`},Be={class:`flex items-center gap-4 cui-toggle-switch`},Ve={class:`flex flex-col field-switch-gap`},He={for:`rejectUnauthorized`,class:`cui-label-switch`},Ue={class:`flex flex-col field-gap`},We={for:`tlsCa`,class:`cui-label`},Ge={class:`flex flex-col field-gap`},Ke={for:`tlsCert`,class:`cui-label`},qe={class:`flex flex-col field-gap`},Je={for:`tlsKey`,class:`cui-label`},Ye={class:`flex items-center gap-4 cui-toggle-switch`},Xe={class:`flex flex-col field-switch-gap`},Ze={for:`haDiscovery`,class:`cui-label-switch`},Qe={for:`haDiscovery.prefix`,class:`cui-label`},$e={class:`flex items-center gap-3`},V=_({__name:`SettingsMqtt`,setup(_){let D=new O,V=r(),{t:H}=n(),{data:U}=D.getMqttInfoQuery(),W=D.patchMqttInfoMutation(),G=D.testMqttConnectionMutation(),K=s(`/server`),et=[{label:`mqtt:// (TCP)`,value:`mqtt`},{label:`mqtts:// (TLS)`,value:`mqtts`}],tt=[{label:H(`views.settings.mqtt_mode_external`),value:`external`},{label:H(`views.settings.mqtt_mode_embedded`),value:`embedded`}],q=p(null),J=p(``),Y=p(null),X=v(()=>U.value?.passwordSet??!1),Z=v(()=>Y.value??U.value?.status??null),nt=v(()=>{switch(Z.value?.state){case`connected`:return`success`;case`connecting`:case`reconnecting`:return`warn`;case`error`:return`danger`;default:return`secondary`}}),rt=v(()=>{let e=Z.value?.state??`disabled`;return H(`views.settings.mqtt_state_${e}`)}),it=v(()=>Z.value?.lastError?Z.value.lastError:Z.value?.broker?.running?H(`views.settings.mqtt_broker_running`,{port:Z.value.broker.port}):H(`views.settings.mqtt_status_info`)),Q=v(()=>`mqtt://${window.location.hostname}:${q.value?.broker.port??1883}`);function $(){let e=o(q.value),t={enabled:e.enabled,mode:e.mode,broker:{port:e.broker.port,username:e.broker.username?.trim()?e.broker.username.trim():null,password:e.broker.password?.trim()?e.broker.password:null},host:e.host?.trim()?e.host.trim():null,port:e.port,protocol:e.protocol,username:e.username?.trim()?e.username.trim():null,clientId:e.clientId,topicPrefix:e.topicPrefix,tls:{rejectUnauthorized:e.tls.rejectUnauthorized,ca:e.tls.ca?.trim()?e.tls.ca:null,cert:e.tls.cert?.trim()?e.tls.cert:null,key:e.tls.key?.trim()?e.tls.key:null},haDiscovery:{enabled:e.haDiscovery.enabled,prefix:e.haDiscovery.prefix}};return J.value&&(t.password=J.value),t}async function at(){q.value&&(await W.mutateAsync($()),J.value=``)}async function ot(){if(!q.value)return;let e=await G.mutateAsync($());e.ok?V.add({severity:`success`,detail:H(`components.toast.mqtt_test_success`),life:3e3}):V.add({severity:`error`,detail:H(`components.toast.mqtt_test_failed`,{message:e.message??``}),life:5e3})}return x(U,e=>{e&&!q.value&&(q.value=o(e.settings))},{immediate:!0}),K.on(`mqtt-status`,e=>{Y.value=e}),K.onReady(async()=>{try{let e=await K.request(`get-mqtt-status`);e&&(Y.value=e)}catch{}}),(n,r)=>{let o=te,s=pe,p=le,_=t,v=ae,x=de,D=ee,O=ce,V=fe,H=ne,U=oe,K=se,Y=ue,Z=e;return c(),f(`div`,k,[g(q)?(c(),f(`div`,j,[u(`div`,null,[u(`span`,M,d(n.$t(`views.settings.status`)),1),b(_,{class:`cui-card`},{content:l(()=>[u(`div`,N,[u(`div`,P,[u(`span`,F,d(n.$t(`views.settings.mqtt_broker`)),1),b(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:l(()=>[h(d(g(it)),1)]),_:1})]),b(p,{class:`ml-auto shrink-0`,severity:g(nt),value:g(rt)},null,8,[`severity`,`value`])])]),_:1})]),b(g(re),{class:`flex flex-col w-full gap-6`,"validation-schema":g(me),onSubmit:at},{default:l(()=>[u(`div`,null,[u(`span`,I,d(n.$t(`views.settings.mqtt_broker`)),1),b(_,{class:`cui-card`},{content:l(()=>[u(`div`,L,[u(`div`,R,[u(`div`,z,[u(`label`,he,d(n.$t(`components.form.label.enabled`)),1),b(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_enabled_info`)),1)]),_:1})]),b(v,{modelValue:g(q).enabled,"onUpdate:modelValue":r[0]||=e=>g(q).enabled=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),u(`div`,ge,[u(`label`,_e,d(n.$t(`views.settings.mqtt_mode_label`)),1),b(x,{modelValue:g(q).mode,"onUpdate:modelValue":r[1]||=e=>g(q).mode=e,options:tt,"option-label":`label`,"option-value":`value`},null,8,[`modelValue`]),g(q).mode===`embedded`?(c(),y(s,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_mode_embedded_info`)),1)]),_:1})):C(``,!0)]),g(q).mode===`external`?(c(),f(m,{key:0},[u(`div`,ve,[b(g(E),{modelValue:g(q).host,"onUpdate:modelValue":r[2]||=e=>g(q).host=e,modelModifiers:{trim:!0},name:`host`,as:`div`,class:`flex flex-col field-gap flex-1 min-w-0`},{default:l(({field:e,errors:t})=>[u(`label`,ye,d(n.$t(`views.settings.mqtt_host_label`)),1),b(D,T(e,{invalid:t.length>0,type:`text`,placeholder:`192.168.1.10`,class:`w-full`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`host`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),u(`div`,be,[u(`label`,xe,d(n.$t(`views.settings.mqtt_port_label`)),1),b(O,{modelValue:g(q).port,"onUpdate:modelValue":r[3]||=e=>g(q).port=e,min:1,max:65535,"use-grouping":!1,fluid:``},null,8,[`modelValue`])])]),u(`div`,Se,[u(`label`,Ce,d(n.$t(`views.settings.mqtt_protocol_label`)),1),b(x,{modelValue:g(q).protocol,"onUpdate:modelValue":r[4]||=e=>g(q).protocol=e,options:et,"option-label":`label`,"option-value":`value`},null,8,[`modelValue`])]),u(`div`,we,[u(`div`,Te,[u(`label`,Ee,d(n.$t(`views.settings.mqtt_username_label`)),1),b(D,{modelValue:g(q).username,"onUpdate:modelValue":r[5]||=e=>g(q).username=e,modelModifiers:{trim:!0},type:`text`,autocomplete:`off`,class:`w-full`},null,8,[`modelValue`])]),u(`div`,De,[u(`label`,Oe,d(n.$t(`views.settings.mqtt_password_label`)),1),b(V,{modelValue:g(J),"onUpdate:modelValue":r[6]||=e=>ie(J)?J.value=e:null,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`new-password`,placeholder:g(X)?`••••••••`:``},null,8,[`modelValue`,`placeholder`]),g(X)?(c(),y(s,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_password_keep_hint`)),1)]),_:1})):C(``,!0)])])],64)):(c(),f(m,{key:1},[u(`div`,ke,[u(`label`,Ae,d(n.$t(`views.settings.mqtt_broker_address`)),1),b(K,null,{default:l(()=>[b(D,{"model-value":g(Q),readonly:``,class:`font-mono text-xs`},null,8,[`model-value`]),b(U,null,{default:l(()=>[b(H,{"action-text":n.$t(`components.form.tooltip.copied`),icon:g(i),"button-props":{severity:`secondary`,text:!0},onAction:r[7]||=e=>g(a)(g(Q))},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),b(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_broker_address_hint`)),1)]),_:1})]),u(`div`,je,[u(`div`,Me,[u(`label`,Ne,d(n.$t(`views.settings.mqtt_port_label`)),1),b(O,{modelValue:g(q).broker.port,"onUpdate:modelValue":r[8]||=e=>g(q).broker.port=e,min:1,max:65535,"use-grouping":!1,fluid:``},null,8,[`modelValue`])]),u(`div`,Pe,[u(`label`,Fe,d(n.$t(`views.settings.mqtt_username_label`)),1),b(D,{modelValue:g(q).broker.username,"onUpdate:modelValue":r[9]||=e=>g(q).broker.username=e,modelModifiers:{trim:!0},type:`text`,autocomplete:`off`,class:`w-full`},null,8,[`modelValue`])]),u(`div`,B,[u(`label`,Ie,d(n.$t(`views.settings.mqtt_password_label`)),1),b(K,null,{default:l(()=>[b(V,{modelValue:g(q).broker.password,"onUpdate:modelValue":r[10]||=e=>g(q).broker.password=e,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`off`},null,8,[`modelValue`]),b(U,null,{default:l(()=>[b(H,{"action-text":n.$t(`components.form.tooltip.copied`),icon:g(i),"button-props":{severity:`secondary`,text:!0},onAction:r[11]||=e=>g(a)(g(q).broker.password??``)},null,8,[`action-text`,`icon`])]),_:1})]),_:1})])])],64)),u(`div`,Le,[b(g(E),{modelValue:g(q).clientId,"onUpdate:modelValue":r[12]||=e=>g(q).clientId=e,modelModifiers:{trim:!0},name:`clientId`,as:`div`,class:`flex flex-col field-gap flex-1`},{default:l(({field:e,errors:t})=>[u(`label`,Re,d(n.$t(`views.settings.mqtt_client_id_label`)),1),b(D,T(e,{invalid:t.length>0,type:`text`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`clientId`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),b(g(E),{modelValue:g(q).topicPrefix,"onUpdate:modelValue":r[13]||=e=>g(q).topicPrefix=e,modelModifiers:{trim:!0},name:`topicPrefix`,as:`div`,class:`flex flex-col field-gap flex-1`},{default:l(({field:e,errors:t})=>[u(`label`,ze,d(n.$t(`views.settings.mqtt_topic_prefix_label`)),1),b(D,T(e,{invalid:t.length>0,type:`text`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`topicPrefix`,class:`cui-input-error`})]),_:1}),b(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_topic_prefix_info`)),1)]),_:1})]),_:1},8,[`modelValue`])]),g(q).mode===`external`&&g(q).protocol===`mqtts`?(c(),f(m,{key:2},[u(`div`,Be,[u(`div`,Ve,[u(`label`,He,d(n.$t(`views.settings.mqtt_tls_reject_unauthorized`)),1),b(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_tls_reject_unauthorized_info`)),1)]),_:1})]),b(v,{modelValue:g(q).tls.rejectUnauthorized,"onUpdate:modelValue":r[14]||=e=>g(q).tls.rejectUnauthorized=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),u(`div`,Ue,[u(`label`,We,d(n.$t(`views.settings.mqtt_tls_ca_label`)),1),b(Y,{modelValue:g(q).tls.ca,"onUpdate:modelValue":r[15]||=e=>g(q).tls.ca=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])]),u(`div`,Ge,[u(`label`,Ke,d(n.$t(`views.settings.mqtt_tls_cert_label`)),1),b(Y,{modelValue:g(q).tls.cert,"onUpdate:modelValue":r[16]||=e=>g(q).tls.cert=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])]),u(`div`,qe,[u(`label`,Je,d(n.$t(`views.settings.mqtt_tls_key_label`)),1),b(Y,{modelValue:g(q).tls.key,"onUpdate:modelValue":r[17]||=e=>g(q).tls.key=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])])],64)):C(``,!0),u(`div`,Ye,[u(`div`,Xe,[u(`label`,Ze,d(n.$t(`views.settings.mqtt_ha_discovery`)),1),b(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_ha_discovery_info`)),1)]),_:1})]),b(v,{modelValue:g(q).haDiscovery.enabled,"onUpdate:modelValue":r[18]||=e=>g(q).haDiscovery.enabled=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),g(q).haDiscovery.enabled?(c(),y(g(E),{key:3,modelValue:g(q).haDiscovery.prefix,"onUpdate:modelValue":r[19]||=e=>g(q).haDiscovery.prefix=e,modelModifiers:{trim:!0},name:`haDiscovery.prefix`,as:`div`,class:`flex flex-col field-gap`},{default:l(({field:e,errors:t})=>[u(`label`,Qe,d(n.$t(`views.settings.mqtt_ha_prefix_label`)),1),b(D,T(e,{invalid:t.length>0,type:`text`,placeholder:`homeassistant`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`haDiscovery.prefix`,class:`cui-input-error`})]),_:1}),b(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_ha_prefix_info`)),1)]),_:1})]),_:1},8,[`modelValue`])):C(``,!0),u(`div`,$e,[b(Z,{type:`button`,severity:`secondary`,loading:g(G).isPending.value,disabled:g(q).mode===`external`&&!g(q).host,class:`cui-button-medium`,label:n.$t(`views.settings.mqtt_test`),onClick:ot},null,8,[`loading`,`disabled`,`label`]),b(Z,{type:`submit`,loading:g(W).isPending.value,class:`cui-button-medium ml-auto`,label:n.$t(`components.form.button.save`)},null,8,[`loading`,`label`])])])]),_:1})])]),_:1},8,[`validation-schema`])])):(c(),f(`div`,A,[b(o,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]))])}}});export{V as default};
|
|
1
|
+
import{Ft as e,H as t,Ir as n,M as ee,jt as te}from"./vendor-cameraui-0EJfDg8o.js";import{gt as ne,hr as r,ht as i,i as a,o,sr as s}from"./api-py5HP4SF.js";import{Nn as c,Xn as l,an as u,b as re,br as d,cn as f,cr as p,en as m,fn as h,gr as g,hn as _,in as v,on as y,pn as b,qn as x,qt as S,rr as ie,sn as C,v as w,wn as T,y as E}from"./vendor-BaiDFVEr.js";import{J as D}from"./types-D6IQ6ssc.js";import{K as ae,L as oe,R as se,_ as ce,a as le,i as ue,j as de,s as fe,z as pe}from"./vendor-primevue-b9CB9Uh0.js";import{t as O}from"./mqtt-Cyhv8shC.js";var me=D,k={class:`w-full h-full`},A={key:0,class:`w-full h-full flex items-center justify-center`},j={key:1,class:`flex flex-col w-full gap-6`},M={class:`card-title`},N={class:`flex items-center gap-4`},P={class:`flex flex-col field-switch-gap min-w-0`},F={class:`text-sm font-bold text-color`},I={class:`card-title`},L={class:`flex flex-col gap-6`},R={class:`flex items-center gap-4 cui-toggle-switch`},z={class:`flex flex-col field-switch-gap`},he={for:`enabled`,class:`cui-label-switch`},ge={class:`flex flex-col field-gap`},_e={for:`mode`,class:`cui-label`},ve={class:`flex flex-col sm:flex-row gap-6`},ye={for:`host`,class:`cui-label`},be={class:`flex flex-col field-gap w-full sm:w-40 shrink-0`},xe={for:`port`,class:`cui-label`},Se={class:`flex flex-col field-gap`},Ce={for:`protocol`,class:`cui-label`},we={class:`flex flex-col sm:flex-row gap-6`},Te={class:`flex flex-col field-gap flex-1 min-w-0`},Ee={for:`username`,class:`cui-label`},De={class:`flex flex-col field-gap flex-1 min-w-0`},Oe={for:`password`,class:`cui-label`},ke={class:`flex flex-col field-gap`},Ae={for:`brokerAddress`,class:`cui-label`},je={class:`flex flex-col sm:flex-row gap-6`},Me={class:`flex flex-col field-gap w-full sm:w-40 shrink-0`},Ne={for:`brokerPort`,class:`cui-label`},Pe={class:`flex flex-col field-gap flex-1 min-w-0`},Fe={for:`brokerUsername`,class:`cui-label`},B={class:`flex flex-col field-gap flex-1 min-w-0`},Ie={for:`brokerPassword`,class:`cui-label`},Le={class:`flex flex-col sm:flex-row gap-6`},Re={for:`clientId`,class:`cui-label`},ze={for:`topicPrefix`,class:`cui-label`},Be={class:`flex items-center gap-4 cui-toggle-switch`},Ve={class:`flex flex-col field-switch-gap`},He={for:`rejectUnauthorized`,class:`cui-label-switch`},Ue={class:`flex flex-col field-gap`},We={for:`tlsCa`,class:`cui-label`},Ge={class:`flex flex-col field-gap`},Ke={for:`tlsCert`,class:`cui-label`},qe={class:`flex flex-col field-gap`},Je={for:`tlsKey`,class:`cui-label`},Ye={class:`flex items-center gap-4 cui-toggle-switch`},Xe={class:`flex flex-col field-switch-gap`},Ze={for:`haDiscovery`,class:`cui-label-switch`},Qe={for:`haDiscovery.prefix`,class:`cui-label`},$e={class:`flex items-center gap-3`},V=_({__name:`SettingsMqtt`,setup(_){let D=new O,V=r(),{t:H}=n(),{data:U}=D.getMqttInfoQuery(),W=D.patchMqttInfoMutation(),G=D.testMqttConnectionMutation(),K=s(`/server`),et=[{label:`mqtt:// (TCP)`,value:`mqtt`},{label:`mqtts:// (TLS)`,value:`mqtts`}],tt=[{label:H(`views.settings.mqtt_mode_external`),value:`external`},{label:H(`views.settings.mqtt_mode_embedded`),value:`embedded`}],q=p(null),J=p(``),Y=p(null),X=v(()=>U.value?.passwordSet??!1),Z=v(()=>Y.value??U.value?.status??null),nt=v(()=>{switch(Z.value?.state){case`connected`:return`success`;case`connecting`:case`reconnecting`:return`warn`;case`error`:return`danger`;default:return`secondary`}}),rt=v(()=>{let e=Z.value?.state??`disabled`;return H(`views.settings.mqtt_state_${e}`)}),it=v(()=>Z.value?.lastError?Z.value.lastError:Z.value?.broker?.running?H(`views.settings.mqtt_broker_running`,{port:Z.value.broker.port}):H(`views.settings.mqtt_status_info`)),Q=v(()=>`mqtt://${window.location.hostname}:${q.value?.broker.port??1883}`);function $(){let e=o(q.value),t={enabled:e.enabled,mode:e.mode,broker:{port:e.broker.port,username:e.broker.username?.trim()?e.broker.username.trim():null,password:e.broker.password?.trim()?e.broker.password:null},host:e.host?.trim()?e.host.trim():null,port:e.port,protocol:e.protocol,username:e.username?.trim()?e.username.trim():null,clientId:e.clientId,topicPrefix:e.topicPrefix,tls:{rejectUnauthorized:e.tls.rejectUnauthorized,ca:e.tls.ca?.trim()?e.tls.ca:null,cert:e.tls.cert?.trim()?e.tls.cert:null,key:e.tls.key?.trim()?e.tls.key:null},haDiscovery:{enabled:e.haDiscovery.enabled,prefix:e.haDiscovery.prefix}};return J.value&&(t.password=J.value),t}async function at(){q.value&&(await W.mutateAsync($()),J.value=``)}async function ot(){if(!q.value)return;let e=await G.mutateAsync($());e.ok?V.add({severity:`success`,detail:H(`components.toast.mqtt_test_success`),life:3e3}):V.add({severity:`error`,detail:H(`components.toast.mqtt_test_failed`,{message:e.message??``}),life:5e3})}return x(U,e=>{e&&!q.value&&(q.value=o(e.settings))},{immediate:!0}),K.on(`mqtt-status`,e=>{Y.value=e}),K.onReady(async()=>{try{let e=await K.request(`get-mqtt-status`);e&&(Y.value=e)}catch{}}),(n,r)=>{let o=te,s=pe,p=le,_=t,v=ae,x=de,D=ee,O=ce,V=fe,H=ne,U=oe,K=se,Y=ue,Z=e;return c(),f(`div`,k,[g(q)?(c(),f(`div`,j,[u(`div`,null,[u(`span`,M,d(n.$t(`views.settings.status`)),1),b(_,{class:`cui-card`},{content:l(()=>[u(`div`,N,[u(`div`,P,[u(`span`,F,d(n.$t(`views.settings.mqtt_broker`)),1),b(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:l(()=>[h(d(g(it)),1)]),_:1})]),b(p,{class:`ml-auto shrink-0`,severity:g(nt),value:g(rt)},null,8,[`severity`,`value`])])]),_:1})]),b(g(re),{class:`flex flex-col w-full gap-6`,"validation-schema":g(me),onSubmit:at},{default:l(()=>[u(`div`,null,[u(`span`,I,d(n.$t(`views.settings.mqtt_broker`)),1),b(_,{class:`cui-card`},{content:l(()=>[u(`div`,L,[u(`div`,R,[u(`div`,z,[u(`label`,he,d(n.$t(`components.form.label.enabled`)),1),b(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_enabled_info`)),1)]),_:1})]),b(v,{modelValue:g(q).enabled,"onUpdate:modelValue":r[0]||=e=>g(q).enabled=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),u(`div`,ge,[u(`label`,_e,d(n.$t(`views.settings.mqtt_mode_label`)),1),b(x,{modelValue:g(q).mode,"onUpdate:modelValue":r[1]||=e=>g(q).mode=e,options:tt,"option-label":`label`,"option-value":`value`},null,8,[`modelValue`]),g(q).mode===`embedded`?(c(),y(s,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_mode_embedded_info`)),1)]),_:1})):C(``,!0)]),g(q).mode===`external`?(c(),f(m,{key:0},[u(`div`,ve,[b(g(E),{modelValue:g(q).host,"onUpdate:modelValue":r[2]||=e=>g(q).host=e,modelModifiers:{trim:!0},name:`host`,as:`div`,class:`flex flex-col field-gap flex-1 min-w-0`},{default:l(({field:e,errors:t})=>[u(`label`,ye,d(n.$t(`views.settings.mqtt_host_label`)),1),b(D,T(e,{invalid:t.length>0,type:`text`,placeholder:`192.168.1.10`,class:`w-full`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`host`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),u(`div`,be,[u(`label`,xe,d(n.$t(`views.settings.mqtt_port_label`)),1),b(O,{modelValue:g(q).port,"onUpdate:modelValue":r[3]||=e=>g(q).port=e,min:1,max:65535,"use-grouping":!1,fluid:``},null,8,[`modelValue`])])]),u(`div`,Se,[u(`label`,Ce,d(n.$t(`views.settings.mqtt_protocol_label`)),1),b(x,{modelValue:g(q).protocol,"onUpdate:modelValue":r[4]||=e=>g(q).protocol=e,options:et,"option-label":`label`,"option-value":`value`},null,8,[`modelValue`])]),u(`div`,we,[u(`div`,Te,[u(`label`,Ee,d(n.$t(`views.settings.mqtt_username_label`)),1),b(D,{modelValue:g(q).username,"onUpdate:modelValue":r[5]||=e=>g(q).username=e,modelModifiers:{trim:!0},type:`text`,autocomplete:`off`,class:`w-full`},null,8,[`modelValue`])]),u(`div`,De,[u(`label`,Oe,d(n.$t(`views.settings.mqtt_password_label`)),1),b(V,{modelValue:g(J),"onUpdate:modelValue":r[6]||=e=>ie(J)?J.value=e:null,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`new-password`,placeholder:g(X)?`••••••••`:``},null,8,[`modelValue`,`placeholder`]),g(X)?(c(),y(s,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_password_keep_hint`)),1)]),_:1})):C(``,!0)])])],64)):(c(),f(m,{key:1},[u(`div`,ke,[u(`label`,Ae,d(n.$t(`views.settings.mqtt_broker_address`)),1),b(K,null,{default:l(()=>[b(D,{"model-value":g(Q),readonly:``,class:`font-mono text-xs`},null,8,[`model-value`]),b(U,null,{default:l(()=>[b(H,{"action-text":n.$t(`components.form.tooltip.copied`),icon:g(i),"button-props":{severity:`secondary`,text:!0},onAction:r[7]||=e=>g(a)(g(Q))},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),b(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_broker_address_hint`)),1)]),_:1})]),u(`div`,je,[u(`div`,Me,[u(`label`,Ne,d(n.$t(`views.settings.mqtt_port_label`)),1),b(O,{modelValue:g(q).broker.port,"onUpdate:modelValue":r[8]||=e=>g(q).broker.port=e,min:1,max:65535,"use-grouping":!1,fluid:``},null,8,[`modelValue`])]),u(`div`,Pe,[u(`label`,Fe,d(n.$t(`views.settings.mqtt_username_label`)),1),b(D,{modelValue:g(q).broker.username,"onUpdate:modelValue":r[9]||=e=>g(q).broker.username=e,modelModifiers:{trim:!0},type:`text`,autocomplete:`off`,class:`w-full`},null,8,[`modelValue`])]),u(`div`,B,[u(`label`,Ie,d(n.$t(`views.settings.mqtt_password_label`)),1),b(K,null,{default:l(()=>[b(V,{modelValue:g(q).broker.password,"onUpdate:modelValue":r[10]||=e=>g(q).broker.password=e,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`off`},null,8,[`modelValue`]),b(U,null,{default:l(()=>[b(H,{"action-text":n.$t(`components.form.tooltip.copied`),icon:g(i),"button-props":{severity:`secondary`,text:!0},onAction:r[11]||=e=>g(a)(g(q).broker.password??``)},null,8,[`action-text`,`icon`])]),_:1})]),_:1})])])],64)),u(`div`,Le,[b(g(E),{modelValue:g(q).clientId,"onUpdate:modelValue":r[12]||=e=>g(q).clientId=e,modelModifiers:{trim:!0},name:`clientId`,as:`div`,class:`flex flex-col field-gap flex-1`},{default:l(({field:e,errors:t})=>[u(`label`,Re,d(n.$t(`views.settings.mqtt_client_id_label`)),1),b(D,T(e,{invalid:t.length>0,type:`text`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`clientId`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),b(g(E),{modelValue:g(q).topicPrefix,"onUpdate:modelValue":r[13]||=e=>g(q).topicPrefix=e,modelModifiers:{trim:!0},name:`topicPrefix`,as:`div`,class:`flex flex-col field-gap flex-1`},{default:l(({field:e,errors:t})=>[u(`label`,ze,d(n.$t(`views.settings.mqtt_topic_prefix_label`)),1),b(D,T(e,{invalid:t.length>0,type:`text`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`topicPrefix`,class:`cui-input-error`})]),_:1}),b(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_topic_prefix_info`)),1)]),_:1})]),_:1},8,[`modelValue`])]),g(q).mode===`external`&&g(q).protocol===`mqtts`?(c(),f(m,{key:2},[u(`div`,Be,[u(`div`,Ve,[u(`label`,He,d(n.$t(`views.settings.mqtt_tls_reject_unauthorized`)),1),b(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_tls_reject_unauthorized_info`)),1)]),_:1})]),b(v,{modelValue:g(q).tls.rejectUnauthorized,"onUpdate:modelValue":r[14]||=e=>g(q).tls.rejectUnauthorized=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),u(`div`,Ue,[u(`label`,We,d(n.$t(`views.settings.mqtt_tls_ca_label`)),1),b(Y,{modelValue:g(q).tls.ca,"onUpdate:modelValue":r[15]||=e=>g(q).tls.ca=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])]),u(`div`,Ge,[u(`label`,Ke,d(n.$t(`views.settings.mqtt_tls_cert_label`)),1),b(Y,{modelValue:g(q).tls.cert,"onUpdate:modelValue":r[16]||=e=>g(q).tls.cert=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])]),u(`div`,qe,[u(`label`,Je,d(n.$t(`views.settings.mqtt_tls_key_label`)),1),b(Y,{modelValue:g(q).tls.key,"onUpdate:modelValue":r[17]||=e=>g(q).tls.key=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])])],64)):C(``,!0),u(`div`,Ye,[u(`div`,Xe,[u(`label`,Ze,d(n.$t(`views.settings.mqtt_ha_discovery`)),1),b(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_ha_discovery_info`)),1)]),_:1})]),b(v,{modelValue:g(q).haDiscovery.enabled,"onUpdate:modelValue":r[18]||=e=>g(q).haDiscovery.enabled=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),g(q).haDiscovery.enabled?(c(),y(g(E),{key:3,modelValue:g(q).haDiscovery.prefix,"onUpdate:modelValue":r[19]||=e=>g(q).haDiscovery.prefix=e,modelModifiers:{trim:!0},name:`haDiscovery.prefix`,as:`div`,class:`flex flex-col field-gap`},{default:l(({field:e,errors:t})=>[u(`label`,Qe,d(n.$t(`views.settings.mqtt_ha_prefix_label`)),1),b(D,T(e,{invalid:t.length>0,type:`text`,placeholder:`homeassistant`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`haDiscovery.prefix`,class:`cui-input-error`})]),_:1}),b(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_ha_prefix_info`)),1)]),_:1})]),_:1},8,[`modelValue`])):C(``,!0),u(`div`,$e,[b(Z,{type:`button`,severity:`secondary`,loading:g(G).isPending.value,disabled:g(q).mode===`external`&&!g(q).host,class:`cui-button-medium`,label:n.$t(`views.settings.mqtt_test`),onClick:ot},null,8,[`loading`,`disabled`,`label`]),b(Z,{type:`submit`,loading:g(W).isPending.value,class:`cui-button-medium ml-auto`,label:n.$t(`components.form.button.save`)},null,8,[`loading`,`label`])])])]),_:1})])]),_:1},8,[`validation-schema`])])):(c(),f(`div`,A,[b(o,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]))])}}});export{V as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A as e,Ft as t,H as n,Ir as r,M as ee,Vt as te,jt as ne}from"./vendor-cameraui-Cf0XVNQ7.js";import{ar as i,hn as a,hr as o}from"./api-CmdQlVDD.js";import{Fn as s,Ln as re,Nn as c,Qt as ie,Xn as l,Zn as ae,an as u,br as d,cn as f,cr as p,en as m,fn as h,gr as g,hn as _,in as v,jn as y,on as b,or as x,pn as S,qn as C,sn as w}from"./vendor-BaiDFVEr.js";import{i as T}from"./intercomService-BjB4QQiX.js";import{K as oe,S as se,T as ce,U as le,z as ue}from"./vendor-primevue-BDu2BpXv.js";import{t as E}from"./notifications-CuZPzI4-.js";import{t as de}from"./usePushRegistration-BPSfvI_w.js";import{t as fe}from"./delete-BF6keuqy.js";import{t as pe}from"./CuiDataTable-P8bWN0ZK.js";import{t as D}from"./usePermissions-C2wQBWmH.js";var me={class:`flex flex-col w-full gap-6`},he={class:`card-title`},ge={class:`flex flex-col gap-6`},_e={class:`text-sm`},ve={key:1,class:`flex items-center justify-center py-8`},ye={class:`flex items-center gap-4`},be={class:`flex flex-col field-switch-gap`},xe={class:`cui-label-switch`},Se={key:0,class:`flex items-center gap-4`},Ce={class:`flex flex-col field-switch-gap min-w-0`},we={class:`cui-label-switch`},Te={key:1,class:`flex items-center gap-4`},Ee={class:`flex flex-col field-switch-gap min-w-0`},De={class:`cui-label-switch`},Oe={key:2,class:`flex flex-col gap-2`},ke={class:`flex items-center gap-4`},Ae={class:`flex flex-col field-switch-gap`},je={class:`cui-label-switch`},Me={key:0,class:`grid grid-cols-1 sm:grid-cols-3 gap-3 mt-2`},Ne={class:`flex flex-col field-gap`},Pe={for:`qh-from`,class:`cui-label`},Fe={class:`flex flex-col field-gap`},Ie={for:`qh-to`,class:`cui-label`},Le={class:`flex flex-col field-gap`},Re={for:`qh-tz`,class:`cui-label`},ze={key:0},Be={class:`card-title`},Ve={class:`flex flex-col gap-6`},He={class:`text-sm`},Ue={key:0,class:`flex items-center justify-center py-8`},We={key:1,class:`text-sm text-muted text-center py-8`},Ge={key:2,class:`flex flex-col gap-3`},Ke={class:`flex items-center gap-4`},qe={class:`flex flex-col field-switch-gap`},Je={class:`cui-label-switch`},Ye={key:1},Xe={class:`card-title`},Ze={class:`flex flex-col gap-6`},Qe={class:`text-sm`},$e={key:0,class:`flex items-center justify-center py-8`},et={key:1,class:`text-sm text-muted text-center py-8`},tt={key:2,class:`flex flex-col gap-3`},nt={class:`flex items-center gap-4`},rt={class:`flex flex-col field-switch-gap`},it={class:`cui-label-switch`},at={key:2},ot={class:`card-title`},st={class:`flex flex-col gap-6`},ct={class:`text-sm`},lt={key:0,class:`flex items-center justify-center py-8`},ut={key:1,class:`text-sm text-muted text-center py-8`},dt={key:3,class:`flex justify-end gap-2`},O=_({__name:`SettingsNotifications`,setup(_){let O=new E,{t:k,te:ft}=r(),A=o(),pt=a(void 0,`admin`),{registerForPush:mt,forgetIfThisDevice:ht,getSyncState:gt,restoreMarker:_t}=de(),{isElectronApp:j,electron:M}=T(),{states:vt,refresh:yt}=D(),{data:N,isLoading:bt}=O.getSettingsQuery(),{data:P,isLoading:xt}=O.listDevicesQuery(()=>!0),{data:F,isLoading:I}=O.listSourcesQuery(),{mutate:St,isPending:Ct}=O.setSettingsQuery(),{mutateAsync:wt}=O.setSettingsQuerySilent(),{mutate:Tt}=O.revokeDeviceQuery(),{mutate:L}=O.updateDeviceQuery(),R=Intl.DateTimeFormat().resolvedOptions().timeZone||`UTC`,z=p(null),B=p(``),V=p(!1),H=p(!1),U=p(!1),W=p(!0),G=p(!1),K=p(null),q=x({}),J=p(null),Et=v(()=>!!z.value&&JSON.stringify(z.value)!==B.value),Y=v(()=>!!z.value?.enabled),X=v(()=>Ct.value),Dt=v(()=>Q(z.value?.quietHours?.from)),Ot=v(()=>Q(z.value?.quietHours?.to));function Z(e){e&&(z.value=JSON.parse(JSON.stringify(e)),B.value=JSON.stringify(e))}function kt(){Z(N.value)}function At(e){z.value&&(e?z.value.quietHours={from:`22:00`,to:`07:00`,timezone:R}:delete z.value.quietHours)}function Q(e){if(!e)return null;let[t,n]=e.split(`:`).map(Number);if(!Number.isFinite(t)||!Number.isFinite(n))return null;let r=new Date;return r.setHours(t,n,0,0),r}function jt(e){return e?`${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}`:`00:00`}function $(e,t){z.value?.quietHours&&(z.value.quietHours[e]=jt(t))}function Mt(e){return z.value?.systemTypes?.[e]!==!1}function Nt(e,t){z.value&&(z.value.systemTypes||(z.value.systemTypes={}),t?delete z.value.systemTypes[e]:z.value.systemTypes[e]=!1)}function Pt(e){return z.value?.sources?.[e]!==!1}function Ft(e,t){z.value&&(z.value.sources||(z.value.sources={}),t?delete z.value.sources[e]:z.value.sources[e]=!1)}function It(e){let t=`views.settings.notifications.system_types.${e.type.replaceAll(`.`,`_`)}`;return ft(t)?k(t):e.label}function Lt(){z.value&&St({settings:z.value},{onSuccess:e=>Z(e)})}async function Rt(e){if(!(!z.value||!N.value)){V.value=!0;try{Z(await wt({settings:{...N.value,enabled:e}}))}catch(e){A.add({severity:`error`,detail:e,life:3e3})}finally{V.value=!1}}}async function zt(){let e=i(),t=e?await gt(e,P.value):{status:`unknown`};H.value=t.status===`registered`,t.status===`registered`&&t.device&&e&&await _t(e,t.device.id)}async function Bt(){if(!(!j||!M))try{W.value=await M.invoke(`get-desktop-notifications`)}catch{}}async function Vt(e){if(M){G.value=!0;try{W.value=await M.invoke(`set-desktop-notifications`,e)}catch(e){A.add({severity:`error`,detail:e,life:3e3})}finally{G.value=!1}}}async function Ht(){U.value=!0;try{await mt(),await zt(),await O.queryClient.invalidateQueries({queryKey:[`notifications`,`devices`]})}catch(e){A.add({severity:`error`,detail:e,life:3e3})}finally{U.value=!1}}function Ut(e){K.value=e;let t=i();Tt({deviceId:e},{onSuccess:async()=>{t&&await ht(t,e),zt()},onSettled:()=>K.value=null})}function Wt(e){let t=q[e.id];if(t==null)return;let n=t.trim();if(!n||n===e.name){delete q[e.id];return}J.value=e.id,L({deviceId:e.id,patch:{name:n}},{onSuccess:()=>delete q[e.id],onSettled:()=>J.value=null})}function Gt(e,t){J.value=e,L({deviceId:e,patch:{active:t}},{onSettled:()=>J.value=null})}return C(N,Z,{immediate:!0}),C(P,()=>!1,{immediate:!0}),y(()=>{j&&Bt(),yt()}),(r,i)=>{let a=re(`RouterLink`),o=ue,p=ne,_=oe,v=t,y=e,x=ee,C=n,T=le,E=se,de=ce,D=fe,O=pe,k=te;return c(),f(`div`,null,[u(`div`,me,[u(`div`,null,[u(`span`,he,d(r.$t(`views.settings.notifications.general`)),1),S(C,{class:`cui-card`},{content:l(()=>[u(`div`,ge,[u(`span`,_e,d(r.$t(`views.settings.notifications.general_info`)),1),g(vt).notifications===`denied`?(c(),b(o,{key:0,severity:`warn`,size:`small`},{default:l(()=>[h(d(r.$t(`views.settings.notifications.os_permission_denied`))+` `,1),S(a,{to:`/settings/permissions`,class:`underline`},{default:l(()=>[h(d(r.$t(`views.settings.notifications.os_permission_link`)),1)]),_:1})]),_:1})):w(``,!0),g(bt)&&!g(z)?(c(),f(`div`,ve,[S(p,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):g(z)?(c(),f(m,{key:2},[u(`div`,ye,[u(`div`,be,[u(`label`,xe,d(r.$t(`views.settings.notifications.enable`)),1),S(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(r.$t(`views.settings.notifications.enable_info`)),1)]),_:1})]),S(_,{"model-value":g(z).enabled,loading:g(V),class:`ml-auto shrink-0`,"onUpdate:modelValue":Rt},null,8,[`model-value`,`loading`])]),g(!1)&&g(z).enabled?(c(),f(`div`,Se,[u(`div`,Ce,[u(`label`,we,d(r.$t(`views.settings.notifications.this_device`)),1),S(o,{severity:g(H)?`secondary`:`warn`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(g(H)?r.$t(`views.settings.notifications.this_device_synced`):r.$t(`views.settings.notifications.this_device_unsynced`)),1)]),_:1},8,[`severity`])]),S(v,{severity:g(H)?`secondary`:void 0,loading:g(U),class:`cui-button-small ml-auto shrink-0`,label:g(H)?r.$t(`views.settings.notifications.resync`):r.$t(`views.settings.notifications.sync`),onClick:Ht},null,8,[`severity`,`loading`,`label`])])):g(j)&&g(z).enabled?(c(),f(`div`,Te,[u(`div`,Ee,[u(`label`,De,d(r.$t(`views.settings.notifications.this_device`)),1),S(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(r.$t(`views.settings.notifications.this_device_desktop`)),1)]),_:1})]),S(_,{"model-value":g(W),loading:g(G),class:`ml-auto shrink-0`,"onUpdate:modelValue":Vt},null,8,[`model-value`,`loading`])])):w(``,!0),g(z).enabled?(c(),f(`div`,Oe,[u(`div`,ke,[u(`div`,Ae,[u(`label`,je,d(r.$t(`views.settings.notifications.quiet_hours`)),1),S(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(r.$t(`views.settings.notifications.quiet_hours_info`)),1)]),_:1})]),S(_,{"model-value":!!g(z).quietHours,class:`ml-auto shrink-0`,"onUpdate:modelValue":At},null,8,[`model-value`])]),g(z).quietHours?(c(),f(`div`,Me,[u(`div`,Ne,[u(`label`,Pe,d(r.$t(`views.settings.notifications.from`)),1),S(y,{"input-id":`qh-from`,"model-value":g(Dt),"time-only":``,"show-icon":``,"icon-display":`input`,class:`w-full`,"onUpdate:modelValue":i[0]||=e=>$(`from`,e)},null,8,[`model-value`])]),u(`div`,Fe,[u(`label`,Ie,d(r.$t(`views.settings.notifications.to`)),1),S(y,{"input-id":`qh-to`,"model-value":g(Ot),"time-only":``,"show-icon":``,"icon-display":`input`,class:`w-full`,"onUpdate:modelValue":i[1]||=e=>$(`to`,e)},null,8,[`model-value`])]),u(`div`,Le,[u(`label`,Re,d(r.$t(`views.settings.notifications.timezone`)),1),S(x,{id:`qh-tz`,modelValue:g(z).quietHours.timezone,"onUpdate:modelValue":i[2]||=e=>g(z).quietHours.timezone=e,placeholder:g(R)},null,8,[`modelValue`,`placeholder`])])])):w(``,!0)])):w(``,!0)],64)):w(``,!0)])]),_:1})]),g(Y)&&g(pt)?(c(),f(`div`,ze,[u(`span`,Be,d(r.$t(`views.settings.notifications.system_notifications`)),1),S(C,{class:`cui-card`},{content:l(()=>[u(`div`,Ve,[u(`span`,He,d(r.$t(`views.settings.notifications.system_notifications_info`)),1),g(I)&&!g(F)?(c(),f(`div`,Ue,[S(p,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):g(F)?.system?.length?(c(),f(`div`,Ge,[(c(!0),f(m,null,s(g(F).system,(e,t)=>(c(),f(`div`,{key:e.type},[u(`div`,Ke,[u(`div`,qe,[u(`label`,Je,d(It(e)),1),e.description?(c(),b(o,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(e.description),1)]),_:2},1024)):w(``,!0)]),S(_,{"model-value":Mt(e.type),class:`ml-auto shrink-0`,"onUpdate:modelValue":t=>Nt(e.type,t)},null,8,[`model-value`,`onUpdate:modelValue`])]),t<g(F).system.length-1?(c(),b(T,{key:0,class:`my-2`})):w(``,!0)]))),128))])):(c(),f(`div`,We,d(r.$t(`views.settings.notifications.no_system_types`)),1))])]),_:1})])):w(``,!0),g(Y)?(c(),f(`div`,Ye,[u(`span`,Xe,d(r.$t(`views.settings.notifications.plugin_notifications`)),1),S(C,{class:`cui-card`},{content:l(()=>[u(`div`,Ze,[u(`span`,Qe,d(r.$t(`views.settings.notifications.plugin_notifications_info`)),1),g(I)&&!g(F)?(c(),f(`div`,$e,[S(p,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):g(F)?.plugins?.length?(c(),f(`div`,tt,[(c(!0),f(m,null,s(g(F).plugins,(e,t)=>(c(),f(`div`,{key:e.id},[u(`div`,nt,[u(`div`,rt,[u(`label`,it,d(e.name),1)]),S(_,{"model-value":Pt(e.id),class:`ml-auto shrink-0`,"onUpdate:modelValue":t=>Ft(e.id,t)},null,8,[`model-value`,`onUpdate:modelValue`])]),t<g(F).plugins.length-1?(c(),b(T,{key:0,class:`my-2`})):w(``,!0)]))),128))])):(c(),f(`div`,et,d(r.$t(`views.settings.notifications.no_plugin_sources`)),1))])]),_:1})])):w(``,!0),g(Y)?(c(),f(`div`,at,[u(`span`,ot,d(r.$t(`views.settings.notifications.devices`)),1),S(C,{class:`cui-card`},{content:l(()=>[u(`div`,st,[u(`span`,ct,d(r.$t(`views.settings.notifications.devices_info`)),1),g(xt)&&!g(P)?(c(),f(`div`,lt,[S(p,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):g(P)?.length?(c(),b(O,{key:2,value:g(P),"striped-rows":``},{default:l(()=>[S(E,{field:`name`,header:r.$t(`views.settings.notifications.col_name`)},{body:l(({data:e})=>[S(x,{"model-value":g(q)[e.id]??e.name,disabled:g(J)===e.id,class:`w-full max-w-xs min-w-[150px]`,"onUpdate:modelValue":t=>g(q)[e.id]=t??``,onBlur:t=>Wt(e),onKeyup:ie(t=>Wt(e),[`enter`])},null,8,[`model-value`,`disabled`,`onUpdate:modelValue`,`onBlur`,`onKeyup`])]),_:1},8,[`header`]),S(E,{field:`pluginName`,header:r.$t(`views.settings.notifications.col_plugin`)},{body:l(({data:e})=>[S(de,{label:e.pluginName,class:`text-xs`},null,8,[`label`])]),_:1},8,[`header`]),S(E,{field:`active`,header:r.$t(`views.settings.notifications.col_active`),style:{width:`7rem`}},{body:l(({data:e})=>[S(_,{"model-value":e.active,loading:g(J)===e.id,"onUpdate:modelValue":t=>Gt(e.id,t)},null,8,[`model-value`,`loading`,`onUpdate:modelValue`])]),_:1},8,[`header`]),S(E,{field:`actions`,header:``,style:{width:`6rem`}},{body:l(({data:e})=>[ae((c(),b(v,{severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:g(K)===e.id,onClick:t=>Ut(e.id)},{icon:l(()=>[S(D,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[k,{value:r.$t(`views.settings.notifications.revoke`)}]])]),_:1})]),_:1},8,[`value`])):(c(),f(`div`,ut,d(r.$t(`views.settings.notifications.no_devices`)),1))])]),_:1})])):w(``,!0),g(z)&&g(Et)?(c(),f(`div`,dt,[S(v,{severity:`secondary`,outlined:``,class:`cui-button-medium`,disabled:g(X),label:r.$t(`views.settings.notifications.reset`),onClick:kt},null,8,[`disabled`,`label`]),S(v,{severity:`success`,class:`cui-button-medium`,loading:g(X),label:r.$t(`views.settings.notifications.save`),onClick:Lt},null,8,[`loading`,`label`])])):w(``,!0)])])}}});export{O as default};
|
|
1
|
+
import{A as e,Ft as t,H as n,Ir as r,M as ee,Vt as te,jt as ne}from"./vendor-cameraui-0EJfDg8o.js";import{ar as i,hn as a,hr as o}from"./api-py5HP4SF.js";import{Fn as s,Ln as re,Nn as c,Qt as ie,Xn as l,Zn as ae,an as u,br as d,cn as f,cr as p,en as m,fn as h,gr as g,hn as _,in as v,jn as y,on as b,or as x,pn as S,qn as C,sn as w}from"./vendor-BaiDFVEr.js";import{i as T}from"./intercomService-DJHBix4X.js";import{K as oe,S as se,T as ce,U as le,z as ue}from"./vendor-primevue-b9CB9Uh0.js";import{t as E}from"./notifications-DniREnpL.js";import{t as de}from"./usePushRegistration-CGFiyCuv.js";import{t as fe}from"./delete-BF6keuqy.js";import{t as pe}from"./CuiDataTable-wA_LbHH8.js";import{t as D}from"./usePermissions-BiBlyeQl.js";var me={class:`flex flex-col w-full gap-6`},he={class:`card-title`},ge={class:`flex flex-col gap-6`},_e={class:`text-sm`},ve={key:1,class:`flex items-center justify-center py-8`},ye={class:`flex items-center gap-4`},be={class:`flex flex-col field-switch-gap`},xe={class:`cui-label-switch`},Se={key:0,class:`flex items-center gap-4`},Ce={class:`flex flex-col field-switch-gap min-w-0`},we={class:`cui-label-switch`},Te={key:1,class:`flex items-center gap-4`},Ee={class:`flex flex-col field-switch-gap min-w-0`},De={class:`cui-label-switch`},Oe={key:2,class:`flex flex-col gap-2`},ke={class:`flex items-center gap-4`},Ae={class:`flex flex-col field-switch-gap`},je={class:`cui-label-switch`},Me={key:0,class:`grid grid-cols-1 sm:grid-cols-3 gap-3 mt-2`},Ne={class:`flex flex-col field-gap`},Pe={for:`qh-from`,class:`cui-label`},Fe={class:`flex flex-col field-gap`},Ie={for:`qh-to`,class:`cui-label`},Le={class:`flex flex-col field-gap`},Re={for:`qh-tz`,class:`cui-label`},ze={key:0},Be={class:`card-title`},Ve={class:`flex flex-col gap-6`},He={class:`text-sm`},Ue={key:0,class:`flex items-center justify-center py-8`},We={key:1,class:`text-sm text-muted text-center py-8`},Ge={key:2,class:`flex flex-col gap-3`},Ke={class:`flex items-center gap-4`},qe={class:`flex flex-col field-switch-gap`},Je={class:`cui-label-switch`},Ye={key:1},Xe={class:`card-title`},Ze={class:`flex flex-col gap-6`},Qe={class:`text-sm`},$e={key:0,class:`flex items-center justify-center py-8`},et={key:1,class:`text-sm text-muted text-center py-8`},tt={key:2,class:`flex flex-col gap-3`},nt={class:`flex items-center gap-4`},rt={class:`flex flex-col field-switch-gap`},it={class:`cui-label-switch`},at={key:2},ot={class:`card-title`},st={class:`flex flex-col gap-6`},ct={class:`text-sm`},lt={key:0,class:`flex items-center justify-center py-8`},ut={key:1,class:`text-sm text-muted text-center py-8`},dt={key:3,class:`flex justify-end gap-2`},O=_({__name:`SettingsNotifications`,setup(_){let O=new E,{t:k,te:ft}=r(),A=o(),pt=a(void 0,`admin`),{registerForPush:mt,forgetIfThisDevice:ht,getSyncState:gt,restoreMarker:_t}=de(),{isElectronApp:j,electron:M}=T(),{states:vt,refresh:yt}=D(),{data:N,isLoading:bt}=O.getSettingsQuery(),{data:P,isLoading:xt}=O.listDevicesQuery(()=>!0),{data:F,isLoading:I}=O.listSourcesQuery(),{mutate:St,isPending:Ct}=O.setSettingsQuery(),{mutateAsync:wt}=O.setSettingsQuerySilent(),{mutate:Tt}=O.revokeDeviceQuery(),{mutate:L}=O.updateDeviceQuery(),R=Intl.DateTimeFormat().resolvedOptions().timeZone||`UTC`,z=p(null),B=p(``),V=p(!1),H=p(!1),U=p(!1),W=p(!0),G=p(!1),K=p(null),q=x({}),J=p(null),Et=v(()=>!!z.value&&JSON.stringify(z.value)!==B.value),Y=v(()=>!!z.value?.enabled),X=v(()=>Ct.value),Dt=v(()=>Q(z.value?.quietHours?.from)),Ot=v(()=>Q(z.value?.quietHours?.to));function Z(e){e&&(z.value=JSON.parse(JSON.stringify(e)),B.value=JSON.stringify(e))}function kt(){Z(N.value)}function At(e){z.value&&(e?z.value.quietHours={from:`22:00`,to:`07:00`,timezone:R}:delete z.value.quietHours)}function Q(e){if(!e)return null;let[t,n]=e.split(`:`).map(Number);if(!Number.isFinite(t)||!Number.isFinite(n))return null;let r=new Date;return r.setHours(t,n,0,0),r}function jt(e){return e?`${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}`:`00:00`}function $(e,t){z.value?.quietHours&&(z.value.quietHours[e]=jt(t))}function Mt(e){return z.value?.systemTypes?.[e]!==!1}function Nt(e,t){z.value&&(z.value.systemTypes||(z.value.systemTypes={}),t?delete z.value.systemTypes[e]:z.value.systemTypes[e]=!1)}function Pt(e){return z.value?.sources?.[e]!==!1}function Ft(e,t){z.value&&(z.value.sources||(z.value.sources={}),t?delete z.value.sources[e]:z.value.sources[e]=!1)}function It(e){let t=`views.settings.notifications.system_types.${e.type.replaceAll(`.`,`_`)}`;return ft(t)?k(t):e.label}function Lt(){z.value&&St({settings:z.value},{onSuccess:e=>Z(e)})}async function Rt(e){if(!(!z.value||!N.value)){V.value=!0;try{Z(await wt({settings:{...N.value,enabled:e}}))}catch(e){A.add({severity:`error`,detail:e,life:3e3})}finally{V.value=!1}}}async function zt(){let e=i(),t=e?await gt(e,P.value):{status:`unknown`};H.value=t.status===`registered`,t.status===`registered`&&t.device&&e&&await _t(e,t.device.id)}async function Bt(){if(!(!j||!M))try{W.value=await M.invoke(`get-desktop-notifications`)}catch{}}async function Vt(e){if(M){G.value=!0;try{W.value=await M.invoke(`set-desktop-notifications`,e)}catch(e){A.add({severity:`error`,detail:e,life:3e3})}finally{G.value=!1}}}async function Ht(){U.value=!0;try{await mt(),await zt(),await O.queryClient.invalidateQueries({queryKey:[`notifications`,`devices`]})}catch(e){A.add({severity:`error`,detail:e,life:3e3})}finally{U.value=!1}}function Ut(e){K.value=e;let t=i();Tt({deviceId:e},{onSuccess:async()=>{t&&await ht(t,e),zt()},onSettled:()=>K.value=null})}function Wt(e){let t=q[e.id];if(t==null)return;let n=t.trim();if(!n||n===e.name){delete q[e.id];return}J.value=e.id,L({deviceId:e.id,patch:{name:n}},{onSuccess:()=>delete q[e.id],onSettled:()=>J.value=null})}function Gt(e,t){J.value=e,L({deviceId:e,patch:{active:t}},{onSettled:()=>J.value=null})}return C(N,Z,{immediate:!0}),C(P,()=>!1,{immediate:!0}),y(()=>{j&&Bt(),yt()}),(r,i)=>{let a=re(`RouterLink`),o=ue,p=ne,_=oe,v=t,y=e,x=ee,C=n,T=le,E=se,de=ce,D=fe,O=pe,k=te;return c(),f(`div`,null,[u(`div`,me,[u(`div`,null,[u(`span`,he,d(r.$t(`views.settings.notifications.general`)),1),S(C,{class:`cui-card`},{content:l(()=>[u(`div`,ge,[u(`span`,_e,d(r.$t(`views.settings.notifications.general_info`)),1),g(vt).notifications===`denied`?(c(),b(o,{key:0,severity:`warn`,size:`small`},{default:l(()=>[h(d(r.$t(`views.settings.notifications.os_permission_denied`))+` `,1),S(a,{to:`/settings/permissions`,class:`underline`},{default:l(()=>[h(d(r.$t(`views.settings.notifications.os_permission_link`)),1)]),_:1})]),_:1})):w(``,!0),g(bt)&&!g(z)?(c(),f(`div`,ve,[S(p,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):g(z)?(c(),f(m,{key:2},[u(`div`,ye,[u(`div`,be,[u(`label`,xe,d(r.$t(`views.settings.notifications.enable`)),1),S(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(r.$t(`views.settings.notifications.enable_info`)),1)]),_:1})]),S(_,{"model-value":g(z).enabled,loading:g(V),class:`ml-auto shrink-0`,"onUpdate:modelValue":Rt},null,8,[`model-value`,`loading`])]),g(!1)&&g(z).enabled?(c(),f(`div`,Se,[u(`div`,Ce,[u(`label`,we,d(r.$t(`views.settings.notifications.this_device`)),1),S(o,{severity:g(H)?`secondary`:`warn`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(g(H)?r.$t(`views.settings.notifications.this_device_synced`):r.$t(`views.settings.notifications.this_device_unsynced`)),1)]),_:1},8,[`severity`])]),S(v,{severity:g(H)?`secondary`:void 0,loading:g(U),class:`cui-button-small ml-auto shrink-0`,label:g(H)?r.$t(`views.settings.notifications.resync`):r.$t(`views.settings.notifications.sync`),onClick:Ht},null,8,[`severity`,`loading`,`label`])])):g(j)&&g(z).enabled?(c(),f(`div`,Te,[u(`div`,Ee,[u(`label`,De,d(r.$t(`views.settings.notifications.this_device`)),1),S(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(r.$t(`views.settings.notifications.this_device_desktop`)),1)]),_:1})]),S(_,{"model-value":g(W),loading:g(G),class:`ml-auto shrink-0`,"onUpdate:modelValue":Vt},null,8,[`model-value`,`loading`])])):w(``,!0),g(z).enabled?(c(),f(`div`,Oe,[u(`div`,ke,[u(`div`,Ae,[u(`label`,je,d(r.$t(`views.settings.notifications.quiet_hours`)),1),S(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(r.$t(`views.settings.notifications.quiet_hours_info`)),1)]),_:1})]),S(_,{"model-value":!!g(z).quietHours,class:`ml-auto shrink-0`,"onUpdate:modelValue":At},null,8,[`model-value`])]),g(z).quietHours?(c(),f(`div`,Me,[u(`div`,Ne,[u(`label`,Pe,d(r.$t(`views.settings.notifications.from`)),1),S(y,{"input-id":`qh-from`,"model-value":g(Dt),"time-only":``,"show-icon":``,"icon-display":`input`,class:`w-full`,"onUpdate:modelValue":i[0]||=e=>$(`from`,e)},null,8,[`model-value`])]),u(`div`,Fe,[u(`label`,Ie,d(r.$t(`views.settings.notifications.to`)),1),S(y,{"input-id":`qh-to`,"model-value":g(Ot),"time-only":``,"show-icon":``,"icon-display":`input`,class:`w-full`,"onUpdate:modelValue":i[1]||=e=>$(`to`,e)},null,8,[`model-value`])]),u(`div`,Le,[u(`label`,Re,d(r.$t(`views.settings.notifications.timezone`)),1),S(x,{id:`qh-tz`,modelValue:g(z).quietHours.timezone,"onUpdate:modelValue":i[2]||=e=>g(z).quietHours.timezone=e,placeholder:g(R)},null,8,[`modelValue`,`placeholder`])])])):w(``,!0)])):w(``,!0)],64)):w(``,!0)])]),_:1})]),g(Y)&&g(pt)?(c(),f(`div`,ze,[u(`span`,Be,d(r.$t(`views.settings.notifications.system_notifications`)),1),S(C,{class:`cui-card`},{content:l(()=>[u(`div`,Ve,[u(`span`,He,d(r.$t(`views.settings.notifications.system_notifications_info`)),1),g(I)&&!g(F)?(c(),f(`div`,Ue,[S(p,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):g(F)?.system?.length?(c(),f(`div`,Ge,[(c(!0),f(m,null,s(g(F).system,(e,t)=>(c(),f(`div`,{key:e.type},[u(`div`,Ke,[u(`div`,qe,[u(`label`,Je,d(It(e)),1),e.description?(c(),b(o,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(e.description),1)]),_:2},1024)):w(``,!0)]),S(_,{"model-value":Mt(e.type),class:`ml-auto shrink-0`,"onUpdate:modelValue":t=>Nt(e.type,t)},null,8,[`model-value`,`onUpdate:modelValue`])]),t<g(F).system.length-1?(c(),b(T,{key:0,class:`my-2`})):w(``,!0)]))),128))])):(c(),f(`div`,We,d(r.$t(`views.settings.notifications.no_system_types`)),1))])]),_:1})])):w(``,!0),g(Y)?(c(),f(`div`,Ye,[u(`span`,Xe,d(r.$t(`views.settings.notifications.plugin_notifications`)),1),S(C,{class:`cui-card`},{content:l(()=>[u(`div`,Ze,[u(`span`,Qe,d(r.$t(`views.settings.notifications.plugin_notifications_info`)),1),g(I)&&!g(F)?(c(),f(`div`,$e,[S(p,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):g(F)?.plugins?.length?(c(),f(`div`,tt,[(c(!0),f(m,null,s(g(F).plugins,(e,t)=>(c(),f(`div`,{key:e.id},[u(`div`,nt,[u(`div`,rt,[u(`label`,it,d(e.name),1)]),S(_,{"model-value":Pt(e.id),class:`ml-auto shrink-0`,"onUpdate:modelValue":t=>Ft(e.id,t)},null,8,[`model-value`,`onUpdate:modelValue`])]),t<g(F).plugins.length-1?(c(),b(T,{key:0,class:`my-2`})):w(``,!0)]))),128))])):(c(),f(`div`,et,d(r.$t(`views.settings.notifications.no_plugin_sources`)),1))])]),_:1})])):w(``,!0),g(Y)?(c(),f(`div`,at,[u(`span`,ot,d(r.$t(`views.settings.notifications.devices`)),1),S(C,{class:`cui-card`},{content:l(()=>[u(`div`,st,[u(`span`,ct,d(r.$t(`views.settings.notifications.devices_info`)),1),g(xt)&&!g(P)?(c(),f(`div`,lt,[S(p,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):g(P)?.length?(c(),b(O,{key:2,value:g(P),"striped-rows":``},{default:l(()=>[S(E,{field:`name`,header:r.$t(`views.settings.notifications.col_name`)},{body:l(({data:e})=>[S(x,{"model-value":g(q)[e.id]??e.name,disabled:g(J)===e.id,class:`w-full max-w-xs min-w-[150px]`,"onUpdate:modelValue":t=>g(q)[e.id]=t??``,onBlur:t=>Wt(e),onKeyup:ie(t=>Wt(e),[`enter`])},null,8,[`model-value`,`disabled`,`onUpdate:modelValue`,`onBlur`,`onKeyup`])]),_:1},8,[`header`]),S(E,{field:`pluginName`,header:r.$t(`views.settings.notifications.col_plugin`)},{body:l(({data:e})=>[S(de,{label:e.pluginName,class:`text-xs`},null,8,[`label`])]),_:1},8,[`header`]),S(E,{field:`active`,header:r.$t(`views.settings.notifications.col_active`),style:{width:`7rem`}},{body:l(({data:e})=>[S(_,{"model-value":e.active,loading:g(J)===e.id,"onUpdate:modelValue":t=>Gt(e.id,t)},null,8,[`model-value`,`loading`,`onUpdate:modelValue`])]),_:1},8,[`header`]),S(E,{field:`actions`,header:``,style:{width:`6rem`}},{body:l(({data:e})=>[ae((c(),b(v,{severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:g(K)===e.id,onClick:t=>Ut(e.id)},{icon:l(()=>[S(D,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[k,{value:r.$t(`views.settings.notifications.revoke`)}]])]),_:1})]),_:1},8,[`value`])):(c(),f(`div`,ut,d(r.$t(`views.settings.notifications.no_devices`)),1))])]),_:1})])):w(``,!0),g(z)&&g(Et)?(c(),f(`div`,dt,[S(v,{severity:`secondary`,outlined:``,class:`cui-button-medium`,disabled:g(X),label:r.$t(`views.settings.notifications.reset`),onClick:kt},null,8,[`disabled`,`label`]),S(v,{severity:`success`,class:`cui-button-medium`,loading:g(X),label:r.$t(`views.settings.notifications.save`),onClick:Lt},null,8,[`loading`,`label`])])):w(``,!0)])])}}});export{O as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Ft as e,H as t,ei as n}from"./vendor-cameraui-0EJfDg8o.js";import{Fn as r,Nn as i,Xn as a,an as o,br as s,cn as c,cr as l,en as u,fn as d,gr as f,hn as p,jn as m,on as h,pn as g,sn as _}from"./vendor-BaiDFVEr.js";import{a as v,z as y}from"./vendor-primevue-b9CB9Uh0.js";import{t as b}from"./usePermissions-BiBlyeQl.js";var x={class:`flex flex-col w-full gap-6`},S={class:`card-title`},C={class:`flex flex-col gap-6`},w={class:`text-sm`},T={class:`flex flex-col field-switch-gap min-w-0`},E={class:`cui-label-switch`},D={class:`flex items-center gap-2 ml-auto shrink-0`},O=p({__name:`SettingsPermissions`,setup(p){let{states:O,canOpenSettings:k,refresh:A,request:j,openSettings:M}=b(),N=[{name:`microphone`},{name:`location`},{name:`notifications`}],P=l(null);function F(e){return e===`granted`?`success`:e===`denied`?`danger`:e===`prompt`?`warn`:`secondary`}async function I(e){P.value=e;try{await j(e)}finally{P.value=null}}return n(document,`visibilitychange`,()=>{document.visibilityState===`visible`&&A()}),m(()=>{A()}),(n,l)=>{let p=y,m=v,b=e,A=t;return i(),c(`div`,null,[o(`div`,x,[o(`div`,null,[o(`span`,S,s(n.$t(`views.settings.permissions.general`)),1),g(A,{class:`cui-card`},{content:a(()=>[o(`div`,C,[o(`span`,w,s(n.$t(`views.settings.permissions.general_info`)),1),(i(),c(u,null,r(N,e=>o(`div`,{key:e.name,class:`flex items-center gap-4`},[o(`div`,T,[o(`label`,E,s(n.$t(`views.settings.permissions.${e.name}`)),1),g(p,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:a(()=>[d(s(n.$t(`views.settings.permissions.${e.name}_info`)),1)]),_:2},1024),f(O)[e.name]===`denied`&&!f(k)?(i(),h(p,{key:0,severity:`warn`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:a(()=>[d(s(n.$t(`views.settings.permissions.browser_hint`)),1)]),_:1})):_(``,!0)]),o(`div`,D,[g(m,{severity:F(f(O)[e.name]),value:n.$t(`views.settings.permissions.state_${f(O)[e.name]}`)},null,8,[`severity`,`value`]),f(O)[e.name]===`prompt`||f(O)[e.name]===`unknown`?(i(),h(b,{key:0,loading:f(P)===e.name,class:`cui-button-small`,label:n.$t(`views.settings.permissions.request`),onClick:t=>I(e.name)},null,8,[`loading`,`label`,`onClick`])):f(O)[e.name]===`denied`&&f(k)?(i(),h(b,{key:1,severity:`secondary`,class:`cui-button-small`,label:n.$t(`views.settings.permissions.open_settings`),onClick:f(M)},null,8,[`label`,`onClick`])):_(``,!0)])])),64))])]),_:1})])])])}}});export{O as default};
|
package/dist/interface/assets/{SettingsRecordings-COUi9BQg.js → SettingsRecordings-85B2bQIf.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{H as e,Ir as t,Tt as n,_ as r,jt as ee,xt as i}from"./vendor-cameraui-
|
|
1
|
+
import{H as e,Ir as t,Tt as n,_ as r,jt as ee,xt as i}from"./vendor-cameraui-0EJfDg8o.js";import{Wt as a,hr as o}from"./api-py5HP4SF.js";import{Nn as s,Xn as c,an as l,br as u,cn as d,cr as f,fn as p,gr as m,hn as h,in as g,jn as _,on as v,pn as y,qn as b,sn as x}from"./vendor-BaiDFVEr.js";import{z as S}from"./vendor-primevue-b9CB9Uh0.js";import{t as C}from"./CuiSchema-CSFoI6cg.js";import{t as w}from"./alert-outline-GrD7-zHq.js";import{t as te}from"./CuiPluginOAuthButton-vMuRa9Qd.js";var T={class:`flex flex-col w-full gap-6`},E={key:0,class:`cui-banner cui-banner-error`},D={key:1,class:`cui-banner cui-banner-warn`},O={key:2,class:`cui-banner cui-banner-warn`},k={class:`card-title`},A={class:`flex items-center justify-between gap-4`},j={class:`min-w-0`},M={class:`text-sm`},N={class:`text-xs text-muted-color mt-1`},P={key:5},F={class:`card-title`},I={key:0,class:`flex items-center justify-center py-8`},L={key:1,class:`text-sm text-muted text-center py-8`},R=`@camera.ui/camera-ui-nvr`,z=h({__name:`SettingsRecordings`,setup(h){let{t:z}=t(),B=o(),{stats:V,isLoading:H,refresh:U}=r(),{state:W,refresh:G}=i(R),{isConnected:K,isLoading:q,config:J,getConfig:Y,setConfig:X,setValue:Z,submitValue:Q}=n(R),$=f(!1),ne=g(()=>({License:z(`views.settings.recordings.group_info_license`),Storage:z(`views.settings.recordings.group_info_storage`),"Face Recognition":z(`views.settings.recordings.group_info_faces`),GenAI:z(`views.settings.recordings.group_info_genai`),Moments:z(`views.settings.recordings.group_info_moments`),Episodes:z(`views.settings.recordings.group_info_episodes`)})),re=g(()=>{switch(W.value.status){case`connected`:return z(`components.oauth.connected_as`,{email:W.value.userEmail||`—`});case`awaiting_user`:case`polling`:return z(`components.oauth.tooltip_authorizing`);case`error`:return z(`components.oauth.error_generic`);default:return z(`views.settings.recordings.license_disconnected`)}});async function ie(e){try{await Z(e.key,void 0),B.add({severity:`success`,detail:z(`components.toast.config_updated`),life:3e3}),U()}catch(e){B.add({severity:`error`,detail:e,life:3e3})}}async function ae(e){try{let t=await Q(e.key,e.payload);t?.toast?B.add({severity:t.toast.type,detail:t.toast.message,life:3e3}):B.add({severity:`success`,detail:z(`components.toast.config_updated`),life:3e3}),U()}catch(e){B.add({severity:`error`,detail:e,life:3e3})}}async function oe(e){try{await X(e),B.add({severity:`success`,detail:z(`components.toast.config_updated`),life:3e3}),U()}catch(e){B.add({severity:`error`,detail:e,life:3e3})}}return b(K,async e=>{e&&await Y()},{immediate:!0}),_(async()=>{try{await G()}finally{$.value=!0}}),(t,n)=>{let r=a,i=w,o=S,f=e,h=ee;return s(),d(`div`,null,[l(`div`,T,[m(V)&&m(V).paused===!0?(s(),d(`div`,E,[y(r,{class:`shrink-0 w-5 h-5`}),l(`span`,null,u(t.$t(`views.settings.recordings.disk_critical`)),1)])):m(V)&&m(V).diskFreePercent>0&&m(V).diskFreePercent<8?(s(),d(`div`,D,[y(i,{class:`shrink-0 w-5 h-5`}),l(`span`,null,u(t.$t(`views.settings.recordings.disk_warning`)),1)])):x(``,!0),m(V)&&m(V).smallVolume?(s(),d(`div`,O,[y(i,{class:`shrink-0 w-5 h-5`}),l(`span`,null,u(t.$t(`views.settings.recordings.disk_small_volume`)),1)])):x(``,!0),m($)&&m(W).status!==`connected`?(s(),v(o,{key:3,severity:`warn`,size:`small`},{default:c(()=>[p(u(t.$t(`views.settings.recordings.cloud_login_hint`)),1)]),_:1})):x(``,!0),l(`div`,null,[l(`span`,k,u(t.$t(`views.settings.recordings.license_title`)),1),y(f,{class:`cui-card`},{content:c(()=>[l(`div`,A,[l(`div`,j,[l(`p`,M,u(m(re)),1),l(`p`,N,u(t.$t(`views.settings.recordings.license_description`)),1)]),y(te,{"plugin-name":R,class:`flex-shrink-0`})])]),_:1})]),m(J)?(s(),v(C,{key:4,"schema-form":{schema:m(J).schema,config:m(J).config},loading:m(q),"groups-as-cards":``,"group-descriptions":m(ne),onOnAction:ie,onOnSubmit:ae,onOnFormSubmit:oe},null,8,[`schema-form`,`loading`,`group-descriptions`])):(s(),d(`div`,P,[l(`span`,F,u(t.$t(`views.settings.recordings.global_settings`)),1),y(f,{class:`cui-card`},{content:c(()=>[m(H)||m(q)?(s(),d(`div`,I,[y(h,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(s(),d(`div`,L,u(t.$t(`views.settings.recordings.not_available`)),1))]),_:1})]))])])}}});export{z as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Ft as e,H as t,Ir as n,M as r,Vt as ee,jt as te}from"./vendor-cameraui-0EJfDg8o.js";import{Cn as i,Jn as ne,Or as a,Tr as o,gr as s,gt as re,hr as c,ht as l,i as u,lt as ie,o as d,pr as f,qn as ae,st as p,wr as m,xr as oe}from"./api-py5HP4SF.js";import{Fn as h,Nn as g,On as se,U as _,Xn as v,Zn as y,_r as ce,an as b,b as le,br as x,cn as S,cr as C,en as w,fn as T,gr as E,hn as ue,in as D,ir as O,on as k,pn as A,q as de,qn as j,qt as M,rr as fe,sn as N,v as P,wn as pe,y as F,zn as me}from"./vendor-BaiDFVEr.js";import{a as he}from"./intercomService-DJHBix4X.js";import{B as I,V as ge}from"./types-D6IQ6ssc.js";import{K as _e,L as ve,R as ye,a as be,j as xe,l as Se,s as Ce,z as we}from"./vendor-primevue-b9CB9Uh0.js";import{t as Te}from"./server-D2KGja0u.js";import{t as Ee}from"./api-DLVsQBAO.js";import{t as De}from"./information-outline-BQDq8w2t.js";import{t as Oe}from"./CuiQRCode-Dh9EcaVc.js";var ke={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function L(e,t){return g(),S(`svg`,ke,[...t[0]||=[b(`path`,{fill:`currentColor`,d:`M20.454 21.87L17.612 19H6.5q-1.896 0-3.198-1.302T2 14.5q0-1.829 1.226-3.098t2.87-1.368q.018-.373.208-.925q.19-.553.438-.951l-3.88-3.881l.707-.708l17.593 17.593zm.454-3.812L8.78 5.937q.875-.523 1.612-.73T12 5q2.502 0 4.251 1.749T18 11v1h.616q1.436.046 2.41 1.055T22 15.5q0 .687-.25 1.332t-.842 1.226`},null,-1)]])}var Ae=O({name:`material-symbols-light-cloud-off`,render:L}),je={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Me(e,t){return g(),S(`svg`,je,[...t[0]||=[b(`path`,{fill:`currentColor`,d:`m9.55 18l-5.7-5.7l1.425-1.425L9.55 15.15l9.175-9.175L20.15 7.4z`},null,-1)]])}var Ne=O({name:`material-symbols-check`,render:Me}),Pe={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Fe(e,t){return g(),S(`svg`,Pe,[...t[0]||=[b(`path`,{fill:`currentColor`,d:`M20.5 16H15v-1h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v9c0 1.1.9 2 2 2h4v1H3.5c-.83 0-1.5.67-1.5 1.5v3c0 .83.67 1.5 1.5 1.5h17c.83 0 1.5-.67 1.5-1.5v-3c0-.83-.67-1.5-1.5-1.5M5 4h14v9H5zm10 16H5v-2h10zm3 0c-.55 0-1-.45-1-1s.45-1 1-1s1 .45 1 1s-.45 1-1 1`,class:`b`},null,-1)]])}var Ie=O({name:`boxicons-computer-filled`,render:Fe}),Le={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Re(e,t){return g(),S(`svg`,Le,[...t[0]||=[b(`path`,{fill:`currentColor`,d:`M17.9 17.39c-.26-.8-1.01-1.39-1.9-1.39h-1v-3a1 1 0 0 0-1-1H8v-2h2a1 1 0 0 0 1-1V7h2a2 2 0 0 0 2-2v-.41a7.984 7.984 0 0 1 2.9 12.8M11 19.93c-3.95-.49-7-3.85-7-7.93c0-.62.08-1.22.21-1.79L9 15v1a2 2 0 0 0 2 2m1-16A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2`},null,-1)]])}var ze=O({name:`mdi-earth`,render:Re}),Be={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ve(e,t){return g(),S(`svg`,Be,[...t[0]||=[b(`path`,{fill:`currentColor`,d:`M10 2c-1.11 0-2 .89-2 2v3c0 1.11.89 2 2 2h1v2H2v2h4v2H5c-1.11 0-2 .89-2 2v3c0 1.11.89 2 2 2h4c1.11 0 2-.89 2-2v-3c0-1.11-.89-2-2-2H8v-2h8v2h-1c-1.11 0-2 .89-2 2v3c0 1.11.89 2 2 2h4c1.11 0 2-.89 2-2v-3c0-1.11-.89-2-2-2h-1v-2h4v-2h-9V9h1c1.11 0 2-.89 2-2V4c0-1.11-.89-2-2-2zm0 2h4v3h-4zM5 17h4v3H5zm10 0h4v3h-4z`},null,-1)]])}var He=O({name:`mdi-lan`,render:Ve});async function Ue({signal:e}){return(await m.get(`/remote`,{signal:e})).data}async function We(e){return(await m.patch(`/remote`,e)).data}async function Ge(e){return(await m.post(`/remote/pair/init`,e?{name:e}:{})).data}async function Ke({name:e}={}){return(await m.post(`/remote/pair/poll`,e?{name:e}:{})).data}async function qe(){await m.delete(`/remote/unregister`)}async function R({signal:e}){return(await m.get(`/remote/status`,{signal:e})).data}async function Je(e){await m.patch(`/remote/name`,{name:e})}async function Ye({signal:e}){return(await m.get(`/remote/tunnel`,{signal:e})).data}async function Xe({signal:e}={}){return(await m.get(`/remote/connection-info`,{signal:e})).data}async function Ze(e){return(await m.post(`/remote/test/${e}`)).data}async function Qe({signal:e}={}){return(await m.get(`/remote/cloudflare/managed/status`,{signal:e})).data}async function $e(e){await m.post(`/remote/cloudflare/managed/connect`,{hostname:e})}async function et(){await m.post(`/remote/cloudflare/managed/cancel`)}async function tt(){await m.post(`/remote/cloudflare/managed/disconnect`)}async function z(){await m.post(`/remote/cloudflare/managed/logout`)}var nt=class{_queryClient=de();t=s.global.t;toast=c();queryActivator=C([{name:`getRemoteInfoQuery`,enabled:!0},{name:`getRegistrationStatusQuery`,enabled:!0},{name:`getTunnelStatusQuery`,enabled:!0},{name:`getConnectionInfoQuery`,enabled:!0},{name:`getCloudflareManagedStatusQuery`,enabled:!0}]);get queryClient(){return this._queryClient}getRemoteInfoQuery(){return f({queryKey:[`remote`],queryFn:({signal:e})=>Ue({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getRemoteInfoQuery`&&e.enabled),staleTime:1e3})}patchRemoteInfoQuery(){return _({mutationFn:We,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.remote_updated`),life:3e3})}})}getRegistrationStatusQuery(){return f({queryKey:[`remote`,`status`],queryFn:({signal:e})=>R({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getRegistrationStatusQuery`&&e.enabled),staleTime:1e3})}pairInitMutation(){return _({mutationFn:Ge})}pairPollMutation(){return _({mutationFn:Ke,onSuccess:async e=>{e.state===`confirmed`&&(await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`remote`,`status`],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.remote_registered`),life:3e3}))}})}unregisterServerQuery(){return _({mutationFn:qe,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`remote`,`status`],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.remote_unregistered`),life:3e3})}})}getTunnelStatusQuery(){return f({queryKey:[`remote`,`tunnel`],queryFn:({signal:e})=>Ye({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getTunnelStatusQuery`&&e.enabled),refetchInterval:3e4,staleTime:1e4})}updateServerNameQuery(){return _({mutationFn:Je,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`,`status`],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.server_name_updated`),life:3e3})}})}getConnectionInfoQuery(){return f({queryKey:[`remote`,`connection-info`],queryFn:({signal:e})=>Xe({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getConnectionInfoQuery`&&e.enabled),refetchInterval:1e4})}testRemoteModeMutation(){return _({mutationFn:Ze})}getCloudflareManagedStatusQuery(){return f({queryKey:[`remote`,`cloudflare`,`managed`],queryFn:({signal:e})=>Qe({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getCloudflareManagedStatusQuery`&&e.enabled),refetchInterval:e=>{let t=e.state.data?.state;return t===`awaiting_login`||t===`creating_tunnel`||t===`setting_dns`?2e3:!1},refetchOnWindowFocus:!0,staleTime:1e3})}cloudflareManagedConnectMutation(){return _({mutationFn:$e,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedCancelMutation(){return _({mutationFn:et,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedDisconnectMutation(){return _({mutationFn:tt,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedLogoutMutation(){return _({mutationFn:z,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}toggleQueryActivator(e,t){let n=this.queryActivator.value.find(t=>t.name===e);return n&&(n.enabled=t),this}},B={class:`flex flex-col gap-6`},V={class:`flex flex-col field-gap`},H={class:`section-chip`},U={class:`text-sm font-bold text-color`},W={class:`flex flex-col field-gap`},G={class:`section-chip`},rt={class:`text-sm text-color`},K={class:`flex flex-col field-gap`},q={class:`section-chip`},it={key:0,class:`text-sm text-muted`},at={key:1,class:`flex flex-col gap-2`},ot={class:`flex flex-col min-w-0`},J={class:`text-sm text-color`},Y={class:`text-xs text-muted break-all`},st=ue({__name:`ConnectionDetails`,props:{currentType:{},currentAddress:{}},setup(e,{expose:t}){let r=e,ee=new Ee,te=c(),{t:i}=n(),{data:ne}=ee.apiInfoQuery(),s=a()?o():void 0,re=D(()=>s?.attempts.rounds.value[0]),l=D(()=>s?.target.value?.endpoint.url??i(`components.connection_details.no_target`)),ie=D(()=>{let e=s?.target.value?.endpoint.mode;return i(e?e===`direct-lan`?`components.connection_details.mode_lan`:`components.connection_details.mode_wan`:`components.connection_details.no_target`)}),d=D(()=>re.value?.attempts.map(e=>({...e,modeLabel:e.mode===`direct-lan`?i(`components.connection_details.mode_lan`):i(`components.connection_details.mode_wan`)}))??[]);function f(e){return e.outcome===`connected`&&e.url===l.value}function ae(e){return f(e)?`bg-green-500`:e.outcome===`failed`?`bg-red-500`:`bg-neutral-400`}function p(e){return e.durationMs===void 0?`…`:e.durationMs>=1e3?`${(e.durationMs/1e3).toFixed(1)} s`:`${e.durationMs} ms`}function m(e){return f(e)?i(`components.connection_details.outcome_connected`):e.outcome===`connected`?i(`components.connection_details.outcome_reachable`):e.outcome===`superseded`?i(`components.connection_details.outcome_superseded`):e.outcome===`pending`?i(`components.connection_details.outcome_pending`):e.reason?.includes(`timeout`)?i(`components.connection_details.outcome_timeout`):e.reason??i(`components.connection_details.outcome_failed`)}async function oe(){let e=[new Date().toISOString(),`camera.ui ${ne.value?.version??`?`}`,``,`${ie.value}: ${l.value}`,`server sees: ${r.currentType} ${r.currentAddress}`,``];for(let t of d.value)e.push(`${f(t)?`+`:`-`} ${t.modeLabel} ${t.url} ${p(t)} ${m(t)}`);if(re.value?.reason&&e.push(``,re.value.reason),await u(e.join(`
|
|
2
|
+
`))){te.add({severity:`success`,detail:i(`components.connection_details.copied`),life:2e3});return}return te.add({severity:`error`,detail:i(`components.connection_details.copy_failed`),life:3e3}),null}return t({onConfirm:oe}),(t,n)=>{let r=we;return g(),S(`div`,B,[b(`div`,V,[b(`span`,H,x(t.$t(`components.connection_details.current`)),1),b(`span`,U,x(E(ie)),1),A(r,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint break-all`},{default:v(()=>[T(x(E(l)),1)]),_:1})]),b(`div`,W,[b(`span`,G,x(t.$t(`components.connection_details.server_view`)),1),b(`span`,rt,x(e.currentType),1),A(r,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint break-all`},{default:v(()=>[T(x(e.currentAddress),1)]),_:1})]),b(`div`,K,[b(`span`,q,x(t.$t(`components.connection_details.last_attempt`)),1),E(d).length===0?(g(),S(`p`,it,x(t.$t(`components.connection_details.no_attempts`)),1)):(g(),S(`div`,at,[(g(!0),S(w,null,h(E(d),e=>(g(),S(`div`,{key:e.url,class:`flex items-start gap-3`},[b(`span`,{class:ce([`mt-1.5 w-2 h-2 rounded-full shrink-0`,ae(e)])},null,2),b(`div`,ot,[b(`span`,J,[T(x(e.modeLabel)+` `,1),n[0]||=b(`span`,{class:`text-muted`},`·`,-1),T(` `+x(p(e))+` `,1),n[1]||=b(`span`,{class:`text-muted`},`·`,-1),T(` `+x(m(e)),1)]),b(`span`,Y,x(e.url),1)])]))),128))]))])])}}}),ct=ge,lt=I,ut={class:`w-full h-full`},dt={key:0,class:`w-full h-full flex items-center justify-center`},ft={key:1,class:`flex flex-col w-full gap-6`},pt={key:0},mt={class:`card-title`},ht={class:`flex items-center gap-4`},gt={class:`flex flex-col field-switch-gap min-w-0`},_t={class:`text-sm font-bold text-color`},vt={class:`card-title`},yt={class:`flex flex-col gap-6`},bt={class:`flex items-center gap-4`},xt={class:`flex flex-col field-switch-gap`},St={for:`enabled`,class:`cui-label-switch`},Ct={class:`flex flex-col field-gap`},wt={for:`serverName`,class:`cui-label`},Tt={class:`flex items-center gap-4`},Et={class:`flex flex-col field-switch-gap`},Dt={class:`text-sm`},Ot={class:`ml-auto shrink-0`},kt={key:1,class:`text-sm font-bold text-amber-500`},At={key:2,class:`text-sm font-bold`},jt={key:0,class:`flex items-center gap-4`},Mt={class:`flex flex-col field-switch-gap`},Nt={class:`text-sm`},Pt={class:`ml-auto shrink-0`},Ft={key:`pairing`,class:`cui-toggle-switch flex flex-col gap-4`},It={class:`cui-pair-layout`},Lt={class:`cui-pair-qr`},Rt={class:`flex flex-col gap-4 flex-1 min-w-0`},zt={class:`flex flex-col field-gap`},Bt={class:`cui-label`},Vt={class:`flex flex-col field-gap`},Ht={class:`cui-label`},Ut={class:`flex items-center gap-3`},Wt={class:`text-sm`},Gt={class:`flex items-center gap-4`},Kt={class:`flex`},qt={class:`card-title`},Jt={class:`flex flex-col gap-6`},Yt={class:`flex items-center gap-4`},Xt={class:`flex flex-col field-switch-gap`},Zt={for:`directEnabled`,class:`cui-label-switch`},Qt={class:`flex flex-col field-gap`},$t={class:`cui-label`},en={for:`directMode`,class:`cui-label`},tn={key:0,class:`cui-toggle-switch flex flex-col gap-4`},nn={class:`flex flex-col field-gap`},rn={for:`cloudflareVariant`,class:`cui-label`},an={key:0,class:`flex items-center gap-3`},on={class:`flex flex-col field-gap`},sn={for:`cloudflareHostname`,class:`cui-label`},cn={class:`flex flex-col field-gap`},ln={for:`cloudflareToken`,class:`cui-label`},un={class:`flex items-center gap-3`},dn={class:`flex flex-col field-gap`},fn={for:`cloudflareHostnameManaged`,class:`cui-label`},pn={class:`flex items-center gap-3`},mn={key:0,class:`cf-login-setup`},hn={class:`cf-login-qr`},gn={class:`flex flex-col gap-4 flex-1 min-w-0`},_n={class:`flex flex-col field-gap`},vn={class:`cui-label`},yn={class:`flex items-center gap-3`},bn={class:`text-sm`},xn={key:1,class:`flex items-center gap-3`},Sn={class:`text-sm`},Cn={key:2,class:`flex items-center gap-3`},wn={class:`text-sm`},Tn={class:`flex flex-col field-gap`},En={class:`cui-label`},Dn={key:0,class:`flex flex-col field-gap`},On={class:`cui-label`},kn={class:`flex items-center gap-3`},An={key:1,class:`cui-toggle-switch flex flex-col gap-4`},jn={for:`customDomain.url`,class:`cui-label`},Mn={class:`flex items-center gap-3`},Nn={class:`card-title`},Pn={class:`flex flex-col gap-6`},Fn={class:`text-sm`},In={for:`serverAddresses`,class:`cui-label`},Ln={for:`localUrl`,class:`cui-label`},X=i(ue({__name:`SettingsRemote`,setup(i){let a=new Te,o=new nt,s=he(),f=p(),m=c(),{t:h}=n(),{data:_,isBusy:ue}=a.getServerInfoQuery(),{data:O,isBusy:de}=o.getRemoteInfoQuery(),{data:I,isBusy:ge}=o.getRegistrationStatusQuery(),{data:Ee,isLoading:ke}=o.getTunnelStatusQuery(),{data:L}=o.getConnectionInfoQuery(),{mutateAsync:je,isPending:Me}=a.patchSystemInfoQuery(),{mutateAsync:Pe,isPending:Fe}=o.patchRemoteInfoQuery(),{mutateAsync:Le,isPending:Re}=o.pairInitMutation(),{mutateAsync:Be}=o.pairPollMutation(),{mutateAsync:Ve,isPending:Ue}=o.unregisterServerQuery(),{mutateAsync:We,isPending:Ge}=o.updateServerNameQuery(),{mutateAsync:Ke,isPending:qe}=o.testRemoteModeMutation(),{data:R}=o.getCloudflareManagedStatusQuery(),{mutateAsync:Je,isPending:Ye}=o.cloudflareManagedConnectMutation(),{mutateAsync:Xe,isPending:Ze}=o.cloudflareManagedCancelMutation(),{mutateAsync:Qe,isPending:$e}=o.cloudflareManagedDisconnectMutation(),{mutateAsync:et,isPending:tt}=o.cloudflareManagedLogoutMutation(),z=C(),B=C(),V=C(``),H=C(``),U=C(`quick`),W=C(``),G=C(``),rt=C(!1),K=C(null),q=C(``),it=C(null),at=C(2),ot=C(``),J=null,Y=null,X=D(()=>Me.value||Fe.value||ue.value||de.value||ge.value||Ue.value),Rn=D(()=>!!(B.value?.enabled||B.value?.directEnabled)),zn=D(()=>O.value?.directOverride??{active:!1,fallback:!1}),Z=D(()=>I.value?.isRegistered??!1),Bn=D(()=>I.value?.needsReauth??!1),Vn=D(()=>!X.value),Hn=D(()=>{if(!Vn.value)return!1;let e=V.value.trim();return!e||e.length>100?!1:e!==(I.value?.serverName??``)}),Un=D(()=>{if(!B.value)return!1;if(B.value.directMode===`customDomain`){let e=H.value.trim();if(!e)return!1;try{new URL(e)}catch{return!1}return e!==(O.value?.remoteSettings.customDomain.url??``)}if(B.value.directMode===`cloudflare`){let e=O.value?.remoteSettings.cloudflare,t=O.value?.remoteSettings.directMode!==`cloudflare`,n=U.value;if(n===`quick`)return t||e?.mode!==`quick`;let r=W.value.trim();if(!r||!/^[a-z0-9.-]+\.[a-z]{2,}$/i.test(r))return!1;if(n===`token`){let n=G.value.trim();if(!n&&!rt.value)return!1;let ee=n.length>0;return t||e?.mode!==`token`||e?.hostname!==r||ee}return n===`managed`?t||e?.mode!==`managed`||e?.hostname!==r:!1}return B.value.directMode!==O.value?.remoteSettings.directMode}),Wn=D(()=>[{value:`cloudflare`,label:h(`components.form.label.cloudflare`),description:h(`components.form.hint.cloudflare_mode_info`)},{value:`customDomain`,label:h(`components.form.label.custom_domain`),description:h(`components.form.hint.custom_domain_mode_info`)}]),Gn=D(()=>Wn.value.find(e=>e.value===B.value?.directMode)?.description??``),Kn=D(()=>[{value:`quick`,label:h(`components.form.label.cloudflare_variant_quick`),description:h(`components.form.hint.cloudflare_variant_quick`)},{value:`token`,label:h(`components.form.label.cloudflare_variant_token`),description:h(`components.form.hint.cloudflare_variant_token`)},{value:`managed`,label:h(`components.form.label.cloudflare_variant_managed`),description:h(`components.form.hint.cloudflare_variant_managed`)}]),qn=D(()=>Kn.value.find(e=>e.value===U.value)?.description??``),Jn=D(()=>{if(U.value===`quick`)return!0;let e=O.value?.remoteSettings.cloudflare;return e?.mode===U.value&&!!e?.hostname}),Q=D(()=>R.value?.state??`idle`),Yn=D(()=>{if(Q.value!==`idle`)return!1;let e=W.value.trim();return!!e&&/^[a-z0-9.-]+\.[a-z]{2,}$/i.test(e)}),Xn=D(()=>{let e=L.value?.currentConnection.type??`lan`;return h(`views.settings.connection_type.${e}`)}),Zn=D(()=>{let e=L.value?.currentConnection.type;return e===`cloud`?ae:e===`external`?ze:e===`local`?Ie:He}),Qn=D(()=>{let e=L.value?.currentConnection.type;return e===`cloud`?`text-warning`:e===`external`?`text-info`:e===`local`?`text-primary`:`text-success`});function $n(){f.openComponentDialog(st,{data:{title:h(`components.connection_details.title`),confirmText:h(`components.connection_details.copy`),cancelText:h(`components.form.button.close`),contentProps:{currentType:Xn.value,currentAddress:L.value?.currentConnection.address??``}}})}async function er(){let e=V.value.trim();if(e)try{await We(e)}catch{}}function tr(){f.openTextDialog({data:{title:h(`components.dialog.title.unregister_server`),confirmText:h(`components.form.button.unregister`),contentText:h(`components.dialog.message.confirm_unregister_server`),loading:X},onConfirm:async()=>{try{await Ve()}catch{}}})}function nr(){J&&=(clearTimeout(J),null),Y&&=(clearInterval(Y),null)}function $(){nr(),K.value=null,q.value=``,it.value=null,ot.value=``}function rr(e){let t=Math.max(0,Math.floor(e/1e3));return`${Math.floor(t/60)}:${(t%60).toString().padStart(2,`0`)}`}function ir(){Y&&clearInterval(Y);let e=()=>{if(!it.value)return;let e=it.value-Date.now();if(e<=0){$(),m.add({severity:`warn`,detail:h(`components.toast.pair_expired`),life:3e3});return}ot.value=rr(e)};e(),Y=setInterval(e,1e3)}function ar(){J&&clearTimeout(J),J=setTimeout(or,at.value*1e3)}async function or(){if(!K.value)return;let e=K.value;try{let t=await Be({name:V.value.trim()||void 0});if(!K.value||K.value!==e)return;if(t.state===`confirmed`){$();return}if(t.state===`expired`){$(),m.add({severity:`warn`,detail:h(`components.toast.pair_expired`),life:3e3});return}if(t.state===`denied`){$(),m.add({severity:`warn`,detail:h(`components.toast.pair_denied`),life:3e3});return}t.state===`slow_down`&&(at.value=Math.min(at.value+2,10)),ar()}catch(t){if(!K.value||K.value!==e)return;s.error(`pair poll failed:`,t),ar()}}async function sr(){$();try{let e=V.value.trim();if(e&&e!==(I.value?.serverName??``))try{await We(e)}catch{}let t=await Le(e||void 0);K.value=t.userCode,q.value=t.verificationUriComplete,it.value=Date.now()+t.expiresIn*1e3,at.value=Math.max(1,t.pollInterval),ir(),ar()}catch(e){m.add({severity:`error`,detail:e,life:3e3})}}function cr(){$()}async function lr(){if(K.value)try{await u(K.value)}catch{}}async function ur(){if(q.value)try{await u(q.value)}catch{}}function dr(){q.value&&window.open(q.value,`_blank`,`noopener`)}function fr(e){let t=window.location.host===oe||!1,n;n=e?`components.dialog.message.confirm_enable_cloud`:t?`components.dialog.message.confirm_disable_cloud_remote`:`components.dialog.message.confirm_disable_cloud_local`,f.openTextDialog({data:{title:h(`components.dialog.title.confirm`),contentText:h(n),confirmText:h(e?`components.form.button.enable`:`components.form.button.disable`),loading:X,confirmButtonProps:e?void 0:{severity:`danger`}},onConfirm:async()=>{try{await Pe(e?{enabled:!0}:{enabled:!1})}catch{B.value&&(B.value.enabled=!e)}},onCancel:()=>{B.value&&(B.value.enabled=!e)}})}function pr(e){Pe({directEnabled:e}).catch(()=>{B.value&&(B.value.directEnabled=!e)})}function mr(e){B.value&&(B.value.directMode=e)}function hr(e){U.value=e}async function gr(){let e=W.value.trim();if(e)try{await Pe({directMode:`cloudflare`,cloudflare:{mode:`managed`,hostname:e}}),await Je(e)}catch{}}async function _r(){try{await Xe()}catch{}}async function vr(){try{await Qe()}catch{}}async function yr(){try{await et()}catch{}}async function br(e){try{await u(e)}catch{}}function xr(e){window.open(e,`_blank`,`noopener`)}async function Sr(e){try{let t=await Ke(e);t.ok?m.add({severity:`success`,detail:h(`components.toast.remote_test_success`),life:3e3}):m.add({severity:`error`,detail:h(`components.toast.remote_test_failed`,{message:t.message??``}),life:5e3})}catch(e){m.add({severity:`error`,detail:h(`components.toast.remote_test_failed`,{message:e?.message??``}),life:5e3})}}async function Cr(e){let t={directMode:e.directMode};if(e.directMode===`customDomain`)t.customDomain={url:H.value.trim()};else if(e.directMode===`cloudflare`){let e=U.value;if(e===`quick`)t.cloudflare={mode:`quick`,hostname:null,token:null};else if(e===`token`){let e=G.value.trim();t.cloudflare={mode:`token`,hostname:W.value.trim(),...e?{token:e}:{}}}else e===`managed`&&(t.cloudflare={mode:`managed`,hostname:W.value.trim(),token:null})}try{await Pe(t)}catch{}}async function wr(e){try{await je(e)}catch{}}return j(()=>I.value?.serverName,e=>{e&&(V.value=e)},{immediate:!0}),j(Z,e=>{e&&K.value&&$()}),j(_,e=>{if(e){let t=d(e);z.value={...t,serverAddresses:(t.serverAddresses||[]).filter(Boolean),localUrl:t.localUrl??``}}},{deep:!0,immediate:!0}),j(O,e=>{if(e){let t=d(e);B.value={...t.remoteSettings},H.value=t.remoteSettings.customDomain.url??``;let n=t.remoteSettings.cloudflare;U.value=n?.mode??`quick`,W.value=n?.hostname??``,G.value=``,rt.value=t.cloudflareTokenSet??!1}},{deep:!0,immediate:!0}),se(()=>{nr()}),(n,i)=>{let a=te,o=we,s=De,c=e,u=t,d=_e,f=r,ae=Ne,p=ve,m=ye,oe=be,h=Oe,se=re,C=ne,ue=Ae,D=xe,O=Ce,de=Se,j=ee;return g(),S(`div`,ut,[!E(z)||!E(B)?(g(),S(`div`,dt,[A(a,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(g(),S(`div`,ft,[E(L)?(g(),S(`div`,pt,[b(`span`,mt,x(n.$t(`views.settings.connection_status`)),1),A(u,{class:`cui-card`},{content:v(()=>[b(`div`,ht,[(g(),k(me(E(Zn)),{class:ce([`shrink-0 w-6 h-6`,E(Qn)])},null,8,[`class`])),b(`div`,gt,[b(`span`,_t,x(E(Xn)),1),A(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:v(()=>[T(x(E(L).currentConnection.address),1)]),_:1})]),y((g(),k(c,{rounded:``,text:``,severity:`secondary`,class:`ml-auto shrink-0`,"aria-label":n.$t(`components.connection_details.title`),onClick:$n},{icon:v(()=>[A(s,{class:`w-5 h-5`})]),_:1},8,[`aria-label`])),[[j,{value:n.$t(`components.connection_details.title`)},void 0,{left:!0}]])])]),_:1})])):N(``,!0),A(E(le),{ref:`remoteFormRef`,class:`flex flex-col w-full gap-6`,"validation-schema":E(ct),onSubmit:i[18]||=e=>Cr(e)},{default:v(()=>[b(`div`,null,[b(`span`,vt,x(n.$t(`views.settings.cloud`)),1),A(u,{class:`cui-card`},{content:v(()=>[b(`div`,yt,[A(E(F),{"model-value":E(B).enabled,value:!0,"unchecked-value":!1,type:`checkbox`,name:`enabled`,as:`div`,class:`flex flex-col field-gap cui-toggle-switch`},{default:v(({field:e,errors:t})=>[b(`div`,bt,[b(`div`,xt,[b(`label`,St,x(n.$t(`components.form.label.enabled`)),1),A(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:v(()=>[T(x(n.$t(`components.form.hint.cloud_access_enabled_info`)),1)]),_:1}),A(M,{name:`fade`},{default:v(()=>[A(E(P),{name:`enabled`,class:`cui-input-switch-error`})]),_:1})]),A(d,pe({"model-value":E(B).enabled},e,{invalid:t.length>0,loading:E(X),class:`ml-auto shrink-0`,onValueChange:i[0]||=e=>E(B).enabled=e,"onUpdate:modelValue":i[1]||=e=>fr(e)}),null,16,[`model-value`,`invalid`,`loading`])])]),_:1},8,[`model-value`]),b(`div`,Ct,[b(`label`,wt,x(n.$t(`views.settings.server_name_label`)),1),A(m,null,{default:v(()=>[A(f,{id:`serverName`,modelValue:E(V),"onUpdate:modelValue":i[2]||=e=>fe(V)?V.value=e:null,modelModifiers:{trim:!0},disabled:!E(Vn),loading:E(X),type:`text`,maxlength:100},null,8,[`modelValue`,`disabled`,`loading`]),A(p,null,{default:v(()=>[y((g(),k(c,{text:``,severity:`secondary`,loading:E(Ge),disabled:!E(Hn),type:`button`,onClick:er},{icon:v(()=>[A(ae)]),_:1},8,[`loading`,`disabled`])),[[j,{value:n.$t(`components.form.button.save`)}]])]),_:1})]),_:1}),A(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:v(()=>[T(x(n.$t(`views.settings.server_name_info`)),1)]),_:1})]),b(`div`,Tt,[b(`div`,Et,[b(`span`,Dt,x(n.$t(`views.settings.status`)),1),A(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:v(()=>[T(x(n.$t(`views.settings.status_info`)),1)]),_:1})]),b(`div`,Ot,[E(X)?(g(),k(a,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):E(Bn)?(g(),S(`span`,kt,x(n.$t(`views.settings.needs_reauth`)),1)):(g(),S(`span`,At,x(E(Z)?n.$t(`views.settings.registered`):n.$t(`views.settings.not_registered`)),1))])]),E(Z)?(g(),S(`div`,jt,[b(`div`,Mt,[b(`span`,Nt,x(n.$t(`views.settings.tunnel_status`)),1),A(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:v(()=>[T(x(n.$t(`views.settings.tunnel_status_info`)),1)]),_:1})]),b(`div`,Pt,[E(ke)?(g(),k(a,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):(g(),k(oe,{key:1,severity:E(Ee)?.connected?`success`:`secondary`,value:E(Ee)?.connected?n.$t(`views.settings.tunnel_connected`):n.$t(`views.settings.tunnel_disconnected`)},null,8,[`severity`,`value`]))])])):N(``,!0),A(M,{name:`fade`,mode:`out-in`},{default:v(()=>[E(K)?(g(),S(`div`,Ft,[A(o,{severity:`error`,variant:`simple`,size:`small`,class:`text-primary`},{default:v(()=>[T(x(n.$t(`views.settings.pair_instructions`)),1)]),_:1}),b(`div`,It,[b(`div`,Lt,[A(h,{value:E(q),size:180,"logo-size":36},null,8,[`value`])]),b(`div`,Rt,[b(`div`,zt,[b(`label`,Bt,x(n.$t(`views.settings.pair_code`)),1),A(m,null,{default:v(()=>[A(f,{"model-value":E(K),readonly:``,class:`font-mono text-lg text-center tracking-widest`},null,8,[`model-value`]),A(p,null,{default:v(()=>[A(se,{"action-text":n.$t(`components.form.tooltip.copied`),icon:E(l),"button-props":{severity:`secondary`,text:!0},onAction:lr},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),A(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:v(()=>[T(x(n.$t(`views.settings.pair_code_hint`)),1)]),_:1})]),b(`div`,Vt,[b(`label`,Ht,x(n.$t(`views.settings.pair_url`)),1),A(m,null,{default:v(()=>[A(f,{"model-value":E(q),readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),A(p,null,{default:v(()=>[A(se,{"action-text":n.$t(`components.form.tooltip.copied`),icon:E(l),"button-props":{severity:`secondary`,text:!0},onAction:ur},null,8,[`action-text`,`icon`])]),_:1}),A(p,null,{default:v(()=>[y((g(),k(c,{type:`button`,severity:`secondary`,text:``,onClick:dr},{icon:v(()=>[A(E(ie))]),_:1})),[[j,{value:n.$t(`components.form.button.open_in_browser`)}]])]),_:1})]),_:1})]),b(`div`,Ut,[A(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),b(`span`,Wt,x(n.$t(`views.settings.pair_waiting`,{remaining:E(ot)})),1),A(c,{type:`button`,severity:`secondary`,class:`cui-button-small ml-auto`,label:n.$t(`components.form.button.cancel`),onClick:cr},null,8,[`label`])])])])])):N(``,!0)]),_:1}),b(`div`,Gt,[b(`div`,Kt,[y((g(),k(c,{severity:`secondary`,rounded:``,class:`cui-icon-lg text-color`,disabled:!E(Z),onClick:i[3]||=e=>n.$router.absUrl(E(`https://cloud.cameraui.com`),!0)},{icon:v(()=>[E(Z)?(g(),k(C,{key:0,width:`100%`,height:`100%`})):(g(),k(ue,{key:1,width:`100%`,height:`100%`}))]),_:1},8,[`disabled`])),[[j,{value:E(Z)?n.$t(`views.settings.registered`):n.$t(`views.settings.not_registered`)}]])]),i[22]||=b(`div`,{class:`ml-auto`},null,-1),!E(Z)&&!E(K)?(g(),k(c,{key:0,loading:E(Re),class:`cui-button-medium`,label:n.$t(`components.form.button.register_server`),onClick:sr},null,8,[`loading`,`label`])):N(``,!0),E(Bn)&&!E(K)?(g(),k(c,{key:1,loading:E(Re),severity:`warn`,class:`cui-button-medium`,label:n.$t(`components.form.button.reconnect_server`),onClick:sr},null,8,[`loading`,`label`])):N(``,!0),E(Z)?(g(),k(c,{key:2,loading:E(X),severity:E(Bn)?`secondary`:void 0,text:E(Bn),class:`cui-button-medium`,label:n.$t(`components.form.button.unregister_server`),onClick:tr},null,8,[`loading`,`severity`,`text`,`label`])):N(``,!0)])])]),_:1})]),b(`div`,null,[b(`span`,qt,x(n.$t(`views.settings.direct_connection`)),1),A(u,{class:`cui-card`},{content:v(()=>[b(`div`,Jt,[A(E(F),{"model-value":E(B).directEnabled,value:!0,"unchecked-value":!1,type:`checkbox`,name:`directEnabled`,as:`div`,class:`flex flex-col field-gap cui-toggle-switch`},{default:v(({field:e,errors:t})=>[b(`div`,Yt,[b(`div`,Xt,[b(`label`,Zt,x(n.$t(`components.form.label.enabled`)),1),A(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:v(()=>[T(x(n.$t(`views.settings.direct_connection_info`)),1)]),_:1}),A(M,{name:`fade`},{default:v(()=>[A(E(P),{name:`directEnabled`,class:`cui-input-switch-error`})]),_:1})]),A(d,pe({"model-value":E(Rn)},e,{invalid:t.length>0,loading:E(X),disabled:E(B).enabled,class:`ml-auto shrink-0`,onValueChange:i[4]||=e=>E(B).directEnabled=e,"onUpdate:modelValue":i[5]||=e=>pr(e)}),null,16,[`model-value`,`invalid`,`loading`,`disabled`])]),A(M,{name:`fade`},{default:v(()=>[E(zn).active?(g(),k(o,{key:0,variant:`simple`,size:`small`,class:`cui-input-switch-hint text-primary`},{default:v(()=>[T(x(E(zn).fallback?n.$t(`views.settings.direct_override_fallback`):n.$t(`views.settings.direct_override_active`)),1)]),_:1})):N(``,!0)]),_:1})]),_:1},8,[`model-value`]),E(Rn)?(g(),S(w,{key:0},[b(`div`,Qt,[b(`label`,$t,x(n.$t(`views.settings.external_url`)),1),A(f,{readonly:``,type:`text`,value:E(L)?.externalUrl??n.$t(`components.form.label.disconnected`)},null,8,[`value`]),A(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:v(()=>[T(x(n.$t(`views.settings.external_url_info`)),1)]),_:1})]),A(E(F),{"model-value":E(B).directMode,name:`directMode`,as:`div`,class:`flex flex-col field-gap`},{default:v(({errors:e})=>[b(`label`,en,x(n.$t(`views.settings.connection_method`)),1),A(D,{"model-value":E(B).directMode,options:E(Wn),"option-label":`label`,"option-value":`value`,invalid:e.length>0,loading:E(X),"onUpdate:modelValue":i[6]||=e=>mr(e)},null,8,[`model-value`,`options`,`invalid`,`loading`]),A(M,{name:`fade`},{default:v(()=>[A(E(P),{name:`directMode`,class:`cui-input-error`})]),_:1}),A(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:v(()=>[T(x(E(Gn)),1)]),_:1})]),_:1},8,[`model-value`]),E(B).directMode===`cloudflare`?(g(),S(`div`,tn,[b(`div`,nn,[b(`label`,rn,x(n.$t(`components.form.label.cloudflare_variant`)),1),A(D,{"model-value":E(U),options:E(Kn),"option-label":`label`,"option-value":`value`,loading:E(X),"onUpdate:modelValue":i[7]||=e=>hr(e)},null,8,[`model-value`,`options`,`loading`]),A(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:v(()=>[T(x(E(qn)),1)]),_:1})]),E(U)===`quick`?(g(),S(`div`,an,[A(c,{type:`button`,severity:`secondary`,loading:E(qe),class:`cui-button-small`,label:n.$t(`components.form.button.test_connection`),onClick:i[8]||=e=>Sr(`cloudflare`)},null,8,[`loading`,`label`])])):E(U)===`token`?(g(),S(w,{key:1},[b(`div`,on,[b(`label`,sn,x(n.$t(`components.form.label.hostname`)),1),A(f,{id:`cloudflareHostname`,modelValue:E(W),"onUpdate:modelValue":i[9]||=e=>fe(W)?W.value=e:null,modelModifiers:{trim:!0},loading:E(X),type:`text`,placeholder:`nvr.example.com`,maxlength:253},null,8,[`modelValue`,`loading`]),A(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:v(()=>[T(x(n.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),b(`div`,cn,[b(`label`,ln,x(n.$t(`components.form.label.tunnel_token`)),1),A(O,{id:`cloudflareToken`,modelValue:E(G),"onUpdate:modelValue":i[10]||=e=>fe(G)?G.value=e:null,modelModifiers:{trim:!0},loading:E(X),feedback:!1,"toggle-mask":``,fluid:``,placeholder:E(rt)?`••••••••••••`:`eyJ...`},null,8,[`modelValue`,`loading`,`placeholder`]),A(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:v(()=>[T(x(E(rt)?n.$t(`components.form.hint.cloudflare_token_already_set`):n.$t(`components.form.hint.cloudflare_token_info`)),1)]),_:1})]),b(`div`,un,[A(c,{type:`button`,severity:`secondary`,loading:E(qe),disabled:!E(Jn),class:`cui-button-small`,label:n.$t(`components.form.button.test_connection`),onClick:i[11]||=e=>Sr(`cloudflare`)},null,8,[`loading`,`disabled`,`label`])])],64)):E(U)===`managed`?(g(),k(M,{key:2,name:`fade`,mode:`out-in`},{default:v(()=>[(g(),S(`div`,{key:E(Q),class:`flex flex-col gap-4`},[E(Q)===`idle`?(g(),S(w,{key:0},[b(`div`,dn,[b(`label`,fn,x(n.$t(`components.form.label.hostname`)),1),A(f,{id:`cloudflareHostnameManaged`,modelValue:E(W),"onUpdate:modelValue":i[12]||=e=>fe(W)?W.value=e:null,modelModifiers:{trim:!0},loading:E(X),type:`text`,placeholder:`nvr.example.com`,maxlength:253},null,8,[`modelValue`,`loading`]),A(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:v(()=>[T(x(n.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),E(R)?.lastError?(g(),k(o,{key:0,severity:`error`,variant:`simple`,size:`small`},{default:v(()=>[T(x(E(R).lastError),1)]),_:1})):N(``,!0),b(`div`,pn,[A(c,{type:`button`,loading:E(Ye),disabled:!E(Yn),class:`cui-button-medium`,label:n.$t(`components.form.button.connect_cloudflare`),onClick:gr},null,8,[`loading`,`disabled`,`label`])])],64)):E(Q)===`awaiting_login`?(g(),S(w,{key:1},[E(R)?.loginUrl?(g(),S(`div`,mn,[b(`div`,hn,[A(h,{value:E(R).loginUrl,size:160,"logo-size":32},null,8,[`value`])]),b(`div`,gn,[A(o,{variant:`simple`,size:`small`,class:`text-primary`},{default:v(()=>[T(x(n.$t(`components.form.hint.cloudflare_managed_awaiting_login`,{hostname:E(W)})),1)]),_:1}),b(`div`,_n,[b(`label`,vn,x(n.$t(`components.form.label.cloudflare_url`)),1),A(m,null,{default:v(()=>[A(f,{"model-value":E(R).loginUrl,readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),A(p,null,{default:v(()=>[A(se,{"action-text":n.$t(`components.form.tooltip.copied`),icon:E(l),"button-props":{severity:`secondary`,text:!0},onAction:i[13]||=e=>br(E(R).loginUrl)},null,8,[`action-text`,`icon`])]),_:1}),A(p,null,{default:v(()=>[y((g(),k(c,{type:`button`,severity:`secondary`,text:``,onClick:i[14]||=e=>xr(E(R).loginUrl)},{icon:v(()=>[A(E(ie))]),_:1})),[[j,{value:n.$t(`components.form.button.open_in_browser`)}]])]),_:1})]),_:1})]),b(`div`,yn,[A(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),b(`span`,bn,x(n.$t(`views.settings.cloudflare_login_waiting`)),1),A(c,{type:`button`,severity:`secondary`,loading:E(Ze),class:`cui-button-small ml-auto`,label:n.$t(`components.form.button.cancel`),onClick:_r},null,8,[`loading`,`label`])])])])):(g(),S(`div`,xn,[A(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),b(`span`,Sn,x(n.$t(`views.settings.cloudflare_login_waiting`)),1),A(c,{type:`button`,severity:`secondary`,loading:E(Ze),class:`cui-button-small ml-auto`,label:n.$t(`components.form.button.cancel`),onClick:_r},null,8,[`loading`,`label`])]))],64)):E(Q)===`creating_tunnel`||E(Q)===`setting_dns`?(g(),S(`div`,Cn,[A(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),b(`span`,wn,x(E(Q)===`creating_tunnel`?n.$t(`components.form.hint.cloudflare_managed_creating_tunnel`):n.$t(`components.form.hint.cloudflare_managed_setting_dns`,{hostname:E(W)})),1),A(c,{type:`button`,severity:`secondary`,loading:E(Ze),class:`cui-button-small ml-auto`,label:n.$t(`components.form.button.cancel`),onClick:_r},null,8,[`loading`,`label`])])):E(Q)===`running`?(g(),S(w,{key:3},[b(`div`,Tn,[b(`label`,En,x(n.$t(`components.form.label.hostname`)),1),A(f,{readonly:``,value:`https://${E(R)?.hostname??``}`,type:`text`},null,8,[`value`]),A(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:v(()=>[T(x(n.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),E(R)?.tunnelId?(g(),S(`div`,Dn,[b(`label`,On,x(n.$t(`components.form.label.tunnel_id`)),1),A(f,{readonly:``,value:E(R).tunnelId,type:`text`},null,8,[`value`]),A(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:v(()=>[T(x(n.$t(`components.form.hint.cloudflare_tunnel_id_info`)),1)]),_:1})])):N(``,!0),b(`div`,kn,[A(c,{type:`button`,severity:`secondary`,loading:E(qe),class:`cui-button-small`,label:n.$t(`components.form.button.test_connection`),onClick:i[15]||=e=>Sr(`cloudflare`)},null,8,[`loading`,`label`]),A(c,{type:`button`,severity:`secondary`,loading:E($e),class:`cui-button-small ml-auto`,label:n.$t(`components.form.button.disconnect`),onClick:vr},null,8,[`loading`,`label`]),A(c,{type:`button`,severity:`danger`,loading:E(tt),class:`cui-button-small`,label:n.$t(`components.form.button.logout`),onClick:yr},null,8,[`loading`,`label`])])],64)):N(``,!0)]))]),_:1})):N(``,!0)])):E(B).directMode===`customDomain`?(g(),S(`div`,An,[A(E(F),{modelValue:E(H),"onUpdate:modelValue":i[16]||=e=>fe(H)?H.value=e:null,modelModifiers:{trim:!0},loading:E(X),name:`customDomain.url`,as:`div`,class:`flex flex-col field-gap`},{default:v(({field:e,errors:t})=>[b(`label`,jn,x(n.$t(`components.form.label.url`)),1),A(f,pe(e,{invalid:t.length>0,loading:E(X),type:`text`,placeholder:`https://my.example.com`}),null,16,[`invalid`,`loading`]),A(M,{name:`fade`},{default:v(()=>[A(E(P),{name:`customDomain.url`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`,`loading`]),b(`div`,Mn,[A(c,{type:`button`,severity:`secondary`,loading:E(qe),disabled:!E(H),class:`cui-button-small`,label:n.$t(`components.form.button.test_connection`),onClick:i[17]||=e=>Sr(`customDomain`)},null,8,[`loading`,`disabled`,`label`])])])):N(``,!0),A(c,{type:`submit`,loading:E(X),disabled:!E(Un),class:`cui-button-medium ml-auto`,label:n.$t(`components.form.button.save`)},null,8,[`loading`,`disabled`,`label`])],64)):N(``,!0)])]),_:1})])]),_:1},8,[`validation-schema`]),A(E(le),{ref:`serverFormRef`,class:`flex flex-col w-full gap-6`,"validation-schema":E(lt),onSubmit:i[21]||=e=>wr(e)},{default:v(()=>[b(`div`,null,[b(`span`,Nn,x(n.$t(`views.settings.network`)),1),A(u,{class:`cui-card`},{content:v(()=>[b(`div`,Pn,[b(`span`,Fn,x(n.$t(`views.settings.network_info`)),1),A(E(F),{"model-value":E(z).serverAddresses,name:`serverAddresses`,as:`div`,class:`flex flex-col field-gap`},{default:v(({field:e,errors:t})=>[b(`label`,In,x(n.$t(`components.form.label.server_addresses`)),1),A(m,null,{default:v(()=>[A(de,pe(e,{"model-value":E(z).serverAddresses,options:E(_)?.availableAddresses||[],invalid:t.length>0,loading:E(X),"max-selected-labels":2,"show-toggle-all":!1,"show-clear":``,"option-label":`address`,"option-value":`address`,type:`text`,display:`chip`,onValueChange:i[19]||=e=>E(z).serverAddresses=e}),null,16,[`model-value`,`options`,`invalid`,`loading`])]),_:2},1024),A(M,{name:`fade`},{default:v(()=>[A(E(P),{name:`serverAddresses`,class:`cui-input-error`})]),_:1}),t.length?N(``,!0):(g(),k(o,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:v(()=>[T(x(n.$t(`components.form.hint.server_addresses`)),1)]),_:1}))]),_:1},8,[`model-value`]),A(E(F),{"model-value":E(z).localUrl,name:`localUrl`,as:`div`,class:`flex flex-col field-gap`},{default:v(({field:e,errors:t})=>[b(`label`,Ln,x(n.$t(`components.form.label.local_url`)),1),A(m,null,{default:v(()=>[A(f,pe(e,{"model-value":E(z).localUrl,invalid:t.length>0,loading:E(X),placeholder:`https://camera.home.lan`,onValueChange:i[20]||=e=>E(z).localUrl=e}),null,16,[`model-value`,`invalid`,`loading`])]),_:2},1024),A(M,{name:`fade`},{default:v(()=>[A(E(P),{name:`localUrl`,class:`cui-input-error`})]),_:1}),t.length?N(``,!0):(g(),k(o,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:v(()=>[T(x(n.$t(`components.form.hint.local_url`)),1)]),_:1}))]),_:1},8,[`model-value`]),A(c,{type:`submit`,loading:E(X),class:`cui-button-medium ml-auto`,label:n.$t(`components.form.button.save`)},null,8,[`loading`,`label`])])]),_:1})])]),_:1},8,[`validation-schema`])]))])}}}),[[`__scopeId`,`data-v-d03787bc`]]);export{X as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.cf-login-setup[data-v-d03787bc],.cui-pair-layout[data-v-d03787bc]{flex-direction:column;gap:1.5rem;display:flex}@media (width>=768px){.cf-login-setup[data-v-d03787bc],.cui-pair-layout[data-v-d03787bc]{flex-direction:row;align-items:flex-start;gap:2rem}}.cf-login-qr[data-v-d03787bc],.cui-pair-qr[data-v-d03787bc]{flex-direction:column;flex-shrink:0;align-items:center;display:flex}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./VersionsHandler-BFuLGk6Y.js","./vendor-cameraui-0EJfDg8o.js","./rolldown-runtime-C0FnF6B9.js","./vendor-BaiDFVEr.js","./api-py5HP4SF.js","./intercomService-DJHBix4X.js","./vendor-zod-Dbq0fBXY.js","./types-D6IQ6ssc.js","./lightbulb-outline-ClK17CO6.js","./vendor-core-RnPzfwaA.js","./vendor-primevue-b9CB9Uh0.js","./vendor-dnd-ChrDrMuz.js","./close-BNAWPz0y.js","./vendor-draggabilly-DSeIE_bQ.js","./api-daCggwpn.css","./server-D2KGja0u.js","./useServerRestart-CjPAgzoX.js","./plugins-5gXj0utE.js","./CuiConsole-CqEvNGe_.js","./content-copy-CLkJTA4w.js","./vendor-xterm-BafMBqaV.js","./vendor-xterm-BrP-ENHg.css","./CuiConsole-CoA-Nq-_.css","./useLogsSocket-BLV7dWSG.js","./CuiMarkdownContent-PSq4kE1G.js","./vendor-markdown-Bw_90xkF.js","./vendor-markdown-DtOhvyRx.css","./alert-circle-C2AU59aR.js","./platformLabels-D-cF6OTP.js","./config-B1aWtF-N.js","./useUpdateChannel-F4WpbMJR.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{Ft as e,H as t,Ir as n,jt as r}from"./vendor-cameraui-0EJfDg8o.js";import{_r as i,ct as a,g as ee,hn as te,st as o,xn as s}from"./api-py5HP4SF.js";import{Nn as c,On as l,Rt as ne,Xn as u,an as d,br as f,cn as p,cr as m,en as re,fn as h,gr as g,hn as ie,in as _,jn as ae,on as v,pn as y,qn as b,sn as x,t as S}from"./vendor-BaiDFVEr.js";import{a as oe,i as se}from"./intercomService-DJHBix4X.js";import{K as ce,z as le}from"./vendor-primevue-b9CB9Uh0.js";import{r as ue,t as de}from"./server-D2KGja0u.js";import{n as fe}from"./useServerRestart-CjPAgzoX.js";import{n as pe,t as me}from"./api-DLVsQBAO.js";import{t as he}from"./useUpdateChannel-F4WpbMJR.js";import{t as ge}from"./useAppVersion-9zH_FspP.js";var _e={class:`flex flex-col w-full gap-6`},ve={key:0},ye={class:`flex items-center gap-4`},be={class:`flex flex-col field-switch-gap`},xe={for:`betaChannel`,class:`cui-label-switch`},Se={class:`flex flex-col gap-6`},Ce={key:0,class:`flex flex-row items-center justify-between`},we={class:`text-sm`},Te={key:1,class:`text-sm font-bold`},Ee={key:1,class:`flex flex-row items-center justify-between`},De={class:`text-sm`},Oe={class:`text-sm font-bold`},ke={key:0,class:`text-muted font-normal`},Ae={class:`flex flex-row items-center justify-between`},je={class:`text-sm`},Me={key:1,class:`text-sm font-bold`},Ne={key:2,class:`flex w-full items-center gap-2`},Pe={key:1},Fe={class:`card-title`},Ie={class:`flex flex-col gap-6`},Le={class:`text-sm`},Re={class:`card-title`},ze={class:`flex flex-col gap-6`},Be={class:`text-sm`},Ve={key:2},He={class:`card-title`},Ue={class:`flex flex-col gap-6`},We={class:`text-sm`},C=ie({__name:`SettingsSystem`,setup(ie){let C=a(()=>ne(()=>import(`./VersionsHandler-BFuLGk6Y.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]),import.meta.url)),w=new me,T=new de,E=oe(),D=o(),{t:O}=n(),{isElectronApp:k,electron:A}=se(),{isOnline:j}=i(),{restarting:M,beginServerRestart:Ge}=fe(),{isBeta:N,setBeta:Ke}=he(),{appVersion:P,nativeVersion:F,refreshAppVersion:qe}=ge(),Je=ee();T.toggleQueryActivator(`checkVersionQuery`,!1);let{data:I,isBusy:Ye}=w.apiInfoQuery(),{data:L,isBusy:Xe}=T.checkVersionQuery(),{mutate:Ze,isPending:Qe}=T.restartServerQuery(),{mutateAsync:$e,isPending:et}=T.resetServerQuery(),R=m(O(`views.settings.unknown`)),z=m(O(`views.settings.unknown`)),B=m(),V=m(),H=m(),U=m(!1),W=m(!1),tt=m(!1),G=m(!1),K=0,q=_(()=>I.value?.electron??!1),J=_(()=>Qe.value||et.value||Ye.value||Xe.value||G.value||W.value),Y=_(()=>I.value?.installedVersion||I.value?.version),X=_(()=>I.value?.restartRequired??!1),Z=_(()=>J.value||!j.value||M.value),nt=_(()=>Y.value&&V.value?S(V.value,Y.value)===1:!1),rt=_(()=>!!Y.value?.includes(`-`)),it=_(()=>(N.value||rt.value)&&Y.value&&B.value?S(B.value,Y.value)===1:!1),Q=_(()=>{let e=[nt.value?V.value:void 0,it.value?B.value:void 0].filter(e=>!!e);if(e.length)return e.sort((e,t)=>S(t,e))[0]});function at(e){Ke(e===!0)}async function ot(){if(!U.value){U.value=!0;try{let e=await ue(),t=new Blob([e],{type:`application/x-x509-ca-cert`});await s({blob:t,filename:`cert.pem`,mimeType:`application/x-x509-ca-cert`})}catch(e){E.error(e)}U.value=!1}}function st(){Ge(),Ze()}function $(e){switch(e){case`restart`:D.openTextDialog({data:{title:O(`components.dialog.title.restart`),confirmText:O(`components.form.button.restart`),contentText:O(`components.dialog.message.confirm_restart_server`),loading:J},onConfirm:st});break;case`reset`:D.openTextDialog({data:{title:O(`components.dialog.title.reset_server`),confirmText:O(`components.form.button.reset`),contentText:O(`components.dialog.message.confirm_reset_server`),loading:J},onConfirm:async()=>{try{await $e()}catch{}finally{Je.logout()}}});break;case`versions`:case`install`:D.openComponentDialog(C,{data:{title:O(`components.dialog.title.install_version`),confirmText:O(e===`install`?`components.form.button.update`:`components.form.button.install`),loading:J,contentProps:{target:{type:`server`},installVersion:e===`install`?Q.value:void 0}}})}}async function ct(){if(k)try{tt.value=!0,z.value=await A.invoke(`get-app-version`)??O(`views.settings.unknown`)}catch(e){E.error(`Error getting electron app version:`,e)}finally{tt.value=!1}}async function lt(){if(k)try{G.value=!0;let e=await A.invoke(`get-update-available`);H.value=e.isUpdateAvailable?e.version:void 0}catch(e){E.error(`Error checking for electron updates:`,e)}finally{G.value=!1}}async function ut(){if(k)try{W.value=!0,await A.invoke(`quit-and-install`)}catch(e){E.error(`Error installing electron update:`,e)}finally{W.value=!1}}async function dt(){let e=++K;for(let t=0;t<30;t++)try{if(await pe({signal:AbortSignal.timeout(5e3)}),e!==K)return;w.queryClient.invalidateQueries({queryKey:[`api`]}),T.queryClient.invalidateQueries({queryKey:[`version`]});return}catch{if(await new Promise(e=>setTimeout(e,2e3)),e!==K||!j.value)return}}return b(I,()=>{R.value=I.value?.version||O(`views.settings.unknown`),I.value&&T.toggleQueryActivator(`checkVersionQuery`,!q.value)},{deep:!0,immediate:!0}),b(L,()=>{V.value=L.value?.[`dist-tags`].latest,B.value=L.value?.[`dist-tags`].beta},{deep:!0,immediate:!0}),b([j,M],([e,t],[n,r])=>{q.value||(e&&!n||r&&!t&&e)&&dt()}),l(()=>{K++}),ae(()=>{k&&(ct(),lt())}),(n,i)=>{let a=le,ee=ce,o=t,s=r,l=e;return c(),p(`div`,null,[d(`div`,_e,[g(q)?x(``,!0):(c(),p(`div`,ve,[y(o,{class:`cui-card`},{content:u(()=>[d(`div`,null,[d(`div`,ye,[d(`div`,be,[d(`label`,xe,f(n.$t(`views.settings.beta_updates`)),1),y(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:u(()=>[h(f(n.$t(`views.settings.beta_updates_info`)),1)]),_:1})]),y(ee,{"input-id":`betaChannel`,"model-value":g(N),class:`ml-auto shrink-0`,"onUpdate:modelValue":at},null,8,[`model-value`])])])]),_:1})])),d(`div`,null,[i[6]||=d(`span`,{class:`card-title`},`camera.ui`,-1),y(o,{class:`cui-card`},{content:u(()=>[d(`div`,Se,[g(k)?(c(),p(`div`,Ce,[d(`span`,we,f(n.$t(`views.settings.app`)),1),g(J)?(c(),v(s,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):(c(),p(`span`,Te,`v`+f(g(z)),1))])):x(``,!0),g(!1)&&g(P)?(c(),p(`div`,Ee,[d(`span`,De,f(n.$t(`views.settings.app`)),1),d(`span`,Oe,[h(` v`+f(g(P)),1),g(F)&&g(F)!==g(P)?(c(),p(`span`,ke,` (`+f(g(F))+`)`,1)):x(``,!0)])])):x(``,!0),d(`div`,Ae,[d(`span`,je,f(n.$t(`views.settings.server`)),1),g(J)?(c(),v(s,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):(c(),p(`span`,Me,[h(` v`+f(g(R)),1),g(X)?(c(),p(re,{key:0},[h(` → v`+f(g(Y)),1)],64)):x(``,!0)]))]),g(k)&&g(H)||!g(q)?(c(),p(`div`,Ne,[i[5]||=d(`div`,{class:`ml-auto`},null,-1),g(k)&&g(H)?(c(),v(l,{key:0,disabled:!g(k),loading:g(J),class:`cui-button-medium`,label:`${n.$t(`components.form.button.update`)} (v${g(H)})`,onClick:ut},null,8,[`disabled`,`loading`,`label`])):x(``,!0),!g(q)&&g(X)?(c(),v(l,{key:1,loading:g(J),disabled:g(Z),class:`cui-button-medium`,label:`${n.$t(`components.form.button.restart`)} (v${g(Y)})`,onClick:i[0]||=e=>$(`restart`)},null,8,[`loading`,`disabled`,`label`])):!g(q)&&g(Q)?(c(),v(l,{key:2,loading:g(J),disabled:g(Z),class:`cui-button-medium`,label:`${n.$t(`components.form.button.update`)} (v${g(Q)})`,onClick:i[1]||=e=>$(`install`)},null,8,[`loading`,`disabled`,`label`])):x(``,!0),g(q)?x(``,!0):(c(),v(l,{key:3,loading:g(J),disabled:g(Z),class:`cui-button-medium`,label:n.$t(`components.form.button.manage`),onClick:i[2]||=e=>$(`versions`)},null,8,[`loading`,`disabled`,`label`]))])):x(``,!0)])]),_:1})]),g(k)?x(``,!0):(c(),p(`div`,Pe,[d(`span`,Fe,f(n.$t(`views.settings.certificate`)),1),y(o,{class:`cui-card`},{content:u(()=>[d(`div`,Ie,[d(`span`,Le,f(n.$t(`views.settings.certificate_info`)),1),y(l,{loading:g(U)||g(J),disabled:g(Z),class:`cui-button-medium ml-auto`,label:n.$t(`components.form.button.download`),onClick:ot},null,8,[`loading`,`disabled`,`label`])])]),_:1})])),d(`div`,null,[d(`span`,Re,f(n.$t(`views.settings.restart_server`)),1),y(o,{class:`cui-card`},{content:u(()=>[d(`div`,ze,[d(`span`,Be,f(n.$t(`views.settings.restart_server_info`)),1),y(l,{loading:g(J),disabled:g(Z),class:`cui-button-medium ml-auto`,label:n.$t(`components.form.button.restart`),onClick:i[3]||=e=>$(`restart`)},null,8,[`loading`,`disabled`,`label`])])]),_:1})]),(`hasPermission`in n?n.hasPermission:g(te))(void 0,`master`)?(c(),p(`div`,Ve,[d(`span`,He,f(n.$t(`views.settings.reset_server`)),1),y(o,{class:`cui-card !border-red-900`},{content:u(()=>[d(`div`,Ue,[d(`span`,We,f(n.$t(`views.settings.reset_server_info`)),1),y(l,{loading:g(J),disabled:g(Z),class:`cui-button-medium ml-auto`,label:n.$t(`components.form.button.reset`),onClick:i[4]||=e=>$(`reset`)},null,8,[`loading`,`disabled`,`label`])])]),_:1})])):x(``,!0)])])}}});export{C as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Ft as e,H as t,Ir as n,Lt as r,M as i,Vt as a,jt as o}from"./vendor-cameraui-
|
|
1
|
+
import{Ft as e,H as t,Ir as n,Lt as r,M as i,Vt as a,jt as o}from"./vendor-cameraui-0EJfDg8o.js";import{E as s,En as c,O as l,cn as u,fr as d,hr as f,ln as p,st as m}from"./api-py5HP4SF.js";import{Gn as h,Nn as g,Xn as _,Zn as v,_r as y,an as b,b as x,bn as S,br as C,cn as w,cr as T,fn as E,fr as D,gr as O,hn as k,in as A,ir as j,mr as M,on as N,pn as P,qt as F,rr as I,sn as L,v as R,wn as z,y as B,yr as V}from"./vendor-BaiDFVEr.js";import{a as H}from"./intercomService-DJHBix4X.js";import{I as U,R as W,S as G,j as K,s as q}from"./vendor-primevue-b9CB9Uh0.js";import{t as ee}from"./delete-BF6keuqy.js";import{t as te}from"./CuiDataTable-wA_LbHH8.js";import{n as ne,t as re}from"./auth-uQlIia9h.js";var J={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Y(e,t){return g(),w(`svg`,J,[...t[0]||=[b(`path`,{fill:`currentColor`,d:`m21.7 13.35l-1 1l-2.05-2.05l1-1a.55.55 0 0 1 .77 0l1.28 1.28c.21.21.21.56 0 .77M12 18.94l6.06-6.06l2.05 2.05L14.06 21H12zM12 14c-4.42 0-8 1.79-8 4v2h6v-1.89l4-4c-.66-.08-1.33-.11-2-.11m0-10a4 4 0 0 0-4 4a4 4 0 0 0 4 4a4 4 0 0 0 4-4a4 4 0 0 0-4-4`},null,-1)]])}var ie=j({name:`mdi-account-edit`,render:Y}),X={for:`username`,class:`cui-label`},Z={for:`password`,class:`cui-label`},Q={for:`passwordConfirm`,class:`cui-label`},$={for:`role`,class:`cui-label`},ae=k({__name:`UserForm`,props:{user:{}},setup(e,{expose:t}){let r=new d,a=e,o=H(),c=f(),{t:u}=n(),p=S(`dialogRefProps`),{mutateAsync:m,isPending:v}=r.createUserQuery(),{mutateAsync:y,isPending:w}=r.patchUserQuery(),{user:E}=M(a),D=h(`formRef`),k=T({}),j=T([`user`,`admin`]),I=A(()=>!!(p.loading?.value||v.value||w.value));async function V(){let e=await D.value?.validate();if(!e?.valid)return o.error(`Validation failed`,e),c.add({severity:`error`,detail:u(`components.toast.validation_failed`),life:3e3}),null;E.value?await y({username:E.value.username,userData:k.value}):await m({userData:k.value})}return t({isLoading:I,onConfirm:V}),(e,t)=>{let n=i,r=W,a=q,o=K;return g(),N(O(x),{ref_key:`formRef`,ref:D,class:`flex flex-col gap-6`,"validation-schema":O(E)?O(l):O(s)},{default:_(()=>[P(O(B),{modelValue:O(k).username,"onUpdate:modelValue":t[0]||=e=>O(k).username=e,modelModifiers:{trim:!0},value:O(E)?.username??O(k).username,name:`username`,as:`div`,class:`flex flex-col field-gap`},{default:_(({field:t,errors:i})=>[b(`label`,X,C(e.$t(`components.form.label.username`)),1),P(r,null,{default:_(()=>[P(n,z(t,{invalid:i.length>0,loading:O(I),type:`text`}),null,16,[`invalid`,`loading`])]),_:2},1024),P(F,{name:`fade`},{default:_(()=>[P(O(R),{name:`username`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`,`value`]),P(O(B),{modelValue:O(k).password,"onUpdate:modelValue":t[1]||=e=>O(k).password=e,name:`password`,as:`div`,class:`flex flex-col field-gap`},{default:_(({field:t,errors:n})=>[b(`label`,Z,C(e.$t(`components.form.label.new_password`)),1),P(r,null,{default:_(()=>[P(a,z({invalid:n.length>0},t,{loading:O(I),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),P(F,{name:`fade`},{default:_(()=>[P(O(R),{name:`password`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),P(O(B),{modelValue:O(k).passwordConfirm,"onUpdate:modelValue":t[2]||=e=>O(k).passwordConfirm=e,name:`passwordConfirm`,as:`div`,class:`flex flex-col field-gap`},{default:_(({field:t,errors:n})=>[b(`label`,Q,C(e.$t(`components.form.label.new_password_confirm`)),1),P(r,null,{default:_(()=>[P(a,z({invalid:n.length>0},t,{loading:O(I),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),P(F,{name:`fade`},{default:_(()=>[P(O(R),{name:`passwordConfirm`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),O(E)?.role===`master`?L(``,!0):(g(),N(O(B),{key:0,"model-value":O(k).role,name:`role`,as:`div`,class:`flex flex-col field-gap`},{default:_(({errors:n})=>[b(`label`,$,C(e.$t(`components.form.label.role`)),1),P(r,null,{default:_(()=>[P(o,{"model-value":O(E)?.role??O(k).role,options:O(j),invalid:n.length>0,loading:O(I),type:`text`,onValueChange:t[3]||=e=>O(k).role=e},null,8,[`model-value`,`options`,`invalid`,`loading`])]),_:2},1024),P(F,{name:`fade`},{default:_(()=>[P(O(R),{name:`role`,class:`cui-input-error`})]),_:1})]),_:1},8,[`model-value`]))]),_:1},8,[`validation-schema`])}}}),oe={class:`flex flex-col w-full gap-6`},se={class:`card-title`},ce={class:`flex flex-col gap-6`},le={class:`flex items-center gap-2`},ue={class:`flex flex-col`},de={class:`text-sm font-semibold text-color`},fe={class:`text-xs text-muted`},pe={class:`relative w-6 h-6`},me={class:`flex flex-row items-end justify-end gap-2`},he={class:`card-title`},ge={class:`flex items-center justify-center`},_e={class:`font-medium block max-w-[200px] truncate`},ve={class:`text-muted text-sm`},ye=k({__name:`SettingsUsers`,setup(i){let s=new re,l=new d,f=m(),{mdBreakpoint:x}=c(),{t:S}=n(),k=T({pageSize:15,page:1}),j=T({page:1,pageSize:-1}),{data:M,isBusy:F}=l.getUsersQuery(k),{mutate:L,isPending:R}=l.removeUserQuery(),{data:z,isBusy:B}=s.listAllSessionsQuery(j),{mutate:H,isPending:W}=s.revokeSessionQuery(),K={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}}},q=T({global:{value:null,matchMode:U.CONTAINS}}),J=h(`menuRef`),Y=A(()=>F.value||R.value),X=A(()=>z.value??[]),Z=A(()=>!!B.value),Q=A(()=>[{label:S(`views.settings.edit`),icon:ie,buttonProps:{disabled:Y.value},onClick:e=>{$(e)}},{label:S(`views.settings.remove`),icon:ee,iconProps:{class:`text-red-500`},labelProps:{class:`text-red-500`},buttonProps:{disabled:Y.value,severity:`danger`},onClick:e=>{L({username:e.username})}}]);function $(e){f.openComponentDialog(ae,{data:{title:S(e?`components.dialog.title.edit_user`:`components.dialog.title.create_new_user`),confirmText:S(e?`components.form.button.save`:`components.form.button.add`),loading:Y,contentProps:{user:D(e)}}})}return(n,i)=>{let s=o,c=p,l=G,d=e,f=te,m=t,h=r,S=ne,T=a;return g(),w(`div`,null,[b(`div`,oe,[b(`div`,null,[b(`span`,se,C(n.$t(`views.settings.registered_users`)),1),P(m,{class:`cui-card`},{content:_(()=>[b(`div`,ce,[P(f,{filters:O(q),"onUpdate:filters":i[0]||=e=>I(q)?q.value=e:null,value:O(M)?.result,paginator:O(k).page>1||O(M)?.result&&O(M).result.length>15,"data-key":`id`,"filter-display":`menu`,loading:O(Y),"global-filter-fields":[`username`],pt:K,"striped-rows":``,scrollable:``},{loading:_(()=>[P(s,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),default:_(()=>[P(l,{field:`username`,"align-frozen":`left`,frozen:!O(x),header:n.$t(`views.settings.title_user`),"header-class":`p-2 h-7 min-h-7 max-h-7 w-40 min-w-40 max-w-40`,class:`p-2 h-7 min-h-7 max-h-7 w-40 min-w-40 max-w-40`},{body:_(({data:e})=>[b(`div`,le,[P(c,{src:e.avatar,size:54},null,8,[`src`]),b(`div`,ue,[b(`span`,de,C(e.username),1),b(`span`,fe,C(e.role),1)])])]),_:1},8,[`frozen`,`header`]),P(l,{field:`action`,"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7 text-right`},{body:_(({data:e})=>[b(`div`,null,[P(d,{severity:`secondary`,text:``,rounded:``,loading:O(Y),class:`cui-icon-md`,onClick:t=>O(J)?.toggleMenu(t,void 0,e)},{icon:_(()=>[b(`div`,pe,[b(`div`,{class:y([`absolute top-1 left-1/2 -translate-x-1/2 w-1 h-1 rounded-full transform transition-all duration-100 origin-center bg-current`,{"w-4 h-[2px] rotate-45 top-1/2 -translate-y-1/2 rounded-none":O(J)?.isOpen&&O(J)?.data?._id===e._id}])},null,2),b(`div`,{class:y([`absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-1 h-1 rounded-full transition-all duration-100 bg-current`,{"opacity-0 scale-0":O(J)?.isOpen&&O(J)?.data?._id===e._id}])},null,2),b(`div`,{class:y([`absolute bottom-1 left-1/2 -translate-x-1/2 w-1 h-1 rounded-full transform transition-all duration-100 origin-center bg-current`,{"w-4 h-[2px] -rotate-45 bottom-1/2 translate-y-1/2 rounded-none":O(J)?.isOpen&&O(J)?.data?._id===e._id}])},null,2)])]),_:2},1032,[`loading`,`onClick`])])]),_:1})]),_:1},8,[`filters`,`value`,`paginator`,`loading`]),b(`div`,me,[P(d,{severity:`success`,loading:O(Y),class:`cui-button-medium mr-4 md:mr-0`,label:n.$t(`components.form.button.create_new_user`),onClick:i[1]||=e=>$()},null,8,[`loading`,`label`])])])]),_:1})]),b(`div`,null,[b(`span`,he,C(n.$t(`views.settings.logged_in_users`)),1),P(m,{class:`cui-card`},{content:_(()=>[P(f,{value:O(X),loading:O(Z),pt:K,"striped-rows":``,scrollable:``},{loading:_(()=>[P(s,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:_(()=>[b(`span`,ve,C(n.$t(`views.settings.no_sessions`)),1)]),default:_(()=>[P(l,{field:`status`,header:``,style:{width:`3rem`}},{body:_(({data:e})=>[b(`div`,ge,[v(P(h,{style:V({background:e.is_current?`var(--primary-500)`:`transparent`})},null,8,[`style`]),[[T,{value:e.is_current?n.$t(`components.user_table.you`):void 0}]])])]),_:1}),P(l,{field:`device.name`,header:n.$t(`components.user_table.title_device`)},{body:_(({data:e})=>[b(`span`,_e,C(e.device.name),1)]),_:1},8,[`header`]),P(l,{field:`device.ip`,header:n.$t(`components.user_table.title_address`)},{body:_(({data:e})=>[E(C(e.device.ip??`-`),1)]),_:1},8,[`header`]),P(l,{field:`device.kind`,header:n.$t(`components.user_table.title_kind`)},null,8,[`header`]),P(l,{field:`action`,class:`text-right`},{body:_(({data:e})=>[v((g(),N(d,{severity:`danger`,text:``,rounded:``,loading:O(W),class:`cui-icon-md`,onClick:t=>O(H)({id:e.id})},{icon:_(()=>[P(S,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[T,{value:n.$t(`views.settings.active_sessions.revoke`)}]])]),_:1})]),_:1},8,[`value`,`loading`])]),_:1})])]),P(u,{ref_key:`menuRef`,ref:J,items:O(Q),popover:{pt:{content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])])}}});export{ye as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Ei as e,Ft as t,Ir as n,Vt as r,Zr as i,kt as a,ri as o}from"./vendor-cameraui-0EJfDg8o.js";import{B as s,Cn as c,En as l,Pn as u,m as d}from"./api-py5HP4SF.js";import{$t as f,Fn as p,Gn as m,Mn as h,Nn as g,Tn as _,Xn as v,Zn as y,Zt as b,_r as x,an as S,br as C,cn as w,cr as T,dr as ee,en as E,gr as D,hn as O,in as k,ir as A,jn as te,mr as j,on as M,or as N,pn as P,qn as F,sn as I,wn as ne,yr as L,zn as R}from"./vendor-BaiDFVEr.js";import{a as re}from"./intercomService-DJHBix4X.js";import{p as z}from"./vendor-core-RnPzfwaA.js";import{o as B}from"./vendor-primevue-b9CB9Uh0.js";import{a as V,i as H,n as U,r as W,t as G}from"./vendor-xterm-BafMBqaV.js";import{t as ie}from"./back-filled-DcBDBvvP.js";import{t as K}from"./settings-BUEZ5iRE.js";import{n as ae,t as oe}from"./zoom-in-Du1IB9oA.js";import{n as se,t as ce}from"./CuiTopNavbarItem-CSdvkKHR.js";import{t as le}from"./trash-2-DMMlSPXn.js";var q={viewBox:`0 0 32 32`,width:`1.2em`,height:`1.2em`};function ue(e,t){return g(),w(`svg`,q,[...t[0]||=[S(`path`,{fill:`currentColor`,d:`M18 28A12 12 0 1 0 6 16v6.2l-3.6-3.6L1 20l6 6l6-6l-1.4-1.4L8 22.2V16a10 10 0 1 1 10 10Z`},null,-1)]])}var de=A({name:`carbon-reset`,render:ue}),fe={viewBox:`0 0 32 32`,width:`1.2em`,height:`1.2em`};function J(e,t){return g(),w(`svg`,fe,[...t[0]||=[S(`path`,{fill:`currentColor`,d:`M17 15V8h-2v7H8v2h7v7h2v-7h7v-2z`},null,-1)]])}var pe=A({name:`carbon-add`,render:J}),me=c(O({__name:`CuiTerminal`,props:{autoConnect:{type:Boolean,default:!0},cwd:{},shell:{},options:{default:()=>({fontSize:14})},inputTransform:{}},emits:[`connected`,`disconnected`,`error`],setup(t,{expose:n,emit:r}){let o=t,s=r,{isConnected:c,isConnecting:l,isClientConnected:u,error:d,connect:f,write:p,resize:v,close:y}=a(),{options:b}=j(o),x={fontSize:14,scrollback:5e3,allowTransparency:!1,disableStdin:!1,cursorBlink:!0,allowProposedApi:!0,theme:{background:`#000000`}},S={"\x1B[A":`\x1BOA`,"\x1B[B":`\x1BOB`,"\x1B[C":`\x1BOC`,"\x1B[D":`\x1BOD`,"\x1B[H":`\x1BOH`,"\x1B[F":`\x1BOF`},C=m(`terminalContainerRef`),T=ee(null),E=null,D=null,O=null,k=null,A=i(C);function M(e){c.value&&p(o.inputTransform?o.inputTransform(e):e)}function N(e){T.value&&T.value.write(e)}function P(){if(!(!T.value||!E))try{E.fit()}catch{}}function I(){P(),c.value&&T.value&&v({cols:T.value.cols,rows:T.value.rows})}function ne(){T.value&&_(()=>{P(),T.value&&(T.value.refresh(0,T.value.rows-1),T.value.focus())})}let L=e(I,100);function R(e){if(e)try{e.dispose()}catch{}}function re(){C.value&&(T.value=new G({...x,...b.value}),E=new V,k=new U,D=new H,O=new W,T.value.loadAddon(D),T.value.loadAddon(O),T.value.loadAddon(k),T.value.loadAddon(E),T.value.open(C.value),T.value.onData(M),T.value.onResize(({cols:e,rows:t})=>{c.value&&v({cols:e,rows:t})}),k.onContextLoss(()=>{R(k),k=null}),I())}async function z(){T.value&&await f({cols:T.value.cols,rows:T.value.rows,cwd:o.cwd,shell:o.shell,onData:N,onClose:()=>{T.value?.write(`\r
|
|
2
2
|
\x1B[33mSession closed.\x1B[0m\r
|
|
3
|
-
`)},onError:e=>{s(`error`,e)}})}async function B(){await y()}function ie(){T.value?.clear()}function K(){T.value?.focus()}function ae(e){T.value?.modes.applicationCursorKeysMode&&(e=S[e]??e),M(e)}return F(b,()=>{T.value&&(T.value.options={...x,...b.value},L())},{deep:!0}),F(c,e=>{e?(s(`connected`),_(()=>T.value?.focus())):s(`disconnected`)}),F([A.height,A.width],()=>{L()}),te(()=>{re(),o.autoConnect&&z()}),h(()=>{y(),R(E),R(k),R(D),R(O),R(T.value)}),
|
|
4
|
-
`,k:`\v`,l:`\f`,m:`\r`,n:``,o:``,p:``,q:``,r:``,s:``,t:``,u:``,v:``,w:``,x:``,y:``,z:``},he=[`onPointerdown`],Q={key:0,class:`flex flex-wrap gap-1.5 px-2 py-2 bg-black/90 border-t border-white/10`},ge=[`onClick`],_e=c(O({__name:`CuiTerminalToolbar`,emits:[`send`],setup(e,{expose:t,emit:n}){let r=n,{smBreakpoint:i}=l(),a=Y,s=o(`cui-terminal-toolbar-keys`,X),c=T(!1),u=N(new Set),d=k(()=>s.value.map(e=>a.find(t=>t.id===e)).filter(Boolean));function m(e){if(u.has(`ctrl`)&&e.length===1){let t=Z[e.toLowerCase()];if(t)return t}return u.has(`alt`)&&e.length===1?`\x1b${e}`:e}function h(e){if(e.modifier){u.has(e.id)?u.delete(e.id):u.add(e.id);return}let t=m(e.sequence);r(`send`,t),u.clear()}function _(e){let t=s.value.indexOf(e);t>=0?s.value.splice(t,1):s.value.push(e)}return t({activeModifiers:u,applyModifiers:m}),(e,t)=>{let n=K;return g(),w(`div`,null,[S(`div`,{class:x([`cui-terminal-toolbar flex items-center gap-1 px-2 py-1.5 bg-black/80 border-t border-white/10 overflow-x-auto no-scrollbar`,{"pt-3":!D(i)}])},[(g(!0),w(E,null,p(D(d),e=>(g(),w(`button`,{key:e.id,class:x([`toolbar-key flex-shrink-0 px-2.5 py-1.5 rounded text-xs font-mono select-none transition-colors duration-100 border min-w-[32px] text-center cursor-pointer`,{"bg-white/20 border-white/30 text-white":e.modifier&&D(u).has(e.id),"bg-white/5 border-white/10 text-white/70 hover:bg-white/15 hover:text-white active:bg-white/25":!(e.modifier&&D(u).has(e.id))}]),onPointerdown:f(t=>h(e),[`prevent`])},C(e.label),43,he))),128)),S(`button`,{class:x([`toolbar-key flex-shrink-0 px-2 py-1.5 rounded text-xs select-none transition-colors duration-100 border ml-auto`,{"bg-white/20 border-white/30 text-white":D(c),"bg-white/5 border-white/10 text-white/50 hover:bg-white/15 hover:text-white":!D(c)}]),onPointerdown:t[0]||=f(e=>c.value=!D(c),[`prevent`])},[P(n,{class:`w-3.5 h-3.5`})],34)],2),D(c)?(g(),w(`div`,Q,[(g(!0),w(E,null,p(D(a),e=>(g(),w(`button`,{key:e.id,class:x([`px-2.5 py-1 rounded text-xs font-mono select-none transition-colors duration-100 border`,{"bg-white/20 border-white/30 text-white":D(s).includes(e.id),"bg-white/5 border-white/10 text-white/30":!D(s).includes(e.id)}]),onClick:t=>_(e.id)},C(e.label),11,ge))),128))])):I(``,!0)])}}}),[[`__scopeId`,`data-v-e111c595`]]),ve={class:`h-full w-full dark-mode relative overflow-hidden`},ye={class:`relative w-6 h-6`},$=O({__name:`Terminal`,props:{navbarWidth:{default:0},navbarLeft:{default:0}},setup(
|
|
3
|
+
`)},onError:e=>{s(`error`,e)}})}async function B(){await y()}function ie(){T.value?.clear()}function K(){T.value?.focus()}function ae(e){T.value?.modes.applicationCursorKeysMode&&(e=S[e]??e),M(e)}return F(b,()=>{T.value&&(T.value.options={...x,...b.value},L())},{deep:!0}),F(c,e=>{e?(s(`connected`),_(()=>T.value?.focus())):s(`disconnected`)}),F([A.height,A.width],()=>{L()}),te(()=>{re(),o.autoConnect&&z()}),h(()=>{y(),R(E),R(k),R(D),R(O),R(T.value)}),n({connect:z,disconnect:B,clear:ie,focus:K,resize:I,refresh:ne,sendInput:ae,isConnected:c,isConnecting:l,isClientConnected:u,error:d,term:T}),(e,t)=>(g(),w(`div`,{ref_key:`terminalContainerRef`,ref:C,class:`cui-terminal w-full h-full bg-black overflow-hidden p-2 min-w-0`},null,512))}}),[[`__scopeId`,`data-v-82bcb47c`]]),Y=[{id:`esc`,label:`Esc`,sequence:`\x1B`},{id:`tab`,label:`Tab`,sequence:` `},{id:`ctrl`,label:`Ctrl`,sequence:``,modifier:!0},{id:`alt`,label:`Alt`,sequence:``,modifier:!0},{id:`home`,label:`Home`,sequence:`\x1B[H`},{id:`end`,label:`End`,sequence:`\x1B[F`},{id:`up`,label:`↑`,sequence:`\x1B[A`},{id:`down`,label:`↓`,sequence:`\x1B[B`},{id:`left`,label:`←`,sequence:`\x1B[D`},{id:`right`,label:`→`,sequence:`\x1B[C`},{id:`pgup`,label:`PgUp`,sequence:`\x1B[5~`},{id:`pgdn`,label:`PgDn`,sequence:`\x1B[6~`},{id:`del`,label:`Del`,sequence:`\x1B[3~`},{id:`slash`,label:`/`,sequence:`/`},{id:`dash`,label:`-`,sequence:`-`},{id:`pipe`,label:`|`,sequence:`|`},{id:`tilde`,label:`~`,sequence:`~`},{id:`underscore`,label:`_`,sequence:`_`}],X=[`tab`,`ctrl`,`up`,`down`,`left`,`right`],Z={a:``,b:``,c:``,d:``,e:``,f:``,g:`\x07`,h:`\b`,i:` `,j:`
|
|
4
|
+
`,k:`\v`,l:`\f`,m:`\r`,n:``,o:``,p:``,q:``,r:``,s:``,t:``,u:``,v:``,w:``,x:``,y:``,z:``},he=[`onPointerdown`],Q={key:0,class:`flex flex-wrap gap-1.5 px-2 py-2 bg-black/90 border-t border-white/10`},ge=[`onClick`],_e=c(O({__name:`CuiTerminalToolbar`,emits:[`send`],setup(e,{expose:t,emit:n}){let r=n,{smBreakpoint:i}=l(),a=Y,s=o(`cui-terminal-toolbar-keys`,X),c=T(!1),u=N(new Set),d=k(()=>s.value.map(e=>a.find(t=>t.id===e)).filter(Boolean));function m(e){if(u.has(`ctrl`)&&e.length===1){let t=Z[e.toLowerCase()];if(t)return t}return u.has(`alt`)&&e.length===1?`\x1b${e}`:e}function h(e){if(e.modifier){u.has(e.id)?u.delete(e.id):u.add(e.id);return}let t=m(e.sequence);r(`send`,t),u.clear()}function _(e){let t=s.value.indexOf(e);t>=0?s.value.splice(t,1):s.value.push(e)}return t({activeModifiers:u,applyModifiers:m}),(e,t)=>{let n=K;return g(),w(`div`,null,[S(`div`,{class:x([`cui-terminal-toolbar flex items-center gap-1 px-2 py-1.5 bg-black/80 border-t border-white/10 overflow-x-auto no-scrollbar`,{"pt-3":!D(i)}])},[(g(!0),w(E,null,p(D(d),e=>(g(),w(`button`,{key:e.id,class:x([`toolbar-key flex-shrink-0 px-2.5 py-1.5 rounded text-xs font-mono select-none transition-colors duration-100 border min-w-[32px] text-center cursor-pointer`,{"bg-white/20 border-white/30 text-white":e.modifier&&D(u).has(e.id),"bg-white/5 border-white/10 text-white/70 hover:bg-white/15 hover:text-white active:bg-white/25":!(e.modifier&&D(u).has(e.id))}]),onPointerdown:f(t=>h(e),[`prevent`])},C(e.label),43,he))),128)),S(`button`,{class:x([`toolbar-key flex-shrink-0 px-2 py-1.5 rounded text-xs select-none transition-colors duration-100 border ml-auto`,{"bg-white/20 border-white/30 text-white":D(c),"bg-white/5 border-white/10 text-white/50 hover:bg-white/15 hover:text-white":!D(c)}]),onPointerdown:t[0]||=f(e=>c.value=!D(c),[`prevent`])},[P(n,{class:`w-3.5 h-3.5`})],34)],2),D(c)?(g(),w(`div`,Q,[(g(!0),w(E,null,p(D(a),e=>(g(),w(`button`,{key:e.id,class:x([`px-2.5 py-1 rounded text-xs font-mono select-none transition-colors duration-100 border`,{"bg-white/20 border-white/30 text-white":D(s).includes(e.id),"bg-white/5 border-white/10 text-white/30":!D(s).includes(e.id)}]),onClick:t=>_(e.id)},C(e.label),11,ge))),128))])):I(``,!0)])}}}),[[`__scopeId`,`data-v-e111c595`]]),ve={class:`h-full w-full dark-mode relative overflow-hidden`},ye={class:`relative w-6 h-6`},$=O({__name:`Terminal`,props:{navbarWidth:{default:0},navbarLeft:{default:0}},setup(e){let a=e,o=re(),{t:c}=n(),l=u(),{uiSettings:f}=z(l),{navbarWidth:C,navbarLeft:ee}=j(a),O=m(`toolbar`),A=T([]),N=T(``),F=T(0),I=new Map,V=window.innerHeight,H=0,U=i(O),W=k(()=>C.value+ee.value),G=k(()=>{let e=document.getElementById(`container`);return e&&parseFloat(getComputedStyle(e).paddingBottom)||0}),K=k(()=>F.value<=0?0:Math.max(0,F.value-G.value)),q=k(()=>A.value.find(e=>e.id===N.value)),ue=k(()=>({fontSize:f.value.console.zoom})),fe=T([{label:c(`components.form.tooltip.clear`),icon:le,buttonProps:{severity:`danger`},command:()=>{Q()?.clear()}},{label:c(`components.form.tooltip.zoom_out`),icon:ae,command:()=>{ke()}},{label:c(`components.form.tooltip.zoom_in`),icon:oe,command:()=>{Oe()}}]);function J(){V=window.innerHeight,Y()}function Y(){let e=window.visualViewport;if(!e)return;let t=Math.max(0,V-e.height-e.offsetTop);t!==F.value&&(F.value=t,Z(t>0))}function X(e){e.target?.closest?.(`.cui-terminal-toolbar`)||e.preventDefault()}function Z(e){e?(document.addEventListener(`touchmove`,X,{passive:!1}),document.documentElement.style.overscrollBehavior=`none`):(document.removeEventListener(`touchmove`,X),document.documentElement.style.overscrollBehavior=``)}function he(e,t){t?I.set(e,t):I.delete(e)}function Q(){return I.get(N.value)}function ge(){return H++,{id:d(12),name:`Terminal ${H}`,isConnected:!1,isConnecting:!0}}function $(){let e=ge();A.value.push(e),N.value=e.id}async function be(e){let t=A.value.findIndex(t=>t.id===e);if(t===-1)return;let n=I.get(e);if(n&&await n.disconnect(),A.value.splice(t,1),I.delete(e),N.value===e&&A.value.length>0){let e=Math.min(t,A.value.length-1);N.value=A.value[e].id,_(()=>{Q()?.refresh()})}}function xe(e){N.value=e,_(()=>{I.get(e)?.refresh()})}function Se(e){if(!O.value?.activeModifiers?.size)return e;let t=O.value.applyModifiers(e);return O.value.activeModifiers.clear(),t}function Ce(e){Q()?.sendInput(e)}async function we(){let e=Q();e&&(await e.disconnect(),await e.connect())}function Te(e){let t=A.value.find(t=>t.id===e);t&&(t.isConnected=!0,t.isConnecting=!1),e===N.value&&_(()=>{Q()?.refresh()})}function Ee(e){let t=A.value.find(t=>t.id===e);t&&(t.isConnected=!1,t.isConnecting=!1)}function De(e,t){o.error(`Terminal ${e} error:`,t);let n=A.value.find(t=>t.id===e);n&&(n.isConnected=!1,n.isConnecting=!1)}function Oe(){f.value.console.zoom!==20&&(f.value.console.zoom++,_(()=>{Q()?.resize()}))}function ke(){f.value.console.zoom!==8&&(f.value.console.zoom--,_(()=>{Q()?.resize()}))}return te(()=>{window.addEventListener(`resize`,J);let e=window.visualViewport;e&&(e.addEventListener(`resize`,Y),e.addEventListener(`scroll`,Y)),$()}),h(()=>{window.removeEventListener(`resize`,J);let e=window.visualViewport;e&&(e.removeEventListener(`resize`,Y),e.removeEventListener(`scroll`,Y)),Z(!1)}),(e,n)=>{let i=ie,a=t,o=s,l=ce,u=pe,d=se,f=B,m=de,h=r;return g(),w(`div`,ve,[P(o,{position:`left`},{default:v(()=>[P(a,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:n[0]||=t=>e.$router.push(`/menu`)},{icon:v(()=>[P(i,{class:`w-6 h-6`})]),_:1})]),_:1}),P(d,{scrollable:``,"left-offset":D(W),animate:``},{left:v(()=>[(g(!0),w(E,null,p(D(A),e=>(g(),M(l,{key:e.id,type:`tab`,label:e.name,active:D(N)===e.id,status:e.isConnected?`connected`:e.isConnecting?`connecting`:`disconnected`,closeable:D(A).length>1,onClick:t=>xe(e.id),onClose:t=>be(e.id)},null,8,[`label`,`active`,`status`,`closeable`,`onClick`,`onClose`]))),128)),y((g(),M(l,{type:`button`,onClick:$},{icon:v(()=>[P(u,{class:`w-4 h-4`})]),_:1})),[[h,D(c)(`views.terminal.new_tab`)]])]),_:1},8,[`left-offset`]),S(`div`,{class:`w-full flex flex-col relative`,style:L({paddingTop:`${D(55)}px`,height:`calc(100% - ${D(K)}px)`,transition:`height 150ms ease-out`})},[S(`div`,{class:x([`flex-1 relative min-h-0 overflow-hidden`,{"pb-1":D(F)>0}])},[(g(!0),w(E,null,p(D(A),e=>y((g(),M(me,{key:e.id,ref_for:!0,ref:t=>he(e.id,t),options:D(ue),"input-transform":Se,"auto-connect":``,onConnected:()=>Te(e.id),onDisconnected:()=>Ee(e.id),onError:t=>De(e.id,t)},null,8,[`options`,`onConnected`,`onDisconnected`,`onError`])),[[b,D(N)===e.id]])),128))],2),P(_e,{ref_key:`toolbar`,ref:O,onSend:Ce},null,512)],4),P(f,{model:D(fe),direction:`up`,"transition-delay":80,"tooltip-options":{position:`left`,event:void 0},class:`absolute right-3 z-11`,pt:{root:{style:`pointer-events: none`}},style:L({bottom:`calc(0.75rem + ${D(U).height.value}px + ${D(K)}px)`,transition:`bottom 150ms ease-out`})},{button:v(({visible:e,toggleCallback:t})=>[P(a,{severity:`secondary`,class:x([`dark-mode opacity-40 hover:opacity-100 active:opacity-100 focus:opacity-100 transition pointer-events-auto`,{"opacity-100":e}]),rounded:``,onClick:t},{icon:v(()=>[S(`div`,ye,[S(`div`,{class:x([`absolute top-0.5 left-1/2 -translate-x-1/2 w-1.5 h-1.5 rounded-full transform transition-all duration-100 origin-center`,{"w-4 h-[2px] rotate-45 top-1/2 -translate-y-1/2 rounded-none":e}]),style:{backgroundColor:`var(--text-color)`}},null,2),S(`div`,{class:x([`absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-1.5 h-1.5 rounded-full transition-all duration-100`,{"opacity-0 scale-0":e}]),style:{backgroundColor:`var(--text-color)`}},null,2),S(`div`,{class:x([`absolute bottom-0.5 left-1/2 -translate-x-1/2 w-1.5 h-1.5 rounded-full transform transition-all duration-100 origin-center`,{"w-4 h-[2px] -rotate-45 bottom-1/2 translate-y-1/2 rounded-none":e}]),style:{backgroundColor:`var(--text-color)`}},null,2)])]),_:2},1032,[`class`,`onClick`])]),item:v(({item:e,toggleCallback:t})=>[y((g(),M(a,ne({severity:`secondary`},e.buttonProps,{rounded:``,onClick:t}),{icon:v(()=>[(g(),M(R(e.icon)))]),_:2},1040,[`onClick`])),[[h,{value:e.label}]])]),_:1},8,[`model`,`style`]),y((g(),M(a,{class:x([`opacity-40 hover:opacity-100 active:opacity-100 focus:opacity-100 transition absolute right-14 z-11`,{"!opacity-20 pointer-events-none":D(q)?.isConnected||D(q)?.isConnecting}]),style:L({bottom:`calc(0.75rem + ${D(U).height.value}px + ${D(K)}px)`,transition:`bottom 150ms ease-out`}),rounded:``,disabled:D(q)?.isConnected||D(q)?.isConnecting,onClick:we},{icon:v(()=>[P(m,{class:`text-white`})]),_:1},8,[`class`,`style`,`disabled`])),[[h,D(c)(`views.terminal.reconnect`)]])])}}});export{$ as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Nn as e,Xn as t,an as n,br as r,cr as i,gr as a,hn as o,on as s}from"./vendor-BaiDFVEr.js";import{w as c}from"./vendor-primevue-
|
|
1
|
+
import{Nn as e,Xn as t,an as n,br as r,cr as i,gr as a,hn as o,on as s}from"./vendor-BaiDFVEr.js";import{w as c}from"./vendor-primevue-b9CB9Uh0.js";import{i as l}from"./flowSchema-CNnBxcwy.js";var u={class:`flex items-center justify-between gap-3 w-full min-w-0`},d={class:`truncate`},f={class:`text-[10px] text-muted font-mono shrink-0`},p=o({__name:`VariableInput`,props:{modelValue:{},nodeId:{},placeholder:{}},emits:[`update:modelValue`],setup(o,{emit:p}){let m=o,h=p,{options:g}=l(()=>m.nodeId),_=i([]),v=i(``);function y(e){let t=e.query.toLowerCase();v.value=e.query,t?_.value=g.value.filter(e=>e.label.toLowerCase().includes(t)||e.value.toLowerCase().includes(t)):_.value=[...g.value]}function b(e){let t=m.modelValue??``;v.value&&t.toLowerCase().endsWith(v.value.toLowerCase())&&(t=t.slice(0,t.length-v.value.length)),h(`update:modelValue`,t+e.value.value)}function x(e){typeof e==`string`&&h(`update:modelValue`,e)}return(i,l)=>{let p=c;return e(),s(p,{"model-value":o.modelValue,suggestions:a(_),"option-label":`label`,placeholder:o.placeholder,class:`w-full`,fluid:``,dropdown:``,"dropdown-mode":`blank`,onComplete:y,onItemSelect:b,"onUpdate:modelValue":x},{option:t(({option:e})=>[n(`div`,u,[n(`span`,d,r(e.label),1),n(`span`,f,r(e.value),1)])]),_:1},8,[`model-value`,`suggestions`,`placeholder`])}}});export{p as t};
|
package/dist/interface/assets/{VariableSuggestions-q0Jd1DVI.js → VariableSuggestions-CrEa2zN-.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Ir as e}from"./vendor-cameraui-
|
|
1
|
+
import{Ir as e}from"./vendor-cameraui-0EJfDg8o.js";import{Fn as t,Nn as n,Xn as r,an as i,cn as a,en as o,gr as s,hn as c,on as l,sn as u}from"./vendor-BaiDFVEr.js";import{T as d,c as f}from"./vendor-primevue-b9CB9Uh0.js";var p={class:`flex flex-wrap gap-1`},m=c({__name:`VariableSuggestions`,props:{variables:{}},emits:[`select`],setup(c){let{t:m}=e();return(e,h)=>{let g=d,_=f;return c.variables.length?(n(),l(_,{key:0,header:s(m)(`components.automation_nodes.available_variables`),toggleable:``,collapsed:``,pt:{root:{class:`border-0`},header:{class:`py-1.5 px-0 text-xs`},content:{class:`px-0 py-2`},headerActions:{class:`flex`}},"toggle-button-props":{class:`w-4 h-4 p-0`,text:!0,rounded:!0,severity:`secondary`}},{default:r(()=>[i(`div`,p,[(n(!0),a(o,null,t(c.variables,t=>(n(),l(g,{key:t.value,label:t.label,class:`text-[10px] cursor-pointer hover:bg-primary/10 active:bg-primary/20`,onClick:n=>e.$emit(`select`,t.value)},null,8,[`label`,`onClick`]))),128))])]),_:1},8,[`header`])):u(``,!0)}}});export{m as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Ir as e,jt as t}from"./vendor-cameraui-
|
|
1
|
+
import{Ir as e,jt as t}from"./vendor-cameraui-0EJfDg8o.js";import{En as n,hr as r}from"./api-py5HP4SF.js";import{Fn as ee,Gn as i,Mn as a,Nn as o,an as s,bn as c,br as l,cn as u,cr as d,en as te,fn as ne,gr as f,hn as p,in as m,jn as re,mr as ie,pn as h,q as ae,qn as g,rr as _,sn as v,t as oe}from"./vendor-BaiDFVEr.js";import{K as se,j as ce}from"./vendor-primevue-b9CB9Uh0.js";import{t as le}from"./server-D2KGja0u.js";import{n as ue}from"./useServerRestart-CjPAgzoX.js";import{t as de}from"./plugins-5gXj0utE.js";import{t as fe}from"./CuiConsole-CqEvNGe_.js";import{t as pe}from"./useLogsSocket-BLV7dWSG.js";import{t as me}from"./CuiMarkdownContent-PSq4kE1G.js";import{t as he}from"./alert-circle-C2AU59aR.js";import{t as ge}from"./platformLabels-D-cF6OTP.js";import{t as _e}from"./config-B1aWtF-N.js";import{t as ve}from"./useUpdateChannel-F4WpbMJR.js";function y(e){return`id`in e&&!(`type`in e)}function b(e){return`type`in e}var ye={key:0},be={key:0,class:`flex items-start gap-3 px-4 py-3 rounded-xl bg-orange-500/10 border border-orange-500/30 mb-3`},xe={class:`flex flex-col gap-1 min-w-0`},Se={class:`text-sm font-semibold text-orange-400`},Ce={key:0},we={class:`text-xs text-orange-600 dark:text-orange-300`},Te={class:`text-sm text-orange-400`},Ee={key:1},De={class:`text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},Oe={key:2},ke={class:`text-muted`},Ae={class:`flex items-center gap-4 mt-4 px-4 py-3 rounded-xl bg-orange-500/10 border border-orange-500/30`},je={class:`flex flex-col gap-1 min-w-0`},Me={class:`text-sm font-semibold text-orange-400`},Ne={class:`text-xs text-orange-600 dark:text-orange-300`},Pe={key:3},Fe={class:`cui-label`},Ie={key:4,class:`w-full h-full relative`},Le={key:5,class:`w-full h-full p-4 flex items-center justify-center`},Re=`2.0.0`,x=p({__name:`VersionsHandler`,props:{target:{},installVersion:{},action:{}},setup(p,{expose:x}){let S=new de,C=new le,ze=new _e,Be=ae(),w=p,T=r(),{t:E}=e(),{mdBreakpoint:D}=n(),{beginServerRestart:Ve}=ue(),{isBeta:He}=ve(),O=c(`dialogRef`),k=c(`dialogRefProps`),{target:A,installVersion:j}=ie(w),M=d();S.toggleQueryActivator(`getPluginVersionsQuery`,!1),S.toggleQueryActivator(`getPluginChangelogQuery`,!1),S.toggleQueryActivator(`getPluginCompatQuery`,!1),C.toggleQueryActivator(`checkVersionQuery`,!1),C.toggleQueryActivator(`getServerChangelogQuery`,!1);let Ue=m(()=>y(A.value)?A.value.pluginName:`server`),N=m(()=>w.action===`uninstall`&&y(A.value)),P=pe({target:Ue.value,onStdout:e=>z.value?.writeTerminal(e),onDisconnect:()=>z.value?.writeTerminal(`
|
|
2
2
|
\rWebsocket failed to connect! Is the server running?\r
|
|
3
3
|
\r
|
|
4
4
|
`),onClearLog:()=>z.value?.clearTerminal(),onReconnected:()=>{z.value?.writeTerminal(`\r
|
package/dist/interface/assets/{VirtualSensorCreate-_E5E0U7E.js → VirtualSensorCreate-uumfOHgB.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Ir as e,M as t}from"./vendor-cameraui-
|
|
1
|
+
import{Ir as e,M as t}from"./vendor-cameraui-0EJfDg8o.js";import{hr as n}from"./api-py5HP4SF.js";import{Gn as r,Nn as i,Xn as a,an as o,b as s,br as c,cr as l,gr as u,hn as d,in as f,on as p,pn as m,qt as h,rr as g,v as _,wn as v,y}from"./vendor-BaiDFVEr.js";import{E as b,k as x}from"./types-D6IQ6ssc.js";import{j as S}from"./vendor-primevue-b9CB9Uh0.js";var C={for:`virtualSensorType`,class:`cui-label`},w={for:`virtualSensorName`,class:`cui-label`},T=d({__name:`VirtualSensorCreate`,props:{cameraId:{}},setup(d,{expose:T}){let E=d,{t:D}=e(),O=n(),k=b.omit({cameraId:!0}),A=r(`formRef`),j=l(x[0]),M=l(``),N=f(()=>x.map(e=>({label:D(`components.camera_options.sensor_type_${e}`),value:e})));return T({onConfirm:async()=>(await A.value?.validate())?.valid?{cameraId:E.cameraId,type:j.value,name:M.value.trim()}:(O.add({severity:`error`,detail:D(`components.toast.validation_failed`),life:3e3}),null)}),(e,n)=>{let r=S,l=t;return i(),p(u(s),{ref_key:`formRef`,ref:A,class:`flex flex-col gap-4 w-full`,"validation-schema":u(k)},{default:a(()=>[m(u(y),{"model-value":u(j),name:`type`,as:`div`,class:`flex flex-col field-gap`},{default:a(({errors:t})=>[o(`label`,C,c(e.$t(`components.form.label.type`)),1),m(r,{id:`virtualSensorType`,"model-value":u(j),options:u(N),"option-label":`label`,"option-value":`value`,invalid:t.length>0,class:`w-full`,onValueChange:n[0]||=e=>j.value=e},null,8,[`model-value`,`options`,`invalid`]),m(h,{name:`fade`},{default:a(()=>[m(u(_),{name:`type`,class:`cui-input-error`})]),_:1})]),_:1},8,[`model-value`]),m(u(y),{modelValue:u(M),"onUpdate:modelValue":n[1]||=e=>g(M)?M.value=e:null,modelModifiers:{trim:!0},name:`name`,as:`div`,class:`flex flex-col field-gap`},{default:a(({field:t,errors:n})=>[o(`label`,w,c(e.$t(`components.form.label.name`)),1),m(l,v({id:`virtualSensorName`},t,{invalid:n.length>0,class:`w-full`,placeholder:e.$t(`components.camera_options.virtual_sensor_name_placeholder`)}),null,16,[`invalid`,`placeholder`]),m(h,{name:`fade`},{default:a(()=>[m(u(_),{name:`name`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`])]),_:1},8,[`validation-schema`])}}});export{T as default};
|