@camera.ui/server 2.2.0 → 2.2.1
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-0R6IdIDK.js → 404-Ci4V-7l9.js} +1 -1
- package/dist/interface/assets/{About-DMpFqnl5.js → About-BSGYUvI7.js} +1 -1
- package/dist/interface/assets/{Assistant-DiL48qbB.js → Assistant-CblA57eC.js} +1 -1
- package/dist/interface/assets/{Automation-B0hMNSAw.js → Automation-WFaHCnEO.js} +3 -3
- package/dist/interface/assets/{AutomationImport-BSb9krZ4.js → AutomationImport-HRMq3VvF.js} +2 -2
- package/dist/interface/assets/{AutomationStore-B0CoLiA8.js → AutomationStore-BaaFYySv.js} +2 -2
- package/dist/interface/assets/{AutomationStoreDetail-CBolb08V.js → AutomationStoreDetail-IiLAbn4L.js} +2 -2
- package/dist/interface/assets/{Automations-kqWnqU6P.js → Automations-DRTUxje4.js} +2 -2
- package/dist/interface/assets/{Camera-vyc9F0HE.js → Camera-CaNYoR20.js} +2 -2
- package/dist/interface/assets/{CameraConsole-CUDLuW5x.js → CameraConsole-DbmJ9PNU.js} +1 -1
- package/dist/interface/assets/{Cameras-CTF5buln.js → Cameras-DnLbeJFs.js} +1 -1
- package/dist/interface/assets/{Camview-DVs7NJlA.js → Camview-uZ50ebLh.js} +1 -1
- package/dist/interface/assets/{Config-B0SEAh17.js → Config-BuuQmMOC.js} +1 -1
- package/dist/interface/assets/{ConfigActionAssistant-Ug-C-Cx8.js → ConfigActionAssistant-DforDPLT.js} +1 -1
- package/dist/interface/assets/{ConfigActionCameraControl-D0BTPk1r.js → ConfigActionCameraControl-LwL8BSZX.js} +1 -1
- package/dist/interface/assets/{ConfigActionMqtt-m_fOoTcf.js → ConfigActionMqtt-BkbAAepo.js} +1 -1
- package/dist/interface/assets/{ConfigActionNotification-Dwpm67Cr.js → ConfigActionNotification-B2Dtkf2b.js} +1 -1
- package/dist/interface/assets/{ConfigActionNotificationControl-CxlpMc7I.js → ConfigActionNotificationControl-DMW2_Vez.js} +1 -1
- package/dist/interface/assets/{ConfigActionPlugin-C1R8SkM3.js → ConfigActionPlugin-C3iZfPRv.js} +1 -1
- package/dist/interface/assets/{ConfigActionSensor-CN-KmQKx.js → ConfigActionSensor-DSW92VVP.js} +1 -1
- package/dist/interface/assets/{ConfigActionSnapshot-uIsJGPwz.js → ConfigActionSnapshot-Cl3NLmyn.js} +1 -1
- package/dist/interface/assets/{ConfigConditionSensorState-BvS-fd36.js → ConfigConditionSensorState-C_FpJLnM.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerDetection-BKIh59B7.js → ConfigTriggerDetection-Cb_BObEL.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerGeofence-kWjR7mlR.js → ConfigTriggerGeofence-B7Iugx3i.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerMqtt-DjDopQHT.js → ConfigTriggerMqtt-D_ozlopI.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSensor-DbP-61eW.js → ConfigTriggerSensor-D9_lg6yH.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSystem-CsSWt2u_.js → ConfigTriggerSystem-COPR6t7r.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerWebhook-TU4l4Tgx.js → ConfigTriggerWebhook-C0v6uR67.js} +1 -1
- package/dist/interface/assets/{Console-BCKOiAw3.js → Console-CHdFH_Ip.js} +1 -1
- package/dist/interface/assets/CuiAssistantConversation-B_eSNMuO.js +5 -0
- package/dist/interface/assets/{CuiAssistantConversation-CImeuG1m.css → CuiAssistantConversation-BkWDr6uX.css} +1 -1
- package/dist/interface/assets/{CuiAutomationRunsDialog-Bez4F56I.js → CuiAutomationRunsDialog-CGBqZXR4.js} +1 -1
- package/dist/interface/assets/CuiBottomSheet-B7hreGA-.js +1 -0
- package/dist/interface/assets/{CuiBottomSheet-Daxo4Mlc.js → CuiBottomSheet-DomRjKV8.js} +1 -1
- package/dist/interface/assets/{CuiCameraPipCard-Z2PrIFdi.js → CuiCameraPipCard-BXCRph8M.js} +1 -1
- package/dist/interface/assets/{CuiCameraRecordings-BIPlJiZL.js → CuiCameraRecordings-CztUs6YM.js} +1 -1
- package/dist/interface/assets/{CuiCameraShares-DAlZyr-0.js → CuiCameraShares-CVbWZZ_i.js} +1 -1
- package/dist/interface/assets/{CuiCameraTable-DDjhotD1.js → CuiCameraTable-B1F2UjZk.js} +1 -1
- package/dist/interface/assets/CuiCameraTable-BmsSlihU.js +1 -0
- package/dist/interface/assets/{CuiChartTable-CBVtsiJG.js → CuiChartTable-CcovDii1.js} +1 -1
- package/dist/interface/assets/{CuiConsole-Cb22vO0N.js → CuiConsole-BzJJnQTd.js} +1 -1
- package/dist/interface/assets/{CuiDataTable-DCCXx-KT.js → CuiDataTable-CNFiiz_X.js} +1 -1
- package/dist/interface/assets/{CuiLightControl-BdgBiaE3.js → CuiLightControl-u_yM0oyh.js} +1 -1
- package/dist/interface/assets/{CuiPluginCard-ACM-8XiS.js → CuiPluginCard-Bib3KXMs.js} +2 -2
- package/dist/interface/assets/{CuiPluginCategoryChip-C5EQGJ3M.js → CuiPluginCategoryChip-CKSV5COz.js} +1 -1
- package/dist/interface/assets/{CuiPluginOAuthButton-DzLXHOoU.js → CuiPluginOAuthButton-Cug_uTVq.js} +2 -2
- package/dist/interface/assets/{CuiPluginTrustBadge-DU-SN0LX.js → CuiPluginTrustBadge-CILKiExH.js} +1 -1
- package/dist/interface/assets/{CuiQRCode-CE5p3ucc.js → CuiQRCode-DHUwFLQz.js} +1 -1
- package/dist/interface/assets/{CuiSchema-BGDsFg7E.js → CuiSchema-ycZ4rNC_.js} +1 -1
- package/dist/interface/assets/{CuiTopNavbarItem-DloEl6H2.js → CuiTopNavbarItem-DBsbHvkJ.js} +1 -1
- package/dist/interface/assets/{Faces-4IZtM2h6.js → Faces-D6pm4dxq.js} +1 -1
- package/dist/interface/assets/{FirstSteps-CNONDDmE.js → FirstSteps-DotR0zU_.js} +1 -1
- package/dist/interface/assets/{Floorplan-BibtwoH-.js → Floorplan-xxlvYsYV.js} +1 -1
- package/dist/interface/assets/{Instances-BCs2bvFK.js → Instances-cgw_Xzu0.js} +1 -1
- package/dist/interface/assets/{Logs-Bc8Vw1LC.js → Logs-BrTGt33Q.js} +1 -1
- package/dist/interface/assets/{Menu-CxyTrCpO.js → Menu-6FMKvbpH.js} +1 -1
- package/dist/interface/assets/{Metrics-C8EucBD8.js → Metrics-SQdgeJrD.js} +1 -1
- package/dist/interface/assets/{OAuthDeviceFlow-BPl8Ol0d.js → OAuthDeviceFlow-Bx6YBLUX.js} +1 -1
- package/dist/interface/assets/{Plugin-DGXAz6ID.js → Plugin-CsT7_OZp.js} +1 -1
- package/dist/interface/assets/{PluginConsole-C-OYBgoX.js → PluginConsole-C6xky2l3.js} +1 -1
- package/dist/interface/assets/{PluginDetail-jnxv0aEv.js → PluginDetail-Bz65OQlN.js} +2 -2
- package/dist/interface/assets/{PluginSchema-DWvIHRcH.js → PluginSchema-D5dmitq0.js} +1 -1
- package/dist/interface/assets/PluginSearch-CrzD6rwo.js +1 -0
- package/dist/interface/assets/{PluginSearch-4DArZA-1.js → PluginSearch-DKSrC539.js} +2 -2
- package/dist/interface/assets/{PluginUpdateProgress-Co2Q3sTn.js → PluginUpdateProgress-Cj4Ilm8M.js} +1 -1
- package/dist/interface/assets/{Plugins-CX35AoGP.js → Plugins-BvuGEkhs.js} +1 -1
- package/dist/interface/assets/{Recordings-edUqNrNY.js → Recordings-6MHDmY05.js} +1 -1
- package/dist/interface/assets/{SensorEdit-B_23v49k.js → SensorEdit-BBTdSbok.js} +1 -1
- package/dist/interface/assets/{SensorHistory-CoMfC6Fx.js → SensorHistory-BmGYTFWx.js} +1 -1
- package/dist/interface/assets/{Sensors-CFJX3XaI.js → Sensors-XQLst9D2.js} +2 -2
- package/dist/interface/assets/{Settings-BH-IbtGi.js → Settings-B-lq2Bls.js} +1 -1
- package/dist/interface/assets/{SettingsAccount-B665agGW.js → SettingsAccount-BwC-JLu1.js} +1 -1
- package/dist/interface/assets/SettingsAccount-D8txIS7w.js +1 -0
- package/dist/interface/assets/SettingsAppearance-D1PEIzvU.js +1 -0
- package/dist/interface/assets/{SettingsAppearance-JbKDfSiu.js → SettingsAppearance-DMhqHxXU.js} +1 -1
- package/dist/interface/assets/{SettingsAssistant-CcjD56Pd.js → SettingsAssistant-C_9kjVnu.js} +1 -1
- package/dist/interface/assets/{SettingsBackup-DNDyM2p5.js → SettingsBackup-C9clJ_2F.js} +1 -1
- package/dist/interface/assets/{SettingsList-C9cI0Flx.js → SettingsList-Ba5TjVzD.js} +1 -1
- package/dist/interface/assets/{SettingsMqtt-Bh6bhYa0.js → SettingsMqtt-4tFIdfzL.js} +1 -1
- package/dist/interface/assets/{SettingsNotifications-B6wReKt5.js → SettingsNotifications-DhXKEfw0.js} +1 -1
- package/dist/interface/assets/{SettingsRecordings-CVdOQF8g.js → SettingsRecordings-BqRtaATr.js} +1 -1
- package/dist/interface/assets/{SettingsRemote-CEUmUMfH.js → SettingsRemote-9YXNd_d3.js} +1 -1
- package/dist/interface/assets/{SettingsSystem-BoPBhsJr.js → SettingsSystem-CwlTgN12.js} +2 -2
- package/dist/interface/assets/{SettingsUsers-DsBxZ-Tq.js → SettingsUsers-DOUvMVjf.js} +1 -1
- package/dist/interface/assets/{Terminal-DlJD6leH.js → Terminal-BoMq8civ.js} +1 -1
- package/dist/interface/assets/{Training-CfSPxQgA.js → Training-DQP1EUdI.js} +1 -1
- package/dist/interface/assets/{Updates-BV7OHWjC.js → Updates-Cceza_vs.js} +1 -1
- package/dist/interface/assets/{VersionsHandler-DYZDc3SX.js → VersionsHandler-D3ugTFh9.js} +1 -1
- package/dist/interface/assets/{VirtualSensorCreate-B1B2frUr.js → VirtualSensorCreate-VIHqPQuq.js} +1 -1
- package/dist/interface/assets/{Workers-BBIGwhRS.js → Workers-CJXGSHP0.js} +1 -1
- package/dist/interface/assets/api-0KzHya6g.js +4 -0
- package/dist/interface/assets/{api-BA88nyEF.js → api-C4b9FQa5.js} +1 -1
- package/dist/interface/assets/{assistant-Ba5Ac9Nh.js → assistant-DfBoMwZZ.js} +1 -1
- package/dist/interface/assets/{auth-YWWYJni-.js → auth-jXwc9evv.js} +1 -1
- package/dist/interface/assets/{automations-BPmaAqhX.js → automations-Bx7_-5ll.js} +1 -1
- package/dist/interface/assets/cloudHandoff-DzrB62Ot.js +1 -0
- package/dist/interface/assets/{config-BfTF54hH.js → config-4L2n-1_z.js} +1 -1
- package/dist/interface/assets/main-BREBoPYq.js +3 -0
- package/dist/interface/assets/{main-CbPa_jky.css → main-XHFrBKKz.css} +1 -1
- package/dist/interface/assets/{mqtt-DHY_na1K.js → mqtt-DEt78fr7.js} +1 -1
- package/dist/interface/assets/{notifications-D2QwzHwL.js → notifications-mJrKtTFp.js} +1 -1
- package/dist/interface/assets/{plugins-EdSbk-EV.js → plugins-IMJg5aI8.js} +1 -1
- package/dist/interface/assets/{rooms-Cg8aq9k9.js → rooms-Dt3X1UEj.js} +1 -1
- package/dist/interface/assets/{sensorIcons-DJTgAwaE.js → sensorIcons-Dwg45YYo.js} +1 -1
- package/dist/interface/assets/{sensors-KDhClJkT.js → sensors-DG-GPuvr.js} +1 -1
- package/dist/interface/assets/{server-BZUgxc3a.js → server-CFtdMCM4.js} +1 -1
- package/dist/interface/assets/{theme-BPfSpHbW.js → theme-C8wlVvxI.js} +1 -1
- package/dist/interface/assets/{types-zwRUIzRx.js → types-B5ZroTch.js} +1 -1
- package/dist/interface/assets/{ungrouped-IUmtQN_P.js → ungrouped-CH2Ug0hy.js} +1 -1
- package/dist/interface/assets/{updates-DBcWStos.js → updates-DqHYjhVs.js} +1 -1
- package/dist/interface/assets/{useAppVersion-CnkrpDgi.js → useAppVersion-iJHv6EYQ.js} +1 -1
- package/dist/interface/assets/{useBackupRestore-DMO3YoI3.js → useBackupRestore-5E-Y8DMu.js} +1 -1
- package/dist/interface/assets/{useCameraOptions-Dka0PweD.js → useCameraOptions-DVcUIXzh.js} +1 -1
- package/dist/interface/assets/{useKeyboardInset--YIaX3ui.js → useKeyboardInset-DpxykA20.js} +1 -1
- package/dist/interface/assets/{useLogsSocket-CuBhuz2x.js → useLogsSocket-D2gJ0e00.js} +1 -1
- package/dist/interface/assets/{useNavLayout-DqfVqch5.js → useNavLayout-D-KmCM3U.js} +1 -1
- package/dist/interface/assets/{usePluginUpdates-Bd9aG0m4.js → usePluginUpdates-D0bz8TeJ.js} +1 -1
- package/dist/interface/assets/{usePushRegistration-CRfLAqg_.js → usePushRegistration-B9vouC4k.js} +1 -1
- package/dist/interface/assets/{useServerRestart-dZl5kp-p.js → useServerRestart-CaYRL38s.js} +1 -1
- package/dist/interface/assets/{useStreamStatus-CUhV9eYE.js → useStreamStatus-BSl9TJlX.js} +1 -1
- package/dist/interface/assets/{useTabSwipe-CygERn8O.js → useTabSwipe-B6GIPOrZ.js} +1 -1
- package/dist/interface/assets/{useUpdateChannel-DWFsxlIH.js → useUpdateChannel-BuIKUKQ9.js} +1 -1
- package/dist/interface/assets/{useUpdatesSocket-DrvP72pd.js → useUpdatesSocket-B8F-9tUI.js} +1 -1
- package/dist/interface/assets/{useUserOptions-RG_d0mku.js → useUserOptions-9Lcq7htw.js} +1 -1
- package/dist/interface/ha/{404-BhFXBx4d.js → 404-BA6DAi0I.js} +1 -1
- package/dist/interface/ha/{About-D2u_8ssN.js → About-D3tEPbYC.js} +3 -3
- package/dist/interface/ha/{Assistant-DlUU6WbS.js → Assistant-BSlIm7T1.js} +1471 -1426
- package/dist/interface/ha/{Automation-Dddvbd8Y.js → Automation-B7ZCtbpe.js} +26 -26
- package/dist/interface/ha/{AutomationImport-C8QyqnLL.js → AutomationImport-CVEGBlET.js} +6 -6
- package/dist/interface/ha/{AutomationStore-BbcWkMlV.js → AutomationStore-hW-ReFbV.js} +4 -4
- package/dist/interface/ha/{AutomationStoreDetail-C6wqQI8t.js → AutomationStoreDetail-R-1XPudW.js} +6 -6
- package/dist/interface/ha/{Automations-BL3XKISI.js → Automations-9CLEXB1U.js} +3 -3
- package/dist/interface/ha/{Camera-DjdtVIDf.js → Camera-CQK1LgJe.js} +3 -3
- package/dist/interface/ha/{CameraConsole-D_9KgIy6.js → CameraConsole-C6CZ3tzc.js} +3 -3
- package/dist/interface/ha/{Cameras-BRKa0gO0.js → Cameras-Bw_Co8e9.js} +6 -6
- package/dist/interface/ha/{Camview-ugcvjRhF.js → Camview-fb7D6KvD.js} +3 -3
- package/dist/interface/ha/{Config-GkoXI3ND.js → Config-Cf0XlhJ-.js} +6 -6
- package/dist/interface/ha/{ConfigActionAssistant-FdyhQC1g.js → ConfigActionAssistant-BtnJwaka.js} +4 -4
- package/dist/interface/ha/{ConfigActionCameraControl-CfM81AXm.js → ConfigActionCameraControl-B1NtlCI4.js} +3 -3
- package/dist/interface/ha/{ConfigActionHttp-DwPoY52J.js → ConfigActionHttp-BpI7XQC3.js} +2 -2
- package/dist/interface/ha/{ConfigActionImageInput-Bgcc8iTW.js → ConfigActionImageInput-tLzrOm0l.js} +1 -1
- package/dist/interface/ha/{ConfigActionMqtt-Do3Lc6-c.js → ConfigActionMqtt-DIuCKfQL.js} +4 -4
- package/dist/interface/ha/{ConfigActionNotification-B_0IACMJ.js → ConfigActionNotification-CotMZbgF.js} +3 -3
- package/dist/interface/ha/{ConfigActionNotificationControl-dC7lQqHI.js → ConfigActionNotificationControl-ClnOPBa2.js} +2 -2
- package/dist/interface/ha/{ConfigActionOutput-BCQUuCL3.js → ConfigActionOutput-DFRh3xK2.js} +1 -1
- package/dist/interface/ha/{ConfigActionPlugin-ClGszpNQ.js → ConfigActionPlugin-BSUdCGwz.js} +4 -4
- package/dist/interface/ha/{ConfigActionSensor-DuQR6Yu4.js → ConfigActionSensor-B-PHlt11.js} +4 -4
- package/dist/interface/ha/{ConfigActionSnapshot-E7Hp07Q0.js → ConfigActionSnapshot-DomyiKiQ.js} +2 -2
- package/dist/interface/ha/{ConfigActionVariable-CHkWJ76e.js → ConfigActionVariable-D4QZ0GSg.js} +1 -1
- package/dist/interface/ha/{ConfigConditionIfElse-BBgNDLpw.js → ConfigConditionIfElse-Din_LVbb.js} +3 -3
- package/dist/interface/ha/{ConfigConditionSensorState-BiFmpbMg.js → ConfigConditionSensorState-cnMbVYSj.js} +4 -4
- package/dist/interface/ha/{ConfigConditionSwitch-BZp4hCmz.js → ConfigConditionSwitch-nLCPZ02V.js} +3 -3
- package/dist/interface/ha/{ConfigSensorValueInput-CI_4-6-o.js → ConfigSensorValueInput-CrZoNX72.js} +2 -2
- package/dist/interface/ha/{ConfigTriggerDetection-D5Yfd6nh.js → ConfigTriggerDetection-MsrbiErr.js} +2 -2
- package/dist/interface/ha/{ConfigTriggerGeofence-BuadOROr.js → ConfigTriggerGeofence-BxQ0n4-f.js} +2 -2
- package/dist/interface/ha/{ConfigTriggerMqtt-DKr9Lje8.js → ConfigTriggerMqtt-ti8xd7vF.js} +1 -1
- package/dist/interface/ha/{ConfigTriggerSensor-DGYJoRq9.js → ConfigTriggerSensor-CNlsV9yo.js} +1 -1
- package/dist/interface/ha/{ConfigTriggerSystem-HXnm4_7F.js → ConfigTriggerSystem-CsULDPX-.js} +2 -2
- package/dist/interface/ha/{ConfigTriggerWebhook-DBxcAAJI.js → ConfigTriggerWebhook-BnUer9x_.js} +1 -1
- package/dist/interface/ha/{Console-BMvw2vXY.js → Console-B1Y6mBPP.js} +2 -2
- package/dist/interface/ha/{CuiAutomationRunsDialog-QNvLMPna.js → CuiAutomationRunsDialog-BHJIQ0Tj.js} +2 -2
- package/dist/interface/ha/{CuiBottomSheet-CnDN0_Tp.js → CuiBottomSheet-DyCegs0G.js} +1 -1
- package/dist/interface/ha/{CuiCameraRecordings-B4yap0Gu.js → CuiCameraRecordings-Cfzu3-OA.js} +2 -2
- package/dist/interface/ha/{CuiCameraShares-nPodkk2P.js → CuiCameraShares-CE2Z9Osp.js} +2 -2
- package/dist/interface/ha/{CuiCameraTable-IsutvZcy.js → CuiCameraTable-DCm-DNjq.js} +2 -2
- package/dist/interface/ha/{CuiChartTable-Dd0_sAge.js → CuiChartTable-BYkhLvXA.js} +3 -3
- package/dist/interface/ha/{CuiConsole-BZVHMf0M.js → CuiConsole-DTDUpQ_E.js} +1 -1
- package/dist/interface/ha/{CuiDataTable--yJTTWKH.js → CuiDataTable-Cxk-gD0O.js} +1 -1
- package/dist/interface/ha/{CuiPluginCard-D3hHRaFf.js → CuiPluginCard-CaJWPBXm.js} +6 -6
- package/dist/interface/ha/{CuiPluginOAuthButton-Dv9K7ZbU.js → CuiPluginOAuthButton--RbsaIiq.js} +2 -2
- package/dist/interface/ha/{CuiPluginTrustBadge-8HRs2vnR.js → CuiPluginTrustBadge-G79t87hq.js} +1 -1
- package/dist/interface/ha/{CuiQRCode-CfLMS7k7.js → CuiQRCode-C0o0cS3C.js} +2 -2
- package/dist/interface/ha/{CuiSchema-CCrY2Lx-.js → CuiSchema-BmfjaboJ.js} +2 -2
- package/dist/interface/ha/{CuiTopNavbarItem-CRls6-wE.js → CuiTopNavbarItem-KlOpTPMA.js} +1 -1
- package/dist/interface/ha/{Faces-DRaKBXFa.js → Faces-CG1S8jsV.js} +2 -2
- package/dist/interface/ha/{FirstSteps-Dyq-VE0F.js → FirstSteps-B4cODn_E.js} +4 -4
- package/dist/interface/ha/{Floorplan-euEQQ_Wp.js → Floorplan-CM5cL4_h.js} +4 -4
- package/dist/interface/ha/{Instances-DRLfaxS6.js → Instances-B1KAGADd.js} +1 -1
- package/dist/interface/ha/{Logs-CCK0wJOu.js → Logs-CNVJvujx.js} +6 -6
- package/dist/interface/ha/{Menu-DUlknRU8.js → Menu-hlaVYE5G.js} +2 -2
- package/dist/interface/ha/{Metrics-R6cm39jI.js → Metrics-CUllrnJc.js} +7 -7
- package/dist/interface/ha/{OAuthDeviceFlow-qpAW51DL.js → OAuthDeviceFlow-kYPoT4p2.js} +2 -2
- package/dist/interface/ha/{Plugin-C_ucUCim.js → Plugin-QvBE-VHD.js} +5 -5
- package/dist/interface/ha/{PluginConsole-B3biAENv.js → PluginConsole-Cpd8sx5a.js} +4 -4
- package/dist/interface/ha/{PluginDetail-tIUv1KCl.js → PluginDetail-CqSaIeH-.js} +5 -5
- package/dist/interface/ha/{PluginSearch-BoqtcJfg.js → PluginSearch-C-3nAbyu.js} +4 -4
- package/dist/interface/ha/{PluginUpdateProgress-Ci0J6dHX.js → PluginUpdateProgress-Izcgxa6-.js} +3 -3
- package/dist/interface/ha/{Plugins-LE7-xUCl.js → Plugins-BkvUlAHi.js} +7 -7
- package/dist/interface/ha/{Recordings-DbvAT7YJ.js → Recordings-BSR6AGq2.js} +3 -3
- package/dist/interface/ha/{SensorEdit-BqEjosUi.js → SensorEdit-KLS5N1YP.js} +2 -2
- package/dist/interface/ha/{SensorHistory-DXV4mdTs.js → SensorHistory-nHGwqzDW.js} +2 -2
- package/dist/interface/ha/{Sensors-Bcs1GBQJ.js → Sensors-VAy09hDh.js} +3 -3
- package/dist/interface/ha/{Settings-BwomsDjK.js → Settings-DINmP-PB.js} +2 -2
- package/dist/interface/ha/{SettingsAccount-0onAlHuN.js → SettingsAccount-B-3XO53P.js} +4 -4
- package/dist/interface/ha/{SettingsAppearance-DBOsOLUc.js → SettingsAppearance-B7ONsdV3.js} +3 -3
- package/dist/interface/ha/{SettingsAssistant-Cfsd5Uw6.js → SettingsAssistant-VQkALMWq.js} +4 -4
- package/dist/interface/ha/{SettingsBackup-hj8iLx0k.js → SettingsBackup-CRzyW7Ce.js} +2 -2
- package/dist/interface/ha/{SettingsList-B3ri6DQ2.js → SettingsList-GWb7HKeq.js} +1 -1
- package/dist/interface/ha/{SettingsMqtt-BjsuWyUa.js → SettingsMqtt-Db8CUtzi.js} +2 -2
- package/dist/interface/ha/{SettingsNotifications-DVgF5Rri.js → SettingsNotifications-lNH9mh9I.js} +3 -3
- package/dist/interface/ha/{SettingsRecordings-BFhs0muG.js → SettingsRecordings-s52rT7TX.js} +3 -3
- package/dist/interface/ha/{SettingsRemote-B2Ei9dR1.js → SettingsRemote-DYUJdmKW.js} +4 -4
- package/dist/interface/ha/{SettingsSystem-CXTNGd2y.js → SettingsSystem-Bkfc5Tky.js} +7 -7
- package/dist/interface/ha/{SettingsUsers-CgPnsdzW.js → SettingsUsers-BHLsFMG9.js} +3 -3
- package/dist/interface/ha/{Terminal-Dwmdp2vt.js → Terminal-CDZjjg7e.js} +2 -2
- package/dist/interface/ha/{Training-CdzQ1WtN.js → Training-BbRm4L9a.js} +1 -1
- package/dist/interface/ha/{Updates-CTU4JiFI.js → Updates-DM5YITjv.js} +4 -4
- package/dist/interface/ha/{VariableInput-C2qGWTPn.js → VariableInput-DOiVQbEb.js} +1 -1
- package/dist/interface/ha/{VersionsHandler-Z7RAUdO5.js → VersionsHandler-CjzF5jII.js} +8 -8
- package/dist/interface/ha/{VirtualSensorCreate-BsRO9E1F.js → VirtualSensorCreate-q7b13gfi.js} +1 -1
- package/dist/interface/ha/{Workers-D_jtMnzt.js → Workers-Vf16lK9P.js} +6 -6
- package/dist/interface/ha/{api-i97kvGtZ.js → api-Bnk0paIs.js} +1 -1
- package/dist/interface/ha/{api-DRr9pyiA.js → api-C0pVlzsW.js} +6 -2
- package/dist/interface/ha/{assistant-DT5mH0IU.js → assistant-DJPdidEd.js} +1 -1
- package/dist/interface/ha/{auth-Dd-U6Sx5.js → auth-CmCJIpis.js} +1 -1
- package/dist/interface/ha/{automationBlueprint-Bp5haBxv.js → automationBlueprint-CtX7AOzy.js} +1 -1
- package/dist/interface/ha/cameraui-cards.js +1 -1
- package/dist/interface/ha/{cards-B_qaT-id.js → cards-Cn0baEOx.js} +4 -4
- package/dist/interface/ha/{config-Cdjp82J6.js → config-DxaLI3Wy.js} +1 -1
- package/dist/interface/ha/{mqtt--xCEEs7T.js → mqtt-BSUalkMz.js} +1 -1
- package/dist/interface/ha/{notifications-ByL47yWP.js → notifications-DuVSTES6.js} +1 -1
- package/dist/interface/ha/{plugins-OikBHddG.js → plugins-XTsvVLj3.js} +1 -1
- package/dist/interface/ha/{rooms-CMwrVqJO.js → rooms-Ch5UrfPN.js} +1 -1
- package/dist/interface/ha/{server-Byevi9ww.js → server-h-kQ6sSS.js} +1 -1
- package/dist/interface/ha/{types-D1-pD0Vp.js → types-DjunpV_X.js} +1 -1
- package/dist/interface/ha/{ungrouped-a_k9QFxB.js → ungrouped-DkDSBlpG.js} +1 -1
- package/dist/interface/ha/{updates-DapEyqmr.js → updates-D0cNiMIr.js} +5 -5
- package/dist/interface/ha/{useAppVersion-CBK74lkV.js → useAppVersion-Cpv2npEz.js} +1 -1
- package/dist/interface/ha/{useLogsSocket-DsxXBViV.js → useLogsSocket-Du83S3Wz.js} +1 -1
- package/dist/interface/ha/{useNavLayout-D24L7VNu.js → useNavLayout-XBJRTK3F.js} +1 -1
- package/dist/interface/ha/{useServerRestart-qTNapyIx.js → useServerRestart-CWhJrEyy.js} +1 -1
- package/dist/interface/ha/{useTabSwipe-DEha11Zv.js → useTabSwipe-BSlykGzV.js} +1 -1
- package/dist/interface/ha/{useUpdateChannel-DI-Ki0yH.js → useUpdateChannel-DZttbpyK.js} +2 -2
- package/dist/interface/ha/{useUpdatesSocket-CKUgku1R.js → useUpdatesSocket-DI15Udke.js} +1 -1
- package/dist/interface/ha/{useUserOptions-BY-pcxd_.js → useUserOptions-CQL8tMr4.js} +1 -1
- package/dist/interface/index.html +24 -24
- package/dist/interface/sw.js +1 -1
- package/dist/server/package.json +1 -1
- package/dist/server/src/assistant/manager.js +23 -4
- package/dist/server/src/assistant/manager.js.map +1 -1
- package/dist/server/src/assistant/uploads.js +21 -1
- package/dist/server/src/assistant/uploads.js.map +1 -1
- package/package.json +1 -1
- package/dist/interface/assets/CuiAssistantConversation-DcPtJCQY.js +0 -5
- package/dist/interface/assets/CuiBottomSheet-DSf4fJTK.js +0 -1
- package/dist/interface/assets/CuiCameraTable-BgKbs8gK.js +0 -1
- package/dist/interface/assets/PluginSearch-oQ7-vW_I.js +0 -1
- package/dist/interface/assets/SettingsAccount-CXMp3Jle.js +0 -1
- package/dist/interface/assets/SettingsAppearance-CHerioe-.js +0 -1
- package/dist/interface/assets/api-DgcK7TwB.js +0 -4
- package/dist/interface/assets/cloudHandoff-Bk25i74p.js +0 -1
- package/dist/interface/assets/main-Ceiwp3VL.js +0 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Bt as e,It as t,Kt as n,L as r,Vr as i,q as a}from"./vendor-cameraui-zaB6gIk1.js";import{Cn as o,Cr as s,Ct as c,Ir as l,M as u,O as d,Rn as f,St as p,_ as m,ar as ee,g as h,i as g,it as te,l as ne,rr as re,z as ie}from"./api-DgcK7TwB.js";import{$n as _,C as ae,Cn as v,Cr as y,Dn as b,Hn as oe,In as x,Jn as se,Pn as ce,Rn as S,S as C,Xt as w,_r as T,cn as E,dn as D,dr as O,er as le,gn as k,hn as ue,ln as A,mr as de,or as j,rn as fe,sn as M,sr as N,un as P,vn as F,x as I,yr as L}from"./vendor-CP-WYrgy.js";import{i as R,r as pe}from"./vendor-zod-BMOt_yT8.js";import{p as me}from"./vendor-core-CfoDuMvj.js";import{K as he,L as ge,R as _e,S as ve,a as ye,s as be,u as xe,z as Se}from"./vendor-primevue-5HrOunkM.js";import{t as Ce}from"./CuiDataTable-DCCXx-KT.js";import{t as we}from"./CuiQRCode-CE5p3ucc.js";import{n as Te,t as z}from"./auth-YWWYJni-.js";var B={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function V(e,t){return x(),D(`svg`,B,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M7 14c-1.1 0-2-.9-2-2s.9-2 2-2s2 .9 2 2s-.9 2-2 2m5.6-4c-.8-2.3-3-4-5.6-4c-3.3 0-6 2.7-6 6s2.7 6 6 6c2.6 0 4.8-1.7 5.6-4H16v4h4v-4h3v-4z`},null,-1)]])}var Ee=N({name:`mdi-key`,render:V}),H={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function U(e,t){return x(),D(`svg`,H,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M17 19H7V5h10m0-4H7c-1.11 0-2 .89-2 2v18a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2`},null,-1)]])}var De=N({name:`mdi-cellphone`,render:U}),W={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function G(e,t){return x(),D(`svg`,W,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M22 18v4h-4v-3h-3v-3h-3l-2.26-2.26c-.55.17-1.13.26-1.74.26a6 6 0 0 1-6-6a6 6 0 0 1 6-6a6 6 0 0 1 6 6c0 .61-.09 1.19-.26 1.74zM7 5a2 2 0 0 0-2 2a2 2 0 0 0 2 2a2 2 0 0 0 2-2a2 2 0 0 0-2-2`},null,-1)]])}var Oe=N({name:`mdi-key-variant`,render:G}),ke={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ae(e,t){return x(),D(`svg`,ke,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M4 6h16v10H4m16 2a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H4c-1.11 0-2 .89-2 2v10a2 2 0 0 0 2 2H0v2h24v-2z`},null,-1)]])}var je=N({name:`mdi-laptop`,render:Ae}),Me={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ne(e,t){return x(),D(`svg`,Me,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M21 17H3V5h18m0-2H3a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h5v2h8v-2h5a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2`},null,-1)]])}var Pe=N({name:`mdi-television`,render:Ne}),Fe={class:`flex flex-col gap-6`},Ie={class:`token-box`},Le={class:`token-value`},Re=f(F({__name:`ApiTokenCreated`,props:{token:{}},setup(t,{expose:r}){let a=t,o=l(),{t:s}=i(),{token:c}=T(a);async function u(){await g(c.value)?o.add({severity:`success`,detail:s(`components.toast.copied`),life:1500}):o.add({severity:`error`,detail:s(`components.toast.copy_failed`),life:3e3})}async function d(){}return r({onConfirm:d}),(t,r)=>{let i=Se,a=e,o=n;return x(),D(`div`,Fe,[k(i,{severity:`warn`},{default:_(()=>[ue(y(t.$t(`views.settings.api_tokens.created_warning`)),1)]),_:1}),E(`div`,Ie,[E(`span`,Le,y(L(c)),1),le((x(),A(a,{text:``,rounded:``,class:`cui-icon-md shrink-0`,onClick:u},{icon:_(()=>[k(L(p),{width:`100%`,height:`100%`})]),_:1})),[[o,{value:t.$t(`components.form.button.copy`)}]])])])}}}),[[`__scopeId`,`data-v-591cfcb4`]]),ze={class:`flex flex-col gap-2 w-full`},Be={for:`apiTokenName`,class:`cui-label`},Ve={key:0,class:`text-xs text-red-500`},He=F({__name:`CreateApiToken`,props:{existingNames:{}},setup(e,{expose:t}){let n=e,i=O(``),a=M(()=>n.existingNames.includes(i.value.trim()));return t({onConfirm:async()=>{let e=i.value.trim();return!e||a.value?null:e}}),(e,t)=>{let n=r;return x(),D(`div`,ze,[E(`label`,Be,y(e.$t(`views.settings.api_tokens.name_label`)),1),k(n,{id:`apiTokenName`,modelValue:L(i),"onUpdate:modelValue":t[0]||=e=>j(i)?i.value=e:null,class:`w-full`,placeholder:e.$t(`views.settings.api_tokens.name_placeholder`),autofocus:``,invalid:L(a)},null,8,[`modelValue`,`placeholder`,`invalid`]),L(a)?(x(),D(`span`,Ve,y(e.$t(`views.settings.api_tokens.name_exists`)),1)):P(``,!0)])}}}),Ue={class:`flex flex-col gap-6`},We={class:`backup-codes-grid`},Ge=f(F({__name:`TwoFactorBackupCodes`,props:{backupCodes:{}},setup(e,{expose:t}){let{backupCodes:n}=T(e);async function r(){}return t({onConfirm:r}),(e,t)=>{let r=Se;return x(),D(`div`,Ue,[k(r,{severity:`warn`},{default:_(()=>[ue(y(e.$t(`views.settings.security.backup_warning`)),1)]),_:1}),E(`div`,We,[(x(!0),D(fe,null,S(L(n),e=>(x(),D(`span`,{key:e,class:`backup-code`},y(e),1))),128))])])}}}),[[`__scopeId`,`data-v-0761a2ae`]]),Ke={class:`flex flex-col gap-6`},qe={class:`text-muted`},Je={class:`flex flex-col gap-2 justify-center items-center mt-5`},Ye={class:`cui-label`},Xe=F({__name:`TwoFactorDisable`,setup(e,{expose:t}){let n=new z,r=l(),{t:a}=i(),o=v(`dialogRefProps`),{mutateAsync:s,isPending:c}=n.disable2FAQuery(),u=O(``),d=M(()=>!!(o.loading?.value||c.value)),f=M(()=>u.value.length<6);async function p(){if(u.value.length<6)return null;try{await s({code:u.value}),r.add({severity:`success`,detail:a(`views.settings.security.2fa_disabled_success`),life:3e3})}catch(e){return r.add({severity:`error`,detail:e,life:3e3}),null}}return t({isLoading:d,isDisabled:f,onConfirm:p}),(e,t)=>{let n=xe;return x(),D(`div`,Ke,[E(`p`,qe,y(e.$t(`views.settings.security.disable_confirm`)),1),E(`div`,Je,[E(`label`,Ye,y(e.$t(`views.settings.security.enter_code`)),1),k(n,{modelValue:L(u),"onUpdate:modelValue":t[0]||=e=>j(u)?u.value=e:null,length:6,"integer-only":``,class:`justify-center`},null,8,[`modelValue`])])])}}}),Ze={class:`flex flex-col gap-6`},Qe={class:`text-muted`},K={class:`flex flex-col gap-2 justify-center items-center mt-5`},q={class:`cui-label`},$e=F({__name:`TwoFactorRegenerate`,props:{onBackupCodesGenerated:{type:Function}},setup(e,{expose:t}){let n=new z,r=e,a=l(),{t:o}=i(),s=v(`dialogRefProps`),{mutateAsync:c,isPending:u}=n.regenerateBackupCodesQuery(),d=O(``),f=M(()=>!!(s.loading?.value||u.value)),p=M(()=>d.value.length<6);async function m(){if(d.value.length<6)return null;try{let e=await c({code:d.value});a.add({severity:`success`,detail:o(`views.settings.security.backup_regenerated`),life:3e3}),r.onBackupCodesGenerated&&r.onBackupCodesGenerated(e.backupCodes)}catch(e){return a.add({severity:`error`,detail:e,life:3e3}),null}}return t({isLoading:f,isDisabled:p,onConfirm:m}),(e,t)=>{let n=xe;return x(),D(`div`,Ze,[E(`p`,Qe,y(e.$t(`views.settings.security.regenerate_confirm`)),1),E(`div`,K,[E(`label`,q,y(e.$t(`views.settings.security.enter_code`)),1),k(n,{modelValue:L(d),"onUpdate:modelValue":t[0]||=e=>j(d)?d.value=e:null,length:6,"integer-only":``,class:`justify-center`},null,8,[`modelValue`])])])}}}),et={class:`flex flex-col w-full gap-6`},tt={class:`relative`},nt={class:`image-upload rounded-full z-1`},rt={for:`file-input`},it={class:`card-title`},at={class:`flex flex-col gap-6`},ot={for:`username`,class:`cui-label`},st={class:`card-title`},ct={class:`flex flex-col gap-6`},lt={for:`password`,class:`cui-label`},ut={for:`passwordConfirm`,class:`cui-label`},dt={class:`relative`},ft={class:`image-upload rounded-full z-1`},pt={for:`file-input`},mt={class:`card-title`},ht={class:`flex flex-col gap-6`},gt={class:`flex flex-col field-gap`},_t={for:`username`,class:`cui-label`},vt={class:`flex flex-row items-end justify-end`},yt={class:`card-title`},bt={for:`password`,class:`cui-label`},xt={for:`passwordConfirm`,class:`cui-label`},St={class:`flex flex-row items-end justify-end`},Ct={class:`card-title`},wt={key:0,class:`flex justify-center py-6`},Tt={key:`initial`,class:`flex flex-col gap-6`},Et={class:`flex flex-col gap-1`},Dt={class:`tfa-row-title`},Ot={class:`tfa-row-description`},kt={key:`loading`,class:`flex flex-col items-center py-8 gap-3`},At={class:`text-sm text-muted`},jt={key:`setup`,class:`tfa-setup`},Mt={class:`tfa-setup-qr`},Nt={class:`text-sm text-muted text-center mt-3`},Pt={class:`flex flex-col gap-5 flex-1`},Ft={class:`flex flex-col field-gap`},It={class:`cui-label`},Lt={class:`flex flex-col field-gap`},Rt={class:`cui-label`},zt={class:`flex gap-2 justify-end`},Bt={key:`enabled`,class:`flex flex-col gap-6`},Vt={class:`tfa-row tfa-row-enabled`},Ht={class:`tfa-status-icon`},Ut={class:`tfa-row-content`},Wt={class:`tfa-row-title`},Gt={key:0,class:`tfa-backup-info`},Kt={class:`flex gap-2 justify-end`},qt={key:0},Jt={class:`card-title`},Yt={class:`flex items-center gap-4`},Xt={class:`flex flex-col field-switch-gap min-w-0`},Zt={class:`text-sm font-bold text-color`},Qt={class:`card-title`},$t={class:`flex flex-col gap-6`},en={class:`text-sm text-muted`},tn={class:`text-muted text-sm`},nn={class:`flex items-center gap-3`},rn={class:`flex flex-col min-w-0`},an={class:`text-sm font-semibold text-color truncate`},on={class:`text-xs text-muted truncate font-mono`},sn={class:`text-xs text-muted`},cn={class:`flex flex-row items-end justify-end gap-2`},ln={class:`card-title`},un={class:`flex flex-col gap-6`},dn={class:`text-muted text-sm`},fn={class:`flex items-center gap-3`},pn={class:`flex flex-col min-w-0`},mn={class:`flex items-center gap-2`},hn={class:`text-sm font-semibold text-color truncate`},gn={class:`text-xs text-muted truncate`},_n={key:0,class:`flex flex-row items-end justify-end gap-2`},J=f(F({__name:`SettingsAccount`,props:{firststeps:{type:Boolean}},setup(f,{expose:v}){let S=new z,N=f,F=te(),B=l(),{t:V}=i(),{firststeps:H}=T(N),U=m(),{user:W}=me(U),{data:G,isLoading:ke}=S.toggleQueryActivator(`get2FAStatusQuery`,!H.value).get2FAStatusQuery(),{mutateAsync:Ae,isPending:Me}=S.setup2FAQuery(),{mutateAsync:Ne,isPending:Fe}=S.enable2FAQuery(),{data:Ie,isBusy:Le}=S.toggleQueryActivator(`listSessionsQuery`,!H.value).listSessionsQuery({page:1,pageSize:-1}),{mutateAsync:ze}=S.revokeSessionQuery(),{mutateAsync:Be}=S.revokeOtherSessionsQuery(),{data:Ve,isBusy:Ue}=S.toggleQueryActivator(`listApiTokensQuery`,!H.value).listApiTokensQuery(),{mutateAsync:We,isPending:Ke}=S.createApiTokenQuery(),{mutateAsync:qe}=S.revokeApiTokenQuery(),Je=pe({password:d,passwordConfirm:R().min(1)}).refine(e=>e.password===e.passwordConfirm,{message:`Passwords do not match`,path:[`passwordConfirm`]}),Ye=pe({username:R().min(1),password:d,passwordConfirm:R().min(1)}).refine(e=>e.password===e.passwordConfirm,{message:`Passwords do not match`,path:[`passwordConfirm`]}),Ze=se(`formRef`),Qe=se(`passwordFormRef`),K=de(),q=O(`avatar`),J=O(W.value?.username??``),Y=O(!1),X=O(!1),Z=O(null),Q=O(``),vn=O(null),yn=O(!1),bn=O(null);O(!1);let xn=O(!1),$=O(!1),Sn=M(()=>!1),Cn={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}}},wn=M(()=>(Ie.value??[]).filter(e=>!e.is_current).length),Tn=M(()=>!Z.value?.secret||!W.value?.username?``:`otpauth://totp/${encodeURIComponent(`camera.ui:${W.value.username}`)}?secret=${Z.value.secret}&issuer=camera.ui`);async function En(){Z.value?.secret&&await g(Z.value.secret)}function Dn(e){return e===`tv`?Pe:e===`native`?De:je}async function On(e){vn.value=e;try{await ze({id:e})}catch(e){B.add({severity:`error`,detail:e,life:3e3})}finally{vn.value=null}}function kn(){F.openComponentDialog(He,{data:{title:V(`views.settings.api_tokens.create`),confirmText:V(`views.settings.api_tokens.create_confirm`),contentProps:{existingNames:(Ve.value??[]).map(e=>e.name)}},onConfirm:async e=>{if(e)try{An((await We({name:e})).token)}catch(e){B.add({severity:`error`,detail:e,life:3e3})}}})}function An(e){F.openComponentDialog(Re,{data:{title:V(`views.settings.api_tokens.created_title`),confirmText:V(`components.form.button.close`),hideCancelButton:!0,contentProps:{token:e}}})}function jn(e){F.openTextDialog({data:{title:V(`views.settings.api_tokens.revoke_title`),contentText:V(`views.settings.api_tokens.revoke_confirm`,{name:e.name}),confirmText:V(`views.settings.api_tokens.revoke`),confirmButtonProps:{severity:`danger`}},onConfirm:async()=>{bn.value=e.id;try{await qe({id:e.id})}catch(e){B.add({severity:`error`,detail:e,life:3e3})}finally{bn.value=null}}})}function Mn(){F.openTextDialog({data:{title:V(`views.settings.active_sessions.revoke_others_title`),contentText:V(`views.settings.active_sessions.revoke_others_confirm`,{count:wn.value}),confirmText:V(`views.settings.active_sessions.revoke`),confirmButtonProps:{severity:`danger`}},onConfirm:async()=>{yn.value=!0;try{await Be()}catch(e){B.add({severity:`error`,detail:e,life:3e3})}finally{yn.value=!1}}})}async function Nn(){try{Z.value=await Ae()}catch(e){B.add({severity:`error`,detail:e,life:3e3})}}function Pn(){Z.value=null,Q.value=``}async function Fn(){try{let e=await Ne({code:Q.value});Z.value=null,Q.value=``,B.add({severity:`success`,detail:V(`views.settings.security.2fa_enabled_success`),life:3e3}),Rn(e.backupCodes)}catch(e){B.add({severity:`error`,detail:e,life:3e3})}}function In(){F.openComponentDialog(Xe,{data:{title:V(`views.settings.security.disable_2fa`),confirmText:V(`views.settings.security.disable_2fa`),confirmButtonProps:{severity:`danger`},contentProps:{}}})}function Ln(){F.openComponentDialog($e,{data:{title:V(`views.settings.security.regenerate_backup`),confirmText:V(`views.settings.security.regenerate_backup`),contentProps:{onBackupCodesGenerated:e=>{Rn(e)}}}})}function Rn(e){F.openComponentDialog(Ge,{data:{title:V(`views.settings.security.backup_codes`),confirmText:V(`components.form.button.close`),hideCancelButton:!0,contentProps:{backupCodes:e}}})}async function zn(e){let t=e.target?.files;K.value=t?.[0],q.value=await h(e)??q.value}async function Bn(){Y.value=!0;try{let e;K.value&&(e=new FormData,e.append(`upload`,K.value));let t=W.value?.username!==J.value;if(t)await U.updateUser({username:J.value},e);else if(e)await U.updateUser(void 0,e);else{Y.value=!1;return}B.add({severity:`success`,detail:V(`components.toast.profile_updated`),life:3e3}),K.value=void 0,t&&U.logout()}catch{}Y.value=!1}async function Vn(e){X.value=!0;try{await U.updateUser({password:e.password,passwordConfirm:e.passwordConfirm}),B.add({severity:`success`,detail:V(`components.toast.password_updated`),life:3e3}),Qe.value?.resetForm(),U.logout()}catch(e){B.add({severity:`error`,detail:e,life:3e3})}X.value=!1}async function Hn(){}async function Un(e){if(e!==xn.value){if(e){B.add({severity:`info`,detail:V(`views.settings.biometric.enable_hint`),life:3e3});return}$.value=!0;try{await u(s()),xn.value=!1,B.add({severity:`success`,detail:V(`views.settings.biometric.cleared`),life:3e3})}finally{$.value=!1}}}return ce(()=>{Hn()}),v({formRef:Ze}),(i,s)=>{let l=o,u=r,d=_e,f=a,m=be,h=e,g=t,te=we,v=c,se=ge,ce=xe,S=re,T=Ee,O=ee,de=Se,M=he,N=ve,F=ie,R=Ce,pe=ye,me=Te,z=n;return x(),D(`div`,null,[E(`div`,et,[L(H)?(x(),A(L(ae),{key:0,ref_key:`formRef`,ref:Ze,"validation-schema":L(Ye),class:`flex flex-col w-full gap-6`},{default:_(()=>[E(`div`,tt,[E(`div`,nt,[E(`label`,rt,[k(l,{src:L(q),size:64,"show-border":!1,class:`cursor-pointer`},null,8,[`src`]),E(`input`,{id:`file-input`,type:`file`,class:`hidden`,accept:`image/png,image/jpeg,image/jpg`,onChange:s[0]||=e=>zn(e)},null,32)])]),E(`span`,it,y(i.$t(`views.settings.profile`)),1),k(f,{class:`cui-card`},{content:_(()=>[E(`div`,at,[k(L(C),{"model-value":L(W)?.username,name:`username`,as:`div`,class:`flex flex-col field-gap`},{default:_(({field:e,errors:t})=>[E(`label`,ot,y(i.$t(`components.form.label.username`)),1),k(d,null,{default:_(()=>[k(u,b(e,{invalid:t.length>0,type:`text`}),null,16,[`invalid`])]),_:2},1024),k(w,{name:`fade`},{default:_(()=>[k(L(I),{name:`username`,class:`cui-input-error`})]),_:1})]),_:1},8,[`model-value`])])]),_:1})]),E(`div`,null,[E(`span`,st,y(i.$t(`views.settings.password`)),1),k(f,{class:`cui-card`},{content:_(()=>[E(`div`,ct,[k(L(C),{name:`password`,as:`div`,class:`flex flex-col field-gap`},{default:_(({field:e,errors:t})=>[E(`label`,lt,y(i.$t(`components.form.label.new_password`)),1),k(d,null,{default:_(()=>[k(m,b({invalid:t.length>0},e,{feedback:!1,"toggle-mask":``}),null,16,[`invalid`])]),_:2},1024),k(w,{name:`fade`},{default:_(()=>[k(L(I),{name:`password`,class:`cui-input-error`})]),_:1})]),_:1}),k(L(C),{name:`passwordConfirm`,as:`div`,class:`flex flex-col field-gap`},{default:_(({field:e,errors:t})=>[E(`label`,ut,y(i.$t(`components.form.label.new_password_confirm`)),1),k(d,null,{default:_(()=>[k(m,b({invalid:t.length>0},e,{feedback:!1,"toggle-mask":``}),null,16,[`invalid`])]),_:2},1024),k(w,{name:`fade`},{default:_(()=>[k(L(I),{name:`passwordConfirm`,class:`cui-input-error`})]),_:1})]),_:1})])]),_:1})])]),_:1},8,[`validation-schema`])):(x(),D(fe,{key:1},[E(`div`,dt,[E(`div`,ft,[E(`label`,pt,[k(l,{src:L(q),size:64,"show-border":!1,class:`cursor-pointer`},null,8,[`src`]),E(`input`,{id:`file-input`,type:`file`,class:`hidden`,accept:`image/png,image/jpeg,image/jpg`,onChange:s[1]||=e=>zn(e)},null,32)])]),E(`span`,mt,y(i.$t(`views.settings.profile`)),1),k(f,{class:`cui-card`},{content:_(()=>[E(`div`,ht,[E(`div`,gt,[E(`label`,_t,y(i.$t(`components.form.label.username`)),1),k(d,null,{default:_(()=>[k(u,{modelValue:L(J),"onUpdate:modelValue":s[2]||=e=>j(J)?J.value=e:null,loading:L(Y),type:`text`},null,8,[`modelValue`,`loading`])]),_:1})]),E(`div`,vt,[k(h,{loading:L(Y),class:`cui-button-medium`,label:i.$t(`components.form.button.update_profile`),onClick:Bn},null,8,[`loading`,`label`])])])]),_:1})]),E(`div`,null,[E(`span`,yt,y(i.$t(`views.settings.password`)),1),k(f,{class:`cui-card`},{content:_(()=>[k(L(ae),{ref_key:`passwordFormRef`,ref:Qe,"validation-schema":L(Je),class:`flex flex-col gap-6`,onSubmit:s[3]||=e=>Vn(e)},{default:_(()=>[k(L(C),{name:`password`,as:`div`,class:`flex flex-col field-gap`},{default:_(({field:e,errors:t})=>[E(`label`,bt,y(i.$t(`components.form.label.new_password`)),1),k(d,null,{default:_(()=>[k(m,b({invalid:t.length>0},e,{loading:L(X),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),k(w,{name:`fade`},{default:_(()=>[k(L(I),{name:`password`,class:`cui-input-error`})]),_:1})]),_:1}),k(L(C),{name:`passwordConfirm`,as:`div`,class:`flex flex-col field-gap`},{default:_(({field:e,errors:t})=>[E(`label`,xt,y(i.$t(`components.form.label.new_password_confirm`)),1),k(d,null,{default:_(()=>[k(m,b({invalid:t.length>0},e,{loading:L(X),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),k(w,{name:`fade`},{default:_(()=>[k(L(I),{name:`passwordConfirm`,class:`cui-input-error`})]),_:1})]),_:1}),E(`div`,St,[k(h,{type:`submit`,loading:L(X),class:`cui-button-medium`,label:i.$t(`components.form.button.change_password`)},null,8,[`loading`,`label`])])]),_:1},8,[`validation-schema`])]),_:1})]),E(`div`,null,[E(`span`,Ct,y(i.$t(`views.settings.security.title`)),1),k(f,{class:`cui-card`},{content:_(()=>[L(ke)?(x(),D(`div`,wt,[k(g,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(x(),A(w,{key:1,name:`fade`,mode:`out-in`},{default:_(()=>[!L(G)?.enabled&&!L(Z)&&!L(Me)?(x(),D(`div`,Tt,[E(`div`,Et,[E(`span`,Dt,y(i.$t(`views.settings.security.2fa_title`)),1),E(`span`,Ot,y(i.$t(`views.settings.security.2fa_description`)),1)]),k(h,{class:`cui-button-medium ml-auto`,label:i.$t(`views.settings.security.setup_2fa`),onClick:Nn},null,8,[`label`])])):!L(G)?.enabled&&L(Me)?(x(),D(`div`,kt,[k(g,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`}),E(`span`,At,y(i.$t(`views.settings.security.generating_qr`)),1)])):!L(G)?.enabled&&L(Z)?(x(),D(`div`,jt,[E(`div`,Mt,[k(te,{value:L(Tn),size:160,"logo-size":36},null,8,[`value`]),E(`p`,Nt,y(i.$t(`views.settings.security.scan_qr`)),1)]),E(`div`,Pt,[E(`div`,Ft,[E(`label`,It,y(i.$t(`views.settings.security.manual_entry`)),1),k(d,null,{default:_(()=>[k(u,{"model-value":L(Z)?.secret,readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),k(se,null,{default:_(()=>[k(v,{"action-text":i.$t(`components.form.tooltip.copied`),icon:L(p),"button-props":{severity:`secondary`,text:!0},onAction:En},null,8,[`action-text`,`icon`])]),_:1})]),_:1})]),E(`div`,Lt,[E(`label`,Rt,y(i.$t(`views.settings.security.enter_code`)),1),k(ce,{modelValue:L(Q),"onUpdate:modelValue":s[4]||=e=>j(Q)?Q.value=e:null,length:6,"integer-only":``},null,8,[`modelValue`])]),E(`div`,zt,[k(h,{severity:`secondary`,class:`cui-button-medium`,label:i.$t(`components.form.button.cancel`),onClick:Pn},null,8,[`label`]),k(h,{class:`cui-button-medium`,label:i.$t(`views.settings.security.enable_2fa`),loading:L(Fe),disabled:L(Q).length<6,onClick:Fn},null,8,[`label`,`loading`,`disabled`])])])])):(x(),D(`div`,Bt,[E(`div`,Vt,[E(`div`,Ht,[k(S,{class:`w-5 h-5`})]),E(`div`,Ut,[E(`span`,Wt,y(i.$t(`views.settings.security.2fa_enabled`)),1)])]),L(G)?.backupCodesCount===void 0?P(``,!0):(x(),D(`div`,Gt,[k(T,{class:`w-4 h-4`}),E(`span`,null,y(i.$t(`views.settings.security.backup_codes_remaining`,{count:L(G).backupCodesCount})),1)])),E(`div`,Kt,[k(h,{severity:`secondary`,class:`cui-button-medium`,label:i.$t(`views.settings.security.regenerate_backup`),onClick:Ln},null,8,[`label`]),k(h,{severity:`danger`,class:`cui-button-medium`,label:i.$t(`views.settings.security.disable_2fa`),onClick:In},null,8,[`label`])])]))]),_:1}))]),_:1})]),L(Sn)?(x(),D(`div`,qt,[E(`span`,Jt,y(i.$t(`views.settings.biometric.title`)),1),k(f,{class:`cui-card`},{content:_(()=>[E(`div`,Yt,[k(O,{class:`shrink-0 w-6 h-6 text-color`}),E(`div`,Xt,[E(`span`,Zt,y(i.$t(`views.settings.biometric.label`)),1),k(de,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:_(()=>[ue(y(i.$t(`views.settings.biometric.description`)),1)]),_:1})]),k(M,{"model-value":L(xn),loading:L($),class:`ml-auto shrink-0`,"onUpdate:modelValue":Un},null,8,[`model-value`,`loading`])])]),_:1})])):P(``,!0),E(`div`,null,[E(`span`,Qt,y(i.$t(`views.settings.api_tokens.title`)),1),k(f,{class:`cui-card`},{content:_(()=>[E(`div`,$t,[E(`span`,en,y(i.$t(`views.settings.api_tokens.info`)),1),k(R,{value:L(Ve)??[],"data-key":`id`,loading:L(Ue),pt:Cn,"striped-rows":``,scrollable:``},{loading:_(()=>[k(g,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:_(()=>[E(`span`,tn,y(i.$t(`views.settings.api_tokens.empty`)),1)]),default:_(()=>[k(N,{field:`name`,header:i.$t(`views.settings.api_tokens.name_label`),"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7`},{body:_(({data:e})=>[E(`div`,nn,[k(L(Oe),{class:`cui-session-icon`}),E(`div`,rn,[E(`span`,an,y(e.name),1),E(`span`,on,y(e.token_hint),1)])])]),_:1},8,[`header`]),k(N,{field:`last_seen_at`,header:i.$t(`views.settings.api_tokens.last_used`),"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7`},{body:_(({data:e})=>[E(`span`,sn,y(e.last_seen_at>e.created_at?L(ne)(e.last_seen_at):i.$t(`views.settings.api_tokens.never`)),1)]),_:1},8,[`header`]),k(N,{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})=>[le((x(),A(h,{severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:L(bn)===e.id,onClick:t=>jn(e)},{icon:_(()=>[k(F,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[z,{value:i.$t(`views.settings.api_tokens.revoke`)}]])]),_:1})]),_:1},8,[`value`,`loading`]),E(`div`,cn,[k(h,{loading:L(Ke),class:`cui-button-medium mr-4 md:mr-0`,label:i.$t(`views.settings.api_tokens.create`),onClick:kn},null,8,[`loading`,`label`])])])]),_:1})]),E(`div`,null,[E(`span`,ln,y(i.$t(`views.settings.active_sessions.title`)),1),k(f,{class:`cui-card`},{content:_(()=>[E(`div`,un,[k(R,{value:L(Ie)??[],"data-key":`id`,loading:L(Le),pt:Cn,"striped-rows":``,scrollable:``},{loading:_(()=>[k(g,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:_(()=>[E(`span`,dn,y(i.$t(`views.settings.active_sessions.empty`)),1)]),default:_(()=>[k(N,{field:`device`,header:i.$t(`views.settings.title_device`),"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7`},{body:_(({data:e})=>[E(`div`,fn,[(x(),A(oe(Dn(e.device.kind)),{class:`cui-session-icon`})),E(`div`,pn,[E(`div`,mn,[E(`span`,hn,y(e.device.name),1),e.is_current?(x(),A(pe,{key:0,severity:`success`,value:i.$t(`views.settings.active_sessions.this_device`),class:`cui-session-tag`},null,8,[`value`])):P(``,!0)]),E(`span`,gn,y(e.device.ip||`—`),1)])])]),_:1},8,[`header`]),k(N,{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})=>[e.is_current?P(``,!0):le((x(),A(h,{key:0,severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:L(vn)===e.id,onClick:t=>On(e.id)},{icon:_(()=>[k(me,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[z,{value:i.$t(`views.settings.active_sessions.revoke`)}]])]),_:1})]),_:1},8,[`value`,`loading`]),L(wn)>0?(x(),D(`div`,_n,[k(h,{loading:L(yn),class:`cui-button-medium mr-4 md:mr-0`,label:i.$t(`views.settings.active_sessions.revoke_all_others`,{count:L(wn)}),onClick:Mn},null,8,[`loading`,`label`])])):P(``,!0)])]),_:1})])],64))])])}}}),[[`__scopeId`,`data-v-de51a7b1`]]);export{J as t};
|
|
1
|
+
import{Bt as e,It as t,Kt as n,L as r,Vr as i,q as a}from"./vendor-cameraui-zaB6gIk1.js";import{Cn as o,Cr as s,Ct as c,Ir as l,M as u,O as d,Rn as f,St as p,_ as m,ar as ee,g as h,i as g,it as te,l as ne,rr as re,z as ie}from"./api-0KzHya6g.js";import{$n as _,C as ae,Cn as v,Cr as y,Dn as b,Hn as oe,In as x,Jn as se,Pn as ce,Rn as S,S as C,Xt as w,_r as T,cn as E,dn as D,dr as O,er as le,gn as k,hn as ue,ln as A,mr as de,or as j,rn as fe,sn as M,sr as N,un as P,vn as F,x as I,yr as L}from"./vendor-CP-WYrgy.js";import{i as R,r as pe}from"./vendor-zod-BMOt_yT8.js";import{p as me}from"./vendor-core-CfoDuMvj.js";import{K as he,L as ge,R as _e,S as ve,a as ye,s as be,u as xe,z as Se}from"./vendor-primevue-5HrOunkM.js";import{t as Ce}from"./CuiDataTable-CNFiiz_X.js";import{t as we}from"./CuiQRCode-DHUwFLQz.js";import{n as Te,t as z}from"./auth-jXwc9evv.js";var B={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function V(e,t){return x(),D(`svg`,B,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M7 14c-1.1 0-2-.9-2-2s.9-2 2-2s2 .9 2 2s-.9 2-2 2m5.6-4c-.8-2.3-3-4-5.6-4c-3.3 0-6 2.7-6 6s2.7 6 6 6c2.6 0 4.8-1.7 5.6-4H16v4h4v-4h3v-4z`},null,-1)]])}var Ee=N({name:`mdi-key`,render:V}),H={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function U(e,t){return x(),D(`svg`,H,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M17 19H7V5h10m0-4H7c-1.11 0-2 .89-2 2v18a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2`},null,-1)]])}var De=N({name:`mdi-cellphone`,render:U}),W={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function G(e,t){return x(),D(`svg`,W,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M22 18v4h-4v-3h-3v-3h-3l-2.26-2.26c-.55.17-1.13.26-1.74.26a6 6 0 0 1-6-6a6 6 0 0 1 6-6a6 6 0 0 1 6 6c0 .61-.09 1.19-.26 1.74zM7 5a2 2 0 0 0-2 2a2 2 0 0 0 2 2a2 2 0 0 0 2-2a2 2 0 0 0-2-2`},null,-1)]])}var Oe=N({name:`mdi-key-variant`,render:G}),ke={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ae(e,t){return x(),D(`svg`,ke,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M4 6h16v10H4m16 2a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H4c-1.11 0-2 .89-2 2v10a2 2 0 0 0 2 2H0v2h24v-2z`},null,-1)]])}var je=N({name:`mdi-laptop`,render:Ae}),Me={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ne(e,t){return x(),D(`svg`,Me,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M21 17H3V5h18m0-2H3a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h5v2h8v-2h5a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2`},null,-1)]])}var Pe=N({name:`mdi-television`,render:Ne}),Fe={class:`flex flex-col gap-6`},Ie={class:`token-box`},Le={class:`token-value`},Re=f(F({__name:`ApiTokenCreated`,props:{token:{}},setup(t,{expose:r}){let a=t,o=l(),{t:s}=i(),{token:c}=T(a);async function u(){await g(c.value)?o.add({severity:`success`,detail:s(`components.toast.copied`),life:1500}):o.add({severity:`error`,detail:s(`components.toast.copy_failed`),life:3e3})}async function d(){}return r({onConfirm:d}),(t,r)=>{let i=Se,a=e,o=n;return x(),D(`div`,Fe,[k(i,{severity:`warn`},{default:_(()=>[ue(y(t.$t(`views.settings.api_tokens.created_warning`)),1)]),_:1}),E(`div`,Ie,[E(`span`,Le,y(L(c)),1),le((x(),A(a,{text:``,rounded:``,class:`cui-icon-md shrink-0`,onClick:u},{icon:_(()=>[k(L(p),{width:`100%`,height:`100%`})]),_:1})),[[o,{value:t.$t(`components.form.button.copy`)}]])])])}}}),[[`__scopeId`,`data-v-591cfcb4`]]),ze={class:`flex flex-col gap-2 w-full`},Be={for:`apiTokenName`,class:`cui-label`},Ve={key:0,class:`text-xs text-red-500`},He=F({__name:`CreateApiToken`,props:{existingNames:{}},setup(e,{expose:t}){let n=e,i=O(``),a=M(()=>n.existingNames.includes(i.value.trim()));return t({onConfirm:async()=>{let e=i.value.trim();return!e||a.value?null:e}}),(e,t)=>{let n=r;return x(),D(`div`,ze,[E(`label`,Be,y(e.$t(`views.settings.api_tokens.name_label`)),1),k(n,{id:`apiTokenName`,modelValue:L(i),"onUpdate:modelValue":t[0]||=e=>j(i)?i.value=e:null,class:`w-full`,placeholder:e.$t(`views.settings.api_tokens.name_placeholder`),autofocus:``,invalid:L(a)},null,8,[`modelValue`,`placeholder`,`invalid`]),L(a)?(x(),D(`span`,Ve,y(e.$t(`views.settings.api_tokens.name_exists`)),1)):P(``,!0)])}}}),Ue={class:`flex flex-col gap-6`},We={class:`backup-codes-grid`},Ge=f(F({__name:`TwoFactorBackupCodes`,props:{backupCodes:{}},setup(e,{expose:t}){let{backupCodes:n}=T(e);async function r(){}return t({onConfirm:r}),(e,t)=>{let r=Se;return x(),D(`div`,Ue,[k(r,{severity:`warn`},{default:_(()=>[ue(y(e.$t(`views.settings.security.backup_warning`)),1)]),_:1}),E(`div`,We,[(x(!0),D(fe,null,S(L(n),e=>(x(),D(`span`,{key:e,class:`backup-code`},y(e),1))),128))])])}}}),[[`__scopeId`,`data-v-0761a2ae`]]),Ke={class:`flex flex-col gap-6`},qe={class:`text-muted`},Je={class:`flex flex-col gap-2 justify-center items-center mt-5`},Ye={class:`cui-label`},Xe=F({__name:`TwoFactorDisable`,setup(e,{expose:t}){let n=new z,r=l(),{t:a}=i(),o=v(`dialogRefProps`),{mutateAsync:s,isPending:c}=n.disable2FAQuery(),u=O(``),d=M(()=>!!(o.loading?.value||c.value)),f=M(()=>u.value.length<6);async function p(){if(u.value.length<6)return null;try{await s({code:u.value}),r.add({severity:`success`,detail:a(`views.settings.security.2fa_disabled_success`),life:3e3})}catch(e){return r.add({severity:`error`,detail:e,life:3e3}),null}}return t({isLoading:d,isDisabled:f,onConfirm:p}),(e,t)=>{let n=xe;return x(),D(`div`,Ke,[E(`p`,qe,y(e.$t(`views.settings.security.disable_confirm`)),1),E(`div`,Je,[E(`label`,Ye,y(e.$t(`views.settings.security.enter_code`)),1),k(n,{modelValue:L(u),"onUpdate:modelValue":t[0]||=e=>j(u)?u.value=e:null,length:6,"integer-only":``,class:`justify-center`},null,8,[`modelValue`])])])}}}),Ze={class:`flex flex-col gap-6`},Qe={class:`text-muted`},K={class:`flex flex-col gap-2 justify-center items-center mt-5`},q={class:`cui-label`},$e=F({__name:`TwoFactorRegenerate`,props:{onBackupCodesGenerated:{type:Function}},setup(e,{expose:t}){let n=new z,r=e,a=l(),{t:o}=i(),s=v(`dialogRefProps`),{mutateAsync:c,isPending:u}=n.regenerateBackupCodesQuery(),d=O(``),f=M(()=>!!(s.loading?.value||u.value)),p=M(()=>d.value.length<6);async function m(){if(d.value.length<6)return null;try{let e=await c({code:d.value});a.add({severity:`success`,detail:o(`views.settings.security.backup_regenerated`),life:3e3}),r.onBackupCodesGenerated&&r.onBackupCodesGenerated(e.backupCodes)}catch(e){return a.add({severity:`error`,detail:e,life:3e3}),null}}return t({isLoading:f,isDisabled:p,onConfirm:m}),(e,t)=>{let n=xe;return x(),D(`div`,Ze,[E(`p`,Qe,y(e.$t(`views.settings.security.regenerate_confirm`)),1),E(`div`,K,[E(`label`,q,y(e.$t(`views.settings.security.enter_code`)),1),k(n,{modelValue:L(d),"onUpdate:modelValue":t[0]||=e=>j(d)?d.value=e:null,length:6,"integer-only":``,class:`justify-center`},null,8,[`modelValue`])])])}}}),et={class:`flex flex-col w-full gap-6`},tt={class:`relative`},nt={class:`image-upload rounded-full z-1`},rt={for:`file-input`},it={class:`card-title`},at={class:`flex flex-col gap-6`},ot={for:`username`,class:`cui-label`},st={class:`card-title`},ct={class:`flex flex-col gap-6`},lt={for:`password`,class:`cui-label`},ut={for:`passwordConfirm`,class:`cui-label`},dt={class:`relative`},ft={class:`image-upload rounded-full z-1`},pt={for:`file-input`},mt={class:`card-title`},ht={class:`flex flex-col gap-6`},gt={class:`flex flex-col field-gap`},_t={for:`username`,class:`cui-label`},vt={class:`flex flex-row items-end justify-end`},yt={class:`card-title`},bt={for:`password`,class:`cui-label`},xt={for:`passwordConfirm`,class:`cui-label`},St={class:`flex flex-row items-end justify-end`},Ct={class:`card-title`},wt={key:0,class:`flex justify-center py-6`},Tt={key:`initial`,class:`flex flex-col gap-6`},Et={class:`flex flex-col gap-1`},Dt={class:`tfa-row-title`},Ot={class:`tfa-row-description`},kt={key:`loading`,class:`flex flex-col items-center py-8 gap-3`},At={class:`text-sm text-muted`},jt={key:`setup`,class:`tfa-setup`},Mt={class:`tfa-setup-qr`},Nt={class:`text-sm text-muted text-center mt-3`},Pt={class:`flex flex-col gap-5 flex-1`},Ft={class:`flex flex-col field-gap`},It={class:`cui-label`},Lt={class:`flex flex-col field-gap`},Rt={class:`cui-label`},zt={class:`flex gap-2 justify-end`},Bt={key:`enabled`,class:`flex flex-col gap-6`},Vt={class:`tfa-row tfa-row-enabled`},Ht={class:`tfa-status-icon`},Ut={class:`tfa-row-content`},Wt={class:`tfa-row-title`},Gt={key:0,class:`tfa-backup-info`},Kt={class:`flex gap-2 justify-end`},qt={key:0},Jt={class:`card-title`},Yt={class:`flex items-center gap-4`},Xt={class:`flex flex-col field-switch-gap min-w-0`},Zt={class:`text-sm font-bold text-color`},Qt={class:`card-title`},$t={class:`flex flex-col gap-6`},en={class:`text-sm text-muted`},tn={class:`text-muted text-sm`},nn={class:`flex items-center gap-3`},rn={class:`flex flex-col min-w-0`},an={class:`text-sm font-semibold text-color truncate`},on={class:`text-xs text-muted truncate font-mono`},sn={class:`text-xs text-muted`},cn={class:`flex flex-row items-end justify-end gap-2`},ln={class:`card-title`},un={class:`flex flex-col gap-6`},dn={class:`text-muted text-sm`},fn={class:`flex items-center gap-3`},pn={class:`flex flex-col min-w-0`},mn={class:`flex items-center gap-2`},hn={class:`text-sm font-semibold text-color truncate`},gn={class:`text-xs text-muted truncate`},_n={key:0,class:`flex flex-row items-end justify-end gap-2`},J=f(F({__name:`SettingsAccount`,props:{firststeps:{type:Boolean}},setup(f,{expose:v}){let S=new z,N=f,F=te(),B=l(),{t:V}=i(),{firststeps:H}=T(N),U=m(),{user:W}=me(U),{data:G,isLoading:ke}=S.toggleQueryActivator(`get2FAStatusQuery`,!H.value).get2FAStatusQuery(),{mutateAsync:Ae,isPending:Me}=S.setup2FAQuery(),{mutateAsync:Ne,isPending:Fe}=S.enable2FAQuery(),{data:Ie,isBusy:Le}=S.toggleQueryActivator(`listSessionsQuery`,!H.value).listSessionsQuery({page:1,pageSize:-1}),{mutateAsync:ze}=S.revokeSessionQuery(),{mutateAsync:Be}=S.revokeOtherSessionsQuery(),{data:Ve,isBusy:Ue}=S.toggleQueryActivator(`listApiTokensQuery`,!H.value).listApiTokensQuery(),{mutateAsync:We,isPending:Ke}=S.createApiTokenQuery(),{mutateAsync:qe}=S.revokeApiTokenQuery(),Je=pe({password:d,passwordConfirm:R().min(1)}).refine(e=>e.password===e.passwordConfirm,{message:`Passwords do not match`,path:[`passwordConfirm`]}),Ye=pe({username:R().min(1),password:d,passwordConfirm:R().min(1)}).refine(e=>e.password===e.passwordConfirm,{message:`Passwords do not match`,path:[`passwordConfirm`]}),Ze=se(`formRef`),Qe=se(`passwordFormRef`),K=de(),q=O(`avatar`),J=O(W.value?.username??``),Y=O(!1),X=O(!1),Z=O(null),Q=O(``),vn=O(null),yn=O(!1),bn=O(null);O(!1);let xn=O(!1),$=O(!1),Sn=M(()=>!1),Cn={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}}},wn=M(()=>(Ie.value??[]).filter(e=>!e.is_current).length),Tn=M(()=>!Z.value?.secret||!W.value?.username?``:`otpauth://totp/${encodeURIComponent(`camera.ui:${W.value.username}`)}?secret=${Z.value.secret}&issuer=camera.ui`);async function En(){Z.value?.secret&&await g(Z.value.secret)}function Dn(e){return e===`tv`?Pe:e===`native`?De:je}async function On(e){vn.value=e;try{await ze({id:e})}catch(e){B.add({severity:`error`,detail:e,life:3e3})}finally{vn.value=null}}function kn(){F.openComponentDialog(He,{data:{title:V(`views.settings.api_tokens.create`),confirmText:V(`views.settings.api_tokens.create_confirm`),contentProps:{existingNames:(Ve.value??[]).map(e=>e.name)}},onConfirm:async e=>{if(e)try{An((await We({name:e})).token)}catch(e){B.add({severity:`error`,detail:e,life:3e3})}}})}function An(e){F.openComponentDialog(Re,{data:{title:V(`views.settings.api_tokens.created_title`),confirmText:V(`components.form.button.close`),hideCancelButton:!0,contentProps:{token:e}}})}function jn(e){F.openTextDialog({data:{title:V(`views.settings.api_tokens.revoke_title`),contentText:V(`views.settings.api_tokens.revoke_confirm`,{name:e.name}),confirmText:V(`views.settings.api_tokens.revoke`),confirmButtonProps:{severity:`danger`}},onConfirm:async()=>{bn.value=e.id;try{await qe({id:e.id})}catch(e){B.add({severity:`error`,detail:e,life:3e3})}finally{bn.value=null}}})}function Mn(){F.openTextDialog({data:{title:V(`views.settings.active_sessions.revoke_others_title`),contentText:V(`views.settings.active_sessions.revoke_others_confirm`,{count:wn.value}),confirmText:V(`views.settings.active_sessions.revoke`),confirmButtonProps:{severity:`danger`}},onConfirm:async()=>{yn.value=!0;try{await Be()}catch(e){B.add({severity:`error`,detail:e,life:3e3})}finally{yn.value=!1}}})}async function Nn(){try{Z.value=await Ae()}catch(e){B.add({severity:`error`,detail:e,life:3e3})}}function Pn(){Z.value=null,Q.value=``}async function Fn(){try{let e=await Ne({code:Q.value});Z.value=null,Q.value=``,B.add({severity:`success`,detail:V(`views.settings.security.2fa_enabled_success`),life:3e3}),Rn(e.backupCodes)}catch(e){B.add({severity:`error`,detail:e,life:3e3})}}function In(){F.openComponentDialog(Xe,{data:{title:V(`views.settings.security.disable_2fa`),confirmText:V(`views.settings.security.disable_2fa`),confirmButtonProps:{severity:`danger`},contentProps:{}}})}function Ln(){F.openComponentDialog($e,{data:{title:V(`views.settings.security.regenerate_backup`),confirmText:V(`views.settings.security.regenerate_backup`),contentProps:{onBackupCodesGenerated:e=>{Rn(e)}}}})}function Rn(e){F.openComponentDialog(Ge,{data:{title:V(`views.settings.security.backup_codes`),confirmText:V(`components.form.button.close`),hideCancelButton:!0,contentProps:{backupCodes:e}}})}async function zn(e){let t=e.target?.files;K.value=t?.[0],q.value=await h(e)??q.value}async function Bn(){Y.value=!0;try{let e;K.value&&(e=new FormData,e.append(`upload`,K.value));let t=W.value?.username!==J.value;if(t)await U.updateUser({username:J.value},e);else if(e)await U.updateUser(void 0,e);else{Y.value=!1;return}B.add({severity:`success`,detail:V(`components.toast.profile_updated`),life:3e3}),K.value=void 0,t&&U.logout()}catch{}Y.value=!1}async function Vn(e){X.value=!0;try{await U.updateUser({password:e.password,passwordConfirm:e.passwordConfirm}),B.add({severity:`success`,detail:V(`components.toast.password_updated`),life:3e3}),Qe.value?.resetForm(),U.logout()}catch(e){B.add({severity:`error`,detail:e,life:3e3})}X.value=!1}async function Hn(){}async function Un(e){if(e!==xn.value){if(e){B.add({severity:`info`,detail:V(`views.settings.biometric.enable_hint`),life:3e3});return}$.value=!0;try{await u(s()),xn.value=!1,B.add({severity:`success`,detail:V(`views.settings.biometric.cleared`),life:3e3})}finally{$.value=!1}}}return ce(()=>{Hn()}),v({formRef:Ze}),(i,s)=>{let l=o,u=r,d=_e,f=a,m=be,h=e,g=t,te=we,v=c,se=ge,ce=xe,S=re,T=Ee,O=ee,de=Se,M=he,N=ve,F=ie,R=Ce,pe=ye,me=Te,z=n;return x(),D(`div`,null,[E(`div`,et,[L(H)?(x(),A(L(ae),{key:0,ref_key:`formRef`,ref:Ze,"validation-schema":L(Ye),class:`flex flex-col w-full gap-6`},{default:_(()=>[E(`div`,tt,[E(`div`,nt,[E(`label`,rt,[k(l,{src:L(q),size:64,"show-border":!1,class:`cursor-pointer`},null,8,[`src`]),E(`input`,{id:`file-input`,type:`file`,class:`hidden`,accept:`image/png,image/jpeg,image/jpg`,onChange:s[0]||=e=>zn(e)},null,32)])]),E(`span`,it,y(i.$t(`views.settings.profile`)),1),k(f,{class:`cui-card`},{content:_(()=>[E(`div`,at,[k(L(C),{"model-value":L(W)?.username,name:`username`,as:`div`,class:`flex flex-col field-gap`},{default:_(({field:e,errors:t})=>[E(`label`,ot,y(i.$t(`components.form.label.username`)),1),k(d,null,{default:_(()=>[k(u,b(e,{invalid:t.length>0,type:`text`}),null,16,[`invalid`])]),_:2},1024),k(w,{name:`fade`},{default:_(()=>[k(L(I),{name:`username`,class:`cui-input-error`})]),_:1})]),_:1},8,[`model-value`])])]),_:1})]),E(`div`,null,[E(`span`,st,y(i.$t(`views.settings.password`)),1),k(f,{class:`cui-card`},{content:_(()=>[E(`div`,ct,[k(L(C),{name:`password`,as:`div`,class:`flex flex-col field-gap`},{default:_(({field:e,errors:t})=>[E(`label`,lt,y(i.$t(`components.form.label.new_password`)),1),k(d,null,{default:_(()=>[k(m,b({invalid:t.length>0},e,{feedback:!1,"toggle-mask":``}),null,16,[`invalid`])]),_:2},1024),k(w,{name:`fade`},{default:_(()=>[k(L(I),{name:`password`,class:`cui-input-error`})]),_:1})]),_:1}),k(L(C),{name:`passwordConfirm`,as:`div`,class:`flex flex-col field-gap`},{default:_(({field:e,errors:t})=>[E(`label`,ut,y(i.$t(`components.form.label.new_password_confirm`)),1),k(d,null,{default:_(()=>[k(m,b({invalid:t.length>0},e,{feedback:!1,"toggle-mask":``}),null,16,[`invalid`])]),_:2},1024),k(w,{name:`fade`},{default:_(()=>[k(L(I),{name:`passwordConfirm`,class:`cui-input-error`})]),_:1})]),_:1})])]),_:1})])]),_:1},8,[`validation-schema`])):(x(),D(fe,{key:1},[E(`div`,dt,[E(`div`,ft,[E(`label`,pt,[k(l,{src:L(q),size:64,"show-border":!1,class:`cursor-pointer`},null,8,[`src`]),E(`input`,{id:`file-input`,type:`file`,class:`hidden`,accept:`image/png,image/jpeg,image/jpg`,onChange:s[1]||=e=>zn(e)},null,32)])]),E(`span`,mt,y(i.$t(`views.settings.profile`)),1),k(f,{class:`cui-card`},{content:_(()=>[E(`div`,ht,[E(`div`,gt,[E(`label`,_t,y(i.$t(`components.form.label.username`)),1),k(d,null,{default:_(()=>[k(u,{modelValue:L(J),"onUpdate:modelValue":s[2]||=e=>j(J)?J.value=e:null,loading:L(Y),type:`text`},null,8,[`modelValue`,`loading`])]),_:1})]),E(`div`,vt,[k(h,{loading:L(Y),class:`cui-button-medium`,label:i.$t(`components.form.button.update_profile`),onClick:Bn},null,8,[`loading`,`label`])])])]),_:1})]),E(`div`,null,[E(`span`,yt,y(i.$t(`views.settings.password`)),1),k(f,{class:`cui-card`},{content:_(()=>[k(L(ae),{ref_key:`passwordFormRef`,ref:Qe,"validation-schema":L(Je),class:`flex flex-col gap-6`,onSubmit:s[3]||=e=>Vn(e)},{default:_(()=>[k(L(C),{name:`password`,as:`div`,class:`flex flex-col field-gap`},{default:_(({field:e,errors:t})=>[E(`label`,bt,y(i.$t(`components.form.label.new_password`)),1),k(d,null,{default:_(()=>[k(m,b({invalid:t.length>0},e,{loading:L(X),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),k(w,{name:`fade`},{default:_(()=>[k(L(I),{name:`password`,class:`cui-input-error`})]),_:1})]),_:1}),k(L(C),{name:`passwordConfirm`,as:`div`,class:`flex flex-col field-gap`},{default:_(({field:e,errors:t})=>[E(`label`,xt,y(i.$t(`components.form.label.new_password_confirm`)),1),k(d,null,{default:_(()=>[k(m,b({invalid:t.length>0},e,{loading:L(X),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),k(w,{name:`fade`},{default:_(()=>[k(L(I),{name:`passwordConfirm`,class:`cui-input-error`})]),_:1})]),_:1}),E(`div`,St,[k(h,{type:`submit`,loading:L(X),class:`cui-button-medium`,label:i.$t(`components.form.button.change_password`)},null,8,[`loading`,`label`])])]),_:1},8,[`validation-schema`])]),_:1})]),E(`div`,null,[E(`span`,Ct,y(i.$t(`views.settings.security.title`)),1),k(f,{class:`cui-card`},{content:_(()=>[L(ke)?(x(),D(`div`,wt,[k(g,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(x(),A(w,{key:1,name:`fade`,mode:`out-in`},{default:_(()=>[!L(G)?.enabled&&!L(Z)&&!L(Me)?(x(),D(`div`,Tt,[E(`div`,Et,[E(`span`,Dt,y(i.$t(`views.settings.security.2fa_title`)),1),E(`span`,Ot,y(i.$t(`views.settings.security.2fa_description`)),1)]),k(h,{class:`cui-button-medium ml-auto`,label:i.$t(`views.settings.security.setup_2fa`),onClick:Nn},null,8,[`label`])])):!L(G)?.enabled&&L(Me)?(x(),D(`div`,kt,[k(g,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`}),E(`span`,At,y(i.$t(`views.settings.security.generating_qr`)),1)])):!L(G)?.enabled&&L(Z)?(x(),D(`div`,jt,[E(`div`,Mt,[k(te,{value:L(Tn),size:160,"logo-size":36},null,8,[`value`]),E(`p`,Nt,y(i.$t(`views.settings.security.scan_qr`)),1)]),E(`div`,Pt,[E(`div`,Ft,[E(`label`,It,y(i.$t(`views.settings.security.manual_entry`)),1),k(d,null,{default:_(()=>[k(u,{"model-value":L(Z)?.secret,readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),k(se,null,{default:_(()=>[k(v,{"action-text":i.$t(`components.form.tooltip.copied`),icon:L(p),"button-props":{severity:`secondary`,text:!0},onAction:En},null,8,[`action-text`,`icon`])]),_:1})]),_:1})]),E(`div`,Lt,[E(`label`,Rt,y(i.$t(`views.settings.security.enter_code`)),1),k(ce,{modelValue:L(Q),"onUpdate:modelValue":s[4]||=e=>j(Q)?Q.value=e:null,length:6,"integer-only":``},null,8,[`modelValue`])]),E(`div`,zt,[k(h,{severity:`secondary`,class:`cui-button-medium`,label:i.$t(`components.form.button.cancel`),onClick:Pn},null,8,[`label`]),k(h,{class:`cui-button-medium`,label:i.$t(`views.settings.security.enable_2fa`),loading:L(Fe),disabled:L(Q).length<6,onClick:Fn},null,8,[`label`,`loading`,`disabled`])])])])):(x(),D(`div`,Bt,[E(`div`,Vt,[E(`div`,Ht,[k(S,{class:`w-5 h-5`})]),E(`div`,Ut,[E(`span`,Wt,y(i.$t(`views.settings.security.2fa_enabled`)),1)])]),L(G)?.backupCodesCount===void 0?P(``,!0):(x(),D(`div`,Gt,[k(T,{class:`w-4 h-4`}),E(`span`,null,y(i.$t(`views.settings.security.backup_codes_remaining`,{count:L(G).backupCodesCount})),1)])),E(`div`,Kt,[k(h,{severity:`secondary`,class:`cui-button-medium`,label:i.$t(`views.settings.security.regenerate_backup`),onClick:Ln},null,8,[`label`]),k(h,{severity:`danger`,class:`cui-button-medium`,label:i.$t(`views.settings.security.disable_2fa`),onClick:In},null,8,[`label`])])]))]),_:1}))]),_:1})]),L(Sn)?(x(),D(`div`,qt,[E(`span`,Jt,y(i.$t(`views.settings.biometric.title`)),1),k(f,{class:`cui-card`},{content:_(()=>[E(`div`,Yt,[k(O,{class:`shrink-0 w-6 h-6 text-color`}),E(`div`,Xt,[E(`span`,Zt,y(i.$t(`views.settings.biometric.label`)),1),k(de,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:_(()=>[ue(y(i.$t(`views.settings.biometric.description`)),1)]),_:1})]),k(M,{"model-value":L(xn),loading:L($),class:`ml-auto shrink-0`,"onUpdate:modelValue":Un},null,8,[`model-value`,`loading`])])]),_:1})])):P(``,!0),E(`div`,null,[E(`span`,Qt,y(i.$t(`views.settings.api_tokens.title`)),1),k(f,{class:`cui-card`},{content:_(()=>[E(`div`,$t,[E(`span`,en,y(i.$t(`views.settings.api_tokens.info`)),1),k(R,{value:L(Ve)??[],"data-key":`id`,loading:L(Ue),pt:Cn,"striped-rows":``,scrollable:``},{loading:_(()=>[k(g,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:_(()=>[E(`span`,tn,y(i.$t(`views.settings.api_tokens.empty`)),1)]),default:_(()=>[k(N,{field:`name`,header:i.$t(`views.settings.api_tokens.name_label`),"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7`},{body:_(({data:e})=>[E(`div`,nn,[k(L(Oe),{class:`cui-session-icon`}),E(`div`,rn,[E(`span`,an,y(e.name),1),E(`span`,on,y(e.token_hint),1)])])]),_:1},8,[`header`]),k(N,{field:`last_seen_at`,header:i.$t(`views.settings.api_tokens.last_used`),"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7`},{body:_(({data:e})=>[E(`span`,sn,y(e.last_seen_at>e.created_at?L(ne)(e.last_seen_at):i.$t(`views.settings.api_tokens.never`)),1)]),_:1},8,[`header`]),k(N,{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})=>[le((x(),A(h,{severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:L(bn)===e.id,onClick:t=>jn(e)},{icon:_(()=>[k(F,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[z,{value:i.$t(`views.settings.api_tokens.revoke`)}]])]),_:1})]),_:1},8,[`value`,`loading`]),E(`div`,cn,[k(h,{loading:L(Ke),class:`cui-button-medium mr-4 md:mr-0`,label:i.$t(`views.settings.api_tokens.create`),onClick:kn},null,8,[`loading`,`label`])])])]),_:1})]),E(`div`,null,[E(`span`,ln,y(i.$t(`views.settings.active_sessions.title`)),1),k(f,{class:`cui-card`},{content:_(()=>[E(`div`,un,[k(R,{value:L(Ie)??[],"data-key":`id`,loading:L(Le),pt:Cn,"striped-rows":``,scrollable:``},{loading:_(()=>[k(g,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:_(()=>[E(`span`,dn,y(i.$t(`views.settings.active_sessions.empty`)),1)]),default:_(()=>[k(N,{field:`device`,header:i.$t(`views.settings.title_device`),"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7`},{body:_(({data:e})=>[E(`div`,fn,[(x(),A(oe(Dn(e.device.kind)),{class:`cui-session-icon`})),E(`div`,pn,[E(`div`,mn,[E(`span`,hn,y(e.device.name),1),e.is_current?(x(),A(pe,{key:0,severity:`success`,value:i.$t(`views.settings.active_sessions.this_device`),class:`cui-session-tag`},null,8,[`value`])):P(``,!0)]),E(`span`,gn,y(e.device.ip||`—`),1)])])]),_:1},8,[`header`]),k(N,{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})=>[e.is_current?P(``,!0):le((x(),A(h,{key:0,severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:L(vn)===e.id,onClick:t=>On(e.id)},{icon:_(()=>[k(me,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[z,{value:i.$t(`views.settings.active_sessions.revoke`)}]])]),_:1})]),_:1},8,[`value`,`loading`]),L(wn)>0?(x(),D(`div`,_n,[k(h,{loading:L(yn),class:`cui-button-medium mr-4 md:mr-0`,label:i.$t(`views.settings.active_sessions.revoke_all_others`,{count:L(wn)}),onClick:Mn},null,8,[`loading`,`label`])])):P(``,!0)])]),_:1})])],64))])])}}}),[[`__scopeId`,`data-v-de51a7b1`]]);export{J as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./SettingsAccount-BwC-JLu1.js";export{e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./SettingsAppearance-DMhqHxXU.js";export{e as default};
|
package/dist/interface/assets/{SettingsAppearance-JbKDfSiu.js → SettingsAppearance-DMhqHxXU.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Vr as e,la as t,q as ee}from"./vendor-cameraui-zaB6gIk1.js";import{On as te,Xn as n,Yn as r,jr as i,v as a,y as o}from"./api-
|
|
1
|
+
import{Vr as e,la as t,q as ee}from"./vendor-cameraui-zaB6gIk1.js";import{On as te,Xn as n,Yn as r,jr as i,v as a,y as o}from"./api-0KzHya6g.js";import{$n as s,Cr as c,Fn as ne,In as l,Rn as re,cn as u,dn as d,dr as f,gn as p,hn as m,or as h,rn as ie,sn as g,un as _,vn as v,yr as y}from"./vendor-CP-WYrgy.js";import{p as b}from"./vendor-core-CfoDuMvj.js";import{K as ae,j as oe,z as se}from"./vendor-primevue-5HrOunkM.js";import{n as ce,r as le}from"./useNavLayout-D-KmCM3U.js";import{n as x}from"./theme-C8wlVvxI.js";var S={class:`flex flex-col w-full gap-6`},C={key:0},w={class:`card-title`},T={class:`flex flex-col gap-6`},E={class:`flex flex-col field-gap`},D={class:`cui-label`},O={class:`w-full flex flex-col gap-2`},k={class:`flex flex-col field-gap cui-toggle-switch`},A={class:`flex items-center gap-4`},j={class:`flex flex-col field-switch-gap`},M={class:`cui-label-switch`},N={key:1},P={class:`card-title`},F={class:`flex flex-col gap-6`},I={class:`flex flex-col field-gap`},L={class:`cui-label`},R={key:2},z={class:`card-title`},B={class:`flex flex-col gap-6`},V={class:`flex flex-col field-gap`},H={class:`cui-label`},U={key:0,class:`flex flex-col field-gap`},W={class:`cui-label`},ue={class:`flex flex-col field-gap`},de={class:`cui-label`},fe={class:`w-full flex flex-col gap-2`},pe={class:`flex flex-col field-gap cui-toggle-switch`},me={class:`flex items-center gap-4`},he={class:`flex flex-col field-switch-gap`},ge={class:`cui-label-switch`},_e={key:3},ve={class:`card-title`},ye={class:`w-full flex flex-col gap-2`},be={class:`flex flex-col field-gap cui-toggle-switch`},xe={class:`flex items-center gap-4`},Se={class:`flex flex-col field-switch-gap`},Ce={class:`cui-label-switch`},we={class:`flex items-center gap-4`},Te={class:`flex flex-col field-switch-gap`},Ee={class:`cui-label-switch`},De={class:`card-title`},Oe={class:`w-full flex flex-col gap-2`},ke={class:`flex flex-col field-gap cui-toggle-switch`},Ae={class:`flex items-center gap-4`},je={class:`flex flex-col field-switch-gap`},Me={class:`cui-label-switch`},Ne={class:`flex flex-col field-gap cui-toggle-switch`},Pe={class:`flex items-center gap-4`},Fe={class:`flex flex-col field-switch-gap`},Ie={class:`cui-label-switch`},G=v({__name:`SettingsAppearance`,props:{compact:{type:Boolean,default:!1}},setup(v){let{t:G}=e(),{settingsInNav:K,isCollapsible:Le,setCollapsible:Re,setSettingsInNav:ze}=le(),Be=a(),{language:q,languageOptions:Ve}=b(Be),He=x(),{colors:Ue,theme:J,autoMode:Y}=b(He),We=n(),{uiSettings:X}=b(We),Z=f(t.isRecording()),Q=f(t.isDebug()),$=[5,10,15,25,50,100],Ge=g(()=>[...ce,...K.value?[`settings`]:[]]),Ke=g(()=>o().map(e=>({label:G(`navigation.${e.meta.name}`),value:e.path}))),qe=g(()=>r.map(e=>({label:G(`navigation.${e}`),value:e}))),Je=t.onChange(()=>{Z.value=t.isRecording(),Q.value=t.isDebug()});function Ye(e){t.setRecording(e),e||t.clear()}function Xe(e){t.setDebug(e)}return ne(Je),(e,t)=>{let n=oe,r=se,a=ae,o=ee;return l(),d(`div`,null,[u(`div`,S,[y(i)()?_(``,!0):(l(),d(`div`,C,[u(`span`,w,c(e.$t(`views.settings.theme`)),1),p(o,{class:`cui-card`},{content:s(()=>[u(`div`,T,[u(`div`,E,[u(`label`,D,c(e.$t(`components.form.label.theme`)),1),p(n,{modelValue:y(J),"onUpdate:modelValue":t[0]||=e=>h(J)?J.value=e:null,options:y(Ue),disabled:y(Y)},null,8,[`modelValue`,`options`,`disabled`])]),u(`div`,O,[u(`div`,k,[u(`div`,A,[u(`div`,j,[u(`label`,M,c(e.$t(`components.form.label.system_preference`)),1),p(r,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:s(()=>[m(c(e.$t(`components.form.hint.system_preference`)),1)]),_:1})]),p(a,{modelValue:y(Y),"onUpdate:modelValue":t[1]||=e=>h(Y)?Y.value=e:null,class:`ml-auto shrink-0`},null,8,[`modelValue`])])])])])]),_:1})])),y(i)()?_(``,!0):(l(),d(`div`,N,[u(`span`,P,c(e.$t(`views.settings.locale`)),1),p(o,{class:`cui-card`},{content:s(()=>[u(`div`,F,[u(`div`,I,[u(`label`,L,c(e.$t(`components.form.label.language`)),1),p(n,{modelValue:y(q),"onUpdate:modelValue":t[2]||=e=>h(q)?q.value=e:null,options:y(Ve),"option-label":`label`,"option-value":`value`},null,8,[`modelValue`,`options`])])])]),_:1})])),v.compact?_(``,!0):(l(),d(`div`,R,[u(`span`,z,c(e.$t(`views.settings.interface`)),1),p(o,{class:`cui-card`},{content:s(()=>[u(`div`,B,[u(`div`,V,[u(`label`,H,c(e.$t(`components.form.label.default_landing_page`)),1),p(n,{modelValue:y(X).interface.landingPage,"onUpdate:modelValue":t[3]||=e=>y(X).interface.landingPage=e,options:y(Ke),"option-label":`label`,"option-value":`value`},null,8,[`modelValue`,`options`]),p(r,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:s(()=>[m(c(e.$t(`components.form.hint.default_landing_page`)),1)]),_:1})]),(`hasPermission`in e?e.hasPermission:y(te))(void 0,`admin`)?(l(),d(`div`,U,[u(`label`,W,c(e.$t(`components.form.label.default_settings_page`)),1),p(n,{modelValue:y(X).interface.selectedSettingsView,"onUpdate:modelValue":t[4]||=e=>y(X).interface.selectedSettingsView=e,options:y(qe),"option-label":`label`,"option-value":`value`},null,8,[`modelValue`,`options`]),p(r,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:s(()=>[m(c(e.$t(`components.form.hint.default_settings_page`)),1)]),_:1})])):_(``,!0),u(`div`,ue,[u(`label`,de,c(e.$t(`components.form.label.table_rows`)),1),p(n,{modelValue:y(X).interface.tableRows,"onUpdate:modelValue":t[5]||=e=>y(X).interface.tableRows=e,options:$},null,8,[`modelValue`]),p(r,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:s(()=>[m(c(e.$t(`components.form.hint.table_rows`)),1)]),_:1})]),u(`div`,fe,[u(`div`,pe,[u(`div`,me,[u(`div`,he,[u(`label`,ge,c(e.$t(`components.form.label.navbar_stay_collapsed`)),1),p(r,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:s(()=>[m(c(e.$t(`components.form.hint.navbar_stay_collapsed`)),1)]),_:1})]),p(a,{modelValue:y(X).interface.navbarStayCollapsed,"onUpdate:modelValue":t[6]||=e=>y(X).interface.navbarStayCollapsed=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])])])])])]),_:1})])),v.compact?_(``,!0):(l(),d(`div`,_e,[u(`span`,ve,c(e.$t(`views.settings.navigation`)),1),p(o,{class:`cui-card`},{content:s(()=>[u(`div`,ye,[u(`div`,be,[u(`div`,xe,[u(`div`,Se,[u(`label`,Ce,c(e.$t(`components.form.label.nav_settings_in_nav`)),1),p(r,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:s(()=>[m(c(e.$t(`components.form.hint.nav_settings_in_nav`)),1)]),_:1})]),p(a,{"model-value":y(K),class:`ml-auto shrink-0`,"onUpdate:modelValue":t[7]||=e=>y(ze)(e)},null,8,[`model-value`])])]),(l(!0),d(ie,null,re(y(Ge),t=>(l(),d(`div`,{key:t,class:`flex flex-col field-gap cui-toggle-switch`},[u(`div`,we,[u(`div`,Te,[u(`label`,Ee,c(e.$t(`components.form.label.nav_group_collapsible`,{group:e.$t(`navigation.group_${t}`)})),1),p(r,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:s(()=>[m(c(e.$t(`components.form.hint.nav_group_collapsible`,{group:e.$t(`navigation.group_${t}`)})),1)]),_:2},1024)]),p(a,{"model-value":y(Le)(t),class:`ml-auto shrink-0`,"onUpdate:modelValue":e=>y(Re)(t,e)},null,8,[`model-value`,`onUpdate:modelValue`])])]))),128))])]),_:1})])),u(`div`,null,[u(`span`,De,c(e.$t(`views.settings.debugging`)),1),p(o,{class:`cui-card`},{content:s(()=>[u(`div`,Oe,[u(`div`,ke,[u(`div`,Ae,[u(`div`,je,[u(`label`,Me,c(e.$t(`components.form.label.debug_verbose`)),1),p(r,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:s(()=>[m(c(e.$t(`components.form.hint.debug_verbose`)),1)]),_:1})]),p(a,{"model-value":y(Q),class:`ml-auto shrink-0`,"onUpdate:modelValue":Xe},null,8,[`model-value`])])]),u(`div`,Ne,[u(`div`,Pe,[u(`div`,Fe,[u(`label`,Ie,c(e.$t(`components.form.label.record_logs`)),1),p(r,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:s(()=>[m(c(e.$t(`components.form.hint.record_logs`)),1)]),_:1})]),p(a,{"model-value":y(Z),class:`ml-auto shrink-0`,"onUpdate:modelValue":Ye},null,8,[`model-value`])])])])]),_:1})])])])}}});export{G as t};
|
package/dist/interface/assets/{SettingsAssistant-CcjD56Pd.js → SettingsAssistant-C_9kjVnu.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Bt as e,It as t,Kt as n,L as r,Vr as i,q as a}from"./vendor-cameraui-zaB6gIk1.js";import{Ct as o,Gr as s,Ir as c,Rn as l,i as u,it as d,m as f,o as p,z as m}from"./api-DgcK7TwB.js";import{$n as h,An as g,Bn as _,Cr as v,In as y,Rn as b,Xn as x,br as S,cn as C,dn as w,dr as T,er as E,gn as D,hn as O,hr as k,ln as A,or as j,rn as M,sn as N,sr as P,un as F,vn as I,yr as L}from"./vendor-CP-WYrgy.js";import{B as R,G as ee,H as te,K as ne,L as re,R as ie,S as ae,V as oe,W as se,_ as ce,a as le,i as ue,j as de,l as fe,s as pe,w as z,z as me}from"./vendor-primevue-5HrOunkM.js";import{t as B}from"./assistant-Ba5Ac9Nh.js";import{a as he,d as ge,i as _e,n as ve,o as V,r as ye,s as be,t as H}from"./assistantModels-frQFfeed.js";import{t as xe}from"./pencil-outline-BsdKHhHl.js";import{t as Se}from"./content-copy-DBYFzNui.js";import{t as Ce}from"./plus-x5XqrG-6.js";import{t as we}from"./restore-D2nuKfs4.js";import{t as Te}from"./CuiDataTable-DCCXx-KT.js";var U={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ee(e,t){return y(),w(`svg`,U,[...t[0]||=[C(`path`,{fill:`currentColor`,d:`m22.61 19l-9.08-9.09c.93-2.34.47-5.1-1.44-7C9.79.61 6.21.4 3.66 2.26L7.5 6.11L6.08 7.5L2.25 3.69C.39 6.23.6 9.82 2.9 12.11c1.86 1.86 4.57 2.35 6.89 1.48l9.11 9.11c.39.39 1.02.39 1.41 0l2.3-2.3c.39-.4.39-1.01 0-1.4m-3 1.59l-9.46-9.46c-.61.45-1.29.72-2 .82c-1.36.2-2.79-.21-3.83-1.25C3.37 9.76 2.93 8.5 3 7.26l3.09 3.09l4.24-4.24L7.24 3c1.26-.05 2.49.39 3.44 1.33a4.47 4.47 0 0 1 1.24 3.96a4.35 4.35 0 0 1-.88 1.96l9.46 9.45z`},null,-1)]])}var De=P({name:`mdi-wrench-outline`,render:Ee}),Oe={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function ke(e,t){return y(),w(`svg`,Oe,[...t[0]||=[C(`path`,{fill:`currentColor`,d:`m12 15.39l-3.76 2.27l.99-4.28l-3.32-2.88l4.38-.37L12 6.09l1.71 4.04l4.38.37l-3.32 2.88l.99 4.28M22 9.24l-7.19-.61L12 2L9.19 8.63L2 9.24l5.45 4.73L5.82 21L12 17.27L18.18 21l-1.64-7.03z`},null,-1)]])}var Ae=P({name:`mdi-star-outline`,render:ke}),W={class:`flex w-full flex-col gap-6`},G={class:`flex flex-col field-gap`},je={for:`assistantModelProvider`,class:`cui-label`},Me={key:0,class:`flex flex-col field-gap`},Ne={for:`assistantModelBaseUrl`,class:`cui-label`},Pe={key:1,class:`flex flex-col field-gap`},Fe={for:`assistantModelKey`,class:`cui-label`},Ie={class:`flex flex-col field-gap`},K={for:`assistantModelModel`,class:`cui-label`},q={class:`flex flex-col field-gap`},J={for:`assistantModelName`,class:`cui-label`},Y={class:`flex items-center gap-4 cui-toggle-switch`},Le={class:`flex flex-col field-switch-gap`},X={for:`assistantModelUsers`,class:`cui-label-switch`},Re={key:2,class:`flex items-center gap-4 cui-toggle-switch`},ze={class:`flex flex-col field-switch-gap`},Be={for:`assistantModelImages`,class:`cui-label-switch`},Ve=I({__name:`AssistantModel`,props:{entry:{},models:{}},setup(e,{expose:t}){let n=new B,a=e,{t:o}=i(),s=c(),l=n.listAssistantModelsMutation(),u=T(a.entry?.provider??`ollama`),d=T(a.entry?.baseURL??``),f=T(``),p=T(a.entry?.model??``),m=T(a.entry&&a.entry.name!==a.entry.model?a.entry.name:``),_=T(a.entry?.sendImages??!1),b=T(a.entry?.userAccess!==!1),x=T(`new`),S=T([]),E=T([]),k=T(!1),P=N(()=>ve.includes(u.value)),I=N(()=>u.value===`ollama`||u.value===`openai-compatible`),R=N(()=>a.entry?.apiKeySet===!0&&a.entry.provider===u.value),ee=N(()=>a.models.filter(e=>e._id!==a.entry?._id&&e.provider===u.value&&e.apiKeySet)),te=N(()=>[{label:R.value?o(`views.settings.assistant_api_key_stored`):o(`views.settings.assistant_api_key_new`),value:`new`},...ee.value.map(e=>({label:o(`views.settings.assistant_api_key_from`,{name:e.name}),value:e._id}))]),re=N(()=>P.value&&x.value===`new`&&!f.value&&!R.value);function ie(){return R.value?`new`:ee.value[0]?._id??`new`}function ae(){let e=x.value===`new`?f.value?{apiKey:f.value}:a.entry&&!R.value?{apiKey:null}:{}:{copyKeyFrom:x.value};return{...a.entry?{id:a.entry._id,retest:!0,sendImages:_.value}:{},...e,name:m.value,provider:u.value,baseURL:I.value&&d.value?d.value:null,model:p.value.trim(),userAccess:b.value}}function oe(){d.value=``,p.value=``,S.value=[],E.value=[],x.value=ie()}function se(e){let t=e.query.toLowerCase();E.value=S.value.filter(e=>e.toLowerCase().includes(t))}async function ce(){let e=await l.mutateAsync(ae());if(e.error){s.add({severity:`warn`,detail:o(`views.settings.assistant_models_failed`,{message:e.error}),life:5e3});return}S.value=e.models,E.value=e.models}return g(()=>{x.value=ie()}),t({onConfirm:async()=>!p.value.trim()||re.value?(k.value=!0,null):ae()}),(t,n)=>{let i=de,a=me,o=r,s=pe,c=z,g=ne;return y(),w(`div`,W,[C(`div`,G,[C(`label`,je,v(t.$t(`views.settings.assistant_provider_label`)),1),D(i,{modelValue:L(u),"onUpdate:modelValue":n[0]||=e=>j(u)?u.value=e:null,"input-id":`assistantModelProvider`,options:L(ye),"option-label":`label`,"option-value":`value`,fluid:``,onChange:oe},null,8,[`modelValue`,`options`]),D(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(t.$t(`views.settings.assistant_provider_hint_${L(u).replace(`-`,`_`)}`)),1)]),_:1})]),L(I)?(y(),w(`div`,Me,[C(`label`,Ne,v(t.$t(`views.settings.assistant_base_url_label`)),1),D(o,{id:`assistantModelBaseUrl`,modelValue:L(d),"onUpdate:modelValue":n[1]||=e=>j(d)?d.value=e:null,modelModifiers:{trim:!0},placeholder:L(H)[L(u)],fluid:``,autocomplete:`off`},null,8,[`modelValue`,`placeholder`])])):F(``,!0),L(P)||L(u)===`openai-compatible`?(y(),w(`div`,Pe,[C(`label`,Fe,v(t.$t(`views.settings.assistant_api_key_label`)),1),L(ee).length?(y(),A(i,{key:0,modelValue:L(x),"onUpdate:modelValue":n[2]||=e=>j(x)?x.value=e:null,options:L(te),"option-label":`label`,"option-value":`value`,fluid:``},null,8,[`modelValue`,`options`])):F(``,!0),L(x)===L(`new`)?(y(),w(M,{key:1},[D(s,{modelValue:L(f),"onUpdate:modelValue":n[3]||=e=>j(f)?f.value=e:null,"input-id":`assistantModelKey`,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`new-password`,invalid:L(k)&&L(re),placeholder:L(R)?`••••••••`:``},null,8,[`modelValue`,`invalid`,`placeholder`]),L(R)?(y(),A(a,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(t.$t(`views.settings.assistant_api_key_keep_hint`)),1)]),_:1})):L(P)?F(``,!0):(y(),A(a,{key:1,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(t.$t(`views.settings.assistant_api_key_optional`)),1)]),_:1}))],64)):F(``,!0)])):F(``,!0),C(`div`,Ie,[C(`label`,K,v(t.$t(`views.settings.assistant_model_label`)),1),D(c,{modelValue:L(p),"onUpdate:modelValue":n[4]||=e=>j(p)?p.value=e:null,"input-id":`assistantModelModel`,suggestions:L(E),loading:L(l).isPending.value,invalid:L(k)&&!L(p).trim(),dropdown:``,fluid:``,placeholder:t.$t(`views.settings.assistant_model_placeholder`),onComplete:se,onDropdownClick:ce},null,8,[`modelValue`,`suggestions`,`loading`,`invalid`,`placeholder`]),D(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(t.$t(`views.settings.assistant_model_info`)),1)]),_:1})]),C(`div`,q,[C(`label`,J,v(t.$t(`views.settings.assistant_model_name_label`)),1),D(o,{id:`assistantModelName`,modelValue:L(m),"onUpdate:modelValue":n[5]||=e=>j(m)?m.value=e:null,modelModifiers:{trim:!0},placeholder:L(p).trim()||t.$t(`views.settings.assistant_model_name_placeholder`),maxlength:`40`,fluid:``},null,8,[`modelValue`,`placeholder`])]),C(`div`,Y,[C(`div`,Le,[C(`label`,X,v(t.$t(`views.settings.assistant_model_users`)),1),D(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[O(v(t.$t(`views.settings.assistant_model_users_info`)),1)]),_:1})]),D(g,{modelValue:L(b),"onUpdate:modelValue":n[6]||=e=>j(b)?b.value=e:null,"input-id":`assistantModelUsers`,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),e.entry?(y(),w(`div`,Re,[C(`div`,ze,[C(`label`,Be,v(t.$t(`views.settings.assistant_send_images`)),1),D(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[O(v(e.entry.capabilities?.vision===!1?t.$t(`views.settings.assistant_send_images_no_vision`):t.$t(`views.settings.assistant_send_images_info`)),1)]),_:1})]),D(g,{modelValue:L(_),"onUpdate:modelValue":n[7]||=e=>j(_)?_.value=e:null,"input-id":`assistantModelImages`,class:`ml-auto shrink-0`},null,8,[`modelValue`])])):F(``,!0)])}}}),He={class:`w-full h-full`},Ue={key:0,class:`w-full h-full flex items-center justify-center`},We={key:1,class:`flex flex-col w-full gap-6`},Ge={class:`card-title`},Ke={class:`flex items-center gap-4`},qe={class:`flex flex-col field-switch-gap min-w-0`},Je={class:`text-sm font-bold text-color`},Ye={class:`card-title`},Xe={class:`flex flex-col gap-6`},Ze={class:`flex items-center gap-4 cui-toggle-switch`},Qe={class:`flex flex-col field-switch-gap`},$e={for:`enabled`,class:`cui-label-switch`},et={key:0,class:`flex flex-col divide-y divide-(--border-color)`},tt={class:`min-w-0 flex-1`},nt={class:`flex flex-wrap items-center gap-2`},rt={class:`font-medium text-color`},it={class:`mt-0.5 truncate text-muted`},at={key:0,class:`mt-1 text-xs text-danger line-clamp-2`},ot={class:`flex shrink-0 items-center gap-1`},st={key:1,class:`text-sm text-muted`},ct={class:`flex`},lt={class:`card-title`},ut={class:`flex flex-col gap-6`},dt={key:0,class:`flex flex-col divide-y divide-(--border-color)`},ft={class:`flex min-w-0 items-center gap-2 md:w-48 md:shrink-0`},pt={class:`truncate font-medium text-color`},mt={key:1,class:`text-sm text-muted`},ht={class:`flex`},gt={class:`card-title`},_t={class:`flex flex-col gap-6`},vt={class:`flex items-center gap-4 cui-toggle-switch`},yt={class:`flex flex-col field-switch-gap`},bt={for:`memoryEnabled`,class:`cui-label-switch`},xt={class:`flex items-center gap-4 cui-toggle-switch`},St={class:`flex flex-col field-switch-gap`},Ct={for:`terminalEnabled`,class:`cui-label-switch`},wt={class:`flex flex-col field-gap`},Tt={for:`language`,class:`cui-label`},Et={class:`flex flex-col field-gap`},Dt={for:`reasoning`,class:`cui-label`},Ot={class:`flex flex-col md:flex-row gap-6`},kt={class:`flex flex-col field-gap flex-1`},At={for:`maxIterations`,class:`cui-label`},jt={class:`flex flex-col field-gap flex-1`},Mt={for:`maxToolCalls`,class:`cui-label`},Nt={class:`flex flex-col field-gap`},Pt={for:`contextTokens`,class:`cui-label`},Ft={class:`flex flex-col md:flex-row gap-4`},It={class:`flex flex-col field-gap flex-1`},Lt={for:`historyThreads`,class:`cui-label`},Rt={class:`flex flex-col field-gap flex-1`},zt={for:`historyImages`,class:`cui-label`},Bt={class:`flex flex-col field-gap`},Vt={for:`systemPromptExtra`,class:`cui-label`},Ht={class:`flex items-center gap-2`},Ut={class:`card-title`},Wt={class:`flex flex-col gap-6`},Gt={class:`flex flex-col gap-4`},Kt={class:`flex items-center justify-between gap-4`},qt={class:`flex flex-col`},Jt={class:`text-sm font-medium text-color`},Yt={class:`text-xs text-muted`},Xt={class:`flex items-center justify-between gap-4`},Zt={class:`flex flex-col`},Qt={class:`text-sm font-medium text-color`},$t={class:`text-xs text-muted`},en={key:0,class:`flex flex-col gap-6`},tn={class:`flex flex-col field-gap`},nn={for:`mcpEndpoint`,class:`cui-label`},rn={class:`flex flex-col field-gap`},an={for:`mcpClient`,class:`cui-label`},on={class:`flex`},sn={class:`card-title`},cn={class:`flex flex-col gap-6`},ln={class:`flex items-center gap-3`},un={class:`text-sm font-medium text-color truncate`},dn={class:`flex flex-col md:flex-row gap-4`},fn={class:`flex flex-col field-gap md:w-56`},pn=[`for`],mn={class:`flex flex-col field-gap flex-1`},hn=[`for`],gn={class:`flex flex-col field-gap`},_n=[`for`],vn={class:`flex items-center gap-4 cui-toggle-switch`},yn={class:`flex flex-col field-switch-gap`},bn=[`for`],xn={class:`flex items-center gap-2`},Sn={class:`card-title`},Cn={class:`flex flex-col gap-6`},wn={key:0,class:`flex flex-col divide-y divide-(--border-color)`},Tn={class:`min-w-0 flex-1`},En={class:`flex flex-wrap items-center gap-2`},Dn={class:`font-medium text-color`},On={class:`mt-0.5 text-muted line-clamp-2`},kn={class:`mt-1 text-xs text-muted`},An={key:0},jn={key:1},Mn={class:`flex shrink-0 items-center gap-1`},Nn={class:`flex flex-col md:flex-row gap-6`},Pn={class:`flex flex-col field-gap flex-1`},Fn={for:`scheduleTitle`,class:`cui-label`},In={class:`flex flex-col field-gap w-full md:w-52 shrink-0`},Ln={for:`scheduleDeliver`,class:`cui-label`},Rn={class:`flex flex-col field-gap`},zn={for:`schedulePrompt`,class:`cui-label`},Bn={key:0,class:`flex flex-col field-gap`},Vn={for:`scheduleProfile`,class:`cui-label`},Hn={class:`flex flex-col md:flex-row gap-6`},Un={class:`flex flex-col field-gap flex-1`},Wn={for:`schedulePreset`,class:`cui-label`},Gn={key:0,class:`flex flex-col field-gap w-full md:w-40 shrink-0`},Kn={for:`scheduleTime`,class:`cui-label`},qn={key:1,class:`flex flex-col field-gap flex-1`},Jn={for:`scheduleCron`,class:`cui-label`},Yn={class:`flex`},Xn={class:`card-title`},Zn={class:`flex flex-col gap-3`},Qn={class:`text-sm text-muted`},$n={class:`truncate`},er={class:`truncate`},tr={class:`card-title`},nr={key:0,class:`text-sm text-muted`},rr={key:1,class:`flex flex-col gap-6`},ir={key:0,class:`mb-4 flex flex-col field-gap`},ar=[`for`],or={class:`flex max-h-96 flex-col divide-y divide-(--border-color) overflow-y-auto pr-2`},sr={class:`min-w-0 flex-1`},cr={class:`flex flex-wrap items-center gap-2`},lr={class:`font-medium text-color`},ur={class:`text-muted`},dr={key:0,class:`flex`},Z=`none`,fr=l(I({__name:`SettingsAssistant`,setup(l){let g={memoryEnabled:!0,terminalEnabled:!1,language:null,reasoning:`default`,maxIterations:8,maxToolCalls:25,contextTokens:48e3,historyThreads:50,historyImages:24},P={columnHeaderContent:{class:`justify-end`}},I={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}}},z=new B,ve=c(),H=d(),{t:U,locale:Ee}=i(),{data:Oe,isLoading:ke}=z.usageAllQuery(),{data:W}=z.getAssistantInfoQuery(),G=z.patchAssistantInfoMutation(),{data:je}=z.listProfilesQuery(),{data:Me}=z.listSchedulesQuery(),Ne=z.createScheduleMutation(),Pe=z.patchScheduleMutation(),Fe=z.deleteScheduleMutation(),Ie=z.runScheduleMutation(),K=T(null),q=T({title:``,prompt:``,preset:`daily`,time:`20:00`,cron:``,deliver:`push`,profileId:null}),J=T({}),Y=T(`claude-code`),Le=T(`core`),X=N(()=>W.value?.settings.models??[]),Re=N(()=>W.value?he(W.value.settings):void 0),ze=N(()=>[{label:U(`views.settings.assistant_plugin_no_access`),value:Z},...X.value.map(e=>({label:e.name,value:e._id}))]),Be=N(()=>{let e=new Map;for(let t of W.value?.tools??[]){let n=t.source.kind===`plugin`?t.source.pluginId:t.source.kind===`external`?t.source.serverId:`core`,r=t.source.kind===`plugin`?t.source.pluginName:t.source.kind===`external`?t.source.serverName:`camera.ui`,i=e.get(n)??{key:n,label:r,serverId:t.source.kind===`external`?t.source.serverId:void 0,tools:[]};i.tools.push(t),e.set(n,i)}return Array.from(e.values())}),fr=N(()=>Oe.value?.map(e=>({...e,key:`${e.userId}-${e.month}-${e.provider}-${e.model}`}))),Q=N(()=>W.value?.status),pr=N(()=>[{label:U(`views.settings.assistant_language_auto`),value:null},{label:`Deutsch`,value:`de`},{label:`English`,value:`en`}]),mr=N(()=>[`default`,`off`,`low`,`high`].map(e=>({label:U(`views.settings.assistant_reasoning_${e}`),value:e}))),hr=N(()=>new URL(`${s.defaults.baseURL??`/api`}/assistant/mcp`.replace(/\/{2,}/g,`/`),window.location.origin).toString()),gr=N(()=>[{label:`Claude Code`,value:`claude-code`},{label:`Cursor, Windsurf, VS Code`,value:`cursor`},{label:`Claude Desktop`,value:`claude-desktop`}]),_r=N(()=>{let e=hr.value;return Y.value===`claude-code`?`claude mcp add --transport http camera-ui ${e} --header "Authorization: Bearer <api token>"`:Y.value===`cursor`?JSON.stringify({mcpServers:{"camera-ui":{url:e,headers:{Authorization:`Bearer <api token>`}}}},null,2):JSON.stringify({mcpServers:{"camera-ui":{command:`npx`,args:[`-y`,`mcp-remote`,e,`--header`,`Authorization: Bearer <api token>`]}}},null,2)}),vr=N(()=>[`push`,`thread`,`both`].map(e=>({label:U(`views.settings.assistant_schedule_deliver_${e}`),value:e}))),yr=N(()=>[`daily`,`weekdays`,`weekends`,`weekly`,`hourly`,`custom`].map(e=>({label:U(`views.settings.assistant_schedule_preset_${e}`),value:e}))),br=N(()=>{let{preset:e,time:t,cron:n}=q.value,[r,i]=t.split(`:`).map(e=>Number.parseInt(e,10));return e===`custom`?n.trim():e===`hourly`?`0 * * * *`:Number.isNaN(r)||Number.isNaN(i)?``:`${i} ${r} * * ${e===`weekdays`?`1-5`:e===`weekends`?`0,6`:e===`weekly`?`0`:`*`}`}),xr=N(()=>{switch(Q.value?.state){case`ready`:return`success`;case`unconfigured`:return`warn`;default:return`secondary`}}),Sr=N(()=>U(`views.settings.assistant_state_${Q.value?.state??`disabled`}`)),Cr=N(()=>Q.value?Q.value.state===`ready`?U(`views.settings.assistant_status_ready`,{model:Q.value.model}):U(`views.settings.assistant_status_info`):``);function wr(e){let t=/^(\d+) (\d+) \* \* (\*|1-5|0,6|0)$/.exec(e);if(!t)return e;let n=`${t[2].padStart(2,`0`)}:${t[1].padStart(2,`0`)}`,r=t[3]===`*`?`daily`:t[3]===`1-5`?`weekdays`:t[3]===`0`?`weekly`:`weekends`;return`${U(`views.settings.assistant_schedule_preset_${r}`)} ${n}`}function Tr(e){return e===`push`?`info`:e===`thread`?`secondary`:`success`}function Er(e){return new Date(e).toLocaleString(Ee.value,{day:`2-digit`,month:`2-digit`,hour:`2-digit`,minute:`2-digit`})}async function Dr(){await Ne.mutateAsync({title:q.value.title,prompt:q.value.prompt,cron:br.value,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,language:Ee.value,deliver:q.value.deliver,profileId:q.value.profileId,enabled:!0}),q.value={...q.value,title:``,prompt:``,cron:``,profileId:null}}function Or(e){return e.replace(/^\[[^\]]+\]\s*/,``)}function kr(e){if(e.source.kind!==`external`)return e.approval;let{serverId:t,toolName:n}=e.source;return K.value?.mcpServers.find(e=>e.id===t)?.toolApproval[n]??e.approval}function Ar(e){return e.tools.flatMap(e=>e.source.kind===`external`?[{label:ge(e.name),value:e.source.toolName}]:[])}function jr(e){return e.tools.flatMap(e=>e.source.kind===`external`&&!kr(e)?[e.source.toolName]:[])}function Mr(e,t){let n=K.value?.mcpServers.find(t=>t.id===e.serverId);n&&(n.toolApproval=Object.fromEntries(Ar(e).map(e=>[e.value,!t.includes(e.value)])))}function Nr(e){return e<1e3?String(e):e<1e6?`${(e/1e3).toFixed(+(e<1e4))}k`:`${(e/1e6).toFixed(2)}M`}function Pr(e){return W.value?.external.find(t=>t.id===e)}function Fr(e){let t=Pr(e);return t?t.state===`connected`?U(`views.settings.assistant_external_state_connected`,{n:t.toolCount}):t.state===`error`?U(`views.settings.assistant_external_state_error`,{message:t.error??``}):U(`views.settings.assistant_external_state_${t.state}`):``}function Ir(e){let t=Pr(e)?.state;return t===`connected`?`text-success`:t===`error`?`text-danger`:`text-muted`}function Lr(){K.value&&K.value.mcpServers.push({id:f(),name:``,url:``,enabled:!0,insecure:!1,tokenSet:!1,toolApproval:{}})}function Rr(e){K.value&&(K.value.mcpServers=K.value.mcpServers.filter(t=>t.id!==e),delete J.value[e])}function zr(){let e=p(K.value);return{language:e.language,maxIterations:e.maxIterations,maxToolCalls:e.maxToolCalls,contextTokens:e.contextTokens,historyThreads:e.historyThreads,historyImages:e.historyImages,terminalEnabled:e.terminalEnabled,reasoning:e.reasoning,systemPromptExtra:e.systemPromptExtra,mcpEnabled:e.mcpEnabled,mcpWrites:e.mcpWrites,memoryEnabled:e.memoryEnabled,plugins:e.plugins.map(({pluginId:e,modelId:t})=>({pluginId:e,modelId:t})),mcpServers:e.mcpServers.filter(e=>e.name.trim()||e.url.trim()).map(e=>({id:e.id,name:e.name.trim(),url:e.url.trim(),enabled:e.enabled,insecure:e.insecure,toolApproval:e.toolApproval,...J.value[e.id]?{token:J.value[e.id]}:{}}))}}function Br(){K.value&&Object.assign(K.value,g)}async function Vr(){K.value&&(await G.mutateAsync(zr()),J.value={})}function Hr(e){return ye.find(t=>t.value===e)?.label??e}async function Ur(e){return G.mutateAsync({models:e})}function Wr(e){let t=new Set(X.value.map(e=>e._id));H.openComponentDialog(Ve,{data:{title:U(e?`views.settings.assistant_model_edit`:`views.settings.assistant_model_add`),confirmText:U(`components.form.button.save`),awaitConfirm:!0,contentProps:{entry:e?k(e):void 0,models:k(X.value)}},onConfirm:async n=>{Gr((await Ur(e?X.value.map(t=>t._id===e._id?n:V(t)):[...X.value.map(V),n])).settings.models.find(n=>e?n._id===e._id:!t.has(n._id)))}})}function Gr(e){let t=e?.capabilities;if(!t)return;let n=t.error?U(`views.settings.assistant_test_failed`,{message:t.error}):t.toolCalling?t.vision===!1?U(`views.settings.assistant_test_vision_missing`):``:U(`views.settings.assistant_test_tools_missing`);n&&ve.add({severity:t.error?`error`:`warn`,detail:n,life:8e3})}function Kr(e){H.openTextDialog({data:{title:U(`views.settings.assistant_model_delete`),contentText:U(`views.settings.assistant_model_delete_confirm`,{name:e.name}),confirmText:U(`views.settings.assistant_model_delete`),confirmButtonProps:{severity:`danger`}},onConfirm:async()=>{await Ur(X.value.filter(t=>t._id!==e._id).map(V))}})}async function qr(e){await G.mutateAsync({defaultModelId:e._id})}function Jr(e){return K.value?.plugins.find(t=>t.pluginId===e)?.modelId??Z}function Yr(e){return X.value.find(t=>t._id===Jr(e))}function Xr(e,t){if(!K.value)return;let n=K.value.plugins.filter(t=>t.pluginId!==e);K.value.plugins=t===Z?n:[...n,{pluginId:e,modelId:t}]}function Zr(e){return X.value.find(t=>t.provider===e.provider&&t.model===e.model)?.name??e.model}function Qr(e){return je.value?.find(t=>t._id===e)?.name}return x(W,e=>{e&&!K.value&&(K.value=p(e.settings))},{immediate:!0}),(i,s)=>{let c=t,l=me,d=le,f=a,p=ne,g=Ae,x=e,T=xe,k=m,N=Ce,z=de,B=ce,he=ue,ve=we,V=r,ye=o,H=re,U=ie,Ee=_(`RouterLink`),Oe=pe,Ve=be,Z=ae,Q=Te,Pr=R,zr=oe,Ur=fe,Gr=De,$r=te,ei=se,ti=ee,$=n;return y(),w(`div`,He,[L(K)?(y(),w(`div`,We,[C(`div`,null,[C(`span`,Ge,v(i.$t(`views.settings.status`)),1),D(f,{class:`cui-card`},{content:h(()=>[C(`div`,Ke,[C(`div`,qe,[C(`span`,Je,v(i.$t(`views.settings.assistant_title`)),1),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:h(()=>[O(v(L(Cr)),1)]),_:1})]),D(d,{class:`ml-auto shrink-0`,severity:L(xr),value:L(Sr)},null,8,[`severity`,`value`])])]),_:1})]),C(`div`,null,[C(`span`,Ye,v(i.$t(`views.settings.assistant_model`)),1),D(f,{class:`cui-card`},{content:h(()=>[C(`div`,Xe,[C(`div`,Ze,[C(`div`,Qe,[C(`label`,$e,v(i.$t(`components.form.label.enabled`)),1),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_enabled_info`)),1)]),_:1})]),D(p,{"model-value":L(W)?.settings.enabled??!1,"input-id":`enabled`,disabled:L(G).isPending.value,class:`ml-auto shrink-0`,"onUpdate:modelValue":s[0]||=e=>L(G).mutate({enabled:e})},null,8,[`model-value`,`disabled`])]),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_models_info`)),1)]),_:1}),L(X).length?(y(),w(`div`,et,[(y(!0),w(M,null,b(L(X),e=>(y(),w(`div`,{key:e._id,class:`flex items-start gap-3 py-3 text-sm`},[C(`div`,tt,[C(`div`,nt,[C(`span`,rt,v(e.name),1),e._id===L(Re)?._id?(y(),A(d,{key:0,severity:`info`,value:i.$t(`views.settings.assistant_model_default`),class:`text-[10px]`},null,8,[`value`])):F(``,!0),e.userAccess===!1?(y(),A(d,{key:1,severity:`secondary`,value:i.$t(`views.settings.assistant_model_admins_only`),class:`text-[10px]`},null,8,[`value`])):F(``,!0),(y(!0),w(M,null,b(L(_e)(e),e=>(y(),A(d,{key:e.key,severity:e.severity,value:i.$t(`views.settings.assistant_capability_${e.key}`),class:`text-[10px]`},null,8,[`severity`,`value`]))),128))]),C(`div`,it,v(Hr(e.provider))+` · `+v(e.model),1),e.capabilities?.error?(y(),w(`div`,at,v(e.capabilities.error),1)):F(``,!0)]),C(`div`,ot,[e._id===L(Re)?._id?F(``,!0):E((y(),A(x,{key:0,type:`button`,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md`,disabled:L(G).isPending.value,onClick:t=>qr(e)},{icon:h(()=>[D(g,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`,`onClick`])),[[$,{value:i.$t(`views.settings.assistant_model_make_default`)},void 0,{top:!0}]]),E((y(),A(x,{type:`button`,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md`,onClick:t=>Wr(e)},{icon:h(()=>[D(T,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[$,{value:i.$t(`views.settings.assistant_model_edit`)},void 0,{top:!0}]]),E((y(),A(x,{type:`button`,severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,onClick:t=>Kr(e)},{icon:h(()=>[D(k,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[$,{value:i.$t(`views.settings.assistant_model_delete`)},void 0,{top:!0}]])])]))),128))])):(y(),w(`div`,st,v(i.$t(`views.settings.assistant_models_empty`)),1)),C(`div`,ct,[D(x,{type:`button`,severity:`secondary`,outlined:``,class:`cui-button-medium ml-auto`,label:i.$t(`views.settings.assistant_model_add`),disabled:L(X).length>=20,onClick:s[1]||=e=>Wr()},{icon:h(()=>[D(N,{class:`w-4 h-4`})]),_:1},8,[`label`,`disabled`])])])]),_:1})]),C(`div`,null,[C(`span`,lt,v(i.$t(`views.settings.assistant_plugins`)),1),D(f,{class:`cui-card`},{content:h(()=>[C(`div`,ut,[D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_plugins_info`)),1)]),_:1}),L(W)?.plugins.length?(y(),w(`div`,dt,[(y(!0),w(M,null,b(L(W).plugins,e=>(y(),w(`div`,{key:e.id,class:`flex flex-col gap-2 py-3 text-sm md:flex-row md:items-center md:gap-4`},[C(`div`,ft,[C(`span`,pt,v(e.name),1),Yr(e.id)?.capabilities?.vision===!1?(y(),A(d,{key:0,severity:`warn`,value:i.$t(`views.settings.assistant_capability_no_vision`),class:`shrink-0 text-[10px]`},null,8,[`value`])):F(``,!0)]),D(z,{"model-value":Jr(e.id),options:L(ze),"option-label":`label`,"option-value":`value`,class:`w-full md:min-w-0 md:flex-1`,"onUpdate:modelValue":t=>Xr(e.id,t)},null,8,[`model-value`,`options`,`onUpdate:modelValue`])]))),128))])):(y(),w(`div`,mt,v(i.$t(`views.settings.assistant_plugins_empty`)),1)),C(`div`,ht,[D(x,{type:`button`,loading:L(G).isPending.value,class:`cui-button-medium ml-auto`,label:i.$t(`components.form.button.save`),onClick:Vr},null,8,[`loading`,`label`])])])]),_:1})]),C(`div`,null,[C(`span`,gt,v(i.$t(`views.settings.assistant_behavior`)),1),D(f,{class:`cui-card`},{content:h(()=>[C(`div`,_t,[C(`div`,vt,[C(`div`,yt,[C(`label`,bt,v(i.$t(`views.settings.assistant_memory`)),1),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_memory_info`)),1)]),_:1})]),D(p,{modelValue:L(K).memoryEnabled,"onUpdate:modelValue":s[2]||=e=>L(K).memoryEnabled=e,"input-id":`memoryEnabled`,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),C(`div`,xt,[C(`div`,St,[C(`label`,Ct,v(i.$t(`views.settings.assistant_terminal`)),1),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_terminal_info`)),1)]),_:1})]),D(p,{modelValue:L(K).terminalEnabled,"onUpdate:modelValue":s[3]||=e=>L(K).terminalEnabled=e,"input-id":`terminalEnabled`,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),C(`div`,wt,[C(`label`,Tt,v(i.$t(`views.settings.assistant_language_label`)),1),D(z,{modelValue:L(K).language,"onUpdate:modelValue":s[4]||=e=>L(K).language=e,options:L(pr),"option-label":`label`,"option-value":`value`,fluid:``},null,8,[`modelValue`,`options`]),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_language_info`)),1)]),_:1})]),C(`div`,Et,[C(`label`,Dt,v(i.$t(`views.settings.assistant_reasoning_label`)),1),D(z,{modelValue:L(K).reasoning,"onUpdate:modelValue":s[5]||=e=>L(K).reasoning=e,"input-id":`reasoning`,options:L(mr),"option-label":`label`,"option-value":`value`,fluid:``},null,8,[`modelValue`,`options`]),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_reasoning_info`)),1)]),_:1})]),C(`div`,Ot,[C(`div`,kt,[C(`label`,At,v(i.$t(`views.settings.assistant_max_iterations_label`)),1),D(B,{modelValue:L(K).maxIterations,"onUpdate:modelValue":s[6]||=e=>L(K).maxIterations=e,min:1,max:30,"use-grouping":!1,fluid:``},null,8,[`modelValue`]),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_max_iterations_info`)),1)]),_:1})]),C(`div`,jt,[C(`label`,Mt,v(i.$t(`views.settings.assistant_max_tool_calls_label`)),1),D(B,{modelValue:L(K).maxToolCalls,"onUpdate:modelValue":s[7]||=e=>L(K).maxToolCalls=e,min:1,max:100,"use-grouping":!1,fluid:``},null,8,[`modelValue`]),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_max_tool_calls_info`)),1)]),_:1})])]),C(`div`,Nt,[C(`label`,Pt,v(i.$t(`views.settings.assistant_context_tokens_label`)),1),D(B,{id:`contextTokens`,modelValue:L(K).contextTokens,"onUpdate:modelValue":s[8]||=e=>L(K).contextTokens=e,min:8e3,max:4e5,step:1e3,"use-grouping":!1,fluid:``},null,8,[`modelValue`]),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_context_tokens_info`)),1)]),_:1})]),C(`div`,Ft,[C(`div`,It,[C(`label`,Lt,v(i.$t(`views.settings.assistant_history_threads_label`)),1),D(B,{id:`historyThreads`,modelValue:L(K).historyThreads,"onUpdate:modelValue":s[9]||=e=>L(K).historyThreads=e,min:5,max:500,"use-grouping":!1,fluid:``},null,8,[`modelValue`]),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_history_threads_info`)),1)]),_:1})]),C(`div`,Rt,[C(`label`,zt,v(i.$t(`views.settings.assistant_history_images_label`)),1),D(B,{id:`historyImages`,modelValue:L(K).historyImages,"onUpdate:modelValue":s[10]||=e=>L(K).historyImages=e,min:0,max:200,"use-grouping":!1,fluid:``},null,8,[`modelValue`]),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_history_images_info`)),1)]),_:1})])]),C(`div`,Bt,[C(`label`,Vt,v(i.$t(`views.settings.assistant_extra_prompt_label`)),1),D(he,{modelValue:L(K).systemPromptExtra,"onUpdate:modelValue":s[11]||=e=>L(K).systemPromptExtra=e,rows:`3`,"auto-resize":``,placeholder:i.$t(`views.settings.assistant_extra_prompt_placeholder`)},null,8,[`modelValue`,`placeholder`]),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_extra_prompt_info`)),1)]),_:1})]),C(`div`,Ht,[D(x,{type:`button`,severity:`secondary`,outlined:``,class:`cui-button-medium ml-auto`,label:i.$t(`components.form.button.reset_defaults`),onClick:Br},{icon:h(()=>[D(ve,{class:`w-4 h-4`})]),_:1},8,[`label`]),D(x,{type:`button`,loading:L(G).isPending.value,class:`cui-button-medium`,label:i.$t(`components.form.button.save`),onClick:Vr},null,8,[`loading`,`label`])])])]),_:1})]),C(`div`,null,[C(`span`,Ut,v(i.$t(`views.settings.assistant_mcp`)),1),D(f,{class:`cui-card`},{content:h(()=>[C(`div`,Wt,[D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_mcp_info`)),1)]),_:1}),C(`div`,Gt,[C(`div`,Kt,[C(`div`,qt,[C(`span`,Jt,v(i.$t(`views.settings.assistant_mcp_enabled_label`)),1),C(`span`,Yt,v(i.$t(`views.settings.assistant_mcp_enabled_info`)),1)]),D(p,{modelValue:L(K).mcpEnabled,"onUpdate:modelValue":s[12]||=e=>L(K).mcpEnabled=e},null,8,[`modelValue`])]),C(`div`,Xt,[C(`div`,Zt,[C(`span`,Qt,v(i.$t(`views.settings.assistant_mcp_writes_label`)),1),C(`span`,$t,v(i.$t(`views.settings.assistant_mcp_writes_info`)),1)]),D(p,{modelValue:L(K).mcpWrites,"onUpdate:modelValue":s[13]||=e=>L(K).mcpWrites=e,disabled:!L(K).mcpEnabled},null,8,[`modelValue`,`disabled`])])]),L(K).mcpEnabled?(y(),w(`div`,en,[C(`div`,tn,[C(`label`,nn,v(i.$t(`views.settings.assistant_mcp_endpoint_label`)),1),D(U,null,{default:h(()=>[D(V,{id:`mcpEndpoint`,"model-value":L(hr),readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),D(H,null,{default:h(()=>[D(ye,{"action-text":i.$t(`components.form.tooltip.copied`),icon:L(Se),"button-props":{severity:`secondary`,text:!0},onAction:s[14]||=e=>L(u)(L(hr))},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_mcp_token_info`))+` `,1),D(Ee,{to:{name:`SettingsAccount`},class:`underline`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_mcp_token_link`)),1)]),_:1})]),_:1})]),C(`div`,rn,[C(`label`,an,v(i.$t(`views.settings.assistant_mcp_client_label`)),1),D(z,{modelValue:L(Y),"onUpdate:modelValue":s[15]||=e=>j(Y)?Y.value=e:null,"input-id":`mcpClient`,options:L(gr),"option-label":`label`,"option-value":`value`,class:`w-full`},null,8,[`modelValue`,`options`]),D(U,null,{default:h(()=>[D(he,{id:`mcpSnippet`,"model-value":L(_r),readonly:``,"auto-resize":``,rows:`3`,class:`font-mono text-xs`},null,8,[`model-value`]),D(H,null,{default:h(()=>[D(ye,{"action-text":i.$t(`components.form.tooltip.copied`),icon:L(Se),"button-props":{severity:`secondary`,text:!0},onAction:s[16]||=e=>L(u)(L(_r))},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_mcp_snippet_info`)),1)]),_:1})])])):F(``,!0),C(`div`,on,[D(x,{type:`button`,loading:L(G).isPending.value,class:`cui-button-medium ml-auto`,label:i.$t(`components.form.button.save`),onClick:Vr},null,8,[`loading`,`label`])])])]),_:1})]),C(`div`,null,[C(`span`,sn,v(i.$t(`views.settings.assistant_external`)),1),D(f,{class:`cui-card`},{content:h(()=>[C(`div`,cn,[D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_external_info`)),1)]),_:1}),(y(!0),w(M,null,b(L(K).mcpServers,e=>(y(),w(`div`,{key:e.id,class:`cui-assistant-server flex flex-col gap-4 rounded-xl p-4`},[C(`div`,ln,[C(`span`,un,v(e.name||i.$t(`views.settings.assistant_external_new`)),1),C(`span`,{class:S([`text-xs`,Ir(e.id)])},v(Fr(e.id)),3),D(p,{modelValue:e.enabled,"onUpdate:modelValue":t=>e.enabled=t,class:`ml-auto shrink-0`},null,8,[`modelValue`,`onUpdate:modelValue`]),E((y(),A(x,{type:`button`,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md shrink-0`,onClick:t=>Rr(e.id)},{icon:h(()=>[D(k,{class:`w-4 h-4`})]),_:1},8,[`onClick`])),[[$,{value:i.$t(`views.settings.assistant_external_remove`)},void 0,{top:!0}]])]),C(`div`,dn,[C(`div`,fn,[C(`label`,{for:`server-name-${e.id}`,class:`cui-label`},v(i.$t(`views.settings.assistant_external_name`)),9,pn),D(V,{id:`server-name-${e.id}`,modelValue:e.name,"onUpdate:modelValue":t=>e.name=t,fluid:``,placeholder:`Home Assistant`},null,8,[`id`,`modelValue`,`onUpdate:modelValue`])]),C(`div`,mn,[C(`label`,{for:`server-url-${e.id}`,class:`cui-label`},v(i.$t(`views.settings.assistant_external_url`)),9,hn),D(V,{id:`server-url-${e.id}`,modelValue:e.url,"onUpdate:modelValue":t=>e.url=t,fluid:``,placeholder:`http://homeassistant.local:8123/api/mcp`},null,8,[`id`,`modelValue`,`onUpdate:modelValue`])])]),C(`div`,gn,[C(`label`,{for:`server-token-${e.id}`,class:`cui-label`},v(i.$t(`views.settings.assistant_external_token`)),9,_n),D(Oe,{id:`server-token-${e.id}`,modelValue:L(J)[e.id],"onUpdate:modelValue":t=>L(J)[e.id]=t,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`new-password`,placeholder:e.tokenSet?`••••••••`:``},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`placeholder`]),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(e.tokenSet?i.$t(`views.settings.assistant_external_token_set`):i.$t(`views.settings.assistant_external_token_info`)),1)]),_:2},1024)]),C(`div`,vn,[C(`div`,yn,[C(`label`,{for:`server-insecure-${e.id}`,class:`cui-label-switch`},v(i.$t(`views.settings.assistant_external_insecure`)),9,bn),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_external_insecure_info`)),1)]),_:1})]),D(p,{"input-id":`server-insecure-${e.id}`,modelValue:e.insecure,"onUpdate:modelValue":t=>e.insecure=t,class:`ml-auto shrink-0`},null,8,[`input-id`,`modelValue`,`onUpdate:modelValue`])])]))),128)),C(`div`,xn,[D(x,{type:`button`,severity:`secondary`,outlined:``,class:`cui-button-medium`,label:i.$t(`views.settings.assistant_external_add`),disabled:L(K).mcpServers.length>=10,onClick:Lr},{icon:h(()=>[D(N,{class:`w-4 h-4`})]),_:1},8,[`label`,`disabled`]),D(x,{type:`button`,loading:L(G).isPending.value,class:`cui-button-medium ml-auto`,label:i.$t(`components.form.button.save`),onClick:Vr},null,8,[`loading`,`label`])])])]),_:1})]),C(`div`,null,[C(`span`,Sn,v(i.$t(`views.settings.assistant_schedules`)),1),D(f,{class:`cui-card`},{content:h(()=>[C(`div`,Cn,[D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_schedules_info`)),1)]),_:1}),L(Me)?.length?(y(),w(`div`,wn,[(y(!0),w(M,null,b(L(Me),e=>(y(),w(`div`,{key:e._id,class:`flex items-start gap-3 py-3 text-sm`},[C(`div`,Tn,[C(`div`,En,[C(`span`,Dn,v(e.title),1),D(d,{severity:`secondary`,value:wr(e.cron),class:`text-[10px]`},null,8,[`value`]),D(d,{severity:Tr(e.deliver),value:i.$t(`views.settings.assistant_schedule_deliver_${e.deliver}`),class:`text-[10px]`},null,8,[`severity`,`value`]),e.profileId?(y(),A(d,{key:0,severity:Qr(e.profileId)?`secondary`:`warn`,value:Qr(e.profileId)??i.$t(`views.settings.assistant_schedule_profile_missing`),class:`text-[10px]`},null,8,[`severity`,`value`])):F(``,!0)]),C(`div`,On,v(e.prompt),1),C(`div`,kn,[e.enabled&&e.nextRun?(y(),w(`span`,An,v(i.$t(`views.settings.assistant_schedule_next`,{time:Er(e.nextRun)})),1)):e.enabled?F(``,!0):(y(),w(`span`,jn,v(i.$t(`views.settings.assistant_schedule_paused`)),1)),e.lastRun?(y(),w(`span`,{key:2,class:S(e.lastRun.status===`error`?`text-danger`:``)},[O(` · `+v(i.$t(`views.settings.assistant_schedule_last_${e.lastRun.status}`,{time:Er(e.lastRun.at)}))+` `,1),e.lastRun.message?(y(),w(M,{key:0},[O(`(`+v(e.lastRun.message)+`)`,1)],64)):F(``,!0)],2)):F(``,!0)])]),C(`div`,Mn,[E((y(),A(x,{type:`button`,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md`,loading:L(Ie).isPending.value&&L(Ie).variables.value===e._id,onClick:t=>L(Ie).mutate(e._id)},{icon:h(()=>[D(Ve,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[$,{value:i.$t(`views.settings.assistant_schedule_run`)},void 0,{top:!0}]]),D(p,{"model-value":e.enabled,"onUpdate:modelValue":t=>L(Pe).mutate({scheduleId:e._id,patch:{enabled:t}})},null,8,[`model-value`,`onUpdate:modelValue`]),D(x,{type:`button`,severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,onClick:t=>L(Fe).mutate(e._id)},{icon:h(()=>[D(k,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])])]))),128))])):F(``,!0),C(`div`,{class:S([`flex flex-col gap-6`,{"cui-assistant-schedule-form":L(Me)?.length}])},[C(`div`,Nn,[C(`div`,Pn,[C(`label`,Fn,v(i.$t(`views.settings.assistant_schedule_title_label`)),1),D(V,{modelValue:L(q).title,"onUpdate:modelValue":s[17]||=e=>L(q).title=e,modelModifiers:{trim:!0},type:`text`,placeholder:i.$t(`views.settings.assistant_schedule_title_placeholder`),class:`w-full`},null,8,[`modelValue`,`placeholder`])]),C(`div`,In,[C(`label`,Ln,v(i.$t(`views.settings.assistant_schedule_deliver_label`)),1),D(z,{modelValue:L(q).deliver,"onUpdate:modelValue":s[18]||=e=>L(q).deliver=e,options:L(vr),"option-label":`label`,"option-value":`value`,fluid:``},null,8,[`modelValue`,`options`])])]),C(`div`,Rn,[C(`label`,zn,v(i.$t(`views.settings.assistant_schedule_prompt_label`)),1),D(he,{modelValue:L(q).prompt,"onUpdate:modelValue":s[19]||=e=>L(q).prompt=e,rows:`2`,"auto-resize":``,placeholder:i.$t(`views.settings.assistant_schedule_prompt_placeholder`)},null,8,[`modelValue`,`placeholder`])]),L(je)?.length?(y(),w(`div`,Bn,[C(`label`,Vn,v(i.$t(`views.settings.assistant_schedule_profile_label`)),1),D(z,{modelValue:L(q).profileId,"onUpdate:modelValue":s[20]||=e=>L(q).profileId=e,"input-id":`scheduleProfile`,options:L(je),"option-label":`name`,"option-value":`_id`,"show-clear":``,fluid:``,placeholder:i.$t(`views.settings.assistant_schedule_profile_none`)},null,8,[`modelValue`,`options`,`placeholder`])])):F(``,!0),C(`div`,Hn,[C(`div`,Un,[C(`label`,Wn,v(i.$t(`views.settings.assistant_schedule_when_label`)),1),D(z,{modelValue:L(q).preset,"onUpdate:modelValue":s[21]||=e=>L(q).preset=e,options:L(yr),"option-label":`label`,"option-value":`value`,fluid:``},null,8,[`modelValue`,`options`])]),L(q).preset!==`hourly`&&L(q).preset!==`custom`?(y(),w(`div`,Gn,[C(`label`,Kn,v(i.$t(`views.settings.assistant_schedule_time_label`)),1),D(V,{modelValue:L(q).time,"onUpdate:modelValue":s[22]||=e=>L(q).time=e,type:`time`,class:`cui-time-input w-full`},null,8,[`modelValue`])])):F(``,!0),L(q).preset===`custom`?(y(),w(`div`,qn,[C(`label`,Jn,v(i.$t(`views.settings.assistant_schedule_cron_label`)),1),D(V,{modelValue:L(q).cron,"onUpdate:modelValue":s[23]||=e=>L(q).cron=e,modelModifiers:{trim:!0},type:`text`,placeholder:`0 20 * * *`,class:`w-full font-mono text-sm`},null,8,[`modelValue`])])):F(``,!0)]),C(`div`,Yn,[D(x,{type:`button`,loading:L(Ne).isPending.value,disabled:!L(q).title||!L(q).prompt||!L(br),class:`cui-button-medium ml-auto`,label:i.$t(`views.settings.assistant_schedule_add`),onClick:Dr},null,8,[`loading`,`disabled`,`label`])])],2)])]),_:1})]),C(`div`,null,[C(`span`,Xn,v(i.$t(`views.settings.assistant_usage`)),1),D(f,{class:`cui-card`},{content:h(()=>[C(`div`,Zn,[D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_usage_info`)),1)]),_:1}),D(Q,{value:L(fr)??[],"data-key":`key`,loading:L(ke),pt:I,"striped-rows":``,scrollable:``},{loading:h(()=>[D(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:h(()=>[C(`span`,Qn,v(i.$t(`views.settings.assistant_usage_empty`)),1)]),default:h(()=>[D(Z,{field:`month`,header:i.$t(`views.settings.assistant_usage_month`),"header-class":`p-2`,class:`p-2 tabular-nums`},null,8,[`header`]),D(Z,{field:`username`,header:i.$t(`views.settings.assistant_usage_user`),"header-class":`p-2`,class:`p-2`},{body:h(({data:e})=>[C(`span`,$n,v(e.pluginName??e.username??e.userId),1)]),_:1},8,[`header`]),D(Z,{field:`model`,header:i.$t(`views.settings.assistant_usage_model`),"header-class":`p-2`,class:`p-2`},{body:h(({data:e})=>[C(`span`,er,v(Zr(e)),1)]),_:1},8,[`header`]),D(Z,{field:`runs`,header:i.$t(`views.settings.assistant_usage_runs`),"header-class":`p-2`,class:`p-2 text-right tabular-nums`,pt:P},null,8,[`header`]),D(Z,{field:`promptTokens`,header:i.$t(`views.settings.assistant_usage_in`),"header-class":`p-2`,class:`p-2 text-right tabular-nums`,pt:P},{body:h(({data:e})=>[O(v(Nr(e.promptTokens)),1)]),_:1},8,[`header`]),D(Z,{field:`completionTokens`,header:i.$t(`views.settings.assistant_usage_out`),"header-class":`p-2`,class:`p-2 text-right tabular-nums`,pt:P},{body:h(({data:e})=>[O(v(Nr(e.completionTokens)),1)]),_:1},8,[`header`]),D(Z,{field:`costUsd`,header:i.$t(`views.settings.assistant_usage_cost`),"header-class":`p-2`,class:`p-2 text-right tabular-nums`,pt:P},{body:h(({data:e})=>[O(v(e.costUsd?`$${e.costUsd.toFixed(e.costUsd<1?3:2)}`:`–`),1)]),_:1},8,[`header`])]),_:1},8,[`value`,`loading`])])]),_:1})]),C(`div`,null,[C(`span`,tr,v(i.$t(`views.settings.assistant_tools`)),1),D(f,{class:`cui-card`},{content:h(()=>[L(Be).length?(y(),w(`div`,rr,[D(ti,{value:L(Le),"onUpdate:value":s[24]||=e=>j(Le)?Le.value=e:null,scrollable:``},{default:h(()=>[D(zr,{class:`mb-3`},{default:h(()=>[(y(!0),w(M,null,b(L(Be),e=>(y(),A(Pr,{key:e.key,value:e.key,class:`text-sm`},{default:h(()=>[O(v(e.label)+` (`+v(e.tools.length)+`)`,1)]),_:2},1032,[`value`]))),128))]),_:1}),D(ei,{class:`!p-0 !bg-transparent`},{default:h(()=>[(y(!0),w(M,null,b(L(Be),e=>(y(),A($r,{key:e.key,value:e.key},{default:h(()=>[e.serverId?(y(),w(`div`,ir,[C(`label`,{for:`trusted-${e.key}`,class:`cui-label`},v(i.$t(`views.settings.assistant_tools_trusted_label`)),9,ar),D(Ur,{"model-value":jr(e),"input-id":`trusted-${e.key}`,options:Ar(e),"option-label":`label`,"option-value":`value`,"max-selected-labels":3,"selected-items-label":i.$t(`views.settings.assistant_tools_trusted_selected`,{n:jr(e).length}),placeholder:i.$t(`views.settings.assistant_tools_trusted_none`),filter:``,fluid:``,"onUpdate:modelValue":t=>Mr(e,t)},null,8,[`model-value`,`input-id`,`options`,`selected-items-label`,`placeholder`,`onUpdate:modelValue`]),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_tools_trusted_info`)),1)]),_:1})])):F(``,!0),C(`div`,or,[(y(!0),w(M,null,b(e.tools,e=>(y(),w(`div`,{key:e.name,class:`flex items-start gap-3 py-2 text-sm`},[D(Gr,{class:`w-4 h-4 mt-0.5 shrink-0 text-muted`}),C(`div`,sr,[C(`div`,cr,[C(`span`,lr,v(L(ge)(e.name)),1),kr(e)?(y(),A(d,{key:0,severity:`warn`,value:i.$t(`views.settings.assistant_tool_approval`),class:`text-[10px]`},null,8,[`value`])):F(``,!0),e.adminOnly?(y(),A(d,{key:1,severity:`info`,value:i.$t(`views.settings.assistant_tool_admin`),class:`text-[10px]`},null,8,[`value`])):F(``,!0)]),C(`div`,ur,v(Or(e.description)),1)])]))),128))])]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`value`]),L(Be).some(e=>e.serverId)?(y(),w(`div`,dr,[D(x,{type:`button`,loading:L(G).isPending.value,class:`cui-button-medium ml-auto`,label:i.$t(`components.form.button.save`),onClick:Vr},null,8,[`loading`,`label`])])):F(``,!0)])):(y(),w(`div`,nr,v(i.$t(`views.settings.assistant_tools_empty`)),1))]),_:1})])])):(y(),w(`div`,Ue,[D(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]))])}}}),[[`__scopeId`,`data-v-31057f1e`]]);export{fr as default};
|
|
1
|
+
import{Bt as e,It as t,Kt as n,L as r,Vr as i,q as a}from"./vendor-cameraui-zaB6gIk1.js";import{Ct as o,Gr as s,Ir as c,Rn as l,i as u,it as d,m as f,o as p,z as m}from"./api-0KzHya6g.js";import{$n as h,An as g,Bn as _,Cr as v,In as y,Rn as b,Xn as x,br as S,cn as C,dn as w,dr as T,er as E,gn as D,hn as O,hr as k,ln as A,or as j,rn as M,sn as N,sr as P,un as F,vn as I,yr as L}from"./vendor-CP-WYrgy.js";import{B as R,G as ee,H as te,K as ne,L as re,R as ie,S as ae,V as oe,W as se,_ as ce,a as le,i as ue,j as de,l as fe,s as pe,w as z,z as me}from"./vendor-primevue-5HrOunkM.js";import{t as B}from"./assistant-DfBoMwZZ.js";import{a as he,d as ge,i as _e,n as ve,o as V,r as ye,s as be,t as H}from"./assistantModels-frQFfeed.js";import{t as xe}from"./pencil-outline-BsdKHhHl.js";import{t as Se}from"./content-copy-DBYFzNui.js";import{t as Ce}from"./plus-x5XqrG-6.js";import{t as we}from"./restore-D2nuKfs4.js";import{t as Te}from"./CuiDataTable-CNFiiz_X.js";var U={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ee(e,t){return y(),w(`svg`,U,[...t[0]||=[C(`path`,{fill:`currentColor`,d:`m22.61 19l-9.08-9.09c.93-2.34.47-5.1-1.44-7C9.79.61 6.21.4 3.66 2.26L7.5 6.11L6.08 7.5L2.25 3.69C.39 6.23.6 9.82 2.9 12.11c1.86 1.86 4.57 2.35 6.89 1.48l9.11 9.11c.39.39 1.02.39 1.41 0l2.3-2.3c.39-.4.39-1.01 0-1.4m-3 1.59l-9.46-9.46c-.61.45-1.29.72-2 .82c-1.36.2-2.79-.21-3.83-1.25C3.37 9.76 2.93 8.5 3 7.26l3.09 3.09l4.24-4.24L7.24 3c1.26-.05 2.49.39 3.44 1.33a4.47 4.47 0 0 1 1.24 3.96a4.35 4.35 0 0 1-.88 1.96l9.46 9.45z`},null,-1)]])}var De=P({name:`mdi-wrench-outline`,render:Ee}),Oe={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function ke(e,t){return y(),w(`svg`,Oe,[...t[0]||=[C(`path`,{fill:`currentColor`,d:`m12 15.39l-3.76 2.27l.99-4.28l-3.32-2.88l4.38-.37L12 6.09l1.71 4.04l4.38.37l-3.32 2.88l.99 4.28M22 9.24l-7.19-.61L12 2L9.19 8.63L2 9.24l5.45 4.73L5.82 21L12 17.27L18.18 21l-1.64-7.03z`},null,-1)]])}var Ae=P({name:`mdi-star-outline`,render:ke}),W={class:`flex w-full flex-col gap-6`},G={class:`flex flex-col field-gap`},je={for:`assistantModelProvider`,class:`cui-label`},Me={key:0,class:`flex flex-col field-gap`},Ne={for:`assistantModelBaseUrl`,class:`cui-label`},Pe={key:1,class:`flex flex-col field-gap`},Fe={for:`assistantModelKey`,class:`cui-label`},Ie={class:`flex flex-col field-gap`},K={for:`assistantModelModel`,class:`cui-label`},q={class:`flex flex-col field-gap`},J={for:`assistantModelName`,class:`cui-label`},Y={class:`flex items-center gap-4 cui-toggle-switch`},Le={class:`flex flex-col field-switch-gap`},X={for:`assistantModelUsers`,class:`cui-label-switch`},Re={key:2,class:`flex items-center gap-4 cui-toggle-switch`},ze={class:`flex flex-col field-switch-gap`},Be={for:`assistantModelImages`,class:`cui-label-switch`},Ve=I({__name:`AssistantModel`,props:{entry:{},models:{}},setup(e,{expose:t}){let n=new B,a=e,{t:o}=i(),s=c(),l=n.listAssistantModelsMutation(),u=T(a.entry?.provider??`ollama`),d=T(a.entry?.baseURL??``),f=T(``),p=T(a.entry?.model??``),m=T(a.entry&&a.entry.name!==a.entry.model?a.entry.name:``),_=T(a.entry?.sendImages??!1),b=T(a.entry?.userAccess!==!1),x=T(`new`),S=T([]),E=T([]),k=T(!1),P=N(()=>ve.includes(u.value)),I=N(()=>u.value===`ollama`||u.value===`openai-compatible`),R=N(()=>a.entry?.apiKeySet===!0&&a.entry.provider===u.value),ee=N(()=>a.models.filter(e=>e._id!==a.entry?._id&&e.provider===u.value&&e.apiKeySet)),te=N(()=>[{label:R.value?o(`views.settings.assistant_api_key_stored`):o(`views.settings.assistant_api_key_new`),value:`new`},...ee.value.map(e=>({label:o(`views.settings.assistant_api_key_from`,{name:e.name}),value:e._id}))]),re=N(()=>P.value&&x.value===`new`&&!f.value&&!R.value);function ie(){return R.value?`new`:ee.value[0]?._id??`new`}function ae(){let e=x.value===`new`?f.value?{apiKey:f.value}:a.entry&&!R.value?{apiKey:null}:{}:{copyKeyFrom:x.value};return{...a.entry?{id:a.entry._id,retest:!0,sendImages:_.value}:{},...e,name:m.value,provider:u.value,baseURL:I.value&&d.value?d.value:null,model:p.value.trim(),userAccess:b.value}}function oe(){d.value=``,p.value=``,S.value=[],E.value=[],x.value=ie()}function se(e){let t=e.query.toLowerCase();E.value=S.value.filter(e=>e.toLowerCase().includes(t))}async function ce(){let e=await l.mutateAsync(ae());if(e.error){s.add({severity:`warn`,detail:o(`views.settings.assistant_models_failed`,{message:e.error}),life:5e3});return}S.value=e.models,E.value=e.models}return g(()=>{x.value=ie()}),t({onConfirm:async()=>!p.value.trim()||re.value?(k.value=!0,null):ae()}),(t,n)=>{let i=de,a=me,o=r,s=pe,c=z,g=ne;return y(),w(`div`,W,[C(`div`,G,[C(`label`,je,v(t.$t(`views.settings.assistant_provider_label`)),1),D(i,{modelValue:L(u),"onUpdate:modelValue":n[0]||=e=>j(u)?u.value=e:null,"input-id":`assistantModelProvider`,options:L(ye),"option-label":`label`,"option-value":`value`,fluid:``,onChange:oe},null,8,[`modelValue`,`options`]),D(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(t.$t(`views.settings.assistant_provider_hint_${L(u).replace(`-`,`_`)}`)),1)]),_:1})]),L(I)?(y(),w(`div`,Me,[C(`label`,Ne,v(t.$t(`views.settings.assistant_base_url_label`)),1),D(o,{id:`assistantModelBaseUrl`,modelValue:L(d),"onUpdate:modelValue":n[1]||=e=>j(d)?d.value=e:null,modelModifiers:{trim:!0},placeholder:L(H)[L(u)],fluid:``,autocomplete:`off`},null,8,[`modelValue`,`placeholder`])])):F(``,!0),L(P)||L(u)===`openai-compatible`?(y(),w(`div`,Pe,[C(`label`,Fe,v(t.$t(`views.settings.assistant_api_key_label`)),1),L(ee).length?(y(),A(i,{key:0,modelValue:L(x),"onUpdate:modelValue":n[2]||=e=>j(x)?x.value=e:null,options:L(te),"option-label":`label`,"option-value":`value`,fluid:``},null,8,[`modelValue`,`options`])):F(``,!0),L(x)===L(`new`)?(y(),w(M,{key:1},[D(s,{modelValue:L(f),"onUpdate:modelValue":n[3]||=e=>j(f)?f.value=e:null,"input-id":`assistantModelKey`,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`new-password`,invalid:L(k)&&L(re),placeholder:L(R)?`••••••••`:``},null,8,[`modelValue`,`invalid`,`placeholder`]),L(R)?(y(),A(a,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(t.$t(`views.settings.assistant_api_key_keep_hint`)),1)]),_:1})):L(P)?F(``,!0):(y(),A(a,{key:1,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(t.$t(`views.settings.assistant_api_key_optional`)),1)]),_:1}))],64)):F(``,!0)])):F(``,!0),C(`div`,Ie,[C(`label`,K,v(t.$t(`views.settings.assistant_model_label`)),1),D(c,{modelValue:L(p),"onUpdate:modelValue":n[4]||=e=>j(p)?p.value=e:null,"input-id":`assistantModelModel`,suggestions:L(E),loading:L(l).isPending.value,invalid:L(k)&&!L(p).trim(),dropdown:``,fluid:``,placeholder:t.$t(`views.settings.assistant_model_placeholder`),onComplete:se,onDropdownClick:ce},null,8,[`modelValue`,`suggestions`,`loading`,`invalid`,`placeholder`]),D(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(t.$t(`views.settings.assistant_model_info`)),1)]),_:1})]),C(`div`,q,[C(`label`,J,v(t.$t(`views.settings.assistant_model_name_label`)),1),D(o,{id:`assistantModelName`,modelValue:L(m),"onUpdate:modelValue":n[5]||=e=>j(m)?m.value=e:null,modelModifiers:{trim:!0},placeholder:L(p).trim()||t.$t(`views.settings.assistant_model_name_placeholder`),maxlength:`40`,fluid:``},null,8,[`modelValue`,`placeholder`])]),C(`div`,Y,[C(`div`,Le,[C(`label`,X,v(t.$t(`views.settings.assistant_model_users`)),1),D(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[O(v(t.$t(`views.settings.assistant_model_users_info`)),1)]),_:1})]),D(g,{modelValue:L(b),"onUpdate:modelValue":n[6]||=e=>j(b)?b.value=e:null,"input-id":`assistantModelUsers`,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),e.entry?(y(),w(`div`,Re,[C(`div`,ze,[C(`label`,Be,v(t.$t(`views.settings.assistant_send_images`)),1),D(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[O(v(e.entry.capabilities?.vision===!1?t.$t(`views.settings.assistant_send_images_no_vision`):t.$t(`views.settings.assistant_send_images_info`)),1)]),_:1})]),D(g,{modelValue:L(_),"onUpdate:modelValue":n[7]||=e=>j(_)?_.value=e:null,"input-id":`assistantModelImages`,class:`ml-auto shrink-0`},null,8,[`modelValue`])])):F(``,!0)])}}}),He={class:`w-full h-full`},Ue={key:0,class:`w-full h-full flex items-center justify-center`},We={key:1,class:`flex flex-col w-full gap-6`},Ge={class:`card-title`},Ke={class:`flex items-center gap-4`},qe={class:`flex flex-col field-switch-gap min-w-0`},Je={class:`text-sm font-bold text-color`},Ye={class:`card-title`},Xe={class:`flex flex-col gap-6`},Ze={class:`flex items-center gap-4 cui-toggle-switch`},Qe={class:`flex flex-col field-switch-gap`},$e={for:`enabled`,class:`cui-label-switch`},et={key:0,class:`flex flex-col divide-y divide-(--border-color)`},tt={class:`min-w-0 flex-1`},nt={class:`flex flex-wrap items-center gap-2`},rt={class:`font-medium text-color`},it={class:`mt-0.5 truncate text-muted`},at={key:0,class:`mt-1 text-xs text-danger line-clamp-2`},ot={class:`flex shrink-0 items-center gap-1`},st={key:1,class:`text-sm text-muted`},ct={class:`flex`},lt={class:`card-title`},ut={class:`flex flex-col gap-6`},dt={key:0,class:`flex flex-col divide-y divide-(--border-color)`},ft={class:`flex min-w-0 items-center gap-2 md:w-48 md:shrink-0`},pt={class:`truncate font-medium text-color`},mt={key:1,class:`text-sm text-muted`},ht={class:`flex`},gt={class:`card-title`},_t={class:`flex flex-col gap-6`},vt={class:`flex items-center gap-4 cui-toggle-switch`},yt={class:`flex flex-col field-switch-gap`},bt={for:`memoryEnabled`,class:`cui-label-switch`},xt={class:`flex items-center gap-4 cui-toggle-switch`},St={class:`flex flex-col field-switch-gap`},Ct={for:`terminalEnabled`,class:`cui-label-switch`},wt={class:`flex flex-col field-gap`},Tt={for:`language`,class:`cui-label`},Et={class:`flex flex-col field-gap`},Dt={for:`reasoning`,class:`cui-label`},Ot={class:`flex flex-col md:flex-row gap-6`},kt={class:`flex flex-col field-gap flex-1`},At={for:`maxIterations`,class:`cui-label`},jt={class:`flex flex-col field-gap flex-1`},Mt={for:`maxToolCalls`,class:`cui-label`},Nt={class:`flex flex-col field-gap`},Pt={for:`contextTokens`,class:`cui-label`},Ft={class:`flex flex-col md:flex-row gap-4`},It={class:`flex flex-col field-gap flex-1`},Lt={for:`historyThreads`,class:`cui-label`},Rt={class:`flex flex-col field-gap flex-1`},zt={for:`historyImages`,class:`cui-label`},Bt={class:`flex flex-col field-gap`},Vt={for:`systemPromptExtra`,class:`cui-label`},Ht={class:`flex items-center gap-2`},Ut={class:`card-title`},Wt={class:`flex flex-col gap-6`},Gt={class:`flex flex-col gap-4`},Kt={class:`flex items-center justify-between gap-4`},qt={class:`flex flex-col`},Jt={class:`text-sm font-medium text-color`},Yt={class:`text-xs text-muted`},Xt={class:`flex items-center justify-between gap-4`},Zt={class:`flex flex-col`},Qt={class:`text-sm font-medium text-color`},$t={class:`text-xs text-muted`},en={key:0,class:`flex flex-col gap-6`},tn={class:`flex flex-col field-gap`},nn={for:`mcpEndpoint`,class:`cui-label`},rn={class:`flex flex-col field-gap`},an={for:`mcpClient`,class:`cui-label`},on={class:`flex`},sn={class:`card-title`},cn={class:`flex flex-col gap-6`},ln={class:`flex items-center gap-3`},un={class:`text-sm font-medium text-color truncate`},dn={class:`flex flex-col md:flex-row gap-4`},fn={class:`flex flex-col field-gap md:w-56`},pn=[`for`],mn={class:`flex flex-col field-gap flex-1`},hn=[`for`],gn={class:`flex flex-col field-gap`},_n=[`for`],vn={class:`flex items-center gap-4 cui-toggle-switch`},yn={class:`flex flex-col field-switch-gap`},bn=[`for`],xn={class:`flex items-center gap-2`},Sn={class:`card-title`},Cn={class:`flex flex-col gap-6`},wn={key:0,class:`flex flex-col divide-y divide-(--border-color)`},Tn={class:`min-w-0 flex-1`},En={class:`flex flex-wrap items-center gap-2`},Dn={class:`font-medium text-color`},On={class:`mt-0.5 text-muted line-clamp-2`},kn={class:`mt-1 text-xs text-muted`},An={key:0},jn={key:1},Mn={class:`flex shrink-0 items-center gap-1`},Nn={class:`flex flex-col md:flex-row gap-6`},Pn={class:`flex flex-col field-gap flex-1`},Fn={for:`scheduleTitle`,class:`cui-label`},In={class:`flex flex-col field-gap w-full md:w-52 shrink-0`},Ln={for:`scheduleDeliver`,class:`cui-label`},Rn={class:`flex flex-col field-gap`},zn={for:`schedulePrompt`,class:`cui-label`},Bn={key:0,class:`flex flex-col field-gap`},Vn={for:`scheduleProfile`,class:`cui-label`},Hn={class:`flex flex-col md:flex-row gap-6`},Un={class:`flex flex-col field-gap flex-1`},Wn={for:`schedulePreset`,class:`cui-label`},Gn={key:0,class:`flex flex-col field-gap w-full md:w-40 shrink-0`},Kn={for:`scheduleTime`,class:`cui-label`},qn={key:1,class:`flex flex-col field-gap flex-1`},Jn={for:`scheduleCron`,class:`cui-label`},Yn={class:`flex`},Xn={class:`card-title`},Zn={class:`flex flex-col gap-3`},Qn={class:`text-sm text-muted`},$n={class:`truncate`},er={class:`truncate`},tr={class:`card-title`},nr={key:0,class:`text-sm text-muted`},rr={key:1,class:`flex flex-col gap-6`},ir={key:0,class:`mb-4 flex flex-col field-gap`},ar=[`for`],or={class:`flex max-h-96 flex-col divide-y divide-(--border-color) overflow-y-auto pr-2`},sr={class:`min-w-0 flex-1`},cr={class:`flex flex-wrap items-center gap-2`},lr={class:`font-medium text-color`},ur={class:`text-muted`},dr={key:0,class:`flex`},Z=`none`,fr=l(I({__name:`SettingsAssistant`,setup(l){let g={memoryEnabled:!0,terminalEnabled:!1,language:null,reasoning:`default`,maxIterations:8,maxToolCalls:25,contextTokens:48e3,historyThreads:50,historyImages:24},P={columnHeaderContent:{class:`justify-end`}},I={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}}},z=new B,ve=c(),H=d(),{t:U,locale:Ee}=i(),{data:Oe,isLoading:ke}=z.usageAllQuery(),{data:W}=z.getAssistantInfoQuery(),G=z.patchAssistantInfoMutation(),{data:je}=z.listProfilesQuery(),{data:Me}=z.listSchedulesQuery(),Ne=z.createScheduleMutation(),Pe=z.patchScheduleMutation(),Fe=z.deleteScheduleMutation(),Ie=z.runScheduleMutation(),K=T(null),q=T({title:``,prompt:``,preset:`daily`,time:`20:00`,cron:``,deliver:`push`,profileId:null}),J=T({}),Y=T(`claude-code`),Le=T(`core`),X=N(()=>W.value?.settings.models??[]),Re=N(()=>W.value?he(W.value.settings):void 0),ze=N(()=>[{label:U(`views.settings.assistant_plugin_no_access`),value:Z},...X.value.map(e=>({label:e.name,value:e._id}))]),Be=N(()=>{let e=new Map;for(let t of W.value?.tools??[]){let n=t.source.kind===`plugin`?t.source.pluginId:t.source.kind===`external`?t.source.serverId:`core`,r=t.source.kind===`plugin`?t.source.pluginName:t.source.kind===`external`?t.source.serverName:`camera.ui`,i=e.get(n)??{key:n,label:r,serverId:t.source.kind===`external`?t.source.serverId:void 0,tools:[]};i.tools.push(t),e.set(n,i)}return Array.from(e.values())}),fr=N(()=>Oe.value?.map(e=>({...e,key:`${e.userId}-${e.month}-${e.provider}-${e.model}`}))),Q=N(()=>W.value?.status),pr=N(()=>[{label:U(`views.settings.assistant_language_auto`),value:null},{label:`Deutsch`,value:`de`},{label:`English`,value:`en`}]),mr=N(()=>[`default`,`off`,`low`,`high`].map(e=>({label:U(`views.settings.assistant_reasoning_${e}`),value:e}))),hr=N(()=>new URL(`${s.defaults.baseURL??`/api`}/assistant/mcp`.replace(/\/{2,}/g,`/`),window.location.origin).toString()),gr=N(()=>[{label:`Claude Code`,value:`claude-code`},{label:`Cursor, Windsurf, VS Code`,value:`cursor`},{label:`Claude Desktop`,value:`claude-desktop`}]),_r=N(()=>{let e=hr.value;return Y.value===`claude-code`?`claude mcp add --transport http camera-ui ${e} --header "Authorization: Bearer <api token>"`:Y.value===`cursor`?JSON.stringify({mcpServers:{"camera-ui":{url:e,headers:{Authorization:`Bearer <api token>`}}}},null,2):JSON.stringify({mcpServers:{"camera-ui":{command:`npx`,args:[`-y`,`mcp-remote`,e,`--header`,`Authorization: Bearer <api token>`]}}},null,2)}),vr=N(()=>[`push`,`thread`,`both`].map(e=>({label:U(`views.settings.assistant_schedule_deliver_${e}`),value:e}))),yr=N(()=>[`daily`,`weekdays`,`weekends`,`weekly`,`hourly`,`custom`].map(e=>({label:U(`views.settings.assistant_schedule_preset_${e}`),value:e}))),br=N(()=>{let{preset:e,time:t,cron:n}=q.value,[r,i]=t.split(`:`).map(e=>Number.parseInt(e,10));return e===`custom`?n.trim():e===`hourly`?`0 * * * *`:Number.isNaN(r)||Number.isNaN(i)?``:`${i} ${r} * * ${e===`weekdays`?`1-5`:e===`weekends`?`0,6`:e===`weekly`?`0`:`*`}`}),xr=N(()=>{switch(Q.value?.state){case`ready`:return`success`;case`unconfigured`:return`warn`;default:return`secondary`}}),Sr=N(()=>U(`views.settings.assistant_state_${Q.value?.state??`disabled`}`)),Cr=N(()=>Q.value?Q.value.state===`ready`?U(`views.settings.assistant_status_ready`,{model:Q.value.model}):U(`views.settings.assistant_status_info`):``);function wr(e){let t=/^(\d+) (\d+) \* \* (\*|1-5|0,6|0)$/.exec(e);if(!t)return e;let n=`${t[2].padStart(2,`0`)}:${t[1].padStart(2,`0`)}`,r=t[3]===`*`?`daily`:t[3]===`1-5`?`weekdays`:t[3]===`0`?`weekly`:`weekends`;return`${U(`views.settings.assistant_schedule_preset_${r}`)} ${n}`}function Tr(e){return e===`push`?`info`:e===`thread`?`secondary`:`success`}function Er(e){return new Date(e).toLocaleString(Ee.value,{day:`2-digit`,month:`2-digit`,hour:`2-digit`,minute:`2-digit`})}async function Dr(){await Ne.mutateAsync({title:q.value.title,prompt:q.value.prompt,cron:br.value,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,language:Ee.value,deliver:q.value.deliver,profileId:q.value.profileId,enabled:!0}),q.value={...q.value,title:``,prompt:``,cron:``,profileId:null}}function Or(e){return e.replace(/^\[[^\]]+\]\s*/,``)}function kr(e){if(e.source.kind!==`external`)return e.approval;let{serverId:t,toolName:n}=e.source;return K.value?.mcpServers.find(e=>e.id===t)?.toolApproval[n]??e.approval}function Ar(e){return e.tools.flatMap(e=>e.source.kind===`external`?[{label:ge(e.name),value:e.source.toolName}]:[])}function jr(e){return e.tools.flatMap(e=>e.source.kind===`external`&&!kr(e)?[e.source.toolName]:[])}function Mr(e,t){let n=K.value?.mcpServers.find(t=>t.id===e.serverId);n&&(n.toolApproval=Object.fromEntries(Ar(e).map(e=>[e.value,!t.includes(e.value)])))}function Nr(e){return e<1e3?String(e):e<1e6?`${(e/1e3).toFixed(+(e<1e4))}k`:`${(e/1e6).toFixed(2)}M`}function Pr(e){return W.value?.external.find(t=>t.id===e)}function Fr(e){let t=Pr(e);return t?t.state===`connected`?U(`views.settings.assistant_external_state_connected`,{n:t.toolCount}):t.state===`error`?U(`views.settings.assistant_external_state_error`,{message:t.error??``}):U(`views.settings.assistant_external_state_${t.state}`):``}function Ir(e){let t=Pr(e)?.state;return t===`connected`?`text-success`:t===`error`?`text-danger`:`text-muted`}function Lr(){K.value&&K.value.mcpServers.push({id:f(),name:``,url:``,enabled:!0,insecure:!1,tokenSet:!1,toolApproval:{}})}function Rr(e){K.value&&(K.value.mcpServers=K.value.mcpServers.filter(t=>t.id!==e),delete J.value[e])}function zr(){let e=p(K.value);return{language:e.language,maxIterations:e.maxIterations,maxToolCalls:e.maxToolCalls,contextTokens:e.contextTokens,historyThreads:e.historyThreads,historyImages:e.historyImages,terminalEnabled:e.terminalEnabled,reasoning:e.reasoning,systemPromptExtra:e.systemPromptExtra,mcpEnabled:e.mcpEnabled,mcpWrites:e.mcpWrites,memoryEnabled:e.memoryEnabled,plugins:e.plugins.map(({pluginId:e,modelId:t})=>({pluginId:e,modelId:t})),mcpServers:e.mcpServers.filter(e=>e.name.trim()||e.url.trim()).map(e=>({id:e.id,name:e.name.trim(),url:e.url.trim(),enabled:e.enabled,insecure:e.insecure,toolApproval:e.toolApproval,...J.value[e.id]?{token:J.value[e.id]}:{}}))}}function Br(){K.value&&Object.assign(K.value,g)}async function Vr(){K.value&&(await G.mutateAsync(zr()),J.value={})}function Hr(e){return ye.find(t=>t.value===e)?.label??e}async function Ur(e){return G.mutateAsync({models:e})}function Wr(e){let t=new Set(X.value.map(e=>e._id));H.openComponentDialog(Ve,{data:{title:U(e?`views.settings.assistant_model_edit`:`views.settings.assistant_model_add`),confirmText:U(`components.form.button.save`),awaitConfirm:!0,contentProps:{entry:e?k(e):void 0,models:k(X.value)}},onConfirm:async n=>{Gr((await Ur(e?X.value.map(t=>t._id===e._id?n:V(t)):[...X.value.map(V),n])).settings.models.find(n=>e?n._id===e._id:!t.has(n._id)))}})}function Gr(e){let t=e?.capabilities;if(!t)return;let n=t.error?U(`views.settings.assistant_test_failed`,{message:t.error}):t.toolCalling?t.vision===!1?U(`views.settings.assistant_test_vision_missing`):``:U(`views.settings.assistant_test_tools_missing`);n&&ve.add({severity:t.error?`error`:`warn`,detail:n,life:8e3})}function Kr(e){H.openTextDialog({data:{title:U(`views.settings.assistant_model_delete`),contentText:U(`views.settings.assistant_model_delete_confirm`,{name:e.name}),confirmText:U(`views.settings.assistant_model_delete`),confirmButtonProps:{severity:`danger`}},onConfirm:async()=>{await Ur(X.value.filter(t=>t._id!==e._id).map(V))}})}async function qr(e){await G.mutateAsync({defaultModelId:e._id})}function Jr(e){return K.value?.plugins.find(t=>t.pluginId===e)?.modelId??Z}function Yr(e){return X.value.find(t=>t._id===Jr(e))}function Xr(e,t){if(!K.value)return;let n=K.value.plugins.filter(t=>t.pluginId!==e);K.value.plugins=t===Z?n:[...n,{pluginId:e,modelId:t}]}function Zr(e){return X.value.find(t=>t.provider===e.provider&&t.model===e.model)?.name??e.model}function Qr(e){return je.value?.find(t=>t._id===e)?.name}return x(W,e=>{e&&!K.value&&(K.value=p(e.settings))},{immediate:!0}),(i,s)=>{let c=t,l=me,d=le,f=a,p=ne,g=Ae,x=e,T=xe,k=m,N=Ce,z=de,B=ce,he=ue,ve=we,V=r,ye=o,H=re,U=ie,Ee=_(`RouterLink`),Oe=pe,Ve=be,Z=ae,Q=Te,Pr=R,zr=oe,Ur=fe,Gr=De,$r=te,ei=se,ti=ee,$=n;return y(),w(`div`,He,[L(K)?(y(),w(`div`,We,[C(`div`,null,[C(`span`,Ge,v(i.$t(`views.settings.status`)),1),D(f,{class:`cui-card`},{content:h(()=>[C(`div`,Ke,[C(`div`,qe,[C(`span`,Je,v(i.$t(`views.settings.assistant_title`)),1),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:h(()=>[O(v(L(Cr)),1)]),_:1})]),D(d,{class:`ml-auto shrink-0`,severity:L(xr),value:L(Sr)},null,8,[`severity`,`value`])])]),_:1})]),C(`div`,null,[C(`span`,Ye,v(i.$t(`views.settings.assistant_model`)),1),D(f,{class:`cui-card`},{content:h(()=>[C(`div`,Xe,[C(`div`,Ze,[C(`div`,Qe,[C(`label`,$e,v(i.$t(`components.form.label.enabled`)),1),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_enabled_info`)),1)]),_:1})]),D(p,{"model-value":L(W)?.settings.enabled??!1,"input-id":`enabled`,disabled:L(G).isPending.value,class:`ml-auto shrink-0`,"onUpdate:modelValue":s[0]||=e=>L(G).mutate({enabled:e})},null,8,[`model-value`,`disabled`])]),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_models_info`)),1)]),_:1}),L(X).length?(y(),w(`div`,et,[(y(!0),w(M,null,b(L(X),e=>(y(),w(`div`,{key:e._id,class:`flex items-start gap-3 py-3 text-sm`},[C(`div`,tt,[C(`div`,nt,[C(`span`,rt,v(e.name),1),e._id===L(Re)?._id?(y(),A(d,{key:0,severity:`info`,value:i.$t(`views.settings.assistant_model_default`),class:`text-[10px]`},null,8,[`value`])):F(``,!0),e.userAccess===!1?(y(),A(d,{key:1,severity:`secondary`,value:i.$t(`views.settings.assistant_model_admins_only`),class:`text-[10px]`},null,8,[`value`])):F(``,!0),(y(!0),w(M,null,b(L(_e)(e),e=>(y(),A(d,{key:e.key,severity:e.severity,value:i.$t(`views.settings.assistant_capability_${e.key}`),class:`text-[10px]`},null,8,[`severity`,`value`]))),128))]),C(`div`,it,v(Hr(e.provider))+` · `+v(e.model),1),e.capabilities?.error?(y(),w(`div`,at,v(e.capabilities.error),1)):F(``,!0)]),C(`div`,ot,[e._id===L(Re)?._id?F(``,!0):E((y(),A(x,{key:0,type:`button`,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md`,disabled:L(G).isPending.value,onClick:t=>qr(e)},{icon:h(()=>[D(g,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`,`onClick`])),[[$,{value:i.$t(`views.settings.assistant_model_make_default`)},void 0,{top:!0}]]),E((y(),A(x,{type:`button`,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md`,onClick:t=>Wr(e)},{icon:h(()=>[D(T,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[$,{value:i.$t(`views.settings.assistant_model_edit`)},void 0,{top:!0}]]),E((y(),A(x,{type:`button`,severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,onClick:t=>Kr(e)},{icon:h(()=>[D(k,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[$,{value:i.$t(`views.settings.assistant_model_delete`)},void 0,{top:!0}]])])]))),128))])):(y(),w(`div`,st,v(i.$t(`views.settings.assistant_models_empty`)),1)),C(`div`,ct,[D(x,{type:`button`,severity:`secondary`,outlined:``,class:`cui-button-medium ml-auto`,label:i.$t(`views.settings.assistant_model_add`),disabled:L(X).length>=20,onClick:s[1]||=e=>Wr()},{icon:h(()=>[D(N,{class:`w-4 h-4`})]),_:1},8,[`label`,`disabled`])])])]),_:1})]),C(`div`,null,[C(`span`,lt,v(i.$t(`views.settings.assistant_plugins`)),1),D(f,{class:`cui-card`},{content:h(()=>[C(`div`,ut,[D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_plugins_info`)),1)]),_:1}),L(W)?.plugins.length?(y(),w(`div`,dt,[(y(!0),w(M,null,b(L(W).plugins,e=>(y(),w(`div`,{key:e.id,class:`flex flex-col gap-2 py-3 text-sm md:flex-row md:items-center md:gap-4`},[C(`div`,ft,[C(`span`,pt,v(e.name),1),Yr(e.id)?.capabilities?.vision===!1?(y(),A(d,{key:0,severity:`warn`,value:i.$t(`views.settings.assistant_capability_no_vision`),class:`shrink-0 text-[10px]`},null,8,[`value`])):F(``,!0)]),D(z,{"model-value":Jr(e.id),options:L(ze),"option-label":`label`,"option-value":`value`,class:`w-full md:min-w-0 md:flex-1`,"onUpdate:modelValue":t=>Xr(e.id,t)},null,8,[`model-value`,`options`,`onUpdate:modelValue`])]))),128))])):(y(),w(`div`,mt,v(i.$t(`views.settings.assistant_plugins_empty`)),1)),C(`div`,ht,[D(x,{type:`button`,loading:L(G).isPending.value,class:`cui-button-medium ml-auto`,label:i.$t(`components.form.button.save`),onClick:Vr},null,8,[`loading`,`label`])])])]),_:1})]),C(`div`,null,[C(`span`,gt,v(i.$t(`views.settings.assistant_behavior`)),1),D(f,{class:`cui-card`},{content:h(()=>[C(`div`,_t,[C(`div`,vt,[C(`div`,yt,[C(`label`,bt,v(i.$t(`views.settings.assistant_memory`)),1),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_memory_info`)),1)]),_:1})]),D(p,{modelValue:L(K).memoryEnabled,"onUpdate:modelValue":s[2]||=e=>L(K).memoryEnabled=e,"input-id":`memoryEnabled`,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),C(`div`,xt,[C(`div`,St,[C(`label`,Ct,v(i.$t(`views.settings.assistant_terminal`)),1),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_terminal_info`)),1)]),_:1})]),D(p,{modelValue:L(K).terminalEnabled,"onUpdate:modelValue":s[3]||=e=>L(K).terminalEnabled=e,"input-id":`terminalEnabled`,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),C(`div`,wt,[C(`label`,Tt,v(i.$t(`views.settings.assistant_language_label`)),1),D(z,{modelValue:L(K).language,"onUpdate:modelValue":s[4]||=e=>L(K).language=e,options:L(pr),"option-label":`label`,"option-value":`value`,fluid:``},null,8,[`modelValue`,`options`]),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_language_info`)),1)]),_:1})]),C(`div`,Et,[C(`label`,Dt,v(i.$t(`views.settings.assistant_reasoning_label`)),1),D(z,{modelValue:L(K).reasoning,"onUpdate:modelValue":s[5]||=e=>L(K).reasoning=e,"input-id":`reasoning`,options:L(mr),"option-label":`label`,"option-value":`value`,fluid:``},null,8,[`modelValue`,`options`]),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_reasoning_info`)),1)]),_:1})]),C(`div`,Ot,[C(`div`,kt,[C(`label`,At,v(i.$t(`views.settings.assistant_max_iterations_label`)),1),D(B,{modelValue:L(K).maxIterations,"onUpdate:modelValue":s[6]||=e=>L(K).maxIterations=e,min:1,max:30,"use-grouping":!1,fluid:``},null,8,[`modelValue`]),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_max_iterations_info`)),1)]),_:1})]),C(`div`,jt,[C(`label`,Mt,v(i.$t(`views.settings.assistant_max_tool_calls_label`)),1),D(B,{modelValue:L(K).maxToolCalls,"onUpdate:modelValue":s[7]||=e=>L(K).maxToolCalls=e,min:1,max:100,"use-grouping":!1,fluid:``},null,8,[`modelValue`]),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_max_tool_calls_info`)),1)]),_:1})])]),C(`div`,Nt,[C(`label`,Pt,v(i.$t(`views.settings.assistant_context_tokens_label`)),1),D(B,{id:`contextTokens`,modelValue:L(K).contextTokens,"onUpdate:modelValue":s[8]||=e=>L(K).contextTokens=e,min:8e3,max:4e5,step:1e3,"use-grouping":!1,fluid:``},null,8,[`modelValue`]),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_context_tokens_info`)),1)]),_:1})]),C(`div`,Ft,[C(`div`,It,[C(`label`,Lt,v(i.$t(`views.settings.assistant_history_threads_label`)),1),D(B,{id:`historyThreads`,modelValue:L(K).historyThreads,"onUpdate:modelValue":s[9]||=e=>L(K).historyThreads=e,min:5,max:500,"use-grouping":!1,fluid:``},null,8,[`modelValue`]),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_history_threads_info`)),1)]),_:1})]),C(`div`,Rt,[C(`label`,zt,v(i.$t(`views.settings.assistant_history_images_label`)),1),D(B,{id:`historyImages`,modelValue:L(K).historyImages,"onUpdate:modelValue":s[10]||=e=>L(K).historyImages=e,min:0,max:200,"use-grouping":!1,fluid:``},null,8,[`modelValue`]),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_history_images_info`)),1)]),_:1})])]),C(`div`,Bt,[C(`label`,Vt,v(i.$t(`views.settings.assistant_extra_prompt_label`)),1),D(he,{modelValue:L(K).systemPromptExtra,"onUpdate:modelValue":s[11]||=e=>L(K).systemPromptExtra=e,rows:`3`,"auto-resize":``,placeholder:i.$t(`views.settings.assistant_extra_prompt_placeholder`)},null,8,[`modelValue`,`placeholder`]),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_extra_prompt_info`)),1)]),_:1})]),C(`div`,Ht,[D(x,{type:`button`,severity:`secondary`,outlined:``,class:`cui-button-medium ml-auto`,label:i.$t(`components.form.button.reset_defaults`),onClick:Br},{icon:h(()=>[D(ve,{class:`w-4 h-4`})]),_:1},8,[`label`]),D(x,{type:`button`,loading:L(G).isPending.value,class:`cui-button-medium`,label:i.$t(`components.form.button.save`),onClick:Vr},null,8,[`loading`,`label`])])])]),_:1})]),C(`div`,null,[C(`span`,Ut,v(i.$t(`views.settings.assistant_mcp`)),1),D(f,{class:`cui-card`},{content:h(()=>[C(`div`,Wt,[D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_mcp_info`)),1)]),_:1}),C(`div`,Gt,[C(`div`,Kt,[C(`div`,qt,[C(`span`,Jt,v(i.$t(`views.settings.assistant_mcp_enabled_label`)),1),C(`span`,Yt,v(i.$t(`views.settings.assistant_mcp_enabled_info`)),1)]),D(p,{modelValue:L(K).mcpEnabled,"onUpdate:modelValue":s[12]||=e=>L(K).mcpEnabled=e},null,8,[`modelValue`])]),C(`div`,Xt,[C(`div`,Zt,[C(`span`,Qt,v(i.$t(`views.settings.assistant_mcp_writes_label`)),1),C(`span`,$t,v(i.$t(`views.settings.assistant_mcp_writes_info`)),1)]),D(p,{modelValue:L(K).mcpWrites,"onUpdate:modelValue":s[13]||=e=>L(K).mcpWrites=e,disabled:!L(K).mcpEnabled},null,8,[`modelValue`,`disabled`])])]),L(K).mcpEnabled?(y(),w(`div`,en,[C(`div`,tn,[C(`label`,nn,v(i.$t(`views.settings.assistant_mcp_endpoint_label`)),1),D(U,null,{default:h(()=>[D(V,{id:`mcpEndpoint`,"model-value":L(hr),readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),D(H,null,{default:h(()=>[D(ye,{"action-text":i.$t(`components.form.tooltip.copied`),icon:L(Se),"button-props":{severity:`secondary`,text:!0},onAction:s[14]||=e=>L(u)(L(hr))},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_mcp_token_info`))+` `,1),D(Ee,{to:{name:`SettingsAccount`},class:`underline`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_mcp_token_link`)),1)]),_:1})]),_:1})]),C(`div`,rn,[C(`label`,an,v(i.$t(`views.settings.assistant_mcp_client_label`)),1),D(z,{modelValue:L(Y),"onUpdate:modelValue":s[15]||=e=>j(Y)?Y.value=e:null,"input-id":`mcpClient`,options:L(gr),"option-label":`label`,"option-value":`value`,class:`w-full`},null,8,[`modelValue`,`options`]),D(U,null,{default:h(()=>[D(he,{id:`mcpSnippet`,"model-value":L(_r),readonly:``,"auto-resize":``,rows:`3`,class:`font-mono text-xs`},null,8,[`model-value`]),D(H,null,{default:h(()=>[D(ye,{"action-text":i.$t(`components.form.tooltip.copied`),icon:L(Se),"button-props":{severity:`secondary`,text:!0},onAction:s[16]||=e=>L(u)(L(_r))},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_mcp_snippet_info`)),1)]),_:1})])])):F(``,!0),C(`div`,on,[D(x,{type:`button`,loading:L(G).isPending.value,class:`cui-button-medium ml-auto`,label:i.$t(`components.form.button.save`),onClick:Vr},null,8,[`loading`,`label`])])])]),_:1})]),C(`div`,null,[C(`span`,sn,v(i.$t(`views.settings.assistant_external`)),1),D(f,{class:`cui-card`},{content:h(()=>[C(`div`,cn,[D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_external_info`)),1)]),_:1}),(y(!0),w(M,null,b(L(K).mcpServers,e=>(y(),w(`div`,{key:e.id,class:`cui-assistant-server flex flex-col gap-4 rounded-xl p-4`},[C(`div`,ln,[C(`span`,un,v(e.name||i.$t(`views.settings.assistant_external_new`)),1),C(`span`,{class:S([`text-xs`,Ir(e.id)])},v(Fr(e.id)),3),D(p,{modelValue:e.enabled,"onUpdate:modelValue":t=>e.enabled=t,class:`ml-auto shrink-0`},null,8,[`modelValue`,`onUpdate:modelValue`]),E((y(),A(x,{type:`button`,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md shrink-0`,onClick:t=>Rr(e.id)},{icon:h(()=>[D(k,{class:`w-4 h-4`})]),_:1},8,[`onClick`])),[[$,{value:i.$t(`views.settings.assistant_external_remove`)},void 0,{top:!0}]])]),C(`div`,dn,[C(`div`,fn,[C(`label`,{for:`server-name-${e.id}`,class:`cui-label`},v(i.$t(`views.settings.assistant_external_name`)),9,pn),D(V,{id:`server-name-${e.id}`,modelValue:e.name,"onUpdate:modelValue":t=>e.name=t,fluid:``,placeholder:`Home Assistant`},null,8,[`id`,`modelValue`,`onUpdate:modelValue`])]),C(`div`,mn,[C(`label`,{for:`server-url-${e.id}`,class:`cui-label`},v(i.$t(`views.settings.assistant_external_url`)),9,hn),D(V,{id:`server-url-${e.id}`,modelValue:e.url,"onUpdate:modelValue":t=>e.url=t,fluid:``,placeholder:`http://homeassistant.local:8123/api/mcp`},null,8,[`id`,`modelValue`,`onUpdate:modelValue`])])]),C(`div`,gn,[C(`label`,{for:`server-token-${e.id}`,class:`cui-label`},v(i.$t(`views.settings.assistant_external_token`)),9,_n),D(Oe,{id:`server-token-${e.id}`,modelValue:L(J)[e.id],"onUpdate:modelValue":t=>L(J)[e.id]=t,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`new-password`,placeholder:e.tokenSet?`••••••••`:``},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`placeholder`]),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(e.tokenSet?i.$t(`views.settings.assistant_external_token_set`):i.$t(`views.settings.assistant_external_token_info`)),1)]),_:2},1024)]),C(`div`,vn,[C(`div`,yn,[C(`label`,{for:`server-insecure-${e.id}`,class:`cui-label-switch`},v(i.$t(`views.settings.assistant_external_insecure`)),9,bn),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_external_insecure_info`)),1)]),_:1})]),D(p,{"input-id":`server-insecure-${e.id}`,modelValue:e.insecure,"onUpdate:modelValue":t=>e.insecure=t,class:`ml-auto shrink-0`},null,8,[`input-id`,`modelValue`,`onUpdate:modelValue`])])]))),128)),C(`div`,xn,[D(x,{type:`button`,severity:`secondary`,outlined:``,class:`cui-button-medium`,label:i.$t(`views.settings.assistant_external_add`),disabled:L(K).mcpServers.length>=10,onClick:Lr},{icon:h(()=>[D(N,{class:`w-4 h-4`})]),_:1},8,[`label`,`disabled`]),D(x,{type:`button`,loading:L(G).isPending.value,class:`cui-button-medium ml-auto`,label:i.$t(`components.form.button.save`),onClick:Vr},null,8,[`loading`,`label`])])])]),_:1})]),C(`div`,null,[C(`span`,Sn,v(i.$t(`views.settings.assistant_schedules`)),1),D(f,{class:`cui-card`},{content:h(()=>[C(`div`,Cn,[D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_schedules_info`)),1)]),_:1}),L(Me)?.length?(y(),w(`div`,wn,[(y(!0),w(M,null,b(L(Me),e=>(y(),w(`div`,{key:e._id,class:`flex items-start gap-3 py-3 text-sm`},[C(`div`,Tn,[C(`div`,En,[C(`span`,Dn,v(e.title),1),D(d,{severity:`secondary`,value:wr(e.cron),class:`text-[10px]`},null,8,[`value`]),D(d,{severity:Tr(e.deliver),value:i.$t(`views.settings.assistant_schedule_deliver_${e.deliver}`),class:`text-[10px]`},null,8,[`severity`,`value`]),e.profileId?(y(),A(d,{key:0,severity:Qr(e.profileId)?`secondary`:`warn`,value:Qr(e.profileId)??i.$t(`views.settings.assistant_schedule_profile_missing`),class:`text-[10px]`},null,8,[`severity`,`value`])):F(``,!0)]),C(`div`,On,v(e.prompt),1),C(`div`,kn,[e.enabled&&e.nextRun?(y(),w(`span`,An,v(i.$t(`views.settings.assistant_schedule_next`,{time:Er(e.nextRun)})),1)):e.enabled?F(``,!0):(y(),w(`span`,jn,v(i.$t(`views.settings.assistant_schedule_paused`)),1)),e.lastRun?(y(),w(`span`,{key:2,class:S(e.lastRun.status===`error`?`text-danger`:``)},[O(` · `+v(i.$t(`views.settings.assistant_schedule_last_${e.lastRun.status}`,{time:Er(e.lastRun.at)}))+` `,1),e.lastRun.message?(y(),w(M,{key:0},[O(`(`+v(e.lastRun.message)+`)`,1)],64)):F(``,!0)],2)):F(``,!0)])]),C(`div`,Mn,[E((y(),A(x,{type:`button`,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md`,loading:L(Ie).isPending.value&&L(Ie).variables.value===e._id,onClick:t=>L(Ie).mutate(e._id)},{icon:h(()=>[D(Ve,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[$,{value:i.$t(`views.settings.assistant_schedule_run`)},void 0,{top:!0}]]),D(p,{"model-value":e.enabled,"onUpdate:modelValue":t=>L(Pe).mutate({scheduleId:e._id,patch:{enabled:t}})},null,8,[`model-value`,`onUpdate:modelValue`]),D(x,{type:`button`,severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,onClick:t=>L(Fe).mutate(e._id)},{icon:h(()=>[D(k,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])])]))),128))])):F(``,!0),C(`div`,{class:S([`flex flex-col gap-6`,{"cui-assistant-schedule-form":L(Me)?.length}])},[C(`div`,Nn,[C(`div`,Pn,[C(`label`,Fn,v(i.$t(`views.settings.assistant_schedule_title_label`)),1),D(V,{modelValue:L(q).title,"onUpdate:modelValue":s[17]||=e=>L(q).title=e,modelModifiers:{trim:!0},type:`text`,placeholder:i.$t(`views.settings.assistant_schedule_title_placeholder`),class:`w-full`},null,8,[`modelValue`,`placeholder`])]),C(`div`,In,[C(`label`,Ln,v(i.$t(`views.settings.assistant_schedule_deliver_label`)),1),D(z,{modelValue:L(q).deliver,"onUpdate:modelValue":s[18]||=e=>L(q).deliver=e,options:L(vr),"option-label":`label`,"option-value":`value`,fluid:``},null,8,[`modelValue`,`options`])])]),C(`div`,Rn,[C(`label`,zn,v(i.$t(`views.settings.assistant_schedule_prompt_label`)),1),D(he,{modelValue:L(q).prompt,"onUpdate:modelValue":s[19]||=e=>L(q).prompt=e,rows:`2`,"auto-resize":``,placeholder:i.$t(`views.settings.assistant_schedule_prompt_placeholder`)},null,8,[`modelValue`,`placeholder`])]),L(je)?.length?(y(),w(`div`,Bn,[C(`label`,Vn,v(i.$t(`views.settings.assistant_schedule_profile_label`)),1),D(z,{modelValue:L(q).profileId,"onUpdate:modelValue":s[20]||=e=>L(q).profileId=e,"input-id":`scheduleProfile`,options:L(je),"option-label":`name`,"option-value":`_id`,"show-clear":``,fluid:``,placeholder:i.$t(`views.settings.assistant_schedule_profile_none`)},null,8,[`modelValue`,`options`,`placeholder`])])):F(``,!0),C(`div`,Hn,[C(`div`,Un,[C(`label`,Wn,v(i.$t(`views.settings.assistant_schedule_when_label`)),1),D(z,{modelValue:L(q).preset,"onUpdate:modelValue":s[21]||=e=>L(q).preset=e,options:L(yr),"option-label":`label`,"option-value":`value`,fluid:``},null,8,[`modelValue`,`options`])]),L(q).preset!==`hourly`&&L(q).preset!==`custom`?(y(),w(`div`,Gn,[C(`label`,Kn,v(i.$t(`views.settings.assistant_schedule_time_label`)),1),D(V,{modelValue:L(q).time,"onUpdate:modelValue":s[22]||=e=>L(q).time=e,type:`time`,class:`cui-time-input w-full`},null,8,[`modelValue`])])):F(``,!0),L(q).preset===`custom`?(y(),w(`div`,qn,[C(`label`,Jn,v(i.$t(`views.settings.assistant_schedule_cron_label`)),1),D(V,{modelValue:L(q).cron,"onUpdate:modelValue":s[23]||=e=>L(q).cron=e,modelModifiers:{trim:!0},type:`text`,placeholder:`0 20 * * *`,class:`w-full font-mono text-sm`},null,8,[`modelValue`])])):F(``,!0)]),C(`div`,Yn,[D(x,{type:`button`,loading:L(Ne).isPending.value,disabled:!L(q).title||!L(q).prompt||!L(br),class:`cui-button-medium ml-auto`,label:i.$t(`views.settings.assistant_schedule_add`),onClick:Dr},null,8,[`loading`,`disabled`,`label`])])],2)])]),_:1})]),C(`div`,null,[C(`span`,Xn,v(i.$t(`views.settings.assistant_usage`)),1),D(f,{class:`cui-card`},{content:h(()=>[C(`div`,Zn,[D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_usage_info`)),1)]),_:1}),D(Q,{value:L(fr)??[],"data-key":`key`,loading:L(ke),pt:I,"striped-rows":``,scrollable:``},{loading:h(()=>[D(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:h(()=>[C(`span`,Qn,v(i.$t(`views.settings.assistant_usage_empty`)),1)]),default:h(()=>[D(Z,{field:`month`,header:i.$t(`views.settings.assistant_usage_month`),"header-class":`p-2`,class:`p-2 tabular-nums`},null,8,[`header`]),D(Z,{field:`username`,header:i.$t(`views.settings.assistant_usage_user`),"header-class":`p-2`,class:`p-2`},{body:h(({data:e})=>[C(`span`,$n,v(e.pluginName??e.username??e.userId),1)]),_:1},8,[`header`]),D(Z,{field:`model`,header:i.$t(`views.settings.assistant_usage_model`),"header-class":`p-2`,class:`p-2`},{body:h(({data:e})=>[C(`span`,er,v(Zr(e)),1)]),_:1},8,[`header`]),D(Z,{field:`runs`,header:i.$t(`views.settings.assistant_usage_runs`),"header-class":`p-2`,class:`p-2 text-right tabular-nums`,pt:P},null,8,[`header`]),D(Z,{field:`promptTokens`,header:i.$t(`views.settings.assistant_usage_in`),"header-class":`p-2`,class:`p-2 text-right tabular-nums`,pt:P},{body:h(({data:e})=>[O(v(Nr(e.promptTokens)),1)]),_:1},8,[`header`]),D(Z,{field:`completionTokens`,header:i.$t(`views.settings.assistant_usage_out`),"header-class":`p-2`,class:`p-2 text-right tabular-nums`,pt:P},{body:h(({data:e})=>[O(v(Nr(e.completionTokens)),1)]),_:1},8,[`header`]),D(Z,{field:`costUsd`,header:i.$t(`views.settings.assistant_usage_cost`),"header-class":`p-2`,class:`p-2 text-right tabular-nums`,pt:P},{body:h(({data:e})=>[O(v(e.costUsd?`$${e.costUsd.toFixed(e.costUsd<1?3:2)}`:`–`),1)]),_:1},8,[`header`])]),_:1},8,[`value`,`loading`])])]),_:1})]),C(`div`,null,[C(`span`,tr,v(i.$t(`views.settings.assistant_tools`)),1),D(f,{class:`cui-card`},{content:h(()=>[L(Be).length?(y(),w(`div`,rr,[D(ti,{value:L(Le),"onUpdate:value":s[24]||=e=>j(Le)?Le.value=e:null,scrollable:``},{default:h(()=>[D(zr,{class:`mb-3`},{default:h(()=>[(y(!0),w(M,null,b(L(Be),e=>(y(),A(Pr,{key:e.key,value:e.key,class:`text-sm`},{default:h(()=>[O(v(e.label)+` (`+v(e.tools.length)+`)`,1)]),_:2},1032,[`value`]))),128))]),_:1}),D(ei,{class:`!p-0 !bg-transparent`},{default:h(()=>[(y(!0),w(M,null,b(L(Be),e=>(y(),A($r,{key:e.key,value:e.key},{default:h(()=>[e.serverId?(y(),w(`div`,ir,[C(`label`,{for:`trusted-${e.key}`,class:`cui-label`},v(i.$t(`views.settings.assistant_tools_trusted_label`)),9,ar),D(Ur,{"model-value":jr(e),"input-id":`trusted-${e.key}`,options:Ar(e),"option-label":`label`,"option-value":`value`,"max-selected-labels":3,"selected-items-label":i.$t(`views.settings.assistant_tools_trusted_selected`,{n:jr(e).length}),placeholder:i.$t(`views.settings.assistant_tools_trusted_none`),filter:``,fluid:``,"onUpdate:modelValue":t=>Mr(e,t)},null,8,[`model-value`,`input-id`,`options`,`selected-items-label`,`placeholder`,`onUpdate:modelValue`]),D(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(v(i.$t(`views.settings.assistant_tools_trusted_info`)),1)]),_:1})])):F(``,!0),C(`div`,or,[(y(!0),w(M,null,b(e.tools,e=>(y(),w(`div`,{key:e.name,class:`flex items-start gap-3 py-2 text-sm`},[D(Gr,{class:`w-4 h-4 mt-0.5 shrink-0 text-muted`}),C(`div`,sr,[C(`div`,cr,[C(`span`,lr,v(L(ge)(e.name)),1),kr(e)?(y(),A(d,{key:0,severity:`warn`,value:i.$t(`views.settings.assistant_tool_approval`),class:`text-[10px]`},null,8,[`value`])):F(``,!0),e.adminOnly?(y(),A(d,{key:1,severity:`info`,value:i.$t(`views.settings.assistant_tool_admin`),class:`text-[10px]`},null,8,[`value`])):F(``,!0)]),C(`div`,ur,v(Or(e.description)),1)])]))),128))])]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`value`]),L(Be).some(e=>e.serverId)?(y(),w(`div`,dr,[D(x,{type:`button`,loading:L(G).isPending.value,class:`cui-button-medium ml-auto`,label:i.$t(`components.form.button.save`),onClick:Vr},null,8,[`loading`,`label`])])):F(``,!0)])):(y(),w(`div`,nr,v(i.$t(`views.settings.assistant_tools_empty`)),1))]),_:1})])])):(y(),w(`div`,Ue,[D(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]))])}}}),[[`__scopeId`,`data-v-31057f1e`]]);export{fr as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Bt as e,It as t,Kt as n,L as r,Vr as i,q as a}from"./vendor-cameraui-zaB6gIk1.js";import{Ir as o,Pn as s,it as c,s as l}from"./api-DgcK7TwB.js";import{$n as u,Cr as d,Hn as f,In as p,Jn as m,Pn as h,Rn as g,_r as _,cn as v,dn as y,dr as b,er as x,gn as S,hn as C,ln as w,lr as T,mr as E,nn as D,rn as O,sn as k,sr as A,un as j,vn as M,yr as N}from"./vendor-CP-WYrgy.js";import{K as ee,M as P,U as F,_ as I,j as L,z as R}from"./vendor-primevue-5HrOunkM.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-DMO3YoI3.js";import{t as se}from"./theme-BPfSpHbW.js";import{t as ce}from"./trash-can-outline-B7IPK5NP.js";import{t as B}from"./close-circle-DmuCMtNe.js";import{t as le}from"./download-C4gHcSTT.js";var V={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function H(e,t){return p(),y(`svg`,V,[...t[0]||=[v(`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=A({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`},ue=M({__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}=_(i),c=m(`fileInputRef`),l=E([]),h=b(!1),g=b(!1);function x(e){let t=l.value.findIndex(t=>t.name===e);t>-1&&(l.value.splice(t,1),O())}function C(e){if(h.value=!1,g.value=!1,l.value=[],e.dataTransfer){if(!s.value&&e.dataTransfer.files.length>1)g.value=!0;else{for(let[,t]of Object.entries(e.dataTransfer.files))l.value.push(t);a(`files-uploaded`,l.value)}}}function T(e){g.value=!1,l.value=[];let t=e.target;if(t&&t.files){if(!s.value&&t.files?.length>1)g.value=!0;else{for(let[,e]of Object.entries(t.files))l.value.push(e);a(`files-uploaded`,l.value)}}}function O(){c.value&&(c.value.value=``)}function k(){l.value=[],O()}return n({reset:k}),(n,r)=>{let i=B,a=e,s=F,m=P;return p(),y(`div`,{class:`file-upload-box`,onDrop:r[0]||=D(e=>C(e),[`prevent`]),onDragover:r[1]||=D(e=>h.value=!0,[`prevent`]),onDragenter:r[2]||=D(e=>h.value=!0,[`prevent`]),onDragleave:r[3]||=D(e=>h.value=!1,[`prevent`])},[v(`div`,W,[v(`div`,G,[(p(),w(f(t.icon),{class:`w-15 h-15`})),v(`label`,K,d(n.$t(`components.upload_files.drop_or_select_file`)),1),v(`input`,{id:`restoreInput`,ref_key:`fileInputRef`,ref:c,type:`file`,class:`hidden`,accept:N(o),onChange:T},null,40,q),N(g)?(p(),y(`p`,J,d(n.$t(`components.upload_files.only_one_file_allowed`)),1)):j(``,!0)]),N(l).length>0?(p(),w(m,{key:0,items:N(l),"item-size":50,"scroll-height":`50px`,"scroll-width":`100%`,class:`w-full`},{item:u(({item:e})=>[(p(),y(`div`,{key:e.name,class:`w-full flex flex-row items-center justify-start p-2`},[S(a,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md shrink-0`,onClick:t=>x(e.name)},{icon:u(()=>[S(i,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`]),v(`b`,Y,d(e.name),1),v(`span`,X,`(`+d(e.size)+` bytes)`,1)])),N(l).length>1?(p(),w(s,{key:0,class:`m-0 py-4`})):j(``,!0)]),_:1},8,[`items`])):j(``,!0)])],32)}}}),de={class:`flex flex-col w-full gap-6`},fe={class:`card-title`},pe={class:`flex flex-col gap-6`},me={class:`text-sm`},he={class:`card-title`},ge={class:`flex flex-col gap-6`},_e={class:`text-sm`},ve={class:`card-title`},ye={key:0,class:`flex w-full items-center justify-center py-6`},be={key:1,class:`flex flex-col gap-6`},xe={class:`flex items-center gap-4`},Se={class:`flex flex-col gap-1 min-w-0`},Ce={class:`text-sm`},we={class:`text-xs text-muted`},Te={class:`grid grid-cols-1 sm:grid-cols-2 gap-4`},Ee={class:`flex flex-col field-gap`},De={for:`backupInterval`,class:`cui-label`},Oe={class:`flex flex-col field-gap`},ke={for:`backupTime`,class:`cui-label`},Ae={key:0,class:`flex flex-col field-gap`},je={for:`backupWeekday`,class:`cui-label`},Me={key:1,class:`flex flex-col field-gap`},Ne={for:`backupDayOfMonth`,class:`cui-label`},Pe={class:`flex flex-col field-gap`},Fe={for:`backupRetention`,class:`cui-label`},Ie={class:`flex flex-col field-gap`},Le={for:`backupDestination`,class:`cui-label`},Re={class:`flex items-center gap-2`},ze={key:1,class:`flex flex-col gap-2`},Be={class:`text-sm font-semibold border-b-[1px] border-color pb-2`},Ve={class:`flex flex-col min-w-0`},He={class:`text-sm truncate`},Ue={class:`text-xs text-muted`},We={class:`flex gap-1 ml-auto shrink-0`},Z=M({__name:`SettingsBackup`,setup(f){let _=c(),D=o(),{t:A,locale:M}=i(),P=m(`filesRef`),F=E([]),B=b(!1),V=b(!0),H=b(!1),U=b(!1),W=b(null),G=b([]),K=b(``),q=b(),J=T({enabled:!1,interval:`daily`,time:`03:00`,weekday:0,dayOfMonth:1,retention:7,destinationPath:``}),Y=k(()=>/^([01]\d|2[0-3]):[0-5]\d$/.test(J.time)),X=k(()=>[`daily`,`weekly`,`monthly`].map(e=>({label:A(`views.settings.backup_interval_${e}`),value:e}))),Z=k(()=>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}))),Ge=k(()=>{if(!q.value)return A(`views.settings.backup_last_run`,{info:A(`views.settings.backup_last_run_never`)});let e=new Date(q.value.timestamp).toLocaleString(),t=q.value.status===`success`?`✓`:`✗ ${q.value.message??``}`;return A(`views.settings.backup_last_run`,{info:`${e} ${t}`})});async function Q(){B.value=!0;try{let e={},t=localStorage.getItem(`ui`);if(t)try{e.ui=JSON.parse(t)}catch{}let n=localStorage.getItem(`language`);n&&(e.language=n),localStorage.getItem(`theme`)&&(e.theme=se());let r=Date.now(),i=await ne(e);await s({blob:new Blob([i]),filename:`cameraui-backup-${r}.tar.gz`,mimeType:`application/gzip`})}catch(e){D.add({severity:`error`,detail:l(e),life:3e3})}B.value=!1}function Ke(){_.openTextDialog({data:{title:A(`components.dialog.title.confirm`),contentText:A(`components.dialog.message.confirm_restore`),confirmText:A(`components.form.button.restore_and_restart`),loading:B},onConfirm:qe})}async function qe(){let e=F.value[0];e&&(B.value=!0,await re().run(e),P.value?.reset(),B.value=!1)}function Je(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){D.add({severity:`error`,detail:l(e),life:3e3})}finally{V.value=!1}}async function Ye(){if(Y.value){H.value=!0;try{let e=await oe({...J});q.value=e.lastRun,D.add({severity:`success`,detail:A(`components.toast.backup_scheduler_saved`),life:3e3})}catch(e){D.add({severity:`error`,detail:l(e),life:3e3})}finally{H.value=!1}}}async function Xe(){U.value=!0;try{let e=await te();q.value=e,D.add({severity:`success`,detail:A(`components.toast.backup_created`),life:3e3})}catch(e){D.add({severity:`error`,detail:l(e),life:3e3})}finally{U.value=!1,await $()}}async function Ze(e){W.value=e.filename;try{let t=await z(e.filename);await s({blob:new Blob([t]),filename:e.filename,mimeType:`application/gzip`})}catch(e){D.add({severity:`error`,detail:l(e),life:3e3})}finally{W.value=null}}function Qe(e){_.openTextDialog({data:{title:A(`components.dialog.title.confirm`),contentText:A(`components.dialog.message.confirm_delete_backup`,{filename:e.filename}),confirmText:A(`components.form.button.remove`)},onConfirm:async()=>{try{await ae(e.filename),D.add({severity:`success`,detail:A(`components.toast.backup_deleted`),life:3e3}),await $()}catch(e){D.add({severity:`error`,detail:l(e),life:3e3})}}})}return h($),(i,o)=>{let s=e,c=a,l=ue,f=t,m=ee,h=L,_=r,b=I,T=R,E=le,D=ce,k=n;return p(),y(`div`,null,[v(`div`,de,[v(`div`,null,[v(`span`,fe,d(i.$t(`views.settings.create_backup`)),1),S(c,{class:`cui-card`},{content:u(()=>[v(`div`,pe,[v(`span`,me,d(i.$t(`views.settings.create_backup_info`)),1),S(s,{loading:N(B),class:`ml-auto cui-button-medium`,label:i.$t(`components.form.button.download_backup_archive`),onClick:Q},null,8,[`loading`,`label`])])]),_:1})]),v(`div`,null,[v(`span`,he,d(i.$t(`views.settings.restore_backup`)),1),S(c,{class:`cui-card`},{content:u(()=>[v(`div`,ge,[v(`span`,_e,d(i.$t(`views.settings.restore_backup_info`)),1),S(l,{ref_key:`filesRef`,ref:P,accept:`application/gzip, .tar, .tar.gz`,onFilesUploaded:o[0]||=e=>F.value=e},null,512),S(s,{loading:N(B),disabled:!N(F).length,class:`ml-auto cui-button-medium`,label:i.$t(`components.form.button.restore_backup_archive`),onClick:Ke},null,8,[`loading`,`disabled`,`label`])])]),_:1})]),v(`div`,null,[v(`span`,ve,d(i.$t(`views.settings.scheduled_backup`)),1),S(c,{class:`cui-card`},{content:u(()=>[N(V)?(p(),y(`div`,ye,[S(f,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(p(),y(`div`,be,[v(`div`,xe,[v(`div`,Se,[v(`span`,Ce,d(i.$t(`views.settings.scheduled_backup_info`)),1),v(`span`,we,d(N(Ge)),1)]),S(m,{modelValue:N(J).enabled,"onUpdate:modelValue":o[1]||=e=>N(J).enabled=e,disabled:N(H),class:`ml-auto shrink-0`},null,8,[`modelValue`,`disabled`])]),N(J).enabled?(p(),y(O,{key:0},[v(`div`,Te,[v(`div`,Ee,[v(`label`,De,d(i.$t(`views.settings.backup_interval`)),1),S(h,{modelValue:N(J).interval,"onUpdate:modelValue":o[2]||=e=>N(J).interval=e,"input-id":`backupInterval`,options:N(X),"option-label":`label`,"option-value":`value`,disabled:N(H)},null,8,[`modelValue`,`options`,`disabled`])]),v(`div`,Oe,[v(`label`,ke,d(i.$t(`views.settings.backup_time`)),1),S(_,{id:`backupTime`,modelValue:N(J).time,"onUpdate:modelValue":o[3]||=e=>N(J).time=e,placeholder:`03:00`,disabled:N(H),invalid:!N(Y)},null,8,[`modelValue`,`disabled`,`invalid`])]),N(J).interval===`weekly`?(p(),y(`div`,Ae,[v(`label`,je,d(i.$t(`views.settings.backup_weekday`)),1),S(h,{modelValue:N(J).weekday,"onUpdate:modelValue":o[4]||=e=>N(J).weekday=e,"input-id":`backupWeekday`,options:N(Z),"option-label":`label`,"option-value":`value`,disabled:N(H)},null,8,[`modelValue`,`options`,`disabled`])])):j(``,!0),N(J).interval===`monthly`?(p(),y(`div`,Me,[v(`label`,Ne,d(i.$t(`views.settings.backup_day_of_month`)),1),S(b,{modelValue:N(J).dayOfMonth,"onUpdate:modelValue":o[5]||=e=>N(J).dayOfMonth=e,"input-id":`backupDayOfMonth`,min:1,max:28,"show-buttons":``,"use-grouping":!1,disabled:N(H)},null,8,[`modelValue`,`disabled`])])):j(``,!0),v(`div`,Pe,[v(`label`,Fe,d(i.$t(`views.settings.backup_retention`)),1),S(b,{modelValue:N(J).retention,"onUpdate:modelValue":o[6]||=e=>N(J).retention=e,"input-id":`backupRetention`,min:1,max:60,"show-buttons":``,"use-grouping":!1,disabled:N(H)},null,8,[`modelValue`,`disabled`]),S(T,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:u(()=>[C(d(i.$t(`views.settings.backup_retention_hint`)),1)]),_:1})])]),v(`div`,Ie,[v(`label`,Le,d(i.$t(`views.settings.backup_destination`)),1),S(_,{id:`backupDestination`,modelValue:N(J).destinationPath,"onUpdate:modelValue":o[7]||=e=>N(J).destinationPath=e,placeholder:N(K),disabled:N(H)},null,8,[`modelValue`,`placeholder`,`disabled`]),S(T,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:u(()=>[C(d(i.$t(`views.settings.backup_destination_hint`)),1)]),_:1})])],64)):j(``,!0),v(`div`,Re,[S(s,{severity:`secondary`,outlined:``,loading:N(U),disabled:N(H),class:`ml-auto cui-button-medium`,label:i.$t(`components.form.button.run_now`),onClick:Xe},null,8,[`loading`,`disabled`,`label`]),S(s,{loading:N(H),disabled:N(U)||!N(Y),class:`cui-button-medium`,label:i.$t(`components.form.button.save`),onClick:Ye},null,8,[`loading`,`disabled`,`label`])]),N(G).length?(p(),y(`div`,ze,[v(`span`,Be,d(i.$t(`views.settings.backup_existing`)),1),(p(!0),y(O,null,g(N(G),e=>(p(),y(`div`,{key:e.filename,class:`flex items-center gap-3 py-1 min-w-0`},[v(`div`,Ve,[v(`span`,He,d(e.filename),1),v(`span`,Ue,d(new Date(e.timestamp).toLocaleString())+` · `+d(Je(e.size)),1)]),v(`div`,We,[x((p(),w(s,{text:``,rounded:``,severity:`secondary`,class:`cui-icon-md`,disabled:N(W)===e.filename,onClick:t=>Ze(e)},{icon:u(()=>[S(E,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`,`onClick`])),[[k,{value:i.$t(`components.form.button.download`)},void 0,{top:!0}]]),x((p(),w(s,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md`,onClick:t=>Qe(e)},{icon:u(()=>[S(D,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[k,{value:i.$t(`components.form.button.remove`)},void 0,{top:!0}]])])]))),128))])):j(``,!0)]))]),_:1})])])])}}});export{Z as default};
|
|
1
|
+
import{Bt as e,It as t,Kt as n,L as r,Vr as i,q as a}from"./vendor-cameraui-zaB6gIk1.js";import{Ir as o,Pn as s,it as c,s as l}from"./api-0KzHya6g.js";import{$n as u,Cr as d,Hn as f,In as p,Jn as m,Pn as h,Rn as g,_r as _,cn as v,dn as y,dr as b,er as x,gn as S,hn as C,ln as w,lr as T,mr as E,nn as D,rn as O,sn as k,sr as A,un as j,vn as M,yr as N}from"./vendor-CP-WYrgy.js";import{K as ee,M as P,U as F,_ as I,j as L,z as R}from"./vendor-primevue-5HrOunkM.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-5E-Y8DMu.js";import{t as se}from"./theme-C8wlVvxI.js";import{t as ce}from"./trash-can-outline-B7IPK5NP.js";import{t as B}from"./close-circle-DmuCMtNe.js";import{t as le}from"./download-C4gHcSTT.js";var V={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function H(e,t){return p(),y(`svg`,V,[...t[0]||=[v(`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=A({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`},ue=M({__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}=_(i),c=m(`fileInputRef`),l=E([]),h=b(!1),g=b(!1);function x(e){let t=l.value.findIndex(t=>t.name===e);t>-1&&(l.value.splice(t,1),O())}function C(e){if(h.value=!1,g.value=!1,l.value=[],e.dataTransfer){if(!s.value&&e.dataTransfer.files.length>1)g.value=!0;else{for(let[,t]of Object.entries(e.dataTransfer.files))l.value.push(t);a(`files-uploaded`,l.value)}}}function T(e){g.value=!1,l.value=[];let t=e.target;if(t&&t.files){if(!s.value&&t.files?.length>1)g.value=!0;else{for(let[,e]of Object.entries(t.files))l.value.push(e);a(`files-uploaded`,l.value)}}}function O(){c.value&&(c.value.value=``)}function k(){l.value=[],O()}return n({reset:k}),(n,r)=>{let i=B,a=e,s=F,m=P;return p(),y(`div`,{class:`file-upload-box`,onDrop:r[0]||=D(e=>C(e),[`prevent`]),onDragover:r[1]||=D(e=>h.value=!0,[`prevent`]),onDragenter:r[2]||=D(e=>h.value=!0,[`prevent`]),onDragleave:r[3]||=D(e=>h.value=!1,[`prevent`])},[v(`div`,W,[v(`div`,G,[(p(),w(f(t.icon),{class:`w-15 h-15`})),v(`label`,K,d(n.$t(`components.upload_files.drop_or_select_file`)),1),v(`input`,{id:`restoreInput`,ref_key:`fileInputRef`,ref:c,type:`file`,class:`hidden`,accept:N(o),onChange:T},null,40,q),N(g)?(p(),y(`p`,J,d(n.$t(`components.upload_files.only_one_file_allowed`)),1)):j(``,!0)]),N(l).length>0?(p(),w(m,{key:0,items:N(l),"item-size":50,"scroll-height":`50px`,"scroll-width":`100%`,class:`w-full`},{item:u(({item:e})=>[(p(),y(`div`,{key:e.name,class:`w-full flex flex-row items-center justify-start p-2`},[S(a,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md shrink-0`,onClick:t=>x(e.name)},{icon:u(()=>[S(i,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`]),v(`b`,Y,d(e.name),1),v(`span`,X,`(`+d(e.size)+` bytes)`,1)])),N(l).length>1?(p(),w(s,{key:0,class:`m-0 py-4`})):j(``,!0)]),_:1},8,[`items`])):j(``,!0)])],32)}}}),de={class:`flex flex-col w-full gap-6`},fe={class:`card-title`},pe={class:`flex flex-col gap-6`},me={class:`text-sm`},he={class:`card-title`},ge={class:`flex flex-col gap-6`},_e={class:`text-sm`},ve={class:`card-title`},ye={key:0,class:`flex w-full items-center justify-center py-6`},be={key:1,class:`flex flex-col gap-6`},xe={class:`flex items-center gap-4`},Se={class:`flex flex-col gap-1 min-w-0`},Ce={class:`text-sm`},we={class:`text-xs text-muted`},Te={class:`grid grid-cols-1 sm:grid-cols-2 gap-4`},Ee={class:`flex flex-col field-gap`},De={for:`backupInterval`,class:`cui-label`},Oe={class:`flex flex-col field-gap`},ke={for:`backupTime`,class:`cui-label`},Ae={key:0,class:`flex flex-col field-gap`},je={for:`backupWeekday`,class:`cui-label`},Me={key:1,class:`flex flex-col field-gap`},Ne={for:`backupDayOfMonth`,class:`cui-label`},Pe={class:`flex flex-col field-gap`},Fe={for:`backupRetention`,class:`cui-label`},Ie={class:`flex flex-col field-gap`},Le={for:`backupDestination`,class:`cui-label`},Re={class:`flex items-center gap-2`},ze={key:1,class:`flex flex-col gap-2`},Be={class:`text-sm font-semibold border-b-[1px] border-color pb-2`},Ve={class:`flex flex-col min-w-0`},He={class:`text-sm truncate`},Ue={class:`text-xs text-muted`},We={class:`flex gap-1 ml-auto shrink-0`},Z=M({__name:`SettingsBackup`,setup(f){let _=c(),D=o(),{t:A,locale:M}=i(),P=m(`filesRef`),F=E([]),B=b(!1),V=b(!0),H=b(!1),U=b(!1),W=b(null),G=b([]),K=b(``),q=b(),J=T({enabled:!1,interval:`daily`,time:`03:00`,weekday:0,dayOfMonth:1,retention:7,destinationPath:``}),Y=k(()=>/^([01]\d|2[0-3]):[0-5]\d$/.test(J.time)),X=k(()=>[`daily`,`weekly`,`monthly`].map(e=>({label:A(`views.settings.backup_interval_${e}`),value:e}))),Z=k(()=>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}))),Ge=k(()=>{if(!q.value)return A(`views.settings.backup_last_run`,{info:A(`views.settings.backup_last_run_never`)});let e=new Date(q.value.timestamp).toLocaleString(),t=q.value.status===`success`?`✓`:`✗ ${q.value.message??``}`;return A(`views.settings.backup_last_run`,{info:`${e} ${t}`})});async function Q(){B.value=!0;try{let e={},t=localStorage.getItem(`ui`);if(t)try{e.ui=JSON.parse(t)}catch{}let n=localStorage.getItem(`language`);n&&(e.language=n),localStorage.getItem(`theme`)&&(e.theme=se());let r=Date.now(),i=await ne(e);await s({blob:new Blob([i]),filename:`cameraui-backup-${r}.tar.gz`,mimeType:`application/gzip`})}catch(e){D.add({severity:`error`,detail:l(e),life:3e3})}B.value=!1}function Ke(){_.openTextDialog({data:{title:A(`components.dialog.title.confirm`),contentText:A(`components.dialog.message.confirm_restore`),confirmText:A(`components.form.button.restore_and_restart`),loading:B},onConfirm:qe})}async function qe(){let e=F.value[0];e&&(B.value=!0,await re().run(e),P.value?.reset(),B.value=!1)}function Je(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){D.add({severity:`error`,detail:l(e),life:3e3})}finally{V.value=!1}}async function Ye(){if(Y.value){H.value=!0;try{let e=await oe({...J});q.value=e.lastRun,D.add({severity:`success`,detail:A(`components.toast.backup_scheduler_saved`),life:3e3})}catch(e){D.add({severity:`error`,detail:l(e),life:3e3})}finally{H.value=!1}}}async function Xe(){U.value=!0;try{let e=await te();q.value=e,D.add({severity:`success`,detail:A(`components.toast.backup_created`),life:3e3})}catch(e){D.add({severity:`error`,detail:l(e),life:3e3})}finally{U.value=!1,await $()}}async function Ze(e){W.value=e.filename;try{let t=await z(e.filename);await s({blob:new Blob([t]),filename:e.filename,mimeType:`application/gzip`})}catch(e){D.add({severity:`error`,detail:l(e),life:3e3})}finally{W.value=null}}function Qe(e){_.openTextDialog({data:{title:A(`components.dialog.title.confirm`),contentText:A(`components.dialog.message.confirm_delete_backup`,{filename:e.filename}),confirmText:A(`components.form.button.remove`)},onConfirm:async()=>{try{await ae(e.filename),D.add({severity:`success`,detail:A(`components.toast.backup_deleted`),life:3e3}),await $()}catch(e){D.add({severity:`error`,detail:l(e),life:3e3})}}})}return h($),(i,o)=>{let s=e,c=a,l=ue,f=t,m=ee,h=L,_=r,b=I,T=R,E=le,D=ce,k=n;return p(),y(`div`,null,[v(`div`,de,[v(`div`,null,[v(`span`,fe,d(i.$t(`views.settings.create_backup`)),1),S(c,{class:`cui-card`},{content:u(()=>[v(`div`,pe,[v(`span`,me,d(i.$t(`views.settings.create_backup_info`)),1),S(s,{loading:N(B),class:`ml-auto cui-button-medium`,label:i.$t(`components.form.button.download_backup_archive`),onClick:Q},null,8,[`loading`,`label`])])]),_:1})]),v(`div`,null,[v(`span`,he,d(i.$t(`views.settings.restore_backup`)),1),S(c,{class:`cui-card`},{content:u(()=>[v(`div`,ge,[v(`span`,_e,d(i.$t(`views.settings.restore_backup_info`)),1),S(l,{ref_key:`filesRef`,ref:P,accept:`application/gzip, .tar, .tar.gz`,onFilesUploaded:o[0]||=e=>F.value=e},null,512),S(s,{loading:N(B),disabled:!N(F).length,class:`ml-auto cui-button-medium`,label:i.$t(`components.form.button.restore_backup_archive`),onClick:Ke},null,8,[`loading`,`disabled`,`label`])])]),_:1})]),v(`div`,null,[v(`span`,ve,d(i.$t(`views.settings.scheduled_backup`)),1),S(c,{class:`cui-card`},{content:u(()=>[N(V)?(p(),y(`div`,ye,[S(f,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(p(),y(`div`,be,[v(`div`,xe,[v(`div`,Se,[v(`span`,Ce,d(i.$t(`views.settings.scheduled_backup_info`)),1),v(`span`,we,d(N(Ge)),1)]),S(m,{modelValue:N(J).enabled,"onUpdate:modelValue":o[1]||=e=>N(J).enabled=e,disabled:N(H),class:`ml-auto shrink-0`},null,8,[`modelValue`,`disabled`])]),N(J).enabled?(p(),y(O,{key:0},[v(`div`,Te,[v(`div`,Ee,[v(`label`,De,d(i.$t(`views.settings.backup_interval`)),1),S(h,{modelValue:N(J).interval,"onUpdate:modelValue":o[2]||=e=>N(J).interval=e,"input-id":`backupInterval`,options:N(X),"option-label":`label`,"option-value":`value`,disabled:N(H)},null,8,[`modelValue`,`options`,`disabled`])]),v(`div`,Oe,[v(`label`,ke,d(i.$t(`views.settings.backup_time`)),1),S(_,{id:`backupTime`,modelValue:N(J).time,"onUpdate:modelValue":o[3]||=e=>N(J).time=e,placeholder:`03:00`,disabled:N(H),invalid:!N(Y)},null,8,[`modelValue`,`disabled`,`invalid`])]),N(J).interval===`weekly`?(p(),y(`div`,Ae,[v(`label`,je,d(i.$t(`views.settings.backup_weekday`)),1),S(h,{modelValue:N(J).weekday,"onUpdate:modelValue":o[4]||=e=>N(J).weekday=e,"input-id":`backupWeekday`,options:N(Z),"option-label":`label`,"option-value":`value`,disabled:N(H)},null,8,[`modelValue`,`options`,`disabled`])])):j(``,!0),N(J).interval===`monthly`?(p(),y(`div`,Me,[v(`label`,Ne,d(i.$t(`views.settings.backup_day_of_month`)),1),S(b,{modelValue:N(J).dayOfMonth,"onUpdate:modelValue":o[5]||=e=>N(J).dayOfMonth=e,"input-id":`backupDayOfMonth`,min:1,max:28,"show-buttons":``,"use-grouping":!1,disabled:N(H)},null,8,[`modelValue`,`disabled`])])):j(``,!0),v(`div`,Pe,[v(`label`,Fe,d(i.$t(`views.settings.backup_retention`)),1),S(b,{modelValue:N(J).retention,"onUpdate:modelValue":o[6]||=e=>N(J).retention=e,"input-id":`backupRetention`,min:1,max:60,"show-buttons":``,"use-grouping":!1,disabled:N(H)},null,8,[`modelValue`,`disabled`]),S(T,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:u(()=>[C(d(i.$t(`views.settings.backup_retention_hint`)),1)]),_:1})])]),v(`div`,Ie,[v(`label`,Le,d(i.$t(`views.settings.backup_destination`)),1),S(_,{id:`backupDestination`,modelValue:N(J).destinationPath,"onUpdate:modelValue":o[7]||=e=>N(J).destinationPath=e,placeholder:N(K),disabled:N(H)},null,8,[`modelValue`,`placeholder`,`disabled`]),S(T,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:u(()=>[C(d(i.$t(`views.settings.backup_destination_hint`)),1)]),_:1})])],64)):j(``,!0),v(`div`,Re,[S(s,{severity:`secondary`,outlined:``,loading:N(U),disabled:N(H),class:`ml-auto cui-button-medium`,label:i.$t(`components.form.button.run_now`),onClick:Xe},null,8,[`loading`,`disabled`,`label`]),S(s,{loading:N(H),disabled:N(U)||!N(Y),class:`cui-button-medium`,label:i.$t(`components.form.button.save`),onClick:Ye},null,8,[`loading`,`disabled`,`label`])]),N(G).length?(p(),y(`div`,ze,[v(`span`,Be,d(i.$t(`views.settings.backup_existing`)),1),(p(!0),y(O,null,g(N(G),e=>(p(),y(`div`,{key:e.filename,class:`flex items-center gap-3 py-1 min-w-0`},[v(`div`,Ve,[v(`span`,He,d(e.filename),1),v(`span`,Ue,d(new Date(e.timestamp).toLocaleString())+` · `+d(Je(e.size)),1)]),v(`div`,We,[x((p(),w(s,{text:``,rounded:``,severity:`secondary`,class:`cui-icon-md`,disabled:N(W)===e.filename,onClick:t=>Ze(e)},{icon:u(()=>[S(E,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`,`onClick`])),[[k,{value:i.$t(`components.form.button.download`)},void 0,{top:!0}]]),x((p(),w(s,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md`,onClick:t=>Qe(e)},{icon:u(()=>[S(D,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[k,{value:i.$t(`components.form.button.remove`)},void 0,{top:!0}]])])]))),128))])):j(``,!0)]))]),_:1})])])])}}});export{Z as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Vr as e}from"./vendor-cameraui-zaB6gIk1.js";import{Dn as t,On as n,wn as r,x as i}from"./api-
|
|
1
|
+
import{Vr as e}from"./vendor-cameraui-zaB6gIk1.js";import{Dn as t,On as n,wn as r,x as i}from"./api-0KzHya6g.js";import{$n as a,Cr as o,Hn as s,In as c,Rn as l,cn as u,dn as d,gn as f,hn as p,ln as m,rn as h,sn as g,vn as _,yr as v}from"./vendor-CP-WYrgy.js";import{t as y}from"./CuiList-Dfklll0h.js";var b={class:`card-title`},x=_({__name:`SettingsList`,setup(_){let{t:x}=e(),S=g(()=>i.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=g(()=>[`personal`,`system`].map(e=>({key:e,items:S.value.filter(t=>t.group===e)})).filter(e=>e.items.length>0));return(e,n)=>{let i=t,g=r,_=y;return c(),d(`div`,null,[(c(!0),d(h,null,l(v(C),t=>(c(),d(h,{key:t.key},[u(`span`,b,o(e.$t(`views.settings.section_${t.key}`)),1),f(_,{size:`large`,dividers:``,class:`!h-auto mb-4`},{default:a(()=>[(c(!0),d(h,null,l(t.items,e=>(c(),m(g,{key:e.to,to:e.to},{prepend:a(()=>[(c(),m(s(e.icon),{class:`w-5 h-5 text-muted`}))]),append:a(()=>[f(i,{class:`w-5 h-5 text-muted`})]),default:a(()=>[p(` `+o(e.label)+` `,1)]),_:2},1032,[`to`]))),128))]),_:2},1024)],64))),128))])}}});export{x as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Bt as e,It as t,L as ee,Vr as n,q as te}from"./vendor-cameraui-zaB6gIk1.js";import{Ct as ne,Ir as r,St as i,Tr as a,i as o,o as s}from"./api-DgcK7TwB.js";import{$n as c,C as re,Cr as l,Dn as u,In as d,S as f,Xn as p,Xt as m,cn as h,dn as g,dr as _,gn as v,hn as y,ln as b,or as ie,rn as x,sn as S,un as C,vn as w,x as T,yr as E}from"./vendor-CP-WYrgy.js";import{Y as D}from"./types-BZz-3rol.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-5HrOunkM.js";import{t as O}from"./mqtt-DHY_na1K.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`},Ie={class:`flex flex-col field-gap flex-1 min-w-0`},Le={for:`brokerPassword`,class:`cui-label`},B={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=w({__name:`SettingsMqtt`,setup(w){let D=new O,V=r(),{t:H}=n(),{data:U}=D.getMqttInfoQuery(),W=D.patchMqttInfoMutation(),G=D.testMqttConnectionMutation(),K=a(`/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=_(null),J=_(``),Y=_(null),X=S(()=>U.value?.passwordSet??!1),Z=S(()=>Y.value??U.value?.status??null),nt=S(()=>{switch(Z.value?.state){case`connected`:return`success`;case`connecting`:case`reconnecting`:return`warn`;case`error`:return`danger`;default:return`secondary`}}),rt=S(()=>{let e=Z.value?.state??`disabled`;return H(`views.settings.mqtt_state_${e}`)}),it=S(()=>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=S(()=>`mqtt://${window.location.hostname}:${q.value?.broker.port??1883}`);function $(){let e=s(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 p(U,e=>{e&&!q.value&&(q.value=s(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 a=t,s=pe,p=le,_=te,S=ae,w=de,D=ee,O=ce,V=fe,H=ne,U=oe,K=se,Y=ue,Z=e;return d(),g(`div`,k,[E(q)?(d(),g(`div`,j,[h(`div`,null,[h(`span`,M,l(n.$t(`views.settings.status`)),1),v(_,{class:`cui-card`},{content:c(()=>[h(`div`,N,[h(`div`,P,[h(`span`,F,l(n.$t(`views.settings.mqtt_broker`)),1),v(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:c(()=>[y(l(E(it)),1)]),_:1})]),v(p,{class:`ml-auto shrink-0`,severity:E(nt),value:E(rt)},null,8,[`severity`,`value`])])]),_:1})]),v(E(re),{class:`flex flex-col w-full gap-6`,"validation-schema":E(me),onSubmit:at},{default:c(()=>[h(`div`,null,[h(`span`,I,l(n.$t(`views.settings.mqtt_broker`)),1),v(_,{class:`cui-card`},{content:c(()=>[h(`div`,L,[h(`div`,R,[h(`div`,z,[h(`label`,he,l(n.$t(`components.form.label.enabled`)),1),v(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:c(()=>[y(l(n.$t(`views.settings.mqtt_enabled_info`)),1)]),_:1})]),v(S,{modelValue:E(q).enabled,"onUpdate:modelValue":r[0]||=e=>E(q).enabled=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),h(`div`,ge,[h(`label`,_e,l(n.$t(`views.settings.mqtt_mode_label`)),1),v(w,{modelValue:E(q).mode,"onUpdate:modelValue":r[1]||=e=>E(q).mode=e,options:tt,"option-label":`label`,"option-value":`value`},null,8,[`modelValue`]),E(q).mode===`embedded`?(d(),b(s,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:c(()=>[y(l(n.$t(`views.settings.mqtt_mode_embedded_info`)),1)]),_:1})):C(``,!0)]),E(q).mode===`external`?(d(),g(x,{key:0},[h(`div`,ve,[v(E(f),{modelValue:E(q).host,"onUpdate:modelValue":r[2]||=e=>E(q).host=e,modelModifiers:{trim:!0},name:`host`,as:`div`,class:`flex flex-col field-gap flex-1 min-w-0`},{default:c(({field:e,errors:t})=>[h(`label`,ye,l(n.$t(`views.settings.mqtt_host_label`)),1),v(D,u(e,{invalid:t.length>0,type:`text`,placeholder:`192.168.1.10`,class:`w-full`}),null,16,[`invalid`]),v(m,{name:`fade`},{default:c(()=>[v(E(T),{name:`host`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),h(`div`,be,[h(`label`,xe,l(n.$t(`views.settings.mqtt_port_label`)),1),v(O,{modelValue:E(q).port,"onUpdate:modelValue":r[3]||=e=>E(q).port=e,min:1,max:65535,"use-grouping":!1,fluid:``},null,8,[`modelValue`])])]),h(`div`,Se,[h(`label`,Ce,l(n.$t(`views.settings.mqtt_protocol_label`)),1),v(w,{modelValue:E(q).protocol,"onUpdate:modelValue":r[4]||=e=>E(q).protocol=e,options:et,"option-label":`label`,"option-value":`value`},null,8,[`modelValue`])]),h(`div`,we,[h(`div`,Te,[h(`label`,Ee,l(n.$t(`views.settings.mqtt_username_label`)),1),v(D,{modelValue:E(q).username,"onUpdate:modelValue":r[5]||=e=>E(q).username=e,modelModifiers:{trim:!0},type:`text`,autocomplete:`off`,class:`w-full`},null,8,[`modelValue`])]),h(`div`,De,[h(`label`,Oe,l(n.$t(`views.settings.mqtt_password_label`)),1),v(V,{modelValue:E(J),"onUpdate:modelValue":r[6]||=e=>ie(J)?J.value=e:null,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`new-password`,placeholder:E(X)?`••••••••`:``},null,8,[`modelValue`,`placeholder`]),E(X)?(d(),b(s,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:c(()=>[y(l(n.$t(`views.settings.mqtt_password_keep_hint`)),1)]),_:1})):C(``,!0)])])],64)):(d(),g(x,{key:1},[h(`div`,ke,[h(`label`,Ae,l(n.$t(`views.settings.mqtt_broker_address`)),1),v(K,null,{default:c(()=>[v(D,{"model-value":E(Q),readonly:``,class:`font-mono text-xs`},null,8,[`model-value`]),v(U,null,{default:c(()=>[v(H,{"action-text":n.$t(`components.form.tooltip.copied`),icon:E(i),"button-props":{severity:`secondary`,text:!0},onAction:r[7]||=e=>E(o)(E(Q))},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),v(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:c(()=>[y(l(n.$t(`views.settings.mqtt_broker_address_hint`)),1)]),_:1})]),h(`div`,je,[h(`div`,Me,[h(`label`,Ne,l(n.$t(`views.settings.mqtt_port_label`)),1),v(O,{modelValue:E(q).broker.port,"onUpdate:modelValue":r[8]||=e=>E(q).broker.port=e,min:1,max:65535,"use-grouping":!1,fluid:``},null,8,[`modelValue`])]),h(`div`,Pe,[h(`label`,Fe,l(n.$t(`views.settings.mqtt_username_label`)),1),v(D,{modelValue:E(q).broker.username,"onUpdate:modelValue":r[9]||=e=>E(q).broker.username=e,modelModifiers:{trim:!0},type:`text`,autocomplete:`off`,class:`w-full`},null,8,[`modelValue`])]),h(`div`,Ie,[h(`label`,Le,l(n.$t(`views.settings.mqtt_password_label`)),1),v(K,null,{default:c(()=>[v(V,{modelValue:E(q).broker.password,"onUpdate:modelValue":r[10]||=e=>E(q).broker.password=e,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`off`},null,8,[`modelValue`]),v(U,null,{default:c(()=>[v(H,{"action-text":n.$t(`components.form.tooltip.copied`),icon:E(i),"button-props":{severity:`secondary`,text:!0},onAction:r[11]||=e=>E(o)(E(q).broker.password??``)},null,8,[`action-text`,`icon`])]),_:1})]),_:1})])])],64)),h(`div`,B,[v(E(f),{modelValue:E(q).clientId,"onUpdate:modelValue":r[12]||=e=>E(q).clientId=e,modelModifiers:{trim:!0},name:`clientId`,as:`div`,class:`flex flex-col field-gap flex-1`},{default:c(({field:e,errors:t})=>[h(`label`,Re,l(n.$t(`views.settings.mqtt_client_id_label`)),1),v(D,u(e,{invalid:t.length>0,type:`text`}),null,16,[`invalid`]),v(m,{name:`fade`},{default:c(()=>[v(E(T),{name:`clientId`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),v(E(f),{modelValue:E(q).topicPrefix,"onUpdate:modelValue":r[13]||=e=>E(q).topicPrefix=e,modelModifiers:{trim:!0},name:`topicPrefix`,as:`div`,class:`flex flex-col field-gap flex-1`},{default:c(({field:e,errors:t})=>[h(`label`,ze,l(n.$t(`views.settings.mqtt_topic_prefix_label`)),1),v(D,u(e,{invalid:t.length>0,type:`text`}),null,16,[`invalid`]),v(m,{name:`fade`},{default:c(()=>[v(E(T),{name:`topicPrefix`,class:`cui-input-error`})]),_:1}),v(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:c(()=>[y(l(n.$t(`views.settings.mqtt_topic_prefix_info`)),1)]),_:1})]),_:1},8,[`modelValue`])]),E(q).mode===`external`&&E(q).protocol===`mqtts`?(d(),g(x,{key:2},[h(`div`,Be,[h(`div`,Ve,[h(`label`,He,l(n.$t(`views.settings.mqtt_tls_reject_unauthorized`)),1),v(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:c(()=>[y(l(n.$t(`views.settings.mqtt_tls_reject_unauthorized_info`)),1)]),_:1})]),v(S,{modelValue:E(q).tls.rejectUnauthorized,"onUpdate:modelValue":r[14]||=e=>E(q).tls.rejectUnauthorized=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),h(`div`,Ue,[h(`label`,We,l(n.$t(`views.settings.mqtt_tls_ca_label`)),1),v(Y,{modelValue:E(q).tls.ca,"onUpdate:modelValue":r[15]||=e=>E(q).tls.ca=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])]),h(`div`,Ge,[h(`label`,Ke,l(n.$t(`views.settings.mqtt_tls_cert_label`)),1),v(Y,{modelValue:E(q).tls.cert,"onUpdate:modelValue":r[16]||=e=>E(q).tls.cert=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])]),h(`div`,qe,[h(`label`,Je,l(n.$t(`views.settings.mqtt_tls_key_label`)),1),v(Y,{modelValue:E(q).tls.key,"onUpdate:modelValue":r[17]||=e=>E(q).tls.key=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])])],64)):C(``,!0),h(`div`,Ye,[h(`div`,Xe,[h(`label`,Ze,l(n.$t(`views.settings.mqtt_ha_discovery`)),1),v(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:c(()=>[y(l(n.$t(`views.settings.mqtt_ha_discovery_info`)),1)]),_:1})]),v(S,{modelValue:E(q).haDiscovery.enabled,"onUpdate:modelValue":r[18]||=e=>E(q).haDiscovery.enabled=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),E(q).haDiscovery.enabled?(d(),b(E(f),{key:3,modelValue:E(q).haDiscovery.prefix,"onUpdate:modelValue":r[19]||=e=>E(q).haDiscovery.prefix=e,modelModifiers:{trim:!0},name:`haDiscovery.prefix`,as:`div`,class:`flex flex-col field-gap`},{default:c(({field:e,errors:t})=>[h(`label`,Qe,l(n.$t(`views.settings.mqtt_ha_prefix_label`)),1),v(D,u(e,{invalid:t.length>0,type:`text`,placeholder:`homeassistant`}),null,16,[`invalid`]),v(m,{name:`fade`},{default:c(()=>[v(E(T),{name:`haDiscovery.prefix`,class:`cui-input-error`})]),_:1}),v(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:c(()=>[y(l(n.$t(`views.settings.mqtt_ha_prefix_info`)),1)]),_:1})]),_:1},8,[`modelValue`])):C(``,!0),h(`div`,$e,[v(Z,{type:`button`,severity:`secondary`,loading:E(G).isPending.value,disabled:E(q).mode===`external`&&!E(q).host,class:`cui-button-medium`,label:n.$t(`views.settings.mqtt_test`),onClick:ot},null,8,[`loading`,`disabled`,`label`]),v(Z,{type:`submit`,loading:E(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`])])):(d(),g(`div`,A,[v(a,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]))])}}});export{V as default};
|
|
1
|
+
import{Bt as e,It as t,L as ee,Vr as n,q as te}from"./vendor-cameraui-zaB6gIk1.js";import{Ct as ne,Ir as r,St as i,Tr as a,i as o,o as s}from"./api-0KzHya6g.js";import{$n as c,C as re,Cr as l,Dn as u,In as d,S as f,Xn as p,Xt as m,cn as h,dn as g,dr as _,gn as v,hn as y,ln as b,or as ie,rn as x,sn as S,un as C,vn as w,x as T,yr as E}from"./vendor-CP-WYrgy.js";import{Y as D}from"./types-BZz-3rol.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-5HrOunkM.js";import{t as O}from"./mqtt-DEt78fr7.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`},Ie={class:`flex flex-col field-gap flex-1 min-w-0`},Le={for:`brokerPassword`,class:`cui-label`},B={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=w({__name:`SettingsMqtt`,setup(w){let D=new O,V=r(),{t:H}=n(),{data:U}=D.getMqttInfoQuery(),W=D.patchMqttInfoMutation(),G=D.testMqttConnectionMutation(),K=a(`/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=_(null),J=_(``),Y=_(null),X=S(()=>U.value?.passwordSet??!1),Z=S(()=>Y.value??U.value?.status??null),nt=S(()=>{switch(Z.value?.state){case`connected`:return`success`;case`connecting`:case`reconnecting`:return`warn`;case`error`:return`danger`;default:return`secondary`}}),rt=S(()=>{let e=Z.value?.state??`disabled`;return H(`views.settings.mqtt_state_${e}`)}),it=S(()=>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=S(()=>`mqtt://${window.location.hostname}:${q.value?.broker.port??1883}`);function $(){let e=s(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 p(U,e=>{e&&!q.value&&(q.value=s(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 a=t,s=pe,p=le,_=te,S=ae,w=de,D=ee,O=ce,V=fe,H=ne,U=oe,K=se,Y=ue,Z=e;return d(),g(`div`,k,[E(q)?(d(),g(`div`,j,[h(`div`,null,[h(`span`,M,l(n.$t(`views.settings.status`)),1),v(_,{class:`cui-card`},{content:c(()=>[h(`div`,N,[h(`div`,P,[h(`span`,F,l(n.$t(`views.settings.mqtt_broker`)),1),v(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:c(()=>[y(l(E(it)),1)]),_:1})]),v(p,{class:`ml-auto shrink-0`,severity:E(nt),value:E(rt)},null,8,[`severity`,`value`])])]),_:1})]),v(E(re),{class:`flex flex-col w-full gap-6`,"validation-schema":E(me),onSubmit:at},{default:c(()=>[h(`div`,null,[h(`span`,I,l(n.$t(`views.settings.mqtt_broker`)),1),v(_,{class:`cui-card`},{content:c(()=>[h(`div`,L,[h(`div`,R,[h(`div`,z,[h(`label`,he,l(n.$t(`components.form.label.enabled`)),1),v(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:c(()=>[y(l(n.$t(`views.settings.mqtt_enabled_info`)),1)]),_:1})]),v(S,{modelValue:E(q).enabled,"onUpdate:modelValue":r[0]||=e=>E(q).enabled=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),h(`div`,ge,[h(`label`,_e,l(n.$t(`views.settings.mqtt_mode_label`)),1),v(w,{modelValue:E(q).mode,"onUpdate:modelValue":r[1]||=e=>E(q).mode=e,options:tt,"option-label":`label`,"option-value":`value`},null,8,[`modelValue`]),E(q).mode===`embedded`?(d(),b(s,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:c(()=>[y(l(n.$t(`views.settings.mqtt_mode_embedded_info`)),1)]),_:1})):C(``,!0)]),E(q).mode===`external`?(d(),g(x,{key:0},[h(`div`,ve,[v(E(f),{modelValue:E(q).host,"onUpdate:modelValue":r[2]||=e=>E(q).host=e,modelModifiers:{trim:!0},name:`host`,as:`div`,class:`flex flex-col field-gap flex-1 min-w-0`},{default:c(({field:e,errors:t})=>[h(`label`,ye,l(n.$t(`views.settings.mqtt_host_label`)),1),v(D,u(e,{invalid:t.length>0,type:`text`,placeholder:`192.168.1.10`,class:`w-full`}),null,16,[`invalid`]),v(m,{name:`fade`},{default:c(()=>[v(E(T),{name:`host`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),h(`div`,be,[h(`label`,xe,l(n.$t(`views.settings.mqtt_port_label`)),1),v(O,{modelValue:E(q).port,"onUpdate:modelValue":r[3]||=e=>E(q).port=e,min:1,max:65535,"use-grouping":!1,fluid:``},null,8,[`modelValue`])])]),h(`div`,Se,[h(`label`,Ce,l(n.$t(`views.settings.mqtt_protocol_label`)),1),v(w,{modelValue:E(q).protocol,"onUpdate:modelValue":r[4]||=e=>E(q).protocol=e,options:et,"option-label":`label`,"option-value":`value`},null,8,[`modelValue`])]),h(`div`,we,[h(`div`,Te,[h(`label`,Ee,l(n.$t(`views.settings.mqtt_username_label`)),1),v(D,{modelValue:E(q).username,"onUpdate:modelValue":r[5]||=e=>E(q).username=e,modelModifiers:{trim:!0},type:`text`,autocomplete:`off`,class:`w-full`},null,8,[`modelValue`])]),h(`div`,De,[h(`label`,Oe,l(n.$t(`views.settings.mqtt_password_label`)),1),v(V,{modelValue:E(J),"onUpdate:modelValue":r[6]||=e=>ie(J)?J.value=e:null,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`new-password`,placeholder:E(X)?`••••••••`:``},null,8,[`modelValue`,`placeholder`]),E(X)?(d(),b(s,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:c(()=>[y(l(n.$t(`views.settings.mqtt_password_keep_hint`)),1)]),_:1})):C(``,!0)])])],64)):(d(),g(x,{key:1},[h(`div`,ke,[h(`label`,Ae,l(n.$t(`views.settings.mqtt_broker_address`)),1),v(K,null,{default:c(()=>[v(D,{"model-value":E(Q),readonly:``,class:`font-mono text-xs`},null,8,[`model-value`]),v(U,null,{default:c(()=>[v(H,{"action-text":n.$t(`components.form.tooltip.copied`),icon:E(i),"button-props":{severity:`secondary`,text:!0},onAction:r[7]||=e=>E(o)(E(Q))},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),v(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:c(()=>[y(l(n.$t(`views.settings.mqtt_broker_address_hint`)),1)]),_:1})]),h(`div`,je,[h(`div`,Me,[h(`label`,Ne,l(n.$t(`views.settings.mqtt_port_label`)),1),v(O,{modelValue:E(q).broker.port,"onUpdate:modelValue":r[8]||=e=>E(q).broker.port=e,min:1,max:65535,"use-grouping":!1,fluid:``},null,8,[`modelValue`])]),h(`div`,Pe,[h(`label`,Fe,l(n.$t(`views.settings.mqtt_username_label`)),1),v(D,{modelValue:E(q).broker.username,"onUpdate:modelValue":r[9]||=e=>E(q).broker.username=e,modelModifiers:{trim:!0},type:`text`,autocomplete:`off`,class:`w-full`},null,8,[`modelValue`])]),h(`div`,Ie,[h(`label`,Le,l(n.$t(`views.settings.mqtt_password_label`)),1),v(K,null,{default:c(()=>[v(V,{modelValue:E(q).broker.password,"onUpdate:modelValue":r[10]||=e=>E(q).broker.password=e,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`off`},null,8,[`modelValue`]),v(U,null,{default:c(()=>[v(H,{"action-text":n.$t(`components.form.tooltip.copied`),icon:E(i),"button-props":{severity:`secondary`,text:!0},onAction:r[11]||=e=>E(o)(E(q).broker.password??``)},null,8,[`action-text`,`icon`])]),_:1})]),_:1})])])],64)),h(`div`,B,[v(E(f),{modelValue:E(q).clientId,"onUpdate:modelValue":r[12]||=e=>E(q).clientId=e,modelModifiers:{trim:!0},name:`clientId`,as:`div`,class:`flex flex-col field-gap flex-1`},{default:c(({field:e,errors:t})=>[h(`label`,Re,l(n.$t(`views.settings.mqtt_client_id_label`)),1),v(D,u(e,{invalid:t.length>0,type:`text`}),null,16,[`invalid`]),v(m,{name:`fade`},{default:c(()=>[v(E(T),{name:`clientId`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),v(E(f),{modelValue:E(q).topicPrefix,"onUpdate:modelValue":r[13]||=e=>E(q).topicPrefix=e,modelModifiers:{trim:!0},name:`topicPrefix`,as:`div`,class:`flex flex-col field-gap flex-1`},{default:c(({field:e,errors:t})=>[h(`label`,ze,l(n.$t(`views.settings.mqtt_topic_prefix_label`)),1),v(D,u(e,{invalid:t.length>0,type:`text`}),null,16,[`invalid`]),v(m,{name:`fade`},{default:c(()=>[v(E(T),{name:`topicPrefix`,class:`cui-input-error`})]),_:1}),v(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:c(()=>[y(l(n.$t(`views.settings.mqtt_topic_prefix_info`)),1)]),_:1})]),_:1},8,[`modelValue`])]),E(q).mode===`external`&&E(q).protocol===`mqtts`?(d(),g(x,{key:2},[h(`div`,Be,[h(`div`,Ve,[h(`label`,He,l(n.$t(`views.settings.mqtt_tls_reject_unauthorized`)),1),v(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:c(()=>[y(l(n.$t(`views.settings.mqtt_tls_reject_unauthorized_info`)),1)]),_:1})]),v(S,{modelValue:E(q).tls.rejectUnauthorized,"onUpdate:modelValue":r[14]||=e=>E(q).tls.rejectUnauthorized=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),h(`div`,Ue,[h(`label`,We,l(n.$t(`views.settings.mqtt_tls_ca_label`)),1),v(Y,{modelValue:E(q).tls.ca,"onUpdate:modelValue":r[15]||=e=>E(q).tls.ca=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])]),h(`div`,Ge,[h(`label`,Ke,l(n.$t(`views.settings.mqtt_tls_cert_label`)),1),v(Y,{modelValue:E(q).tls.cert,"onUpdate:modelValue":r[16]||=e=>E(q).tls.cert=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])]),h(`div`,qe,[h(`label`,Je,l(n.$t(`views.settings.mqtt_tls_key_label`)),1),v(Y,{modelValue:E(q).tls.key,"onUpdate:modelValue":r[17]||=e=>E(q).tls.key=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])])],64)):C(``,!0),h(`div`,Ye,[h(`div`,Xe,[h(`label`,Ze,l(n.$t(`views.settings.mqtt_ha_discovery`)),1),v(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:c(()=>[y(l(n.$t(`views.settings.mqtt_ha_discovery_info`)),1)]),_:1})]),v(S,{modelValue:E(q).haDiscovery.enabled,"onUpdate:modelValue":r[18]||=e=>E(q).haDiscovery.enabled=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),E(q).haDiscovery.enabled?(d(),b(E(f),{key:3,modelValue:E(q).haDiscovery.prefix,"onUpdate:modelValue":r[19]||=e=>E(q).haDiscovery.prefix=e,modelModifiers:{trim:!0},name:`haDiscovery.prefix`,as:`div`,class:`flex flex-col field-gap`},{default:c(({field:e,errors:t})=>[h(`label`,Qe,l(n.$t(`views.settings.mqtt_ha_prefix_label`)),1),v(D,u(e,{invalid:t.length>0,type:`text`,placeholder:`homeassistant`}),null,16,[`invalid`]),v(m,{name:`fade`},{default:c(()=>[v(E(T),{name:`haDiscovery.prefix`,class:`cui-input-error`})]),_:1}),v(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:c(()=>[y(l(n.$t(`views.settings.mqtt_ha_prefix_info`)),1)]),_:1})]),_:1},8,[`modelValue`])):C(``,!0),h(`div`,$e,[v(Z,{type:`button`,severity:`secondary`,loading:E(G).isPending.value,disabled:E(q).mode===`external`&&!E(q).host,class:`cui-button-medium`,label:n.$t(`views.settings.mqtt_test`),onClick:ot},null,8,[`loading`,`disabled`,`label`]),v(Z,{type:`submit`,loading:E(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`])])):(d(),g(`div`,A,[v(a,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]))])}}});export{V as default};
|