@camera.ui/server 0.0.40 → 0.0.41

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 (142) hide show
  1. package/dist/interface/{@tanstack.DN6xEWwc.0.0.40.js → @tanstack.BMdKtFKV.0.0.41.js} +1 -1
  2. package/dist/interface/{@vee-validate.DGExY8om.0.0.40.js → @vee-validate.BN6pp7gT.0.0.41.js} +1 -1
  3. package/dist/interface/{@vue.PV_2gLoq.0.0.40.js → @vue.HgptpWSe.0.0.41.js} +1 -1
  4. package/dist/interface/{@vueform.NhOuWDxV.0.0.40.js → @vueform.o-ddyf2r.0.0.41.js} +1 -1
  5. package/dist/interface/{@vueuse.C9nAp_qw.0.0.40.js → @vueuse.0AqyrsW4.0.0.41.js} +1 -1
  6. package/dist/interface/{Account.BDkqURwa.0.0.40.js → Account.rWnoeynZ.0.0.41.js} +1 -1
  7. package/dist/interface/{Adminpanel.BnV2YgBI.0.0.40.js → Adminpanel.DmVBZO7B.0.0.41.js} +2 -2
  8. package/dist/interface/{Appearance.Doe36b4o.0.0.40.js → Appearance.CWq9SdBF.0.0.41.js} +1 -1
  9. package/dist/interface/{Backup.TzSY6VNu.0.0.40.js → Backup.gg2dY5Kw.0.0.41.js} +1 -1
  10. package/dist/interface/{Camera.D8oBQGzz.0.0.40.js → Camera.DC8dTFKj.0.0.41.js} +1 -1
  11. package/dist/interface/{Cameras.okZ80wIv.0.0.40.js → Cameras.BTbXKjiK.0.0.41.js} +1 -1
  12. package/dist/interface/{Camview.bUHs3eEA.0.0.40.js → Camview.9qmsYNcJ.0.0.41.js} +1 -1
  13. package/dist/interface/{Config.BFoCyyZM.0.0.40.js → Config.B6iyCBiG.0.0.41.js} +1 -1
  14. package/dist/interface/{Console.DrZjod9p.0.0.40.js → Console.D8_i4IrL.0.0.41.js} +1 -1
  15. package/dist/interface/{FirstSteps.BRAFBtOM.0.0.40.js → FirstSteps.CNdfoio6.0.0.41.js} +1 -1
  16. package/dist/interface/{NewCamera.BRR6R8Aq.0.0.40.js → NewCamera.DboRF8X5.0.0.41.js} +2 -2
  17. package/dist/interface/{Plugin.XHcOtD_R.0.0.40.js → Plugin.CtbpXA8-.0.0.41.js} +1 -1
  18. package/dist/interface/{Plugins.eTb8FApS.0.0.40.js → Plugins.C-h6Ohpb.0.0.41.js} +1 -1
  19. package/dist/interface/Recordings.DDez2bDG.0.0.41.js +1 -0
  20. package/dist/interface/Recordings.nAMAxDb-.0.0.41.js +1 -0
  21. package/dist/interface/{Settings.CzbuyfYr.0.0.40.js → Settings.BLIeDAua.0.0.41.js} +1 -1
  22. package/dist/interface/{System.CKIo2_uX.0.0.40.js → System.ttFMkejl.0.0.41.js} +1 -1
  23. package/dist/interface/{User.CeRd6RLu.0.0.40.js → User.ByejsWGp.0.0.41.js} +1 -1
  24. package/dist/interface/{VConfigEditor.vue_vue_type_script_setup_true_lang.B68gG-Th.0.0.40.js → VConfigEditor.vue_vue_type_script_setup_true_lang.Cl2zDL7n.0.0.41.js} +2 -2
  25. package/dist/interface/{VConsole.BTHoxSrh.0.0.40.js → VConsole.C_RAZERN.0.0.41.js} +1 -1
  26. package/dist/interface/VPlayer.C-i6REq9.0.0.41.js +4 -0
  27. package/dist/interface/{VPluginCard.BskYYx6z.0.0.40.js → VPluginCard.DuHfeDOo.0.0.41.js} +1 -1
  28. package/dist/interface/{ace-builds.IHJvJWwn.0.0.40.js → ace-builds.CJ5_HA6k.0.0.41.js} +1 -1
  29. package/dist/interface/{apexcharts.CChAu4xp.0.0.40.js → apexcharts.BvzAjsR8.0.0.41.js} +1 -1
  30. package/dist/interface/assets/NewCamera.0.0.41.C7CL-ujd.css +1 -0
  31. package/dist/interface/assets/{VPlayer.0.0.40.ZIghSLhp.css → VPlayer.0.0.41.C4lm2rVR.css} +1 -1
  32. package/dist/interface/assets/{vuetify.0.0.40.BMU5FWcv.css → vuetify.0.0.41.Dua9WSqa.css} +1 -1
  33. package/dist/interface/{backup.DANuXByh.0.0.40.js → backup.Eqa_gnBJ.0.0.41.js} +1 -1
  34. package/dist/interface/{dnd-core.ZmlET4hC.0.0.40.js → dnd-core.DlR0vdws.0.0.41.js} +1 -1
  35. package/dist/interface/{draggabilly.DAhNCk3u.0.0.40.js → draggabilly.MGblyd4O.0.0.41.js} +1 -1
  36. package/dist/interface/{engine.io-client.Cq18b4el.0.0.40.js → engine.io-client.Bmv4tt9j.0.0.41.js} +1 -1
  37. package/dist/interface/{fast-deep-equal.DrH0s-yy.0.0.40.js → fast-deep-equal.CltXOu8w.0.0.41.js} +1 -1
  38. package/dist/interface/{highlight.js.ChmOd23J.0.0.40.js → highlight.js.BI1DQKiW.0.0.41.js} +1 -1
  39. package/dist/interface/index.html +32 -32
  40. package/dist/interface/{linkify-it.C4Rswv8X.0.0.40.js → linkify-it.DIqOOItF.0.0.41.js} +1 -1
  41. package/dist/interface/main.DGoYNhZz.0.0.41.js +5 -0
  42. package/dist/interface/{markdown-it.BWOplVxV.0.0.40.js → markdown-it.BoSfr4I_.0.0.41.js} +1 -1
  43. package/dist/interface/{nprogress.BwLMR6Bn.0.0.40.js → nprogress.B4qekFjh.0.0.41.js} +1 -1
  44. package/dist/interface/{pinia.Iog12xl6.0.0.40.js → pinia.CzEXGLAe.0.0.41.js} +1 -1
  45. package/dist/interface/{plugins.CnjfokBM.0.0.40.js → plugins.5zIS5blM.0.0.41.js} +1 -1
  46. package/dist/interface/{qrcode.DP_K3922.0.0.40.js → qrcode.BIXps75H.0.0.41.js} +1 -1
  47. package/dist/interface/{react-dnd-touch-backend.BKYEIvTJ.0.0.40.js → react-dnd-touch-backend.BP3qju5g.0.0.41.js} +1 -1
  48. package/dist/interface/{rxjs.CZM8Xehd.0.0.40.js → rxjs.Dq5nE0it.0.0.41.js} +1 -1
  49. package/dist/interface/{socket.io-client.BneKYXJS.0.0.40.js → socket.io-client.Dd2M9OF7.0.0.41.js} +1 -1
  50. package/dist/interface/{socket.io-parser.BsC63_fg.0.0.40.js → socket.io-parser.BP9NTxl9.0.0.41.js} +1 -1
  51. package/dist/interface/sw.js +1 -1
  52. package/dist/interface/{system.BDb0ERWC.0.0.40.js → system.CX3eZanU.0.0.41.js} +1 -1
  53. package/dist/interface/{unidragger.BhtCwpmU.0.0.40.js → unidragger.Coz7gnad.0.0.41.js} +1 -1
  54. package/dist/interface/{vee-validate.CKoVC6cx.0.0.40.js → vee-validate.rx6EoM-V.0.0.41.js} +1 -1
  55. package/dist/interface/{vue-i18n.Cb6M-BsS.0.0.40.js → vue-i18n.CLbC5t4S.0.0.41.js} +1 -1
  56. package/dist/interface/{vue-inline-svg.Dw0gABtu.0.0.40.js → vue-inline-svg.BHDMo3hs.0.0.41.js} +1 -1
  57. package/dist/interface/{vue-router.BM3kqO61.0.0.40.js → vue-router.BlIBZAV8.0.0.41.js} +1 -1
  58. package/dist/interface/{vue3-apexcharts.BQqssCBa.0.0.40.js → vue3-apexcharts.CJu6sQGy.0.0.41.js} +1 -1
  59. package/dist/interface/{vue3-dnd.CCcL66LF.0.0.40.js → vue3-dnd.CKocKVAc.0.0.41.js} +1 -1
  60. package/dist/interface/{vue3-toastify.Dpy6t0fy.0.0.40.js → vue3-toastify.B344fBI7.0.0.41.js} +1 -1
  61. package/dist/interface/vuetify.cl53-mu0.0.0.41.js +5 -0
  62. package/dist/server/package.json +5 -5
  63. package/dist/server/requirements.txt +2 -2
  64. package/dist/server/src/api/controllers/cameras.controller.js +10 -4
  65. package/dist/server/src/api/controllers/cameras.controller.js.map +1 -1
  66. package/dist/server/src/api/database/index.d.ts +1 -1
  67. package/dist/server/src/api/database/index.js +1 -1
  68. package/dist/server/src/api/database/index.js.map +1 -1
  69. package/dist/server/src/api/database/migration.js +49 -0
  70. package/dist/server/src/api/database/migration.js.map +1 -1
  71. package/dist/server/src/api/routes/cameras.routes.js +3 -3
  72. package/dist/server/src/api/routes/cameras.routes.js.map +1 -1
  73. package/dist/server/src/api/schemas/cameras.schema.d.ts +14 -14
  74. package/dist/server/src/api/schemas/cameras.schema.js +28 -6
  75. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  76. package/dist/server/src/api/services/cameras.service.d.ts +0 -1
  77. package/dist/server/src/api/services/cameras.service.js +17 -60
  78. package/dist/server/src/api/services/cameras.service.js.map +1 -1
  79. package/dist/server/src/camera/controller.js +2 -1
  80. package/dist/server/src/camera/controller.js.map +1 -1
  81. package/package.json +5 -5
  82. package/dist/interface/Recordings.0cfZFrTe.0.0.40.js +0 -1
  83. package/dist/interface/Recordings.D50AM95m.0.0.40.js +0 -1
  84. package/dist/interface/VPlayer.CD-JtKvf.0.0.40.js +0 -4
  85. package/dist/interface/assets/NewCamera.0.0.40.C5BFv264.css +0 -1
  86. package/dist/interface/main.VdZiMYnS.0.0.40.js +0 -5
  87. package/dist/interface/vuetify.CkITUpvd.0.0.40.js +0 -5
  88. /package/dist/interface/{@babel.l0sNRNKZ.0.0.40.js → @babel.l0sNRNKZ.0.0.41.js} +0 -0
  89. /package/dist/interface/{@intlify.Do1-T-x0.0.0.40.js → @intlify.Do1-T-x0.0.0.41.js} +0 -0
  90. /package/dist/interface/{@mdi.CbjpODVZ.0.0.40.js → @mdi.CbjpODVZ.0.0.41.js} +0 -0
  91. /package/dist/interface/{@react-dnd.CcwRs9xb.0.0.40.js → @react-dnd.CcwRs9xb.0.0.41.js} +0 -0
  92. /package/dist/interface/{@socket.io.Dkula2eQ.0.0.40.js → @socket.io.Dkula2eQ.0.0.41.js} +0 -0
  93. /package/dist/interface/{@turf.l0sNRNKZ.0.0.40.js → @turf.l0sNRNKZ.0.0.41.js} +0 -0
  94. /package/dist/interface/{@xterm.oesufn9X.0.0.40.js → @xterm.ChIdrMXz.0.0.41.js} +0 -0
  95. /package/dist/interface/assets/{@vueform.0.0.40.CroAHJs8.css → @vueform.0.0.41.CroAHJs8.css} +0 -0
  96. /package/dist/interface/assets/{@xterm.0.0.40.CFbL2ovg.css → @xterm.0.0.41.CFbL2ovg.css} +0 -0
  97. /package/dist/interface/assets/{Account.0.0.40.Bnw6Lbtd.css → Account.0.0.41.Bnw6Lbtd.css} +0 -0
  98. /package/dist/interface/assets/{Adminpanel.0.0.40.a3t1v3MB.css → Adminpanel.0.0.41.a3t1v3MB.css} +0 -0
  99. /package/dist/interface/assets/{Backup.0.0.40.CX0rT0QJ.css → Backup.0.0.41.CX0rT0QJ.css} +0 -0
  100. /package/dist/interface/assets/{Camera.0.0.40.Br9s6-lM.css → Camera.0.0.41.Br9s6-lM.css} +0 -0
  101. /package/dist/interface/assets/{Cameras.0.0.40.Buf1Dgce.css → Cameras.0.0.41.Buf1Dgce.css} +0 -0
  102. /package/dist/interface/assets/{Camview.0.0.40.B7Cja2ry.css → Camview.0.0.41.B7Cja2ry.css} +0 -0
  103. /package/dist/interface/assets/{Config.0.0.40.DNGo2krN.css → Config.0.0.41.DNGo2krN.css} +0 -0
  104. /package/dist/interface/assets/{Console.0.0.40.Bh8l9QnM.css → Console.0.0.41.Bh8l9QnM.css} +0 -0
  105. /package/dist/interface/assets/{FirstSteps.0.0.40.Mu8VPl13.css → FirstSteps.0.0.41.Mu8VPl13.css} +0 -0
  106. /package/dist/interface/assets/{Plugin.0.0.40.YIpAU1_n.css → Plugin.0.0.41.YIpAU1_n.css} +0 -0
  107. /package/dist/interface/assets/{Plugins.0.0.40.DXSoO9M1.css → Plugins.0.0.41.DXSoO9M1.css} +0 -0
  108. /package/dist/interface/assets/{Settings.0.0.40.CVmui2kE.css → Settings.0.0.41.CVmui2kE.css} +0 -0
  109. /package/dist/interface/assets/{User.0.0.40.BiGtIFqt.css → User.0.0.41.BiGtIFqt.css} +0 -0
  110. /package/dist/interface/assets/{VConsole.0.0.40.BCqKHpmJ.css → VConsole.0.0.41.BCqKHpmJ.css} +0 -0
  111. /package/dist/interface/assets/{VPluginCard.0.0.40.C8Lj6X-J.css → VPluginCard.0.0.41.C8Lj6X-J.css} +0 -0
  112. /package/dist/interface/assets/{highlight.0.0.40.Ch2EwETz.css → highlight.0.0.41.Ch2EwETz.css} +0 -0
  113. /package/dist/interface/assets/{logo-256.0.0.40.BCQk9H1-.png → logo-256.0.0.41.BCQk9H1-.png} +0 -0
  114. /package/dist/interface/assets/{logo-512.0.0.40.DLKVOU2S.png → logo-512.0.0.41.DLKVOU2S.png} +0 -0
  115. /package/dist/interface/assets/{logo.0.0.40.DmEiRk0z.png → logo.0.0.41.DmEiRk0z.png} +0 -0
  116. /package/dist/interface/assets/{main.0.0.40.OJngntGT.css → main.0.0.41.OJngntGT.css} +0 -0
  117. /package/dist/interface/assets/{mode-json.0.0.40.Br7xisR1.js → mode-json.0.0.41.Br7xisR1.js} +0 -0
  118. /package/dist/interface/assets/{mode-yaml.0.0.40.CIYL8U3d.js → mode-yaml.0.0.41.CIYL8U3d.js} +0 -0
  119. /package/dist/interface/assets/{vue3-toastify.0.0.40.DHXAGmwn.css → vue3-toastify.0.0.41.DHXAGmwn.css} +0 -0
  120. /package/dist/interface/{axios.CG9kBweI.0.0.40.js → axios.CG9kBweI.0.0.41.js} +0 -0
  121. /package/dist/interface/{birpc.l0sNRNKZ.0.0.40.js → birpc.l0sNRNKZ.0.0.41.js} +0 -0
  122. /package/dist/interface/{compare-versions.DqEOhma6.0.0.40.js → compare-versions.DqEOhma6.0.0.41.js} +0 -0
  123. /package/dist/interface/{dijkstrajs.C00ieaqj.0.0.40.js → dijkstrajs.C00ieaqj.0.0.41.js} +0 -0
  124. /package/dist/interface/{engine.io-parser.BiEtp6m2.0.0.40.js → engine.io-parser.BiEtp6m2.0.0.41.js} +0 -0
  125. /package/dist/interface/{entities.C20TfXL6.0.0.40.js → entities.C20TfXL6.0.0.41.js} +0 -0
  126. /package/dist/interface/{ev-emitter.X5f1qa-c.0.0.40.js → ev-emitter.X5f1qa-c.0.0.41.js} +0 -0
  127. /package/dist/interface/{get-size.D1dS-IaP.0.0.40.js → get-size.D1dS-IaP.0.0.41.js} +0 -0
  128. /package/dist/interface/{hookable.B8xFkYCm.0.0.40.js → hookable.B8xFkYCm.0.0.41.js} +0 -0
  129. /package/dist/interface/{mdurl.k9Sl0PQj.0.0.40.js → mdurl.k9Sl0PQj.0.0.41.js} +0 -0
  130. /package/dist/interface/{perfect-debounce.Cp2ysxOb.0.0.40.js → perfect-debounce.Cp2ysxOb.0.0.41.js} +0 -0
  131. /package/dist/interface/{point-in-polygon-hao.l0sNRNKZ.0.0.40.js → point-in-polygon-hao.l0sNRNKZ.0.0.41.js} +0 -0
  132. /package/dist/interface/{punycode.js.Dj65hjkv.0.0.40.js → punycode.js.Dj65hjkv.0.0.41.js} +0 -0
  133. /package/dist/interface/{react-dnd-html5-backend.1HQjlkwI.0.0.40.js → react-dnd-html5-backend.1HQjlkwI.0.0.41.js} +0 -0
  134. /package/dist/interface/{redux.BFxtlG_c.0.0.40.js → redux.BFxtlG_c.0.0.41.js} +0 -0
  135. /package/dist/interface/{sweepline-intersections.l0sNRNKZ.0.0.40.js → sweepline-intersections.l0sNRNKZ.0.0.41.js} +0 -0
  136. /package/dist/interface/{tslib.9k7AwCpt.0.0.40.js → tslib.9k7AwCpt.0.0.41.js} +0 -0
  137. /package/dist/interface/{types.Cz9TaZAP.0.0.40.js → types.Cz9TaZAP.0.0.41.js} +0 -0
  138. /package/dist/interface/{uc.micro.kMc2yuuw.0.0.40.js → uc.micro.kMc2yuuw.0.0.41.js} +0 -0
  139. /package/dist/interface/{utils.mAKpSMLY.0.0.40.js → utils.mAKpSMLY.0.0.41.js} +0 -0
  140. /package/dist/interface/{uuid.Ch9TGLTe.0.0.40.js → uuid.Ch9TGLTe.0.0.41.js} +0 -0
  141. /package/dist/interface/{vue.l0sNRNKZ.0.0.40.js → vue.l0sNRNKZ.0.0.41.js} +0 -0
  142. /package/dist/interface/{zod.Bn-rxnIN.0.0.40.js → zod.Bn-rxnIN.0.0.41.js} +0 -0
@@ -1,5 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["FirstSteps.BRAFBtOM.0.0.40.js","@vue.PV_2gLoq.0.0.40.js","perfect-debounce.Cp2ysxOb.0.0.40.js","hookable.B8xFkYCm.0.0.40.js","@mdi.CbjpODVZ.0.0.40.js","vee-validate.CKoVC6cx.0.0.40.js","vue-inline-svg.Dw0gABtu.0.0.40.js","vue3-toastify.Dpy6t0fy.0.0.40.js","assets/vue3-toastify.0.0.40.DHXAGmwn.css","backup.DANuXByh.0.0.40.js","system.BDb0ERWC.0.0.40.js","@tanstack.DN6xEWwc.0.0.40.js","vue-router.BM3kqO61.0.0.40.js","pinia.Iog12xl6.0.0.40.js","vuetify.CkITUpvd.0.0.40.js","assets/vuetify.0.0.40.BMU5FWcv.css","vue-i18n.Cb6M-BsS.0.0.40.js","@intlify.Do1-T-x0.0.0.40.js","axios.CG9kBweI.0.0.40.js","@vueuse.C9nAp_qw.0.0.40.js","nprogress.BwLMR6Bn.0.0.40.js","@xterm.oesufn9X.0.0.40.js","assets/@xterm.0.0.40.CFbL2ovg.css","@vee-validate.DGExY8om.0.0.40.js","zod.Bn-rxnIN.0.0.40.js","uuid.Ch9TGLTe.0.0.40.js","socket.io-client.BneKYXJS.0.0.40.js","engine.io-client.Cq18b4el.0.0.40.js","engine.io-parser.BiEtp6m2.0.0.40.js","@socket.io.Dkula2eQ.0.0.40.js","socket.io-parser.BsC63_fg.0.0.40.js","rxjs.CZM8Xehd.0.0.40.js","tslib.9k7AwCpt.0.0.40.js","assets/FirstSteps.0.0.40.Mu8VPl13.css","Cameras.okZ80wIv.0.0.40.js","VPlayer.CD-JtKvf.0.0.40.js","draggabilly.DAhNCk3u.0.0.40.js","get-size.D1dS-IaP.0.0.40.js","unidragger.BhtCwpmU.0.0.40.js","ev-emitter.X5f1qa-c.0.0.40.js","qrcode.DP_K3922.0.0.40.js","dijkstrajs.C00ieaqj.0.0.40.js","plugins.CnjfokBM.0.0.40.js","VConsole.BTHoxSrh.0.0.40.js","assets/VConsole.0.0.40.BCqKHpmJ.css","assets/VPlayer.0.0.40.ZIghSLhp.css","utils.mAKpSMLY.0.0.40.js","assets/Cameras.0.0.40.Buf1Dgce.css","Camera.D8oBQGzz.0.0.40.js","assets/Camera.0.0.40.Br9s6-lM.css","Camview.bUHs3eEA.0.0.40.js","react-dnd-html5-backend.1HQjlkwI.0.0.40.js","react-dnd-touch-backend.BKYEIvTJ.0.0.40.js","@react-dnd.CcwRs9xb.0.0.40.js","vue3-dnd.CCcL66LF.0.0.40.js","dnd-core.ZmlET4hC.0.0.40.js","redux.BFxtlG_c.0.0.40.js","fast-deep-equal.DrH0s-yy.0.0.40.js","assets/Camview.0.0.40.B7Cja2ry.css","NewCamera.BRR6R8Aq.0.0.40.js","highlight.js.ChmOd23J.0.0.40.js","assets/highlight.0.0.40.Ch2EwETz.css","markdown-it.BWOplVxV.0.0.40.js","mdurl.k9Sl0PQj.0.0.40.js","uc.micro.kMc2yuuw.0.0.40.js","entities.C20TfXL6.0.0.40.js","linkify-it.C4Rswv8X.0.0.40.js","punycode.js.Dj65hjkv.0.0.40.js","assets/NewCamera.0.0.40.C5BFv264.css","Recordings.D50AM95m.0.0.40.js","Config.BFoCyyZM.0.0.40.js","VConfigEditor.vue_vue_type_script_setup_true_lang.B68gG-Th.0.0.40.js","ace-builds.IHJvJWwn.0.0.40.js","assets/Config.0.0.40.DNGo2krN.css","Console.DrZjod9p.0.0.40.js","assets/Console.0.0.40.Bh8l9QnM.css","Plugins.eTb8FApS.0.0.40.js","VPluginCard.BskYYx6z.0.0.40.js","@vueform.NhOuWDxV.0.0.40.js","assets/@vueform.0.0.40.CroAHJs8.css","types.Cz9TaZAP.0.0.40.js","assets/VPluginCard.0.0.40.C8Lj6X-J.css","assets/Plugins.0.0.40.DXSoO9M1.css","Plugin.XHcOtD_R.0.0.40.js","assets/Plugin.0.0.40.YIpAU1_n.css","Adminpanel.BnV2YgBI.0.0.40.js","assets/Adminpanel.0.0.40.a3t1v3MB.css","Settings.CzbuyfYr.0.0.40.js","assets/Settings.0.0.40.CVmui2kE.css","Account.BDkqURwa.0.0.40.js","assets/Account.0.0.40.Bnw6Lbtd.css","Appearance.Doe36b4o.0.0.40.js","User.CeRd6RLu.0.0.40.js","assets/User.0.0.40.BiGtIFqt.css","Recordings.0cfZFrTe.0.0.40.js","Backup.TzSY6VNu.0.0.40.js","assets/Backup.0.0.40.CX0rT0QJ.css","System.CKIo2_uX.0.0.40.js","compare-versions.DqEOhma6.0.0.40.js"])))=>i.map(i=>d[i]);
2
- var no=Object.defineProperty;var ro=(s,t,e)=>t in s?no(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e;var V=(s,t,e)=>ro(s,typeof t!="symbol"?t+"":t,e);import{i as Oe,f as oo,c as ao}from"./vue3-toastify.Dpy6t0fy.0.0.40.js";import{c as lo,u as co}from"./vue-i18n.Cb6M-BsS.0.0.40.js";import{a as uo,A as Hi}from"./axios.CG9kBweI.0.0.40.js";import{u as Yt,a as ut,b as Pe,Q as ho,V as po}from"./@tanstack.DN6xEWwc.0.0.40.js";import{r as Q,u as v,E as fo,a as mo,F as Nn,c as J,w as ye,G as He,t as ft,b as I,aa as xe,ab as j,P as O,d as F,ac as ve,k as oe,g as tt,a9 as G,f as A,a7 as he,p as st,m as zt,n as Dn,R as Pi,Q as Ft,ad as ys,e as _s,$ as Pt,S as Vs,ae as go,j as bo,af as Ui,i as Ht,ag as zn,C as Rs,L as vo,ah as yo,a5 as qn,M as _o,ai as Fn,U as wo}from"./@vue.PV_2gLoq.0.0.40.js";import{d as Lt,s as Ze,c as So}from"./pinia.Iog12xl6.0.0.40.js";import{u as wt,a as Ai,c as xo,b as ko}from"./vue-router.BM3kqO61.0.0.40.js";import{u as Li,a as Co,c as Ti,b as Hn,d as Eo,e as Mo,r as Zi,f as Un,g as Po,h as Ao,o as Lo,i as To}from"./@vueuse.C9nAp_qw.0.0.40.js";import{V as Wi,a as Bo,b as je,c as Gi,d as Vo,u as Ro,T as Ki,e as ke,f as Je,g as Io,h as Oo,i as Zn,j as ws,k as $o,l as Qi,m as Ss,n as jo,o as Wn,p as No,q as Do,r as zo,s as qo,t as Fo,v as Ho,w as Uo}from"./vuetify.CkITUpvd.0.0.40.js";import{m as Zo,a as Wo,b as Go,c as Ko,d as Qo,e as Yo,f as Yi,g as Gn,h as Kn,i as Qn,j as Yn,k as Xo,l as Jo,n as ea,o as ta,p as sa,q as ia,r as na,s as Xn,t as Xi,u as ra,v as oa,w as aa,x as la,y as ca,z as ua,A as ha,B as da,C as pa,D as fa}from"./@mdi.CbjpODVZ.0.0.40.js";import{F as Gs,a as ma}from"./vee-validate.CKoVC6cx.0.0.40.js";import{t as Is}from"./@vee-validate.DGExY8om.0.0.40.js";import{z as p}from"./zod.Bn-rxnIN.0.0.40.js";import{v as Re}from"./uuid.Ch9TGLTe.0.0.40.js";import{M as ga}from"./socket.io-client.BneKYXJS.0.0.40.js";import{O as ba}from"./rxjs.CZM8Xehd.0.0.40.js";import{I as Jn}from"./vue-inline-svg.Dw0gABtu.0.0.40.js";import"./@intlify.Do1-T-x0.0.0.40.js";import"./perfect-debounce.Cp2ysxOb.0.0.40.js";import"./hookable.B8xFkYCm.0.0.40.js";import"./nprogress.BwLMR6Bn.0.0.40.js";import"./@xterm.oesufn9X.0.0.40.js";import"./engine.io-client.Cq18b4el.0.0.40.js";import"./engine.io-parser.BiEtp6m2.0.0.40.js";import"./@socket.io.Dkula2eQ.0.0.40.js";import"./socket.io-parser.BsC63_fg.0.0.40.js";import"./tslib.9k7AwCpt.0.0.40.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))i(n);new MutationObserver(n=>{for(const r of n)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function e(n){const r={};return n.integrity&&(r.integrity=n.integrity),n.referrerPolicy&&(r.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?r.credentials="include":n.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(n){if(n.ep)return;n.ep=!0;const r=e(n);fetch(n.href,r)}})();const va=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),ya=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),_a=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),wa=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),Sa=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),xa=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),ka=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),Ca="/assets/logo-512.0.0.40.DLKVOU2S.png",Ea=Object.freeze(Object.defineProperty({__proto__:null,default:Ca},Symbol.toStringTag,{value:"Module"})),Bi="/assets/logo-256.0.0.40.BCQk9H1-.png",Ma=Object.freeze(Object.defineProperty({__proto__:null,default:Bi},Symbol.toStringTag,{value:"Module"})),Pa="/assets/logo-512.0.0.40.DLKVOU2S.png",Aa=Object.freeze(Object.defineProperty({__proto__:null,default:Pa},Symbol.toStringTag,{value:"Module"})),La="/assets/logo.0.0.40.DmEiRk0z.png",Ta=Object.freeze(Object.defineProperty({__proto__:null,default:La},Symbol.toStringTag,{value:"Module"})),Ba="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20viewBox='0%200%20233.63%20233.63'%3e%3cdefs%3e%3cstyle%3e.cls-1{fill:url(%23dark_wine);}.cls-2{fill:url(%23light_wine);}.cls-3{fill:none;stroke:%23000;stroke-miterlimit:10;opacity:0;}.cls-4{fill:%23c5c6c8;}.cls-5{fill:%231a1e21;stroke:%233a3a3a;stroke-width:2px;}.cls-6{fill:%23fff;}%3c/style%3e%3clinearGradient%20id='dark_wine'%20x1='87.36'%20y1='158.67'%20x2='87.36'%20y2='59.85'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23730000'/%3e%3cstop%20offset='0.49'%20stop-color='%23a51733'/%3e%3c/linearGradient%3e%3clinearGradient%20id='light_wine'%20x1='113.06'%20y1='197.59'%20x2='113.06'%20y2='80.87'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23f44a6b'/%3e%3cstop%20offset='0.28'%20stop-color='%23df294c'/%3e%3c/linearGradient%3e%3c/defs%3e%3cg%20id='CameraUI_U'%3e%3cpath%20id='U_Left'%20class='cls-1'%20d='M47.05,119.47s7.58,16,14.12,23.42a45.28,45.28,0,0,0,16.37,11.86A49.46,49.46,0,0,0,99,158.62c9.43-.46,20.55-3.87,29.24-11.86-3.9,2.5-9.87,5.1-15.9,4.77a25.63,25.63,0,0,1-18.38-9.09c-9.39-10.31-7.62-28.35-7.75-32.68-.35-11.42.77-21.92-1.76-36.19-.46-2.64-1.79-5.19-4.55-8-1.83-1.86-8.4-5.75-13.42-5.74-7.31,0-12.95,3.71-15.38,7.84-2,3.41-3.06,4.22-4.23,25.08a217.23,217.23,0,0,0,.22,26.76Z'%20transform='translate(0.5%200.5)'/%3e%3cpath%20id='U_Right'%20class='cls-2'%20d='M144.12,89.6a16.24,16.24,0,0,1,4.06-4.9c4.16-3.4,9-3.67,10.92-3.82a19.7,19.7,0,0,1,12.53,4.58c1.19,1,6.11,5.58,7.13,17.29.73,8.51,3.31,65.93-37,87.14-4.22,2.22-18,9.25-35.66,7.38a62.43,62.43,0,0,1-20.8-6.11,65.8,65.8,0,0,1-18.89-14.23c-20.21-21.67-19.36-57.46-19.36-57.46s7.58,16,14.12,23.42a45.28,45.28,0,0,0,16.37,11.86A49.46,49.46,0,0,0,99,158.62c11.66-.57,25.93-5.64,35-18.32C143.52,126.8,138.46,100.51,144.12,89.6Z'%20transform='translate(0.5%200.5)'/%3e%3c/g%3e%3cg%20id='CameraUI_Lens'%3e%3ccircle%20id='ellipse'%20class='cls-3'%20cx='116.81'%20cy='116.81'%20r='116.31'/%3e%3cg%20id='lens'%3e%3ccircle%20id='lens_bg'%20class='cls-4'%20cx='159.13'%20cy='58.39'%20r='18.66'/%3e%3cpath%20id='lens_inner'%20class='cls-5'%20d='M169.64,58.31a11,11,0,1,1-22,0c0-6.08,4.93-11.86,11-11.86S169.64,52.23,169.64,58.31Z'%20transform='translate(0.5%200.5)'/%3e%3cg%20id='reflections'%3e%3cellipse%20id='dot_1'%20class='cls-6'%20cx='174.36'%20cy='53.69'%20rx='1.84'%20ry='1.42'/%3e%3cellipse%20id='dot_2'%20class='cls-6'%20cx='174.36'%20cy='57.08'%20rx='1.84'%20ry='1.42'/%3e%3cellipse%20id='dot_3'%20class='cls-6'%20cx='174.36'%20cy='60.46'%20rx='1.84'%20ry='1.42'/%3e%3ccircle%20id='dot_4'%20class='cls-6'%20cx='164.09'%20cy='63.77'%20r='1.66'/%3e%3cpath%20id='wide_1'%20class='cls-6'%20d='M156.63,48.9c-1.07-.88-5.52,3.09-6.31,5.43a1.53,1.53,0,0,0,0,1.26c.43.69,1.73.61,2.19.54,2.68-.44,4.71-4.09,4.8-4.37A3.21,3.21,0,0,0,156.63,48.9Z'%20transform='translate(0.5%200.5)'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",Va=Object.freeze(Object.defineProperty({__proto__:null,default:Ba},Symbol.toStringTag,{value:"Module"})),Ra="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20viewBox='0%200%20132.55%20158.35'%20width='132.5500030517578'%20height='158.35000610351562'%3e%3cdefs%3e%3cstyle%3e.cls-2-1{fill:url(%23dark_wine);}.cls-2-2{fill:url(%23light_wine);}.cls-2-3{fill:%23c5c6c8;}.cls-2-4{fill:%231a1e21;stroke:%233a3a3a;stroke-width:2px;}.cls-2-5{fill:%23fff;}%3c/style%3e%3clinearGradient%20id='dark_wine'%20x1='45.89'%20y1='124.26'%20x2='45.89'%20y2='25.44'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23730000'%3e%3c/stop%3e%3cstop%20offset='0.49'%20stop-color='%23a51733'%3e%3c/stop%3e%3c/linearGradient%3e%3clinearGradient%20id='light_wine'%20x1='71.59'%20y1='163.18'%20x2='71.59'%20y2='46.47'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23f44a6b'%3e%3c/stop%3e%3cstop%20offset='0.28'%20stop-color='%23df294c'%3e%3c/stop%3e%3c/linearGradient%3e%3c/defs%3e%3cg%20id='CameraUI_U'%3e%3cpath%20id='U_Left'%20class='cls-2-1%20svg-elem-1'%20d='M5.58,85.06s7.58,16,14.12,23.42a45.28,45.28,0,0,0,16.37,11.86,49.46,49.46,0,0,0,21.42,3.87c9.43-.46,20.55-3.87,29.24-11.86-3.9,2.5-9.87,5.1-15.9,4.77A25.68,25.68,0,0,1,52.44,108c-9.38-10.31-7.61-28.35-7.74-32.68-.35-11.42.77-21.92-1.76-36.19-.46-2.64-1.79-5.19-4.55-8C36.55,29.33,30,25.43,25,25.44c-7.31,0-12.95,3.72-15.38,7.84-2,3.41-3.07,4.22-4.23,25.08a217.23,217.23,0,0,0,.22,26.76Z'%20transform='translate(-5.05%20-4.82)'%3e%3c/path%3e%3cpath%20id='U_Right'%20class='cls-2-2%20svg-elem-2'%20d='M102.65,55.19a16.24,16.24,0,0,1,4.06-4.9c4.16-3.4,9-3.67,10.92-3.82a19.7,19.7,0,0,1,12.53,4.58c1.19,1,6.11,5.58,7.12,17.29.74,8.51,3.32,65.93-37,87.14-4.22,2.22-18,9.26-35.66,7.38a62.43,62.43,0,0,1-20.8-6.11,65.8,65.8,0,0,1-18.89-14.23C4.73,120.85,5.58,85.06,5.58,85.06s7.58,16,14.12,23.42a45.28,45.28,0,0,0,16.37,11.86,49.46,49.46,0,0,0,21.42,3.87c11.66-.57,25.93-5.64,35-18.32C102.05,92.39,97,66.1,102.65,55.19Z'%20transform='translate(-5.05%20-4.82)'%3e%3c/path%3e%3c/g%3e%3cg%20id='CameraUI_Lens'%3e%3ccircle%20id='lens_bg'%20class='cls-2-3%20svg-elem-3'%20cx='112.11'%20cy='18.66'%20r='18.66'%3e%3c/circle%3e%3cpath%20id='lens_inner'%20class='cls-2-4%20svg-elem-4'%20d='M128.17,23.9a11,11,0,1,1-22,0c0-6.08,4.93-11.86,11-11.86S128.17,17.82,128.17,23.9Z'%20transform='translate(-5.05%20-4.82)'%3e%3c/path%3e%3cg%20id='reflections'%3e%3cellipse%20id='dot_1'%20class='cls-2-5%20svg-elem-5'%20cx='127.34'%20cy='13.96'%20rx='1.84'%20ry='1.42'%3e%3c/ellipse%3e%3cellipse%20id='dot_2'%20class='cls-2-5%20svg-elem-6'%20cx='127.34'%20cy='17.34'%20rx='1.84'%20ry='1.42'%3e%3c/ellipse%3e%3cellipse%20id='dot_3'%20class='cls-2-5%20svg-elem-7'%20cx='127.34'%20cy='20.73'%20rx='1.84'%20ry='1.42'%3e%3c/ellipse%3e%3ccircle%20id='dot_4'%20class='cls-2-5%20svg-elem-8'%20cx='117.07'%20cy='24.04'%20r='1.66'%3e%3c/circle%3e%3cpath%20id='wide_1'%20class='cls-2-5%20svg-elem-9'%20d='M115.16,14.49c-1.07-.88-5.52,3.09-6.31,5.43a1.53,1.53,0,0,0,0,1.26c.43.69,1.73.61,2.18.54,2.69-.44,4.72-4.09,4.81-4.37A3.21,3.21,0,0,0,115.16,14.49Z'%20transform='translate(-5.05%20-4.82)'%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/svg%3e",Ia=Object.freeze(Object.defineProperty({__proto__:null,default:Ra},Symbol.toStringTag,{value:"Module"})),Oa="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20viewBox='-40%20-30%20300%20300'%3e%3cdefs%3e%3cstyle%3e.cls-3-1%20{fill:%20url(%23dark_wine);}%20.cls-3-2%20{fill:%20url(%23light_wine);}%20.cls-3-3%20{fill:%20none;stroke:%20%23000;stroke-miterlimit:%2010;opacity:%200;}%20.cls-3-4%20{fill:%20%23c5c6c8;}%20.cls-3-5%20{fill:%20%231a1e21;stroke:%20%233a3a3a;stroke-width:%202px;}%20.cls-3-6%20{fill:%20%23fff;}%3c/style%3e%3clinearGradient%20id='dark_wine'%20x1='220.57'%20y1='310.8'%20x2='220.57'%20y2='211.98'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23730000'%20/%3e%3cstop%20offset='0.49'%20stop-color='%23a51733'%20/%3e%3c/linearGradient%3e%3clinearGradient%20id='light_wine'%20x1='246.27'%20y1='349.71'%20x2='246.27'%20y2='233'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23f44a6b'%20/%3e%3cstop%20offset='0.28'%20stop-color='%23df294c'%20/%3e%3c/linearGradient%3e%3c/defs%3e%3cg%20id='CameraUI_U'%20class='cameraLetter'%3e%3cpath%20id='U_Left'%20class='cls-3-1'%20d='M180.26,271.6s7.57,16,14.11,23.42a45.43,45.43,0,0,0,16.38,11.86,49.46,49.46,0,0,0,21.42,3.87c9.42-.46,20.55-3.87,29.24-11.86-3.9,2.5-9.87,5.1-15.9,4.77a25.66,25.66,0,0,1-18.39-9.09c-9.38-10.31-7.61-28.35-7.74-32.68-.35-11.43.77-21.92-1.76-36.2-.47-2.63-1.79-5.18-4.55-8-1.84-1.86-8.41-5.75-13.43-5.74-7.3,0-12.94,3.71-15.38,7.84-2,3.41-3.06,4.22-4.22,25.08a215.27,215.27,0,0,0,.22,26.76Z'%20transform='translate(-132.71%20-151.63)'%20/%3e%3cpath%20id='U_Right'%20class='cls-3-2'%20d='M277.33,241.73a16.41,16.41,0,0,1,4.05-4.91c4.17-3.39,9-3.66,10.92-3.81a19.67,19.67,0,0,1,12.53,4.58c1.2,1,6.12,5.58,7.13,17.29.74,8.51,3.31,65.93-37,87.13-4.23,2.22-18,9.26-35.67,7.39a62.35,62.35,0,0,1-20.79-6.11,65.68,65.68,0,0,1-18.9-14.24c-20.2-21.66-19.35-57.45-19.35-57.45s7.57,16,14.11,23.42a45.43,45.43,0,0,0,16.38,11.86,49.46,49.46,0,0,0,21.42,3.87c11.66-.57,25.92-5.64,35-18.33C276.73,278.93,271.67,252.64,277.33,241.73Z'%20transform='translate(-132.71%20-151.63)'%20/%3e%3c/g%3e%3cg%20id='CameraUI_Lens'%3e%3cg%20id='lens'%20class='cameraLens'%3e%3ccircle%20id='lens_bg'%20class='cls-3-4'%20cx='159.13'%20cy='58.39'%20r='18.66'%20/%3e%3cpath%20id='lens_inner'%20class='cls-3-5'%20d='M302.85,210.44a11,11,0,1,1-22,0c0-6.08,4.93-11.86,11-11.86S302.85,204.36,302.85,210.44Z'%20transform='translate(-132.71%20-151.63)'%20/%3e%3cg%20id='reflections'%3e%3cellipse%20id='dot_1'%20class='cls-3-6'%20cx='174.36'%20cy='53.69'%20rx='1.84'%20ry='1.42'%20/%3e%3cellipse%20id='dot_2'%20class='cls-3-6'%20cx='174.36'%20cy='57.08'%20rx='1.84'%20ry='1.42'%20/%3e%3cellipse%20id='dot_3'%20class='cls-3-6'%20cx='174.36'%20cy='60.46'%20rx='1.84'%20ry='1.42'%20/%3e%3ccircle%20id='dot_4'%20class='cls-3-6'%20cx='164.09'%20cy='63.77'%20r='1.66'%20/%3e%3cpath%20id='wide_1'%20class='cls-3-6'%20d='M289.83,201c-1.07-.88-5.52,3.09-6.3,5.43a1.52,1.52,0,0,0,0,1.26c.43.69,1.72.61,2.18.53,2.68-.43,4.72-4.08,4.8-4.36A3.18,3.18,0,0,0,289.83,201Z'%20transform='translate(-132.71%20-151.63)'%20/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",$a=Object.freeze(Object.defineProperty({__proto__:null,default:Oa},Symbol.toStringTag,{value:"Module"})),Ks=s=>s&&typeof s=="object"&&!Array.isArray(s),pi=(s,...t)=>{if(!t.length)return s;const e=t.shift();if(Ks(s)&&Ks(e))for(const i in e)Ks(e[i])?(s[i]||Object.assign(s,{[i]:{}}),pi(s[i],e[i])):Object.assign(s,{[i]:e[i]});return pi(s,...t)},ja=pi({},{de:{$vuetify:{badge:{t:0,b:{t:2,i:[{t:3}],s:"Abzeichen"}},calendar:{moreEvents:{t:0,b:{t:2,i:[{t:5,i:0},{t:3,v:" mehr"}]}}},carousel:{ariaLabel:{delimiter:{t:0,b:{t:2,i:[{t:3,v:"Karussellbild "},{t:5,i:0},{t:3,v:" von "},{t:5,i:1}]}}},next:{t:0,b:{t:2,i:[{t:3}],s:"Nächstes Bild"}},prev:{t:0,b:{t:2,i:[{t:3}],s:"Vorheriges Bild"}}},close:{t:0,b:{t:2,i:[{t:3}],s:"Schließen"}},dataFooter:{firstPage:{t:0,b:{t:2,i:[{t:3}],s:"Erste Seite"}},itemsPerPageAll:{t:0,b:{t:2,i:[{t:3}],s:"Alle"}},itemsPerPageText:{t:0,b:{t:2,i:[{t:3}],s:"Elemente pro Seite:"}},lastPage:{t:0,b:{t:2,i:[{t:3}],s:"Letzte Seite"}},nextPage:{t:0,b:{t:2,i:[{t:3}],s:"Nächste Seite"}},pageText:{t:0,b:{t:2,i:[{t:5,i:0},{t:3,v:"-"},{t:5,i:1},{t:3,v:" von "},{t:5,i:2}]}},prevPage:{t:0,b:{t:2,i:[{t:3}],s:"Vorherige Seite"}}},dataIterator:{loadingText:{t:0,b:{t:2,i:[{t:3}],s:"Elemente werden geladen..."}},noResultsText:{t:0,b:{t:2,i:[{t:3}],s:"Keine passenden Einträge gefunden"}}},dataTable:{ariaLabel:{activateAscending:{t:0,b:{t:2,i:[{t:3}],s:"Aktivieren, um aufsteigend zu sortieren."}},activateDescending:{t:0,b:{t:2,i:[{t:3}],s:"Aktivieren, um absteigend zu sortieren."}},activateNone:{t:0,b:{t:2,i:[{t:3}],s:"Aktivieren, um Sortierung zu entfernen."}},sortAscending:{t:0,b:{t:2,i:[{t:3}],s:"Aufsteigend sortiert."}},sortDescending:{t:0,b:{t:2,i:[{t:3}],s:"Absteigend sortiert."}},sortNone:{t:0,b:{t:2,i:[{t:3}],s:"Nicht sortiert."}}},itemsPerPageText:{t:0,b:{t:2,i:[{t:3}],s:"Zeilen pro Seite:"}},sortBy:{t:0,b:{t:2,i:[{t:3}],s:"Sortieren nach"}}},datePicker:{cancel:{t:0,b:{t:2,i:[{t:3}],s:"Abbrechen"}},header:{t:0,b:{t:2,i:[{t:3}],s:"Datum eingeben"}},input:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Datum eingeben"}}},ok:{t:0,b:{t:2,i:[{t:3}],s:"OK"}},range:{header:{t:0,b:{t:2,i:[{t:3}],s:"Daten eingeben"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Daten auswählen"}}},title:{t:0,b:{t:2,i:[{t:3}],s:"Datum auswählen"}}},dateRangeInput:{divider:{t:0,b:{t:2,i:[{t:3}],s:"bis"}}},fileInput:{counter:{t:0,b:{t:2,i:[{t:5,i:0},{t:3,v:" Dateien"}]}},counterSize:{t:0,b:{t:2,i:[{t:5,i:0},{t:3,v:" Dateien ("},{t:5,i:1},{t:3,v:" insgesamt)"}]}}},infiniteScroll:{empty:{t:0,b:{t:2,i:[{t:3}],s:"Nichts mehr"}},loadMore:{t:0,b:{t:2,i:[{t:3}],s:"Mehr laden"}}},input:{appendAction:{t:0,b:{t:2,i:[{t:5,i:0},{t:3,v:" angehängte Aktion"}]}},clear:{t:0,b:{t:2,i:[{t:5,i:0},{t:3,v:" löschen"}]}},otp:{t:0,b:{t:2,i:[{t:3,v:"Bitte OTP-Zeichen "},{t:5,i:0},{t:3,v:" eingeben"}]}},prependAction:{t:0,b:{t:2,i:[{t:5,i:0},{t:3,v:" vorangestellte Aktion"}]}}},loading:{t:0,b:{t:2,i:[{t:3}],s:"Laden..."}},noDataText:{t:0,b:{t:2,i:[{t:3}],s:"Keine Daten verfügbar"}},open:{t:0,b:{t:2,i:[{t:3}],s:"Öffnen"}},pagination:{ariaLabel:{currentPage:{t:0,b:{t:2,i:[{t:3,v:"Seite "},{t:5,i:0},{t:3,v:", aktuelle Seite"}]}},first:{t:0,b:{t:2,i:[{t:3}],s:"Erste Seite"}},last:{t:0,b:{t:2,i:[{t:3}],s:"Letzte Seite"}},next:{t:0,b:{t:2,i:[{t:3}],s:"Nächste Seite"}},page:{t:0,b:{t:2,i:[{t:3,v:"Gehe zu Seite "},{t:5,i:0}]}},previous:{t:0,b:{t:2,i:[{t:3}],s:"Vorherige Seite"}},root:{t:0,b:{t:2,i:[{t:3}],s:"Seitennavigation"}}}},rating:{ariaLabel:{item:{t:0,b:{t:2,i:[{t:3,v:"Bewertung "},{t:5,i:0},{t:3,v:" von "},{t:5,i:1}]}}}},stepper:{next:{t:0,b:{t:2,i:[{t:3}],s:"Weiter"}},prev:{t:0,b:{t:2,i:[{t:3}],s:"Zurück"}}},timePicker:{am:{t:0,b:{t:2,i:[{t:3}],s:"Vormittags"}},pm:{t:0,b:{t:2,i:[{t:3}],s:"Nachmittags"}}}},components:{camera_draggable:{no_cameras:{t:0,b:{t:2,i:[{t:3}],s:"Keine Kameras verfügbar"}}},camera_events:{no_events:{t:0,b:{t:2,i:[{t:3}],s:"Keine Ereignisse verfügbar"}}},camera_options:{advanced:{t:0,b:{t:2,i:[{t:3}],s:"Erweitert"}},audio_state:{t:0,b:{t:2,i:[{t:3}],s:"Audiozustand"}},battery_state:{t:0,b:{t:2,i:[{t:3}],s:"Batteriezustand"}},categories:{t:0,b:{t:2,i:[{t:3}],s:"Kategorien"}},chip_audioDetection:{t:0,b:{t:2,i:[{t:3}],s:"Geräuscherkennung"}},chip_hub:{t:0,b:{t:2,i:[{t:3}],s:"Hub"}},chip_more:{t:0,b:{t:2,i:[{t:3}],s:"Mehr"}},chip_motionDetection:{t:0,b:{t:2,i:[{t:3}],s:"Bewegungserkennung"}},chip_objectDetection:{t:0,b:{t:2,i:[{t:3}],s:"Objekterkennung"}},chip_plugins:{t:0,b:{t:2,i:[{t:3}],s:"Plugins"}},chip_ptz:{t:0,b:{t:2,i:[{t:3}],s:"PTZ"}},detection:{t:0,b:{t:2,i:[{t:3}],s:"Erkennung"}},doorbell_state:{t:0,b:{t:2,i:[{t:3}],s:"Türklingelzustand"}},enabled_extension:{t:0,b:{t:2,i:[{t:3}],s:"Aktivierte Erweiterung"}},frame_worker:{t:0,b:{t:2,i:[{t:3}],s:"Frame Worker"}},general:{t:0,b:{t:2,i:[{t:3}],s:"Allgemein"}},branding:{t:0,b:{t:2,i:[{t:3}],s:"Branding"}},interface:{t:0,b:{t:2,i:[{t:3}],s:"Interface"}},light_state:{t:0,b:{t:2,i:[{t:3}],s:"Lichtzustand"}},manage_plugins:{t:0,b:{t:2,i:[{t:3}],s:"Plugins verwalten"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Modell"}},motion_detection:{t:0,b:{t:2,i:[{t:3}],s:"Bewegungserkennung"}},motion_state:{t:0,b:{t:2,i:[{t:3}],s:"Bewegungszustand"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Name"}},native:{t:0,b:{t:2,i:[{t:3}],s:"Nativ"}},no_config:{t:0,b:{t:2,i:[{t:3}],s:"Keine Konfiguration verfügbar"}},no_plugins_enabled:{t:0,b:{t:2,i:[{t:3}],s:"Keine Plugins aktiviert"}},no_plugins_found:{t:0,b:{t:2,i:[{t:3}],s:"Keine Plugins gefunden"}},no_zones:{t:0,b:{t:2,i:[{t:3}],s:"Keine Zonen verfügbar"}},object_detection:{t:0,b:{t:2,i:[{t:3}],s:"Objekterkennung"}},object_state:{t:0,b:{t:2,i:[{t:3}],s:"Objektzustand"}},plugin:{t:0,b:{t:2,i:[{t:3}],s:"Plugin"}},plugin_settings:{t:0,b:{t:2,i:[{t:3}],s:"Plugin Einstellungen"}},recordings:{t:0,b:{t:2,i:[{t:3}],s:"Aufnahmeeinstellungen"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Einstellungen"}},siren_state:{t:0,b:{t:2,i:[{t:3}],s:"Sirenenzustand"}},source:{t:0,b:{t:2,i:[{t:3}],s:"Quelle"}},snapshot:{t:0,b:{t:2,i:[{t:3}],s:"Snapshot"}},streaming_mode:{t:0,b:{t:2,i:[{t:3}],s:"Streaming Modus"}},unknown:{t:0,b:{t:2,i:[{t:3}],s:"Unbekannt"}},zones:{t:0,b:{t:2,i:[{t:3}],s:"Zonen"}}},charts:{no_data:{t:0,b:{t:2,i:[{t:3}],s:"Keine Daten verfügbar"}}},detection_interface:{audio_detected:{t:0,b:{t:2,i:[{t:3}],s:"Audio erkannt"}},audio_not_detected:{t:0,b:{t:2,i:[{t:3}],s:"Audio nicht erkannt"}},audio_required:{t:0,b:{t:2,i:[{t:3}],s:"Audio Datei erforderlich"}},detect_audio:{t:0,b:{t:2,i:[{t:3}],s:"Audio erkennen"}},detect_motion:{t:0,b:{t:2,i:[{t:3}],s:"Bewegung erkennen"}},detect_objects:{t:0,b:{t:2,i:[{t:3}],s:"Objekte erkennen"}},drop_or_select_audio_to_detect:{t:0,b:{t:2,i:[{t:3}],s:"Audio ablegen oder auswählen, um Geräusche zu erkennen"}},drop_or_select_image_to_detect_objects:{t:0,b:{t:2,i:[{t:3}],s:"Bild ablegen oder auswählen, um Objekte zu erkennen"}},drop_or_select_video_to_detect_motion:{t:0,b:{t:2,i:[{t:3}],s:"Video ablegen oder auswählen, um Bewegung zu erkennen"}},file_size_error:{t:0,b:{t:2,i:[{t:3}],s:"Dateigröße zu groß"}},image_required:{t:0,b:{t:2,i:[{t:3}],s:"Image required"}},interface_config:{t:0,b:{t:2,i:[{t:3}],s:"Interface-Konfiguration"}},no_interface_config:{t:0,b:{t:2,i:[{t:3}],s:"Keine Interface-Konfiguration verfügbar"}},only_one_audio_allowed:{t:0,b:{t:2,i:[{t:3}],s:"Es ist nur ein Audio erlaubt"}},only_one_image_allowed:{t:0,b:{t:2,i:[{t:3}],s:"Es ist nur ein Bild erlaubt"}},only_one_video_allowed:{t:0,b:{t:2,i:[{t:3}],s:"Es ist nur ein Video erlaubt"}},video_required:{t:0,b:{t:2,i:[{t:3}],s:"Video required"}}},dialog:{message:{confirm_clear_log:{t:0,b:{t:2,i:[{t:3}],s:"Sind Sie sicher, dass Sie das Protokoll löschen möchten?"}},confirm_remove:{t:0,b:{t:2,i:[{t:3}],s:"Sind Sie sicher, dass Sie diese Kamera entfernen möchten?"}},confirm_remove_layout:{t:0,b:{t:2,i:[{t:3}],s:"Sind Sie sicher, dass Sie dieses Layout entfernen möchten?"}},confirm_restart_go2rtc:{t:0,b:{t:2,i:[{t:3}],s:"Sind Sie sicher, dass Sie Go2RTC neu starten möchten?"}},confirm_restart_plugin:{t:0,b:{t:2,i:[{t:3}],s:"Sind Sie sicher, dass Sie dieses Plugin neu starten möchten?"}},confirm_restart_server:{t:0,b:{t:2,i:[{t:3}],s:"Sind Sie sicher, dass Sie den Server neu starten möchten?"}},confirm_restore:{t:0,b:{t:2,i:[{t:3}],s:"Sind Sie sicher, dass Sie dieses Backup wiederherstellen möchten?"}},confirm_uninstall_plugin:{t:0,b:{t:2,i:[{t:3}],s:"Sind Sie sicher, dass Sie dieses Plugin deinstallieren möchten?"}},intercom_info:{t:0,b:{t:2,i:[{t:3}],s:"Sprechen Sie gleichzeitig mit allen Kameras, die eine Sprechanlage haben"}}},title:{config:{t:0,b:{t:2,i:[{t:3}],s:"Konfiguration"}},confirm:{t:0,b:{t:2,i:[{t:3}],s:"Bestätigen"}},create_new_user:{t:0,b:{t:2,i:[{t:3}],s:"Neuer Benuter"}},edit_dnd:{t:0,b:{t:2,i:[{t:3}],s:"DND bearbeiten"}},edit_layout:{t:0,b:{t:2,i:[{t:3}],s:"Layout bearbeiten"}},edit_user:{t:0,b:{t:2,i:[{t:3}],s:"Benutzer bearbeiten"}},edit_view:{t:0,b:{t:2,i:[{t:3}],s:"Ansicht bearbeiten"}},information:{t:0,b:{t:2,i:[{t:3}],s:"Information"}},install_version:{t:0,b:{t:2,i:[{t:3}],s:"Version installieren"}},intercom:{t:0,b:{t:2,i:[{t:3}],s:"Gegensprechanlage"}},log:{t:0,b:{t:2,i:[{t:3}],s:"Log"}},new_dnd:{t:0,b:{t:2,i:[{t:3}],s:"Neue DND"}},new_view:{t:0,b:{t:2,i:[{t:3}],s:"Neue Ansicht"}},new_zone:{t:0,b:{t:2,i:[{t:3}],s:"Neue Zone"}},plugin_config:{t:0,b:{t:2,i:[{t:3}],s:"Plugin-Konfiguration"}},preview:{t:0,b:{t:2,i:[{t:3}],s:"Vorschau"}},remove_layout:{t:0,b:{t:2,i:[{t:3}],s:"Layout entfernen"}},restart:{t:0,b:{t:2,i:[{t:3}],s:"Neustart"}},result:{t:0,b:{t:2,i:[{t:3}],s:"Ergebnis"}},search_plugin:{t:0,b:{t:2,i:[{t:3}],s:"Plugin suchen"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Aktualisieren"}},unknown:{t:0,b:{t:2,i:[{t:3}],s:"Unbekannt"}},zone:{t:0,b:{t:2,i:[{t:3}],s:"Zone"}},zone_editor:{t:0,b:{t:2,i:[{t:3}],s:"Zonen-Editor"}}}},form:{button:{add:{t:0,b:{t:2,i:[{t:3}],s:"Hinzufügen"}},add_source:{t:0,b:{t:2,i:[{t:3}],s:"Quelle hinzufügen"}},add_view:{t:0,b:{t:2,i:[{t:3}],s:"Ansicht hinzufügen"}},back:{t:0,b:{t:2,i:[{t:3}],s:"Zurück"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Abbrechen"}},change_view:{t:0,b:{t:2,i:[{t:3}],s:"Ansicht wechseln"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"Löschen"}},close:{t:0,b:{t:2,i:[{t:3}],s:"Schließen"}},create_new_user:{t:0,b:{t:2,i:[{t:3}],s:"Neuen Benutzer erstellen"}},download:{t:0,b:{t:2,i:[{t:3}],s:"Herunterladen"}},download_backup_archive:{t:0,b:{t:2,i:[{t:3}],s:"Backup-Archiv herunterladen"}},download_cert:{t:0,b:{t:2,i:[{t:3}],s:"Zertifikat herunterladen"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"Bearbeiten"}},finish:{t:0,b:{t:2,i:[{t:3}],s:"Fertig"}},go_to_message:{t:0,b:{t:2,i:[{t:3}],s:"Zur Nachricht gehen"}},install:{t:0,b:{t:2,i:[{t:3}],s:"Installieren"}},login:{t:0,b:{t:2,i:[{t:3}],s:"Anmelden"}},logout:{t:0,b:{t:2,i:[{t:3}],s:"Abmelden"}},logout_all:{t:0,b:{t:2,i:[{t:3}],s:"Alle abmelden"}},manage:{t:0,b:{t:2,i:[{t:3}],s:"Verwalten"}},mark_as_read:{t:0,b:{t:2,i:[{t:3}],s:"Als gelesen markieren"}},new:{t:0,b:{t:2,i:[{t:3}],s:"Neu"}},new_zone:{t:0,b:{t:2,i:[{t:3}],s:"Neue Zone"}},next:{t:0,b:{t:2,i:[{t:3}],s:"Weiter"}},open_editor:{t:0,b:{t:2,i:[{t:3}],s:"Editor öffnen"}},previous:{t:0,b:{t:2,i:[{t:3}],s:"Zurück"}},reinstall:{t:0,b:{t:2,i:[{t:3}],s:"Neu installieren"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"Entfernen"}},restart:{t:0,b:{t:2,i:[{t:3}],s:"Neustarten"}},restore_backup_archive:{t:0,b:{t:2,i:[{t:3}],s:"Backup-Archiv wiederherstellen"}},restore_and_restart:{t:0,b:{t:2,i:[{t:3}],s:"Wiederherstellen und neustarten"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Speichern"}},save_and_restart:{t:0,b:{t:2,i:[{t:3}],s:"Speichern und neustarten"}},submit:{t:0,b:{t:2,i:[{t:3}],s:"Absenden"}},undo:{t:0,b:{t:2,i:[{t:3}],s:"Rückgängig"}},uninstall:{t:0,b:{t:2,i:[{t:3}],s:"Deinstallieren"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Aktualisieren"}},upload:{t:0,b:{t:2,i:[{t:3}],s:"Hochladen"}}},error:{no_cameras_selected:{t:0,b:{t:2,i:[{t:3}],s:"Keine Kameras ausgewählt"}},no_view_selected:{t:0,b:{t:2,i:[{t:3}],s:"Keine Ansicht ausgewählt"}}},hint:{one_login:{t:0,b:{t:2,i:[{t:3}],s:"Erlaubt nur eine aktive Sitzung pro Benutzer"}},remember_me:{t:0,b:{t:2,i:[{t:3}],s:"Erlaubt das die Sitzung nicht abläuft"}}},label:{audio_codec:{t:0,b:{t:2,i:[{t:3}],s:"Audio-Codec"}},cache_time:{t:0,b:{t:2,i:[{t:3}],s:"Cache Zeit"}},camera:{t:0,b:{t:2,i:[{t:3}],s:"Kamera"}},classes:{t:0,b:{t:2,i:[{t:3}],s:"Klassen"}},confidence:{t:0,b:{t:2,i:[{t:3}],s:"Konfidenz"}},connections:{t:0,b:{t:2,i:[{t:3}],s:"Verbindungen"}},decoder:{t:0,b:{t:2,i:[{t:3}],s:"Decoder"}},default_settings_page:{t:0,b:{t:2,i:[{t:3}],s:"Standard Einstellungsseite"}},disabled:{t:0,b:{t:2,i:[{t:3}],s:"Deaktiviert"}},enabled:{t:0,b:{t:2,i:[{t:3}],s:"Aktiviert"}},firmware_version:{t:0,b:{t:2,i:[{t:3}],s:"Firmware Version"}},fps:{t:0,b:{t:2,i:[{t:3}],s:"FPS"}},frame_worker:{t:0,b:{t:2,i:[{t:3}],s:"Frame Worker"}},hardware_version:{t:0,b:{t:2,i:[{t:3}],s:"Hardware Version"}},language:{t:0,b:{t:2,i:[{t:3}],s:"Sprache"}},layout_name:{t:0,b:{t:2,i:[{t:3}],s:"Layoutname"}},manufacturer:{t:0,b:{t:2,i:[{t:3}],s:"Hersteller"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Modell"}},motion_duration:{t:0,b:{t:2,i:[{t:3}],s:"Bewegungsdauer"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Name"}},new_password:{t:0,b:{t:2,i:[{t:3}],s:"Neues Passwort"}},new_password_confirm:{t:0,b:{t:2,i:[{t:3}],s:"Neues Passwort bestätigen"}},one_login:{t:0,b:{t:2,i:[{t:3}],s:"Einzelne Sitzung"}},password:{t:0,b:{t:2,i:[{t:3}],s:"Passwort"}},plugin_version:{t:0,b:{t:2,i:[{t:3}],s:"Plugin-Version"}},recording:{t:0,b:{t:2,i:[{t:3}],s:"Aufnahme"}},remember_me:{t:0,b:{t:2,i:[{t:3}],s:"Erinnere mich"}},remove_storage:{t:0,b:{t:2,i:[{t:3}],s:"Speicher entfernen"}},resolution:{t:0,b:{t:2,i:[{t:3}],s:"Auflösung"}},role:{t:0,b:{t:2,i:[{t:3}],s:"Rolle"}},rtsp_url:{t:0,b:{t:2,i:[{t:3}],s:"RTSP-URL"}},select_all:{t:0,b:{t:2,i:[{t:3}],s:"Alle auswählen"}},select_cameras:{t:0,b:{t:2,i:[{t:3}],s:"Kameras auswählen"}},serial_number:{t:0,b:{t:2,i:[{t:3}],s:"Seriennummer"}},server_addresses:{t:0,b:{t:2,i:[{t:3}],s:"Server-Adressen"}},server_version:{t:0,b:{t:2,i:[{t:3}],s:"Server-Version"}},session_timer:{t:0,b:{t:2,i:[{t:3}],s:"Sitzungstimer"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Einstellungen"}},show_bottombar_on_mobile:{t:0,b:{t:2,i:[{t:3}],s:"Bottombar auf Mobilgeräten anzeigen"}},show_camera_events:{t:0,b:{t:2,i:[{t:3}],s:"Kameraereignisse anzeigen"}},source_label:{t:0,b:{t:2,i:[{t:3}],s:"Quellenbezeichnung"}},source_name:{t:0,b:{t:2,i:[{t:3}],s:"Quellenname"}},source_role:{t:0,b:{t:2,i:[{t:3}],s:"Quellenrolle"}},sources:{t:0,b:{t:2,i:[{t:3}],s:"Quellen"}},snapshot_url:{t:0,b:{t:2,i:[{t:3}],s:"Snapshot URL"}},streaming_mode:{t:0,b:{t:2,i:[{t:3}],s:"Streaming Modus"}},streaming_source:{t:0,b:{t:2,i:[{t:3}],s:"Streaming Quelle"}},system_preference:{t:0,b:{t:2,i:[{t:3}],s:"Systemeinstellung"}},theme:{t:0,b:{t:2,i:[{t:3}],s:"Thema"}},type:{t:0,b:{t:2,i:[{t:3}],s:"Typ"}},username:{t:0,b:{t:2,i:[{t:3}],s:"Benutzername"}},video_codec:{t:0,b:{t:2,i:[{t:3}],s:"Video-Codec"}},zone_name:{t:0,b:{t:2,i:[{t:3}],s:"Zonenname"}}},tooltip:{clear:{t:0,b:{t:2,i:[{t:3}],s:"Säubern"}},contain:{t:0,b:{t:2,i:[{t:3}],s:"Enthalten"}},delete:{t:0,b:{t:2,i:[{t:3}],s:"Löschen"}},disabled:{t:0,b:{t:2,i:[{t:3}],s:"Deaktiviert"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"Bearbeiten"}},exclude:{t:0,b:{t:2,i:[{t:3}],s:"Ausschließen"}},finish:{t:0,b:{t:2,i:[{t:3}],s:"Fertig"}},include:{t:0,b:{t:2,i:[{t:3}],s:"Einschließen"}},intersect:{t:0,b:{t:2,i:[{t:3}],s:"Schneiden"}},logout:{t:0,b:{t:2,i:[{t:3}],s:"Abmelden"}},new:{t:0,b:{t:2,i:[{t:3}],s:"Neu"}},privacy_mask:{t:0,b:{t:2,i:[{t:3}],s:"Privatsphärenmaske"}},public_mask:{t:0,b:{t:2,i:[{t:3}],s:"Öffentliche Maske"}},restart:{t:0,b:{t:2,i:[{t:3}],s:"Neustarten"}},undo:{t:0,b:{t:2,i:[{t:3}],s:"Rückgängig"}}}},notification_menu:{clear_notifications:{t:0,b:{t:2,i:[{t:3}],s:"Benachrichtigungen löschen"}},debug:{t:0,b:{t:2,i:[{t:3}],s:"Debug"}},error:{t:0,b:{t:2,i:[{t:3}],s:"Fehler"}},info:{t:0,b:{t:2,i:[{t:3}],s:"Info"}},no_notifications:{t:0,b:{t:2,i:[{t:3}],s:"Keine Benachrichtigungen"}},verbose:{t:0,b:{t:2,i:[{t:3}],s:"Ausführlich"}},warn:{t:0,b:{t:2,i:[{t:3}],s:"Warnung"}}},options_sidebar:{segment_tab_default:{t:0,b:{t:2,i:[{t:3}],s:"Standard"}},segment_tab_overview:{t:0,b:{t:2,i:[{t:3}],s:"Übersicht"}},segment_tab_plugins:{t:0,b:{t:2,i:[{t:3}],s:"Plugins"}},segment_tab_settings:{t:0,b:{t:2,i:[{t:3}],s:"Einstellungen"}},segment_tab_sources:{t:0,b:{t:2,i:[{t:3}],s:"Quellen"}}},player:{add_shortcuts:{t:0,b:{t:2,i:[{t:3}],s:"Shortcuts hinzufügen"}},capture_snapshot:{t:0,b:{t:2,i:[{t:3}],s:"Snapshot aufnehmen"}},hide_motions:{t:0,b:{t:2,i:[{t:3}],s:"Bewegungen ausblenden"}},hide_objects:{t:0,b:{t:2,i:[{t:3}],s:"Objekte ausblenden"}},hide_zones:{t:0,b:{t:2,i:[{t:3}],s:"Zonen ausblenden"}},live:{t:0,b:{t:2,i:[{t:3}],s:"Live"}},log:{t:0,b:{t:2,i:[{t:3}],s:"Log"}},reconnecting:{t:0,b:{t:2,i:[{t:3}],s:"Wiederverbinden..."}},refresh_snapshot:{t:0,b:{t:2,i:[{t:3}],s:"Snapshot aktualisieren"}},save_shortcuts:{t:0,b:{t:2,i:[{t:3}],s:"Shortcuts speichern"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Einstellungen"}},share_camera:{t:0,b:{t:2,i:[{t:3}],s:"Kamera teilen"}},show_motions:{t:0,b:{t:2,i:[{t:3}],s:"Bewegungen anzeigen"}},show_objects:{t:0,b:{t:2,i:[{t:3}],s:"Objekte anzeigen"}},show_zones:{t:0,b:{t:2,i:[{t:3}],s:"Zonen anzeigen"}},zoom_in:{t:0,b:{t:2,i:[{t:3}],s:"Zoom rein"}},zoom_out:{t:0,b:{t:2,i:[{t:3}],s:"Zoom raus"}}},plugin_card:{installed:{t:0,b:{t:2,i:[{t:3}],s:"Installiert"}},no_description:{t:0,b:{t:2,i:[{t:3}],s:"Keine Beschreibung verfügbar"}},restart:{t:0,b:{t:2,i:[{t:3}],s:"Neustart"}},select_version:{t:0,b:{t:2,i:[{t:3}],s:"Version auswählen"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Einstellungen"}},start:{t:0,b:{t:2,i:[{t:3}],s:"Start"}},status_disabled:{t:0,b:{t:2,i:[{t:3}],s:"Deaktiviert"}},status_error:{t:0,b:{t:2,i:[{t:3}],s:"Fehler"}},status_ready:{t:0,b:{t:2,i:[{t:3}],s:"Bereit"}},status_started:{t:0,b:{t:2,i:[{t:3}],s:"Gestartet"}},status_starting:{t:0,b:{t:2,i:[{t:3}],s:"Startet"}},status_stopped:{t:0,b:{t:2,i:[{t:3}],s:"Gestoppt"}},status_unknown:{t:0,b:{t:2,i:[{t:3}],s:"Unbekannt"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Stop"}},uninstall:{t:0,b:{t:2,i:[{t:3}],s:"Deinstallieren"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Aktualisieren"}},update_available:{t:0,b:{t:2,i:[{t:3}],s:"Aktualisierung verfügbar"}}},plugin_search:{plugins:{t:0,b:{t:2,i:[{t:3}],s:"Plugins"}}},plugin_types:{hub:{t:0,b:{t:2,i:[{t:3}],s:"Hub"}},cameraController:{t:0,b:{t:2,i:[{t:3}],s:"Kamera-Controller"}},motionDetection:{t:0,b:{t:2,i:[{t:3}],s:"Bewegungserkennung"}},objectDetection:{t:0,b:{t:2,i:[{t:3}],s:"Objekterkennung"}},audioDetection:{t:0,b:{t:2,i:[{t:3}],s:"Geräuscherkennung"}},ptz:{t:0,b:{t:2,i:[{t:3}],s:"PTZ"}}},process_table:{status_error:{t:0,b:{t:2,i:[{t:3}],s:"Fehler"}},status_ready:{t:0,b:{t:2,i:[{t:3}],s:"Bereit"}},status_started:{t:0,b:{t:2,i:[{t:3}],s:"Gestartet"}},status_starting:{t:0,b:{t:2,i:[{t:3}],s:"Startet"}},status_stopped:{t:0,b:{t:2,i:[{t:3}],s:"Gestoppt"}},status_unknown:{t:0,b:{t:2,i:[{t:3}],s:"Unbekannt"}},title_cpu:{t:0,b:{t:2,i:[{t:3}],s:"CPU"}},title_cpu_load:{t:0,b:{t:2,i:[{t:3}],s:"CPU-Auslastung"}},title_memory:{t:0,b:{t:2,i:[{t:3}],s:"Speicher"}},title_memory_load:{t:0,b:{t:2,i:[{t:3}],s:"Speicherauslastung"}},title_name:{t:0,b:{t:2,i:[{t:3}],s:"Name"}},title_pid:{t:0,b:{t:2,i:[{t:3}],s:"PID"}}},topbar:{syncing_data:{t:0,b:{t:2,i:[{t:3}],s:"Daten synchronisieren..."}}},toast:{backup_downloaded:{t:0,b:{t:2,i:[{t:3}],s:"Backup-Datei erfolgreich heruntergeladen"}},backup_restored:{t:0,b:{t:2,i:[{t:3}],s:"Backup-Datei erfolgreich wiederhergestellt"}},camera_added:{t:0,b:{t:2,i:[{t:3}],s:"Kamera erfolgreich hinzugefügt"}},camera_removed:{t:0,b:{t:2,i:[{t:3}],s:"Kamera erfolgreich entfernt"}},camera_updated:{t:0,b:{t:2,i:[{t:3}],s:"Kamera erfolgreich aktualisiert"}},cameras_removed:{t:0,b:{t:2,i:[{t:3}],s:"Kameras erfolgreich entfernt"}},config_deleted:{t:0,b:{t:2,i:[{t:3}],s:"Konfiguration erfolgreich gelöscht"}},config_go2rtc_deleted:{t:0,b:{t:2,i:[{t:3}],s:"Go2RTC-Konfiguration erfolgreich gelöscht"}},config_go2rtc_updated:{t:0,b:{t:2,i:[{t:3}],s:"Go2RTC-Konfiguration erfolgreich aktualisiert"}},config_updated:{t:0,b:{t:2,i:[{t:3}],s:"Konfiguration erfolgreich aktualisiert"}},error_see_console:{t:0,b:{t:2,i:[{t:3}],s:"Fehler, siehe Konsole"}},frame_worker_restarted:{t:0,b:{t:2,i:[{t:3}],s:"Frame Worker erfolgreich neugestartet"}},go2rtc_restarted:{t:0,b:{t:2,i:[{t:3}],s:"Go2RTC erfolgreich neugestartet"}},log_cleared:{t:0,b:{t:2,i:[{t:3}],s:"Log erfolgreich gelöscht"}},plugin_config_updated:{t:0,b:{t:2,i:[{t:3}],s:"Plugin-Konfiguration erfolgreich aktualisiert"}},plugin_disabled:{t:0,b:{t:2,i:[{t:3}],s:"Plugin erfolgreich deaktiviert"}},plugin_enabled:{t:0,b:{t:2,i:[{t:3}],s:"Plugin erfolgreich aktiviert"}},plugin_installed:{t:0,b:{t:2,i:[{t:3}],s:"Plugin erfolgreich installiert"}},plugin_removed:{t:0,b:{t:2,i:[{t:3}],s:"Plugin erfolgreich entfernt"}},plugin_request_sent:{t:0,b:{t:2,i:[{t:3}],s:"Plugin-Anfrage erfolgreich gesendet"}},plugin_restarted:{t:0,b:{t:2,i:[{t:3}],s:"Plugin erfolgreich neugestartet"}},plugin_settings_updated:{t:0,b:{t:2,i:[{t:3}],s:"Plugin-Einstellungen erfolgreich aktualisiert"}},plugin_started:{t:0,b:{t:2,i:[{t:3}],s:"Plugin erfolgreich gestartet"}},plugin_stopped:{t:0,b:{t:2,i:[{t:3}],s:"Plugin erfolgreich gestoppt"}},plugins_removed:{t:0,b:{t:2,i:[{t:3}],s:"Plugins erfolgreich entfernt"}},profile_updated:{t:0,b:{t:2,i:[{t:3}],s:"Profil erfolgreich aktualisiert"}},server_restarted:{t:0,b:{t:2,i:[{t:3}],s:"Server erfolgreich neugestartet"}},server_updated:{t:0,b:{t:2,i:[{t:3}],s:"Server erfolgreich aktualisiert"}},user_added:{t:0,b:{t:2,i:[{t:3}],s:"Benutzer erfolgreich hinzugefügt"}},user_logged_out:{t:0,b:{t:2,i:[{t:3}],s:"Benutzer erfolgreich abgemeldet"}},user_removed:{t:0,b:{t:2,i:[{t:3}],s:"Benutzer erfolgreich entfernt"}},user_updated:{t:0,b:{t:2,i:[{t:3}],s:"Benutzer erfolgreich aktualisiert"}},users_removed:{t:0,b:{t:2,i:[{t:3}],s:"Benutzer erfolgreich entfernt"}},view_added:{t:0,b:{t:2,i:[{t:3}],s:"Ansicht erfolgreich hinzugefügt"}},view_removed:{t:0,b:{t:2,i:[{t:3}],s:"Ansicht erfolgreich entfernt"}},view_updated:{t:0,b:{t:2,i:[{t:3}],s:"Ansicht erfolgreich aktualisiert"}},views_removed:{t:0,b:{t:2,i:[{t:3}],s:"Ansichten erfolgreich entfernt"}},zone_added:{t:0,b:{t:2,i:[{t:3}],s:"Zone erfolgreich hinzugefügt"}},zone_updated:{t:0,b:{t:2,i:[{t:3}],s:"Zone erfolgreich aktualisiert"}},zone_removed:{t:0,b:{t:2,i:[{t:3}],s:"Zone erfolgreich entfernt"}}},upload_files:{drop_or_select_file:{t:0,b:{t:2,i:[{t:3}],s:"Datei ablegen oder auswählen"}},only_one_file_allowed:{t:0,b:{t:2,i:[{t:3}],s:"Es ist nur eine Datei erlaubt"}}},user_menu:{account:{t:0,b:{t:2,i:[{t:3}],s:"Konto"}},admin_panel:{t:0,b:{t:2,i:[{t:3}],s:"Admin Panel"}},config:{t:0,b:{t:2,i:[{t:3}],s:"Konfiguration"}},console:{t:0,b:{t:2,i:[{t:3}],s:"Logs"}},logout:{t:0,b:{t:2,i:[{t:3}],s:"Abmelden"}},plugins:{t:0,b:{t:2,i:[{t:3}],s:"Plugins"}},reload:{t:0,b:{t:2,i:[{t:3}],s:"Neu laden"}}},user_table:{title_address:{t:0,b:{t:2,i:[{t:3}],s:"Adresse"}},title_device:{t:0,b:{t:2,i:[{t:3}],s:"Gerät"}},title_role:{t:0,b:{t:2,i:[{t:3}],s:"Rolle"}},title_username:{t:0,b:{t:2,i:[{t:3}],s:"Benutzername"}},you:{t:0,b:{t:2,i:[{t:3}],s:"Du"}}},view_box:{available_streams:{t:0,b:{t:2,i:[{t:3}],s:"Verfügbare Streams"}}},zone_editor:{zone:{t:0,b:{t:2,i:[{t:3}],s:"Zone"}}}},general:{loading:{t:0,b:{t:2,i:[{t:3}],s:"Laden..."}},role_admin:{t:0,b:{t:2,i:[{t:3}],s:"Admin"}},role_user:{t:0,b:{t:2,i:[{t:3}],s:"Benutzer"}}},navigation:{account:{t:0,b:{t:2,i:[{t:3}],s:"Konto"}},adminpanel:{t:0,b:{t:2,i:[{t:3}],s:"Admin-Panel"}},appearance:{t:0,b:{t:2,i:[{t:3}],s:"Erscheinungsbild"}},backup:{t:0,b:{t:2,i:[{t:3}],s:"Backup"}},cameras:{t:0,b:{t:2,i:[{t:3}],s:"Kameras"}},camview:{t:0,b:{t:2,i:[{t:3}],s:"Kameransicht"}},config:{t:0,b:{t:2,i:[{t:3}],s:"Konfiguration"}},console:{t:0,b:{t:2,i:[{t:3}],s:"Logs"}},nvr:{t:0,b:{t:2,i:[{t:3}],s:"NVR"}},plugins:{t:0,b:{t:2,i:[{t:3}],s:"Plugins"}},recordings:{t:0,b:{t:2,i:[{t:3}],s:"Aufnahmen"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Einstellungen"}},system:{t:0,b:{t:2,i:[{t:3}],s:"System"}},user:{t:0,b:{t:2,i:[{t:3}],s:"Benutzer"}}},navigation_description:{account_description:{t:0,b:{t:2,i:[{t:3}],s:"Verwalten Sie Kontoeinstellungen und Erfahrungen."}},appearance_description:{t:0,b:{t:2,i:[{t:3}],s:"Verwalten Sie das Erscheinungsbild und die Benutzeroberfläche der App."}},backup_description:{t:0,b:{t:2,i:[{t:3}],s:"Verwalten, planen Sie Backups und stellen Sie Daten wieder her."}},nvr_description:{t:0,b:{t:2,i:[{t:3}],s:"Verwalten Sie das Netzwerk-Videorekorder-System."}},recordings_description:{t:0,b:{t:2,i:[{t:3}],s:"Verwalten Sie Aufnahmen und Speicheroptionen."}},system_description:{t:0,b:{t:2,i:[{t:3}],s:"Verwalten Sie das System, überwachen Sie den Status und die Aufgaben."}},user_description:{t:0,b:{t:2,i:[{t:3}],s:"Verwalten Sie Benutzer, Rollen und Berechtigungen."}}},views:{404:{button_home:{t:0,b:{t:2,i:[{t:3}],s:"Startseite"}},error_message:{t:0,b:{t:2,i:[{t:3}],s:"Die Seite, die Sie suchen, existiert nicht."}}},adminpanel:{frameworker:{t:0,b:{t:2,i:[{t:3}],s:"Frameworker"}},general:{t:0,b:{t:2,i:[{t:3}],s:"Allgemein"}},logged_in_users:{t:0,b:{t:2,i:[{t:3}],s:"Derzeit angemeldete Benutzer"}},main:{t:0,b:{t:2,i:[{t:3}],s:"Hauptprozesse"}},plugins:{t:0,b:{t:2,i:[{t:3}],s:"Plugins"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Admin Panel"}}},camera:{detections:{t:0,b:{t:2,i:[{t:3}],s:"Erkennungen"}},timeline:{t:0,b:{t:2,i:[{t:3}],s:"Zeitleiste"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Kamera"}}},cameras:{events:{t:0,b:{t:2,i:[{t:3}],s:"Ereignisse"}},new_camera:{t:0,b:{t:2,i:[{t:3}],s:"Neue Kamera"}},no_cameras:{t:0,b:{t:2,i:[{t:3}],s:"Keine Kameras verfügbar"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Kameras"}}},camview:{all_cameras:{t:0,b:{t:2,i:[{t:3}],s:"Alle Kameras"}},cameras:{t:0,b:{t:2,i:[{t:3}],s:"Kameras"}},new_dnd:{t:0,b:{t:2,i:[{t:3}],s:"Neue DND"}},new_view:{t:0,b:{t:2,i:[{t:3}],s:"Neue Ansicht"}},no_dnds_configured:{t:0,b:{t:2,i:[{t:3}],s:"Keine DNDs konfiguriert"}},no_views_configured:{t:0,b:{t:2,i:[{t:3}],s:"Keine Ansichten konfiguriert"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Kameransicht"}}},config:{title:{t:0,b:{t:2,i:[{t:3}],s:"Konfiguration"}}},console:{title:{t:0,b:{t:2,i:[{t:3}],s:"Logs"}}},firststeps:{complete:{t:0,b:{t:2,i:[{t:3}],s:"Fertig"}},enjoy:{t:0,b:{t:2,i:[{t:3}],s:"Viel Spaß!"}},finish_message:{t:0,b:{t:2,i:[{t:3}],s:"Sie haben die ersten Schritte erfolgreich abgeschlossen. Sie können nun die Anwendung nutzen."}},from_backup:{t:0,b:{t:2,i:[{t:3}],s:"Aus Backup wiederherstellen"}},new_installation:{t:0,b:{t:2,i:[{t:3}],s:"Neue Installation"}},start_message:{t:0,b:{t:2,i:[{t:3}],s:"Bitte wählen Sie, ob Sie eine neue Installation starten oder ein Backup wiederherstellen möchten."}},step_account:{t:0,b:{t:2,i:[{t:3}],s:"Konto"}},step_appearance:{t:0,b:{t:2,i:[{t:3}],s:"Erscheinungsbild"}},step_finish:{t:0,b:{t:2,i:[{t:3}],s:"Fertig"}},step_welcome:{t:0,b:{t:2,i:[{t:3}],s:"Willkommen"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Erste Schritte"}},welcome_to:{t:0,b:{t:2,i:[{t:3}],s:"Willkommen bei"}}},login:{title:{t:0,b:{t:2,i:[{t:3}],s:"Anmelden"}}},new_camera:{camera:{t:0,b:{t:2,i:[{t:3}],s:"Kamera"}},source:{t:0,b:{t:2,i:[{t:3}],s:"Quelle"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Neue Kamera"}}},plugin:{changelog:{t:0,b:{t:2,i:[{t:3}],s:"Änderungsprotokoll"}},no_changelog:{t:0,b:{t:2,i:[{t:3}],s:"Kein Änderungsprotokoll verfügbar"}},no_readme:{t:0,b:{t:2,i:[{t:3}],s:"Keine Leseanleitung verfügbar"}},plugin_settings:{t:0,b:{t:2,i:[{t:3}],s:"Plugin-Einstellungen"}},readme:{t:0,b:{t:2,i:[{t:3}],s:"Leseanleitung"}},segment_tab_cameras:{t:0,b:{t:2,i:[{t:3}],s:"Kameras"}},segment_tab_interface:{t:0,b:{t:2,i:[{t:3}],s:"Interface"}},segment_tab_plugins:{t:0,b:{t:2,i:[{t:3}],s:"Plugins"}},segment_tab_settings:{t:0,b:{t:2,i:[{t:3}],s:"Einstellungen"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Plugin"}}},plugins:{no_plugins:{t:0,b:{t:2,i:[{t:3}],s:"Keine Plugins verfügbar"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Plugins"}}},recordings:{title:{t:0,b:{t:2,i:[{t:3}],s:"Aufnahmen"}}},settings:{available_updates:{t:0,b:{t:2,i:[{t:3}],s:"Verfügbare Aktualisierungen"}},available_updates_info:{t:0,b:{t:2,i:[{t:3}],s:"Es sind Aktualisierungen für camera.ui verfügbar."}},certificate:{t:0,b:{t:2,i:[{t:3}],s:"Zertifikat"}},certificate_info:{t:0,b:{t:2,i:[{t:3}],s:"Laden Sie hier das SSL-Zertifikat der Webseite herunter. Durch das Hinzufügen dieses Zertifikats zu Ihrem Keychain oder Ihrer Zertifikatsverwaltung wird die Seite als sicher erkannt. Dies verbessert die Browsererfahrung und vermeidet Sicherheitswarnungen."}},create_backup:{t:0,b:{t:2,i:[{t:3}],s:"Backup erstellen"}},create_backup_info:{t:0,b:{t:2,i:[{t:3}],s:"Laden Sie ein Sicherungsarchiv Ihrere gesamten camera.ui Umgebung herunter. Dadurch wird der Inhalt Ihres camera.ui Speicherungsverzeichnisses gesichert. Diesen können Sie später auf jeder Plattform wiederherstellen auf der camera.ui läuft."}},edit:{t:0,b:{t:2,i:[{t:3}],s:"Bearbeiten"}},interface:{t:0,b:{t:2,i:[{t:3}],s:"Interface"}},locale:{t:0,b:{t:2,i:[{t:3}],s:"Sprache"}},network:{t:0,b:{t:2,i:[{t:3}],s:"Netzwerk"}},network_info:{t:0,b:{t:2,i:[{t:3}],s:"Konfigurieren Sie hier die IP-Adressen, die der Server für die WebRTC-Kommunikation mit den Kameras verwendet. Diese Einstellung ermöglicht eine stabile und effiziente Verbindung zwischen Ihrem System und den angeschlossenen Kameras."}},not_available_updates_info:{t:0,b:{t:2,i:[{t:3}],s:"Ihre camera.ui Version ist auf dem neuesten Stand."}},password:{t:0,b:{t:2,i:[{t:3}],s:"Passwort"}},profile:{t:0,b:{t:2,i:[{t:3}],s:"Profil"}},registered_users:{t:0,b:{t:2,i:[{t:3}],s:"Registrierte Benutzer"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"Entfernen"}},restart_server:{t:0,b:{t:2,i:[{t:3}],s:"Server neustarten"}},restart_server_info:{t:0,b:{t:2,i:[{t:3}],s:"Durch Klicken auf diesen Button starten Sie den Server neu. Ein Ladebildschirm wird angezeigt, bis der Neustart abgeschlossen ist. Anschließend wird die Seite automatisch aktualisiert und steht Ihnen wieder zur Verfügung."}},restore_backup:{t:0,b:{t:2,i:[{t:3}],s:"Backup wiederherstellen"}},restore_backup_info:{t:0,b:{t:2,i:[{t:3}],s:"Stellen Sie ein Sicherungsarchiv wieder her, das Sie zuvor mit camera.ui erstellt haben. Ihre camera.ui Konfiguration, Datenbank, Benutzerkonten und Medien werden wiederhergestellt."}},search_by_name:{t:0,b:{t:2,i:[{t:3}],s:"Nach Namen suchen"}},searching_updates:{t:0,b:{t:2,i:[{t:3}],s:"Suche nach Aktualisierungen..."}},sheduled_backup:{t:0,b:{t:2,i:[{t:3}],s:"Geplantes Backup"}},sheduled_backup_info:{t:0,b:{t:2,i:[{t:3}],s:"Planen Sie ein Backup der aktuellen Konfiguration"}},theme:{t:0,b:{t:2,i:[{t:3}],s:"Thema"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Einstellungen"}},title_account:{t:0,b:{t:2,i:[{t:3}],s:"Konto"}},title_appearance:{t:0,b:{t:2,i:[{t:3}],s:"Erscheinungsbild"}},title_backup:{t:0,b:{t:2,i:[{t:3}],s:"Backup"}},title_go2rtc:{t:0,b:{t:2,i:[{t:3}],s:"Go2RTC"}},title_nvr:{t:0,b:{t:2,i:[{t:3}],s:"NVR"}},title_recordings:{t:0,b:{t:2,i:[{t:3}],s:"Aufnahmen"}},title_system:{t:0,b:{t:2,i:[{t:3}],s:"System"}},title_user:{t:0,b:{t:2,i:[{t:3}],s:"Benutzer"}},update_available:{t:0,b:{t:2,i:[{t:3}],s:"Aktualisierung verfügbar"}},version:{t:0,b:{t:2,i:[{t:3}],s:"Version"}},version_info:{t:0,b:{t:2,i:[{t:3}],s:"camera.ui Version"}}}}}},{en:{$vuetify:{badge:{t:0,b:{t:2,i:[{t:3}],s:"Badge"}},calendar:{moreEvents:{t:0,b:{t:2,i:[{t:5,i:0},{t:3,v:" more"}]}}},carousel:{ariaLabel:{delimiter:{t:0,b:{t:2,i:[{t:3,v:"Carousel slide "},{t:5,i:0},{t:3,v:" of "},{t:5,i:1}]}}},next:{t:0,b:{t:2,i:[{t:3}],s:"Next visual"}},prev:{t:0,b:{t:2,i:[{t:3}],s:"Previous visual"}}},close:{t:0,b:{t:2,i:[{t:3}],s:"Close"}},dataFooter:{firstPage:{t:0,b:{t:2,i:[{t:3}],s:"First page"}},itemsPerPageAll:{t:0,b:{t:2,i:[{t:3}],s:"All"}},itemsPerPageText:{t:0,b:{t:2,i:[{t:3}],s:"Items per page:"}},lastPage:{t:0,b:{t:2,i:[{t:3}],s:"Last page"}},nextPage:{t:0,b:{t:2,i:[{t:3}],s:"Next page"}},pageText:{t:0,b:{t:2,i:[{t:5,i:0},{t:3,v:"-"},{t:5,i:1},{t:3,v:" of "},{t:5,i:2}]}},prevPage:{t:0,b:{t:2,i:[{t:3}],s:"Previous page"}}},dataIterator:{loadingText:{t:0,b:{t:2,i:[{t:3}],s:"Loading items..."}},noResultsText:{t:0,b:{t:2,i:[{t:3}],s:"No matching records found"}}},dataTable:{ariaLabel:{activateAscending:{t:0,b:{t:2,i:[{t:3}],s:"Activate to sort ascending."}},activateDescending:{t:0,b:{t:2,i:[{t:3}],s:"Activate to sort descending."}},activateNone:{t:0,b:{t:2,i:[{t:3}],s:"Activate to remove sorting."}},sortAscending:{t:0,b:{t:2,i:[{t:3}],s:"Sorted ascending."}},sortDescending:{t:0,b:{t:2,i:[{t:3}],s:"Sorted descending."}},sortNone:{t:0,b:{t:2,i:[{t:3}],s:"Not sorted."}}},itemsPerPageText:{t:0,b:{t:2,i:[{t:3}],s:"Rows per page:"}},sortBy:{t:0,b:{t:2,i:[{t:3}],s:"Sort by"}}},datePicker:{cancel:{t:0,b:{t:2,i:[{t:3}],s:"Cancel"}},header:{t:0,b:{t:2,i:[{t:3}],s:"Enter date"}},input:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Enter date"}}},ok:{t:0,b:{t:2,i:[{t:3}],s:"OK"}},range:{header:{t:0,b:{t:2,i:[{t:3}],s:"Enter dates"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Select dates"}}},title:{t:0,b:{t:2,i:[{t:3}],s:"Select date"}}},dateRangeInput:{divider:{t:0,b:{t:2,i:[{t:3}],s:"to"}}},fileInput:{counter:{t:0,b:{t:2,i:[{t:5,i:0},{t:3,v:" files"}]}},counterSize:{t:0,b:{t:2,i:[{t:5,i:0},{t:3,v:" files ("},{t:5,i:1},{t:3,v:" in total)"}]}}},infiniteScroll:{empty:{t:0,b:{t:2,i:[{t:3}],s:"No more"}},loadMore:{t:0,b:{t:2,i:[{t:3}],s:"Load more"}}},input:{appendAction:{t:0,b:{t:2,i:[{t:5,i:0},{t:3,v:" appended action"}]}},clear:{t:0,b:{t:2,i:[{t:3,v:"Clear "},{t:5,i:0}]}},otp:{t:0,b:{t:2,i:[{t:3,v:"Please enter OTP character "},{t:5,i:0}]}},prependAction:{t:0,b:{t:2,i:[{t:5,i:0},{t:3,v:" prepended action"}]}}},loading:{t:0,b:{t:2,i:[{t:3}],s:"Loading..."}},noDataText:{t:0,b:{t:2,i:[{t:3}],s:"No data available"}},open:{t:0,b:{t:2,i:[{t:3}],s:"Open"}},pagination:{ariaLabel:{currentPage:{t:0,b:{t:2,i:[{t:3,v:"Page "},{t:5,i:0},{t:3,v:", Current page"}]}},first:{t:0,b:{t:2,i:[{t:3}],s:"First page"}},last:{t:0,b:{t:2,i:[{t:3}],s:"Last page"}},next:{t:0,b:{t:2,i:[{t:3}],s:"Next page"}},page:{t:0,b:{t:2,i:[{t:3,v:"Go to page "},{t:5,i:0}]}},previous:{t:0,b:{t:2,i:[{t:3}],s:"Previous page"}},root:{t:0,b:{t:2,i:[{t:3}],s:"Pagination Navigation"}}}},rating:{ariaLabel:{item:{t:0,b:{t:2,i:[{t:3,v:"Rating "},{t:5,i:0},{t:3,v:" of "},{t:5,i:1}]}}}},stepper:{next:{t:0,b:{t:2,i:[{t:3}],s:"Next"}},prev:{t:0,b:{t:2,i:[{t:3}],s:"Previous"}}},timePicker:{am:{t:0,b:{t:2,i:[{t:3}],s:"AM"}},pm:{t:0,b:{t:2,i:[{t:3}],s:"PM"}}}},components:{camera_draggable:{no_cameras:{t:0,b:{t:2,i:[{t:3}],s:"No cameras available"}}},camera_events:{no_events:{t:0,b:{t:2,i:[{t:3}],s:"No events available"}}},camera_options:{advanced:{t:0,b:{t:2,i:[{t:3}],s:"Advanced"}},audio_state:{t:0,b:{t:2,i:[{t:3}],s:"Audio state"}},battery_state:{t:0,b:{t:2,i:[{t:3}],s:"Battery state"}},categories:{t:0,b:{t:2,i:[{t:3}],s:"Categories"}},chip_audioDetection:{t:0,b:{t:2,i:[{t:3}],s:"Audio detection"}},chip_hub:{t:0,b:{t:2,i:[{t:3}],s:"Hub"}},chip_hubs:{t:0,b:{t:2,i:[{t:3}],s:"Hubs"}},chip_more:{t:0,b:{t:2,i:[{t:3}],s:"More"}},chip_motionDetection:{t:0,b:{t:2,i:[{t:3}],s:"Motion detection"}},chip_objectDetection:{t:0,b:{t:2,i:[{t:3}],s:"Object detection"}},chip_plugins:{t:0,b:{t:2,i:[{t:3}],s:"Plugins"}},chip_ptz:{t:0,b:{t:2,i:[{t:3}],s:"PTZ"}},detection:{t:0,b:{t:2,i:[{t:3}],s:"Detection"}},doorbell_state:{t:0,b:{t:2,i:[{t:3}],s:"Doorbell state"}},enabled_extension:{t:0,b:{t:2,i:[{t:3}],s:"Enabled extension"}},frame_worker:{t:0,b:{t:2,i:[{t:3}],s:"Frame Worker"}},general:{t:0,b:{t:2,i:[{t:3}],s:"General"}},branding:{t:0,b:{t:2,i:[{t:3}],s:"Branding"}},interface:{t:0,b:{t:2,i:[{t:3}],s:"Interface"}},light_state:{t:0,b:{t:2,i:[{t:3}],s:"Light state"}},manage_plugins:{t:0,b:{t:2,i:[{t:3}],s:"Manage plugins"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Model"}},motion_detection:{t:0,b:{t:2,i:[{t:3}],s:"Motion detection"}},motion_state:{t:0,b:{t:2,i:[{t:3}],s:"Motion state"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Name"}},native:{t:0,b:{t:2,i:[{t:3}],s:"Native"}},no_config:{t:0,b:{t:2,i:[{t:3}],s:"No configuration available"}},no_plugins_enabled:{t:0,b:{t:2,i:[{t:3}],s:"No plugins enabled"}},no_plugins_found:{t:0,b:{t:2,i:[{t:3}],s:"No plugins found"}},no_zones:{t:0,b:{t:2,i:[{t:3}],s:"No zones available"}},object_detection:{t:0,b:{t:2,i:[{t:3}],s:"Object detection"}},object_state:{t:0,b:{t:2,i:[{t:3}],s:"Object state"}},plugin:{t:0,b:{t:2,i:[{t:3}],s:"Plugin"}},plugin_settings:{t:0,b:{t:2,i:[{t:3}],s:"Plugin settings"}},recordings:{t:0,b:{t:2,i:[{t:3}],s:"Recordings"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Settings"}},siren_state:{t:0,b:{t:2,i:[{t:3}],s:"Siren state"}},source:{t:0,b:{t:2,i:[{t:3}],s:"Source"}},snapshot:{t:0,b:{t:2,i:[{t:3}],s:"Snapshot"}},streaming_mode:{t:0,b:{t:2,i:[{t:3}],s:"Streaming mode"}},unknown:{t:0,b:{t:2,i:[{t:3}],s:"Unknown"}},zones:{t:0,b:{t:2,i:[{t:3}],s:"Zones"}}},charts:{no_data:{t:0,b:{t:2,i:[{t:3}],s:"No data available"}}},detection_interface:{audio_detected:{t:0,b:{t:2,i:[{t:3}],s:"Audio detected"}},audio_not_detected:{t:0,b:{t:2,i:[{t:3}],s:"Audio not detected"}},audio_required:{t:0,b:{t:2,i:[{t:3}],s:"Audio required"}},detect_audio:{t:0,b:{t:2,i:[{t:3}],s:"Detect audio"}},detect_motion:{t:0,b:{t:2,i:[{t:3}],s:"Detect motion"}},detect_objects:{t:0,b:{t:2,i:[{t:3}],s:"Detect objects"}},drop_or_select_audio_to_detect:{t:0,b:{t:2,i:[{t:3}],s:"Drop or select audio to detect"}},drop_or_select_image_to_detect_objects:{t:0,b:{t:2,i:[{t:3}],s:"Drop or select image to detect objects"}},drop_or_select_video_to_detect_motion:{t:0,b:{t:2,i:[{t:3}],s:"Drop or select video to detect motion"}},file_size_error:{t:0,b:{t:2,i:[{t:3}],s:"File size error"}},image_required:{t:0,b:{t:2,i:[{t:3}],s:"Image required"}},interface_config:{t:0,b:{t:2,i:[{t:3}],s:"Interface configuration"}},no_interface_config:{t:0,b:{t:2,i:[{t:3}],s:"No interface configuration available"}},only_one_audio_allowed:{t:0,b:{t:2,i:[{t:3}],s:"Es ist nur ein Audio erlaubt"}},only_one_image_allowed:{t:0,b:{t:2,i:[{t:3}],s:"Only one image allowed"}},only_one_video_allowed:{t:0,b:{t:2,i:[{t:3}],s:"Only one video allowed"}},video_required:{t:0,b:{t:2,i:[{t:3}],s:"Video required"}}},dialog:{message:{confirm_clear_log:{t:0,b:{t:2,i:[{t:3}],s:"Are you sure you want to clear the log?"}},confirm_remove:{t:0,b:{t:2,i:[{t:3}],s:"Are you sure you want to remove this camera?"}},confirm_remove_layout:{t:0,b:{t:2,i:[{t:3}],s:"Are you sure you want to remove this layout?"}},confirm_restart_go2rtc:{t:0,b:{t:2,i:[{t:3}],s:"Are you sure you want to restart the Go2RTC?"}},confirm_restart_plugin:{t:0,b:{t:2,i:[{t:3}],s:"Are you sure you want to restart this plugin?"}},confirm_restart_server:{t:0,b:{t:2,i:[{t:3}],s:"Are you sure you want to restart the server?"}},confirm_restore:{t:0,b:{t:2,i:[{t:3}],s:"Are you sure you want to restore this backup?"}},confirm_uninstall_plugin:{t:0,b:{t:2,i:[{t:3}],s:"Are you sure you want to uninstall this plugin?"}},intercom_info:{t:0,b:{t:2,i:[{t:3}],s:"Speak simultaneously to all cameras that have intercom"}}},title:{config:{t:0,b:{t:2,i:[{t:3}],s:"Configuration"}},confirm:{t:0,b:{t:2,i:[{t:3}],s:"Confirm"}},create_new_user:{t:0,b:{t:2,i:[{t:3}],s:"New user"}},edit_dnd:{t:0,b:{t:2,i:[{t:3}],s:"Edit DND"}},edit_layout:{t:0,b:{t:2,i:[{t:3}],s:"Edit layout"}},edit_user:{t:0,b:{t:2,i:[{t:3}],s:"Edit user"}},edit_view:{t:0,b:{t:2,i:[{t:3}],s:"Edit view"}},information:{t:0,b:{t:2,i:[{t:3}],s:"Information"}},install_version:{t:0,b:{t:2,i:[{t:3}],s:"Install version"}},intercom:{t:0,b:{t:2,i:[{t:3}],s:"Intercom"}},log:{t:0,b:{t:2,i:[{t:3}],s:"Log"}},new_dnd:{t:0,b:{t:2,i:[{t:3}],s:"New DND"}},new_view:{t:0,b:{t:2,i:[{t:3}],s:"New view"}},new_zone:{t:0,b:{t:2,i:[{t:3}],s:"New zone"}},plugin_config:{t:0,b:{t:2,i:[{t:3}],s:"Plugin config"}},preview:{t:0,b:{t:2,i:[{t:3}],s:"Preview"}},remove_layout:{t:0,b:{t:2,i:[{t:3}],s:"Remove layout"}},restart:{t:0,b:{t:2,i:[{t:3}],s:"Restart"}},result:{t:0,b:{t:2,i:[{t:3}],s:"Result"}},search_plugin:{t:0,b:{t:2,i:[{t:3}],s:"Search plugin"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Update"}},unknown:{t:0,b:{t:2,i:[{t:3}],s:"Unknown"}},zone:{t:0,b:{t:2,i:[{t:3}],s:"Zone"}},zone_editor:{t:0,b:{t:2,i:[{t:3}],s:"Zone editor"}}}},form:{button:{add:{t:0,b:{t:2,i:[{t:3}],s:"Add"}},add_source:{t:0,b:{t:2,i:[{t:3}],s:"Add source"}},add_view:{t:0,b:{t:2,i:[{t:3}],s:"Add view"}},back:{t:0,b:{t:2,i:[{t:3}],s:"Back"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Cancel"}},change_view:{t:0,b:{t:2,i:[{t:3}],s:"Change view"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"Clear"}},close:{t:0,b:{t:2,i:[{t:3}],s:"Close"}},create_new_user:{t:0,b:{t:2,i:[{t:3}],s:"Create new user"}},download:{t:0,b:{t:2,i:[{t:3}],s:"Download"}},download_backup_archive:{t:0,b:{t:2,i:[{t:3}],s:"Download backup archive"}},download_cert:{t:0,b:{t:2,i:[{t:3}],s:"Download certificate"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"Edit"}},finish:{t:0,b:{t:2,i:[{t:3}],s:"Finish"}},go_to_message:{t:0,b:{t:2,i:[{t:3}],s:"Go to message"}},install:{t:0,b:{t:2,i:[{t:3}],s:"Install"}},login:{t:0,b:{t:2,i:[{t:3}],s:"Login"}},logout:{t:0,b:{t:2,i:[{t:3}],s:"Logout"}},logout_all:{t:0,b:{t:2,i:[{t:3}],s:"Logout all"}},manage:{t:0,b:{t:2,i:[{t:3}],s:"Manage"}},mark_as_read:{t:0,b:{t:2,i:[{t:3}],s:"Mark as read"}},new:{t:0,b:{t:2,i:[{t:3}],s:"New"}},new_zone:{t:0,b:{t:2,i:[{t:3}],s:"New zone"}},next:{t:0,b:{t:2,i:[{t:3}],s:"Next"}},open_editor:{t:0,b:{t:2,i:[{t:3}],s:"Open editor"}},previous:{t:0,b:{t:2,i:[{t:3}],s:"Previous"}},reinstall:{t:0,b:{t:2,i:[{t:3}],s:"Reinstall"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"Remove"}},restart:{t:0,b:{t:2,i:[{t:3}],s:"Restart"}},restore_backup_archive:{t:0,b:{t:2,i:[{t:3}],s:"Restore backup archive"}},restore_and_restart:{t:0,b:{t:2,i:[{t:3}],s:"Restore and restart"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Save"}},save_and_restart:{t:0,b:{t:2,i:[{t:3}],s:"Save and restart"}},submit:{t:0,b:{t:2,i:[{t:3}],s:"Submit"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Update"}},undo:{t:0,b:{t:2,i:[{t:3}],s:"Undo"}},uninstall:{t:0,b:{t:2,i:[{t:3}],s:"Uninstall"}},upload:{t:0,b:{t:2,i:[{t:3}],s:"Upload"}}},error:{no_cameras_selected:{t:0,b:{t:2,i:[{t:3}],s:"No cameras selected"}},no_view_selected:{t:0,b:{t:2,i:[{t:3}],s:"No view selected"}}},hint:{one_login:{t:0,b:{t:2,i:[{t:3}],s:"Allows only one active session per user"}},remember_me:{t:0,b:{t:2,i:[{t:3}],s:"Allows the session not to expire"}}},label:{audio_codec:{t:0,b:{t:2,i:[{t:3}],s:"Audio codec"}},cache_time:{t:0,b:{t:2,i:[{t:3}],s:"Cache time"}},camera:{t:0,b:{t:2,i:[{t:3}],s:"Camera"}},classes:{t:0,b:{t:2,i:[{t:3}],s:"Classes"}},confidence:{t:0,b:{t:2,i:[{t:3}],s:"Confidence"}},connections:{t:0,b:{t:2,i:[{t:3}],s:"Connections"}},decoder:{t:0,b:{t:2,i:[{t:3}],s:"Decoder"}},default_settings_page:{t:0,b:{t:2,i:[{t:3}],s:"Default Settings page"}},disabled:{t:0,b:{t:2,i:[{t:3}],s:"Disabled"}},enabled:{t:0,b:{t:2,i:[{t:3}],s:"Enabled"}},firmware_version:{t:0,b:{t:2,i:[{t:3}],s:"Firmware version"}},fps:{t:0,b:{t:2,i:[{t:3}],s:"FPS"}},frame_worker:{t:0,b:{t:2,i:[{t:3}],s:"Frame Worker"}},hardware_version:{t:0,b:{t:2,i:[{t:3}],s:"Hardware version"}},language:{t:0,b:{t:2,i:[{t:3}],s:"Language"}},layout_name:{t:0,b:{t:2,i:[{t:3}],s:"Layout name"}},manufacturer:{t:0,b:{t:2,i:[{t:3}],s:"Manufacturer"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Model"}},motion_duration:{t:0,b:{t:2,i:[{t:3}],s:"Motion duration"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Name"}},new_password:{t:0,b:{t:2,i:[{t:3}],s:"New password"}},new_password_confirm:{t:0,b:{t:2,i:[{t:3}],s:"Confirm new password"}},one_login:{t:0,b:{t:2,i:[{t:3}],s:"Single Session"}},password:{t:0,b:{t:2,i:[{t:3}],s:"Password"}},plugin_version:{t:0,b:{t:2,i:[{t:3}],s:"Plugin version"}},recording:{t:0,b:{t:2,i:[{t:3}],s:"Recording"}},remember_me:{t:0,b:{t:2,i:[{t:3}],s:"Remember me"}},remove_storage:{t:0,b:{t:2,i:[{t:3}],s:"Remove storage"}},resolution:{t:0,b:{t:2,i:[{t:3}],s:"Resolution"}},role:{t:0,b:{t:2,i:[{t:3}],s:"Role"}},rtsp_url:{t:0,b:{t:2,i:[{t:3}],s:"RTSP URL"}},select_all:{t:0,b:{t:2,i:[{t:3}],s:"Select all"}},select_cameras:{t:0,b:{t:2,i:[{t:3}],s:"Select cameras"}},serial_number:{t:0,b:{t:2,i:[{t:3}],s:"Serial number"}},server_addresses:{t:0,b:{t:2,i:[{t:3}],s:"Server addresses"}},server_version:{t:0,b:{t:2,i:[{t:3}],s:"Server version"}},session_timer:{t:0,b:{t:2,i:[{t:3}],s:"Session timer"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Settings"}},show_bottombar_on_mobile:{t:0,b:{t:2,i:[{t:3}],s:"Show bottombar on mobile"}},show_camera_events:{t:0,b:{t:2,i:[{t:3}],s:"Show camera events"}},source_label:{t:0,b:{t:2,i:[{t:3}],s:"Source label"}},source_name:{t:0,b:{t:2,i:[{t:3}],s:"Source name"}},source_role:{t:0,b:{t:2,i:[{t:3}],s:"Source role"}},sources:{t:0,b:{t:2,i:[{t:3}],s:"Sources"}},snapshot_url:{t:0,b:{t:2,i:[{t:3}],s:"Snapshot URL"}},streaming_mode:{t:0,b:{t:2,i:[{t:3}],s:"Streaming mode"}},streaming_source:{t:0,b:{t:2,i:[{t:3}],s:"Streaming source"}},system_preference:{t:0,b:{t:2,i:[{t:3}],s:"System preference"}},theme:{t:0,b:{t:2,i:[{t:3}],s:"Theme"}},type:{t:0,b:{t:2,i:[{t:3}],s:"Type"}},username:{t:0,b:{t:2,i:[{t:3}],s:"Username"}},video_codec:{t:0,b:{t:2,i:[{t:3}],s:"Video codec"}},zone_name:{t:0,b:{t:2,i:[{t:3}],s:"Zone name"}}},tooltip:{clear:{t:0,b:{t:2,i:[{t:3}],s:"Clear"}},contain:{t:0,b:{t:2,i:[{t:3}],s:"Contain"}},delete:{t:0,b:{t:2,i:[{t:3}],s:"Delete"}},disabled:{t:0,b:{t:2,i:[{t:3}],s:"Disabled"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"Edit"}},exclude:{t:0,b:{t:2,i:[{t:3}],s:"Exclude"}},finish:{t:0,b:{t:2,i:[{t:3}],s:"Finish"}},include:{t:0,b:{t:2,i:[{t:3}],s:"Include"}},intersect:{t:0,b:{t:2,i:[{t:3}],s:"Intersect"}},logout:{t:0,b:{t:2,i:[{t:3}],s:"Logout"}},new:{t:0,b:{t:2,i:[{t:3}],s:"New"}},privacy_mask:{t:0,b:{t:2,i:[{t:3}],s:"Privacy mask"}},public_mask:{t:0,b:{t:2,i:[{t:3}],s:"Public mask"}},restart:{t:0,b:{t:2,i:[{t:3}],s:"Restart"}},undo:{t:0,b:{t:2,i:[{t:3}],s:"Undo"}}}},notification_menu:{clear_notifications:{t:0,b:{t:2,i:[{t:3}],s:"Clear notifications"}},debug:{t:0,b:{t:2,i:[{t:3}],s:"Debug"}},error:{t:0,b:{t:2,i:[{t:3}],s:"Error"}},info:{t:0,b:{t:2,i:[{t:3}],s:"Info"}},no_notifications:{t:0,b:{t:2,i:[{t:3}],s:"No notifications"}},verbose:{t:0,b:{t:2,i:[{t:3}],s:"Verbose"}},warn:{t:0,b:{t:2,i:[{t:3}],s:"Warning"}}},options_sidebar:{segment_tab_default:{t:0,b:{t:2,i:[{t:3}],s:"Default"}},segment_tab_overview:{t:0,b:{t:2,i:[{t:3}],s:"Overview"}},segment_tab_plugins:{t:0,b:{t:2,i:[{t:3}],s:"Plugins"}},segment_tab_settings:{t:0,b:{t:2,i:[{t:3}],s:"Settings"}},segment_tab_sources:{t:0,b:{t:2,i:[{t:3}],s:"Sources"}}},player:{add_shortcuts:{t:0,b:{t:2,i:[{t:3}],s:"Add shortcuts"}},capture_snapshot:{t:0,b:{t:2,i:[{t:3}],s:"Capture snapshot"}},hide_motions:{t:0,b:{t:2,i:[{t:3}],s:"Hide motions"}},hide_objects:{t:0,b:{t:2,i:[{t:3}],s:"Hide objects"}},hide_zones:{t:0,b:{t:2,i:[{t:3}],s:"Hide zones"}},live:{t:0,b:{t:2,i:[{t:3}],s:"Live"}},log:{t:0,b:{t:2,i:[{t:3}],s:"Log"}},reconnecting:{t:0,b:{t:2,i:[{t:3}],s:"Reconnecting..."}},refresh_snapshot:{t:0,b:{t:2,i:[{t:3}],s:"Refresh snapshot"}},save_shortcuts:{t:0,b:{t:2,i:[{t:3}],s:"Save shortcuts"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Settings"}},share_camera:{t:0,b:{t:2,i:[{t:3}],s:"Share Camera"}},show_motions:{t:0,b:{t:2,i:[{t:3}],s:"Show motions"}},show_objects:{t:0,b:{t:2,i:[{t:3}],s:"Show objects"}},show_zones:{t:0,b:{t:2,i:[{t:3}],s:"Show zones"}},zoom_in:{t:0,b:{t:2,i:[{t:3}],s:"Zoom in"}},zoom_out:{t:0,b:{t:2,i:[{t:3}],s:"Zoom out"}}},plugin_card:{installed:{t:0,b:{t:2,i:[{t:3}],s:"Installed"}},no_description:{t:0,b:{t:2,i:[{t:3}],s:"No description available"}},restart:{t:0,b:{t:2,i:[{t:3}],s:"Restart"}},select_version:{t:0,b:{t:2,i:[{t:3}],s:"Select version"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Settings"}},start:{t:0,b:{t:2,i:[{t:3}],s:"Start"}},status_disabled:{t:0,b:{t:2,i:[{t:3}],s:"Disabled"}},status_error:{t:0,b:{t:2,i:[{t:3}],s:"Error"}},status_ready:{t:0,b:{t:2,i:[{t:3}],s:"Ready"}},status_started:{t:0,b:{t:2,i:[{t:3}],s:"Started"}},status_starting:{t:0,b:{t:2,i:[{t:3}],s:"Starting"}},status_stopped:{t:0,b:{t:2,i:[{t:3}],s:"Stopped"}},status_unknown:{t:0,b:{t:2,i:[{t:3}],s:"Unknown"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Stop"}},uninstall:{t:0,b:{t:2,i:[{t:3}],s:"Uninstall"}},update:{t:0,b:{t:2,i:[{t:3}],s:"Update"}},update_available:{t:0,b:{t:2,i:[{t:3}],s:"Update available"}}},plugin_search:{plugins:{t:0,b:{t:2,i:[{t:3}],s:"Plugins"}}},plugin_types:{hub:{t:0,b:{t:2,i:[{t:3}],s:"Hub"}},cameraController:{t:0,b:{t:2,i:[{t:3}],s:"Camera Controller"}},motionDetection:{t:0,b:{t:2,i:[{t:3}],s:"Motion Detection"}},objectDetection:{t:0,b:{t:2,i:[{t:3}],s:"Object Detection"}},audioDetection:{t:0,b:{t:2,i:[{t:3}],s:"Audio Detection"}},ptz:{t:0,b:{t:2,i:[{t:3}],s:"PTZ"}}},process_table:{status_error:{t:0,b:{t:2,i:[{t:3}],s:"Error"}},status_ready:{t:0,b:{t:2,i:[{t:3}],s:"Ready"}},status_started:{t:0,b:{t:2,i:[{t:3}],s:"Started"}},status_starting:{t:0,b:{t:2,i:[{t:3}],s:"Starting"}},status_stopped:{t:0,b:{t:2,i:[{t:3}],s:"Stopped"}},status_unknown:{t:0,b:{t:2,i:[{t:3}],s:"Unknown"}},title_cpu:{t:0,b:{t:2,i:[{t:3}],s:"CPU"}},title_cpu_load:{t:0,b:{t:2,i:[{t:3}],s:"CPU load"}},title_memory:{t:0,b:{t:2,i:[{t:3}],s:"Memory"}},title_memory_load:{t:0,b:{t:2,i:[{t:3}],s:"Memory load"}},title_name:{t:0,b:{t:2,i:[{t:3}],s:"Name"}},title_pid:{t:0,b:{t:2,i:[{t:3}],s:"PID"}}},topbar:{syncing_data:{t:0,b:{t:2,i:[{t:3}],s:"Syncing data..."}}},toast:{backup_downloaded:{t:0,b:{t:2,i:[{t:3}],s:"Backup file download successfully"}},backup_restored:{t:0,b:{t:2,i:[{t:3}],s:"Backup file restored successfully"}},camera_added:{t:0,b:{t:2,i:[{t:3}],s:"Camera added successfully"}},camera_removed:{t:0,b:{t:2,i:[{t:3}],s:"Camera removed successfully"}},camera_updated:{t:0,b:{t:2,i:[{t:3}],s:"Camera updated successfully"}},cameras_removed:{t:0,b:{t:2,i:[{t:3}],s:"Cameras removed successfully"}},config_deleted:{t:0,b:{t:2,i:[{t:3}],s:"Configuration deleted successfully"}},config_go2rtc_deleted:{t:0,b:{t:2,i:[{t:3}],s:"Go2RTC configuration deleted successfully"}},config_go2rtc_updated:{t:0,b:{t:2,i:[{t:3}],s:"Go2RTC configuration updated successfully"}},config_updated:{t:0,b:{t:2,i:[{t:3}],s:"Configuration updated successfully"}},error_see_console:{t:0,b:{t:2,i:[{t:3}],s:"Error, see console"}},frame_worker_restarted:{t:0,b:{t:2,i:[{t:3}],s:"Frame worker restarted successfully"}},go2rtc_restarted:{t:0,b:{t:2,i:[{t:3}],s:"Go2RTC restarted successfully"}},log_cleared:{t:0,b:{t:2,i:[{t:3}],s:"Log cleared successfully"}},plugin_config_updated:{t:0,b:{t:2,i:[{t:3}],s:"Plugin configuration updated successfully"}},plugin_disabled:{t:0,b:{t:2,i:[{t:3}],s:"Plugin disabled successfully"}},plugin_enabled:{t:0,b:{t:2,i:[{t:3}],s:"Plugin enabled successfully"}},plugin_installed:{t:0,b:{t:2,i:[{t:3}],s:"Plugin installed successfully"}},plugin_removed:{t:0,b:{t:2,i:[{t:3}],s:"Plugin removed successfully"}},plugin_request_sent:{t:0,b:{t:2,i:[{t:3}],s:"Plugin request send successfully"}},plugin_restarted:{t:0,b:{t:2,i:[{t:3}],s:"Plugin restarted successfully"}},plugin_settings_updated:{t:0,b:{t:2,i:[{t:3}],s:"Plugin settings updated successfully"}},plugin_started:{t:0,b:{t:2,i:[{t:3}],s:"Plugin started successfully"}},plugin_stopped:{t:0,b:{t:2,i:[{t:3}],s:"Plugin stopped successfully"}},plugins_removed:{t:0,b:{t:2,i:[{t:3}],s:"Plugins removed successfully"}},profile_updated:{t:0,b:{t:2,i:[{t:3}],s:"Profile updated successfully"}},server_restarted:{t:0,b:{t:2,i:[{t:3}],s:"Server restarted successfully"}},server_updated:{t:0,b:{t:2,i:[{t:3}],s:"Server updated successfully"}},user_added:{t:0,b:{t:2,i:[{t:3}],s:"User added successfully"}},user_logged_out:{t:0,b:{t:2,i:[{t:3}],s:"User logged out successfully"}},user_removed:{t:0,b:{t:2,i:[{t:3}],s:"User removed successfully"}},user_updated:{t:0,b:{t:2,i:[{t:3}],s:"User updated successfully"}},users_removed:{t:0,b:{t:2,i:[{t:3}],s:"Users removed successfully"}},view_added:{t:0,b:{t:2,i:[{t:3}],s:"View added successfully"}},view_removed:{t:0,b:{t:2,i:[{t:3}],s:"View removed successfully"}},view_updated:{t:0,b:{t:2,i:[{t:3}],s:"View updated successfully"}},views_removed:{t:0,b:{t:2,i:[{t:3}],s:"Views removed successfully"}},zone_added:{t:0,b:{t:2,i:[{t:3}],s:"Zone added successfully"}},zone_updated:{t:0,b:{t:2,i:[{t:3}],s:"Zone updated successfully"}},zone_removed:{t:0,b:{t:2,i:[{t:3}],s:"Zone removed successfully"}}},upload_files:{drop_or_select_file:{t:0,b:{t:2,i:[{t:3}],s:"Drop or select file"}},only_one_file_allowed:{t:0,b:{t:2,i:[{t:3}],s:"Only one file allowed"}}},user_menu:{account:{t:0,b:{t:2,i:[{t:3}],s:"Account"}},admin_panel:{t:0,b:{t:2,i:[{t:3}],s:"Admin panel"}},config:{t:0,b:{t:2,i:[{t:3}],s:"Configuration"}},console:{t:0,b:{t:2,i:[{t:3}],s:"Logs"}},logout:{t:0,b:{t:2,i:[{t:3}],s:"Logout"}},plugins:{t:0,b:{t:2,i:[{t:3}],s:"Plugins"}},reload:{t:0,b:{t:2,i:[{t:3}],s:"Reload"}}},user_table:{title_address:{t:0,b:{t:2,i:[{t:3}],s:"Address"}},title_device:{t:0,b:{t:2,i:[{t:3}],s:"Device"}},title_role:{t:0,b:{t:2,i:[{t:3}],s:"Role"}},title_username:{t:0,b:{t:2,i:[{t:3}],s:"Username"}},you:{t:0,b:{t:2,i:[{t:3}],s:"You"}}},view_box:{available_streams:{t:0,b:{t:2,i:[{t:3}],s:"Available streams"}}},zone_editor:{zone:{t:0,b:{t:2,i:[{t:3}],s:"Zone"}}}},general:{loading:{t:0,b:{t:2,i:[{t:3}],s:"Loading..."}},role_admin:{t:0,b:{t:2,i:[{t:3}],s:"Admin"}},role_user:{t:0,b:{t:2,i:[{t:3}],s:"User"}}},navigation:{account:{t:0,b:{t:2,i:[{t:3}],s:"Account"}},adminpanel:{t:0,b:{t:2,i:[{t:3}],s:"Admin panel"}},appearance:{t:0,b:{t:2,i:[{t:3}],s:"Appearance"}},backup:{t:0,b:{t:2,i:[{t:3}],s:"Backup"}},cameras:{t:0,b:{t:2,i:[{t:3}],s:"Cameras"}},camview:{t:0,b:{t:2,i:[{t:3}],s:"Camview"}},config:{t:0,b:{t:2,i:[{t:3}],s:"Configuration"}},console:{t:0,b:{t:2,i:[{t:3}],s:"Logs"}},nvr:{t:0,b:{t:2,i:[{t:3}],s:"NVR"}},plugins:{t:0,b:{t:2,i:[{t:3}],s:"Plugins"}},recordings:{t:0,b:{t:2,i:[{t:3}],s:"Recordings"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Settings"}},system:{t:0,b:{t:2,i:[{t:3}],s:"System"}},user:{t:0,b:{t:2,i:[{t:3}],s:"Users"}}},navigation_description:{account_description:{t:0,b:{t:2,i:[{t:3}],s:"Manage account settings & experience."}},appearance_description:{t:0,b:{t:2,i:[{t:3}],s:"Manage app appearance & interface."}},backup_description:{t:0,b:{t:2,i:[{t:3}],s:"Manage, schedule backups & restore data."}},nvr_description:{t:0,b:{t:2,i:[{t:3}],s:"Manage Network Video Recorder system."}},recordings_description:{t:0,b:{t:2,i:[{t:3}],s:"Manage recordings & storage options."}},system_description:{t:0,b:{t:2,i:[{t:3}],s:"Manage system, monitor status & tasks."}},user_description:{t:0,b:{t:2,i:[{t:3}],s:"Manage users, roles & permissions."}}},views:{404:{button_home:{t:0,b:{t:2,i:[{t:3}],s:"Home"}},error_message:{t:0,b:{t:2,i:[{t:3}],s:"The page you are looking for does not exist."}}},adminpanel:{frameworker:{t:0,b:{t:2,i:[{t:3}],s:"Frameworker"}},general:{t:0,b:{t:2,i:[{t:3}],s:"General"}},logged_in_users:{t:0,b:{t:2,i:[{t:3}],s:"Logged in users"}},main:{t:0,b:{t:2,i:[{t:3}],s:"Main"}},plugins:{t:0,b:{t:2,i:[{t:3}],s:"Plugins"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Admin panel"}}},camera:{detections:{t:0,b:{t:2,i:[{t:3}],s:"Detections"}},timeline:{t:0,b:{t:2,i:[{t:3}],s:"Timeline"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Camera"}}},cameras:{events:{t:0,b:{t:2,i:[{t:3}],s:"Events"}},new_camera:{t:0,b:{t:2,i:[{t:3}],s:"New camera"}},no_cameras:{t:0,b:{t:2,i:[{t:3}],s:"No cameras available"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Cameras"}}},camview:{all_cameras:{t:0,b:{t:2,i:[{t:3}],s:"All cameras"}},cameras:{t:0,b:{t:2,i:[{t:3}],s:"Cameras"}},new_dnd:{t:0,b:{t:2,i:[{t:3}],s:"New DND"}},new_view:{t:0,b:{t:2,i:[{t:3}],s:"New View"}},no_dnds_configured:{t:0,b:{t:2,i:[{t:3}],s:"No DNDs configured"}},no_views_configured:{t:0,b:{t:2,i:[{t:3}],s:"No views configured"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Camview"}}},config:{title:{t:0,b:{t:2,i:[{t:3}],s:"Configuration"}}},console:{title:{t:0,b:{t:2,i:[{t:3}],s:"Logs"}}},firststeps:{complete:{t:0,b:{t:2,i:[{t:3}],s:"Complete"}},enjoy:{t:0,b:{t:2,i:[{t:3}],s:"Enjoy!"}},finish_message:{t:0,b:{t:2,i:[{t:3}],s:"You have successfully completed the first steps. You can now start using the application."}},from_backup:{t:0,b:{t:2,i:[{t:3}],s:"Restore from Backup"}},new_installation:{t:0,b:{t:2,i:[{t:3}],s:"New Installation"}},start_message:{t:0,b:{t:2,i:[{t:3}],s:"Please choose whether you want to start a new installation or restore from a backup."}},step_account:{t:0,b:{t:2,i:[{t:3}],s:"Account"}},step_appearance:{t:0,b:{t:2,i:[{t:3}],s:"Appearance"}},step_finish:{t:0,b:{t:2,i:[{t:3}],s:"Finish"}},step_welcome:{t:0,b:{t:2,i:[{t:3}],s:"Welcome"}},title:{t:0,b:{t:2,i:[{t:3}],s:"First steps"}},welcome_to:{t:0,b:{t:2,i:[{t:3}],s:"Welcome to"}}},login:{title:{t:0,b:{t:2,i:[{t:3}],s:"Login"}}},new_camera:{camera:{t:0,b:{t:2,i:[{t:3}],s:"Camera"}},source:{t:0,b:{t:2,i:[{t:3}],s:"Source"}},title:{t:0,b:{t:2,i:[{t:3}],s:"New camera"}}},plugin:{changelog:{t:0,b:{t:2,i:[{t:3}],s:"Changelog"}},no_changelog:{t:0,b:{t:2,i:[{t:3}],s:"No changelog available"}},no_readme:{t:0,b:{t:2,i:[{t:3}],s:"No readme available"}},plugin_settings:{t:0,b:{t:2,i:[{t:3}],s:"Plugin settings"}},readme:{t:0,b:{t:2,i:[{t:3}],s:"Readme"}},segment_tab_cameras:{t:0,b:{t:2,i:[{t:3}],s:"Cameras"}},segment_tab_interface:{t:0,b:{t:2,i:[{t:3}],s:"Interface"}},segment_tab_plugins:{t:0,b:{t:2,i:[{t:3}],s:"Plugins"}},segment_tab_settings:{t:0,b:{t:2,i:[{t:3}],s:"Settings"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Plugin"}}},plugins:{no_plugins:{t:0,b:{t:2,i:[{t:3}],s:"No plugins available"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Plugins"}}},recordings:{title:{t:0,b:{t:2,i:[{t:3}],s:"Recordings"}}},settings:{available_updates:{t:0,b:{t:2,i:[{t:3}],s:"Available updates"}},available_updates_info:{t:0,b:{t:2,i:[{t:3}],s:"Updates are available for camera.ui."}},certificate:{t:0,b:{t:2,i:[{t:3}],s:"Certificate"}},certificate_info:{t:0,b:{t:2,i:[{t:3}],s:"Download the SSL certificate of the website here. By adding this certificate to your keychain or certificate management, the site is recognized as secure. This improves the browser experience and avoids security warnings."}},create_backup:{t:0,b:{t:2,i:[{t:3}],s:"Create backup"}},create_backup_info:{t:0,b:{t:2,i:[{t:3}],s:"Create a backup of the current configuration. Download a backup archive of your entire camera.ui environment. This will backup the contents of your camera.ui storage directory. You can restore this later on any platform where camera.ui is running."}},edit:{t:0,b:{t:2,i:[{t:3}],s:"Edit"}},interface:{t:0,b:{t:2,i:[{t:3}],s:"Interface"}},locale:{t:0,b:{t:2,i:[{t:3}],s:"Locale"}},network:{t:0,b:{t:2,i:[{t:3}],s:"Network"}},network_info:{t:0,b:{t:2,i:[{t:3}],s:"Configure here the IP addresses the server uses for WebRTC communication with the cameras. This setting allows for a stable and efficient connection between your system and the connected cameras."}},not_available_updates_info:{t:0,b:{t:2,i:[{t:3}],s:"You are using the latest version of camera.ui"}},password:{t:0,b:{t:2,i:[{t:3}],s:"Password"}},profile:{t:0,b:{t:2,i:[{t:3}],s:"Profile"}},registered_users:{t:0,b:{t:2,i:[{t:3}],s:"Registered users"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"Remove"}},restart_server:{t:0,b:{t:2,i:[{t:3}],s:"Restart server"}},restart_server_info:{t:0,b:{t:2,i:[{t:3}],s:"By clicking this button you restart the server. A loading screen will be displayed until the restart is complete. The page will then be automatically refreshed and available to you again."}},restore_backup:{t:0,b:{t:2,i:[{t:3}],s:"Restore backup"}},restore_backup_info:{t:0,b:{t:2,i:[{t:3}],s:"Restore a backup archive you previously created with camera.ui. Your camera.ui configuration, database, user accounts, and media will be restored."}},search_by_name:{t:0,b:{t:2,i:[{t:3}],s:"Search by name"}},searching_updates:{t:0,b:{t:2,i:[{t:3}],s:"Searching for updates..."}},sheduled_backup:{t:0,b:{t:2,i:[{t:3}],s:"Sheduled backup"}},sheduled_backup_info:{t:0,b:{t:2,i:[{t:3}],s:"Shedule a backup of the current configuration"}},theme:{t:0,b:{t:2,i:[{t:3}],s:"Theme"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Settings"}},title_account:{t:0,b:{t:2,i:[{t:3}],s:"Account"}},title_appearance:{t:0,b:{t:2,i:[{t:3}],s:"Appearance"}},title_backup:{t:0,b:{t:2,i:[{t:3}],s:"Backup"}},title_go2rtc:{t:0,b:{t:2,i:[{t:3}],s:"Go2RTC"}},title_nvr:{t:0,b:{t:2,i:[{t:3}],s:"NVR"}},title_recordings:{t:0,b:{t:2,i:[{t:3}],s:"Recordings"}},title_system:{t:0,b:{t:2,i:[{t:3}],s:"System"}},title_user:{t:0,b:{t:2,i:[{t:3}],s:"Users"}},update_available:{t:0,b:{t:2,i:[{t:3}],s:"Update available"}},version:{t:0,b:{t:2,i:[{t:3}],s:"Version"}},version_info:{t:0,b:{t:2,i:[{t:3}],s:"camera.ui version"}}}}}}),Na=["af","ar","ar-ae","ar-bh","ar-dz","ar-eg","ar-iq","ar-jo","ar-kw","ar-lb","ar-ly","ar-ma","ar-om","ar-qa","ar-sa","ar-sy","ar-tn","ar-ye","as","ast","az","be","bg","bn","br","bs","ca","ce","ch","co","cr","cs","cv","cy","da","de","de-at","de-ch","de-de","de-li","de-lu","el","en","en-au","en-bz","en-ca","en-gb","en-ie","en-jm","en-nz","en-ph","en-tt","en-us","en-za","en-zw","eo","es","es-ar","es-bo","es-cl","es-co","es-cr","es-do","es-ec","es-es","es-gt","es-hn","es-mx","es-ni","es-pa","es-pe","es-pr","es-py","es-sv","es-uy","es-ve","et","eu","fa","fa-ir","fi","fj","fo","fr","fr-be","fr-ca","fr-ch","fr-fr","fr-lu","fr-mc","fur","fy","ga","gd","gd-ie","gl","gu","he","hi","hr","hsb","ht","hu","hy","id","is","it","it-ch","iu","ja","ji","ka","kk","km","kn","ko","ko-kp","ko-kr","ks","ky","la","lb","lt","lv","mi","mk","ml","mo","mr","ms","mt","my","nb","ne","ng","nl","nl-be","nn","no","nv","oc","om","or","pa","pa-in","pa-pk","pl","pt","pt-br","qu","rm","ro","ro-mo","ru","ru-mo","sa","sb","sc","sd","sg","si","sk","sl","so","sq","sr","sv","sv-fi","sv-sv","sw","sx","sz","ta","te","th","tig","tk","tlh","tn","tr","ts","tt","uk","ur","ve","vi","vo","wa","xh","zh","zh-cn","zh-hk","zh-sg","zh-tw","zu"],xs="en",er=["de","en"],Da=s=>{var e;const t=i=>za(Na.find(n=>n===(i==null?void 0:i.toLowerCase())));return(e=window.navigator)!=null&&e.language?t(window.navigator.language):t("en")},za=s=>{if(!s)return xs;switch(s){case er.find(t=>t===s):return s;default:return xs}},$e=lo({locale:Da(),fallbackLocale:xs,messages:ja,legacy:!1,globalInjection:!0}),le=uo.create({baseURL:`${location.origin}/api`});le.interceptors.request.use(s=>{const{loginState:t}=Ie();return t.access_token&&(s.headers.Authorization=`Bearer ${t.access_token}`),s},s=>Promise.reject(s));le.interceptors.response.use(s=>s,async s=>{var i,n,r,o,a,c;const t=s.config,e=((n=(i=s.response)==null?void 0:i.data)==null?void 0:n.message)==="Token expired"||((a=(o=(r=s.response)==null?void 0:r.data)==null?void 0:o.message)==null?void 0:a.name)==="TokenExpiredError";if(((c=s.response)==null?void 0:c.status)===401&&e&&!t._retry){t._retry=!0;try{const{refreshToken:u}=Ie();return await u(),le(t)}catch(u){return Promise.reject(u)}}return Promise.reject(s)});const tr=async s=>(await le.get("/auth/check",{signal:s})).data,qa=async({parameter:s,clientData:t,signal:e})=>(await le.get("/auth/tokens",{params:{...s,clientData:t},signal:e})).data,sr=async({loginInformation:s})=>(await le.post("/auth/login",s)).data,ir=async()=>(await le.post("/auth/logout")).data,Fa=async({id:s,access_token:t})=>(await le.post(`/auth/logout/${s}`,null,{params:{token:t}})).data,nr=async({refresh_token:s})=>(await le.post("/auth/refresh",{refresh_token:s})).data;class qp{constructor(){V(this,"_queryClient",Yt());V(this,"authStore",Ie());V(this,"queryActivator",Q([{name:"checkQuery",enabled:!0},{name:"listQuery",enabled:!0}]))}get queryClient(){return this._queryClient}checkQuery(){var t;return ut({queryKey:["auth",(t=this.authStore.loginState.user)==null?void 0:t.username],queryFn:({signal:e})=>tr(e),enabled:()=>this.queryActivator.value.some(e=>e.name==="checkQuery"&&e.enabled)})}listQuery(t,e=!1){return ut({queryKey:["tokensList",t],queryFn:({signal:i})=>qa({parameter:v(t),clientData:e,signal:i}),placeholderData:i=>i,enabled:()=>this.queryActivator.value.some(i=>i.name==="listQuery"&&i.enabled)})}loginQuery(){return Pe({mutationFn:sr})}logoutQuery(){return Pe({mutationFn:ir})}logoutTokenQuery(){return Pe({mutationFn:Fa,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:["tokensList"]}),Oe.success($e.global.t("components.toast.user_logged_out"))}})}refreshQuery(){return Pe({mutationFn:nr})}toggleQueryActivator(t,e){const i=this.queryActivator.value.find(n=>n.name===t);i&&(i.enabled=e)}}const Ha=async({userData:s})=>(await le.post("/users",s)).data,Ua=async({username:s,signal:t})=>(await le.get(`/users/${s}`,{signal:t})).data,Za=async({parameter:s,signal:t})=>(await le.get("/users",{params:s,signal:t})).data,ks=async({username:s,userData:t})=>(await le.patch(`/users/${s}`,t)).data,Wa=async({username:s})=>(await le.delete(`/users/${s}`)).data,Ga=async()=>(await le.delete("/users")).data,Ka=async({username:s,cameraname:t,shortcutData:e})=>(await le.post(`/users/${s}/preferences/cameras/${t}/shortcuts`,e)).data,Qa=async({username:s,cameraname:t,shortcutid:e,signal:i})=>(await le.get(`/users/${s}/preferences/cameras/${t}/shortcuts/${e}`,{signal:i})).data,Ya=async({username:s,cameraname:t,signal:e})=>(await le.get(`/users/${s}/preferences/cameras/${t}/shortcuts`,{signal:e})).data,Xa=async({username:s,cameraname:t,shortcutid:e,shortcutData:i})=>(await le.patch(`/users/${s}/preferences/cameras/${t}/shortcuts/${e}`,i)).data,Ja=async({username:s,cameraname:t,shortcutid:e})=>(await le.delete(`/users/${s}/preferences/cameras/${t}/shortcuts/${e}`)).data,el=async({username:s,cameraname:t})=>(await le.delete(`/users/${s}/preferences/cameras/${t}/shortcuts`)).data,tl=async({username:s,viewData:t})=>(await le.post(`/users/${s}/preferences/camview/views`,t)).data,sl=async({username:s,viewid:t,signal:e})=>(await le.get(`/users/${s}/preferences/camview/views/${t}`,{signal:e})).data,il=async({username:s,parameter:t,signal:e})=>(await le.get(`/users/${s}/preferences/camview/views`,{params:t,signal:e})).data,Ji=async({username:s,viewid:t,viewData:e})=>(await le.patch(`/users/${s}/preferences/camview/views/${t}`,e)).data,nl=async({username:s,viewid:t})=>(await le.delete(`/users/${s}/preferences/camview/views/${t}`)).data,rl=async({username:s})=>(await le.delete(`/users/${s}/preferences/camview/views`)).data;class Fp{constructor(){V(this,"_queryClient",Yt());V(this,"queryActivator",Q([{name:"getUserQuery",enabled:!0},{name:"getUsersQuery",enabled:!0},{name:"getShortcutQuery",enabled:!0},{name:"getShortcutsQuery",enabled:!0},{name:"getViewQuery",enabled:!0},{name:"getViewsQuery",enabled:!0}]))}get queryClient(){return this._queryClient}createUserQuery(){return Pe({mutationFn:Ha,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:["usersList"]}),Oe.success($e.global.t("components.toast.user_added"))}})}getUserQuery(t){return ut({queryKey:["users",t],queryFn:({signal:e})=>Ua({username:v(t),signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name==="getUserQuery"&&e.enabled)})}getUsersQuery(t){return ut({queryKey:["usersList",t],queryFn:({signal:e})=>Za({parameter:v(t),signal:e}),placeholderData:e=>e,enabled:()=>this.queryActivator.value.some(e=>e.name==="getUsersQuery"&&e.enabled)})}patchUserQuery(){return Pe({mutationFn:async({username:t,userData:e,formData:i})=>{await ks({username:t,userData:e}),i&&await ks({username:t,userData:i})},onSuccess:async(t,e)=>{await this._queryClient.refetchQueries({queryKey:["users",e.username]}),Oe.success($e.global.t("components.toast.user_updated"))}})}removeUserQuery(){return Pe({mutationFn:Wa,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:["usersList"]}),Oe.success($e.global.t("components.toast.user_removed"))}})}removeUsersQuery(){return Pe({mutationFn:Ga,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:["usersList"]}),Oe.success($e.global.t("components.toast.users_removed"))}})}createShortcutQuery(){return Pe({mutationFn:Ka,onSuccess:async(t,e)=>{await this._queryClient.refetchQueries({queryKey:["shortcutsList",e.username]})}})}getShortcutQuery(t,e,i){return ut({queryKey:["shortcutsList",t],queryFn:({signal:n})=>Qa({username:v(t),cameraname:v(e),shortcutid:v(i),signal:n}),enabled:()=>this.queryActivator.value.some(n=>n.name==="getShortcutQuery"&&n.enabled)})}getShortcutsQuery(t,e){return ut({queryKey:["shortcutsList",t],queryFn:({signal:i})=>Ya({username:v(t),cameraname:v(e),signal:i}),placeholderData:i=>i,enabled:()=>this.queryActivator.value.some(i=>i.name==="getShortcutsQuery"&&i.enabled)})}patchShortcutQuery(){return Pe({mutationFn:Xa,onSuccess:async(t,e)=>{await this._queryClient.refetchQueries({queryKey:["shortcutsList",e.username]})},onError:t=>{console.log(t),Oe.success($e.global.t("components.toast.error_see_console"))}})}removeShortcutQuery(){return Pe({mutationFn:Ja,onSuccess:async(t,e)=>{await this._queryClient.refetchQueries({queryKey:["shortcutsList",e.username]})},onError:t=>{console.log(t),Oe.success($e.global.t("components.toast.error_see_console"))}})}removeShortcutsQuery(){return Pe({mutationFn:el,onSuccess:async(t,e)=>{await this._queryClient.refetchQueries({queryKey:["shortcutsList",e.username]})},onError:t=>{console.log(t),Oe.success($e.global.t("components.toast.error_see_console"))}})}createViewQuery(){return Pe({mutationFn:tl,onSuccess:async(t,e)=>{await this._queryClient.refetchQueries({queryKey:["viewsList",e.username]}),Oe.success($e.global.t("components.toast.view_added"))}})}getViewQuery(t,e){return ut({queryKey:["viewsList",t],queryFn:({signal:i})=>sl({username:v(t),viewid:v(e),signal:i}),enabled:()=>this.queryActivator.value.some(i=>i.name==="getUserQuery"&&i.enabled)})}getViewsQuery(t,e){return ut({queryKey:["viewsList",t,e],queryFn:({signal:i})=>il({username:v(t),parameter:v(e),signal:i}),placeholderData:i=>i,enabled:()=>this.queryActivator.value.some(i=>i.name==="getViewsQuery"&&i.enabled)})}patchViewQuery(){return Pe({mutationFn:Ji,onSuccess:async(t,e)=>{await this._queryClient.refetchQueries({queryKey:["viewsList",e.username]}),Oe.success($e.global.t("components.toast.view_updated"))}})}patchViewQuerySilent(){return Pe({mutationFn:Ji,onSuccess:async(t,e)=>{await this._queryClient.invalidateQueries({queryKey:["viewsList",e.username]})}})}removeViewQuery(){return Pe({mutationFn:nl,onSuccess:async(t,e)=>{await this._queryClient.refetchQueries({queryKey:["viewsList",e.username]}),Oe.success($e.global.t("components.toast.view_removed"))}})}removeViewsQuery(){return Pe({mutationFn:rl,onSuccess:async(t,e)=>{await this._queryClient.refetchQueries({queryKey:["viewsList",e.username]}),Oe.success($e.global.t("components.toast.views_removed"))}})}toggleQueryActivator(t,e){const i=this.queryActivator.value.find(n=>n.name===t);i&&(i.enabled=e)}}var en={};/*! For license information please see bundle.js.LICENSE.txt */var ol={855:s=>{const t=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,e=()=>t.now(),i=r=>r===1/0||(o=>o&&o===Math.floor(o)&&o>0&&isFinite(o))(r);class n{constructor({max:o=1/0,ttl:a,updateAgeOnGet:c=!1,checkAgeOnGet:u=!1,noUpdateTTL:d=!1,dispose:m,noDisposeOnSet:y=!1}={}){if(this.expirations=Object.create(null),this.data=new Map,this.expirationMap=new Map,a!==void 0&&!i(a))throw new TypeError("ttl must be positive integer or Infinity if set");if(!i(o))throw new TypeError("max must be positive integer or Infinity");if(this.ttl=a,this.max=o,this.updateAgeOnGet=!!c,this.checkAgeOnGet=!!u,this.noUpdateTTL=!!d,this.noDisposeOnSet=!!y,m!==void 0){if(typeof m!="function")throw new TypeError("dispose must be function if set");this.dispose=m}this.timer=void 0,this.timerExpiration=void 0}setTimer(o,a){if(this.timerExpiration<o)return;this.timer&&clearTimeout(this.timer);const c=setTimeout(()=>{this.timer=void 0,this.timerExpiration=void 0,this.purgeStale();for(const u in this.expirations){this.setTimer(u,u-e());break}},a);c.unref&&c.unref(),this.timerExpiration=o,this.timer=c}cancelTimer(){this.timer&&(clearTimeout(this.timer),this.timerExpiration=void 0,this.timer=void 0)}cancelTimers(){return process.emitWarning('TTLCache.cancelTimers has been renamed to TTLCache.cancelTimer (no "s"), and will be removed in the next major version update'),this.cancelTimer()}clear(){const o=this.dispose!==n.prototype.dispose?[...this]:[];this.data.clear(),this.expirationMap.clear(),this.cancelTimer(),this.expirations=Object.create(null);for(const[a,c]of o)this.dispose(c,a,"delete")}setTTL(o,a=this.ttl){const c=this.expirationMap.get(o);if(c!==void 0){const u=this.expirations[c];!u||u.length<=1?delete this.expirations[c]:this.expirations[c]=u.filter(d=>d!==o)}if(a!==1/0){const u=Math.floor(e()+a);this.expirationMap.set(o,u),this.expirations[u]||(this.expirations[u]=[],this.setTimer(u,a)),this.expirations[u].push(o)}else this.expirationMap.set(o,1/0)}set(o,a,{ttl:c=this.ttl,noUpdateTTL:u=this.noUpdateTTL,noDisposeOnSet:d=this.noDisposeOnSet}={}){if(!i(c))throw new TypeError("ttl must be positive integer or Infinity");if(this.expirationMap.has(o)){u||this.setTTL(o,c);const m=this.data.get(o);m!==a&&(this.data.set(o,a),d||this.dispose(m,o,"set"))}else this.setTTL(o,c),this.data.set(o,a);for(;this.size>this.max;)this.purgeToCapacity();return this}has(o){return this.data.has(o)}getRemainingTTL(o){const a=this.expirationMap.get(o);return a===1/0?a:a!==void 0?Math.max(0,Math.ceil(a-e())):0}get(o,{updateAgeOnGet:a=this.updateAgeOnGet,ttl:c=this.ttl,checkAgeOnGet:u=this.checkAgeOnGet}={}){const d=this.data.get(o);if(!u||this.getRemainingTTL(o)!==0)return a&&this.setTTL(o,c),d;this.delete(o)}dispose(o,a){}delete(o){const a=this.expirationMap.get(o);if(a!==void 0){const c=this.data.get(o);this.data.delete(o),this.expirationMap.delete(o);const u=this.expirations[a];return u&&(u.length<=1?delete this.expirations[a]:this.expirations[a]=u.filter(d=>d!==o)),this.dispose(c,o,"delete"),this.size===0&&this.cancelTimer(),!0}return!1}purgeToCapacity(){for(const o in this.expirations){const a=this.expirations[o];if(!(this.size-a.length>=this.max)){const c=this.size-this.max,u=[];for(const d of a.splice(0,c))u.push([d,this.data.get(d)]),this.data.delete(d),this.expirationMap.delete(d);for(const[d,m]of u)this.dispose(m,d,"evict");return}{delete this.expirations[o];const c=[];for(const u of a)c.push([u,this.data.get(u)]),this.data.delete(u),this.expirationMap.delete(u);for(const[u,d]of c)this.dispose(d,u,"evict")}}}get size(){return this.data.size}purgeStale(){const o=Math.ceil(e());for(const a in this.expirations){if(a==="Infinity"||a>o)return;const c=[...this.expirations[a]||[]],u=[];delete this.expirations[a];for(const d of c)u.push([d,this.data.get(d)]),this.data.delete(d),this.expirationMap.delete(d);for(const[d,m]of u)this.dispose(m,d,"stale")}this.size===0&&this.cancelTimer()}*entries(){for(const o in this.expirations)for(const a of this.expirations[o])yield[a,this.data.get(a)]}*keys(){for(const o in this.expirations)for(const a of this.expirations[o])yield a}*values(){for(const o in this.expirations)for(const a of this.expirations[o])yield this.data.get(a)}[Symbol.iterator](){return this.entries()}}s.exports=n},73:function(s){s.exports=function(){function t(S,l){var h,f,g,b,x={label:0,sent:function(){if(1&g[0])throw g[1];return g[1]},trys:[],ops:[]};return b={next:k(0),throw:k(1),return:k(2)},typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function k(T){return function(E){return function(M){if(h)throw new TypeError("Generator is already executing.");for(;x;)try{if(h=1,f&&(g=2&M[0]?f.return:M[0]?f.throw||((g=f.return)&&g.call(f),0):f.next)&&!(g=g.call(f,M[1])).done)return g;switch(f=0,g&&(M=[2&M[0],g.value]),M[0]){case 0:case 1:g=M;break;case 4:return x.label++,{value:M[1],done:!1};case 5:x.label++,f=M[1],M=[0];continue;case 7:M=x.ops.pop(),x.trys.pop();continue;default:if(!((g=(g=x.trys).length>0&&g[g.length-1])||M[0]!==6&&M[0]!==2)){x=0;continue}if(M[0]===3&&(!g||M[1]>g[0]&&M[1]<g[3])){x.label=M[1];break}if(M[0]===6&&x.label<g[1]){x.label=g[1],g=M;break}if(g&&x.label<g[2]){x.label=g[2],x.ops.push(M);break}g[2]&&x.ops.pop(),x.trys.pop();continue}M=l.call(S,x)}catch(L){M=[6,L],f=0}finally{h=g=0}if(5&M[0])throw M[1];return{value:M[0]?M[1]:void 0,done:!0}}([T,E])}}}var e=function(S,l){this.next=null,this.key=S,this.data=l,this.left=null,this.right=null};function i(S,l){return S>l?1:S<l?-1:0}function n(S,l,h){for(var f=new e(null,null),g=f,b=f;;){var x=h(S,l.key);if(x<0){if(l.left===null)break;if(h(S,l.left.key)<0){var k=l.left;if(l.left=k.right,k.right=l,(l=k).left===null)break}b.left=l,b=l,l=l.left}else{if(!(x>0)||l.right===null||h(S,l.right.key)>0&&(k=l.right,l.right=k.left,k.left=l,(l=k).right===null))break;g.right=l,g=l,l=l.right}}return g.right=l.left,b.left=l.right,l.left=f.right,l.right=f.left,l}function r(S,l,h,f){var g=new e(S,l);if(h===null)return g.left=g.right=null,g;var b=f(S,(h=n(S,h,f)).key);return b<0?(g.left=h.left,g.right=h,h.left=null):b>=0&&(g.right=h.right,g.left=h,h.right=null),g}function o(S,l,h){var f=null,g=null;if(l){var b=h((l=n(S,l,h)).key,S);b===0?(f=l.left,g=l.right):b<0?(g=l.right,l.right=null,f=l):(f=l.left,l.left=null,g=l)}return{left:f,right:g}}function a(S,l,h,f,g){if(S){f(l+(h?"└── ":"├── ")+g(S)+`
3
- `);var b=l+(h?" ":"│ ");S.left&&a(S.left,b,!1,f,g),S.right&&a(S.right,b,!0,f,g)}}var c=function(){function S(l){l===void 0&&(l=i),this._root=null,this._size=0,this._comparator=l}return S.prototype.insert=function(l,h){return this._size++,this._root=r(l,h,this._root,this._comparator)},S.prototype.add=function(l,h){var f=new e(l,h);this._root===null&&(f.left=f.right=null,this._size++,this._root=f);var g=this._comparator,b=n(l,this._root,g),x=g(l,b.key);return x===0?this._root=b:(x<0?(f.left=b.left,f.right=b,b.left=null):x>0&&(f.right=b.right,f.left=b,b.right=null),this._size++,this._root=f),this._root},S.prototype.remove=function(l){this._root=this._remove(l,this._root,this._comparator)},S.prototype._remove=function(l,h,f){var g;return h===null?null:f(l,(h=n(l,h,f)).key)===0?(h.left===null?g=h.right:(g=n(l,h.left,f)).right=h.right,this._size--,g):h},S.prototype.pop=function(){var l=this._root;if(l){for(;l.left;)l=l.left;return this._root=n(l.key,this._root,this._comparator),this._root=this._remove(l.key,this._root,this._comparator),{key:l.key,data:l.data}}return null},S.prototype.findStatic=function(l){for(var h=this._root,f=this._comparator;h;){var g=f(l,h.key);if(g===0)return h;h=g<0?h.left:h.right}return null},S.prototype.find=function(l){return this._root&&(this._root=n(l,this._root,this._comparator),this._comparator(l,this._root.key)!==0)?null:this._root},S.prototype.contains=function(l){for(var h=this._root,f=this._comparator;h;){var g=f(l,h.key);if(g===0)return!0;h=g<0?h.left:h.right}return!1},S.prototype.forEach=function(l,h){for(var f=this._root,g=[],b=!1;!b;)f!==null?(g.push(f),f=f.left):g.length!==0?(f=g.pop(),l.call(h,f),f=f.right):b=!0;return this},S.prototype.range=function(l,h,f,g){for(var b=[],x=this._comparator,k=this._root;b.length!==0||k;)if(k)b.push(k),k=k.left;else{if(x((k=b.pop()).key,h)>0)break;if(x(k.key,l)>=0&&f.call(g,k))return this;k=k.right}return this},S.prototype.keys=function(){var l=[];return this.forEach(function(h){var f=h.key;return l.push(f)}),l},S.prototype.values=function(){var l=[];return this.forEach(function(h){var f=h.data;return l.push(f)}),l},S.prototype.min=function(){return this._root?this.minNode(this._root).key:null},S.prototype.max=function(){return this._root?this.maxNode(this._root).key:null},S.prototype.minNode=function(l){if(l===void 0&&(l=this._root),l)for(;l.left;)l=l.left;return l},S.prototype.maxNode=function(l){if(l===void 0&&(l=this._root),l)for(;l.right;)l=l.right;return l},S.prototype.at=function(l){for(var h=this._root,f=!1,g=0,b=[];!f;)if(h)b.push(h),h=h.left;else if(b.length>0){if(h=b.pop(),g===l)return h;g++,h=h.right}else f=!0;return null},S.prototype.next=function(l){var h=this._root,f=null;if(l.right){for(f=l.right;f.left;)f=f.left;return f}for(var g=this._comparator;h;){var b=g(l.key,h.key);if(b===0)break;b<0?(f=h,h=h.left):h=h.right}return f},S.prototype.prev=function(l){var h=this._root,f=null;if(l.left!==null){for(f=l.left;f.right;)f=f.right;return f}for(var g=this._comparator;h;){var b=g(l.key,h.key);if(b===0)break;b<0?h=h.left:(f=h,h=h.right)}return f},S.prototype.clear=function(){return this._root=null,this._size=0,this},S.prototype.toList=function(){return function(l){for(var h=l,f=[],g=!1,b=new e(null,null),x=b;!g;)h?(f.push(h),h=h.left):f.length>0?h=(h=x=x.next=f.pop()).right:g=!0;return x.next=null,b.next}(this._root)},S.prototype.load=function(l,h,f){h===void 0&&(h=[]),f===void 0&&(f=!1);var g=l.length,b=this._comparator;if(f&&m(l,h,0,g-1,b),this._root===null)this._root=u(l,h,0,g),this._size=g;else{var x=function(k,T,E){for(var M=new e(null,null),L=M,z=k,W=T;z!==null&&W!==null;)E(z.key,W.key)<0?(L.next=z,z=z.next):(L.next=W,W=W.next),L=L.next;return z!==null?L.next=z:W!==null&&(L.next=W),M.next}(this.toList(),function(k,T){for(var E=new e(null,null),M=E,L=0;L<k.length;L++)M=M.next=new e(k[L],T[L]);return M.next=null,E.next}(l,h),b);g=this._size+g,this._root=d({head:x},0,g)}return this},S.prototype.isEmpty=function(){return this._root===null},Object.defineProperty(S.prototype,"size",{get:function(){return this._size},enumerable:!0,configurable:!0}),Object.defineProperty(S.prototype,"root",{get:function(){return this._root},enumerable:!0,configurable:!0}),S.prototype.toString=function(l){l===void 0&&(l=function(f){return String(f.key)});var h=[];return a(this._root,"",!0,function(f){return h.push(f)},l),h.join("")},S.prototype.update=function(l,h,f){var g=this._comparator,b=o(l,this._root,g),x=b.left,k=b.right;g(l,h)<0?k=r(h,f,k,g):x=r(h,f,x,g),this._root=function(T,E,M){return E===null?T:(T===null||((E=n(T.key,E,M)).left=T),E)}(x,k,g)},S.prototype.split=function(l){return o(l,this._root,this._comparator)},S.prototype[Symbol.iterator]=function(){var l,h,f;return t(this,function(g){switch(g.label){case 0:l=this._root,h=[],f=!1,g.label=1;case 1:return f?[3,6]:l===null?[3,2]:(h.push(l),l=l.left,[3,5]);case 2:return h.length===0?[3,4]:[4,l=h.pop()];case 3:return g.sent(),l=l.right,[3,5];case 4:f=!0,g.label=5;case 5:return[3,1];case 6:return[2]}})},S}();function u(S,l,h,f){var g=f-h;if(g>0){var b=h+Math.floor(g/2),x=S[b],k=l[b],T=new e(x,k);return T.left=u(S,l,h,b),T.right=u(S,l,b+1,f),T}return null}function d(S,l,h){var f=h-l;if(f>0){var g=l+Math.floor(f/2),b=d(S,l,g),x=S.head;return x.left=b,S.head=S.head.next,x.right=d(S,g+1,h),x}return null}function m(S,l,h,f,g){if(!(h>=f)){for(var b=S[h+f>>1],x=h-1,k=f+1;;){do x++;while(g(S[x],b)<0);do k--;while(g(S[k],b)>0);if(x>=k)break;var T=S[x];S[x]=S[k],S[k]=T,T=l[x],l[x]=l[k],l[k]=T}m(S,l,h,k,g),m(S,l,k+1,f,g)}}const y=(S,l)=>S.ll.x<=l.x&&l.x<=S.ur.x&&S.ll.y<=l.y&&l.y<=S.ur.y,w=(S,l)=>{if(l.ur.x<S.ll.x||S.ur.x<l.ll.x||l.ur.y<S.ll.y||S.ur.y<l.ll.y)return null;const h=S.ll.x<l.ll.x?l.ll.x:S.ll.x,f=S.ur.x<l.ur.x?S.ur.x:l.ur.x;return{ll:{x:h,y:S.ll.y<l.ll.y?l.ll.y:S.ll.y},ur:{x:f,y:S.ur.y<l.ur.y?S.ur.y:l.ur.y}}};let _=Number.EPSILON;_===void 0&&(_=Math.pow(2,-52));const R=_*_,$=(S,l)=>{if(-_<S&&S<_&&-_<l&&l<_)return 0;const h=S-l;return h*h<R*S*l?0:S<l?-1:1};class C{constructor(){this.tree=new c,this.round(0)}round(l){const h=this.tree.add(l),f=this.tree.prev(h);if(f!==null&&$(h.key,f.key)===0)return this.tree.remove(l),f.key;const g=this.tree.next(h);return g!==null&&$(h.key,g.key)===0?(this.tree.remove(l),g.key):l}}const P=new class{constructor(){this.reset()}reset(){this.xRounder=new C,this.yRounder=new C}round(S,l){return{x:this.xRounder.round(S),y:this.yRounder.round(l)}}},B=11102230246251565e-32,D=134217729,K=(3+8*B)*B;function se(S,l,h,f,g){let b,x,k,T,E=l[0],M=f[0],L=0,z=0;M>E==M>-E?(b=E,E=l[++L]):(b=M,M=f[++z]);let W=0;if(L<S&&z<h)for(M>E==M>-E?(x=E+b,k=b-(x-E),E=l[++L]):(x=M+b,k=b-(x-M),M=f[++z]),b=x,k!==0&&(g[W++]=k);L<S&&z<h;)M>E==M>-E?(x=b+E,T=x-b,k=b-(x-T)+(E-T),E=l[++L]):(x=b+M,T=x-b,k=b-(x-T)+(M-T),M=f[++z]),b=x,k!==0&&(g[W++]=k);for(;L<S;)x=b+E,T=x-b,k=b-(x-T)+(E-T),E=l[++L],b=x,k!==0&&(g[W++]=k);for(;z<h;)x=b+M,T=x-b,k=b-(x-T)+(M-T),M=f[++z],b=x,k!==0&&(g[W++]=k);return b===0&&W!==0||(g[W++]=b),W}function H(S){return new Float64Array(S)}const te=22204460492503146e-32,Z=11093356479670487e-47,U=H(4),_e=H(8),it=H(12),mt=H(16),Me=H(4);function Fs(S,l,h,f,g,b){const x=(l-b)*(h-g),k=(S-g)*(f-b),T=x-k,E=Math.abs(x+k);return Math.abs(T)>=33306690738754716e-32*E?T:-function(M,L,z,W,ce,de,ge){let be,Ee,ue,qe,q,Y,ne,pe,re,fe,ee,me,Le,we,Te,Be,We,Ve;const Ke=M-ce,Qe=z-ce,Ye=L-de,Xe=W-de;we=Ke*Xe,Y=D*Ke,ne=Y-(Y-Ke),pe=Ke-ne,Y=D*Xe,re=Y-(Y-Xe),fe=Xe-re,Te=pe*fe-(we-ne*re-pe*re-ne*fe),Be=Ye*Qe,Y=D*Ye,ne=Y-(Y-Ye),pe=Ye-ne,Y=D*Qe,re=Y-(Y-Qe),fe=Qe-re,We=pe*fe-(Be-ne*re-pe*re-ne*fe),ee=Te-We,q=Te-ee,U[0]=Te-(ee+q)+(q-We),me=we+ee,q=me-we,Le=we-(me-q)+(ee-q),ee=Le-Be,q=Le-ee,U[1]=Le-(ee+q)+(q-Be),Ve=me+ee,q=Ve-me,U[2]=me-(Ve-q)+(ee-q),U[3]=Ve;let lt=function(io,qi){let Fi=qi[0];for(let Ws=1;Ws<io;Ws++)Fi+=qi[Ws];return Fi}(4,U),Rt=te*ge;if(lt>=Rt||-lt>=Rt||(q=M-Ke,be=M-(Ke+q)+(q-ce),q=z-Qe,ue=z-(Qe+q)+(q-ce),q=L-Ye,Ee=L-(Ye+q)+(q-de),q=W-Xe,qe=W-(Xe+q)+(q-de),be===0&&Ee===0&&ue===0&&qe===0)||(Rt=Z*ge+K*Math.abs(lt),lt+=Ke*qe+Xe*be-(Ye*ue+Qe*Ee),lt>=Rt||-lt>=Rt))return lt;we=be*Xe,Y=D*be,ne=Y-(Y-be),pe=be-ne,Y=D*Xe,re=Y-(Y-Xe),fe=Xe-re,Te=pe*fe-(we-ne*re-pe*re-ne*fe),Be=Ee*Qe,Y=D*Ee,ne=Y-(Y-Ee),pe=Ee-ne,Y=D*Qe,re=Y-(Y-Qe),fe=Qe-re,We=pe*fe-(Be-ne*re-pe*re-ne*fe),ee=Te-We,q=Te-ee,Me[0]=Te-(ee+q)+(q-We),me=we+ee,q=me-we,Le=we-(me-q)+(ee-q),ee=Le-Be,q=Le-ee,Me[1]=Le-(ee+q)+(q-Be),Ve=me+ee,q=Ve-me,Me[2]=me-(Ve-q)+(ee-q),Me[3]=Ve;const eo=se(4,U,4,Me,_e);we=Ke*qe,Y=D*Ke,ne=Y-(Y-Ke),pe=Ke-ne,Y=D*qe,re=Y-(Y-qe),fe=qe-re,Te=pe*fe-(we-ne*re-pe*re-ne*fe),Be=Ye*ue,Y=D*Ye,ne=Y-(Y-Ye),pe=Ye-ne,Y=D*ue,re=Y-(Y-ue),fe=ue-re,We=pe*fe-(Be-ne*re-pe*re-ne*fe),ee=Te-We,q=Te-ee,Me[0]=Te-(ee+q)+(q-We),me=we+ee,q=me-we,Le=we-(me-q)+(ee-q),ee=Le-Be,q=Le-ee,Me[1]=Le-(ee+q)+(q-Be),Ve=me+ee,q=Ve-me,Me[2]=me-(Ve-q)+(ee-q),Me[3]=Ve;const to=se(eo,_e,4,Me,it);we=be*qe,Y=D*be,ne=Y-(Y-be),pe=be-ne,Y=D*qe,re=Y-(Y-qe),fe=qe-re,Te=pe*fe-(we-ne*re-pe*re-ne*fe),Be=Ee*ue,Y=D*Ee,ne=Y-(Y-Ee),pe=Ee-ne,Y=D*ue,re=Y-(Y-ue),fe=ue-re,We=pe*fe-(Be-ne*re-pe*re-ne*fe),ee=Te-We,q=Te-ee,Me[0]=Te-(ee+q)+(q-We),me=we+ee,q=me-we,Le=we-(me-q)+(ee-q),ee=Le-Be,q=Le-ee,Me[1]=Le-(ee+q)+(q-Be),Ve=me+ee,q=Ve-me,Me[2]=me-(Ve-q)+(ee-q),Me[3]=Ve;const so=se(to,it,4,Me,mt);return mt[so-1]}(S,l,h,f,g,b,E)}const yt=(S,l)=>S.x*l.y-S.y*l.x,Bt=(S,l)=>S.x*l.x+S.y*l.y,es=(S,l,h)=>{const f=Fs(S.x,S.y,l.x,l.y,h.x,h.y);return f>0?-1:f<0?1:0},xt=S=>Math.sqrt(Bt(S,S)),Hs=(S,l,h)=>{const f={x:l.x-S.x,y:l.y-S.y},g={x:h.x-S.x,y:h.y-S.y};return yt(g,f)/xt(g)/xt(f)},Us=(S,l,h)=>{const f={x:l.x-S.x,y:l.y-S.y},g={x:h.x-S.x,y:h.y-S.y};return Bt(g,f)/xt(g)/xt(f)},ts=(S,l,h)=>l.y===0?null:{x:S.x+l.x/l.y*(h-S.y),y:h},ss=(S,l,h)=>l.x===0?null:{x:h,y:S.y+l.y/l.x*(h-S.x)};class Ne{static compare(l,h){const f=Ne.comparePoints(l.point,h.point);return f!==0?f:(l.point!==h.point&&l.link(h),l.isLeft!==h.isLeft?l.isLeft?1:-1:N.compare(l.segment,h.segment))}static comparePoints(l,h){return l.x<h.x?-1:l.x>h.x?1:l.y<h.y?-1:l.y>h.y?1:0}constructor(l,h){l.events===void 0?l.events=[this]:l.events.push(this),this.point=l,this.isLeft=h}link(l){if(l.point===this.point)throw new Error("Tried to link already linked events");const h=l.point.events;for(let f=0,g=h.length;f<g;f++){const b=h[f];this.point.events.push(b),b.point=this.point}this.checkForConsuming()}checkForConsuming(){const l=this.point.events.length;for(let h=0;h<l;h++){const f=this.point.events[h];if(f.segment.consumedBy===void 0)for(let g=h+1;g<l;g++){const b=this.point.events[g];b.consumedBy===void 0&&f.otherSE.point.events===b.otherSE.point.events&&f.segment.consume(b.segment)}}}getAvailableLinkedEvents(){const l=[];for(let h=0,f=this.point.events.length;h<f;h++){const g=this.point.events[h];g!==this&&!g.segment.ringOut&&g.segment.isInResult()&&l.push(g)}return l}getLeftmostComparator(l){const h=new Map,f=g=>{const b=g.otherSE;h.set(g,{sine:Hs(this.point,l.point,b.point),cosine:Us(this.point,l.point,b.point)})};return(g,b)=>{h.has(g)||f(g),h.has(b)||f(b);const{sine:x,cosine:k}=h.get(g),{sine:T,cosine:E}=h.get(b);return x>=0&&T>=0?k<E?1:k>E?-1:0:x<0&&T<0?k<E?-1:k>E?1:0:T<x?-1:T>x?1:0}}}let is=0;class N{static compare(l,h){const f=l.leftSE.point.x,g=h.leftSE.point.x,b=l.rightSE.point.x,x=h.rightSE.point.x;if(x<f)return 1;if(b<g)return-1;const k=l.leftSE.point.y,T=h.leftSE.point.y,E=l.rightSE.point.y,M=h.rightSE.point.y;if(f<g){if(T<k&&T<E)return 1;if(T>k&&T>E)return-1;const L=l.comparePoint(h.leftSE.point);if(L<0)return 1;if(L>0)return-1;const z=h.comparePoint(l.rightSE.point);return z!==0?z:-1}if(f>g){if(k<T&&k<M)return-1;if(k>T&&k>M)return 1;const L=h.comparePoint(l.leftSE.point);if(L!==0)return L;const z=l.comparePoint(h.rightSE.point);return z<0?1:z>0?-1:1}if(k<T)return-1;if(k>T)return 1;if(b<x){const L=h.comparePoint(l.rightSE.point);if(L!==0)return L}if(b>x){const L=l.comparePoint(h.rightSE.point);if(L<0)return 1;if(L>0)return-1}if(b!==x){const L=E-k,z=b-f,W=M-T,ce=x-g;if(L>z&&W<ce)return 1;if(L<z&&W>ce)return-1}return b>x?1:b<x||E<M?-1:E>M?1:l.id<h.id?-1:l.id>h.id?1:0}constructor(l,h,f,g){this.id=++is,this.leftSE=l,l.segment=this,l.otherSE=h,this.rightSE=h,h.segment=this,h.otherSE=l,this.rings=f,this.windings=g}static fromRing(l,h,f){let g,b,x;const k=Ne.comparePoints(l,h);if(k<0)g=l,b=h,x=1;else{if(!(k>0))throw new Error(`Tried to create degenerate segment at [${l.x}, ${l.y}]`);g=h,b=l,x=-1}const T=new Ne(g,!0),E=new Ne(b,!1);return new N(T,E,[f],[x])}replaceRightSE(l){this.rightSE=l,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}bbox(){const l=this.leftSE.point.y,h=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:l<h?l:h},ur:{x:this.rightSE.point.x,y:l>h?l:h}}}vector(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}isAnEndpoint(l){return l.x===this.leftSE.point.x&&l.y===this.leftSE.point.y||l.x===this.rightSE.point.x&&l.y===this.rightSE.point.y}comparePoint(l){if(this.isAnEndpoint(l))return 0;const h=this.leftSE.point,f=this.rightSE.point,g=this.vector();if(h.x===f.x)return l.x===h.x?0:l.x<h.x?1:-1;const b=(l.y-h.y)/g.y,x=h.x+b*g.x;if(l.x===x)return 0;const k=(l.x-h.x)/g.x,T=h.y+k*g.y;return l.y===T?0:l.y<T?-1:1}getIntersection(l){const h=this.bbox(),f=l.bbox(),g=w(h,f);if(g===null)return null;const b=this.leftSE.point,x=this.rightSE.point,k=l.leftSE.point,T=l.rightSE.point,E=y(h,k)&&this.comparePoint(k)===0,M=y(f,b)&&l.comparePoint(b)===0,L=y(h,T)&&this.comparePoint(T)===0,z=y(f,x)&&l.comparePoint(x)===0;if(M&&E)return z&&!L?x:!z&&L?T:null;if(M)return L&&b.x===T.x&&b.y===T.y?null:b;if(E)return z&&x.x===k.x&&x.y===k.y?null:k;if(z&&L)return null;if(z)return x;if(L)return T;const W=((ce,de,ge,be)=>{if(de.x===0)return ss(ge,be,ce.x);if(be.x===0)return ss(ce,de,ge.x);if(de.y===0)return ts(ge,be,ce.y);if(be.y===0)return ts(ce,de,ge.y);const Ee=yt(de,be);if(Ee==0)return null;const ue={x:ge.x-ce.x,y:ge.y-ce.y},qe=yt(ue,de)/Ee,q=yt(ue,be)/Ee;return{x:(ce.x+q*de.x+(ge.x+qe*be.x))/2,y:(ce.y+q*de.y+(ge.y+qe*be.y))/2}})(b,this.vector(),k,l.vector());return W===null?null:y(g,W)?P.round(W.x,W.y):null}split(l){const h=[],f=l.events!==void 0,g=new Ne(l,!0),b=new Ne(l,!1),x=this.rightSE;this.replaceRightSE(b),h.push(b),h.push(g);const k=new N(g,x,this.rings.slice(),this.windings.slice());return Ne.comparePoints(k.leftSE.point,k.rightSE.point)>0&&k.swapEvents(),Ne.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),f&&(g.checkForConsuming(),b.checkForConsuming()),h}swapEvents(){const l=this.rightSE;this.rightSE=this.leftSE,this.leftSE=l,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(let h=0,f=this.windings.length;h<f;h++)this.windings[h]*=-1}consume(l){let h=this,f=l;for(;h.consumedBy;)h=h.consumedBy;for(;f.consumedBy;)f=f.consumedBy;const g=N.compare(h,f);if(g!==0){if(g>0){const b=h;h=f,f=b}if(h.prev===f){const b=h;h=f,f=b}for(let b=0,x=f.rings.length;b<x;b++){const k=f.rings[b],T=f.windings[b],E=h.rings.indexOf(k);E===-1?(h.rings.push(k),h.windings.push(T)):h.windings[E]+=T}f.rings=null,f.windings=null,f.consumedBy=h,f.leftSE.consumedBy=h.leftSE,f.rightSE.consumedBy=h.rightSE}}prevInResult(){return this._prevInResult!==void 0||(this.prev?this.prev.isInResult()?this._prevInResult=this.prev:this._prevInResult=this.prev.prevInResult():this._prevInResult=null),this._prevInResult}beforeState(){if(this._beforeState!==void 0)return this._beforeState;if(this.prev){const l=this.prev.consumedBy||this.prev;this._beforeState=l.afterState()}else this._beforeState={rings:[],windings:[],multiPolys:[]};return this._beforeState}afterState(){if(this._afterState!==void 0)return this._afterState;const l=this.beforeState();this._afterState={rings:l.rings.slice(0),windings:l.windings.slice(0),multiPolys:[]};const h=this._afterState.rings,f=this._afterState.windings,g=this._afterState.multiPolys;for(let k=0,T=this.rings.length;k<T;k++){const E=this.rings[k],M=this.windings[k],L=h.indexOf(E);L===-1?(h.push(E),f.push(M)):f[L]+=M}const b=[],x=[];for(let k=0,T=h.length;k<T;k++){if(f[k]===0)continue;const E=h[k],M=E.poly;if(x.indexOf(M)===-1)if(E.isExterior)b.push(M);else{x.indexOf(M)===-1&&x.push(M);const L=b.indexOf(E.poly);L!==-1&&b.splice(L,1)}}for(let k=0,T=b.length;k<T;k++){const E=b[k].multiPoly;g.indexOf(E)===-1&&g.push(E)}return this._afterState}isInResult(){if(this.consumedBy)return!1;if(this._isInResult!==void 0)return this._isInResult;const l=this.beforeState().multiPolys,h=this.afterState().multiPolys;switch(ze.type){case"union":{const f=l.length===0,g=h.length===0;this._isInResult=f!==g;break}case"intersection":{let f,g;l.length<h.length?(f=l.length,g=h.length):(f=h.length,g=l.length),this._isInResult=g===ze.numMultiPolys&&f<g;break}case"xor":{const f=Math.abs(l.length-h.length);this._isInResult=f%2==1;break}case"difference":{const f=g=>g.length===1&&g[0].isSubject;this._isInResult=f(l)!==f(h);break}default:throw new Error(`Unrecognized operation type found ${ze.type}`)}return this._isInResult}}class X{constructor(l,h,f){if(!Array.isArray(l)||l.length===0)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=h,this.isExterior=f,this.segments=[],typeof l[0][0]!="number"||typeof l[0][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");const g=P.round(l[0][0],l[0][1]);this.bbox={ll:{x:g.x,y:g.y},ur:{x:g.x,y:g.y}};let b=g;for(let x=1,k=l.length;x<k;x++){if(typeof l[x][0]!="number"||typeof l[x][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");let T=P.round(l[x][0],l[x][1]);T.x===b.x&&T.y===b.y||(this.segments.push(N.fromRing(b,T,this)),T.x<this.bbox.ll.x&&(this.bbox.ll.x=T.x),T.y<this.bbox.ll.y&&(this.bbox.ll.y=T.y),T.x>this.bbox.ur.x&&(this.bbox.ur.x=T.x),T.y>this.bbox.ur.y&&(this.bbox.ur.y=T.y),b=T)}g.x===b.x&&g.y===b.y||this.segments.push(N.fromRing(b,g,this))}getSweepEvents(){const l=[];for(let h=0,f=this.segments.length;h<f;h++){const g=this.segments[h];l.push(g.leftSE),l.push(g.rightSE)}return l}}class De{constructor(l,h){if(!Array.isArray(l))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");this.exteriorRing=new X(l[0],this,!0),this.bbox={ll:{x:this.exteriorRing.bbox.ll.x,y:this.exteriorRing.bbox.ll.y},ur:{x:this.exteriorRing.bbox.ur.x,y:this.exteriorRing.bbox.ur.y}},this.interiorRings=[];for(let f=1,g=l.length;f<g;f++){const b=new X(l[f],this,!1);b.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=b.bbox.ll.x),b.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=b.bbox.ll.y),b.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=b.bbox.ur.x),b.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=b.bbox.ur.y),this.interiorRings.push(b)}this.multiPoly=h}getSweepEvents(){const l=this.exteriorRing.getSweepEvents();for(let h=0,f=this.interiorRings.length;h<f;h++){const g=this.interiorRings[h].getSweepEvents();for(let b=0,x=g.length;b<x;b++)l.push(g[b])}return l}}class ot{constructor(l,h){if(!Array.isArray(l))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");try{typeof l[0][0][0]=="number"&&(l=[l])}catch{}this.polys=[],this.bbox={ll:{x:Number.POSITIVE_INFINITY,y:Number.POSITIVE_INFINITY},ur:{x:Number.NEGATIVE_INFINITY,y:Number.NEGATIVE_INFINITY}};for(let f=0,g=l.length;f<g;f++){const b=new De(l[f],this);b.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=b.bbox.ll.x),b.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=b.bbox.ll.y),b.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=b.bbox.ur.x),b.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=b.bbox.ur.y),this.polys.push(b)}this.isSubject=h}getSweepEvents(){const l=[];for(let h=0,f=this.polys.length;h<f;h++){const g=this.polys[h].getSweepEvents();for(let b=0,x=g.length;b<x;b++)l.push(g[b])}return l}}class at{static factory(l){const h=[];for(let f=0,g=l.length;f<g;f++){const b=l[f];if(!b.isInResult()||b.ringOut)continue;let x=null,k=b.leftSE,T=b.rightSE;const E=[k],M=k.point,L=[];for(;x=k,k=T,E.push(k),k.point!==M;)for(;;){const z=k.getAvailableLinkedEvents();if(z.length===0){const de=E[0].point,ge=E[E.length-1].point;throw new Error(`Unable to complete output ring starting at [${de.x}, ${de.y}]. Last matching segment found ends at [${ge.x}, ${ge.y}].`)}if(z.length===1){T=z[0].otherSE;break}let W=null;for(let de=0,ge=L.length;de<ge;de++)if(L[de].point===k.point){W=de;break}if(W!==null){const de=L.splice(W)[0],ge=E.splice(de.index);ge.unshift(ge[0].otherSE),h.push(new at(ge.reverse()));continue}L.push({index:E.length,point:k.point});const ce=k.getLeftmostComparator(x);T=z.sort(ce)[0].otherSE;break}h.push(new at(E))}return h}constructor(l){this.events=l;for(let h=0,f=l.length;h<f;h++)l[h].segment.ringOut=this;this.poly=null}getGeom(){let l=this.events[0].point;const h=[l];for(let E=1,M=this.events.length-1;E<M;E++){const L=this.events[E].point,z=this.events[E+1].point;es(L,l,z)!==0&&(h.push(L),l=L)}if(h.length===1)return null;const f=h[0],g=h[1];es(f,l,g)===0&&h.shift(),h.push(h[0]);const b=this.isExteriorRing()?1:-1,x=this.isExteriorRing()?0:h.length-1,k=this.isExteriorRing()?h.length:-1,T=[];for(let E=x;E!=k;E+=b)T.push([h[E].x,h[E].y]);return T}isExteriorRing(){if(this._isExteriorRing===void 0){const l=this.enclosingRing();this._isExteriorRing=!l||!l.isExteriorRing()}return this._isExteriorRing}enclosingRing(){return this._enclosingRing===void 0&&(this._enclosingRing=this._calcEnclosingRing()),this._enclosingRing}_calcEnclosingRing(){let l=this.events[0];for(let g=1,b=this.events.length;g<b;g++){const x=this.events[g];Ne.compare(l,x)>0&&(l=x)}let h=l.segment.prevInResult(),f=h?h.prevInResult():null;for(;;){if(!h)return null;if(!f)return h.ringOut;if(f.ringOut!==h.ringOut)return f.ringOut.enclosingRing()!==h.ringOut?h.ringOut:h.ringOut.enclosingRing();h=f.prevInResult(),f=h?h.prevInResult():null}}}class ns{constructor(l){this.exteriorRing=l,l.poly=this,this.interiorRings=[]}addInterior(l){this.interiorRings.push(l),l.poly=this}getGeom(){const l=[this.exteriorRing.getGeom()];if(l[0]===null)return null;for(let h=0,f=this.interiorRings.length;h<f;h++){const g=this.interiorRings[h].getGeom();g!==null&&l.push(g)}return l}}class Zs{constructor(l){this.rings=l,this.polys=this._composePolys(l)}getGeom(){const l=[];for(let h=0,f=this.polys.length;h<f;h++){const g=this.polys[h].getGeom();g!==null&&l.push(g)}return l}_composePolys(l){const h=[];for(let f=0,g=l.length;f<g;f++){const b=l[f];if(!b.poly)if(b.isExteriorRing())h.push(new ns(b));else{const x=b.enclosingRing();x.poly||h.push(new ns(x)),x.poly.addInterior(b)}}return h}}class rs{constructor(l){let h=arguments.length>1&&arguments[1]!==void 0?arguments[1]:N.compare;this.queue=l,this.tree=new c(h),this.segments=[]}process(l){const h=l.segment,f=[];if(l.consumedBy)return l.isLeft?this.queue.remove(l.otherSE):this.tree.remove(h),f;const g=l.isLeft?this.tree.add(h):this.tree.find(h);if(!g)throw new Error(`Unable to find segment #${h.id} [${h.leftSE.point.x}, ${h.leftSE.point.y}] -> [${h.rightSE.point.x}, ${h.rightSE.point.y}] in SweepLine tree.`);let b,x,k=g,T=g;for(;b===void 0;)k=this.tree.prev(k),k===null?b=null:k.key.consumedBy===void 0&&(b=k.key);for(;x===void 0;)T=this.tree.next(T),T===null?x=null:T.key.consumedBy===void 0&&(x=T.key);if(l.isLeft){let E=null;if(b){const L=b.getIntersection(h);if(L!==null&&(h.isAnEndpoint(L)||(E=L),!b.isAnEndpoint(L))){const z=this._splitSafely(b,L);for(let W=0,ce=z.length;W<ce;W++)f.push(z[W])}}let M=null;if(x){const L=x.getIntersection(h);if(L!==null&&(h.isAnEndpoint(L)||(M=L),!x.isAnEndpoint(L))){const z=this._splitSafely(x,L);for(let W=0,ce=z.length;W<ce;W++)f.push(z[W])}}if(E!==null||M!==null){let L=null;L=E===null?M:M===null||Ne.comparePoints(E,M)<=0?E:M,this.queue.remove(h.rightSE),f.push(h.rightSE);const z=h.split(L);for(let W=0,ce=z.length;W<ce;W++)f.push(z[W])}f.length>0?(this.tree.remove(h),f.push(l)):(this.segments.push(h),h.prev=b)}else{if(b&&x){const E=b.getIntersection(x);if(E!==null){if(!b.isAnEndpoint(E)){const M=this._splitSafely(b,E);for(let L=0,z=M.length;L<z;L++)f.push(M[L])}if(!x.isAnEndpoint(E)){const M=this._splitSafely(x,E);for(let L=0,z=M.length;L<z;L++)f.push(M[L])}}}this.tree.remove(h)}return f}_splitSafely(l,h){this.tree.remove(l);const f=l.rightSE;this.queue.remove(f);const g=l.split(h);return g.push(f),l.consumedBy===void 0&&this.tree.add(l),g}}const Vt=typeof process<"u"&&en.POLYGON_CLIPPING_MAX_QUEUE_SIZE||1e6,os=typeof process<"u"&&en.POLYGON_CLIPPING_MAX_SWEEPLINE_SEGMENTS||1e6,ze=new class{run(S,l,h){ze.type=S,P.reset();const f=[new ot(l,!0)];for(let E=0,M=h.length;E<M;E++)f.push(new ot(h[E],!1));if(ze.numMultiPolys=f.length,ze.type==="difference"){const E=f[0];let M=1;for(;M<f.length;)w(f[M].bbox,E.bbox)!==null?M++:f.splice(M,1)}if(ze.type==="intersection")for(let E=0,M=f.length;E<M;E++){const L=f[E];for(let z=E+1,W=f.length;z<W;z++)if(w(L.bbox,f[z].bbox)===null)return[]}const g=new c(Ne.compare);for(let E=0,M=f.length;E<M;E++){const L=f[E].getSweepEvents();for(let z=0,W=L.length;z<W;z++)if(g.insert(L[z]),g.size>Vt)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big).")}const b=new rs(g);let x=g.size,k=g.pop();for(;k;){const E=k.key;if(g.size===x){const L=E.segment;throw new Error(`Unable to pop() ${E.isLeft?"left":"right"} SweepEvent [${E.point.x}, ${E.point.y}] from segment #${L.id} [${L.leftSE.point.x}, ${L.leftSE.point.y}] -> [${L.rightSE.point.x}, ${L.rightSE.point.y}] from queue.`)}if(g.size>Vt)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big).");if(b.segments.length>os)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments).");const M=b.process(E);for(let L=0,z=M.length;L<z;L++){const W=M[L];W.consumedBy===void 0&&g.insert(W)}x=g.size,k=g.pop()}P.reset();const T=at.factory(b.segments);return new Zs(T).getGeom()}};var as={union:function(S){for(var l=arguments.length,h=new Array(l>1?l-1:0),f=1;f<l;f++)h[f-1]=arguments[f];return ze.run("union",S,h)},intersection:function(S){for(var l=arguments.length,h=new Array(l>1?l-1:0),f=1;f<l;f++)h[f-1]=arguments[f];return ze.run("intersection",S,h)},xor:function(S){for(var l=arguments.length,h=new Array(l>1?l-1:0),f=1;f<l;f++)h[f-1]=arguments[f];return ze.run("xor",S,h)},difference:function(S){for(var l=arguments.length,h=new Array(l>1?l-1:0),f=1;f<l;f++)h[f-1]=arguments[f];return ze.run("difference",S,h)}};return as}()}},tn={};function Fe(s){var t=tn[s];if(t!==void 0)return t.exports;var e=tn[s]={exports:{}};return ol[s].call(e.exports,e,e.exports,Fe),e.exports}Fe.n=s=>{var t=s&&s.__esModule?()=>s.default:()=>s;return Fe.d(t,{a:t}),t},Fe.d=(s,t)=>{for(var e in t)Fe.o(t,e)&&!Fe.o(s,e)&&Object.defineProperty(s,e,{enumerable:!0,get:t[e]})},Fe.o=(s,t)=>Object.prototype.hasOwnProperty.call(s,t),Fe.r=s=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(s,"__esModule",{value:!0})};var rr={};Fe.d(rr,{j:()=>xc});var fi={};Fe.r(fi),Fe.d(fi,{Decoder:()=>Ni,Encoder:()=>yc,PacketType:()=>ie,protocol:()=>vc});class al{constructor(t){V(this,"baseURL");V(this,"abortControllers",new Set);this.baseURL=`${t}/api`}async request(t,e,i,n={}){const r=new AbortController;this.abortControllers.add(r);const o=setTimeout(()=>{r.abort(),this.abortControllers.delete(r)},15e3);try{const a=await fetch(`${this.baseURL}${e}`,{method:t,headers:{"Content-Type":"application/json",...n.headers},body:i?JSON.stringify(i):void 0,signal:r.signal,...n});if(!a.ok)throw new Error(`HTTP error! status: ${a.status}`);return a}finally{clearTimeout(o),this.abortControllers.delete(r)}}get(t,e){return this.request("GET",t,void 0,e)}post(t,e,i){return this.request("POST",t,e,i)}}class ll{constructor(){V(this,"subscriptions",[]);V(this,"additionalSubscriptions",[])}addSubscriptions(...t){this.subscriptions.push(...t)}addAdditionalSubscriptions(...t){this.additionalSubscriptions.push(...t)}unsubscribe(){this.subscriptions.forEach(t=>t.unsubscribe())}unsubscribeAdditional(){this.additionalSubscriptions.forEach(t=>t.unsubscribe())}}function qt(s,t,e=!1){if(s===t)return!0;if((s===void 0||t===void 0||s===null||t===null)&&(s||t))return!1;const i=s==null?void 0:s.constructor.name,n=t==null?void 0:t.constructor.name;if(i!==n)return!1;if(i==="Array"&&n==="Array"){if(s.length!==t.length)return!1;if(e){const r=[...t];return s.every(o=>{const a=r.findIndex(c=>qt(o,c,e));return a!==-1&&(r.splice(a,1),!0)})}{let r=!0;for(let o=0;o<s.length;o++)if(!qt(s[o],t[o],e)){r=!1;break}return r}}if(i==="Object"&&n==="Object"){let r=!0;const o=Object.keys(s),a=Object.keys(t);if(o.length!==a.length)return!1;for(let c=0;c<o.length;c++)if(s[o[c]]&&t[o[c]]){if(s[o[c]]===t[o[c]])continue;if(!s[o[c]]||s[o[c]].constructor.name!=="Array"&&s[o[c]].constructor.name!=="Object"){if(s[o[c]]!==t[o[c]]){r=!1;break}}else if(r=qt(s[o[c]],t[o[c]],e),!r)break}else if(s[o[c]]&&!t[o[c]]||!s[o[c]]&&t[o[c]]){r=!1;break}return r}return s===t}function Ue(s){return JSON.parse(JSON.stringify(s))}var cl=Fe(855),ul=Fe.n(cl),mi=function(s,t){return mi=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,i){e.__proto__=i}||function(e,i){for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])},mi(s,t)};function St(s,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function e(){this.constructor=s}mi(s,t),s.prototype=t===null?Object.create(t):(e.prototype=t.prototype,new e)}function or(s,t){var e,i,n,r={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]},o=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return o.next=a(0),o.throw=a(1),o.return=a(2),typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(c){return function(u){return function(d){if(e)throw new TypeError("Generator is already executing.");for(;o&&(o=0,d[0]&&(r=0)),r;)try{if(e=1,i&&(n=2&d[0]?i.return:d[0]?i.throw||((n=i.return)&&n.call(i),0):i.next)&&!(n=n.call(i,d[1])).done)return n;switch(i=0,n&&(d=[2&d[0],n.value]),d[0]){case 0:case 1:n=d;break;case 4:return r.label++,{value:d[1],done:!1};case 5:r.label++,i=d[1],d=[0];continue;case 7:d=r.ops.pop(),r.trys.pop();continue;default:if(!((n=(n=r.trys).length>0&&n[n.length-1])||d[0]!==6&&d[0]!==2)){r=0;continue}if(d[0]===3&&(!n||d[1]>n[0]&&d[1]<n[3])){r.label=d[1];break}if(d[0]===6&&r.label<n[1]){r.label=n[1],n=d;break}if(n&&r.label<n[2]){r.label=n[2],r.ops.push(d);break}n[2]&&r.ops.pop(),r.trys.pop();continue}d=t.call(s,r)}catch(m){d=[6,m],i=0}finally{e=n=0}if(5&d[0])throw d[1];return{value:d[0]?d[1]:void 0,done:!0}}([c,u])}}}function Ut(s){var t=typeof Symbol=="function"&&Symbol.iterator,e=t&&s[t],i=0;if(e)return e.call(s);if(s&&typeof s.length=="number")return{next:function(){return s&&i>=s.length&&(s=void 0),{value:s&&s[i++],done:!s}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function Zt(s,t){var e=typeof Symbol=="function"&&s[Symbol.iterator];if(!e)return s;var i,n,r=e.call(s),o=[];try{for(;(t===void 0||t-- >0)&&!(i=r.next()).done;)o.push(i.value)}catch(a){n={error:a}}finally{try{i&&!i.done&&(e=r.return)&&e.call(r)}finally{if(n)throw n.error}}return o}function Wt(s,t,e){if(arguments.length===2)for(var i,n=0,r=t.length;n<r;n++)!i&&n in t||(i||(i=Array.prototype.slice.call(t,0,n)),i[n]=t[n]);return s.concat(i||Array.prototype.slice.call(t))}function Mt(s){return this instanceof Mt?(this.v=s,this):new Mt(s)}function Ae(s){return typeof s=="function"}function ar(s){var t=s(function(e){Error.call(e),e.stack=new Error().stack});return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}var Qs=ar(function(s){return function(t){s(this),this.message=t?t.length+` errors occurred during unsubscription:
4
- `+t.map(function(e,i){return i+1+") "+e.toString()}).join(`
5
- `):"",this.name="UnsubscriptionError",this.errors=t}});function gi(s,t){if(s){var e=s.indexOf(t);0<=e&&s.splice(e,1)}}var Os=function(){function s(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return s.prototype.unsubscribe=function(){var t,e,i,n,r;if(!this.closed){this.closed=!0;var o=this._parentage;if(o)if(this._parentage=null,Array.isArray(o))try{for(var a=Ut(o),c=a.next();!c.done;c=a.next())c.value.remove(this)}catch(_){t={error:_}}finally{try{c&&!c.done&&(e=a.return)&&e.call(a)}finally{if(t)throw t.error}}else o.remove(this);var u=this.initialTeardown;if(Ae(u))try{u()}catch(_){r=_ instanceof Qs?_.errors:[_]}var d=this._finalizers;if(d){this._finalizers=null;try{for(var m=Ut(d),y=m.next();!y.done;y=m.next()){var w=y.value;try{sn(w)}catch(_){r=r??[],_ instanceof Qs?r=Wt(Wt([],Zt(r)),Zt(_.errors)):r.push(_)}}}catch(_){i={error:_}}finally{try{y&&!y.done&&(n=m.return)&&n.call(m)}finally{if(i)throw i.error}}}if(r)throw new Qs(r)}},s.prototype.add=function(t){var e;if(t&&t!==this)if(this.closed)sn(t);else{if(t instanceof s){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(e=this._finalizers)!==null&&e!==void 0?e:[]).push(t)}},s.prototype._hasParent=function(t){var e=this._parentage;return e===t||Array.isArray(e)&&e.includes(t)},s.prototype._addParent=function(t){var e=this._parentage;this._parentage=Array.isArray(e)?(e.push(t),e):e?[e,t]:t},s.prototype._removeParent=function(t){var e=this._parentage;e===t?this._parentage=null:Array.isArray(e)&&gi(e,t)},s.prototype.remove=function(t){var e=this._finalizers;e&&gi(e,t),t instanceof s&&t._removeParent(this)},s.EMPTY=function(){var t=new s;return t.closed=!0,t}(),s}(),lr=Os.EMPTY;function cr(s){return s instanceof Os||s&&"closed"in s&&Ae(s.remove)&&Ae(s.add)&&Ae(s.unsubscribe)}function sn(s){Ae(s)?s():s.unsubscribe()}var Xt={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Cs={setTimeout:function(s,t){for(var e=[],i=2;i<arguments.length;i++)e[i-2]=arguments[i];var n=Cs.delegate;return n!=null&&n.setTimeout?n.setTimeout.apply(n,Wt([s,t],Zt(e))):setTimeout.apply(void 0,Wt([s,t],Zt(e)))},clearTimeout:function(s){var t=Cs.delegate;return((t==null?void 0:t.clearTimeout)||clearTimeout)(s)},delegate:void 0};function ur(s){Cs.setTimeout(function(){var t=Xt.onUnhandledError;if(!t)throw s;t(s)})}function nn(){}var hl=bi("C",void 0,void 0);function bi(s,t,e){return{kind:s,value:t,error:e}}var ls=null;function ms(s){if(Xt.useDeprecatedSynchronousErrorHandling){var t=!ls;if(t&&(ls={errorThrown:!1,error:null}),s(),t){var e=ls,i=e.errorThrown,n=e.error;if(ls=null,i)throw n}}else s()}var Vi=function(s){function t(e){var i=s.call(this)||this;return i.isStopped=!1,e?(i.destination=e,cr(e)&&e.add(i)):i.destination=fl,i}return St(t,s),t.create=function(e,i,n){return new Gt(e,i,n)},t.prototype.next=function(e){this.isStopped?Xs(function(i){return bi("N",i,void 0)}(e),this):this._next(e)},t.prototype.error=function(e){this.isStopped?Xs(bi("E",void 0,e),this):(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped?Xs(hl,this):(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,s.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){try{this.destination.error(e)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(Os),dl=Function.prototype.bind;function Ys(s,t){return dl.call(s,t)}var pl=function(){function s(t){this.partialObserver=t}return s.prototype.next=function(t){var e=this.partialObserver;if(e.next)try{e.next(t)}catch(i){cs(i)}},s.prototype.error=function(t){var e=this.partialObserver;if(e.error)try{e.error(t)}catch(i){cs(i)}else cs(t)},s.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(e){cs(e)}},s}(),Gt=function(s){function t(e,i,n){var r,o,a=s.call(this)||this;return Ae(e)||!e?r={next:e??void 0,error:i??void 0,complete:n??void 0}:a&&Xt.useDeprecatedNextContext?((o=Object.create(e)).unsubscribe=function(){return a.unsubscribe()},r={next:e.next&&Ys(e.next,o),error:e.error&&Ys(e.error,o),complete:e.complete&&Ys(e.complete,o)}):r=e,a.destination=new pl(r),a}return St(t,s),t}(Vi);function cs(s){ur(s)}function Xs(s,t){var e=Xt.onStoppedNotification;e&&Cs.setTimeout(function(){return e(s,t)})}var fl={closed:!0,next:nn,error:function(s){throw s},complete:nn},vi=typeof Symbol=="function"&&Symbol.observable||"@@observable";function hr(s){return s}var gt=function(){function s(t){t&&(this._subscribe=t)}return s.prototype.lift=function(t){var e=new s;return e.source=this,e.operator=t,e},s.prototype.subscribe=function(t,e,i){var n=this,r=function(o){return o&&o instanceof Vi||function(a){return a&&Ae(a.next)&&Ae(a.error)&&Ae(a.complete)}(o)&&cr(o)}(t)?t:new Gt(t,e,i);return ms(function(){var o=n,a=o.operator,c=o.source;r.add(a?a.call(r,c):c?n._subscribe(r):n._trySubscribe(r))}),r},s.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(e){t.error(e)}},s.prototype.forEach=function(t,e){var i=this;return new(e=rn(e))(function(n,r){var o=new Gt({next:function(a){try{t(a)}catch(c){r(c),o.unsubscribe()}},error:r,complete:n});i.subscribe(o)})},s.prototype._subscribe=function(t){var e;return(e=this.source)===null||e===void 0?void 0:e.subscribe(t)},s.prototype[vi]=function(){return this},s.prototype.pipe=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return((i=t).length===0?hr:i.length===1?i[0]:function(n){return i.reduce(function(r,o){return o(r)},n)})(this);var i},s.prototype.toPromise=function(t){var e=this;return new(t=rn(t))(function(i,n){var r;e.subscribe(function(o){return r=o},function(o){return n(o)},function(){return i(r)})})},s.create=function(t){return new s(t)},s}();function rn(s){var t;return(t=s??Xt.Promise)!==null&&t!==void 0?t:Promise}var ml=ar(function(s){return function(){s(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}),$s=function(s){function t(){var e=s.call(this)||this;return e.closed=!1,e.currentObservers=null,e.observers=[],e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return St(t,s),t.prototype.lift=function(e){var i=new on(this,this);return i.operator=e,i},t.prototype._throwIfClosed=function(){if(this.closed)throw new ml},t.prototype.next=function(e){var i=this;ms(function(){var n,r;if(i._throwIfClosed(),!i.isStopped){i.currentObservers||(i.currentObservers=Array.from(i.observers));try{for(var o=Ut(i.currentObservers),a=o.next();!a.done;a=o.next())a.value.next(e)}catch(c){n={error:c}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}}})},t.prototype.error=function(e){var i=this;ms(function(){if(i._throwIfClosed(),!i.isStopped){i.hasError=i.isStopped=!0,i.thrownError=e;for(var n=i.observers;n.length;)n.shift().error(e)}})},t.prototype.complete=function(){var e=this;ms(function(){if(e._throwIfClosed(),!e.isStopped){e.isStopped=!0;for(var i=e.observers;i.length;)i.shift().complete()}})},t.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(t.prototype,"observed",{get:function(){var e;return((e=this.observers)===null||e===void 0?void 0:e.length)>0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(e){return this._throwIfClosed(),s.prototype._trySubscribe.call(this,e)},t.prototype._subscribe=function(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)},t.prototype._innerSubscribe=function(e){var i=this,n=this,r=n.hasError,o=n.isStopped,a=n.observers;return r||o?lr:(this.currentObservers=null,a.push(e),new Os(function(){i.currentObservers=null,gi(a,e)}))},t.prototype._checkFinalizedStatuses=function(e){var i=this,n=i.hasError,r=i.thrownError,o=i.isStopped;n?e.error(r):o&&e.complete()},t.prototype.asObservable=function(){var e=new gt;return e.source=this,e},t.create=function(e,i){return new on(e,i)},t}(gt),on=function(s){function t(e,i){var n=s.call(this)||this;return n.destination=e,n.source=i,n}return St(t,s),t.prototype.next=function(e){var i,n;(n=(i=this.destination)===null||i===void 0?void 0:i.next)===null||n===void 0||n.call(i,e)},t.prototype.error=function(e){var i,n;(n=(i=this.destination)===null||i===void 0?void 0:i.error)===null||n===void 0||n.call(i,e)},t.prototype.complete=function(){var e,i;(i=(e=this.destination)===null||e===void 0?void 0:e.complete)===null||i===void 0||i.call(e)},t.prototype._subscribe=function(e){var i,n;return(n=(i=this.source)===null||i===void 0?void 0:i.subscribe(e))!==null&&n!==void 0?n:lr},t}($s),ct=function(s){function t(e){var i=s.call(this)||this;return i._value=e,i}return St(t,s),Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(e){var i=s.prototype._subscribe.call(this,e);return!i.closed&&e.next(this._value),i},t.prototype.getValue=function(){var e=this,i=e.hasError,n=e.thrownError,r=e._value;if(i)throw n;return this._throwIfClosed(),r},t.prototype.next=function(e){s.prototype.next.call(this,this._value=e)},t}($s),dr={now:function(){return(dr.delegate||Date).now()},delegate:void 0},Js=function(s){function t(e,i,n){e===void 0&&(e=1/0),i===void 0&&(i=1/0),n===void 0&&(n=dr);var r=s.call(this)||this;return r._bufferSize=e,r._windowTime=i,r._timestampProvider=n,r._buffer=[],r._infiniteTimeWindow=!0,r._infiniteTimeWindow=i===1/0,r._bufferSize=Math.max(1,e),r._windowTime=Math.max(1,i),r}return St(t,s),t.prototype.next=function(e){var i=this,n=i.isStopped,r=i._buffer,o=i._infiniteTimeWindow,a=i._timestampProvider,c=i._windowTime;n||(r.push(e),!o&&r.push(a.now()+c)),this._trimBuffer(),s.prototype.next.call(this,e)},t.prototype._subscribe=function(e){this._throwIfClosed(),this._trimBuffer();for(var i=this._innerSubscribe(e),n=this._infiniteTimeWindow,r=this._buffer.slice(),o=0;o<r.length&&!e.closed;o+=n?1:2)e.next(r[o]);return this._checkFinalizedStatuses(e),i},t.prototype._trimBuffer=function(){var e=this,i=e._bufferSize,n=e._timestampProvider,r=e._buffer,o=e._infiniteTimeWindow,a=(o?1:2)*i;if(i<1/0&&a<r.length&&r.splice(0,r.length-a),!o){for(var c=n.now(),u=0,d=1;d<r.length&&r[d]<=c;d+=2)u=d;u&&r.splice(0,u+1)}},t}($s);function Tt(s){return function(t){if(function(e){return Ae(e==null?void 0:e.lift)}(t))return t.lift(function(e){try{return s(e,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function At(s,t,e,i,n){return new gl(s,t,e,i,n)}var gl=function(s){function t(e,i,n,r,o,a){var c=s.call(this,e)||this;return c.onFinalize=o,c.shouldUnsubscribe=a,c._next=i?function(u){try{i(u)}catch(d){e.error(d)}}:s.prototype._next,c._error=r?function(u){try{r(u)}catch(d){e.error(d)}finally{this.unsubscribe()}}:s.prototype._error,c._complete=n?function(){try{n()}catch(u){e.error(u)}finally{this.unsubscribe()}}:s.prototype._complete,c}return St(t,s),t.prototype.unsubscribe=function(){var e;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var i=this.closed;s.prototype.unsubscribe.call(this),!i&&((e=this.onFinalize)===null||e===void 0||e.call(this))}},t}(Vi);function an(){return Tt(function(s,t){var e,i=!1;s.subscribe(At(t,function(n){var r=e;e=n,i&&t.next([r,n]),i=!0}))})}function ln(s,t){return Tt(function(e,i){var n=0;e.subscribe(At(i,function(r){return s.call(t,r,n++)&&i.next(r)}))})}function pr(s,t){return Tt(function(e,i){var n=0;e.subscribe(At(i,function(r){i.next(s.call(t,r,n++))}))})}var bl=function(s){return s&&typeof s.length=="number"&&typeof s!="function"},vl=typeof Symbol=="function"&&Symbol.iterator?Symbol.iterator:"@@iterator";function Es(s){if(s instanceof gt)return s;if(s!=null){if(function(r){return Ae(r[vi])}(s))return n=s,new gt(function(r){var o=n[vi]();if(Ae(o.subscribe))return o.subscribe(r);throw new TypeError("Provided object does not correctly implement Symbol.observable")});if(bl(s))return i=s,new gt(function(r){for(var o=0;o<i.length&&!r.closed;o++)r.next(i[o]);r.complete()});if(function(r){return Ae(r==null?void 0:r.then)}(s))return e=s,new gt(function(r){e.then(function(o){r.closed||(r.next(o),r.complete())},function(o){return r.error(o)}).then(null,ur)});if(function(r){return Symbol.asyncIterator&&Ae(r==null?void 0:r[Symbol.asyncIterator])}(s))return cn(s);if(function(r){return Ae(r==null?void 0:r[vl])}(s))return t=s,new gt(function(r){var o,a;try{for(var c=Ut(t),u=c.next();!u.done;u=c.next()){var d=u.value;if(r.next(d),r.closed)return}}catch(m){o={error:m}}finally{try{u&&!u.done&&(a=c.return)&&a.call(c)}finally{if(o)throw o.error}}r.complete()});if(function(r){return Ae(r==null?void 0:r.getReader)}(s))return cn(function(r){return function(o,a,c){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var u,d=c.apply(o,a||[]),m=[];return u=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),y("next"),y("throw"),y("return",function(C){return function(P){return Promise.resolve(P).then(C,R)}}),u[Symbol.asyncIterator]=function(){return this},u;function y(C,P){d[C]&&(u[C]=function(B){return new Promise(function(D,K){m.push([C,B,D,K])>1||w(C,B)})},P&&(u[C]=P(u[C])))}function w(C,P){try{(B=d[C](P)).value instanceof Mt?Promise.resolve(B.value.v).then(_,R):$(m[0][2],B)}catch(D){$(m[0][3],D)}var B}function _(C){w("next",C)}function R(C){w("throw",C)}function $(C,P){C(P),m.shift(),m.length&&w(m[0][0],m[0][1])}}(this,arguments,function(){var o,a,c;return or(this,function(u){switch(u.label){case 0:o=r.getReader(),u.label=1;case 1:u.trys.push([1,,9,10]),u.label=2;case 2:return[4,Mt(o.read())];case 3:return a=u.sent(),c=a.value,a.done?[4,Mt(void 0)]:[3,5];case 4:return[2,u.sent()];case 5:return[4,Mt(c)];case 6:return[4,u.sent()];case 7:return u.sent(),[3,2];case 8:return[3,10];case 9:return o.releaseLock(),[7];case 10:return[2]}})})}(s))}var t,e,i,n;throw function(r){return new TypeError("You provided "+(r!==null&&typeof r=="object"?"an invalid object":"'"+r+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}(s)}function cn(s){return new gt(function(t){(function(e,i){var n,r,o,a,c,u,d,m;return c=this,u=void 0,m=function(){var y,w;return or(this,function(_){switch(_.label){case 0:_.trys.push([0,5,6,11]),n=function(R){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var $,C=R[Symbol.asyncIterator];return C?C.call(R):(R=Ut(R),$={},P("next"),P("throw"),P("return"),$[Symbol.asyncIterator]=function(){return this},$);function P(B){$[B]=R[B]&&function(D){return new Promise(function(K,se){(function(H,te,Z,U){Promise.resolve(U).then(function(_e){H({value:_e,done:Z})},te)})(K,se,(D=R[B](D)).done,D.value)})}}}(e),_.label=1;case 1:return[4,n.next()];case 2:if((r=_.sent()).done)return[3,4];if(y=r.value,i.next(y),i.closed)return[2];_.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return w=_.sent(),o={error:w},[3,11];case 6:return _.trys.push([6,,9,10]),r&&!r.done&&(a=n.return)?[4,a.call(n)]:[3,8];case 7:_.sent(),_.label=8;case 8:return[3,10];case 9:if(o)throw o.error;return[7];case 10:return[7];case 11:return i.complete(),[2]}})},new((d=void 0)||(d=Promise))(function(y,w){function _(C){try{$(m.next(C))}catch(P){w(P)}}function R(C){try{$(m.throw(C))}catch(P){w(P)}}function $(C){C.done?y(C.value):function(P){return P instanceof d?P:new d(function(B){B(P)})}(C.value).then(_,R)}$((m=m.apply(c,u||[])).next())})})(s,t).catch(function(e){return t.error(e)})})}function ei(s){s===void 0&&(s={});var t=s.connector,e=t===void 0?function(){return new $s}:t,i=s.resetOnError,n=i===void 0||i,r=s.resetOnComplete,o=r===void 0||r,a=s.resetOnRefCountZero,c=a===void 0||a;return function(u){var d,m,y,w=0,_=!1,R=!1,$=function(){m==null||m.unsubscribe(),m=void 0},C=function(){$(),d=y=void 0,_=R=!1},P=function(){var B=d;C(),B==null||B.unsubscribe()};return Tt(function(B,D){w++,R||_||$();var K=y=y??e();D.add(function(){--w!=0||R||_||(m=ti(P,c))}),K.subscribe(D),!d&&w>0&&(d=new Gt({next:function(se){return K.next(se)},error:function(se){R=!0,$(),m=ti(C,n,se),K.error(se)},complete:function(){_=!0,$(),m=ti(C,o),K.complete()}}),Es(B).subscribe(d))})(u)}}function ti(s,t){for(var e=[],i=2;i<arguments.length;i++)e[i-2]=arguments[i];if(t!==!0){if(t!==!1){var n=new Gt({next:function(){n.unsubscribe(),s()}});return Es(t.apply(void 0,Wt([],Zt(e)))).subscribe(n)}}else s()}function fr(s,t,e){return e===void 0&&(e=1/0),Ae(t)?fr(function(i,n){return pr(function(r,o){return t(i,r,n,o)})(Es(s(i,n)))},e):(typeof t=="number"&&(e=t),Tt(function(i,n){return function(r,o,a,c,u,d,m,y){var w=[],_=0,R=0,$=!1,C=function(){!$||w.length||_||o.complete()},P=function(D){return _<c?B(D):w.push(D)},B=function(D){_++;var K=!1;Es(a(D,R++)).subscribe(At(o,function(se){o.next(se)},function(){K=!0},void 0,function(){if(K)try{_--;for(var se=function(){var H=w.shift();B(H)};w.length&&_<c;)se();C()}catch(H){o.error(H)}}))};return r.subscribe(At(o,P,function(){$=!0,C()})),function(){}}(i,n,s,e)}))}function yl(s,t){return s===t}function pt(s,t,e={}){const i={type:"Feature"};return(e.id===0||e.id)&&(i.id=e.id),e.bbox&&(i.bbox=e.bbox),i.properties=t||{},i.geometry=s,i}function Ri(s,t,e={}){for(const i of s){if(i.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(i[i.length-1].length!==i[0].length)throw new Error("First and last Position are not equivalent.");for(let n=0;n<i[i.length-1].length;n++)if(i[i.length-1][n]!==i[0][n])throw new Error("First and last Position are not equivalent.")}return pt({type:"Polygon",coordinates:s},t,e)}function Ms(s,t={}){const e={type:"FeatureCollection"};return t.id&&(e.id=t.id),t.bbox&&(e.bbox=t.bbox),e.features=s,e}function un(s){return!isNaN(s)&&s!==null&&!Array.isArray(s)}function mr(s,t,e){if(s!==null)for(var i,n,r,o,a,c,u,d,m=0,y=0,w=s.type,_=w==="FeatureCollection",R=w==="Feature",$=_?s.features.length:1,C=0;C<$;C++){a=(d=!!(u=_?s.features[C].geometry:R?s.geometry:s)&&u.type==="GeometryCollection")?u.geometries.length:1;for(var P=0;P<a;P++){var B=0,D=0;if((o=d?u.geometries[P]:u)!==null){c=o.coordinates;var K=o.type;switch(m=0,K){case null:break;case"Point":if(t(c,y,C,B,D)===!1)return!1;y++,B++;break;case"LineString":case"MultiPoint":for(i=0;i<c.length;i++){if(t(c[i],y,C,B,D)===!1)return!1;y++,K==="MultiPoint"&&B++}K==="LineString"&&B++;break;case"Polygon":case"MultiLineString":for(i=0;i<c.length;i++){for(n=0;n<c[i].length-m;n++){if(t(c[i][n],y,C,B,D)===!1)return!1;y++}K==="MultiLineString"&&B++,K==="Polygon"&&D++}K==="Polygon"&&B++;break;case"MultiPolygon":for(i=0;i<c.length;i++){for(D=0,n=0;n<c[i].length;n++){for(r=0;r<c[i][n].length-m;r++){if(t(c[i][n][r],y,C,B,D)===!1)return!1;y++}D++}B++}break;case"GeometryCollection":for(i=0;i<o.geometries.length;i++)if(mr(o.geometries[i],t)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function gr(s,t){var e,i,n,r,o,a,c,u,d,m,y=0,w=s.type==="FeatureCollection",_=s.type==="Feature",R=w?s.features.length:1;for(e=0;e<R;e++){for(a=w?s.features[e].geometry:_?s.geometry:s,u=w?s.features[e].properties:_?s.properties:{},d=w?s.features[e].bbox:_?s.bbox:void 0,m=w?s.features[e].id:_?s.id:void 0,o=(c=!!a&&a.type==="GeometryCollection")?a.geometries.length:1,n=0;n<o;n++)if((r=c?a.geometries[n]:a)!==null)switch(r.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(t(r,y,u,d,m)===!1)return!1;break;case"GeometryCollection":for(i=0;i<r.geometries.length;i++)if(t(r.geometries[i],y,u,d,m)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}else if(t(null,y,u,d,m)===!1)return!1;y++}}function us(s,t){gr(s,function(e,i,n,r,o){var a,c=e===null?null:e.type;switch(c){case null:case"Point":case"LineString":case"Polygon":return t(pt(e,n,{bbox:r,id:o}),i,0)!==!1&&void 0}switch(c){case"MultiPoint":a="Point";break;case"MultiLineString":a="LineString";break;case"MultiPolygon":a="Polygon"}for(var u=0;u<e.coordinates.length;u++){var d=e.coordinates[u];if(t(pt({type:a,coordinates:d},n),i,u)===!1)return!1}})}function Kt(s,t={}){if(s.bbox!=null&&t.recompute!==!0)return s.bbox;const e=[1/0,1/0,-1/0,-1/0];return mr(s,i=>{e[0]>i[0]&&(e[0]=i[0]),e[1]>i[1]&&(e[1]=i[1]),e[2]<i[0]&&(e[2]=i[0]),e[3]<i[1]&&(e[3]=i[1])}),e}function br(s,t={}){const e=Number(s[0]),i=Number(s[1]),n=Number(s[2]),r=Number(s[3]);if(s.length===6)throw new Error("@turf/bbox-polygon does not support BBox with 6 positions");const o=[e,i];return Ri([[o,[n,i],[n,r],[e,r],o]],t.properties,{bbox:s,id:t.id})}var _l=Fe(73);function wl(s,t={}){const e=[];if(gr(s,n=>{e.push(n.coordinates)}),e.length<2)throw new Error("Must have at least 2 geometries");const i=_l.union(e[0],...e.slice(1));return i.length===0?null:i.length===1?Ri(i[0],t.properties):function(n,r,o={}){return pt({type:"MultiPolygon",coordinates:n},r,o)}(i,t.properties)}function vr(s,t,e=0,i=s.length-1,n=Sl){for(;i>e;){if(i-e>600){const c=i-e+1,u=t-e+1,d=Math.log(c),m=.5*Math.exp(2*d/3),y=.5*Math.sqrt(d*m*(c-m)/c)*(u-c/2<0?-1:1);vr(s,t,Math.max(e,Math.floor(t-u*m/c+y)),Math.min(i,Math.floor(t+(c-u)*m/c+y)),n)}const r=s[t];let o=e,a=i;for(It(s,e,t),n(s[i],r)>0&&It(s,e,i);o<a;){for(It(s,o,a),o++,a--;n(s[o],r)<0;)o++;for(;n(s[a],r)>0;)a--}n(s[e],r)===0?It(s,e,a):(a++,It(s,a,i)),a<=t&&(e=a+1),t<=a&&(i=a-1)}}function It(s,t,e){const i=s[t];s[t]=s[e],s[e]=i}function Sl(s,t){return s<t?-1:s>t?1:0}class xl{constructor(t=9){this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()}all(){return this._all(this.data,[])}search(t){let e=this.data;const i=[];if(!ds(t,e))return i;const n=this.toBBox,r=[];for(;e;){for(let o=0;o<e.children.length;o++){const a=e.children[o],c=e.leaf?n(a):a;ds(t,c)&&(e.leaf?i.push(a):ii(t,c)?this._all(a,i):r.push(a))}e=r.pop()}return i}collides(t){let e=this.data;if(!ds(t,e))return!1;const i=[];for(;e;){for(let n=0;n<e.children.length;n++){const r=e.children[n],o=e.leaf?this.toBBox(r):r;if(ds(t,o)){if(e.leaf||ii(t,o))return!0;i.push(r)}}e=i.pop()}return!1}load(t){if(!t||!t.length)return this;if(t.length<this._minEntries){for(let i=0;i<t.length;i++)this.insert(t[i]);return this}let e=this._build(t.slice(),0,t.length-1,0);if(this.data.children.length)if(this.data.height===e.height)this._splitRoot(this.data,e);else{if(this.data.height<e.height){const i=this.data;this.data=e,e=i}this._insert(e,this.data.height-e.height-1,!0)}else this.data=e;return this}insert(t){return t&&this._insert(t,this.data.height-1),this}clear(){return this.data=Ct([]),this}remove(t,e){if(!t)return this;let i=this.data;const n=this.toBBox(t),r=[],o=[];let a,c,u;for(;i||r.length;){if(i||(i=r.pop(),c=r[r.length-1],a=o.pop(),u=!0),i.leaf){const d=kl(t,i.children,e);if(d!==-1)return i.children.splice(d,1),r.push(i),this._condense(r),this}u||i.leaf||!ii(i,n)?c?(a++,i=c.children[a],u=!1):i=null:(r.push(i),o.push(a),a=0,c=i,i=i.children[0])}return this}toBBox(t){return t}compareMinX(t,e){return t.minX-e.minX}compareMinY(t,e){return t.minY-e.minY}toJSON(){return this.data}fromJSON(t){return this.data=t,this}_all(t,e){const i=[];for(;t;)t.leaf?e.push(...t.children):i.push(...t.children),t=i.pop();return e}_build(t,e,i,n){const r=i-e+1;let o,a=this._maxEntries;if(r<=a)return o=Ct(t.slice(e,i+1)),kt(o,this.toBBox),o;n||(n=Math.ceil(Math.log(r)/Math.log(a)),a=Math.ceil(r/Math.pow(a,n-1))),o=Ct([]),o.leaf=!1,o.height=n;const c=Math.ceil(r/a),u=c*Math.ceil(Math.sqrt(a));hn(t,e,i,u,this.compareMinX);for(let d=e;d<=i;d+=u){const m=Math.min(d+u-1,i);hn(t,d,m,c,this.compareMinY);for(let y=d;y<=m;y+=c){const w=Math.min(y+c-1,m);o.children.push(this._build(t,y,w,n-1))}}return kt(o,this.toBBox),o}_chooseSubtree(t,e,i,n){for(;n.push(e),!e.leaf&&n.length-1!==i;){let a,c=1/0,u=1/0;for(let d=0;d<e.children.length;d++){const m=e.children[d],y=si(m),w=(r=t,o=m,(Math.max(o.maxX,r.maxX)-Math.min(o.minX,r.minX))*(Math.max(o.maxY,r.maxY)-Math.min(o.minY,r.minY))-y);w<u?(u=w,c=y<c?y:c,a=m):w===u&&y<c&&(c=y,a=m)}e=a||e.children[0]}var r,o;return e}_insert(t,e,i){const n=i?t:this.toBBox(t),r=[],o=this._chooseSubtree(n,this.data,e,r);for(o.children.push(t),Nt(o,n);e>=0&&r[e].children.length>this._maxEntries;)this._split(r,e),e--;this._adjustParentBBoxes(n,r,e)}_split(t,e){const i=t[e],n=i.children.length,r=this._minEntries;this._chooseSplitAxis(i,r,n);const o=this._chooseSplitIndex(i,r,n),a=Ct(i.children.splice(o,i.children.length-o));a.height=i.height,a.leaf=i.leaf,kt(i,this.toBBox),kt(a,this.toBBox),e?t[e-1].children.push(a):this._splitRoot(i,a)}_splitRoot(t,e){this.data=Ct([t,e]),this.data.height=t.height+1,this.data.leaf=!1,kt(this.data,this.toBBox)}_chooseSplitIndex(t,e,i){let n,r=1/0,o=1/0;for(let a=e;a<=i-e;a++){const c=jt(t,0,a,this.toBBox),u=jt(t,a,i,this.toBBox),d=Ml(c,u),m=si(c)+si(u);d<r?(r=d,n=a,o=m<o?m:o):d===r&&m<o&&(o=m,n=a)}return n||i-e}_chooseSplitAxis(t,e,i){const n=t.leaf?this.compareMinX:Cl,r=t.leaf?this.compareMinY:El;this._allDistMargin(t,e,i,n)<this._allDistMargin(t,e,i,r)&&t.children.sort(n)}_allDistMargin(t,e,i,n){t.children.sort(n);const r=this.toBBox,o=jt(t,0,e,r),a=jt(t,i-e,i,r);let c=hs(o)+hs(a);for(let u=e;u<i-e;u++){const d=t.children[u];Nt(o,t.leaf?r(d):d),c+=hs(o)}for(let u=i-e-1;u>=e;u--){const d=t.children[u];Nt(a,t.leaf?r(d):d),c+=hs(a)}return c}_adjustParentBBoxes(t,e,i){for(let n=i;n>=0;n--)Nt(e[n],t)}_condense(t){for(let e,i=t.length-1;i>=0;i--)t[i].children.length===0?i>0?(e=t[i-1].children,e.splice(e.indexOf(t[i]),1)):this.clear():kt(t[i],this.toBBox)}}function kl(s,t,e){if(!e)return t.indexOf(s);for(let i=0;i<t.length;i++)if(e(s,t[i]))return i;return-1}function kt(s,t){jt(s,0,s.children.length,t,s)}function jt(s,t,e,i,n){n||(n=Ct(null)),n.minX=1/0,n.minY=1/0,n.maxX=-1/0,n.maxY=-1/0;for(let r=t;r<e;r++){const o=s.children[r];Nt(n,s.leaf?i(o):o)}return n}function Nt(s,t){return s.minX=Math.min(s.minX,t.minX),s.minY=Math.min(s.minY,t.minY),s.maxX=Math.max(s.maxX,t.maxX),s.maxY=Math.max(s.maxY,t.maxY),s}function Cl(s,t){return s.minX-t.minX}function El(s,t){return s.minY-t.minY}function si(s){return(s.maxX-s.minX)*(s.maxY-s.minY)}function hs(s){return s.maxX-s.minX+(s.maxY-s.minY)}function Ml(s,t){const e=Math.max(s.minX,t.minX),i=Math.max(s.minY,t.minY),n=Math.min(s.maxX,t.maxX),r=Math.min(s.maxY,t.maxY);return Math.max(0,n-e)*Math.max(0,r-i)}function ii(s,t){return s.minX<=t.minX&&s.minY<=t.minY&&t.maxX<=s.maxX&&t.maxY<=s.maxY}function ds(s,t){return t.minX<=s.maxX&&t.minY<=s.maxY&&t.maxX>=s.minX&&t.maxY>=s.minY}function Ct(s){return{children:s,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function hn(s,t,e,i,n){const r=[t,e];for(;r.length;){if((e=r.pop())-(t=r.pop())<=i)continue;const o=t+Math.ceil((e-t)/i/2)*i;vr(s,o,t,e,n),r.push(t,o,o,e)}}function dn(s){return br(s)}function pn(s){return s[0]<s[2]&&s[1]<s[3]}function Pl(s,t){const[e,i,n,r]=s,[o,a,c,u]=t,d=Math.max(e,o),m=Math.max(i,a),y=Math.min(n,c),w=Math.min(r,u);if(y<d||w<m)return 0;const _=(y-d)*(w-m);return _/((n-e)*(r-i)+(c-o)*(u-a)-_)}function fn(s,t=.01,e=100){if(s.length===0)return[];const i=new xl,n=s.map(c=>({minX:c.boundingBox[0],minY:c.boundingBox[1],maxX:c.boundingBox[2],maxY:c.boundingBox[3],detection:{...c,id:c.id??Math.random().toString(36).slice(2,9)}}));i.load(n);const r=[],o=new Set;for(const c of n){if(o.has(c.detection.id))continue;const u={...c.detection};let d=u.confidence;const m=[dn(u.boundingBox)],y=Math.max(e,10),w=i.search({minX:c.minX-y,minY:c.minY-y,maxX:c.maxX+y,maxY:c.maxY+y});for(const _ of w){if(_.detection.id===u.id||o.has(_.detection.id)||_.detection.label!==u.label)continue;const R=Pl(u.boundingBox,_.detection.boundingBox),$=Math.abs(c.minX-_.minX)<=e&&Math.abs(c.minY-_.minY)<=e;if(R>t||$){const C=dn(_.detection.boundingBox);m.push(C),o.add(_.detection.id),d=Math.max(d,_.detection.confidence)}}if(m.length>1){const _=wl(Ms(m));if(_){const R=(a=Kt(_),[Math.max(0,Math.round(a[0])),Math.max(0,Math.round(a[1])),Math.min(1e3,Math.round(a[2])),Math.min(1e3,Math.round(a[3]))]);pn(R)&&(u.boundingBox=R,u.confidence=d)}}pn(u.boundingBox)&&r.push(u),o.add(u.id)}var a;return r}const Al=function(s,t){for(var e=0,i=0,n=0,r=0,o=0,a=0,c=0,u=0,d=null,m=null,y=s[0],w=s[1],_=t.length;e<_;e++){i=0;var R=t[e].length-1,$=t[e];if((d=$[0])[0]!==$[R][0]&&d[1]!==$[R][1])throw new Error("First and last coordinates in a ring must be the same");for(o=d[0]-y,a=d[1]-w;i<R;i++)if(u=(m=$[i+1])[1]-w,a<0&&u<0||a>0&&u>0)a=u,o=(d=m)[0]-y;else{if(c=m[0]-s[0],u>0&&a<=0){if((r=o*u-c*a)>0)n+=1;else if(r===0)return 0}else if(a>0&&u<=0){if((r=o*u-c*a)<0)n+=1;else if(r===0)return 0}else if(u===0&&a<0){if((r=o*u-c*a)==0)return 0}else if(a===0&&u<0){if((r=o*u-c*a)==0)return 0}else if(a===0&&u===0&&(c<=0&&o>=0||o<=0&&c>=0))return 0;d=m,a=u,o=c}}return n%2!=0};function yr(s){if(!s)throw new Error("coord is required");if(!Array.isArray(s)){if(s.type==="Feature"&&s.geometry!==null&&s.geometry.type==="Point")return[...s.geometry.coordinates];if(s.type==="Point")return[...s.coordinates]}if(Array.isArray(s)&&s.length>=2&&!Array.isArray(s[0])&&!Array.isArray(s[1]))return[...s];throw new Error("coord must be GeoJSON Point or an Array of numbers")}function _t(s){return s.type==="Feature"?s.geometry:s}function ht(s,t,e={}){if(!s)throw new Error("point is required");if(!t)throw new Error("polygon is required");const i=yr(s),n=_t(t),r=n.type,o=t.bbox;let a=n.coordinates;if(o&&function(d,m){return m[0]<=d[0]&&m[1]<=d[1]&&m[2]>=d[0]&&m[3]>=d[1]}(i,o)===!1)return!1;r==="Polygon"&&(a=[a]);let c=!1;for(var u=0;u<a.length;++u){const d=Al(i,a[u]);if(d===0)return!e.ignoreBoundary;d&&(c=!0)}return c}function Ot(s,t,e={}){const i=yr(s),n=function(r){if(Array.isArray(r))return r;if(r.type==="Feature"){if(r.geometry!==null)return r.geometry.coordinates}else if(r.coordinates)return r.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}(t);for(let r=0;r<n.length-1;r++){let o=!1;if(e.ignoreEndVertices&&(r===0&&(o="start"),r===n.length-2&&(o="end"),r===0&&r+1===n.length-1&&(o="both")),Ll(n[r],n[r+1],i,o,e.epsilon===void 0?null:e.epsilon))return!0}return!1}function Ll(s,t,e,i,n){const r=e[0],o=e[1],a=s[0],c=s[1],u=t[0],d=t[1],m=u-a,y=d-c,w=(e[0]-a)*y-(e[1]-c)*m;if(n!==null){if(Math.abs(w)>n)return!1}else if(w!==0)return!1;return i?i==="start"?Math.abs(m)>=Math.abs(y)?m>0?a<r&&r<=u:u<=r&&r<a:y>0?c<o&&o<=d:d<=o&&o<c:i==="end"?Math.abs(m)>=Math.abs(y)?m>0?a<=r&&r<u:u<r&&r<=a:y>0?c<=o&&o<d:d<o&&o<=c:i==="both"&&(Math.abs(m)>=Math.abs(y)?m>0?a<r&&r<u:u<r&&r<a:y>0?c<o&&o<d:d<o&&o<c):Math.abs(m)>=Math.abs(y)?m>0?a<=r&&r<=u:u<=r&&r<=a:y>0?c<=o&&o<=d:d<=o&&o<=c}function Tl(s,t){const e=_t(s),i=_t(t),n=e.type,r=i.type,o=e.coordinates,a=i.coordinates;switch(n){case"Point":if(r==="Point")return ni(o,a);throw new Error("feature2 "+r+" geometry not supported");case"MultiPoint":switch(r){case"Point":return function(c,u){let d,m=!1;for(d=0;d<c.coordinates.length;d++)if(ni(c.coordinates[d],u.coordinates)){m=!0;break}return m}(e,i);case"MultiPoint":return function(c,u){for(const d of u.coordinates){let m=!1;for(const y of c.coordinates)if(ni(d,y)){m=!0;break}if(!m)return!1}return!0}(e,i);default:throw new Error("feature2 "+r+" geometry not supported")}case"LineString":switch(r){case"Point":return Ot(i,e,{ignoreEndVertices:!0});case"LineString":return function(c,u){let d=!1;for(const m of u.coordinates)if(Ot({type:"Point",coordinates:m},c,{ignoreEndVertices:!0})&&(d=!0),!Ot({type:"Point",coordinates:m},c,{ignoreEndVertices:!1}))return!1;return d}(e,i);case"MultiPoint":return function(c,u){let d=!1;for(const m of u.coordinates)if(Ot(m,c,{ignoreEndVertices:!0})&&(d=!0),!Ot(m,c))return!1;return!!d}(e,i);default:throw new Error("feature2 "+r+" geometry not supported")}case"Polygon":switch(r){case"Point":return ht(i,e,{ignoreBoundary:!0});case"LineString":return function(c,u){let d=!1,m=0;if(!_r(Kt(c),Kt(u)))return!1;for(;m<u.coordinates.length-1;m++)if(ht({type:"Point",coordinates:(y=u.coordinates[m],w=u.coordinates[m+1],[(y[0]+w[0])/2,(y[1]+w[1])/2])},c,{ignoreBoundary:!0})){d=!0;break}var y,w;return d}(e,i);case"Polygon":return mn(e,i);case"MultiPoint":return function(c,u){for(const d of u.coordinates)if(!ht(d,c,{ignoreBoundary:!0}))return!1;return!0}(e,i);default:throw new Error("feature2 "+r+" geometry not supported")}case"MultiPolygon":if(r==="Polygon")return function(c,u){return c.coordinates.some(d=>mn({type:"Polygon",coordinates:d},u))}(e,i);throw new Error("feature2 "+r+" geometry not supported");default:throw new Error("feature1 "+n+" geometry not supported")}}function mn(s,t){if(s.type==="Feature"&&s.geometry===null||t.type==="Feature"&&t.geometry===null||!_r(Kt(s),Kt(t)))return!1;const e=_t(t).coordinates;for(const i of e)for(const n of i)if(!ht(n,s))return!1;return!0}function _r(s,t){return!(s[0]>t[0]||s[2]<t[2]||s[1]>t[1]||s[3]<t[3])}function ni(s,t){return s[0]===t[0]&&s[1]===t[1]}class gn{constructor(t=[],e=Bl){if(this.data=t,this.length=this.data.length,this.compare=e,this.length>0)for(let i=(this.length>>1)-1;i>=0;i--)this._down(i)}push(t){this.data.push(t),this.length++,this._up(this.length-1)}pop(){if(this.length===0)return;const t=this.data[0],e=this.data.pop();return this.length--,this.length>0&&(this.data[0]=e,this._down(0)),t}peek(){return this.data[0]}_up(t){const{data:e,compare:i}=this,n=e[t];for(;t>0;){const r=t-1>>1,o=e[r];if(i(n,o)>=0)break;e[t]=o,t=r}e[t]=n}_down(t){const{data:e,compare:i}=this,n=this.length>>1,r=e[t];for(;t<n;){let o=1+(t<<1),a=e[o];const c=o+1;if(c<this.length&&i(e[c],a)<0&&(o=c,a=e[c]),i(a,r)>=0)break;e[t]=a,t=o}e[t]=r}}function Bl(s,t){return s<t?-1:s>t?1:0}function wr(s,t){return s.p.x>t.p.x?1:s.p.x<t.p.x?-1:s.p.y!==t.p.y?s.p.y>t.p.y?1:-1:1}function Vl(s,t){return s.rightSweepEvent.p.x>t.rightSweepEvent.p.x?1:s.rightSweepEvent.p.x<t.rightSweepEvent.p.x?-1:s.rightSweepEvent.p.y!==t.rightSweepEvent.p.y?s.rightSweepEvent.p.y<t.rightSweepEvent.p.y?1:-1:1}class bn{constructor(t,e,i,n){this.p={x:t[0],y:t[1]},this.featureId=e,this.ringId=i,this.eventId=n,this.otherEvent=null,this.isLeftEndpoint=null}isSamePoint(t){return this.p.x===t.p.x&&this.p.y===t.p.y}}let ri=0,oi=0,ai=0;function vn(s,t){const e=s.type==="Feature"?s.geometry:s;let i=e.coordinates;e.type!=="Polygon"&&e.type!=="MultiLineString"||(i=[i]),e.type==="LineString"&&(i=[[i]]);for(let n=0;n<i.length;n++)for(let r=0;r<i[n].length;r++){let o=i[n][r][0],a=null;oi+=1;for(let c=0;c<i[n][r].length-1;c++){a=i[n][r][c+1];const u=new bn(o,ri,oi,ai),d=new bn(a,ri,oi,ai+1);u.otherEvent=d,d.otherEvent=u,wr(u,d)>0?(d.isLeftEndpoint=!0,u.isLeftEndpoint=!1):(u.isLeftEndpoint=!0,d.isLeftEndpoint=!1),t.push(u),t.push(d),o=a,ai+=1}}ri+=1}class Rl{constructor(t){this.leftSweepEvent=t,this.rightSweepEvent=t.otherEvent}}function Il(s,t){if(s===null||t===null||s.leftSweepEvent.ringId===t.leftSweepEvent.ringId&&(s.rightSweepEvent.isSamePoint(t.leftSweepEvent)||s.rightSweepEvent.isSamePoint(t.leftSweepEvent)||s.rightSweepEvent.isSamePoint(t.rightSweepEvent)||s.leftSweepEvent.isSamePoint(t.leftSweepEvent)||s.leftSweepEvent.isSamePoint(t.rightSweepEvent)))return!1;const e=s.leftSweepEvent.p.x,i=s.leftSweepEvent.p.y,n=s.rightSweepEvent.p.x,r=s.rightSweepEvent.p.y,o=t.leftSweepEvent.p.x,a=t.leftSweepEvent.p.y,c=t.rightSweepEvent.p.x,u=t.rightSweepEvent.p.y,d=(u-a)*(n-e)-(c-o)*(r-i);if(d===0)return!1;const m=((c-o)*(i-a)-(u-a)*(e-o))/d,y=((n-e)*(i-a)-(r-i)*(e-o))/d;return m>=0&&m<=1&&y>=0&&y<=1&&[e+m*(n-e),i+m*(r-i)]}var Ol=function(s,t){const e=new gn([],wr);return function(i,n){if(i.type==="FeatureCollection"){const r=i.features;for(let o=0;o<r.length;o++)vn(r[o],n)}else vn(i,n)}(s,e),function(i,n){n=n||!1;const r=[],o=new gn([],Vl);for(;i.length;){const a=i.pop();if(a.isLeftEndpoint){const c=new Rl(a);for(let u=0;u<o.data.length;u++){const d=o.data[u];if(n&&d.leftSweepEvent.featureId===a.featureId)continue;const m=Il(c,d);m!==!1&&r.push(m)}o.push(c)}else a.isLeftEndpoint===!1&&o.pop()}return r}(e,t)};function yi(s,t,e={}){const{removeDuplicates:i=!0,ignoreSelfIntersections:n=!1}=e;let r=[];s.type==="FeatureCollection"?r=r.concat(s.features):s.type==="Feature"?r.push(s):s.type!=="LineString"&&s.type!=="Polygon"&&s.type!=="MultiLineString"&&s.type!=="MultiPolygon"||r.push(pt(s)),t.type==="FeatureCollection"?r=r.concat(t.features):t.type==="Feature"?r.push(t):t.type!=="LineString"&&t.type!=="Polygon"&&t.type!=="MultiLineString"&&t.type!=="MultiPolygon"||r.push(pt(t));const o=Ol(Ms(r),n);let a=[];if(i){const c={};o.forEach(u=>{const d=u.join(",");c[d]||(c[d]=!0,a.push(u))})}else a=o;return Ms(a.map(c=>function(u,d,m={}){if(!u)throw new Error("coordinates is required");if(!Array.isArray(u))throw new Error("coordinates must be an Array");if(u.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!un(u[0])||!un(u[1]))throw new Error("coordinates must contain numbers");return pt({type:"Point",coordinates:u},d,m)}(c)))}function _i(s,t={}){const e=_t(s);switch(t.properties||s.type!=="Feature"||(t.properties=s.properties),e.type){case"Polygon":return function(i,n={}){return yn(_t(i).coordinates,n.properties?n.properties:i.type==="Feature"?i.properties:{})}(e,t);case"MultiPolygon":return function(i,n={}){const r=_t(i).coordinates,o=n.properties?n.properties:i.type==="Feature"?i.properties:{},a=[];return r.forEach(c=>{a.push(yn(c,o))}),Ms(a)}(e,t);default:throw new Error("invalid poly")}}function yn(s,t){return s.length>1?function(e,i,n={}){return pt({type:"MultiLineString",coordinates:e},i,n)}(s,t):function(e,i,n={}){if(e.length<2)throw new Error("coordinates must be an array of two or more positions");return pt({type:"LineString",coordinates:e},i,n)}(s[0],t)}function _n(s,t){for(let e=0;e<s.coordinates.length-1;e++)if($l(s.coordinates[e],s.coordinates[e+1],t.coordinates))return!0;return!1}function wn(s,t,e){for(const i of t.coordinates)if(ht(i,s))return!0;return yi(t,_i(s),{ignoreSelfIntersections:e}).features.length>0}function $l(s,t,e){const i=e[0]-s[0],n=e[1]-s[1],r=t[0]-s[0],o=t[1]-s[1];return i*o-n*r==0&&(Math.abs(r)>=Math.abs(o)?r>0?s[0]<=e[0]&&e[0]<=t[0]:t[0]<=e[0]&&e[0]<=s[0]:o>0?s[1]<=e[1]&&e[1]<=t[1]:t[1]<=e[1]&&e[1]<=s[1])}function jl(s,t,e={}){var i;const n=(i=e.ignoreSelfIntersections)!=null&&i;let r=!1;return us(s,o=>{us(t,a=>{if(r===!0)return!0;r=!function(c,u,d={}){var m;const y=(m=d.ignoreSelfIntersections)!=null&&m;let w=!0;return us(c,_=>{us(u,R=>{if(w===!1)return!1;w=function($,C,P){switch($.type){case"Point":switch(C.type){case"Point":return B=$.coordinates,D=C.coordinates,!(B[0]===D[0]&&B[1]===D[1]);case"LineString":return!_n(C,$);case"Polygon":return!ht($,C)}break;case"LineString":switch(C.type){case"Point":return!_n($,C);case"LineString":return!function(K,se,H){return yi(K,se,{ignoreSelfIntersections:H}).features.length>0}($,C,P);case"Polygon":return!wn(C,$,P)}break;case"Polygon":switch(C.type){case"Point":return!ht(C,$);case"LineString":return!wn($,C,P);case"Polygon":return!function(K,se,H){for(const te of K.coordinates[0])if(ht(te,se))return!0;for(const te of se.coordinates[0])if(ht(te,K))return!0;return yi(_i(K),_i(se),{ignoreSelfIntersections:H}).features.length>0}(C,$,P)}}var B,D;return!1}(_.geometry,R.geometry,y)})}),w}(o.geometry,a.geometry,{ignoreSelfIntersections:n})})}),r}const Nl=(s,t)=>{const{origWidth:e,origHeight:i}=t,n=s.points.map(([r,o])=>[r*e/100,o*i/100]);return n.length>0&&!Dl(n[0],n[n.length-1])&&n.push(n[0]),{...s,points:n}},Dl=(s,t)=>s[0]===t[0]&&s[1]===t[1],zl=s=>{const{origWidth:t,origHeight:e,inputWidth:i,inputHeight:n}=s;let[r,o,a,c]=s.boundingBox;return r=r*t/i,o=o*e/n,a=a*t/i,c=c*e/n,r=Math.max(0,Math.min(r,t)),o=Math.max(0,Math.min(o,e)),a=Math.max(0,Math.min(a,t)),c=Math.max(0,Math.min(c,e)),{...s,boundingBox:[r,o,a,c]}},Sn=(s,t,e)=>{const i=[];for(const n of s)ql(zl(n),t,e)&&t.some(r=>!r.classes.length||r.classes.includes(n.label))&&i.push(n);return i},ql=(s,t,e)=>{if(s.confidence<e.object.confidence)return!1;if(t.length===0)return!0;const[i,n,r,o]=s.boundingBox,a=br([i,n,r,o]);for(const c of t){const u=Nl(c,s),d=Ri([u.points]);if(u.classes.length>0&&!u.classes.includes(s.label))continue;const m=jl(a,d),y=Tl(d,a);if(u.isPrivacyMask){if(m||y)return!1}else if(u.filter==="include"){if(u.type==="contain"){if(y)return!0}else if(u.type==="intersect"&&(m||y))return!0}else if(u.filter==="exclude"){if(u.type==="contain"){if(!y)return!0}else if(u.type==="intersect"&&!m&&!y)return!0}}return!1};class Fl extends ll{constructor(e,i){super();V(this,"logger");V(this,"snapshotCache");V(this,"cameraSubject");V(this,"cameraState",new ct(!1));V(this,"lightState",new ct(this.getLightState({state:!1},!0)));V(this,"motionState",new ct(this.getMotionState({detections:[],state:!1},!0)));V(this,"audioState",new ct(this.getAudioState({state:!1,db:0},!0)));V(this,"objectState",new ct(this.getObjectState({detections:[]},!0)));V(this,"doorbellState",new ct(this.getDoorbellState({state:!1},!0)));V(this,"sirenState",new ct(this.getSirenState({state:!1,level:0},!0)));V(this,"batteryState",new ct(this.getBatteryState({level:100,charging:!1,lowBattery:!1},!0)));V(this,"onConnected",this.createStateObservable(this.cameraState));V(this,"onLightSwitched",this.createStateObservable(this.lightState));V(this,"onMotionDetected",this.createStateObservable(this.motionState));V(this,"onAudioDetected",this.createStateObservable(this.audioState));V(this,"onObjectDetected",this.createStateObservable(this.objectState));V(this,"onDoorbellPressed",this.createStateObservable(this.doorbellState));V(this,"onSirenDetected",this.createStateObservable(this.sirenState));V(this,"onBatteryChanged",this.createStateObservable(this.batteryState));this.logger=i,this.cameraSubject=new ct(e),this.updateCamera(e),this.snapshotCache=new(ul())({max:100,ttl:1e3*this.snapshotTTL}),e.pluginId==="native"&&this.cameraState.next(!0)}get cameraObject(){return Ue(this.cameraSubject.getValue())}get id(){return this.cameraSubject.getValue()._id}get nativeId(){return this.cameraSubject.getValue().nativeId}get pluginId(){return this.cameraSubject.getValue().pluginId}get connected(){return this.cameraState.getValue()}get disabled(){return this.cameraSubject.getValue().disabled}get name(){return this.cameraSubject.getValue().name}get type(){return this.cameraSubject.getValue().type}get info(){return Ue(this.cameraSubject.getValue().info)}get isCloud(){return this.cameraSubject.getValue().isCloud}get hasLight(){return this.cameraSubject.getValue().hasLight}get hasSiren(){return this.cameraSubject.getValue().hasSiren}get hasBinarySensor(){return this.cameraSubject.getValue().hasBinarySensor}get hasBattery(){return this.cameraSubject.getValue().hasBattery}get hasMotionDetector(){return this.cameraSubject.getValue().hasMotionDetector}get extendedMotionDetector(){return this.cameraSubject.getValue().extendedMotionDetector}get hasAudioDetector(){return this.cameraSubject.getValue().hasAudioDetector}get hasObjectDetector(){return this.cameraSubject.getValue().hasObjectDetector}get hasPtz(){return this.cameraSubject.getValue().hasPtz}get snapshotTTL(){return this.cameraSubject.getValue().snapshotTTL}get activityZones(){return Ue(this.cameraSubject.getValue().activityZones)}get activitySettings(){return Ue(this.cameraSubject.getValue().activitySettings)}get frameWorkerSettings(){return Ue(this.cameraSubject.getValue().frameWorkerSettings)}get streamSource(){return this.highResolutionSource??this.midResolutionSource??this.lowResolutionSource}get snapshotSource(){const e=this.sources.find(i=>i.roles.includes("snapshot")&&!i.internal);if(e)return{_id:e._id,name:e.name,roles:e.roles,urls:e.urls,internal:e.internal}}get highResolutionSource(){return this.sources.find(e=>e.roles.includes("high-resolution")&&!e.internal)}get midResolutionSource(){return this.sources.find(e=>e.roles.includes("mid-resolution")&&!e.internal)}get lowResolutionSource(){return this.sources.find(e=>e.roles.includes("low-resolution")&&!e.internal)}get ptz(){return this.ptzDelegate}getValue(e){switch(e){case"light":return Ue(this.lightState.getValue());case"motion":return Ue(this.motionState.getValue());case"audio":return Ue(this.audioState.getValue());case"object":return Ue(this.objectState.getValue());case"doorbell":return Ue(this.doorbellState.getValue());case"siren":return Ue(this.sirenState.getValue());case"battery":return Ue(this.batteryState.getValue());default:throw new Error(`Unknown state: ${e}`)}}async snapshot(e){this.snapshotCache.purgeStale();const i=this.snapshotSource??this.streamSource,n=i.urls.www.jpegSnapshot,r=this.snapshotCache.get(i._id);if(!e&&r)return r;try{if(this.cameraObject.pluginId!=="native"){const d=await this.cameraDelegate.snapshot();if(d&&d.byteLength>0)return this.snapshotCache.set(i._id,d),d}const o=new AbortController,a=setTimeout(()=>o.abort(),5e3),c=await fetch(n,{signal:o.signal});if(clearTimeout(a),!c.ok)throw new Error("Status Code: "+c.status);const u=await c.arrayBuffer();return u.byteLength>0&&this.snapshotCache.set(i._id,u),u}catch{return}}onStateChange(e){return this[`${e}State`].pipe(an(),ln(([i,n])=>this.stateChanged(i,n,e)),pr(([i,n])=>({oldState:i,newState:n})),ei({connector:()=>new Js(1)}))}onPropertyChange(e){return this.cameraSubject.pipe(an(),fr(([i,n])=>(Array.isArray(e)?e:[e]).map(r=>({property:r,oldData:i[r],newData:n[r]}))),ln(({oldData:i,newData:n})=>!qt(i,n,!0)),ei({connector:()=>new Js(1)}))}removeAllListeners(){this.lightState.complete(),this.motionState.complete(),this.audioState.complete(),this.objectState.complete(),this.doorbellState.complete(),this.sirenState.complete(),this.batteryState.complete(),this.cameraSubject.complete(),this.cameraState.complete()}updateCamera(e){e.snapshotTTL!==this.snapshotTTL&&this.snapshotCache.clear(),this.cameraSubject.next(e)}updateCameraState(e){this.cameraState.next(e)}updateStateInternal(e,i,n,r){let o,a=!1;if(n)a=!0,o=i;else{const c=this.checkStateInternal(e,i,r);a=c.changed,o=c.event}if(a)switch(e){case"light":this.lightState.next(this.getLightState(o));break;case"motion":this.motionState.next(this.getMotionState(o));break;case"audio":this.audioState.next(this.getAudioState(o));break;case"object":this.objectState.next(this.getObjectState(o));break;case"doorbell":this.doorbellState.next(this.getDoorbellState(o));break;case"siren":this.sirenState.next(this.getSirenState(o));break;case"battery":this.batteryState.next(this.getBatteryState(o));break;default:throw new Error(`Unknown state: ${e}`)}}checkStateInternal(e,i,n){let r,o=!1;switch(e){case"audio":const a=i;r=this.getAudioState(a),o=this.stateChanged(this.getValue("audio"),r,"audio");break;case"light":const c=i;r=this.getLightState(c),o=this.stateChanged(this.getValue("light"),r,"light");break;case"motion":const u=i;u.state||(u.detections=[]),!n&&u.detections&&(u.detections=fn(u.detections),u.detections=Sn(u.detections,this.activityZones,this.activitySettings)),r=this.getMotionState(u),o=this.stateChanged(this.getValue("motion"),r,"motion");break;case"object":const d=i;n||(d.detections=fn(d.detections),d.detections=Sn(d.detections,this.activityZones,this.activitySettings)),r=this.getObjectState(d),o=this.stateChanged(this.getValue("object"),r,"object");break;case"doorbell":const m=i;r=this.getDoorbellState(m),o=this.stateChanged(this.getValue("doorbell"),r,"doorbell");break;case"siren":const y=i;r=this.getSirenState(y),o=this.stateChanged(this.getValue("siren"),r,"siren");break;case"battery":const w=i;r=this.getBatteryState(w),o=this.stateChanged(this.getValue("battery"),r,"battery");break;default:throw new Error(`Unknown state: ${e}`)}return{changed:o,event:r}}stateChanged(e,i,n){return e!==void 0&&i!==void 0&&n!==void 0&&!(n==="audio"&&!this.hasAudioDetector)&&!(n==="motion"&&!this.hasMotionDetector)&&!(n==="object"&&!this.hasObjectDetector)&&!(n==="siren"&&!this.hasSiren)&&!(n==="battery"&&!this.hasBattery)&&!(n==="doorbell"&&!this.hasBinarySensor)&&!(n==="light"&&!this.hasLight)&&!qt(this.cleanState(e),this.cleanState(i),!0)}getAudioState(e,i=!1){let n,r;if(i||(n=this.getValue("audio"),n&&n.lastEvent&&delete n.lastEvent),this.isStateEvent(e))r=e;else{const o={...e,timestamp:Date.now()};r={...o,db:o.db??(n==null?void 0:n.db)??0,lastEvent:n}}return r}getMotionState(e,i=!1){let n,r;return i||(n=this.getValue("motion"),n&&n.lastEvent&&delete n.lastEvent),r=this.isStateEvent(e)?e:{...e,timestamp:Date.now(),lastEvent:n},r}getObjectState(e,i=!1){let n,r;return i||(n=this.getValue("object"),n&&n.lastEvent&&delete n.lastEvent),r=this.isStateEvent(e)?e:{...e,timestamp:Date.now(),lastEvent:n},r}getDoorbellState(e,i=!1){let n,r;return i||(n=this.getValue("doorbell"),n&&n.lastEvent&&delete n.lastEvent),r=this.isStateEvent(e)?e:{...e,timestamp:Date.now(),lastEvent:n},r}getLightState(e,i=!1){let n,r;return i||(n=this.getValue("light"),n&&n.lastEvent&&delete n.lastEvent),r=this.isStateEvent(e)?e:{...e,timestamp:Date.now(),lastEvent:n},r}getSirenState(e,i=!1){let n,r;if(i||(n=this.getValue("siren"),n&&n.lastEvent&&delete n.lastEvent),this.isStateEvent(e))r=e;else{const o={...e,timestamp:Date.now()};r={...o,level:o.level??(n==null?void 0:n.level)??0,lastEvent:n}}return r}getBatteryState(e,i=!1){let n,r;return i||(n=this.getValue("battery"),n&&n.lastEvent&&delete n.lastEvent),r=this.isStateEvent(e)?e:{...e,timestamp:Date.now(),charging:e.charging??(n==null?void 0:n.charging)??!1,lowBattery:e.lowBattery??(n==null?void 0:n.lowBattery)??!1,lastEvent:n},r}cleanState(e){const i=Ue(e);return"timestamp"in i&&delete i.timestamp,"lastEvent"in i&&delete i.lastEvent,i}isStateEvent(e){return"timestamp"in e}createStateObservable(e){return e.pipe((n===void 0&&(n=hr),i=i??yl,Tt(function(r,o){var a,c=!0;r.subscribe(At(o,function(u){var d=n(u);!c&&i(a,d)||(c=!1,a=d,o.next(u))}))})),ei({connector:()=>new Js(1)}));var i,n}}class Hl{constructor(t){V(this,"delegate");V(this,"onRequest");this.onRequest=t}async snapshot(){return this.delegate?this.delegate.snapshot():this._onRequest("snapshot",[],5e3)}_onRequest(t,e,i){return this.onRequest("cameraDelegate",t,e,i)}}class Ul{constructor(t){V(this,"delegate");V(this,"onRequest");this.onRequest=t}async moveAbsolute(t,e,i){return this.delegate?this.delegate.moveAbsolute(t,e,i):this._onRequest("moveAbsolute",[t,e,i])}async moveRelative(t,e,i){return this.delegate?this.delegate.moveRelative(t,e,i):this._onRequest("moveRelative",[t,e,i])}async moveContinuous(t,e,i){return this.delegate?this.delegate.moveContinuous(t,e,i):this._onRequest("moveContinuous",[t,e,i])}async stop(){return this.delegate?this.delegate.stop():this._onRequest("stop",[])}_onRequest(t,e,i){return this.onRequest("ptzDelegate",t,e,i)}}const js=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(s){const t=16*Math.random()|0;return(s==="x"?t:3&t|8).toString(16)});class Zl extends EventTarget{constructor(e,i,n,r){super();V(this,"cameraDevice");V(this,"socketService");V(this,"logger");V(this,"options");V(this,"videoPlayer");V(this,"socket");V(this,"streamId");V(this,"hasBackchannel",!1);V(this,"hasAudio",!0);V(this,"closed",!1);V(this,"pc",null);V(this,"micTransceiver",null);V(this,"buf",new Uint8Array(2097152));V(this,"mediaSource",null);V(this,"sourceBuffer",null);V(this,"bufLen",0);V(this,"mseCodecs","");V(this,"videoPlayerMp4");V(this,"media",["video","audio","microphone"]);V(this,"codecList",[]);V(this,"wsReconnectTimeout");V(this,"webrtcConnectTimeout");V(this,"webrtcReconnectTimeout");V(this,"wsReconnectTimer");V(this,"webrtcReconnectTimer",1e3);V(this,"webrtcTimeoutTimer",2e3);V(this,"_finishLoading",!1);V(this,"_firstFrameReceived",!1);V(this,"animationFrameId");V(this,"isAutoSwitching",!1);this.options=r,this.videoPlayer=r.videoElement,this.cameraDevice=e,this.socketService=i,this.logger=n,this.webrtcTimeoutTimer=r.webrtcConnectTimeout??this.webrtcTimeoutTimer;const{socket:o}=this.socketService.getSocket(`${e.id}-go2rtcSession`,!0);this.socket=o,this.socket.connect(),this.streamId=js(),this.createCodecsList()}get mode(){return this.options.mode}get logPrefix(){return this.options.mode==="auto"||this.isAutoSwitching?`[${this.cameraDevice.name}] [auto]`:`[${this.cameraDevice.name}] [${this.options.mode}]`}connect(e){e&&this.setMode(e),this.options.mode==="auto"&&(this.isAutoSwitching=!0),console.log(this.logPrefix,"Connecting..."),this.socket.on("ws-open",this.onWsOpen.bind(this)),this.socket.on("ws-close",this.onWsClose.bind(this)),this.socket.on("ws-message",this.onWsMessage.bind(this)),this.socket.emit("ws-open",{id:this.streamId,cameraSource:this.options.sourceName,mode:this.options.mode})}disconnect(){console.log(this.logPrefix,"Disconnecting..."),this.socket.removeListener("ws-open",this.onWsOpen.bind(this)),this.socket.removeListener("ws-close",this.onWsClose.bind(this)),this.socket.removeListener("ws-message",this.onWsMessage.bind(this)),this.socket.emit("ws-close",{id:this.streamId})}async reconnect(e){console.log(this.logPrefix,"Reconnecting..."),this.dispatchEvent(new Event("reconnect")),this.close(),await new Promise(i=>setTimeout(i,100)),this.connect(e)}reset(){var e,i,n,r;this._finishLoading=!1,this._firstFrameReceived=!1,clearTimeout(this.wsReconnectTimeout),clearTimeout(this.webrtcConnectTimeout),clearTimeout(this.webrtcReconnectTimeout),(e=this.micTransceiver)==null||e.sender.replaceTrack(null).catch(()=>{}),this.micTransceiver=null,(i=this.pc)==null||i.getTransceivers().forEach(o=>{var a,c;return(c=(a=o.sender)==null?void 0:a.track)==null?void 0:c.stop()}),(n=this.pc)==null||n.close(),this.pc=null,(r=this.videoPlayerMp4)==null||r.remove(),this.videoPlayerMp4=void 0,this.videoPlayer.srcObject=null,this.videoPlayer.src="",this.videoPlayer.poster="",this.animationFrameId!==void 0&&("cancelVideoFrameCallback"in this.videoPlayer?this.videoPlayer.cancelVideoFrameCallback(this.animationFrameId):cancelAnimationFrame(this.animationFrameId),this.animationFrameId=void 0)}close(){console.log(this.logPrefix,"Closing..."),this.closed=!0,this.reset(),this.disconnect(),this.socket.emit("end"),this.socket.removeAllListeners()}async toggleMicrophone(e){if(this.micTransceiver)try{await this.micTransceiver.sender.replaceTrack(e)}catch(i){if(!this.micTransceiver||!e)return;console.log(this.logPrefix,"Microphone error:",i)}}onWsOpen({id:e}){if(e===this.streamId)switch(console.log(this.logPrefix,"Connected"),this.options.mode){case"webrtc":case"webrtc/tcp":console.log(this.logPrefix,"Requesting WebRTC session..."),this.requestWebrtc();break;case"mse":console.log(this.logPrefix,"Requesting MSE session..."),this.requestMse();break;case"auto":console.log(this.logPrefix,"Requesting auto session..."),this.requestAuto();break;case"hls":console.log(this.logPrefix,"Requesting HLS session..."),this.requestHls();break;case"mp4":console.log(this.logPrefix,"Requesting MP4 session..."),this.requestMp4();break;case"mjpeg":console.log(this.logPrefix,"Requesting MJPEG session..."),this.requestMjpeg();break;default:console.error(this.logPrefix,"Unknown mode!"),this.dispatchEvent(new ErrorEvent("error",{message:"Unknown mode!"}))}}onWsClose({id:e}){e===this.streamId&&(this.closed||this.wsReconnectTimer===void 0||(clearTimeout(this.wsReconnectTimeout),this.wsReconnectTimeout=setTimeout(()=>{this.reconnect()},this.wsReconnectTimer)))}onWsMessage({id:e,data:i}){if(e===this.streamId&&i.type){switch(i.type){case"mse":this.onMseData(i);break;case"hls":this.onHlsData(i);break;case"webrtc/candidate":case"webrtc/answer":this.onWebrtcData(i);break;case"mse-binary":this.onMseBuffer(i);break;case"mjpeg-binary":this.onMjpegBuffer(i);break;case"mp4-binary":this.onMp4Buffer(i);break;case"stream-info":this.onStreamInfo(i);break;case"error":this.isAutoSwitching||this.dispatchEvent(new ErrorEvent("error",{error:i,message:i.value}))}["mse-binary","mjpeg-binary","mp4-binary"].includes(i.type)&&this.onFirstFrame()}}async requestWebrtc(e){e||this.reset(),e&&this.mediaSource||(this.webrtcConnectTimeout=setTimeout(()=>{console.log(this.logPrefix,"WebRTC connection timeout - switching to MSE"),this.pc&&this.pc.connectionState!=="connected"&&(this.pc.close(),this.pc=null,e||this.reconnect("mse"))},this.webrtcTimeoutTimer)),this.pc=new RTCPeerConnection({bundlePolicy:"max-bundle",iceServers:[{urls:"stun:stun.l.google.com:19302"}],sdpSemantics:"unified-plan"}),this.pc.onicecandidate=n=>{var o,a;if(console.log(this.logPrefix,"onicecandidate",n.candidate),this.options.mode==="webrtc/tcp"&&((o=n.candidate)==null?void 0:o.protocol)==="udp")return;const r=((a=n.candidate)==null?void 0:a.toJSON().candidate)??"";this.socket.emit("stream-payload",{id:this.streamId,data:{type:"webrtc/candidate",value:r}})},this.pc.onconnectionstatechange=async()=>{var n,r,o,a;if(console.log(this.logPrefix,"onconnectionstatechange:",(n=this.pc)==null?void 0:n.connectionState),((r=this.pc)==null?void 0:r.connectionState)==="connected"){clearTimeout(this.webrtcConnectTimeout);const c=new MediaStream(this.pc.getTransceivers().filter(u=>u.currentDirection==="recvonly").map(u=>u.receiver.track));this.isAutoSwitching?await this.handleAutoMode(c):(this.videoPlayer.srcObject=c,this.onFinishLoading(),this.onFirstFrameWebrtc(c),this.play())}else((o=this.pc)==null?void 0:o.connectionState)!=="failed"&&((a=this.pc)==null?void 0:a.connectionState)!=="disconnected"||(clearTimeout(this.webrtcConnectTimeout),clearTimeout(this.webrtcReconnectTimeout),this.webrtcReconnectTimeout=setTimeout(()=>{var c,u;((c=this.pc)==null?void 0:c.connectionState)!=="failed"&&((u=this.pc)==null?void 0:u.connectionState)!=="disconnected"||(this.isAutoSwitching&&this.mediaSource?this.pc&&(this.pc.close(),this.pc=null):this.options.mode==="webrtc"?(console.log(this.logPrefix,"WebRTC failed - switching to MSE"),this.reconnect("mse")):this.reconnect())},this.webrtcReconnectTimer))},this.pc.oniceconnectionstatechange=()=>{var n;console.log(this.logPrefix,"iceconnectionstatechange",(n=this.pc)==null?void 0:n.iceConnectionState)},this.pc.onicecandidateerror=n=>{console.log(this.logPrefix,"onicecandidateerror",n)},this.pc.onsignalingstatechange=()=>{var n;console.log(this.logPrefix,"onsignalingstatechange",(n=this.pc)==null?void 0:n.signalingState)},this.pc.onicegatheringstatechange=()=>{var n;console.log(this.logPrefix,"onicegatheringstatechange",(n=this.pc)==null?void 0:n.iceGatheringState)},this.pc.onnegotiationneeded=n=>{console.log(this.logPrefix,"onnegotiationneeded",n)},this.pc.addTransceiver("video",{direction:"recvonly"}),this.pc.addTransceiver("audio",{direction:"recvonly"}),this.micTransceiver=this.pc.addTransceiver("audio",{direction:"sendonly"});const i=await this.pc.createOffer();await this.pc.setLocalDescription(i),console.log(this.logPrefix,"Offer:",i.sdp),this.socket.emit("stream-payload",{id:this.streamId,data:{type:"webrtc/offer",value:i.sdp}})}async onWebrtcData(e){var i,n,r;try{switch(e.type){case"webrtc/candidate":if(console.log(this.logPrefix,"remote candidate:",e.value),this.options.mode==="webrtc/tcp"&&e.value.indexOf(" udp ")>0)return;await((i=this.pc)==null?void 0:i.addIceCandidate({candidate:e.value,sdpMid:"0"}));break;case"webrtc/answer":console.log(this.logPrefix,"Answer:",e.value),await((n=this.pc)==null?void 0:n.setRemoteDescription({type:"answer",sdp:e.value}));break;case"error":if(console.log(this.logPrefix,"WebRTC Error:",e.value),e.value.indexOf("webrtc/offer")<0)return;(r=this.pc)==null||r.close()}}catch(o){this.dispatchEvent(new ErrorEvent("error",{error:o,message:o.message}))}}requestMse(){if(this.reset(),"ManagedMediaSource"in window){console.log(this.logPrefix,"Using ManagedMediaSource");const e=window.ManagedMediaSource;this.mediaSource=new e,this.mediaSource.addEventListener("sourceopen",()=>{this.socket.emit("stream-payload",{id:this.streamId,data:{type:"mse",value:this.parseCodecs(e.isTypeSupported.bind(this))}})},{once:!0}),this.videoPlayer.disableRemotePlayback=!0,this.videoPlayer.srcObject=this.mediaSource}else console.log(this.logPrefix,"Using MediaSource"),this.mediaSource=new MediaSource,this.mediaSource.addEventListener("sourceopen",()=>{URL.revokeObjectURL(this.videoPlayer.src),this.socket.emit("stream-payload",{id:this.streamId,data:{type:"mse",value:this.parseCodecs(MediaSource.isTypeSupported.bind(this))}})},{once:!0}),this.videoPlayer.src=URL.createObjectURL(this.mediaSource),this.videoPlayer.srcObject=null;this.play(),this.mseCodecs=""}onMseData(e){this.mediaSource&&(this.setMode("mse"),this.mseCodecs=e.value,this.bufLen=0,this.buf=new Uint8Array(2097152),this.sourceBuffer=this.mediaSource.addSourceBuffer(e.value),this.sourceBuffer.mode="segments",this.sourceBuffer.addEventListener("updateend",()=>{var i,n,r,o,a;if(!((i=this.sourceBuffer)!=null&&i.updating))try{if(this.bufLen>0){const c=this.buf.slice(0,this.bufLen);this.bufLen=0,(n=this.sourceBuffer)==null||n.appendBuffer(c)}else if((o=(r=this.sourceBuffer)==null?void 0:r.buffered)!=null&&o.length){const c=this.sourceBuffer.buffered.end(this.sourceBuffer.buffered.length-1)-15,u=this.sourceBuffer.buffered.start(0);c>u&&(this.sourceBuffer.remove(u,c),(a=this.mediaSource)==null||a.setLiveSeekableRange(c,c+15))}}catch{}}),this.onFinishLoading())}async onMseBuffer(e){var i,n,r;if(((i=this.mediaSource)==null?void 0:i.readyState)!=="closed")if((n=this.sourceBuffer)!=null&&n.updating||this.bufLen>0){const o=new Uint8Array(e.value);this.buf.set(o,this.bufLen),this.bufLen+=o.byteLength}else try{(r=this.sourceBuffer)==null||r.appendBuffer(e.value)}catch{}else this.closed||this.isAutoSwitching||(this.closed=!0,this.dispatchEvent(new ErrorEvent("error",{message:"MediaSource closed"})),this.requestWebrtc())}requestAuto(){this.requestMse(),this.requestWebrtc(!0)}requestMjpeg(){this.reset(),this.socket.emit("stream-payload",{id:this.streamId,data:{type:"mjpeg"}})}onMjpegBuffer(e){this.setMode("mjpeg"),this.videoPlayer.controls=!1,this.videoPlayer.poster="data:image/jpeg;base64,"+this.btoaBinary(e.value),this.onFinishLoading()}requestMp4(){this.reset();const e=document.createElement("canvas");let i=null;this.videoPlayerMp4=document.createElement("video"),this.videoPlayerMp4.autoplay=!0,this.videoPlayerMp4.playsInline=!0,this.videoPlayerMp4.muted=!0,this.videoPlayerMp4.addEventListener("loadeddata",()=>{this.videoPlayerMp4&&(i||(e.width=this.videoPlayerMp4.videoWidth,e.height=this.videoPlayerMp4.videoHeight,i=e.getContext("2d")),i==null||i.drawImage(this.videoPlayerMp4,0,0,e.width,e.height),this.videoPlayer.controls=!1,this.videoPlayer.poster=e.toDataURL("image/jpeg"))});const n=this.codecList.filter(r=>this.media.includes(r.indexOf("vc1")>0?"video":"audio")).filter(r=>this.videoPlayer.canPlayType(`video/mp4; codecs="${r}"`)).join();console.log(this.logPrefix,"Playable codecs (MP4):",n),this.socket.emit("stream-payload",{id:this.streamId,data:{type:"mp4",value:n}})}onMp4Buffer(e){this.setMode("mp4"),this.videoPlayerMp4&&(this.videoPlayerMp4.src="data:video/mp4;base64,"+this.btoaBinary(e.value)),this.onFinishLoading()}requestHls(){this.reset();const e=this.parseCodecs(i=>this.videoPlayer.canPlayType(i));console.log(this.logPrefix,"Playable codecs (HLS):",e),this.socket.emit("stream-payload",{id:this.streamId,data:{type:"hls",value:e}})}onHlsData(e){this.setMode("hls");const i="http"+e.wsURL.substring(2,e.wsURL.indexOf("/ws"))+"/hls/",n=e.value.replace("hls/",i),r="data:application/vnd.apple.mpegurl;base64,"+btoa(n.toString());this.videoPlayer.src=r,this.onFinishLoading(),this.play()}async handleAutoMode(e){if(!this.isAutoSwitching)return;const i=e.getVideoTracks()[0],n=e.getAudioTracks()[0],r=this.evaluateStreamQuality(i,n),o=this.evaluateMSEQuality();console.log(this.logPrefix,"Stream quality comparison:",{rtcPriority:r,msePriority:o,hasVideo:!!i,hasAudio:!!n,mseCodecs:this.mseCodecs}),r>=o?((this._finishLoading||this._firstFrameReceived||this.options.mode!=="webrtc")&&this.dispatchEvent(new Event("onModeChange")),this.setMode("webrtc"),this.videoPlayer.srcObject=e,this.onFinishLoading(!0),this.onFirstFrameWebrtc(e),this.play(),this.disconnect(),this.mediaSource&&(this.mediaSource.readyState==="open"&&this.mediaSource.endOfStream(),this.mediaSource=null,this.sourceBuffer=null)):this.pc&&(this.pc.close(),this.pc=null),this.isAutoSwitching=!1}evaluateStreamQuality(e,i){let n=0;return e&&(n+=544),i&&(n+=258),n}evaluateMSEQuality(){let e=0;return this.mseCodecs.includes("hvc1.")&&(e+=560),this.mseCodecs.includes("avc1.")&&(e+=528),this.mseCodecs.includes("mp4a.")&&(e+=257),e}onStreamInfo(e){var r,o;const i=e.value,n=i==null?void 0:i.producers[0];n&&(this.hasBackchannel=((r=n.senders)==null?void 0:r.some(a=>a.codec.codec_type==="audio"))??!1,this.hasAudio=((o=n.receivers)==null?void 0:o.some(a=>a.codec.codec_type==="audio"))??!1)}async play(){try{await this.videoPlayer.play()}catch(e){if(!this.videoPlayer.muted)return this.videoPlayer.muted=!0,this.play();this.logger.warn(this.cameraDevice.name,e)}}onFirstFrameWebrtc(e){const i=this.isAutoSwitching,n=e.getVideoTracks()[0];if((!this._firstFrameReceived||i)&&n)if("requestVideoFrameCallback"in n)this.animationFrameId=n.requestVideoFrameCallback(()=>{this.onFirstFrame(i)});else{const r=()=>{this.videoPlayer.readyState>=2&&this.videoPlayer.videoWidth>0?this.onFirstFrame(i):this.animationFrameId=requestAnimationFrame(r)};this.animationFrameId=requestAnimationFrame(r)}}onFirstFrame(e){this._firstFrameReceived&&!e||(console.log(this.logPrefix,"First frame received"),this._firstFrameReceived=!0,this.dispatchEvent(new Event("onFirstFrame")))}onFinishLoading(e){this._finishLoading&&!e||(this._finishLoading=!0,this.dispatchEvent(new Event("onFinishLoading")))}setMode(e){this.options.mode!==e&&(console.log(this.logPrefix,`Mode changed: ${this.options.mode} -> ${e}`),this.options.mode=e)}createCodecsList(){const e=["avc1.640029","avc1.64002A","avc1.640033","hvc1.1.6.L153.B0","mp4a.40.2","mp4a.40.5","flac","opus"],i=typeof window>"u"?null:/Version\/(\d+).+Safari/.exec(navigator.userAgent);if(i!=null&&i[1]){const n=i[1]<"13"?"mp4a.40.2":i[1]<"14"?"flac":"opus";e.splice(e.indexOf(n))}this.codecList=e}parseCodecs(e){return this.codecList.filter(i=>this.media.includes(i.indexOf("vc1")>0?"video":"audio")).filter(i=>e(`video/mp4; codecs="${i}"`)).join()}btoaBinary(e){const i=new Uint8Array(e),n=i.byteLength;let r="";for(let o=0;o<n;o++)r+=String.fromCharCode(i[o]);return window.btoa(r)}}class xn extends Fl{constructor(e,i,n){super(e,n);V(this,"socketService");V(this,"socket");V(this,"pluginName","@camera.ui/client");V(this,"subject");V(this,"_started",!1);V(this,"cameraDelegate",new Hl(this.onRequest.bind(this)));V(this,"ptzDelegate",new Ul(this.onRequest.bind(this)));this.socketService=i;const{socket:r}=this.socketService.getSocket(this.id,!0);this.socket=r,this.socket.connect(),this.subject=`${this.pluginName}.camera.${this.id}`,this.listenToMessages()}get started(){return this._started}get sources(){return JSON.parse(JSON.stringify(this.cameraSubject.getValue().sources)).filter(e=>!e.internal).map(e=>({...e,probeStream:(i,n=!1)=>this.onRequest("cameraFn","probeStream",[e._id,i,n]),getInternalSource:i=>this.internalSources.find(n=>n._id===`${e._id}-${i}`)}))}get internalSources(){return JSON.parse(JSON.stringify(this.cameraSubject.getValue().sources)).filter(e=>e.internal).map(e=>({...e,probeStream:(i,n=!1)=>this.onRequest("cameraFn","probeStream",[e._id,i,n]),type:e.name.endsWith(" AAC")?"aac":e.name.endsWith(" OPUS")?"opus":"pcma"}))}async start(){this._started||(this._started=!0,await this.refreshStates(),this.socket.emit("joinRoomStates",this.id))}stop(){this._started=!1,this.socket.emit("leaveRoomStates",this.id)}close(){this.cleanup()}connect(){return this.onRequest("cameraFn","connect")}disconnect(){return this.onRequest("cameraFn","disconnect")}createWebRTCSession(e){return new Zl(this,this.socketService,this.logger,e)}async refreshStates(){const e=await this.onRequest("cameraFn","refreshStates");super.updateCamera(e.camera),super.updateCameraState(e.cameraState);for(const[i,n]of Object.entries(e.states))super.updateStateInternal(i,n,!0)}async cleanup(){this.stop(),this.removeAllListeners(),this.unsubscribe(),this.socket.removeAllListeners()}listenToMessages(){this.socket.emit("joinRoomDevice",this.id),this.socket.on("updateState",e=>{e.cameraId===this.id&&super.updateStateInternal(e.stateName,e.data.newEvent,!0)}),this.socket.on("updateDevice",e=>{if(e.cameraId===this.id)switch(e.type){case"removed":this.cleanup();break;case"updated":super.updateCamera(e.data);break;case"cameraState":super.updateCameraState(e.data)}})}onRequest(e,i,n=[]){const r={requestId:js(),targetId:this.subject,targetName:this.name,pluginId:this.pluginName,cameraId:this.id,type:"request",proxy:"camera",client:e,fn:i,args:n,timestamp:Date.now(),timeout:5e3};return new Promise((o,a)=>{this.socket.emit("request",r,c=>{c.error?a(c.error):o(c.response)})})}}class Wl{constructor(t,e){V(this,"socketService");V(this,"socket");V(this,"logger");V(this,"pluginName","@camera.ui/client");V(this,"subject");this.socketService=t,this.socket=t.socket,this.logger=e,this.subject=`${this.pluginName}.coreManager`}async getFFmpegPath(){return this.onRequest("getFFmpegPath")}async getHwaccelInfo(t){return this.onRequest("getHwaccelInfo",[t])}async getServerAddresses(){return this.onRequest("getServerAddresses")}async getIceServers(){return this.onRequest("getIceServers")}onRequest(t,e){const i={requestId:js(),targetId:this.subject,targetName:this.pluginName,pluginId:this.pluginName,type:"request",proxy:"core",client:"coreFn",fn:t,args:e??[],timestamp:Date.now(),timeout:5e3};return new Promise((n,r)=>{this.socket.emit("request",i,o=>{o.error?r(o.error):n(o.response)})})}}class Gl{constructor(t,e){V(this,"socketService");V(this,"socket");V(this,"logger");V(this,"pluginName","@camera.ui/client");V(this,"subject");this.socketService=t,this.socket=t.socket,this.logger=e,this.subject=`${this.pluginName}.deviceManager`}async getCameraById(t){const e=await this.onRequest("getCameraById",[t]);if(e){const i=new xn(e,this.socketService,this.logger);return await i.refreshStates(),i}}async getCameraByName(t){const e=await this.onRequest("getCameraByName",[t]);if(e){const i=new xn(e,this.socketService,this.logger);return await i.refreshStates(),i}}onRequest(t,e){const i={requestId:js(),targetId:this.subject,targetName:this.pluginName,pluginId:this.pluginName,type:"request",proxy:"device",client:"deviceFn",fn:t,args:e??[],timestamp:Date.now(),timeout:5e3};return new Promise((n,r)=>{this.socket.emit("request",i,o=>{o.error?r(o.error):n(o.response)})})}}const nt=Object.create(null);nt.open="0",nt.close="1",nt.ping="2",nt.pong="3",nt.message="4",nt.upgrade="5",nt.noop="6";const gs=Object.create(null);Object.keys(nt).forEach(s=>{gs[nt[s]]=s});const wi={type:"error",data:"parser error"},Sr=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",xr=typeof ArrayBuffer=="function",kr=s=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(s):s&&s.buffer instanceof ArrayBuffer,Ii=({type:s,data:t},e,i)=>Sr&&t instanceof Blob?e?i(t):kn(t,i):xr&&(t instanceof ArrayBuffer||kr(t))?e?i(t):kn(new Blob([t]),i):i(nt[s]+(t||"")),kn=(s,t)=>{const e=new FileReader;return e.onload=function(){const i=e.result.split(",")[1];t("b"+(i||""))},e.readAsDataURL(s)};function Cn(s){return s instanceof Uint8Array?s:s instanceof ArrayBuffer?new Uint8Array(s):new Uint8Array(s.buffer,s.byteOffset,s.byteLength)}let li;const Dt=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let s=0;s<64;s++)Dt["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(s)]=s;const Kl=typeof ArrayBuffer=="function",Oi=(s,t)=>{if(typeof s!="string")return{type:"message",data:Cr(s,t)};const e=s.charAt(0);return e==="b"?{type:"message",data:Ql(s.substring(1),t)}:gs[e]?s.length>1?{type:gs[e],data:s.substring(1)}:{type:gs[e]}:wi},Ql=(s,t)=>{if(Kl){const e=(i=>{let n,r,o,a,c,u=.75*i.length,d=i.length,m=0;i[i.length-1]==="="&&(u--,i[i.length-2]==="="&&u--);const y=new ArrayBuffer(u),w=new Uint8Array(y);for(n=0;n<d;n+=4)r=Dt[i.charCodeAt(n)],o=Dt[i.charCodeAt(n+1)],a=Dt[i.charCodeAt(n+2)],c=Dt[i.charCodeAt(n+3)],w[m++]=r<<2|o>>4,w[m++]=(15&o)<<4|a>>2,w[m++]=(3&a)<<6|63&c;return y})(s);return Cr(e,t)}return{base64:!0,data:s}},Cr=(s,t)=>t==="blob"?s instanceof Blob?s:new Blob([s]):s instanceof ArrayBuffer?s:s.buffer,En="";let ci;function ps(s){return s.reduce((t,e)=>t+e.length,0)}function fs(s,t){if(s[0].length===t)return s.shift();const e=new Uint8Array(t);let i=0;for(let n=0;n<t;n++)e[n]=s[0][i++],i===s[0].length&&(s.shift(),i=0);return s.length&&i<s[0].length&&(s[0]=s[0].slice(i)),e}function Se(s){if(s)return function(t){for(var e in Se.prototype)t[e]=Se.prototype[e];return t}(s)}Se.prototype.on=Se.prototype.addEventListener=function(s,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+s]=this._callbacks["$"+s]||[]).push(t),this},Se.prototype.once=function(s,t){function e(){this.off(s,e),t.apply(this,arguments)}return e.fn=t,this.on(s,e),this},Se.prototype.off=Se.prototype.removeListener=Se.prototype.removeAllListeners=Se.prototype.removeEventListener=function(s,t){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var e,i=this._callbacks["$"+s];if(!i)return this;if(arguments.length==1)return delete this._callbacks["$"+s],this;for(var n=0;n<i.length;n++)if((e=i[n])===t||e.fn===t){i.splice(n,1);break}return i.length===0&&delete this._callbacks["$"+s],this},Se.prototype.emit=function(s){this._callbacks=this._callbacks||{};for(var t=new Array(arguments.length-1),e=this._callbacks["$"+s],i=1;i<arguments.length;i++)t[i-1]=arguments[i];if(e){i=0;for(var n=(e=e.slice(0)).length;i<n;++i)e[i].apply(this,t)}return this},Se.prototype.emitReserved=Se.prototype.emit,Se.prototype.listeners=function(s){return this._callbacks=this._callbacks||{},this._callbacks["$"+s]||[]},Se.prototype.hasListeners=function(s){return!!this.listeners(s).length};const Ns=typeof Promise=="function"&&typeof Promise.resolve=="function"?s=>Promise.resolve().then(s):(s,t)=>t(s,0),Ge=typeof self<"u"?self:typeof window<"u"?window:Function("return this")();function Er(s,...t){return t.reduce((e,i)=>(s.hasOwnProperty(i)&&(e[i]=s[i]),e),{})}const Yl=Ge.setTimeout,Xl=Ge.clearTimeout;function Ds(s,t){t.useNativeTimers?(s.setTimeoutFn=Yl.bind(Ge),s.clearTimeoutFn=Xl.bind(Ge)):(s.setTimeoutFn=Ge.setTimeout.bind(Ge),s.clearTimeoutFn=Ge.clearTimeout.bind(Ge))}function Mr(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}class Jl extends Error{constructor(t,e,i){super(t),this.description=e,this.context=i,this.type="TransportError"}}class $i extends Se{constructor(t){super(),this.writable=!1,Ds(this,t),this.opts=t,this.query=t.query,this.socket=t.socket,this.supportsBinary=!t.forceBase64}onError(t,e,i){return super.emitReserved("error",new Jl(t,e,i)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return this.readyState!=="opening"&&this.readyState!=="open"||(this.doClose(),this.onClose()),this}send(t){this.readyState==="open"&&this.write(t)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(t){const e=Oi(t,this.socket.binaryType);this.onPacket(e)}onPacket(t){super.emitReserved("packet",t)}onClose(t){this.readyState="closed",super.emitReserved("close",t)}pause(t){}createUri(t,e={}){return t+"://"+this._hostname()+this._port()+this.opts.path+this._query(e)}_hostname(){const t=this.opts.hostname;return t.indexOf(":")===-1?t:"["+t+"]"}_port(){return this.opts.port&&(this.opts.secure&&+(this.opts.port!==443)||!this.opts.secure&&Number(this.opts.port)!==80)?":"+this.opts.port:""}_query(t){const e=function(i){let n="";for(let r in i)i.hasOwnProperty(r)&&(n.length&&(n+="&"),n+=encodeURIComponent(r)+"="+encodeURIComponent(i[r]));return n}(t);return e.length?"?"+e:""}}class ec extends $i{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(t){this.readyState="pausing";const e=()=>{this.readyState="paused",t()};if(this._polling||!this.writable){let i=0;this._polling&&(i++,this.once("pollComplete",function(){--i||e()})),this.writable||(i++,this.once("drain",function(){--i||e()}))}else e()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(t){((e,i)=>{const n=e.split(En),r=[];for(let o=0;o<n.length;o++){const a=Oi(n[o],i);if(r.push(a),a.type==="error")break}return r})(t,this.socket.binaryType).forEach(e=>{if(this.readyState==="opening"&&e.type==="open"&&this.onOpen(),e.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(e)}),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const t=()=>{this.write([{type:"close"}])};this.readyState==="open"?t():this.once("open",t)}write(t){this.writable=!1,((e,i)=>{const n=e.length,r=new Array(n);let o=0;e.forEach((a,c)=>{Ii(a,!1,u=>{r[c]=u,++o===n&&i(r.join(En))})})})(t,e=>{this.doWrite(e,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const t=this.opts.secure?"https":"http",e=this.query||{};return this.opts.timestampRequests!==!1&&(e[this.opts.timestampParam]=Mr()),this.supportsBinary||e.sid||(e.b64=1),this.createUri(t,e)}}let Pr=!1;try{Pr=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const tc=Pr;function sc(){}class ic extends ec{constructor(t){if(super(t),typeof location<"u"){const e=location.protocol==="https:";let i=location.port;i||(i=e?"443":"80"),this.xd=typeof location<"u"&&t.hostname!==location.hostname||i!==t.port}}doWrite(t,e){const i=this.request({method:"POST",data:t});i.on("success",e),i.on("error",(n,r)=>{this.onError("xhr post error",n,r)})}doPoll(){const t=this.request();t.on("data",this.onData.bind(this)),t.on("error",(e,i)=>{this.onError("xhr poll error",e,i)}),this.pollXhr=t}}class rt extends Se{constructor(t,e,i){super(),this.createRequest=t,Ds(this,i),this._opts=i,this._method=i.method||"GET",this._uri=e,this._data=i.data!==void 0?i.data:null,this._create()}_create(){var t;const e=Er(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");e.xdomain=!!this._opts.xd;const i=this._xhr=this.createRequest(e);try{i.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){i.setDisableHeaderCheck&&i.setDisableHeaderCheck(!0);for(let n in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(n)&&i.setRequestHeader(n,this._opts.extraHeaders[n])}}catch{}if(this._method==="POST")try{i.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{i.setRequestHeader("Accept","*/*")}catch{}(t=this._opts.cookieJar)===null||t===void 0||t.addCookies(i),"withCredentials"in i&&(i.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(i.timeout=this._opts.requestTimeout),i.onreadystatechange=()=>{var n;i.readyState===3&&((n=this._opts.cookieJar)===null||n===void 0||n.parseCookies(i.getResponseHeader("set-cookie"))),i.readyState===4&&(i.status===200||i.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof i.status=="number"?i.status:0)},0))},i.send(this._data)}catch(n){return void this.setTimeoutFn(()=>{this._onError(n)},0)}typeof document<"u"&&(this._index=rt.requestsCount++,rt.requests[this._index]=this)}_onError(t){this.emitReserved("error",t,this._xhr),this._cleanup(!0)}_cleanup(t){if(this._xhr!==void 0&&this._xhr!==null){if(this._xhr.onreadystatechange=sc,t)try{this._xhr.abort()}catch{}typeof document<"u"&&delete rt.requests[this._index],this._xhr=null}}_onLoad(){const t=this._xhr.responseText;t!==null&&(this.emitReserved("data",t),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}}function Mn(){for(let s in rt.requests)rt.requests.hasOwnProperty(s)&&rt.requests[s].abort()}rt.requestsCount=0,rt.requests={},typeof document<"u"&&(typeof attachEvent=="function"?attachEvent("onunload",Mn):typeof addEventListener=="function"&&addEventListener("onpagehide"in Ge?"pagehide":"unload",Mn,!1));const nc=function(){const s=Ar({xdomain:!1});return s&&s.responseType!==null}();function Ar(s){const t=s.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!t||tc))return new XMLHttpRequest}catch{}if(!t)try{return new Ge[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const Lr=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class rc extends $i{get name(){return"websocket"}doOpen(){const t=this.uri(),e=this.opts.protocols,i=Lr?{}:Er(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(i.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(t,e,i)}catch(n){return this.emitReserved("error",n)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=t=>this.onClose({description:"websocket connection closed",context:t}),this.ws.onmessage=t=>this.onData(t.data),this.ws.onerror=t=>this.onError("websocket error",t)}write(t){this.writable=!1;for(let e=0;e<t.length;e++){const i=t[e],n=e===t.length-1;Ii(i,this.supportsBinary,r=>{try{this.doWrite(i,r)}catch{}n&&Ns(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){this.ws!==void 0&&(this.ws.close(),this.ws=null)}uri(){const t=this.opts.secure?"wss":"ws",e=this.query||{};return this.opts.timestampRequests&&(e[this.opts.timestampParam]=Mr()),this.supportsBinary||(e.b64=1),this.createUri(t,e)}}const ui=Ge.WebSocket||Ge.MozWebSocket,oc={websocket:class extends rc{createSocket(s,t,e){return Lr?new ui(s,t,e):t?new ui(s,t):new ui(s)}doWrite(s,t){this.ws.send(t)}},webtransport:class extends $i{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(s){return this.emitReserved("error",s)}this._transport.closed.then(()=>{this.onClose()}).catch(s=>{this.onError("webtransport error",s)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(s=>{const t=function(o,a){ci||(ci=new TextDecoder);const c=[];let u=0,d=-1,m=!1;return new TransformStream({transform(y,w){for(c.push(y);;){if(u===0){if(ps(c)<1)break;const _=fs(c,1);m=!(128&~_[0]),d=127&_[0],u=d<126?3:d===126?1:2}else if(u===1){if(ps(c)<2)break;const _=fs(c,2);d=new DataView(_.buffer,_.byteOffset,_.length).getUint16(0),u=3}else if(u===2){if(ps(c)<8)break;const _=fs(c,8),R=new DataView(_.buffer,_.byteOffset,_.length),$=R.getUint32(0);if($>Math.pow(2,21)-1){w.enqueue(wi);break}d=$*Math.pow(2,32)+R.getUint32(4),u=3}else{if(ps(c)<d)break;const _=fs(c,d);w.enqueue(Oi(m?_:ci.decode(_),a)),u=0}if(d===0||d>o){w.enqueue(wi);break}}}})}(Number.MAX_SAFE_INTEGER,this.socket.binaryType),e=s.readable.pipeThrough(t).getReader(),i=new TransformStream({transform(o,a){(function(c,u){Sr&&c.data instanceof Blob?c.data.arrayBuffer().then(Cn).then(u):xr&&(c.data instanceof ArrayBuffer||kr(c.data))?u(Cn(c.data)):Ii(c,!1,d=>{li||(li=new TextEncoder),u(li.encode(d))})})(o,c=>{const u=c.length;let d;if(u<126)d=new Uint8Array(1),new DataView(d.buffer).setUint8(0,u);else if(u<65536){d=new Uint8Array(3);const m=new DataView(d.buffer);m.setUint8(0,126),m.setUint16(1,u)}else{d=new Uint8Array(9);const m=new DataView(d.buffer);m.setUint8(0,127),m.setBigUint64(1,BigInt(u))}o.data&&typeof o.data!="string"&&(d[0]|=128),a.enqueue(d),a.enqueue(c)})}});i.readable.pipeTo(s.writable),this._writer=i.writable.getWriter();const n=()=>{e.read().then(({done:o,value:a})=>{o||(this.onPacket(a),n())}).catch(o=>{})};n();const r={type:"open"};this.query.sid&&(r.data=`{"sid":"${this.query.sid}"}`),this._writer.write(r).then(()=>this.onOpen())})})}write(s){this.writable=!1;for(let t=0;t<s.length;t++){const e=s[t],i=t===s.length-1;this._writer.write(e).then(()=>{i&&Ns(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var s;(s=this._transport)===null||s===void 0||s.close()}},polling:class extends ic{constructor(s){super(s);const t=s&&s.forceBase64;this.supportsBinary=nc&&!t}request(s={}){return Object.assign(s,{xd:this.xd},this.opts),new rt(Ar,this.uri(),s)}}},ac=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,lc=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function Si(s){if(s.length>8e3)throw"URI too long";const t=s,e=s.indexOf("["),i=s.indexOf("]");e!=-1&&i!=-1&&(s=s.substring(0,e)+s.substring(e,i).replace(/:/g,";")+s.substring(i,s.length));let n=ac.exec(s||""),r={},o=14;for(;o--;)r[lc[o]]=n[o]||"";return e!=-1&&i!=-1&&(r.source=t,r.host=r.host.substring(1,r.host.length-1).replace(/;/g,":"),r.authority=r.authority.replace("[","").replace("]","").replace(/;/g,":"),r.ipv6uri=!0),r.pathNames=function(a,c){const u=c.replace(/\/{2,9}/g,"/").split("/");return c.slice(0,1)!="/"&&c.length!==0||u.splice(0,1),c.slice(-1)=="/"&&u.splice(u.length-1,1),u}(0,r.path),r.queryKey=function(a,c){const u={};return c.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(d,m,y){m&&(u[m]=y)}),u}(0,r.query),r}const xi=typeof addEventListener=="function"&&typeof removeEventListener=="function",bs=[];xi&&addEventListener("offline",()=>{bs.forEach(s=>s())},!1);class vt extends Se{constructor(t,e){if(super(),this.binaryType="arraybuffer",this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,t&&typeof t=="object"&&(e=t,t=null),t){const i=Si(t);e.hostname=i.host,e.secure=i.protocol==="https"||i.protocol==="wss",e.port=i.port,i.query&&(e.query=i.query)}else e.host&&(e.hostname=Si(e.host).host);Ds(this,e),this.secure=e.secure!=null?e.secure:typeof location<"u"&&location.protocol==="https:",e.hostname&&!e.port&&(e.port=this.secure?"443":"80"),this.hostname=e.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=e.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},e.transports.forEach(i=>{const n=i.prototype.name;this.transports.push(n),this._transportsByName[n]=i}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},e),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=function(i){let n={},r=i.split("&");for(let o=0,a=r.length;o<a;o++){let c=r[o].split("=");n[decodeURIComponent(c[0])]=decodeURIComponent(c[1])}return n}(this.opts.query)),xi&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},bs.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(t){const e=Object.assign({},this.opts.query);e.EIO=4,e.transport=t,this.id&&(e.sid=this.id);const i=Object.assign({},this.opts,{query:e,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[t]);return new this._transportsByName[t](i)}_open(){if(this.transports.length===0)return void this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);const t=this.opts.rememberUpgrade&&vt.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const e=this.createTransport(t);e.open(),this.setTransport(e)}setTransport(t){this.transport&&this.transport.removeAllListeners(),this.transport=t,t.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",e=>this._onClose("transport close",e))}onOpen(){this.readyState="open",vt.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(t){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",t),this.emitReserved("heartbeat"),t.type){case"open":this.onHandshake(JSON.parse(t.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const e=new Error("server error");e.code=t.data,this._onError(e);break;case"message":this.emitReserved("data",t.data),this.emitReserved("message",t.data)}}onHandshake(t){this.emitReserved("handshake",t),this.id=t.sid,this.transport.query.sid=t.sid,this._pingInterval=t.pingInterval,this._pingTimeout=t.pingTimeout,this._maxPayload=t.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const t=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+t,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},t),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const t=this._getWritablePackets();this.transport.send(t),this._prevBufferLen=t.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let t=1;for(let i=0;i<this.writeBuffer.length;i++){const n=this.writeBuffer[i].data;if(n&&(t+=typeof(e=n)=="string"?function(r){let o=0,a=0;for(let c=0,u=r.length;c<u;c++)o=r.charCodeAt(c),o<128?a+=1:o<2048?a+=2:o<55296||o>=57344?a+=3:(c++,a+=4);return a}(e):Math.ceil(1.33*(e.byteLength||e.size))),i>0&&t>this._maxPayload)return this.writeBuffer.slice(0,i);t+=2}var e;return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const t=Date.now()>this._pingTimeoutTime;return t&&(this._pingTimeoutTime=0,Ns(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),t}write(t,e,i){return this._sendPacket("message",t,e,i),this}send(t,e,i){return this._sendPacket("message",t,e,i),this}_sendPacket(t,e,i,n){if(typeof e=="function"&&(n=e,e=void 0),typeof i=="function"&&(n=i,i=null),this.readyState==="closing"||this.readyState==="closed")return;(i=i||{}).compress=i.compress!==!1;const r={type:t,data:e,options:i};this.emitReserved("packetCreate",r),this.writeBuffer.push(r),n&&this.once("flush",n),this.flush()}close(){const t=()=>{this._onClose("forced close"),this.transport.close()},e=()=>{this.off("upgrade",e),this.off("upgradeError",e),t()},i=()=>{this.once("upgrade",e),this.once("upgradeError",e)};return this.readyState!=="opening"&&this.readyState!=="open"||(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?i():t()}):this.upgrading?i():t()),this}_onError(t){if(vt.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",t),this._onClose("transport error",t)}_onClose(t,e){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),xi&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const i=bs.indexOf(this._offlineEventListener);i!==-1&&bs.splice(i,1)}this.readyState="closed",this.id=null,this.emitReserved("close",t,e),this.writeBuffer=[],this._prevBufferLen=0}}}vt.protocol=4;class cc extends vt{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let t=0;t<this._upgrades.length;t++)this._probe(this._upgrades[t])}_probe(t){let e=this.createTransport(t),i=!1;vt.priorWebsocketSuccess=!1;const n=()=>{i||(e.send([{type:"ping",data:"probe"}]),e.once("packet",m=>{if(!i)if(m.type==="pong"&&m.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",e),!e)return;vt.priorWebsocketSuccess=e.name==="websocket",this.transport.pause(()=>{i||this.readyState!=="closed"&&(d(),this.setTransport(e),e.send([{type:"upgrade"}]),this.emitReserved("upgrade",e),e=null,this.upgrading=!1,this.flush())})}else{const y=new Error("probe error");y.transport=e.name,this.emitReserved("upgradeError",y)}}))};function r(){i||(i=!0,d(),e.close(),e=null)}const o=m=>{const y=new Error("probe error: "+m);y.transport=e.name,r(),this.emitReserved("upgradeError",y)};function a(){o("transport closed")}function c(){o("socket closed")}function u(m){e&&m.name!==e.name&&r()}const d=()=>{e.removeListener("open",n),e.removeListener("error",o),e.removeListener("close",a),this.off("close",c),this.off("upgrading",u)};e.once("open",n),e.once("error",o),e.once("close",a),this.once("close",c),this.once("upgrading",u),this._upgrades.indexOf("webtransport")!==-1&&t!=="webtransport"?this.setTimeoutFn(()=>{i||e.open()},200):e.open()}onHandshake(t){this._upgrades=this._filterUpgrades(t.upgrades),super.onHandshake(t)}_filterUpgrades(t){const e=[];for(let i=0;i<t.length;i++)~this.transports.indexOf(t[i])&&e.push(t[i]);return e}}class uc extends cc{constructor(t,e={}){const i=typeof t=="object"?t:e;(!i.transports||i.transports&&typeof i.transports[0]=="string")&&(i.transports=(i.transports||["polling","websocket","webtransport"]).map(n=>oc[n]).filter(n=>!!n)),super(t,i)}}const hc=typeof ArrayBuffer=="function",dc=s=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(s):s.buffer instanceof ArrayBuffer,Tr=Object.prototype.toString,pc=typeof Blob=="function"||typeof Blob<"u"&&Tr.call(Blob)==="[object BlobConstructor]",fc=typeof File=="function"||typeof File<"u"&&Tr.call(File)==="[object FileConstructor]";function ji(s){return hc&&(s instanceof ArrayBuffer||dc(s))||pc&&s instanceof Blob||fc&&s instanceof File}function vs(s,t){if(!s||typeof s!="object")return!1;if(Array.isArray(s)){for(let e=0,i=s.length;e<i;e++)if(vs(s[e]))return!0;return!1}if(ji(s))return!0;if(s.toJSON&&typeof s.toJSON=="function"&&arguments.length===1)return vs(s.toJSON(),!0);for(const e in s)if(Object.prototype.hasOwnProperty.call(s,e)&&vs(s[e]))return!0;return!1}function mc(s){const t=[],e=s.data,i=s;return i.data=ki(e,t),i.attachments=t.length,{packet:i,buffers:t}}function ki(s,t){if(!s)return s;if(ji(s)){const e={_placeholder:!0,num:t.length};return t.push(s),e}if(Array.isArray(s)){const e=new Array(s.length);for(let i=0;i<s.length;i++)e[i]=ki(s[i],t);return e}if(typeof s=="object"&&!(s instanceof Date)){const e={};for(const i in s)Object.prototype.hasOwnProperty.call(s,i)&&(e[i]=ki(s[i],t));return e}return s}function gc(s,t){return s.data=Ci(s.data,t),delete s.attachments,s}function Ci(s,t){if(!s)return s;if(s&&s._placeholder===!0){if(typeof s.num=="number"&&s.num>=0&&s.num<t.length)return t[s.num];throw new Error("illegal attachments")}if(Array.isArray(s))for(let e=0;e<s.length;e++)s[e]=Ci(s[e],t);else if(typeof s=="object")for(const e in s)Object.prototype.hasOwnProperty.call(s,e)&&(s[e]=Ci(s[e],t));return s}const bc=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],vc=5;var ie;(function(s){s[s.CONNECT=0]="CONNECT",s[s.DISCONNECT=1]="DISCONNECT",s[s.EVENT=2]="EVENT",s[s.ACK=3]="ACK",s[s.CONNECT_ERROR=4]="CONNECT_ERROR",s[s.BINARY_EVENT=5]="BINARY_EVENT",s[s.BINARY_ACK=6]="BINARY_ACK"})(ie||(ie={}));class yc{constructor(t){this.replacer=t}encode(t){return t.type!==ie.EVENT&&t.type!==ie.ACK||!vs(t)?[this.encodeAsString(t)]:this.encodeAsBinary({type:t.type===ie.EVENT?ie.BINARY_EVENT:ie.BINARY_ACK,nsp:t.nsp,data:t.data,id:t.id})}encodeAsString(t){let e=""+t.type;return t.type!==ie.BINARY_EVENT&&t.type!==ie.BINARY_ACK||(e+=t.attachments+"-"),t.nsp&&t.nsp!=="/"&&(e+=t.nsp+","),t.id!=null&&(e+=t.id),t.data!=null&&(e+=JSON.stringify(t.data,this.replacer)),e}encodeAsBinary(t){const e=mc(t),i=this.encodeAsString(e.packet),n=e.buffers;return n.unshift(i),n}}function Pn(s){return Object.prototype.toString.call(s)==="[object Object]"}class Ni extends Se{constructor(t){super(),this.reviver=t}add(t){let e;if(typeof t=="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");e=this.decodeString(t);const i=e.type===ie.BINARY_EVENT;i||e.type===ie.BINARY_ACK?(e.type=i?ie.EVENT:ie.ACK,this.reconstructor=new _c(e),e.attachments===0&&super.emitReserved("decoded",e)):super.emitReserved("decoded",e)}else{if(!ji(t)&&!t.base64)throw new Error("Unknown type: "+t);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");e=this.reconstructor.takeBinaryData(t),e&&(this.reconstructor=null,super.emitReserved("decoded",e))}}decodeString(t){let e=0;const i={type:Number(t.charAt(0))};if(ie[i.type]===void 0)throw new Error("unknown packet type "+i.type);if(i.type===ie.BINARY_EVENT||i.type===ie.BINARY_ACK){const r=e+1;for(;t.charAt(++e)!=="-"&&e!=t.length;);const o=t.substring(r,e);if(o!=Number(o)||t.charAt(e)!=="-")throw new Error("Illegal attachments");i.attachments=Number(o)}if(t.charAt(e+1)==="/"){const r=e+1;for(;++e&&t.charAt(e)!==","&&e!==t.length;);i.nsp=t.substring(r,e)}else i.nsp="/";const n=t.charAt(e+1);if(n!==""&&Number(n)==n){const r=e+1;for(;++e;){const o=t.charAt(e);if(o==null||Number(o)!=o){--e;break}if(e===t.length)break}i.id=Number(t.substring(r,e+1))}if(t.charAt(++e)){const r=this.tryParse(t.substr(e));if(!Ni.isPayloadValid(i.type,r))throw new Error("invalid payload");i.data=r}return i}tryParse(t){try{return JSON.parse(t,this.reviver)}catch{return!1}}static isPayloadValid(t,e){switch(t){case ie.CONNECT:return Pn(e);case ie.DISCONNECT:return e===void 0;case ie.CONNECT_ERROR:return typeof e=="string"||Pn(e);case ie.EVENT:case ie.BINARY_EVENT:return Array.isArray(e)&&(typeof e[0]=="number"||typeof e[0]=="string"&&bc.indexOf(e[0])===-1);case ie.ACK:case ie.BINARY_ACK:return Array.isArray(e)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class _c{constructor(t){this.packet=t,this.buffers=[],this.reconPack=t}takeBinaryData(t){if(this.buffers.push(t),this.buffers.length===this.reconPack.attachments){const e=gc(this.reconPack,this.buffers);return this.finishedReconstruction(),e}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}function et(s,t,e){return s.on(t,e),function(){s.off(t,e)}}const wc=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class Br extends Se{constructor(t,e,i){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=t,this.nsp=e,i&&i.auth&&(this.auth=i.auth),this._opts=Object.assign({},i),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const t=this.io;this.subs=[et(t,"open",this.onopen.bind(this)),et(t,"packet",this.onpacket.bind(this)),et(t,"error",this.onerror.bind(this)),et(t,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected||(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen()),this}open(){return this.connect()}send(...t){return t.unshift("message"),this.emit.apply(this,t),this}emit(t,...e){var i,n,r;if(wc.hasOwnProperty(t))throw new Error('"'+t.toString()+'" is a reserved event name');if(e.unshift(t),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(e),this;const o={type:ie.EVENT,data:e,options:{}};if(o.options.compress=this.flags.compress!==!1,typeof e[e.length-1]=="function"){const u=this.ids++,d=e.pop();this._registerAckCallback(u,d),o.id=u}const a=(n=(i=this.io.engine)===null||i===void 0?void 0:i.transport)===null||n===void 0?void 0:n.writable,c=this.connected&&!(!((r=this.io.engine)===null||r===void 0)&&r._hasPingExpired());return this.flags.volatile&&!a||(c?(this.notifyOutgoingListeners(o),this.packet(o)):this.sendBuffer.push(o)),this.flags={},this}_registerAckCallback(t,e){var i;const n=(i=this.flags.timeout)!==null&&i!==void 0?i:this._opts.ackTimeout;if(n===void 0)return void(this.acks[t]=e);const r=this.io.setTimeoutFn(()=>{delete this.acks[t];for(let a=0;a<this.sendBuffer.length;a++)this.sendBuffer[a].id===t&&this.sendBuffer.splice(a,1);e.call(this,new Error("operation has timed out"))},n),o=(...a)=>{this.io.clearTimeoutFn(r),e.apply(this,a)};o.withError=!0,this.acks[t]=o}emitWithAck(t,...e){return new Promise((i,n)=>{const r=(o,a)=>o?n(o):i(a);r.withError=!0,e.push(r),this.emit(t,...e)})}_addToQueue(t){let e;typeof t[t.length-1]=="function"&&(e=t.pop());const i={id:this._queueSeq++,tryCount:0,pending:!1,args:t,flags:Object.assign({fromQueue:!0},this.flags)};t.push((n,...r)=>{if(i===this._queue[0])return n!==null?i.tryCount>this._opts.retries&&(this._queue.shift(),e&&e(n)):(this._queue.shift(),e&&e(null,...r)),i.pending=!1,this._drainQueue()}),this._queue.push(i),this._drainQueue()}_drainQueue(t=!1){if(!this.connected||this._queue.length===0)return;const e=this._queue[0];e.pending&&!t||(e.pending=!0,e.tryCount++,this.flags=e.flags,this.emit.apply(this,e.args))}packet(t){t.nsp=this.nsp,this.io._packet(t)}onopen(){typeof this.auth=="function"?this.auth(t=>{this._sendConnectPacket(t)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(t){this.packet({type:ie.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},t):t})}onerror(t){this.connected||this.emitReserved("connect_error",t)}onclose(t,e){this.connected=!1,delete this.id,this.emitReserved("disconnect",t,e),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(t=>{if(!this.sendBuffer.some(e=>String(e.id)===t)){const e=this.acks[t];delete this.acks[t],e.withError&&e.call(this,new Error("socket has been disconnected"))}})}onpacket(t){if(t.nsp===this.nsp)switch(t.type){case ie.CONNECT:t.data&&t.data.sid?this.onconnect(t.data.sid,t.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case ie.EVENT:case ie.BINARY_EVENT:this.onevent(t);break;case ie.ACK:case ie.BINARY_ACK:this.onack(t);break;case ie.DISCONNECT:this.ondisconnect();break;case ie.CONNECT_ERROR:this.destroy();const e=new Error(t.data.message);e.data=t.data.data,this.emitReserved("connect_error",e)}}onevent(t){const e=t.data||[];t.id!=null&&e.push(this.ack(t.id)),this.connected?this.emitEvent(e):this.receiveBuffer.push(Object.freeze(e))}emitEvent(t){if(this._anyListeners&&this._anyListeners.length){const e=this._anyListeners.slice();for(const i of e)i.apply(this,t)}super.emit.apply(this,t),this._pid&&t.length&&typeof t[t.length-1]=="string"&&(this._lastOffset=t[t.length-1])}ack(t){const e=this;let i=!1;return function(...n){i||(i=!0,e.packet({type:ie.ACK,id:t,data:n}))}}onack(t){const e=this.acks[t.id];typeof e=="function"&&(delete this.acks[t.id],e.withError&&t.data.unshift(null),e.apply(this,t.data))}onconnect(t,e){this.id=t,this.recovered=e&&this._pid===e,this._pid=e,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(t=>this.emitEvent(t)),this.receiveBuffer=[],this.sendBuffer.forEach(t=>{this.notifyOutgoingListeners(t),this.packet(t)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(t=>t()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:ie.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(t){return this.flags.compress=t,this}get volatile(){return this.flags.volatile=!0,this}timeout(t){return this.flags.timeout=t,this}onAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(t),this}prependAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(t),this}offAny(t){if(!this._anyListeners)return this;if(t){const e=this._anyListeners;for(let i=0;i<e.length;i++)if(t===e[i])return e.splice(i,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(t){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(t),this}prependAnyOutgoing(t){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(t),this}offAnyOutgoing(t){if(!this._anyOutgoingListeners)return this;if(t){const e=this._anyOutgoingListeners;for(let i=0;i<e.length;i++)if(t===e[i])return e.splice(i,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(t){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const e=this._anyOutgoingListeners.slice();for(const i of e)i.apply(this,t.data)}}}function Et(s){s=s||{},this.ms=s.min||100,this.max=s.max||1e4,this.factor=s.factor||2,this.jitter=s.jitter>0&&s.jitter<=1?s.jitter:0,this.attempts=0}Et.prototype.duration=function(){var s=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),e=Math.floor(t*this.jitter*s);s=1&Math.floor(10*t)?s+e:s-e}return 0|Math.min(s,this.max)},Et.prototype.reset=function(){this.attempts=0},Et.prototype.setMin=function(s){this.ms=s},Et.prototype.setMax=function(s){this.max=s},Et.prototype.setJitter=function(s){this.jitter=s};class Ps extends Se{constructor(t,e){var i;super(),this.nsps={},this.subs=[],t&&typeof t=="object"&&(e=t,t=void 0),(e=e||{}).path=e.path||"/socket.io",this.opts=e,Ds(this,e),this.reconnection(e.reconnection!==!1),this.reconnectionAttempts(e.reconnectionAttempts||1/0),this.reconnectionDelay(e.reconnectionDelay||1e3),this.reconnectionDelayMax(e.reconnectionDelayMax||5e3),this.randomizationFactor((i=e.randomizationFactor)!==null&&i!==void 0?i:.5),this.backoff=new Et({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(e.timeout==null?2e4:e.timeout),this._readyState="closed",this.uri=t;const n=e.parser||fi;this.encoder=new n.Encoder,this.decoder=new n.Decoder,this._autoConnect=e.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(t){return arguments.length?(this._reconnection=!!t,t||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(t){return t===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=t,this)}reconnectionDelay(t){var e;return t===void 0?this._reconnectionDelay:(this._reconnectionDelay=t,(e=this.backoff)===null||e===void 0||e.setMin(t),this)}randomizationFactor(t){var e;return t===void 0?this._randomizationFactor:(this._randomizationFactor=t,(e=this.backoff)===null||e===void 0||e.setJitter(t),this)}reconnectionDelayMax(t){var e;return t===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=t,(e=this.backoff)===null||e===void 0||e.setMax(t),this)}timeout(t){return arguments.length?(this._timeout=t,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(t){if(~this._readyState.indexOf("open"))return this;this.engine=new uc(this.uri,this.opts);const e=this.engine,i=this;this._readyState="opening",this.skipReconnect=!1;const n=et(e,"open",function(){i.onopen(),t&&t()}),r=a=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",a),t?t(a):this.maybeReconnectOnOpen()},o=et(e,"error",r);if(this._timeout!==!1){const a=this._timeout,c=this.setTimeoutFn(()=>{n(),r(new Error("timeout")),e.close()},a);this.opts.autoUnref&&c.unref(),this.subs.push(()=>{this.clearTimeoutFn(c)})}return this.subs.push(n),this.subs.push(o),this}connect(t){return this.open(t)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const t=this.engine;this.subs.push(et(t,"ping",this.onping.bind(this)),et(t,"data",this.ondata.bind(this)),et(t,"error",this.onerror.bind(this)),et(t,"close",this.onclose.bind(this)),et(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(t){try{this.decoder.add(t)}catch(e){this.onclose("parse error",e)}}ondecoded(t){Ns(()=>{this.emitReserved("packet",t)},this.setTimeoutFn)}onerror(t){this.emitReserved("error",t)}socket(t,e){let i=this.nsps[t];return i?this._autoConnect&&!i.active&&i.connect():(i=new Br(this,t,e),this.nsps[t]=i),i}_destroy(t){const e=Object.keys(this.nsps);for(const i of e)if(this.nsps[i].active)return;this._close()}_packet(t){const e=this.encoder.encode(t);for(let i=0;i<e.length;i++)this.engine.write(e[i],t.options)}cleanup(){this.subs.forEach(t=>t()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(t,e){var i;this.cleanup(),(i=this.engine)===null||i===void 0||i.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",t,e),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const t=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const e=this.backoff.duration();this._reconnecting=!0;const i=this.setTimeoutFn(()=>{t.skipReconnect||(this.emitReserved("reconnect_attempt",t.backoff.attempts),t.skipReconnect||t.open(n=>{n?(t._reconnecting=!1,t.reconnect(),this.emitReserved("reconnect_error",n)):t.onreconnect()}))},e);this.opts.autoUnref&&i.unref(),this.subs.push(()=>{this.clearTimeoutFn(i)})}}onreconnect(){const t=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",t)}}const $t={};function hi(s,t){typeof s=="object"&&(t=s,s=void 0);const e=function(c,u="",d){let m=c;d=d||typeof location<"u"&&location,c==null&&(c=d.protocol+"//"+d.host),typeof c=="string"&&(c.charAt(0)==="/"&&(c=c.charAt(1)==="/"?d.protocol+c:d.host+c),/^(https?|wss?):\/\//.test(c)||(c=d!==void 0?d.protocol+"//"+c:"https://"+c),m=Si(c)),m.port||(/^(http|ws)$/.test(m.protocol)?m.port="80":/^(http|ws)s$/.test(m.protocol)&&(m.port="443")),m.path=m.path||"/";const y=m.host.indexOf(":")!==-1?"["+m.host+"]":m.host;return m.id=m.protocol+"://"+y+":"+m.port+u,m.href=m.protocol+"://"+y+(d&&d.port===m.port?"":":"+m.port),m}(s,(t=t||{}).path||"/socket.io"),i=e.source,n=e.id,r=e.path,o=$t[n]&&r in $t[n].nsps;let a;return t.forceNew||t["force new connection"]||t.multiplex===!1||o?a=new Ps(i,t):($t[n]||($t[n]=new Ps(i,t)),a=$t[n]),e.query&&!t.query&&(t.query=e.queryKey),a.socket(e.path,t)}Object.assign(hi,{Manager:Ps,Socket:Br,io:hi,connect:hi});class Sc{constructor(t,e){V(this,"socket");V(this,"token");V(this,"endpoint");V(this,"socketList",new Map);this.endpoint=t.replace("https://","wss://").replace("http://","ws://"),this.token=e,this.socket=this.getSocket("default").socket,this.socket.connect()}close(){this.socket.emit("end"),this.socket.removeAllListeners(),this.socket.disconnect()}getSocket(t,e){return this.createManager(e)}createManager(t){const e=new Ps(this.endpoint,{reconnection:!0,reconnectionAttempts:1/0,reconnectionDelay:1e3,reconnectionDelayMax:5e3,randomizationFactor:.5,timeout:2e4,autoConnect:!0,transports:["websocket","polling"],rejectUnauthorized:!1,secure:!0,forceNew:t}),i=e.socket("/proxy",{auth:{token:`Bearer ${this.token}`}});return{manager:e,socket:i}}}class xc{constructor(t){V(this,"api");V(this,"socketService");V(this,"config");V(this,"logger");V(this,"token");V(this,"deviceManager");V(this,"coreManager");this.config=t,this.logger=t.logger??{...console,attention:console.warn,success:console.log},this.api=new al(t.endpoint)}async connect(){return this.deviceManager&&this.coreManager||(this.cleanUpClient(),await this.login(),this.token=this.token??this.config.token,this.socketService=new Sc(this.config.endpoint,this.token),this.coreManager=new Wl(this.socketService,this.logger),this.deviceManager=new Gl(this.socketService,this.logger),this.checkSession()),{coreManager:this.coreManager,deviceManager:this.deviceManager}}async disconnect(){var t;(t=this.socketService)==null||t.close(),this.cleanUpClient(),this.config.username&&this.config.password&&await this.api.post("/auth/logout",void 0,{headers:{Authorization:`Bearer ${this.token}`}})}async updateCredentials(t){this.config={...this.config,...t},this.socketService&&await this.disconnect(),await this.connect()}async login(){var t;if(this.config.username&&this.config.password)try{const e=await this.api.post("/auth/login",{username:this.config.username,password:this.config.password}),i=await e.json();this.token=i.access_token}catch(e){throw((t=e.response)==null?void 0:t.status)===401?new Error("Invalid credentials"):new Error(`Failed to get token: ${e.message}`)}else if(this.config.token&&!this.config.skipCheck)try{await this.api.get("/auth/check",{headers:{Authorization:`Bearer ${this.config.token}`}})}catch(e){throw new Error(`Invalid token: ${e.message}`)}this.token=this.token??this.config.token}getDeviceManager(){return this.deviceManager}checkSession(){var t,e;(t=this.socketService)==null||t.socket.removeListener("invalidToken"),(e=this.socketService)==null||e.socket.on("invalidToken",async i=>{i===this.token&&await this.disconnect()})}cleanUpClient(){this.deviceManager=void 0}}var kc=rr.j;const Vr=Symbol(),Rr={client:null,api:null,install(s){s.provide(Vr,this),this.initializeBasedOnAuth()},async initializeBasedOnAuth(){const s=Ie();fo(()=>{const{access_token:t,user:e}=s.loginState;t&&(e==null?void 0:e.role)==="admin"?this.initialize({endpoint:window.origin,token:t,logger:{...console,attention:console.warn,success:console.log}}):this.disconnect()})},async initialize(s){this.client=new kc(s),this.api=await this.client.connect()},async updateCredentials(s){var t;await((t=this.client)==null?void 0:t.updateCredentials(s))},async disconnect(){var s;await((s=this.client)==null?void 0:s.disconnect()),this.client=null,this.api=null},getClient(){if(!this.client)throw new Error("camera.ui client is not initialized!");return this.client},getAPI(){if(!this.api)throw new Error("camera.ui api is not initialized!");return this.api}};function Hp(){const s=mo(Vr);if(!s)throw new Error("camera.ui client is not installed!");return{client:s.getClient(),api:s.getAPI()}}function di(s){const e=s.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),i=decodeURIComponent(atob(e).split("").map(n=>"%"+("00"+n.charCodeAt(0).toString(16)).slice(-2)).join(""));return JSON.parse(i)}const Ie=Lt("auth",()=>{var m;const s=wt(),t=Ai(),e=Li("user",null,{serializer:{read:y=>y?JSON.parse(y):null,write:y=>JSON.stringify(y)}}),i=Q(!1),n=Nn({user:e.value!==null?di(e.value.access_token):null,access_token:((m=e.value)==null?void 0:m.access_token)??null}),r=J(()=>e.value!==null);ye(s,()=>{i.value=!1},{deep:!0}),ye(e,y=>{!y&&n.user&&a()},{deep:!0});const o=async y=>{i.value=!0;const w=await sr({loginInformation:y});e.value=w,n.user=di(w.access_token),n.access_token=w.access_token,t.push("/cameras")},a=async()=>{i.value=!0,await ir(),u(),e.value=null,n.user=null,n.access_token=null,t.push("/"),window.location.reload()},c=async()=>{const y=await nr({refresh_token:e.value.refresh_token});await Rr.updateCredentials({endpoint:window.origin,token:y.access_token}),e.value.access_token=y.access_token,n.user=di(y.access_token),n.access_token=y.access_token},u=()=>{"serviceWorker"in navigator&&navigator.serviceWorker.ready.then(y=>{y.pushManager.getSubscription().then(w=>{w&&w.unsubscribe()})})};return{isLoggedIn:r,loginLoading:i,loginState:n,user:e,login:o,logout:a,refreshToken:c,updateUser:async(y,w,_)=>{y&&await ks({username:n.user.username,userData:y}),w&&await ks({username:n.user.username,userData:w}),_&&await c()}}}),Cc=(s,t="ddd., D. MMM. YYYY")=>(typeof s=="number"&&(s=new Date(s)),Co(s,t).value),As=(s="logo-512.png")=>{var n,r,o;if(s.startsWith("data:")||s.startsWith("blob:"))return s;if(s.startsWith(location.origin))return location.origin+s;if(s==="ERROR"&&(s="logo-256.png"),s==="avatar"){const a=Ie(),c=(n=a.loginState.user)==null?void 0:n.avatar,u=(r=a.user)==null?void 0:r.access_token;if(u&&c)return`${location.origin}/api/files/${c}?token=${u}`;s="logo-256.png"}if(s.includes("avatar")){const c=(o=Ie().user)==null?void 0:o.access_token;if(c)return`${location.origin}/api/files/${s}?token=${c}`;s="logo-256.png"}const e=`/src/assets/images/${s}`,i=Object.assign({"/src/assets/css/extras.css":ka,"/src/assets/css/main.css":va,"/src/assets/css/markdown.css":ya,"/src/assets/css/tailwind.css":_a,"/src/assets/css/themes.css":wa,"/src/assets/css/transitions.css":Sa,"/src/assets/css/utils.css":xa,"/src/assets/images/error-256.png":Ea,"/src/assets/images/logo-256.png":Ma,"/src/assets/images/logo-512.png":Aa,"/src/assets/images/logo.png":Ta,"/src/assets/images/logo.svg":Va,"/src/assets/images/logo_animated.svg":Ia,"/src/assets/images/logo_loading_circle.svg":$a});return i[e]?i[e].default:""},Up=(s,t)=>({timestamp:[...s].sort((i,n)=>(typeof i!="number"&&(i=i.getTime()),typeof n!="number"&&(n=n.getTime()),typeof t!="number"&&(t=t.getTime()),Math.abs(i-t)-Math.abs(n-t)))[0],findDate:t}),Zp=(s=new Date)=>{const i=Math.ceil(s.getTime()/15e3)*15e3,n=i-s.getTime();return{date:new Date(i),rounded:n}},Wp=(s=new Date)=>{const i=Math.ceil(s.getTime()/12e4)*12e4,n=i-s.getTime();return{date:new Date(i),rounded:n}},Gp=(s=new Date)=>{const i=Math.ceil(s.getTime()/9e5)*9e5,n=i-s.getTime();return{date:new Date(i),rounded:n}},Kp=(s=new Date)=>{const i=Math.ceil(s.getTime()/18e5)*18e5,n=i-s.getTime();return{date:new Date(i),rounded:n}},Qp=(s=new Date)=>(s.setMinutes(s.getMinutes()+30),s.setMinutes(0,0,0),{date:s,rounded:0}),Yp=async s=>new Promise(t=>{var i;s.preventDefault();const e=(i=s.target)==null?void 0:i.files;if(e){const n=e[0],r=new FileReader;n?(r.onload=o=>{var c,u;const a=(c=o.target)!=null&&c.result?(u=o.target)==null?void 0:u.result:void 0;t(a)},r.readAsDataURL(n)):t(void 0)}}),Xp=(s=10)=>{const t=()=>Math.floor(Math.random()*25+10).toString(36);return Array.from({length:s},t).join("")};function An(s,t=new WeakMap){if(typeof s!="object"||s===null)return s;if(t.has(s))return t.get(s);if(Array.isArray(s)){const i=[];return t.set(s,i),s.forEach((n,r)=>{i[r]=An(n,t)}),i}const e={};return t.set(s,e),Object.keys(s).forEach(i=>{e[i]=An(s[i],t)}),e}const Ec=He({__name:"VImage",props:{src:{},srcset:{},lazySrc:{},aspectRatio:{},cover:{type:Boolean,default:!1},eager:{type:Boolean,default:!1},width:{},height:{},errorWidth:{},errorHeight:{},alt:{default:"camera.ui"},contentClass:{},gradient:{},inline:{type:Boolean,default:!1},maxHeight:{type:[String,Boolean]},maxWidth:{type:[String,Boolean]},minWidth:{type:[String,Boolean]},minHeight:{type:[String,Boolean]},options:{},sizes:{},transition:{default:"fade-transition"},spinnerSize:{default:30},spinnerWidth:{default:3},spinnerColor:{default:"#df2a4c"},errorIconSize:{default:"large"},errorIconColor:{default:"red"},placeholderStyle:{},errorStyle:{},showLoadingScreen:{type:Boolean,default:!0}},setup(s){const t=s,{src:e,width:i,height:n,aspectRatio:r,cover:o,errorHeight:a,errorWidth:c,placeholderStyle:u,showLoadingScreen:d}=ft(t);return(m,y)=>(I(),xe(Wi,{src:v(As)(v(e)),width:v(i),height:v(n),"aspect-ratio":v(r),cover:v(o),alt:m.alt},{placeholder:j(()=>[v(d)?(I(),F("div",{key:0,class:"flex items-center justify-center h-full",style:ve(v(u))},[O(Bo,{color:m.spinnerColor,size:m.spinnerSize,width:m.spinnerWidth,indeterminate:""},null,8,["color","size","width"])],4)):oe("",!0)]),error:j(()=>[O(Wi,{src:v(As)("ERROR"),width:v(c)||v(i),height:v(a)||v(n),"aspect-ratio":v(r),cover:v(o)},null,8,["src","width","height","aspect-ratio","cover"])]),_:1},8,["src","width","height","aspect-ratio","cover","alt"]))}}),Mc={key:0,class:"profile-name mt-5 text-center text-white"},Pc={key:1,class:"profile-role text-center"},Ac=He({__name:"VProfileAvatar",props:{showBorder:{type:Boolean,default:!1},showName:{type:Boolean,default:!1},showRole:{type:Boolean,default:!1},size:{default:20},spinnerSize:{default:"default"},spinnerWidth:{default:2},src:{}},setup(s){const t=s,{showBorder:e,showName:i,showRole:n,size:r,src:o,spinnerSize:a,spinnerWidth:c}=ft(t),{loginState:u}=Ze(Ie()),d=J(()=>{const m=r.value.toString().split(/.*(?:\D|^)(\d+)/).filter(Boolean);return m[0]+(m[1]??"px")});return(m,y)=>{var _,R,$;const w=Ec;return I(),F("div",{class:"flex flex-col justify-center avatar cursor-pointer",style:ve(`border-radius: calc(${v(d)} / 2); background: var(--background-img)`)},[O(w,{src:v(o),height:v(r),width:v(r),cover:"",class:tt({"avatar-border":v(e)}),style:ve(`border-radius: calc(${v(d)} / 2); background: var(--background-img) `),"spinner-size":v(a),"spinner-width":v(c)},null,8,["src","height","width","class","style","spinner-size","spinner-width"]),v(i)?(I(),F("div",Mc,G((_=v(u).user)==null?void 0:_.username),1)):oe("",!0),v(n)?(I(),F("div",Pc,G((R=v(u).user)!=null&&R.role?m.$t(`general.role_${($=v(u).user)==null?void 0:$.role.toLowerCase()}`):""),1)):oe("",!0)],4)}}}),ae=(s,t)=>{const e=s.__vccOpts||s;for(const[i,n]of t)e[i]=n;return e},Ir=ae(Ac,[["__scopeId","data-v-f45a5b95"]]),Ls=(s,t)=>{var o,a,c,u;s=s||wt();const{loginState:e}=Ze(Ie()),i=((o=s==null?void 0:s.meta)==null?void 0:o.auth.requiresAuth)===!1,n=t??((c=(a=s.meta)==null?void 0:a.auth)==null?void 0:c.role),r=(u=e.value.user)==null?void 0:u.role;return r==="admin"||r===n||n==="none"||i},Lc=Ti(Hn);function Or(){const s=J(()=>typeof window>"u"?!1:[/Android/i,/webOS/i,/iPhone/i,/iPad/i,/iPod/i,/BlackBerry/i,/Windows Phone/i].some(_=>navigator.userAgent.match(_))),t=J(()=>typeof window>"u"?!1:[/Android/i].some(_=>navigator.userAgent.match(_))),e=J(()=>typeof window>"u"?!1:[/iPhone/i].some(_=>navigator.userAgent.match(_))),i=J(()=>typeof window>"u"?!1:[/iPad/i].some(_=>navigator.userAgent.match(_))),n=J(()=>i.value||e.value),r=J(()=>{var _;if(typeof window>"u")return[0,0];const w=/OS [\d_]+/i;return e.value?((_=navigator.userAgent.match(w))==null?void 0:_[0].substr(3).split("_").map(R=>parseInt(R)))||[0,0]:[0,0]}),o=J(()=>typeof window>"u"?!1:[/Safari/i].some(_=>navigator.userAgent.match(_))),a=J(()=>{if(typeof window>"u")return null;const w=/Version\/(\d+).+Safari/;return navigator.userAgent.match(w)}),c=J(()=>typeof window>"u"?!1:[/Firefox/i].some(_=>navigator.userAgent.match(_))),u=J(()=>typeof window>"u"?!1:[/Chrome/i].some(_=>navigator.userAgent.match(_))),d=J(()=>{let w=!1;if("maxTouchPoints"in navigator)w=navigator.maxTouchPoints>0;else if("msMaxTouchPoints"in navigator)navigator!==null&&(w=navigator.msMaxTouchPoints>0);else{const _=matchMedia("(pointer:coarse)");if(_&&_.media==="(pointer:coarse)")w=!!_.matches;else if("orientation"in window)w=!0;else{const R=navigator.userAgent;w=/\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(R)||/\b(Android|Windows Phone|iPad|iPod)\b/i.test(R)}}return w}),m=J(()=>Lc("(display-mode: standalone)").value||window.navigator.standalone||document.referrer.includes("android-app://")),y=J(()=>{const w=typeof document.body.requestFullscreen<"u"||typeof document.body.mozRequestFullScreen<"u"||typeof document.body.webkitRequestFullscreen<"u"||typeof document.body.msRequestFullscreen<"u"||typeof document.exitFullscreen<"u"||typeof document.mozCancelFullScreen<"u"||typeof document.webkitExitFullscreen<"u",[_,R]=r.value,$=_&&_>=17&&R&&R>=2;return!!(w||!e.value||e.value&&$)});return{isPWA:m,isMobile:s,isAndroid:t,isIphone:e,isIpad:i,isAppleMobile:n,iosVersion:r,isSafari:o,safariVersion:a,isFirefox:c,isChrome:u,isTouch:d,fsSupported:y}}const Tc="modulepreload",Bc=function(s){return"/"+s},Ln={},Ce=function(t,e,i){let n=Promise.resolve();if(e&&e.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),a=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));n=Promise.allSettled(e.map(c=>{if(c=Bc(c),c in Ln)return;Ln[c]=!0;const u=c.endsWith(".css"),d=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${d}`))return;const m=document.createElement("link");if(m.rel=u?"stylesheet":Tc,u||(m.as="script"),m.crossOrigin="",m.href=c,a&&m.setAttribute("nonce",a),document.head.appendChild(m),u)return new Promise((y,w)=>{m.addEventListener("load",y),m.addEventListener("error",()=>w(new Error(`Unable to preload CSS for ${c}`)))})}))}function r(o){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=o,window.dispatchEvent(a),!a.defaultPrevented)throw o}return n.then(o=>{for(const a of o||[])a.status==="rejected"&&r(a.reason);return t().catch(r)})},$r=Lt("loading",()=>({routerLoading:Q(!1)})),Vc={},Rc={class:"flex flex-col justify-center items-center px-5 w-full h-full"},Ic={class:"error-subtitle text-center",style:{"margin-top":"-10px"}};function Oc(s,t){return I(),F("main",Rc,[t[1]||(t[1]=A("div",{class:"flex flex-row justify-center items-center"},[A("span",{class:"error-big-letter",style:{"margin-right":"-35px"}},"4"),A("img",{src:Bi,width:"140"}),A("span",{class:"error-big-letter",style:{"margin-left":"-35px"}},"4")],-1)),A("h2",Ic,G(s.$t("views.404.error_message")),1),O(je,{class:"mt-7",onClick:t[0]||(t[0]=st(e=>s.$router.push({path:"/cameras"}),["prevent"]))},{default:j(()=>[he(G(s.$t("views.404.button_home")),1)]),_:1})])}const $c=ae(Vc,[["render",Oc],["__scopeId","data-v-b14328d6"]]),jc=async({signal:s})=>(await le.get("/",{signal:s})).data;class Nc{constructor(){V(this,"_queryClient",Yt());V(this,"queryActivator",Q([{name:"apiInfoQuery",enabled:!0}]))}get queryClient(){return this._queryClient}apiInfoQuery(){return ut({queryKey:["api"],queryFn:({signal:t})=>jc({signal:t}),enabled:()=>this.queryActivator.value.some(t=>t.name==="apiInfoQuery"&&t.enabled)})}toggleQueryActivator(t,e){const i=this.queryActivator.value.find(n=>n.name===t);i&&(i.enabled=e)}}const Dc=Ti(Eo),zc=Ti(Mo);function Jt(){const{angle:s}=Dc(),t=zc({listenOrientation:!0}),e=J(()=>{let u=t.width.value;return s.value>0&&(screen.height>screen.width?u=screen.height:u=screen.width),u<=360}),i=J(()=>{let u=t.width.value;return s.value>0&&(screen.height>screen.width?u=screen.height:u=screen.width),u<=450}),n=J(()=>{let u=t.width.value;return s.value>0&&(screen.height>screen.width?u=screen.height:u=screen.width),u<640}),r=J(()=>{let u=t.width.value;return s.value>0&&(screen.height>screen.width?u=screen.height:u=screen.width),u<768}),o=J(()=>{let u=t.width.value;return s.value>0&&(screen.height>screen.width?u=screen.height:u=screen.width),u>768&&u<1024}),a=J(()=>{let u=t.width.value;return s.value>0&&(screen.height>screen.width?u=screen.height:u=screen.width),u>=1024}),c=J(()=>{let u=t.width.value;return s.value>0&&(screen.height>screen.width?u=screen.height:u=screen.width),u>=1280});return{superSmallMobileActive:e,extraSmallMobileActive:i,smallMobileActive:n,mobileActive:r,tabletActive:o,desktopActive:a,bigDesktopActive:c}}const jr=p.object({enabled:p.boolean().default(!1)}).strict(),Di=p.object({_id:p.string().default(Re()).transform(()=>Re()),points:p.tuple([p.number(),p.number()])}),qc=p.union([p.literal("person"),p.literal("bicycle"),p.literal("car"),p.literal("motorcycle"),p.literal("airplane"),p.literal("bus"),p.literal("train"),p.literal("truck"),p.literal("boat"),p.literal("traffic light"),p.literal("fire hydrant"),p.literal("stop sign"),p.literal("parking meter"),p.literal("bench"),p.literal("bird"),p.literal("cat"),p.literal("dog"),p.literal("horse"),p.literal("sheep"),p.literal("cow"),p.literal("elephant"),p.literal("bear"),p.literal("zebra"),p.literal("giraffe"),p.literal("backpack"),p.literal("umbrella"),p.literal("handbag"),p.literal("tie"),p.literal("suitcase"),p.literal("frisbee"),p.literal("skis"),p.literal("snowboard"),p.literal("sports ball"),p.literal("kite"),p.literal("baseball bat"),p.literal("baseball glove"),p.literal("skateboard"),p.literal("surfboard"),p.literal("tennis racket"),p.literal("bottle"),p.literal("wine glass"),p.literal("cup"),p.literal("fork"),p.literal("knife"),p.literal("spoon"),p.literal("bowl"),p.literal("banana"),p.literal("apple"),p.literal("sandwich"),p.literal("orange"),p.literal("broccoli"),p.literal("carrot"),p.literal("hot dog"),p.literal("pizza"),p.literal("donut"),p.literal("cake"),p.literal("chair"),p.literal("couch"),p.literal("potted plant"),p.literal("bed"),p.literal("dining table"),p.literal("toilet"),p.literal("tv"),p.literal("laptop"),p.literal("mouse"),p.literal("remote"),p.literal("keyboard"),p.literal("cell phone"),p.literal("microwave"),p.literal("oven"),p.literal("toaster"),p.literal("sink"),p.literal("refrigerator"),p.literal("book"),p.literal("clock"),p.literal("vase"),p.literal("scissors"),p.literal("teddy bear"),p.literal("hair drier"),p.literal("toothbrush"),p.literal("motion")]),Fc=p.object({_id:p.string().default(Re()).transform(()=>Re()),coords:Di.array().min(3,"Minimum 3 points are required"),type:p.union([p.literal("intersect"),p.literal("contain")]).default("contain"),filter:p.union([p.literal("include"),p.literal("exclude")]).default("include"),classes:qc.array(),isPrivacyMask:p.boolean().default(!1)}).strict(),Nr=p.object({name:p.string().min(1,"Zone Name is required"),regions:Fc.array()}),Dr=p.object({motion:p.object({timeout:p.number().min(10,"Minimum 10 seconds")}),object:p.object({confidence:p.number().min(.3,"Minimum 0.3")})}),zr=p.union([p.literal("high-resolution"),p.literal("mid-resolution"),p.literal("low-resolution"),p.literal("snapshot")]),Hc=p.union([p.literal("high-resolution"),p.literal("mid-resolution"),p.literal("low-resolution")]),Uc=p.union([p.literal("bubble://"),p.literal("dvrip://"),p.literal("echo:"),p.literal("exec:"),p.literal("expr:"),p.literal("ffmpeg:"),p.literal("gopro://"),p.literal("hass:"),p.literal("homekit://"),p.literal("http://"),p.literal("https://"),p.literal("httpx://"),p.literal("isapi://"),p.literal("ivideon:"),p.literal("kasa://"),p.literal("nest:"),p.literal("onvif://"),p.literal("roborock://"),p.literal("rtmp://"),p.literal("rtsp://"),p.literal("rtspx://"),p.literal("tapo://"),p.literal("tcp://"),p.literal("webrtc:"),p.literal("webtorrent:")]),Zc=Uc.options.map(s=>s.value),Wc=new RegExp(`^(${Zc.join("|")})`),qr=p.string().refine(s=>{if(!Wc.test(s))return!1;try{return new URL(s),!0}catch{return!1}},{message:"Invalid URL format or unsupported protocol"}),Gc=p.object({_id:p.string().default(Re()).transform(()=>Re()),name:p.string().min(1,"Camera Source Name is required").transform(s=>s.replace(/ /g,"_").toLowerCase()),roles:zr.array().min(1,"Minimum one role is required"),urls:qr.array().min(1,"At least one valid URL is required"),internal:p.boolean().default(!1)}).strict(),Kc=p.object({_id:p.string().default(Re()).transform(()=>Re()),name:p.string().min(1,"Camera Source Name is required").transform(s=>s.replace(/ /g,"_").toLowerCase()),roles:zr.array().min(1,"Minimum one role is required"),urls:qr.array().min(1,"At least one valid URL is required"),internal:p.boolean().default(!1)}).strict(),Fr=p.object({hub:p.string().array().optional(),cameraController:p.string().optional(),motionDetection:p.string().optional(),audioDetection:p.string().optional(),objectDetection:p.string().optional(),ptz:p.string().optional(),plugins:p.string().array()}).strict(),Qc=p.union([p.literal("auto"),p.literal("mse"),p.literal("webrtc"),p.literal("webrtc/tcp"),p.literal("mjpeg"),p.literal("hls"),p.literal("mp4")]),Hr=p.object({decoder:p.union([p.literal("pillow"),p.literal("wasm"),p.literal("rust")]),fps:p.number().min(0,"Minimum 0 fps").max(30,"Maximum 30 fps"),resolution:p.union([p.literal("3840x2160"),p.literal("3072x1728"),p.literal("2560x1440"),p.literal("1920x1080"),p.literal("1440x1080"),p.literal("1280x720"),p.literal("960x540"),p.literal("640x480"),p.literal("640x360"),p.literal("320x240"),p.literal("320x180")])}),Ur=p.union([p.literal("camera"),p.literal("doorbell")]),Zr=p.object({streamingMode:Qc,streamingSource:Hc}),Wr=p.object({model:p.string().optional(),manufacturer:p.string().optional(),hardware:p.string().optional(),serialNumber:p.string().optional(),firmwareVersion:p.string().optional(),supportUrl:p.string().optional()}),Jp=p.object({_id:p.string().default(Re()).transform(()=>Re()),nativeId:p.string().optional(),pluginId:p.string().default("native"),disabled:p.boolean().default(!1),name:p.string().min(1,"Camera name is required"),type:Ur.default("camera"),isCloud:p.boolean().default(!1),hasLight:p.boolean().default(!1),hasSiren:p.boolean().default(!1),hasBinarySensor:p.boolean().default(!1),hasBattery:p.boolean().default(!1),snapshotTTL:p.number().min(30,"Minimum cache time must be 30").default(600),info:Wr.default({model:"IP Camera",manufacturer:"camera.ui",hardware:"Camera",serialNumber:"Unknown",firmwareVersion:"Unknown",supportUrl:"Unknown"}),sources:Gc.array().refine(s=>s.some(t=>t.roles.includes("high-resolution")||t.roles.includes("mid-resolution")||t.roles.includes("low-resolution")),{path:["sources[].roles"],message:'One of the roles "high-resolution", "mid-resolution" or "low-resolution" is required'}),extensions:Fr.default({hub:[],plugins:[]}),recording:jr.default({enabled:!1}),interface:Zr.default({streamingMode:"auto",streamingSource:"low-resolution"}),activityZones:Nr.array().default([]),activitySettings:Dr.default({motion:{timeout:20},object:{confidence:.7}}),frameWorkerSettings:Hr.default({decoder:"pillow",fps:0,resolution:"640x360"})}).strict(),ef=p.object({disabled:p.boolean().optional(),type:Ur.optional(),name:p.string().min(1,"Camera name is required").optional(),snapshotTTL:p.number().min(30,"Minimum cache time must be 30").optional(),info:Wr.partial().optional(),sources:Kc.array().refine(s=>s.some(t=>t.roles.includes("high-resolution")||t.roles.includes("mid-resolution")||t.roles.includes("low-resolution")),{path:["sources[].roles"],message:'One of the roles "high-resolution", "mid-resolution" or "low-resolution" is required'}).optional(),extensions:Fr.partial().optional(),interface:Zr.partial().optional(),recording:jr.partial().optional(),activityZones:Nr.array().optional(),activitySettings:Dr.partial().optional(),frameWorkerSettings:Hr.partial().optional()}).strict();p.record(p.any());p.object({configPath:p.string()}).strict();p.object({url:p.string()}).strict();const Yc=/^((@[\w-.]*)\/)?(camera-ui-[\w-]*)$/,Tn=["image/jpeg","image/png"],Bn=1024*1024*2,Vn=["video/mp4","video/quicktime"],Rn=1024*1024*10,In=["audio/mpeg","audio/wav","audio/ogg"],On=1024*1024*2;p.object({pluginname:p.string().refine(s=>Yc.test(s),"Not a valid plugin name"),pluginversion:p.string().optional().default("latest")}).strict();p.object({actionId:p.string(),payload:p.any()}).strict();p.record(p.any(),p.any());p.object({upload:p.custom().refine(s=>(e=>e.mimetype!==void 0)(s)?Buffer.byteLength(s._buf)<=Bn:s.size<=Bn,"Max file size is 2 MB").refine(s=>(e=>e.mimetype!==void 0)(s)?Tn.includes(s.mimetype):Tn.includes(s.type),".jpeg and .png files are accepted"),metadata:p.custom().transform(s=>JSON.parse(s.value)),config:p.custom().transform(s=>JSON.parse(s.value))});p.object({upload:p.custom().refine(s=>(e=>e.mimetype!==void 0)(s)?Buffer.byteLength(s._buf)<=On:s.size<=On,"Max file size is 2 MB").refine(s=>(e=>e.mimetype!==void 0)(s)?In.includes(s.mimetype):In.includes(s.type),".mp3, .wav and .ogg files are accepted"),metadata:p.custom().transform(s=>JSON.parse(s.value)),config:p.custom().transform(s=>JSON.parse(s.value))});p.object({upload:p.custom().refine(s=>(e=>e.mimetype!==void 0)(s)?Buffer.byteLength(s._buf)<=Rn:s.size<=Rn,"Max file size is 5 MB").refine(s=>(e=>e.mimetype!==void 0)(s)?Vn.includes(s.mimetype):Vn.includes(s.type),".mp4 files are accepted"),config:p.custom().transform(s=>JSON.parse(s.value))});p.object({version:p.string().optional().default("latest")}).strict();const tf=p.object({serverAddresses:p.string().ip().array()}).partial().strict(),$n=["image/jpeg","image/jpg","image/png"],jn=1024*1024*5,Gr=p.object({index:p.number(),cameraId:p.string()}),Kr=p.union([p.literal(1),p.literal(4),p.literal(6),p.literal(7),p.literal(9),p.literal(10),p.literal(12),p.literal(13),p.literal(15),p.literal(16),p.literal(20),p.literal(26)]),Xc=p.union([p.literal("dnd"),p.literal("view")]),Qr=p.object({_id:p.string().default(Re()).transform(()=>Re()),name:p.string().min(1,"Layout name is required"),viewSize:Kr,cameras:Gr.array(),type:Xc});p.object({name:p.string().min(1,"Layout name is required"),viewSize:Kr,cameras:Gr.array()}).partial().optional();const Jc=p.object({views:Qr.array()}),eu=p.object({_id:p.string().default(Re()).transform(()=>Re()),cameraId:p.string(),coords:Di});p.object({cameraId:p.string(),coords:Di}).partial().optional();const tu=p.object({shortcuts:eu.array()}),Yr=p.object({camview:Jc,cameras:p.record(p.string(),tu)}),su=p.object({_id:p.string().default(Re()).transform(()=>Re()),username:p.string().min(1,"Username is required"),password:p.string().min(10,"Password must be at least 10 characters long").regex(/[A-Z]/,"Password must contain at least one uppercase letter").regex(/[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]/,`Password must contain at least one special character (!@#$%^&*()_+-=[]{};:'"\\|,.<>/?)`).max(32,"Password cannot be more than 32 characters"),passwordConfirm:p.string().min(1,"Please confirm your password"),role:p.union([p.literal("admin"),p.literal("user")]),sessionTimer:p.number().min(3600,"Session timer must not be less than 3600 seconds (1h)").max(86400,"Session timer must not be greater than 86400 seconds (24h)").default(14400),rememberMe:p.boolean().default(!1),oneLogin:p.boolean().default(!1),firstLogin:p.boolean().default(!0),preferences:Yr.default({camview:{views:[]},cameras:{}})}).strict().refine(s=>s.password===s.passwordConfirm,{path:["passwordConfirm"],message:"Passwords do not match"}),iu=p.object({username:p.string().min(1,"Username is required"),password:p.string().min(1,"Password is required"),rememberMe:p.boolean().default(!1)}).strict(),nu=p.object({username:p.string().min(1,"Username is required").optional(),password:p.string().min(10,"Password must be at least 10 characters long").regex(/[A-Z]/,"Password must contain at least one uppercase letter").regex(/[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]/,`Password must contain at least one special character (!@#$%^&*()_+-=[]{};:'"\\|,.<>/?)`).max(32,"Password cannot be more than 32 characters").optional(),passwordConfirm:p.string().optional(),role:p.union([p.literal("admin"),p.literal("user")]).optional(),sessionTimer:p.number().min(3600,"Session timer must not be less than 3600 seconds (1h)").max(86400,"Session timer must not be greater than 86400 seconds (24h)").optional(),upload:p.optional(p.custom().refine(s=>(e=>e.mimetype!==void 0)(s)?Buffer.byteLength(s._buf)<=jn:s.size<=jn,"Max file size is 5MB.").refine(s=>(e=>e.mimetype!==void 0)(s)?$n.includes(s.mimetype):$n.includes(s.type),".jpg, .jpeg, .png files are accepted.")),rememberMe:p.boolean().optional(),oneLogin:p.boolean().optional(),firstLogin:p.boolean().optional(),preferences:Yr.partial().optional()}).strict().refine(s=>s.password===s.passwordConfirm,{path:["passwordConfirm"],message:"Passwords do not match"}),ru=Is(iu),sf=Is(su),nf=Is(nu),rf=Is(Qr),ou={class:"flex flex-col justify-center items-center w-full h-full"},au={class:"login flex flex-col items-center"},lu={for:"username",class:"v-label"},cu={class:"relative"},uu={for:"password",class:"v-label"},hu={class:"w-100 mt-2 flex flex-col"},du={class:"ml-auto flex"},pu={class:"v-label m-0 mb-0 mr-2",for:"rememberMe"},fu={key:0,class:"login-footer-text mt-3"},mu={key:0,class:"login-footer login-footer-text"},gu=He({__name:"Login",setup(s){const t=new Nc,e=Ie(),{loginLoading:i}=Ze(e),{extraSmallMobileActive:n}=Jt(),r=Q(!1),o=Q(!1),{data:a}=t.apiInfoQuery(),c=async u=>{var d,m,y,w;try{await e.login(u)}catch(_){console.error(((m=(d=_.response)==null?void 0:d.data)==null?void 0:m.message)??_.message??_),Oe.error(((w=(y=_.response)==null?void 0:y.data)==null?void 0:w.message)??_.message??_),i.value=!1}};return(u,d)=>(I(),F("main",ou,[A("div",au,[d[4]||(d[4]=A("div",{class:"flex flex-col items-center justify-center mt-safe mb-10"},[A("img",{src:Bi,alt:"camera.ui",width:"90"}),A("div",{class:"text-xl ml-3 font-bold text-color"},"camera.ui")],-1)),O(v(ma),{class:"w-full mt-5 mb-5","validation-schema":v(ru),onSubmit:d[2]||(d[2]=m=>c(m))},{default:j(()=>[A("div",null,[A("label",lu,G(u.$t("components.form.label.username")),1),O(v(Gs),{name:"username"},{default:j(({field:m,errorMessage:y,errors:w})=>[O(Gi,zt({variant:"outlined"},m,{type:"text",name:"username",error:w.length>0,"error-messages":y,density:"compact"}),null,16,["error","error-messages"])]),_:1})]),d[3]||(d[3]=A("div",{class:"py-2"},null,-1)),A("div",cu,[A("label",uu,G(u.$t("components.form.label.password")),1),O(v(Gs),{name:"password"},{default:j(({field:m,errorMessage:y,errors:w})=>[O(Gi,zt({name:"password",variant:"outlined"},m,{type:v(r)?"text":"password",error:w.length>0,"error-messages":y,density:"compact","append-inner-icon":v(r)?v(Zo):v(Wo),"onClick:appendInner":d[0]||(d[0]=_=>r.value=!v(r))}),null,16,["type","error","error-messages","append-inner-icon"])]),_:1}),A("div",hu,[A("div",du,[O(v(Gs),{"model-value":v(o),name:"rememberMe",type:"checkbox","checked-value":!0,"unchecked-value":!1},{default:j(({field:m,errorMessage:y,errors:w})=>[A("label",pu,G(u.$t("components.form.label.remember_me")),1),O(Vo,zt({"model-value":v(o),name:"rememberMe"},m,{color:"#df2a4c",type:"checkbox",error:w.length>0,"error-messages":y,"hide-details":"",onChange:d[1]||(d[1]=_=>o.value=!v(o))}),null,16,["model-value","error","error-messages"])]),_:1},8,["model-value"])])])]),O(je,{class:"text-white mt-6",height:"40px",loading:v(i),type:"submit",elevation:"1",width:"100%",color:"#df2a4c"},{default:j(()=>[he(G(u.$t("components.form.button.login")),1)]),_:1},8,["loading"])]),_:1},8,["validation-schema"]),O(je,{icon:v(Go),class:"login-github",density:"compact",variant:"plain"},null,8,["icon"]),v(n)?(I(),F("div",fu,"camera.ui"+G(v(a)?` v${v(a).version}`:""),1)):oe("",!0)]),v(n)?oe("",!0):(I(),F("div",mu,"camera.ui"+G(v(a)?` v${v(a).version}`:""),1))]))}}),bu=ae(gu,[["__scopeId","data-v-99ac087c"]]),Ts=[{name:"NotFound",path:"/:pathMatch(.*)*",component:$c,meta:{name:"notfound",auth:{requiresAuth:!1,role:"none"},ui:{disableMaxWidth:!0,fullscreen:!0,hideSidebar:!0,hideTopbar:!0},navigation:{hideRoute:!0}}},{name:"Login",path:"/login",alias:"/",component:bu,meta:{name:"login",auth:{requiresAuth:!1,role:"none"},ui:{appBgMobileColor:"#181818",disableMaxWidth:!0,fullscreen:!0,hideSidebar:!0,hideTopbar:!0},navigation:{hideRoute:!0}}},{name:"FirstSteps",path:"/first-steps",component:()=>Ce(()=>import("./FirstSteps.BRAFBtOM.0.0.40.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33])),meta:{name:"firststeps",auth:{requiresAuth:!0,role:"user"},ui:{appBgColor:"#181818",disableMaxWidth:!0,fullscreen:!0,hideSidebar:!0,hideTopbar:!0},navigation:{hideRoute:!0}}},{name:"Cameras",path:"/cameras",component:()=>Ce(()=>import("./Cameras.okZ80wIv.0.0.40.js"),__vite__mapDeps([34,35,1,2,3,4,36,21,22,37,38,39,5,7,8,11,23,24,19,20,14,15,40,41,13,42,12,43,44,45,46,16,17,18,25,26,27,28,29,30,31,32,6,47])),meta:{name:"cameras",auth:{requiresAuth:!0,role:"user"},ui:{disableMaxWidth:!1,fullWidthRouterView:!1},navigation:{routePosition:"top",icon:Ko,showMobileBottomBar:!0,showInMobileBottomBar:!0}}},{name:"Camera",path:"/cameras/:cameraname",component:()=>Ce(()=>import("./Camera.D8oBQGzz.0.0.40.js"),__vite__mapDeps([48,1,2,3,4,13,19,20,21,22,14,15,35,36,37,38,39,5,7,8,11,23,24,40,41,42,12,43,44,45,16,17,18,25,26,27,28,29,30,31,32,6,49])),meta:{name:"camera",auth:{requiresAuth:!0,role:"user"},ui:{disableScrollOnMobile:!0,disableMaxWidth:!1,fullWidthRouterView:!0,fullscreenOnMobile:!0},navigation:{hideRoute:!0}}},{name:"Camview",path:"/camview",component:()=>Ce(()=>import("./Camview.bUHs3eEA.0.0.40.js"),__vite__mapDeps([50,1,2,3,4,14,15,5,35,36,21,22,37,38,39,7,8,11,23,24,19,20,40,41,13,42,12,43,44,45,51,52,53,54,55,56,57,16,17,18,25,26,27,28,29,30,31,32,6,58])),meta:{name:"camview",auth:{requiresAuth:!0,role:"user"},ui:{appBgColor:"#000000",disableScroll:!0,disableMaxWidth:!0,fullWidthRouterView:!0},navigation:{icon:Qo,showMobileBottomBar:!0,showInMobileBottomBar:!0}}},{name:"NewCamera",path:"/new-camera",component:()=>Ce(()=>import("./NewCamera.BRR6R8Aq.0.0.40.js"),__vite__mapDeps([59,35,1,2,3,4,36,21,22,37,38,39,5,7,8,11,23,24,19,20,14,15,40,41,13,42,12,43,44,45,60,61,62,63,64,65,66,67,46,16,17,18,25,26,27,28,29,30,31,32,6,68])),meta:{name:"newcamera",auth:{requiresAuth:!0,role:"admin"},ui:{disableMaxWidth:!1,fullWidthRouterView:!1},navigation:{hideRoute:!0,icon:Yo,showMobileBottomBar:!0,showInMobileBottomBar:!0}}},{name:"Recordings",path:"/recordings",component:()=>Ce(()=>import("./Recordings.D50AM95m.0.0.40.js"),__vite__mapDeps([69,1,2,3,7,8,16,17,18,11,13,12,19,20,21,22,14,15,4,5,23,24,25,26,27,28,29,30,31,32,6])),meta:{name:"recordings",auth:{requiresAuth:!0,role:"admin"},ui:{disableMaxWidth:!1,fullWidthRouterView:!1},navigation:{icon:Yi,showMobileBottomBar:!0,showInMobileBottomBar:!0}}},{name:"Config",path:"/config",component:()=>Ce(()=>import("./Config.BFoCyyZM.0.0.40.js"),__vite__mapDeps([70,71,72,21,22,19,1,2,3,20,4,7,8,11,10,46,13,14,15,16,17,18,12,5,23,24,25,26,27,28,29,30,31,32,6,73])),meta:{name:"config",auth:{requiresAuth:!0,role:"admin"},ui:{disableScroll:!0,disableMaxWidth:!0,fullWidthRouterView:!0},navigation:{icon:Gn,showMobileBottomBar:!0}}},{name:"Console",path:"/console",component:()=>Ce(()=>import("./Console.DrZjod9p.0.0.40.js"),__vite__mapDeps([74,1,2,3,4,10,7,8,11,43,21,22,19,20,44,13,14,15,16,17,18,12,5,23,24,25,26,27,28,29,30,31,32,6,75])),meta:{name:"console",auth:{requiresAuth:!0,role:"admin"},ui:{disableScroll:!0,disableMaxWidth:!0,appBgColor:"#000000",fullWidthRouterView:!0},navigation:{icon:Kn,showMobileBottomBar:!0}}},{name:"Plugins",path:"/plugins",component:()=>Ce(()=>import("./Plugins.eTb8FApS.0.0.40.js"),__vite__mapDeps([76,77,71,72,21,22,19,1,2,3,20,4,78,79,7,8,42,11,43,44,80,13,14,15,81,16,17,18,12,5,23,24,25,26,27,28,29,30,31,32,6,82])),meta:{name:"plugins",auth:{requiresAuth:!0,role:"admin"},ui:{disableMaxWidth:!1,fullWidthRouterView:!1},navigation:{icon:Qn,showMobileBottomBar:!0}}},{name:"ScopedPlugin",path:"/plugins/:scope/:pluginname",component:()=>Ce(()=>import("./Plugin.XHcOtD_R.0.0.40.js"),__vite__mapDeps([83,35,1,2,3,4,36,21,22,37,38,39,5,7,8,11,23,24,19,20,14,15,40,41,13,42,12,43,44,45,77,71,72,78,79,80,81,60,61,62,63,64,65,66,67,16,17,18,25,26,27,28,29,30,31,32,6,84])),meta:{name:"plugin",auth:{requiresAuth:!0,role:"admin"},ui:{disableMaxWidth:!1,fullWidthRouterView:!1},navigation:{hideRoute:!0,showMobileBottomBar:!0}}},{name:"Plugin",path:"/plugins/:pluginname",component:()=>Ce(()=>import("./Plugin.XHcOtD_R.0.0.40.js"),__vite__mapDeps([83,35,1,2,3,4,36,21,22,37,38,39,5,7,8,11,23,24,19,20,14,15,40,41,13,42,12,43,44,45,77,71,72,78,79,80,81,60,61,62,63,64,65,66,67,16,17,18,25,26,27,28,29,30,31,32,6,84])),meta:{name:"plugin",auth:{requiresAuth:!0,role:"admin"},ui:{disableMaxWidth:!1,fullWidthRouterView:!1},navigation:{hideRoute:!0,showMobileBottomBar:!0}}},{name:"Adminpanel",path:"/admin",component:()=>Ce(()=>import("./Adminpanel.BnV2YgBI.0.0.40.js"),__vite__mapDeps([85,1,2,3,4,13,14,15,7,8,42,11,80,10,16,17,18,12,19,20,21,22,5,23,24,25,26,27,28,29,30,31,32,6,86])),meta:{name:"adminpanel",auth:{requiresAuth:!0,role:"admin"},ui:{disableMaxWidth:!1,fullWidthRouterView:!1},navigation:{routePosition:"bottom",icon:Yn,showMobileBottomBar:!0}}},{name:"Settings",path:"/settings",component:()=>Ce(()=>import("./Settings.CzbuyfYr.0.0.40.js"),__vite__mapDeps([87,1,2,3,12,19,20,21,22,13,14,15,4,7,8,16,17,18,11,5,23,24,25,26,27,28,29,30,31,32,6,88])),meta:{name:"settings",path:"/settings/account",auth:{requiresAuth:!0,role:"user"},ui:{disableMaxWidth:!1,fullWidthRouterView:!0},navigation:{routePosition:"bottom",icon:ia,showMobileBottomBar:!0,showInMobileBottomBar:!0}},children:[{name:"Settings-Account",path:"account",component:()=>Ce(()=>import("./Account.BDkqURwa.0.0.40.js"),__vite__mapDeps([89,1,2,3,4,5,7,8,13,14,15,16,17,18,11,12,19,20,21,22,23,24,25,26,27,28,29,30,31,32,6,90])),meta:{name:"account",description:"account_description",auth:{requiresAuth:!0,role:"user"},ui:{disableMaxWidth:!1,fullWidthRouterView:!0},navigation:{icon:Xo,showMobileBottomBar:!0}}},{name:"Settings-Appearance",path:"appearance",component:()=>Ce(()=>import("./Appearance.Doe36b4o.0.0.40.js"),__vite__mapDeps([91,1,2,3,13,14,15,7,8,16,17,18,11,12,19,20,21,22,4,5,23,24,25,26,27,28,29,30,31,32,6])),meta:{name:"appearance",description:"appearance_description",auth:{requiresAuth:!0,role:"user"},ui:{disableMaxWidth:!1,fullWidthRouterView:!0},navigation:{hideRoute:!0,icon:Jo,showMobileBottomBar:!0}}},{name:"Settings-User",path:"user",component:()=>Ce(()=>import("./User.CeRd6RLu.0.0.40.js"),__vite__mapDeps([92,1,2,3,4,5,14,15,7,8,16,17,18,11,13,12,19,20,21,22,23,24,25,26,27,28,29,30,31,32,6,93])),meta:{name:"user",description:"user_description",auth:{requiresAuth:!0,role:"admin"},ui:{disableMaxWidth:!1,fullWidthRouterView:!0},navigation:{hideRoute:!0,icon:ea,showMobileBottomBar:!0}}},{name:"Settings-Recordings",path:"recordings",component:()=>Ce(()=>import("./Recordings.0cfZFrTe.0.0.40.js"),__vite__mapDeps([94,1,2,3,7,8,16,17,18,11,13,12,19,20,21,22,14,15,4,5,23,24,25,26,27,28,29,30,31,32,6])),meta:{name:"recordings",description:"recordings_description",auth:{requiresAuth:!0,role:"admin"},ui:{disableMaxWidth:!1,fullWidthRouterView:!0},navigation:{hideRoute:!0,icon:Yi,showMobileBottomBar:!0}}},{name:"Settings-Backup",path:"backup",component:()=>Ce(()=>import("./Backup.TzSY6VNu.0.0.40.js"),__vite__mapDeps([95,1,2,3,7,8,9,10,11,4,14,15,16,17,18,13,12,19,20,21,22,5,23,24,25,26,27,28,29,30,31,32,6,96])),meta:{name:"backup",description:"backup_description",auth:{requiresAuth:!0,role:"admin"},ui:{disableMaxWidth:!1,fullWidthRouterView:!0},navigation:{hideRoute:!0,icon:ta,showMobileBottomBar:!0}}},{name:"Settings-System",path:"system",component:()=>Ce(()=>import("./System.CKIo2_uX.0.0.40.js"),__vite__mapDeps([97,1,2,3,5,10,7,8,11,43,21,22,19,20,44,23,24,46,98,14,15,16,17,18,13,12,4,25,26,27,28,29,30,31,32,6])),meta:{name:"system",description:"system_description",auth:{requiresAuth:!0,role:"admin"},ui:{disableMaxWidth:!1,fullWidthRouterView:!0},navigation:{hideRoute:!0,icon:sa,showMobileBottomBar:!0}}}]}],Qt=xo({history:ko(),routes:Ts,scrollBehavior(){return{x:0,y:0,behavior:"smooth"}}});Qt.absUrl=(s="#",t=!0)=>{const e=document.createElement("a");e.href=s,e.target=t&&s!=="#"?"_blank":"",t&&(e.rel="noopener noreferrer"),e.click()};Qt.beforeEach(async(s,t,e)=>{const i=Yt(),n=Ie(),r=$r(),o=s.name.toLowerCase(),a=localStorage.getItem("lastPage");if(r.routerLoading=!0,n.loginState.user){n.loginState.user.firstLogin&&s.path!=="/first-steps"?e("/first-steps"):!n.loginState.user.firstLogin&&s.path==="/first-steps"||s.meta.auth.requiresAuth&&s.meta.auth.role&&n.loginState.user.role!==s.meta.auth.role&&n.loginState.user.role!=="admin"?e("/cameras"):o==="login"&&a&&a!=="/"?e(a):s.path==="/settings"?e("/settings/account"):e(),await i.cancelQueries(void 0,{revert:!1});try{s.path!=="/settings"&&await tr()}catch(c){console.error(c),await n.logout(),Qt.push("/")}}else o!=="login"?e("/"):e();r.routerLoading=!1});Qt.afterEach(s=>{const t=["login","notfound","firststeps"],e=s.name.toLowerCase();t.includes(e)||localStorage.setItem("lastPage",s.path),window.scrollTo(0,0)});const Bs=class Bs{constructor(){}static get manager(){return this._manager||this.createManager(),this._manager}static createManager(){Bs._manager=new ga(window.origin,{reconnection:!0,reconnectionAttempts:1/0,reconnectionDelay:1e3,reconnectionDelayMax:5e3,randomizationFactor:.5,timeout:2e4,autoConnect:!0,transports:["websocket","polling"],rejectUnauthorized:!1,secure:!0})}};V(Bs,"_manager");let Ei=Bs;const zs=Lt("socket",()=>{const s=Q(new Map),t=Q(!1),e=Q(!0),i=()=>{const m=Ie(),y=s.value.get("/camera.ui");return y||r("/camera.ui",m)},n=m=>{const y=Ie(),w=s.value.get(m);return w||r(m,y)},r=(m,y)=>{const w=Q(a(m,y));return o(w.value,m,y),s.value.set(m,w.value),w.value},o=(m,y,w)=>{m.socket.on("connect",()=>{var _;(_=m.connected)==null||_.next()}),y==="/camera.ui"&&(m.socket.on("connect",()=>{e.value?(t.value=!0,e.value=!1):d()}),m.socket.on("disconnect",()=>{t.value=!1}),m.socket.on("unauthenticated",()=>{t.value=!1,w.logout()}),m.socket.on("invalidToken",_=>{w.loginState.access_token===_&&(t.value=!1,w.logout())})),m.end=_=>{var R;y==="/camera.ui"&&(t.value=!1),m.socket.emit("end",_),m.socket.removeAllListeners(),(R=m.connected)==null||R.complete()},m.disconnect=_=>{var R;y==="/camera.ui"&&(t.value=!1),(R=m.end)==null||R.call(m,_),m.socket.disconnect(),s.value.delete(y)}},a=(m,y)=>{const w=`Bearer ${y.loginState.access_token}`,_=Ei.manager.socket(m,{auth:{token:w}});return{socket:_,request:($,C)=>new ba(P=>{_.emit($,C,B=>{typeof B=="object"&&B.error?P.error(B):P.next(B),P.complete()})})}},c=J(()=>m=>s.value.get(m)),u=m=>{s.value.forEach(y=>{var w;(w=y.disconnect)==null||w.call(y,m)}),t.value=!1},d=()=>{window.location.reload()};return{isConnected:t,namespaceConnectionCache:s,connect:i,connectToNamespace:n,getExistingNamespace:c,disconnect:u}}),zi=Lt("theme",()=>{const s=localStorage.getItem("theme"),t=s?JSON.parse(s):{theme:"dark",autoMode:!0},e=Zi(t.theme,{onBeforeChange(){if(n.value)window.scrollTo(0,0);else return!1},onChanged(_){t.theme=_,localStorage.setItem("theme",JSON.stringify(t))}}),i=Zi(t.autoMode,{onBeforeChange(_){if(_&&!n.value)return!1},onChanged(_){t.autoMode=_,localStorage.setItem("theme",JSON.stringify(t))}}),n=Q(!0),r=Nn(["light","dark"]),o=Ro();ye(i,_=>{_&&(e.value=c())}),ye(e,_=>{Dn(()=>{a(),d(_),m(_)}),n.value=!1});const a=()=>{let _;const R=document.getElementById("themeToggle"),$=R==null?void 0:R.getBoundingClientRect();if($){const B=R.clientWidth,D=R.clientWidth;_={x:$.x+B/2,y:$.y+D/2}}else _={x:window.innerWidth/2,y:window.innerHeight/2};const C=document.getElementById("app"),P=document.getElementsByTagName("BODY")[0];if(C){const B=C.cloneNode(!1);B.id="appClone",B.style.cssText=window.getComputedStyle(C).cssText,B.innerHTML=C.innerHTML;const D=Math.max(window.innerWidth,window.innerHeight)*2;C.style.setProperty("--clip-size","0px"),C.style.setProperty("--clip-x-position",`${_.x}px`),C.style.setProperty("--clip-y-position",`${_.y}px`),C.classList.add("app-transition"),B.classList.remove("app-transition"),B.classList.add("app-placeholder"),P.appendChild(B);let K;const se=350,H=te=>{K||(K=te);const Z=te-K,U=Math.min(Z/se,1),_e=U*D;C.style.setProperty("--clip-size",`${_e}px`),U<1?requestAnimationFrame(H):(C.classList.remove("app-transition"),C.style.removeProperty("--clip-size"),C.style.removeProperty("--clip-x-position"),C.style.removeProperty("--clip-y-position"),P.removeChild(B),n.value=!0)};requestAnimationFrame(H)}},c=()=>window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",u=()=>i.value?c():e.value,d=_=>{const R=document.getElementById("app");R==null||R.setAttribute("data-theme",_),document.body.setAttribute("data-theme",_),document.documentElement.setAttribute("data-mode",_)},m=_=>{o.global.name.value=_},y=()=>{e.value==="light"&&!i.value?e.value="dark":e.value==="dark"&&!i.value?i.value=!0:i.value&&(i.value=!1,e.value="light")},w=Hn("(prefers-color-scheme: dark)");return ye(w,_=>{i.value&&(e.value=_?"dark":"light")}),d(u()),m(u()),{colors:r,theme:e,autoMode:i,setAppTheme:d,setVuetifyTheme:m,getSystemMode:c,toggleTheme:y}}),of=["account","appearance","user","recordings","backup","system"],qs=Lt("ui",()=>{const s=Li("ui",{cameras:{showEvents:!0},camview:{dragDisabled:!1},config:{zoom:12},console:{zoom:12},interface:{showBottomBarOnMobile:!0,selectedSettingsView:"account"}});return s.value.cameras||(s.value.cameras={showEvents:!0}),s.value.cameras.showEvents===void 0&&(s.value.cameras.showEvents=!0),s.value.camview||(s.value.camview={dragDisabled:!1}),s.value.camview.dragDisabled===void 0&&(s.value.camview.dragDisabled=!1),s.value.config||(s.value.config={zoom:12}),s.value.console.zoom===void 0&&(s.value.console.zoom=12),s.value.console||(s.value.console={zoom:12}),s.value.interface.showBottomBarOnMobile===void 0&&(s.value.interface.showBottomBarOnMobile=!0),s.value.interface||(s.value.interface={showBottomBarOnMobile:!0,selectedSettingsView:"account"}),!s.value.interface.showBottomBarOnMobile===void 0&&(s.value.interface.showBottomBarOnMobile=!0),s.value.interface.selectedSettingsView||(s.value.interface.selectedSettingsView="account"),{uiSettings:s}}),vu={class:"relative"},yu={key:0,class:"navigation-text ml-3"},_u={key:0,class:"mt-auto"},wu={class:"relative"},Su={key:0,class:"navigation-text ml-3"},xu={key:0,class:"w-full flex flex-row items-center"},ku={class:"navigation-text ml-3 text-white"},Cu=He({__name:"VSidebarNavigation",props:{sidebarState:{default:"closed"}},setup(s){const t=Ie(),e=zi(),i=zs(),n=wt(),{isTouch:r}=Or(),o=qs(),a=s,{uiSettings:c}=Ze(o),{theme:u}=Ze(e),{sidebarState:d}=ft(a),{loginLoading:m,loginState:y}=ft(t),w=Q(),_=Q(null),R=Q(!1),$=Q(!1),C=J(()=>d.value==="opened"||d.value==="overlay"),P=J(()=>Ts.filter(H=>{var te,Z,U;return!((te=H.meta)!=null&&te.navigation.hideRoute)&&((Z=H.meta)==null?void 0:Z.navigation.icon)&&((U=H.meta)==null?void 0:U.navigation.routePosition)!=="bottom"&&Ls(H)})),B=J(()=>Ts.filter(H=>{var te,Z,U;return!((te=H.meta)!=null&&te.navigation.hideRoute)&&((Z=H.meta)==null?void 0:Z.navigation.icon)&&((U=H.meta)==null?void 0:U.navigation.routePosition)==="bottom"&&Ls(H)})),D=J(()=>{let H=P.value.findIndex(Z=>Z.path===n.path);const te=n.path.split("/").filter(Z=>Z);if(te.length>1){const Z=te[0];H=P.value.findIndex(U=>U.path===`/${Z}`)}return H}),K=J(()=>{let H=B.value.findIndex(Z=>Z.path===n.path);const te=n.path.split("/").filter(Z=>Z);if(te.length>1){const Z=te[0];H=B.value.findIndex(U=>U.path===`/${Z}`)}return H});ye(y,()=>{var H,te,Z;((H=y.value.user)==null?void 0:H.role)==="admin"?(w.value=i.connectToNamespace("/server"),w.value.socket.on("plugin-updates",U=>{$.value=U.length>0||!1}),w.value.socket.on("server-updates",U=>{R.value=U.updateAvailable||U.betaUpdateAvailable||!1}),w.value.request("get-updates")):(Z=(te=w.value)==null?void 0:te.disconnect)==null||Z.call(te)},{deep:!0,immediate:!0});const se=async()=>{var H,te;try{await t.logout()}catch(Z){console.error(((te=(H=Z.response)==null?void 0:H.data)==null?void 0:te.message)??Z.message??Z)}};return Pi(()=>{var H,te;(te=(H=w.value)==null?void 0:H.end)==null||te.call(H)}),(H,te)=>{const Z=Ir;return I(),F("div",{ref_key:"navigation",ref:_,class:"navigation flex flex-auto flex-col w-full relative"},[(I(!0),F(Ft,null,ys(v(P),(U,_e)=>_s((I(),xe(Je,{key:_e,class:tt({"navigation-inner":!0,"navigation-inner-open":v(C),"navigation-inner-selected":v(D)===_e,"mb-10":_e===v(P).length-1}),to:U.path,active:v(D)===_e,theme:"dark",rounded:""},{default:j(()=>[A("div",vu,[U.name==="Plugins"&&v($)?(I(),F("div",{key:0,class:"absolute z-1 nav-badge",style:ve({background:v(D)===_e?"white":"red"})},null,4)):oe("",!0),O(ke,{size:"20"},{default:j(()=>{var it;return[he(G((it=U.meta)==null?void 0:it.navigation.icon),1)]}),_:2},1024)]),O(Pt,{name:"navigation-fade"},{default:j(()=>[v(C)?(I(),F("div",yu,G(H.$t(`navigation.${U.name.toLowerCase()}`)),1)):oe("",!0)]),_:2},1024)]),_:2},1032,["class","to","active"])),[[Ki,{disabled:v(C)||v(r),text:H.$t(`navigation.${U.name.toLowerCase()}`),location:"end",theme:v(u)}]])),128)),v(B).length?(I(),F("div",_u)):oe("",!0),(I(!0),F(Ft,null,ys(v(B),(U,_e)=>_s((I(),xe(Je,{key:_e,class:tt(["navigation-inner",{"navigation-inner-open":v(C)}]),to:U.path==="/settings"?`${U.path}/${v(c).interface.selectedSettingsView}`:U.path,theme:"dark",rounded:""},{default:j(()=>[A("div",wu,[U.name==="Settings"&&v(R)?(I(),F("div",{key:0,class:"absolute z-1 nav-badge",style:ve({background:v(K)===_e?"white":"red"})},null,4)):oe("",!0),O(ke,{size:"20"},{default:j(()=>{var it;return[he(G((it=U.meta)==null?void 0:it.navigation.icon),1)]}),_:2},1024)]),O(Pt,{name:"navigation-fade"},{default:j(()=>[v(C)?(I(),F("div",Su,G(H.$t(`navigation.${U.name.toLowerCase()}`)),1)):oe("",!0)]),_:2},1024)]),_:2},1032,["class","to"])),[[Ki,{disabled:v(C)||v(r),text:H.$t(`navigation.${U.name.toLowerCase()}`),location:"end",theme:v(u)}]])),128)),O(Je,{to:"/settings/account",class:"navigation-inner mb-0",active:!1,rounded:""},{default:j(()=>[O(Z,{src:"avatar",size:"20","show-border":""}),O(Pt,{name:"navigation-fade"},{default:j(()=>{var U;return[v(C)?(I(),F("div",xu,[A("div",ku,G((U=v(y).user)==null?void 0:U.username),1),O(je,{class:"ml-auto",size:"28",color:"#fff",density:"compact",variant:"text",icon:"",loading:v(m),onClick:st(se,["prevent"])},{default:j(()=>[O(ke,{size:"20"},{default:j(()=>[he(G(v(na)),1)]),_:1})]),_:1},8,["loading"])])):oe("",!0)]}),_:1})]),_:1})],512)}}}),Eu=ae(Cu,[["__scopeId","data-v-509ab887"]]),Xr=Symbol("symbol-key");var dt=(s=>(s[s.MINWIDTH=70]="MINWIDTH",s[s.MAXWIDTH=250]="MAXWIDTH",s))(dt||{});const Mu={class:"sidebar-inner hide-scrollbar flex flex-col items-center p-4"},Pu={key:0,class:"ml-3 font-bold text-white"},Au=He({__name:"VSideBar",props:{state:{type:Boolean,default:!1}},emits:["sidebar-state"],setup(s,{emit:t}){const{mobileActive:e}=Jt(),i=t,n=s,{state:r}=ft(n),o=Q(window.electron!==void 0),a=Q(null),c=Q(0),u=Q(0),d=Q(),m=Q(!1),y=wt(),w=Un(Xr),_=J(()=>{let P=`left: ${c.value}px`;const B=`width: calc(env(safe-area-inset-left, 0px) + ${R.value}px)`,D="padding-left: env(safe-area-inset-left, 0px)",K="padding-top: env(safe-area-inset-top, 0px)";return d.value==="closed"&&(P=`left: calc(${c.value}px - env(safe-area-inset-left, 0px))`),`${P};${B};${D};${K};border-right: 1px solid var(--background-inner-sidebar)`}),R=J(()=>u.value>0?u.value:dt.MINWIDTH),$=J(()=>d.value==="opened"||d.value==="overlay");ye(r,()=>{var B;const P=(B=y.meta)!=null&&B.ui.noMinifiedSidebar?r.value?"overlay":"closed":void 0;C(P)}),ye(e,()=>{var B;const P=!$.value&&((B=y.meta)!=null&&B.ui.noMinifiedSidebar)?"closed":void 0;C(P)}),ye(y,()=>{var P,B;(P=y.meta)!=null&&P.ui.hideSidebar||(B=y.meta)!=null&&B.ui.noMinifiedSidebar||e.value?C("closed"):C("minified")},{deep:!0}),ye(d,P=>{P&&(w.emit({sidebarState:P}),i("sidebar-state",P))});const C=P=>{let B;switch(P?B=P:!e.value&&!r.value?B="minified":e.value&&!r.value?B="closed":e.value&&r.value?B="overlay":B="opened",B){case"overlay":d.value="overlay",c.value=0,u.value=dt.MAXWIDTH,m.value=!0;break;case"opened":d.value="opened",c.value=0,u.value=dt.MAXWIDTH,m.value=!1;break;case"closed":d.value="closed",c.value=-dt.MINWIDTH,u.value=0,m.value=!1;break;case"minified":d.value="minified",c.value=0,u.value=0,m.value=!1;break}};return Vs(()=>{var P,B,D;if((P=y.meta)!=null&&P.ui.defaultSidebarState){C((B=y.meta)==null?void 0:B.ui.defaultSidebarState);return}e.value||(D=y.meta)!=null&&D.ui.noMinifiedSidebar?C("closed"):C("minified")}),(P,B)=>{const D=Eu;return I(),F("div",{ref_key:"sidebar",ref:a,class:"sidebar camera-no-outside",style:ve(v(_))},[A("div",Mu,[A("div",{class:"cursor-pointer flex flex-row w-full items-center",style:ve(` margin-top: ${v(o)?30:0}px; padding-left: 4px`),onClick:B[0]||(B[0]=K=>P.$router.push({path:"/cameras"}))},[O(v(Jn),{src:v(As)("logo_animated.svg"),width:"32px",height:"32px",title:"camera.ui","aria-label":"camera.ui"},null,8,["src"]),O(Pt,{name:"navigation-fade"},{default:j(()=>[v($)?(I(),F("div",Pu,"camera.ui")):oe("",!0)]),_:1})],4),O(D,{class:"mt-7","sidebar-state":v(d)},null,8,["sidebar-state"])])],4)}}}),Lu=ae(Au,[["__scopeId","data-v-057e6c4d"]]),Tu=He({__name:"VCustomDialog",props:Ui({title:{},confirmText:{default:"components.form.button.save"},cancelText:{default:"components.form.button.close"},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},width:{default:800},hideConfirmButton:{type:Boolean,default:!1},hideCancelButton:{type:Boolean,default:!1},fullscreenContent:{type:Boolean,default:!1},fullscreen:{type:Boolean,default:!1}},{modelValue:{type:Boolean,required:!0},modelModifiers:{}}),emits:Ui(["close","confirm"],["update:modelValue"]),setup(s,{emit:t}){const{smallMobileActive:e}=Jt(),i=t,n=go(s,"modelValue"),r=Q("0"),o=Q(1),a=Q(null),c=s,{title:u,confirmText:d,cancelText:m,loading:y,disabled:w,hideCancelButton:_,hideConfirmButton:R,width:$,fullscreenContent:C,fullscreen:P}=ft(c),{isSwiping:B,lengthY:D}=Po(a,{passive:!0,onSwipe(){if(D.value<0){const Z=Math.abs(D.value);r.value=`${Z}px`,o.value=1.1-Z/document.body.clientHeight}else r.value="0",o.value=1},onSwipeEnd(){D.value<0&&Math.abs(D.value)/document.body.clientHeight>=.25?(r.value="100%",o.value=0,setTimeout(()=>se(),50)):(r.value="0",o.value=1)}}),K=J(()=>P.value||e.value),se=()=>{n.value=!1,i("close")},H=()=>i("confirm"),te=()=>{r.value="0",o.value=1};return ye(n,Z=>{Z&&te()},{immediate:!0}),(Z,U)=>(I(),xe($o,{modelValue:n.value,"onUpdate:modelValue":U[3]||(U[3]=_e=>n.value=_e),scrim:!v(K),transition:v(K)?"dialog-bottom-transition":void 0,fullscreen:v(K),"scroll-strategy":"none",scrollable:"",width:v(K)?void 0:v($)},{default:j(()=>[O(ws,{class:tt(["dialog pt-safe",{animated:!v(B)}]),style:ve({top:v(r),opacity:v(o)})},{default:j(()=>[O(Io,{ref_key:"dialogTitle",ref:a,style:{"touch-action":"none"}},{default:j(()=>[A("div",{class:tt(["flex",{"pl-safe":v(K),"pr-safe":v(K)}])},[A("span",null,G(v(u)),1),O(je,{class:"ml-auto",size:"28",rounded:"",density:"compact",variant:"text",onClick:U[0]||(U[0]=st(_e=>se(),["prevent"]))},{default:j(()=>[O(ke,{size:"20"},{default:j(()=>[he(G(v(Xn)),1)]),_:1})]),_:1})],2)]),_:1},512),O(Oo,{style:ve(v(C)?"padding: 0 !important":"")},{default:j(()=>[A("div",{class:tt(["w-full h-full",{"pl-safe":v(K),"pr-safe":v(K)}])},[bo(Z.$slots,"content",{},void 0,!0)],2)]),_:3},8,["style"]),O(Zn,null,{default:j(()=>[A("div",{class:tt(["w-full flex",{"pl-safe":v(K),"pr-safe":v(K)}])},[v(_)?oe("",!0):(I(),xe(je,{key:0,class:"button-default",variant:"flat",rounded:"",loading:v(y),onClick:U[1]||(U[1]=st(_e=>se(),["prevent"]))},{default:j(()=>[he(G(Z.$t(v(m))),1)]),_:1},8,["loading"])),v(R)?oe("",!0):(I(),xe(je,{key:1,class:"ml-auto",variant:"flat",color:"green",type:"submit",rounded:"",loading:v(y),disabled:v(w),onClick:U[2]||(U[2]=st(_e=>H(),["prevent"]))},{default:j(()=>[he(G(Z.$t(v(d))),1)]),_:1},8,["loading","disabled"]))],2)]),_:1})]),_:3},8,["class","style"])]),_:3},8,["modelValue","scrim","transition","fullscreen","width"]))}}),Bu=ae(Tu,[["__scopeId","data-v-c59549bd"]]),Vu={class:"notifications overflow-hidden overflow-y-auto"},Ru={class:"notification-item w-full flex flex-row"},Iu={class:"notification-container w-full"},Ou={class:"w-full h-full flex flex-col justify-center"},$u={class:"w-full flex flex-row mb-1"},ju={class:"flex flex-row items-center justify-center"},Nu={class:"notification-title truncate mr-2"},Du={class:"notification-time flex items-center ml-auto"},zu={class:"notification-text truncate"},qu={class:"w-full h-full flex justify-center items-center py-4"},Fu=He({__name:"VNotificationMenu",setup(s){const t=Ai(),e=zs(),i=Q(),n=Q(),r=Q(!1),o=Q(!1),a=Q([]),c=()=>{var w;a.value.splice(0,a.value.length),(w=i.value)==null||w.socket.emit("clear-notifications")},u=w=>{switch(w){case"info":return"rgb(33, 150, 243)";case"warn":return"rgb(251, 140, 0)";case"error":return"rgb(176, 0, 32)";default:return"rgb(69, 69, 69)"}},d=w=>{n.value=w,o.value=!0},m=()=>{o.value=!1,setTimeout(()=>{n.value=void 0},300)},y=()=>{var _;const w=n.value;if(w){const R=a.value.findIndex($=>$._id===w._id);R!==-1&&(a.value.splice(R,1),(_=i.value)==null||_.socket.emit("remove-notification",w._id)),w.link&&t.push({path:w.link})}m()};return Vs(()=>{i.value=e.connectToNamespace("/notifications"),i.value.request("get-notifications").subscribe(w=>{a.value=w}),i.value.socket.on("notifications",w=>{a.value=w}),i.value.socket.on("remove-notification",w=>{const _=a.value.findIndex(R=>R._id===w||R.title===w);_!==-1&&a.value.splice(_,1)}),i.value.socket.on("clear-notifications",()=>{a.value=[]})}),Pi(()=>{var w,_;(_=(w=i.value)==null?void 0:w.end)==null||_.call(w)}),(w,_)=>{var $,C;const R=Bu;return I(),F("div",null,[O(Wn,{modelValue:v(r),"onUpdate:modelValue":_[1]||(_[1]=P=>Ht(r)?r.value=P:null),"close-on-content-click":"",location:"bottom",offset:"5"},{activator:j(({props:P})=>[v(Ls)(void 0,"admin")?(I(),xe(je,zt({key:0,class:"no-outside no-drag text-color",size:"28",rounded:"",density:"compact",variant:"text"},P),{default:j(()=>[v(a).length?(I(),xe(jo,{key:0,color:"red",dot:""},{default:j(()=>[O(ke,{size:"20"},{default:j(()=>[he(G(v(Xi)),1)]),_:1})]),_:1})):(I(),xe(ke,{key:1,size:"20"},{default:j(()=>[he(G(v(Xi)),1)]),_:1}))]),_:2},1040)):oe("",!0)]),default:j(()=>[v(a).length?(I(),xe(ws,{key:0,width:"300","max-height":"400",style:{border:"1px solid var(--background-timeline)","border-radius":"10px"},elevation:"3"},{default:j(()=>[A("div",Vu,[(I(!0),F(Ft,null,ys(v(a),(P,B)=>(I(),F("div",{key:B},[O(Je,{class:"notification w-full block",style:{"border-radius":"8px !important",margin:"0px !important"},onClick:st(D=>d(P),["prevent"])},{default:j(()=>[A("div",Ru,[A("div",Iu,[A("div",Ou,[A("div",$u,[A("div",ju,[A("span",Nu,G(P.title),1),O(Qi,{size:"x-small",color:u(P.type)},{default:j(()=>[he(G(w.$t(`components.notification_menu.${P.type}`)),1)]),_:2},1032,["color"])]),A("div",Du,G(v(Cc)(P.timestamp,"DD. MMM, HH:mm")),1)]),A("div",zu,G(P.text),1)])])])]),_:2},1032,["onClick"]),B!==v(a).length-1?(I(),xe(Ss,{key:0,class:"notification-divider my-1"})):oe("",!0)]))),128))]),O(Ss,{class:"notification-divider"}),O(Zn,{style:{padding:"0 !important",margin:"0 5px",height:"46px !important","min-height":"unset"}},{default:j(()=>[O(je,{width:"100%",color:"#df2a4c",style:{"border-radius":"8px !important"},onClick:_[0]||(_[0]=st(P=>c(),["prevent"]))},{default:j(()=>[he(G(w.$t("components.notification_menu.clear_notifications"))+" ",1),O(Qi,{size:"x-small",class:"ml-2"},{default:j(()=>[he(G(v(a).length),1)]),_:1})]),_:1})]),_:1})]),_:1})):(I(),xe(ws,{key:1,width:"300","max-height":"400",style:{border:"1px solid var(--background-timeline)","border-radius":"10px"},elevation:"3"},{default:j(()=>[A("div",qu,[A("span",null,G(w.$t("components.notification_menu.no_notifications")),1)])]),_:1}))]),_:1},8,["modelValue"]),O(R,{modelValue:v(o),"onUpdate:modelValue":_[2]||(_[2]=P=>Ht(o)?o.value=P:null),title:(($=v(n))==null?void 0:$.title)||"","confirm-text":(C=v(n))!=null&&C.link?"components.form.button.go_to_message":"components.form.button.mark_as_read",onConfirm:_[3]||(_[3]=P=>y())},{content:j(()=>{var P;return[A("span",null,G((P=v(n))==null?void 0:P.text),1)]}),_:1},8,["modelValue","title","confirm-text"])])}}}),Hu=ae(Fu,[["__scopeId","data-v-59880c3a"]]),Uu={id:"themeToggle",class:"theme-picker relative"},Zu={key:0,class:"theme-picker-auto"},Wu={key:0,class:"theme-picker-automode"},Gu=He({__name:"VThemePicker",setup(s){const t=zi(),{theme:e,autoMode:i}=Ze(t),n=()=>{e.value==="light"&&!i.value?e.value="dark":e.value==="dark"&&!i.value?i.value=!0:i.value&&(i.value=!1,e.value="light")};return(r,o)=>(I(),F("div",Uu,[v(i)?(I(),F("div",Zu,"A")):oe("",!0),O(je,{size:"28",class:"text-color",rounded:"",density:"compact",variant:"text",onClick:o[0]||(o[0]=a=>n())},{default:j(()=>[v(i)?(I(),F("div",Wu)):oe("",!0),O(ke,{size:"20",style:ve(`${v(e)==="dark"?"transform: rotate(-45deg)":""}`)},{default:j(()=>[he(G(v(e)==="dark"?v(ra):v(oa)),1)]),_:1},8,["style"])]),_:1})]))}}),Ku=ae(Gu,[["__scopeId","data-v-8d4b2e13"]]),Qu={class:"sidebar-button fixed z-10 no-outside no-drag"},Yu={for:"check",class:"menu-icon-label"},Xu={class:"wrapper"},Ju={class:"flex flex-row w-full justify-start items-center"},eh={class:"icon-wrapper"},th={class:"menu-item ml-2"},sh={class:"flex flex-row w-full justify-start items-center"},ih={class:"icon-wrapper"},nh={class:"menu-item ml-2"},rh={class:"flex flex-row w-full justify-start items-center"},oh={class:"icon-wrapper"},ah={class:"menu-item ml-2"},lh={class:"flex flex-row w-full justify-start items-center"},ch={class:"icon-wrapper"},uh={class:"menu-item ml-2"},hh={class:"flex flex-row w-full justify-start items-center"},dh={class:"icon-wrapper"},ph={class:"menu-item ml-2"},fh={class:"flex flex-row w-full justify-start items-center"},mh={class:"icon-wrapper"},gh={class:"menu-item ml-2"},bh={class:"flex flex-row w-full justify-start items-center"},vh={class:"icon-wrapper"},yh={class:"menu-item ml-2",style:{color:"#ef4444 !important"}},_h=He({__name:"VUserMenu",setup(s){const t=Ie(),{loginState:e}=t,i=Q(!1),n=async()=>{var o,a;try{await t.logout()}catch(c){console.error(((a=(o=c.response)==null?void 0:o.data)==null?void 0:a.message)??c.message??c)}},r=()=>{window.location.reload()};return(o,a)=>{var u;const c=Ir;return I(),F("div",null,[A("div",Qu,[O(je,{size:"32",icon:"",density:"compact",variant:(u=o.$route.meta)!=null&&u.ui.hideTopbar?"elevated":"text",class:"no-drag camera-no-outside",onClick:a[1]||(a[1]=st(d=>i.value=!v(i),["prevent"]))},{default:j(()=>[A("label",Yu,[_s(A("input",{id:"check","onUpdate:modelValue":a[0]||(a[0]=d=>Ht(i)?i.value=d:null),type:"checkbox"},null,512),[[zn,v(i)]]),a[5]||(a[5]=A("span",null,null,-1)),a[6]||(a[6]=A("span",null,null,-1)),a[7]||(a[7]=A("span",null,null,-1))])]),_:1},8,["variant"])]),O(Wn,{modelValue:v(i),"onUpdate:modelValue":a[4]||(a[4]=d=>Ht(i)?i.value=d:null),"close-on-content-click":"",location:"bottom",offset:"17",target:"parent"},{default:j(()=>[O(ws,{width:"300",style:{border:"1px solid var(--background-timeline)","border-radius":"10px"},elevation:"3"},{default:j(()=>[A("div",Xu,[O(Je,{to:"/settings/account",style:{"border-radius":"5px !important"}},{default:j(()=>{var d;return[A("div",Ju,[A("div",eh,[O(c,{src:"avatar",size:25,"show-border":"","spinner-size":10,"spinner-width":1})]),A("span",th,G((d=v(e).user)==null?void 0:d.username),1)])]}),_:1}),O(Ss,{class:"divider my-1"}),O(Je,{to:"/admin",style:{"border-radius":"5px !important"}},{default:j(()=>[A("div",sh,[A("div",ih,[O(ke,{size:"20",class:"text-passive"},{default:j(()=>[he(G(v(Yn)),1)]),_:1})]),A("span",nh,G(o.$t("components.user_menu.admin_panel")),1)])]),_:1}),a[8]||(a[8]=A("div",{class:"my-1"},null,-1)),O(Je,{to:"/plugins",style:{"border-radius":"5px !important"}},{default:j(()=>[A("div",rh,[A("div",oh,[O(ke,{size:"20",class:"text-passive"},{default:j(()=>[he(G(v(Qn)),1)]),_:1})]),A("span",ah,G(o.$t("components.user_menu.plugins")),1)])]),_:1}),a[9]||(a[9]=A("div",{class:"my-1"},null,-1)),O(Je,{to:"/console",style:{"border-radius":"5px !important"}},{default:j(()=>[A("div",lh,[A("div",ch,[O(ke,{size:"20",class:"text-passive"},{default:j(()=>[he(G(v(Kn)),1)]),_:1})]),A("span",uh,G(o.$t("components.user_menu.console")),1)])]),_:1}),a[10]||(a[10]=A("div",{class:"my-1"},null,-1)),O(Je,{to:"/config",style:{"border-radius":"5px !important"}},{default:j(()=>[A("div",hh,[A("div",dh,[O(ke,{size:"20",class:"text-passive"},{default:j(()=>[he(G(v(Gn)),1)]),_:1})]),A("span",ph,G(o.$t("components.user_menu.config")),1)])]),_:1}),a[11]||(a[11]=A("div",{class:"my-1"},null,-1)),O(Je,{style:{"border-radius":"5px !important"},onClick:a[2]||(a[2]=st(d=>r(),["prevent"]))},{default:j(()=>[A("div",fh,[A("div",mh,[O(ke,{size:"20",class:"text-passive"},{default:j(()=>[he(G(v(aa)),1)]),_:1})]),A("span",gh,G(o.$t("components.user_menu.reload")),1)])]),_:1}),O(Ss,{class:"divider my-1"}),O(Je,{style:{color:"#ef4444 !important","border-radius":"5px !important"},onClick:a[3]||(a[3]=d=>n())},{default:j(()=>[A("div",bh,[A("div",vh,[O(ke,{size:"20",class:"red"},{default:j(()=>[he(G(v(la)),1)]),_:1})]),A("span",yh,G(o.$t("components.user_menu.logout")),1)])]),_:1})])]),_:1})]),_:1},8,["modelValue"])])}}}),wh=ae(_h,[["__scopeId","data-v-eeba1ae2"]]);var bt=(s=>(s[s.HEIGHT=45]="HEIGHT",s[s.OFFSET=5]="OFFSET",s))(bt||{});const Sh=He({__name:"VTopBar",props:{sidebarState:{default:"closed"}},emits:["topbar-state"],setup(s,{emit:t}){const e=s,i=t,n=qs(),r=wt(),o=zs(),{extraSmallMobileActive:a}=Jt(),{uiSettings:c}=Ze(n),{sidebarState:u}=ft(e),d=Q(),m=Q("ready"),y=Q(),w=Un(Xr),_=Ao(),R=J(()=>{var P;let C="calc(env(safe-area-inset-left, 0px) + 0.5rem)";if(!((P=r.meta)!=null&&P.ui.hideSidebar))switch(u.value){case"closed":case"overlay":C="calc(env(safe-area-inset-left, 0px) + 0.5rem)";break;case"minified":C="0.5rem";break;case"opened":C="0.5rem";break}return`padding-left: ${C}`}),$=J(()=>_.y.value>=bt.OFFSET?`height: calc(env(safe-area-inset-top, 0px) + ${bt.HEIGHT}px);`:`height: calc(env(safe-area-inset-top, 0px) + ${bt.HEIGHT}px);`);return ye(_.y,C=>{C>=bt.OFFSET?d.value="minified":d.value="default"}),ye(d,C=>{C&&(w.emit({topbarState:C}),i("topbar-state",C))}),ye(m,(C,P)=>{P==="loading"&&C==="ready"&&window.location.reload()}),Vs(()=>{_.y.value===0&&(d.value="default")}),Rs(()=>{var C,P;_.y.value>=bt.OFFSET&&(d.value="default"),y.value=o.getExistingNamespace("/camera.ui"),(C=y.value)==null||C.socket.on("status",B=>{m.value=B}),(P=y.value)==null||P.request("get-status").subscribe(B=>{m.value=B})}),(C,P)=>{const B=wh,D=Ku,K=Hu;return I(),F("div",{class:"topbar flex justify-cente items-center",style:ve(`${v($)}${v(d)==="minified"?"box-shadow: 0px 0px 30px 1px rgba(0, 0, 0, 0.08)":""}`)},[A("div",{class:"topbar-inner h-full flex flex-row items-center p-2 mt-safe",style:ve(v(R))},[v(a)&&v(c).interface.showBottomBarOnMobile?(I(),xe(B,{key:0,class:"no-drag"})):oe("",!0),O(D,{class:"ml-auto mr-2 no-outside no-drag"}),O(K,{class:"no-outside no-drag"}),v(m)==="loading"?(I(),xe(No,{key:1,text:C.$t("components.topbar.syncing_data"),location:"bottom"},{activator:j(({props:se})=>[O(je,zt({size:"28",class:"text-color ml-2 no-outside no-drag",rounded:"",density:"compact",variant:"text"},se),{default:j(()=>[O(ke,{size:"20",color:"var(--color-primary-lighten-1)",class:"sync-pulse-animation"},{default:j(()=>[he(G(v(ca)),1)]),_:1})]),_:2},1040)]),_:1},8,["text"])):oe("",!0)],4)],4)}}}),xh=ae(Sh,[["__scopeId","data-v-369fba26"]]),kh={class:"electron-titlebar"},Ch=He({__name:"VWindowButtons",emits:["minify","close","expand"],setup(s,{emit:t}){const e=t,i=Q(window.electron!==void 0),n=Q(!1),r=()=>{n.value||e("minify",!0)},o=()=>{e("close",!0)},a=()=>{e("expand",!0)};return Rs(()=>{i.value&&window.electron.on("fullscreen",(c,u)=>{n.value=u})}),vo(()=>{i.value&&window.electron.removeAllListeners("fullscreen")}),(c,u)=>(I(),F("div",kh,[A("div",{class:"close-button mr-2 flex justify-center items-center",onClick:u[0]||(u[0]=d=>o())},[O(ke,{size:"12",color:"#7f050a",class:"window-icon"},{default:j(()=>[he(G(v(Xn)),1)]),_:1})]),A("div",{class:tt(["mr-2 flex justify-center items-center",{"disabled-button":v(n),"minify-button":!v(n)}]),onClick:u[1]||(u[1]=d=>r())},[v(n)?oe("",!0):(I(),xe(ke,{key:0,size:"12",color:"#995712",class:"window-icon"},{default:j(()=>[he(G(v(ua)),1)]),_:1}))],2),A("div",{class:"expand-button flex justify-center items-center",onClick:u[2]||(u[2]=d=>a())},[O(ke,{size:"12",color:"#0d650d",style:ve(`${v(n)?"transform: rotate(45deg)":"transform: rotate(-45deg)"}`),class:"window-icon"},{default:j(()=>[he(G(v(n)?v(ha):v(da)),1)]),_:1},8,["style"])])]))}}),Eh=ae(Ch,[["__scopeId","data-v-07291b1b"]]),Mh={class:"loader flex flex-col justify-center items-center"},Ph={key:0,class:"absolute flex flex-col items-center justify-center pb-safe bottom-10"},Ah={key:0,class:"offline"},Lh={key:1,class:"text-center text-white text-sm font-bold mt-2"},Th=He({__name:"VLoadingLogo",props:{reload:{type:Boolean,default:!1},height:{default:"200px"},width:{default:"200px"},text:{},icon:{}},setup(s){const t=s,{reload:e,width:i,height:n,text:r,icon:o}=ft(t);let a,c;const u=()=>{clearInterval(a),clearTimeout(c)};return Rs(()=>{u(),e.value&&(a=setInterval(()=>{const d=document.getElementById("lens");d==null||d.classList.remove("cameraLens");const m=document.getElementById("CameraUI_U");m==null||m.classList.remove("cameraLetter"),c=setTimeout(()=>{d==null||d.classList.add("cameraLens"),m==null||m.classList.add("cameraLetter")},100)},2300))}),Pi(()=>{u()}),(d,m)=>(I(),F("div",Mh,[O(v(Jn),{src:v(As)("logo_loading_circle.svg"),width:v(i),height:v(n),title:"camera.ui","aria-label":"camera.ui"},null,8,["src","width","height"]),v(o)||v(r)?(I(),F("div",Ph,[v(o)?(I(),F("div",Ah,[O(ke,{size:"30",class:"primary-color"},{default:j(()=>[he(G(v(o)),1)]),_:1})])):oe("",!0),v(r)?(I(),F("div",Lh,G(v(r)),1)):oe("",!0)])):oe("",!0)]))}}),Bh=ae(Th,[["__scopeId","data-v-a050d191"]]),Mi={HEIGHT:60,ITEM_WIDTH:60},Vh={class:"bottombar-wrapper"},Rh={ref:"bottombar",class:"bottombar flex flex-row w-full h-full place-content-evenly"},Ih={class:"flex flex-col justify-center items-center"},Oh={key:0,class:"navigation-bottombar-title"},$h=He({inheritAttrs:!1,__name:"VMobileNavigation",props:{routes:{},label:{type:Boolean,default:!1}},setup(s){yo(u=>({cadd3408:v(a)}));const t=wt(),e=qs(),i=s,{uiSettings:n}=Ze(e),{routes:r,label:o}=ft(i),a=Q(`${Mi.HEIGHT}px`),c=J(()=>{let u=r.value.findIndex(m=>m.path===t.path);const d=t.path.split("/").filter(m=>m);if(d.length>1){const m=d[0];u=r.value.findIndex(y=>y.path===`/${m}`)}return u});return(u,d)=>{const m=qn("router-link");return I(),F("div",Vh,[A("div",Rh,[(I(!0),F(Ft,null,ys(v(r),(y,w)=>(I(),F("div",{key:w,class:"flex flex-row",style:ve(`height: ${v(Mi).HEIGHT}px; width: 20%;`)},[O(m,{to:y.path==="/settings"?`${y.path}/${v(n).interface.selectedSettingsView}`:y.path,class:tt(["navigation-inner-bottombar flex justify-center items-start relative w-full",{"router-link-active":v(c)===w}])},{default:j(()=>[O(je,{ref_for:!0,ref:"bottombarItem",variant:"text",width:"100%",height:"100%"},{default:j(()=>{var _,R;return[A("div",Ih,[O(ke,{class:"navigation-bottombar-icon",size:((_=y.meta)==null?void 0:_.navigation.iconSize)||"22"},{default:j(()=>{var $;return[he(G(($=y.meta)==null?void 0:$.navigation.icon),1)]}),_:2},1032,["size"]),v(o)?(I(),F("span",Oh,G(u.$t(`navigation.${(R=y.meta)==null?void 0:R.name}`)),1)):oe("",!0)])]}),_:2},1536)]),_:2},1032,["to","class"])],4))),128))],512)])}}}),jh=ae($h,[["__scopeId","data-v-d1c3b43a"]]),Nh=Lt("locale",()=>{const s=Li("locale",xs),t=Q(er),e=Do();ye(s,r=>{i(r),n(r)});const i=r=>{var o;(o=window.electron)==null||o.send("change-language",r),$e.global.locale.value=r},n=r=>{e.current.value=r};return i(s.value),n(s.value),{languages:t,locale:s,setI18Nlocale:i,setVuetifyLocale:n}}),Dh={key:0,class:"overlay"},zh={class:"flex flex-row w-full h-full"},qh={for:"check",class:"menu-icon-label"},Fh=He({__name:"App",setup(s){const t=wt(),e=Ai(),i=Yt(),n=Ie(),r=zs(),o=zi(),a=$r(),{bigDesktopActive:c,extraSmallMobileActive:u,mobileActive:d}=Jt(),{isPWA:m}=Or(),y=qs();Nh();const{routerLoading:w}=Ze(a),{isLoggedIn:_}=Ze(n),{theme:R}=Ze(o),{isConnected:$}=Ze(r),{uiSettings:C}=Ze(y),P=Q(),B=Q(null),D=Q(window.electron!==void 0),K=Q(!0),se=Q(!1),H=Q(!1),te=Q(null),Z=Q(),U=Q("default"),_e=Q(0),it=J(()=>Ts.filter(N=>{var X;return((X=N.meta)==null?void 0:X.navigation.showInMobileBottomBar)&&Ls(N)})),mt=Q(!0);Lo(te,N=>{!N.target.closest(".no-outside")&&(!c.value||Z.value==="overlay")&&(se.value=!1)});const Me=J(()=>{var N;return((N=t.meta.auth)==null?void 0:N.requiresAuth)&&!_.value||K.value}),Fs=J(()=>u.value&&t.name==="Camview"),yt=J(()=>{let N="0px";switch(Z.value){case"closed":case"overlay":N="0px";break;case"minified":N=`${dt.MINWIDTH}px`;break;case"opened":N=`${dt.MAXWIDTH}px`;break}return`calc(env(safe-area-inset-left, 0px) + ${N} + 8px)`}),Bt=J(()=>Z.value==="opened"||Z.value==="overlay"),es=J(()=>{var X,De;if((X=t.meta)!=null&&X.ui.fullscreen)return"0px";let N="0px";if(!((De=t.meta)!=null&&De.ui.hideSidebar))switch(Z.value){case"closed":case"overlay":N="0px";break;case"minified":N=`${dt.MINWIDTH}px`;break;case"opened":N=`${dt.MAXWIDTH}px`;break}return`calc(env(safe-area-inset-left, 0px) + ${N})`}),xt=J(()=>{var X,De;let N="0px";if(!((X=t.meta)!=null&&X.ui.hideTopbar)&&!((De=t.meta)!=null&&De.ui.fullscreen))switch(U.value){case"default":N=`${bt.HEIGHT}px`;break;case"minified":N=`${bt.HEIGHT}px`;break}return`calc(env(safe-area-inset-top, 0px) + ${N})`}),Hs=J(()=>!["Login","NotFound","FirstSteps"].includes(t.name)&&Z.value==="overlay");ye(t,N=>{var X,De,ot,at;(De=(X=N==null?void 0:N.meta)==null?void 0:X.ui)!=null&&De.disableScroll||(at=(ot=N==null?void 0:N.meta)==null?void 0:ot.ui)!=null&&at.disableScrollOnMobile&&d.value?document.documentElement.classList.add("disable-overflow-scroll"):document.documentElement.classList.remove("disable-overflow-scroll")},{immediate:!0,deep:!0}),ye(_,N=>{N?P.value=r.connect():(P.value=void 0,r.disconnect())},{immediate:!0}),ye(mt,(N,X)=>{X===!1&&N===!0&&i.refetchQueries()}),ye(Bt,N=>{Dn(()=>H.value=N)}),ye(Z,()=>{se.value&&!Bt.value&&(se.value=!1)}),ye([R,d],()=>{is()},{deep:!0}),ye($,N=>{_.value?mt.value=N:mt.value=!0}),ye(w,N=>{let X="body";document.querySelector(".topbar")&&(X=".topbar");const{isLoading:ot}=To(0,{parent:X});ot.value=N});const Us=()=>{se.value=!se.value},ts=()=>{var N;(N=window.electron)==null||N.send("change-window","close")},ss=()=>{var N;(N=window.electron)==null||N.send("change-window","expand")},Ne=()=>{var N;(N=window.electron)==null||N.send("change-window","minify")},is=()=>{oo({autoClose:3e3,pauseOnHover:!0,closeOnClick:!0,pauseOnFocusLoss:!1,theme:R.value==="dark"?"dark":"light",position:d.value?"bottom-center":"bottom-right"})};return Vs(()=>{d.value&&(se.value=!1)}),Rs(async()=>{is(),await e.isReady(),_e.value++,K.value=!1}),(N,X)=>{var rs,Vt,os,ze,as,S,l,h,f,g,b,x,k,T,E,M,L,z,W,ce,de,ge,be,Ee;const De=Bh,ot=Eh,at=xh,ns=Lu,Zs=qn("router-view");return I(),F(Ft,null,[v(Me)||!v(mt)?(I(),F("div",{key:0,class:"flex w-full h-full justify-center items-center absolute z-50",style:ve({minHeight:v(m)?"100vh !important":"100dvh !important"})},[O(De,{reload:"",icon:v(mt)?void 0:v(pa)},null,8,["icon"])],4)):(I(),F("div",{key:1,ref_key:"appEl",ref:B,class:"app-wrapper",style:ve({minHeight:v(m)?"100vh !important":"100dvh !important"})},[O(Pt,{name:"overlay-fade",mode:"in-out"},{default:j(()=>[v(Hs)?(I(),F("div",Dh)):oe("",!0)]),_:1}),A("div",zh,[v(Fs)?(I(),F("div",{key:0,class:tt(["sidebar-button fixed z-10 no-outside no-drag",{"mt-6":v(D)&&v(Z)==="closed"}]),style:ve({marginLeft:v(yt)})},[O(je,{size:"32",icon:"",density:"compact",variant:(rs=N.$route.meta)!=null&&rs.ui.hideTopbar?"elevated":"text",class:"no-drag camera-no-outside",onClick:X[0]||(X[0]=st(ue=>v(e).push("/cameras"),["prevent"]))},{default:j(()=>[O(ke,{size:"24"},{default:j(()=>[he(G(v(fa)),1)]),_:1})]),_:1},8,["variant"])],6)):oe("",!0),A("div",{class:"draggable-title drag",style:ve({pointerEvents:(Vt=N.$route.meta)!=null&&Vt.ui.hideTopbar?"none":"unset"})},[v(D)?(I(),xe(ot,{key:0,class:"no-drag",onMinify:X[1]||(X[1]=ue=>Ne()),onClose:X[2]||(X[2]=ue=>ts()),onExpand:X[3]||(X[3]=ue=>ss())})):oe("",!0),(!v(C).interface.showBottomBarOnMobile||v(C).interface.showBottomBarOnMobile&&!v(u))&&(!((os=N.$route.meta)!=null&&os.ui.hideSidebar)||(ze=N.$route.meta)!=null&&ze.ui.noMinifiedSidebar)?(I(),F("div",{key:1,class:tt(["sidebar-button fixed z-10 no-outside no-drag",{"mt-6":v(D)&&v(Z)==="closed"}]),style:ve({marginLeft:v(yt)})},[O(je,{size:"32",icon:"",density:"compact",variant:(as=N.$route.meta)!=null&&as.ui.hideTopbar?"elevated":"text",class:"no-drag camera-no-outside",onClick:X[5]||(X[5]=st(ue=>Us(),["prevent"]))},{default:j(()=>[A("label",qh,[_s(A("input",{id:"check","onUpdate:modelValue":X[4]||(X[4]=ue=>Ht(H)?H.value=ue:null),type:"checkbox"},null,512),[[zn,v(H)]]),X[8]||(X[8]=A("span",null,null,-1)),X[9]||(X[9]=A("span",null,null,-1)),X[10]||(X[10]=A("span",null,null,-1))])]),_:1},8,["variant"])],6)):oe("",!0),(S=N.$route.meta)!=null&&S.ui.hideTopbar?oe("",!0):(I(),xe(at,{key:2,ref:"topbar","sidebar-state":v(Z),onTopbarState:X[6]||(X[6]=ue=>U.value=ue)},null,8,["sidebar-state"])),(l=N.$route.meta)!=null&&l.ui.hideSidebar?oe("",!0):(I(),xe(ns,{key:3,ref_key:"sidebar",ref:te,state:v(se),onSidebarState:X[7]||(X[7]=ue=>Z.value=ue)},null,8,["state"]))],4),A("div",{class:"w-full relative",style:ve({transition:"0.1s all ease-in-out",paddingLeft:v(es),maxWidth:(h=N.$route.meta)!=null&&h.ui.disableMaxWidth?"100%":"var(--max-width)",background:((f=N.$route.meta)==null?void 0:f.ui.appBgColor)||"var(--background-app)",minHeight:"100dvh"})},[A("div",{class:"router-container",style:ve({paddingTop:(g=N.$route.meta)!=null&&g.ui.fullscreen?void 0:v(xt),paddingBottom:!((b=N.$route.meta)!=null&&b.ui.fullscreen)&&v(u)&&((x=N.$route.meta)!=null&&x.navigation.showMobileBottomBar)&&v(C).interface.showBottomBarOnMobile?`calc(env(safe-area-inset-bottom, 0px) + ${v(Mi).HEIGHT}px)`:(k=N.$route.meta)!=null&&k.ui.fullscreen||(T=N.$route.meta)!=null&&T.ui.fullscreenOnMobile&&v(d)?void 0:"calc(env(safe-area-inset-bottom, 0px)"})},[O(Zs,{class:"router-view",style:ve({width:(E=N.$route.meta)!=null&&E.ui.fullscreen?"100% !important":void 0,padding:!((M=N.$route.meta)!=null&&M.ui.fullWidthRouterView)&&!((L=N.$route.meta)!=null&&L.ui.fullscreen)?"1rem":void 0})},{default:j(({Component:ue})=>[O(Pt,{name:"fade",mode:"out-in"},{default:j(()=>[(I(),xe(_o(ue)))]),_:2},1024)]),_:1},8,["style"])],4)],4)]),v(u)&&((z=N.$route.meta)!=null&&z.navigation.showMobileBottomBar)&&v(C).interface.showBottomBarOnMobile?(I(),xe(jh,{key:0,height:60,routes:v(it),label:!1},null,8,["routes"])):oe("",!0)],4)),A("div",{class:"fixed-bg",style:ve({background:v(d)&&((de=(ce=(W=v(t))==null?void 0:W.meta)==null?void 0:ce.ui)!=null&&de.appBgMobileColor)?v(t).meta.ui.appBgMobileColor:(Ee=(be=(ge=v(t))==null?void 0:ge.meta)==null?void 0:be.ui)==null?void 0:Ee.appBgColor})},null,4)],64)}}}),Hh=ae(Fh,[["__scopeId","data-v-bf886699"]]),Uh=new ho({defaultOptions:{queries:{refetchOnWindowFocus:!1,gcTime:5*60*1e3,staleTime:1e4,networkMode:"always",retry:(s,t)=>{var e;return t instanceof Hi&&((e=t.response)==null?void 0:e.status)===401?(Ie().logout(),!1):(console.error(t),s<1)}},mutations:{retry:0,networkMode:"always",onError:s=>{var t,e,i,n;console.error(((e=(t=s.response)==null?void 0:t.data)==null?void 0:e.message)??s.message??s),s instanceof Hi?Oe.error(((n=(i=s.response)==null?void 0:i.data)==null?void 0:n.message)??s.message??s):Oe.error(s.message??s)}}}}),Zh=So(),Wh={},Gh={xmlns:"http://www.w3.org/2000/svg",class:"v-icon__svg",viewBox:"0 0 970 550",role:"img","area-hidden":"true"};function Kh(s,t){return I(),F("svg",Gh,t[0]||(t[0]=[A("path",{d:"M9 1a8 8 0 0 0-8 8v532a8 8 0 0 0 8 8h952a8 8 0 0 0 8-8V9a8 8 0 0 0-8-8H9Zm0 8h952v532H9V9Z"},null,-1)]))}const Qh=ae(Wh,[["render",Kh]]),Yh={},Xh={xmlns:"http://www.w3.org/2000/svg",class:"v-icon__svg",viewBox:"0 0 970 550",role:"img","area-hidden":"true"};function Jh(s,t){return I(),F("svg",Xh,t[0]||(t[0]=[A("path",{d:"M9 1a8 8 0 0 0-8 8v532a8 8 0 0 0 8 8h952a8 8 0 0 0 8-8V9a8 8 0 0 0-8-8H9Zm726 275h226v130H735V276Zm-242 0h234v130H493V276Zm0 265V414h234v127H493ZM9 541V276h476v265H9Zm726 0V414h226v127H735ZM961 9v121H735V9h226ZM735 138h226v130H735V138ZM727 9v121H493V9h234ZM493 138h234v130H493V138ZM485 9v259H9V9h476Z"},null,-1)]))}const ed=ae(Yh,[["render",Jh]]),td={},sd={xmlns:"http://www.w3.org/2000/svg",class:"v-icon__svg",viewBox:"0 0 970 550",role:"img","area-hidden":"true"};function id(s,t){return I(),F("svg",sd,t[0]||(t[0]=[A("path",{d:"M9 1a8 8 0 0 0-8 8v532a8 8 0 0 0 8 8h952a8 8 0 0 0 8-8V9a8 8 0 0 0-8-8H9Zm952 275v129H810.5V276H961Zm-158.5 0v129h-152V276h152Zm-152 265V413h152v128h-152Zm-8-265v129H493V276h149.5ZM493 541V413h149.5v128H493ZM9 276h476v265H9V276Zm801.5 265V413H961v128H810.5ZM961 9v259H493V9h468ZM9 268V9h476v259H9Z"},null,-1)]))}const nd=ae(td,[["render",id]]),rd={},od={xmlns:"http://www.w3.org/2000/svg",class:"v-icon__svg",viewBox:"0 0 970 550",role:"img","area-hidden":"true"};function ad(s,t){return I(),F("svg",od,t[0]||(t[0]=[A("path",{d:"M250 549.5h.5v-.5H961a8 8 0 0 0 8-8V9a8 8 0 0 0-8-8H9a8 8 0 0 0-8 8v532a8 8 0 0 0 8 8h233.5v.5h7.5Zm.5-273.5H485v129.5H250.5V276Zm-8 0v129.5H9V276h233.5ZM961 9v121H735V9h226ZM727 9v121H493V9h234ZM493 138h234v130H493V138ZM485 9v259H9V9h476Zm250 129h226v130H735V138Zm0 267.5V276h226v129.5H735ZM493 276h234v129.5H493V276Zm0 265V413.5h234V541H493Zm-242.5 0V413.5H485V541H250.5ZM9 541V413.5h233.5V541H9Zm726 0V413.5h226V541H735Z"},null,-1)]))}const ld=ae(rd,[["render",ad]]),cd={},ud={xmlns:"http://www.w3.org/2000/svg",class:"v-icon__svg",viewBox:"0 0 970 550",role:"img","area-hidden":"true"};function hd(s,t){return I(),F("svg",ud,t[0]||(t[0]=[A("path",{d:"M250 549.5h.5v-.5H961a8 8 0 0 0 8-8V9a8 8 0 0 0-8-8H9a8 8 0 0 0-8 8v532a8 8 0 0 0 8 8h233.5v.5h7.5Zm.5-144V276H485v129.5H250.5Zm-8-129.5v129.5H9V276h233.5Zm570 90H961v82H812.5v-82Zm-160 0h152v82h-152v-82ZM961 276v82H812.5v-82H961Zm-308.5 0h152v82h-152v-82Zm0 180h152v85h-152v-85ZM961 541H812.5v-85H961v85Zm-316.5-93H493v-82h151.5v82Zm0-172v82H493v-82h151.5Zm0 180v85H493v-85h151.5ZM485 413.5V541H250.5V413.5H485Zm-242.5 0V541H9V413.5h233.5ZM961 9v259H493V9h468ZM9 9h476v259H9V9Z"},null,-1)]))}const dd=ae(cd,[["render",hd]]),pd={},fd={xmlns:"http://www.w3.org/2000/svg",class:"v-icon__svg",viewBox:"0 0 970 550",role:"img","area-hidden":"true"};function md(s,t){return I(),F("svg",fd,t[0]||(t[0]=[A("path",{d:"M9 1a8 8 0 0 0-8 8v532a8 8 0 0 0 8 8h952a8 8 0 0 0 8-8V9a8 8 0 0 0-8-8H9Zm952 8v121.5H732.5V9H961ZM724.5 9v121.5H493V9h231.5ZM493 268V138.5h231.5V268H493Zm0 137.5V276h231.5v129.5H493Zm468 0H732.5V276H961v129.5ZM493 541V413.5h231.5V541H493Zm468 0H732.5V413.5H961V541Zm0-273H732.5V138.5H961V268ZM485 9v121.5H250.5V9H485ZM250.5 138.5H485V268H250.5V138.5ZM242.5 9v121.5H9V9h233.5ZM9 138.5h233.5V268H9V138.5ZM250.5 276H485v129.5H250.5V276Zm0 137.5H485V541H250.5V413.5Zm-8-137.5v129.5H9V276h233.5ZM9 541V413.5h233.5V541H9Z"},null,-1)]))}const gd=ae(pd,[["render",md]]),bd={},vd={xmlns:"http://www.w3.org/2000/svg",class:"v-icon__svg",viewBox:"0 0 970 550",role:"img","area-hidden":"true"};function yd(s,t){return I(),F("svg",vd,t[0]||(t[0]=[A("path",{d:"M9 1a8 8 0 0 0-8 8v532a8 8 0 0 0 8 8h952a8 8 0 0 0 8-8V9a8 8 0 0 0-8-8H9Zm952 94v82H812.5V95H961Zm-156.5 82h-152V95h152v82ZM961 9v78H812.5V9H961ZM652.5 9h152v78h-152V9Zm0 176h152v83h-152v-83ZM961 268H812.5v-83H961v83Zm-308.5 8h152v82h-152v-82Zm160 0H961v82H812.5v-82Zm-168-181v82H493V95h151.5Zm0-86v78H493V9h151.5ZM493 268v-83h151.5v83H493Zm0 90v-82h151.5v82H493ZM9 9h476v259H9V9Zm952 357v82H812.5v-82H961Zm-156.5 0v82h-152v-82h152Zm-152 90h152v85h-152v-85ZM961 541H812.5v-85H961v85ZM644.5 366v82H493v-82h151.5ZM493 541v-85h151.5v85H493ZM9 276h476v265H9V276Z"},null,-1)]))}const _d=ae(bd,[["render",yd]]),wd={},Sd={xmlns:"http://www.w3.org/2000/svg",class:"v-icon__svg",viewBox:"0 0 970 550",role:"img","area-hidden":"true"};function xd(s,t){return I(),F("svg",Sd,t[0]||(t[0]=[A("path",{"fill-rule":"evenodd",d:"M1.5 9A7.5 7.5 0 0 1 9 1.5h952a7.5 7.5 0 0 1 7.5 7.5v532a7.5 7.5 0 0 1-7.5 7.5H9a7.5 7.5 0 0 1-7.5-7.5V9Zm960 168V94h-153v83h153Zm-160 0h-153V94h153v83Zm7-90h153V9a.5.5 0 0 0-.5-.5H808.5V87Zm-7-78.5V87h-153V8.5h153Zm0 175.5v84.5h-153V184h153Zm7 84.5V184h153v84.5h-153Zm-167-91.5V94h-149v83h149Zm0-90V8.5h-149V87h149Zm-149 97h149v84.5h-149V184Zm0 91.5H719V402H492.5V275.5Zm0 133.5v132.5H719V409H492.5Zm233.5 0v132.5h235a.5.5 0 0 0 .5-.5V409H726Zm235.5-7V275.5H726V402h235.5Zm-476-270V8.5H252V132h233.5ZM245 139H8.5v129.5H245V139Zm0-7V8.5H9a.5.5 0 0 0-.5.5v123H245Zm240.5 136.5V139H252v129.5h233.5Zm-477 7h157v81H8.5v-81Zm164 81v-81h153v81h-153Zm153 7h-153v83h153v-83Zm7 83v-83h153v83h-153Zm-7 7h-153v88h153v-88Zm7 88v-88h153v88h-153Zm0-185v-81h153v81h-153Zm-324 7h157v83H8.5v-83Zm0 90h157v88H9a.5.5 0 0 1-.5-.5v-87.5Z"},null,-1)]))}const kd=ae(wd,[["render",xd]]),Cd={},Ed={xmlns:"http://www.w3.org/2000/svg",class:"v-icon__svg",viewBox:"0 0 970 550",role:"img","area-hidden":"true"};function Md(s,t){return I(),F("svg",Ed,t[0]||(t[0]=[A("path",{d:"M9 1a8 8 0 0 0-8 8v532a8 8 0 0 0 8 8h952a8 8 0 0 0 8-8V9a8 8 0 0 0-8-8H9Zm952 8v259H493V9h468ZM493 541V276h468v265H493ZM485 9v259H9V9h476ZM9 541V276h476v265H9Z"},null,-1)]))}const Pd=ae(Cd,[["render",Md]]),Ad={},Ld={xmlns:"http://www.w3.org/2000/svg",class:"v-icon__svg",viewBox:"0 0 970 550",role:"img","area-hidden":"true"};function Td(s,t){return I(),F("svg",Ld,t[0]||(t[0]=[A("path",{d:"M9 1a8 8 0 0 0-8 8v532a8 8 0 0 0 8 8h952a8 8 0 0 0 8-8V9a8 8 0 0 0-8-8H9Zm641.5 187.5H961v171H650.5v-171ZM961 9v171.5H650.5V9H961ZM642.5 9v350.5H9V9h633.5ZM9 541V367.5h315.5V541H9Zm323.5-173.5h310V541h-310V367.5Zm318 0H961V541H650.5V367.5Z"},null,-1)]))}const Bd=ae(Ad,[["render",Td]]),Vd={},Rd={xmlns:"http://www.w3.org/2000/svg",class:"v-icon__svg",viewBox:"0 0 970 550",role:"img","area-hidden":"true"};function Id(s,t){return I(),F("svg",Rd,t[0]||(t[0]=[A("path",{d:"M9 1a8 8 0 0 0-8 8v532a8 8 0 0 0 8 8h952a8 8 0 0 0 8-8V9a8 8 0 0 0-8-8H9Zm725.5 275H961v130H734.5V276Zm0 265V414H961v127H734.5Zm-8-265v130H493V276h233.5ZM493 541V414h233.5v127H493ZM9 276h476v265H9V276ZM961 9v259H493V9h468ZM9 268V9h476v259H9Z"},null,-1)]))}const Od=ae(Vd,[["render",Id]]),$d={},jd={xmlns:"http://www.w3.org/2000/svg",class:"v-icon__svg",viewBox:"0 0 970 550",role:"img","area-hidden":"true"};function Nd(s,t){return I(),F("svg",jd,t[0]||(t[0]=[A("path",{d:"M969.5 359v-.5h-.5V9a8 8 0 0 0-8-8H9a8 8 0 0 0-8 8v532a8 8 0 0 0 8 8h952a8 8 0 0 0 8-8V366.5h.5V359ZM961 187v171.5H651V187h310ZM651 541V366.5h310V541H651Zm-8-354v171.5H330V187h313ZM330 541V366.5h313V541H330Zm-8-354v171.5H9V187h313ZM9 541V366.5h313V541H9ZM961 9v170H651V9h310ZM643 9v170H330V9h313ZM322 9v170H9V9h313Z"},null,-1)]))}const Dd=ae($d,[["render",Nd]]),zd={},qd={xmlns:"http://www.w3.org/2000/svg",class:"v-icon__svg",viewBox:"0 0 765 572"};function Fd(s,t){return I(),F("svg",qd,t[0]||(t[0]=[Fn('<ellipse cx="384.5" cy="287" fill="#D9D9D9" rx="245.5" ry="241"></ellipse><ellipse cx="385.5" cy="277" fill="#434345" rx="221.5" ry="228"></ellipse><ellipse cx="386" cy="271.5" fill="#58595B" rx="211" ry="222.5"></ellipse><mask id="a" width="156" height="256" x="306" y="312" maskUnits="userSpaceOnUse" style="mask-type:alpha;"><rect width="156" height="256" x="306" y="312" fill="#3F3F3F" rx="76"></rect></mask><g mask="url(#a)"><ellipse cx="386" cy="260.5" fill="#3F3F3F" rx="211" ry="222.5"></ellipse></g><mask id="b" width="156" height="256" x="306" y="323" maskUnits="userSpaceOnUse" style="mask-type:alpha;"><rect width="156" height="256" x="306" y="323" fill="#434345" rx="76"></rect></mask><g mask="url(#b)"><ellipse cx="386" cy="271.5" fill="#434345" rx="211" ry="222.5"></ellipse></g><path fill="#EBEBEB" d="M65 71c0-17.12 13.88-31 31-31h574c17.121 0 31 13.88 31 31v116c0 55.228-44.772 100-100 100H165c-55.228 0-100-44.772-100-100V71Z"></path><mask id="c" width="687" height="115" x="40" y="195" maskUnits="userSpaceOnUse" style="mask-type:alpha;"><path fill="#CBCBCB" d="M40 195h687v115H40z"></path></mask><g mask="url(#c)"><path fill="#CBCBCB" d="M65 71c0-17.12 13.88-31 31-31h574c17.121 0 31 13.88 31 31v116c0 55.228-44.772 100-100 100H165c-55.228 0-100-44.772-100-100V71Z"></path></g><mask id="d" width="669" height="22" x="48" y="73" maskUnits="userSpaceOnUse" style="mask-type:alpha;"><path fill="#CBCBCB" d="M48 73h669v22H48z"></path></mask><g mask="url(#d)"><path fill="#CBCBCB" d="M65 71c0-17.12 13.88-31 31-31h574c17.121 0 31 13.88 31 31v116c0 55.228-44.772 100-100 100H165c-55.228 0-100-44.772-100-100V71Z"></path></g><circle cx="384" cy="400" r="59" stroke="#BFBFC1" stroke-width="6"></circle><circle cx="384" cy="400" r="22" fill="#D9D9D9"></circle>',14)]))}const Hd=ae(zd,[["render",Fd]]),Ud={},Zd={class:"v-icon__svg",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":"true"};function Wd(s,t){return I(),F("svg",Zd,t[0]||(t[0]=[A("path",{d:"M8,20H5a1,1,0,0,1-1-1V16a1,1,0,0,0-2,0v3a3,3,0,0,0,3,3H8a1,1,0,0,0,0-2ZM3,9A1,1,0,0,0,4,8V5A1,1,0,0,1,5,4H8A1,1,0,0,0,8,2H5A3,3,0,0,0,2,5V8A1,1,0,0,0,3,9ZM19,2H16a1,1,0,0,0,0,2h3a1,1,0,0,1,1,1V8a1,1,0,0,0,2,0V5A3,3,0,0,0,19,2ZM16,12a1,1,0,0,0-1-1H13V9a1,1,0,0,0-2,0v2H9a1,1,0,0,0,0,2h2v2a1,1,0,0,0,2,0V13h2A1,1,0,0,0,16,12Zm5,3a1,1,0,0,0-1,1v3a1,1,0,0,1-1,1H16a1,1,0,0,0,0,2h3a3,3,0,0,0,3-3V16A1,1,0,0,0,21,15Z"},null,-1)]))}const Gd=ae(Ud,[["render",Wd]]),Kd={},Qd={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",role:"img","aria-hidden":"true",class:"v-icon__svg"};function Yd(s,t){return I(),F("svg",Qd,t[0]||(t[0]=[A("g",null,[A("path",{d:"M0,0 L256,0 L256,256 L0,256 L0,0 Z",fill:"#F7DF1E"}),A("path",{d:"M67.311746,213.932292 L86.902654,202.076241 C90.6821079,208.777346 94.1202286,214.447137 102.367086,214.447137 C110.272203,214.447137 115.256076,211.354819 115.256076,199.326883 L115.256076,117.528787 L139.313575,117.528787 L139.313575,199.666997 C139.313575,224.58433 124.707759,235.925943 103.3984,235.925943 C84.1532952,235.925943 72.9819429,225.958603 67.3113397,213.93026",fill:"#000000"}),A("path",{d:"M152.380952,211.354413 L171.969422,200.0128 C177.125994,208.433981 183.827911,214.619835 195.684368,214.619835 C205.652521,214.619835 212.009041,209.635962 212.009041,202.762159 C212.009041,194.513676 205.479416,191.592025 194.481168,186.78207 L188.468419,184.202565 C171.111213,176.81473 159.597308,167.53534 159.597308,147.944838 C159.597308,129.901308 173.344508,116.153295 194.825752,116.153295 C210.119924,116.153295 221.117765,121.48094 229.021663,135.400432 L210.29059,147.428775 C206.166146,140.040127 201.699556,137.119289 194.826159,137.119289 C187.78047,137.119289 183.312254,141.587098 183.312254,147.428775 C183.312254,154.646349 187.78047,157.568406 198.089956,162.036622 L204.103924,164.614095 C224.553448,173.378641 236.067352,182.313448 236.067352,202.418387 C236.067352,224.071924 219.055137,235.927975 196.200432,235.927975 C173.860978,235.927975 159.425829,225.274311 152.381359,211.354413",fill:"#000000"})],-1)]))}const Xd=ae(Kd,[["render",Yd]]),Jd={},ep={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 255",role:"img","aria-hidden":"true",class:"v-icon__svg"};function tp(s,t){return I(),F("svg",ep,t[0]||(t[0]=[Fn('<defs><linearGradient id="linearGradient-1" x1="12.9593594%" y1="12.0393928%" x2="79.6388325%" y2="78.2008538%"><stop stop-color="#387EB8" offset="0%"></stop><stop stop-color="#366994" offset="100%"></stop></linearGradient><linearGradient id="linearGradient-2" x1="19.127525%" y1="20.5791813%" x2="90.7415328%" y2="88.4290372%"><stop stop-color="#FFE052" offset="0%"></stop><stop stop-color="#FFC331" offset="100%"></stop></linearGradient></defs><g><path d="M126.915866,0.0722755491 C62.0835831,0.0722801733 66.1321288,28.1874648 66.1321288,28.1874648 L66.2044043,57.3145115 L128.072276,57.3145115 L128.072276,66.0598532 L41.6307171,66.0598532 C41.6307171,66.0598532 0.144551098,61.3549438 0.144551098,126.771315 C0.144546474,192.187673 36.3546019,189.867871 36.3546019,189.867871 L57.9649915,189.867871 L57.9649915,159.51214 C57.9649915,159.51214 56.8001363,123.302089 93.5968379,123.302089 L154.95878,123.302089 C154.95878,123.302089 189.434218,123.859386 189.434218,89.9830604 L189.434218,33.9695088 C189.434218,33.9695041 194.668541,0.0722755491 126.915866,0.0722755491 L126.915866,0.0722755491 L126.915866,0.0722755491 Z M92.8018069,19.6589497 C98.9572068,19.6589452 103.932242,24.6339846 103.932242,30.7893845 C103.932246,36.9447844 98.9572068,41.9198193 92.8018069,41.9198193 C86.646407,41.9198239 81.6713721,36.9447844 81.6713721,30.7893845 C81.6713674,24.6339846 86.646407,19.6589497 92.8018069,19.6589497 L92.8018069,19.6589497 L92.8018069,19.6589497 Z" fill="url(#linearGradient-1)"></path><path d="M128.757101,254.126271 C193.589403,254.126271 189.540839,226.011081 189.540839,226.011081 L189.468564,196.884035 L127.600692,196.884035 L127.600692,188.138693 L214.042251,188.138693 C214.042251,188.138693 255.528417,192.843589 255.528417,127.427208 C255.52844,62.0108566 219.318366,64.3306589 219.318366,64.3306589 L197.707976,64.3306589 L197.707976,94.6863832 C197.707976,94.6863832 198.87285,130.896434 162.07613,130.896434 L100.714182,130.896434 C100.714182,130.896434 66.238745,130.339138 66.238745,164.215486 L66.238745,220.229038 C66.238745,220.229038 61.0044225,254.126271 128.757101,254.126271 L128.757101,254.126271 L128.757101,254.126271 Z M162.87116,234.539597 C156.715759,234.539597 151.740726,229.564564 151.740726,223.409162 C151.740726,217.253759 156.715759,212.278727 162.87116,212.278727 C169.026563,212.278727 174.001595,217.253759 174.001595,223.409162 C174.001618,229.564564 169.026563,234.539597 162.87116,234.539597 L162.87116,234.539597 L162.87116,234.539597 Z" fill="url(#linearGradient-2)"></path></g>',2)]))}const sp=ae(Jd,[["render",tp]]),ip={},np={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":"true",class:"v-icon__svg"};function rp(s,t){return I(),F("svg",np,t[0]||(t[0]=[A("path",{d:"M 17.335938 2.410156 C 16.851562 2.484375 16.515625 2.625 16.160156 2.90625 C 15.636719 3.320312 15.320312 3.980469 15.320312 4.652344 C 15.320312 5.019531 15.390625 5.324219 15.550781 5.652344 C 15.9375 6.4375 16.710938 6.917969 17.585938 6.917969 C 18.234375 6.917969 18.789062 6.683594 19.242188 6.210938 C 19.539062 5.90625 19.746094 5.5 19.828125 5.078125 C 19.863281 4.894531 19.867188 4.492188 19.839844 4.3125 C 19.761719 3.839844 19.542969 3.414062 19.203125 3.074219 C 18.878906 2.746094 18.5 2.542969 18.046875 2.445312 C 17.902344 2.417969 17.453125 2.394531 17.335938 2.410156 Z M 17.335938 2.410156 M 6.160156 4.90625 C 5.589844 4.953125 5.0625 5.191406 4.714844 5.554688 C 4.5625 5.710938 4.386719 5.96875 4.300781 6.164062 C 4.144531 6.515625 4.046875 7.289062 3.953125 8.933594 C 3.921875 9.488281 3.921875 11.171875 3.953125 11.746094 L 3.980469 12.195312 L 4.226562 12.675781 C 5.1875 14.515625 5.785156 15.28125 6.789062 15.945312 C 7.546875 16.453125 8.503906 16.785156 9.453125 16.875 C 9.605469 16.890625 9.875 16.894531 10.195312 16.886719 C 10.742188 16.878906 11.019531 16.84375 11.503906 16.722656 C 12.375 16.503906 13.246094 16.054688 13.835938 15.519531 C 13.945312 15.421875 13.929688 15.402344 13.808594 15.476562 C 13.445312 15.710938 12.902344 15.917969 12.476562 15.984375 C 12.207031 16.027344 11.738281 16.015625 11.472656 15.957031 C 11.023438 15.863281 10.558594 15.652344 10.21875 15.394531 C 9.984375 15.222656 9.65625 14.882812 9.492188 14.652344 C 9.097656 14.097656 8.859375 13.347656 8.773438 12.394531 C 8.761719 12.25 8.75 11.433594 8.746094 10.304688 C 8.742188 9.28125 8.730469 8.300781 8.71875 8.128906 C 8.671875 7.410156 8.558594 6.570312 8.476562 6.328125 C 8.355469 5.988281 8.058594 5.613281 7.734375 5.398438 C 7.535156 5.269531 7.136719 5.078125 6.925781 5.007812 C 6.742188 4.945312 6.4375 4.890625 6.308594 4.898438 C 6.269531 4.898438 6.199219 4.902344 6.160156 4.90625 Z M 6.160156 4.90625 M 17.46875 7.671875 C 17.25 7.691406 16.957031 7.769531 16.769531 7.851562 C 16.289062 8.058594 15.898438 8.460938 15.730469 8.925781 C 15.554688 9.410156 15.496094 9.828125 15.394531 11.429688 C 15.347656 12.128906 15.3125 12.507812 15.261719 12.871094 C 15.152344 13.628906 14.960938 14.242188 14.707031 14.667969 C 14.515625 14.988281 14.089844 15.480469 13.847656 15.664062 C 13.761719 15.726562 13.597656 15.851562 13.480469 15.9375 C 12.789062 16.460938 11.972656 16.808594 11.0625 16.976562 C 10.433594 17.089844 9.699219 17.09375 9.066406 16.984375 C 8.128906 16.824219 7.292969 16.472656 6.570312 15.9375 C 6.226562 15.683594 5.835938 15.308594 5.578125 14.980469 C 5.179688 14.484375 4.628906 13.570312 4.160156 12.632812 C 4.078125 12.46875 4.003906 12.335938 3.992188 12.335938 C 3.972656 12.335938 3.972656 12.460938 3.992188 12.890625 C 4.109375 14.992188 4.671875 16.917969 5.582031 18.328125 C 6.117188 19.15625 6.898438 19.9375 7.78125 20.523438 C 8.691406 21.128906 9.59375 21.492188 10.726562 21.703125 C 10.992188 21.753906 11.015625 21.757812 11.820312 21.765625 C 12.691406 21.773438 12.761719 21.765625 13.226562 21.683594 C 13.945312 21.550781 14.597656 21.328125 15.308594 20.980469 C 16.027344 20.625 16.527344 20.289062 17.089844 19.769531 C 18.839844 18.160156 19.894531 15.460938 20.0625 12.167969 C 20.097656 11.46875 20.082031 10.585938 20.023438 10.117188 C 19.929688 9.367188 19.65625 8.695312 19.285156 8.320312 C 18.84375 7.871094 18.089844 7.601562 17.46875 7.671875 Z M 17.46875 7.671875"},null,-1)]))}const op=ae(ip,[["render",rp]]),ap={},lp={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":"true",class:"v-icon__svg"};function cp(s,t){return I(),F("svg",lp,t[0]||(t[0]=[A("path",{d:"M 10.859375 7.105469 C 10.242188 7.195312 9.65625 7.367188 9.226562 7.585938 C 8.269531 8.070312 7.378906 9.0625 7.027344 10.054688 C 6.574219 11.328125 6.816406 12.757812 7.625 13.601562 L 7.796875 13.78125 L 7.304688 16.078125 L 6.8125 18.378906 L 7.472656 18.390625 C 7.835938 18.394531 8.140625 18.390625 8.148438 18.382812 C 8.160156 18.375 8.210938 18.164062 8.265625 17.910156 C 8.316406 17.664062 8.386719 17.328125 8.425781 17.167969 L 8.484375 16.878906 L 8.957031 16.878906 L 9.035156 17.148438 C 9.078125 17.300781 9.171875 17.628906 9.242188 17.878906 C 9.3125 18.132812 9.378906 18.351562 9.394531 18.371094 C 9.410156 18.386719 9.730469 18.394531 10.109375 18.390625 L 10.792969 18.378906 L 10.539062 17.558594 L 10.289062 16.738281 L 10.476562 16.644531 C 11.042969 16.355469 11.394531 15.730469 11.347656 15.085938 C 11.335938 14.914062 11.316406 14.738281 11.300781 14.695312 C 11.277344 14.617188 11.300781 14.601562 11.539062 14.519531 C 11.683594 14.472656 11.8125 14.441406 11.820312 14.449219 C 11.832031 14.457031 11.820312 14.527344 11.800781 14.605469 C 11.714844 14.890625 11.691406 14.878906 12.378906 14.878906 C 12.757812 14.878906 13 14.894531 13 14.921875 C 13 14.941406 12.839844 15.714844 12.640625 16.648438 C 12.445312 17.574219 12.28125 18.347656 12.28125 18.367188 C 12.28125 18.382812 12.578125 18.398438 12.953125 18.398438 L 13.621094 18.398438 L 13.9375 16.90625 C 14.109375 16.09375 14.277344 15.300781 14.308594 15.148438 L 14.367188 14.878906 L 15 14.878906 C 15.703125 14.878906 15.648438 14.902344 15.703125 14.578125 C 15.738281 14.355469 15.738281 14.355469 15.933594 14.4375 C 16.023438 14.476562 16.132812 14.519531 16.171875 14.535156 C 16.238281 14.554688 16.234375 14.574219 16.128906 14.726562 C 15.957031 14.980469 15.820312 15.265625 15.71875 15.578125 C 15.613281 15.9375 15.566406 16.652344 15.636719 17.003906 C 15.828125 17.972656 16.679688 18.539062 17.820312 18.46875 C 18.847656 18.398438 19.636719 17.816406 19.894531 16.925781 C 19.933594 16.804688 19.960938 16.691406 19.960938 16.671875 C 19.960938 16.65625 19.664062 16.640625 19.304688 16.640625 L 18.648438 16.640625 L 18.605469 16.773438 C 18.492188 17.113281 18.128906 17.363281 17.742188 17.367188 C 17.425781 17.371094 17.246094 17.269531 17.113281 17 C 17.011719 16.8125 17 16.738281 17 16.421875 C 17 15.707031 17.273438 15.148438 17.730469 14.914062 C 17.972656 14.792969 18.371094 14.820312 18.570312 14.972656 C 18.761719 15.113281 18.8125 15.210938 18.839844 15.460938 L 18.859375 15.660156 L 19.507812 15.671875 L 20.15625 15.679688 L 20.167969 15.570312 C 20.191406 15.359375 20.121094 14.953125 20.027344 14.742188 C 19.976562 14.632812 19.859375 14.460938 19.773438 14.363281 L 19.613281 14.183594 L 19.914062 13.988281 C 20.332031 13.71875 20.945312 13.09375 21.234375 12.636719 C 21.847656 11.691406 22.007812 10.464844 21.65625 9.398438 C 21.335938 8.4375 20.453125 7.621094 19.390625 7.316406 C 18.757812 7.136719 17.792969 7.175781 16.941406 7.421875 C 15.765625 7.757812 14.792969 8.617188 14.238281 9.808594 L 14.058594 10.199219 L 12.449219 10.199219 C 11.351562 10.199219 10.808594 10.214844 10.753906 10.242188 C 10.640625 10.304688 10.070312 11.488281 10.089844 11.632812 C 10.097656 11.703125 10.132812 11.742188 10.199219 11.765625 C 10.257812 11.78125 10.726562 11.792969 11.253906 11.796875 L 12.203125 11.800781 L 12.089844 11.96875 C 11.289062 13.128906 9.621094 13.109375 9.066406 11.929688 C 8.964844 11.703125 8.941406 11.601562 8.929688 11.300781 C 8.894531 10.535156 9.171875 9.925781 9.738281 9.492188 C 10.574219 8.855469 11.453125 8.859375 12.125 9.5 L 12.351562 9.714844 L 12.863281 9.574219 C 13.148438 9.5 13.523438 9.398438 13.699219 9.355469 C 14.28125 9.210938 14.292969 9.203125 14.261719 9.085938 C 14.222656 8.941406 14.027344 8.609375 13.808594 8.316406 C 13.449219 7.835938 12.675781 7.34375 12.039062 7.183594 C 11.78125 7.117188 11.085938 7.070312 10.859375 7.105469 Z M 18.886719 9.1875 C 19.378906 9.421875 19.710938 9.875 19.8125 10.464844 C 19.867188 10.796875 19.785156 11.261719 19.59375 11.636719 C 19.34375 12.128906 18.726562 12.628906 18.183594 12.78125 C 17.867188 12.871094 17.347656 12.84375 17.027344 12.722656 C 16.207031 12.40625 15.808594 11.511719 16.085938 10.617188 C 16.304688 9.886719 16.773438 9.40625 17.496094 9.152344 C 17.785156 9.050781 17.863281 9.039062 18.21875 9.046875 C 18.570312 9.058594 18.652344 9.074219 18.886719 9.1875 Z M 14.597656 11.570312 C 14.925781 11.789062 14.964844 12.164062 14.691406 12.476562 C 14.617188 12.566406 14.367188 12.785156 14.144531 12.953125 L 13.738281 13.261719 L 14.203125 13.273438 L 14.671875 13.285156 L 14.578125 13.699219 L 13.726562 13.710938 C 13.265625 13.714844 12.878906 13.710938 12.878906 13.699219 C 12.878906 13.683594 12.898438 13.597656 12.925781 13.496094 C 12.96875 13.328125 13.003906 13.289062 13.519531 12.894531 C 14.117188 12.445312 14.320312 12.242188 14.320312 12.113281 C 14.320312 11.875 13.964844 11.792969 13.78125 11.980469 C 13.722656 12.03125 13.679688 12.097656 13.679688 12.121094 C 13.679688 12.144531 13.574219 12.160156 13.421875 12.160156 C 13.125 12.160156 13.109375 12.136719 13.238281 11.878906 C 13.390625 11.585938 13.695312 11.4375 14.125 11.449219 C 14.375 11.460938 14.453125 11.476562 14.597656 11.570312 Z M 9.65625 14.84375 C 9.902344 14.910156 10 15.035156 10 15.292969 C 10 15.546875 9.890625 15.730469 9.679688 15.84375 C 9.566406 15.902344 9.453125 15.921875 9.109375 15.921875 C 8.710938 15.921875 8.675781 15.910156 8.695312 15.847656 C 8.71875 15.777344 8.921875 14.847656 8.921875 14.816406 C 8.921875 14.78125 9.507812 14.804688 9.65625 14.84375 Z M 9.65625 14.84375 M 3.019531 9.1875 C 2.945312 9.273438 2.878906 9.351562 2.878906 9.363281 C 2.878906 9.414062 3.59375 9.441406 5.046875 9.441406 L 6.554688 9.441406 L 6.675781 9.265625 C 6.742188 9.167969 6.785156 9.078125 6.773438 9.0625 C 6.757812 9.050781 5.941406 9.039062 4.953125 9.039062 L 3.15625 9.039062 Z M 3.019531 9.1875 M 1.617188 9.992188 C 1.597656 10.007812 1.523438 10.089844 1.464844 10.167969 L 1.351562 10.320312 L 6.195312 10.320312 L 6.234375 10.167969 C 6.261719 10.089844 6.28125 10.007812 6.28125 9.988281 C 6.28125 9.953125 1.671875 9.953125 1.617188 9.992188 Z M 1.617188 9.992188 M 3.882812 11.015625 C 3.835938 11.089844 3.800781 11.167969 3.800781 11.1875 C 3.800781 11.222656 4.882812 11.28125 5.644531 11.28125 C 6.035156 11.28125 6.09375 11.246094 6.070312 11.03125 L 6.058594 10.898438 L 5.011719 10.886719 L 3.96875 10.878906 Z M 3.882812 11.015625 "},null,-1)]))}const up=ae(ap,[["render",cp]]),hp={components:{VNumberInput:Uo},display:{mobileBreakpoint:"sm",thresholds:{sm:640}},icons:{defaultSet:"mdi",aliases:{...Ho,cuiLogo:op,cuiGo2rtc:up,cuiGrid1:Qh,cuiGrid4:Pd,cuiGrid6:Bd,cuiGrid7:Od,cuiGrid9:Dd,cuiGrid10:ed,cuiGrid12:nd,cuiGrid13:ld,cuiGrid15:dd,cuiGrid16:gd,cuiGrid20:_d,cuiGrid26:kd,cuiPy:sp,cuiJs:Xd,cuiShortcut:Gd,cuiCamera:Hd},sets:{mdi:Fo}},locale:{adapter:zo({i18n:$e,useI18n:co})}},dp=qo(hp),pp=s=>{s.use(dp).use(Qt).use(Zh).use($e).use(ao).use(po,{queryClient:Uh,enableDevtoolsV6Plugin:!0}).use(Rr)},Jr=wo(Hh);pp(Jr);Jr.mount("#app");export{In as A,Mi as B,jn as C,Vn as D,Rn as E,Xp as F,ef as G,Nr as H,Uc as I,zr as J,Jp as K,Hp as L,On as M,Ce as N,qp as O,di as P,Xr as Q,Ts as R,dt as S,bt as T,Fp as U,of as V,sf as W,tf as X,Nc as Y,Ir as _,zi as a,Nh as b,Ls as c,nf as d,Bu as e,ae as f,As as g,Ec as h,$e as i,Jt as j,qs as k,Qp as l,Kp as m,Gp as n,Wp as o,Zp as p,Up as q,Yp as r,Cc as s,Or as t,Ie as u,An as v,rf as w,le as x,zs as y,Tn as z};