@camera.ui/server 0.0.103 → 0.0.105

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.
Files changed (284) hide show
  1. package/dist/interface/assets/{404-C4HBXE9H.js → 404-dD7prz4d.js} +1 -1
  2. package/dist/interface/assets/{About-BB65Lzts.js → About-4w_Ij32a.js} +1 -1
  3. package/dist/interface/assets/{Adminpanel-DksrdOX6.js → Adminpanel-BgxU0Yh6.js} +1 -1
  4. package/dist/interface/assets/{Automation-DSyCezSx.js → Automation-CYsN1p2P.js} +2 -2
  5. package/dist/interface/assets/{Automations-BqHoiN9D.js → Automations-CRd6MuM2.js} +1 -1
  6. package/dist/interface/assets/{Camera-BUkNxSX8.js → Camera-DCqFhkAt.js} +2 -2
  7. package/dist/interface/assets/{CameraConsole-B5tlzPMf.js → CameraConsole-DfIBG8ZV.js} +1 -1
  8. package/dist/interface/assets/{Cameras-DnMkOoQ-.js → Cameras-BK67w1OJ.js} +1 -1
  9. package/dist/interface/assets/{Camview-pqMzyAGd.js → Camview-B0go1EMt.js} +1 -1
  10. package/dist/interface/assets/{Config-BXraGGzy.js → Config-CeEi3tKd.js} +1 -1
  11. package/dist/interface/assets/{ConfigActionCameraControl-BW8EcAmD.js → ConfigActionCameraControl-rP-oa_3f.js} +1 -1
  12. package/dist/interface/assets/{ConfigActionDelay-Cv1Jc4Af.js → ConfigActionDelay-BJeC4VAJ.js} +1 -1
  13. package/dist/interface/assets/{ConfigActionHttp-Exr4qXgr.js → ConfigActionHttp-F8Mpo56C.js} +1 -1
  14. package/dist/interface/assets/{ConfigActionImageInput-C_blNA7l.js → ConfigActionImageInput-Drtv5ElC.js} +1 -1
  15. package/dist/interface/assets/{ConfigActionNotification-c82sNKGj.js → ConfigActionNotification-DR8c22Y1.js} +1 -1
  16. package/dist/interface/assets/{ConfigActionOutput-BWWI1I05.js → ConfigActionOutput-CbT2-VnU.js} +1 -1
  17. package/dist/interface/assets/{ConfigActionPlugin-C-ssa_L8.js → ConfigActionPlugin-DE-S6S0y.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionSensor-D84c6MGM.js → ConfigActionSensor-Dw_V9cYY.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionSnapshot-gVinlxno.js → ConfigActionSnapshot-5xUvGsae.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionVariable-BSQEmP0j.js → ConfigActionVariable-Bub1V_a3.js} +1 -1
  21. package/dist/interface/assets/{ConfigConditionIfElse-C9741PPm.js → ConfigConditionIfElse-CAt9ubD2.js} +1 -1
  22. package/dist/interface/assets/{ConfigConditionSensorState-BaTq_Nw9.js → ConfigConditionSensorState-DhP32uo8.js} +1 -1
  23. package/dist/interface/assets/{ConfigConditionSwitch-BlGjAB9K.js → ConfigConditionSwitch-DB2r6i-I.js} +1 -1
  24. package/dist/interface/assets/{ConfigConditionTime-Drt82ljn.js → ConfigConditionTime-zqIQQ-tD.js} +1 -1
  25. package/dist/interface/assets/{ConfigTriggerDetection-CsMfvz0e.js → ConfigTriggerDetection-CVW5HXeG.js} +1 -1
  26. package/dist/interface/assets/ConfigTriggerGeofence-BsPsPO4j.js +1 -0
  27. package/dist/interface/assets/{ConfigTriggerManual-Bq8BSgf-.js → ConfigTriggerManual-DhafkyQd.js} +1 -1
  28. package/dist/interface/assets/{ConfigTriggerSchedule-BBH8-VaZ.js → ConfigTriggerSchedule-Bx3qlITv.js} +1 -1
  29. package/dist/interface/assets/{ConfigTriggerSensor-DqT2GK2o.js → ConfigTriggerSensor-FVgMXGty.js} +1 -1
  30. package/dist/interface/assets/{ConfigTriggerSystem-wbIuPI0Y.js → ConfigTriggerSystem-BJo-wIMS.js} +1 -1
  31. package/dist/interface/assets/{ConfigTriggerWebhook-B-8yle9W.js → ConfigTriggerWebhook-BaUrOAZB.js} +1 -1
  32. package/dist/interface/assets/{Console-CI1H4Qzv.js → Console-B23nM1WG.js} +1 -1
  33. package/dist/interface/assets/{CuiActionButton-DGHrQXSc.js → CuiActionButton-Dywht3_D.js} +1 -1
  34. package/dist/interface/assets/{CuiAvatar-BNZbtuaI.js → CuiAvatar-CdoyvPP1.js} +1 -1
  35. package/dist/interface/assets/{CuiBBoxPlayground-_SGm4cz1.js → CuiBBoxPlayground-DcAhwW8k.js} +1 -1
  36. package/dist/interface/assets/CuiBottomSheet-CU8irFoy.js +1 -0
  37. package/dist/interface/assets/{CuiBottomSheet-VX6AuCso.js → CuiBottomSheet-CvkbklC_.js} +1 -1
  38. package/dist/interface/assets/CuiCameraCard-BxWf13Ct.js +1 -0
  39. package/dist/interface/assets/{CuiCameraPipCard-DpAujrhA.js → CuiCameraPipCard-CR5a-MkM.js} +1 -1
  40. package/dist/interface/assets/CuiCameraRecordings-BXfAlbHm.js +1 -0
  41. package/dist/interface/assets/{CuiCameraShares-dY9bxWdp.js → CuiCameraShares-CJpSVfdl.js} +1 -1
  42. package/dist/interface/assets/{CuiCameraSnapshot-DvIhxEdj.js → CuiCameraSnapshot-Cg8Vjve3.js} +1 -1
  43. package/dist/interface/assets/{CuiCameraTable-Ykb8p1Tt.js → CuiCameraTable-CfJNlsEQ.js} +1 -1
  44. package/dist/interface/assets/{CuiDataTable-DyzBmfqA.js → CuiDataTable-C9mtC73b.js} +1 -1
  45. package/dist/interface/assets/{CuiFloatingButton-B4byvsOs.js → CuiFloatingButton-Bi1jS25U.js} +1 -1
  46. package/dist/interface/assets/{CuiImage-C0GGnNA9.js → CuiImage-DJcQfDpa.js} +1 -1
  47. package/dist/interface/assets/{CuiMarkdownContent-C6-rAxQO.js → CuiMarkdownContent-DL3Xnrg7.js} +1 -1
  48. package/dist/interface/assets/CuiMenu-150v0xB6.js +1 -0
  49. package/dist/interface/assets/{CuiPluginCard-DpllCJXe.js → CuiPluginCard-CHLd5hzA.js} +2 -2
  50. package/dist/interface/assets/{CuiPluginOAuthButton--Jp3Q0A3.js → CuiPluginOAuthButton-B7JHhElr.js} +2 -2
  51. package/dist/interface/assets/{CuiQRCode-D2hEZT9L.js → CuiQRCode-ZbDxg42W.js} +1 -1
  52. package/dist/interface/assets/{CuiRecordingsGrid-BdcRMu0G.js → CuiRecordingsGrid-Bl0vRmPG.js} +1 -1
  53. package/dist/interface/assets/{CuiSchema-CkgT_tmr.js → CuiSchema-DvWek91_.js} +1 -1
  54. package/dist/interface/assets/{CuiTopNavbarItem-DdZ2xZLa.js → CuiTopNavbarItem-Dwm5c6so.js} +1 -1
  55. package/dist/interface/assets/{CuiTopbarSlot-BlbZqDDn.js → CuiTopbarSlot-DE7fTsSm.js} +1 -1
  56. package/dist/interface/assets/{Faces-BkETqRJ6.js → Faces-6nDCr24_.js} +1 -1
  57. package/dist/interface/assets/{FirstSteps-BilLeQ5G.js → FirstSteps-DB7hnFYh.js} +1 -1
  58. package/dist/interface/assets/{Instances-BdSaPTUA.js → Instances-KpdnZAmV.js} +1 -1
  59. package/dist/interface/assets/Logs-Cq2AF2x-.js +6 -0
  60. package/dist/interface/assets/Menu-CeDR7bvT.js +1 -0
  61. package/dist/interface/assets/{OAuthDeviceFlow-CX8VE9Op.js → OAuthDeviceFlow-BVOHNDTs.js} +1 -1
  62. package/dist/interface/assets/{Plugin-DiJY8ovk.js → Plugin-BB6k9AtE.js} +1 -1
  63. package/dist/interface/assets/{PluginConsole-B6YqeO05.js → PluginConsole-Cbo8LA6t.js} +1 -1
  64. package/dist/interface/assets/{PluginSchema-g4Srx0FS.js → PluginSchema-CCfTSjTD.js} +1 -1
  65. package/dist/interface/assets/{Plugins-CMvoQGbI.js → Plugins-DpTVWC5S.js} +2 -2
  66. package/dist/interface/assets/Recordings-B0_4e1tu.js +1 -0
  67. package/dist/interface/assets/{Settings-B5CPx04W.js → Settings-Wz10iv8b.js} +1 -1
  68. package/dist/interface/assets/{SettingsAccount-BfZ8sdKS.js → SettingsAccount-BNSg5Wx5.js} +1 -1
  69. package/dist/interface/assets/SettingsAccount-DlGKfeGf.js +1 -0
  70. package/dist/interface/assets/SettingsAppearance-N4r7TCgr.js +1 -0
  71. package/dist/interface/assets/{SettingsAppearance-CI7FpIXv.js → SettingsAppearance-VHR3IVCx.js} +1 -1
  72. package/dist/interface/assets/{SettingsBackup-BybcQ1Qu.js → SettingsBackup-DGhqvHHm.js} +1 -1
  73. package/dist/interface/assets/{SettingsNotifications-wtu6QB4B.js → SettingsNotifications-BHcRDJAp.js} +2 -2
  74. package/dist/interface/assets/{SettingsRecordings-CUAdt-gW.js → SettingsRecordings-CrMGLPfU.js} +1 -1
  75. package/dist/interface/assets/SettingsRemote-B1m3_4lr.js +1 -0
  76. package/dist/interface/assets/SettingsRemote-D9COJF4m.css +1 -0
  77. package/dist/interface/assets/{SettingsSystem-uDcUCmqx.js → SettingsSystem-z5r89MJJ.js} +2 -2
  78. package/dist/interface/assets/{SettingsUsers-DQD7uvLD.js → SettingsUsers-yReLqEQ1.js} +1 -1
  79. package/dist/interface/assets/{Terminal-BCqT206D.js → Terminal-BAiV8ZVj.js} +1 -1
  80. package/dist/interface/assets/{VariableInput-B6XB9GPi.js → VariableInput-Dw0KbkD9.js} +1 -1
  81. package/dist/interface/assets/{VariableSuggestions-Bz3FsUVi.js → VariableSuggestions-D5_Zu_un.js} +1 -1
  82. package/dist/interface/assets/{VersionsHandler-XIP-8qdF.js → VersionsHandler-BDWjtbp0.js} +1 -1
  83. package/dist/interface/assets/{Workers-n0R8LJrp.js → Workers-DbnD_Bpy.js} +1 -1
  84. package/dist/interface/assets/{alert-outline-C1wLiv_z.js → alert-outline-CQlVMOxC.js} +1 -1
  85. package/dist/interface/assets/api-BB9AG_h5.css +2 -0
  86. package/dist/interface/assets/api-C-NlYhuP.js +2 -0
  87. package/dist/interface/assets/{api-CPYyBUl4.js → api-D6SjwBWd.js} +1 -1
  88. package/dist/interface/assets/{arrow-left-CGyu-P3h.js → arrow-left-YsUvJVC6.js} +1 -1
  89. package/dist/interface/assets/{arrow-right-outline-DQ_SaRc3.js → arrow-right-outline-DKHopCcO.js} +1 -1
  90. package/dist/interface/assets/{auth-BQz6cI2B.js → auth-dyUBxkxf.js} +1 -1
  91. package/dist/interface/assets/{automation-B4F575nU.js → automation-JqGk69ZM.js} +1 -1
  92. package/dist/interface/assets/{automations-Cz8XYNjF.js → automations-BH3C3DOU.js} +1 -1
  93. package/dist/interface/assets/{automations-DuP9VcsG.js → automations-CrRSdJyJ.js} +1 -1
  94. package/dist/interface/assets/{back-filled-DVeRsKmt.js → back-filled-2dVfzfd3.js} +1 -1
  95. package/dist/interface/assets/{backup-CHJcbko5.js → backup-C2-2-LD2.js} +1 -1
  96. package/dist/interface/assets/{bell-D6XTudrP.js → bell-DAJo7K-Y.js} +1 -1
  97. package/dist/interface/assets/{bell-outline-k9_tJysZ.js → bell-outline-6UpM5pQx.js} +1 -1
  98. package/dist/interface/assets/{cameras-BOHWrQm2.js → cameras-Co3xGKAG.js} +1 -1
  99. package/dist/interface/assets/{cameras.schema-DGaqX6vz.js → cameras.schema-y2YP50-k.js} +1 -1
  100. package/dist/interface/assets/{cctv-C9H_8mDb.js → cctv-BLn_0bJ6.js} +1 -1
  101. package/dist/interface/assets/{check-HQ9W_dro.js → check-DoWZir_S.js} +1 -1
  102. package/dist/interface/assets/{chevron-down-BFDmLtMX.js → chevron-down-Bzr6VWQF.js} +1 -1
  103. package/dist/interface/assets/{chevron-right-C1Rdu1sM.js → chevron-right-HArXFSSz.js} +1 -1
  104. package/dist/interface/assets/{circular-connection-CaaBP9U6.js → circular-connection-DLItZj68.js} +1 -1
  105. package/dist/interface/assets/{close-CEZvWyN1.js → close-BlkMdXhr.js} +1 -1
  106. package/dist/interface/assets/{close-circle-BtZFk77i.js → close-circle-J1rQOUEG.js} +1 -1
  107. package/dist/interface/assets/{cloud-check-C0emdjhh.js → cloud-check-DqBwzaPC.js} +1 -1
  108. package/dist/interface/assets/{cloud-outline-U1SKfuPN.js → cloud-outline-9JADkpxw.js} +1 -1
  109. package/dist/interface/assets/{cloud-outline-a06O-YjU.js → cloud-outline-BEXrgKM1.js} +1 -1
  110. package/dist/interface/assets/cloudHandoff-C9HXr7Oq.js +1 -0
  111. package/dist/interface/assets/{cog-OzsdLKVr.js → cog-CWyAfGhY.js} +1 -1
  112. package/dist/interface/assets/{copy-16-filled-BcFxEpOL.js → copy-16-filled-BvGFaW1f.js} +1 -1
  113. package/dist/interface/assets/{copy-BYDiYBqr.js → copy-CEGSZQjo.js} +1 -1
  114. package/dist/interface/assets/{delete-C4Qcsafo.js → delete-CVqAtfTw.js} +1 -1
  115. package/dist/interface/assets/{deviceId-B9H0nPQf.js → deviceId-CiXrj9Di.js} +1 -1
  116. package/dist/interface/assets/{dist-ew0paqIa.js → dist-DDpgYwYa.js} +1 -1
  117. package/dist/interface/assets/{download-CkCfeLe7.js → download-7RwLjvMX.js} +1 -1
  118. package/dist/interface/assets/esm-BA2sVcC5.js +1 -0
  119. package/dist/interface/assets/esm-BABYdz4G.js +1 -0
  120. package/dist/interface/assets/esm-BChmgDDk.js +1 -0
  121. package/dist/interface/assets/esm-BgpyzSA5.js +1 -0
  122. package/dist/interface/assets/esm-BhMVOOUn2.js +1 -0
  123. package/dist/interface/assets/esm-BwSW-2xH.js +1 -0
  124. package/dist/interface/assets/esm-C4QiEuND.js +1 -0
  125. package/dist/interface/assets/esm-CydVduuF.js +1 -0
  126. package/dist/interface/assets/esm-DCbdltvd.js +1 -0
  127. package/dist/interface/assets/esm-DYq0vy7A.js +1 -0
  128. package/dist/interface/assets/esm-DfZgCbxC.js +1 -0
  129. package/dist/interface/assets/esm-SjVG7wXH.js +1 -0
  130. package/dist/interface/assets/esm-ir2psFWa.js +1 -0
  131. package/dist/interface/assets/{eventIcons-3Ey2FdFX.js → eventIcons-BMaAnQWe.js} +1 -1
  132. package/dist/interface/assets/{face-recognition-K0AJVYWA.js → face-recognition-Bx4cPKgu.js} +1 -1
  133. package/dist/interface/assets/{github-xiZ7fokg.js → github--PDCVHbp.js} +1 -1
  134. package/dist/interface/assets/{grid-fill-D0IgCOgV.js → grid-fill-8exr_unf.js} +1 -1
  135. package/dist/interface/assets/{hasPermission-BHM3xbrG.js → hasPermission-DKTmzAJw.js} +1 -1
  136. package/dist/interface/assets/{home-DNvuy9WS.js → home-y0BuJeID.js} +1 -1
  137. package/dist/interface/assets/{information-outline-C4BW3Gje.js → information-outline-CGFN6gSy.js} +1 -1
  138. package/dist/interface/assets/{instances-8zX84KmH.js → instances-BgFvZ06K.js} +1 -1
  139. package/dist/interface/assets/{lightbulb-outline-B7AbCNpH.js → lightbulb-outline-BKhaucU3.js} +1 -1
  140. package/dist/interface/assets/locale-CH0o3x5d.js +1 -0
  141. package/dist/interface/assets/main-DZb_R3L7.js +3 -0
  142. package/dist/interface/assets/{microphone-lTCBD-us.js → microphone-DZUScXOm.js} +1 -1
  143. package/dist/interface/assets/native-B5ps1ru1.js +1 -0
  144. package/dist/interface/assets/native-CBhIZ6td.js +1 -0
  145. package/dist/interface/assets/{nodeDefinitions-Cs4Hqoah.js → nodeDefinitions-nL8hz16a.js} +1 -1
  146. package/dist/interface/assets/{notifications-DpmIWiCl.js → notifications-DEU1TXne.js} +1 -1
  147. package/dist/interface/assets/{play-solid-DhbA9x56.js → play-solid-D7ZnjJiZ.js} +1 -1
  148. package/dist/interface/assets/plugin-Z96u0Zx7.js +1 -0
  149. package/dist/interface/assets/{plugins-BWlFg8TN.js → plugins-Bj4_KCp7.js} +1 -1
  150. package/dist/interface/assets/{plus-iXo1T1is.js → plus-Dxy9-axc.js} +1 -1
  151. package/dist/interface/assets/{plus-CuWXW2I0.js → plus-mhsNCxIy.js} +1 -1
  152. package/dist/interface/assets/{power-DvDhRSv2.js → power-CQJ3md0z.js} +1 -1
  153. package/dist/interface/assets/{ring-resize-5EO1Mgq-.js → ring-resize-BseE4cGi.js} +1 -1
  154. package/dist/interface/assets/{round-alt-arrow-left-bold-B9Q0L9Pk.js → round-alt-arrow-left-bold-pJUhUxdP.js} +1 -1
  155. package/dist/interface/assets/{round-restart-alt-CRc-4ova.js → round-restart-alt-BMdTt76H.js} +1 -1
  156. package/dist/interface/assets/router-CIvI3oge.js +2 -0
  157. package/dist/interface/assets/{routerState-BIdUnXLb.js → routerState-cQknQxNw.js} +1 -1
  158. package/dist/interface/assets/{search-Bl5hzTQq.js → search-BN5ng-N8.js} +1 -1
  159. package/dist/interface/assets/server-DeMUCrCz.js +1 -0
  160. package/dist/interface/assets/{settings-CJt70Wkh.js → settings-Bme_5kdU.js} +1 -1
  161. package/dist/interface/assets/{shares-DgzHTM68.js → shares-B5r7Nr5g.js} +1 -1
  162. package/dist/interface/assets/{shield-check-BziCMoN8.js → shield-check-COlnpzrA.js} +1 -1
  163. package/dist/interface/assets/{terminal-BjLzhOKN.js → terminal-wNcO8uZM.js} +1 -1
  164. package/dist/interface/assets/{theme-BDv_45d8.js → theme-kssRfqyJ.js} +1 -1
  165. package/dist/interface/assets/{trash-2-BAlrGkbt.js → trash-2-C8brLIvo.js} +1 -1
  166. package/dist/interface/assets/{trash-fill-PLsykzhy.js → trash-fill-DRtvsGbK.js} +1 -1
  167. package/dist/interface/assets/{trash2-Cme16a25.js → trash2-D3jwZOwR.js} +1 -1
  168. package/dist/interface/assets/{types-DZNoDDGr.js → types-BK05hngw.js} +1 -1
  169. package/dist/interface/assets/{types-CRVH38bx.js → types-DenR6qD2.js} +1 -1
  170. package/dist/interface/assets/{ui-DSOnsqS6.js → ui-B2i8B4yr.js} +1 -1
  171. package/dist/interface/assets/{upload-BqDLVQPw.js → upload-Cdmv3bqg.js} +1 -1
  172. package/dist/interface/assets/{useBiometricCredentials-CIfX40Td.js → useBiometricCredentials-I52MbNzM.js} +1 -1
  173. package/dist/interface/assets/{useCameraOptions-C_h2n9yn.js → useCameraOptions-uXN6hbSO.js} +1 -1
  174. package/dist/interface/assets/{useCuiCameraDrawer-Ca6U-GzM.js → useCuiCameraDrawer-BuIrXxOt.js} +1 -1
  175. package/dist/interface/assets/{useCuiDialog-C-2PMjxH.js → useCuiDialog-C4xS4vrs.js} +2 -2
  176. package/dist/interface/assets/{useFileDownload-DntU1WW7.js → useFileDownload-C_Am2BRz.js} +1 -1
  177. package/dist/interface/assets/useLogsSocket-4F2-d9fa.css +1 -0
  178. package/dist/interface/assets/useLogsSocket-PUFDb8MH.js +5 -0
  179. package/dist/interface/assets/{useSharedComposables-CzkF-tst.js → useSharedComposables-Ca_A3w0h.js} +1 -1
  180. package/dist/interface/assets/{useStreamStatus-DFQPLtc1.js → useStreamStatus-CIPBILoa.js} +1 -1
  181. package/dist/interface/assets/{users.schema-Oy4QkALa.js → users.schema-DGYmUjqk.js} +1 -1
  182. package/dist/interface/assets/vendor-cameraui-BABuGvhg.js +1978 -0
  183. package/dist/interface/assets/{vendor-capacitor-Dj-v5ogO.js → vendor-capacitor-BtNHOGrF.js} +2 -2
  184. package/dist/interface/assets/{vendor-chart-DmAusBrV.js → vendor-chart-BKRjkkso.js} +1 -1
  185. package/dist/interface/assets/{vendor-core-CWeZebhd.js → vendor-core-C6lCucBy.js} +1 -1
  186. package/dist/interface/assets/{vendor-dnd-UYEE071j.js → vendor-dnd-CQ6Y84Ed.js} +1 -1
  187. package/dist/interface/assets/{vendor-draggabilly-CH8RjBxh.js → vendor-draggabilly-H80KiwVT.js} +1 -1
  188. package/dist/interface/assets/{vendor-markdown-e7bfD1d7.js → vendor-markdown-BrmS8cUD.js} +2 -2
  189. package/dist/interface/assets/{vendor-primevue-01WhBsPb.js → vendor-primevue-CsC6U_Xu.js} +1 -1
  190. package/dist/interface/assets/{vendor-vueflow-DiKHypYV.js → vendor-vueflow-CqLtXe5N.js} +1 -1
  191. package/dist/interface/assets/{vendor-CUsAwmr-.js → vendor-zxCOTbSj.js} +1 -1
  192. package/dist/interface/assets/{view-grid-RH-li4l6.js → view-grid-DM5fFhOq.js} +1 -1
  193. package/dist/interface/assets/web-7w3f7aLi.js +1 -0
  194. package/dist/interface/assets/web-BT5MaR7n.js +1 -0
  195. package/dist/interface/assets/web-BjKL51lK-BwIR9ZcW.js +1 -0
  196. package/dist/interface/assets/web-BlYmxOdT.js +1 -0
  197. package/dist/interface/assets/web-BwTMYkra.js +1 -0
  198. package/dist/interface/assets/web-C5ViZ_bO.js +1 -0
  199. package/dist/interface/assets/web-CLRw5PqE.js +1 -0
  200. package/dist/interface/assets/web-CXQ5ccCW.js +1 -0
  201. package/dist/interface/assets/web-CiGVMr2P.js +1 -0
  202. package/dist/interface/assets/web-D3RZyuLX.js +1 -0
  203. package/dist/interface/assets/web-RrW-c6nL.js +1 -0
  204. package/dist/interface/assets/web-mXYIlRZX.js +1 -0
  205. package/dist/interface/assets/workbox-window.prod.es5-b0JqyqHz.js +1 -0
  206. package/dist/interface/assets/{zoom-in-fuKu2une.js → zoom-in-BxhkL8eQ.js} +1 -1
  207. package/dist/interface/index.html +74 -74
  208. package/dist/interface/sw.js +1 -1
  209. package/dist/server/package.json +5 -5
  210. package/dist/server/requirements.txt +1 -1
  211. package/dist/server/src/api/controllers/server.controller.d.ts +3 -2
  212. package/dist/server/src/api/controllers/server.controller.js +19 -6
  213. package/dist/server/src/api/controllers/server.controller.js.map +1 -1
  214. package/dist/server/src/api/plugins/natsSubFirewall.d.ts +1 -0
  215. package/dist/server/src/api/plugins/natsSubFirewall.js +15 -1
  216. package/dist/server/src/api/plugins/natsSubFirewall.js.map +1 -1
  217. package/dist/server/src/api/websocket/nsp/logs.d.ts +4 -0
  218. package/dist/server/src/api/websocket/nsp/logs.js +12 -0
  219. package/dist/server/src/api/websocket/nsp/logs.js.map +1 -1
  220. package/dist/server/src/go2rtc/index.js +1 -2
  221. package/dist/server/src/go2rtc/index.js.map +1 -1
  222. package/dist/server/src/remote/tunnel/client.js +1 -1
  223. package/dist/server/src/remote/tunnel/client.js.map +1 -1
  224. package/dist/server/src/rpc/server.js +1 -1
  225. package/dist/server/src/rpc/server.js.map +1 -1
  226. package/dist/server/src/services/logger/index.d.ts +2 -1
  227. package/dist/server/src/services/logger/index.js +7 -4
  228. package/dist/server/src/services/logger/index.js.map +1 -1
  229. package/dist/server/src/services/logger/logManager.d.ts +3 -1
  230. package/dist/server/src/services/logger/logManager.js +24 -2
  231. package/dist/server/src/services/logger/logManager.js.map +1 -1
  232. package/package.json +5 -5
  233. package/dist/interface/assets/ConfigTriggerGeofence-BDw4zW_P.js +0 -1
  234. package/dist/interface/assets/CuiBottomSheet-BcfVSQXw.js +0 -1
  235. package/dist/interface/assets/CuiCameraCard-BEGdNbhj.js +0 -1
  236. package/dist/interface/assets/CuiCameraRecordings-BRVbZCzz.js +0 -1
  237. package/dist/interface/assets/CuiMenu-KizSc3du.js +0 -1
  238. package/dist/interface/assets/Logs-Dgi4WIz_.js +0 -6
  239. package/dist/interface/assets/Menu-CaUSuqY2.js +0 -1
  240. package/dist/interface/assets/Recordings-CRZXMXeZ.js +0 -1
  241. package/dist/interface/assets/SettingsAccount-6i4VetmY.js +0 -1
  242. package/dist/interface/assets/SettingsAppearance-wh2bqft_.js +0 -1
  243. package/dist/interface/assets/SettingsRemote-CfMbi4U2.js +0 -1
  244. package/dist/interface/assets/SettingsRemote-PB1t8pgR.css +0 -1
  245. package/dist/interface/assets/api-CLcqLYO9.js +0 -2
  246. package/dist/interface/assets/api-Dbhyyb4d.css +0 -2
  247. package/dist/interface/assets/cloudHandoff-9LBU5i-Q.js +0 -1
  248. package/dist/interface/assets/esm-2lnAOjHs.js +0 -1
  249. package/dist/interface/assets/esm-BBV5a7C0.js +0 -1
  250. package/dist/interface/assets/esm-CZOTQSZO.js +0 -1
  251. package/dist/interface/assets/esm-CbRXoZZM.js +0 -1
  252. package/dist/interface/assets/esm-CeRrRtlf.js +0 -1
  253. package/dist/interface/assets/esm-Cj8JODrf.js +0 -1
  254. package/dist/interface/assets/esm-CqGR4fjd.js +0 -1
  255. package/dist/interface/assets/esm-CvywvXhO.js +0 -1
  256. package/dist/interface/assets/esm-DTSMvfe9.js +0 -1
  257. package/dist/interface/assets/esm-DiLxU9l9.js +0 -1
  258. package/dist/interface/assets/esm-DiyVK5c52.js +0 -1
  259. package/dist/interface/assets/esm-DnSyZMrH.js +0 -1
  260. package/dist/interface/assets/esm-iGk1166L.js +0 -1
  261. package/dist/interface/assets/locale-DXhDcKlE.js +0 -1
  262. package/dist/interface/assets/main-CZoUmEEu.js +0 -3
  263. package/dist/interface/assets/native-BAsSaSk8.js +0 -1
  264. package/dist/interface/assets/native-BPwfZDv_.js +0 -1
  265. package/dist/interface/assets/plugin-C2TEafc4.js +0 -1
  266. package/dist/interface/assets/router-CYuS11OS.js +0 -2
  267. package/dist/interface/assets/server-B3_iwGek.js +0 -1
  268. package/dist/interface/assets/useLogsSocket-DZ93-C8L.css +0 -1
  269. package/dist/interface/assets/useLogsSocket-R2SaD_bg.js +0 -5
  270. package/dist/interface/assets/vendor-cameraui-D-WYtlxb.js +0 -1978
  271. package/dist/interface/assets/web-43SKbD9K.js +0 -1
  272. package/dist/interface/assets/web-6w38of5K.js +0 -1
  273. package/dist/interface/assets/web-B-fOQXlB.js +0 -1
  274. package/dist/interface/assets/web-B8gAW1fJ.js +0 -1
  275. package/dist/interface/assets/web-BgY6GJTP.js +0 -1
  276. package/dist/interface/assets/web-BjKL51lK-CiovASye.js +0 -1
  277. package/dist/interface/assets/web-Bk5Tkroa.js +0 -1
  278. package/dist/interface/assets/web-D12Zinjs.js +0 -1
  279. package/dist/interface/assets/web-DGU3UU0v.js +0 -1
  280. package/dist/interface/assets/web-DMdJ4AXp.js +0 -1
  281. package/dist/interface/assets/web-KoJsMQg4.js +0 -1
  282. package/dist/interface/assets/web-dOswKNeM.js +0 -1
  283. package/dist/interface/assets/workbox-window.prod.es5-DBcE1m83.js +0 -1
  284. /package/dist/interface/assets/{logo-512-DLKVOU2S.png → error-256-DLKVOU2S.png} +0 -0
