@camera.ui/server 2.2.5-beta.2 → 2.2.5-beta.4
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-BDvtK1qR.js → 404-YZOLos9r.js} +1 -1
- package/dist/interface/assets/{About-B4A35rRx.js → About-HtxMc8JZ.js} +1 -1
- package/dist/interface/assets/Assistant-bB8RBo-m.js +1 -0
- package/dist/interface/assets/Automation-D3DcUyui.js +3 -0
- package/dist/interface/assets/{AutomationImport-CEJdhE_d.js → AutomationImport-Dp_hT6hQ.js} +2 -2
- package/dist/interface/assets/AutomationStore-BKR7GXMk.js +2 -0
- package/dist/interface/assets/{AutomationStoreDetail-BenRMMtV.js → AutomationStoreDetail-B9yh51WQ.js} +2 -2
- package/dist/interface/assets/Automations-BdZZW2eN.js +2 -0
- package/dist/interface/assets/Camera-Ct7ndOxr.js +2 -0
- package/dist/interface/assets/{CameraConsole-D24yXOQn.js → CameraConsole-BI93OaRt.js} +2 -2
- package/dist/interface/assets/Cameras-Ctub8sVt.js +651 -0
- package/dist/interface/assets/Camview-BjQdTHNh.js +1 -0
- package/dist/interface/assets/{CertificateUpload-26LAL4MY.js → CertificateUpload-xW55NA1Q.js} +1 -1
- package/dist/interface/assets/Config-CBTbYd5v.js +2 -0
- package/dist/interface/assets/{ConfigActionAssistant-Cl_kr3hp.js → ConfigActionAssistant-B488rOp5.js} +1 -1
- package/dist/interface/assets/{ConfigActionCameraControl-CL4vXcNe.js → ConfigActionCameraControl-ZMUuBxOs.js} +1 -1
- package/dist/interface/assets/{ConfigActionDelay-DtPgmqWh.js → ConfigActionDelay-BJ11xvOW.js} +1 -1
- package/dist/interface/assets/{ConfigActionHttp-DnkZTP5l.js → ConfigActionHttp-DOUo69OR.js} +1 -1
- package/dist/interface/assets/{ConfigActionImageInput-3svn6YP9.js → ConfigActionImageInput-BMzuVZW9.js} +1 -1
- package/dist/interface/assets/{ConfigActionMqtt-BTsFTLgm.js → ConfigActionMqtt-Co_uksca.js} +1 -1
- package/dist/interface/assets/{ConfigActionNotification-Cr4xJrZp.js → ConfigActionNotification-CcZkstYx.js} +1 -1
- package/dist/interface/assets/{ConfigActionNotificationControl-Cxkb_g8p.js → ConfigActionNotificationControl--VeucoTw.js} +1 -1
- package/dist/interface/assets/{ConfigActionOutput-WTr7FGf_.js → ConfigActionOutput-CyDa1LGA.js} +1 -1
- package/dist/interface/assets/{ConfigActionPlugin-BpcJepbD.js → ConfigActionPlugin-Kfg3ZEQF.js} +1 -1
- package/dist/interface/assets/{ConfigActionSensor-BgD_F-hD.js → ConfigActionSensor-DhAF0HPw.js} +1 -1
- package/dist/interface/assets/{ConfigActionSnapshot-DjR-Z08N.js → ConfigActionSnapshot-zMe3SPvW.js} +1 -1
- package/dist/interface/assets/{ConfigActionVariable-gPuPbjpm.js → ConfigActionVariable-BE5q3NwY.js} +1 -1
- package/dist/interface/assets/{ConfigConditionIfElse-CUHKJmPx.js → ConfigConditionIfElse-BNIRtSVD.js} +1 -1
- package/dist/interface/assets/{ConfigConditionSensorState-D-gPRqMu.js → ConfigConditionSensorState-DTNd-SzI.js} +1 -1
- package/dist/interface/assets/{ConfigConditionSwitch-BRf1T5tJ.js → ConfigConditionSwitch-BU5wWMU1.js} +1 -1
- package/dist/interface/assets/{ConfigConditionTime-BC0n6sWO.js → ConfigConditionTime-KXTCIVIV.js} +1 -1
- package/dist/interface/assets/{ConfigSensorValueInput-BUHapx4M.js → ConfigSensorValueInput-BC1FpMm-.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerDetection-Byd6SLGg.js → ConfigTriggerDetection-hIN1hi53.js} +1 -1
- package/dist/interface/assets/ConfigTriggerGeofence-Bl2ZacbY.js +1 -0
- package/dist/interface/assets/{ConfigTriggerManual-B2dWcFrl.js → ConfigTriggerManual-C5vwxS-e.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerMqtt-B_aUDBu4.js → ConfigTriggerMqtt-B4PtWC3E.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSchedule-DAZo1PLj.js → ConfigTriggerSchedule-BZzUdGBa.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSensor-BCqAiPu4.js → ConfigTriggerSensor-D18nwMsj.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSystem-DuBydCiq.js → ConfigTriggerSystem-BhygWLB4.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerWebhook-DDsnpwJr.js → ConfigTriggerWebhook-yyuBuhLD.js} +1 -1
- package/dist/interface/assets/Console-Cfk9MA9m.js +1 -0
- package/dist/interface/assets/CuiAssistantConversation-BHK_i56I.js +5 -0
- package/dist/interface/assets/CuiAssistantConversation-lkpZg3ML.css +1 -0
- package/dist/interface/assets/{CuiAutomationRunsDialog-C_sMg7E1.js → CuiAutomationRunsDialog-B0ohEHw0.js} +1 -1
- package/dist/interface/assets/{CuiBottomSheet-D_0LrjA_.js → CuiBottomSheet-DWefGWK2.js} +1 -1
- package/dist/interface/assets/CuiBottomSheet-NgX7VFao.js +1 -0
- package/dist/interface/assets/CuiCameraPipCard-C2qaGJlH.js +1 -0
- package/dist/interface/assets/CuiCameraRecordings-BTD-CQAg.js +1 -0
- package/dist/interface/assets/{CuiCameraShares-BIUB1xMa.js → CuiCameraShares-DcqOcePX.js} +1 -1
- package/dist/interface/assets/{CuiCameraTable-D-UhqHk4.js → CuiCameraTable-BOkfp_5M.js} +2 -2
- package/dist/interface/assets/CuiCameraTable-KPk46Xcl.js +1 -0
- package/dist/interface/assets/{CuiChartTable-CSK4Mzn3.js → CuiChartTable-DP38uBwK.js} +1 -1
- package/dist/interface/assets/{CuiConsole-DAbJXJBq.js → CuiConsole-C7xE_nQg.js} +2 -2
- package/dist/interface/assets/{CuiDataTable-DgcJsG-K.js → CuiDataTable-CsqH-RB1.js} +1 -1
- package/dist/interface/assets/CuiLightControl-ChGYpQAK.js +1 -0
- package/dist/interface/assets/{CuiLightControl-DFrZm_sv.css → CuiLightControl-D9sm8NZb.css} +1 -1
- package/dist/interface/assets/{CuiList-HdsA9vV1.js → CuiList-DJp0__mV.js} +1 -1
- package/dist/interface/assets/CuiPluginCard-CWImTZ6l.js +2 -0
- package/dist/interface/assets/{CuiPluginCategoryChip-C7R1jP7r.js → CuiPluginCategoryChip-Ch_upS6Y.js} +1 -1
- package/dist/interface/assets/{CuiPluginOAuthButton-BJJw0IaC.js → CuiPluginOAuthButton-DEQ9xILN.js} +2 -2
- package/dist/interface/assets/{CuiPluginTrustBadge-Bmm1qYdC.js → CuiPluginTrustBadge-sVWdvHcM.js} +1 -1
- package/dist/interface/assets/{CuiQRCode-DTSEFMBt.js → CuiQRCode-DqSF4SkD.js} +1 -1
- package/dist/interface/assets/CuiSchema-ytExUVhI.js +1 -0
- package/dist/interface/assets/CuiTopNavbarItem-B_KWykgq.js +1 -0
- package/dist/interface/assets/Faces-Cb6XMxDC.js +1 -0
- package/dist/interface/assets/FirstSteps-QNYTkEJo.js +1 -0
- package/dist/interface/assets/Floorplan-DbqADtN1.js +1 -0
- package/dist/interface/assets/Instances-DrMzPD65.js +1 -0
- package/dist/interface/assets/{Logs-BjcfuMQV.js → Logs-BSPT80vP.js} +2 -2
- package/dist/interface/assets/{Menu-BjjnSgdP.js → Menu-HHtuhIS2.js} +1 -1
- package/dist/interface/assets/Metrics-CqhUnVRA.js +12 -0
- package/dist/interface/assets/{OAuthDeviceFlow-9v-Czy_u.js → OAuthDeviceFlow-Bn1nlWNa.js} +1 -1
- package/dist/interface/assets/Plugin-DyOg_fbg.js +1 -0
- package/dist/interface/assets/{PluginConsole-C7sO42RG.js → PluginConsole-Cv-uhnPY.js} +2 -2
- package/dist/interface/assets/PluginDetail-cpOz7FkA.js +2 -0
- package/dist/interface/assets/{PluginSchema-D0eL9H-b.js → PluginSchema-DW3TGeTM.js} +1 -1
- package/dist/interface/assets/PluginSearch-BgecD9Ob.js +2 -0
- package/dist/interface/assets/PluginSearch-C8xHKikH.js +1 -0
- package/dist/interface/assets/{PluginUpdateProgress--MM9D8hs.js → PluginUpdateProgress-n6q6vzyd.js} +1 -1
- package/dist/interface/assets/Plugins-CuujWEtM.js +1 -0
- package/dist/interface/assets/{RecentEventsFilter-CvIJS8Se.js → RecentEventsFilter-CTR5JK_P.js} +1 -1
- package/dist/interface/assets/Recordings-ths9khZr.js +1 -0
- package/dist/interface/assets/SensorEdit-BzoIH7QC.js +1 -0
- package/dist/interface/assets/{SensorHistory-Efw0bZ-X.js → SensorHistory-9CdOpCPs.js} +1 -1
- package/dist/interface/assets/Sensors-CK5uExfU.js +2 -0
- package/dist/interface/assets/Settings-DN5hFtw_.js +1 -0
- package/dist/interface/assets/SettingsAccount-BCrmon5O.js +1 -0
- package/dist/interface/assets/SettingsAccount-CSy1BAIH.js +1 -0
- package/dist/interface/assets/{SettingsAccount-si-6gWl5.css → SettingsAccount-CY8YE_cy.css} +1 -1
- package/dist/interface/assets/SettingsAppearance-BY1xQMx4.js +1 -0
- package/dist/interface/assets/SettingsAppearance-h_XPZfQl.js +1 -0
- package/dist/interface/assets/SettingsAssistant-D8FmVbUL.js +1 -0
- package/dist/interface/assets/{SettingsBackup-BqKBKis5.js → SettingsBackup-D_weokqu.js} +1 -1
- package/dist/interface/assets/{SettingsList-BU191rmt.js → SettingsList-Bq24WTDU.js} +1 -1
- package/dist/interface/assets/SettingsMqtt-DCkLIYpF.js +1 -0
- package/dist/interface/assets/SettingsNotifications-8TZOUxg2.js +1 -0
- package/dist/interface/assets/{SettingsPermissions-sI64FPZG.js → SettingsPermissions-M8u_jrN0.js} +1 -1
- package/dist/interface/assets/{SettingsRecordings-CghrKErw.js → SettingsRecordings-C1Kp5xW_.js} +1 -1
- package/dist/interface/assets/SettingsRemote-DXlQKwlT.js +2 -0
- package/dist/interface/assets/{SettingsSystem-DP1p1Xns.js → SettingsSystem-Cetu2faJ.js} +2 -2
- package/dist/interface/assets/{SettingsUsers-Dpej-he1.js → SettingsUsers-CDwtQLdV.js} +1 -1
- package/dist/interface/assets/{Terminal-DPRPXCSt.js → Terminal-Dl-aAZME.js} +2 -2
- package/dist/interface/assets/{Training-Dwf5rXyC.css → Training-B1oQjAr8.css} +1 -1
- package/dist/interface/assets/Training-DdZjXgt1.js +1 -0
- package/dist/interface/assets/{Updates-QTvCp1aS.js → Updates-CkB1lXuo.js} +1 -1
- package/dist/interface/assets/{VariableInput-DhusSZPw.js → VariableInput-BxPj5wo6.js} +1 -1
- package/dist/interface/assets/{VariableSuggestions-Bkzz4Mv3.js → VariableSuggestions-CbizvAkz.js} +1 -1
- package/dist/interface/assets/{VersionsHandler-DjNSpSYy.js → VersionsHandler-CePyEUVO.js} +2 -2
- package/dist/interface/assets/{VirtualSensorCreate-soGT6h2c.js → VirtualSensorCreate-D_GVoeL7.js} +1 -1
- package/dist/interface/assets/Workers-7yiebNkl.js +2 -0
- package/dist/interface/assets/api-DK2Bav9D.js +4 -0
- package/dist/interface/assets/api-DTCqDA-h.css +2 -0
- package/dist/interface/assets/{api-CK2tonlH.js → api-DW2niHRN.js} +1 -1
- package/dist/interface/assets/{assistant-BEe1ExZL.js → assistant-BJ6xKcw_.js} +1 -1
- package/dist/interface/assets/{auth-QEpUGkWd.js → auth-Dc8bUpc-.js} +1 -1
- package/dist/interface/assets/{automations-BBIBV4Uu.js → automations-DXrjbArj.js} +1 -1
- package/dist/interface/assets/{cameraSources-Cm18cW9L.js → cameraSources-QJfUDOQJ.js} +1 -1
- package/dist/interface/assets/cloudHandoff-DtlquYGZ.js +1 -0
- package/dist/interface/assets/{config-vwkU8aqP.js → config-CiQDwB4t.js} +1 -1
- package/dist/interface/assets/{flowSchema-rzBroL0H.js → flowSchema-BRTZHQ1w.js} +1 -1
- package/dist/interface/assets/{intercomService-Du8V_HxF.js → intercomService-BnA-FQ0Q.js} +1 -1
- package/dist/interface/assets/{main-XHFrBKKz.css → main-BoGhBedC.css} +1 -1
- package/dist/interface/assets/main-D74mRIxc.js +3 -0
- package/dist/interface/assets/mqtt-iD9XHYO_.js +1 -0
- package/dist/interface/assets/{notifications-CN6eTJb_.js → notifications-CbAJX7RF.js} +1 -1
- package/dist/interface/assets/{plugins-DKtX7zQp.js → plugins-eIUrXNeM.js} +1 -1
- package/dist/interface/assets/rooms-BqPyo8jc.js +1 -0
- package/dist/interface/assets/{sensorIcons-ztqlMLDc.js → sensorIcons-DQVgryYP.js} +1 -1
- package/dist/interface/assets/{sensorSlots-D-uxjuv3.js → sensorSlots-BZCXtnb6.js} +1 -1
- package/dist/interface/assets/{sensors-DV2Z0IJt.js → sensors-DttBNEEt.js} +1 -1
- package/dist/interface/assets/{server-CfZnIVzn.js → server-DUFhf2c_.js} +1 -1
- package/dist/interface/assets/{theme-Bi7qdjBK.js → theme-BMmjtQ4w.js} +1 -1
- package/dist/interface/assets/{types-CNLAvgyw.js → types-5rE8Tz0_.js} +1 -1
- package/dist/interface/assets/{types-DwbeYXvn.js → types-CXw7CEzu.js} +1 -1
- package/dist/interface/assets/{types-DuwD8xp5.js → types-DWTSNJ79.js} +1 -1
- package/dist/interface/assets/ungrouped-D56FGIrg.js +1 -0
- package/dist/interface/assets/ungrouped-DHMJ9Rg1.css +1 -0
- package/dist/interface/assets/{updates-BqCH6Vr8.js → updates-TIPWXKzL.js} +1 -1
- package/dist/interface/assets/{useAppVersion-B-rmq3Bb.js → useAppVersion-BIz44Bg4.js} +1 -1
- package/dist/interface/assets/{useAssistantActions-Kf-5ijVf.js → useAssistantActions-CLkkw9kB.js} +1 -1
- package/dist/interface/assets/useBackupRestore-Crfd592q.js +1 -0
- package/dist/interface/assets/{useCameraOptions-Dt2J8sP_.js → useCameraOptions-A97teAIr.js} +1 -1
- package/dist/interface/assets/{useKeyboardInset-DtD3I2WC.js → useKeyboardInset-DXVi1dLG.js} +1 -1
- package/dist/interface/assets/{useLogsSocket-CEhUQdiY.js → useLogsSocket-BlFxVXjF.js} +1 -1
- package/dist/interface/assets/{useNavLayout-CtpYjS5W.js → useNavLayout-C5obaCNv.js} +1 -1
- package/dist/interface/assets/{usePermissions-CJzuagwD.js → usePermissions-C8hB_pG1.js} +1 -1
- package/dist/interface/assets/{usePluginUpdates-BwoWN5yb.js → usePluginUpdates-DO0-Gk4Q.js} +1 -1
- package/dist/interface/assets/{usePushRegistration-ANx4BS6_.js → usePushRegistration-BUttCraQ.js} +1 -1
- package/dist/interface/assets/{useServerRestart-7edyD8M0.js → useServerRestart-Cz9eVHUE.js} +1 -1
- package/dist/interface/assets/{useStreamStatus-DCSWHdbW.js → useStreamStatus-BhS_MCCB.js} +1 -1
- package/dist/interface/assets/{useTabSwipe-DfS3R3uP.js → useTabSwipe-D4k8lm1M.js} +1 -1
- package/dist/interface/assets/{useUpdateChannel-Cr9mSIRC.js → useUpdateChannel-D9lhfW0y.js} +1 -1
- package/dist/interface/assets/{useUpdatesSocket-B5Rm9syb.js → useUpdatesSocket-DnH9sON5.js} +1 -1
- package/dist/interface/assets/{useUserOptions-CJjImz8V.js → useUserOptions-BTRBUuE2.js} +1 -1
- package/dist/interface/assets/{vendor-cameraui-BbGOMenD.js → vendor-cameraui-QXD8jkcj.js} +26 -26
- package/dist/interface/assets/{vendor-core-tgH2YubJ.js → vendor-core-CnhnyKDl.js} +1 -1
- package/dist/interface/assets/{vendor-primevue-DNJJiEZl.js → vendor-primevue-CCUqY55W.js} +207 -207
- package/dist/interface/ha/{404-Dl6JtQWv.js → 404-DLhJqxRl.js} +1 -1
- package/dist/interface/ha/{About-wjv4kCO3.js → About-DC0i1iE4.js} +3 -3
- package/dist/interface/ha/{Assistant-Dpb4IsDC.js → Assistant-BmazMPIg.js} +821 -825
- package/dist/interface/ha/{Automation-CqTPjCUh.js → Automation-gabF9YzQ.js} +336 -336
- package/dist/interface/ha/{AutomationImport-CvdeneoU.js → AutomationImport-DaqZNs9s.js} +8 -8
- package/dist/interface/ha/{AutomationStore-bVPE68io.js → AutomationStore-DzM4huo5.js} +54 -54
- package/dist/interface/ha/{AutomationStoreDetail-BYaNUjoH.js → AutomationStoreDetail-CpzQMt_D.js} +7 -7
- package/dist/interface/ha/{Automations-BfsYh2A_.js → Automations-Dcm4Us50.js} +81 -81
- package/dist/interface/ha/{Camera-C70onr_O.js → Camera-CNK3QR7l.js} +198 -198
- package/dist/interface/ha/{CameraConsole-Dg3lV-wq.js → CameraConsole-CpcF0411.js} +5 -5
- package/dist/interface/ha/{Cameras-DpM6gt3G.js → Cameras-Cf9rwRyf.js} +293 -294
- package/dist/interface/ha/{Camview-CO_bHntH.js → Camview-BFKR2t6C.js} +87 -87
- package/dist/interface/ha/{Config-D-cpocuH.js → Config-1XH3zfr2.js} +11 -11
- package/dist/interface/ha/{ConfigActionAssistant-DVVVfVvT.js → ConfigActionAssistant-C0-NFoTB.js} +5 -5
- package/dist/interface/ha/{ConfigActionCameraControl-BPpzE9-F.js → ConfigActionCameraControl-DNSKZPSZ.js} +5 -5
- package/dist/interface/ha/{ConfigActionDelay-zU6H75hY.js → ConfigActionDelay-iZ3lPGzw.js} +1 -1
- package/dist/interface/ha/{ConfigActionHttp-BsNy03j4.js → ConfigActionHttp-DVJAcGkl.js} +3 -3
- package/dist/interface/ha/{ConfigActionImageInput-JUvNYn0w.js → ConfigActionImageInput-VVbHHHZs.js} +3 -3
- package/dist/interface/ha/{ConfigActionMqtt-PZqAKfTo.js → ConfigActionMqtt-N5OUJDzM.js} +4 -4
- package/dist/interface/ha/{ConfigActionNotification-DIL7abEm.js → ConfigActionNotification-s142tQoU.js} +6 -6
- package/dist/interface/ha/{ConfigActionNotificationControl-BQ2w5yeg.js → ConfigActionNotificationControl-Dh7kaKVP.js} +3 -3
- package/dist/interface/ha/{ConfigActionOutput-DVilKhPV.js → ConfigActionOutput-B4HHTg5C.js} +1 -1
- package/dist/interface/ha/{ConfigActionPlugin-BUfTEJQ_.js → ConfigActionPlugin-D20G2Dqf.js} +5 -5
- package/dist/interface/ha/{ConfigActionSensor-Dzp16VyX.js → ConfigActionSensor-BS3jrFaG.js} +6 -6
- package/dist/interface/ha/{ConfigActionSnapshot-CRjD5AMC.js → ConfigActionSnapshot-CInLAcwK.js} +3 -3
- package/dist/interface/ha/{ConfigActionVariable-CR8g7gEh.js → ConfigActionVariable-C5vADGNF.js} +2 -2
- package/dist/interface/ha/{ConfigConditionIfElse-CHoSgzXF.js → ConfigConditionIfElse-CPeWDD31.js} +4 -4
- package/dist/interface/ha/{ConfigConditionSensorState-Dn8_OhQe.js → ConfigConditionSensorState-BM5GmpN6.js} +6 -6
- package/dist/interface/ha/{ConfigConditionSwitch-Ds-nqWeU.js → ConfigConditionSwitch-Dmz9FduJ.js} +4 -4
- package/dist/interface/ha/{ConfigConditionTime-DWNfEluj.js → ConfigConditionTime-DF6llIJq.js} +2 -2
- package/dist/interface/ha/{ConfigSensorValueInput-DwXM9wP1.js → ConfigSensorValueInput-Ch5njvtv.js} +7 -7
- package/dist/interface/ha/{ConfigTriggerDetection-D37OkR_u.js → ConfigTriggerDetection-BR2QWNyO.js} +5 -5
- package/dist/interface/ha/{ConfigTriggerGeofence-EbXy_y3Q.js → ConfigTriggerGeofence-CaImOjyW.js} +9 -9
- package/dist/interface/ha/{ConfigTriggerMqtt-BX6uNEZy.js → ConfigTriggerMqtt-DWz1XwZQ.js} +2 -2
- package/dist/interface/ha/{ConfigTriggerSensor-BFGEtBVF.js → ConfigTriggerSensor-lfnhz0im.js} +3 -3
- package/dist/interface/ha/{ConfigTriggerSystem-fRnAgUGR.js → ConfigTriggerSystem-CwUhyFAj.js} +3 -3
- package/dist/interface/ha/{ConfigTriggerWebhook-DegifRdj.js → ConfigTriggerWebhook-J6Xts7GQ.js} +2 -2
- package/dist/interface/ha/{Console-Bo6S5psN.js → Console-BSdKFm6Y.js} +8 -8
- package/dist/interface/ha/{CuiAutomationRunsDialog-DXpNJqDE.js → CuiAutomationRunsDialog-BU8sympp.js} +3 -3
- package/dist/interface/ha/{CuiBottomSheet-DLkC2OmT.js → CuiBottomSheet-Bnp7ta7V.js} +1 -1
- package/dist/interface/ha/{CuiCameraRecordings-9tdkxXiT.js → CuiCameraRecordings-E-mMqKSs.js} +18 -19
- package/dist/interface/ha/{CuiCameraShares-BbqY_2b7.js → CuiCameraShares-DcNwd2OC.js} +8 -8
- package/dist/interface/ha/{CuiCameraTable-BmH1yAgl.js → CuiCameraTable-DNW9Vm_A.js} +6 -6
- package/dist/interface/ha/{CuiChartTable-BjBBI7Fo.js → CuiChartTable-muC7jL2H.js} +6 -6
- package/dist/interface/ha/{CuiConsole-By3m4UbE.js → CuiConsole-ND8bcuTg.js} +2 -2
- package/dist/interface/ha/{CuiDataTable-C_ndu5My.js → CuiDataTable-CN4T8DgP.js} +13 -13
- package/dist/interface/ha/{CuiPluginCard-BLQ1galy.js → CuiPluginCard-nIQiyQvH.js} +31 -31
- package/dist/interface/ha/{CuiPluginOAuthButton-BDghklSy.js → CuiPluginOAuthButton-FJ49NfUh.js} +3 -3
- package/dist/interface/ha/{CuiPluginTrustBadge-DolANNao.js → CuiPluginTrustBadge-D6eanMyI.js} +2 -2
- package/dist/interface/ha/{CuiQRCode-CcjPngXI.js → CuiQRCode-BdJzeeoE.js} +2 -2
- package/dist/interface/ha/{CuiSchema-D9JFf0dp.js → CuiSchema-DY0V-8xP.js} +67 -67
- package/dist/interface/ha/{CuiTopNavbarItem-DcUEq-4e.js → CuiTopNavbarItem-DT5pAKHp.js} +7 -8
- package/dist/interface/ha/{Faces-DjXHzr77.js → Faces-C_svyTrr.js} +92 -92
- package/dist/interface/ha/{FirstSteps-CQAP9Siw.js → FirstSteps-yS2M2cor.js} +9 -9
- package/dist/interface/ha/{Floorplan-DyaPzlQO.js → Floorplan-DSOeScjI.js} +194 -194
- package/dist/interface/ha/{Instances-DWjaU5gj.js → Instances-B4h5EKpF.js} +20 -20
- package/dist/interface/ha/{Logs-Dlx-X1NS.js → Logs-BH0Lxvs6.js} +12 -12
- package/dist/interface/ha/{Menu-iqEe01qO.js → Menu-COH7QXuE.js} +13 -13
- package/dist/interface/ha/{Metrics-Br2Dyvzh.js → Metrics-BtnRqL_I.js} +136 -136
- package/dist/interface/ha/{OAuthDeviceFlow-CIGk92FD.js → OAuthDeviceFlow-D2QJ9MnP.js} +8 -8
- package/dist/interface/ha/{Plugin-DklIr7j2.js → Plugin-EfUSqwyh.js} +85 -85
- package/dist/interface/ha/{PluginConsole-DCfxPtGU.js → PluginConsole-hh_o15f7.js} +4 -4
- package/dist/interface/ha/PluginDetail-DFiXGkrY.js +805 -0
- package/dist/interface/ha/{PluginSearch-BTKBnjxb.js → PluginSearch-Cdrfubrj.js} +54 -54
- package/dist/interface/ha/{PluginUpdateProgress-Dej5AcCt.js → PluginUpdateProgress-BD2g2kVj.js} +3 -3
- package/dist/interface/ha/{Plugins-C2fONspm.js → Plugins-qFiHW-Nk.js} +45 -45
- package/dist/interface/ha/{RecentEventsFilter-ylgjiDo8.js → RecentEventsFilter-UWrXnvfq.js} +1 -1
- package/dist/interface/ha/{Recordings-w39I43cc.js → Recordings-BzeC6tOz.js} +437 -419
- package/dist/interface/ha/{SensorEdit-BkKi1l-A.js → SensorEdit-BSgy7lkZ.js} +360 -360
- package/dist/interface/ha/{SensorHistory-BGJjMlc3.js → SensorHistory-IDvP8LKH.js} +2 -2
- package/dist/interface/ha/{Sensors-D_Wi9XPa.js → Sensors-Diqp4oZ0.js} +96 -97
- package/dist/interface/ha/{Settings-Bn7WLWf0.js → Settings-BgDsxAlx.js} +11 -11
- package/dist/interface/ha/{SettingsAccount-CRTex-1j.js → SettingsAccount-DBXMQPYk.js} +159 -159
- package/dist/interface/ha/{SettingsAppearance-B1qmJnYk.js → SettingsAppearance-VmbjnT3o.js} +6 -6
- package/dist/interface/ha/{SettingsAssistant-DDd1X0BC.js → SettingsAssistant-C2R4ZetE.js} +133 -133
- package/dist/interface/ha/{SettingsBackup-DZbhSB13.js → SettingsBackup-BqY9TwYn.js} +20 -20
- package/dist/interface/ha/{SettingsList-BQdyPe0H.js → SettingsList-CzHcfo2N.js} +4 -4
- package/dist/interface/ha/{SettingsMqtt-CSZcY6ht.js → SettingsMqtt-DqV3h3Ow.js} +149 -149
- package/dist/interface/ha/{SettingsNotifications-CfEhl0-y.js → SettingsNotifications-yn5fIR_7.js} +6 -6
- package/dist/interface/ha/{SettingsRecordings-BnAGDvcH.js → SettingsRecordings-DDs1lyfY.js} +8 -8
- package/dist/interface/ha/{SettingsRemote-w86TQVUA.js → SettingsRemote-jBw3l5E0.js} +172 -172
- package/dist/interface/ha/{SettingsSystem-CENjHL3k.js → SettingsSystem-BOv9hNlk.js} +9 -9
- package/dist/interface/ha/{SettingsUsers-CqSHRklV.js → SettingsUsers-Biv-2F4C.js} +90 -90
- package/dist/interface/ha/{Terminal-WsuxG3k-.js → Terminal-CmcrGEV0.js} +4 -4
- package/dist/interface/ha/Training-BEzPiXZg.js +1512 -0
- package/dist/interface/ha/{Updates-Dl_lLLR2.js → Updates-DJAcmDQJ.js} +12 -12
- package/dist/interface/ha/{VariableInput-C8Q81GUt.js → VariableInput-DlYg7t0m.js} +2 -2
- package/dist/interface/ha/{VersionsHandler-BOvjesvp.js → VersionsHandler-UnrAWn-b.js} +11 -11
- package/dist/interface/ha/{VirtualSensorCreate-sgwATaky.js → VirtualSensorCreate-CssxeaCC.js} +2 -2
- package/dist/interface/ha/{Workers-CkDuQ9NG.js → Workers-CLpqLugC.js} +14 -14
- package/dist/interface/ha/{accordion-Xem2SzgR.js → accordion-BylV-jUK.js} +2 -2
- package/dist/interface/ha/{api-BmYisoxj.js → api-BP7mlzjP.js} +11181 -11736
- package/dist/interface/ha/{api-oqpIZTkx.js → api-B_tDa73J.js} +1 -1
- package/dist/interface/ha/{assistant-0jE4C19U.js → assistant-Cb6ACguQ.js} +1 -1
- package/dist/interface/ha/{auth-B4Msg7R-.js → auth-DOYDRgFm.js} +1 -1
- package/dist/interface/ha/{autocomplete-B94Amei3.js → autocomplete-Cp3u2Ywa.js} +4 -4
- package/dist/interface/ha/{automationBlueprint-C-12Yjl7.js → automationBlueprint-CbbG_ku4.js} +1 -1
- package/dist/interface/ha/cameraui-cards.js +1 -1
- package/dist/interface/ha/{cards-BrOcoiQJ.js → cards-BpBP1zVW.js} +1206 -1198
- package/dist/interface/ha/{config-IG56wp6m.js → config-DroY1HBs.js} +1 -1
- package/dist/interface/ha/{datepicker-B4Azs5zr.js → datepicker-DXk97lTw.js} +4 -4
- package/dist/interface/ha/{mqtt-pl13wSmG.js → mqtt-NJTVdd53.js} +1 -1
- package/dist/interface/ha/{multiselect-Dp4XDBRR.js → multiselect-BOb4ScAZ.js} +4 -4
- package/dist/interface/ha/{notifications-B6wxSmou.js → notifications-BPTvvgvv.js} +1 -1
- package/dist/interface/ha/{plugins-BwwaWxye.js → plugins-B29K3nQP.js} +1 -1
- package/dist/interface/ha/{rooms-NIzjFYAd.js → rooms-DLw0WUy_.js} +1 -1
- package/dist/interface/ha/{select-UR3ZRDew.js → select-DV7p2EDj.js} +4 -4
- package/dist/interface/ha/{server-YOLwDVAW.js → server-B4b5_Ecu.js} +1 -1
- package/dist/interface/ha/{speeddial-LCbl5g8p.js → speeddial-B5p0fuqL.js} +1 -1
- package/dist/interface/ha/{tooltip-Z7VN-E1u.js → tooltip-BDrlgLof.js} +1 -1
- package/dist/interface/ha/{types-B8B9MqK0.js → types-DJHHL7nn.js} +1 -1
- package/dist/interface/ha/{ungrouped-DttNEB62.js → ungrouped-xyK1QrsM.js} +344 -376
- package/dist/interface/ha/{updates-DVhiQhMM.js → updates-XFSu9Tfm.js} +5 -5
- package/dist/interface/ha/{useAppVersion-CG4D44Aa.js → useAppVersion-BH3rU1zz.js} +1 -1
- package/dist/interface/ha/{useLogsSocket-PKsRDttg.js → useLogsSocket-CaTRzvgU.js} +1 -1
- package/dist/interface/ha/{useNavLayout-DoEcPx9Z.js → useNavLayout-DV0_OQx0.js} +1 -1
- package/dist/interface/ha/{useServerRestart-CMl589qX.js → useServerRestart-C8tynLUf.js} +1 -1
- package/dist/interface/ha/{useTabSwipe-Cmqdn0J5.js → useTabSwipe-CFoLDp3j.js} +1 -1
- package/dist/interface/ha/{useUpdateChannel-BBW2EX7N.js → useUpdateChannel-DSG2RTPe.js} +2 -2
- package/dist/interface/ha/{useUpdatesSocket-B6ICpKKC.js → useUpdatesSocket-CSQ0g7-6.js} +1 -1
- package/dist/interface/ha/{useUserOptions-CzclRfar.js → useUserOptions-CFaCy6L1.js} +1 -1
- package/dist/interface/ha/{virtualscroller-C5j7FXj4.js → virtualscroller-B-UQZDMJ.js} +88 -88
- package/dist/interface/index.html +34 -34
- package/dist/interface/sw.js +1 -1
- package/dist/server/package.json +22 -20
- package/dist/server/requirements.txt +1 -1
- package/dist/server/src/api/controllers/auth.controller.js +5 -6
- package/dist/server/src/api/controllers/auth.controller.js.map +1 -1
- package/dist/server/src/api/controllers/plugins.controller.js +5 -5
- package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
- package/dist/server/src/api/database/checks.js +20 -8
- package/dist/server/src/api/database/checks.js.map +1 -1
- package/dist/server/src/api/database/selfcheck.js +2 -2
- package/dist/server/src/api/database/selfcheck.js.map +1 -1
- package/dist/server/src/api/index.js +8 -6
- package/dist/server/src/api/index.js.map +1 -1
- package/dist/server/src/api/plugins/logger.plugin.js +11 -11
- package/dist/server/src/api/plugins/logger.plugin.js.map +1 -1
- package/dist/server/src/api/services/twoFactor.service.d.ts +4 -5
- package/dist/server/src/api/services/twoFactor.service.js +16 -17
- package/dist/server/src/api/services/twoFactor.service.js.map +1 -1
- package/dist/server/src/api/types/index.d.ts +0 -1
- package/dist/server/src/api/utils/cert.js +128 -135
- package/dist/server/src/api/utils/cert.js.map +1 -1
- package/dist/server/src/api/utils/form-body.d.ts +2 -0
- package/dist/server/src/api/utils/form-body.js +22 -0
- package/dist/server/src/api/utils/form-body.js.map +1 -0
- package/dist/server/src/api/utils/install-logger.js +12 -12
- package/dist/server/src/api/utils/install-logger.js.map +1 -1
- package/dist/server/src/api/websocket/nsp/logs.d.ts +7 -3
- package/dist/server/src/api/websocket/nsp/logs.js +79 -65
- package/dist/server/src/api/websocket/nsp/logs.js.map +1 -1
- package/dist/server/src/assistant/history.d.ts +2 -0
- package/dist/server/src/assistant/history.js +46 -0
- package/dist/server/src/assistant/history.js.map +1 -0
- package/dist/server/src/assistant/manager.js +2 -1
- package/dist/server/src/assistant/manager.js.map +1 -1
- package/dist/server/src/camera/controller.d.ts +1 -0
- package/dist/server/src/camera/controller.js +23 -18
- package/dist/server/src/camera/controller.js.map +1 -1
- package/dist/server/src/camera/decoder/worker.d.ts +3 -0
- package/dist/server/src/camera/decoder/worker.js +42 -5
- package/dist/server/src/camera/decoder/worker.js.map +1 -1
- package/dist/server/src/go2rtc/index.js +2 -2
- package/dist/server/src/go2rtc/index.js.map +1 -1
- package/dist/server/src/main.js +5 -5
- package/dist/server/src/main.js.map +1 -1
- package/dist/server/src/manager/discoveryManager.js +2 -2
- package/dist/server/src/manager/discoveryManager.js.map +1 -1
- package/dist/server/src/remote/services/cloudflare-managed.js +6 -3
- package/dist/server/src/remote/services/cloudflare-managed.js.map +1 -1
- package/dist/server/src/remote/services/cloudflare.d.ts +0 -1
- package/dist/server/src/remote/services/cloudflare.js +9 -20
- package/dist/server/src/remote/services/cloudflare.js.map +1 -1
- package/dist/server/src/remote/services/cloudflaredBinary.d.ts +3 -2
- package/dist/server/src/remote/services/cloudflaredBinary.js +9 -16
- package/dist/server/src/remote/services/cloudflaredBinary.js.map +1 -1
- package/dist/server/src/rpc/server.js +2 -2
- package/dist/server/src/rpc/server.js.map +1 -1
- package/dist/server/src/utils/automation-registry/index.js +3 -3
- package/dist/server/src/utils/automation-registry/index.js.map +1 -1
- package/dist/server/src/utils/colors.d.ts +2 -0
- package/dist/server/src/utils/colors.js +8 -0
- package/dist/server/src/utils/colors.js.map +1 -0
- package/dist/server/src/utils/npm/auth.d.ts +3 -2
- package/dist/server/src/utils/npm/auth.js +1 -1
- package/dist/server/src/utils/npm/auth.js.map +1 -1
- package/dist/server/src/utils/npm/index.d.ts +3 -15
- package/dist/server/src/utils/npm/index.js +26 -17
- package/dist/server/src/utils/npm/index.js.map +1 -1
- package/dist/server/src/utils/npm/registry.d.ts +69 -0
- package/dist/server/src/utils/npm/registry.js +240 -0
- package/dist/server/src/utils/npm/registry.js.map +1 -0
- package/dist/server/src/utils/plugin-registry/index.js +3 -3
- package/dist/server/src/utils/plugin-registry/index.js.map +1 -1
- package/dist/server/src/utils/process.d.ts +10 -0
- package/dist/server/src/utils/process.js +112 -0
- package/dist/server/src/utils/process.js.map +1 -0
- package/dist/server/src/utils/totp.d.ts +12 -0
- package/dist/server/src/utils/totp.js +71 -0
- package/dist/server/src/utils/totp.js.map +1 -0
- package/dist/server/src/utils/ttl-cache.d.ts +20 -0
- package/dist/server/src/utils/ttl-cache.js +63 -0
- package/dist/server/src/utils/ttl-cache.js.map +1 -0
- package/npm-shrinkwrap.json +6427 -0
- package/package.json +22 -20
- package/dist/interface/assets/Assistant-BKxssfw-.js +0 -1
- package/dist/interface/assets/Automation-CP59cgP7.js +0 -3
- package/dist/interface/assets/AutomationStore-BZGR_5Xl.js +0 -2
- package/dist/interface/assets/Automations-BpXorYAS.js +0 -2
- package/dist/interface/assets/Camera-UBUfaR5a.js +0 -2
- package/dist/interface/assets/Cameras-B21Y8MdQ.js +0 -651
- package/dist/interface/assets/Camview-BySyPtU5.js +0 -1
- package/dist/interface/assets/Config-BGyGmukb.js +0 -2
- package/dist/interface/assets/ConfigTriggerGeofence-CkzTFEZn.js +0 -1
- package/dist/interface/assets/Console-HXmKYaK_.js +0 -1
- package/dist/interface/assets/CuiAssistantConversation-2qrRCsgw.js +0 -5
- package/dist/interface/assets/CuiAssistantConversation-DmSdiv1b.css +0 -1
- package/dist/interface/assets/CuiBottomSheet-CTr-KHC8.js +0 -1
- package/dist/interface/assets/CuiCameraPipCard-BZCayhy_.js +0 -1
- package/dist/interface/assets/CuiCameraRecordings-BbaEL2ST.js +0 -1
- package/dist/interface/assets/CuiCameraTable-C5tQHs63.js +0 -1
- package/dist/interface/assets/CuiLightControl-v6k9hVGl.js +0 -1
- package/dist/interface/assets/CuiPluginCard-5MRYJcF2.js +0 -2
- package/dist/interface/assets/CuiSchema-BDXeXora.js +0 -1
- package/dist/interface/assets/CuiTopNavbarItem-BVknLbRO.js +0 -1
- package/dist/interface/assets/Faces-BEpYvbB0.js +0 -1
- package/dist/interface/assets/FirstSteps-U93RDOcP.js +0 -1
- package/dist/interface/assets/Floorplan-D8XoCNOB.js +0 -1
- package/dist/interface/assets/Instances-CFwZotvU.js +0 -1
- package/dist/interface/assets/Metrics-Ca_d5CbP.js +0 -12
- package/dist/interface/assets/Plugin-BjLw46Sw.js +0 -1
- package/dist/interface/assets/PluginDetail-BuLW4lkN.js +0 -2
- package/dist/interface/assets/PluginSearch--LLMEeyx.js +0 -2
- package/dist/interface/assets/PluginSearch-0akjE0ef.js +0 -1
- package/dist/interface/assets/Plugins-26O511gf.js +0 -1
- package/dist/interface/assets/Recordings-DQOGeSFm.js +0 -1
- package/dist/interface/assets/SensorEdit-DEW5D80x.js +0 -1
- package/dist/interface/assets/Sensors-C8yOyAwo.js +0 -2
- package/dist/interface/assets/Settings-B-RgMeVm.js +0 -1
- package/dist/interface/assets/SettingsAccount-B6aXFx3F.js +0 -1
- package/dist/interface/assets/SettingsAccount-_0ccrXYU.js +0 -1
- package/dist/interface/assets/SettingsAppearance-CkDwzx6f.js +0 -1
- package/dist/interface/assets/SettingsAppearance-DBFE3uVH.js +0 -1
- package/dist/interface/assets/SettingsAssistant-DN5OUJqt.js +0 -1
- package/dist/interface/assets/SettingsMqtt-hsKZkU-o.js +0 -1
- package/dist/interface/assets/SettingsNotifications-DIeiUEAk.js +0 -1
- package/dist/interface/assets/SettingsRemote-Doa0aBMC.js +0 -2
- package/dist/interface/assets/Training-DYlefOX1.js +0 -1
- package/dist/interface/assets/Workers-CUVvTuts.js +0 -2
- package/dist/interface/assets/api-B0wYDGQj.css +0 -2
- package/dist/interface/assets/api-BNrZVfeD.js +0 -4
- package/dist/interface/assets/cloudHandoff-Dnndt2el.js +0 -1
- package/dist/interface/assets/main-CRlC4FBY.js +0 -3
- package/dist/interface/assets/mqtt-BY6-Hrbv.js +0 -1
- package/dist/interface/assets/ring-resize-DyqCo2UN.js +0 -1
- package/dist/interface/assets/rooms-BHP4q6yf.js +0 -1
- package/dist/interface/assets/ungrouped-DBRZ-Ori.css +0 -1
- package/dist/interface/assets/ungrouped-DHLAmt__.js +0 -1
- package/dist/interface/assets/useBackupRestore-Dj-ZXODq.js +0 -1
- package/dist/interface/ha/PluginDetail-BFfRnkdG.js +0 -230
- package/dist/interface/ha/Training-hu_XOYBk.js +0 -1505
- package/dist/interface/ha/ring-resize-Dr2PxWIg.js +0 -16
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Bt as e,It as t,Kt as n,L as r,Vr as i,q as a}from"./vendor-cameraui-BbGOMenD.js";import{An as o,Dr as s,Ir as c,gt as ee,i as l,m as u,mn as d,o as f,st as p,z as m}from"./api-BNrZVfeD.js";import{$n as h,An as g,Bn as te,Cr as _,In as v,Jn 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-DGke_6M4.js";import{q as R}from"./types-CNLAvgyw.js";import{B as ne,G as re,H as ie,K as ae,L as oe,R as se,S as ce,V as le,W as ue,_ as de,a as fe,i as pe,j as me,l as he,s as ge,w as _e,z as ve}from"./vendor-primevue-DNJJiEZl.js";import{t as ye}from"./chevron-down-ZYTrU871.js";import{t as be}from"./assistant-BEe1ExZL.js";import{a as xe,d as Se,i as Ce,n as z,o as we,r as Te,s as Ee,t as De}from"./assistantModels-D0soYqq7.js";import{t as Oe}from"./pencil-outline-CD3Xv98d.js";import{t as ke}from"./content-copy-V0DW9ZbH.js";import{t as Ae}from"./plus--kDl8ben.js";import{t as je}from"./restore-FMacmqd_.js";import{t as Me}from"./CuiDataTable-DgcJsG-K.js";import{t as Ne}from"./pause-DKzvPG2b.js";import{t as Pe}from"./dots-vertical-pP1vP0Qa.js";var Fe={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function B(e,t){return v(),w(`svg`,Fe,[...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 Ie=P({name:`mdi-wrench-outline`,render:B}),V={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Le(e,t){return v(),w(`svg`,V,[...t[0]||=[C(`path`,{fill:`currentColor`,d:`M11 9.47V11h3.76L13 14.53V13H9.24zM13 1L6 15h5v8l7-14h-5z`},null,-1)]])}var Re=P({name:`mdi-lightning-bolt-outline`,render:Le}),ze={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function H(e,t){return v(),w(`svg`,ze,[...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 Be=P({name:`mdi-star-outline`,render:H}),U={class:`flex w-full flex-col gap-6`},Ve={class:`flex flex-col field-gap`},He={for:`assistantModelProvider`,class:`cui-label`},Ue={key:0,class:`flex flex-col field-gap`},We={for:`assistantModelBaseUrl`,class:`cui-label`},Ge={key:1,class:`flex flex-col field-gap`},W={for:`assistantModelKey`,class:`cui-label`},G={class:`flex flex-col field-gap`},K={for:`assistantModelModel`,class:`cui-label`},q={class:`flex flex-col field-gap`},Ke={for:`assistantModelName`,class:`cui-label`},J={class:`flex items-center gap-4 cui-toggle-switch`},Y={class:`flex flex-col field-switch-gap`},qe={for:`assistantModelUsers`,class:`cui-label-switch`},Je={key:2,class:`flex items-center gap-4 cui-toggle-switch`},X={class:`flex flex-col field-switch-gap`},Ye={for:`assistantModelImages`,class:`cui-label-switch`},Xe=I({__name:`AssistantModel`,props:{entry:{},models:{}},setup(e,{expose:t}){let n=new be,a=e,{t:o}=i(),c=s(),ee=n.listAssistantModelsMutation(),l=T(a.entry?.provider??`ollama`),u=T(a.entry?.baseURL??``),d=T(``),f=T(a.entry?.model??``),p=T(a.entry&&a.entry.name!==a.entry.model?a.entry.name:``),m=T(a.entry?.sendImages??!1),te=T(a.entry?.userAccess!==!1),y=T(`new`),b=T([]),x=T([]),S=T(!1),E=N(()=>z.includes(l.value)),k=N(()=>l.value===`ollama`||l.value===`openai-compatible`),P=N(()=>a.entry?.apiKeySet===!0&&a.entry.provider===l.value),I=N(()=>a.models.filter(e=>e._id!==a.entry?._id&&e.provider===l.value&&e.apiKeySet)),R=N(()=>[{label:P.value?o(`views.settings.assistant_api_key_stored`):o(`views.settings.assistant_api_key_new`),value:`new`},...I.value.map(e=>({label:o(`views.settings.assistant_api_key_from`,{name:e.name}),value:e._id}))]),ne=N(()=>E.value&&y.value===`new`&&!d.value&&!P.value);function re(){return P.value?`new`:I.value[0]?._id??`new`}function ie(){let e=y.value===`new`?d.value?{apiKey:d.value}:a.entry&&!P.value?{apiKey:null}:{}:{copyKeyFrom:y.value};return{...a.entry?{id:a.entry._id,retest:!0,sendImages:m.value}:{},...e,name:p.value,provider:l.value,baseURL:k.value&&u.value?u.value:null,model:f.value.trim(),userAccess:te.value}}function oe(){u.value=``,f.value=``,b.value=[],x.value=[],y.value=re()}function se(e){let t=e.query.toLowerCase();x.value=b.value.filter(e=>e.toLowerCase().includes(t))}async function ce(){let e=await ee.mutateAsync(ie());if(e.error){c.add({severity:`warn`,detail:o(`views.settings.assistant_models_failed`,{message:e.error}),life:5e3});return}b.value=e.models,x.value=e.models}return g(()=>{y.value=re()}),t({onConfirm:async()=>!f.value.trim()||ne.value?(S.value=!0,null):ie()}),(t,n)=>{let i=me,a=ve,o=r,s=ge,c=_e,g=ae;return v(),w(`div`,U,[C(`div`,Ve,[C(`label`,He,_(t.$t(`views.settings.assistant_provider_label`)),1),D(i,{modelValue:L(l),"onUpdate:modelValue":n[0]||=e=>j(l)?l.value=e:null,"input-id":`assistantModelProvider`,options:L(Te),"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(_(t.$t(`views.settings.assistant_provider_hint_${L(l).replace(`-`,`_`)}`)),1)]),_:1})]),L(k)?(v(),w(`div`,Ue,[C(`label`,We,_(t.$t(`views.settings.assistant_base_url_label`)),1),D(o,{id:`assistantModelBaseUrl`,modelValue:L(u),"onUpdate:modelValue":n[1]||=e=>j(u)?u.value=e:null,modelModifiers:{trim:!0},placeholder:L(De)[L(l)],fluid:``,autocomplete:`off`},null,8,[`modelValue`,`placeholder`])])):F(``,!0),L(E)||L(l)===`openai-compatible`?(v(),w(`div`,Ge,[C(`label`,W,_(t.$t(`views.settings.assistant_api_key_label`)),1),L(I).length?(v(),A(i,{key:0,modelValue:L(y),"onUpdate:modelValue":n[2]||=e=>j(y)?y.value=e:null,options:L(R),"option-label":`label`,"option-value":`value`,fluid:``},null,8,[`modelValue`,`options`])):F(``,!0),L(y)===L(`new`)?(v(),w(M,{key:1},[D(s,{modelValue:L(d),"onUpdate:modelValue":n[3]||=e=>j(d)?d.value=e:null,"input-id":`assistantModelKey`,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`new-password`,invalid:L(S)&&L(ne),placeholder:L(P)?`••••••••`:``},null,8,[`modelValue`,`invalid`,`placeholder`]),L(P)?(v(),A(a,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(_(t.$t(`views.settings.assistant_api_key_keep_hint`)),1)]),_:1})):L(E)?F(``,!0):(v(),A(a,{key:1,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(_(t.$t(`views.settings.assistant_api_key_optional`)),1)]),_:1}))],64)):F(``,!0)])):F(``,!0),C(`div`,G,[C(`label`,K,_(t.$t(`views.settings.assistant_model_label`)),1),D(c,{modelValue:L(f),"onUpdate:modelValue":n[4]||=e=>j(f)?f.value=e:null,"input-id":`assistantModelModel`,suggestions:L(x),loading:L(ee).isPending.value,invalid:L(S)&&!L(f).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(_(t.$t(`views.settings.assistant_model_info`)),1)]),_:1})]),C(`div`,q,[C(`label`,Ke,_(t.$t(`views.settings.assistant_model_name_label`)),1),D(o,{id:`assistantModelName`,modelValue:L(p),"onUpdate:modelValue":n[5]||=e=>j(p)?p.value=e:null,modelModifiers:{trim:!0},placeholder:L(f).trim()||t.$t(`views.settings.assistant_model_name_placeholder`),maxlength:`40`,fluid:``},null,8,[`modelValue`,`placeholder`])]),C(`div`,J,[C(`div`,Y,[C(`label`,qe,_(t.$t(`views.settings.assistant_model_users`)),1),D(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[O(_(t.$t(`views.settings.assistant_model_users_info`)),1)]),_:1})]),D(g,{modelValue:L(te),"onUpdate:modelValue":n[6]||=e=>j(te)?te.value=e:null,"input-id":`assistantModelUsers`,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),e.entry?(v(),w(`div`,Je,[C(`div`,X,[C(`label`,Ye,_(t.$t(`views.settings.assistant_send_images`)),1),D(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[O(_(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(m),"onUpdate:modelValue":n[7]||=e=>j(m)?m.value=e:null,"input-id":`assistantModelImages`,class:`ml-auto shrink-0`},null,8,[`modelValue`])])):F(``,!0)])}}}),Ze={class:`w-full h-full`},Qe={key:0,class:`w-full h-full flex items-center justify-center`},$e={key:1,class:`flex flex-col w-full gap-6`},et={class:`card-title`},tt={class:`flex items-center gap-4`},nt={class:`flex flex-col field-switch-gap min-w-0`},rt={class:`text-sm font-bold text-color`},it={class:`card-title`},at={class:`flex flex-col gap-6`},ot={class:`flex items-center gap-4 cui-toggle-switch`},st={class:`flex flex-col field-switch-gap`},ct={for:`enabled`,class:`cui-label-switch`},lt={key:0,class:`flex flex-col divide-y divide-(--border-color)`},ut={class:`flex min-w-0 flex-1 flex-wrap items-center gap-x-2 gap-y-1`},dt={class:`max-w-full basis-full truncate font-medium text-color md:basis-auto`},ft={class:`order-3 mt-1 flex flex-wrap items-center gap-1.5 md:order-2 md:mt-0`},pt={class:`order-2 basis-full truncate text-muted md:order-3`},mt={key:0,class:`order-4 basis-full text-xs text-danger line-clamp-2`},ht={class:`hidden shrink-0 items-center gap-1 md:flex`},gt={class:`shrink-0 md:hidden`},_t={key:1,class:`text-sm text-muted`},vt={class:`flex`},yt={class:`card-title`},bt={class:`flex flex-col gap-6`},xt={class:`flex min-w-0 items-center gap-2`},St=[`for`],Ct={key:1,class:`text-sm text-muted`},wt={class:`flex`},Tt={class:`card-title`},Et={class:`flex flex-col gap-6`},Dt={class:`flex items-center gap-4 cui-toggle-switch`},Ot={class:`flex flex-col field-switch-gap`},kt={for:`memoryEnabled`,class:`cui-label-switch`},At={class:`flex items-center gap-4 cui-toggle-switch`},jt={class:`flex flex-col field-switch-gap`},Mt={for:`terminalEnabled`,class:`cui-label-switch`},Nt={class:`flex flex-col field-gap`},Pt={for:`language`,class:`cui-label`},Ft={class:`flex flex-col field-gap`},It={for:`reasoning`,class:`cui-label`},Lt={class:`flex flex-col md:flex-row gap-6`},Rt={class:`flex flex-col field-gap flex-1`},zt={for:`maxIterations`,class:`cui-label`},Bt={class:`flex flex-col field-gap flex-1`},Vt={for:`maxToolCalls`,class:`cui-label`},Ht={class:`flex flex-col field-gap`},Ut={for:`contextTokens`,class:`cui-label`},Wt={class:`flex flex-col md:flex-row gap-4`},Gt={class:`flex flex-col field-gap flex-1`},Kt={for:`historyThreads`,class:`cui-label`},qt={class:`flex flex-col field-gap flex-1`},Jt={for:`historyImages`,class:`cui-label`},Yt={class:`flex flex-col field-gap`},Xt={for:`systemPromptExtra`,class:`cui-label`},Zt={class:`flex items-center gap-2`},Qt={class:`card-title`},$t={class:`flex flex-col gap-6`},en={class:`flex flex-col gap-4`},tn={class:`flex items-center justify-between gap-4`},nn={class:`flex flex-col`},rn={class:`text-sm font-medium text-color`},an={class:`text-xs text-muted`},on={class:`flex items-center justify-between gap-4`},sn={class:`flex flex-col`},cn={class:`text-sm font-medium text-color`},ln={class:`text-xs text-muted`},un={key:0,class:`flex flex-col gap-6`},dn={class:`flex flex-col field-gap`},fn={for:`mcpEndpoint`,class:`cui-label`},pn={class:`flex flex-col field-gap`},mn={for:`mcpClient`,class:`cui-label`},hn={class:`flex`},gn={class:`card-title`},_n={class:`flex flex-col gap-6`},vn=[`aria-expanded`,`onClick`],yn={class:`flex min-w-0 flex-1 flex-col gap-0.5`},bn={class:`truncate text-sm font-medium text-color`},xn=[`inert`],Sn={class:`flex flex-col gap-4 px-4 pb-4`},Cn={class:`flex items-center gap-4 cui-toggle-switch`},wn={class:`flex flex-col field-switch-gap`},Tn=[`for`],En={class:`flex flex-col md:flex-row gap-4`},Dn={class:`flex flex-col field-gap md:w-56`},On=[`for`],kn={class:`flex flex-col field-gap flex-1`},An=[`for`],jn={class:`flex flex-col field-gap`},Mn=[`for`],Nn={class:`flex items-center gap-4 cui-toggle-switch`},Pn={class:`flex flex-col field-switch-gap`},Fn=[`for`],In={class:`flex`},Ln={class:`flex items-center gap-2`},Rn={class:`card-title`},zn={class:`flex flex-col gap-6`},Bn={key:0,class:`flex flex-col divide-y divide-(--border-color)`},Vn={class:`max-w-full basis-full truncate font-medium text-color md:basis-auto`},Hn={class:`flex flex-wrap items-center gap-1.5`},Un={class:`basis-full text-muted line-clamp-2`},Wn={class:`basis-full text-xs text-muted`},Gn={key:0},Kn={key:1},qn={key:0,class:`basis-full text-xs text-danger line-clamp-2`},Jn={class:`shrink-0`},Yn={class:`hidden items-center gap-1 md:flex`},Xn={class:`md:hidden`},Zn={class:`flex flex-col md:flex-row gap-6`},Qn={class:`flex flex-col field-gap flex-1`},$n={for:`scheduleTitle`,class:`cui-label`},er={class:`flex flex-col field-gap w-full md:w-52 shrink-0`},tr={for:`scheduleDeliver`,class:`cui-label`},nr={class:`flex flex-col field-gap`},rr={for:`schedulePrompt`,class:`cui-label`},ir={key:0,class:`flex flex-col field-gap`},ar={for:`scheduleProfile`,class:`cui-label`},or={class:`flex flex-col md:flex-row gap-6`},sr={class:`flex flex-col field-gap flex-1`},cr={for:`schedulePreset`,class:`cui-label`},lr={key:0,class:`flex flex-col field-gap w-full md:w-40 shrink-0`},ur={for:`scheduleTime`,class:`cui-label`},dr={key:1,class:`flex flex-col field-gap flex-1`},fr={for:`scheduleCron`,class:`cui-label`},pr={class:`flex`},mr={class:`card-title`},hr={class:`flex flex-col gap-3`},gr={class:`text-sm text-muted`},_r={class:`truncate`},vr={class:`truncate`},yr={class:`card-title`},br={key:0,class:`text-sm text-muted`},xr={key:1,class:`flex flex-col gap-6`},Sr={key:0,class:`mb-4 flex flex-col field-gap`},Cr=[`for`],wr={class:`flex max-h-96 flex-col divide-y divide-(--border-color) overflow-y-auto pr-2`},Tr={class:`min-w-0 flex-1`},Er={class:`flex flex-wrap items-center gap-2`},Dr={class:`font-medium text-color`},Or={class:`text-muted`},kr={key:0,class:`flex`},Z=`none`,Ar=o(I({__name:`SettingsAssistant`,setup(o){let g={icon:m,iconProps:{class:`text-red-500`},labelProps:{class:`text-red-500`},buttonProps:{severity:`danger`}},P={memoryEnabled:!0,terminalEnabled:!1,language:null,reasoning:`default`,maxIterations:8,maxToolCalls:25,contextTokens:48e3,historyThreads:50,historyImages:24},I={columnHeaderContent:{class:`justify-end`}},_e={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}}},z=new be,De=s(),Fe=p(),{t:B,locale:V}=i(),{data:Le,isLoading:ze}=z.usageAllQuery(),{data:H}=z.getAssistantInfoQuery(),U=z.patchAssistantInfoMutation(),{data:Ve}=z.listProfilesQuery(),{data:He}=z.listSchedulesQuery(),Ue=z.createScheduleMutation(),We=z.patchScheduleMutation(),Ge=z.deleteScheduleMutation(),W=z.runScheduleMutation(),G=T(null),K=T({title:``,prompt:``,preset:`daily`,time:`20:00`,cron:``,deliver:`push`,profileId:null}),q=T({}),Ke=T([]),J=T([]),Y=T(`claude-code`),qe=T(`core`),Je=y(`rowMenuRef`),X=N(()=>H.value?.settings.models??[]),Ye=N(()=>H.value?xe(H.value.settings):void 0),Ar=N(()=>[{label:B(`views.settings.assistant_plugin_no_access`),value:Z},...X.value.map(e=>({label:e.name,value:e._id}))]),jr=N(()=>{let e=new Map;for(let t of H.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())}),Mr=N(()=>Le.value?.map(e=>({...e,key:`${e.userId}-${e.month}-${e.provider}-${e.model}`}))),Q=N(()=>H.value?.status),Nr=N(()=>{let e=new Intl.DisplayNames([V.value],{type:`language`}),t=R.map(t=>({label:e.of(t)??t,value:t})).sort((e,t)=>e.label.localeCompare(t.label,V.value));return[{label:B(`views.settings.assistant_language_auto`),value:null},...t]}),Pr=N(()=>[`default`,`off`,`low`,`high`].map(e=>({label:B(`views.settings.assistant_reasoning_${e}`),value:e}))),Fr=N(()=>new URL(`${c.defaults.baseURL??`/api`}/assistant/mcp`.replace(/\/{2,}/g,`/`),window.location.origin).toString()),Ir=N(()=>[{label:`Claude Code`,value:`claude-code`},{label:`Cursor, Windsurf, VS Code`,value:`cursor`},{label:`Claude Desktop`,value:`claude-desktop`}]),Lr=N(()=>{let e=Fr.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)}),Rr=N(()=>[`push`,`thread`,`both`].map(e=>({label:B(`views.settings.assistant_schedule_deliver_${e}`),value:e}))),zr=N(()=>[`daily`,`weekdays`,`weekends`,`weekly`,`hourly`,`custom`].map(e=>({label:B(`views.settings.assistant_schedule_preset_${e}`),value:e}))),Br=N(()=>{let{preset:e,time:t,cron:n}=K.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`:`*`}`}),Vr=N(()=>{switch(Q.value?.state){case`ready`:return`success`;case`unconfigured`:return`warn`;default:return`secondary`}}),Hr=N(()=>B(`views.settings.assistant_state_${Q.value?.state??`disabled`}`)),Ur=N(()=>Q.value?Q.value.state===`ready`?B(`views.settings.assistant_status_ready`,{model:Q.value.model}):B(`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`${B(`views.settings.assistant_schedule_preset_${r}`)} ${n}`}function Gr(e){return e===`push`?`info`:e===`thread`?`secondary`:`success`}function Kr(e){return new Date(e).toLocaleString(V.value,{day:`2-digit`,month:`2-digit`,hour:`2-digit`,minute:`2-digit`})}async function qr(){await Ue.mutateAsync({title:K.value.title,prompt:K.value.prompt,cron:Br.value,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,language:V.value,deliver:K.value.deliver,profileId:K.value.profileId,enabled:!0}),K.value={...K.value,title:``,prompt:``,cron:``,profileId:null}}function Jr(e){return e.replace(/^\[[^\]]+\]\s*/,``)}function Yr(e){if(e.source.kind!==`external`)return e.approval;let{serverId:t,toolName:n}=e.source;return G.value?.mcpServers.find(e=>e.id===t)?.toolApproval[n]??e.approval}function Xr(e){return e.tools.flatMap(e=>e.source.kind===`external`?[{label:Se(e.name),value:e.source.toolName}]:[])}function Zr(e){return e.tools.flatMap(e=>e.source.kind===`external`&&!Yr(e)?[e.source.toolName]:[])}function Qr(e,t){let n=G.value?.mcpServers.find(t=>t.id===e.serverId);n&&(n.toolApproval=Object.fromEntries(Xr(e).map(e=>[e.value,!t.includes(e.value)])))}function $r(e){return e<1e3?String(e):e<1e6?`${(e/1e3).toFixed(+(e<1e4))}k`:`${(e/1e6).toFixed(2)}M`}function ei(e){return H.value?.external.find(t=>t.id===e)}function ti(e){let t=ei(e);return t?t.state===`connected`?B(`views.settings.assistant_external_state_connected`,{n:t.toolCount}):t.state===`error`?B(`views.settings.assistant_external_state_error`,{message:t.error??``}):B(`views.settings.assistant_external_state_${t.state}`):``}function ni(e){let t=ei(e)?.state;return t===`connected`?`text-success`:t===`error`?`text-danger`:`text-muted`}function ri(){if(!G.value)return;let e=u();G.value.mcpServers.push({id:e,name:``,url:``,enabled:!0,insecure:!1,tokenSet:!1,toolApproval:{}}),J.value.push(e)}function ii(e){J.value=J.value.includes(e)?J.value.filter(t=>t!==e):[...J.value,e]}function ai(e){G.value&&(G.value.mcpServers=G.value.mcpServers.filter(t=>t.id!==e),J.value=J.value.filter(t=>t!==e),delete q.value[e])}function oi(){let e=f(G.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,...q.value[e.id]?{token:q.value[e.id]}:{}}))}}function si(){G.value&&Object.assign(G.value,P)}async function ci(){G.value&&(await U.mutateAsync(oi()),q.value={})}function li(e){return Te.find(t=>t.value===e)?.label??e}async function ui(e){return U.mutateAsync({models:e})}function di(e,t){Ke.value=[{label:B(`views.settings.assistant_model_make_default`),icon:Be,hide:t._id===Ye.value?._id,disabled:U.isPending.value,onClick:()=>_i(t)},{label:B(`views.settings.assistant_model_edit`),icon:Oe,onClick:()=>mi(t)},{...g,label:B(`views.settings.assistant_model_delete`),onClick:()=>gi(t)}],Je.value?.toggleMenu(e)}function fi(e){We.mutate({scheduleId:e._id,patch:{enabled:!e.enabled}})}function pi(e,t){Ke.value=[{label:B(`views.settings.assistant_schedule_run`),icon:Re,onClick:()=>W.mutate(t._id)},t.enabled?{label:B(`views.settings.assistant_schedule_pause`),icon:Ne,onClick:()=>fi(t)}:{label:B(`views.settings.assistant_schedule_resume`),icon:Ee,onClick:()=>fi(t)},{...g,label:B(`views.settings.assistant_schedule_delete`),onClick:()=>Ge.mutate(t._id)}],Je.value?.toggleMenu(e)}function mi(e){let t=new Set(X.value.map(e=>e._id));Fe.openComponentDialog(Xe,{data:{title:B(e?`views.settings.assistant_model_edit`:`views.settings.assistant_model_add`),confirmText:B(`components.form.button.save`),awaitConfirm:!0,contentProps:{entry:e?k(e):void 0,models:k(X.value)}},onConfirm:async n=>{hi((await ui(e?X.value.map(t=>t._id===e._id?n:we(t)):[...X.value.map(we),n])).settings.models.find(n=>e?n._id===e._id:!t.has(n._id)))}})}function hi(e){let t=e?.capabilities;if(!t)return;let n=t.error?B(`views.settings.assistant_test_failed`,{message:t.error}):t.toolCalling?t.vision===!1?B(`views.settings.assistant_test_vision_missing`):``:B(`views.settings.assistant_test_tools_missing`);n&&De.add({severity:t.error?`error`:`warn`,detail:n,life:8e3})}function gi(e){Fe.openTextDialog({data:{title:B(`views.settings.assistant_model_delete`),contentText:B(`views.settings.assistant_model_delete_confirm`,{name:e.name}),confirmText:B(`views.settings.assistant_model_delete`),confirmButtonProps:{severity:`danger`}},onConfirm:async()=>{await ui(X.value.filter(t=>t._id!==e._id).map(we))}})}async function _i(e){await U.mutateAsync({defaultModelId:e._id})}function vi(e){return G.value?.plugins.find(t=>t.pluginId===e)?.modelId??Z}function yi(e){return X.value.find(t=>t._id===vi(e))}function bi(e,t){if(!G.value)return;let n=G.value.plugins.filter(t=>t.pluginId!==e);G.value.plugins=t===Z?n:[...n,{pluginId:e,modelId:t}]}function xi(e){return X.value.find(t=>t.provider===e.provider&&t.model===e.model)?.name??e.model}function Si(e){return Ve.value?.find(t=>t._id===e)?.name}return x(H,e=>{e&&!G.value&&(G.value=f(e.settings))},{immediate:!0}),(i,o)=>{let s=t,c=ve,u=fe,f=a,p=ae,g=Be,y=e,x=Oe,T=m,k=Pe,N=Ae,P=me,R=de,be=pe,xe=je,z=r,we=ee,Te=oe,De=se,Fe=te(`RouterLink`),B=ye,V=ge,Le=Re,We=Ne,Xe=Ee,Z=ce,Q=Me,ei=ne,oi=le,ui=he,hi=Ie,Ci=ie,wi=ue,Ti=re,$=n;return v(),w(`div`,Ze,[L(G)?(v(),w(`div`,$e,[C(`div`,null,[C(`span`,et,_(i.$t(`views.settings.status`)),1),D(f,{class:`cui-card`},{content:h(()=>[C(`div`,tt,[C(`div`,nt,[C(`span`,rt,_(i.$t(`views.settings.assistant_title`)),1),D(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:h(()=>[O(_(L(Ur)),1)]),_:1})]),D(u,{class:`ml-auto shrink-0`,severity:L(Vr),value:L(Hr)},null,8,[`severity`,`value`])])]),_:1})]),C(`div`,null,[C(`span`,it,_(i.$t(`views.settings.assistant_model`)),1),D(f,{class:`cui-card`},{content:h(()=>[C(`div`,at,[C(`div`,ot,[C(`div`,st,[C(`label`,ct,_(i.$t(`components.form.label.enabled`)),1),D(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[O(_(i.$t(`views.settings.assistant_enabled_info`)),1)]),_:1})]),D(p,{"model-value":L(H)?.settings.enabled??!1,"input-id":`enabled`,disabled:L(U).isPending.value,class:`ml-auto shrink-0`,"onUpdate:modelValue":o[0]||=e=>L(U).mutate({enabled:e})},null,8,[`model-value`,`disabled`])]),D(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(_(i.$t(`views.settings.assistant_models_info`)),1)]),_:1}),L(X).length?(v(),w(`div`,lt,[(v(!0),w(M,null,b(L(X),e=>(v(),w(`div`,{key:e._id,class:`flex items-start gap-3 py-3 text-sm`},[C(`div`,ut,[C(`span`,dt,_(e.name),1),C(`div`,ft,[e._id===L(Ye)?._id?(v(),A(u,{key:0,severity:`info`,value:i.$t(`views.settings.assistant_model_default`),class:`text-[10px]`},null,8,[`value`])):F(``,!0),e.userAccess===!1?(v(),A(u,{key:1,severity:`secondary`,value:i.$t(`views.settings.assistant_model_admins_only`),class:`text-[10px]`},null,8,[`value`])):F(``,!0),(v(!0),w(M,null,b(L(Ce)(e),e=>(v(),A(u,{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`,pt,_(li(e.provider))+` · `+_(e.model),1),e.capabilities?.error?(v(),w(`div`,mt,_(e.capabilities.error),1)):F(``,!0)]),C(`div`,ht,[e._id===L(Ye)?._id?F(``,!0):E((v(),A(y,{key:0,type:`button`,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md`,disabled:L(U).isPending.value,onClick:t=>_i(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((v(),A(y,{type:`button`,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md`,onClick:t=>mi(e)},{icon:h(()=>[D(x,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[$,{value:i.$t(`views.settings.assistant_model_edit`)},void 0,{top:!0}]]),E((v(),A(y,{type:`button`,severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,onClick:t=>gi(e)},{icon:h(()=>[D(T,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[$,{value:i.$t(`views.settings.assistant_model_delete`)},void 0,{top:!0}]])]),C(`div`,gt,[D(y,{type:`button`,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md`,onClick:t=>di(t,e)},{icon:h(()=>[D(k,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])])]))),128))])):(v(),w(`div`,_t,_(i.$t(`views.settings.assistant_models_empty`)),1)),C(`div`,vt,[D(y,{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:o[1]||=e=>mi()},{icon:h(()=>[D(N,{class:`w-4 h-4`})]),_:1},8,[`label`,`disabled`])])])]),_:1})]),C(`div`,null,[C(`span`,yt,_(i.$t(`views.settings.assistant_plugins`)),1),D(f,{class:`cui-card`},{content:h(()=>[C(`div`,bt,[D(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(_(i.$t(`views.settings.assistant_plugins_info`)),1)]),_:1}),L(H)?.plugins.length?(v(!0),w(M,{key:0},b(L(H).plugins,e=>(v(),w(`div`,{key:e.id,class:`flex flex-col field-gap`},[C(`div`,xt,[C(`label`,{for:`plugin-${e.id}`,class:`cui-label truncate`},_(e.name),9,St),yi(e.id)?.capabilities?.vision===!1?(v(),A(u,{key:0,severity:`warn`,value:i.$t(`views.settings.assistant_capability_no_vision`),class:`shrink-0 text-[10px]`},null,8,[`value`])):F(``,!0)]),D(P,{"model-value":vi(e.id),"input-id":`plugin-${e.id}`,options:L(Ar),"option-label":`label`,"option-value":`value`,fluid:``,"onUpdate:modelValue":t=>bi(e.id,t)},null,8,[`model-value`,`input-id`,`options`,`onUpdate:modelValue`])]))),128)):(v(),w(`div`,Ct,_(i.$t(`views.settings.assistant_plugins_empty`)),1)),C(`div`,wt,[D(y,{type:`button`,loading:L(U).isPending.value,class:`cui-button-medium ml-auto`,label:i.$t(`components.form.button.save`),onClick:ci},null,8,[`loading`,`label`])])])]),_:1})]),C(`div`,null,[C(`span`,Tt,_(i.$t(`views.settings.assistant_behavior`)),1),D(f,{class:`cui-card`},{content:h(()=>[C(`div`,Et,[C(`div`,Dt,[C(`div`,Ot,[C(`label`,kt,_(i.$t(`views.settings.assistant_memory`)),1),D(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[O(_(i.$t(`views.settings.assistant_memory_info`)),1)]),_:1})]),D(p,{modelValue:L(G).memoryEnabled,"onUpdate:modelValue":o[2]||=e=>L(G).memoryEnabled=e,"input-id":`memoryEnabled`,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),C(`div`,At,[C(`div`,jt,[C(`label`,Mt,_(i.$t(`views.settings.assistant_terminal`)),1),D(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[O(_(i.$t(`views.settings.assistant_terminal_info`)),1)]),_:1})]),D(p,{modelValue:L(G).terminalEnabled,"onUpdate:modelValue":o[3]||=e=>L(G).terminalEnabled=e,"input-id":`terminalEnabled`,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),C(`div`,Nt,[C(`label`,Pt,_(i.$t(`views.settings.assistant_language_label`)),1),D(P,{modelValue:L(G).language,"onUpdate:modelValue":o[4]||=e=>L(G).language=e,"input-id":`language`,options:L(Nr),"option-label":`label`,"option-value":`value`,filter:``,fluid:``},null,8,[`modelValue`,`options`]),D(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(_(i.$t(`views.settings.assistant_language_info`)),1)]),_:1})]),C(`div`,Ft,[C(`label`,It,_(i.$t(`views.settings.assistant_reasoning_label`)),1),D(P,{modelValue:L(G).reasoning,"onUpdate:modelValue":o[5]||=e=>L(G).reasoning=e,"input-id":`reasoning`,options:L(Pr),"option-label":`label`,"option-value":`value`,fluid:``},null,8,[`modelValue`,`options`]),D(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(_(i.$t(`views.settings.assistant_reasoning_info`)),1)]),_:1})]),C(`div`,Lt,[C(`div`,Rt,[C(`label`,zt,_(i.$t(`views.settings.assistant_max_iterations_label`)),1),D(R,{modelValue:L(G).maxIterations,"onUpdate:modelValue":o[6]||=e=>L(G).maxIterations=e,min:1,max:30,"use-grouping":!1,fluid:``},null,8,[`modelValue`]),D(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(_(i.$t(`views.settings.assistant_max_iterations_info`)),1)]),_:1})]),C(`div`,Bt,[C(`label`,Vt,_(i.$t(`views.settings.assistant_max_tool_calls_label`)),1),D(R,{modelValue:L(G).maxToolCalls,"onUpdate:modelValue":o[7]||=e=>L(G).maxToolCalls=e,min:1,max:100,"use-grouping":!1,fluid:``},null,8,[`modelValue`]),D(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(_(i.$t(`views.settings.assistant_max_tool_calls_info`)),1)]),_:1})])]),C(`div`,Ht,[C(`label`,Ut,_(i.$t(`views.settings.assistant_context_tokens_label`)),1),D(R,{id:`contextTokens`,modelValue:L(G).contextTokens,"onUpdate:modelValue":o[8]||=e=>L(G).contextTokens=e,min:8e3,max:4e5,step:1e3,"use-grouping":!1,fluid:``},null,8,[`modelValue`]),D(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(_(i.$t(`views.settings.assistant_context_tokens_info`)),1)]),_:1})]),C(`div`,Wt,[C(`div`,Gt,[C(`label`,Kt,_(i.$t(`views.settings.assistant_history_threads_label`)),1),D(R,{id:`historyThreads`,modelValue:L(G).historyThreads,"onUpdate:modelValue":o[9]||=e=>L(G).historyThreads=e,min:5,max:500,"use-grouping":!1,fluid:``},null,8,[`modelValue`]),D(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(_(i.$t(`views.settings.assistant_history_threads_info`)),1)]),_:1})]),C(`div`,qt,[C(`label`,Jt,_(i.$t(`views.settings.assistant_history_images_label`)),1),D(R,{id:`historyImages`,modelValue:L(G).historyImages,"onUpdate:modelValue":o[10]||=e=>L(G).historyImages=e,min:0,max:200,"use-grouping":!1,fluid:``},null,8,[`modelValue`]),D(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(_(i.$t(`views.settings.assistant_history_images_info`)),1)]),_:1})])]),C(`div`,Yt,[C(`label`,Xt,_(i.$t(`views.settings.assistant_extra_prompt_label`)),1),D(be,{modelValue:L(G).systemPromptExtra,"onUpdate:modelValue":o[11]||=e=>L(G).systemPromptExtra=e,rows:`3`,"auto-resize":``,placeholder:i.$t(`views.settings.assistant_extra_prompt_placeholder`)},null,8,[`modelValue`,`placeholder`]),D(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(_(i.$t(`views.settings.assistant_extra_prompt_info`)),1)]),_:1})]),C(`div`,Zt,[D(y,{type:`button`,severity:`secondary`,outlined:``,class:`cui-button-medium ml-auto`,label:i.$t(`components.form.button.reset_defaults`),onClick:si},{icon:h(()=>[D(xe,{class:`w-4 h-4`})]),_:1},8,[`label`]),D(y,{type:`button`,loading:L(U).isPending.value,class:`cui-button-medium`,label:i.$t(`components.form.button.save`),onClick:ci},null,8,[`loading`,`label`])])])]),_:1})]),C(`div`,null,[C(`span`,Qt,_(i.$t(`views.settings.assistant_mcp`)),1),D(f,{class:`cui-card`},{content:h(()=>[C(`div`,$t,[D(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(_(i.$t(`views.settings.assistant_mcp_info`)),1)]),_:1}),C(`div`,en,[C(`div`,tn,[C(`div`,nn,[C(`span`,rn,_(i.$t(`views.settings.assistant_mcp_enabled_label`)),1),C(`span`,an,_(i.$t(`views.settings.assistant_mcp_enabled_info`)),1)]),D(p,{modelValue:L(G).mcpEnabled,"onUpdate:modelValue":o[12]||=e=>L(G).mcpEnabled=e},null,8,[`modelValue`])]),C(`div`,on,[C(`div`,sn,[C(`span`,cn,_(i.$t(`views.settings.assistant_mcp_writes_label`)),1),C(`span`,ln,_(i.$t(`views.settings.assistant_mcp_writes_info`)),1)]),D(p,{modelValue:L(G).mcpWrites,"onUpdate:modelValue":o[13]||=e=>L(G).mcpWrites=e,disabled:!L(G).mcpEnabled},null,8,[`modelValue`,`disabled`])])]),L(G).mcpEnabled?(v(),w(`div`,un,[C(`div`,dn,[C(`label`,fn,_(i.$t(`views.settings.assistant_mcp_endpoint_label`)),1),D(De,null,{default:h(()=>[D(z,{id:`mcpEndpoint`,"model-value":L(Fr),readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),D(Te,null,{default:h(()=>[D(we,{"action-text":i.$t(`components.form.tooltip.copied`),icon:L(ke),"button-props":{severity:`secondary`,text:!0},onAction:o[14]||=e=>L(l)(L(Fr))},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),D(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(_(i.$t(`views.settings.assistant_mcp_token_info`))+` `,1),D(Fe,{to:{name:`SettingsAccount`},class:`underline`},{default:h(()=>[O(_(i.$t(`views.settings.assistant_mcp_token_link`)),1)]),_:1})]),_:1})]),C(`div`,pn,[C(`label`,mn,_(i.$t(`views.settings.assistant_mcp_client_label`)),1),D(P,{modelValue:L(Y),"onUpdate:modelValue":o[15]||=e=>j(Y)?Y.value=e:null,"input-id":`mcpClient`,options:L(Ir),"option-label":`label`,"option-value":`value`,class:`w-full`},null,8,[`modelValue`,`options`]),D(De,null,{default:h(()=>[D(be,{id:`mcpSnippet`,"model-value":L(Lr),readonly:``,"auto-resize":``,rows:`3`,class:`font-mono text-xs`},null,8,[`model-value`]),D(Te,null,{default:h(()=>[D(we,{"action-text":i.$t(`components.form.tooltip.copied`),icon:L(ke),"button-props":{severity:`secondary`,text:!0},onAction:o[16]||=e=>L(l)(L(Lr))},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),D(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(_(i.$t(`views.settings.assistant_mcp_snippet_info`)),1)]),_:1})])])):F(``,!0),C(`div`,hn,[D(y,{type:`button`,loading:L(U).isPending.value,class:`cui-button-medium ml-auto`,label:i.$t(`components.form.button.save`),onClick:ci},null,8,[`loading`,`label`])])])]),_:1})]),C(`div`,null,[C(`span`,gn,_(i.$t(`views.settings.assistant_external`)),1),D(f,{class:`cui-card`},{content:h(()=>[C(`div`,_n,[D(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(_(i.$t(`views.settings.assistant_external_info`)),1)]),_:1}),(v(!0),w(M,null,b(L(G).mcpServers,e=>(v(),w(`div`,{key:e.id,class:`cui-assistant-server overflow-hidden rounded-xl`},[C(`button`,{type:`button`,class:`flex w-full cursor-pointer items-center gap-3 p-4 text-left`,"aria-expanded":L(J).includes(e.id),onClick:t=>ii(e.id)},[C(`div`,yn,[C(`span`,bn,_(e.name||i.$t(`views.settings.assistant_external_new`)),1),ti(e.id)?(v(),w(`span`,{key:0,class:S([`truncate text-xs`,ni(e.id)])},_(ti(e.id)),3)):F(``,!0)]),D(B,{class:S([`h-5 w-5 shrink-0 text-muted transition-transform duration-200`,{"rotate-180":L(J).includes(e.id)}])},null,8,[`class`])],8,vn),C(`div`,{class:S([`cui-assistant-server-body grid`,{"cui-assistant-server-open":L(J).includes(e.id)}])},[C(`div`,{class:`min-h-0 overflow-hidden`,inert:!L(J).includes(e.id)},[C(`div`,Sn,[C(`div`,Cn,[C(`div`,wn,[C(`label`,{for:`server-enabled-${e.id}`,class:`cui-label-switch`},_(i.$t(`components.form.label.enabled`)),9,Tn),D(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[O(_(i.$t(`views.settings.assistant_external_enabled_info`)),1)]),_:1})]),D(p,{modelValue:e.enabled,"onUpdate:modelValue":t=>e.enabled=t,"input-id":`server-enabled-${e.id}`,class:`ml-auto shrink-0`},null,8,[`modelValue`,`onUpdate:modelValue`,`input-id`])]),C(`div`,En,[C(`div`,Dn,[C(`label`,{for:`server-name-${e.id}`,class:`cui-label`},_(i.$t(`views.settings.assistant_external_name`)),9,On),D(z,{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`,kn,[C(`label`,{for:`server-url-${e.id}`,class:`cui-label`},_(i.$t(`views.settings.assistant_external_url`)),9,An),D(z,{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`,jn,[C(`label`,{for:`server-token-${e.id}`,class:`cui-label`},_(i.$t(`views.settings.assistant_external_token`)),9,Mn),D(V,{id:`server-token-${e.id}`,modelValue:L(q)[e.id],"onUpdate:modelValue":t=>L(q)[e.id]=t,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`new-password`,placeholder:e.tokenSet?`••••••••`:``},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`placeholder`]),D(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(_(e.tokenSet?i.$t(`views.settings.assistant_external_token_set`):i.$t(`views.settings.assistant_external_token_info`)),1)]),_:2},1024)]),C(`div`,Nn,[C(`div`,Pn,[C(`label`,{for:`server-insecure-${e.id}`,class:`cui-label-switch`},_(i.$t(`views.settings.assistant_external_insecure`)),9,Fn),D(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[O(_(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`])]),C(`div`,In,[D(y,{type:`button`,severity:`danger`,outlined:``,class:`cui-button-medium ml-auto`,label:i.$t(`views.settings.assistant_external_remove`),onClick:t=>ai(e.id)},{icon:h(()=>[D(T,{class:`w-4 h-4`})]),_:1},8,[`label`,`onClick`])])])],8,xn)],2)]))),128)),C(`div`,Ln,[D(y,{type:`button`,severity:`secondary`,outlined:``,class:`cui-button-medium`,label:i.$t(`views.settings.assistant_external_add`),disabled:L(G).mcpServers.length>=10,onClick:ri},{icon:h(()=>[D(N,{class:`w-4 h-4`})]),_:1},8,[`label`,`disabled`]),D(y,{type:`button`,loading:L(U).isPending.value,class:`cui-button-medium ml-auto`,label:i.$t(`components.form.button.save`),onClick:ci},null,8,[`loading`,`label`])])])]),_:1})]),C(`div`,null,[C(`span`,Rn,_(i.$t(`views.settings.assistant_schedules`)),1),D(f,{class:`cui-card`},{content:h(()=>[C(`div`,zn,[D(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(_(i.$t(`views.settings.assistant_schedules_info`)),1)]),_:1}),L(He)?.length?(v(),w(`div`,Bn,[(v(!0),w(M,null,b(L(He),e=>(v(),w(`div`,{key:e._id,class:`flex items-start gap-3 py-3 text-sm`},[C(`div`,{class:S([`flex min-w-0 flex-1 flex-wrap items-center gap-x-2 gap-y-1`,{"opacity-60":!e.enabled}])},[C(`span`,Vn,_(e.title),1),C(`div`,Hn,[D(u,{severity:`secondary`,value:Wr(e.cron),class:`text-[10px]`},null,8,[`value`]),D(u,{severity:Gr(e.deliver),value:i.$t(`views.settings.assistant_schedule_deliver_${e.deliver}`),class:`text-[10px]`},null,8,[`severity`,`value`]),e.profileId?(v(),A(u,{key:0,severity:Si(e.profileId)?`secondary`:`warn`,value:Si(e.profileId)??i.$t(`views.settings.assistant_schedule_profile_missing`),class:`text-[10px]`},null,8,[`severity`,`value`])):F(``,!0)]),C(`div`,Un,_(e.prompt),1),C(`div`,Wn,[e.enabled&&e.nextRun?(v(),w(`span`,Gn,_(i.$t(`views.settings.assistant_schedule_next`,{time:Kr(e.nextRun)})),1)):e.enabled?F(``,!0):(v(),w(`span`,Kn,_(i.$t(`views.settings.assistant_schedule_paused`)),1)),e.lastRun?(v(),w(`span`,{key:2,class:S({"text-danger":e.lastRun.status===`error`})},` · `+_(i.$t(`views.settings.assistant_schedule_last_${e.lastRun.status}`,{time:Kr(e.lastRun.at)})),3)):F(``,!0)]),e.lastRun?.status===`error`&&e.lastRun.message?(v(),w(`div`,qn,_(e.lastRun.message),1)):F(``,!0)],2),C(`div`,Jn,[C(`div`,Yn,[E((v(),A(y,{type:`button`,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md`,loading:L(W).isPending.value&&L(W).variables.value===e._id,onClick:t=>L(W).mutate(e._id)},{icon:h(()=>[D(Le,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[$,{value:i.$t(`views.settings.assistant_schedule_run`)},void 0,{top:!0}]]),E((v(),A(y,{type:`button`,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md`,onClick:t=>fi(e)},{icon:h(()=>[e.enabled?(v(),A(We,{key:0,width:`100%`,height:`100%`})):(v(),A(Xe,{key:1,width:`100%`,height:`100%`}))]),_:2},1032,[`onClick`])),[[$,{value:e.enabled?i.$t(`views.settings.assistant_schedule_pause`):i.$t(`views.settings.assistant_schedule_resume`)},void 0,{top:!0}]]),E((v(),A(y,{type:`button`,severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,onClick:t=>L(Ge).mutate(e._id)},{icon:h(()=>[D(T,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[$,{value:i.$t(`views.settings.assistant_schedule_delete`)},void 0,{top:!0}]])]),C(`div`,Xn,[D(y,{type:`button`,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md`,loading:L(W).isPending.value&&L(W).variables.value===e._id,onClick:t=>pi(t,e)},{icon:h(()=>[D(k,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])])])]))),128))])):F(``,!0),C(`div`,{class:S([`flex flex-col gap-6`,{"cui-assistant-schedule-form":L(He)?.length}])},[C(`div`,Zn,[C(`div`,Qn,[C(`label`,$n,_(i.$t(`views.settings.assistant_schedule_title_label`)),1),D(z,{modelValue:L(K).title,"onUpdate:modelValue":o[17]||=e=>L(K).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`,er,[C(`label`,tr,_(i.$t(`views.settings.assistant_schedule_deliver_label`)),1),D(P,{modelValue:L(K).deliver,"onUpdate:modelValue":o[18]||=e=>L(K).deliver=e,options:L(Rr),"option-label":`label`,"option-value":`value`,fluid:``},null,8,[`modelValue`,`options`])])]),C(`div`,nr,[C(`label`,rr,_(i.$t(`views.settings.assistant_schedule_prompt_label`)),1),D(be,{modelValue:L(K).prompt,"onUpdate:modelValue":o[19]||=e=>L(K).prompt=e,rows:`2`,"auto-resize":``,placeholder:i.$t(`views.settings.assistant_schedule_prompt_placeholder`)},null,8,[`modelValue`,`placeholder`])]),L(Ve)?.length?(v(),w(`div`,ir,[C(`label`,ar,_(i.$t(`views.settings.assistant_schedule_profile_label`)),1),D(P,{modelValue:L(K).profileId,"onUpdate:modelValue":o[20]||=e=>L(K).profileId=e,"input-id":`scheduleProfile`,options:L(Ve),"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`,or,[C(`div`,sr,[C(`label`,cr,_(i.$t(`views.settings.assistant_schedule_when_label`)),1),D(P,{modelValue:L(K).preset,"onUpdate:modelValue":o[21]||=e=>L(K).preset=e,options:L(zr),"option-label":`label`,"option-value":`value`,fluid:``},null,8,[`modelValue`,`options`])]),L(K).preset!==`hourly`&&L(K).preset!==`custom`?(v(),w(`div`,lr,[C(`label`,ur,_(i.$t(`views.settings.assistant_schedule_time_label`)),1),D(z,{modelValue:L(K).time,"onUpdate:modelValue":o[22]||=e=>L(K).time=e,type:`time`,class:`cui-time-input w-full`},null,8,[`modelValue`])])):F(``,!0),L(K).preset===`custom`?(v(),w(`div`,dr,[C(`label`,fr,_(i.$t(`views.settings.assistant_schedule_cron_label`)),1),D(z,{modelValue:L(K).cron,"onUpdate:modelValue":o[23]||=e=>L(K).cron=e,modelModifiers:{trim:!0},type:`text`,placeholder:`0 20 * * *`,class:`w-full font-mono text-sm`},null,8,[`modelValue`])])):F(``,!0)]),C(`div`,pr,[D(y,{type:`button`,loading:L(Ue).isPending.value,disabled:!L(K).title||!L(K).prompt||!L(Br),class:`cui-button-medium ml-auto`,label:i.$t(`views.settings.assistant_schedule_add`),onClick:qr},null,8,[`loading`,`disabled`,`label`])])],2)])]),_:1})]),C(`div`,null,[C(`span`,mr,_(i.$t(`views.settings.assistant_usage`)),1),D(f,{class:`cui-card`},{content:h(()=>[C(`div`,hr,[D(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(_(i.$t(`views.settings.assistant_usage_info`)),1)]),_:1}),D(Q,{value:L(Mr)??[],"data-key":`key`,loading:L(ze),pt:_e,"striped-rows":``,scrollable:``},{loading:h(()=>[D(s,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:h(()=>[C(`span`,gr,_(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`,_r,_(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`,vr,_(xi(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:I},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:I},{body:h(({data:e})=>[O(_($r(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:I},{body:h(({data:e})=>[O(_($r(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:I},{body:h(({data:e})=>[O(_(e.costUsd?`$${e.costUsd.toFixed(e.costUsd<1?3:2)}`:`–`),1)]),_:1},8,[`header`])]),_:1},8,[`value`,`loading`])])]),_:1})]),C(`div`,null,[C(`span`,yr,_(i.$t(`views.settings.assistant_tools`)),1),D(f,{class:`cui-card`},{content:h(()=>[L(jr).length?(v(),w(`div`,xr,[D(Ti,{value:L(qe),"onUpdate:value":o[24]||=e=>j(qe)?qe.value=e:null,scrollable:``},{default:h(()=>[D(oi,{class:`mb-3`},{default:h(()=>[(v(!0),w(M,null,b(L(jr),e=>(v(),A(ei,{key:e.key,value:e.key,class:`text-sm`},{default:h(()=>[O(_(e.label)+` (`+_(e.tools.length)+`)`,1)]),_:2},1032,[`value`]))),128))]),_:1}),D(wi,{class:`!p-0 !bg-transparent`},{default:h(()=>[(v(!0),w(M,null,b(L(jr),e=>(v(),A(Ci,{key:e.key,value:e.key},{default:h(()=>[e.serverId?(v(),w(`div`,Sr,[C(`label`,{for:`trusted-${e.key}`,class:`cui-label`},_(i.$t(`views.settings.assistant_tools_trusted_label`)),9,Cr),D(ui,{"model-value":Zr(e),"input-id":`trusted-${e.key}`,options:Xr(e),"option-label":`label`,"option-value":`value`,"max-selected-labels":3,"selected-items-label":i.$t(`views.settings.assistant_tools_trusted_selected`,{n:Zr(e).length}),placeholder:i.$t(`views.settings.assistant_tools_trusted_none`),filter:``,fluid:``,"onUpdate:modelValue":t=>Qr(e,t)},null,8,[`model-value`,`input-id`,`options`,`selected-items-label`,`placeholder`,`onUpdate:modelValue`]),D(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[O(_(i.$t(`views.settings.assistant_tools_trusted_info`)),1)]),_:1})])):F(``,!0),C(`div`,wr,[(v(!0),w(M,null,b(e.tools,e=>(v(),w(`div`,{key:e.name,class:`flex items-start gap-3 py-2 text-sm`},[D(hi,{class:`w-4 h-4 mt-0.5 shrink-0 text-muted`}),C(`div`,Tr,[C(`div`,Er,[C(`span`,Dr,_(L(Se)(e.name)),1),Yr(e)?(v(),A(u,{key:0,severity:`warn`,value:i.$t(`views.settings.assistant_tool_approval`),class:`text-[10px]`},null,8,[`value`])):F(``,!0),e.adminOnly?(v(),A(u,{key:1,severity:`info`,value:i.$t(`views.settings.assistant_tool_admin`),class:`text-[10px]`},null,8,[`value`])):F(``,!0)]),C(`div`,Or,_(Jr(e.description)),1)])]))),128))])]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`value`]),L(jr).some(e=>e.serverId)?(v(),w(`div`,kr,[D(y,{type:`button`,loading:L(U).isPending.value,class:`cui-button-medium ml-auto`,label:i.$t(`components.form.button.save`),onClick:ci},null,8,[`loading`,`label`])])):F(``,!0)])):(v(),w(`div`,br,_(i.$t(`views.settings.assistant_tools_empty`)),1))]),_:1})])])):(v(),w(`div`,Qe,[D(s,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])),D(d,{ref_key:`rowMenuRef`,ref:Je,items:L(Ke),popover:{pt:{content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])])}}}),[[`__scopeId`,`data-v-69f75eeb`]]);export{Ar as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Bt as e,It as t,L as ee,Vr as n,q as te}from"./vendor-cameraui-BbGOMenD.js";import{Dr as r,gr as i,gt as ne,ht as a,i as o,o as s}from"./api-BNrZVfeD.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-DGke_6M4.js";import{U as D}from"./types-CNLAvgyw.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-DNJJiEZl.js";import{t as O}from"./mqtt-BY6-Hrbv.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`},B={class:`flex flex-col field-gap w-full sm:w-40 shrink-0`},be={for:`port`,class:`cui-label`},xe={class:`flex flex-col field-gap`},Se={for:`protocol`,class:`cui-label`},Ce={class:`flex flex-col sm:flex-row gap-6`},we={class:`flex flex-col field-gap flex-1 min-w-0`},Te={for:`username`,class:`cui-label`},Ee={class:`flex flex-col field-gap flex-1 min-w-0`},De={for:`password`,class:`cui-label`},Oe={class:`flex flex-col field-gap`},ke={for:`brokerAddress`,class:`cui-label`},Ae={class:`flex flex-col sm:flex-row gap-6`},je={class:`flex flex-col field-gap w-full sm:w-40 shrink-0`},Me={for:`brokerPort`,class:`cui-label`},Ne={class:`flex flex-col field-gap flex-1 min-w-0`},Pe={for:`brokerUsername`,class:`cui-label`},Fe={class:`flex flex-col field-gap flex-1 min-w-0`},Ie={for:`brokerPassword`,class:`cui-label`},Le={class:`flex flex-col sm:flex-row gap-6`},Re={for:`clientId`,class:`cui-label`},ze={for:`topicPrefix`,class:`cui-label`},Be={class:`flex items-center gap-4 cui-toggle-switch`},Ve={class:`flex flex-col field-switch-gap`},He={for:`rejectUnauthorized`,class:`cui-label-switch`},Ue={class:`flex flex-col field-gap`},We={for:`tlsCa`,class:`cui-label`},Ge={class:`flex flex-col field-gap`},Ke={for:`tlsCert`,class:`cui-label`},qe={class:`flex flex-col field-gap`},Je={for:`tlsKey`,class:`cui-label`},Ye={class:`flex items-center gap-4 cui-toggle-switch`},Xe={class:`flex flex-col field-switch-gap`},Ze={for:`haDiscovery`,class:`cui-label-switch`},Qe={for:`haDiscovery.prefix`,class:`cui-label`},$e={class:`flex items-center gap-3`},V=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=i(`/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 i=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`,B,[h(`label`,be,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`,xe,[h(`label`,Se,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`,Ce,[h(`div`,we,[h(`label`,Te,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`,Ee,[h(`label`,De,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`,Oe,[h(`label`,ke,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(a),"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`,Ae,[h(`div`,je,[h(`label`,Me,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`,Ne,[h(`label`,Pe,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`,Fe,[h(`label`,Ie,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(a),"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`,Le,[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(i,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]))])}}});export{V as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Bt as e,F as t,It as n,Kt as r,L as ee,Vr as i,q as te}from"./vendor-cameraui-BbGOMenD.js";import{Dr as a,bn as o,mr as s}from"./api-BNrZVfeD.js";import{$n as c,Bn as ne,Cr as l,In as u,Pn as d,Rn as f,Xn as p,cn as m,dn as h,dr as g,er as re,gn as _,hn as v,ln as y,lr as b,rn as x,sn as S,tn as ie,un as C,vn as w,yr as T}from"./vendor-DGke_6M4.js";import{i as E}from"./intercomService-Du8V_HxF.js";import{K as ae,S as oe,T as se,U as ce,z as le}from"./vendor-primevue-DNJJiEZl.js";import{t as D}from"./notifications-CN6eTJb_.js";import{t as O}from"./usePushRegistration-ANx4BS6_.js";import{t as ue}from"./delete-CY8fsIW6.js";import{t as de}from"./CuiDataTable-DgcJsG-K.js";import{t as fe}from"./usePermissions-CJzuagwD.js";var pe={class:`flex flex-col w-full gap-6`},me={class:`card-title`},he={class:`flex flex-col gap-6`},ge={class:`text-sm`},_e={key:1,class:`flex items-center justify-center py-8`},ve={class:`flex items-center gap-4`},ye={class:`flex flex-col field-switch-gap`},be={class:`cui-label-switch`},xe={key:0,class:`flex items-center gap-4`},Se={class:`flex flex-col field-switch-gap min-w-0`},Ce={class:`cui-label-switch`},we={key:1,class:`flex items-center gap-4`},Te={class:`flex flex-col field-switch-gap min-w-0`},Ee={class:`cui-label-switch`},De={key:2,class:`flex flex-col gap-2`},Oe={class:`flex items-center gap-4`},ke={class:`flex flex-col field-switch-gap`},Ae={class:`cui-label-switch`},je={key:0,class:`grid grid-cols-1 sm:grid-cols-3 gap-3 mt-2`},Me={class:`flex flex-col field-gap`},Ne={for:`qh-from`,class:`cui-label`},Pe={class:`flex flex-col field-gap`},Fe={for:`qh-to`,class:`cui-label`},Ie={class:`flex flex-col field-gap`},Le={for:`qh-tz`,class:`cui-label`},Re={key:0},ze={class:`card-title`},Be={class:`flex flex-col gap-6`},Ve={class:`text-sm`},He={key:0,class:`flex items-center justify-center py-8`},Ue={key:1,class:`text-sm text-muted text-center py-8`},We={key:2,class:`flex flex-col gap-3`},Ge={class:`flex items-center gap-4`},Ke={class:`flex flex-col field-switch-gap`},qe={class:`cui-label-switch`},Je={key:1},Ye={class:`card-title`},Xe={class:`flex flex-col gap-6`},Ze={class:`text-sm`},Qe={key:0,class:`flex items-center justify-center py-8`},$e={key:1,class:`text-sm text-muted text-center py-8`},et={key:2,class:`flex flex-col gap-3`},tt={class:`flex items-center gap-4`},nt={class:`flex flex-col field-switch-gap`},rt={class:`cui-label-switch`},it={key:2},at={class:`card-title`},ot={class:`flex flex-col gap-6`},st={class:`text-sm`},ct={key:0,class:`flex items-center justify-center py-8`},lt={key:1,class:`text-sm text-muted text-center py-8`},ut={key:3,class:`flex justify-end gap-2`},k=w({__name:`SettingsNotifications`,setup(w){let k=new D,{t:A,te:dt}=i(),j=a(),ft=o(void 0,`admin`),{registerForPush:pt,forgetIfThisDevice:mt,getSyncState:ht,restoreMarker:gt}=O(),{isElectronApp:M,electron:N}=E(),{states:_t,refresh:vt}=fe(),{data:P,isLoading:yt}=k.getSettingsQuery(),{data:F,isLoading:bt}=k.listDevicesQuery(()=>!0),{data:I,isLoading:L}=k.listSourcesQuery(),{mutate:xt,isPending:St}=k.setSettingsQuery(),{mutateAsync:Ct}=k.setSettingsQuerySilent(),{mutate:wt}=k.revokeDeviceQuery(),{mutate:R}=k.updateDeviceQuery(),z=Intl.DateTimeFormat().resolvedOptions().timeZone||`UTC`,B=g(null),V=g(``),H=g(!1),U=g(!1),W=g(!1),G=g(!0),K=g(!1),q=g(null),J=b({}),Y=g(null),Tt=S(()=>!!B.value&&JSON.stringify(B.value)!==V.value),X=S(()=>!!B.value?.enabled),Z=S(()=>St.value),Et=S(()=>$(B.value?.quietHours?.from)),Dt=S(()=>$(B.value?.quietHours?.to));function Q(e){e&&(B.value=JSON.parse(JSON.stringify(e)),V.value=JSON.stringify(e))}function Ot(){Q(P.value)}function kt(e){B.value&&(e?B.value.quietHours={from:`22:00`,to:`07:00`,timezone:z}:delete B.value.quietHours)}function $(e){if(!e)return null;let[t,n]=e.split(`:`).map(Number);if(!Number.isFinite(t)||!Number.isFinite(n))return null;let r=new Date;return r.setHours(t,n,0,0),r}function At(e){return e?`${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}`:`00:00`}function jt(e,t){B.value?.quietHours&&(B.value.quietHours[e]=At(t))}function Mt(e){return B.value?.systemTypes?.[e]!==!1}function Nt(e,t){B.value&&(B.value.systemTypes||(B.value.systemTypes={}),t?delete B.value.systemTypes[e]:B.value.systemTypes[e]=!1)}function Pt(e){return B.value?.sources?.[e]!==!1}function Ft(e,t){B.value&&(B.value.sources||(B.value.sources={}),t?delete B.value.sources[e]:B.value.sources[e]=!1)}function It(e){let t=`views.settings.notifications.system_types.${e.type.replaceAll(`.`,`_`)}`;return dt(t)?A(t):e.label}function Lt(){B.value&&xt({settings:B.value},{onSuccess:e=>Q(e)})}async function Rt(e){if(B.value&&P.value){H.value=!0;try{Q(await Ct({settings:{...P.value,enabled:e}}))}catch(e){j.add({severity:`error`,detail:e,life:3e3})}finally{H.value=!1}}}async function zt(){let e=s(),t=e?await ht(e,F.value):{status:`unknown`};U.value=t.status===`registered`,t.status===`registered`&&t.device&&e&&await gt(e,t.device.id)}async function Bt(){if(M&&N)try{G.value=await N.invoke(`get-desktop-notifications`)}catch{}}async function Vt(e){if(N){K.value=!0;try{G.value=await N.invoke(`set-desktop-notifications`,e)}catch(e){j.add({severity:`error`,detail:e,life:3e3})}finally{K.value=!1}}}async function Ht(){W.value=!0;try{await pt(),await zt(),await k.queryClient.invalidateQueries({queryKey:[`notifications`,`devices`]})}catch(e){j.add({severity:`error`,detail:e,life:3e3})}finally{W.value=!1}}function Ut(e){q.value=e;let t=s();wt({deviceId:e},{onSuccess:async()=>{t&&await mt(t,e),zt()},onSettled:()=>q.value=null})}function Wt(e){let t=J[e.id];if(t==null)return;let n=t.trim();if(!n||n===e.name){delete J[e.id];return}Y.value=e.id,R({deviceId:e.id,patch:{name:n}},{onSuccess:()=>delete J[e.id],onSettled:()=>Y.value=null})}function Gt(e,t){Y.value=e,R({deviceId:e,patch:{active:t}},{onSettled:()=>Y.value=null})}return p(P,Q,{immediate:!0}),p(F,()=>!1,{immediate:!0}),d(()=>{M&&Bt(),vt()}),(i,a)=>{let o=ne(`RouterLink`),s=le,d=n,p=ae,g=e,b=t,S=ee,w=te,E=ce,D=oe,O=se,fe=ue,k=de,A=r;return u(),h(`div`,null,[m(`div`,pe,[m(`div`,null,[m(`span`,me,l(i.$t(`views.settings.notifications.general`)),1),_(w,{class:`cui-card`},{content:c(()=>[m(`div`,he,[m(`span`,ge,l(i.$t(`views.settings.notifications.general_info`)),1),T(_t).notifications===`denied`?(u(),y(s,{key:0,severity:`warn`,size:`small`},{default:c(()=>[v(l(i.$t(`views.settings.notifications.os_permission_denied`))+` `,1),_(o,{to:`/settings/permissions`,class:`underline`},{default:c(()=>[v(l(i.$t(`views.settings.notifications.os_permission_link`)),1)]),_:1})]),_:1})):C(``,!0),T(yt)&&!T(B)?(u(),h(`div`,_e,[_(d,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):T(B)?(u(),h(x,{key:2},[m(`div`,ve,[m(`div`,ye,[m(`label`,be,l(i.$t(`views.settings.notifications.enable`)),1),_(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:c(()=>[v(l(i.$t(`views.settings.notifications.enable_info`)),1)]),_:1})]),_(p,{"model-value":T(B).enabled,loading:T(H),class:`ml-auto shrink-0`,"onUpdate:modelValue":Rt},null,8,[`model-value`,`loading`])]),T(!1)&&T(B).enabled?(u(),h(`div`,xe,[m(`div`,Se,[m(`label`,Ce,l(i.$t(`views.settings.notifications.this_device`)),1),_(s,{severity:T(U)?`secondary`:`warn`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:c(()=>[v(l(T(U)?i.$t(`views.settings.notifications.this_device_synced`):i.$t(`views.settings.notifications.this_device_unsynced`)),1)]),_:1},8,[`severity`])]),_(g,{severity:T(U)?`secondary`:void 0,loading:T(W),class:`cui-button-small ml-auto shrink-0`,label:T(U)?i.$t(`views.settings.notifications.resync`):i.$t(`views.settings.notifications.sync`),onClick:Ht},null,8,[`severity`,`loading`,`label`])])):T(M)&&T(B).enabled?(u(),h(`div`,we,[m(`div`,Te,[m(`label`,Ee,l(i.$t(`views.settings.notifications.this_device`)),1),_(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:c(()=>[v(l(i.$t(`views.settings.notifications.this_device_desktop`)),1)]),_:1})]),_(p,{"model-value":T(G),loading:T(K),class:`ml-auto shrink-0`,"onUpdate:modelValue":Vt},null,8,[`model-value`,`loading`])])):C(``,!0),T(B).enabled?(u(),h(`div`,De,[m(`div`,Oe,[m(`div`,ke,[m(`label`,Ae,l(i.$t(`views.settings.notifications.quiet_hours`)),1),_(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:c(()=>[v(l(i.$t(`views.settings.notifications.quiet_hours_info`)),1)]),_:1})]),_(p,{"model-value":!!T(B).quietHours,class:`ml-auto shrink-0`,"onUpdate:modelValue":kt},null,8,[`model-value`])]),T(B).quietHours?(u(),h(`div`,je,[m(`div`,Me,[m(`label`,Ne,l(i.$t(`views.settings.notifications.from`)),1),_(b,{"input-id":`qh-from`,"model-value":T(Et),"time-only":``,"show-icon":``,"icon-display":`input`,class:`w-full`,"onUpdate:modelValue":a[0]||=e=>jt(`from`,e)},null,8,[`model-value`])]),m(`div`,Pe,[m(`label`,Fe,l(i.$t(`views.settings.notifications.to`)),1),_(b,{"input-id":`qh-to`,"model-value":T(Dt),"time-only":``,"show-icon":``,"icon-display":`input`,class:`w-full`,"onUpdate:modelValue":a[1]||=e=>jt(`to`,e)},null,8,[`model-value`])]),m(`div`,Ie,[m(`label`,Le,l(i.$t(`views.settings.notifications.timezone`)),1),_(S,{id:`qh-tz`,modelValue:T(B).quietHours.timezone,"onUpdate:modelValue":a[2]||=e=>T(B).quietHours.timezone=e,placeholder:T(z)},null,8,[`modelValue`,`placeholder`])])])):C(``,!0)])):C(``,!0)],64)):C(``,!0)])]),_:1})]),T(X)&&T(ft)?(u(),h(`div`,Re,[m(`span`,ze,l(i.$t(`views.settings.notifications.system_notifications`)),1),_(w,{class:`cui-card`},{content:c(()=>[m(`div`,Be,[m(`span`,Ve,l(i.$t(`views.settings.notifications.system_notifications_info`)),1),T(L)&&!T(I)?(u(),h(`div`,He,[_(d,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):T(I)?.system?.length?(u(),h(`div`,We,[(u(!0),h(x,null,f(T(I).system,(e,t)=>(u(),h(`div`,{key:e.type},[m(`div`,Ge,[m(`div`,Ke,[m(`label`,qe,l(It(e)),1),e.description?(u(),y(s,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:c(()=>[v(l(e.description),1)]),_:2},1024)):C(``,!0)]),_(p,{"model-value":Mt(e.type),class:`ml-auto shrink-0`,"onUpdate:modelValue":t=>Nt(e.type,t)},null,8,[`model-value`,`onUpdate:modelValue`])]),t<T(I).system.length-1?(u(),y(E,{key:0,class:`my-2`})):C(``,!0)]))),128))])):(u(),h(`div`,Ue,l(i.$t(`views.settings.notifications.no_system_types`)),1))])]),_:1})])):C(``,!0),T(X)?(u(),h(`div`,Je,[m(`span`,Ye,l(i.$t(`views.settings.notifications.plugin_notifications`)),1),_(w,{class:`cui-card`},{content:c(()=>[m(`div`,Xe,[m(`span`,Ze,l(i.$t(`views.settings.notifications.plugin_notifications_info`)),1),T(L)&&!T(I)?(u(),h(`div`,Qe,[_(d,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):T(I)?.plugins?.length?(u(),h(`div`,et,[(u(!0),h(x,null,f(T(I).plugins,(e,t)=>(u(),h(`div`,{key:e.id},[m(`div`,tt,[m(`div`,nt,[m(`label`,rt,l(e.name),1)]),_(p,{"model-value":Pt(e.id),class:`ml-auto shrink-0`,"onUpdate:modelValue":t=>Ft(e.id,t)},null,8,[`model-value`,`onUpdate:modelValue`])]),t<T(I).plugins.length-1?(u(),y(E,{key:0,class:`my-2`})):C(``,!0)]))),128))])):(u(),h(`div`,$e,l(i.$t(`views.settings.notifications.no_plugin_sources`)),1))])]),_:1})])):C(``,!0),T(X)?(u(),h(`div`,it,[m(`span`,at,l(i.$t(`views.settings.notifications.devices`)),1),_(w,{class:`cui-card`},{content:c(()=>[m(`div`,ot,[m(`span`,st,l(i.$t(`views.settings.notifications.devices_info`)),1),T(bt)&&!T(F)?(u(),h(`div`,ct,[_(d,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):T(F)?.length?(u(),y(k,{key:2,value:T(F),"striped-rows":``},{default:c(()=>[_(D,{field:`name`,header:i.$t(`views.settings.notifications.col_name`)},{body:c(({data:e})=>[_(S,{"model-value":T(J)[e.id]??e.name,disabled:T(Y)===e.id,class:`w-full max-w-xs min-w-[150px]`,"onUpdate:modelValue":t=>T(J)[e.id]=t??``,onBlur:t=>Wt(e),onKeyup:ie(t=>Wt(e),[`enter`])},null,8,[`model-value`,`disabled`,`onUpdate:modelValue`,`onBlur`,`onKeyup`])]),_:1},8,[`header`]),_(D,{field:`pluginName`,header:i.$t(`views.settings.notifications.col_plugin`)},{body:c(({data:e})=>[_(O,{label:e.pluginName,class:`text-xs`},null,8,[`label`])]),_:1},8,[`header`]),_(D,{field:`active`,header:i.$t(`views.settings.notifications.col_active`),style:{width:`7rem`}},{body:c(({data:e})=>[_(p,{"model-value":e.active,loading:T(Y)===e.id,"onUpdate:modelValue":t=>Gt(e.id,t)},null,8,[`model-value`,`loading`,`onUpdate:modelValue`])]),_:1},8,[`header`]),_(D,{field:`actions`,header:``,style:{width:`6rem`}},{body:c(({data:e})=>[re((u(),y(g,{severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:T(q)===e.id,onClick:t=>Ut(e.id)},{icon:c(()=>[_(fe,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[A,{value:i.$t(`views.settings.notifications.revoke`)}]])]),_:1})]),_:1},8,[`value`])):(u(),h(`div`,lt,l(i.$t(`views.settings.notifications.no_devices`)),1))])]),_:1})])):C(``,!0),T(B)&&T(Tt)?(u(),h(`div`,ut,[_(g,{severity:`secondary`,outlined:``,class:`cui-button-medium`,disabled:T(Z),label:i.$t(`views.settings.notifications.reset`),onClick:Ot},null,8,[`disabled`,`label`]),_(g,{severity:`success`,class:`cui-button-medium`,loading:T(Z),label:i.$t(`views.settings.notifications.save`),onClick:Lt},null,8,[`loading`,`label`])])):C(``,!0)])])}}});export{k as default};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{Bt as e,It as t,Kt as n,L as r,Vr as i,q as ee}from"./vendor-cameraui-BbGOMenD.js";import{An as a,Br as o,Dr as s,Ir as c,Lr as l,Nr as u,Or as d,Tr as f,gt as te,ht as ne,i as re,kr as p,lt as ie,o as m,r as h,rr as ae,st as oe}from"./api-BNrZVfeD.js";import{$n as g,C as se,Cr as _,Dn as v,Hn as ce,In as y,K as b,Rn as le,S as x,Xn as S,Xt as C,Z as ue,br as de,cn as w,dn as T,dr as E,er as fe,gn as D,hn as O,jn as pe,ln as k,or as me,rn as A,sn as j,sr as M,un as N,vn as P,x as F,yr as I}from"./vendor-DGke_6M4.js";import{a as he}from"./intercomService-Du8V_HxF.js";import{I as ge,b as L}from"./types-CNLAvgyw.js";import{n as _e,r as ve,t as ye}from"./lan-C3jliANx.js";import{K as be,L as xe,R as Se,a as Ce,j as we,l as Te,s as Ee,z as De}from"./vendor-primevue-DNJJiEZl.js";import{t as Oe}from"./server-CfZnIVzn.js";import{t as ke}from"./api-CK2tonlH.js";import{t as Ae}from"./information-outline-Blt4EtWJ.js";import{t as je}from"./CuiQRCode-DTSEFMBt.js";var Me={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function R(e,t){return y(),T(`svg`,Me,[...t[0]||=[w(`path`,{fill:`currentColor`,d:`M20.454 21.87L17.612 19H6.5q-1.896 0-3.198-1.302T2 14.5q0-1.829 1.226-3.098t2.87-1.368q.018-.373.208-.925q.19-.553.438-.951l-3.88-3.881l.707-.708l17.593 17.593zm.454-3.812L8.78 5.937q.875-.523 1.612-.73T12 5q2.502 0 4.251 1.749T18 11v1h.616q1.436.046 2.41 1.055T22 15.5q0 .687-.25 1.332t-.842 1.226`},null,-1)]])}var Ne=M({name:`material-symbols-light-cloud-off`,render:R}),Pe={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Fe(e,t){return y(),T(`svg`,Pe,[...t[0]||=[w(`path`,{fill:`currentColor`,d:`m9.55 18l-5.7-5.7l1.425-1.425L9.55 15.15l9.175-9.175L20.15 7.4z`},null,-1)]])}var Ie=M({name:`material-symbols-check`,render:Fe}),Le={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Re(e,t){return y(),T(`svg`,Le,[...t[0]||=[w(`path`,{fill:`currentColor`,d:`M20.5 16H15v-1h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v9c0 1.1.9 2 2 2h4v1H3.5c-.83 0-1.5.67-1.5 1.5v3c0 .83.67 1.5 1.5 1.5h17c.83 0 1.5-.67 1.5-1.5v-3c0-.83-.67-1.5-1.5-1.5M5 4h14v9H5zm10 16H5v-2h10zm3 0c-.55 0-1-.45-1-1s.45-1 1-1s1 .45 1 1s-.45 1-1 1`,class:`b`},null,-1)]])}var ze=M({name:`boxicons-computer-filled`,render:Re});async function Be({signal:e}){return(await c.get(`/remote`,{signal:e})).data}async function Ve(e){return(await c.patch(`/remote`,e)).data}async function He(e){return(await c.post(`/remote/pair/init`,e?{name:e}:{})).data}async function Ue({name:e}={}){return(await c.post(`/remote/pair/poll`,e?{name:e}:{})).data}async function We(){await c.delete(`/remote/unregister`)}async function Ge({signal:e}){return(await c.get(`/remote/status`,{signal:e})).data}async function Ke(e){await c.patch(`/remote/name`,{name:e})}async function qe({signal:e}){return(await c.get(`/remote/tunnel`,{signal:e})).data}async function Je({signal:e}={}){return(await c.get(`/remote/connection-info`,{signal:e})).data}async function z(e){return(await c.post(`/remote/test/${e}`)).data}async function Ye({signal:e}={}){return(await c.get(`/remote/cloudflare/managed/status`,{signal:e})).data}async function Xe(e){await c.post(`/remote/cloudflare/managed/connect`,{hostname:e})}async function Ze(){await c.post(`/remote/cloudflare/managed/cancel`)}async function Qe(){await c.post(`/remote/cloudflare/managed/disconnect`)}async function $e(){await c.post(`/remote/cloudflare/managed/logout`)}var et=class{_queryClient=ue();t=d.global.t;toast=s();queryActivator=E([{name:`getRemoteInfoQuery`,enabled:!0},{name:`getRegistrationStatusQuery`,enabled:!0},{name:`getTunnelStatusQuery`,enabled:!0},{name:`getConnectionInfoQuery`,enabled:!0},{name:`getCloudflareManagedStatusQuery`,enabled:!0}]);get queryClient(){return this._queryClient}getRemoteInfoQuery(){return f({queryKey:[`remote`],queryFn:({signal:e})=>Be({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getRemoteInfoQuery`&&e.enabled),staleTime:1e3})}patchRemoteInfoQuery(){return b({mutationFn:Ve,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.remote_updated`),life:3e3})}})}getRegistrationStatusQuery(){return f({queryKey:[`remote`,`status`],queryFn:({signal:e})=>Ge({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getRegistrationStatusQuery`&&e.enabled),staleTime:1e3})}pairInitMutation(){return b({mutationFn:He})}pairPollMutation(){return b({mutationFn:Ue,onSuccess:async e=>{e.state===`confirmed`&&(await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`remote`,`status`],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.remote_registered`),life:3e3}))}})}unregisterServerQuery(){return b({mutationFn:We,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`remote`,`status`],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.remote_unregistered`),life:3e3})}})}getTunnelStatusQuery(){return f({queryKey:[`remote`,`tunnel`],queryFn:({signal:e})=>qe({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getTunnelStatusQuery`&&e.enabled),refetchInterval:3e4,staleTime:1e4})}updateServerNameQuery(){return b({mutationFn:Ke,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`,`status`],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.server_name_updated`),life:3e3})}})}getConnectionInfoQuery(){return f({queryKey:[`remote`,`connection-info`],queryFn:({signal:e})=>Je({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getConnectionInfoQuery`&&e.enabled),refetchInterval:1e4})}testRemoteModeMutation(){return b({mutationFn:z})}getCloudflareManagedStatusQuery(){return f({queryKey:[`remote`,`cloudflare`,`managed`],queryFn:({signal:e})=>Ye({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getCloudflareManagedStatusQuery`&&e.enabled),refetchInterval:e=>{let t=e.state.data?.state;return t===`awaiting_login`||t===`creating_tunnel`||t===`setting_dns`?2e3:!1},refetchOnWindowFocus:!0,staleTime:1e3})}cloudflareManagedConnectMutation(){return b({mutationFn:Xe,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedCancelMutation(){return b({mutationFn:Ze,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedDisconnectMutation(){return b({mutationFn:Qe,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedLogoutMutation(){return b({mutationFn:$e,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}toggleQueryActivator(e,t){let n=this.queryActivator.value.find(t=>t.name===e);return n&&(n.enabled=t),this}},tt={class:`flex flex-col gap-6`},nt={class:`flex flex-col field-gap`},rt={class:`section-chip`},B={class:`text-sm font-bold text-color`},V={class:`flex flex-col field-gap`},H={class:`section-chip`},U={class:`text-sm text-color`},W={class:`flex flex-col field-gap`},G={class:`section-chip`},K={key:0,class:`text-sm text-muted`},it={key:1,class:`flex flex-col gap-2`},q={class:`flex flex-col min-w-0`},J={class:`text-sm text-color`},at={class:`text-xs text-muted break-all`},ot=P({__name:`ConnectionDetails`,props:{currentType:{},currentAddress:{}},setup(e,{expose:t}){let n=e,r=new ke,ee=s(),{t:a}=i(),{data:c}=r.apiInfoQuery(),u=o()?l():void 0,d=h(),f=j(()=>u?.attempts.rounds.value[0]),te=j(()=>u?.target.value?.endpoint.url??a(`components.connection_details.no_target`)),ne=j(()=>{let e=u?.target.value?.endpoint;return e?ie(e):a(`components.connection_details.no_target`)}),p=j(()=>f.value?.attempts.map(e=>({...e,modeLabel:ie({url:e.url,mode:e.mode})}))??[]);function ie(e){return ve(e,d)?a(`components.connection_details.mode_lan`):a(`components.connection_details.mode_wan`)}function m(e){return e.outcome===`connected`&&e.url===te.value}function ae(e){return m(e)?`bg-green-500`:e.outcome===`failed`?`bg-red-500`:`bg-neutral-400`}function oe(e){return e.durationMs===void 0?`…`:e.durationMs>=1e3?`${(e.durationMs/1e3).toFixed(1)} s`:`${e.durationMs} ms`}function se(e){return m(e)?a(`components.connection_details.outcome_connected`):e.outcome===`connected`?a(`components.connection_details.outcome_reachable`):e.outcome===`superseded`?a(`components.connection_details.outcome_superseded`):e.outcome===`pending`?a(`components.connection_details.outcome_pending`):e.reason?.includes(`timeout`)?a(`components.connection_details.outcome_timeout`):e.reason??a(`components.connection_details.outcome_failed`)}async function v(){let e=[new Date().toISOString(),`camera.ui ${c.value?.version??`?`}`,``,`${ne.value}: ${te.value}`,`server sees: ${n.currentType} ${n.currentAddress}`,``];for(let t of p.value)e.push(`${m(t)?`+`:`-`} ${t.modeLabel} ${t.url} ${oe(t)} ${se(t)}`);if(f.value?.reason&&e.push(``,f.value.reason),await re(e.join(`
|
|
2
|
-
`))){ee.add({severity:`success`,detail:a(`components.connection_details.copied`),life:2e3});return}return ee.add({severity:`error`,detail:a(`components.connection_details.copy_failed`),life:3e3}),null}return t({onConfirm:v}),(t,n)=>{let r=De;return y(),T(`div`,tt,[w(`div`,nt,[w(`span`,rt,_(t.$t(`components.connection_details.current`)),1),w(`span`,B,_(I(ne)),1),D(r,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint break-all`},{default:g(()=>[O(_(I(te)),1)]),_:1})]),w(`div`,V,[w(`span`,H,_(t.$t(`components.connection_details.server_view`)),1),w(`span`,U,_(e.currentType),1),D(r,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint break-all`},{default:g(()=>[O(_(e.currentAddress),1)]),_:1})]),w(`div`,W,[w(`span`,G,_(t.$t(`components.connection_details.last_attempt`)),1),I(p).length===0?(y(),T(`p`,K,_(t.$t(`components.connection_details.no_attempts`)),1)):(y(),T(`div`,it,[(y(!0),T(A,null,le(I(p),e=>(y(),T(`div`,{key:e.url,class:`flex items-start gap-3`},[w(`span`,{class:de([`mt-1.5 w-2 h-2 rounded-full shrink-0`,ae(e)])},null,2),w(`div`,q,[w(`span`,J,[O(_(e.modeLabel)+` `,1),n[0]||=w(`span`,{class:`text-muted`},`·`,-1),O(` `+_(oe(e))+` `,1),n[1]||=w(`span`,{class:`text-muted`},`·`,-1),O(` `+_(se(e)),1)]),w(`span`,at,_(e.url),1)])]))),128))]))])])}}}),st=ge,ct=L,lt={class:`w-full h-full`},ut={key:0,class:`w-full h-full flex items-center justify-center`},dt={key:1,class:`flex flex-col w-full gap-6`},ft={key:0},pt={class:`card-title`},mt={class:`flex items-center gap-4`},ht={class:`flex flex-col field-switch-gap min-w-0`},gt={class:`text-sm font-bold text-color`},_t={class:`card-title`},vt={class:`flex flex-col gap-6`},yt={class:`flex items-center gap-4`},bt={class:`flex flex-col field-switch-gap`},xt={for:`enabled`,class:`cui-label-switch`},St={class:`flex flex-col field-gap`},Ct={for:`serverName`,class:`cui-label`},wt={class:`flex items-center gap-4`},Tt={class:`flex flex-col field-switch-gap`},Et={class:`text-sm`},Dt={class:`ml-auto shrink-0`},Ot={key:1,class:`text-sm font-bold text-amber-500`},kt={key:2,class:`text-sm font-bold`},At={key:0,class:`flex items-center gap-4`},jt={class:`flex flex-col field-switch-gap`},Mt={class:`text-sm`},Nt={class:`ml-auto shrink-0`},Pt={key:`pairing`,class:`cui-toggle-switch flex flex-col gap-4`},Ft={class:`cui-pair-layout`},It={class:`cui-pair-qr`},Lt={class:`flex flex-col gap-4 flex-1 min-w-0`},Rt={class:`flex flex-col field-gap`},zt={class:`cui-label`},Bt={class:`flex flex-col field-gap`},Vt={class:`cui-label`},Ht={class:`flex items-center gap-3`},Ut={class:`text-sm`},Wt={class:`flex items-center gap-4`},Gt={class:`flex`},Kt={class:`card-title`},qt={class:`flex flex-col gap-6`},Jt={class:`flex items-center gap-4`},Yt={class:`flex flex-col field-switch-gap`},Xt={for:`directEnabled`,class:`cui-label-switch`},Zt={class:`flex flex-col field-gap`},Qt={class:`cui-label`},$t={for:`directMode`,class:`cui-label`},en={key:0,class:`cui-toggle-switch flex flex-col gap-4`},tn={class:`flex flex-col field-gap`},nn={for:`cloudflareVariant`,class:`cui-label`},rn={key:0,class:`flex items-center gap-3`},an={class:`flex flex-col field-gap`},on={for:`cloudflareHostname`,class:`cui-label`},sn={class:`flex flex-col field-gap`},cn={for:`cloudflareToken`,class:`cui-label`},ln={class:`flex items-center gap-3`},un={class:`flex flex-col field-gap`},dn={for:`cloudflareHostnameManaged`,class:`cui-label`},fn={class:`flex items-center gap-3`},pn={key:0,class:`cf-login-setup`},mn={class:`cf-login-qr`},hn={class:`flex flex-col gap-4 flex-1 min-w-0`},gn={class:`flex flex-col field-gap`},_n={class:`cui-label`},vn={class:`flex items-center gap-3`},yn={class:`text-sm`},bn={key:1,class:`flex items-center gap-3`},xn={class:`text-sm`},Sn={key:2,class:`flex items-center gap-3`},Cn={class:`text-sm`},wn={class:`flex flex-col field-gap`},Tn={class:`cui-label`},En={key:0,class:`flex flex-col field-gap`},Dn={class:`cui-label`},On={class:`flex items-center gap-3`},kn={key:1,class:`cui-toggle-switch flex flex-col gap-4`},An={for:`customDomain.url`,class:`cui-label`},jn={class:`flex items-center gap-3`},Mn={class:`card-title`},Nn={class:`flex flex-col gap-6`},Pn={class:`text-sm`},Fn={for:`serverAddresses`,class:`cui-label`},In={for:`localUrl`,class:`cui-label`},Ln=a(P({__name:`SettingsRemote`,setup(a){let o=new Oe,c=new et,l=he(),d=oe(),f=s(),{t:h}=i(),{endpoint:b,isOnline:le}=p(),{data:ue,isBusy:M}=o.getServerInfoQuery(),{data:P,isBusy:ge}=c.getRemoteInfoQuery(),{data:L,isBusy:ve}=c.getRegistrationStatusQuery(),{data:ke,isLoading:Me}=c.getTunnelStatusQuery(),{data:R}=c.getConnectionInfoQuery(),{mutateAsync:Pe,isPending:Fe}=o.patchSystemInfoQuery(),{mutateAsync:Le,isPending:Re}=c.patchRemoteInfoQuery(),{mutateAsync:Be,isPending:Ve}=c.pairInitMutation(),{mutateAsync:He}=c.pairPollMutation(),{mutateAsync:Ue,isPending:We}=c.unregisterServerQuery(),{mutateAsync:Ge,isPending:Ke}=c.updateServerNameQuery(),{mutateAsync:qe,isPending:Je}=c.testRemoteModeMutation(),{data:z}=c.getCloudflareManagedStatusQuery(),{mutateAsync:Ye,isPending:Xe}=c.cloudflareManagedConnectMutation(),{mutateAsync:Ze,isPending:Qe}=c.cloudflareManagedCancelMutation(),{mutateAsync:$e,isPending:tt}=c.cloudflareManagedDisconnectMutation(),{mutateAsync:nt,isPending:rt}=c.cloudflareManagedLogoutMutation(),B=E(),V=E(),H=E(``),U=E(``),W=E(`quick`),G=E(``),K=E(``),it=E(!1),q=E(null),J=E(``),at=E(null),Ln=E(2),Rn=E(``),zn=null,Y=null,X=j(()=>Fe.value||Re.value||M.value||ge.value||ve.value||We.value),Bn=j(()=>!!(V.value?.enabled||V.value?.directEnabled)),Vn=j(()=>P.value?.directOverride??{active:!1,fallback:!1}),Z=j(()=>L.value?.isRegistered??!1),Hn=j(()=>L.value?.needsReauth??!1),Un=j(()=>!X.value),Wn=j(()=>{if(!Un.value)return!1;let e=H.value.trim();return!e||e.length>100?!1:e!==(L.value?.serverName??``)}),Gn=j(()=>{if(!V.value)return!1;if(V.value.directMode===`customDomain`){let e=U.value.trim();if(!e)return!1;try{new URL(e)}catch{return!1}return e!==(P.value?.remoteSettings.customDomain.url??``)}if(V.value.directMode===`cloudflare`){let e=P.value?.remoteSettings.cloudflare,t=P.value?.remoteSettings.directMode!==`cloudflare`,n=W.value;if(n===`quick`)return t||e?.mode!==`quick`;let r=G.value.trim();if(!r||!/^[a-z0-9.-]+\.[a-z]{2,}$/i.test(r))return!1;if(n===`token`){let n=K.value.trim();if(!n&&!it.value)return!1;let i=n.length>0;return t||e?.mode!==`token`||e?.hostname!==r||i}return n===`managed`?t||e?.mode!==`managed`||e?.hostname!==r:!1}return V.value.directMode!==P.value?.remoteSettings.directMode}),Kn=j(()=>[{value:`cloudflare`,label:h(`components.form.label.cloudflare`),description:h(`components.form.hint.cloudflare_mode_info`)},{value:`customDomain`,label:h(`components.form.label.custom_domain`),description:h(`components.form.hint.custom_domain_mode_info`)}]),qn=j(()=>Kn.value.find(e=>e.value===V.value?.directMode)?.description??``),Jn=j(()=>[{value:`quick`,label:h(`components.form.label.cloudflare_variant_quick`),description:h(`components.form.hint.cloudflare_variant_quick`)},{value:`token`,label:h(`components.form.label.cloudflare_variant_token`),description:h(`components.form.hint.cloudflare_variant_token`)},{value:`managed`,label:h(`components.form.label.cloudflare_variant_managed`),description:h(`components.form.hint.cloudflare_variant_managed`)}]),Yn=j(()=>Jn.value.find(e=>e.value===W.value)?.description??``),Xn=j(()=>{if(W.value===`quick`)return!0;let e=P.value?.remoteSettings.cloudflare;return e?.mode===W.value&&!!e?.hostname}),Q=j(()=>z.value?.state??`idle`),Zn=j(()=>{if(Q.value!==`idle`)return!1;let e=G.value.trim();return!!e&&/^[a-z0-9.-]+\.[a-z]{2,}$/i.test(e)}),Qn=j(()=>{let e=R.value?.currentConnection.type??`lan`;return h(`views.settings.connection_type.${e}`)}),$n=j(()=>{let e=R.value?.currentConnection.type;return e===`external`?_e:e===`local`?ze:ye}),er=j(()=>{let e=R.value?.currentConnection.type;return e===`external`?`text-info`:e===`local`?`text-primary`:`text-success`});function tr(){d.openComponentDialog(ot,{data:{title:h(`components.connection_details.title`),confirmText:h(`components.connection_details.copy`),cancelText:h(`components.form.button.close`),contentProps:{currentType:Qn,currentAddress:j(()=>R.value?.currentConnection.address??``)}}})}async function nr(){let e=H.value.trim();if(e)try{await Ge(e)}catch{}}function rr(){d.openTextDialog({data:{title:h(`components.dialog.title.unregister_server`),confirmText:h(`components.form.button.unregister`),contentText:h(`components.dialog.message.confirm_unregister_server`),loading:X},onConfirm:async()=>{try{await Ue()}catch{}}})}function ir(){zn&&=(clearTimeout(zn),null),Y&&=(clearInterval(Y),null)}function $(){ir(),q.value=null,J.value=``,at.value=null,Rn.value=``}function ar(e){let t=Math.max(0,Math.floor(e/1e3));return`${Math.floor(t/60)}:${(t%60).toString().padStart(2,`0`)}`}function or(){Y&&clearInterval(Y);let e=()=>{if(!at.value)return;let e=at.value-Date.now();if(e<=0){$(),f.add({severity:`warn`,detail:h(`components.toast.pair_expired`),life:3e3});return}Rn.value=ar(e)};e(),Y=setInterval(e,1e3)}function sr(){zn&&clearTimeout(zn),zn=setTimeout(cr,Ln.value*1e3)}async function cr(){if(!q.value)return;let e=q.value;try{let t=await He({name:H.value.trim()||void 0});if(!q.value||q.value!==e)return;if(t.state===`confirmed`){$();return}if(t.state===`expired`){$(),f.add({severity:`warn`,detail:h(`components.toast.pair_expired`),life:3e3});return}if(t.state===`denied`){$(),f.add({severity:`warn`,detail:h(`components.toast.pair_denied`),life:3e3});return}t.state===`slow_down`&&(Ln.value=Math.min(Ln.value+2,10)),sr()}catch(t){if(!q.value||q.value!==e)return;l.error(`pair poll failed:`,t),sr()}}async function lr(){$();try{let e=H.value.trim();if(e&&e!==(L.value?.serverName??``))try{await Ge(e)}catch{}let t=await Be(e||void 0);q.value=t.userCode,J.value=t.verificationUriComplete,at.value=Date.now()+t.expiresIn*1e3,Ln.value=Math.max(1,t.pollInterval),or(),sr()}catch(e){f.add({severity:`error`,detail:e,life:3e3})}}function ur(){$()}async function dr(){if(q.value)try{await re(q.value)}catch{}}async function fr(){if(J.value)try{await re(J.value)}catch{}}function pr(){J.value&&window.open(J.value,`_blank`,`noopener`)}function mr(e){let t=window.location.host===u||!1,n;n=e?`components.dialog.message.confirm_enable_cloud`:t?`components.dialog.message.confirm_disable_cloud_remote`:`components.dialog.message.confirm_disable_cloud_local`,d.openTextDialog({data:{title:h(`components.dialog.title.confirm`),contentText:h(n),confirmText:h(e?`components.form.button.enable`:`components.form.button.disable`),loading:X,confirmButtonProps:e?void 0:{severity:`danger`}},onConfirm:async()=>{try{await Le(e?{enabled:!0}:{enabled:!1})}catch{V.value&&(V.value.enabled=!e)}},onCancel:()=>{V.value&&(V.value.enabled=!e)}})}function hr(e){Le({directEnabled:e}).catch(()=>{V.value&&(V.value.directEnabled=!e)})}function gr(e){V.value&&(V.value.directMode=e)}function _r(e){W.value=e}async function vr(){let e=G.value.trim();if(e)try{await Le({directMode:`cloudflare`,cloudflare:{mode:`managed`,hostname:e}}),await Ye(e)}catch{}}async function yr(){try{await Ze()}catch{}}async function br(){try{await $e()}catch{}}async function xr(){try{await nt()}catch{}}async function Sr(e){try{await re(e)}catch{}}function Cr(e){window.open(e,`_blank`,`noopener`)}async function wr(e){try{let t=await qe(e);t.ok?f.add({severity:`success`,detail:h(`components.toast.remote_test_success`),life:3e3}):f.add({severity:`error`,detail:h(`components.toast.remote_test_failed`,{message:t.message??``}),life:5e3})}catch(e){f.add({severity:`error`,detail:h(`components.toast.remote_test_failed`,{message:e?.message??``}),life:5e3})}}async function Tr(e){let t={directMode:e.directMode};if(e.directMode===`customDomain`)t.customDomain={url:U.value.trim()};else if(e.directMode===`cloudflare`){let e=W.value;if(e===`quick`)t.cloudflare={mode:`quick`,hostname:null,token:null};else if(e===`token`){let e=K.value.trim();t.cloudflare={mode:`token`,hostname:G.value.trim(),...e?{token:e}:{}}}else e===`managed`&&(t.cloudflare={mode:`managed`,hostname:G.value.trim(),token:null})}try{await Le(t)}catch{}}async function Er(e){try{await Pe(e)}catch{}}return S(()=>L.value?.serverName,e=>{e&&(H.value=e)},{immediate:!0}),S(Z,e=>{e&&q.value&&$()}),S([le,b],([e])=>{e&&c.queryClient.refetchQueries({queryKey:[`remote`,`connection-info`],exact:!0})}),S(ue,e=>{if(e){let t=m(e);B.value={...t,serverAddresses:(t.serverAddresses||[]).filter(Boolean),localUrl:t.localUrl??``}}},{deep:!0,immediate:!0}),S(P,e=>{if(e){let t=m(e);V.value={...t.remoteSettings},U.value=t.remoteSettings.customDomain.url??``;let n=t.remoteSettings.cloudflare;W.value=n?.mode??`quick`,G.value=n?.hostname??``,K.value=``,it.value=t.cloudflareTokenSet??!1}},{deep:!0,immediate:!0}),pe(()=>{ir()}),(i,a)=>{let o=t,s=De,c=Ae,l=e,u=ee,d=be,f=r,re=Ie,p=xe,m=Se,h=Ce,oe=je,b=te,le=ae,S=Ne,E=we,pe=Ee,j=Te,M=n;return y(),T(`div`,lt,[!I(B)||!I(V)?(y(),T(`div`,ut,[D(o,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(y(),T(`div`,dt,[I(R)?(y(),T(`div`,ft,[w(`span`,pt,_(i.$t(`views.settings.connection_status`)),1),D(u,{class:`cui-card`},{content:g(()=>[w(`div`,mt,[(y(),k(ce(I($n)),{class:de([`shrink-0 w-6 h-6`,I(er)])},null,8,[`class`])),w(`div`,ht,[w(`span`,gt,_(I(Qn)),1),D(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:g(()=>[O(_(I(R).currentConnection.address),1)]),_:1})]),fe((y(),k(l,{rounded:``,text:``,severity:`secondary`,class:`ml-auto shrink-0`,"aria-label":i.$t(`components.connection_details.title`),onClick:tr},{icon:g(()=>[D(c,{class:`w-5 h-5`})]),_:1},8,[`aria-label`])),[[M,{value:i.$t(`components.connection_details.title`)},void 0,{left:!0}]])])]),_:1})])):N(``,!0),D(I(se),{ref:`remoteFormRef`,class:`flex flex-col w-full gap-6`,"validation-schema":I(st),onSubmit:a[18]||=e=>Tr(e)},{default:g(()=>[w(`div`,null,[w(`span`,_t,_(i.$t(`views.settings.cloud`)),1),D(u,{class:`cui-card`},{content:g(()=>[w(`div`,vt,[D(I(x),{"model-value":I(V).enabled,value:!0,"unchecked-value":!1,type:`checkbox`,name:`enabled`,as:`div`,class:`flex flex-col field-gap cui-toggle-switch`},{default:g(({field:e,errors:t})=>[w(`div`,yt,[w(`div`,bt,[w(`label`,xt,_(i.$t(`components.form.label.enabled`)),1),D(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:g(()=>[O(_(i.$t(`components.form.hint.cloud_access_enabled_info`)),1)]),_:1}),D(C,{name:`fade`},{default:g(()=>[D(I(F),{name:`enabled`,class:`cui-input-switch-error`})]),_:1})]),D(d,v({"model-value":I(V).enabled},e,{invalid:t.length>0,loading:I(X),class:`ml-auto shrink-0`,onValueChange:a[0]||=e=>I(V).enabled=e,"onUpdate:modelValue":a[1]||=e=>mr(e)}),null,16,[`model-value`,`invalid`,`loading`])])]),_:1},8,[`model-value`]),w(`div`,St,[w(`label`,Ct,_(i.$t(`views.settings.server_name_label`)),1),D(m,null,{default:g(()=>[D(f,{id:`serverName`,modelValue:I(H),"onUpdate:modelValue":a[2]||=e=>me(H)?H.value=e:null,modelModifiers:{trim:!0},disabled:!I(Un),loading:I(X),type:`text`,maxlength:100},null,8,[`modelValue`,`disabled`,`loading`]),D(p,null,{default:g(()=>[fe((y(),k(l,{text:``,severity:`secondary`,loading:I(Ke),disabled:!I(Wn),type:`button`,onClick:nr},{icon:g(()=>[D(re)]),_:1},8,[`loading`,`disabled`])),[[M,{value:i.$t(`components.form.button.save`)}]])]),_:1})]),_:1}),D(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:g(()=>[O(_(i.$t(`views.settings.server_name_info`)),1)]),_:1})]),w(`div`,wt,[w(`div`,Tt,[w(`span`,Et,_(i.$t(`views.settings.status`)),1),D(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:g(()=>[O(_(i.$t(`views.settings.status_info`)),1)]),_:1})]),w(`div`,Dt,[I(X)?(y(),k(o,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):I(Hn)?(y(),T(`span`,Ot,_(i.$t(`views.settings.needs_reauth`)),1)):(y(),T(`span`,kt,_(I(Z)?i.$t(`views.settings.registered`):i.$t(`views.settings.not_registered`)),1))])]),I(Z)?(y(),T(`div`,At,[w(`div`,jt,[w(`span`,Mt,_(i.$t(`views.settings.tunnel_status`)),1),D(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:g(()=>[O(_(i.$t(`views.settings.tunnel_status_info`)),1)]),_:1})]),w(`div`,Nt,[I(Me)?(y(),k(o,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):(y(),k(h,{key:1,severity:I(ke)?.connected?`success`:`secondary`,value:I(ke)?.connected?i.$t(`views.settings.tunnel_connected`):i.$t(`views.settings.tunnel_disconnected`)},null,8,[`severity`,`value`]))])])):N(``,!0),D(C,{name:`fade`,mode:`out-in`},{default:g(()=>[I(q)?(y(),T(`div`,Pt,[D(s,{severity:`error`,variant:`simple`,size:`small`,class:`text-primary`},{default:g(()=>[O(_(i.$t(`views.settings.pair_instructions`)),1)]),_:1}),w(`div`,Ft,[w(`div`,It,[D(oe,{value:I(J),size:180,"logo-size":36},null,8,[`value`])]),w(`div`,Lt,[w(`div`,Rt,[w(`label`,zt,_(i.$t(`views.settings.pair_code`)),1),D(m,null,{default:g(()=>[D(f,{"model-value":I(q),readonly:``,class:`font-mono text-lg text-center tracking-widest`},null,8,[`model-value`]),D(p,null,{default:g(()=>[D(b,{"action-text":i.$t(`components.form.tooltip.copied`),icon:I(ne),"button-props":{severity:`secondary`,text:!0},onAction:dr},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),D(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:g(()=>[O(_(i.$t(`views.settings.pair_code_hint`)),1)]),_:1})]),w(`div`,Bt,[w(`label`,Vt,_(i.$t(`views.settings.pair_url`)),1),D(m,null,{default:g(()=>[D(f,{"model-value":I(J),readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),D(p,null,{default:g(()=>[D(b,{"action-text":i.$t(`components.form.tooltip.copied`),icon:I(ne),"button-props":{severity:`secondary`,text:!0},onAction:fr},null,8,[`action-text`,`icon`])]),_:1}),D(p,null,{default:g(()=>[fe((y(),k(l,{type:`button`,severity:`secondary`,text:``,onClick:pr},{icon:g(()=>[D(I(ie))]),_:1})),[[M,{value:i.$t(`components.form.button.open_in_browser`)}]])]),_:1})]),_:1})]),w(`div`,Ht,[D(o,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),w(`span`,Ut,_(i.$t(`views.settings.pair_waiting`,{remaining:I(Rn)})),1),D(l,{type:`button`,severity:`secondary`,class:`cui-button-small ml-auto`,label:i.$t(`components.form.button.cancel`),onClick:ur},null,8,[`label`])])])])])):N(``,!0)]),_:1}),w(`div`,Wt,[w(`div`,Gt,[fe((y(),k(l,{severity:`secondary`,rounded:``,class:`cui-icon-lg text-color`,disabled:!I(Z),onClick:a[3]||=e=>i.$router.absUrl(I(`https://cloud.cameraui.com`),!0)},{icon:g(()=>[I(Z)?(y(),k(le,{key:0,width:`100%`,height:`100%`})):(y(),k(S,{key:1,width:`100%`,height:`100%`}))]),_:1},8,[`disabled`])),[[M,{value:I(Z)?i.$t(`views.settings.registered`):i.$t(`views.settings.not_registered`)}]])]),a[22]||=w(`div`,{class:`ml-auto`},null,-1),!I(Z)&&!I(q)?(y(),k(l,{key:0,loading:I(Ve),class:`cui-button-medium`,label:i.$t(`components.form.button.register_server`),onClick:lr},null,8,[`loading`,`label`])):N(``,!0),I(Hn)&&!I(q)?(y(),k(l,{key:1,loading:I(Ve),severity:`warn`,class:`cui-button-medium`,label:i.$t(`components.form.button.reconnect_server`),onClick:lr},null,8,[`loading`,`label`])):N(``,!0),I(Z)?(y(),k(l,{key:2,loading:I(X),severity:I(Hn)?`secondary`:void 0,text:I(Hn),class:`cui-button-medium`,label:i.$t(`components.form.button.unregister_server`),onClick:rr},null,8,[`loading`,`severity`,`text`,`label`])):N(``,!0)])])]),_:1})]),w(`div`,null,[w(`span`,Kt,_(i.$t(`views.settings.direct_connection`)),1),D(u,{class:`cui-card`},{content:g(()=>[w(`div`,qt,[D(I(x),{"model-value":I(V).directEnabled,value:!0,"unchecked-value":!1,type:`checkbox`,name:`directEnabled`,as:`div`,class:`flex flex-col field-gap cui-toggle-switch`},{default:g(({field:e,errors:t})=>[w(`div`,Jt,[w(`div`,Yt,[w(`label`,Xt,_(i.$t(`components.form.label.enabled`)),1),D(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:g(()=>[O(_(i.$t(`views.settings.direct_connection_info`)),1)]),_:1}),D(C,{name:`fade`},{default:g(()=>[D(I(F),{name:`directEnabled`,class:`cui-input-switch-error`})]),_:1})]),D(d,v({"model-value":I(Bn)},e,{invalid:t.length>0,loading:I(X),disabled:I(V).enabled,class:`ml-auto shrink-0`,onValueChange:a[4]||=e=>I(V).directEnabled=e,"onUpdate:modelValue":a[5]||=e=>hr(e)}),null,16,[`model-value`,`invalid`,`loading`,`disabled`])]),D(C,{name:`fade`},{default:g(()=>[I(Vn).active?(y(),k(s,{key:0,variant:`simple`,size:`small`,class:`cui-input-switch-hint text-primary`},{default:g(()=>[O(_(I(Vn).fallback?i.$t(`views.settings.direct_override_fallback`):i.$t(`views.settings.direct_override_active`)),1)]),_:1})):N(``,!0)]),_:1})]),_:1},8,[`model-value`]),I(Bn)?(y(),T(A,{key:0},[w(`div`,Zt,[w(`label`,Qt,_(i.$t(`views.settings.external_url`)),1),D(f,{readonly:``,type:`text`,value:I(R)?.externalUrl??i.$t(`components.form.label.disconnected`)},null,8,[`value`]),D(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:g(()=>[O(_(i.$t(`views.settings.external_url_info`)),1)]),_:1})]),D(I(x),{"model-value":I(V).directMode,name:`directMode`,as:`div`,class:`flex flex-col field-gap`},{default:g(({errors:e})=>[w(`label`,$t,_(i.$t(`views.settings.connection_method`)),1),D(E,{"model-value":I(V).directMode,options:I(Kn),"option-label":`label`,"option-value":`value`,invalid:e.length>0,loading:I(X),"onUpdate:modelValue":a[6]||=e=>gr(e)},null,8,[`model-value`,`options`,`invalid`,`loading`]),D(C,{name:`fade`},{default:g(()=>[D(I(F),{name:`directMode`,class:`cui-input-error`})]),_:1}),D(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:g(()=>[O(_(I(qn)),1)]),_:1})]),_:1},8,[`model-value`]),I(V).directMode===`cloudflare`?(y(),T(`div`,en,[w(`div`,tn,[w(`label`,nn,_(i.$t(`components.form.label.cloudflare_variant`)),1),D(E,{"model-value":I(W),options:I(Jn),"option-label":`label`,"option-value":`value`,loading:I(X),"onUpdate:modelValue":a[7]||=e=>_r(e)},null,8,[`model-value`,`options`,`loading`]),D(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:g(()=>[O(_(I(Yn)),1)]),_:1})]),I(W)===`quick`?(y(),T(`div`,rn,[D(l,{type:`button`,severity:`secondary`,loading:I(Je),class:`cui-button-small`,label:i.$t(`components.form.button.test_connection`),onClick:a[8]||=e=>wr(`cloudflare`)},null,8,[`loading`,`label`])])):I(W)===`token`?(y(),T(A,{key:1},[w(`div`,an,[w(`label`,on,_(i.$t(`components.form.label.hostname`)),1),D(f,{id:`cloudflareHostname`,modelValue:I(G),"onUpdate:modelValue":a[9]||=e=>me(G)?G.value=e:null,modelModifiers:{trim:!0},loading:I(X),type:`text`,placeholder:`nvr.example.com`,maxlength:253},null,8,[`modelValue`,`loading`]),D(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:g(()=>[O(_(i.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),w(`div`,sn,[w(`label`,cn,_(i.$t(`components.form.label.tunnel_token`)),1),D(pe,{id:`cloudflareToken`,modelValue:I(K),"onUpdate:modelValue":a[10]||=e=>me(K)?K.value=e:null,modelModifiers:{trim:!0},loading:I(X),feedback:!1,"toggle-mask":``,fluid:``,placeholder:I(it)?`••••••••••••`:`eyJ...`},null,8,[`modelValue`,`loading`,`placeholder`]),D(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:g(()=>[O(_(I(it)?i.$t(`components.form.hint.cloudflare_token_already_set`):i.$t(`components.form.hint.cloudflare_token_info`)),1)]),_:1})]),w(`div`,ln,[D(l,{type:`button`,severity:`secondary`,loading:I(Je),disabled:!I(Xn),class:`cui-button-small`,label:i.$t(`components.form.button.test_connection`),onClick:a[11]||=e=>wr(`cloudflare`)},null,8,[`loading`,`disabled`,`label`])])],64)):I(W)===`managed`?(y(),k(C,{key:2,name:`fade`,mode:`out-in`},{default:g(()=>[(y(),T(`div`,{key:I(Q),class:`flex flex-col gap-4`},[I(Q)===`idle`?(y(),T(A,{key:0},[w(`div`,un,[w(`label`,dn,_(i.$t(`components.form.label.hostname`)),1),D(f,{id:`cloudflareHostnameManaged`,modelValue:I(G),"onUpdate:modelValue":a[12]||=e=>me(G)?G.value=e:null,modelModifiers:{trim:!0},loading:I(X),type:`text`,placeholder:`nvr.example.com`,maxlength:253},null,8,[`modelValue`,`loading`]),D(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:g(()=>[O(_(i.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),I(z)?.lastError?(y(),k(s,{key:0,severity:`error`,variant:`simple`,size:`small`},{default:g(()=>[O(_(I(z).lastError),1)]),_:1})):N(``,!0),w(`div`,fn,[D(l,{type:`button`,loading:I(Xe),disabled:!I(Zn),class:`cui-button-medium`,label:i.$t(`components.form.button.connect_cloudflare`),onClick:vr},null,8,[`loading`,`disabled`,`label`])])],64)):I(Q)===`awaiting_login`?(y(),T(A,{key:1},[I(z)?.loginUrl?(y(),T(`div`,pn,[w(`div`,mn,[D(oe,{value:I(z).loginUrl,size:160,"logo-size":32},null,8,[`value`])]),w(`div`,hn,[D(s,{variant:`simple`,size:`small`,class:`text-primary`},{default:g(()=>[O(_(i.$t(`components.form.hint.cloudflare_managed_awaiting_login`,{hostname:I(G)})),1)]),_:1}),w(`div`,gn,[w(`label`,_n,_(i.$t(`components.form.label.cloudflare_url`)),1),D(m,null,{default:g(()=>[D(f,{"model-value":I(z).loginUrl,readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),D(p,null,{default:g(()=>[D(b,{"action-text":i.$t(`components.form.tooltip.copied`),icon:I(ne),"button-props":{severity:`secondary`,text:!0},onAction:a[13]||=e=>Sr(I(z).loginUrl)},null,8,[`action-text`,`icon`])]),_:1}),D(p,null,{default:g(()=>[fe((y(),k(l,{type:`button`,severity:`secondary`,text:``,onClick:a[14]||=e=>Cr(I(z).loginUrl)},{icon:g(()=>[D(I(ie))]),_:1})),[[M,{value:i.$t(`components.form.button.open_in_browser`)}]])]),_:1})]),_:1})]),w(`div`,vn,[D(o,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),w(`span`,yn,_(i.$t(`views.settings.cloudflare_login_waiting`)),1),D(l,{type:`button`,severity:`secondary`,loading:I(Qe),class:`cui-button-small ml-auto`,label:i.$t(`components.form.button.cancel`),onClick:yr},null,8,[`loading`,`label`])])])])):(y(),T(`div`,bn,[D(o,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),w(`span`,xn,_(i.$t(`views.settings.cloudflare_login_waiting`)),1),D(l,{type:`button`,severity:`secondary`,loading:I(Qe),class:`cui-button-small ml-auto`,label:i.$t(`components.form.button.cancel`),onClick:yr},null,8,[`loading`,`label`])]))],64)):I(Q)===`creating_tunnel`||I(Q)===`setting_dns`?(y(),T(`div`,Sn,[D(o,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),w(`span`,Cn,_(I(Q)===`creating_tunnel`?i.$t(`components.form.hint.cloudflare_managed_creating_tunnel`):i.$t(`components.form.hint.cloudflare_managed_setting_dns`,{hostname:I(G)})),1),D(l,{type:`button`,severity:`secondary`,loading:I(Qe),class:`cui-button-small ml-auto`,label:i.$t(`components.form.button.cancel`),onClick:yr},null,8,[`loading`,`label`])])):I(Q)===`running`?(y(),T(A,{key:3},[w(`div`,wn,[w(`label`,Tn,_(i.$t(`components.form.label.hostname`)),1),D(f,{readonly:``,value:`https://${I(z)?.hostname??``}`,type:`text`},null,8,[`value`]),D(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:g(()=>[O(_(i.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),I(z)?.tunnelId?(y(),T(`div`,En,[w(`label`,Dn,_(i.$t(`components.form.label.tunnel_id`)),1),D(f,{readonly:``,value:I(z).tunnelId,type:`text`},null,8,[`value`]),D(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:g(()=>[O(_(i.$t(`components.form.hint.cloudflare_tunnel_id_info`)),1)]),_:1})])):N(``,!0),w(`div`,On,[D(l,{type:`button`,severity:`secondary`,loading:I(Je),class:`cui-button-small`,label:i.$t(`components.form.button.test_connection`),onClick:a[15]||=e=>wr(`cloudflare`)},null,8,[`loading`,`label`]),D(l,{type:`button`,severity:`secondary`,loading:I(tt),class:`cui-button-small ml-auto`,label:i.$t(`components.form.button.disconnect`),onClick:br},null,8,[`loading`,`label`]),D(l,{type:`button`,severity:`danger`,loading:I(rt),class:`cui-button-small`,label:i.$t(`components.form.button.logout`),onClick:xr},null,8,[`loading`,`label`])])],64)):N(``,!0)]))]),_:1})):N(``,!0)])):I(V).directMode===`customDomain`?(y(),T(`div`,kn,[D(I(x),{modelValue:I(U),"onUpdate:modelValue":a[16]||=e=>me(U)?U.value=e:null,modelModifiers:{trim:!0},loading:I(X),name:`customDomain.url`,as:`div`,class:`flex flex-col field-gap`},{default:g(({field:e,errors:t})=>[w(`label`,An,_(i.$t(`components.form.label.url`)),1),D(f,v(e,{invalid:t.length>0,loading:I(X),type:`text`,placeholder:`https://my.example.com`}),null,16,[`invalid`,`loading`]),D(C,{name:`fade`},{default:g(()=>[D(I(F),{name:`customDomain.url`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`,`loading`]),w(`div`,jn,[D(l,{type:`button`,severity:`secondary`,loading:I(Je),disabled:!I(U),class:`cui-button-small`,label:i.$t(`components.form.button.test_connection`),onClick:a[17]||=e=>wr(`customDomain`)},null,8,[`loading`,`disabled`,`label`])])])):N(``,!0),D(l,{type:`submit`,loading:I(X),disabled:!I(Gn),class:`cui-button-medium ml-auto`,label:i.$t(`components.form.button.save`)},null,8,[`loading`,`disabled`,`label`])],64)):N(``,!0)])]),_:1})])]),_:1},8,[`validation-schema`]),D(I(se),{ref:`serverFormRef`,class:`flex flex-col w-full gap-6`,"validation-schema":I(ct),onSubmit:a[21]||=e=>Er(e)},{default:g(()=>[w(`div`,null,[w(`span`,Mn,_(i.$t(`views.settings.network`)),1),D(u,{class:`cui-card`},{content:g(()=>[w(`div`,Nn,[w(`span`,Pn,_(i.$t(`views.settings.network_info`)),1),D(I(x),{"model-value":I(B).serverAddresses,name:`serverAddresses`,as:`div`,class:`flex flex-col field-gap`},{default:g(({field:e,errors:t})=>[w(`label`,Fn,_(i.$t(`components.form.label.server_addresses`)),1),D(m,null,{default:g(()=>[D(j,v(e,{"model-value":I(B).serverAddresses,options:I(ue)?.availableAddresses||[],invalid:t.length>0,loading:I(X),"max-selected-labels":2,"show-toggle-all":!1,"show-clear":``,"option-label":`address`,"option-value":`address`,type:`text`,display:`chip`,onValueChange:a[19]||=e=>I(B).serverAddresses=e}),null,16,[`model-value`,`options`,`invalid`,`loading`])]),_:2},1024),D(C,{name:`fade`},{default:g(()=>[D(I(F),{name:`serverAddresses`,class:`cui-input-error`})]),_:1}),t.length?N(``,!0):(y(),k(s,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:g(()=>[O(_(i.$t(`components.form.hint.server_addresses`)),1)]),_:1}))]),_:1},8,[`model-value`]),D(I(x),{"model-value":I(B).localUrl,name:`localUrl`,as:`div`,class:`flex flex-col field-gap`},{default:g(({field:e,errors:t})=>[w(`label`,In,_(i.$t(`components.form.label.local_url`)),1),D(m,null,{default:g(()=>[D(f,v(e,{"model-value":I(B).localUrl,invalid:t.length>0,loading:I(X),placeholder:`https://camera.home.lan`,onValueChange:a[20]||=e=>I(B).localUrl=e}),null,16,[`model-value`,`invalid`,`loading`])]),_:2},1024),D(C,{name:`fade`},{default:g(()=>[D(I(F),{name:`localUrl`,class:`cui-input-error`})]),_:1}),t.length?N(``,!0):(y(),k(s,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:g(()=>[O(_(i.$t(`components.form.hint.local_url`)),1)]),_:1}))]),_:1},8,[`model-value`]),D(l,{type:`submit`,loading:I(X),class:`cui-button-medium ml-auto`,label:i.$t(`components.form.button.save`)},null,8,[`loading`,`label`])])]),_:1})])]),_:1},8,[`validation-schema`])]))])}}}),[[`__scopeId`,`data-v-456d32b5`]]);export{Ln as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Bt as e,H as t,J as n,Kt as r,L as ee,Vr as i,ai as a,li as o,ni as s,q as te,si as c}from"./vendor-cameraui-BbGOMenD.js";import{An as l,Dr as ne,Ft as re,H as u,I as ie,Ir as d,L as f,Mn as ae,Pn as p,R as oe,Tr as m,U as se,en as ce,er as le,f as h,gr as g,h as _,jn as v,kn as ue,l as de,mn as fe,st as y,tt as pe,vn as me,yn as he,z as ge}from"./api-BNrZVfeD.js";import{$n as b,Cn as _e,Cr as x,Hn as ve,In as S,Jn as C,K as w,R as ye,Rn as T,Sr as E,Xn as be,Z as D,br as xe,cn as O,dn as k,dr as A,er as j,fr as M,gn as N,hn as P,hr as Se,jn as Ce,ln as F,lr as we,nn as I,nr as Te,or as Ee,rn as L,sn as R,sr as De,un as z,vn as B,yr as V}from"./vendor-DGke_6M4.js";import{F as Oe,L as ke,P as Ae,R as H,a as je,d as Me}from"./vendor-primevue-DNJJiEZl.js";import{t as Ne}from"./close-BbEPZQqa.js";import{t as Pe}from"./chevron-down-ZYTrU871.js";import{t as Fe}from"./help-circle-outline-G43EJuch.js";import{t as Ie}from"./trash-can-outline-Bk5eENNM.js";import{t as Le}from"./ring-resize-DyqCo2UN.js";import{t as Re}from"./search-BXbDWhLk.js";import{n as ze,t as Be}from"./cloud-check-BTGbrAQ_.js";import{t as Ve}from"./back-filled-BPBVnQjx.js";import{t as He}from"./settings-Cw63SIJl.js";var U={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ue(e,t){return S(),k(`svg`,U,[...t[0]||=[O(`path`,{fill:`currentColor`,d:`M13 19c0 .34.04.67.09 1H6.5c-1.5 0-2.81-.5-3.89-1.57C1.54 17.38 1 16.09 1 14.58q0-1.95 1.17-3.48C3.34 9.57 4 9.43 5.25 9.15c.42-1.53 1.25-2.77 2.5-3.72S10.42 4 12 4c1.95 0 3.6.68 4.96 2.04S19 9.05 19 11c1.15.13 2.1.63 2.86 1.5c.51.57.84 1.21 1 1.92A5.9 5.9 0 0 0 19 13h-2v-2c0-1.38-.5-2.56-1.46-3.54C14.56 6.5 13.38 6 12 6s-2.56.5-3.54 1.46C7.5 8.44 7 9.62 7 11h-.5c-.97 0-1.79.34-2.47 1.03c-.69.68-1.03 1.5-1.03 2.47s.34 1.79 1.03 2.5c.68.66 1.5 1 2.47 1h6.59c-.05.33-.09.66-.09 1m4.75.43l-1.59-1.59L15 19l2.75 3l4.75-4.75l-1.16-1.41z`},null,-1)]])}var W=De({name:`mdi-cloud-check-outline`,render:Ue}),We={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ge(e,t){return S(),k(`svg`,We,[...t[0]||=[O(`path`,{fill:`currentColor`,d:`M6.5 20q-2.28 0-3.89-1.57Q1 16.85 1 14.58q0-1.95 1.17-3.48q1.18-1.53 3.08-1.95q.63-2.3 2.5-3.72Q9.63 4 12 4q2.93 0 4.96 2.04Q19 8.07 19 11q1.73.2 2.86 1.5q1.14 1.28 1.14 3q0 1.88-1.31 3.19T18.5 20H13q-.82 0-1.41-.59Q11 18.83 11 18v-5.15L9.4 14.4L8 13l4-4l4 4l-1.4 1.4l-1.6-1.55V18h5.5q1.05 0 1.77-.73q.73-.72.73-1.77t-.73-1.77Q19.55 13 18.5 13H17v-2q0-2.07-1.46-3.54Q14.08 6 12 6Q9.93 6 8.46 7.46Q7 8.93 7 11h-.5q-1.45 0-2.47 1.03Q3 13.05 3 14.5T4.03 17q1.02 1 2.47 1H9v2m3-7`},null,-1)]])}var Ke=De({name:`mdi-cloud-upload-outline`,render:Ge}),G=200;async function K(e={},{signal:t}={}){return(await d.get(`/training/candidates`,{params:e,signal:t})).data}async function q(e,t){return(await d.patch(`/training/candidates/${e}`,t)).data}async function J(e){await d.delete(`/training/candidates/${e}`)}async function qe(e){let t=0;for(let n=0;n<e.length;n+=G){let r=await d.post(`/training/candidates/submit`,{ids:e.slice(n,n+G)});t+=r.data.queued}return{queued:t}}async function Je({cursor:e,signal:t}={}){return(await d.get(`/training/submissions`,{params:e?{cursor:e}:void 0,signal:t})).data}async function Ye(e){await d.delete(`/training/submissions/${e}`)}async function Xe({signal:e}={}){return(await d.get(`/training/settings`,{signal:e})).data}async function Ze(e){return(await d.patch(`/training/settings`,e)).data}var Qe=class{queryClient=D();getCandidatesQuery(){return m({queryKey:[`training-candidates`],queryFn:({signal:e})=>K({},{signal:e}),staleTime:5e3})}getSettingsQuery(){return m({queryKey:[`training-settings`],queryFn:({signal:e})=>Xe({signal:e}),staleTime:3e4})}patchCandidateMutation(){return w({mutationFn:({id:e,patch:t})=>q(e,t),onSuccess:async()=>{await this.queryClient.refetchQueries({queryKey:[`training-candidates`],exact:!0})}})}deleteCandidateMutation(){return w({mutationFn:J,onSuccess:async()=>{await this.queryClient.refetchQueries({queryKey:[`training-candidates`],exact:!0})}})}deleteSubmissionMutation(){return w({mutationFn:Ye})}submitCandidatesMutation(){return w({mutationFn:qe,onSuccess:async()=>{await this.queryClient.refetchQueries({queryKey:[`training-candidates`],exact:!0})}})}patchSettingsMutation(){return w({mutationFn:Ze,onSuccess:async()=>{await this.queryClient.refetchQueries({queryKey:[`training-settings`],exact:!0})}})}},$e=[`person`,`vehicle`,`animal`,`package`,`face`,`license_plate`],et={desktop:{maxWidth:`1280px`,width:`85vw`}},Y=we({progress:null}),X=null,Z=null,Q=new Set,tt=new Set;function nt(e,t){for(let n of e)try{n(t)}catch{}}async function rt(){if(Z?.ready.value)try{let e=await Z.request(`get-submit-progress`);e.active?Y.progress=e:Y.progress?.active&&(Y.progress=null)}catch{}}function it(){rt(),nt(Q,{}),nt(tt,void 0)}function at(){return Z||(X=Te(!0),X.run(()=>{let e=g(`/training`);Z=e,e.on(`candidates-changed`,e=>nt(Q,e??{})),e.on(`submit-progress`,e=>{Y.progress=e,nt(Q,{})}),e.onReady(it)}),Z)}function ot(){function e(){at()}function t(e){return Q.add(e),()=>Q.delete(e)}function n(e){return tt.add(e),()=>tt.delete(e)}function r(){Y.progress=null}return{submitProgress:R(()=>Y.progress),connect:e,onCandidatesChanged:t,onResync:n,dismissProgress:r}}var st={class:`flex items-center justify-between gap-2 text-sm`},ct={class:`min-w-0 flex items-center gap-2`},lt={class:`font-medium truncate`},ut={class:`text-muted shrink-0`},dt={class:`text-muted tabular-nums shrink-0`},ft=[`data-stage-zoom`],pt=[`src`],mt=[`x`,`y`,`width`,`height`,`stroke`,`fill`,`fill-opacity`,`stroke-width`,`onPointerdown`],ht=[`onPointerdown`],gt=[`cx`,`cy`],_t=[`cx`,`cy`,`fill`],vt=[`x`,`y`,`width`,`height`,`stroke`,`fill`],yt=[`data-box-label`,`onPointerdown`],bt={class:`bbox-label-text`},xt={key:0,class:`bbox-label-confidence`},St={key:1,class:`bbox-label-confidence`},Ct=[`src`],wt={class:`absolute inset-0 w-full h-full`},Tt=[`x`,`y`,`width`,`height`,`stroke`,`fill`],Et=[`x`,`y`,`width`,`height`,`stroke`,`fill`],Dt={key:2,class:`absolute left-2 top-1/2 -translate-y-1/2 z-[5] dark-mode`},Ot={key:3,class:`absolute right-2 top-1/2 -translate-y-1/2 z-[5] dark-mode`},kt={key:0,class:`flex items-center justify-center gap-2`},At={class:`text-muted text-sm`,for:`plate-text`},jt={class:`flex items-center justify-center gap-1.5`},Mt={class:`text-muted text-sm text-center`},Nt={key:1,class:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 justify-center mx-auto text-sm text-muted`},Pt=.01,Ft=.006,It=26,Lt=60,Rt=400,zt=110,Bt=2,Vt=80,Ht=50,Ut=.003,Wt=l(B({__name:`TrainingBoxEditor`,props:{candidates:{},startId:{},cameraName:{type:Function},imageUrl:{type:Function},onSave:{type:Function},onDelete:{type:Function}},setup(t,{expose:n}){let r=t,te=_e(`dialogRef`),{t:c,te:l}=i(),re=ne(),u=ot(),ie=[`nw`,`ne`,`sw`,`se`],d=new Map,f=we(new Set),ae=we(new Set),p=M(new Map),oe=0,m=Math.max(0,r.candidates.findIndex(e=>e.id===r.startId)),se=_(),le=C(`rootRef`),h=C(`labelMenuRef`),g=C(`stageRef`),v=C(`frameRef`),ue=C(`svgRef`),y=A(r.candidates[m]?.boxes.map(e=>({...e}))??[]),ge=A({w:16,h:9}),w=A(null),D=A(null),j=A(-1),Te=A(!1),De=o(`(any-pointer: fine)`),B=A(null),Oe=null,ke=A(-1),Ae=A(`person`),H=A(m),{zoom:Me,pan:Ne,constraining:Pe,minimapStyle:Le,minimapBoxStyle:Re,onZoomPan:ze,onDoubleClick:Be,onTouchStart:Ve,onTouchEnd:He,reset:U}=pe(g,v),{height:Ue}=s(v),W=R(()=>r.candidates[H.value]),We=R(()=>r.candidates.slice(0,H.value+1).filter(e=>!f.has(e.id)).length),Ge=R(()=>r.candidates.filter(e=>!f.has(e.id)).length),Ke=R(()=>r.candidates.slice(0,H.value).some(e=>!f.has(e.id))),G=R(()=>r.candidates.slice(H.value+1).some(e=>!f.has(e.id))),K=R(()=>ae.has(W.value.id)?`verified`:W.value.status),q=R(()=>y.value.map((e,t)=>({box:e,i:t})).sort((e,t)=>Qe(e)-Qe(t))),J=R(()=>new Map(q.value.map(({i:e},t)=>[e,t+1]))),qe=R(()=>y.value[j.value]),Je=R(()=>{let e=y.value[j.value];return e?.label===`license_plate`?e:null}),Ye=R(()=>[...$e.map(e=>({key:e,label:et(e),icon:ce(e).icon,iconProps:{style:{color:ce(e).color}},active:y.value[ke.value]?.label===e,onClick:()=>nn(e)})),{key:`remove`,label:c(`components.training_editor.remove_box`),icon:Ie,iconProps:{class:`text-red-500`},labelProps:{class:`text-red-500`},onClick:()=>an(ke.value)}]),Xe=R(()=>e=>{let t=Ue.value||360;return e.y*t>=It?`above`:t-(e.y+e.height)*t>=It?`below`:`inside`}),Ze=R(()=>e=>e.x>.7);function Qe({box:e,i:t}){return t===j.value?2**53-1:p.get(Se(e))??t}function et(e){let t=`components.training_editor.labels.${e}`;return l(t)?c(t):e}function Y(e){return ce(e)}function X(e){return`${e*100}%`}function Z(e,t){return X(t===`nw`||t===`sw`?e.x:e.x+e.width)}function Q(e,t){return X(t===`nw`||t===`ne`?e.y:e.y+e.height)}function tt(e){let t={backgroundColor:Y(e.label).color};Ze.value(e)?t.right=X(1-e.x-e.width):t.left=X(e.x);let n=Xe.value(e);return t.top=n===`above`?X(e.y):n===`below`?X(e.y+e.height):`calc(${X(e.y)} + 2px)`,t}function nt(e){let t=e.target;t.naturalWidth&&t.naturalHeight&&(ge.value={w:t.naturalWidth,h:t.naturalHeight})}function rt(e){let t=ue.value?.getBoundingClientRect();return!t||t.width===0||t.height===0?{x:0,y:0}:{x:Math.min(1,Math.max(0,(e.clientX-t.left)/t.width)),y:Math.min(1,Math.max(0,(e.clientY-t.top)/t.height))}}function it(e,t){w.value={...t,moved:!1},ue.value?.setPointerCapture(e.pointerId)}function at(e){if(h.value?.hide(),Me.value>1||!e.isPrimary)return;let{x:t,y:n}=rt(e);it(e,{mode:`draw`,index:-1,startX:t,startY:n,origin:{label:Ae.value,confidence:1,x:t,y:n,width:0,height:0}})}function Wt(e,t){if(!t.isPrimary)return;let{x:n,y:r}=rt(t);j.value=e,it(t,{mode:`move`,index:e,startX:n,startY:r,origin:{...y.value[e]}})}function Gt(e,t,n){if(!n.isPrimary)return;h.value?.hide();let{x:r,y:ee}=rt(n);j.value=e,it(n,{mode:`resize`,index:e,corner:t,startX:r,startY:ee,origin:{...y.value[e]}})}function Kt(e){e.touches.length>1&&w.value&&(w.value=null,D.value=null,B.value=null),Ve(e)}function qt(e){let t=w.value;if(!t)return;let{x:n,y:r}=rt(e);if(Math.hypot(n-t.startX,r-t.startY)>Ft&&(t.moved=!0),e.pointerType===`touch`&&t.moved&&(Yt(t)?Xt(e):B.value=null),t.mode===`draw`){if(t.moved){let e=en(t.startX,t.startY,n,r);D.value=e.width>=Pt&&e.height>=Pt?{label:Ae.value,confidence:1,...e}:null}return}if(t.mode===`move`){if(!t.moved)return;let e=y.value[t.index];e.x=Math.min(1-t.origin.width,Math.max(0,t.origin.x+(n-t.startX))),e.y=Math.min(1-t.origin.height,Math.max(0,t.origin.y+(r-t.startY)));return}let ee=t.corner===`nw`||t.corner===`sw`?t.origin.x+t.origin.width:t.origin.x,i=t.corner===`nw`||t.corner===`ne`?t.origin.y+t.origin.height:t.origin.y;Object.assign(y.value[t.index],en(ee,i,n,r))}function Jt(e){let t=w.value;if(w.value=null,B.value=null,t){if(t.mode===`draw`){D.value&&D.value.width>=Pt&&D.value.height>=Pt?(y.value.push({...D.value}),j.value=y.value.length-1):t.moved||(j.value=-1),D.value=null;return}t.mode===`move`&&!t.moved&&tn(t.index,e)}}function Yt(e){let t=ue.value?.getBoundingClientRect();if(!t||t.width===0)return!1;let n=e.mode===`draw`?D.value:y.value[e.index];return!n||Math.max(n.width*t.width,n.height*t.height)<=Ht}function Xt(e){let t=v.value?.getBoundingClientRect(),n=g.value?.getBoundingClientRect();if(!t||!n||t.width===0||t.height===0){B.value=null;return}let r=zt/2,ee=Math.min(Math.max(e.clientX-n.left,59),n.width-r-4),i=e.clientY-n.top-Vt;i-r<4&&(i=e.clientY-n.top+Vt),B.value={x:ee,y:i,frameW:t.width,frameH:t.height,tx:r-(e.clientX-t.left)*Bt,ty:r-(e.clientY-t.top)*Bt}}function Zt(e){let t=e instanceof HTMLElement||e instanceof SVGElement?e:null;if(!t||g.value?.contains(t)||t.closest(`.p-dialog-header`)||t.closest(`button`))return!1;let n=le.value?.closest(`.p-dialog-content`)?.lastElementChild;return!(n&&n!==le.value&&n.contains(t))}function Qt(e){if(Oe=null,e.touches.length!==1||!Zt(e.target))return;let t=e.touches[0];Oe={x:t.clientX,y:t.clientY,at:Date.now()}}function $t(e){let t=Oe;if(Oe=null,!t||e.changedTouches.length!==1)return;let n=e.changedTouches[0],r=n.clientX-t.x,ee=n.clientY-t.y;Date.now()-t.at<=Rt&&Math.abs(r)>=Lt&&Math.abs(r)>2*Math.abs(ee)&&$(r<0?1:-1)}function en(e,t,n,r){return{x:Math.min(e,n),y:Math.min(t,r),width:Math.abs(n-e),height:Math.abs(r-t)}}function tn(e,t){ke.value=e;let n=v.value?.querySelector(`[data-box-label="${e}"]`),r={currentTarget:v.value??t.currentTarget};h.value?.toggleMenu(r,n??void 0)}function nn(e){let t=y.value[ke.value];t&&(t.label=e,t.confidence=1,Ae.value=e)}function rn(e){let t=y.value[j.value];t&&(t.text=(e??``).toUpperCase().replace(/[^A-Z0-9ÄÖÜ\- ]/g,``)||void 0)}function an(e){e<0||e>=y.value.length||(y.value.splice(e,1),j.value=-1)}function on(e,t=!0){e<0||e>=r.candidates.length||(t&&d.set(W.value.id,y.value.map(e=>({...e}))),H.value=e,y.value=(d.get(W.value.id)??W.value.boxes).map(e=>({...e})),D.value=null,w.value=null,B.value=null,j.value=-1,ke.value=-1,p.clear(),h.value?.hide(),U())}async function sn(e){return await r.onSave(W.value.id,y.value.map(e=>({...e})),e),d.set(W.value.id,y.value.map(e=>({...e}))),e===`verified`&&ae.add(W.value.id),$(1,!1)?null:void 0}function $(e,t=!0){let n=H.value+e;for(;n>=0&&n<r.candidates.length&&f.has(r.candidates[n].id);)n+=e;return n<0||n>=r.candidates.length?!1:(on(n,t),!0)}async function cn(){let e=W.value.id;f.add(e);try{await r.onDelete(e)}catch(t){throw f.delete(e),t}return d.delete(e),$(1,!1)||$(-1,!1)?null:void 0}function ln(e){let t=!1;for(let n of e)!f.has(n)&&r.candidates.some(e=>e.id===n)&&(f.add(n),d.delete(n),n===W.value.id&&(t=!0));t&&(re.add({severity:`warn`,detail:c(`components.training_editor.removed_meanwhile`),life:4e3}),!$(1,!1)&&!$(-1,!1)&&te.value.close({status:`cancel`}))}function un(){for(let e of[1,-1]){let t=H.value+e;for(;t>=0&&t<r.candidates.length&&f.has(r.candidates[t].id);)t+=e;let n=r.candidates[t];n&&(new Image().src=r.imageUrl(n.id))}}function dn(e){y.value.length&&(j.value=(j.value+e+y.value.length)%y.value.length)}function fn(e){let t=y.value[j.value];if(!t)return;let n=$e,r=n[(n.indexOf(t.label)+e+n.length)%n.length];t.label=r,t.confidence=1,Ae.value=r}function pn(e,t,n){let r=y.value[j.value];r&&(n?(r.width=Math.min(1-r.x,Math.max(Pt,r.width+e)),r.height=Math.min(1-r.y,Math.max(Pt,r.height+t))):(r.x=Math.min(1-r.width,Math.max(0,r.x+e)),r.y=Math.min(1-r.height,Math.max(0,r.y+t))))}async function mn(){let e=await sn(`verified`);e!==null&&te.value.close({status:`confirm`,data:e})}be(H,un,{immediate:!0}),be(qe,(e,t)=>{t&&t!==e&&y.value.includes(t)&&p.set(Se(t),--oe)}),a(window,`keydown`,e=>{if(e.target?.closest?.(`input, textarea`))return;let t={ArrowLeft:[-.003,0],ArrowRight:[Ut,0],ArrowUp:[0,-.003],ArrowDown:[0,Ut]};if(t[e.key]){if(j.value>=0){e.preventDefault();let[n,r]=t[e.key];pn(n,r,e.shiftKey)}else!e.repeat&&e.key===`ArrowLeft`?$(-1):!e.repeat&&e.key===`ArrowRight`&&$(1);return}e.repeat||(e.key===`Tab`?(e.preventDefault(),dn(e.shiftKey?-1:1)):e.key===`Escape`?(j.value=-1,h.value?.hide()):(e.key===`Delete`||e.key===`Backspace`)&&j.value>=0?an(j.value):e.key===`s`||e.key===`S`?fn(e.shiftKey?-1:1):e.key===` `&&!h.value?.isOpen&&(e.preventDefault(),mn()))}),a(()=>le.value?.closest(`.p-dialog-content`)??void 0,`touchstart`,Qt,{passive:!0}),a(()=>le.value?.closest(`.p-dialog-content`)??void 0,`touchend`,$t,{passive:!0}),u.connect();let hn=u.onCandidatesChanged(e=>{e.removed?.length&&ln(e.removed)});return Ce(()=>{hn()}),n({onConfirm:()=>sn(`verified`),onCancel:()=>cn()}),(n,r)=>{let i=je,a=me,o=e,s=he,te=ee,c=Fe;return S(),k(`div`,{ref_key:`rootRef`,ref:le,class:`flex flex-col gap-3 h-full min-h-0`},[O(`div`,st,[O(`div`,ct,[N(i,{severity:V(K)===`verified`?`success`:`info`,value:n.$t(`views.training.status_${V(K)}`),class:`shrink-0`},null,8,[`severity`,`value`]),O(`span`,lt,x(t.cameraName(V(W).cameraId)),1),O(`span`,ut,x(V(de)(V(W).createdAt)),1)]),O(`span`,dt,x(V(We))+` / `+x(V(Ge)),1)]),O(`div`,{ref_key:`stageRef`,ref:g,class:`stage relative w-full bg-black rounded-lg shrink-0 overflow-hidden select-none`},[N(V(ye),{pan:V(Ne),"onUpdate:pan":r[6]||=e=>Ee(Ne)?Ne.value=e:null,zoom:V(Me),"onUpdate:zoom":r[7]||=e=>Ee(Me)?Me.value=e:null,"pan-enabled":V(Me)>1&&!V(w),"enable-control-button":!1,"dbl-click-enabled":!1,"min-zoom":1,"max-zoom":V(5),selector:`[data-stage-zoom='${V(se)}']`,"zoom-origin":`pointer`,class:xe([`absolute inset-0 flex items-center justify-center`,{"zoom-constraining":V(Pe)}]),onPanned:V(ze),onZoom:V(ze),onDblclick:V(Be),onTouchstart:Kt,onTouchend:V(He)},{default:b(()=>[O(`div`,{ref_key:`frameRef`,ref:v,"data-stage-zoom":V(se),class:`frame relative`,style:E({"--ar-w":V(ge).w,"--ar-h":V(ge).h})},[O(`img`,{src:t.imageUrl(V(W).id),class:`absolute inset-0 w-full h-full`,draggable:`false`,onLoad:nt},null,40,pt),(S(),k(`svg`,{ref_key:`svgRef`,ref:ue,class:xe([`absolute inset-0 w-full h-full touch-none`,V(Me)>1?`cursor-grab`:`cursor-crosshair`]),onPointerdown:at,onPointermove:qt,onPointerup:Jt,onPointercancel:Jt},[(S(!0),k(L,null,T(V(q),({box:e,i:t})=>(S(),k(`g`,{key:t},[O(`rect`,{x:X(e.x),y:X(e.y),width:X(e.width),height:X(e.height),stroke:Y(e.label).color,fill:Y(e.label).color,"fill-opacity":t===V(j)?.22:.12,"stroke-width":t===V(j)?3.5:2,"vector-effect":`non-scaling-stroke`,class:`cursor-move`,onPointerdown:I(e=>Wt(t,e),[`stop`]),onTouchstart:r[0]||=I(()=>{},[`stop`]),onMousedown:r[1]||=I(()=>{},[`stop`])},null,40,mt),(S(),k(L,null,T(ie,n=>O(`g`,{key:n,class:`cursor-nwse-resize`,onPointerdown:I(e=>Gt(t,n,e),[`stop`]),onTouchstart:r[2]||=I(()=>{},[`stop`]),onMousedown:r[3]||=I(()=>{},[`stop`])},[O(`circle`,{cx:Z(e,n),cy:Q(e,n),r:`14`,fill:`transparent`},null,8,gt),O(`circle`,{cx:Z(e,n),cy:Q(e,n),r:`4.5`,fill:Y(e.label).color},null,8,_t)],40,ht)),64))]))),128)),V(D)?(S(),k(`rect`,{key:0,x:X(V(D).x),y:X(V(D).y),width:X(V(D).width),height:X(V(D).height),stroke:Y(V(D).label).color,fill:Y(V(D).label).color,"fill-opacity":`0.1`,"stroke-dasharray":`6 4`,"stroke-width":`2`,"vector-effect":`non-scaling-stroke`},null,8,vt)):z(``,!0)],34)),(S(!0),k(L,null,T(V(y),(e,t)=>(S(),k(`div`,{key:`label-${t}`,class:xe([`bbox-label cursor-move`,{"label-bottom":V(Xe)(e)===`below`,"label-inside":V(Xe)(e)===`inside`,"label-right":V(Ze)(e)}]),"data-box-label":t,onPointerdown:I(e=>Wt(t,e),[`stop`]),onTouchstart:r[4]||=I(()=>{},[`stop`]),onMousedown:r[5]||=I(()=>{},[`stop`]),style:E([tt(e),{zIndex:V(J).get(t)}])},[(S(),F(ve(Y(e.label).icon),{class:`bbox-label-icon`})),O(`span`,bt,x(et(e.label)),1),e.text?(S(),k(`span`,xt,x(e.text),1)):e.confidence<1?(S(),k(`span`,St,x(Math.round(e.confidence*100))+`%`,1)):z(``,!0)],46,yt))),128))],12,ft)]),_:1},8,[`pan`,`zoom`,`pan-enabled`,`max-zoom`,`selector`,`class`,`onPanned`,`onZoom`,`onDblclick`,`onTouchend`]),V(Le)?(S(),k(`div`,{key:0,class:`zoom-minimap`,style:E(V(Re)??void 0)},[O(`div`,{class:`zoom-minimap-viewport`,style:E(V(Le))},null,4)],4)):z(``,!0),V(B)?(S(),k(`div`,{key:1,class:`loupe`,style:E({left:`${V(B).x}px`,top:`${V(B).y}px`})},[O(`div`,{class:`loupe-content`,style:E({width:`${V(B).frameW}px`,height:`${V(B).frameH}px`,transform:`translate(${V(B).tx}px, ${V(B).ty}px) scale(${Bt})`})},[O(`img`,{src:t.imageUrl(V(W).id),class:`absolute inset-0 w-full h-full`,draggable:`false`},null,8,Ct),(S(),k(`svg`,wt,[(S(!0),k(L,null,T(V(y),(e,t)=>(S(),k(`rect`,{key:t,x:X(e.x),y:X(e.y),width:X(e.width),height:X(e.height),stroke:Y(e.label).color,fill:Y(e.label).color,"fill-opacity":`0.1`,"stroke-width":`1.5`},null,8,Tt))),128)),V(D)?(S(),k(`rect`,{key:0,x:X(V(D).x),y:X(V(D).y),width:X(V(D).width),height:X(V(D).height),stroke:Y(V(D).label).color,fill:Y(V(D).label).color,"fill-opacity":`0.1`,"stroke-dasharray":`4 3`,"stroke-width":`1.5`},null,8,Et)):z(``,!0)]))],4),r[11]||=O(`div`,{class:`loupe-crosshair`},null,-1)],4)):z(``,!0),V(Ke)?(S(),k(`div`,Dt,[N(o,{severity:`secondary`,rounded:``,class:`cui-icon-md opacity-60 hover:opacity-100`,onClick:r[8]||=I(e=>$(-1),[`stop`])},{icon:b(()=>[N(a,{width:`100%`,height:`100%`})]),_:1})])):z(``,!0),V(G)?(S(),k(`div`,Ot,[N(o,{severity:`secondary`,rounded:``,class:`cui-icon-md opacity-60 hover:opacity-100`,onClick:r[9]||=I(e=>$(1),[`stop`])},{icon:b(()=>[N(s,{width:`100%`,height:`100%`})]),_:1})])):z(``,!0)],512),V(Je)?(S(),k(`div`,kt,[O(`label`,At,x(n.$t(`components.training_editor.plate_text`)),1),N(te,{id:`plate-text`,"model-value":V(Je).text??``,size:`small`,maxlength:`12`,class:`w-40 uppercase`,placeholder:`ABC 1234`,"onUpdate:modelValue":rn},null,8,[`model-value`])])):z(``,!0),O(`div`,jt,[O(`span`,Mt,x(n.$t(`components.training_editor.hint`)),1),V(De)?(S(),F(o,{key:0,severity:`secondary`,text:``,rounded:``,class:`cui-icon-sm shrink-0`,onClick:r[10]||=e=>Te.value=!V(Te)},{icon:b(()=>[N(c,{class:`w-4 h-4`})]),_:1})):z(``,!0)]),V(De)&&V(Te)?(S(),k(`div`,Nt,[r[12]||=O(`span`,null,[O(`kbd`,null,`Tab`)],-1),O(`span`,null,x(n.$t(`components.training_editor.sc_select`)),1),r[13]||=P(),r[14]||=O(`span`,null,[O(`kbd`,null,`←↑→↓`)],-1),O(`span`,null,x(n.$t(`components.training_editor.sc_move`)),1),r[15]||=P(),r[16]||=O(`span`,null,[O(`kbd`,null,`Shift`),P(` + `),O(`kbd`,null,`←↑→↓`)],-1),O(`span`,null,x(n.$t(`components.training_editor.sc_resize`)),1),r[17]||=P(),r[18]||=O(`span`,null,[O(`kbd`,null,`S`)],-1),O(`span`,null,x(n.$t(`components.training_editor.sc_label`)),1),r[19]||=P(),r[20]||=O(`span`,null,[O(`kbd`,null,`Del`)],-1),O(`span`,null,x(n.$t(`components.training_editor.sc_delete`)),1),r[21]||=P(),r[22]||=O(`span`,null,[O(`kbd`,null,`Esc`)],-1),O(`span`,null,x(n.$t(`components.training_editor.sc_deselect`)),1),r[23]||=P(),r[24]||=O(`span`,null,[O(`kbd`,null,`Space`)],-1),O(`span`,null,x(n.$t(`components.training_editor.sc_verify`)),1),r[25]||=P(),r[26]||=O(`span`,null,[O(`kbd`,null,`←`),P(` / `),O(`kbd`,null,`→`)],-1),O(`span`,null,x(n.$t(`components.training_editor.sc_nav`)),1)])):z(``,!0),N(fe,{ref_key:`labelMenuRef`,ref:h,items:V(Ye),popover:{pt:{content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])],512)}}}),[[`__scopeId`,`data-v-4e242842`]]),Gt={class:`flex flex-col gap-3`},Kt={key:0,class:`flex flex-col gap-2`},qt={key:1,class:`flex flex-col items-center gap-3 py-10`},Jt={class:`text-muted text-sm text-center max-w-sm`},Yt={key:2,class:`flex flex-col items-center gap-3 py-10`},Xt={class:`text-muted text-sm text-center max-w-sm`},Zt={class:`text-muted text-sm`},Qt={class:`w-24 aspect-video rounded-lg overflow-hidden bg-black/5 dark:bg-black/30 shrink-0`},$t={class:`flex-1 min-w-0`},en={class:`flex flex-wrap items-center gap-1`},tn={class:`text-xs text-muted mt-1`},nn={key:0,class:`flex justify-center py-2`},rn=B({__name:`TrainingSubmissions`,setup(t){let ee=new Qe,{t:a,te:o}=i(),s=ne(),te=ot(),l=ee.deleteSubmissionMutation(),re=A(``),u=A([]),d=A(0),f=A(),ae=A(!0),p=A(!1),oe=A(!1),m=C(`loadMoreRef`);function se(e){let t={};for(let n of e.labels)t[n.label]=(t[n.label]??0)+1;return t}function le(e){let t=`components.training_editor.labels.${e}`;return o(t)?a(t):e}async function h(){ae.value=u.value.length===0;try{let e=await Je();u.value=e.items,d.value=e.total??e.items.length,f.value=e.nextCursor,oe.value=!1}catch{oe.value=!0}finally{ae.value=!1}}async function g(){let e=f.value;if(e&&!p.value){p.value=!0;try{let t=await Je({cursor:e}),n=new Set(u.value.map(e=>e.id));u.value.push(...t.items.filter(e=>!n.has(e.id))),f.value=t.nextCursor}catch(e){s.add({severity:`error`,detail:e?.message??String(e),life:5e3})}finally{p.value=!1}}}async function _(e){re.value=e;try{await l.mutateAsync(e),u.value=u.value.filter(t=>t.id!==e),d.value=Math.max(0,d.value-1)}catch(e){s.add({severity:`error`,detail:e?.message??String(e),life:5e3})}finally{re.value=``}}c(m,([e])=>{e?.isIntersecting&&g()}),be(()=>te.submitProgress.value?.active,(e,t)=>{t&&!e&&h()});let v=te.onResync(()=>{h()});return Ce(()=>{v()}),h(),(t,ee)=>{let i=n,a=ze,o=ie,s=ue,te=je,c=Ie,ne=e,h=Le,g=r;return S(),k(`div`,Gt,[V(ae)?(S(),k(`div`,Kt,[(S(),k(L,null,T(4,e=>N(i,{key:e,height:`72px`,"border-radius":`12px`})),64))])):V(oe)?(S(),k(`div`,qt,[N(a,{class:`w-10 h-10 text-muted`}),O(`span`,Jt,x(t.$t(`components.training_submissions.load_failed`)),1)])):V(u).length?(S(),k(L,{key:3},[O(`span`,Zt,x(t.$t(`components.training_submissions.count`,V(d))),1),(S(!0),k(L,null,T(V(u),e=>(S(),k(`div`,{key:e.id,class:`cui-card h-auto! shrink-0 p-2 flex items-center gap-3`},[O(`div`,Qt,[N(s,{src:e.imageUrl,"image-container-class":`w-full h-full`,"image-style":{objectFit:`cover`}},null,8,[`src`])]),O(`div`,$t,[O(`div`,en,[(S(!0),k(L,null,T(se(e),(e,t)=>(S(),k(`span`,{key:t,class:`px-1.5 py-0.5 rounded text-xs font-medium text-white`,style:E({backgroundColor:V(ce)(String(t)).color})},x(le(String(t)))+` ×`+x(e),5))),128))]),O(`div`,tn,x(V(de)(new Date(e.createdAt).getTime())),1)]),N(te,{severity:e.usedInWave?`success`:`info`,value:e.usedInWave?t.$t(`components.training_submissions.status_trained`):t.$t(`components.training_submissions.status_pool`),class:`shrink-0`},null,8,[`severity`,`value`]),j((S(),F(ne,{severity:`danger`,text:``,rounded:``,class:`cui-icon-sm shrink-0`,loading:V(l).isPending.value&&V(re)===e.id,onClick:t=>_(e.id)},{icon:b(()=>[N(c,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[g,t.$t(`components.training_submissions.delete`),void 0,{left:!0}]])]))),128)),V(p)?(S(),k(`div`,nn,[N(h,{class:`w-5 h-5 text-primary`})])):V(f)?(S(),k(`div`,{key:1,ref_key:`loadMoreRef`,ref:m,class:`h-px`},null,512)):z(``,!0)],64)):(S(),k(`div`,Yt,[N(o,{class:`w-10 h-10 text-muted`}),O(`span`,Xt,x(t.$t(`components.training_submissions.empty`)),1)]))])}}}),an={desktop:{maxWidth:`720px`,width:`90vw`}},on={class:`flex flex-col`},sn={key:0,class:`page-title`},$={class:`font-semibold text-xl truncate`},cn={class:`flex gap-2 mb-4`},ln={key:1,class:`cui-card h-auto! shrink-0 px-3 py-2 mb-4 flex items-center gap-3`},un={class:`flex-1 min-w-0`},dn={class:`text-sm`},fn={class:`flex-1 text-sm`},pn={class:`p-3`},mn={key:3,class:`flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4 py-16`},hn={class:`text-muted text-sm text-center max-w-md`},gn={class:`relative flex-1 min-h-0 overflow-hidden bg-black/5 dark:bg-black/30`},_n={class:`absolute top-1.5 left-1.5 flex flex-wrap gap-1`},vn={key:0,class:`absolute bottom-1.5 left-1.5`},yn={key:1,class:`absolute top-1.5 right-1.5 dark-mode`},bn={class:`flex items-center justify-between gap-2`},xn={class:`flex items-center gap-2 min-w-0`},Sn={class:`min-w-0`},Cn={class:`font-medium truncate`},wn={class:`text-xs text-muted`},Tn=40,En=l(B({__name:`Training`,setup(a){let o=new re,s=new Qe,{t:l,te:ie}=i(),d=y(),m=ne(),{smBreakpoint:g}=p(),_=s.getCandidatesQuery(),pe=s.getSettingsQuery(),me=s.patchCandidateMutation(),he=s.deleteCandidateMutation(),_e=s.patchSettingsMutation(),ve=s.submitCandidatesMutation(),w=ot(),{data:ye}=o.getCamerasQuery({page:1,pageSize:-1}),D=A(``),M=A(Tn),Se=C(`cameraMenuRef`),we=C(`settingsMenuRef`),Te=C(`loadMoreRef`),De=R(()=>({gridTemplateColumns:`repeat(auto-fill, minmax(${g.value?`220px`:`260px`}, 1fr))`})),B=R(()=>{let e=[...new Set((_.data.value??[]).map(e=>Z(e.cameraId)))].sort((e,t)=>e.localeCompare(t));return[{key:`all`,label:l(`views.training.all_cameras`),active:D.value===``,onClick:()=>{D.value=``}},...e.map(e=>({key:e,label:e,active:D.value===e,onClick:()=>{D.value=e}}))]}),Fe=R(()=>[{key:`collect`,label:l(`views.training.collection_enabled`),description:l(`views.training.collection_hint`),toggle:!0,toggleState:pe.data.value?.enabled??!0,onClick:()=>{ft(!(pe.data.value?.enabled??!0))}}]),U=R(()=>{let e=D.value.trim().toLowerCase();return e?(_.data.value??[]).filter(t=>Z(t.cameraId).toLowerCase().includes(e)):_.data.value??[]}),Ue=R(()=>U.value.slice(0,M.value)),We=R(()=>U.value.length>Ue.value.length),Ge=R(()=>(_.data.value??[]).filter(e=>q(e)).length),G=R(()=>w.submitProgress.value?w.submitProgress.value:Ge.value>0?{active:!0,total:Ge.value,done:0,failed:0}:null),K=R(()=>U.value.filter(e=>!q(e)));function q(e){return e.upload===`queued`||e.upload===`uploading`}let{selectionMode:J,selectedIds:qe,allSelected:Je,bulkBusy:Ye,enterSelectionMode:Xe,exitSelectionMode:Ze,toggleSelectAll:$e,toggleSelection:Y}=f(K,e=>e.id),X=R(()=>[...qe.value].filter(e=>_.data.value?.find(t=>t.id===e)?.status===`verified`));function Z(e){return ye.value?.result?.find(t=>t._id===e)?.name??e}function Q(e){return h(`/api/training/candidates/${e}/image`)??``}function tt(e){let t=`components.training_editor.labels.${e}`;return ie(t)?l(t):e}function nt(e){let t={};for(let n of e.boxes)t[n.label]=(t[n.label]??0)+1;return t}function rt(e){return e===`verified`?`success`:`info`}function it(){M.value+=Tn}function at(e){if(!q(e)){if(J.value){Y(e.id);return}st(e)}}function st(e){d.openComponentDialog(Wt,{data:{title:l(`views.training.title`),cancelText:l(`components.form.button.remove`),confirmText:l(`components.training_editor.verify`),cancelButtonProps:{severity:`danger`},contentProps:{candidates:U.value.map(e=>({...e})),startId:e.id,cameraName:Z,imageUrl:Q,onSave:async(e,t,n)=>{await me.mutateAsync({id:e,patch:{boxes:t,status:n}})},onDelete:async e=>{await he.mutateAsync(e)}}},dialogSize:et})}function ct(){d.openComponentDialog(rn,{data:{title:l(`views.training.submissions`),hideConfirmButton:!0,cancelText:l(`components.form.button.close`),contentProps:{}},dialogSize:an})}function lt(){let e=X.value;e.length&&!ve.isPending.value&&d.openTextDialog({data:{title:l(`components.dialog.title.confirm`),contentText:l(`views.training.submit_confirm`,{count:e.length}),confirmText:l(`views.training.submit`)},onConfirm:async()=>{try{await ve.mutateAsync(e),Ze()}catch(e){m.add({severity:`error`,detail:e?.message??String(e),life:8e3})}}})}function ut(){let e=[...qe.value];e.length&&!Ye.value&&d.openTextDialog({data:{title:l(`components.dialog.title.confirm`),contentText:l(`views.training.delete_selected_confirm`,{count:e.length}),confirmText:l(`components.form.button.remove`),confirmButtonProps:{severity:`danger`}},onConfirm:async()=>{Ye.value=!0;try{for(let t of e)await he.mutateAsync(t);Ze(),m.add({severity:`success`,detail:l(`views.training.delete_selected_done`,{count:e.length}),life:5e3})}catch(e){m.add({severity:`error`,detail:e?.message??String(e),life:5e3})}finally{Ye.value=!1}}})}async function dt(e){await he.mutateAsync(e.id)}async function ft(e){await _e.mutateAsync({enabled:e})}be(D,()=>{M.value=Tn}),c(Te,([e])=>{e?.isIntersecting&&it()}),w.connect();let pt=w.onCandidatesChanged(()=>{_.refetch()});return Ce(()=>{pt()}),(i,a)=>{let o=Ve,s=e,c=se,ne=Re,re=Ae,ie=ee,d=Oe,f=Pe,p=ke,m=H,h=W,y=He,pe=Le,me=Me,he=ze,_e=Be,C=Ne,ye=n,be=le,A=ue,M=je,Ce=Ie,R=t,Ge=te,K=v,Qe=ae,et=r;return S(),k(`div`,on,[V(g)?z(``,!0):(S(),k(`h1`,sn,x(i.$t(`views.training.title`)),1)),N(c,{position:`left`},{default:b(()=>[N(s,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:a[0]||=e=>i.$router.push(`/menu`)},{icon:b(()=>[N(o,{class:`w-6 h-6`})]),_:1})]),_:1}),N(c,{position:`center`},{default:b(()=>[O(`span`,$,x(i.$t(`views.training.title`)),1)]),_:1}),O(`div`,cn,[N(m,{class:`flex-1`},{default:b(()=>[N(d,{class:`flex-1`},{default:b(()=>[N(re,null,{default:b(()=>[N(ne,{class:`w-4 h-4`})]),_:1}),N(ie,{modelValue:V(D),"onUpdate:modelValue":a[1]||=e=>Ee(D)?D.value=e:null,placeholder:V(l)(`views.training.search`),class:`w-full`},null,8,[`modelValue`,`placeholder`])]),_:1}),N(p,null,{default:b(()=>[N(s,{severity:`secondary`,text:``,class:`text-color`,onClick:a[2]||=e=>V(Se)?.toggleMenu(e)},{icon:b(()=>[N(f,{class:xe([`w-4 h-4 transform transition-transform duration-300`,{"rotate-180":V(Se)?.isOpen}])},null,8,[`class`])]),_:1})]),_:1})]),_:1}),j((S(),F(s,{severity:`secondary`,outlined:``,class:`cui-button shrink-0`,onClick:ct},{icon:b(()=>[N(h,{class:`w-4.5 h-4.5`})]),_:1})),[[et,{value:i.$t(`views.training.submissions`)},void 0,{left:!0}]]),j((S(),F(s,{severity:`secondary`,outlined:``,class:`cui-button shrink-0`,onClick:a[3]||=e=>V(we)?.toggleMenu(e)},{icon:b(()=>[N(y,{class:`w-4.5 h-4.5`})]),_:1})),[[et,{value:i.$t(`views.training.collection`)},void 0,{left:!0}]])]),V(G)?(S(),k(`div`,ln,[V(G).active?(S(),k(L,{key:0},[N(pe,{class:`w-4 h-4 text-primary shrink-0`}),O(`div`,un,[O(`div`,dn,x(i.$t(`views.training.upload_progress`,{done:V(G).done+V(G).failed,total:V(G).total})),1),N(me,{value:V(G).total?Math.round((V(G).done+V(G).failed)/V(G).total*100):0,"show-value":!1,style:{height:`6px`},class:`mt-1.5`},null,8,[`value`])])],64)):(S(),k(L,{key:1},[V(G).failed?(S(),F(he,{key:0,class:`w-5 h-5 text-red-500 shrink-0`})):(S(),F(_e,{key:1,class:`w-5 h-5 text-green-500 shrink-0`})),O(`span`,fn,[P(x(i.$t(`views.training.submit_done`,V(G).done)),1),V(G).failed?(S(),k(L,{key:0},[P(` · `+x(i.$t(`views.training.upload_failed_summary`,{count:V(G).failed})),1)],64)):z(``,!0)]),N(s,{severity:`secondary`,text:``,rounded:``,class:`cui-icon-sm shrink-0`,onClick:a[4]||=e=>V(w).dismissProgress()},{icon:b(()=>[N(C,{class:`w-4 h-4`})]),_:1})],64))])):z(``,!0),V(_).isLoading.value&&!V(_).data.value?(S(),k(`div`,{key:2,class:`grid w-full gap-3 p-px`,style:E(V(De))},[(S(),k(L,null,T(8,e=>O(`div`,{key:e,class:`cui-card overflow-hidden`},[N(ye,{class:`aspect-video`,width:`100%`,height:`100%`}),O(`div`,pn,[N(ye,{height:`14px`,width:`70%`,class:`mb-1`}),N(ye,{height:`12px`,width:`40%`})])])),64))],4)):V(U).length===0?(S(),k(`div`,mn,[N(be,{class:`w-12 h-12 text-muted`}),O(`span`,hn,x(i.$t(`views.training.no_candidates`)),1)])):(S(),k(L,{key:4},[O(`div`,{class:`grid w-full gap-3 p-px`,style:E(V(De))},[(S(!0),k(L,null,T(V(Ue),e=>(S(),F(Ge,{key:e.id,class:`cui-card cui-training-card overflow-hidden transition-shadow cursor-pointer hover:shadow-md aspect-[1.17] flex flex-col`,pt:{header:{class:`flex-1 min-h-0 flex`},body:{class:`shrink-0`,style:`height: auto`}},onClick:t=>at(e)},{header:b(()=>[O(`div`,gn,[N(A,{class:`absolute inset-0`,src:Q(e.id),alt:Z(e.cameraId),"image-container-class":`w-full h-full`,"image-style":{objectFit:`cover`}},null,8,[`src`,`alt`]),O(`div`,_n,[(S(!0),k(L,null,T(nt(e),(e,t)=>(S(),k(`span`,{key:t,class:`px-1.5 py-0.5 rounded text-xs font-medium text-white`,style:E({backgroundColor:V(ce)(String(t)).color})},x(tt(String(t)))+` ×`+x(e),5))),128))]),e.upload?(S(),k(`div`,vn,[e.upload===`failed`?j((S(),F(M,{key:0,severity:`danger`,value:i.$t(`views.training.upload_failed`)},null,8,[`value`])),[[et,e.uploadError,void 0,{top:!0}]]):e.upload===`uploading`?(S(),F(M,{key:1,severity:`info`,value:i.$t(`views.training.upload_uploading`)},null,8,[`value`])):(S(),F(M,{key:2,severity:`secondary`,value:i.$t(`views.training.upload_queued`)},null,8,[`value`]))])):z(``,!0),!V(J)&&!q(e)?(S(),k(`div`,yn,[j((S(),F(s,{severity:`secondary`,rounded:``,size:`small`,class:`cui-icon-sm text-white`,onClick:I(t=>dt(e),[`stop`])},{icon:b(()=>[N(Ce,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[et,i.$t(`views.training.delete_candidate`),void 0,{top:!0}]])])):z(``,!0)])]),content:b(()=>[O(`div`,bn,[O(`div`,xn,[V(J)&&!q(e)?(S(),F(R,{key:0,"model-value":V(qe).has(e.id),binary:``,size:`small`,onClick:a[5]||=I(()=>{},[`stop`]),"onUpdate:modelValue":t=>V(Y)(e.id)},null,8,[`model-value`,`onUpdate:modelValue`])):z(``,!0),O(`div`,Sn,[O(`div`,Cn,x(Z(e.cameraId)),1),O(`div`,wn,x(V(de)(e.createdAt)),1)])]),N(M,{severity:rt(e.status),value:i.$t(`views.training.status_${e.status}`)},null,8,[`severity`,`value`])])]),_:2},1032,[`onClick`]))),128))],4),V(We)?(S(),k(`div`,{key:0,ref_key:`loadMoreRef`,ref:Te,class:`h-px`},null,512)):z(``,!0)],64)),V(U).length||V(J)?(S(),F(Qe,{key:5,"force-visible":V(J)},{default:b(()=>[V(J)?(S(),k(L,{key:1},[N(K,{grouped:``,"tooltip-props":{value:i.$t(`components.form.tooltip.cancel_selection`)},"button-props":{severity:`secondary`},icon:V(Ne),"icon-props":{width:`100%`,height:`100%`},onClick:V(Ze)},null,8,[`tooltip-props`,`icon`,`onClick`]),N(K,{grouped:``,"tooltip-props":{value:V(Je)?i.$t(`views.training.deselect_all`):i.$t(`views.training.select_all`)},"button-props":{severity:V(Je)?`primary`:`secondary`},icon:V(u),"icon-props":{width:`100%`,height:`100%`},onClick:V($e)},null,8,[`tooltip-props`,`button-props`,`icon`,`onClick`]),N(K,{grouped:``,"tooltip-props":{value:i.$t(`views.training.submit_selected`)},"button-props":{disabled:!V(X).length||V(ve).isPending.value},icon:V(Ke),"icon-props":{width:`100%`,height:`100%`},onClick:lt},null,8,[`tooltip-props`,`button-props`,`icon`]),N(K,{grouped:``,"tooltip-props":{value:i.$t(`views.training.delete_selected`)},"button-props":{severity:`danger`,disabled:!V(qe).size||V(Ye)},icon:V(ge),"icon-props":{width:`100%`,height:`100%`},onClick:ut},null,8,[`tooltip-props`,`button-props`,`icon`])],64)):(S(),F(K,{key:0,grouped:``,"tooltip-props":{value:i.$t(`views.training.select`)},"button-props":{severity:`secondary`},icon:V(oe),"icon-props":{width:`100%`,height:`100%`},onClick:V(Xe)},null,8,[`tooltip-props`,`icon`,`onClick`]))]),_:1},8,[`force-visible`])):z(``,!0),N(fe,{ref_key:`cameraMenuRef`,ref:Se,items:V(B),popover:{pt:{content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`]),N(fe,{ref_key:`settingsMenuRef`,ref:we,items:V(Fe),"auto-hide":!1,popover:{pt:{root:{class:`w-[22rem]`},content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])])}}}),[[`__scopeId`,`data-v-84e470e7`]]);export{En as default};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{Bt as e,It as t,L as n,Vr as r,q as i}from"./vendor-cameraui-BbGOMenD.js";import{An as a,Dr as o,Ft as s,Pn as c,U as ee,ar as te,gr as l,gt as ne,ht as re,i as u,nr as d,st as ie,z as f}from"./api-BNrZVfeD.js";import{$n as p,An as ae,Cr as m,Fn as h,In as g,On as _,Xn as v,cn as y,dn as b,dr as x,gn as S,hn as C,ln as w,lr as T,nr as E,or as D,rn as oe,sn as O,un as k,vn as A,yr as j}from"./vendor-DGke_6M4.js";import{K as se,L as ce,R as le,S as ue,_ as de,j as fe,z as pe}from"./vendor-primevue-DNJJiEZl.js";import{t as me}from"./api-CK2tonlH.js";import{t as he}from"./pencil-outline-CD3Xv98d.js";import{t as ge}from"./plugins-DKtX7zQp.js";import{t as _e}from"./CuiDataTable-DgcJsG-K.js";import{t as ve}from"./back-filled-BPBVnQjx.js";import{r as ye,t as be}from"./CuiChartTable-CSK4Mzn3.js";import{n as xe,t as Se}from"./updates-BqCH6Vr8.js";var M={class:`flex flex-col gap-2 w-full`},N={for:`workerName`,class:`cui-label`},Ce=A({__name:`RenameWorker`,props:{currentName:{}},setup(e,{expose:t}){let r=x(e.currentName);return t({onConfirm:async()=>r.value.trim()||null}),(e,t)=>{let i=n;return g(),b(`div`,M,[y(`label`,N,m(e.$t(`views.workers.name`)),1),S(i,{id:`workerName`,modelValue:j(r),"onUpdate:modelValue":t[0]||=e=>D(r)?r.value=e:null,class:`w-full`,autofocus:``},null,8,[`modelValue`])])}}}),P=T({workers:[],workerHistory:{}}),F=null,I=null;function L(e){let t=P.workers.findIndex(t=>t.agentId===e.agentId);if(t!==-1){let n=[...P.workers];n[t]=e,P.workers=n}else P.workers=[...P.workers,e];let n=P.workerHistory[e.agentId]??[];P.workerHistory={...P.workerHistory,[e.agentId]:[...n,e].slice(-30)}}async function we(){if(I?.ready.value)try{P.workers=await I.request(`get-workers`)}catch{}}async function Te(){if(I?.ready.value)try{P.workerHistory=await I.request(`get-worker-history`)}catch{}}async function R(){await Promise.all([we(),Te()])}function Ee(){return I||(F=E(!0),F.run(()=>{let e=l(`/workers`);I=e,e.on(`worker-update`,e=>L(e)),e.on(`worker-removed`,({agentId:e})=>{P.workers=P.workers.filter(t=>t.agentId!==e);let t={...P.workerHistory};delete t[e],P.workerHistory=t}),e.onReady(()=>{R()})}),I)}function De(){function e(){Ee()}function t(){}return{isConnected:O(()=>I?.connected.value??!1),workers:O(()=>P.workers),workerHistory:O(()=>P.workerHistory),connect:e,disconnect:t,loadAll:R}}var Oe={key:0,class:`page-title`},ke={key:1,class:`w-full h-full flex items-center justify-center`},Ae={key:2,class:`flex flex-col w-full gap-6`},je={class:`card-title`},Me={class:`flex flex-col gap-6`},Ne={class:`flex items-center gap-4`},Pe={class:`flex flex-col field-switch-gap`},Fe={class:`cui-label-switch`},Ie={class:`flex flex-col field-gap`},Le={for:`master-address`,class:`cui-label`},Re={class:`flex flex-col field-gap`},ze={for:`leaf-port`,class:`cui-label`},Be={class:`flex flex-row items-end justify-end`},Ve={key:0},He={class:`card-title`},Ue={class:`flex flex-col items-center justify-center gap-4 py-6`},We={class:`text-muted text-sm`},Ge={key:1},Ke={class:`card-title`},qe={class:`text-sm block mb-6`},Je={class:`text-muted text-sm`},Ye={class:`font-bold text-color text-sm`},Xe={key:2},Ze={class:`card-title`},Qe={class:`text-sm block mb-6`},$e={class:`text-muted text-sm`},et={class:`flex flex-col`},tt={class:`font-bold text-color text-sm`},nt={key:0,class:`text-muted text-xs`},rt={key:3},it={class:`card-title`},at={class:`flex flex-col gap-6`},ot={class:`text-sm`},st={class:`flex flex-col field-gap`},ct={class:`cui-label`},lt={class:`flex flex-col field-gap`},ut={class:`flex flex-row items-center justify-between`},dt={class:`cui-label`},ft={class:`pairing-snippet`},pt={class:`flex flex-row items-end justify-end`},mt=a(A({__name:`Workers`,setup(a){let{t:l}=r(),{smBreakpoint:T}=c(),E=ie(),A=Se(),M=o(),N=De(),{workers:P,workerHistory:F,isConnected:I}=N,L=new me,we=new s,Te=new ge,R=new xe,{data:Ee,isLoading:mt}=we.getCamerasQuery(x({page:1,pageSize:999})),{data:ht,isLoading:gt}=Te.getPluginsQuery(x({page:1,pageSize:999})),{data:z}=R.getConfigQuery(),{mutateAsync:_t,isPending:vt}=R.patchConfigQuery(),{mutateAsync:yt}=R.assignCameraQuery(),{mutateAsync:bt}=R.unassignCameraQuery(),{mutateAsync:xt}=R.restartWorkerQuery(),{mutateAsync:St}=R.updateWorkerQuery(),{mutateAsync:Ct,isPending:wt}=R.createPairingQuery(),{mutateAsync:Tt}=R.removeWorkerQuery(),{mutateAsync:Et}=R.assignPluginQuery(),{mutateAsync:Dt}=R.unassignPluginQuery(),{mutateAsync:Ot}=R.renameWorkerQuery(),{data:kt}=L.apiInfoQuery(),At={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm font-semibold`}}},jt=x(!1),B=x([]),V=x([]),H=x([]),U=x(new Set),W=x(new Set),G=x(null),K=x(``),q=x(7422),Mt=!1,J=new Map,Nt=O(()=>Ee.value?.result??[]),Pt=O(()=>ht.value?.result??[]),Y=O(()=>z.value?.enabled??!1),Ft=O(()=>(z.value?.suggestedAddresses??[]).map(e=>({label:e,value:e}))),X=O(()=>q.value!==(z.value?.port??7422)),It=O(()=>K.value!==(z.value?.address??``)||X.value),Lt=O(()=>new Set(P.value.map(e=>e.agentId))),Z=O(()=>A.targetServerVersion??kt.value?.version),Rt=O(()=>G.value?Math.max(0,Math.round((G.value.expiresAt-Date.now())/6e4)):0),zt=O(()=>G.value?[`worker:`,` master: ${G.value.address||`<MASTER_IP>`}`,` apiPort: ${G.value.apiPort}`,` pairingCode: ${G.value.code}`,` name: my-worker`,` capabilities:`,` - frameDecoding`,` - pluginHost`].join(`
|
|
2
|
-
`):``),Bt=O(()=>[{type:`indicator`,field:`status`,columnProps:{headerClass:`w-5 max-w-5`,class:`w-5 max-w-5`},color(e){return e.online?e.versionMismatch?`orange`:`green`:`red`},tooltip(e){return e.online?e.update?.error?l(`views.workers.update_failed`,{error:e.update.error}):e.update?.updating?l(`views.workers.updating`):e.versionMismatch?l(`views.workers.version_mismatch`,{version:e.version||`?`}):l(`views.workers.online`):l(`views.workers.offline`)}},{type:`category`,field:`name`,name:l(`views.workers.name`),columnProps:{headerClass:`w-40 min-w-40 max-w-40`,class:`w-40 min-w-40 max-w-40`},props:{class:`font-bold text-color`}},{type:`category`,field:e=>e.version?e.versionMismatch&&Z.value?`v${e.version} → v${Z.value}`:`v${e.version}`:`—`,name:l(`views.workers.version`),asChip:!0,columnProps:{headerClass:`min-w-30`,class:`min-w-30`}},{type:`category`,field:e=>e.platform?`${e.platform.os}/${e.platform.arch}`:`—`,name:l(`views.workers.platform`),asChip:!0,columnProps:{headerClass:`min-w-40`,class:`min-w-40`}},{type:`category`,field:e=>e.pid?.toString()??`—`,name:l(`views.workers.pid`),columnProps:{headerClass:`min-w-20`,class:`min-w-20`}},{type:`category`,field:e=>e.cpuLoad===void 0?`—`:`${e.cpuLoad}%`,name:l(`views.workers.cpu`),asChip:!0,columnProps:{headerClass:`min-w-30`,class:`min-w-30`}},{type:`chart`,field:`cpu_chart`,for:`cpuLoad`,columnProps:{headerClass:`min-w-[250px]`,class:`min-w-[250px]`}},{type:`category`,field:e=>e.memLoad===void 0?`—`:`${e.memLoad}%`,name:l(`views.workers.memory`),asChip:!0,columnProps:{headerClass:`min-w-30`,class:`min-w-30`}},{type:`chart`,field:`memory_chart`,for:`memLoad`,columnProps:{headerClass:`min-w-[250px]`,class:`min-w-[250px]`}},{type:`action`,field:`actions`,columnProps:{class:`text-right`},buttons:[{icon:he,buttonProps:{severity:`secondary`},tooltip:()=>l(`views.workers.rename_worker`),action:e=>Ht(e)},{icon:d,buttonProps:{severity:`secondary`},loading:e=>e.update?.updating||H.value.includes(e.agentId),disabled:e=>!e.online||!e.versionMismatch||!e.update?.updatable,tooltip:e=>Ut(e),action:e=>Wt(e.agentId)},{icon:ye,buttonProps:{severity:`secondary`},loading:e=>B.value.includes(e.name),disabled:e=>!e.online,tooltip:()=>l(`views.workers.restart_worker`),action:e=>Gt(e.name,e.agentId)},{icon:f,buttonProps:{severity:`danger`},loading:e=>V.value.includes(e.agentId),tooltip:()=>l(`views.workers.remove_worker`),action:e=>rn(e)}]}]),Vt=O(()=>{let e=F.value;return P.value.reduce((t,n)=>{for(let r of[`cpuLoad`,`memLoad`]){let i=e[n.agentId]??[],a=i.slice(-30).filter(e=>e[r]!==void 0).map(e=>parseFloat(e[r])),o=i.slice(-30).map(e=>e.lastHeartbeat),s=[...a,...Array(30-a.length).fill(0)],c=[...o,...Array(30-o.length).fill(null)];t[`${n.name}_${r}`]={labels:c,datasets:[{data:s,backgroundColor:e=>{let t=e.raw;return t>=90?`#FA5252`:t>=50?`#FF9966`:`#df2a4c`},borderWidth:0,borderRadius:3,barPercentage:.8,categoryPercentage:.8,maxBarThickness:4,barThickness:4}]}}return t},{})});function Ht(e){E.openComponentDialog(Ce,{data:{title:l(`views.workers.rename_worker`),confirmText:l(`views.workers.save`),contentProps:{currentName:e.name}},onConfirm:async t=>{t&&t!==e.name&&await Ot({agentId:e.agentId,name:t})}})}function Ut(e){return e.update?.updating?l(`views.workers.updating`):Z.value?l(`views.workers.update_worker`,{version:Z.value}):l(`views.workers.update_worker_short`)}async function Wt(e){J.delete(e),H.value.push(e);try{await St({agentId:e})}finally{H.value=H.value.filter(t=>t!==e)}}async function Gt(e,t){B.value.push(e);try{await xt(t)}finally{B.value=B.value.filter(t=>t!==e)}}function Kt(){let e=[];for(let t of P.value){let n=t.online?t.name:`${t.name} (${l(`views.workers.offline`).toLowerCase()})`;e.push({label:n,value:t.agentId})}return e}function Q(e){return e&&Lt.value.has(e)?e:null}function qt(e,t){if(!e?.length)return!0;let n=e.filter(e=>e.startsWith(`!`)).map(e=>e.slice(1)),r=e.filter(e=>!e.startsWith(`!`));return n.includes(t)?!1:r.length===0||r.includes(t)}function Jt(e,t){return!t.platform||qt(e.os,t.platform.os)&&qt(e.cpu,t.platform.arch)}function Yt(e){let t=[];return e.os?.length&&t.push(`os: ${e.os.join(`, `)}`),e.cpu?.length&&t.push(`cpu: ${e.cpu.join(`, `)}`),t.join(` · `)}function Xt(e){let t=[];for(let n of P.value){let r=Jt(e,n),i=n.online?``:` (${l(`views.workers.offline`).toLowerCase()})`,a=r?``:` — ${l(`views.workers.incompatible`)}`;t.push({label:`${n.name}${i}${a}`,value:n.agentId,disabled:!r})}return t}function Zt(e){return W.value.has(e)}async function Qt(e,t){if(t===Q(e.workerAgentId))return;let n=new Set(W.value);n.add(e.pluginName),W.value=n;try{t?await Et({pluginName:e.pluginName,agentId:t}):await Dt({pluginName:e.pluginName})}catch{}finally{let t=new Set(W.value);t.delete(e.pluginName),W.value=t}}function $(e){return U.value.has(e)}async function $t(e,t){if(t===Q(e.workerAgentId))return;let n=new Set(U.value);n.add(e._id),U.value=n;try{t?await yt({cameraId:e._id,agentId:t}):await bt({cameraId:e._id})}catch{}finally{let t=new Set(U.value);t.delete(e._id),U.value=t}}async function en(){try{G.value=await Ct()}catch{}}async function tn(e){if(e&&!K.value&&(K.value=z.value?.suggestedAddresses?.[0]??``,!K.value)){E.openTextDialog({data:{title:l(`views.workers.enable_workers`),contentText:l(`views.workers.address_required`),confirmText:l(`views.workers.ok`)}});return}try{await _t(e?{enabled:!0,address:K.value,port:q.value}:{enabled:!1})}catch{}}async function nn(){try{await _t({address:K.value,port:q.value})}catch{}}function rn(e){E.openTextDialog({data:{title:l(`views.workers.remove_worker`),confirmText:l(`views.workers.remove`),contentText:l(`views.workers.remove_worker_confirm`,{name:e.name}),confirmButtonProps:{severity:`danger`}},dialogSize:{desktop:{width:`auto`,maxWidth:`560px`,maxHeight:`90vh`}},onConfirm:async()=>{V.value.push(e.agentId);try{await Tt(e.agentId)}finally{V.value=V.value.filter(t=>t!==e.agentId)}}})}return ae(async()=>{N.connect(),A.connect(),await _(),N.loadAll(),jt.value=!0}),v(z,e=>{e&&(K.value=e.address,q.value=e.port)},{immediate:!0}),v(P,e=>{if(!Mt){if(!e.length)return;for(let t of e)t.update?.error&&J.set(t.agentId,t.update.error);Mt=!0;return}for(let t of e){if(t.update?.updating){J.delete(t.agentId);continue}let e=t.update?.error;if(!e){J.delete(t.agentId);continue}J.get(t.agentId)!==e&&(J.set(t.agentId,e),M.add({severity:`error`,summary:t.name,detail:l(`views.workers.update_failed`,{error:e}),life:6e3}))}}),h(()=>{N.disconnect()}),(r,a)=>{let o=ve,s=e,c=ee,l=t,d=pe,ie=se,f=fe,ae=de,h=i,_=be,v=te,x=ue,E=_e,O=n,A=ne,me=ce,he=le;return g(),b(`div`,null,[j(T)?k(``,!0):(g(),b(`h1`,Oe,m(r.$t(`views.workers.title`)),1)),S(c,{position:`left`},{default:p(()=>[S(s,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:a[0]||=e=>r.$router.push(`/menu`)},{icon:p(()=>[S(o,{class:`w-6 h-6`})]),_:1})]),_:1}),!j(jt)||!j(I)?(g(),b(`div`,ke,[S(l,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(g(),b(`div`,Ae,[y(`div`,null,[y(`span`,je,m(r.$t(`views.workers.configuration`)),1),S(h,{class:`cui-card`},{content:p(()=>[y(`div`,Me,[y(`div`,Ne,[y(`div`,Pe,[y(`label`,Fe,m(r.$t(`views.workers.enable_workers`)),1),S(d,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:p(()=>[C(m(r.$t(`views.workers.enable_workers_description`)),1)]),_:1})]),S(ie,{"model-value":j(Y),disabled:j(vt),class:`ml-auto shrink-0`,"onUpdate:modelValue":tn},null,8,[`model-value`,`disabled`])]),j(Y)?(g(),b(oe,{key:0},[y(`div`,Ie,[y(`label`,Le,m(r.$t(`views.workers.master_address`)),1),S(f,{modelValue:j(K),"onUpdate:modelValue":a[1]||=e=>D(K)?K.value=e:null,"input-id":`master-address`,options:j(Ft),editable:``,"option-label":`label`,"option-value":`value`,placeholder:r.$t(`views.workers.master_address_placeholder`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),S(d,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:p(()=>[C(m(r.$t(`views.workers.master_address_hint`)),1)]),_:1})]),y(`div`,Re,[y(`label`,ze,m(r.$t(`views.workers.leaf_port`)),1),S(ae,{modelValue:j(q),"onUpdate:modelValue":a[2]||=e=>D(q)?q.value=e:null,"input-id":`leaf-port`,min:1024,max:65535,"use-grouping":!1,class:`w-full`},null,8,[`modelValue`]),j(X)&&(j(z)?.pairedWorkers??0)>0?(g(),w(d,{key:0,severity:`warn`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:p(()=>[C(m(r.$t(`views.workers.port_change_warning`)),1)]),_:1})):k(``,!0)]),y(`div`,Be,[S(s,{class:`cui-button-medium`,label:r.$t(`views.workers.save`),loading:j(vt),disabled:!j(It),onClick:nn},null,8,[`label`,`loading`,`disabled`])])],64)):k(``,!0)])]),_:1})]),j(Y)?(g(),b(`div`,Ve,[y(`span`,He,m(r.$t(`views.workers.workers`)),1),j(P).length?(g(),w(_,{key:0,items:j(P),headers:j(Bt),"chart-data":j(Vt)},null,8,[`items`,`headers`,`chart-data`])):(g(),w(h,{key:1,class:`cui-card`,pt:{root:{class:`h-full`}}},{content:p(()=>[y(`div`,Ue,[S(v,{class:`w-12 h-12 text-muted`}),y(`span`,We,m(r.$t(`views.workers.no_workers`)),1)])]),_:1}))])):k(``,!0),j(Y)&&j(P).length?(g(),b(`div`,Ge,[y(`span`,Ke,m(r.$t(`views.workers.camera_assignments`)),1),S(h,{class:`cui-card`},{content:p(()=>[y(`span`,qe,m(r.$t(`views.workers.camera_assignments_description`)),1),S(E,{value:j(Nt),loading:j(mt),pt:At,"striped-rows":``,class:`w-full`},{loading:p(()=>[S(l,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:p(()=>[y(`span`,Je,m(r.$t(`views.workers.no_cameras`)),1)]),default:p(()=>[S(x,{field:`name`,header:r.$t(`views.workers.camera`),"header-class":`p-2 min-w-40`,class:`p-2 min-w-40`},{body:p(({data:e})=>[y(`span`,Ye,m(e.name),1)]),_:1},8,[`header`]),S(x,{header:r.$t(`views.workers.workers`),"header-class":`p-2 w-full`,class:`p-2 w-full`},{body:p(({data:e})=>[S(f,{"model-value":Q(e.workerAgentId),options:Kt(),"option-label":`label`,"option-value":`value`,placeholder:r.$t(`views.workers.local`),class:`w-full`,"show-clear":``,loading:$(e._id),disabled:$(e._id),"onUpdate:modelValue":t=>$t(e,t)},null,8,[`model-value`,`options`,`placeholder`,`loading`,`disabled`,`onUpdate:modelValue`])]),_:1},8,[`header`])]),_:1},8,[`value`,`loading`])]),_:1})])):k(``,!0),j(Y)&&j(P).length?(g(),b(`div`,Xe,[y(`span`,Ze,m(r.$t(`views.workers.plugin_assignments`)),1),S(h,{class:`cui-card`},{content:p(()=>[y(`span`,Qe,m(r.$t(`views.workers.plugin_assignments_description`)),1),S(E,{value:j(Pt),loading:j(gt),pt:At,"striped-rows":``,class:`w-full`},{loading:p(()=>[S(l,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:p(()=>[y(`span`,$e,m(r.$t(`views.workers.no_plugins`)),1)]),default:p(()=>[S(x,{field:`displayName`,header:r.$t(`views.workers.plugin`),"header-class":`p-2 min-w-40`,class:`p-2 min-w-40`},{body:p(({data:e})=>[y(`div`,et,[y(`span`,tt,m(e.displayName),1),Yt(e)?(g(),b(`span`,nt,m(Yt(e)),1)):k(``,!0)])]),_:1},8,[`header`]),S(x,{header:r.$t(`views.workers.workers`),"header-class":`p-2 w-full`,class:`p-2 w-full`},{body:p(({data:e})=>[S(f,{"model-value":Q(e.workerAgentId),options:Xt(e),"option-label":`label`,"option-value":`value`,"option-disabled":`disabled`,placeholder:r.$t(`views.workers.local`),class:`w-full`,"show-clear":``,loading:Zt(e.pluginName),disabled:Zt(e.pluginName),"onUpdate:modelValue":t=>Qt(e,t)},null,8,[`model-value`,`options`,`placeholder`,`loading`,`disabled`,`onUpdate:modelValue`])]),_:1},8,[`header`])]),_:1},8,[`value`,`loading`])]),_:1})])):k(``,!0),j(Y)?(g(),b(`div`,rt,[y(`span`,it,m(r.$t(`views.workers.pair_worker`)),1),S(h,{class:`cui-card`},{content:p(()=>[y(`div`,at,[y(`span`,ot,m(r.$t(`views.workers.pair_worker_description`)),1),j(G)?(g(),b(oe,{key:0},[y(`div`,st,[y(`label`,ct,m(r.$t(`views.workers.pairing_code`)),1),S(he,null,{default:p(()=>[S(O,{"model-value":j(G).code,readonly:``,type:`text`},null,8,[`model-value`]),S(me,null,{default:p(()=>[S(A,{"action-text":r.$t(`views.workers.copied`),icon:j(re),"button-props":{severity:`secondary`,text:!0},onAction:a[3]||=e=>j(u)(j(G).code)},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),S(d,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:p(()=>[C(m(r.$t(`views.workers.pairing_expires`,{minutes:j(Rt)})),1)]),_:1})]),y(`div`,lt,[y(`div`,ut,[y(`label`,dt,m(r.$t(`views.workers.pairing_snippet`)),1),S(A,{"action-text":r.$t(`views.workers.copied`),icon:j(re),"button-props":{severity:`secondary`,text:!0},onAction:a[4]||=e=>j(u)(j(zt))},null,8,[`action-text`,`icon`])]),y(`pre`,ft,m(j(zt)),1),S(d,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:p(()=>[C(m(r.$t(`views.workers.pairing_snippet_hint`)),1)]),_:1})])],64)):k(``,!0),y(`div`,pt,[S(s,{class:`cui-button-medium`,label:r.$t(`views.workers.generate_code`),loading:j(wt),onClick:en},null,8,[`label`,`loading`])])])]),_:1})])):k(``,!0)]))])}}}),[[`__scopeId`,`data-v-11df8752`]]);export{mt as default};
|