@@ -1 +1 @@
1
- import{Hn as e,Ji as t,Zt as n,ct as r,fi as i,lt as a,tt as o}from"./vendor-cameraui-D-WYtlxb.js";import{C as s}from"./api-CLcqLYO9.js";import{$t as c,Dn as l,Gt as u,Hn as d,Kt as f,Ln as p,Qn as m,Qt as h,Tn as g,Xn as _,Xt as v,Yn as y,Zt as b,an as x,bn as S,cr as C,dr as w,en as T,er as E,fr as D,lr as O,or as k,sn as A,zn as j,zt as ee}from"./vendor-CUsAwmr-.js";import{a as te,t as ne}from"./useSharedComposables-CzkF-tst.js";import{F as re,P as ie,a as M}from"./vendor-primevue-01WhBsPb.js";import{i as N,n as ae,r as oe,t as se}from"./instances-8zX84KmH.js";import{t as ce}from"./CuiFloatingButton-B4byvsOs.js";import{t as le}from"./CuiMenu-KizSc3du.js";import{t as ue}from"./useCuiDialog-C-2PMjxH.js";import{t as de}from"./CuiTopbarSlot-BlbZqDDn.js";import{t as fe}from"./back-filled-DVeRsKmt.js";import{t as pe}from"./plus-CuWXW2I0.js";import{t as me}from"./search-Bl5hzTQq.js";import{t as he}from"./trash-fill-PLsykzhy.js";var P={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function F(e,t){return g(),T(`svg`,P,[...t[0]||=[b(`path`,{fill:`currentColor`,d:`M6 2h12a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2m6 2a6 6 0 0 0-6 6c0 3.31 2.69 6 6.1 6l-.88-2.23a1.01 1.01 0 0 1 .37-1.37l.86-.5a1.01 1.01 0 0 1 1.37.37l1.92 2.42A5.98 5.98 0 0 0 18 10a6 6 0 0 0-6-6m0 5a1 1 0 0 1 1 1a1 1 0 0 1-1 1a1 1 0 0 1-1-1a1 1 0 0 1 1-1m-5 9a1 1 0 0 0-1 1a1 1 0 0 0 1 1a1 1 0 0 0 1-1a1 1 0 0 0-1-1m5.09-4.73l2.49 6.31l2.59-1.5l-4.22-5.31z`},null,-1)]])}var I=_({name:`mdi-harddisk`,render:F}),L={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function R(e,t){return g(),T(`svg`,L,[...t[0]||=[b(`path`,{fill:`currentColor`,d:`M12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 2a8 8 0 0 1 8 8a8 8 0 0 1-8 8a8 8 0 0 1-8-8a8 8 0 0 1 8-8m0 5a3 3 0 0 0-3 3a3 3 0 0 0 3 3a3 3 0 0 0 3-3a3 3 0 0 0-3-3`},null,-1)]])}var z=_({name:`mdi-record-circle-outline`,render:R}),B={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function V(e,t){return g(),T(`svg`,B,[...t[0]||=[b(`path`,{fill:`currentColor`,d:`M9.153 5.408C10.42 3.136 11.053 2 12 2s1.58 1.136 2.847 3.408l.328.588c.36.646.54.969.82 1.182s.63.292 1.33.45l.636.144c2.46.557 3.689.835 3.982 1.776c.292.94-.546 1.921-2.223 3.882l-.434.507c-.476.557-.715.836-.822 1.18c-.107.345-.071.717.001 1.46l.066.677c.253 2.617.38 3.925-.386 4.506s-1.918.051-4.22-1.009l-.597-.274c-.654-.302-.981-.452-1.328-.452s-.674.15-1.328.452l-.596.274c-2.303 1.06-3.455 1.59-4.22 1.01c-.767-.582-.64-1.89-.387-4.507l.066-.676c.072-.744.108-1.116 0-1.46c-.106-.345-.345-.624-.821-1.18l-.434-.508c-1.677-1.96-2.515-2.941-2.223-3.882S3.58 8.328 6.04 7.772l.636-.144c.699-.158 1.048-.237 1.329-.45s.46-.536.82-1.182z`},null,-1)]])}var H=_({name:`solar-star-bold`,render:V}),U={class:`flex flex-col gap-2`},W={class:`flex items-center justify-between gap-2`},G={class:`flex items-center gap-1.5 min-w-0`},K={class:`text-xl font-semibold truncate`},q={class:`flex items-center gap-1 shrink-0`},J={class:`relative w-5 h-5`},Y={class:`flex items-center gap-2`},X={class:`text-sm text-muted-color truncate`},ge={key:0,class:`text-xs text-muted-color ml-auto shrink-0`},Z={key:0,class:`flex flex-col gap-2 mt-2`},_e={class:`cui-progress-track w-full h-2 rounded-full overflow-hidden`},ve={class:`flex items-center justify-between text-sm text-muted-color`},ye={key:1,class:`mt-1`},be={class:`text-sm text-orange-500`},xe={key:2,class:`mt-1`},Se={class:`text-sm text-muted-color`},Ce={class:`flex items-center text-muted-color`},we={key:0,class:`flex items-center gap-4`},Te={class:`flex items-center gap-1.5`},Ee={class:`text-sm text-color font-medium`},De={class:`flex items-center gap-1.5`},Oe={class:`text-sm text-color font-medium`},ke={key:1,class:`flex items-center gap-1.5 ml-auto`},Ae={class:`text-sm text-color font-medium`},je=A({__name:`CuiInstanceCard`,props:{instance:{},menuOpen:{type:Boolean}},emits:[`toggle-favorite`,`open-menu`],setup(t,{emit:n}){let i=t,a=n,{instance:o}=k(i),s=v(()=>o.value.lastUpdatedAt?m(o.value.lastUpdatedAt):``);function l(e){return e>=1024?`${(e/1024).toFixed(1)} GB`:`${e} MB`}function f(e){return e>=1e6?`${(e/1e6).toFixed(1)} TB`:e>=1e3?`${(e/1e3).toFixed(0)} GB`:`${e} MB`}function p(e){return e>=90?`bg-red-500`:e>=70?`bg-orange-400`:e>=50?`bg-yellow-400`:`bg-green-500`}function m(e){let t=Date.now()-(typeof e==`number`?e:new Date(e).getTime()),n=Math.floor(t/6e4);if(n<1)return`< 1m`;if(n<60)return`${n}m`;let r=Math.floor(n/60);return r<24?`${r}h`:`${Math.floor(r/24)}d`}return(n,i)=>{let m=H,_=e,v=M,y=N,S=z,E=I,k=r;return g(),h(k,{class:O([`cui-card transition-shadow h-[176px]`,{"ring-1 ring-primary":C(o).active,"cursor-pointer hover:shadow-md":C(o).status!==`offline`,"opacity-60":C(o).status===`offline`}])},{content:d(()=>[b(`div`,U,[b(`div`,W,[b(`div`,G,[x(_,{severity:`secondary`,text:``,rounded:``,class:`cui-icon-sm shrink-0 !ml-[calc(-0.25rem*2)]`,onClick:i[0]||=u(e=>a(`toggle-favorite`),[`stop`])},{icon:d(()=>[C(o).favorite?(g(),h(m,{key:0,class:`w-4 h-4 text-yellow-500`})):(g(),h(m,{key:1,class:`w-4 h-4`}))]),_:1}),b(`h3`,K,D(C(o).name),1)]),b(`div`,q,[C(o).status===`offline`?(g(),h(v,{key:0,severity:`danger`,value:n.$t(`views.instances.offline`),class:`text-xs`},null,8,[`value`])):c(``,!0),C(o).active?(g(),h(v,{key:1,severity:`success`,value:n.$t(`views.instances.active`)},null,8,[`value`])):c(``,!0),x(_,{severity:`secondary`,text:``,rounded:``,class:`cui-icon-sm`,onClick:i[1]||=u(e=>a(`open-menu`,e),[`stop`])},{icon:d(()=>[b(`div`,J,[b(`div`,{class:O([`absolute top-0.5 left-1/2 -translate-x-1/2 w-1 h-1 rounded-full transform transition-all duration-100 origin-center bg-current`,{"w-3.5 h-[2px] rotate-45 top-1/2 -translate-y-1/2 rounded-none":t.menuOpen}])},null,2),b(`div`,{class:O([`absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-1 h-1 rounded-full transition-all duration-100 bg-current`,{"opacity-0 scale-0":t.menuOpen}])},null,2),b(`div`,{class:O([`absolute bottom-0.5 left-1/2 -translate-x-1/2 w-1 h-1 rounded-full transform transition-all duration-100 origin-center bg-current`,{"w-3.5 h-[2px] -rotate-45 bottom-1/2 translate-y-1/2 rounded-none":t.menuOpen}])},null,2)])]),_:1})])]),b(`div`,Y,[b(`div`,{class:O([`w-2 h-2 rounded-full shrink-0`,{"bg-green-500":C(o).status===`online`,"bg-red-500":C(o).status===`offline`,"bg-gray-400":C(o).status===`unknown`}])},null,2),b(`span`,X,D(C(o).version?`v${C(o).version}`:C(o).url||``),1),C(s)?(g(),T(`span`,ge,D(C(s)),1)):c(``,!0)]),C(o).resources?(g(),T(`div`,Z,[b(`div`,_e,[b(`div`,{class:O([`h-full rounded-full transition-all duration-300`,p(C(o).resources.cpuUsage)]),style:w({width:`${C(o).resources.cpuUsage}%`})},null,6)]),b(`div`,ve,[b(`span`,null,`CPU `+D(C(o).resources.cpuUsage)+`%`,1),b(`span`,null,D(l(C(o).resources.memUsed))+` / `+D(l(C(o).resources.memTotal)),1)])])):C(o).hasCredentials?(g(),T(`div`,xe,[b(`span`,Se,D(C(o).status===`offline`?n.$t(`views.instances.server_offline`):n.$t(`views.instances.no_data`)),1)])):(g(),T(`div`,ye,[b(`span`,be,D(n.$t(`views.instances.credentials_required`)),1)]))])]),footer:d(()=>[b(`div`,Ce,[C(o).cameras?(g(),T(`div`,we,[b(`div`,Te,[x(y,{class:`w-4 h-4`}),b(`span`,Ee,D(C(o).cameras.online)+`/`+D(C(o).cameras.total),1)]),b(`div`,De,[x(S,{class:`w-4 h-4 text-red-500`}),b(`span`,Oe,D(C(o).cameras.recording),1)])])):c(``,!0),C(o).resources?(g(),T(`div`,ke,[x(E,{class:`w-4 h-4`}),b(`span`,Ae,D(f(C(o).resources.diskUsed))+` / `+D(f(C(o).resources.diskTotal)),1)])):c(``,!0)])]),_:1},8,[`class`])}}}),Me={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ne(e,t){return g(),T(`svg`,Me,[...t[0]||=[b(`path`,{fill:`currentColor`,d:`m14.06 9l.94.94L5.92 19H5v-.92zm3.6-6c-.25 0-.51.1-.7.29l-1.83 1.83l3.75 3.75l1.83-1.83c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29m-3.6 3.19L3 17.25V21h3.75L17.81 9.94z`},null,-1)]])}var Pe=_({name:`mdi-pencil-outline`,render:Ne}),Fe={class:`flex flex-col gap-6 w-full`},Ie={class:`flex flex-col field-gap`},Le={for:`instanceName`,class:`cui-label`},Re={class:`flex flex-col field-gap`},ze={for:`instanceUrl`,class:`cui-label`},Be={class:`flex flex-col field-gap`},Ve={for:`credUsername`,class:`cui-label`},He={class:`flex flex-col field-gap`},Ue={for:`credPassword`,class:`cui-label`},Q=A({__name:`EditInstanceDialog`,props:{currentName:{},currentUrl:{},hasCredentials:{type:Boolean}},setup(e,{expose:t}){let n=e,{t:r}=i(),a=s(),c=E(n.currentName),l=E(n.currentUrl??``),u=E(``),d=E(``),f=v(()=>!n.currentName),p=v(()=>!!n.hasCredentials);return t({onConfirm:async()=>{let e=c.value.trim();if(!e)return null;if(f.value){let t=l.value.trim();if(!t)return null;let n=u.value.trim();return!n||!d.value?(a.add({severity:`warn`,detail:r(`views.settings.instances.credentials_required`),life:3e3}),null):{name:e,url:t,credentials:{username:n,password:d.value}}}return{name:e,credentials:u.value.trim()&&d.value?{username:u.value.trim(),password:d.value}:void 0}}}),(t,n)=>{let r=o;return g(),T(`div`,Fe,[b(`div`,Ie,[b(`label`,Le,D(t.$t(`views.settings.instances.name`)),1),x(r,{id:`instanceName`,modelValue:C(c),"onUpdate:modelValue":n[0]||=e=>y(c)?c.value=e:null,placeholder:t.$t(`views.settings.instances.name`),class:`w-full`,autofocus:``},null,8,[`modelValue`,`placeholder`])]),b(`div`,Re,[b(`label`,ze,D(t.$t(`views.settings.instances.url`)),1),C(f)?(g(),h(r,{key:0,id:`instanceUrl`,modelValue:C(l),"onUpdate:modelValue":n[1]||=e=>y(l)?l.value=e:null,placeholder:t.$t(`views.settings.instances.url_placeholder`),class:`w-full`},null,8,[`modelValue`,`placeholder`])):(g(),h(r,{key:1,id:`instanceUrl`,"model-value":e.currentUrl,class:`w-full`,readonly:``},null,8,[`model-value`]))]),b(`div`,Be,[b(`label`,Ve,D(t.$t(`views.settings.instances.credentials_username`)),1),x(r,{id:`credUsername`,modelValue:C(u),"onUpdate:modelValue":n[2]||=e=>y(u)?u.value=e:null,placeholder:C(p)?t.$t(`views.settings.instances.credentials_unchanged`):t.$t(`views.settings.instances.credentials_username`),class:`w-full`,autocomplete:`off`},null,8,[`modelValue`,`placeholder`])]),b(`div`,He,[b(`label`,Ue,D(t.$t(`views.settings.instances.credentials_password`)),1),x(r,{id:`credPassword`,modelValue:C(d),"onUpdate:modelValue":n[3]||=e=>y(d)?d.value=e:null,type:`password`,placeholder:C(p)?t.$t(`views.settings.instances.credentials_unchanged`):t.$t(`views.settings.instances.credentials_password`),class:`w-full`,autocomplete:`new-password`},null,8,[`modelValue`,`placeholder`])])])}}}),We={class:`flex flex-col`},Ge={key:0,class:`page-title`},Ke={class:`flex gap-2 mb-4`},qe={key:`empty`,class:`flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4`},Je={class:`text-muted text-sm`},Ye=176,$=280,Xe=15e3,Ze=A({__name:`Instances`,setup(r){let u=new ae,{t:_}=i(),{smBreakpoint:O}=ne(),{width:k,height:A}=te(),M=ue(),N=s(),P=se(),F=v(()=>P.serverInstances.filter(e=>!!e.credentials)),{data:I,isPending:L}=u.listQuery(),{mutateAsync:R}=u.createMutation(),{mutateAsync:z}=u.updateMutation(),{mutateAsync:B}=u.deleteMutation(),{mutateAsync:V}=u.toggleFavoriteMutation(),H=u.statusQueries(F),U,W=p(`menuRef`),G=E(!1),K=E(``),q=m({}),J=v(()=>(O.value?1:Math.max(1,Math.floor(k.value/$)))*Math.max(1,Math.ceil(A.value/184))),Y=v(()=>{let e=0;return P.serverInstances.map(t=>{let n=!!t.credentials;if(!n)return{id:t.id,name:t.name,url:t.url,status:`unknown`,active:t.id===P.activeId,favorite:P.isFavorite(t.id),hasCredentials:n};let r=H.value[e++],i=r?.data,a=q[t.id],o=`unknown`;return a===`online`?o=`online`:a===`offline`&&(o=`offline`),{id:t.id,name:t.name,url:t.url,status:o,active:t.id===P.activeId,favorite:P.isFavorite(t.id),hasCredentials:n,version:i?.version,lastUpdatedAt:r?.dataUpdatedAt,cameras:i?.cameras,resources:i?{cpuUsage:i.cpuUsage,memUsed:i.memUsed,memTotal:i.memTotal,diskUsed:i.diskUsed,diskTotal:i.diskTotal}:void 0}})}),X=v(()=>{let e=K.value.toLowerCase().trim();return e?Y.value.filter(t=>t.name.toLowerCase().includes(e)||t.url?.toLowerCase().includes(e)):Y.value}),ge=v(()=>[{label:_(`views.settings.edit`),icon:Pe,onClick:e=>{let t=_e(e);t&&be(t)}},{label:_(`views.settings.remove`),icon:he,iconProps:{class:`text-red-500`},labelProps:{class:`text-red-500`},buttonProps:{severity:`danger`},onClick:e=>{xe(e.id)}}]);function Z(){U?.abort(),U=new AbortController;let{signal:e}=U;for(let t of F.value)q[t.id]===void 0&&(q[t.id]=`checking`),P.probeInstance(t.id,e).then(n=>{e.aborted||(q[t.id]=n?`online`:`offline`)}).catch(()=>{e.aborted||(q[t.id]=`offline`)})}function _e(e){let t=P.serverInstances.find(t=>t.id===e.id);if(!t)return;let n=P.instanceTokens[t.id];return{id:t.id,name:t.name,url:t.url,hasCredentials:!!t.credentials,favorite:t.favorite??!0,userData:n?.userData??null,lastConnectedAt:n?.lastConnectedAt??null,isHome:!1}}function ve(e){e.active||e.status===`offline`||(e.id===`__home__`?P.switchInstance(null):P.switchInstance(e.id))}function ye(){M.openComponentDialog(Q,{data:{title:_(`views.instances.add`),confirmText:_(`components.form.button.add`),contentProps:{currentName:``,hasCredentials:!1}},onConfirm:async e=>{if(e)try{await R({name:e.name,url:e.url,credentials:e.credentials})}catch(e){N.add({severity:`error`,detail:e,life:3e3})}}})}function be(e){M.openComponentDialog(Q,{data:{title:_(`views.settings.instances.edit`),confirmText:_(`components.form.button.save`),contentProps:{currentName:e.name,currentUrl:e.url,hasCredentials:e.hasCredentials}},onConfirm:async t=>{if(t)try{await z({id:e.id,data:{name:t.name===e.name?void 0:t.name,credentials:t.credentials??void 0}})}catch(e){N.add({severity:`error`,detail:e,life:3e3})}}})}function xe(e){M.openTextDialog({data:{title:_(`components.dialog.title.confirm`),contentText:_(`views.settings.instances.confirm_remove`),confirmText:_(`views.settings.instances.remove`),loading:G},onConfirm:async()=>{G.value=!0;try{await B(e)}catch(e){N.add({severity:`error`,detail:e,life:3e3})}G.value=!1}})}return j(I,e=>{e&&(n(P.serverInstances,e.instances)||(P.serverInstances=e.instances),P.serverHomeId!==e.homeId&&(P.serverHomeId=e.homeId))},{immediate:!0}),j(F,Z,{immediate:!0,deep:!0}),t(Z,Xe),S(()=>{U?.abort()}),(t,n)=>{let r=fe,i=e,s=de,u=me,p=ie,m=o,v=re,S=a,E=je,k=oe,A=ce;return g(),T(`div`,We,[C(O)?c(``,!0):(g(),T(`h1`,Ge,D(t.$t(`views.instances.title`)),1)),x(s,{position:`left`},{default:d(()=>[x(i,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:n[0]||=e=>t.$router.push(`/menu`)},{icon:d(()=>[x(r,{class:`w-6 h-6`})]),_:1})]),_:1}),b(`div`,Ke,[x(v,{class:`flex-1`},{default:d(()=>[x(p,null,{default:d(()=>[x(u,{class:`w-4 h-4`})]),_:1}),x(m,{modelValue:C(K),"onUpdate:modelValue":n[1]||=e=>y(K)?K.value=e:null,placeholder:C(_)(`views.instances.search`),class:`w-full`},null,8,[`modelValue`,`placeholder`])]),_:1})]),x(ee,{name:`fade-2`,mode:`out-in`},{default:d(()=>[C(L)?(g(),T(`div`,{key:`loading`,class:`grid w-full gap-2 p-px`,style:w({gridTemplateColumns:`repeat(auto-fill, minmax(${C(O)?`100%`:`${$}px`}, 1fr))`})},[(g(!0),T(f,null,l(C(J),e=>(g(),h(S,{key:e,height:`${Ye}px`,class:`cui-card`},null,8,[`height`]))),128))],4)):C(X).length?(g(),T(`div`,{key:`content`,class:`grid w-full gap-2 p-px`,style:w({gridTemplateColumns:`repeat(auto-fill, minmax(${C(O)?`100%`:`${$}px`}, 1fr))`})},[(g(!0),T(f,null,l(C(X),e=>(g(),h(E,{key:e.id,instance:e,"menu-open":C(W)?.isOpen&&C(W)?.data?.id===e.id,onClick:t=>ve(e),onToggleFavorite:t=>C(V)(e.id),onOpenMenu:t=>C(W)?.toggleMenu(t,void 0,e)},null,8,[`instance`,`menu-open`,`onClick`,`onToggleFavorite`,`onOpenMenu`]))),128))],4)):(g(),T(`div`,qe,[x(k,{class:`w-12 h-12 text-muted`}),b(`span`,Je,D(t.$t(`views.instances.no_instances`)),1)]))]),_:1}),x(A,{"tooltip-props":{value:t.$t(`views.instances.add`)},"button-props":{class:`text-white`},icon:C(pe),"icon-props":{width:`30px`,height:`30px`},onClick:ye},null,8,[`tooltip-props`,`icon`]),x(le,{ref_key:`menuRef`,ref:W,items:C(ge),popover:{pt:{content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])])}}});export{Ze as default};
1
+ import{Hn as e,Ji as t,Zt as n,ct as r,fi as i,lt as a,tt as o}from"./vendor-cameraui-BABuGvhg.js";import{C as s}from"./api-C-NlYhuP.js";import{$t as c,Dn as l,Gt as u,Hn as d,Kt as f,Ln as p,Qn as m,Qt as h,Tn as g,Xn as _,Xt as v,Yn as y,Zt as b,an as x,bn as S,cr as C,dr as w,en as T,er as E,fr as D,lr as O,or as k,sn as A,zn as j,zt as ee}from"./vendor-zxCOTbSj.js";import{a as te,t as ne}from"./useSharedComposables-Ca_A3w0h.js";import{F as re,P as ie,a as M}from"./vendor-primevue-CsC6U_Xu.js";import{i as N,n as ae,r as oe,t as se}from"./instances-BgFvZ06K.js";import{t as ce}from"./CuiFloatingButton-Bi1jS25U.js";import{t as le}from"./CuiMenu-150v0xB6.js";import{t as ue}from"./useCuiDialog-C4xS4vrs.js";import{t as de}from"./CuiTopbarSlot-DE7fTsSm.js";import{t as fe}from"./back-filled-2dVfzfd3.js";import{t as pe}from"./plus-mhsNCxIy.js";import{t as me}from"./search-BN5ng-N8.js";import{t as he}from"./trash-fill-DRtvsGbK.js";var P={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function F(e,t){return g(),T(`svg`,P,[...t[0]||=[b(`path`,{fill:`currentColor`,d:`M6 2h12a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2m6 2a6 6 0 0 0-6 6c0 3.31 2.69 6 6.1 6l-.88-2.23a1.01 1.01 0 0 1 .37-1.37l.86-.5a1.01 1.01 0 0 1 1.37.37l1.92 2.42A5.98 5.98 0 0 0 18 10a6 6 0 0 0-6-6m0 5a1 1 0 0 1 1 1a1 1 0 0 1-1 1a1 1 0 0 1-1-1a1 1 0 0 1 1-1m-5 9a1 1 0 0 0-1 1a1 1 0 0 0 1 1a1 1 0 0 0 1-1a1 1 0 0 0-1-1m5.09-4.73l2.49 6.31l2.59-1.5l-4.22-5.31z`},null,-1)]])}var I=_({name:`mdi-harddisk`,render:F}),L={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function R(e,t){return g(),T(`svg`,L,[...t[0]||=[b(`path`,{fill:`currentColor`,d:`M12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 2a8 8 0 0 1 8 8a8 8 0 0 1-8 8a8 8 0 0 1-8-8a8 8 0 0 1 8-8m0 5a3 3 0 0 0-3 3a3 3 0 0 0 3 3a3 3 0 0 0 3-3a3 3 0 0 0-3-3`},null,-1)]])}var z=_({name:`mdi-record-circle-outline`,render:R}),B={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function V(e,t){return g(),T(`svg`,B,[...t[0]||=[b(`path`,{fill:`currentColor`,d:`M9.153 5.408C10.42 3.136 11.053 2 12 2s1.58 1.136 2.847 3.408l.328.588c.36.646.54.969.82 1.182s.63.292 1.33.45l.636.144c2.46.557 3.689.835 3.982 1.776c.292.94-.546 1.921-2.223 3.882l-.434.507c-.476.557-.715.836-.822 1.18c-.107.345-.071.717.001 1.46l.066.677c.253 2.617.38 3.925-.386 4.506s-1.918.051-4.22-1.009l-.597-.274c-.654-.302-.981-.452-1.328-.452s-.674.15-1.328.452l-.596.274c-2.303 1.06-3.455 1.59-4.22 1.01c-.767-.582-.64-1.89-.387-4.507l.066-.676c.072-.744.108-1.116 0-1.46c-.106-.345-.345-.624-.821-1.18l-.434-.508c-1.677-1.96-2.515-2.941-2.223-3.882S3.58 8.328 6.04 7.772l.636-.144c.699-.158 1.048-.237 1.329-.45s.46-.536.82-1.182z`},null,-1)]])}var H=_({name:`solar-star-bold`,render:V}),U={class:`flex flex-col gap-2`},W={class:`flex items-center justify-between gap-2`},G={class:`flex items-center gap-1.5 min-w-0`},K={class:`text-xl font-semibold truncate`},q={class:`flex items-center gap-1 shrink-0`},J={class:`relative w-5 h-5`},Y={class:`flex items-center gap-2`},X={class:`text-sm text-muted-color truncate`},ge={key:0,class:`text-xs text-muted-color ml-auto shrink-0`},Z={key:0,class:`flex flex-col gap-2 mt-2`},_e={class:`cui-progress-track w-full h-2 rounded-full overflow-hidden`},ve={class:`flex items-center justify-between text-sm text-muted-color`},ye={key:1,class:`mt-1`},be={class:`text-sm text-orange-500`},xe={key:2,class:`mt-1`},Se={class:`text-sm text-muted-color`},Ce={class:`flex items-center text-muted-color`},we={key:0,class:`flex items-center gap-4`},Te={class:`flex items-center gap-1.5`},Ee={class:`text-sm text-color font-medium`},De={class:`flex items-center gap-1.5`},Oe={class:`text-sm text-color font-medium`},ke={key:1,class:`flex items-center gap-1.5 ml-auto`},Ae={class:`text-sm text-color font-medium`},je=A({__name:`CuiInstanceCard`,props:{instance:{},menuOpen:{type:Boolean}},emits:[`toggle-favorite`,`open-menu`],setup(t,{emit:n}){let i=t,a=n,{instance:o}=k(i),s=v(()=>o.value.lastUpdatedAt?m(o.value.lastUpdatedAt):``);function l(e){return e>=1024?`${(e/1024).toFixed(1)} GB`:`${e} MB`}function f(e){return e>=1e6?`${(e/1e6).toFixed(1)} TB`:e>=1e3?`${(e/1e3).toFixed(0)} GB`:`${e} MB`}function p(e){return e>=90?`bg-red-500`:e>=70?`bg-orange-400`:e>=50?`bg-yellow-400`:`bg-green-500`}function m(e){let t=Date.now()-(typeof e==`number`?e:new Date(e).getTime()),n=Math.floor(t/6e4);if(n<1)return`< 1m`;if(n<60)return`${n}m`;let r=Math.floor(n/60);return r<24?`${r}h`:`${Math.floor(r/24)}d`}return(n,i)=>{let m=H,_=e,v=M,y=N,S=z,E=I,k=r;return g(),h(k,{class:O([`cui-card transition-shadow h-[176px]`,{"ring-1 ring-primary":C(o).active,"cursor-pointer hover:shadow-md":C(o).status!==`offline`,"opacity-60":C(o).status===`offline`}])},{content:d(()=>[b(`div`,U,[b(`div`,W,[b(`div`,G,[x(_,{severity:`secondary`,text:``,rounded:``,class:`cui-icon-sm shrink-0 !ml-[calc(-0.25rem*2)]`,onClick:i[0]||=u(e=>a(`toggle-favorite`),[`stop`])},{icon:d(()=>[C(o).favorite?(g(),h(m,{key:0,class:`w-4 h-4 text-yellow-500`})):(g(),h(m,{key:1,class:`w-4 h-4`}))]),_:1}),b(`h3`,K,D(C(o).name),1)]),b(`div`,q,[C(o).status===`offline`?(g(),h(v,{key:0,severity:`danger`,value:n.$t(`views.instances.offline`),class:`text-xs`},null,8,[`value`])):c(``,!0),C(o).active?(g(),h(v,{key:1,severity:`success`,value:n.$t(`views.instances.active`)},null,8,[`value`])):c(``,!0),x(_,{severity:`secondary`,text:``,rounded:``,class:`cui-icon-sm`,onClick:i[1]||=u(e=>a(`open-menu`,e),[`stop`])},{icon:d(()=>[b(`div`,J,[b(`div`,{class:O([`absolute top-0.5 left-1/2 -translate-x-1/2 w-1 h-1 rounded-full transform transition-all duration-100 origin-center bg-current`,{"w-3.5 h-[2px] rotate-45 top-1/2 -translate-y-1/2 rounded-none":t.menuOpen}])},null,2),b(`div`,{class:O([`absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-1 h-1 rounded-full transition-all duration-100 bg-current`,{"opacity-0 scale-0":t.menuOpen}])},null,2),b(`div`,{class:O([`absolute bottom-0.5 left-1/2 -translate-x-1/2 w-1 h-1 rounded-full transform transition-all duration-100 origin-center bg-current`,{"w-3.5 h-[2px] -rotate-45 bottom-1/2 translate-y-1/2 rounded-none":t.menuOpen}])},null,2)])]),_:1})])]),b(`div`,Y,[b(`div`,{class:O([`w-2 h-2 rounded-full shrink-0`,{"bg-green-500":C(o).status===`online`,"bg-red-500":C(o).status===`offline`,"bg-gray-400":C(o).status===`unknown`}])},null,2),b(`span`,X,D(C(o).version?`v${C(o).version}`:C(o).url||``),1),C(s)?(g(),T(`span`,ge,D(C(s)),1)):c(``,!0)]),C(o).resources?(g(),T(`div`,Z,[b(`div`,_e,[b(`div`,{class:O([`h-full rounded-full transition-all duration-300`,p(C(o).resources.cpuUsage)]),style:w({width:`${C(o).resources.cpuUsage}%`})},null,6)]),b(`div`,ve,[b(`span`,null,`CPU `+D(C(o).resources.cpuUsage)+`%`,1),b(`span`,null,D(l(C(o).resources.memUsed))+` / `+D(l(C(o).resources.memTotal)),1)])])):C(o).hasCredentials?(g(),T(`div`,xe,[b(`span`,Se,D(C(o).status===`offline`?n.$t(`views.instances.server_offline`):n.$t(`views.instances.no_data`)),1)])):(g(),T(`div`,ye,[b(`span`,be,D(n.$t(`views.instances.credentials_required`)),1)]))])]),footer:d(()=>[b(`div`,Ce,[C(o).cameras?(g(),T(`div`,we,[b(`div`,Te,[x(y,{class:`w-4 h-4`}),b(`span`,Ee,D(C(o).cameras.online)+`/`+D(C(o).cameras.total),1)]),b(`div`,De,[x(S,{class:`w-4 h-4 text-red-500`}),b(`span`,Oe,D(C(o).cameras.recording),1)])])):c(``,!0),C(o).resources?(g(),T(`div`,ke,[x(E,{class:`w-4 h-4`}),b(`span`,Ae,D(f(C(o).resources.diskUsed))+` / `+D(f(C(o).resources.diskTotal)),1)])):c(``,!0)])]),_:1},8,[`class`])}}}),Me={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ne(e,t){return g(),T(`svg`,Me,[...t[0]||=[b(`path`,{fill:`currentColor`,d:`m14.06 9l.94.94L5.92 19H5v-.92zm3.6-6c-.25 0-.51.1-.7.29l-1.83 1.83l3.75 3.75l1.83-1.83c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29m-3.6 3.19L3 17.25V21h3.75L17.81 9.94z`},null,-1)]])}var Pe=_({name:`mdi-pencil-outline`,render:Ne}),Fe={class:`flex flex-col gap-6 w-full`},Ie={class:`flex flex-col field-gap`},Le={for:`instanceName`,class:`cui-label`},Re={class:`flex flex-col field-gap`},ze={for:`instanceUrl`,class:`cui-label`},Be={class:`flex flex-col field-gap`},Ve={for:`credUsername`,class:`cui-label`},He={class:`flex flex-col field-gap`},Ue={for:`credPassword`,class:`cui-label`},Q=A({__name:`EditInstanceDialog`,props:{currentName:{},currentUrl:{},hasCredentials:{type:Boolean}},setup(e,{expose:t}){let n=e,{t:r}=i(),a=s(),c=E(n.currentName),l=E(n.currentUrl??``),u=E(``),d=E(``),f=v(()=>!n.currentName),p=v(()=>!!n.hasCredentials);return t({onConfirm:async()=>{let e=c.value.trim();if(!e)return null;if(f.value){let t=l.value.trim();if(!t)return null;let n=u.value.trim();return!n||!d.value?(a.add({severity:`warn`,detail:r(`views.settings.instances.credentials_required`),life:3e3}),null):{name:e,url:t,credentials:{username:n,password:d.value}}}return{name:e,credentials:u.value.trim()&&d.value?{username:u.value.trim(),password:d.value}:void 0}}}),(t,n)=>{let r=o;return g(),T(`div`,Fe,[b(`div`,Ie,[b(`label`,Le,D(t.$t(`views.settings.instances.name`)),1),x(r,{id:`instanceName`,modelValue:C(c),"onUpdate:modelValue":n[0]||=e=>y(c)?c.value=e:null,placeholder:t.$t(`views.settings.instances.name`),class:`w-full`,autofocus:``},null,8,[`modelValue`,`placeholder`])]),b(`div`,Re,[b(`label`,ze,D(t.$t(`views.settings.instances.url`)),1),C(f)?(g(),h(r,{key:0,id:`instanceUrl`,modelValue:C(l),"onUpdate:modelValue":n[1]||=e=>y(l)?l.value=e:null,placeholder:t.$t(`views.settings.instances.url_placeholder`),class:`w-full`},null,8,[`modelValue`,`placeholder`])):(g(),h(r,{key:1,id:`instanceUrl`,"model-value":e.currentUrl,class:`w-full`,readonly:``},null,8,[`model-value`]))]),b(`div`,Be,[b(`label`,Ve,D(t.$t(`views.settings.instances.credentials_username`)),1),x(r,{id:`credUsername`,modelValue:C(u),"onUpdate:modelValue":n[2]||=e=>y(u)?u.value=e:null,placeholder:C(p)?t.$t(`views.settings.instances.credentials_unchanged`):t.$t(`views.settings.instances.credentials_username`),class:`w-full`,autocomplete:`off`},null,8,[`modelValue`,`placeholder`])]),b(`div`,He,[b(`label`,Ue,D(t.$t(`views.settings.instances.credentials_password`)),1),x(r,{id:`credPassword`,modelValue:C(d),"onUpdate:modelValue":n[3]||=e=>y(d)?d.value=e:null,type:`password`,placeholder:C(p)?t.$t(`views.settings.instances.credentials_unchanged`):t.$t(`views.settings.instances.credentials_password`),class:`w-full`,autocomplete:`new-password`},null,8,[`modelValue`,`placeholder`])])])}}}),We={class:`flex flex-col`},Ge={key:0,class:`page-title`},Ke={class:`flex gap-2 mb-4`},qe={key:`empty`,class:`flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4`},Je={class:`text-muted text-sm`},Ye=176,$=280,Xe=15e3,Ze=A({__name:`Instances`,setup(r){let u=new ae,{t:_}=i(),{smBreakpoint:O}=ne(),{width:k,height:A}=te(),M=ue(),N=s(),P=se(),F=v(()=>P.serverInstances.filter(e=>!!e.credentials)),{data:I,isPending:L}=u.listQuery(),{mutateAsync:R}=u.createMutation(),{mutateAsync:z}=u.updateMutation(),{mutateAsync:B}=u.deleteMutation(),{mutateAsync:V}=u.toggleFavoriteMutation(),H=u.statusQueries(F),U,W=p(`menuRef`),G=E(!1),K=E(``),q=m({}),J=v(()=>(O.value?1:Math.max(1,Math.floor(k.value/$)))*Math.max(1,Math.ceil(A.value/184))),Y=v(()=>{let e=0;return P.serverInstances.map(t=>{let n=!!t.credentials;if(!n)return{id:t.id,name:t.name,url:t.url,status:`unknown`,active:t.id===P.activeId,favorite:P.isFavorite(t.id),hasCredentials:n};let r=H.value[e++],i=r?.data,a=q[t.id],o=`unknown`;return a===`online`?o=`online`:a===`offline`&&(o=`offline`),{id:t.id,name:t.name,url:t.url,status:o,active:t.id===P.activeId,favorite:P.isFavorite(t.id),hasCredentials:n,version:i?.version,lastUpdatedAt:r?.dataUpdatedAt,cameras:i?.cameras,resources:i?{cpuUsage:i.cpuUsage,memUsed:i.memUsed,memTotal:i.memTotal,diskUsed:i.diskUsed,diskTotal:i.diskTotal}:void 0}})}),X=v(()=>{let e=K.value.toLowerCase().trim();return e?Y.value.filter(t=>t.name.toLowerCase().includes(e)||t.url?.toLowerCase().includes(e)):Y.value}),ge=v(()=>[{label:_(`views.settings.edit`),icon:Pe,onClick:e=>{let t=_e(e);t&&be(t)}},{label:_(`views.settings.remove`),icon:he,iconProps:{class:`text-red-500`},labelProps:{class:`text-red-500`},buttonProps:{severity:`danger`},onClick:e=>{xe(e.id)}}]);function Z(){U?.abort(),U=new AbortController;let{signal:e}=U;for(let t of F.value)q[t.id]===void 0&&(q[t.id]=`checking`),P.probeInstance(t.id,e).then(n=>{e.aborted||(q[t.id]=n?`online`:`offline`)}).catch(()=>{e.aborted||(q[t.id]=`offline`)})}function _e(e){let t=P.serverInstances.find(t=>t.id===e.id);if(!t)return;let n=P.instanceTokens[t.id];return{id:t.id,name:t.name,url:t.url,hasCredentials:!!t.credentials,favorite:t.favorite??!0,userData:n?.userData??null,lastConnectedAt:n?.lastConnectedAt??null,isHome:!1}}function ve(e){e.active||e.status===`offline`||(e.id===`__home__`?P.switchInstance(null):P.switchInstance(e.id))}function ye(){M.openComponentDialog(Q,{data:{title:_(`views.instances.add`),confirmText:_(`components.form.button.add`),contentProps:{currentName:``,hasCredentials:!1}},onConfirm:async e=>{if(e)try{await R({name:e.name,url:e.url,credentials:e.credentials})}catch(e){N.add({severity:`error`,detail:e,life:3e3})}}})}function be(e){M.openComponentDialog(Q,{data:{title:_(`views.settings.instances.edit`),confirmText:_(`components.form.button.save`),contentProps:{currentName:e.name,currentUrl:e.url,hasCredentials:e.hasCredentials}},onConfirm:async t=>{if(t)try{await z({id:e.id,data:{name:t.name===e.name?void 0:t.name,credentials:t.credentials??void 0}})}catch(e){N.add({severity:`error`,detail:e,life:3e3})}}})}function xe(e){M.openTextDialog({data:{title:_(`components.dialog.title.confirm`),contentText:_(`views.settings.instances.confirm_remove`),confirmText:_(`views.settings.instances.remove`),loading:G},onConfirm:async()=>{G.value=!0;try{await B(e)}catch(e){N.add({severity:`error`,detail:e,life:3e3})}G.value=!1}})}return j(I,e=>{e&&(n(P.serverInstances,e.instances)||(P.serverInstances=e.instances),P.serverHomeId!==e.homeId&&(P.serverHomeId=e.homeId))},{immediate:!0}),j(F,Z,{immediate:!0,deep:!0}),t(Z,Xe),S(()=>{U?.abort()}),(t,n)=>{let r=fe,i=e,s=de,u=me,p=ie,m=o,v=re,S=a,E=je,k=oe,A=ce;return g(),T(`div`,We,[C(O)?c(``,!0):(g(),T(`h1`,Ge,D(t.$t(`views.instances.title`)),1)),x(s,{position:`left`},{default:d(()=>[x(i,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:n[0]||=e=>t.$router.push(`/menu`)},{icon:d(()=>[x(r,{class:`w-6 h-6`})]),_:1})]),_:1}),b(`div`,Ke,[x(v,{class:`flex-1`},{default:d(()=>[x(p,null,{default:d(()=>[x(u,{class:`w-4 h-4`})]),_:1}),x(m,{modelValue:C(K),"onUpdate:modelValue":n[1]||=e=>y(K)?K.value=e:null,placeholder:C(_)(`views.instances.search`),class:`w-full`},null,8,[`modelValue`,`placeholder`])]),_:1})]),x(ee,{name:`fade-2`,mode:`out-in`},{default:d(()=>[C(L)?(g(),T(`div`,{key:`loading`,class:`grid w-full gap-2 p-px`,style:w({gridTemplateColumns:`repeat(auto-fill, minmax(${C(O)?`100%`:`${$}px`}, 1fr))`})},[(g(!0),T(f,null,l(C(J),e=>(g(),h(S,{key:e,height:`${Ye}px`,class:`cui-card`},null,8,[`height`]))),128))],4)):C(X).length?(g(),T(`div`,{key:`content`,class:`grid w-full gap-2 p-px`,style:w({gridTemplateColumns:`repeat(auto-fill, minmax(${C(O)?`100%`:`${$}px`}, 1fr))`})},[(g(!0),T(f,null,l(C(X),e=>(g(),h(E,{key:e.id,instance:e,"menu-open":C(W)?.isOpen&&C(W)?.data?.id===e.id,onClick:t=>ve(e),onToggleFavorite:t=>C(V)(e.id),onOpenMenu:t=>C(W)?.toggleMenu(t,void 0,e)},null,8,[`instance`,`menu-open`,`onClick`,`onToggleFavorite`,`onOpenMenu`]))),128))],4)):(g(),T(`div`,qe,[x(k,{class:`w-12 h-12 text-muted`}),b(`span`,Je,D(t.$t(`views.instances.no_instances`)),1)]))]),_:1}),x(A,{"tooltip-props":{value:t.$t(`views.instances.add`)},"button-props":{class:`text-white`},icon:C(pe),"icon-props":{width:`30px`,height:`30px`},onClick:ye},null,8,[`tooltip-props`,`icon`]),x(le,{ref_key:`menuRef`,ref:W,items:C(ge),popover:{pt:{content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])])}}});export{Ze as default};
@@ -0,0 +1,6 @@
1
+ import{Hn as e,fi as t,qi as n,tt as r}from"./vendor-cameraui-BABuGvhg.js";import{C as i}from"./api-C-NlYhuP.js";import{Hn as a,Ln as o,Qt as s,Tn as c,Un as ee,Xn as l,Xt as u,Yn as d,Zt as f,_n as p,an as m,cr as h,dr as te,en as g,er as _,gn as ne,jn as re,lr as v,nn as ie,or as y,sn as b,wn as x,yn as S,zn as C}from"./vendor-zxCOTbSj.js";import{f as w}from"./vendor-core-C6lCucBy.js";import{n as T}from"./ui-B2i8B4yr.js";import{F as ae,J as oe,P as se,o as ce}from"./vendor-primevue-CsC6U_Xu.js";import{t as E}from"./useFileDownload-C_Am2BRz.js";import{t as le}from"./CuiMenu-150v0xB6.js";import{n as ue,r as de,t as fe}from"./cameras-Co3xGKAG.js";import{t as pe}from"./useCuiDialog-C4xS4vrs.js";import{t as me}from"./CuiTopbarSlot-DE7fTsSm.js";import{n as he,r as ge,t as _e}from"./plugins-Bj4_KCp7.js";import{n as ve,t as ye}from"./useLogsSocket-PUFDb8MH.js";import{i as D,n as O}from"./server-DeMUCrCz.js";import{t as k}from"./back-filled-2dVfzfd3.js";import{t as A}from"./search-BN5ng-N8.js";import{n as j,t as M}from"./zoom-in-BxhkL8eQ.js";import{n as N,t as P}from"./CuiTopNavbarItem-Dwm5c6so.js";import{t as be}from"./arrow-left-YsUvJVC6.js";import{t as xe}from"./trash-2-C8brLIvo.js";var F={viewBox:`0 0 32 32`,width:`1.2em`,height:`1.2em`};function I(e,t){return c(),g(`svg`,F,[...t[0]||=[f(`path`,{fill:`currentColor`,d:`M16 18L6 8l1.4-1.4l8.6 8.6l8.6-8.6L26 8zM4 22h24v2H4z`},null,-1)]])}var Se=l({name:`carbon-down-to-bottom`,render:I}),L={viewBox:`0 0 20 20`,width:`1.2em`,height:`1.2em`};function R(e,t){return c(),g(`svg`,L,[...t[0]||=[f(`path`,{fill:`currentColor`,"fill-rule":`evenodd`,d:`M3 17a1 1 0 0 1 1-1h12a1 1 0 1 1 0 2H4a1 1 0 0 1-1-1m3.293-7.707a1 1 0 0 1 1.414 0L9 10.586V3a1 1 0 1 1 2 0v7.586l1.293-1.293a1 1 0 1 1 1.414 1.414l-3 3a1 1 0 0 1-1.414 0l-3-3a1 1 0 0 1 0-1.414`,"clip-rule":`evenodd`},null,-1)]])}var Ce=l({name:`heroicons-solid-download`,render:R}),we={class:`h-full w-full dark-mode relative`},Te={class:`relative w-6 h-6`},Ee=5e3,z=b({__name:`Logs`,props:{navbarWidth:{default:0},navbarLeft:{default:0}},setup(l){let b=new fe,F=new _e,I=l,{t:L}=t(),R=pe(),z=i(),{uiSettings:B}=w(T()),{data:De}=b.getCamerasQuery({page:1,pageSize:-1}),{data:Oe}=F.getPluginsQuery({page:1,pageSize:-1}),V=[{id:`server`,label:`Server`},{id:`go2rtc`,label:`go2rtc`},{id:`nats`,label:`nats`},{id:`tunnel`,label:`tunnel`}],{navbarWidth:ke,navbarLeft:Ae}=y(I),H=o(`consoleRef`),U=o(`menuRef`),W=o(`mobileSearchInput`),G=_({kind:`all`}),K=_(``),q=_([]),J=_(!1),Y=_(!1),je=u(()=>ke.value+Ae.value),Me=u(()=>G.value.kind===`all`?`all`:G.value.id),Ne=u(()=>{let e=G.value;return e.kind===`all`?`All`:e.kind===`system`?V.find(t=>t.id===e.id)?.label??e.id??``:e.id??``}),Pe=u(()=>{let e=[],t=(e,t,n)=>({key:`${e.kind}:${e.id??``}`,label:t,group:n,active:ze(e),onClick:()=>Be(e)});e.push(t({kind:`all`},`All`));for(let n of V)e.push(t({kind:`system`,id:n.id},n.label,L(`views.logs.groups.system`)));let n=L(`views.logs.groups.plugins`);for(let r of Oe.value?.result??[])e.push(t({kind:`plugin`,id:r.pluginName},r.pluginName,n));let r=L(`views.logs.groups.cameras`);for(let n of De.value?.result??[])e.push(t({kind:`camera`,id:n.name},n.name,r));return e}),Fe=u(()=>({fontSize:B.value.console.zoom}));function Ie(){J.value=!0,p(()=>{W.value?.$el?.focus()})}function Le(){J.value=!1,K.value=``}function X(e,t){return t.trim()?e.replace(/\x1b\[[0-9;]*m/g,``).toLowerCase().includes(t.toLowerCase()):!0}function Z(){q.value=[],H.value?.clearTerminal()}function Re(){if(H.value){H.value.clearTerminal();for(let e of q.value)X(e,K.value)&&H.value.writeTerminal(e)}}let Q=n(Re,300);function ze(e){return G.value.kind===e.kind&&G.value.id===e.id}function Be(e){G.value=e,Z(),$.switchSource(e)}let $=ye({onStdout:e=>{let t=e.split(/(?<=\r?\n)/);for(let e of t)e.trim()&&q.value.push(e);q.value.length>Ee&&(q.value=q.value.slice(-5e3)),X(e,K.value)&&H.value?.writeTerminal(e)},onDisconnect:()=>H.value?.writeTerminal(`\r
2
+ Websocket failed to connect! Is the server running?\r
3
+ \r
4
+ `),onClearLog:e=>{e===Me.value&&Z()},onReconnected:()=>{Z(),H.value?.writeTerminal(`--- Reconnected ---\r
5
+ \r
6
+ `)}});async function Ve(){Y.value=!0;try{let e=G.value;e.kind===`camera`&&e.id?(await ue({cameraname:e.id}),Z()):e.kind===`plugin`&&e.id?(await he({pluginName:e.id}),Z()):await O(e.kind===`system`?e.id:void 0),z.add({severity:`success`,detail:L(`components.toast.log_cleared`),life:3e3})}finally{Y.value=!1}}async function He(){Y.value=!0;try{let e=G.value,t=new AbortController,n,r;if(e.kind===`camera`&&e.id)n=await de({cameraname:e.id,signal:t.signal}),r=`camera.ui.${e.id}.log.txt`;else if(e.kind===`plugin`&&e.id)n=await ge({pluginName:e.id,signal:t.signal}),r=`camera.ui.${e.id}.log.txt`;else{let i=e.kind===`system`?e.id:`all`;n=await D({signal:t.signal,source:i}),r=i&&i!==`all`?`${i}.log.txt`:`camera.ui.log.txt`}await E({blob:new Blob([n]),filename:r,mimeType:`text/plain`})}finally{Y.value=!1}}function Ue(){B.value.console.zoom!==20&&B.value.console.zoom++}function We(){B.value.console.zoom!==8&&B.value.console.zoom--}let Ge=_([{label:L(`components.form.tooltip.download`),icon:Ce,buttonProps:{severity:`success`},command:()=>{He()}},{label:L(`components.form.tooltip.delete`),icon:xe,buttonProps:{severity:`danger`},command:()=>{R.openTextDialog({data:{title:L(`components.dialog.title.confirm`),contentText:L(`components.dialog.message.confirm_clear_log`),confirmText:L(`components.form.button.clear`),confirmButtonProps:{severity:`danger`}},onConfirm:Ve})}},{label:L(`components.form.tooltip.zoom_out`),icon:j,command:()=>{We()}},{label:L(`components.form.tooltip.zoom_in`),icon:M,command:()=>{Ue()}}]);return C(K,()=>{Q()}),S(()=>{$.connect(),$.switchSource({kind:`all`})}),x(()=>{$.disconnect()}),(t,n)=>{let i=k,o=e,l=me,u=be,p=P,_=A,y=se,b=r,x=ae,S=N,C=ce,w=Se,T=le,E=oe;return c(),g(`div`,we,[m(l,{position:`left`},{default:a(()=>[m(o,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:n[0]||=e=>t.$router.push(`/menu`)},{icon:a(()=>[m(i,{class:`w-6 h-6`})]),_:1})]),_:1}),m(S,{"left-offset":h(je),animate:``},ie({_:2},[h(J)?{name:`full`,fn:a(()=>[m(p,{class:`sm:hidden`,onClick:Le},{icon:a(()=>[m(u,{class:`text-sm`})]),_:1}),m(x,{class:`dark-mode w-full sm:hidden`},{default:a(()=>[m(y,null,{default:a(()=>[m(_,{class:`text-sm`})]),_:1}),m(b,{ref_key:`mobileSearchInput`,ref:W,modelValue:h(K),"onUpdate:modelValue":n[1]||=e=>d(K)?K.value=e:null,placeholder:h(L)(`components.form.placeholder.search`),class:`dark-mode text-xs h-8 w-full`},null,8,[`modelValue`,`placeholder`])]),_:1})]),key:`0`}:void 0,h(J)?void 0:{name:`left`,fn:a(()=>[m(p,{type:`dropdown`,label:h(Ne),"menu-open":h(U)?.isOpen,onClick:n[2]||=e=>h(U)?.toggleMenu(e)},null,8,[`label`,`menu-open`])]),key:`1`},h(J)?void 0:{name:`right`,fn:a(()=>[m(p,{class:`sm:hidden`,onClick:Ie},{icon:a(()=>[m(_,{class:`text-sm`})]),_:1}),m(x,{class:`dark-mode hidden sm:flex`},{default:a(()=>[m(y,null,{default:a(()=>[m(_,{class:`text-sm`})]),_:1}),m(b,{modelValue:h(K),"onUpdate:modelValue":n[3]||=e=>d(K)?K.value=e:null,placeholder:h(L)(`components.form.placeholder.search`),class:`dark-mode text-xs h-8 w-40`},null,8,[`modelValue`,`placeholder`])]),_:1})]),key:`2`}]),1032,[`left-offset`]),f(`div`,{class:`w-full h-full flex relative`,style:te({paddingTop:`${h(55)}px`})},[m(ve,{ref_key:`consoleRef`,ref:H,options:h(Fe)},null,8,[`options`])],4),m(C,{model:h(Ge),direction:`up`,"transition-delay":80,"tooltip-options":{position:`left`,event:void 0},class:`absolute right-3 bottom-3 z-11`,pt:{root:{style:`pointer-events: none`}}},{button:a(({visible:e,toggleCallback:t})=>[m(o,{severity:`secondary`,class:v([`dark-mode opacity-40 hover:opacity-100 active:opacity-100 focus:opacity-100 transition pointer-events-auto`,{"opacity-100":e}]),rounded:``,loading:h(Y),onClick:t},{icon:a(()=>[f(`div`,Te,[f(`div`,{class:v([`absolute top-0.5 left-1/2 -translate-x-1/2 w-1.5 h-1.5 rounded-full transform transition-all duration-100 origin-center`,{"w-4 h-[2px] rotate-45 top-1/2 -translate-y-1/2 rounded-none":e}]),style:{backgroundColor:`var(--text-color)`}},null,2),f(`div`,{class:v([`absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-1.5 h-1.5 rounded-full transition-all duration-100`,{"opacity-0 scale-0":e}]),style:{backgroundColor:`var(--text-color)`}},null,2),f(`div`,{class:v([`absolute bottom-0.5 left-1/2 -translate-x-1/2 w-1.5 h-1.5 rounded-full transform transition-all duration-100 origin-center`,{"w-4 h-[2px] -rotate-45 bottom-1/2 translate-y-1/2 rounded-none":e}]),style:{backgroundColor:`var(--text-color)`}},null,2)])]),_:2},1032,[`class`,`loading`,`onClick`])]),item:a(({item:e,toggleCallback:t})=>[ee((c(),s(o,ne({loading:h(Y),severity:`secondary`},e.buttonProps,{rounded:``,onClick:t}),{icon:a(()=>[(c(),s(re(e.icon)))]),_:2},1040,[`loading`,`onClick`])),[[E,{value:e.label}]])]),_:1},8,[`model`]),m(o,{class:v([`dark-mode opacity-40 transition absolute bottom-3 right-14 z-11 text-white`,{"!opacity-20":h(H)?.atBottom,"hover:opacity-100 active:opacity-100 focus:opacity-100":!h(H)?.atBottom}]),rounded:``,loading:h(Y),disabled:h(H)?.atBottom,onClick:h(H)?.scrollToBottom},{icon:a(()=>[m(w,{class:`text-white`})]),_:1},8,[`class`,`loading`,`disabled`,`onClick`]),m(T,{ref_key:`menuRef`,ref:U,items:h(Pe),dividers:`sections`,"max-height":`300px`,class:`dark-mode`,popover:{pt:{content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])])}}});export{z as default};
@@ -0,0 +1 @@
1
+ import{ct as e,fi as t}from"./vendor-cameraui-BABuGvhg.js";import{f as n,p as r}from"./api-C-NlYhuP.js";import{$t as i,Dn as a,Hn as o,In as s,Kt as c,Qt as l,Tn as u,Xn as d,Xt as f,Zt as p,an as m,cr as h,en as g,fr as _,gn as v,in as y,jn as b,kn as x,or as S,rn as C,sn as w}from"./vendor-zxCOTbSj.js";import{f as T}from"./vendor-core-C6lCucBy.js";import{n as E}from"./router-CIvI3oge.js";import{t as D}from"./power-CQJ3md0z.js";import{t as O}from"./CuiAvatar-CdoyvPP1.js";import{t as k}from"./hasPermission-DKTmzAJw.js";import{n as A}from"./CuiMenu-150v0xB6.js";import{t as j}from"./information-outline-CGFN6gSy.js";import{t as M}from"./chevron-right-HArXFSSz.js";var N={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function P(e,t){return u(),g(`svg`,N,[...t[0]||=[p(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`1.5`,d:`M17 20V4m0 0l3 3m-3-3l-3 3M7 4v16m0 0l3-3m-3 3l-3-3`},null,-1)]])}var F=d({name:`iconoir-data-transfer-both`,render:P}),I={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function L(e,t){return u(),g(`svg`,I,[...t[0]||=[C(`<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-width="1.5"><path d="M11 21H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v7"></path><path stroke-linejoin="round" d="M2 7h20M5 5.01l.01-.011M8 5.01l.01-.011M11 5.01l.01-.011m10.657 11.668C21.047 15.097 19.635 14 17.99 14c-1.758 0-3.252 1.255-3.793 3"></path><path stroke-linejoin="round" d="M19.995 16.772H21.4a.6.6 0 0 0 .6-.6V14.55m-7.666 4.783C14.953 20.903 16.366 22 18.01 22c1.758 0 3.252-1.255 3.793-3"></path><path stroke-linejoin="round" d="M16.005 19.228H14.6a.6.6 0 0 0-.6.6v1.622"></path></g>`,1)]])}var R=d({name:`iconoir-reload-window`,render:L}),z=w({__name:`CuiList`,props:{size:{default:`default`},dividers:{type:Boolean},cardProps:{},cardClass:{type:[Boolean,null,String,Object,Array]},cardStyle:{type:[Boolean,null,String,Object,Array]}},setup(t){let n=t,r=s(),{cardProps:i,cardClass:d,cardStyle:p,dividers:m}=S(n),_=f(()=>{let e=r.default?.();if(!e)return[];let t=[];for(let n of e)if(n.type===c&&Array.isArray(n.children))for(let e of n.children)typeof e==`object`&&e&&t.push(e);else t.push(n);return t});return(n,r)=>{let s=e;return u(),l(s,v({class:`cui-card`,pt:{body:{class:`p-0`}}},h(i),{class:h(d),style:h(p)}),{content:o(()=>[(u(!0),g(c,null,a(h(_),(e,n)=>(u(),l(b(e),v({key:n,ref_for:!0},h(m)===!1?{}:{divider:n<h(_).length-1},{size:t.size,radius:h(_).length===1?`both`:n===0?`top`:n===h(_).length-1?`bottom`:`none`}),null,16,[`size`,`radius`]))),128))]),_:1},16,[`class`,`style`])}}}),B={class:`flex flex-col items-center py-8`},V={class:`mt-3 text-lg font-semibold`},H={class:`text-sm text-muted`},U={class:`px-4 mb-4`},W={class:`card-title`},G={key:0,class:`px-4 mb-4`},K={class:`card-title`},q={class:`px-4 mb-4`},J={class:`card-title`},Y={class:`text-primary`},X=w({__name:`Menu`,setup(e){let{t:s}=t(),d=n(),{user:v}=T(d),S=new Set([`Faces`,`Plugins`,`Settings`]),C=f(()=>E.filter(e=>e.meta?.menu&&e.meta.auth&&k(e))),w=f(()=>C.value.filter(e=>S.has(e.name)).map(e=>({to:e.path,label:s(`navigation.${e.name.toLowerCase()}`),icon:e.meta.menu.icon.default}))),N=f(()=>C.value.filter(e=>!S.has(e.name)).map(e=>({to:e.path,label:s(`navigation.${e.name.toLowerCase()}`),icon:e.meta.menu.icon.default})));function P(){window.location.reload()}async function I(){await r()}return(e,t)=>{let n=O,r=x(`RouterLink`),s=M,f=A,S=z,C=j,T=R,E=F,k=D;return u(),g(`div`,null,[p(`section`,B,[m(r,{to:`/settings/account`,class:`flex flex-col items-center justify-center`},{default:o(()=>[m(n,{src:`avatar`,size:80,style:{width:`80px`,height:`80px`}}),p(`div`,V,_(h(v)?.username??`Unknown`),1),p(`div`,H,_(h(v)?.role??`user`),1)]),_:1})]),p(`section`,U,[p(`span`,W,_(e.$t(`views.menu.section_app`)),1),m(S,{size:`large`,dividers:``},{default:o(()=>[(u(!0),g(c,null,a(h(w),e=>(u(),l(f,{key:e.to,to:e.to},{prepend:o(()=>[(u(),l(b(e.icon),{class:`w-5 h-5 text-muted`}))]),append:o(()=>[m(s,{class:`w-5 h-5 text-muted`})]),default:o(()=>[y(` `+_(e.label)+` `,1)]),_:2},1032,[`to`]))),128))]),_:1})]),h(N).length?(u(),g(`section`,G,[p(`span`,K,_(e.$t(`views.menu.section_system`)),1),m(S,{size:`large`,dividers:``},{default:o(()=>[(u(!0),g(c,null,a(h(N),e=>(u(),l(f,{key:e.to,to:e.to},{prepend:o(()=>[(u(),l(b(e.icon),{class:`w-5 h-5 text-muted`}))]),append:o(()=>[m(s,{class:`w-5 h-5 text-muted`})]),default:o(()=>[y(` `+_(e.label)+` `,1)]),_:2},1032,[`to`]))),128))]),_:1})])):i(``,!0),p(`section`,q,[p(`span`,J,_(e.$t(`views.menu.section_actions`)),1),m(S,{size:`large`,dividers:``},{default:o(()=>[m(f,{to:`/about`},{prepend:o(()=>[m(C,{class:`w-5 h-5 text-muted`})]),append:o(()=>[m(s,{class:`w-5 h-5 text-muted`})]),default:o(()=>[y(` `+_(e.$t(`navigation.about`))+` `,1)]),_:1}),m(f,{onClick:P},{prepend:o(()=>[m(T,{class:`w-5 h-5 text-muted`})]),default:o(()=>[y(` `+_(e.$t(`views.menu.reload`)),1)]),_:1}),h(!1)?(u(),l(f,{key:0,onClick:I},{prepend:o(()=>[m(E,{class:`w-5 h-5 text-muted`})]),default:o(()=>[y(` `+_(e.$t(`views.menu.switch_server`)),1)]),_:1})):i(``,!0),m(f,{onClick:t[0]||=()=>h(d).logout()},{prepend:o(()=>[m(k,{class:`w-5 h-5 text-primary`})]),default:o(()=>[p(`span`,Y,_(e.$t(`views.menu.logout`)),1)]),_:1})]),_:1})])])}}});export{X as default};
@@ -1 +1 @@
1
- import{Bt as e,Vn as t,fi as n}from"./vendor-cameraui-D-WYtlxb.js";import{$t as r,Dn as i,Hn as a,Kt as o,Qt as s,Tn as c,Xt as l,Zt as u,an as d,cr as f,en as p,fr as m,in as h,sn as g,zt as _}from"./vendor-CUsAwmr-.js";import{z as v}from"./vendor-primevue-01WhBsPb.js";import{n as y,t as b}from"./cloud-check-C0emdjhh.js";import{t as x}from"./CuiQRCode-D2hEZT9L.js";var S={class:`flex flex-col`},C={key:`intro`,class:`flex flex-col gap-4`},w={key:0,class:`flex flex-col gap-1.5 list-disc pl-5 text-sm text-muted`},T={key:`awaiting`,class:`flex flex-col items-center gap-5 text-center`},E={class:`flex flex-col items-center gap-2`},D={class:`text-sm text-muted`},O=[`href`],k={class:`mt-1 card-background border border-color rounded-xl px-6 py-3`},A={class:`text-2xl font-mono font-semibold tracking-[0.25em]`},j={class:`flex items-center gap-2 text-muted`},M={class:`text-sm`},N={key:`connected`,class:`flex flex-col items-center gap-3 py-2 text-center`},P={class:`text-sm`},F={key:`error`,class:`flex flex-col items-center gap-3 py-2 text-center`},I={class:`text-sm`},L=g({__name:`OAuthDeviceFlow`,props:{pluginName:{}},setup(g,{expose:L}){let R=g,{t:z}=n(),{state:B,metadata:V,startDeviceFlow:H,disconnect:U,cancel:W}=e(R.pluginName),G=l(()=>Object.keys(V.value?.scopeDescriptions??{}));function K(e){switch(e){case`access_denied`:return z(`components.oauth.error_access_denied`);case`expired_token`:return z(`components.oauth.error_expired`);default:return z(`components.oauth.error_generic`)}}async function q(){return B.value.status===`disconnected`||B.value.status===`error`?await H(G.value):B.value.status===`connected`&&await U(),null}async function J(){(B.value.status===`awaiting_user`||B.value.status===`polling`)&&await W()}return L({onConfirm:q,onCancel:J}),(e,n)=>{let l=v,g=x,L=t,R=b,z=y;return c(),p(`div`,S,[d(_,{name:`fade`,mode:`out-in`},{default:a(()=>[f(B).status===`disconnected`?(c(),p(`div`,C,[d(l,{severity:`secondary`,variant:`simple`,size:`small`},{default:a(()=>[h(m(e.$t(`components.oauth.intro`,{idp:f(V)?.idpDisplayName??`cameraui.com`})),1)]),_:1}),f(G).length?(c(),p(`ul`,w,[(c(!0),p(o,null,i(f(G),e=>(c(),p(`li`,{key:e},m(f(V)?.scopeDescriptions[e]??e),1))),128))])):r(``,!0)])):f(B).status===`awaiting_user`||f(B).status===`polling`?(c(),p(`div`,T,[f(B).verificationUriComplete?(c(),s(g,{key:0,value:f(B).verificationUriComplete,size:184,"logo-size":36},null,8,[`value`])):r(``,!0),u(`div`,E,[u(`span`,D,m(e.$t(`components.oauth.enter_code_at`)),1),u(`a`,{href:f(B).verificationUriComplete||f(B).verificationUri,target:`_blank`,rel:`noopener`,class:`text-sm font-mono text-primary hover:underline break-all`},m(f(B).verificationUri),9,O),u(`div`,k,[u(`span`,A,m(f(B).userCode),1)])]),u(`div`,j,[d(L,{class:`w-4 h-4 m-0`,"stroke-width":`5`}),u(`span`,M,m(e.$t(`components.oauth.waiting`)),1)])])):f(B).status===`connected`?(c(),p(`div`,N,[d(R,{class:`text-green-500 w-10 h-10`}),u(`span`,P,m(e.$t(`components.oauth.connected_as`,{email:f(B).userEmail||`—`})),1)])):f(B).status===`error`?(c(),p(`div`,F,[d(z,{class:`text-red-500 w-10 h-10`}),u(`span`,I,m(f(B).errorMessage||K(f(B).errorCode)),1)])):r(``,!0)]),_:1})])}}});export{L as default};
1
+ import{Bt as e,Vn as t,fi as n}from"./vendor-cameraui-BABuGvhg.js";import{$t as r,Dn as i,Hn as a,Kt as o,Qt as s,Tn as c,Xt as l,Zt as u,an as d,cr as f,en as p,fr as m,in as h,sn as g,zt as _}from"./vendor-zxCOTbSj.js";import{z as v}from"./vendor-primevue-CsC6U_Xu.js";import{n as y,t as b}from"./cloud-check-DqBwzaPC.js";import{t as x}from"./CuiQRCode-ZbDxg42W.js";var S={class:`flex flex-col`},C={key:`intro`,class:`flex flex-col gap-4`},w={key:0,class:`flex flex-col gap-1.5 list-disc pl-5 text-sm text-muted`},T={key:`awaiting`,class:`flex flex-col items-center gap-5 text-center`},E={class:`flex flex-col items-center gap-2`},D={class:`text-sm text-muted`},O=[`href`],k={class:`mt-1 card-background border border-color rounded-xl px-6 py-3`},A={class:`text-2xl font-mono font-semibold tracking-[0.25em]`},j={class:`flex items-center gap-2 text-muted`},M={class:`text-sm`},N={key:`connected`,class:`flex flex-col items-center gap-3 py-2 text-center`},P={class:`text-sm`},F={key:`error`,class:`flex flex-col items-center gap-3 py-2 text-center`},I={class:`text-sm`},L=g({__name:`OAuthDeviceFlow`,props:{pluginName:{}},setup(g,{expose:L}){let R=g,{t:z}=n(),{state:B,metadata:V,startDeviceFlow:H,disconnect:U,cancel:W}=e(R.pluginName),G=l(()=>Object.keys(V.value?.scopeDescriptions??{}));function K(e){switch(e){case`access_denied`:return z(`components.oauth.error_access_denied`);case`expired_token`:return z(`components.oauth.error_expired`);default:return z(`components.oauth.error_generic`)}}async function q(){return B.value.status===`disconnected`||B.value.status===`error`?await H(G.value):B.value.status===`connected`&&await U(),null}async function J(){(B.value.status===`awaiting_user`||B.value.status===`polling`)&&await W()}return L({onConfirm:q,onCancel:J}),(e,n)=>{let l=v,g=x,L=t,R=b,z=y;return c(),p(`div`,S,[d(_,{name:`fade`,mode:`out-in`},{default:a(()=>[f(B).status===`disconnected`?(c(),p(`div`,C,[d(l,{severity:`secondary`,variant:`simple`,size:`small`},{default:a(()=>[h(m(e.$t(`components.oauth.intro`,{idp:f(V)?.idpDisplayName??`cameraui.com`})),1)]),_:1}),f(G).length?(c(),p(`ul`,w,[(c(!0),p(o,null,i(f(G),e=>(c(),p(`li`,{key:e},m(f(V)?.scopeDescriptions[e]??e),1))),128))])):r(``,!0)])):f(B).status===`awaiting_user`||f(B).status===`polling`?(c(),p(`div`,T,[f(B).verificationUriComplete?(c(),s(g,{key:0,value:f(B).verificationUriComplete,size:184,"logo-size":36},null,8,[`value`])):r(``,!0),u(`div`,E,[u(`span`,D,m(e.$t(`components.oauth.enter_code_at`)),1),u(`a`,{href:f(B).verificationUriComplete||f(B).verificationUri,target:`_blank`,rel:`noopener`,class:`text-sm font-mono text-primary hover:underline break-all`},m(f(B).verificationUri),9,O),u(`div`,k,[u(`span`,A,m(f(B).userCode),1)])]),u(`div`,j,[d(L,{class:`w-4 h-4 m-0`,"stroke-width":`5`}),u(`span`,M,m(e.$t(`components.oauth.waiting`)),1)])])):f(B).status===`connected`?(c(),p(`div`,N,[d(R,{class:`text-green-500 w-10 h-10`}),u(`span`,P,m(e.$t(`components.oauth.connected_as`,{email:f(B).userEmail||`—`})),1)])):f(B).status===`error`?(c(),p(`div`,F,[d(z,{class:`text-red-500 w-10 h-10`}),u(`span`,I,m(f(B).errorMessage||K(f(B).errorCode)),1)])):r(``,!0)]),_:1})])}}});export{L as default};
@@ -1 +1 @@
1
- import{Hn as e,Mn as t,Nn as n,On as r,Ut as i,Vn as a,Wt as o,ct as s,fi as c,jn as l,tt as u}from"./vendor-cameraui-D-WYtlxb.js";import{C as ee,O as te,f as d,l as ne}from"./api-CLcqLYO9.js";import{$t as f,Cn as p,Dn as re,Gt as m,Hn as h,Kt as g,Ln as _,Qn as v,Qt as y,Tn as b,Un as x,Wt as S,Xn as C,Xt as w,Yn as T,Zt as E,_n as D,an as O,cr as k,en as A,er as j,fr as M,gn as N,in as P,jn as F,kn as I,lr as L,nn as R,or as z,rr as B,sn as V,zn as H}from"./vendor-CUsAwmr-.js";import{c as ie,f as U}from"./vendor-core-CWeZebhd.js";import{t as W}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as ae}from"./useSharedComposables-CzkF-tst.js";import{B as G,G as K,H as q,J as oe,K as se,V as ce,W as le,a as J,i as ue,j as de,u as fe}from"./vendor-primevue-01WhBsPb.js";import{t as pe}from"./cctv-C9H_8mDb.js";import{t as me}from"./bell-D6XTudrP.js";import{t as he}from"./cog-OzsdLKVr.js";import{t as ge}from"./hasPermission-BHM3xbrG.js";import{n as _e}from"./CuiMenu-KizSc3du.js";import{t as ve}from"./CuiBBoxPlayground-_SGm4cz1.js";import{t as ye}from"./cameras-BOHWrQm2.js";import{n as be}from"./useCuiCameraDrawer-Ca6U-GzM.js";import{t as xe}from"./useCuiDialog-C-2PMjxH.js";import{t as Se}from"./CuiTopbarSlot-BlbZqDDn.js";import{F as Ce,G as Y,H as X,K as we,U as Te,W as Ee,a as De}from"./types-DZNoDDGr.js";import{t as Oe}from"./CuiSchema-CkgT_tmr.js";import{t as ke}from"./plugins-BWlFg8TN.js";import{t as Ae}from"./PluginSchema-g4Srx0FS.js";import{t as je}from"./plus-iXo1T1is.js";import{a as Me,i as Ne,n as Pe,o as Fe,r as Ie,t as Le}from"./vendor-markdown-e7bfD1d7.js";import{t as Re}from"./close-circle-BtZFk77i.js";import{t as ze}from"./back-filled-DVeRsKmt.js";import{t as Be}from"./CuiPluginCard-DpllCJXe.js";var Z={class:`text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},Q={class:`flex flex-col gap-4`},$={class:`flex flex-col field-gap`},Ve={class:`cui-label`},He={key:0,class:`text-red-500 text-sm`},Ue={class:`flex flex-col field-gap`},We={class:`cui-label`},Ge={class:`flex flex-col field-gap`},Ke={class:`cui-label`},qe={class:`flex flex-col field-gap`},Je={class:`cui-label`},Ye={class:`flex flex-col field-gap`},Xe={class:`cui-label`},Ze={class:`flex flex-col field-gap`},Qe={class:`cui-label`},$e={class:`flex flex-col field-gap`},et={class:`cui-label`},tt={class:`flex flex-col field-gap`},nt={class:`cui-label`},rt={class:`mt-8`},it={class:`text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},at={key:0,class:`flex items-center justify-center w-full py-4`},ot={key:1,class:`flex items-center justify-center text-sm text-muted py-4 text-center`},st={key:2,class:`flex flex-col field-gap`},ct={class:`text-xs text-muted`},lt={key:0,class:`mt-8`},ut={class:`text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},dt=V({__name:`CuiNotificationInterface`,props:{pluginName:{}},setup(t){let n=t,o=te(),{t:s}=c(),l=ee(),{user:ne}=U(d()),{pluginName:p}=z(n),{plugin:m}=i(p),_=w(()=>Object.values(r).map(e=>({label:s(`components.notification_interface.severity_${e}`),value:e}))),y=v({title:`Test notification`,subtitle:``,body:`This is a test notification from camera.ui`,severity:r.Info,tag:``,imageUrl:``,deepLink:``}),x=j([]),S=j(!1),C=j(!1),D=B([]),N=j(!1),P=j([]),F=B(),I=j(!1),L=w(()=>D.value.map(e=>({id:e.id,label:e.name})));async function R(){if(!(!m.value||!ne.value?._id)){N.value=!0;try{let e=ge(void 0,`admin`)?[]:[ne.value._id];D.value=await m.value.getDevices?.(e)??[]}catch(e){o.error(`Failed to load notifier devices:`,e),D.value=[]}finally{N.value=!1}}}async function V(){if(m.value){I.value=!0;try{F.value=await m.value.notificationSettings?.()}catch(e){o.error(`Failed to load notification settings schema:`,e),F.value=void 0}finally{I.value=!1}}}function ie(){x.value.push({key:``,value:``})}function W(e){x.value.splice(e,1)}function ae(){let e={};for(let t of x.value)t.key.trim()&&(e[t.key.trim()]=t.value);return{title:y.title.trim(),subtitle:y.subtitle.trim()||void 0,body:y.body.trim()||void 0,severity:y.severity,tag:y.tag.trim()||void 0,imageUrl:y.imageUrl.trim()||void 0,deepLink:y.deepLink.trim()||void 0,data:Object.keys(e).length?e:void 0}}async function G(){let e=m.value;if(!(!e||C.value)){if(!y.title.trim()){S.value=!0;return}C.value=!0;try{let t=ae(),n=P.value.length?P.value:D.value.map(e=>e.id);await e.sendNotification?.(n,t),l.add({severity:`success`,detail:s(`components.notification_interface.sent`),life:3e3})}catch(e){l.add({severity:`error`,detail:e,life:3e3})}finally{C.value=!1}}}return H(m,e=>{e&&(R(),V())},{immediate:!0}),(t,n)=>{let r=u,i=ue,o=de,s=Re,c=e,l=je,ee=a,te=fe,d=Oe;return b(),A(`div`,null,[E(`h3`,Z,M(t.$t(`components.notification_interface.template`)),1),E(`div`,Q,[E(`div`,$,[E(`label`,Ve,M(t.$t(`components.notification_interface.title`)),1),O(r,{modelValue:k(y).title,"onUpdate:modelValue":[n[0]||=e=>k(y).title=e,n[1]||=e=>S.value=!1],placeholder:t.$t(`components.notification_interface.title`),invalid:k(S),class:`w-full`},null,8,[`modelValue`,`placeholder`,`invalid`]),k(S)?(b(),A(`p`,He,M(t.$t(`components.notification_interface.title_required`)),1)):f(``,!0)]),E(`div`,Ue,[E(`label`,We,M(t.$t(`components.notification_interface.subtitle`)),1),O(r,{modelValue:k(y).subtitle,"onUpdate:modelValue":n[2]||=e=>k(y).subtitle=e,placeholder:t.$t(`components.notification_interface.subtitle`),class:`w-full`},null,8,[`modelValue`,`placeholder`])]),E(`div`,Ge,[E(`label`,Ke,M(t.$t(`components.notification_interface.body`)),1),O(i,{modelValue:k(y).body,"onUpdate:modelValue":n[3]||=e=>k(y).body=e,placeholder:t.$t(`components.notification_interface.body`),rows:`3`,class:`w-full`},null,8,[`modelValue`,`placeholder`])]),E(`div`,qe,[E(`label`,Je,M(t.$t(`components.notification_interface.severity`)),1),O(o,{modelValue:k(y).severity,"onUpdate:modelValue":n[4]||=e=>k(y).severity=e,options:k(_),"option-label":`label`,"option-value":`value`,class:`w-full`},null,8,[`modelValue`,`options`])]),E(`div`,Ye,[E(`label`,Xe,M(t.$t(`components.notification_interface.tag`)),1),O(r,{modelValue:k(y).tag,"onUpdate:modelValue":n[5]||=e=>k(y).tag=e,placeholder:`motion:cam-1`,class:`w-full`},null,8,[`modelValue`])]),E(`div`,Ze,[E(`label`,Qe,M(t.$t(`components.notification_interface.image_url`)),1),O(r,{modelValue:k(y).imageUrl,"onUpdate:modelValue":n[6]||=e=>k(y).imageUrl=e,placeholder:`https://…`,class:`w-full`},null,8,[`modelValue`])]),E(`div`,$e,[E(`label`,et,M(t.$t(`components.notification_interface.deep_link`)),1),O(r,{modelValue:k(y).deepLink,"onUpdate:modelValue":n[7]||=e=>k(y).deepLink=e,placeholder:`/cameras/cam-1`,class:`w-full`},null,8,[`modelValue`])]),E(`div`,tt,[E(`label`,nt,M(t.$t(`components.notification_interface.data`)),1),(b(!0),A(g,null,re(k(x),(e,n)=>(b(),A(`div`,{key:n,class:`flex gap-2 items-center`},[O(r,{modelValue:e.key,"onUpdate:modelValue":t=>e.key=t,placeholder:t.$t(`components.notification_interface.data_key`),class:`flex-1 min-w-0`},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]),O(r,{modelValue:e.value,"onUpdate:modelValue":t=>e.value=t,placeholder:t.$t(`components.notification_interface.data_value`),class:`flex-1 min-w-0`},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]),O(c,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md shrink-0`,onClick:e=>W(n)},{icon:h(()=>[O(s,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])]))),128)),O(c,{severity:`secondary`,outlined:``,fluid:``,class:`cui-button-medium`,label:t.$t(`components.notification_interface.add_data`),onClick:ie},{icon:h(()=>[O(l,{class:`w-4 h-4`})]),_:1},8,[`label`])])]),E(`div`,rt,[E(`h3`,it,M(t.$t(`components.notification_interface.targets`)),1),k(N)?(b(),A(`div`,at,[O(ee,{class:`w-[24px] h-[24px] m-0`,"stroke-width":`5`})])):k(L).length?(b(),A(`div`,st,[E(`span`,ct,M(t.$t(`components.notification_interface.targets_hint`)),1),O(te,{modelValue:k(P),"onUpdate:modelValue":n[8]||=e=>T(P)?P.value=e:null,options:k(L),"option-label":`label`,"option-value":`id`,placeholder:t.$t(`components.notification_interface.all_devices`),display:`chip`,filter:``,class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`])])):(b(),A(`div`,ot,M(t.$t(`components.notification_interface.no_devices`)),1))]),k(F)?.length?(b(),A(`div`,lt,[E(`h3`,ut,M(t.$t(`components.notification_interface.settings`)),1),O(d,{"schema-form":{schema:k(F),config:{}},loading:k(I)},null,8,[`schema-form`,`loading`])])):f(``,!0),O(c,{fluid:``,class:`mt-8 cui-button-medium`,severity:`success`,loading:k(C),disabled:!k(m)||k(C),label:t.$t(`components.notification_interface.send_test`),onClick:G},null,8,[`loading`,`disabled`,`label`])])}}}),ft=.15,pt=.38,mt={class:`mb-4 rounded-xl overflow-hidden`},ht=[`src`],gt={class:`text-sm text-muted mb-4`},_t={key:0,class:`ml-1`},vt={class:`flex gap-2 mb-4`},yt={key:0,class:`flex flex-col gap-2`},bt={class:`text-sm truncate flex-1 mr-3`},xt={class:`flex items-center gap-2 shrink-0`},St=V({__name:`PluginClipInterface`,props:{src:{},response:{},onTextSearch:{type:Function}},setup(t,{expose:n}){let r=t,i=te(),a=j(``),o=j(!1),s=j([]);function c(e){return Math.max(0,Math.min(1,(e-ft)/(pt-ft)))}async function l(){let e=a.value.trim();if(!(!e||o.value)){o.value=!0;try{let{score:t}=await r.onTextSearch(e);s.value.unshift({query:e,rawScore:t,displayScore:c(t)}),a.value=``}catch(e){i.error(`CLIP text search failed:`,e)}finally{o.value=!1}}}return n({}),(n,r)=>{let i=u,c=e,ee=J;return b(),A(`div`,null,[E(`div`,mt,[E(`img`,{src:t.src,alt:`CLIP test image`,class:`w-full object-contain`},null,8,ht)]),E(`div`,gt,[P(M(t.response.embeddings.length)+` embedding(s), `+M(t.response.embeddings[0]?.embedding?.length??0)+`-dim `,1),t.response.embeddingModel?(b(),A(`span`,_t,`(`+M(t.response.embeddingModel)+`)`,1)):f(``,!0)]),E(`div`,vt,[O(i,{modelValue:k(a),"onUpdate:modelValue":r[0]||=e=>T(a)?a.value=e:null,class:`flex-1`,placeholder:n.$t(`components.clip_interface.enter_query`),onKeyup:S(l,[`enter`])},null,8,[`modelValue`,`placeholder`]),O(c,{class:`cui-button-medium`,label:n.$t(`components.clip_interface.search`),loading:k(o),onClick:l},null,8,[`label`,`loading`])]),k(s).length?(b(),A(`div`,yt,[(b(!0),A(g,null,re(k(s),(e,t)=>(b(),A(`div`,{key:t,class:`flex items-center justify-between p-3 rounded-lg content-background`},[E(`span`,bt,M(e.query),1),E(`div`,xt,[E(`div`,{class:L([`text-sm font-medium`,e.displayScore>=.5?`text-green-500`:e.displayScore>=.25?`text-yellow-500`:`text-red-400`])},M((e.displayScore*100).toFixed(0))+`% `,3),O(ee,{value:e.displayScore>=.5?`Match`:e.displayScore>=.25?`Possible`:`No match`,severity:e.displayScore>=.5?`success`:e.displayScore>=.25?`warn`:`danger`,class:`text-xs`},null,8,[`value`,`severity`])])]))),128))])):f(``,!0)])}}}),Ct=V({__name:`PluginMotionInterface`,props:{response:{}},setup(e){let{response:t}=z(e),n=_(`videoPlayerRef`);return p(()=>{if(n.value){let e=new Blob([t.value.videoData],{type:`video/mp4`});n.value.src=URL.createObjectURL(e),n.value.load()}}),(e,t)=>(b(),A(`div`,null,[E(`video`,{ref_key:`videoPlayerRef`,ref:n,controls:``,class:`w-full`},`Your browser does not support the video tag.`,512)]))}}),wt={class:`mb-5 h-min`},Tt=[`src`],Et=V({__name:`PluginObjectInterface`,props:{src:{},response:{}},setup(e){let{response:t,src:n}=z(e),r=w(()=>t.value.detections);return(e,t)=>{let i=ve;return b(),A(`div`,wt,[O(i,{detections:k(r)},null,8,[`detections`]),E(`img`,{src:k(n),alt:`Preview`,class:`w-full`},null,8,Tt)])}}}),Dt={key:0,class:`w-full`},Ot={class:`flex flex-col justify-center items-center mb-5`},kt={for:`restoreInput`,class:`cursor-pointer text-center text-sm`},At=[`accept`],jt={key:0,class:`text-red-500 text-sm`},Mt={key:1,class:`w-full flex flex-col items-center justify-center`},Nt={key:0,class:`relative mb-4`},Pt=[`src`],Ft={key:1,class:`relative mb-4 w-full`},It={key:2,class:`relative mb-4 w-full`},Lt=[`src`,`type`],Rt={class:`flex items-center justify-center`},zt={class:`mx-2`},Bt={class:`text-muted`},Vt={class:`flex items-center justify-center mt-2 text-xs text-muted`},Ht={class:`mt-10`},Ut={class:`text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},Wt={key:0,class:`flex items-center justify-center text-sm text-muted mt-5`},Gt=V({__name:`CuiDetectionInterface`,props:{type:{},pluginName:{}},emits:[`update:file`,`update:metadata`],setup(t,{emit:n}){let r=t,a=n,o=te(),{t:s}=c(),l=ee(),u=xe(),{type:d,pluginName:ne}=z(r),{plugin:p,isLoading:re}=i(ne),g=_(`fileInputRef`),v=_(`videoPlayerRef`),x=_(`audioPlayerRef`),S=B([]),C=j(!1),T=j(!1),N=j(!1),F=j(!1),I=j(``),R=j(!1),V=j(),ie=j(!0),U=B(),W=j(!1),ae=w(()=>W.value||re.value||R.value),G=w(()=>{switch(d.value){case`objectDetection`:case`faceDetection`:case`licensePlateDetection`:case`classifierDetection`:case`clipDetection`:return`image`;case`motionDetection`:return`video`;case`audioDetection`:return`audio`;default:return`image`}}),K=w(()=>{switch(G.value){case`image`:return Ee;case`video`:return Te;case`audio`:return X;default:return[]}}),q=w(()=>{switch(G.value){case`image`:return Ce;case`video`:return we;case`audio`:return Y;default:return 0}}),oe=w(()=>K.value.join(`,`));async function se(){if(p.value){W.value=!0;try{let e;switch(d.value){case`motionDetection`:e=await p.value.motionDetectionSettings?.();break;case`objectDetection`:e=await p.value.objectDetectionSettings?.();break;case`audioDetection`:e=await p.value.audioDetectionSettings?.();break;case`faceDetection`:e=await p.value.faceDetectionSettings?.();break;case`licensePlateDetection`:e=await p.value.licensePlateDetectionSettings?.();break;case`classifierDetection`:e=await p.value.classifierDetectionSettings?.();break;case`clipDetection`:e=await p.value.clipSettings?.();break}U.value=e}catch(e){o.error(`Failed to load interface schema:`,e),U.value=void 0}finally{W.value=!1}}}function ce(e){let t=S.value.findIndex(t=>t.name===e);t>-1&&(S.value.splice(t,1),ue(),I.value=``,G.value===`video`&&v.value&&(v.value.src=``),V.value=void 0,a(`update:file`,null),a(`update:metadata`,null))}function le(e){if(C.value=!1,T.value=!1,F.value=!1,S.value=[],e.dataTransfer)if(e.dataTransfer.files.length>1)T.value=!0;else{let t=e.dataTransfer.files[0];(K.value.length===0||K.value.includes(t.type))&&t.size<=q.value?(S.value.push(t),D(()=>{de(t)})):t.size>q.value?F.value=!0:T.value=!0}}function J(e){T.value=!1,F.value=!1,S.value=[];let t=e.target;if(t&&t.files){if(t.files?.length>1)T.value=!0;else if(t.files.length===1){let e=t.files[0],n=K.value.length===0||K.value.includes(e.type);e.size<=q.value&&n?(S.value.push(e),D(()=>{de(e)})):e.size>q.value?F.value=!0:T.value=!0}}}function ue(){g.value&&(g.value.value=``)}function de(e){R.value=!0;let t=URL.createObjectURL(e);switch(G.value){case`image`:fe(e,t);break;case`video`:pe(e,t);break;case`audio`:me(e,t);break}}function fe(e,t){let n=new Image;n.src=t,n.onload=()=>{I.value=n.src;let t={width:n.width,height:n.height};V.value=t,a(`update:metadata`,t),a(`update:file`,e),R.value=!1}}function pe(e,t){v.value&&(v.value.src=t,v.value.load(),v.value.onloadeddata=()=>{a(`update:file`,e),R.value=!1})}function me(e,t){I.value=t;let n=new Audio;n.src=t,n.onloadedmetadata=()=>{let t={mimeType:e.type};V.value=t,a(`update:metadata`,t),a(`update:file`,e),R.value=!1}}function he(e){return e<1024?e+` bytes`:e<1048576?(e/1024).toFixed(1)+` KB`:(e/1048576).toFixed(1)+` MB`}function ge(e,t){let n=0,r=0,i=0;for(let a=0;a<e.length;a++)n+=e[a]*t[a],r+=e[a]*e[a],i+=t[a]*t[a];return r&&i?n/(Math.sqrt(r)*Math.sqrt(i)):0}async function _e(e){if(!S.value.length){N.value=!0;return}if(!p.value){o.error(`Plugin not connected`);return}R.value=!0;try{let t=await S.value[0].arrayBuffer();if(d.value===`audioDetection`){let n=await p.value.testAudioDetection?.(new Uint8Array(t),V.value,e);if(!n){o.warn(`No audio detection interface available`);return}if(n.detected&&n.detections?.length){let e=n.detections.map(e=>`${e.label} (${Math.round(e.confidence*100)}%)`).join(`, `),t=n.decibels==null?``:` | ${n.decibels.toFixed(1)} dBFS`;l.add({severity:`success`,detail:`${e}${t}`,life:3e3})}else l.add({severity:`info`,detail:s(`components.detection_interface.audio_not_detected`),life:3e3})}else if(d.value===`motionDetection`){let n=await p.value.testMotionDetection?.(new Uint8Array(t),e);if(!n){o.warn(`No motion detection interface available`);return}u.openComponentDialog(Ct,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{response:n}}})}else if(d.value===`faceDetection`){let n=await p.value.testFaceDetection?.(new Uint8Array(t),V.value,e);if(!n){o.warn(`No face detection interface available`);return}u.openComponentDialog(Et,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{src:I,response:n}}})}else if(d.value===`licensePlateDetection`){let n=await p.value.testLicensePlateDetection?.(new Uint8Array(t),V.value,e);if(!n){o.warn(`No license plate detection interface available`);return}u.openComponentDialog(Et,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{src:I,response:n}}})}else if(d.value===`classifierDetection`){let n=await p.value.testClassifierDetection?.(new Uint8Array(t),V.value,e);if(!n){o.warn(`No classifier detection interface available`);return}u.openComponentDialog(Et,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{src:I,response:n}}})}else if(d.value===`clipDetection`){let n=await p.value.testClipEmbedding?.(new Uint8Array(t),V.value,e);if(!n){o.warn(`No CLIP detection interface available`);return}if(!n.embeddings?.length){l.add({severity:`info`,detail:s(`components.detection_interface.no_detections`),life:3e3});return}let r=n.embeddings[0].embedding;u.openComponentDialog(St,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{src:I,response:n,onTextSearch:async e=>{let t=await p.value.getTextEmbedding(e);return t?.embedding?.length?{score:ge(r,t.embedding)}:{score:0}}}}})}else{let n=await p.value.testObjectDetection?.(new Uint8Array(t),V.value,e);if(!n){o.warn(`No object detection interface available`);return}u.openComponentDialog(Et,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{src:I,response:n}}})}}catch(e){l.add({severity:`error`,detail:e,life:3e3})}finally{R.value=!1}}return H(p,e=>{e&&se()},{immediate:!0}),H(S,e=>{e.length>0?(N.value=!1,ie.value=!1):(I.value=``,V.value=void 0,ie.value=!0)},{immediate:!0,deep:!0}),(t,n)=>{let r=Re,i=e,a=Oe;return b(),A(`div`,null,[E(`div`,{class:`file-upload-box`,onDrop:n[1]||=m(e=>le(e),[`prevent`]),onDragover:n[2]||=m(e=>C.value=!0,[`prevent`]),onDragenter:n[3]||=m(e=>C.value=!0,[`prevent`]),onDragleave:n[4]||=m(e=>C.value=!1,[`prevent`])},[k(S).length?(b(),A(`div`,Mt,[k(G)===`image`?(b(),A(`div`,Nt,[E(`img`,{src:k(I),alt:`Preview`,class:`w-full`},null,8,Pt)])):k(G)===`video`?(b(),A(`div`,Ft,[E(`video`,{ref_key:`videoPlayerRef`,ref:v,controls:``,class:`w-full`},`Your browser does not support the video tag.`,512)])):k(G)===`audio`?(b(),A(`div`,It,[E(`audio`,{ref_key:`audioPlayerRef`,ref:x,controls:``,class:`w-full`},[E(`source`,{src:k(I),type:k(S)[0].type},null,8,Lt),n[5]||=P(` Your browser does not support the audio element. `,-1)],512)])):f(``,!0),E(`div`,Rt,[O(i,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md shrink-0`,onClick:n[0]||=m(e=>ce(k(S)[0].name),[`stop`])},{icon:h(()=>[O(r,{width:`100%`,height:`100%`})]),_:1}),E(`b`,zt,M(k(S)[0].name),1),E(`span`,Bt,`(`+M(he(k(S)[0].size))+`)`,1)])])):(b(),A(`div`,Dt,[E(`div`,Ot,[E(`label`,kt,M(t.$t(`components.detection_interface.drop_or_select_${k(G)}_to_detect${k(G)===`image`?`_objects`:k(G)===`video`?`_motion`:``}`)),1),E(`input`,{id:`restoreInput`,ref_key:`fileInputRef`,ref:g,type:`file`,class:`hidden`,accept:k(oe),onChange:J},null,40,At),k(T)?(b(),A(`p`,jt,M(t.$t(`components.detection_interface.only_one_${k(G)}_allowed`)),1)):f(``,!0),k(N)?(b(),A(`p`,{key:1,class:L([`text-red-500 text-sm`,{"mt-2":k(T)}])},M(t.$t(`components.detection_interface.${k(G)}_required`)),3)):f(``,!0),k(F)?(b(),A(`p`,{key:2,class:L([`text-red-500 text-sm`,{"mt-2":k(T)||k(N)}])},M(t.$t(`components.detection_interface.file_size_error`)),3)):f(``,!0)])]))],32),E(`div`,Vt,[E(`span`,null,`(`+M(k(q)/1024/1024)+`MB, `+M(k(K).join(`, `))+`)`,1)]),E(`div`,Ht,[E(`h3`,Ut,M(t.$t(`components.detection_interface.interface_config`)),1),k(U)?.length?(b(),y(a,{key:1,"schema-form":{schema:k(U),config:{}},loading:k(ae),"save-button-label":t.$t(`components.detection_interface.detect`),"disable-button":k(ie),"show-button":``,onOnFormSubmit:_e},null,8,[`schema-form`,`loading`,`save-button-label`,`disable-button`])):(b(),A(`div`,Wt,M(t.$t(`components.detection_interface.no_interface_config`)),1))])])}}}),Kt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function qt(e,t){return b(),A(`svg`,Kt,[...t[0]||=[E(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M2 10v3m4-7v11m4-14v18m4-13v7m4-10v13m4-8v3`},null,-1)]])}var Jt=C({name:`lucide-audio-lines`,render:qt}),Yt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Xt(e,t){return b(),A(`svg`,Yt,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M2 7V4q0-.825.588-1.412T4 2h3v2H4v3zm5 15H4q-.825 0-1.412-.587T2 20v-3h2v3h3zm10 0v-2h3v-3h2v3q0 .825-.587 1.413T20 22zm3-15V4h-3V2h3q.825 0 1.413.588T22 4v3zm-7.913 1.913Q11.5 8.325 11.5 7.5t.588-1.412T13.5 5.5t1.413.588T15.5 7.5t-.587 1.413T13.5 9.5t-1.412-.587M12.8 18h-4l1-5.1l-1.8.7V17H6v-4.7l3.95-1.7q.875-.375 1.288-.487T12 10q.525 0 .975.275T13.7 11l1 1.6q.65 1.05 1.763 1.725T19 15v2q-1.65 0-3.088-.687T13.5 14.5z`},null,-1)]])}var Zt=C({name:`material-symbols-detection-and-zone`,render:Xt}),Qt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function $t(e,t){return b(),A(`svg`,Qt,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M8.113 13.888Q7.75 13.525 7.75 13t.363-.888T9 11.75t.888.363t.362.887t-.363.888T9 14.25t-.888-.363m6 0q-.362-.362-.362-.887t.363-.888t.887-.362t.888.363t.362.887t-.363.888t-.887.362t-.888-.363M12 20q3.35 0 5.675-2.325T20 12q0-.6-.075-1.162T19.65 9.75q-.525.125-1.05.188T17.5 10q-2.275 0-4.3-.975T9.75 6.3q-.8 1.95-2.287 3.388T4 11.85V12q0 3.35 2.325 5.675T12 20m0 2q-2.075 0-3.9-.787t-3.175-2.138T2.788 15.9T2 12t.788-3.9t2.137-3.175T8.1 2.788T12 2t3.9.788t3.175 2.137T21.213 8.1T22 12t-.788 3.9t-2.137 3.175t-3.175 2.138T12 22`},null,-1)]])}var en=C({name:`material-symbols-face`,render:$t}),tn={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function nn(e,t){return b(),A(`svg`,tn,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M8 17q-.425 0-.712-.288T7 16t.288-.712T8 15h5q-.35-.425-.562-.925T12.1 13H10q-.425 0-.712-.288T9 12t.288-.712T10 11h2.1q.125-.575.338-1.075T13 9H4q-.425 0-.712-.288T3 8t.288-.712T4 7h13q2.075 0 3.538 1.463T22 12t-1.463 3.538T17 17zm9-2q1.25 0 2.125-.875T20 12t-.875-2.125T17 9t-2.125.875T14 12t.875 2.125T17 15M3 13q-.425 0-.712-.288T2 12t.288-.712T3 11h4q.425 0 .713.288T8 12t-.288.713T7 13zm1 4q-.425 0-.712-.288T3 16t.288-.712T4 15h1q.425 0 .713.288T6 16t-.288.713T5 17z`},null,-1)]])}var rn=C({name:`material-symbols-motion-blur-rounded`,render:nn}),an={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function on(e,t){return b(),A(`svg`,an,[...t[0]||=[E(`g`,{fill:`none`,"fill-rule":`evenodd`},[E(`path`,{d:`m12.594 23.258l-.012.002l-.071.035l-.02.004l-.014-.004l-.071-.036q-.016-.004-.024.006l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.016-.018m.264-.113l-.014.002l-.184.093l-.01.01l-.003.011l.018.43l.005.012l.008.008l.201.092q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.003-.011l.018-.43l-.003-.012l-.01-.01z`}),E(`path`,{fill:`currentColor`,d:`M15.586 2.757a2 2 0 0 1 2.828 0l2.829 2.829a2 2 0 0 1 0 2.828l-2.829 2.829a2 2 0 0 1-2.828 0l-2.829-2.829a2 2 0 0 1 0-2.828zM9 3a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm12 12a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2zM9 13a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2z`})],-1)]])}var sn=C({name:`mingcute-classify-2-fill`,render:on}),cn={viewBox:`0 0 256 256`,width:`1.2em`,height:`1.2em`};function ln(e,t){return b(),A(`svg`,cn,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M200 156c0 6.5-7.33 12-16 12s-16-5.5-16-12s7.33-12 16-12s16 5.5 16 12m32-100v144a16 16 0 0 1-16 16H40a16 16 0 0 1-16-16V56a16 16 0 0 1 16-16h176a16 16 0 0 1 16 16m-88.63 116.88l-44-104a8 8 0 0 0-14.74 0l-44 104a8 8 0 0 0 14.74 6.24L66.84 152h50.32l11.47 27.12a8 8 0 0 0 14.74-6.24M216 124c0-15.44-14.36-28-32-28a34.86 34.86 0 0 0-20.78 6.68a8 8 0 0 0 9.56 12.83A18.84 18.84 0 0 1 184 112c8.56 0 15.8 5.36 16 11.76v8a35.24 35.24 0 0 0-16-3.76c-17.64 0-32 12.56-32 28s14.36 28 32 28a35.1 35.1 0 0 0 16.93-4.26A8 8 0 0 0 216 176ZM73.61 136h36.78L92 92.53Z`},null,-1)]])}var un=C({name:`ph-text-aa-fill`,render:ln}),dn={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function fn(e,t){return b(),A(`svg`,dn,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M12.75 3a.75.75 0 0 0-1.5 0v2a.75.75 0 0 0 1.5 0z`},null,-1),E(`path`,{fill:`currentColor`,"fill-rule":`evenodd`,d:`M22.75 12.057c0 1.837 0 3.293-.153 4.432c-.158 1.172-.49 2.121-1.238 2.87c-.749.748-1.698 1.08-2.87 1.238c-1.14.153-2.595.153-4.433.153H9.944c-1.837 0-3.293 0-4.432-.153c-1.172-.158-2.121-.49-2.87-1.238c-.748-.749-1.08-1.698-1.238-2.87c-.153-1.14-.153-2.595-.153-4.433v-.926q.001-.575.008-1.096c.014-.975.05-1.81.145-2.523c.158-1.172.49-2.121 1.238-2.87c.749-.748 1.698-1.08 2.87-1.238c.716-.096 1.558-.132 2.541-.145l.697-.005a1 1 0 0 1 1.001.999V5a2.25 2.25 0 0 0 4.5 0v-.75c0-.552.448-1 1-.998c1.29.006 2.359.033 3.239.151c1.172.158 2.121.49 2.87 1.238c.748.749 1.08 1.698 1.238 2.87c.153 1.14.153 2.595.153 4.433zM8 9.75a.75.75 0 0 0 0 1.5h8a.75.75 0 0 0 0-1.5zm0 3.5a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5z`,"clip-rule":`evenodd`},null,-1)]])}var pn=C({name:`solar-plate-bold`,render:fn}),mn={class:`font-semibold text-xl truncate`},hn={class:`lg:col-span-2 order-1 !h-[220px]`},gn={class:`flex w-full h-full items-center justify-center`},_n={class:`lg:col-span-1 lg:row-span-3 order-2`},vn={class:`lg:!hidden card-title`},yn={key:0,class:`w-full h-full flex items-center justify-center`},bn={key:1},xn={class:`hidden lg:block text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},Sn={key:0,class:`flex items-center justify-center w-full h-full text-muted text-sm`},Cn=[`onClick`],wn={key:0,class:`w-full h-full`},Tn={key:0,class:`flex flex-col items-center justify-center w-full h-full text-muted text-sm gap-1 text-center`},En={key:2,class:`flex items-center justify-center w-full h-full text-muted text-sm`},Dn={key:9,class:`w-full h-full`},On={key:0,class:`flex items-center justify-center w-full h-full text-muted text-sm`},kn={class:`lg:col-span-2 order-3`},An={class:`lg:!hidden card-title`},jn={class:`hidden lg:block text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},Mn={key:0,class:`flex w-full h-full items-center justify-center`},Nn=[`innerHTML`],Pn={class:`lg:col-span-2 order-4`},Fn={class:`lg:!hidden card-title`},In={class:`hidden lg:block text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},Ln={key:0,class:`flex w-full h-full items-center justify-center`},Rn=[`innerHTML`],zn=W(V({__name:`Plugin`,setup(r){let u=new ye,d=new ke,p=te(),m=be(),_=ie(),v=ee(),S=xe(),{lgBreakpoint:C}=ae(),{t:D}=c(),z=j(_.params.scope),B=j(_.params.pluginname),V=w(()=>z.value?`${z.value}/${B.value}`:B.value),{contract:U,error:W}=i(V);d.toggleQueryActivator(`getPluginContractQuery`,!1);let{data:J,isBusy:ue}=d.getPluginQuery(V),{data:de,isBusy:fe}=d.getPluginReadmeQuery(V),{data:ge,isBusy:ve}=d.getPluginChangelogQuery(V),{data:Ce}=d.getPluginContractQuery(V),Y=o(V),X=Y.config,we=Y.isLoading,{mutate:Te,isPending:Ee}=u.addCameraExtensionQuery(),{mutate:je,isPending:Re}=u.removeCameraExtensionQuery(),Z=j(`settings`),Q=j([]),$=j([]),Ve=w(()=>!!U.value&&l(U.value,n.NVR)),He=Le(`commonmark`,{highlight(e,t){if(t&&Fe.getLanguage(t))try{return`<pre><code class="hljs">`+Fe.highlight(e,{language:t,ignoreIllegals:!0}).value+`</code></pre>`}catch{}return`<pre><code class="hljs">`+He.utils.escapeHtml(e)+`</code></pre>`}});Fe.registerLanguage(`typescript`,Ie),Fe.registerLanguage(`yaml`,Pe),Fe.registerLanguage(`json`,Me),Fe.registerLanguage(`python`,Ne);function Ue(e,t){return e.pluginInfo?.name===t}async function We(e){try{await Y.setValue(e.key,void 0),v.add({severity:`success`,detail:D(`components.toast.config_updated`),life:3e3})}catch(e){v.add({severity:`error`,detail:e,life:3e3})}}async function Ge(e){try{let t=await Y.submitValue(e.key,e.payload);if(t?.toast){let e=ne(t.toast.type);v.add({severity:e,detail:t.toast.message,life:3e3})}t?.schema?.length&&S.openComponentDialog(Ae,{data:{title:D(`components.dialog.title.config`),hideConfirmButton:!0,contentProps:{schemaConfig:{schema:t.schema,config:e.payload},pluginName:V.value,buttonKey:e.key}}})}catch(e){v.add({severity:`error`,detail:e,life:3e3})}}async function Ke(e){if(X.value?.schema.length)try{let t=De(X.value.schema,e);await Y.setConfig(t),v.add({severity:`success`,detail:D(`components.toast.config_updated`),life:3e3})}catch(e){v.add({severity:`error`,detail:e,life:3e3})}}async function qe(e){if(J.value&&J.value.contract){let n=t(J.value.contract)?[`hub`]:J.value.contract.provides;if($.value.includes(e.name))for(let t of n)je({cameraname:e.name,pluginname:J.value.pluginName,type:t},{onSuccess:()=>{$.value=$.value.filter(t=>t!==e.name)}});else for(let t of n)Te({cameraname:e.name,pluginname:J.value.pluginName,type:t},{onSuccess:()=>{$.value=[...$.value,e.name]}})}}return H(J,e=>{if(!e||e.disabled){let e=Q.value.some(e=>e.name===`settings`),t=Q.value.some(e=>e.name===`cameras`);e?Z.value=`settings`:t&&(Z.value=`cameras`)}},{deep:!0}),H(_,()=>{B.value=_.params.pluginname},{deep:!0,immediate:!0}),H([J,Y.isConnected],async([e,t])=>{e&&!e.disabled&&t&&await Y.getConfig()},{immediate:!0}),H(X,()=>{X.value?d.toggleQueryActivator(`getPluginContractQuery`,!0):d.toggleQueryActivator(`getPluginContractQuery`,!1)},{deep:!0,immediate:!0}),H([Ce,X,U],()=>{let e=[],t=!1,r=Ve.value||!!X.value?.schema.length;e.push({name:`settings`,icon:he,isInterface:!1,tooltip:D(`views.plugin.settings_tab_tooltip`)}),U.value&&l(U.value,n.MotionDetection)&&(t=!0,e.push({name:`motion_detection`,icon:rn,isInterface:!0,tooltip:D(`views.plugin.motion_detection_tab_tooltip`)})),U.value&&l(U.value,n.ObjectDetection)&&(t=!0,e.push({name:`object_detection`,icon:Zt,isInterface:!0,tooltip:D(`views.plugin.object_detection_tab_tooltip`)})),U.value&&l(U.value,n.AudioDetection)&&(t=!0,e.push({name:`audio_detection`,icon:Jt,isInterface:!0,tooltip:D(`views.plugin.audio_detection_tab_tooltip`)})),U.value&&l(U.value,n.FaceDetection)&&(t=!0,e.push({name:`face_detection`,icon:en,isInterface:!0,tooltip:D(`views.plugin.face_detection_tab_tooltip`)})),U.value&&l(U.value,n.LicensePlateDetection)&&(t=!0,e.push({name:`license_plate_detection`,icon:pn,isInterface:!0,tooltip:D(`views.plugin.license_plate_detection_tab_tooltip`)})),U.value&&l(U.value,n.ClassifierDetection)&&(t=!0,e.push({name:`classifier_detection`,icon:sn,isInterface:!0,tooltip:D(`views.plugin.classifier_detection_tab_tooltip`)})),U.value&&l(U.value,n.ClipDetection)&&(t=!0,e.push({name:`clip_detection`,icon:un,isInterface:!0,tooltip:D(`views.plugin.clip_detection_tab_tooltip`)})),U.value&&l(U.value,n.Notifier)&&(t=!0,e.push({name:`notification`,icon:me,isInterface:!0,tooltip:D(`views.plugin.notification_tab_tooltip`)})),e.push({name:`cameras`,icon:pe,isInterface:!1,tooltip:D(`views.plugin.cameras_tab_tooltip`)}),Ce.value?.cameras.length&&($.value=Ce.value.cameras.filter(e=>e.plugins?.some(e=>e.name===V.value)).map(e=>e.name)),Q.value=[...e],J.value?.disabled||(r?Z.value=`settings`:t?Z.value=Q.value.filter(e=>e.isInterface)[0].name:Z.value=`settings`)},{deep:!0,immediate:!0}),H(W,e=>{e&&J.value&&!J.value.disabled&&p.error(`Error connecting to plugin:`,e)}),(t,n)=>{let r=ze,i=e,o=Se,c=a,l=s,u=Be,ee=G,te=ce,d=I(`RouterLink`),ne=Oe,p=Gt,_=dt,v=se,S=_e,w=q,D=le,j=K,z=oe;return b(),A(`div`,{key:k(V)},[O(o,{position:`left`},{default:h(()=>[O(i,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:n[0]||=e=>t.$router.push(`/plugins`)},{icon:h(()=>[O(r,{class:`w-6 h-6`})]),_:1})]),_:1}),O(o,{position:`center`},{default:h(()=>[E(`span`,mn,M(t.$t(`views.plugin.title`)),1)]),_:1}),E(`div`,{class:L([`grid grid-auto grid-cols-1 lg:grid-cols-3 gap-6 lg:h-full`,{"!gap-2":k(C)}])},[E(`div`,hn,[k(J)?(b(),y(u,{key:1,plugin:k(J),class:`h-[220px]`},null,8,[`plugin`])):(b(),y(l,{key:0,class:`cui-card items-center justify-center !h-[220px]`},{content:h(()=>[E(`div`,gn,[O(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])]),_:1}))]),E(`div`,_n,[E(`span`,vn,M(t.$t(`views.plugin.settings`)),1),O(l,{class:L([`cui-card !h-auto lg:!h-full`,{"items-center justify-center":k(ue)||k(we)}])},{content:h(()=>[k(ue)||k(we)?(b(),A(`div`,yn,[O(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(b(),A(`div`,bn,[E(`h3`,xn,M(t.$t(`views.plugin.settings`)),1),k(J)?.disabled?(b(),A(`div`,Sn,[E(`span`,null,M(t.$t(`views.plugin.disabled_info`)),1)])):(b(),y(j,{key:1,value:k(Z),"onUpdate:value":n[1]||=e=>T(Z)?Z.value=e:null,scrollable:``},{default:h(()=>[O(te,{class:`justify-between`,pt:{activeBar:{class:`!w-auto`},content:{class:`border-[1px] border-color cui-rounded-corner overflow-hidden`}}},{default:h(()=>[(b(!0),A(g,null,re(k(Q),(e,t)=>(b(),y(ee,{key:t,disabled:e.isInterface&&k(J)?.disabled,value:e.name,"as-child":``},{default:h(t=>[x((b(),A(`div`,N({ref_for:!0},t.a11yAttrs,{class:[`flex flex-col items-center justify-center flex-1 content-background !py-3 h-[55px]`,[{"hover:!text-color active:!text-color focus:!text-color":!t.active},t.class]],onClick:t.onClick}),[(b(),y(F(e.icon),{class:`w-5 h-5`}))],16,Cn)),[[z,{value:e.tooltip}]])]),_:2},1032,[`disabled`,`value`]))),128))]),_:1}),O(D,{class:`px-0 pb-0`},{default:h(()=>[(b(!0),A(g,null,re(k(Q),(e,n)=>(b(),y(w,{key:n,value:e.name,"as-child":``},{default:h(n=>[n.active?(b(),A(`div`,N({key:0,class:n.class},{ref_for:!0},n.a11yAttrs),[e.name===`settings`?(b(),A(`div`,wn,[k(Ve)?(b(),A(`div`,Tn,[E(`span`,null,M(t.$t(`views.plugin.nvr_settings_hint`)),1),O(d,{to:`/settings/recordings`,class:`text-primary-500 hover:underline`},{default:h(()=>[P(M(t.$t(`views.plugin.nvr_settings_link`)),1)]),_:1})])):k(X)?.schema?.length?(b(),y(ne,{key:1,"schema-form":{schema:k(X).schema,config:k(X).config},loading:k(Y).isLoading.value,"save-button-color":`success`,onOnAction:We,onOnSubmit:Ge,onOnFormSubmit:Ke},null,8,[`schema-form`,`loading`])):(b(),A(`div`,En,[E(`span`,null,M(t.$t(`views.plugin.no_settings`)),1)]))])):e.name===`motion_detection`?(b(),y(p,{key:1,"plugin-name":k(V),type:`motionDetection`},null,8,[`plugin-name`])):e.name===`object_detection`?(b(),y(p,{key:2,"plugin-name":k(V),type:`objectDetection`},null,8,[`plugin-name`])):e.name===`audio_detection`?(b(),y(p,{key:3,"plugin-name":k(V),type:`audioDetection`},null,8,[`plugin-name`])):e.name===`face_detection`?(b(),y(p,{key:4,"plugin-name":k(V),type:`faceDetection`},null,8,[`plugin-name`])):e.name===`license_plate_detection`?(b(),y(p,{key:5,"plugin-name":k(V),type:`licensePlateDetection`},null,8,[`plugin-name`])):e.name===`classifier_detection`?(b(),y(p,{key:6,"plugin-name":k(V),type:`classifierDetection`},null,8,[`plugin-name`])):e.name===`clip_detection`?(b(),y(p,{key:7,"plugin-name":k(V),type:`clipDetection`},null,8,[`plugin-name`])):e.name===`notification`?(b(),y(_,{key:8,"plugin-name":k(V)},null,8,[`plugin-name`])):e.name===`cameras`?(b(),A(`div`,Dn,[k(Ce)?.cameras?.length?(b(!0),A(g,{key:1},re(k(Ce).cameras,e=>(b(),A(`div`,{key:e.name,class:`cui-list-item`},[O(S,{disabled:k(Ee)||k(Re)||k(Y).isLoading.value,active:k($).includes(e.name),class:`h-14`,onClick:t=>k(m).open({cameraName:e.name})},R({default:h(()=>[E(`span`,null,M(e.name),1)]),_:2},[!k(J)||!Ue(e,k(J).pluginName)?{name:`append`,fn:h(()=>[O(v,{"model-value":k($).includes(e.name),disabled:k(Ee)||k(Re)||k(Y).isLoading.value,"onUpdate:modelValue":()=>qe(e)},null,8,[`model-value`,`disabled`,`onUpdate:modelValue`])]),key:`0`}:void 0]),1032,[`disabled`,`active`,`onClick`])]))),128)):(b(),A(`div`,On,[E(`span`,null,M(t.$t(`views.plugin.no_cameras`)),1)]))])):f(``,!0)],16)):f(``,!0)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`value`]))]))]),_:1},8,[`class`])]),E(`div`,kn,[E(`span`,An,M(t.$t(`views.plugin.readme`)),1),O(l,{class:`cui-card !h-auto lg:!h-full`},{content:h(()=>[E(`h3`,jn,M(t.$t(`views.plugin.readme`)),1),k(fe)?(b(),A(`div`,Mn,[O(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(b(),A(`div`,{key:1,class:`markdown-body`,innerHTML:k(He).render(k(de)||t.$t(`views.plugin.no_readme`))},null,8,Nn))]),_:1})]),E(`div`,Pn,[E(`span`,Fn,M(t.$t(`views.plugin.changelog`)),1),O(l,{class:`cui-card !h-auto lg:!h-full`},{content:h(()=>[E(`h3`,In,M(t.$t(`views.plugin.changelog`)),1),k(ve)?(b(),A(`div`,Ln,[O(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(b(),A(`div`,{key:1,class:`markdown-body`,innerHTML:k(He).render(k(ge)||t.$t(`views.plugin.no_changelog`))},null,8,Rn))]),_:1})])],2)])}}}),[[`__scopeId`,`data-v-869e4fd8`]]);export{zn as default};
1
+ import{Hn as e,Mn as t,Nn as n,On as r,Ut as i,Vn as a,Wt as o,ct as s,fi as c,jn as l,tt as u}from"./vendor-cameraui-BABuGvhg.js";import{C as ee,O as te,f as d,l as ne}from"./api-C-NlYhuP.js";import{$t as f,Cn as p,Dn as re,Gt as m,Hn as h,Kt as g,Ln as _,Qn as v,Qt as y,Tn as b,Un as x,Wt as S,Xn as C,Xt as w,Yn as T,Zt as E,_n as D,an as O,cr as k,en as A,er as j,fr as M,gn as N,in as P,jn as F,kn as I,lr as L,nn as R,or as z,rr as B,sn as V,zn as H}from"./vendor-zxCOTbSj.js";import{c as ie,f as U}from"./vendor-core-C6lCucBy.js";import{t as W}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as ae}from"./useSharedComposables-Ca_A3w0h.js";import{B as G,G as K,H as q,J as oe,K as se,V as ce,W as le,a as J,i as ue,j as de,u as fe}from"./vendor-primevue-CsC6U_Xu.js";import{t as pe}from"./cctv-BLn_0bJ6.js";import{t as me}from"./bell-DAJo7K-Y.js";import{t as he}from"./cog-CWyAfGhY.js";import{t as ge}from"./hasPermission-DKTmzAJw.js";import{n as _e}from"./CuiMenu-150v0xB6.js";import{t as ve}from"./CuiBBoxPlayground-DcAhwW8k.js";import{t as ye}from"./cameras-Co3xGKAG.js";import{n as be}from"./useCuiCameraDrawer-BuIrXxOt.js";import{t as xe}from"./useCuiDialog-C4xS4vrs.js";import{t as Se}from"./CuiTopbarSlot-DE7fTsSm.js";import{F as Ce,G as Y,H as X,K as we,U as Te,W as Ee,a as De}from"./types-BK05hngw.js";import{t as Oe}from"./CuiSchema-DvWek91_.js";import{t as ke}from"./plugins-Bj4_KCp7.js";import{t as Ae}from"./PluginSchema-CCfTSjTD.js";import{t as je}from"./plus-Dxy9-axc.js";import{a as Me,i as Ne,n as Pe,o as Fe,r as Ie,t as Le}from"./vendor-markdown-BrmS8cUD.js";import{t as Re}from"./close-circle-J1rQOUEG.js";import{t as ze}from"./back-filled-2dVfzfd3.js";import{t as Be}from"./CuiPluginCard-CHLd5hzA.js";var Z={class:`text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},Q={class:`flex flex-col gap-4`},$={class:`flex flex-col field-gap`},Ve={class:`cui-label`},He={key:0,class:`text-red-500 text-sm`},Ue={class:`flex flex-col field-gap`},We={class:`cui-label`},Ge={class:`flex flex-col field-gap`},Ke={class:`cui-label`},qe={class:`flex flex-col field-gap`},Je={class:`cui-label`},Ye={class:`flex flex-col field-gap`},Xe={class:`cui-label`},Ze={class:`flex flex-col field-gap`},Qe={class:`cui-label`},$e={class:`flex flex-col field-gap`},et={class:`cui-label`},tt={class:`flex flex-col field-gap`},nt={class:`cui-label`},rt={class:`mt-8`},it={class:`text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},at={key:0,class:`flex items-center justify-center w-full py-4`},ot={key:1,class:`flex items-center justify-center text-sm text-muted py-4 text-center`},st={key:2,class:`flex flex-col field-gap`},ct={class:`text-xs text-muted`},lt={key:0,class:`mt-8`},ut={class:`text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},dt=V({__name:`CuiNotificationInterface`,props:{pluginName:{}},setup(t){let n=t,o=te(),{t:s}=c(),l=ee(),{user:ne}=U(d()),{pluginName:p}=z(n),{plugin:m}=i(p),_=w(()=>Object.values(r).map(e=>({label:s(`components.notification_interface.severity_${e}`),value:e}))),y=v({title:`Test notification`,subtitle:``,body:`This is a test notification from camera.ui`,severity:r.Info,tag:``,imageUrl:``,deepLink:``}),x=j([]),S=j(!1),C=j(!1),D=B([]),N=j(!1),P=j([]),F=B(),I=j(!1),L=w(()=>D.value.map(e=>({id:e.id,label:e.name})));async function R(){if(!(!m.value||!ne.value?._id)){N.value=!0;try{let e=ge(void 0,`admin`)?[]:[ne.value._id];D.value=await m.value.getDevices?.(e)??[]}catch(e){o.error(`Failed to load notifier devices:`,e),D.value=[]}finally{N.value=!1}}}async function V(){if(m.value){I.value=!0;try{F.value=await m.value.notificationSettings?.()}catch(e){o.error(`Failed to load notification settings schema:`,e),F.value=void 0}finally{I.value=!1}}}function ie(){x.value.push({key:``,value:``})}function W(e){x.value.splice(e,1)}function ae(){let e={};for(let t of x.value)t.key.trim()&&(e[t.key.trim()]=t.value);return{title:y.title.trim(),subtitle:y.subtitle.trim()||void 0,body:y.body.trim()||void 0,severity:y.severity,tag:y.tag.trim()||void 0,imageUrl:y.imageUrl.trim()||void 0,deepLink:y.deepLink.trim()||void 0,data:Object.keys(e).length?e:void 0}}async function G(){let e=m.value;if(!(!e||C.value)){if(!y.title.trim()){S.value=!0;return}C.value=!0;try{let t=ae(),n=P.value.length?P.value:D.value.map(e=>e.id);await e.sendNotification?.(n,t),l.add({severity:`success`,detail:s(`components.notification_interface.sent`),life:3e3})}catch(e){l.add({severity:`error`,detail:e,life:3e3})}finally{C.value=!1}}}return H(m,e=>{e&&(R(),V())},{immediate:!0}),(t,n)=>{let r=u,i=ue,o=de,s=Re,c=e,l=je,ee=a,te=fe,d=Oe;return b(),A(`div`,null,[E(`h3`,Z,M(t.$t(`components.notification_interface.template`)),1),E(`div`,Q,[E(`div`,$,[E(`label`,Ve,M(t.$t(`components.notification_interface.title`)),1),O(r,{modelValue:k(y).title,"onUpdate:modelValue":[n[0]||=e=>k(y).title=e,n[1]||=e=>S.value=!1],placeholder:t.$t(`components.notification_interface.title`),invalid:k(S),class:`w-full`},null,8,[`modelValue`,`placeholder`,`invalid`]),k(S)?(b(),A(`p`,He,M(t.$t(`components.notification_interface.title_required`)),1)):f(``,!0)]),E(`div`,Ue,[E(`label`,We,M(t.$t(`components.notification_interface.subtitle`)),1),O(r,{modelValue:k(y).subtitle,"onUpdate:modelValue":n[2]||=e=>k(y).subtitle=e,placeholder:t.$t(`components.notification_interface.subtitle`),class:`w-full`},null,8,[`modelValue`,`placeholder`])]),E(`div`,Ge,[E(`label`,Ke,M(t.$t(`components.notification_interface.body`)),1),O(i,{modelValue:k(y).body,"onUpdate:modelValue":n[3]||=e=>k(y).body=e,placeholder:t.$t(`components.notification_interface.body`),rows:`3`,class:`w-full`},null,8,[`modelValue`,`placeholder`])]),E(`div`,qe,[E(`label`,Je,M(t.$t(`components.notification_interface.severity`)),1),O(o,{modelValue:k(y).severity,"onUpdate:modelValue":n[4]||=e=>k(y).severity=e,options:k(_),"option-label":`label`,"option-value":`value`,class:`w-full`},null,8,[`modelValue`,`options`])]),E(`div`,Ye,[E(`label`,Xe,M(t.$t(`components.notification_interface.tag`)),1),O(r,{modelValue:k(y).tag,"onUpdate:modelValue":n[5]||=e=>k(y).tag=e,placeholder:`motion:cam-1`,class:`w-full`},null,8,[`modelValue`])]),E(`div`,Ze,[E(`label`,Qe,M(t.$t(`components.notification_interface.image_url`)),1),O(r,{modelValue:k(y).imageUrl,"onUpdate:modelValue":n[6]||=e=>k(y).imageUrl=e,placeholder:`https://…`,class:`w-full`},null,8,[`modelValue`])]),E(`div`,$e,[E(`label`,et,M(t.$t(`components.notification_interface.deep_link`)),1),O(r,{modelValue:k(y).deepLink,"onUpdate:modelValue":n[7]||=e=>k(y).deepLink=e,placeholder:`/cameras/cam-1`,class:`w-full`},null,8,[`modelValue`])]),E(`div`,tt,[E(`label`,nt,M(t.$t(`components.notification_interface.data`)),1),(b(!0),A(g,null,re(k(x),(e,n)=>(b(),A(`div`,{key:n,class:`flex gap-2 items-center`},[O(r,{modelValue:e.key,"onUpdate:modelValue":t=>e.key=t,placeholder:t.$t(`components.notification_interface.data_key`),class:`flex-1 min-w-0`},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]),O(r,{modelValue:e.value,"onUpdate:modelValue":t=>e.value=t,placeholder:t.$t(`components.notification_interface.data_value`),class:`flex-1 min-w-0`},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]),O(c,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md shrink-0`,onClick:e=>W(n)},{icon:h(()=>[O(s,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])]))),128)),O(c,{severity:`secondary`,outlined:``,fluid:``,class:`cui-button-medium`,label:t.$t(`components.notification_interface.add_data`),onClick:ie},{icon:h(()=>[O(l,{class:`w-4 h-4`})]),_:1},8,[`label`])])]),E(`div`,rt,[E(`h3`,it,M(t.$t(`components.notification_interface.targets`)),1),k(N)?(b(),A(`div`,at,[O(ee,{class:`w-[24px] h-[24px] m-0`,"stroke-width":`5`})])):k(L).length?(b(),A(`div`,st,[E(`span`,ct,M(t.$t(`components.notification_interface.targets_hint`)),1),O(te,{modelValue:k(P),"onUpdate:modelValue":n[8]||=e=>T(P)?P.value=e:null,options:k(L),"option-label":`label`,"option-value":`id`,placeholder:t.$t(`components.notification_interface.all_devices`),display:`chip`,filter:``,class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`])])):(b(),A(`div`,ot,M(t.$t(`components.notification_interface.no_devices`)),1))]),k(F)?.length?(b(),A(`div`,lt,[E(`h3`,ut,M(t.$t(`components.notification_interface.settings`)),1),O(d,{"schema-form":{schema:k(F),config:{}},loading:k(I)},null,8,[`schema-form`,`loading`])])):f(``,!0),O(c,{fluid:``,class:`mt-8 cui-button-medium`,severity:`success`,loading:k(C),disabled:!k(m)||k(C),label:t.$t(`components.notification_interface.send_test`),onClick:G},null,8,[`loading`,`disabled`,`label`])])}}}),ft=.15,pt=.38,mt={class:`mb-4 rounded-xl overflow-hidden`},ht=[`src`],gt={class:`text-sm text-muted mb-4`},_t={key:0,class:`ml-1`},vt={class:`flex gap-2 mb-4`},yt={key:0,class:`flex flex-col gap-2`},bt={class:`text-sm truncate flex-1 mr-3`},xt={class:`flex items-center gap-2 shrink-0`},St=V({__name:`PluginClipInterface`,props:{src:{},response:{},onTextSearch:{type:Function}},setup(t,{expose:n}){let r=t,i=te(),a=j(``),o=j(!1),s=j([]);function c(e){return Math.max(0,Math.min(1,(e-ft)/(pt-ft)))}async function l(){let e=a.value.trim();if(!(!e||o.value)){o.value=!0;try{let{score:t}=await r.onTextSearch(e);s.value.unshift({query:e,rawScore:t,displayScore:c(t)}),a.value=``}catch(e){i.error(`CLIP text search failed:`,e)}finally{o.value=!1}}}return n({}),(n,r)=>{let i=u,c=e,ee=J;return b(),A(`div`,null,[E(`div`,mt,[E(`img`,{src:t.src,alt:`CLIP test image`,class:`w-full object-contain`},null,8,ht)]),E(`div`,gt,[P(M(t.response.embeddings.length)+` embedding(s), `+M(t.response.embeddings[0]?.embedding?.length??0)+`-dim `,1),t.response.embeddingModel?(b(),A(`span`,_t,`(`+M(t.response.embeddingModel)+`)`,1)):f(``,!0)]),E(`div`,vt,[O(i,{modelValue:k(a),"onUpdate:modelValue":r[0]||=e=>T(a)?a.value=e:null,class:`flex-1`,placeholder:n.$t(`components.clip_interface.enter_query`),onKeyup:S(l,[`enter`])},null,8,[`modelValue`,`placeholder`]),O(c,{class:`cui-button-medium`,label:n.$t(`components.clip_interface.search`),loading:k(o),onClick:l},null,8,[`label`,`loading`])]),k(s).length?(b(),A(`div`,yt,[(b(!0),A(g,null,re(k(s),(e,t)=>(b(),A(`div`,{key:t,class:`flex items-center justify-between p-3 rounded-lg content-background`},[E(`span`,bt,M(e.query),1),E(`div`,xt,[E(`div`,{class:L([`text-sm font-medium`,e.displayScore>=.5?`text-green-500`:e.displayScore>=.25?`text-yellow-500`:`text-red-400`])},M((e.displayScore*100).toFixed(0))+`% `,3),O(ee,{value:e.displayScore>=.5?`Match`:e.displayScore>=.25?`Possible`:`No match`,severity:e.displayScore>=.5?`success`:e.displayScore>=.25?`warn`:`danger`,class:`text-xs`},null,8,[`value`,`severity`])])]))),128))])):f(``,!0)])}}}),Ct=V({__name:`PluginMotionInterface`,props:{response:{}},setup(e){let{response:t}=z(e),n=_(`videoPlayerRef`);return p(()=>{if(n.value){let e=new Blob([t.value.videoData],{type:`video/mp4`});n.value.src=URL.createObjectURL(e),n.value.load()}}),(e,t)=>(b(),A(`div`,null,[E(`video`,{ref_key:`videoPlayerRef`,ref:n,controls:``,class:`w-full`},`Your browser does not support the video tag.`,512)]))}}),wt={class:`mb-5 h-min`},Tt=[`src`],Et=V({__name:`PluginObjectInterface`,props:{src:{},response:{}},setup(e){let{response:t,src:n}=z(e),r=w(()=>t.value.detections);return(e,t)=>{let i=ve;return b(),A(`div`,wt,[O(i,{detections:k(r)},null,8,[`detections`]),E(`img`,{src:k(n),alt:`Preview`,class:`w-full`},null,8,Tt)])}}}),Dt={key:0,class:`w-full`},Ot={class:`flex flex-col justify-center items-center mb-5`},kt={for:`restoreInput`,class:`cursor-pointer text-center text-sm`},At=[`accept`],jt={key:0,class:`text-red-500 text-sm`},Mt={key:1,class:`w-full flex flex-col items-center justify-center`},Nt={key:0,class:`relative mb-4`},Pt=[`src`],Ft={key:1,class:`relative mb-4 w-full`},It={key:2,class:`relative mb-4 w-full`},Lt=[`src`,`type`],Rt={class:`flex items-center justify-center`},zt={class:`mx-2`},Bt={class:`text-muted`},Vt={class:`flex items-center justify-center mt-2 text-xs text-muted`},Ht={class:`mt-10`},Ut={class:`text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},Wt={key:0,class:`flex items-center justify-center text-sm text-muted mt-5`},Gt=V({__name:`CuiDetectionInterface`,props:{type:{},pluginName:{}},emits:[`update:file`,`update:metadata`],setup(t,{emit:n}){let r=t,a=n,o=te(),{t:s}=c(),l=ee(),u=xe(),{type:d,pluginName:ne}=z(r),{plugin:p,isLoading:re}=i(ne),g=_(`fileInputRef`),v=_(`videoPlayerRef`),x=_(`audioPlayerRef`),S=B([]),C=j(!1),T=j(!1),N=j(!1),F=j(!1),I=j(``),R=j(!1),V=j(),ie=j(!0),U=B(),W=j(!1),ae=w(()=>W.value||re.value||R.value),G=w(()=>{switch(d.value){case`objectDetection`:case`faceDetection`:case`licensePlateDetection`:case`classifierDetection`:case`clipDetection`:return`image`;case`motionDetection`:return`video`;case`audioDetection`:return`audio`;default:return`image`}}),K=w(()=>{switch(G.value){case`image`:return Ee;case`video`:return Te;case`audio`:return X;default:return[]}}),q=w(()=>{switch(G.value){case`image`:return Ce;case`video`:return we;case`audio`:return Y;default:return 0}}),oe=w(()=>K.value.join(`,`));async function se(){if(p.value){W.value=!0;try{let e;switch(d.value){case`motionDetection`:e=await p.value.motionDetectionSettings?.();break;case`objectDetection`:e=await p.value.objectDetectionSettings?.();break;case`audioDetection`:e=await p.value.audioDetectionSettings?.();break;case`faceDetection`:e=await p.value.faceDetectionSettings?.();break;case`licensePlateDetection`:e=await p.value.licensePlateDetectionSettings?.();break;case`classifierDetection`:e=await p.value.classifierDetectionSettings?.();break;case`clipDetection`:e=await p.value.clipSettings?.();break}U.value=e}catch(e){o.error(`Failed to load interface schema:`,e),U.value=void 0}finally{W.value=!1}}}function ce(e){let t=S.value.findIndex(t=>t.name===e);t>-1&&(S.value.splice(t,1),ue(),I.value=``,G.value===`video`&&v.value&&(v.value.src=``),V.value=void 0,a(`update:file`,null),a(`update:metadata`,null))}function le(e){if(C.value=!1,T.value=!1,F.value=!1,S.value=[],e.dataTransfer)if(e.dataTransfer.files.length>1)T.value=!0;else{let t=e.dataTransfer.files[0];(K.value.length===0||K.value.includes(t.type))&&t.size<=q.value?(S.value.push(t),D(()=>{de(t)})):t.size>q.value?F.value=!0:T.value=!0}}function J(e){T.value=!1,F.value=!1,S.value=[];let t=e.target;if(t&&t.files){if(t.files?.length>1)T.value=!0;else if(t.files.length===1){let e=t.files[0],n=K.value.length===0||K.value.includes(e.type);e.size<=q.value&&n?(S.value.push(e),D(()=>{de(e)})):e.size>q.value?F.value=!0:T.value=!0}}}function ue(){g.value&&(g.value.value=``)}function de(e){R.value=!0;let t=URL.createObjectURL(e);switch(G.value){case`image`:fe(e,t);break;case`video`:pe(e,t);break;case`audio`:me(e,t);break}}function fe(e,t){let n=new Image;n.src=t,n.onload=()=>{I.value=n.src;let t={width:n.width,height:n.height};V.value=t,a(`update:metadata`,t),a(`update:file`,e),R.value=!1}}function pe(e,t){v.value&&(v.value.src=t,v.value.load(),v.value.onloadeddata=()=>{a(`update:file`,e),R.value=!1})}function me(e,t){I.value=t;let n=new Audio;n.src=t,n.onloadedmetadata=()=>{let t={mimeType:e.type};V.value=t,a(`update:metadata`,t),a(`update:file`,e),R.value=!1}}function he(e){return e<1024?e+` bytes`:e<1048576?(e/1024).toFixed(1)+` KB`:(e/1048576).toFixed(1)+` MB`}function ge(e,t){let n=0,r=0,i=0;for(let a=0;a<e.length;a++)n+=e[a]*t[a],r+=e[a]*e[a],i+=t[a]*t[a];return r&&i?n/(Math.sqrt(r)*Math.sqrt(i)):0}async function _e(e){if(!S.value.length){N.value=!0;return}if(!p.value){o.error(`Plugin not connected`);return}R.value=!0;try{let t=await S.value[0].arrayBuffer();if(d.value===`audioDetection`){let n=await p.value.testAudioDetection?.(new Uint8Array(t),V.value,e);if(!n){o.warn(`No audio detection interface available`);return}if(n.detected&&n.detections?.length){let e=n.detections.map(e=>`${e.label} (${Math.round(e.confidence*100)}%)`).join(`, `),t=n.decibels==null?``:` | ${n.decibels.toFixed(1)} dBFS`;l.add({severity:`success`,detail:`${e}${t}`,life:3e3})}else l.add({severity:`info`,detail:s(`components.detection_interface.audio_not_detected`),life:3e3})}else if(d.value===`motionDetection`){let n=await p.value.testMotionDetection?.(new Uint8Array(t),e);if(!n){o.warn(`No motion detection interface available`);return}u.openComponentDialog(Ct,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{response:n}}})}else if(d.value===`faceDetection`){let n=await p.value.testFaceDetection?.(new Uint8Array(t),V.value,e);if(!n){o.warn(`No face detection interface available`);return}u.openComponentDialog(Et,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{src:I,response:n}}})}else if(d.value===`licensePlateDetection`){let n=await p.value.testLicensePlateDetection?.(new Uint8Array(t),V.value,e);if(!n){o.warn(`No license plate detection interface available`);return}u.openComponentDialog(Et,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{src:I,response:n}}})}else if(d.value===`classifierDetection`){let n=await p.value.testClassifierDetection?.(new Uint8Array(t),V.value,e);if(!n){o.warn(`No classifier detection interface available`);return}u.openComponentDialog(Et,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{src:I,response:n}}})}else if(d.value===`clipDetection`){let n=await p.value.testClipEmbedding?.(new Uint8Array(t),V.value,e);if(!n){o.warn(`No CLIP detection interface available`);return}if(!n.embeddings?.length){l.add({severity:`info`,detail:s(`components.detection_interface.no_detections`),life:3e3});return}let r=n.embeddings[0].embedding;u.openComponentDialog(St,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{src:I,response:n,onTextSearch:async e=>{let t=await p.value.getTextEmbedding(e);return t?.embedding?.length?{score:ge(r,t.embedding)}:{score:0}}}}})}else{let n=await p.value.testObjectDetection?.(new Uint8Array(t),V.value,e);if(!n){o.warn(`No object detection interface available`);return}u.openComponentDialog(Et,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{src:I,response:n}}})}}catch(e){l.add({severity:`error`,detail:e,life:3e3})}finally{R.value=!1}}return H(p,e=>{e&&se()},{immediate:!0}),H(S,e=>{e.length>0?(N.value=!1,ie.value=!1):(I.value=``,V.value=void 0,ie.value=!0)},{immediate:!0,deep:!0}),(t,n)=>{let r=Re,i=e,a=Oe;return b(),A(`div`,null,[E(`div`,{class:`file-upload-box`,onDrop:n[1]||=m(e=>le(e),[`prevent`]),onDragover:n[2]||=m(e=>C.value=!0,[`prevent`]),onDragenter:n[3]||=m(e=>C.value=!0,[`prevent`]),onDragleave:n[4]||=m(e=>C.value=!1,[`prevent`])},[k(S).length?(b(),A(`div`,Mt,[k(G)===`image`?(b(),A(`div`,Nt,[E(`img`,{src:k(I),alt:`Preview`,class:`w-full`},null,8,Pt)])):k(G)===`video`?(b(),A(`div`,Ft,[E(`video`,{ref_key:`videoPlayerRef`,ref:v,controls:``,class:`w-full`},`Your browser does not support the video tag.`,512)])):k(G)===`audio`?(b(),A(`div`,It,[E(`audio`,{ref_key:`audioPlayerRef`,ref:x,controls:``,class:`w-full`},[E(`source`,{src:k(I),type:k(S)[0].type},null,8,Lt),n[5]||=P(` Your browser does not support the audio element. `,-1)],512)])):f(``,!0),E(`div`,Rt,[O(i,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md shrink-0`,onClick:n[0]||=m(e=>ce(k(S)[0].name),[`stop`])},{icon:h(()=>[O(r,{width:`100%`,height:`100%`})]),_:1}),E(`b`,zt,M(k(S)[0].name),1),E(`span`,Bt,`(`+M(he(k(S)[0].size))+`)`,1)])])):(b(),A(`div`,Dt,[E(`div`,Ot,[E(`label`,kt,M(t.$t(`components.detection_interface.drop_or_select_${k(G)}_to_detect${k(G)===`image`?`_objects`:k(G)===`video`?`_motion`:``}`)),1),E(`input`,{id:`restoreInput`,ref_key:`fileInputRef`,ref:g,type:`file`,class:`hidden`,accept:k(oe),onChange:J},null,40,At),k(T)?(b(),A(`p`,jt,M(t.$t(`components.detection_interface.only_one_${k(G)}_allowed`)),1)):f(``,!0),k(N)?(b(),A(`p`,{key:1,class:L([`text-red-500 text-sm`,{"mt-2":k(T)}])},M(t.$t(`components.detection_interface.${k(G)}_required`)),3)):f(``,!0),k(F)?(b(),A(`p`,{key:2,class:L([`text-red-500 text-sm`,{"mt-2":k(T)||k(N)}])},M(t.$t(`components.detection_interface.file_size_error`)),3)):f(``,!0)])]))],32),E(`div`,Vt,[E(`span`,null,`(`+M(k(q)/1024/1024)+`MB, `+M(k(K).join(`, `))+`)`,1)]),E(`div`,Ht,[E(`h3`,Ut,M(t.$t(`components.detection_interface.interface_config`)),1),k(U)?.length?(b(),y(a,{key:1,"schema-form":{schema:k(U),config:{}},loading:k(ae),"save-button-label":t.$t(`components.detection_interface.detect`),"disable-button":k(ie),"show-button":``,onOnFormSubmit:_e},null,8,[`schema-form`,`loading`,`save-button-label`,`disable-button`])):(b(),A(`div`,Wt,M(t.$t(`components.detection_interface.no_interface_config`)),1))])])}}}),Kt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function qt(e,t){return b(),A(`svg`,Kt,[...t[0]||=[E(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M2 10v3m4-7v11m4-14v18m4-13v7m4-10v13m4-8v3`},null,-1)]])}var Jt=C({name:`lucide-audio-lines`,render:qt}),Yt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Xt(e,t){return b(),A(`svg`,Yt,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M2 7V4q0-.825.588-1.412T4 2h3v2H4v3zm5 15H4q-.825 0-1.412-.587T2 20v-3h2v3h3zm10 0v-2h3v-3h2v3q0 .825-.587 1.413T20 22zm3-15V4h-3V2h3q.825 0 1.413.588T22 4v3zm-7.913 1.913Q11.5 8.325 11.5 7.5t.588-1.412T13.5 5.5t1.413.588T15.5 7.5t-.587 1.413T13.5 9.5t-1.412-.587M12.8 18h-4l1-5.1l-1.8.7V17H6v-4.7l3.95-1.7q.875-.375 1.288-.487T12 10q.525 0 .975.275T13.7 11l1 1.6q.65 1.05 1.763 1.725T19 15v2q-1.65 0-3.088-.687T13.5 14.5z`},null,-1)]])}var Zt=C({name:`material-symbols-detection-and-zone`,render:Xt}),Qt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function $t(e,t){return b(),A(`svg`,Qt,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M8.113 13.888Q7.75 13.525 7.75 13t.363-.888T9 11.75t.888.363t.362.887t-.363.888T9 14.25t-.888-.363m6 0q-.362-.362-.362-.887t.363-.888t.887-.362t.888.363t.362.887t-.363.888t-.887.362t-.888-.363M12 20q3.35 0 5.675-2.325T20 12q0-.6-.075-1.162T19.65 9.75q-.525.125-1.05.188T17.5 10q-2.275 0-4.3-.975T9.75 6.3q-.8 1.95-2.287 3.388T4 11.85V12q0 3.35 2.325 5.675T12 20m0 2q-2.075 0-3.9-.787t-3.175-2.138T2.788 15.9T2 12t.788-3.9t2.137-3.175T8.1 2.788T12 2t3.9.788t3.175 2.137T21.213 8.1T22 12t-.788 3.9t-2.137 3.175t-3.175 2.138T12 22`},null,-1)]])}var en=C({name:`material-symbols-face`,render:$t}),tn={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function nn(e,t){return b(),A(`svg`,tn,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M8 17q-.425 0-.712-.288T7 16t.288-.712T8 15h5q-.35-.425-.562-.925T12.1 13H10q-.425 0-.712-.288T9 12t.288-.712T10 11h2.1q.125-.575.338-1.075T13 9H4q-.425 0-.712-.288T3 8t.288-.712T4 7h13q2.075 0 3.538 1.463T22 12t-1.463 3.538T17 17zm9-2q1.25 0 2.125-.875T20 12t-.875-2.125T17 9t-2.125.875T14 12t.875 2.125T17 15M3 13q-.425 0-.712-.288T2 12t.288-.712T3 11h4q.425 0 .713.288T8 12t-.288.713T7 13zm1 4q-.425 0-.712-.288T3 16t.288-.712T4 15h1q.425 0 .713.288T6 16t-.288.713T5 17z`},null,-1)]])}var rn=C({name:`material-symbols-motion-blur-rounded`,render:nn}),an={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function on(e,t){return b(),A(`svg`,an,[...t[0]||=[E(`g`,{fill:`none`,"fill-rule":`evenodd`},[E(`path`,{d:`m12.594 23.258l-.012.002l-.071.035l-.02.004l-.014-.004l-.071-.036q-.016-.004-.024.006l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.016-.018m.264-.113l-.014.002l-.184.093l-.01.01l-.003.011l.018.43l.005.012l.008.008l.201.092q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.003-.011l.018-.43l-.003-.012l-.01-.01z`}),E(`path`,{fill:`currentColor`,d:`M15.586 2.757a2 2 0 0 1 2.828 0l2.829 2.829a2 2 0 0 1 0 2.828l-2.829 2.829a2 2 0 0 1-2.828 0l-2.829-2.829a2 2 0 0 1 0-2.828zM9 3a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm12 12a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2zM9 13a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2z`})],-1)]])}var sn=C({name:`mingcute-classify-2-fill`,render:on}),cn={viewBox:`0 0 256 256`,width:`1.2em`,height:`1.2em`};function ln(e,t){return b(),A(`svg`,cn,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M200 156c0 6.5-7.33 12-16 12s-16-5.5-16-12s7.33-12 16-12s16 5.5 16 12m32-100v144a16 16 0 0 1-16 16H40a16 16 0 0 1-16-16V56a16 16 0 0 1 16-16h176a16 16 0 0 1 16 16m-88.63 116.88l-44-104a8 8 0 0 0-14.74 0l-44 104a8 8 0 0 0 14.74 6.24L66.84 152h50.32l11.47 27.12a8 8 0 0 0 14.74-6.24M216 124c0-15.44-14.36-28-32-28a34.86 34.86 0 0 0-20.78 6.68a8 8 0 0 0 9.56 12.83A18.84 18.84 0 0 1 184 112c8.56 0 15.8 5.36 16 11.76v8a35.24 35.24 0 0 0-16-3.76c-17.64 0-32 12.56-32 28s14.36 28 32 28a35.1 35.1 0 0 0 16.93-4.26A8 8 0 0 0 216 176ZM73.61 136h36.78L92 92.53Z`},null,-1)]])}var un=C({name:`ph-text-aa-fill`,render:ln}),dn={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function fn(e,t){return b(),A(`svg`,dn,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M12.75 3a.75.75 0 0 0-1.5 0v2a.75.75 0 0 0 1.5 0z`},null,-1),E(`path`,{fill:`currentColor`,"fill-rule":`evenodd`,d:`M22.75 12.057c0 1.837 0 3.293-.153 4.432c-.158 1.172-.49 2.121-1.238 2.87c-.749.748-1.698 1.08-2.87 1.238c-1.14.153-2.595.153-4.433.153H9.944c-1.837 0-3.293 0-4.432-.153c-1.172-.158-2.121-.49-2.87-1.238c-.748-.749-1.08-1.698-1.238-2.87c-.153-1.14-.153-2.595-.153-4.433v-.926q.001-.575.008-1.096c.014-.975.05-1.81.145-2.523c.158-1.172.49-2.121 1.238-2.87c.749-.748 1.698-1.08 2.87-1.238c.716-.096 1.558-.132 2.541-.145l.697-.005a1 1 0 0 1 1.001.999V5a2.25 2.25 0 0 0 4.5 0v-.75c0-.552.448-1 1-.998c1.29.006 2.359.033 3.239.151c1.172.158 2.121.49 2.87 1.238c.748.749 1.08 1.698 1.238 2.87c.153 1.14.153 2.595.153 4.433zM8 9.75a.75.75 0 0 0 0 1.5h8a.75.75 0 0 0 0-1.5zm0 3.5a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5z`,"clip-rule":`evenodd`},null,-1)]])}var pn=C({name:`solar-plate-bold`,render:fn}),mn={class:`font-semibold text-xl truncate`},hn={class:`lg:col-span-2 order-1 !h-[220px]`},gn={class:`flex w-full h-full items-center justify-center`},_n={class:`lg:col-span-1 lg:row-span-3 order-2`},vn={class:`lg:!hidden card-title`},yn={key:0,class:`w-full h-full flex items-center justify-center`},bn={key:1},xn={class:`hidden lg:block text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},Sn={key:0,class:`flex items-center justify-center w-full h-full text-muted text-sm`},Cn=[`onClick`],wn={key:0,class:`w-full h-full`},Tn={key:0,class:`flex flex-col items-center justify-center w-full h-full text-muted text-sm gap-1 text-center`},En={key:2,class:`flex items-center justify-center w-full h-full text-muted text-sm`},Dn={key:9,class:`w-full h-full`},On={key:0,class:`flex items-center justify-center w-full h-full text-muted text-sm`},kn={class:`lg:col-span-2 order-3`},An={class:`lg:!hidden card-title`},jn={class:`hidden lg:block text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},Mn={key:0,class:`flex w-full h-full items-center justify-center`},Nn=[`innerHTML`],Pn={class:`lg:col-span-2 order-4`},Fn={class:`lg:!hidden card-title`},In={class:`hidden lg:block text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},Ln={key:0,class:`flex w-full h-full items-center justify-center`},Rn=[`innerHTML`],zn=W(V({__name:`Plugin`,setup(r){let u=new ye,d=new ke,p=te(),m=be(),_=ie(),v=ee(),S=xe(),{lgBreakpoint:C}=ae(),{t:D}=c(),z=j(_.params.scope),B=j(_.params.pluginname),V=w(()=>z.value?`${z.value}/${B.value}`:B.value),{contract:U,error:W}=i(V);d.toggleQueryActivator(`getPluginContractQuery`,!1);let{data:J,isBusy:ue}=d.getPluginQuery(V),{data:de,isBusy:fe}=d.getPluginReadmeQuery(V),{data:ge,isBusy:ve}=d.getPluginChangelogQuery(V),{data:Ce}=d.getPluginContractQuery(V),Y=o(V),X=Y.config,we=Y.isLoading,{mutate:Te,isPending:Ee}=u.addCameraExtensionQuery(),{mutate:je,isPending:Re}=u.removeCameraExtensionQuery(),Z=j(`settings`),Q=j([]),$=j([]),Ve=w(()=>!!U.value&&l(U.value,n.NVR)),He=Le(`commonmark`,{highlight(e,t){if(t&&Fe.getLanguage(t))try{return`<pre><code class="hljs">`+Fe.highlight(e,{language:t,ignoreIllegals:!0}).value+`</code></pre>`}catch{}return`<pre><code class="hljs">`+He.utils.escapeHtml(e)+`</code></pre>`}});Fe.registerLanguage(`typescript`,Ie),Fe.registerLanguage(`yaml`,Pe),Fe.registerLanguage(`json`,Me),Fe.registerLanguage(`python`,Ne);function Ue(e,t){return e.pluginInfo?.name===t}async function We(e){try{await Y.setValue(e.key,void 0),v.add({severity:`success`,detail:D(`components.toast.config_updated`),life:3e3})}catch(e){v.add({severity:`error`,detail:e,life:3e3})}}async function Ge(e){try{let t=await Y.submitValue(e.key,e.payload);if(t?.toast){let e=ne(t.toast.type);v.add({severity:e,detail:t.toast.message,life:3e3})}t?.schema?.length&&S.openComponentDialog(Ae,{data:{title:D(`components.dialog.title.config`),hideConfirmButton:!0,contentProps:{schemaConfig:{schema:t.schema,config:e.payload},pluginName:V.value,buttonKey:e.key}}})}catch(e){v.add({severity:`error`,detail:e,life:3e3})}}async function Ke(e){if(X.value?.schema.length)try{let t=De(X.value.schema,e);await Y.setConfig(t),v.add({severity:`success`,detail:D(`components.toast.config_updated`),life:3e3})}catch(e){v.add({severity:`error`,detail:e,life:3e3})}}async function qe(e){if(J.value&&J.value.contract){let n=t(J.value.contract)?[`hub`]:J.value.contract.provides;if($.value.includes(e.name))for(let t of n)je({cameraname:e.name,pluginname:J.value.pluginName,type:t},{onSuccess:()=>{$.value=$.value.filter(t=>t!==e.name)}});else for(let t of n)Te({cameraname:e.name,pluginname:J.value.pluginName,type:t},{onSuccess:()=>{$.value=[...$.value,e.name]}})}}return H(J,e=>{if(!e||e.disabled){let e=Q.value.some(e=>e.name===`settings`),t=Q.value.some(e=>e.name===`cameras`);e?Z.value=`settings`:t&&(Z.value=`cameras`)}},{deep:!0}),H(_,()=>{B.value=_.params.pluginname},{deep:!0,immediate:!0}),H([J,Y.isConnected],async([e,t])=>{e&&!e.disabled&&t&&await Y.getConfig()},{immediate:!0}),H(X,()=>{X.value?d.toggleQueryActivator(`getPluginContractQuery`,!0):d.toggleQueryActivator(`getPluginContractQuery`,!1)},{deep:!0,immediate:!0}),H([Ce,X,U],()=>{let e=[],t=!1,r=Ve.value||!!X.value?.schema.length;e.push({name:`settings`,icon:he,isInterface:!1,tooltip:D(`views.plugin.settings_tab_tooltip`)}),U.value&&l(U.value,n.MotionDetection)&&(t=!0,e.push({name:`motion_detection`,icon:rn,isInterface:!0,tooltip:D(`views.plugin.motion_detection_tab_tooltip`)})),U.value&&l(U.value,n.ObjectDetection)&&(t=!0,e.push({name:`object_detection`,icon:Zt,isInterface:!0,tooltip:D(`views.plugin.object_detection_tab_tooltip`)})),U.value&&l(U.value,n.AudioDetection)&&(t=!0,e.push({name:`audio_detection`,icon:Jt,isInterface:!0,tooltip:D(`views.plugin.audio_detection_tab_tooltip`)})),U.value&&l(U.value,n.FaceDetection)&&(t=!0,e.push({name:`face_detection`,icon:en,isInterface:!0,tooltip:D(`views.plugin.face_detection_tab_tooltip`)})),U.value&&l(U.value,n.LicensePlateDetection)&&(t=!0,e.push({name:`license_plate_detection`,icon:pn,isInterface:!0,tooltip:D(`views.plugin.license_plate_detection_tab_tooltip`)})),U.value&&l(U.value,n.ClassifierDetection)&&(t=!0,e.push({name:`classifier_detection`,icon:sn,isInterface:!0,tooltip:D(`views.plugin.classifier_detection_tab_tooltip`)})),U.value&&l(U.value,n.ClipDetection)&&(t=!0,e.push({name:`clip_detection`,icon:un,isInterface:!0,tooltip:D(`views.plugin.clip_detection_tab_tooltip`)})),U.value&&l(U.value,n.Notifier)&&(t=!0,e.push({name:`notification`,icon:me,isInterface:!0,tooltip:D(`views.plugin.notification_tab_tooltip`)})),e.push({name:`cameras`,icon:pe,isInterface:!1,tooltip:D(`views.plugin.cameras_tab_tooltip`)}),Ce.value?.cameras.length&&($.value=Ce.value.cameras.filter(e=>e.plugins?.some(e=>e.name===V.value)).map(e=>e.name)),Q.value=[...e],J.value?.disabled||(r?Z.value=`settings`:t?Z.value=Q.value.filter(e=>e.isInterface)[0].name:Z.value=`settings`)},{deep:!0,immediate:!0}),H(W,e=>{e&&J.value&&!J.value.disabled&&p.error(`Error connecting to plugin:`,e)}),(t,n)=>{let r=ze,i=e,o=Se,c=a,l=s,u=Be,ee=G,te=ce,d=I(`RouterLink`),ne=Oe,p=Gt,_=dt,v=se,S=_e,w=q,D=le,j=K,z=oe;return b(),A(`div`,{key:k(V)},[O(o,{position:`left`},{default:h(()=>[O(i,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:n[0]||=e=>t.$router.push(`/plugins`)},{icon:h(()=>[O(r,{class:`w-6 h-6`})]),_:1})]),_:1}),O(o,{position:`center`},{default:h(()=>[E(`span`,mn,M(t.$t(`views.plugin.title`)),1)]),_:1}),E(`div`,{class:L([`grid grid-auto grid-cols-1 lg:grid-cols-3 gap-6 lg:h-full`,{"!gap-2":k(C)}])},[E(`div`,hn,[k(J)?(b(),y(u,{key:1,plugin:k(J),class:`h-[220px]`},null,8,[`plugin`])):(b(),y(l,{key:0,class:`cui-card items-center justify-center !h-[220px]`},{content:h(()=>[E(`div`,gn,[O(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])]),_:1}))]),E(`div`,_n,[E(`span`,vn,M(t.$t(`views.plugin.settings`)),1),O(l,{class:L([`cui-card !h-auto lg:!h-full`,{"items-center justify-center":k(ue)||k(we)}])},{content:h(()=>[k(ue)||k(we)?(b(),A(`div`,yn,[O(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(b(),A(`div`,bn,[E(`h3`,xn,M(t.$t(`views.plugin.settings`)),1),k(J)?.disabled?(b(),A(`div`,Sn,[E(`span`,null,M(t.$t(`views.plugin.disabled_info`)),1)])):(b(),y(j,{key:1,value:k(Z),"onUpdate:value":n[1]||=e=>T(Z)?Z.value=e:null,scrollable:``},{default:h(()=>[O(te,{class:`justify-between`,pt:{activeBar:{class:`!w-auto`},content:{class:`border-[1px] border-color cui-rounded-corner overflow-hidden`}}},{default:h(()=>[(b(!0),A(g,null,re(k(Q),(e,t)=>(b(),y(ee,{key:t,disabled:e.isInterface&&k(J)?.disabled,value:e.name,"as-child":``},{default:h(t=>[x((b(),A(`div`,N({ref_for:!0},t.a11yAttrs,{class:[`flex flex-col items-center justify-center flex-1 content-background !py-3 h-[55px]`,[{"hover:!text-color active:!text-color focus:!text-color":!t.active},t.class]],onClick:t.onClick}),[(b(),y(F(e.icon),{class:`w-5 h-5`}))],16,Cn)),[[z,{value:e.tooltip}]])]),_:2},1032,[`disabled`,`value`]))),128))]),_:1}),O(D,{class:`px-0 pb-0`},{default:h(()=>[(b(!0),A(g,null,re(k(Q),(e,n)=>(b(),y(w,{key:n,value:e.name,"as-child":``},{default:h(n=>[n.active?(b(),A(`div`,N({key:0,class:n.class},{ref_for:!0},n.a11yAttrs),[e.name===`settings`?(b(),A(`div`,wn,[k(Ve)?(b(),A(`div`,Tn,[E(`span`,null,M(t.$t(`views.plugin.nvr_settings_hint`)),1),O(d,{to:`/settings/recordings`,class:`text-primary-500 hover:underline`},{default:h(()=>[P(M(t.$t(`views.plugin.nvr_settings_link`)),1)]),_:1})])):k(X)?.schema?.length?(b(),y(ne,{key:1,"schema-form":{schema:k(X).schema,config:k(X).config},loading:k(Y).isLoading.value,"save-button-color":`success`,onOnAction:We,onOnSubmit:Ge,onOnFormSubmit:Ke},null,8,[`schema-form`,`loading`])):(b(),A(`div`,En,[E(`span`,null,M(t.$t(`views.plugin.no_settings`)),1)]))])):e.name===`motion_detection`?(b(),y(p,{key:1,"plugin-name":k(V),type:`motionDetection`},null,8,[`plugin-name`])):e.name===`object_detection`?(b(),y(p,{key:2,"plugin-name":k(V),type:`objectDetection`},null,8,[`plugin-name`])):e.name===`audio_detection`?(b(),y(p,{key:3,"plugin-name":k(V),type:`audioDetection`},null,8,[`plugin-name`])):e.name===`face_detection`?(b(),y(p,{key:4,"plugin-name":k(V),type:`faceDetection`},null,8,[`plugin-name`])):e.name===`license_plate_detection`?(b(),y(p,{key:5,"plugin-name":k(V),type:`licensePlateDetection`},null,8,[`plugin-name`])):e.name===`classifier_detection`?(b(),y(p,{key:6,"plugin-name":k(V),type:`classifierDetection`},null,8,[`plugin-name`])):e.name===`clip_detection`?(b(),y(p,{key:7,"plugin-name":k(V),type:`clipDetection`},null,8,[`plugin-name`])):e.name===`notification`?(b(),y(_,{key:8,"plugin-name":k(V)},null,8,[`plugin-name`])):e.name===`cameras`?(b(),A(`div`,Dn,[k(Ce)?.cameras?.length?(b(!0),A(g,{key:1},re(k(Ce).cameras,e=>(b(),A(`div`,{key:e.name,class:`cui-list-item`},[O(S,{disabled:k(Ee)||k(Re)||k(Y).isLoading.value,active:k($).includes(e.name),class:`h-14`,onClick:t=>k(m).open({cameraName:e.name})},R({default:h(()=>[E(`span`,null,M(e.name),1)]),_:2},[!k(J)||!Ue(e,k(J).pluginName)?{name:`append`,fn:h(()=>[O(v,{"model-value":k($).includes(e.name),disabled:k(Ee)||k(Re)||k(Y).isLoading.value,"onUpdate:modelValue":()=>qe(e)},null,8,[`model-value`,`disabled`,`onUpdate:modelValue`])]),key:`0`}:void 0]),1032,[`disabled`,`active`,`onClick`])]))),128)):(b(),A(`div`,On,[E(`span`,null,M(t.$t(`views.plugin.no_cameras`)),1)]))])):f(``,!0)],16)):f(``,!0)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`value`]))]))]),_:1},8,[`class`])]),E(`div`,kn,[E(`span`,An,M(t.$t(`views.plugin.readme`)),1),O(l,{class:`cui-card !h-auto lg:!h-full`},{content:h(()=>[E(`h3`,jn,M(t.$t(`views.plugin.readme`)),1),k(fe)?(b(),A(`div`,Mn,[O(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(b(),A(`div`,{key:1,class:`markdown-body`,innerHTML:k(He).render(k(de)||t.$t(`views.plugin.no_readme`))},null,8,Nn))]),_:1})]),E(`div`,Pn,[E(`span`,Fn,M(t.$t(`views.plugin.changelog`)),1),O(l,{class:`cui-card !h-auto lg:!h-full`},{content:h(()=>[E(`h3`,In,M(t.$t(`views.plugin.changelog`)),1),k(ve)?(b(),A(`div`,Ln,[O(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(b(),A(`div`,{key:1,class:`markdown-body`,innerHTML:k(He).render(k(ge)||t.$t(`views.plugin.no_changelog`))},null,8,Rn))]),_:1})])],2)])}}}),[[`__scopeId`,`data-v-869e4fd8`]]);export{zn as default};
@@ -1,4 +1,4 @@
1
- import{Cn as e,Ln as t,Tn as n,Xt as r,an as i,cr as a,en as o,fn as s,or as c,sn as l,wn as u}from"./vendor-CUsAwmr-.js";import{t as d}from"./useSharedComposables-CzkF-tst.js";import{t as f}from"./useFileDownload-DntU1WW7.js";import{t as p}from"./plugins-BWlFg8TN.js";import{n as m,t as h}from"./useLogsSocket-R2SaD_bg.js";var g=l({__name:`PluginConsole`,props:{plugin:{},isInstalling:{type:Boolean}},setup(l,{expose:g}){let _=new p,v=l,{mdBreakpoint:y}=d(),b=s(`dialogRefProps`),{plugin:x,isInstalling:S}=c(v),C=h({target:x.value.pluginName,onStdout:e=>D.value?.writeTerminal(e),onDisconnect:()=>D.value?.writeTerminal(`\r
1
+ import{Cn as e,Ln as t,Tn as n,Xt as r,an as i,cr as a,en as o,fn as s,or as c,sn as l,wn as u}from"./vendor-zxCOTbSj.js";import{t as d}from"./useSharedComposables-Ca_A3w0h.js";import{t as f}from"./useFileDownload-C_Am2BRz.js";import{t as p}from"./plugins-Bj4_KCp7.js";import{n as m,t as h}from"./useLogsSocket-PUFDb8MH.js";var g=l({__name:`PluginConsole`,props:{plugin:{},isInstalling:{type:Boolean}},setup(l,{expose:g}){let _=new p,v=l,{mdBreakpoint:y}=d(),b=s(`dialogRefProps`),{plugin:x,isInstalling:S}=c(v),C=h({target:x.value.pluginName,onStdout:e=>D.value?.writeTerminal(e),onDisconnect:()=>D.value?.writeTerminal(`\r
2
2
  Websocket failed to connect! Is the server running?\r
3
3
  \r
4
4
  `),onClearLog:()=>D.value?.clearTerminal(),onReconnected:()=>{S.value||(D.value?.clearTerminal(),D.value?.writeTerminal(`\r
@@ -1 +1 @@
1
- import{Gt as e,Mt as t,Wt as n}from"./vendor-cameraui-D-WYtlxb.js";import{C as r,l as i}from"./api-CLcqLYO9.js";import{Qt as a,Tn as o,Xt as s,cr as c,er as l,fn as u,or as d,sn as f,zn as p}from"./vendor-CUsAwmr-.js";import{t as m}from"./CuiSchema-CkgT_tmr.js";var h=f({__name:`PluginSchema`,props:{schemaConfig:{},pluginName:{},cameraName:{},buttonKey:{},sensorId:{},pluginId:{}},setup(f,{expose:h}){let g=f,_=r(),v=u(`dialogRef`),y=u(`dialogRefProps`),{schemaConfig:b,pluginName:x,cameraName:S,buttonKey:C,sensorId:w,pluginId:T}=d(g),E=n(x),D=t(S,x),O=e(S,w,T),k=l({schema:[],config:{}}),A=s(()=>S.value&&w.value?`sensor`:S.value?`camera`:`plugin`),j=s(()=>{switch(A.value){case`sensor`:return O;case`camera`:return D;default:return E}}),M=s(()=>!!(y.loading?.value||j.value.isLoading.value));async function N(e){await j.value.setValue(e.key,void 0)}async function P(e){let t={...b.value.config,...e},n=await j.value.submitValue(C.value,t);if(n?.toast){let e=i(n.toast.type);_.add({severity:e,detail:n.toast.message,life:3e3})}n?.schema&&Object.keys(n.schema).length&&k.value?k.value.schema=n.schema:v.value.close()}return p(b,e=>{k.value=e},{deep:!0,immediate:!0}),h({isLoading:M}),(e,t)=>{let n=m;return o(),a(n,{"schema-form":c(k),loading:c(M),"show-button":``,onOnAction:N,onOnFormSubmit:P},null,8,[`schema-form`,`loading`])}}});export{h as t};
1
+ import{Gt as e,Mt as t,Wt as n}from"./vendor-cameraui-BABuGvhg.js";import{C as r,l as i}from"./api-C-NlYhuP.js";import{Qt as a,Tn as o,Xt as s,cr as c,er as l,fn as u,or as d,sn as f,zn as p}from"./vendor-zxCOTbSj.js";import{t as m}from"./CuiSchema-DvWek91_.js";var h=f({__name:`PluginSchema`,props:{schemaConfig:{},pluginName:{},cameraName:{},buttonKey:{},sensorId:{},pluginId:{}},setup(f,{expose:h}){let g=f,_=r(),v=u(`dialogRef`),y=u(`dialogRefProps`),{schemaConfig:b,pluginName:x,cameraName:S,buttonKey:C,sensorId:w,pluginId:T}=d(g),E=n(x),D=t(S,x),O=e(S,w,T),k=l({schema:[],config:{}}),A=s(()=>S.value&&w.value?`sensor`:S.value?`camera`:`plugin`),j=s(()=>{switch(A.value){case`sensor`:return O;case`camera`:return D;default:return E}}),M=s(()=>!!(y.loading?.value||j.value.isLoading.value));async function N(e){await j.value.setValue(e.key,void 0)}async function P(e){let t={...b.value.config,...e},n=await j.value.submitValue(C.value,t);if(n?.toast){let e=i(n.toast.type);_.add({severity:e,detail:n.toast.message,life:3e3})}n?.schema&&Object.keys(n.schema).length&&k.value?k.value.schema=n.schema:v.value.close()}return p(b,e=>{k.value=e},{deep:!0,immediate:!0}),h({isLoading:M}),(e,t)=>{let n=m;return o(),a(n,{"schema-form":c(k),loading:c(M),"show-button":``,onOnAction:N,onOnFormSubmit:P},null,8,[`schema-form`,`loading`])}}});export{h as t};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/VersionsHandler-XIP-8qdF.js","assets/vendor-cameraui-D-WYtlxb.js","assets/rolldown-runtime-DAXXjFlN.js","assets/vendor-CUsAwmr-.js","assets/api-CLcqLYO9.js","assets/vendor-core-CWeZebhd.js","assets/api-Dbhyyb4d.css","assets/useSharedComposables-CzkF-tst.js","assets/ui-DSOnsqS6.js","assets/vendor-primevue-01WhBsPb.js","assets/plugins-BWlFg8TN.js","assets/useLogsSocket-R2SaD_bg.js","assets/_plugin-vue_export-helper-BDNMzG2s.js","assets/vendor-xterm-BRN-hOYD.js","assets/vendor-xterm-BrP-ENHg.css","assets/useLogsSocket-DZ93-C8L.css","assets/vendor-markdown-e7bfD1d7.js","assets/vendor-markdown-DtOhvyRx.css","assets/server-B3_iwGek.js"])))=>i.map(i=>d[i]);
2
- import{Hn as e,Kn as t,fi as n,lt as r,tt as i}from"./vendor-cameraui-D-WYtlxb.js";import{$t as a,At as o,Dn as s,Gt as c,Hn as l,Kt as u,Qt as d,Tn as f,Un as p,Xn as m,Xt as h,Yn as g,Zt as _,an as v,cr as y,dr as b,en as x,er as S,fn as C,fr as w,lr as T,sn as E,zn as D,zt as O}from"./vendor-CUsAwmr-.js";import{t as k}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{a as A,t as j}from"./useSharedComposables-CzkF-tst.js";import{t as M}from"./close-CEZvWyN1.js";import{F as N,J as P,L as F,P as I,R as L,U as R,s as ee}from"./vendor-primevue-01WhBsPb.js";import{n as te,r as z,t as ne}from"./github-xiZ7fokg.js";import{t as B}from"./CuiFloatingButton-B4byvsOs.js";import{t as V}from"./hasPermission-BHM3xbrG.js";import{n as H,t as U}from"./useCuiDialog-C-2PMjxH.js";import{t as W}from"./CuiTopbarSlot-BlbZqDDn.js";import{t as G}from"./plugins-BWlFg8TN.js";import{t as K}from"./back-filled-DVeRsKmt.js";import{t as q}from"./plus-CuWXW2I0.js";import{t as J}from"./search-Bl5hzTQq.js";import{n as Y,t as X}from"./CuiPluginCard-DpllCJXe.js";var Z={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Q(e,t){return f(),x(`svg`,Z,[...t[0]||=[_(`g`,{fill:`none`},[_(`rect`,{width:`16.5`,height:`16.5`,x:`3.75`,y:`3.75`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`1.5`,rx:`2`}),_(`path`,{fill:`currentColor`,d:`M12 9a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v11.25h-4z`})],-1)]])}var re=m({name:`proicons-npm`,render:Q}),$={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function ie(e,t){return f(),x(`svg`,$,[...t[0]||=[_(`path`,{fill:`currentColor`,d:`M2 10.96a.985.985 0 0 1-.37-1.37L3.13 7c.11-.2.28-.34.47-.42l7.83-4.4c.16-.12.36-.18.57-.18s.41.06.57.18l7.9 4.44c.19.1.35.26.44.46l1.45 2.52c.28.48.11 1.09-.36 1.36l-1 .58v4.96c0 .38-.21.71-.53.88l-7.9 4.44c-.16.12-.36.18-.57.18s-.41-.06-.57-.18l-7.9-4.44A.99.99 0 0 1 3 16.5v-5.54c-.3.17-.68.18-1 0m10-6.81v6.7l5.96-3.35zM5 15.91l6 3.38v-6.71L5 9.21zm14 0v-3.22l-5 2.9c-.33.18-.7.17-1 .01v3.69zm-5.15-2.55l6.28-3.63l-.58-1.01l-6.28 3.63z`},null,-1)]])}var ae=m({name:`mdi-package-variant`,render:ie}),oe={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function se(e,t){return f(),x(`svg`,oe,[...t[0]||=[_(`path`,{fill:`currentColor`,d:`M13 15.6c.3.2.7.2 1 0l5-2.9v.3c.7 0 1.4.1 2 .4v-1.8l1-.6c.5-.3.6-.9.4-1.4l-1.5-2.5c-.1-.2-.2-.4-.4-.5l-7.9-4.4c-.2-.1-.4-.2-.6-.2s-.4.1-.6.2L3.6 6.6c-.2.1-.4.2-.5.4L1.6 9.6c-.3.5-.1 1.1.4 1.4c.3.2.7.2 1 0v5.5c0 .4.2.7.5.9l7.9 4.4c.2.1.4.2.6.2s.4-.1.6-.2l.9-.5c-.3-.6-.4-1.3-.5-2m-2 0l-6-3.4V9.2l6 3.4zm9.1-9.6l-6.3 3.6l-.6-1l6.3-3.6zM12 10.8V4.2l6 3.3zm8 4.2v3h3v2h-3v3h-2v-3h-3v-2h3v-3z`},null,-1)]])}var ce=m({name:`mdi-package-variant-plus`,render:se}),le={class:`cui-label`},ue={class:`flex flex-row items-center justify-center w-full mt-8`},de={key:2,class:`text-center py-10`},fe={class:`text-muted mb-2`},pe={class:`text-muted`},me={key:3,class:`w-full`},he={key:4,class:`w-full plugin-list`},ge={class:`plugin-info`},_e={class:`flex items-center`},ve={class:`font-medium text-base`},ye={class:`text-sm text-muted mb-2`},be={class:`plugin-description`},xe={class:`plugin-meta`},Se={class:`plugin-meta-item`},Ce={class:`meta-label font-semibold`},we={class:`meta-value`},Te={class:`plugin-meta-item`},Ee={class:`meta-label font-semibold`},De={class:`meta-value`},Oe={class:`plugin-actions`},ke={class:`flex gap-2 mb-2`},Ae=k(E({__name:`PluginSearch`,setup(m,{expose:b}){let E=H(()=>o(()=>import(`./VersionsHandler-XIP-8qdF.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]))),O=new G,k=U(),{t:A}=n(),j=C(`dialogRefProps`),N=S(``),I=S({}),z=S([]),{data:B,isBusy:V,refetch:W}=O.searchPluginsQuery(I,{page:1,pageSize:-1}),{data:K,isBusy:q,refetch:J}=O.getPluginsProgressQuery({page:1,pageSize:-1}),Y=h(()=>V.value||q.value),X=h(()=>!!(j.loading?.value||Y.value));function Z(e){return K.value?.result.some(t=>t.pluginName===e)}function Q(e){e?.preventDefault(),I.value.pluginname=N.value??``}function $(){N.value=``,I.value={},Q()}function ie(){W(),J()}function oe(e){k.openComponentDialog(E,{data:{title:A(`components.dialog.title.install`),loading:X,contentProps:{target:y(e),installVersion:`latest`,isNewPlugin:!0}}})}return D(B,e=>{e?.result&&(z.value=e.result.filter(e=>!e.installPath))},{immediate:!0,deep:!0}),b({isLoading:X}),(n,o)=>{let m=i,h=M,b=e,S=F,C=L,E=te,D=t,O=ee,k=R,A=ce,j=r,I=ae,B=ne,V=re,H=P;return f(),x(`div`,null,[_(`form`,{onSubmit:c(Q,[`prevent`])},[_(`label`,le,w(n.$t(`components.form.label.name`)),1),v(C,null,{default:l(()=>[v(m,{modelValue:y(N),"onUpdate:modelValue":o[0]||=e=>g(N)?N.value=e:null,modelModifiers:{trim:!0},loading:y(Y),placeholder:`camera-ui-`,type:`text`},null,8,[`modelValue`,`loading`]),v(S,null,{default:l(()=>[v(b,{text:``,rounded:``,severity:`secondary`,class:`cui-icon-md`,onClick:$},{icon:l(()=>[v(h,{width:`100%`,height:`100%`})]),_:1})]),_:1})]),_:1})],32),_(`div`,ue,[_(`h3`,null,w(n.$t(`components.plugin_search.plugins`)),1),p((f(),d(b,{text:``,rounded:``,severity:`secondary`,class:`cui-icon-md ml-auto`,onClick:ie},{icon:l(()=>[v(E,{width:`100%`,height:`100%`})]),_:1})),[[H,{value:n.$t(`components.plugin_search.refresh`)}]]),v(D,{size:`small`,class:`ml-2 rounded-full`,value:String(y(z).length)},null,8,[`value`])]),y(Y)?(f(),d(O,{key:0,mode:`indeterminate`,class:`my-3 !h-[1px]`})):(f(),d(k,{key:1,class:`m-0 py-3`})),!y(Y)&&!y(z).length?(f(),x(`div`,de,[_(`div`,fe,[v(A,{class:`w-12 h-12 mx-auto opacity-30`})]),_(`p`,pe,w(n.$t(`views.plugins.no_plugins`)),1)])):y(Y)?(f(),x(`div`,me,[(f(),x(u,null,s(6,e=>v(j,{key:e,class:`mb-2`,height:`132px`})),64))])):(f(),x(`div`,he,[(f(!0),x(u,null,s(y(z),(e,t)=>p((f(),x(`div`,{key:t,class:T([`plugin-list-item shadow-sm transition-default card-background custom-scrollbar`,{"opacity-50 in-progress":Z(e.pluginName)}])},[_(`div`,ge,[_(`div`,_e,[v(I,{class:`w-5 h-5 text-primary mr-2`}),_(`h4`,ve,w(e.displayName),1)]),_(`div`,ye,w(e.pluginName),1),_(`p`,be,w(e.description),1),_(`div`,xe,[_(`div`,Se,[_(`span`,Ce,w(n.$t(`components.plugin_card.version`))+`:`,1),_(`span`,we,w(e.latestVersion),1)]),_(`div`,Te,[_(`span`,Ee,w(n.$t(`components.plugin_card.author`))+`:`,1),_(`span`,De,w(e.author),1)])])]),_(`div`,Oe,[_(`div`,ke,[e.links?.homepage?p((f(),d(b,{key:0,text:``,rounded:``,severity:`secondary`,class:`cui-icon-md`,onClick:t=>n.$router.absUrl(e.links.homepage,!0)},{icon:l(()=>[v(B,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[H,{value:`Github`}]]):a(``,!0),e.links?.npm?p((f(),d(b,{key:1,text:``,rounded:``,severity:`secondary`,class:`cui-icon-md`,onClick:t=>n.$router.absUrl(e.links.npm,!0)},{icon:l(()=>[v(V,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[H,{value:`NPM`}]]):a(``,!0)]),v(b,{class:`cui-button-medium`,label:n.$t(`components.form.button.install`),disabled:Z(e.pluginName),onClick:t=>oe(e)},null,8,[`label`,`disabled`,`onClick`])])],2)),[[H,{value:Z(e.pluginName)?n.$t(`components.plugin_search.in_progress`):void 0}]])),128))]))])}}}),[[`__scopeId`,`data-v-e84cbdf9`]]),je={class:`flex flex-col`},Me={key:0,class:`page-title`},Ne={class:`flex gap-2 mb-4`},Pe={key:1,class:`flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4`},Fe={class:`text-muted text-sm`},Ie=E({__name:`Plugins`,setup(t){let o=new G,c=U(),{t:p}=n(),{smBreakpoint:m}=j(),{width:C,height:T}=A(),{data:E,isBusy:D}=o.getPluginsQuery({page:1,pageSize:-1}),k=S(``),M=h(()=>D.value),P=h(()=>{let e=E.value?.result??[],t=k.value.toLowerCase().trim();return t?e.filter(e=>e.pluginName.toLowerCase().includes(t)||e.displayName?.toLowerCase().includes(t)):e}),F=h(()=>(m.value?1:Math.max(1,Math.floor(C.value/450)))*Math.max(1,Math.ceil(T.value/(Y.HEIGHT+8))));function L(){c.openComponentDialog(Ae,{data:{title:p(`components.dialog.title.search_plugin`),contentProps:{},hideConfirmButton:!0,fullscreen:!0}})}return(t,n)=>{let o=K,c=e,h=W,S=J,C=I,T=i,E=N,D=r,A=z,j=X,R=B;return f(),x(`div`,je,[y(m)?a(``,!0):(f(),x(`h1`,Me,w(t.$t(`views.${String(t.$route.name).toLowerCase()}.title`)),1)),v(h,{position:`left`},{default:l(()=>[v(c,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:n[0]||=e=>t.$router.push(`/menu`)},{icon:l(()=>[v(o,{class:`w-6 h-6`})]),_:1})]),_:1}),_(`div`,Ne,[v(E,{class:`flex-1`},{default:l(()=>[v(C,null,{default:l(()=>[v(S,{class:`w-4 h-4`})]),_:1}),v(T,{modelValue:y(k),"onUpdate:modelValue":n[1]||=e=>g(k)?k.value=e:null,placeholder:y(p)(`views.plugins.search`),class:`w-full`},null,8,[`modelValue`,`placeholder`])]),_:1})]),v(O,{name:`fade-2`,mode:`out-in`},{default:l(()=>[y(M)?(f(),x(`div`,{key:`loading`,class:`grid w-full gap-2`,style:b({gridTemplateColumns:`repeat(auto-fill, minmax(${y(m)?`100%`:`450px`}, 1fr))`})},[(f(!0),x(u,null,s(y(F),e=>(f(),d(D,{key:e,height:`${y(Y).HEIGHT}px`,class:`cui-card`},null,8,[`height`]))),128))],4)):!y(P).length||!(`hasPermission`in t?t.hasPermission:y(V))(void 0,`admin`)?(f(),x(`div`,Pe,[v(A,{class:`w-12 h-12 text-muted`}),_(`span`,Fe,w(t.$t(`views.plugins.no_plugins`)),1)])):(f(),x(`div`,{key:`content`,class:`grid w-full gap-2`,style:b({gridTemplateColumns:`repeat(auto-fill, minmax(${y(m)?`100%`:`450px`}, 1fr))`})},[(f(!0),x(u,null,s(y(P),(e,t)=>(f(),d(j,{key:t,plugin:e},null,8,[`plugin`]))),128))],4))]),_:1}),(`hasPermission`in t?t.hasPermission:y(V))(void 0,`admin`)?(f(),d(R,{key:1,"tooltip-props":{value:t.$t(`views.plugins.search_plugins`)},"button-props":{class:`text-white`},icon:y(q),"icon-props":{width:`30px`,height:`30px`},onClick:L},null,8,[`tooltip-props`,`icon`])):a(``,!0)])}}});export{Ie as default};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/VersionsHandler-BDWjtbp0.js","assets/vendor-cameraui-BABuGvhg.js","assets/rolldown-runtime-DAXXjFlN.js","assets/vendor-zxCOTbSj.js","assets/api-C-NlYhuP.js","assets/vendor-core-C6lCucBy.js","assets/api-BB9AG_h5.css","assets/useSharedComposables-Ca_A3w0h.js","assets/ui-B2i8B4yr.js","assets/vendor-primevue-CsC6U_Xu.js","assets/plugins-Bj4_KCp7.js","assets/useLogsSocket-PUFDb8MH.js","assets/_plugin-vue_export-helper-BDNMzG2s.js","assets/vendor-xterm-BRN-hOYD.js","assets/vendor-xterm-BrP-ENHg.css","assets/useLogsSocket-4F2-d9fa.css","assets/vendor-markdown-BrmS8cUD.js","assets/vendor-markdown-DtOhvyRx.css","assets/server-DeMUCrCz.js"])))=>i.map(i=>d[i]);
2
+ import{Hn as e,Kn as t,fi as n,lt as r,tt as i}from"./vendor-cameraui-BABuGvhg.js";import{$t as a,At as o,Dn as s,Gt as c,Hn as l,Kt as u,Qt as d,Tn as f,Un as p,Xn as m,Xt as h,Yn as g,Zt as _,an as v,cr as y,dr as b,en as x,er as S,fn as C,fr as w,lr as T,sn as E,zn as D,zt as O}from"./vendor-zxCOTbSj.js";import{t as k}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{a as A,t as j}from"./useSharedComposables-Ca_A3w0h.js";import{t as M}from"./close-BlkMdXhr.js";import{F as N,J as P,L as F,P as I,R as L,U as R,s as ee}from"./vendor-primevue-CsC6U_Xu.js";import{n as te,r as z,t as ne}from"./github--PDCVHbp.js";import{t as B}from"./CuiFloatingButton-Bi1jS25U.js";import{t as V}from"./hasPermission-DKTmzAJw.js";import{n as H,t as U}from"./useCuiDialog-C4xS4vrs.js";import{t as W}from"./CuiTopbarSlot-DE7fTsSm.js";import{t as G}from"./plugins-Bj4_KCp7.js";import{t as K}from"./back-filled-2dVfzfd3.js";import{t as q}from"./plus-mhsNCxIy.js";import{t as J}from"./search-BN5ng-N8.js";import{n as Y,t as X}from"./CuiPluginCard-CHLd5hzA.js";var Z={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Q(e,t){return f(),x(`svg`,Z,[...t[0]||=[_(`g`,{fill:`none`},[_(`rect`,{width:`16.5`,height:`16.5`,x:`3.75`,y:`3.75`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`1.5`,rx:`2`}),_(`path`,{fill:`currentColor`,d:`M12 9a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v11.25h-4z`})],-1)]])}var re=m({name:`proicons-npm`,render:Q}),$={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function ie(e,t){return f(),x(`svg`,$,[...t[0]||=[_(`path`,{fill:`currentColor`,d:`M2 10.96a.985.985 0 0 1-.37-1.37L3.13 7c.11-.2.28-.34.47-.42l7.83-4.4c.16-.12.36-.18.57-.18s.41.06.57.18l7.9 4.44c.19.1.35.26.44.46l1.45 2.52c.28.48.11 1.09-.36 1.36l-1 .58v4.96c0 .38-.21.71-.53.88l-7.9 4.44c-.16.12-.36.18-.57.18s-.41-.06-.57-.18l-7.9-4.44A.99.99 0 0 1 3 16.5v-5.54c-.3.17-.68.18-1 0m10-6.81v6.7l5.96-3.35zM5 15.91l6 3.38v-6.71L5 9.21zm14 0v-3.22l-5 2.9c-.33.18-.7.17-1 .01v3.69zm-5.15-2.55l6.28-3.63l-.58-1.01l-6.28 3.63z`},null,-1)]])}var ae=m({name:`mdi-package-variant`,render:ie}),oe={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function se(e,t){return f(),x(`svg`,oe,[...t[0]||=[_(`path`,{fill:`currentColor`,d:`M13 15.6c.3.2.7.2 1 0l5-2.9v.3c.7 0 1.4.1 2 .4v-1.8l1-.6c.5-.3.6-.9.4-1.4l-1.5-2.5c-.1-.2-.2-.4-.4-.5l-7.9-4.4c-.2-.1-.4-.2-.6-.2s-.4.1-.6.2L3.6 6.6c-.2.1-.4.2-.5.4L1.6 9.6c-.3.5-.1 1.1.4 1.4c.3.2.7.2 1 0v5.5c0 .4.2.7.5.9l7.9 4.4c.2.1.4.2.6.2s.4-.1.6-.2l.9-.5c-.3-.6-.4-1.3-.5-2m-2 0l-6-3.4V9.2l6 3.4zm9.1-9.6l-6.3 3.6l-.6-1l6.3-3.6zM12 10.8V4.2l6 3.3zm8 4.2v3h3v2h-3v3h-2v-3h-3v-2h3v-3z`},null,-1)]])}var ce=m({name:`mdi-package-variant-plus`,render:se}),le={class:`cui-label`},ue={class:`flex flex-row items-center justify-center w-full mt-8`},de={key:2,class:`text-center py-10`},fe={class:`text-muted mb-2`},pe={class:`text-muted`},me={key:3,class:`w-full`},he={key:4,class:`w-full plugin-list`},ge={class:`plugin-info`},_e={class:`flex items-center`},ve={class:`font-medium text-base`},ye={class:`text-sm text-muted mb-2`},be={class:`plugin-description`},xe={class:`plugin-meta`},Se={class:`plugin-meta-item`},Ce={class:`meta-label font-semibold`},we={class:`meta-value`},Te={class:`plugin-meta-item`},Ee={class:`meta-label font-semibold`},De={class:`meta-value`},Oe={class:`plugin-actions`},ke={class:`flex gap-2 mb-2`},Ae=k(E({__name:`PluginSearch`,setup(m,{expose:b}){let E=H(()=>o(()=>import(`./VersionsHandler-BDWjtbp0.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]))),O=new G,k=U(),{t:A}=n(),j=C(`dialogRefProps`),N=S(``),I=S({}),z=S([]),{data:B,isBusy:V,refetch:W}=O.searchPluginsQuery(I,{page:1,pageSize:-1}),{data:K,isBusy:q,refetch:J}=O.getPluginsProgressQuery({page:1,pageSize:-1}),Y=h(()=>V.value||q.value),X=h(()=>!!(j.loading?.value||Y.value));function Z(e){return K.value?.result.some(t=>t.pluginName===e)}function Q(e){e?.preventDefault(),I.value.pluginname=N.value??``}function $(){N.value=``,I.value={},Q()}function ie(){W(),J()}function oe(e){k.openComponentDialog(E,{data:{title:A(`components.dialog.title.install`),loading:X,contentProps:{target:y(e),installVersion:`latest`,isNewPlugin:!0}}})}return D(B,e=>{e?.result&&(z.value=e.result.filter(e=>!e.installPath))},{immediate:!0,deep:!0}),b({isLoading:X}),(n,o)=>{let m=i,h=M,b=e,S=F,C=L,E=te,D=t,O=ee,k=R,A=ce,j=r,I=ae,B=ne,V=re,H=P;return f(),x(`div`,null,[_(`form`,{onSubmit:c(Q,[`prevent`])},[_(`label`,le,w(n.$t(`components.form.label.name`)),1),v(C,null,{default:l(()=>[v(m,{modelValue:y(N),"onUpdate:modelValue":o[0]||=e=>g(N)?N.value=e:null,modelModifiers:{trim:!0},loading:y(Y),placeholder:`camera-ui-`,type:`text`},null,8,[`modelValue`,`loading`]),v(S,null,{default:l(()=>[v(b,{text:``,rounded:``,severity:`secondary`,class:`cui-icon-md`,onClick:$},{icon:l(()=>[v(h,{width:`100%`,height:`100%`})]),_:1})]),_:1})]),_:1})],32),_(`div`,ue,[_(`h3`,null,w(n.$t(`components.plugin_search.plugins`)),1),p((f(),d(b,{text:``,rounded:``,severity:`secondary`,class:`cui-icon-md ml-auto`,onClick:ie},{icon:l(()=>[v(E,{width:`100%`,height:`100%`})]),_:1})),[[H,{value:n.$t(`components.plugin_search.refresh`)}]]),v(D,{size:`small`,class:`ml-2 rounded-full`,value:String(y(z).length)},null,8,[`value`])]),y(Y)?(f(),d(O,{key:0,mode:`indeterminate`,class:`my-3 !h-[1px]`})):(f(),d(k,{key:1,class:`m-0 py-3`})),!y(Y)&&!y(z).length?(f(),x(`div`,de,[_(`div`,fe,[v(A,{class:`w-12 h-12 mx-auto opacity-30`})]),_(`p`,pe,w(n.$t(`views.plugins.no_plugins`)),1)])):y(Y)?(f(),x(`div`,me,[(f(),x(u,null,s(6,e=>v(j,{key:e,class:`mb-2`,height:`132px`})),64))])):(f(),x(`div`,he,[(f(!0),x(u,null,s(y(z),(e,t)=>p((f(),x(`div`,{key:t,class:T([`plugin-list-item shadow-sm transition-default card-background custom-scrollbar`,{"opacity-50 in-progress":Z(e.pluginName)}])},[_(`div`,ge,[_(`div`,_e,[v(I,{class:`w-5 h-5 text-primary mr-2`}),_(`h4`,ve,w(e.displayName),1)]),_(`div`,ye,w(e.pluginName),1),_(`p`,be,w(e.description),1),_(`div`,xe,[_(`div`,Se,[_(`span`,Ce,w(n.$t(`components.plugin_card.version`))+`:`,1),_(`span`,we,w(e.latestVersion),1)]),_(`div`,Te,[_(`span`,Ee,w(n.$t(`components.plugin_card.author`))+`:`,1),_(`span`,De,w(e.author),1)])])]),_(`div`,Oe,[_(`div`,ke,[e.links?.homepage?p((f(),d(b,{key:0,text:``,rounded:``,severity:`secondary`,class:`cui-icon-md`,onClick:t=>n.$router.absUrl(e.links.homepage,!0)},{icon:l(()=>[v(B,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[H,{value:`Github`}]]):a(``,!0),e.links?.npm?p((f(),d(b,{key:1,text:``,rounded:``,severity:`secondary`,class:`cui-icon-md`,onClick:t=>n.$router.absUrl(e.links.npm,!0)},{icon:l(()=>[v(V,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[H,{value:`NPM`}]]):a(``,!0)]),v(b,{class:`cui-button-medium`,label:n.$t(`components.form.button.install`),disabled:Z(e.pluginName),onClick:t=>oe(e)},null,8,[`label`,`disabled`,`onClick`])])],2)),[[H,{value:Z(e.pluginName)?n.$t(`components.plugin_search.in_progress`):void 0}]])),128))]))])}}}),[[`__scopeId`,`data-v-e84cbdf9`]]),je={class:`flex flex-col`},Me={key:0,class:`page-title`},Ne={class:`flex gap-2 mb-4`},Pe={key:1,class:`flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4`},Fe={class:`text-muted text-sm`},Ie=E({__name:`Plugins`,setup(t){let o=new G,c=U(),{t:p}=n(),{smBreakpoint:m}=j(),{width:C,height:T}=A(),{data:E,isBusy:D}=o.getPluginsQuery({page:1,pageSize:-1}),k=S(``),M=h(()=>D.value),P=h(()=>{let e=E.value?.result??[],t=k.value.toLowerCase().trim();return t?e.filter(e=>e.pluginName.toLowerCase().includes(t)||e.displayName?.toLowerCase().includes(t)):e}),F=h(()=>(m.value?1:Math.max(1,Math.floor(C.value/450)))*Math.max(1,Math.ceil(T.value/(Y.HEIGHT+8))));function L(){c.openComponentDialog(Ae,{data:{title:p(`components.dialog.title.search_plugin`),contentProps:{},hideConfirmButton:!0,fullscreen:!0}})}return(t,n)=>{let o=K,c=e,h=W,S=J,C=I,T=i,E=N,D=r,A=z,j=X,R=B;return f(),x(`div`,je,[y(m)?a(``,!0):(f(),x(`h1`,Me,w(t.$t(`views.${String(t.$route.name).toLowerCase()}.title`)),1)),v(h,{position:`left`},{default:l(()=>[v(c,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:n[0]||=e=>t.$router.push(`/menu`)},{icon:l(()=>[v(o,{class:`w-6 h-6`})]),_:1})]),_:1}),_(`div`,Ne,[v(E,{class:`flex-1`},{default:l(()=>[v(C,null,{default:l(()=>[v(S,{class:`w-4 h-4`})]),_:1}),v(T,{modelValue:y(k),"onUpdate:modelValue":n[1]||=e=>g(k)?k.value=e:null,placeholder:y(p)(`views.plugins.search`),class:`w-full`},null,8,[`modelValue`,`placeholder`])]),_:1})]),v(O,{name:`fade-2`,mode:`out-in`},{default:l(()=>[y(M)?(f(),x(`div`,{key:`loading`,class:`grid w-full gap-2`,style:b({gridTemplateColumns:`repeat(auto-fill, minmax(${y(m)?`100%`:`450px`}, 1fr))`})},[(f(!0),x(u,null,s(y(F),e=>(f(),d(D,{key:e,height:`${y(Y).HEIGHT}px`,class:`cui-card`},null,8,[`height`]))),128))],4)):!y(P).length||!(`hasPermission`in t?t.hasPermission:y(V))(void 0,`admin`)?(f(),x(`div`,Pe,[v(A,{class:`w-12 h-12 text-muted`}),_(`span`,Fe,w(t.$t(`views.plugins.no_plugins`)),1)])):(f(),x(`div`,{key:`content`,class:`grid w-full gap-2`,style:b({gridTemplateColumns:`repeat(auto-fill, minmax(${y(m)?`100%`:`450px`}, 1fr))`})},[(f(!0),x(u,null,s(y(P),(e,t)=>(f(),d(j,{key:t,plugin:e},null,8,[`plugin`]))),128))],4))]),_:1}),(`hasPermission`in t?t.hasPermission:y(V))(void 0,`admin`)?(f(),d(R,{key:1,"tooltip-props":{value:t.$t(`views.plugins.search_plugins`)},"button-props":{class:`text-white`},icon:y(q),"icon-props":{width:`30px`,height:`30px`},onClick:L},null,8,[`tooltip-props`,`icon`])):a(``,!0)])}}});export{Ie as default};
@@ -0,0 +1 @@
1
+ import{F as e,Hn as t,J as n,Ki as r,M as i,P as a,Pn as o,Tn as s,U as c,X as l,Z as ee,bn as u,fi as d,hi as f,j as p,qi as m,tt as h,yn as te,z as ne}from"./vendor-cameraui-BABuGvhg.js";import{$t as g,Cn as _,Dn as v,En as y,Hn as b,Jt as re,Kt as x,Ln as ie,Qn as ae,Qt as S,Tn as C,Un as oe,Xn as w,Xt as T,Yn as se,Zt as E,an as D,cr as O,dr as ce,en as k,er as A,fr as j,in as le,jn as M,lr as N,rr as P,sn as F,zn as I}from"./vendor-zxCOTbSj.js";import{S as ue}from"./CuiCameraCard-BxWf13Ct.js";import{t as L}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as R,r as z,t as de}from"./useSharedComposables-Ca_A3w0h.js";import{C as fe,J as pe,i as B,u as V}from"./vendor-primevue-CsC6U_Xu.js";import{n as H,r as U,t as me}from"./view-grid-DM5fFhOq.js";import{t as W}from"./eventIcons-BMaAnQWe.js";import{t as he}from"./CuiCameraSnapshot-Cg8Vjve3.js";import{n as ge}from"./types-DenR6qD2.js";import{t as _e}from"./cameras-Co3xGKAG.js";import{t as ve}from"./useCuiDialog-C4xS4vrs.js";import{n as ye,t as be}from"./CuiTopbarSlot-DE7fTsSm.js";import{t as xe}from"./ring-resize-BseE4cGi.js";import{n as G,t as Se}from"./CuiRecordingsGrid-Bl0vRmPG.js";import{n as Ce,t as we}from"./round-alt-arrow-left-bold-pJUhUxdP.js";var K={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function q(e,t){return C(),k(`svg`,K,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M3 11h8V3H3m2 2h4v4H5m8 12h8v-8h-8m2 2h4v4h-4M3 21h8v-8H3m2 2h4v4H5m8-16v8h8V3m-2 6h-4V5h4Z`},null,-1)]])}var Te=w({name:`mdi-view-grid-outline`,render:q}),J={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Y(e,t){return C(),k(`svg`,J,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M22 18.605a.75.75 0 0 1-.75.75h-5.1a2.93 2.93 0 0 1-5.66 0H2.75a.75.75 0 1 1 0-1.5h7.74a2.93 2.93 0 0 1 5.66 0h5.1a.75.75 0 0 1 .75.75m0-13.21a.75.75 0 0 1-.75.75H18.8a2.93 2.93 0 0 1-5.66 0H2.75a.75.75 0 1 1 0-1.5h10.39a2.93 2.93 0 0 1 5.66 0h2.45a.74.74 0 0 1 .75.75m0 6.6a.74.74 0 0 1-.75.75H9.55a2.93 2.93 0 0 1-5.66 0H2.75a.75.75 0 1 1 0-1.5h1.14a2.93 2.93 0 0 1 5.66 0h11.7a.75.75 0 0 1 .75.75`},null,-1)]])}var Ee=w({name:`mage-filter-fill`,render:Y}),De={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function X(e,t){return C(),k(`svg`,De,[...t[0]||=[E(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-miterlimit":`10`,"stroke-width":`1.5`,d:`M21.25 12H8.895m-4.361 0H2.75m18.5 6.607h-5.748m-4.361 0H2.75m18.5-13.214h-3.105m-4.361 0H2.75m13.214 2.18a2.18 2.18 0 1 0 0-4.36a2.18 2.18 0 0 0 0 4.36Zm-9.25 6.607a2.18 2.18 0 1 0 0-4.36a2.18 2.18 0 0 0 0 4.36Zm6.607 6.608a2.18 2.18 0 1 0 0-4.361a2.18 2.18 0 0 0 0 4.36Z`},null,-1)]])}var Oe=w({name:`mage-filter`,render:X}),ke={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ae(e,t){return C(),k(`svg`,ke,[...t[0]||=[E(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`m6 9l6 6l6-6`},null,-1)]])}var je=w({name:`tabler-chevron-down`,render:Ae}),Me={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ne(e,t){return C(),k(`svg`,Me,[...t[0]||=[E(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`m6 15l6-6l6 6`},null,-1)]])}var Pe=w({name:`tabler-chevron-up`,render:Ne}),Z={class:`flex flex-col gap-2`},Q={class:`sidebar-section-title`},$={class:`p-input-icon-left w-full`},Fe={class:`flex flex-col gap-2`},Ie={class:`sidebar-section-title flex items-center gap-1.5`},Le={key:0,class:`flex flex-col gap-1.5 mt-1`},Re={class:`text-xs text-muted`},ze={class:`flex items-center gap-3`},Be={class:`text-xs font-mono w-8 text-right shrink-0`},Ve={class:`flex flex-col gap-2`},He={class:`sidebar-section-title`},Ue={class:`flex flex-col gap-2`},We={class:`sidebar-section-title`},Ge={class:`relative rounded-md overflow-hidden`},Ke={class:`flex flex-col gap-2`},qe={class:`sidebar-section-title`},Je={class:`flex items-center gap-3`},Ye={class:`text-xs font-mono w-8 text-right shrink-0`},Xe={class:`flex flex-col gap-2`},Ze={class:`sidebar-section-title`},Qe={class:`flex flex-wrap gap-1`},$e={class:`flex flex-col gap-2`},et={key:0,class:`flex flex-col gap-2`},tt={class:`flex items-center gap-2 cursor-pointer text-sm`},nt={key:0,class:`flex flex-col gap-2 ml-6`},rt={class:`filter-logic-divider`},it={class:`flex flex-col gap-2`},at={key:0,class:`flex flex-col gap-2`},ot={class:`filter-logic-divider`},st={class:`flex flex-col gap-2`},ct={key:0,class:`flex flex-col gap-2`},lt={class:`flex items-center gap-2 cursor-pointer text-sm`},ut=288,dt=L(F({__name:`RecordingsFilterSidebar`,props:{filters:{},cameras:{},isOpen:{type:Boolean},isOverlay:{type:Boolean},semanticSearchAvailable:{type:Boolean},semanticSearchLoading:{type:Boolean}},emits:[`update:filters`,`semantic-search`,`close`],setup(e,{expose:r,emit:i}){let a={doorbell:`views.recordings.audio_doorbell`,glass_break:`views.recordings.audio_glass_break`,siren:`views.recordings.audio_siren`,speaking:`views.recordings.audio_speaking`,gunshot:`views.recordings.audio_gunshot`,dog_bark:`views.recordings.audio_dog_bark`,baby_cry:`views.recordings.audio_baby_cry`,alarm:`views.recordings.audio_alarm`,scream:`views.recordings.audio_scream`,cat:`views.recordings.audio_cat`,car_alarm:`views.recordings.audio_car_alarm`,smoke_alarm:`views.recordings.audio_smoke_alarm`},c={face:`views.recordings.attr_face`,license_plate:`views.recordings.attr_license_plate`},p={motion:`views.recordings.sensor_motion`,audio:`views.recordings.sensor_audio`,contact:`views.recordings.sensor_contact`,doorbell:`views.recordings.sensor_doorbell`,switch:`views.recordings.sensor_switch`,light:`views.recordings.sensor_light`,siren:`views.recordings.sensor_siren`,security_system:`views.recordings.sensor_security_system`,"line-crossing":`views.recordings.sensor_line_crossing`},ne=new Set([`motion`,`audio`]),_=e,y=i,{t:b}=d(),{xlBreakpoint:re}=de(),{topbarHeight:oe,bottombarHeight:w}=R(),{icons:N,generic:P}=W(),F=N,L=Pe,z=je,pe=ie(`sidebarRef`),H=A(_.filters.semanticQuery??``),U=ae({eventTypes:!0,attributes:!0,sensorEvents:!0}),me=T(()=>_.isOpen?ut:0),_e=T(()=>_.cameras.map(e=>({id:e.id,name:e.name}))),ve=T(()=>{if(_.filters.cameraIds.length===1)return _.cameras.find(e=>e.id===_.filters.cameraIds[0])?.name}),ye=T(()=>[{label:b(`views.recordings.filter_and`),value:`and`},{label:b(`views.recordings.filter_or`),value:`or`}]),be=T(()=>[{label:b(`views.recordings.time_1h`),value:`1h`},{label:b(`views.recordings.time_1d`),value:`1d`},{label:b(`views.recordings.time_1w`),value:`1w`},{label:b(`views.recordings.time_1m`),value:`1m`}]),xe=T(()=>u.filter(e=>!ne.has(e)).map(e=>({label:b(`views.recordings.type_${e}`),value:e,icon:N[e]??P}))),G=T(()=>({label:b(`views.recordings.type_other`),value:n,icon:N.other??P})),Se=T(()=>o.map(e=>({label:b(p[e]??`views.recordings.sensor_${e}`),value:e,icon:F[e]??P}))),Ce=T(()=>s.map(e=>({label:b(a[e]??e),value:e,icon:N[e]??P}))),we=T(()=>te.map(e=>({label:b(c[e]??`views.recordings.attr_${e}`),value:e,icon:N[e]??P})));function K(e,t){y(`update:filters`,{..._.filters,[e]:t})}let q=m(e=>{K(`search`,e)},300);function Te(){let e=H.value.trim();K(`semanticQuery`,e),y(`semantic-search`,e)}function J(e){let t=[..._.filters.eventTypes],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),K(`eventTypes`,t)}function Y(e){let t=[..._.filters.audioLabels],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),K(`audioLabels`,t)}function Ee(e){let t=[..._.filters.sensorEvents],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),K(`sensorEvents`,t)}function De(e){let t=[..._.filters.hasAttributes],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),K(`hasAttributes`,t)}function X(e){U[e]=!U[e]}return I(H,e=>{!e?.trim()&&_.filters.semanticQuery&&K(`semanticQuery`,``)}),f(pe,e=>{let t=e.target;t.closest(`#recordings-sidebar-toggle`)||t.closest(`[data-pc-section="overlay"], [data-pc-section="panel"], .p-connected-overlay`)||_.isOpen&&(_.isOverlay||!re.value)&&y(`close`)}),r({sidebarWidth:me}),(n,r)=>{let i=h,a=ge,o=B,s=t,c=l,u=V,d=he,f=ue,p=fe,m=ee;return C(),k(`nav`,{ref_key:`sidebarRef`,ref:pe,class:`recordings-sidebar fixed transition-all duration-200 overflow-x-hidden overflow-y-auto md:!pl-0 pl-safe pb-safe flex flex-col z-4`,style:ce({width:`${O(me)}px`,borderRightWidth:e.isOpen?`1px`:`0px`,paddingBottom:`calc(env(safe-area-inset-top, 0px) + env(safe-area-inset-bottom, 0px) + ${O(w)}px + ${O(oe)}px)`})},[E(`div`,{class:`flex flex-col gap-4 p-4`,style:ce({width:`${ut}px`})},[E(`div`,Z,[E(`label`,Q,j(n.$t(`views.recordings.search`)),1),E(`span`,$,[D(i,{"model-value":e.filters.search,placeholder:n.$t(`views.recordings.search_placeholder`),class:`w-full text-sm`,"onUpdate:modelValue":r[0]||=e=>O(q)(e)},null,8,[`model-value`,`placeholder`])])]),r[18]||=E(`div`,{class:`sidebar-divider`},null,-1),E(`div`,Fe,[E(`label`,Ie,[D(a,{class:`w-3.5 h-3.5`}),le(` `+j(n.$t(`views.recordings.semantic_search`)),1)]),D(o,{modelValue:O(H),"onUpdate:modelValue":r[1]||=e=>se(H)?H.value=e:null,placeholder:n.$t(`views.recordings.semantic_search_placeholder`),class:`w-full text-sm semantic-textarea`,rows:`3`,disabled:!e.semanticSearchAvailable},null,8,[`modelValue`,`placeholder`,`disabled`]),D(s,{label:n.$t(`views.recordings.semantic_search_button`),severity:`secondary`,outlined:``,size:`small`,class:`w-full text-xs`,loading:e.semanticSearchLoading,disabled:!e.semanticSearchAvailable||!O(H)?.trim(),onClick:Te},null,8,[`label`,`loading`,`disabled`]),e.filters.semanticQuery?(C(),k(`div`,Le,[E(`label`,Re,j(n.$t(`views.recordings.min_match_score`)),1),E(`div`,ze,[D(c,{"model-value":e.filters.minSemanticScore,min:0,max:1,step:.05,class:`flex-1`,"onUpdate:modelValue":r[2]||=e=>K(`minSemanticScore`,e)},null,8,[`model-value`]),E(`span`,Be,j(Math.round(e.filters.minSemanticScore*100))+`%`,1)])])):g(``,!0)]),r[19]||=E(`div`,{class:`sidebar-divider`},null,-1),E(`div`,Ve,[E(`label`,He,j(n.$t(`views.recordings.cameras`)),1),D(u,{"model-value":e.filters.cameraIds,options:O(_e),"option-label":`name`,"option-value":`id`,placeholder:n.$t(`views.recordings.all_cameras`),class:`w-full text-sm`,"max-selected-labels":2,"show-toggle-all":!1,pt:{overlay:{style:`position: fixed`}},"onUpdate:modelValue":r[3]||=e=>K(`cameraIds`,e)},null,8,[`model-value`,`options`,`placeholder`])]),O(ve)?(C(),k(x,{key:0},[r[13]||=E(`div`,{class:`sidebar-divider`},null,-1),E(`div`,Ue,[E(`label`,We,j(n.$t(`views.recordings.grid_search`)),1),E(`div`,Ge,[D(d,{camera:O(ve),"object-fit":`cover`},null,8,[`camera`]),D(f,{"model-value":e.filters.gridRegions,"onUpdate:modelValue":r[4]||=e=>K(`gridRegions`,e)},null,8,[`model-value`])]),D(s,{label:n.$t(`views.recordings.grid_clear`),severity:`secondary`,outlined:``,size:`small`,class:`w-full text-xs`,disabled:e.filters.gridRegions.length===0,onClick:r[5]||=e=>K(`gridRegions`,[])},null,8,[`label`,`disabled`])])],64)):g(``,!0),r[20]||=E(`div`,{class:`sidebar-divider`},null,-1),E(`div`,Ke,[E(`label`,qe,j(n.$t(`views.recordings.confidence`)),1),E(`div`,Je,[D(c,{"model-value":e.filters.minConfidence,min:0,max:1,step:.05,class:`flex-1`,"onUpdate:modelValue":r[6]||=e=>K(`minConfidence`,e)},null,8,[`model-value`]),E(`span`,Ye,j(Math.round(e.filters.minConfidence*100))+`%`,1)])]),r[21]||=E(`div`,{class:`sidebar-divider`},null,-1),E(`div`,Xe,[E(`label`,Ze,j(n.$t(`views.recordings.time_range`)),1),E(`div`,Qe,[(C(!0),k(x,null,v(O(be),t=>(C(),S(s,{key:t.value,label:t.label,severity:e.filters.timeRange===t.value?void 0:`secondary`,outlined:e.filters.timeRange!==t.value,size:`small`,class:`text-xs flex-1 min-w-0`,onClick:n=>K(`timeRange`,e.filters.timeRange===t.value?null:t.value)},null,8,[`label`,`severity`,`outlined`,`onClick`]))),128))])]),r[22]||=E(`div`,{class:`sidebar-divider`},null,-1),E(`div`,$e,[E(`button`,{class:`sidebar-section-title flex items-center justify-between w-full cursor-pointer`,onClick:r[7]||=e=>X(`sensorEvents`)},[E(`span`,null,j(n.$t(`views.recordings.sensor_events`)),1),(C(),S(M(O(U).sensorEvents?O(L):O(z)),{class:`w-4 h-4 text-muted`}))]),O(U).sensorEvents?(C(),k(`div`,et,[(C(!0),k(x,null,v(O(Se),t=>(C(),k(x,{key:t.value},[E(`label`,tt,[D(p,{"model-value":e.filters.sensorEvents.includes(t.value),binary:!0,"onUpdate:modelValue":e=>Ee(t.value)},null,8,[`model-value`,`onUpdate:modelValue`]),(C(),S(M(t.icon),{class:`w-4 h-4 text-muted`})),E(`span`,null,j(t.label),1)]),t.value===`audio`&&e.filters.sensorEvents.includes(`audio`)?(C(),k(`div`,nt,[(C(!0),k(x,null,v(O(Ce),t=>(C(),k(`label`,{key:t.value,class:`flex items-center gap-2 cursor-pointer text-sm`},[D(p,{"model-value":e.filters.audioLabels.includes(t.value),binary:!0,"onUpdate:modelValue":e=>Y(t.value)},null,8,[`model-value`,`onUpdate:modelValue`]),(C(),S(M(t.icon),{class:`w-4 h-4 text-muted`})),E(`span`,null,j(t.label),1)]))),128))])):g(``,!0)],64))),128))])):g(``,!0)]),E(`div`,rt,[r[14]||=E(`div`,{class:`filter-logic-line`},null,-1),D(m,{"model-value":e.filters.filterLogicTriggers,options:O(ye),"option-label":`label`,"option-value":`value`,"allow-empty":!1,class:`filter-logic-toggle`,"onUpdate:modelValue":r[8]||=e=>K(`filterLogicTriggers`,e)},null,8,[`model-value`,`options`]),r[15]||=E(`div`,{class:`filter-logic-line`},null,-1)]),E(`div`,it,[E(`button`,{class:`sidebar-section-title flex items-center justify-between w-full cursor-pointer`,onClick:r[9]||=e=>X(`eventTypes`)},[E(`span`,null,j(n.$t(`views.recordings.event_type`)),1),(C(),S(M(O(U).eventTypes?O(L):O(z)),{class:`w-4 h-4 text-muted`}))]),O(U).eventTypes?(C(),k(`div`,at,[(C(!0),k(x,null,v(O(xe),t=>(C(),k(`label`,{key:t.value,class:`flex items-center gap-2 cursor-pointer text-sm`},[D(p,{"model-value":e.filters.eventTypes.includes(t.value),binary:!0,"onUpdate:modelValue":e=>J(t.value)},null,8,[`model-value`,`onUpdate:modelValue`]),(C(),S(M(t.icon),{class:`w-4 h-4 text-muted`})),E(`span`,null,j(t.label),1)]))),128))])):g(``,!0)]),E(`div`,ot,[r[16]||=E(`div`,{class:`filter-logic-line`},null,-1),D(m,{"model-value":e.filters.filterLogicAttributes,options:O(ye),"option-label":`label`,"option-value":`value`,"allow-empty":!1,class:`filter-logic-toggle`,"onUpdate:modelValue":r[10]||=e=>K(`filterLogicAttributes`,e)},null,8,[`model-value`,`options`]),r[17]||=E(`div`,{class:`filter-logic-line`},null,-1)]),E(`div`,st,[E(`button`,{class:`sidebar-section-title flex items-center justify-between w-full cursor-pointer`,onClick:r[11]||=e=>X(`attributes`)},[E(`span`,null,j(n.$t(`views.recordings.attributes`)),1),(C(),S(M(O(U).attributes?O(L):O(z)),{class:`w-4 h-4 text-muted`}))]),O(U).attributes?(C(),k(`div`,ct,[(C(!0),k(x,null,v(O(we),t=>(C(),k(`label`,{key:t.value,class:`flex items-center gap-2 cursor-pointer text-sm`},[D(p,{"model-value":e.filters.hasAttributes.includes(t.value),binary:!0,"onUpdate:modelValue":e=>De(t.value)},null,8,[`model-value`,`onUpdate:modelValue`]),(C(),S(M(t.icon),{class:`w-4 h-4 text-muted`})),E(`span`,null,j(t.label),1)]))),128)),E(`label`,lt,[D(p,{"model-value":e.filters.eventTypes.includes(O(G).value),binary:!0,"onUpdate:modelValue":r[12]||=e=>J(O(G).value)},null,8,[`model-value`]),(C(),S(M(O(G).icon),{class:`w-4 h-4 text-muted`})),E(`span`,null,j(O(G).label),1)])])):g(``,!0)])],4)],4)}}}),[[`__scopeId`,`data-v-de3974e2`]]),ft={class:`font-semibold text-xl truncate`},pt={class:`w-full h-full relative`},mt={key:0,class:`w-full flex flex-row h-[calc(40px+1rem)] py-2 items-center fixed z-10`},ht={class:`relative z-2 page-title !m-0`},gt={key:0,class:`flex items-center gap-2 mb-2 text-xs text-muted ml-auto`},_t={key:0,class:`inline-flex items-center gap-1`},vt={key:2,class:`flex justify-center py-4`},yt={key:3,class:`flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4`},bt={class:`text-muted text-sm`},xt=288,St=10,Ct=11,wt=F({__name:`Recordings`,setup(n){let o=new _e,s=ve(),{smBreakpoint:l,xlBreakpoint:ee,mdBreakpoint:u}=de(),{isTouch:d}=z(),{registerScrollToTop:f}=ye();if(!d.value&&typeof VideoDecoder<`u`){let e=i({cacheSize:20});y(ne,e),r(()=>e.dispose())}let{results:m,isSearching:h,isAvailable:te,hasSearched:v,search:x,clear:ae}=e(),{data:w}=o.getCamerasQuery({page:1,pageSize:-1}),se={"1h":3600*1e3,"1d":1440*60*1e3,"1w":10080*60*1e3,"1m":720*60*60*1e3},M=ie(`gridRef`),F=A(`closed`),ue=A(!1),L=A({search:``,semanticQuery:``,filterLogicTriggers:`or`,filterLogicAttributes:`or`,cameraIds:[],timeRange:null,customDateRange:null,eventTypes:[],audioLabels:[],hasAttributes:[],sensorEvents:[],gridRegions:[],minConfidence:.5,minSemanticScore:.5}),R=P({state:`ended`,hasDetections:!0}),fe=JSON.stringify(R.value),B=A(!1),V=P([]),W=T(()=>ee.value?!0:F.value===`opened`),he=T(()=>u.value),K=T(()=>u.value?`0px`:W.value?`${xt}px`:`0px`),q=T(()=>(w.value?.result??[]).map(e=>({id:e._id,name:e.name}))),J=T(()=>{let e=new Map;for(let t of q.value)e.set(t.id,t.name);return e}),Y=T(()=>{let e=new Map;for(let t of w.value?.result??[])e.set(t._id,t);return e}),De=T(()=>L.value.cameraIds),X=T(()=>q.value.map(e=>e.id));f(()=>M.value?.scrollToTop());let{events:ke,isLoading:Ae,hasMore:je,loadMore:Me,loadThumbnails:Ne,getCachedThumbnails:Pe}=c({availableCameraIds:X,cameraIds:De,realtime:!0,pageSize:40,filter:R}),Z=T(()=>{let e=new Map;for(let t of m.value??[]){let n=e.get(t.eventId);(!n||t.score>n)&&e.set(t.eventId,t.score)}return e}),Q=T(()=>v.value),$=T(()=>{let e=ke.value.filter(e=>e.state===`ended`),t=L.value;if(t.timeRange&&se[t.timeRange]){let n=Date.now()-se[t.timeRange];e=e.filter(e=>e.startTime>=n)}if(t.gridRegions.length>0&&(e=e.filter(e=>e.segments.some(e=>e.detections.some(e=>e.box&&Re(e.box,t.gridRegions))))),Q.value){let n=.15,r=t.minSemanticScore*(.38-n)+n;e=e.filter(e=>{let t=Z.value.get(e.id);return t!=null&&t>=r}),e.sort((e,t)=>(Z.value.get(t.id)??0)-(Z.value.get(e.id)??0))}return e}),Fe=T(()=>B.value&&V.value.length?V.value:$.value.map(e=>({event:e,key:e.id})));function Ie(){F.value=F.value===`opened`?`closed`:`opened`}function Le(){F.value=`closed`}function Re(e,t){if(t.length===0)return!0;let n=1/St,r=1/Ct,i=e.x/n,a=(e.x+e.width)/n,o=e.y/r,s=(e.y+e.height)/r;for(let e of t)if(a>e.col&&i<e.col+e.w&&s>e.row&&o<e.row+e.h)return!0;return!1}function ze(e,t){let n=[];if(e.attributes)for(let[r,i]of Object.entries(e.attributes)){let e=a(i);if(!e)continue;let o=r.indexOf(`:`);n.push({key:`${t.id}:attr:${r}`,url:e,type:o>=0?r.substring(0,o):r,label:o>=0?r.substring(o+1):void 0})}if(e.detections)for(let[r,i]of Object.entries(e.detections)){let e=a(i);if(!e)continue;let o=r.includes(`:`)?r.split(`:`).slice(1).join(`:`):r;n.push({key:`${t.id}:det:${r}`,url:e,type:o})}if(e.scenes)for(let[r,i]of Object.entries(e.scenes)){let e=a(i);e&&n.push({key:`${t.id}:scene:${r}`,url:e,type:`scene`})}let r=new Set;return n.filter(e=>r.has(e.url)?!1:(r.add(e.url),!0))}function Be(e){let t=[];for(let n of e){let e=Pe(n.id);if(!e){t.push({event:n,key:n.id});continue}let r=ze(e,n),i=p(e,n);if(i.url){let e=r.findIndex(e=>e.url===i.url);e>0&&r.unshift(...r.splice(e,1))}r.length<=1?t.push({event:n,key:n.id}):r.forEach((e,r)=>{t.push({event:n,key:r===0?n.id:e.key,thumbnailOverride:{url:e.url,type:e.type,label:e.label}})})}return t}function Ve(e){!e.semanticQuery?.trim()&&L.value.semanticQuery?.trim()&&ae(),L.value=e}function He(e){if(!e.trim()){ae();return}x(e)}function Ue(e){let t=Y.value.get(e.cameraId);t&&s.openComponentDialog(H,{data:{title:t.name,stayActive:!0,hideCancelButton:!0,hideConfirmButton:!0,contentProps:{camera:t,eventTimestamp:e.startTime},headerActions:e.segments?.some(e=>e?.description)?[{icon:ge,toggle:!0,onClick:()=>{}}]:void 0,draggable:!0,blockDragOnSelectors:[`.p-dialog-body`],dismissableMask:!1,modal:!1,dialogContentClass:`!px-0 h-full`,goTo:`/cameras/${t.name}?startTs=${e.startTime}`},dialogSize:{desktop:{maxWidth:`800px`,maxHeight:`calc(100vh - max(1rem, env(safe-area-inset-top, 0px)) - max(1rem, env(safe-area-inset-bottom, 0px)))`,width:`50vw`}}})}return I(ee,e=>{e&&(F.value=`closed`)}),I(L,e=>{let t=e.eventTypes.length>0||e.sensorEvents.length>0||e.audioLabels.length>0||e.hasAttributes.length>0,n={types:e.eventTypes.length>0?e.eventTypes:void 0,triggers:e.sensorEvents.length>0?e.sensorEvents:void 0,triggerLabels:e.audioLabels.length>0?e.audioLabels:void 0,attributes:e.hasAttributes.length>0?e.hasAttributes:void 0,filterLogicTriggers:t?e.filterLogicTriggers:void 0,filterLogicAttributes:t?e.filterLogicAttributes:void 0,search:e.search||void 0,minConfidence:e.minConfidence>0?e.minConfidence:void 0,state:`ended`,hasDetections:!t},r=JSON.stringify(n);r!==fe&&(fe=r,R.value=n)},{deep:!0,immediate:!0}),I(B,e=>{e?V.value=Be($.value):V.value=[]}),I($,e=>{if(!B.value)return;let t=new Set(e.map(e=>e.id)),n=new Set(V.value.map(e=>e.event.id)),r=V.value.filter(e=>t.has(e.event.id)),i=e.filter(e=>!n.has(e.id));i.length&&(r=[...Be(i),...r]),V.value=r}),I(()=>L.value.cameraIds,e=>{e.length!==1&&L.value.gridRegions.length>0&&(L.value={...L.value,gridRegions:[]})}),_(()=>{requestAnimationFrame(()=>{ue.value=!0})}),(e,n)=>{let r=be,i=Oe,a=Ee,o=t,s=we,c=Ce,u=Te,d=me,f=ge,p=G,m=Se,ne=xe,_=U,v=pe;return C(),k(`div`,null,[D(r,{position:`center`},{default:b(()=>[E(`span`,ft,j(e.$t(`views.recordings.title`)),1)]),_:1}),D(r,{position:`left`},{default:b(()=>[D(o,{id:`recordings-sidebar-toggle`,severity:`secondary`,class:`cui-button p-2 text-color`,text:``,rounded:``,onClick:Ie},{icon:b(()=>[O(F)===`closed`?(C(),S(i,{key:0,width:`100%`,height:`100%`})):(C(),S(a,{key:1,width:`100%`,height:`100%`}))]),_:1})]),_:1}),D(dt,{filters:O(L),cameras:O(q),"is-open":O(W),"is-overlay":O(he),"semantic-search-available":O(te),"semantic-search-loading":O(h),"onUpdate:filters":Ve,onSemanticSearch:He,onClose:Le},null,8,[`filters`,`cameras`,`is-open`,`is-overlay`,`semantic-search-available`,`semantic-search-loading`]),(C(),S(re,{to:`#container`,defer:``},[O(W)&&O(he)?(C(),k(`div`,{key:0,class:`fixed top-0 left-0 right-0 bottom-0 w-full h-full bg-black/50 z-1`,onClick:Le})):g(``,!0)])),E(`main`,{class:`relative w-full h-full`,style:ce({paddingLeft:O(K),transition:O(ue)?`padding-left 200ms`:void 0})},[E(`div`,pt,[O(l)?g(``,!0):(C(),k(`div`,mt,[n[1]||=E(`div`,{class:`ml-2`},null,-1),O(ee)?g(``,!0):(C(),S(o,{key:0,id:`recordings-sidebar-toggle`,severity:`secondary`,class:`mr-2 cui-icon-lg relative z-2`,text:``,rounded:``,onClick:Ie},{icon:b(()=>[O(W)?(C(),S(s,{key:0,width:`100%`,height:`100%`})):(C(),S(c,{key:1,width:`100%`,height:`100%`}))]),_:1})),E(`h1`,ht,j(e.$t(`views.recordings.title`)),1),n[2]||=E(`div`,{class:`gradient-blur rotate-180 !h-[70px]`},[E(`div`),E(`div`),E(`div`),E(`div`),E(`div`),E(`div`)],-1)])),E(`div`,{class:N([`px-2 h-full w-full flex flex-col`,{"pt-4":O(l),"pt-[calc(40px+2rem)]":!O(l)}])},[O($).length||O(Q)?(C(),k(`div`,gt,[oe((C(),S(o,{severity:O(B)?`primary`:`secondary`,text:``,rounded:``,class:`cui-icon-sm`,onClick:n[0]||=e=>B.value=!O(B)},{icon:b(()=>[O(B)?(C(),S(d,{key:1,width:`100%`,height:`100%`})):(C(),S(u,{key:0,width:`100%`,height:`100%`}))]),_:1},8,[`severity`])),[[v,{value:e.$t(`views.recordings.ungroup`)},void 0,{bottom:!0}]]),E(`span`,null,j(e.$t(`views.recordings.result_count`,{count:O(Fe).length})),1),O(Q)?(C(),k(`span`,_t,[D(f,{class:`w-3 h-3`}),le(` `+j(e.$t(`views.recordings.semantic_results`,{count:O(Z).size})),1)])):g(``,!0)])):g(``,!0),O(Fe).length?(C(),S(m,{key:1,ref_key:`gridRef`,ref:M,items:O(Fe),"min-item-width":O(l)?160:180,gap:8,"has-more":O(je),"load-more":O(Me),"item-key":e=>e.key,class:`flex-1 min-h-0`},{item:b(({item:e})=>[D(p,{event:e.event,"camera-name":O(J).get(e.event.cameraId),camera:O(Y).get(e.event.cameraId),"load-thumbnails":O(Ne),"semantic-score":O(Z).get(e.event.id),"thumbnail-override":e.thumbnailOverride,onScrollToEvent:()=>Ue(e.event)},null,8,[`event`,`camera-name`,`camera`,`load-thumbnails`,`semantic-score`,`thumbnail-override`,`onScrollToEvent`])]),_:1},8,[`items`,`min-item-width`,`has-more`,`load-more`,`item-key`])):g(``,!0),O(Ae)||O(h)?(C(),k(`div`,vt,[D(ne,{width:`24px`,height:`24px`,class:`text-muted`})])):g(``,!0),!O($).length&&!O(Ae)&&!O(h)?(C(),k(`div`,yt,[D(_,{class:`w-12 h-12 text-muted`}),E(`span`,bt,j(e.$t(`views.recordings.no_recordings`)),1)])):g(``,!0)],2)])],4)])}}});export{wt as default};
@@ -1 +1 @@
1
- import{Hn as e,Ni as t,Pi as n,Si as r,Vn as i,hi as a,qi as o,zi as s}from"./vendor-cameraui-D-WYtlxb.js";import{$t as c,Cn as l,Dn as u,Hn as d,Kt as f,Ln as p,Qt as m,Tn as h,Xt as g,Zt as _,_n as v,an as y,cr as b,dr as x,en as S,er as C,fr as w,jn as T,kn as E,lr as D,or as O,sn as k,zn as A}from"./vendor-CUsAwmr-.js";import{f as j,l as M}from"./vendor-core-CWeZebhd.js";import{t as N}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as P,o as F,r as I,s as L,t as R}from"./useSharedComposables-CzkF-tst.js";import{n as z}from"./router-CYuS11OS.js";import{t as B}from"./hasPermission-BHM3xbrG.js";import{t as V}from"./CuiTopbarSlot-BlbZqDDn.js";import{t as H}from"./routerState-BIdUnXLb.js";import{n as U,t as W}from"./round-alt-arrow-left-bold-B9Q0L9Pk.js";var G={},K={class:`w-full h-full flex items-center justify-center`};function q(e,t){let n=i;return h(),S(`div`,K,[y(n,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])}var J=N(G,[[`render`,q]]),Y={key:0},X={key:1},Z={class:`overflow-hidden w-full`},Q={class:`ml-2 flex flex-row items-center justify-between`},ee={class:`text-start flex-1`},te={class:`text-sm font-bold max-w-100 truncate`},ne={key:0,class:`text-sm text-muted font-normal`},re=N(k({__name:`CuiSubNavItem`,props:{label:{},to:{},description:{},icon:{},activeIcon:{}},setup(t){let{icon:n,activeIcon:r,label:i,description:a,to:o}=O(t);return(t,s)=>{let l=e,u=E(`RouterLink`);return h(),m(u,{to:b(o)},{default:d(({isExactActive:e})=>[y(l,{text:``,severity:`secondary`,class:D([`subnavitem-button w-full h-[120px] flex items-start justify-start p-6 bg-none text-color hover:!text-primary active:!text-primary focus:!text-primary rounded-none`,{"active !text-primary":e}]),fluid:``},{default:d(()=>[b(n)&&!e||!b(r)?(h(),S(`div`,Y,[y(b(n),{class:`w-[24px] h-[24px]`})])):b(r)&&e?(h(),S(`div`,X,[y(b(r),{class:`w-[24px] h-[24px]`})])):c(``,!0),_(`div`,Z,[_(`div`,Q,[_(`div`,ee,[_(`div`,te,w(b(i)),1),b(a)?(h(),S(`div`,ne,w(b(a)),1)):c(``,!0)])])])]),_:2},1032,[`class`])]),_:1},8,[`to`])}}}),[[`__scopeId`,`data-v-a5399c04`]]),$={CLOSED:0,EXPANDED:288},ie=N(k({__name:`CuiSubNavbar`,setup(e,{expose:t}){let r=M(),{bus:i}=F(),{xlBreakpoint:s,mdBreakpoint:c}=R(),{bottombarHeight:d,subbarState:_,navbarState:y,topbarHeight:w}=P(),T=p(`subnavbarRef`),E=C(`closed`),D=g(()=>s.value?`opened`:E.value),O=g(()=>D.value===`closed`?$.CLOSED:$.EXPANDED),k=g(()=>z.find(e=>e.name===`Settings`).children.filter(e=>e.meta?.settingsBar&&B(e)));function j(){E.value=`closed`,i.emit({subbarState:`closed`})}function N(){v(()=>{let e=T.value?.querySelector(`.subnavitem-button.active`);e&&e.scrollIntoView({block:`center`,behavior:`smooth`})})}let I=o(N,100);return a(T,e=>{let t=e.target,n=t.closest(`#menu-icon`),r=t.closest(`#submenu-icon`),i=t.closest(`#navbar-icon`);!n&&!r&&!i&&j()}),n(T,()=>{I()}),A(_,e=>{e&&e!==E.value&&(E.value=e)}),A(r.currentRoute,(e,t)=>{e.path!==t.path&&j()}),A(y,e=>{e===`opened`&&c.value&&j()}),l(()=>{N()}),t({subnavbarState:D}),(e,t)=>{let n=re;return h(),S(`nav`,{ref_key:`subnavbarRef`,ref:T,class:`cui-subnavbar fixed transition-all duration-200 overflow-x-hidden overflow-y-scroll md:!pl-0 pl-safe pb-safe w-full h-full flex flex-col`,style:x({width:`${b(O)}px`,borderRightWidth:b(D)===`opened`?`1px`:`0px`,paddingBottom:`calc(env(safe-area-inset-top, 0px) + env(safe-area-inset-bottom, 0px) + ${b(d)}px + ${b(w)}px)`})},[(h(!0),S(f,null,u(b(k),t=>(h(),m(n,{key:t.name,icon:t.meta.settingsBar.icon.default,"active-icon":t.meta.settingsBar.icon.active,to:t.path,label:e.$t(`navigation.${(t.meta?.name).toLowerCase()}`),description:e.$t(`navigation_description.${t.meta?.description}`),class:`cui-list-item !m-0 !p-0 shrink-0`,style:x({width:`${b($).EXPANDED}px`})},null,8,[`icon`,`active-icon`,`to`,`label`,`description`,`style`]))),128))],4)}}}),[[`__scopeId`,`data-v-ebf1579c`]]),ae={class:`font-semibold text-xl truncate`},oe={class:`relative flex overflow-hidden items-center justify-center w-5 h-5`},se={class:`flex flex-col justify-between w-4 h-3 transform transition-all duration-100 origin-center overflow-hidden`},ce={class:`w-full h-full relative`},le={key:0,class:`w-full flex flex-row h-[calc(40px+1rem)] py-2 items-center fixed z-2`},ue={class:`relative z-2 page-title !m-0`},de=k({__name:`Settings`,setup(n){let i=M(),a=L(),{bus:o}=F(),{isTouch:l}=I(),{mdBreakpoint:u,xlBreakpoint:f,smBreakpoint:v}=R(),{routerLoading:O}=j(H()),k=z.find(e=>e.name===`Settings`).children.filter(e=>B(e)&&e.meta?.settingsBar),N=p(`subnavbarRef`),P=p(`containerRef`),G=C(!0),{isSwiping:K,direction:q}=l.value?s(P,{threshold:50,onSwipeStart(e){let t=e.target;([`INPUT`,`TEXTAREA`,`SELECT`,`BUTTON`].includes(t.tagName)||t.closest(`.p-datatable`))&&(G.value=!1)},onSwipeEnd(){G.value=!0}}):t(P,{threshold:50,onSwipeStart(e){let t=e.target;([`INPUT`,`TEXTAREA`,`SELECT`,`BUTTON`].includes(t.tagName)||t.closest(`.p-datatable`))&&(G.value=!1)},onSwipeEnd(){G.value=!0}}),Y=r(N),X=g(()=>N.value?.subnavbarState??`closed`);function Z(){let e=X.value===`opened`?`closed`:`opened`;o.emit({subbarState:e})}return A([K,q],()=>{if(K.value&&G.value){let e=k.findIndex(e=>e.path===i.currentRoute.value.path.split(`/settings/`)[1]);switch(q.value){case`right`:{let t=k[e-1];t&&i.push({path:t.path})}break;case`left`:{let t=k[e+1];t&&i.push({path:t.path})}break}}}),(t,n)=>{let r=V,i=e,o=ie,s=W,l=U,p=J,g=E(`RouterView`);return h(),S(`div`,null,[y(r,{position:`center`},{default:d(()=>[_(`span`,ae,w(t.$t(`views.settings.title_${t.$route.meta?.name}`)),1)]),_:1}),y(r,{position:`left`},{default:d(()=>[y(i,{id:`menu-icon`,class:`cui-button relative group p-2 transition-colors duration-100 w-[40px] h-[42px] flex items-center justify-center`,severity:`secondary`,text:``,onClick:Z},{default:d(()=>[_(`div`,oe,[_(`div`,se,[_(`div`,{class:D([`h-0.5 w-2 transform transition-all duration-100 origin-center`,{"w-4 rotate-45 translate-y-[5px]":b(X)===`opened`}]),style:{backgroundColor:`var(--text-color)`}},null,2),_(`div`,{class:D([`h-0.5 w-4 rounded transform transition-all duration-100`,{"opacity-0":b(X)===`opened`}]),style:{backgroundColor:`var(--text-color)`}},null,2),_(`div`,{class:D([`h-0.5 w-3 transform transition-all duration-100 origin-center`,{"w-4 -rotate-45 -translate-y-[5px]":b(X)===`opened`}]),style:{backgroundColor:`var(--text-color)`}},null,2)])])]),_:1})]),_:1}),y(o,{ref_key:`subnavbarRef`,ref:N,class:`z-4 min-w-0`},null,512),_(`main`,{class:`relative w-full h-full`,style:x({paddingLeft:b(u)?`0px`:`${b(Y).width.value}px`})},[_(`div`,ce,[b(v)?c(``,!0):(h(),S(`div`,le,[n[0]||=_(`div`,{class:`ml-2`},null,-1),b(f)?c(``,!0):(h(),m(i,{key:0,id:`submenu-icon`,severity:`secondary`,class:`mr-2 cui-icon-lg relative z-2`,text:``,rounded:``,onClick:Z},{icon:d(()=>[b(X)===`opened`?(h(),m(s,{key:0,width:`100%`,height:`100%`})):(h(),m(l,{key:1,width:`100%`,height:`100%`}))]),_:1})),_(`h1`,ue,w(t.$t(`views.settings.title_${t.$route.meta?.name}`)),1),n[1]||=_(`div`,{class:`gradient-blur rotate-180 !h-[70px]`},[_(`div`),_(`div`),_(`div`),_(`div`),_(`div`),_(`div`)],-1)])),_(`div`,{ref_key:`containerRef`,ref:P,class:D([`px-2 h-full w-full`,{"py-4":b(v),"pt-[calc(40px+2rem)] pb-2":!b(v)}])},[b(O)&&b(a).showRouterLoadingSub.value?(h(),m(p,{key:0,class:`w-full h-full relative overflow-x-hidden`})):(h(),m(g,{key:1},{default:d(({Component:e})=>[(h(),m(T(e),{class:`h-full`}))]),_:1}))],2)])],4)])}}});export{de as default};
1
+ import{Hn as e,Ni as t,Pi as n,Si as r,Vn as i,hi as a,qi as o,zi as s}from"./vendor-cameraui-BABuGvhg.js";import{$t as c,Cn as l,Dn as u,Hn as d,Kt as f,Ln as p,Qt as m,Tn as h,Xt as g,Zt as _,_n as v,an as y,cr as b,dr as x,en as S,er as C,fr as w,jn as T,kn as E,lr as D,or as O,sn as k,zn as A}from"./vendor-zxCOTbSj.js";import{f as j,l as M}from"./vendor-core-C6lCucBy.js";import{t as N}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as P,o as F,r as I,s as L,t as R}from"./useSharedComposables-Ca_A3w0h.js";import{n as z}from"./router-CIvI3oge.js";import{t as B}from"./hasPermission-DKTmzAJw.js";import{t as V}from"./CuiTopbarSlot-DE7fTsSm.js";import{t as H}from"./routerState-cQknQxNw.js";import{n as U,t as W}from"./round-alt-arrow-left-bold-pJUhUxdP.js";var G={},K={class:`w-full h-full flex items-center justify-center`};function q(e,t){let n=i;return h(),S(`div`,K,[y(n,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])}var J=N(G,[[`render`,q]]),Y={key:0},X={key:1},Z={class:`overflow-hidden w-full`},Q={class:`ml-2 flex flex-row items-center justify-between`},ee={class:`text-start flex-1`},te={class:`text-sm font-bold max-w-100 truncate`},ne={key:0,class:`text-sm text-muted font-normal`},re=N(k({__name:`CuiSubNavItem`,props:{label:{},to:{},description:{},icon:{},activeIcon:{}},setup(t){let{icon:n,activeIcon:r,label:i,description:a,to:o}=O(t);return(t,s)=>{let l=e,u=E(`RouterLink`);return h(),m(u,{to:b(o)},{default:d(({isExactActive:e})=>[y(l,{text:``,severity:`secondary`,class:D([`subnavitem-button w-full h-[120px] flex items-start justify-start p-6 bg-none text-color hover:!text-primary active:!text-primary focus:!text-primary rounded-none`,{"active !text-primary":e}]),fluid:``},{default:d(()=>[b(n)&&!e||!b(r)?(h(),S(`div`,Y,[y(b(n),{class:`w-[24px] h-[24px]`})])):b(r)&&e?(h(),S(`div`,X,[y(b(r),{class:`w-[24px] h-[24px]`})])):c(``,!0),_(`div`,Z,[_(`div`,Q,[_(`div`,ee,[_(`div`,te,w(b(i)),1),b(a)?(h(),S(`div`,ne,w(b(a)),1)):c(``,!0)])])])]),_:2},1032,[`class`])]),_:1},8,[`to`])}}}),[[`__scopeId`,`data-v-a5399c04`]]),$={CLOSED:0,EXPANDED:288},ie=N(k({__name:`CuiSubNavbar`,setup(e,{expose:t}){let r=M(),{bus:i}=F(),{xlBreakpoint:s,mdBreakpoint:c}=R(),{bottombarHeight:d,subbarState:_,navbarState:y,topbarHeight:w}=P(),T=p(`subnavbarRef`),E=C(`closed`),D=g(()=>s.value?`opened`:E.value),O=g(()=>D.value===`closed`?$.CLOSED:$.EXPANDED),k=g(()=>z.find(e=>e.name===`Settings`).children.filter(e=>e.meta?.settingsBar&&B(e)));function j(){E.value=`closed`,i.emit({subbarState:`closed`})}function N(){v(()=>{let e=T.value?.querySelector(`.subnavitem-button.active`);e&&e.scrollIntoView({block:`center`,behavior:`smooth`})})}let I=o(N,100);return a(T,e=>{let t=e.target,n=t.closest(`#menu-icon`),r=t.closest(`#submenu-icon`),i=t.closest(`#navbar-icon`);!n&&!r&&!i&&j()}),n(T,()=>{I()}),A(_,e=>{e&&e!==E.value&&(E.value=e)}),A(r.currentRoute,(e,t)=>{e.path!==t.path&&j()}),A(y,e=>{e===`opened`&&c.value&&j()}),l(()=>{N()}),t({subnavbarState:D}),(e,t)=>{let n=re;return h(),S(`nav`,{ref_key:`subnavbarRef`,ref:T,class:`cui-subnavbar fixed transition-all duration-200 overflow-x-hidden overflow-y-scroll md:!pl-0 pl-safe pb-safe w-full h-full flex flex-col`,style:x({width:`${b(O)}px`,borderRightWidth:b(D)===`opened`?`1px`:`0px`,paddingBottom:`calc(env(safe-area-inset-top, 0px) + env(safe-area-inset-bottom, 0px) + ${b(d)}px + ${b(w)}px)`})},[(h(!0),S(f,null,u(b(k),t=>(h(),m(n,{key:t.name,icon:t.meta.settingsBar.icon.default,"active-icon":t.meta.settingsBar.icon.active,to:t.path,label:e.$t(`navigation.${(t.meta?.name).toLowerCase()}`),description:e.$t(`navigation_description.${t.meta?.description}`),class:`cui-list-item !m-0 !p-0 shrink-0`,style:x({width:`${b($).EXPANDED}px`})},null,8,[`icon`,`active-icon`,`to`,`label`,`description`,`style`]))),128))],4)}}}),[[`__scopeId`,`data-v-ebf1579c`]]),ae={class:`font-semibold text-xl truncate`},oe={class:`relative flex overflow-hidden items-center justify-center w-5 h-5`},se={class:`flex flex-col justify-between w-4 h-3 transform transition-all duration-100 origin-center overflow-hidden`},ce={class:`w-full h-full relative`},le={key:0,class:`w-full flex flex-row h-[calc(40px+1rem)] py-2 items-center fixed z-2`},ue={class:`relative z-2 page-title !m-0`},de=k({__name:`Settings`,setup(n){let i=M(),a=L(),{bus:o}=F(),{isTouch:l}=I(),{mdBreakpoint:u,xlBreakpoint:f,smBreakpoint:v}=R(),{routerLoading:O}=j(H()),k=z.find(e=>e.name===`Settings`).children.filter(e=>B(e)&&e.meta?.settingsBar),N=p(`subnavbarRef`),P=p(`containerRef`),G=C(!0),{isSwiping:K,direction:q}=l.value?s(P,{threshold:50,onSwipeStart(e){let t=e.target;([`INPUT`,`TEXTAREA`,`SELECT`,`BUTTON`].includes(t.tagName)||t.closest(`.p-datatable`))&&(G.value=!1)},onSwipeEnd(){G.value=!0}}):t(P,{threshold:50,onSwipeStart(e){let t=e.target;([`INPUT`,`TEXTAREA`,`SELECT`,`BUTTON`].includes(t.tagName)||t.closest(`.p-datatable`))&&(G.value=!1)},onSwipeEnd(){G.value=!0}}),Y=r(N),X=g(()=>N.value?.subnavbarState??`closed`);function Z(){let e=X.value===`opened`?`closed`:`opened`;o.emit({subbarState:e})}return A([K,q],()=>{if(K.value&&G.value){let e=k.findIndex(e=>e.path===i.currentRoute.value.path.split(`/settings/`)[1]);switch(q.value){case`right`:{let t=k[e-1];t&&i.push({path:t.path})}break;case`left`:{let t=k[e+1];t&&i.push({path:t.path})}break}}}),(t,n)=>{let r=V,i=e,o=ie,s=W,l=U,p=J,g=E(`RouterView`);return h(),S(`div`,null,[y(r,{position:`center`},{default:d(()=>[_(`span`,ae,w(t.$t(`views.settings.title_${t.$route.meta?.name}`)),1)]),_:1}),y(r,{position:`left`},{default:d(()=>[y(i,{id:`menu-icon`,class:`cui-button relative group p-2 transition-colors duration-100 w-[40px] h-[42px] flex items-center justify-center`,severity:`secondary`,text:``,onClick:Z},{default:d(()=>[_(`div`,oe,[_(`div`,se,[_(`div`,{class:D([`h-0.5 w-2 transform transition-all duration-100 origin-center`,{"w-4 rotate-45 translate-y-[5px]":b(X)===`opened`}]),style:{backgroundColor:`var(--text-color)`}},null,2),_(`div`,{class:D([`h-0.5 w-4 rounded transform transition-all duration-100`,{"opacity-0":b(X)===`opened`}]),style:{backgroundColor:`var(--text-color)`}},null,2),_(`div`,{class:D([`h-0.5 w-3 transform transition-all duration-100 origin-center`,{"w-4 -rotate-45 -translate-y-[5px]":b(X)===`opened`}]),style:{backgroundColor:`var(--text-color)`}},null,2)])])]),_:1})]),_:1}),y(o,{ref_key:`subnavbarRef`,ref:N,class:`z-4 min-w-0`},null,512),_(`main`,{class:`relative w-full h-full`,style:x({paddingLeft:b(u)?`0px`:`${b(Y).width.value}px`})},[_(`div`,ce,[b(v)?c(``,!0):(h(),S(`div`,le,[n[0]||=_(`div`,{class:`ml-2`},null,-1),b(f)?c(``,!0):(h(),m(i,{key:0,id:`submenu-icon`,severity:`secondary`,class:`mr-2 cui-icon-lg relative z-2`,text:``,rounded:``,onClick:Z},{icon:d(()=>[b(X)===`opened`?(h(),m(s,{key:0,width:`100%`,height:`100%`})):(h(),m(l,{key:1,width:`100%`,height:`100%`}))]),_:1})),_(`h1`,ue,w(t.$t(`views.settings.title_${t.$route.meta?.name}`)),1),n[1]||=_(`div`,{class:`gradient-blur rotate-180 !h-[70px]`},[_(`div`),_(`div`),_(`div`),_(`div`),_(`div`),_(`div`)],-1)])),_(`div`,{ref_key:`containerRef`,ref:P,class:D([`px-2 h-full w-full`,{"py-4":b(v),"pt-[calc(40px+2rem)] pb-2":!b(v)}])},[b(O)&&b(a).showRouterLoadingSub.value?(h(),m(p,{key:0,class:`w-full h-full relative overflow-x-hidden`})):(h(),m(g,{key:1},{default:d(({Component:e})=>[(h(),m(T(e),{class:`h-full`}))]),_:1}))],2)])],4)])}}});export{de as default};