@fastybird/smart-panel-admin 0.1.0-alpha.6 → 0.1.0-alpha.8

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 (226) hide show
  1. package/dist/assets/{card-add-form-Pxgzb_ci.js → card-add-form-CgjkwC2G.js} +1 -1
  2. package/dist/assets/{card-edit-form-CON4jaIo.js → card-edit-form-CGjSiU-L.js} +1 -1
  3. package/dist/assets/{common-BY9Gg1EI.css → common-D_v-7H8R.css} +1 -1
  4. package/dist/assets/common-o_P8JjvN.js +150 -0
  5. package/dist/assets/components-BmNnNL-T.js +1 -0
  6. package/dist/assets/components-CGXGlJnB.js +1 -0
  7. package/dist/assets/{components-CQOBigIL.js → components-CvZ_cRtU.js} +1 -1
  8. package/dist/assets/components-DTDNlAlb.css +1 -0
  9. package/dist/assets/components-J4rzCn7v.js +2 -0
  10. package/dist/assets/components-LeMbUqJo.js +1 -0
  11. package/dist/assets/components-Rt6e5sXI.js +1 -0
  12. package/dist/assets/components-VGTrMj5f.js +1 -0
  13. package/dist/assets/components-wjANFe6l.js +1 -0
  14. package/dist/assets/{composables-CVFi60Du.js → composables-BraiXx0X.js} +1 -1
  15. package/dist/assets/{composables-lfdMtVU8.js → composables-CadYkKnD.js} +1 -1
  16. package/dist/assets/{composables-Bg2MBx7D.js → composables-DVPI0vWD2.js} +1 -1
  17. package/dist/assets/{composables-DZYr3rl3.js → composables-DsKnFJzz.js} +1 -1
  18. package/dist/assets/{composables-C9x-efDp.js → composables-E7IbiHnD.js} +1 -1
  19. package/dist/assets/{composables-UlKjXsBi.js → composables-LCoHk-Bs.js} +1 -1
  20. package/dist/assets/composables-MPHB4mDA.js +1 -0
  21. package/dist/assets/{composables-DdqAQ2NN.js → composables-_Wzi2Whd.js} +1 -1
  22. package/dist/assets/composables-oUxuM7pL.js +1 -0
  23. package/dist/assets/{dashboard-DfhAHLf_.js → dashboard-BF5TmeZj.js} +2 -2
  24. package/dist/assets/{dashboard.types-Jem1nlEy.js → dashboard.types-BQ-veT6v.js} +1 -1
  25. package/dist/assets/{data-source-edit-form-DhRIUxuw.js → data-source-edit-form-DeO_w2GP.js} +1 -1
  26. package/dist/assets/{drawer-BC8DYcvI.js → drawer-DemK0ev_.js} +1 -1
  27. package/dist/assets/index-BHHdvNoR.js +16 -0
  28. package/dist/assets/index-BZI30D7S.css +1 -0
  29. package/dist/assets/input-number-BLJCiBoS.js +1 -0
  30. package/dist/assets/integration-config-dialog-BdudSRfq.js +1 -0
  31. package/dist/assets/{layout-config-BNu3S7S4.js → layout-config-24NRzG-P.js} +1 -1
  32. package/dist/assets/{layout-default-BPXnOfmF.js → layout-default-4GP-Ykfe.js} +1 -1
  33. package/dist/assets/{layout-lock--gkSv3un.js → layout-lock-BAmuMaal.js} +1 -1
  34. package/dist/assets/layout-profile-DP7PUWzG.js +1 -0
  35. package/dist/assets/{layout-profile-sLgAVYMg.js → layout-profile-poSBbi0C.js} +1 -1
  36. package/dist/assets/{layout-sign-CiXTWrEu.js → layout-sign-CDC24ioT.js} +1 -1
  37. package/dist/assets/layout-sign-CSSEPTDR.js +1 -0
  38. package/dist/assets/list-data-sources-adjust-F65cFIYx.js +1 -0
  39. package/dist/assets/{list-locations-BFPqF3i-.js → list-locations-CeASchUO.js} +1 -1
  40. package/dist/assets/{list-users-CYCm53K6.js → list-users-CRwlaokY.js} +1 -1
  41. package/dist/assets/logs-entries.transformers-NMD0v2wa.js +1 -0
  42. package/dist/assets/{page-configure-xghKYXvV.js → page-configure-CdL2TTJm.js} +1 -1
  43. package/dist/assets/{page-configure-ChpS6Or7.js → page-configure-JZtD4Qee.js} +1 -1
  44. package/dist/assets/{pagination-DejKh2TT.js → pagination-DSI0uWlE.js} +1 -1
  45. package/dist/assets/{popover-BW83aJP4.js → popover-WhZA0uPI.js} +1 -1
  46. package/dist/assets/{radio-BvpKu4BH.js → radio-DrwA6JTt.js} +1 -1
  47. package/dist/assets/scene-add-form-LcfnQ-4V.js +1 -0
  48. package/dist/assets/{scene-add-form-BcNSeauE.css → scene-add-form-TKYtnlDS.css} +1 -1
  49. package/dist/assets/{scene-edit-form-CDPMRZQT.css → scene-edit-form-DId_sQZd.css} +1 -1
  50. package/dist/assets/scene-edit-form-SN97Lzli.js +1 -0
  51. package/dist/assets/{select-data-source-plugin-CvsohGgN.js → select-data-source-plugin-Cvsq5QzE.js} +1 -1
  52. package/dist/assets/{steps-B6e2Hpk1.js → steps-DPZynTju.js} +1 -1
  53. package/dist/assets/system-DAeG0lVI.js +2 -0
  54. package/dist/assets/{table-DEzwgEz4.js → table-YiRGTA5C.js} +1 -1
  55. package/dist/assets/{tile-detail-DQXNcHh_.js → tile-detail-BpjbvSdB.js} +1 -1
  56. package/dist/assets/{tile-edit-form-BXWm1wW5.js → tile-edit-form-CeMtD4cj.js} +1 -1
  57. package/dist/assets/{types-DQmL99Jz.js → types-CSf46rx-.js} +1 -1
  58. package/dist/assets/useBuddyChat-Q_xVAB6r.js +1 -0
  59. package/dist/assets/{useDataSources-D1fe9MPt.js → useDataSources-Cp5dOQy1.js} +1 -1
  60. package/dist/assets/{useDevices-oOyjupML.js → useDevices-FasEyQ-H.js} +1 -1
  61. package/dist/assets/useGeolocation-DBrl4v42.js +2 -0
  62. package/dist/assets/{useLocation-DmKkc95i.js → useLocation-CDbIQgmr.js} +1 -1
  63. package/dist/assets/{usePage-B4kb2gRl.js → usePage-FizCUyCZ.js} +1 -1
  64. package/dist/assets/{useSpaces-LfBlMH_H.js → useSpaces-BOvTSKhu.js} +1 -1
  65. package/dist/assets/view-buddy-chat-D6t-RGI9.js +1 -0
  66. package/dist/assets/view-card-add-Cj3EHF06.js +1 -0
  67. package/dist/assets/view-card-edit-DJLWJtlQ.js +1 -0
  68. package/dist/assets/view-channel-CnWlWyq8.js +1 -0
  69. package/dist/assets/view-channel-add-BBmdLTR9.js +1 -0
  70. package/dist/assets/view-channel-edit-Dgzz2nE4.js +1 -0
  71. package/dist/assets/view-channel-property-add-PmXJx6Jq.js +1 -0
  72. package/dist/assets/view-channel-property-edit-i4Qao2HN.js +1 -0
  73. package/dist/assets/view-channels-Cb3gjWZ3.js +1 -0
  74. package/dist/assets/{view-config-module-edit-FmOaydgI.js → view-config-module-edit-D_E7S78K.js} +1 -1
  75. package/dist/assets/view-config-modules-DOxdq7NV.js +1 -0
  76. package/dist/assets/view-config-plugin-edit-BCIHkhYM.js +1 -0
  77. package/dist/assets/view-config-plugins-cTRRrk1H.js +1 -0
  78. package/dist/assets/view-data-source-add-Dajij34y.js +1 -0
  79. package/dist/assets/view-data-source-add-SKdzq-m4.js +1 -0
  80. package/dist/assets/view-data-source-edit-CRnMqvx5.js +1 -0
  81. package/dist/assets/view-data-source-edit-DY9bLCIi.js +1 -0
  82. package/dist/assets/view-device-BzjcofqN.css +1 -0
  83. package/dist/assets/view-device-G0HNu3uq.js +1 -0
  84. package/dist/assets/view-device-add-DH9dP5Cz.js +1 -0
  85. package/dist/assets/view-device-control-C7yIwncH.js +1 -0
  86. package/dist/assets/view-device-edit-BlU4dPiQ.js +1 -0
  87. package/dist/assets/view-devices-Chi3hszh.js +1 -0
  88. package/dist/assets/view-display-BYQGSNgE.js +1 -0
  89. package/dist/assets/view-display-edit-CWy0YxpU.js +1 -0
  90. package/dist/assets/{view-display-tokens-BxHDs6uq.js → view-display-tokens-B9NO74SI.js} +1 -1
  91. package/dist/assets/view-displays-DCMSKvQC.js +1 -0
  92. package/dist/assets/view-extension-detail-Bpe1SuRL.js +1 -0
  93. package/dist/assets/view-extensions-4icpEBmk.js +1 -0
  94. package/dist/assets/view-location-B3109AjC.js +1 -0
  95. package/dist/assets/view-location-add-B5TfemFm.js +1 -0
  96. package/dist/assets/view-location-edit-BiKzCPdU.js +1 -0
  97. package/dist/assets/{view-locations-lurkMZH_.js → view-locations-DgJWznyr.js} +1 -1
  98. package/dist/assets/{view-lock-screen-C2ycj8hs.js → view-lock-screen-DnurE7HE.js} +1 -1
  99. package/dist/assets/view-onboarding-Bofh1RKX.js +1 -0
  100. package/dist/assets/view-page-HjwT00zT.js +1 -0
  101. package/dist/assets/view-page-add-DEfTMTZD.js +1 -0
  102. package/dist/assets/view-page-configure-C_1NO0bt.js +1 -0
  103. package/dist/assets/view-page-configure-Coc0nFKQ.js +1 -0
  104. package/dist/assets/{view-page-data-source-add-BumAmlK1.js → view-page-data-source-add-BsgMfff7.js} +1 -1
  105. package/dist/assets/view-page-data-source-edit-CE2g-iJu.js +1 -0
  106. package/dist/assets/view-page-edit-DZ4Sa1t4.js +1 -0
  107. package/dist/assets/{view-page-plugin-zbDx-8k2.js → view-page-plugin-CPw_mHp0.js} +1 -1
  108. package/dist/assets/view-pages-4pFfWxLp.js +1 -0
  109. package/dist/assets/{view-profile-general-4XvU3hOw.js → view-profile-general-BD-Ugn6Y.js} +1 -1
  110. package/dist/assets/{view-profile-security-tUXZtBfp.js → view-profile-security--sFjokEz.js} +1 -1
  111. package/dist/assets/view-scene-add-BM2YRiil.js +1 -0
  112. package/dist/assets/view-scene-edit-iG_UCVuj.js +1 -0
  113. package/dist/assets/view-scenes-DeyNcsnI.js +1 -0
  114. package/dist/assets/{view-sign-in-Dn7Sueav.js → view-sign-in-D3ilvJ5x.js} +1 -1
  115. package/dist/assets/{view-sign-up-BT4JPoJG.js → view-sign-up-CcFlgffe.js} +1 -1
  116. package/dist/assets/view-space-BmX4Mk0g.js +1 -0
  117. package/dist/assets/view-space-FBfL1ie4.css +1 -0
  118. package/dist/assets/view-space-add-BL0mLi5A.js +1 -0
  119. package/dist/assets/view-space-edit-D6zyfvL5.js +1 -0
  120. package/dist/assets/view-spaces-CfYpHztI.js +1 -0
  121. package/dist/assets/view-spaces-onboarding-wJNx-SPw.js +1 -0
  122. package/dist/assets/view-stats-DNYh1Y3u.js +1 -0
  123. package/dist/assets/{view-system-info-Bj795uHO.js → view-system-info-CqryYeHE.js} +1 -1
  124. package/dist/assets/{view-system-log-detail-BDgL1D5J.js → view-system-log-detail-BPE322jU.js} +1 -1
  125. package/dist/assets/{view-system-logs-DebD3h5V.js → view-system-logs-CB8YN6nq.js} +1 -1
  126. package/dist/assets/{view-tile-phBBfQoi.js → view-tile-CLRkOR4Z.js} +1 -1
  127. package/dist/assets/view-tile-add-BqIfZKZY.js +1 -0
  128. package/dist/assets/view-tile-add-DINIvf26.js +1 -0
  129. package/dist/assets/{view-tile-data-source-add-BQeH_vRs.js → view-tile-data-source-add-BBh9yt7q.js} +1 -1
  130. package/dist/assets/view-tile-data-source-edit-xs96Zp_i.js +1 -0
  131. package/dist/assets/view-tile-edit-B0c9B2Px.js +1 -0
  132. package/dist/assets/view-tile-edit-DJrcvw-X.js +1 -0
  133. package/dist/assets/view-tile-edit-DVCXn7j6.js +1 -0
  134. package/dist/assets/{view-user-add-D3EkKSML.js → view-user-add-BoWdp31M.js} +1 -1
  135. package/dist/assets/{view-user-edit-ColYWEea.js → view-user-edit-w6HrM0Pp.js} +1 -1
  136. package/dist/assets/view-users-B650ATvL.js +1 -0
  137. package/dist/assets/weather-C9l5w8Wt.js +2 -0
  138. package/dist/assets/{weather-forecast.transformers-Bq4YleIF.js → weather-forecast.transformers-CiW9kg6i.js} +1 -1
  139. package/dist/index.html +86 -82
  140. package/package.json +1 -1
  141. package/dist/assets/common-DyDAwGBz.js +0 -150
  142. package/dist/assets/components--65VzRQH.js +0 -1
  143. package/dist/assets/components-BPdLRVnA.js +0 -2
  144. package/dist/assets/components-BerPwVp-.js +0 -1
  145. package/dist/assets/components-C59v4_pJ.css +0 -1
  146. package/dist/assets/components-CgyOM-CC.js +0 -1
  147. package/dist/assets/components-Cvj-jTXV.js +0 -2
  148. package/dist/assets/components-DyHKXGO-.js +0 -1
  149. package/dist/assets/components-mclHZ55p.js +0 -1
  150. package/dist/assets/composables-B6gv3LxR.js +0 -1
  151. package/dist/assets/composables-EOIIyvfq2.js +0 -1
  152. package/dist/assets/index-BDDqdVnT.js +0 -16
  153. package/dist/assets/index-DU31qw7A.css +0 -1
  154. package/dist/assets/input-number-ZxkWRYbD.js +0 -1
  155. package/dist/assets/integration-config-dialog-ByYgxK4S.js +0 -1
  156. package/dist/assets/layout-profile-D_3OGioj.js +0 -1
  157. package/dist/assets/layout-sign-DjzS064d.js +0 -1
  158. package/dist/assets/list-data-sources-adjust-D8QPNWre.js +0 -1
  159. package/dist/assets/logs-entries.transformers-B17JQgGx.js +0 -1
  160. package/dist/assets/scene-add-form-v31kuUJe.js +0 -1
  161. package/dist/assets/scene-edit-form-CURoaMiA.js +0 -1
  162. package/dist/assets/slider-CS5SsQJB.js +0 -1
  163. package/dist/assets/useBuddyChat-CGKBq3sR.js +0 -1
  164. package/dist/assets/useGeolocation-Bn0Ka28s.js +0 -2
  165. package/dist/assets/view-buddy-chat-2LOZupni.js +0 -1
  166. package/dist/assets/view-card-add-PWabVoVQ.js +0 -1
  167. package/dist/assets/view-card-edit-DEJBolH-.js +0 -1
  168. package/dist/assets/view-channel-BHDhS4p-.js +0 -1
  169. package/dist/assets/view-channel-add-BCtvWXrd.js +0 -1
  170. package/dist/assets/view-channel-edit-BTyoazYZ.js +0 -1
  171. package/dist/assets/view-channel-property-add-ruykaYtd.js +0 -1
  172. package/dist/assets/view-channel-property-edit-BnYYqxkX.js +0 -1
  173. package/dist/assets/view-channels-CmrrHeQA.js +0 -1
  174. package/dist/assets/view-config-modules-P71Gx-Ox.js +0 -1
  175. package/dist/assets/view-config-plugin-edit-C6_fE8lN.js +0 -1
  176. package/dist/assets/view-config-plugins-1dCE5KY4.js +0 -1
  177. package/dist/assets/view-data-source-add-COea4cEq.js +0 -1
  178. package/dist/assets/view-data-source-add-Ctkk4rH0.js +0 -1
  179. package/dist/assets/view-data-source-edit-DSVnEdb0.js +0 -1
  180. package/dist/assets/view-data-source-edit-dwsWJDG4.js +0 -1
  181. package/dist/assets/view-device-DvKgjKr8.css +0 -1
  182. package/dist/assets/view-device-TNAtLE-u.js +0 -1
  183. package/dist/assets/view-device-add-DOMsL_By.js +0 -1
  184. package/dist/assets/view-device-control-D3bWbQy2.js +0 -1
  185. package/dist/assets/view-device-edit-BSrgYuAM.js +0 -1
  186. package/dist/assets/view-devices-D0fUuW0C.js +0 -1
  187. package/dist/assets/view-display-CZPK0L_O.js +0 -1
  188. package/dist/assets/view-display-edit-gByzGhMs.js +0 -1
  189. package/dist/assets/view-displays-CewYxCVw.js +0 -1
  190. package/dist/assets/view-extension-detail-DSs3NVxd.js +0 -1
  191. package/dist/assets/view-extensions-piIsPNf6.js +0 -1
  192. package/dist/assets/view-location-CSl3EEVR.js +0 -1
  193. package/dist/assets/view-location-add-DAJfdCWA.js +0 -1
  194. package/dist/assets/view-location-edit-DzRxnPA5.js +0 -1
  195. package/dist/assets/view-onboarding-dzzRbXxx.js +0 -1
  196. package/dist/assets/view-page-71AaAyYY.js +0 -1
  197. package/dist/assets/view-page-add-Bf9pNL0Y.js +0 -1
  198. package/dist/assets/view-page-configure-DFlrn4ng.js +0 -1
  199. package/dist/assets/view-page-configure-DZZgAftY.js +0 -1
  200. package/dist/assets/view-page-data-source-edit-CKQj40z8.js +0 -1
  201. package/dist/assets/view-page-edit-DsVBb_0a.js +0 -1
  202. package/dist/assets/view-pages-CzrtWNsy.js +0 -1
  203. package/dist/assets/view-scene-add-DYx7wqWm.js +0 -1
  204. package/dist/assets/view-scene-edit-BNLlsUWW.js +0 -1
  205. package/dist/assets/view-scenes-DPZBf6hH.js +0 -1
  206. package/dist/assets/view-space-DCq1Iggu.js +0 -1
  207. package/dist/assets/view-space-add-DChQBXFH.js +0 -1
  208. package/dist/assets/view-space-edit-BCS0kMTe.js +0 -1
  209. package/dist/assets/view-spaces-B9N_NjpZ.js +0 -1
  210. package/dist/assets/view-spaces-onboarding-JIX4TcWu.js +0 -1
  211. package/dist/assets/view-stats-D3jkSeCi.js +0 -1
  212. package/dist/assets/view-tile-add-BNt_lwb1.js +0 -1
  213. package/dist/assets/view-tile-add-wMJtoCQn.js +0 -1
  214. package/dist/assets/view-tile-data-source-edit-D2d0Esvp.js +0 -1
  215. package/dist/assets/view-tile-edit-CEbfDUeY.js +0 -1
  216. package/dist/assets/view-tile-edit-CH5cKzYp.js +0 -1
  217. package/dist/assets/view-tile-edit-D9COp79j.js +0 -1
  218. package/dist/assets/view-users-BmX2uwUd.js +0 -1
  219. package/dist/assets/weather-ll5NQwKh.js +0 -2
  220. /package/dist/assets/{auth.constants-Dls_gTTx.js → auth.constants-BtlHaDRV.js} +0 -0
  221. /package/dist/assets/{composables-DDYun9ja.js → composables-BU1aKa642.js} +0 -0
  222. /package/dist/assets/{extensions.constants-BtEcoiTe.js → extensions.constants-zRRiNzmt.js} +0 -0
  223. /package/dist/assets/{keys-CGGnS6tq.js → keys-DVEtutPb.js} +0 -0
  224. /package/dist/assets/{keys-DHSxrtbW.js → keys-DWeeqbdi.js} +0 -0
  225. /package/dist/assets/{keys-Cm97UJHM.js → keys-o2K4DVjh.js} +0 -0
  226. /package/dist/assets/{system.exceptions-Ddzmz1RH.js → system.exceptions-CLPql-b3.js} +0 -0
@@ -1 +0,0 @@
1
- import"./chunk-DECur_0Z.js";import{$r as e,Ai as t,Ar as n,Br as r,C as i,Di as a,Hr as o,Jt as s,Lr as c,Lt as l,Mt as u,Nr as d,O as f,Oi as p,Qr as m,Qt as h,S as g,Sr as _,T as v,Ur as y,Xr as b,Zt as x,_i as S,_r as C,ai as ee,br as w,ci as te,ct as T,d as E,f as D,gr as O,h as k,hr as A,in as j,ji as M,lr as N,m as P,mr as F,n as I,p as L,pi as ne,pt as re,sr as ie,t as R,tn as ae,tt as oe,ui as z,ut as se,vr as B,w as ce,wi as le,xr as V}from"./icon-with-child-DmQ_XhQy.js";import{$r as H,At as ue,B as de,Bt as U,Ci as fe,Fi as pe,Ft as me,H as he,Hr as ge,Ht as W,Ir as _e,Kr as ve,Li as ye,Ni as be,Nr as xe,Nt as Se,Pi as G,Rt as K,Si as Ce,Ti as we,Ur as Te,Vr as Ee,Wt as De,Xt as Oe,Yt as ke,_ as Ae,_i as q,bi as J,cr as Y,d as je,di as Me,ei as Ne,fa as Pe,fr as Fe,gi as Ie,hr as X,jr as Le,jt as Re,ma as ze,pr as Z,ui as Be,ur as Q,vi as Ve,wi as He,y as Ue,yi as We}from"./common-DyDAwGBz.js";import{n as $,t as Ge}from"./table-DEzwgEz4.js";import{t as Ke}from"./input-number-ZxkWRYbD.js";import{n as qe,r as Je}from"./radio-BvpKu4BH.js";import{t as Ye}from"./pagination-DejKh2TT.js";import{t as Xe}from"./slider-CS5SsQJB.js";import{t as Ze}from"./popover-BW83aJP4.js";import{i as Qe}from"./composables-lfdMtVU8.js";import{t as $e}from"./useSpaces-LfBlMH_H.js";import{a as et,c as tt,d as nt,f as rt,g as it,h as at,l as ot,m as st,p as ct,t as lt,u as ut}from"./composables-UlKjXsBi.js";import{t as dt}from"./useDevices-oOyjupML.js";import{b as ft,n as pt,r as mt,y as ht}from"./composables-EOIIyvfq2.js";var gt={label:`label`,value:`value`,disabled:`disabled`},_t=x({direction:{type:h(String),default:`horizontal`},options:{type:h(Array),default:()=>[]},modelValue:{type:[String,Number,Boolean],default:void 0},props:{type:h(Object),default:()=>gt},block:Boolean,size:T,disabled:{type:Boolean,default:void 0},validateEvent:{type:Boolean,default:!0},id:String,name:String,...ye([`ariaLabel`])}),vt={[ze]:e=>a(e)||j(e)||ae(e),[Pe]:e=>a(e)||j(e)||ae(e)},yt=[`id`,`aria-label`,`aria-labelledby`],bt=[`name`,`disabled`,`checked`,`onChange`],xt=oe(_({name:`ElSegmented`,__name:`segmented`,props:_t,emits:vt,setup(e,{emit:n}){let a=e,c=n,d=re(`segmented`),f=se(),m=v(),h=ce(),{formItem:_}=g(),{inputId:x,isLabeledByFormItem:ee}=i(a,{formItemContext:_}),T=z(null),E=u(),D=te({isInit:!1,width:0,height:0,translateX:0,translateY:0,focusVisible:!1}),O=(e,t)=>{let n=P(t);c(ze,n),c(Pe,n),e.target.checked=n===a.modelValue},k=F(()=>({...gt,...a.props})),j=e=>e,P=e=>le(e)?e[k.value.value]:e,I=e=>le(e)?e[k.value.label]:e,L=e=>!!(h.value||le(e)&&e[k.value.disabled]),ne=e=>a.modelValue===P(e),ie=e=>a.options.find(t=>P(t)===e),R=e=>[d.e(`item`),d.is(`selected`,ne(e)),d.is(`disabled`,L(e))],ae=()=>{if(!T.value)return;let e=T.value.querySelector(`.is-selected`),t=T.value.querySelector(`.is-selected input`);if(!e||!t){D.width=0,D.height=0,D.translateX=0,D.translateY=0,D.focusVisible=!1;return}D.isInit=!0,a.direction===`vertical`?(D.height=e.offsetHeight,D.translateY=e.offsetTop):(D.width=e.offsetWidth,D.translateX=e.offsetLeft);try{D.focusVisible=t.matches(`:focus-visible`)}catch{}},oe=F(()=>[d.b(),d.m(m.value),d.is(`block`,a.block)]),V=F(()=>({width:a.direction===`vertical`?`100%`:`${D.width}px`,height:a.direction===`vertical`?`${D.height}px`:`100%`,transform:a.direction===`vertical`?`translateY(${D.translateY}px)`:`translateX(${D.translateX}px)`,display:D.isInit?`block`:`none`})),H=F(()=>[d.e(`item-selected`),d.is(`disabled`,L(ie(a.modelValue))),d.is(`focus-visible`,D.focusVisible)]),ue=F(()=>a.name||f.value);return l(T,ae),b(E,ae),b(()=>a.modelValue,()=>{ae(),a.validateEvent&&_?.validate?.(`change`).catch(e=>s(e))},{flush:`post`}),(n,i)=>e.options.length?(r(),B(`div`,{key:0,id:S(x),ref_key:`segmentedRef`,ref:T,class:p(oe.value),role:`radiogroup`,"aria-label":S(ee)?void 0:e.ariaLabel||`segmented`,"aria-labelledby":S(ee)?S(_).labelId:void 0},[A(`div`,{class:p([S(d).e(`group`),S(d).m(e.direction)])},[A(`div`,{style:t(V.value),class:p(H.value)},null,6),(r(!0),B(N,null,o(e.options,(e,t)=>(r(),B(`label`,{key:t,class:p(R(e))},[A(`input`,{class:p(S(d).e(`item-input`)),type:`radio`,name:ue.value,disabled:L(e),checked:ne(e),onChange:t=>O(t,e)},null,42,bt),A(`div`,{class:p(S(d).e(`item-label`))},[y(n.$slots,`default`,{item:j(e)},()=>[w(M(I(e)),1)])],2)],2))),128))],2)],10,yt)):C(`v-if`,!0)}})),St={class:`flex w-full`},Ct=_({name:`SpacesFilter`,__name:`spaces-filter`,props:{filters:{},filtersActive:{type:Boolean},selectedCount:{},bulkActions:{}},emits:[`update:filters`,`reset-filters`,`adjust-list`,`bulk-action`],setup(e,{emit:t}){let n=e,i=t,{t:a}=E(),o=xe(n,`filters`,i),s=z(void 0);return b(()=>o.value.search,e=>{e===``&&(o.value.search=void 0)}),(e,t)=>(r(),B(`div`,St,[V(S(be),{ref_key:`filterFormEl`,ref:s,inline:!0,model:S(o),class:`grow-1`},{default:m(()=>[V(S(we),{modelValue:S(o).search,"onUpdate:modelValue":t[0]||=e=>S(o).search=e,placeholder:S(a)(`spacesModule.fields.search.placeholder`),class:`max-w[280px] p-1`,clearable:``},{suffix:m(()=>[V(S(f),null,{default:m(()=>[V(S(L),{icon:`mdi:magnify`})]),_:1})]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`model`]),V(S(he),{"selected-count":n.selectedCount,actions:n.bulkActions,onAction:t[1]||=e=>i(`bulk-action`,e)},null,8,[`selected-count`,`actions`]),n.filtersActive?(r(),O(S(k),{key:0,plain:``,class:`px-2! mt-1 mr-1`,onClick:t[2]||=e=>i(`reset-filters`)},{default:m(()=>[V(S(L),{icon:`mdi:filter-off`})]),_:1})):C(``,!0),V(S(k),{plain:``,class:`px-2! mt-1 mr-1`,onClick:t[3]||=e=>i(`adjust-list`)},{default:m(()=>[V(S(L),{icon:`mdi:slider`})]),_:1})]))}}),wt={key:0,class:`h-full w-full leading-normal`},Tt={key:1,class:`h-full w-full leading-normal`},Et={key:2,class:`h-full w-full leading-normal`},Dt={class:`block`},Ot=_({name:`SpacesTable`,__name:`spaces-table`,props:{items:{},totalRows:{},loading:{type:Boolean},filtersActive:{type:Boolean},tableHeight:{},filters:{},sortBy:{},sortDir:{}},emits:[`detail`,`edit`,`remove`,`add`,`reset-filters`,`update:sort-by`,`update:sort-dir`,`selected-changes`],setup(n,{emit:i}){let a=n,o=i,{t:s}=E(),{isMDDevice:c}=Le(),l=F(()=>a.totalRows===0),u=F(()=>a.tableHeight??400),d=({prop:e,order:t})=>{o(`update:sort-by`,e),o(`update:sort-dir`,t===`descending`?`desc`:t===`ascending`?`asc`:null)},f=e=>{o(`detail`,e.id)},p=e=>{o(`selected-changes`,e)};return(n,i)=>e((r(),O(S(Ge),{"element-loading-text":S(s)(`spacesModule.texts.loadingSpaces`),data:a.items,"default-sort":a.sortBy!==void 0&&a.sortDir!==null?{prop:a.sortBy,order:a.sortDir===`desc`?`descending`:`ascending`}:void 0,"table-layout":`fixed`,"row-key":`id`,class:`flex-grow`,style:t({maxHeight:u.value+`px`}),"max-height":u.value,onSortChange:d,onSelectionChange:p,onRowClick:f},{empty:m(()=>[a.loading?(r(),B(`div`,wt,[V(S(P),{class:`h-full w-full`},{icon:m(()=>[V(S(R),{size:80},{primary:m(()=>[V(S(L),{icon:`mdi:home-group`})]),secondary:m(()=>[V(S(L),{icon:`mdi:database-refresh`})]),_:1})]),_:1})])):a.filtersActive&&!a.loading?(r(),B(`div`,Tt,[V(S(P),{class:`h-full w-full`},{icon:m(()=>[V(S(R),{size:80},{primary:m(()=>[V(S(L),{icon:`mdi:home-group`})]),secondary:m(()=>[V(S(L),{icon:`mdi:filter-multiple`})]),_:1})]),title:m(()=>[V(S(Te),{class:`block`},{default:m(()=>[w(M(S(s)(`spacesModule.texts.noFilteredSpaces`)),1)]),_:1}),V(S(k),{type:`primary`,plain:``,class:`mt-4`,onClick:i[0]||=e=>o(`reset-filters`)},{icon:m(()=>[V(S(L),{icon:`mdi:filter-off`})]),default:m(()=>[w(` `+M(S(s)(`spacesModule.buttons.resetFilters.title`)),1)]),_:1})]),_:1})])):l.value&&!a.loading?(r(),B(`div`,Et,[V(S(P),{class:`h-full w-full`},{icon:m(()=>[V(S(R),{size:80},{primary:m(()=>[V(S(L),{icon:`mdi:home-group`})]),secondary:m(()=>[V(S(L),{icon:`mdi:information`})]),_:1})]),title:m(()=>[w(M(S(s)(`spacesModule.texts.noSpaces`)),1)]),_:1})])):C(``,!0)]),default:m(()=>[S(c)?(r(),O(S($),{key:0,type:`selection`,fixed:``,width:30})):C(``,!0),V(S($),{width:60,align:`center`},{default:m(e=>[V(S(fe),{size:32},{default:m(()=>[V(S(L),{icon:e.row.icon||(e.row.type===S(W).ROOM?`mdi:door`:`mdi:home-floor-1`),class:`w[20px] h[20px]`},null,8,[`icon`])]),_:2},1024)]),_:1}),V(S($),{label:S(s)(`spacesModule.table.columns.name`),prop:`name`,sortable:`custom`,"sort-orders":[`ascending`,`descending`],"min-width":200,"class-name":`py-0!`},{default:m(e=>[A(`strong`,Dt,M(e.row.name),1),e.row.description?(r(),O(S(Te),{key:0,size:`small`,class:`block leading-4`,truncated:``},{default:m(()=>[w(M(e.row.description),1)]),_:2},1024)):C(``,!0)]),_:1},8,[`label`]),V(S($),{label:S(s)(`spacesModule.table.columns.type`),prop:`type`,sortable:`custom`,"sort-orders":[`ascending`,`descending`],width:120},{default:m(e=>[V(S(J),{type:e.row.type===S(W).ROOM?`primary`:`info`,size:`small`},{default:m(()=>[w(M(S(s)(`spacesModule.misc.types.${e.row.type}`)),1)]),_:2},1032,[`type`])]),_:1},8,[`label`]),V(S($),{label:S(s)(`spacesModule.table.columns.category`),prop:`category`,width:150},{default:m(e=>[e.row.category?(r(),O(S(Te),{key:0,size:`small`},{default:m(()=>[w(M(S(s)(`spacesModule.fields.spaces.category.options.${e.row.category}`)),1)]),_:2},1024)):(r(),O(S(Te),{key:1,size:`small`,type:`info`},{default:m(()=>[...i[2]||=[w(` — `,-1)]]),_:1}))]),_:1},8,[`label`]),V(S($),{label:S(s)(`spacesModule.table.columns.order`),prop:`displayOrder`,sortable:`custom`,"sort-orders":[`ascending`,`descending`],width:100,align:`center`},{default:m(e=>[w(M(e.row.displayOrder),1)]),_:1},8,[`label`]),V(S($),{width:190,align:`right`},{default:m(e=>[A(`div`,{onClick:i[1]||=ie(()=>{},[`stop`])},[V(S(k),{size:`small`,plain:``,"data-test-id":`detail-space`,onClick:t=>o(`detail`,e.row.id)},{icon:m(()=>[V(S(L),{icon:`mdi:file-search-outline`})]),default:m(()=>[w(` `+M(S(s)(`spacesModule.buttons.detail.title`)),1)]),_:1},8,[`onClick`]),V(S(k),{size:`small`,plain:``,class:`ml-1!`,"data-test-id":`edit-space`,onClick:t=>o(`edit`,e.row.id)},{icon:m(()=>[V(S(L),{icon:`mdi:pencil`})]),_:1},8,[`onClick`]),V(S(k),{size:`small`,type:`warning`,plain:``,class:`ml-1!`,"data-test-id":`remove-space`,onClick:t=>o(`remove`,e.row.id)},{icon:m(()=>[V(S(L),{icon:`mdi:trash`})]),_:1},8,[`onClick`])])]),_:1})]),_:1},8,[`element-loading-text`,`data`,`default-sort`,`style`,`max-height`])),[[S(ge),a.loading]])}}),kt=_({name:`ListSpaces`,__name:`list-spaces`,props:{items:{},allItems:{},totalRows:{},loading:{type:Boolean},filtersActive:{type:Boolean},filters:{},paginatePage:{},paginateSize:{},sortBy:{},sortDir:{}},emits:[`detail`,`edit`,`remove`,`add`,`adjust-list`,`reset-filters`,`update:filters`,`update:paginate-size`,`update:paginate-page`,`update:sort-by`,`update:sort-dir`,`bulk-action`],setup(e,{emit:t}){let n=e,i=t,{t:a}=E(),{isMDDevice:o}=Le(),s=null,l=z(null),u=z(null),f=xe(n,`filters`,i),p=z(n.sortBy),h=z(n.sortDir??null),g=z(n.paginatePage),_=z(n.paginateSize),v=z(250),y=z([]),x=F(()=>[{key:`delete`,label:a(`application.bulkActions.delete`),icon:`mdi:trash`,type:`danger`}]),C=e=>{i(`detail`,e)},w=e=>{i(`edit`,e)},te=e=>{i(`remove`,e)},T=()=>{i(`add`)},D=()=>{i(`reset-filters`)},O=e=>{i(`update:paginate-size`,e)},k=e=>{i(`update:paginate-page`,e)},j=e=>{y.value=e},M=e=>{i(`bulk-action`,e,y.value)};return c(()=>{if(!l.value)return;let e=()=>{l.value&&u.value&&(v.value=l.value.clientHeight-u.value.clientHeight)};typeof window<`u`&&`ResizeObserver`in window&&(s=new ResizeObserver(e),s.observe(l.value)),e()}),d(()=>{s&&l.value&&s.unobserve(l.value)}),b(()=>p.value,e=>{i(`update:sort-by`,e)}),b(()=>h.value,e=>{i(`update:sort-dir`,e)}),b(()=>n.paginatePage,e=>{g.value=e}),b(()=>n.paginateSize,e=>{_.value=e}),b(()=>n.sortDir??null,e=>{h.value=e}),b(()=>n.sortBy,e=>{p.value=e}),b(()=>o.value,e=>{e||(y.value=[])}),(e,t)=>(r(),B(N,null,[V(S(Ie),{shadow:`never`,class:`px-1 py-2 shrink-0`,"body-class":`p-0!`},{default:m(()=>[V(Ct,{filters:S(f),"onUpdate:filters":t[0]||=e=>ee(f)?f.value=e:null,"filters-active":n.filtersActive,"selected-count":y.value.length,"bulk-actions":x.value,onResetFilters:t[1]||=e=>i(`reset-filters`),onAdjustList:t[2]||=e=>i(`adjust-list`),onBulkAction:M},null,8,[`filters`,`filters-active`,`selected-count`,`bulk-actions`])]),_:1}),A(`div`,{ref_key:`wrapper`,ref:l,class:`flex-grow overflow-hidden`},[V(S(Ie),{shadow:`never`,class:`max-h-full flex flex-col overflow-hidden box-border`,"body-class":`p-0! max-h-full overflow-hidden flex flex-col`},{default:m(()=>[V(Ot,{filters:S(f),"onUpdate:filters":t[3]||=e=>ee(f)?f.value=e:null,"sort-by":p.value,"onUpdate:sortBy":t[4]||=e=>p.value=e,"sort-dir":h.value,"onUpdate:sortDir":t[5]||=e=>h.value=e,items:n.items,"total-rows":n.totalRows,loading:n.loading,"filters-active":n.filtersActive,"table-height":v.value,onDetail:C,onEdit:w,onRemove:te,onAdd:T,onResetFilters:D,onSelectedChanges:j},null,8,[`filters`,`sort-by`,`sort-dir`,`items`,`total-rows`,`loading`,`filters-active`,`table-height`]),A(`div`,{ref_key:`paginator`,ref:u,class:`flex justify-center w-full py-4`},[V(S(Ye),{"current-page":g.value,"onUpdate:currentPage":t[6]||=e=>g.value=e,"page-size":_.value,"onUpdate:pageSize":t[7]||=e=>_.value=e,layout:S(o)?`total, sizes, prev, pager, next, jumper`:`total, sizes, prev, pager, next`,total:n.allItems.length,onSizeChange:O,onCurrentChange:k},null,8,[`current-page`,`page-size`,`layout`,`total`])],512)]),_:1})],512)],64))}}),At={class:`px-2`},jt={class:`px-5 py-2 text-center`},Mt=D(_({name:`ListSpacesAdjust`,__name:`list-spaces-adjust`,props:{filters:{},filtersActive:{type:Boolean}},emits:[`update:filters`,`reset-filters`],setup(e,{emit:t}){let n=e,i=t,a=re(`list-spaces-adjust`),{t:o}=E(),s=z([`type`]),c=xe(n,`filters`,i);return(e,t)=>(r(),B(N,null,[V(S(_e),{teleport:``},{icon:m(()=>[V(S(L),{icon:`mdi:filter`})]),title:m(()=>[w(M(S(o)(`spacesModule.headings.adjustFilters`)),1)]),subtitle:m(()=>[w(M(S(o)(`spacesModule.subHeadings.adjustFilters`)),1)]),_:1}),A(`div`,{class:p([[S(a).b()],`flex flex-col h-full w-full overflow-hidden`])},[V(S(He),{class:`flex-grow`},{default:m(()=>[V(S(Be),{modelValue:s.value,"onUpdate:modelValue":t[1]||=e=>s.value=e},{default:m(()=>[V(S(Me),{name:`type`,class:p([S(a).e(`filter-item`)])},{title:m(()=>[V(S(Te),{class:`!px-2`},{default:m(()=>[w(M(S(o)(`spacesModule.filters.type.title`)),1)]),_:1})]),default:m(()=>[A(`div`,At,[V(S(Je),{modelValue:S(c).type,"onUpdate:modelValue":t[0]||=e=>S(c).type=e},{default:m(()=>[V(S(qe),{label:S(o)(`spacesModule.misc.types.room`),value:S(W).ROOM},null,8,[`label`,`value`]),V(S(qe),{label:S(o)(`spacesModule.misc.types.zone`),value:S(W).ZONE},null,8,[`label`,`value`]),V(S(qe),{label:S(o)(`spacesModule.filters.type.all`),value:`all`},null,8,[`label`])]),_:1},8,[`modelValue`])])]),_:1},8,[`class`])]),_:1},8,[`modelValue`])]),_:1}),A(`div`,jt,[V(S(k),{disabled:!n.filtersActive,onClick:t[2]||=e=>i(`reset-filters`)},{icon:m(()=>[V(S(L),{icon:`mdi:filter-remove`})]),default:m(()=>[w(` `+M(S(o)(`spacesModule.buttons.reset.title`)),1)]),_:1},8,[`disabled`])])],2)],64))}}),[[`__scopeId`,`data-v-2f65479c`]]),Nt={saved:e=>typeof e==`object`,cancel:()=>!0,"update:remote-form-changed":e=>typeof e==`boolean`},Pt={class:`flex items-center gap-2`},Ft={class:`font-medium`},It={class:`px-2`},Lt={class:`flex items-center gap-2`},Rt={class:`flex items-center gap-2`},zt={class:`flex items-center gap-2`},Bt={class:`font-medium`},Vt={class:`px-2`},Ht={class:`flex items-center gap-2`},Ut={key:0,class:`flex gap-2 justify-end mt-4`},Wt=_({__name:`space-add-form`,props:{hideActions:{type:Boolean,default:!1}},emits:Nt,setup(e,{expose:t,emit:n}){let i=e,a=n,{t:s}=E(),{zoneSpaces:c}=$e(),{model:l,formEl:u,formChanged:d,submit:p,formResult:h,createdSpace:g}=at({id:je().toString()}),_=z();b(_,e=>{u.value=e},{immediate:!0});let v=z([`general`,`organization`]),y=te({icon:null,description:null}),x=F({get:()=>l.icon?.replace(`mdi:`,``)??null,set:e=>{l.icon=e?`mdi:${e}`:null}}),{categoryOptions:ee,categoryGroups:T,currentTemplates:D}=st(F(()=>l.type));b(()=>l.type,e=>{l.category&&!Oe(l.category,e)&&(l.category=null,l.icon===y.icon&&(l.icon=null,y.icon=null),l.description===y.description&&(l.description=null,y.description=null)),e===W.ZONE&&(l.parentId=null),_.value?.clearValidate()});let j=e=>{if(e&&D.value[e]){let t=D.value[e];(!l.icon||l.icon===y.icon)&&(l.icon=t.icon,y.icon=t.icon),(!l.description||l.description===y.description)&&(l.description=t.description,y.description=t.description)}},P=F(()=>({name:[{required:!0,message:s(`spacesModule.fields.spaces.name.validation.required`),trigger:`blur`}],category:[{required:l.type===W.ZONE,message:s(`spacesModule.fields.spaces.category.validation.requiredForZone`),trigger:`blur`}]}));b(()=>d.value,e=>{a(`update:remote-form-changed`,e)},{immediate:!0});let I=async()=>{try{await p(),g.value&&a(`saved`,g.value)}catch{}},ne=()=>{a(`cancel`)};return t({submit:I}),(e,t)=>(r(),O(S(be),{ref_key:`formElRef`,ref:_,model:S(l),rules:P.value,"label-position":`top`,onSubmit:ie(I,[`prevent`])},{default:m(()=>[V(S(Be),{modelValue:v.value,"onUpdate:modelValue":t[7]||=e=>v.value=e},{default:m(()=>[V(S(Me),{name:`general`},{title:m(()=>[A(`div`,Pt,[V(S(f),{size:20},{default:m(()=>[V(S(L),{icon:`mdi:information`})]),_:1}),A(`span`,Ft,M(S(s)(`spacesModule.edit.sections.general.title`)),1)])]),default:m(()=>[A(`div`,It,[V(S(G),{label:S(s)(`spacesModule.fields.spaces.name.title`),prop:`name`},{default:m(()=>[V(S(we),{modelValue:S(l).name,"onUpdate:modelValue":t[0]||=e=>S(l).name=e,placeholder:S(s)(`spacesModule.fields.spaces.name.placeholder`)},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),V(S(G),{label:S(s)(`spacesModule.fields.spaces.type.title`),prop:`type`},{default:m(()=>[V(S(We),{modelValue:S(l).type,"onUpdate:modelValue":t[1]||=e=>S(l).type=e},{default:m(()=>[V(S(q),{label:S(s)(`spacesModule.fields.spaces.type.options.room`),value:S(W).ROOM},null,8,[`label`,`value`]),V(S(q),{label:S(s)(`spacesModule.fields.spaces.type.options.zone`),value:S(W).ZONE},null,8,[`label`,`value`])]),_:1},8,[`modelValue`])]),_:1},8,[`label`]),V(S(G),{label:S(s)(`spacesModule.fields.spaces.category.title`),prop:`category`},{default:m(()=>[V(S(We),{modelValue:S(l).category,"onUpdate:modelValue":t[2]||=e=>S(l).category=e,placeholder:S(s)(`spacesModule.fields.spaces.category.placeholder`),clearable:S(l).type!==S(W).ZONE,onChange:j},{default:m(()=>[S(T)?(r(!0),B(N,{key:0},o(S(T),e=>(r(),O(S(Ve),{key:e.key,label:S(s)(`spacesModule.fields.spaces.category.groups.${e.key}`)},{default:m(()=>[(r(!0),B(N,null,o(e.categories,e=>(r(),O(S(q),{key:e,label:S(s)(`spacesModule.fields.spaces.category.options.${e}`),value:e},{default:m(()=>[A(`span`,Lt,[S(D)[e]?(r(),O(S(f),{key:0},{default:m(()=>[V(S(L),{icon:S(D)[e].icon},null,8,[`icon`])]),_:2},1024)):C(``,!0),w(` `+M(S(s)(`spacesModule.fields.spaces.category.options.${e}`)),1)])]),_:2},1032,[`label`,`value`]))),128))]),_:2},1032,[`label`]))),128)):(r(!0),B(N,{key:1},o(S(ee),e=>(r(),O(S(q),{key:e,label:S(s)(`spacesModule.fields.spaces.category.options.${e}`),value:e},{default:m(()=>[A(`span`,Rt,[S(D)[e]?(r(),O(S(f),{key:0},{default:m(()=>[V(S(L),{icon:S(D)[e].icon},null,8,[`icon`])]),_:2},1024)):C(``,!0),w(` `+M(S(s)(`spacesModule.fields.spaces.category.options.${e}`)),1)])]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`clearable`])]),_:1},8,[`label`]),V(S(pe),{title:S(s)(`spacesModule.fields.spaces.category.hint`),type:`info`,closable:!1,"show-icon":``,class:`my-2!`},null,8,[`title`]),V(S(G),{label:S(s)(`spacesModule.fields.spaces.description.title`),prop:`description`},{default:m(()=>[V(S(we),{modelValue:S(l).description,"onUpdate:modelValue":t[3]||=e=>S(l).description=e,type:`textarea`,rows:3,placeholder:S(s)(`spacesModule.fields.spaces.description.placeholder`)},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),V(S(G),{label:S(s)(`spacesModule.fields.spaces.icon.title`),prop:`icon`},{default:m(()=>[V(S(de),{modelValue:x.value,"onUpdate:modelValue":t[4]||=e=>x.value=e,placeholder:S(s)(`spacesModule.fields.spaces.icon.placeholder`)},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),V(S(G),{label:S(s)(`spacesModule.fields.spaces.displayOrder.title`),prop:`displayOrder`},{default:m(()=>[V(S(Ke),{modelValue:S(l).displayOrder,"onUpdate:modelValue":t[5]||=e=>S(l).displayOrder=e,min:0},null,8,[`modelValue`])]),_:1},8,[`label`])])]),_:1}),S(l).type===S(W).ROOM?(r(),O(S(Me),{key:0,name:`organization`},{title:m(()=>[A(`div`,zt,[V(S(f),{size:20},{default:m(()=>[V(S(L),{icon:`mdi:sitemap`})]),_:1}),A(`span`,Bt,M(S(s)(`spacesModule.edit.sections.organization.title`)),1)])]),default:m(()=>[A(`div`,Vt,[V(S(G),{label:S(s)(`spacesModule.fields.spaces.parentZone.title`),prop:`parentId`},{default:m(()=>[V(S(We),{modelValue:S(l).parentId,"onUpdate:modelValue":t[6]||=e=>S(l).parentId=e,placeholder:S(s)(`spacesModule.fields.spaces.parentZone.placeholder`),clearable:``,filterable:``},{default:m(()=>[(r(!0),B(N,null,o(S(c),e=>(r(),O(S(q),{key:e.id,label:e.name,value:e.id},{default:m(()=>[A(`span`,Ht,[e.icon?(r(),O(S(f),{key:0},{default:m(()=>[V(S(L),{icon:e.icon},null,8,[`icon`])]),_:2},1024)):C(``,!0),w(` `+M(e.name),1)])]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),V(S(pe),{title:S(s)(`spacesModule.edit.sections.organization.hint`),type:`info`,closable:!1,"show-icon":``},null,8,[`title`])])]),_:1})):C(``,!0)]),_:1},8,[`modelValue`]),i.hideActions?C(``,!0):(r(),B(`div`,Ut,[V(S(k),{onClick:ne},{default:m(()=>[w(M(S(s)(`spacesModule.buttons.cancel.title`)),1)]),_:1}),V(S(k),{type:`primary`,loading:S(h)===S(Se).WORKING,onClick:I},{default:m(()=>[w(M(S(s)(`spacesModule.buttons.save.title`)),1)]),_:1},8,[`loading`])]))]),_:1},8,[`model`,`rules`]))}}),Gt={saved:e=>typeof e==`object`,cancel:()=>!0,"update:remote-form-changed":e=>typeof e==`boolean`},Kt={class:`flex items-center gap-2`},qt={class:`font-medium`},Jt={class:`px-2`},Yt={class:`flex items-center gap-2`},Xt={class:`flex items-center gap-2`},Zt={class:`flex items-center gap-2`},Qt={class:`font-medium`},$t={class:`px-2`},en={class:`flex items-center gap-2`},tn={class:`flex items-center gap-2`},nn={class:`font-medium`},rn={class:`px-2`},an={class:`border border-solid border-gray-200 rounded-lg p-4 mb-2`},on={class:`flex items-center justify-between mb-3`},sn={class:`flex items-center gap-2`},cn={class:`font-medium`},ln={class:`flex items-center gap-2`},un={class:`font-medium`},dn={class:`px-2`},fn={key:0,class:`flex gap-2 justify-end mt-4`},pn=_({__name:`space-edit-form`,props:{space:{},hideActions:{type:Boolean,default:!1}},emits:Gt,setup(e,{expose:t,emit:n}){let i=e,a=n,{t:s}=E(),{zoneSpaces:c,findById:l}=$e(),{model:u,formEl:d,formChanged:p,submit:h,formResult:g}=nt({space:F(()=>i.space)}),_=z();b(_,e=>{d.value=e},{immediate:!0});let v=z([`general`,`organization`]),y=te({icon:null,description:null}),x=F({get:()=>u.icon?.replace(`mdi:`,``)??null,set:e=>{u.icon=e?`mdi:${e}`:null}}),{categoryOptions:ee,categoryGroups:T,currentTemplates:D}=st(F(()=>u.type)),j=F(()=>c.value.filter(e=>!i.space||e.id!==i.space.id)),P=()=>u.statusWidgets?.find(e=>e.type===De.ENERGY),I=F(()=>!!P()),ne=F(()=>[{label:s(`spacesModule.fields.spaces.statusWidgets.energy.range.options.today`),value:Re.TODAY},{label:s(`spacesModule.fields.spaces.statusWidgets.energy.range.options.week`),value:Re.WEEK},{label:s(`spacesModule.fields.spaces.statusWidgets.energy.range.options.month`),value:Re.MONTH}]),re=F({get:()=>P()?.settings?.range??ue.range,set:e=>{let t=P();t&&(t.settings={...t.settings,range:e})}}),R=F({get:()=>P()?.settings?.showProduction??ue.showProduction,set:e=>{let t=P();t&&(t.settings={...t.settings,showProduction:e})}}),ae=e=>{if(e){let e=u.statusWidgets??[];if(e.some(e=>e.type===De.ENERGY))return;e.push({type:De.ENERGY,order:e.length,settings:{range:ue.range,showProduction:ue.showProduction}}),u.statusWidgets=e}else{let e=(u.statusWidgets??[]).filter(e=>e.type!==De.ENERGY);u.statusWidgets=e.length>0?e:null}};b(()=>u.type,e=>{u.category&&!Oe(u.category,e)&&(u.category=null,u.icon===y.icon&&(u.icon=null,y.icon=null),u.description===y.description&&(u.description=null,y.description=null)),e===W.ZONE&&(u.parentId=null),_.value?.clearValidate()});let oe=e=>{if(e&&D.value[e]){let t=D.value[e];(!u.icon||u.icon===y.icon)&&(u.icon=t.icon,y.icon=t.icon),(!u.description||u.description===y.description)&&(u.description=t.description,y.description=t.description)}},se=F(()=>({name:[{required:!0,message:s(`spacesModule.fields.spaces.name.validation.required`),trigger:`blur`}],category:[{required:u.type===W.ZONE,message:s(`spacesModule.fields.spaces.category.validation.requiredForZone`),trigger:`blur`}]}));b(()=>p.value,e=>{a(`update:remote-form-changed`,e)},{immediate:!0}),b(()=>i.space,e=>{e&&(y.icon=null,y.description=null)});let ce=async()=>{try{await h();let e=l(u.id);e&&a(`saved`,e)}catch{}},le=()=>{a(`cancel`)};return t({submit:ce}),(t,n)=>(r(),O(S(be),{ref_key:`formRef`,ref:_,model:S(u),rules:se.value,"label-position":`top`,onSubmit:ie(ce,[`prevent`])},{default:m(()=>[V(S(Be),{modelValue:v.value,"onUpdate:modelValue":n[9]||=e=>v.value=e},{default:m(()=>[V(S(Me),{name:`general`},{title:m(()=>[A(`div`,Kt,[V(S(f),{size:20},{default:m(()=>[V(S(L),{icon:`mdi:information`})]),_:1}),A(`span`,qt,M(S(s)(`spacesModule.edit.sections.general.title`)),1)])]),default:m(()=>[A(`div`,Jt,[V(S(G),{label:S(s)(`spacesModule.fields.spaces.name.title`),prop:`name`},{default:m(()=>[V(S(we),{modelValue:S(u).name,"onUpdate:modelValue":n[0]||=e=>S(u).name=e,placeholder:S(s)(`spacesModule.fields.spaces.name.placeholder`)},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),V(S(G),{label:S(s)(`spacesModule.fields.spaces.category.title`),prop:`category`},{default:m(()=>[V(S(We),{modelValue:S(u).category,"onUpdate:modelValue":n[1]||=e=>S(u).category=e,placeholder:S(s)(`spacesModule.fields.spaces.category.placeholder`),clearable:S(u).type!==S(W).ZONE,onChange:oe},{default:m(()=>[S(T)?(r(!0),B(N,{key:0},o(S(T),e=>(r(),O(S(Ve),{key:e.key,label:S(s)(`spacesModule.fields.spaces.category.groups.${e.key}`)},{default:m(()=>[(r(!0),B(N,null,o(e.categories,e=>(r(),O(S(q),{key:e,label:S(s)(`spacesModule.fields.spaces.category.options.${e}`),value:e},{default:m(()=>[A(`span`,Yt,[S(D)[e]?(r(),O(S(f),{key:0},{default:m(()=>[V(S(L),{icon:S(D)[e].icon},null,8,[`icon`])]),_:2},1024)):C(``,!0),w(` `+M(S(s)(`spacesModule.fields.spaces.category.options.${e}`)),1)])]),_:2},1032,[`label`,`value`]))),128))]),_:2},1032,[`label`]))),128)):(r(!0),B(N,{key:1},o(S(ee),e=>(r(),O(S(q),{key:e,label:S(s)(`spacesModule.fields.spaces.category.options.${e}`),value:e},{default:m(()=>[A(`span`,Xt,[S(D)[e]?(r(),O(S(f),{key:0},{default:m(()=>[V(S(L),{icon:S(D)[e].icon},null,8,[`icon`])]),_:2},1024)):C(``,!0),w(` `+M(S(s)(`spacesModule.fields.spaces.category.options.${e}`)),1)])]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`clearable`])]),_:1},8,[`label`]),V(S(pe),{title:S(s)(`spacesModule.fields.spaces.category.hint`),type:`info`,closable:!1,"show-icon":``,class:`!my-2`},null,8,[`title`]),V(S(G),{label:S(s)(`spacesModule.fields.spaces.description.title`),prop:`description`},{default:m(()=>[V(S(we),{modelValue:S(u).description,"onUpdate:modelValue":n[2]||=e=>S(u).description=e,type:`textarea`,rows:3,placeholder:S(s)(`spacesModule.fields.spaces.description.placeholder`)},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),V(S(G),{label:S(s)(`spacesModule.fields.spaces.icon.title`),prop:`icon`},{default:m(()=>[V(S(de),{modelValue:x.value,"onUpdate:modelValue":n[3]||=e=>x.value=e,placeholder:S(s)(`spacesModule.fields.spaces.icon.placeholder`)},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),V(S(G),{label:S(s)(`spacesModule.fields.spaces.displayOrder.title`),prop:`displayOrder`},{default:m(()=>[V(S(Ke),{modelValue:S(u).displayOrder,"onUpdate:modelValue":n[4]||=e=>S(u).displayOrder=e,min:0},null,8,[`modelValue`])]),_:1},8,[`label`])])]),_:1}),S(u).type===S(W).ROOM?(r(),O(S(Me),{key:0,name:`organization`},{title:m(()=>[A(`div`,Zt,[V(S(f),{size:20},{default:m(()=>[V(S(L),{icon:`mdi:sitemap`})]),_:1}),A(`span`,Qt,M(S(s)(`spacesModule.edit.sections.organization.title`)),1)])]),default:m(()=>[A(`div`,$t,[V(S(G),{label:S(s)(`spacesModule.fields.spaces.parentZone.title`),prop:`parentId`},{default:m(()=>[V(S(We),{modelValue:S(u).parentId,"onUpdate:modelValue":n[5]||=e=>S(u).parentId=e,placeholder:S(s)(`spacesModule.fields.spaces.parentZone.placeholder`),clearable:``,filterable:``},{default:m(()=>[(r(!0),B(N,null,o(j.value,e=>(r(),O(S(q),{key:e.id,label:e.name,value:e.id},{default:m(()=>[A(`span`,en,[e.icon?(r(),O(S(f),{key:0},{default:m(()=>[V(S(L),{icon:e.icon},null,8,[`icon`])]),_:2},1024)):C(``,!0),w(` `+M(e.name),1)])]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),V(S(pe),{title:S(s)(`spacesModule.edit.sections.organization.hint`),type:`info`,closable:!1,"show-icon":``},null,8,[`title`])])]),_:1})):C(``,!0),V(S(Me),{name:`statusWidgets`},{title:m(()=>[A(`div`,tn,[V(S(f),{size:20},{default:m(()=>[V(S(L),{icon:`mdi:view-dashboard-variant`})]),_:1}),A(`span`,nn,M(S(s)(`spacesModule.edit.sections.statusWidgets.title`)),1)])]),default:m(()=>[A(`div`,rn,[V(S(pe),{title:S(s)(`spacesModule.edit.sections.statusWidgets.hint`),type:`info`,closable:!1,"show-icon":``,class:`!mb-4`},null,8,[`title`]),A(`div`,an,[A(`div`,on,[A(`div`,sn,[V(S(L),{icon:`mdi:flash-outline`,class:`text-lg`}),A(`span`,cn,M(S(s)(`spacesModule.fields.spaces.statusWidgets.energy.title`)),1)]),V(S(ve),{"model-value":I.value,onChange:ae},null,8,[`model-value`])]),I.value?(r(),B(N,{key:0},[V(S(G),{label:S(s)(`spacesModule.fields.spaces.statusWidgets.energy.range.title`)},{default:m(()=>[V(S(xt),{modelValue:re.value,"onUpdate:modelValue":n[6]||=e=>re.value=e,options:ne.value,block:``},null,8,[`modelValue`,`options`])]),_:1},8,[`label`]),V(S(G),{"label-position":`left`},{label:m(()=>[w(M(S(s)(`spacesModule.fields.spaces.statusWidgets.energy.showProduction.title`)),1)]),default:m(()=>[V(S(ve),{modelValue:R.value,"onUpdate:modelValue":n[7]||=e=>R.value=e},null,8,[`modelValue`])]),_:1})],64)):C(``,!0)])])]),_:1}),V(S(Me),{name:`smartOverrides`},{title:m(()=>[A(`div`,ln,[V(S(f),{size:20},{default:m(()=>[V(S(L),{icon:`mdi:tune`})]),_:1}),A(`span`,un,M(S(s)(`spacesModule.edit.sections.smartOverrides.title`)),1),V(S(J),{size:`small`,type:`info`},{default:m(()=>[w(M(S(s)(`spacesModule.edit.sections.smartOverrides.badge`)),1)]),_:1})])]),default:m(()=>[A(`div`,dn,[V(S(pe),{title:S(s)(`spacesModule.edit.sections.smartOverrides.hint`),type:`info`,closable:!1,"show-icon":``},null,8,[`title`]),V(S(G),{prop:`suggestionsEnabled`,"label-position":`left`},{label:m(()=>[w(M(S(s)(`spacesModule.fields.spaces.suggestionsEnabled.title`)),1)]),default:m(()=>[V(S(ve),{modelValue:S(u).suggestionsEnabled,"onUpdate:modelValue":n[8]||=e=>S(u).suggestionsEnabled=e},null,8,[`modelValue`])]),_:1}),V(S(pe),{title:S(s)(`spacesModule.fields.spaces.suggestionsEnabled.hint`),type:`info`,closable:!1,"show-icon":``},null,8,[`title`])])]),_:1})]),_:1},8,[`modelValue`]),e.hideActions?C(``,!0):(r(),B(`div`,fn,[V(S(k),{onClick:le},{default:m(()=>[w(M(S(s)(`spacesModule.buttons.cancel.title`)),1)]),_:1}),V(S(k),{type:`primary`,loading:S(g)===S(Se).WORKING,onClick:ce},{default:m(()=>[w(M(S(s)(`spacesModule.buttons.save.title`)),1)]),_:1},8,[`loading`])]))]),_:1},8,[`model`,`rules`]))}}),mn={key:1,class:`flex justify-center py-4`},hn={class:`flex items-center gap-2`},gn={class:`flex flex-col`},_n={key:0,class:`text-xs text-gray-400`},vn={class:`flex gap-1`},yn={class:`flex justify-between items-center mt-4`},bn={class:`text-xs text-gray-400`},xn=_({__name:`space-lighting-roles`,props:{space:{},hideHeader:{type:Boolean,default:!1}},setup(e){let t=e,{t:n}=E(),i=Ue(),a=Ae(),{lightingSignal:s}=lt(),l=z(!1),u=z(!1),d=z([]),f=F(()=>[{value:Z.main,label:n(`spacesModule.lightingRoles.main`)},{value:Z.task,label:n(`spacesModule.lightingRoles.task`)},{value:Z.ambient,label:n(`spacesModule.lightingRoles.ambient`)},{value:Z.accent,label:n(`spacesModule.lightingRoles.accent`)},{value:Z.night,label:n(`spacesModule.lightingRoles.night`)},{value:Z.other,label:n(`spacesModule.lightingRoles.other`)},{value:Z.hidden,label:n(`spacesModule.lightingRoles.hidden`)}]),h=async()=>{l.value=!0;try{let{data:e,error:n}=await i.client.GET(`/${I}/${K}/spaces/{id}/lighting/targets`,{params:{path:{id:t.space.id}}});if(n||!e)return;d.value=(e.data??[]).map(e=>({deviceId:e.device_id,deviceName:e.device_name,channelId:e.channel_id,channelName:e.channel_name,role:e.role?e.role:null,priority:e.priority??0,hasBrightness:e.has_brightness??!1,hasColorTemp:e.has_color_temp??!1,hasColor:e.has_color??!1}))}finally{l.value=!1}},g=async(e,n)=>{try{if(n){let{error:r}=await i.client.POST(`/${I}/${K}/spaces/{id}/lighting/roles`,{params:{path:{id:t.space.id}},body:{data:{device_id:e.deviceId,channel_id:e.channelId,role:n}}});if(r){a.error(`Failed to update lighting role`);return}e.role=n}else{let{error:n}=await i.client.DELETE(`/${I}/${K}/spaces/{id}/lighting/roles/{deviceId}/{channelId}`,{params:{path:{id:t.space.id,deviceId:e.deviceId,channelId:e.channelId}}});if(n){a.error(`Failed to clear lighting role`);return}e.role=null}}catch{a.error(`Failed to update lighting role`)}},_=async()=>{u.value=!0;try{let{data:e,error:n}=await i.client.POST(`/${I}/${K}/spaces/{id}/lighting/roles/defaults`,{params:{path:{id:t.space.id}}});if(n||!e){a.error(`Failed to apply default roles`);return}await h(),a.success(`Applied ${e.data?.success_count??0} default role(s)`)}finally{u.value=!1}};return b(()=>t.space?.id,e=>{e&&h()}),b(()=>s?.value,()=>{t.space?.id&&h()}),c(()=>{t.space?.id&&h()}),(t,i)=>(r(),B(`div`,{class:p({"mt-2":!e.hideHeader})},[e.hideHeader?C(``,!0):(r(),O(S(H),{key:0,"content-position":`left`,class:`mt-6!`},{default:m(()=>[w(M(S(n)(`spacesModule.edit.sections.smartOverrides.lightingRoles`)),1)]),_:1})),V(S(pe),{type:`info`,closable:!1,"show-icon":``,class:`mb-4!`},{default:m(()=>[w(M(S(n)(`spacesModule.fields.spaces.lightingRoles.description`)),1)]),_:1}),l.value&&d.value.length===0?(r(),B(`div`,mn,[V(S(L),{icon:`mdi:loading`,class:`animate-spin text-2xl`})])):d.value.length>0||l.value?(r(),B(N,{key:2},[V(S(Ge),{data:d.value,border:``,"max-height":`400px`},{default:m(()=>[V(S($),{prop:`deviceName`,label:S(n)(`spacesModule.onboarding.deviceName`),"min-width":`180`},{default:m(({row:e})=>[A(`div`,hn,[V(S(L),{icon:`mdi:lightbulb`}),A(`div`,gn,[A(`span`,null,M(e.deviceName),1),e.channelName?(r(),B(`span`,_n,M(e.channelName),1)):C(``,!0)])])]),_:1},8,[`label`]),V(S($),{label:S(n)(`spacesModule.fields.spaces.lightingRoles.role.title`),width:`160`},{default:m(({row:e})=>[V(S(We),{"model-value":e.role??``,placeholder:S(n)(`spacesModule.fields.spaces.lightingRoles.role.placeholder`),clearable:``,"onUpdate:modelValue":t=>g(e,t)},{default:m(()=>[(r(!0),B(N,null,o(f.value,e=>(r(),O(S(q),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`model-value`,`placeholder`,`onUpdate:modelValue`])]),_:1},8,[`label`]),V(S($),{label:``,width:`100`},{default:m(({row:e})=>[A(`div`,vn,[e.hasBrightness?(r(),O(S(J),{key:0,type:`info`,size:`small`},{default:m(()=>[...i[0]||=[w(`Dim`,-1)]]),_:1})):C(``,!0),e.hasColor?(r(),O(S(J),{key:1,type:`success`,size:`small`},{default:m(()=>[...i[1]||=[w(`RGB`,-1)]]),_:1})):C(``,!0)])]),_:1})]),_:1},8,[`data`]),A(`div`,yn,[V(S(k),{size:`small`,loading:u.value,onClick:_},{default:m(()=>[w(M(S(n)(`spacesModule.fields.spaces.lightingRoles.applyDefaults`)),1)]),_:1},8,[`loading`]),A(`div`,bn,M(S(n)(`spacesModule.fields.spaces.lightingRoles.applyDefaultsHint`)),1)])],64)):(r(),O(S(P),{key:3},{icon:m(()=>[V(S(R),{size:80},{primary:m(()=>[V(S(L),{icon:`mdi:lightbulb`})]),secondary:m(()=>[V(S(L),{icon:`mdi:information`})]),_:1})]),title:m(()=>[w(M(S(n)(`spacesModule.fields.spaces.lightingRoles.noLights`)),1)]),_:1}))],2))}}),Sn={class:`b-b b-b-solid b-r b-r-solid py-3 px-2 flex items-center justify-end`,style:{background:`var(--el-fill-color-light)`}},Cn={class:`col-start-2 b-b b-b-solid m-0 p-2 flex items-center justify-between min-w-[8rem]`},wn={key:0,class:`flex items-center gap-2 flex-wrap`},Tn={class:`flex items-center gap-1`},En={class:`space-y-2`},Dn={class:`text-sm font-medium mb-1`},On={class:`list-none p-0 m-0 space-y-1`},kn={key:1,class:`flex items-center gap-2 text-gray-400 text-sm`},An=_({name:`SpaceLightingRolesSummary`,__name:`space-lighting-roles-summary`,props:{space:{}},emits:[`edit`],setup(e,{expose:t,emit:n}){let i=e,a=n,{t:s}=E(),l=Ue(),{lightingSignal:u}=lt(),d=z(!1),f=z([]),p=z(!1),h=e=>{switch(e){case Z.main:return`primary`;case Z.task:return`warning`;case Z.ambient:return`success`;case Z.accent:return`danger`;case Z.night:return`info`;case Z.other:default:return`info`}},g=e=>{switch(e){case Z.main:return`mdi:lightbulb`;case Z.task:return`mdi:desk-lamp`;case Z.ambient:return`mdi:lightbulb-group`;case Z.accent:return`mdi:spotlight-beam`;case Z.night:return`mdi:weather-night`;case Z.other:default:return`mdi:lightbulb-outline`}},_=async()=>{if(i.space?.id){d.value=!0;try{let{data:e,error:t}=await l.client.GET(`/${I}/${K}/spaces/{id}/lighting/targets`,{params:{path:{id:i.space.id}}});if(t||!e){p.value=!1;return}let n=e.data??[];p.value=n.length>0;let r=new Map;for(let e of n){if(!e.role)continue;let t=e.role;r.has(t)||r.set(t,{role:t,devices:[]}),r.get(t).devices.push({deviceId:e.device_id,deviceName:e.device_name,channelId:e.channel_id,channelName:e.channel_name})}let a=[Z.main,Z.task,Z.ambient,Z.accent,Z.night,Z.other];f.value=Array.from(r.values()).sort((e,t)=>a.indexOf(e.role)-a.indexOf(t.role))}finally{d.value=!1}}};return b(()=>i.space?.id,e=>{e&&_()}),b(()=>u?.value,()=>{i.space?.id&&_()}),c(()=>{i.space?.id&&_()}),t({reload:_}),(e,t)=>p.value?(r(),B(N,{key:0},[A(`dt`,Sn,M(S(s)(`spacesModule.detail.lightingRoles.title`)),1),A(`dd`,Cn,[f.value.length>0?(r(),B(`div`,wn,[(r(!0),B(N,null,o(f.value,e=>(r(),O(S(Ze),{key:e.role,placement:`bottom`,width:400,trigger:`click`},{reference:m(()=>[V(S(J),{type:h(e.role),size:`small`,class:`cursor-pointer`},{default:m(()=>[A(`div`,Tn,[V(S(L),{icon:g(e.role)},null,8,[`icon`]),w(` `+M(S(s)(`spacesModule.lightingRoles.${e.role}`))+` `,1),V(S(Ce),{value:e.devices.length,type:h(e.role),class:`ml-1`},null,8,[`value`,`type`])])]),_:2},1032,[`type`])]),default:m(()=>[A(`div`,En,[V(S(pe),{type:`info`,closable:!1,"show-icon":``,class:`mb-2!`},{default:m(()=>[w(M(S(s)(`spacesModule.lightingRoles.descriptions.${e.role}`)),1)]),_:2},1024),A(`div`,Dn,M(S(s)(`spacesModule.detail.lightingRoles.lightsAssigned`))+`: `,1),A(`ul`,On,[(r(!0),B(N,null,o(e.devices,e=>(r(),B(`li`,{key:`${e.deviceId}-${e.channelId}`,class:`flex items-center gap-2 text-sm py-1`},[V(S(L),{icon:`mdi:lightbulb-outline`,class:`text-gray-400`}),A(`span`,null,M(e.deviceName),1)]))),128))])])]),_:2},1024))),128))])):(r(),B(`div`,kn,[V(S(L),{icon:`mdi:lightbulb`}),w(` `+M(S(s)(`spacesModule.detail.lightingRoles.noRolesAssigned`)),1)])),V(S(k),{text:``,size:`small`,class:`ml-2`,onClick:t[0]||=e=>a(`edit`)},{icon:m(()=>[V(S(L),{icon:`mdi:pencil`})]),default:m(()=>[w(` `+M(S(s)(`spacesModule.buttons.edit.title`)),1)]),_:1})])],64)):C(``,!0)}}),jn={key:1,class:`flex justify-center py-4`},Mn={class:`flex items-center gap-2`},Nn={class:`flex flex-col`},Pn={key:0,class:`text-xs text-gray-400`},Fn={class:`flex gap-1`},In={class:`flex justify-between items-center mt-4`},Ln={class:`text-xs text-gray-400 ml-4`},Rn=_({__name:`space-climate-roles`,props:{space:{},hideHeader:{type:Boolean,default:!1}},setup(e){let t=e,{t:n}=E(),i=Ue(),a=Ae(),{climateSignal:s}=lt(),l=z(!1),u=z(!1),d=z([]),f=F(()=>[{value:X.heating_only,label:n(`spacesModule.climateRoles.${X.heating_only}`)},{value:X.cooling_only,label:n(`spacesModule.climateRoles.${X.cooling_only}`)},{value:X.auto,label:n(`spacesModule.climateRoles.${X.auto}`)},{value:X.auxiliary,label:n(`spacesModule.climateRoles.${X.auxiliary}`)},{value:X.hidden,label:n(`spacesModule.climateRoles.${X.hidden}`)}]),h=F(()=>[{value:X.sensor,label:n(`spacesModule.climateRoles.${X.sensor}`)},{value:X.hidden,label:n(`spacesModule.climateRoles.${X.hidden}`)}]),g=e=>e.deviceCategory===`sensor`?h.value:f.value,_=e=>{switch(e){case`thermostat`:return`mdi:thermostat`;case`heating_unit`:return`mdi:radiator`;case`water_heater`:return`mdi:water-boiler`;case`air_conditioner`:return`mdi:air-conditioner`;case`fan`:return`mdi:fan`;case`air_humidifier`:return`mdi:air-humidifier`;case`air_dehumidifier`:return`mdi:air-humidifier-off`;case`air_purifier`:return`mdi:air-purifier`;case`sensor`:return`mdi:thermometer`;default:return`mdi:thermostat-box`}},v=async()=>{l.value=!0;try{let{data:e,error:n}=await i.client.GET(`/${I}/${K}/spaces/{id}/climate/targets`,{params:{path:{id:t.space.id}}});if(n||!e)return;d.value=(e.data??[]).map(e=>({deviceId:e.device_id,deviceName:e.device_name,deviceCategory:e.device_category??``,channelId:e.channel_id??null,channelName:e.channel_name??null,role:e.role?e.role:null,priority:e.priority??0,hasTemperature:e.has_temperature??!1,hasHumidity:e.has_humidity??!1}))}finally{l.value=!1}},y=async(e,n)=>{try{if(n){let r={device_id:e.deviceId,role:n};e.channelId&&(r.channel_id=e.channelId);let{error:o}=await i.client.POST(`/${I}/${K}/spaces/{id}/climate/roles`,{params:{path:{id:t.space.id}},body:{data:r}});if(o){a.error(`Failed to update climate role`);return}e.role=n}else{let{error:n}=await i.client.DELETE(`/${I}/${K}/spaces/{id}/climate/roles/{deviceId}`,{params:{path:{id:t.space.id,deviceId:e.deviceId},query:e.channelId?{channelId:e.channelId}:void 0}});if(n){a.error(`Failed to clear climate role`);return}e.role=null}}catch{a.error(`Failed to update climate role`)}},x=async()=>{u.value=!0;try{let{data:e,error:n}=await i.client.POST(`/${I}/${K}/spaces/{id}/climate/roles/defaults`,{params:{path:{id:t.space.id}}});if(n||!e){a.error(`Failed to apply default roles`);return}await v(),a.success(`Applied ${e.data?.success_count??0} default role(s)`)}finally{u.value=!1}};return b(()=>t.space?.id,e=>{e&&v()}),b(()=>s?.value,()=>{t.space?.id&&v()}),c(()=>{t.space?.id&&v()}),(t,i)=>(r(),B(`div`,{class:p({"mt-2":!e.hideHeader})},[e.hideHeader?C(``,!0):(r(),O(S(H),{key:0,"content-position":`left`,class:`mt-6!`},{default:m(()=>[w(M(S(n)(`spacesModule.edit.sections.smartOverrides.climateRoles`)),1)]),_:1})),V(S(pe),{type:`info`,closable:!1,"show-icon":``,class:`mb-4!`},{default:m(()=>[w(M(S(n)(`spacesModule.fields.spaces.climateRoles.description`)),1)]),_:1}),l.value&&d.value.length===0?(r(),B(`div`,jn,[V(S(L),{icon:`mdi:loading`,class:`animate-spin text-2xl`})])):d.value.length>0||l.value?(r(),B(N,{key:2},[V(S(Ge),{data:d.value,border:``,"max-height":`400px`},{default:m(()=>[V(S($),{prop:`deviceName`,label:S(n)(`spacesModule.onboarding.deviceName`),"min-width":`180`},{default:m(({row:e})=>[A(`div`,Mn,[V(S(L),{icon:_(e.deviceCategory)},null,8,[`icon`]),A(`div`,Nn,[A(`span`,null,M(e.deviceName),1),e.channelName?(r(),B(`span`,Pn,M(e.channelName),1)):C(``,!0)])])]),_:1},8,[`label`]),V(S($),{label:S(n)(`spacesModule.fields.spaces.climateRoles.role.title`),width:`200`},{default:m(({row:e})=>[V(S(We),{"model-value":e.role??``,placeholder:S(n)(`spacesModule.fields.spaces.climateRoles.role.placeholder`),clearable:``,"onUpdate:modelValue":t=>y(e,t)},{default:m(()=>[(r(!0),B(N,null,o(g(e),e=>(r(),O(S(q),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:2},1032,[`model-value`,`placeholder`,`onUpdate:modelValue`])]),_:1},8,[`label`]),V(S($),{label:``,width:`120`},{default:m(({row:e})=>[A(`div`,Fn,[e.hasTemperature?(r(),O(S(J),{key:0,type:`warning`,size:`small`},{default:m(()=>[...i[0]||=[w(`Temp`,-1)]]),_:1})):C(``,!0),e.hasHumidity?(r(),O(S(J),{key:1,type:`info`,size:`small`},{default:m(()=>[...i[1]||=[w(`Humid`,-1)]]),_:1})):C(``,!0)])]),_:1})]),_:1},8,[`data`]),A(`div`,In,[V(S(k),{size:`small`,loading:u.value,onClick:x},{default:m(()=>[w(M(S(n)(`spacesModule.fields.spaces.climateRoles.applyDefaults`)),1)]),_:1},8,[`loading`]),A(`div`,Ln,M(S(n)(`spacesModule.fields.spaces.climateRoles.applyDefaultsHint`)),1)])],64)):(r(),O(S(P),{key:3},{icon:m(()=>[V(S(R),{size:80},{primary:m(()=>[V(S(L),{icon:`mdi:thermostat`})]),secondary:m(()=>[V(S(L),{icon:`mdi:information`})]),_:1})]),title:m(()=>[w(M(S(n)(`spacesModule.fields.spaces.climateRoles.noDevices`)),1)]),_:1}))],2))}}),zn={class:`b-b b-b-solid b-r b-r-solid py-3 px-2 flex items-center justify-end`,style:{background:`var(--el-fill-color-light)`}},Bn={class:`col-start-2 b-b b-b-solid m-0 p-2 flex items-center justify-between min-w-[8rem]`},Vn={key:0,class:`flex items-center gap-2 flex-wrap`},Hn={class:`flex items-center gap-1`},Un={class:`space-y-2`},Wn={class:`text-sm font-medium mb-1`},Gn={class:`list-none p-0 m-0 space-y-1`},Kn={key:1,class:`flex items-center gap-2 text-gray-400 text-sm`},qn=_({name:`SpaceClimateRolesSummary`,__name:`space-climate-roles-summary`,props:{space:{}},emits:[`edit`],setup(e,{expose:t,emit:n}){let i=e,a=n,{t:s}=E(),l=Ue(),{climateSignal:u}=lt(),d=z(!1),f=z([]),p=z(!1),h=e=>{switch(e){case X.heating_only:return`danger`;case X.cooling_only:return`primary`;case X.auto:return`success`;case X.auxiliary:return`warning`;case X.sensor:return`info`;case X.hidden:default:return`info`}},g=e=>{switch(e){case X.heating_only:return`mdi:fire`;case X.cooling_only:return`mdi:snowflake`;case X.auto:return`mdi:thermostat-auto`;case X.auxiliary:return`mdi:radiator`;case X.sensor:return`mdi:thermometer`;case X.hidden:default:return`mdi:eye-off`}},_=e=>{switch(e){case`thermostat`:return`mdi:thermostat`;case`heating_unit`:return`mdi:radiator`;case`water_heater`:return`mdi:water-boiler`;case`air_conditioner`:return`mdi:air-conditioner`;case`fan`:return`mdi:fan`;case`air_humidifier`:return`mdi:air-humidifier`;case`air_dehumidifier`:return`mdi:air-humidifier-off`;case`air_purifier`:return`mdi:air-purifier`;case`sensor`:return`mdi:thermometer`;default:return`mdi:thermostat-box`}},v=async()=>{if(i.space?.id){d.value=!0;try{let{data:e,error:t}=await l.client.GET(`/${I}/${K}/spaces/{id}/climate/targets`,{params:{path:{id:i.space.id}}});if(t||!e){p.value=!1;return}let n=e.data??[];p.value=n.length>0;let r=new Map;for(let e of n){if(!e.role||e.role===X.hidden)continue;let t=e.role;r.has(t)||r.set(t,{role:t,devices:[]}),r.get(t).devices.push({deviceId:e.device_id,deviceName:e.device_name,deviceCategory:e.device_category??``})}let a=[X.heating_only,X.cooling_only,X.auto,X.auxiliary,X.sensor,X.hidden];f.value=Array.from(r.values()).sort((e,t)=>a.indexOf(e.role)-a.indexOf(t.role))}finally{d.value=!1}}};return b(()=>i.space?.id,e=>{e&&v()}),b(()=>u?.value,()=>{i.space?.id&&v()}),c(()=>{i.space?.id&&v()}),t({reload:v}),(e,t)=>p.value?(r(),B(N,{key:0},[A(`dt`,zn,M(S(s)(`spacesModule.detail.climateRoles.title`)),1),A(`dd`,Bn,[f.value.length>0?(r(),B(`div`,Vn,[(r(!0),B(N,null,o(f.value,e=>(r(),O(S(Ze),{key:e.role,placement:`bottom`,width:400,trigger:`click`},{reference:m(()=>[V(S(J),{type:h(e.role),size:`small`,class:`cursor-pointer`},{default:m(()=>[A(`div`,Hn,[V(S(L),{icon:g(e.role)},null,8,[`icon`]),w(` `+M(S(s)(`spacesModule.climateRoles.${e.role}`))+` `,1),V(S(Ce),{value:e.devices.length,type:h(e.role),class:`ml-1`},null,8,[`value`,`type`])])]),_:2},1032,[`type`])]),default:m(()=>[A(`div`,Un,[V(S(pe),{type:`info`,closable:!1,"show-icon":``,class:`mb-2!`},{default:m(()=>[w(M(S(s)(`spacesModule.climateRoles.descriptions.${e.role}`)),1)]),_:2},1024),A(`div`,Wn,M(S(s)(`spacesModule.detail.climateRoles.devicesAssigned`))+`: `,1),A(`ul`,Gn,[(r(!0),B(N,null,o(e.devices,e=>(r(),B(`li`,{key:e.deviceId,class:`flex items-center gap-2 text-sm py-1`},[V(S(L),{icon:_(e.deviceCategory),class:`text-gray-400`},null,8,[`icon`]),A(`span`,null,M(e.deviceName),1)]))),128))])])]),_:2},1024))),128))])):(r(),B(`div`,Kn,[V(S(L),{icon:`mdi:thermostat`}),w(` `+M(S(s)(`spacesModule.detail.climateRoles.noRolesAssigned`)),1)])),V(S(k),{text:``,size:`small`,class:`ml-2`,onClick:t[0]||=e=>a(`edit`)},{icon:m(()=>[V(S(L),{icon:`mdi:pencil`})]),default:m(()=>[w(` `+M(S(s)(`spacesModule.buttons.edit.title`)),1)]),_:1})])],64)):C(``,!0)}}),Jn={key:1,class:`flex justify-center py-4`},Yn={class:`flex items-center gap-2`},Xn={class:`flex flex-col`},Zn={key:0,class:`text-xs text-gray-400`},Qn={class:`flex gap-1`},$n={class:`flex justify-between items-center mt-4`},er={class:`text-xs text-gray-400`},tr=_({__name:`space-covers-roles`,props:{space:{},hideHeader:{type:Boolean,default:!1}},setup(e){let t=e,{t:n}=E(),i=Ue(),a=Ae(),{coversSignal:s}=lt(),l=z(!1),u=z(!1),d=z([]),f=F(()=>[{value:Q.primary,label:n(`spacesModule.coversRoles.primary`)},{value:Q.blackout,label:n(`spacesModule.coversRoles.blackout`)},{value:Q.sheer,label:n(`spacesModule.coversRoles.sheer`)},{value:Q.outdoor,label:n(`spacesModule.coversRoles.outdoor`)},{value:Q.hidden,label:n(`spacesModule.coversRoles.hidden`)}]),h=async()=>{l.value=!0;try{let{data:e,error:n}=await i.client.GET(`/${I}/${K}/spaces/{id}/covers/targets`,{params:{path:{id:t.space.id}}});if(n||!e)return;d.value=(e.data??[]).map(e=>({deviceId:e.device_id,deviceName:e.device_name,channelId:e.channel_id,channelName:e.channel_name,role:e.role?e.role:null,priority:e.priority??0,hasPosition:e.has_position??!1,hasCommand:e.has_command??!1,hasTilt:e.has_tilt??!1,coverType:e.cover_type??null}))}finally{l.value=!1}},g=async(e,n)=>{try{if(n){let{error:r}=await i.client.POST(`/${I}/${K}/spaces/{id}/covers/roles`,{params:{path:{id:t.space.id}},body:{data:{device_id:e.deviceId,channel_id:e.channelId,role:n}}});if(r){a.error(`Failed to update covers role`);return}e.role=n}else{let{error:n}=await i.client.DELETE(`/${I}/${K}/spaces/{id}/covers/roles/{deviceId}/{channelId}`,{params:{path:{id:t.space.id,deviceId:e.deviceId,channelId:e.channelId}}});if(n){a.error(`Failed to clear covers role`);return}e.role=null}}catch{a.error(`Failed to update covers role`)}},_=async()=>{u.value=!0;try{let{data:e,error:n}=await i.client.POST(`/${I}/${K}/spaces/{id}/covers/roles/defaults`,{params:{path:{id:t.space.id}}});if(n||!e){a.error(`Failed to apply default roles`);return}await h(),a.success(`Applied ${e.data?.success_count??0} default role(s)`)}finally{u.value=!1}};return b(()=>t.space?.id,e=>{e&&h()}),b(()=>s?.value,()=>{t.space?.id&&h()}),c(()=>{t.space?.id&&h()}),(t,i)=>(r(),B(`div`,{class:p({"mt-2":!e.hideHeader})},[e.hideHeader?C(``,!0):(r(),O(S(H),{key:0,"content-position":`left`,class:`mt-6!`},{default:m(()=>[w(M(S(n)(`spacesModule.edit.sections.smartOverrides.coversRoles`)),1)]),_:1})),V(S(pe),{type:`info`,closable:!1,"show-icon":``,class:`mb-4!`},{default:m(()=>[w(M(S(n)(`spacesModule.fields.spaces.coversRoles.description`)),1)]),_:1}),l.value&&d.value.length===0?(r(),B(`div`,Jn,[V(S(L),{icon:`mdi:loading`,class:`animate-spin text-2xl`})])):d.value.length>0||l.value?(r(),B(N,{key:2},[V(S(Ge),{data:d.value,border:``,"max-height":`400px`},{default:m(()=>[V(S($),{prop:`deviceName`,label:S(n)(`spacesModule.onboarding.deviceName`),"min-width":`180`},{default:m(({row:e})=>[A(`div`,Yn,[V(S(L),{icon:`mdi:blinds`}),A(`div`,Xn,[A(`span`,null,M(e.deviceName),1),e.channelName?(r(),B(`span`,Zn,M(e.channelName),1)):C(``,!0)])])]),_:1},8,[`label`]),V(S($),{label:S(n)(`spacesModule.fields.spaces.coversRoles.role.title`),width:`160`},{default:m(({row:e})=>[V(S(We),{"model-value":e.role??``,placeholder:S(n)(`spacesModule.fields.spaces.coversRoles.role.placeholder`),clearable:``,"onUpdate:modelValue":t=>g(e,t)},{default:m(()=>[(r(!0),B(N,null,o(f.value,e=>(r(),O(S(q),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`model-value`,`placeholder`,`onUpdate:modelValue`])]),_:1},8,[`label`]),V(S($),{label:``,width:`100`},{default:m(({row:e})=>[A(`div`,Qn,[e.hasPosition?(r(),O(S(J),{key:0,type:`info`,size:`small`},{default:m(()=>[...i[0]||=[w(`Pos`,-1)]]),_:1})):C(``,!0),e.hasTilt?(r(),O(S(J),{key:1,type:`success`,size:`small`},{default:m(()=>[...i[1]||=[w(`Tilt`,-1)]]),_:1})):C(``,!0)])]),_:1})]),_:1},8,[`data`]),A(`div`,$n,[V(S(k),{size:`small`,loading:u.value,onClick:_},{default:m(()=>[w(M(S(n)(`spacesModule.fields.spaces.coversRoles.applyDefaults`)),1)]),_:1},8,[`loading`]),A(`div`,er,M(S(n)(`spacesModule.fields.spaces.coversRoles.applyDefaultsHint`)),1)])],64)):(r(),O(S(P),{key:3},{icon:m(()=>[V(S(R),{size:80},{primary:m(()=>[V(S(L),{icon:`mdi:blinds`})]),secondary:m(()=>[V(S(L),{icon:`mdi:information`})]),_:1})]),title:m(()=>[w(M(S(n)(`spacesModule.fields.spaces.coversRoles.noCovers`)),1)]),_:1}))],2))}}),nr={class:`b-b b-b-solid b-r b-r-solid py-3 px-2 flex items-center justify-end`,style:{background:`var(--el-fill-color-light)`}},rr={class:`col-start-2 b-b b-b-solid m-0 p-2 flex items-center justify-between min-w-[8rem]`},ir={key:0,class:`flex items-center gap-2 flex-wrap`},ar={class:`flex items-center gap-1`},or={class:`space-y-2`},sr={class:`text-sm font-medium mb-1`},cr={class:`list-none p-0 m-0 space-y-1`},lr={key:1,class:`flex items-center gap-2 text-gray-400 text-sm`},ur=_({name:`SpaceCoversRolesSummary`,__name:`space-covers-roles-summary`,props:{space:{}},emits:[`edit`],setup(e,{expose:t,emit:n}){let i=e,a=n,{t:s}=E(),l=Ue(),{coversSignal:u}=lt(),d=z(!1),f=z([]),p=z(!1),h=e=>{switch(e){case Q.primary:return`primary`;case Q.blackout:return`danger`;case Q.sheer:return`success`;case Q.outdoor:return`warning`;case Q.hidden:default:return`info`}},g=e=>{switch(e){case Q.primary:return`mdi:blinds`;case Q.blackout:return`mdi:blinds-horizontal-closed`;case Q.sheer:return`mdi:curtains`;case Q.outdoor:return`mdi:window-shutter`;case Q.hidden:default:return`mdi:blinds-horizontal`}},_=async()=>{if(i.space?.id){d.value=!0;try{let{data:e,error:t}=await l.client.GET(`/${I}/${K}/spaces/{id}/covers/targets`,{params:{path:{id:i.space.id}}});if(t||!e){p.value=!1;return}let n=e.data??[];p.value=n.length>0;let r=new Map;for(let e of n){if(!e.role)continue;let t=e.role;r.has(t)||r.set(t,{role:t,devices:[]}),r.get(t).devices.push({deviceId:e.device_id,deviceName:e.device_name,channelId:e.channel_id,channelName:e.channel_name})}let a=[Q.primary,Q.blackout,Q.sheer,Q.outdoor,Q.hidden];f.value=Array.from(r.values()).sort((e,t)=>a.indexOf(e.role)-a.indexOf(t.role))}finally{d.value=!1}}};return b(()=>i.space?.id,e=>{e&&_()}),b(()=>u?.value,()=>{i.space?.id&&_()}),c(()=>{i.space?.id&&_()}),t({reload:_}),(e,t)=>p.value?(r(),B(N,{key:0},[A(`dt`,nr,M(S(s)(`spacesModule.detail.coversRoles.title`)),1),A(`dd`,rr,[f.value.length>0?(r(),B(`div`,ir,[(r(!0),B(N,null,o(f.value,e=>(r(),O(S(Ze),{key:e.role,placement:`bottom`,width:400,trigger:`click`},{reference:m(()=>[V(S(J),{type:h(e.role),size:`small`,class:`cursor-pointer`},{default:m(()=>[A(`div`,ar,[V(S(L),{icon:g(e.role)},null,8,[`icon`]),w(` `+M(S(s)(`spacesModule.coversRoles.${e.role}`))+` `,1),V(S(Ce),{value:e.devices.length,type:h(e.role),class:`ml-1`},null,8,[`value`,`type`])])]),_:2},1032,[`type`])]),default:m(()=>[A(`div`,or,[V(S(pe),{type:`info`,closable:!1,"show-icon":``,class:`mb-2!`},{default:m(()=>[w(M(S(s)(`spacesModule.coversRoles.descriptions.${e.role}`)),1)]),_:2},1024),A(`div`,sr,M(S(s)(`spacesModule.detail.coversRoles.coversAssigned`))+`: `,1),A(`ul`,cr,[(r(!0),B(N,null,o(e.devices,e=>(r(),B(`li`,{key:`${e.deviceId}-${e.channelId}`,class:`flex items-center gap-2 text-sm py-1`},[V(S(L),{icon:`mdi:blinds-horizontal`,class:`text-gray-400`}),A(`span`,null,M(e.deviceName),1)]))),128))])])]),_:2},1024))),128))])):(r(),B(`div`,lr,[V(S(L),{icon:`mdi:blinds`}),w(` `+M(S(s)(`spacesModule.detail.coversRoles.noRolesAssigned`)),1)])),V(S(k),{text:``,size:`small`,class:`ml-2`,onClick:t[0]||=e=>a(`edit`)},{icon:m(()=>[V(S(L),{icon:`mdi:pencil`})]),default:m(()=>[w(` `+M(S(s)(`spacesModule.buttons.edit.title`)),1)]),_:1})])],64)):C(``,!0)}}),dr={key:1,class:`flex justify-center py-4`},fr={class:`flex items-center gap-2`},pr={class:`flex flex-col`},mr={class:`text-xs text-gray-400`},hr={class:`flex justify-between items-center mt-4`},gr={class:`text-xs text-gray-400 ml-4`},_r=_({name:`SpaceSensorRoles`,__name:`space-sensor-roles`,props:{space:{},hideHeader:{type:Boolean,default:!1}},setup(e){let t=e,{t:n}=E(),i=Ue(),a=Ae(),{sensorSignal:s}=lt(),l=z(!1),u=z(!1),d=z([]),f=F(()=>me.map(e=>({value:e,label:n(`spacesModule.sensorRoles.${e}`)}))),h=e=>{switch(e){case`temperature`:return n(`spacesModule.sensorRoles.categories.temperature`);case`humidity`:return n(`spacesModule.sensorRoles.categories.humidity`);case`pressure`:return n(`spacesModule.sensorRoles.categories.pressure`);case`illuminance`:return n(`spacesModule.sensorRoles.categories.illuminance`);case`smoke`:return n(`spacesModule.sensorRoles.categories.smoke`);case`gas`:return n(`spacesModule.sensorRoles.categories.gas`);case`carbon_monoxide`:return n(`spacesModule.sensorRoles.categories.carbon_monoxide`);case`carbon_dioxide`:return n(`spacesModule.sensorRoles.categories.carbon_dioxide`);case`leak`:return n(`spacesModule.sensorRoles.categories.leak`);case`motion`:return n(`spacesModule.sensorRoles.categories.motion`);case`occupancy`:return n(`spacesModule.sensorRoles.categories.occupancy`);case`contact`:return n(`spacesModule.sensorRoles.categories.contact`);case`air_quality`:return n(`spacesModule.sensorRoles.categories.air_quality`);case`air_particulate`:return n(`spacesModule.sensorRoles.categories.air_particulate`);case`nitrogen_dioxide`:return n(`spacesModule.sensorRoles.categories.nitrogen_dioxide`);case`ozone`:return n(`spacesModule.sensorRoles.categories.ozone`);case`sulphur_dioxide`:return n(`spacesModule.sensorRoles.categories.sulphur_dioxide`);case`volatile_organic_compounds`:return n(`spacesModule.sensorRoles.categories.volatile_organic_compounds`);case`electrical_energy`:return n(`spacesModule.sensorRoles.categories.electrical_energy`);case`electrical_generation`:return n(`spacesModule.sensorRoles.categories.electrical_generation`);case`electrical_power`:return n(`spacesModule.sensorRoles.categories.electrical_power`);case`battery`:return n(`spacesModule.sensorRoles.categories.battery`);default:return e}},g=async()=>{l.value=!0;try{let{data:e,error:n}=await i.client.GET(`/${I}/${K}/spaces/{id}/sensors/targets`,{params:{path:{id:t.space.id}}});if(n||!e)return;d.value=(e.data??[]).map((e,t)=>({deviceId:e.device_id,deviceName:e.device_name,channelId:e.channel_id,channelName:e.channel_name??e.channel_category,channelCategory:e.channel_category,role:e.role?e.role:null,priority:e.priority??t}))}finally{l.value=!1}},_=async(e,n)=>{try{if(n){let{error:r}=await i.client.POST(`/${I}/${K}/spaces/{id}/sensors/roles`,{params:{path:{id:t.space.id}},body:{data:{device_id:e.deviceId,channel_id:e.channelId,role:n}}});if(r){a.error(`Failed to update sensor role`);return}e.role=n}else{let{error:n}=await i.client.DELETE(`/${I}/${K}/spaces/{id}/sensors/roles/{deviceId}/{channelId}`,{params:{path:{id:t.space.id,deviceId:e.deviceId,channelId:e.channelId}}});if(n){a.error(`Failed to clear sensor role`);return}e.role=null}}catch{a.error(`Failed to update sensor role`)}},v=async()=>{u.value=!0;try{let{data:e,error:n}=await i.client.POST(`/${I}/${K}/spaces/{id}/sensors/roles/defaults`,{params:{path:{id:t.space.id}}});if(n||!e){a.error(`Failed to apply default roles`);return}await g(),a.success(`Applied ${e.data?.success_count??0} default role(s)`)}finally{u.value=!1}};return b(()=>t.space?.id,e=>{e&&g()}),b(()=>s?.value,()=>{t.space?.id&&g()}),c(()=>{t.space?.id&&g()}),(t,i)=>(r(),B(`div`,{class:p({"mt-2":!e.hideHeader})},[e.hideHeader?C(``,!0):(r(),O(S(H),{key:0,"content-position":`left`,class:`mt-6!`},{default:m(()=>[w(M(S(n)(`spacesModule.edit.sections.smartOverrides.sensorRoles`)),1)]),_:1})),V(S(pe),{type:`info`,closable:!1,"show-icon":``,class:`mb-4!`},{default:m(()=>[w(M(S(n)(`spacesModule.fields.spaces.sensorRoles.description`)),1)]),_:1}),l.value&&d.value.length===0?(r(),B(`div`,dr,[V(S(L),{icon:`mdi:loading`,class:`animate-spin text-2xl`})])):d.value.length>0||l.value?(r(),B(N,{key:2},[V(S(Ge),{data:d.value,border:``,"max-height":`400px`},{default:m(()=>[V(S($),{prop:`deviceName`,label:S(n)(`spacesModule.onboarding.deviceName`),"min-width":`180`},{default:m(({row:e})=>[A(`div`,fr,[V(S(L),{icon:`mdi:motion-sensor`}),A(`div`,pr,[A(`span`,null,M(e.deviceName),1),A(`span`,mr,M(e.channelName),1)])])]),_:1},8,[`label`]),V(S($),{label:S(n)(`spacesModule.fields.spaces.sensorRoles.channel.title`),width:`200`},{default:m(({row:e})=>[V(S(J),{size:`small`,type:`info`},{default:m(()=>[w(M(h(e.channelCategory)),1)]),_:2},1024)]),_:1},8,[`label`]),V(S($),{label:S(n)(`spacesModule.fields.spaces.sensorRoles.role.title`),width:`200`},{default:m(({row:e})=>[V(S(We),{"model-value":e.role??``,placeholder:S(n)(`spacesModule.fields.spaces.sensorRoles.role.placeholder`),clearable:``,"onUpdate:modelValue":t=>_(e,t)},{default:m(()=>[(r(!0),B(N,null,o(f.value,e=>(r(),O(S(q),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`model-value`,`placeholder`,`onUpdate:modelValue`])]),_:1},8,[`label`])]),_:1},8,[`data`]),A(`div`,hr,[V(S(k),{size:`small`,loading:u.value,onClick:v},{default:m(()=>[w(M(S(n)(`spacesModule.fields.spaces.sensorRoles.applyDefaults`)),1)]),_:1},8,[`loading`]),A(`div`,gr,M(S(n)(`spacesModule.fields.spaces.sensorRoles.applyDefaultsHint`)),1)])],64)):(r(),O(S(P),{key:3},{icon:m(()=>[V(S(R),{size:80},{primary:m(()=>[V(S(L),{icon:`mdi:motion-sensor`})]),secondary:m(()=>[V(S(L),{icon:`mdi:information`})]),_:1})]),title:m(()=>[w(M(S(n)(`spacesModule.fields.spaces.sensorRoles.noSensors`)),1)]),_:1}))],2))}}),vr={class:`b-b b-b-solid b-r b-r-solid py-3 px-2 flex items-center justify-end`,style:{background:`var(--el-fill-color-light)`}},yr={class:`col-start-2 b-b b-b-solid m-0 p-2 flex items-center justify-between min-w-[8rem]`},br={key:0,class:`flex items-center gap-2 flex-wrap`},xr={class:`flex items-center gap-1`},Sr={class:`space-y-2`},Cr={class:`text-sm font-medium mb-1`},wr={class:`list-none p-0 m-0 space-y-1`},Tr={key:1,class:`flex items-center gap-2 text-gray-400 text-sm`},Er=_({name:`SpaceSensorRolesSummary`,__name:`space-sensor-roles-summary`,props:{space:{}},emits:[`edit`],setup(e,{expose:t,emit:n}){let i=e,a=n,{t:s}=E(),l=Ue(),{sensorSignal:u}=lt(),d=z(!1),f=z([]),p=z(!1),h=e=>{switch(e){case U.ENVIRONMENT:return`success`;case U.SAFETY:return`danger`;case U.SECURITY:return`warning`;case U.AIR_QUALITY:return`info`;case U.ENERGY:return`primary`;case U.OTHER:case U.HIDDEN:default:return`info`}},g=e=>{switch(e){case U.ENVIRONMENT:return`mdi:thermometer`;case U.SAFETY:return`mdi:shield-alert`;case U.SECURITY:return`mdi:motion-sensor`;case U.AIR_QUALITY:return`mdi:air-filter`;case U.ENERGY:return`mdi:lightning-bolt`;case U.HIDDEN:return`mdi:eye-off`;case U.OTHER:default:return`mdi:chart-line`}},_=e=>{switch(e){case`temperature`:return`mdi:thermometer`;case`humidity`:return`mdi:water-percent`;case`pressure`:return`mdi:gauge`;case`illuminance`:return`mdi:weather-sunny`;case`smoke`:case`gas`:case`carbon_monoxide`:case`carbon_dioxide`:return`mdi:alert`;case`leak`:return`mdi:water-alert`;case`motion`:case`occupancy`:return`mdi:walk`;case`contact`:return`mdi:door-closed`;case`air_quality`:case`air_particulate`:case`nitrogen_dioxide`:case`ozone`:case`sulphur_dioxide`:case`volatile_organic_compounds`:return`mdi:air-filter`;case`electrical_energy`:case`electrical_power`:return`mdi:lightning-bolt`;case`battery`:return`mdi:battery`;default:return`mdi:chart-bell-curve`}},v=async()=>{if(i.space?.id){d.value=!0;try{let{data:e,error:t}=await l.client.GET(`/${I}/${K}/spaces/{id}/sensors/targets`,{params:{path:{id:i.space.id}}});if(t||!e){p.value=!1;return}let n=e.data??[];p.value=n.length>0;let r=new Map;for(let e of n){if(!e.role||e.role===U.HIDDEN)continue;let t=e.role;r.has(t)||r.set(t,{role:t,sensors:[]}),r.get(t).sensors.push({deviceId:e.device_id,deviceName:e.device_name,channelId:e.channel_id,channelName:e.channel_name??e.channel_category,channelCategory:e.channel_category})}f.value=Array.from(r.values()).sort((e,t)=>me.indexOf(e.role)-me.indexOf(t.role))}finally{d.value=!1}}};return b(()=>i.space?.id,e=>{e&&v()}),b(()=>u?.value,()=>{i.space?.id&&v()}),c(()=>{i.space?.id&&v()}),t({reload:v}),(e,t)=>p.value?(r(),B(N,{key:0},[A(`dt`,vr,M(S(s)(`spacesModule.detail.sensorRoles.title`)),1),A(`dd`,yr,[f.value.length>0?(r(),B(`div`,br,[(r(!0),B(N,null,o(f.value,e=>(r(),O(S(Ze),{key:e.role,placement:`bottom`,width:400,trigger:`click`},{reference:m(()=>[V(S(J),{type:h(e.role),size:`small`,class:`cursor-pointer`},{default:m(()=>[A(`div`,xr,[V(S(L),{icon:g(e.role)},null,8,[`icon`]),w(` `+M(S(s)(`spacesModule.sensorRoles.${e.role}`))+` `,1),V(S(Ce),{value:e.sensors.length,type:h(e.role),class:`ml-1`},null,8,[`value`,`type`])])]),_:2},1032,[`type`])]),default:m(()=>[A(`div`,Sr,[V(S(pe),{type:`info`,closable:!1,"show-icon":``,class:`mb-2!`},{default:m(()=>[w(M(S(s)(`spacesModule.sensorRoles.descriptions.${e.role}`)),1)]),_:2},1024),A(`div`,Cr,M(S(s)(`spacesModule.detail.sensorRoles.sensorsAssigned`))+`: `,1),A(`ul`,wr,[(r(!0),B(N,null,o(e.sensors,e=>(r(),B(`li`,{key:`${e.deviceId}-${e.channelId}`,class:`flex items-center gap-2 text-sm py-1`},[V(S(L),{icon:_(e.channelCategory),class:`text-gray-400`},null,8,[`icon`]),A(`span`,null,M(e.deviceName)+` — `+M(e.channelName),1)]))),128))])])]),_:2},1024))),128))])):(r(),B(`div`,Tr,[V(S(L),{icon:`mdi:chart-bell-curve`}),w(` `+M(S(s)(`spacesModule.detail.sensorRoles.noRolesAssigned`)),1)])),V(S(k),{text:``,size:`small`,class:`ml-2`,onClick:t[0]||=e=>a(`edit`)},{icon:m(()=>[V(S(L),{icon:`mdi:pencil`})]),default:m(()=>[w(` `+M(S(s)(`spacesModule.buttons.edit.title`)),1)]),_:1})])],64)):C(``,!0)}}),Dr=_({name:`SpaceLightingRolesDialog`,__name:`space-lighting-roles-dialog`,props:{visible:{type:Boolean},space:{}},emits:[`update:visible`,`roles-changed`],setup(e,{emit:t}){let n=e,i=t,{t:a}=E(),o=F({get:()=>n.visible,set:e=>i(`update:visible`,e)}),s=()=>{i(`roles-changed`),o.value=!1};return(e,t)=>(r(),O(S(Ne),{modelValue:o.value,"onUpdate:modelValue":t[0]||=e=>o.value=e,title:S(a)(`spacesModule.dialogs.lightingRoles.title`),class:`max-w-[700px]`,onClose:s},{footer:m(()=>[V(S(k),{type:`primary`,onClick:s},{default:m(()=>[w(M(S(a)(`spacesModule.buttons.done.title`)),1)]),_:1})]),default:m(()=>[V(xn,{space:n.space,"hide-header":``},null,8,[`space`])]),_:1},8,[`modelValue`,`title`]))}}),Or=_({name:`SpaceClimateRolesDialog`,__name:`space-climate-roles-dialog`,props:{visible:{type:Boolean},space:{}},emits:[`update:visible`,`roles-changed`],setup(e,{emit:t}){let n=e,i=t,{t:a}=E(),o=F({get:()=>n.visible,set:e=>i(`update:visible`,e)}),s=()=>{i(`roles-changed`),o.value=!1};return(e,t)=>(r(),O(S(Ne),{modelValue:o.value,"onUpdate:modelValue":t[0]||=e=>o.value=e,title:S(a)(`spacesModule.dialogs.climateRoles.title`),class:`max-w-[700px]`,onClose:s},{footer:m(()=>[V(S(k),{type:`primary`,onClick:s},{default:m(()=>[w(M(S(a)(`spacesModule.buttons.done.title`)),1)]),_:1})]),default:m(()=>[V(Rn,{space:n.space,"hide-header":``},null,8,[`space`])]),_:1},8,[`modelValue`,`title`]))}}),kr=_({name:`SpaceCoversRolesDialog`,__name:`space-covers-roles-dialog`,props:{visible:{type:Boolean},space:{}},emits:[`update:visible`,`roles-changed`],setup(e,{emit:t}){let n=e,i=t,{t:a}=E(),o=F({get:()=>n.visible,set:e=>i(`update:visible`,e)}),s=()=>{i(`roles-changed`),o.value=!1};return(e,t)=>(r(),O(S(Ne),{modelValue:o.value,"onUpdate:modelValue":t[0]||=e=>o.value=e,title:S(a)(`spacesModule.dialogs.coversRoles.title`),class:`max-w-[700px]`,onClose:s},{footer:m(()=>[V(S(k),{type:`primary`,onClick:s},{default:m(()=>[w(M(S(a)(`spacesModule.buttons.done.title`)),1)]),_:1})]),default:m(()=>[V(tr,{space:n.space,"hide-header":``},null,8,[`space`])]),_:1},8,[`modelValue`,`title`]))}}),Ar=_({name:`SpaceSensorRolesDialog`,__name:`space-sensor-roles-dialog`,props:{visible:{type:Boolean},space:{}},emits:[`update:visible`,`roles-changed`],setup(e,{emit:t}){let n=e,i=t,{t:a}=E(),o=F({get:()=>n.visible,set:e=>i(`update:visible`,e)}),s=()=>{i(`roles-changed`),o.value=!1};return(e,t)=>(r(),O(S(Ne),{modelValue:o.value,"onUpdate:modelValue":t[0]||=e=>o.value=e,title:S(a)(`spacesModule.dialogs.sensorRoles.title`),class:`max-w-[700px]`,onClose:s},{footer:m(()=>[V(S(k),{type:`primary`,onClick:s},{default:m(()=>[w(M(S(a)(`spacesModule.buttons.done.title`)),1)]),_:1})]),default:m(()=>[V(_r,{space:n.space,"hide-header":``},null,8,[`space`])]),_:1},8,[`modelValue`,`title`]))}}),jr=[`element-loading-text`],Mr={class:`flex items-center gap-3 flex-1 pr-2`},Nr={class:`font-medium text-sm`},Pr={class:`flex items-center justify-between w-full`},Fr={class:`flex gap-1 ml-2`},Ir={class:`flex items-center justify-between w-full`},Lr={class:`flex gap-1 ml-2`},Rr={class:`flex items-center justify-between w-full`},zr={class:`flex gap-1 ml-2`},Br={class:`flex justify-between items-center mt-2`},Vr={class:`flex items-center gap-2`},Hr={class:`text-xs text-gray-400`},Ur=_({name:`SpaceMediaActivitiesDialog`,__name:`space-media-activities-dialog`,props:{visible:{type:Boolean},space:{}},emits:[`update:visible`,`bindings-changed`],setup(t,{emit:i}){let a=t,s=i,{t:c}=E(),l=Ae(),u=F({get:()=>a.visible,set:e=>s(`update:visible`,e)}),{endpoints:d,activeState:f,fetchingEndpoints:h,fetchingBindings:g,activating:_,deactivating:v,applyingDefaults:y,activationError:x,fetchEndpoints:ee,fetchBindings:T,fetchActiveState:D,activate:j,deactivate:P,saveBinding:I,createBinding:ne,deleteBinding:re,applyDefaults:R,findBindingByActivity:ae,endpointsByType:oe}=ut(F(()=>a.space?.id)),se=[Y.watch,Y.listen,Y.gaming,Y.background],ce=z(``),le=z(null),H=z(!1),ue=F(()=>h.value||g.value),de=()=>({displayEndpointId:``,audioEndpointId:``,sourceEndpointId:``,remoteEndpointId:``,displayInputId:``,audioInputId:``,sourceInputId:``,audioVolumePreset:30}),U=te({[Y.watch]:de(),[Y.listen]:de(),[Y.gaming]:de(),[Y.background]:de()}),fe=te({[Y.watch]:de(),[Y.listen]:de(),[Y.gaming]:de(),[Y.background]:de()}),me=te({[Y.watch]:!1,[Y.listen]:!1,[Y.gaming]:!1,[Y.background]:!1}),he=te({[Y.watch]:null,[Y.listen]:null,[Y.gaming]:null,[Y.background]:null}),W=oe(Fe.display),_e=oe(Fe.audio_output),ve=oe(Fe.source),ye=oe(Fe.remote_target),xe=(e,t)=>{U[e].displayEndpointId=t?.displayEndpointId??``,U[e].audioEndpointId=t?.audioEndpointId??``,U[e].sourceEndpointId=t?.sourceEndpointId??``,U[e].remoteEndpointId=t?.remoteEndpointId??``,U[e].displayInputId=t?.displayInputId??``,U[e].audioInputId=t?.audioInputId??``,U[e].sourceInputId=t?.sourceInputId??``,U[e].audioVolumePreset=t?.audioVolumePreset??30,Object.assign(fe[e],{...U[e]})},Se=()=>{for(let e of se)xe(e,ae(e))},K=e=>{let t=U[e],n=fe[e];return t.displayEndpointId!==n.displayEndpointId||t.audioEndpointId!==n.audioEndpointId||t.sourceEndpointId!==n.sourceEndpointId||t.remoteEndpointId!==n.remoteEndpointId||t.displayInputId!==n.displayInputId||t.audioInputId!==n.audioInputId||t.sourceInputId!==n.sourceInputId||t.audioVolumePreset!==n.audioVolumePreset},Ce=(e,t)=>{let n=U[e][t];return n?d.value.find(e=>e.endpointId===n)?.capabilities.inputSelect??!1:!1},Te=e=>{let t=U[e].audioEndpointId;return t?d.value.find(e=>e.endpointId===t)?.capabilities.volume??!1:!1},Ee=e=>{let t=d.value.find(t=>t.endpointId===e);return t?.links?.inputSelect?.dataType===`enum`&&Array.isArray(t.links.inputSelect.format)&&t.links.inputSelect.format.length>0?{type:`select`,options:t.links.inputSelect.format}:{type:`text`}},De=e=>{let t=Ee(e);return t.type===`select`?t.options:[]},Oe=e=>{let t=`spacesModule.media.activities.mediaInputSources.${e}`,n=c(t);return n===t?String(e):n},ke=e=>{let t=` (${c(`spacesModule.media.endpointTypes.${e.type}`)})`;return e.name.endsWith(t)?e.name.slice(0,-t.length):e.name},je=e=>{switch(e){case`active`:return`success`;case`activating`:return`primary`;case`failed`:return`danger`;case`deactivated`:return`info`;default:return`info`}},Pe=e=>{let t=f.value?.activityKey===e&&f.value?.state!==`deactivated`,n=t?f.value.state:void 0,r=ae(e);return{isActive:t,state:n,binding:r,hasSlots:!!(r?.displayEndpointId||r?.audioEndpointId||r?.sourceEndpointId||r?.remoteEndpointId)}},Ie=e=>{let{isActive:t,state:n}=Pe(e);return t&&n?je(n):tt(e)},X=e=>{let{isActive:t,state:n,binding:r,hasSlots:i}=Pe(e);return c(t?`spacesModule.media.activities.activationState.${n}`:r?i?`spacesModule.media.activities.status.configured`:`spacesModule.media.activities.status.incomplete`:`spacesModule.media.activities.status.unconfigured`)},Le=new Map,Re=e=>{let t=U[e];return{displayEndpointId:t.displayEndpointId||null,audioEndpointId:t.audioEndpointId||null,sourceEndpointId:t.sourceEndpointId||null,remoteEndpointId:t.remoteEndpointId||null,displayInputId:Ce(e,`displayEndpointId`)&&t.displayInputId||null,audioInputId:Ce(e,`audioEndpointId`)&&t.audioInputId||null,sourceInputId:Ce(e,`sourceEndpointId`)&&t.sourceInputId||null,audioVolumePreset:Te(e)?t.audioVolumePreset:null}},ze=async e=>{if(!me[e]){me[e]=!0,he[e]=null;try{let t=ae(e),n=Re(e),r=!n.displayEndpointId&&!n.audioEndpointId&&!n.sourceEndpointId&&!n.remoteEndpointId,i={...U[e]};r&&t?(await re(t.id),xe(e,void 0),Object.assign(fe[e],i)):r?Object.assign(fe[e],i):t?(await I(t.id,n),Object.assign(fe[e],i)):(await ne(e,n),Object.assign(fe[e],i))}catch(t){he[e]=t instanceof Error?t.message:`Failed to save`}finally{me[e]=!1}}},Z=e=>{let t=Le.get(e);t&&clearTimeout(t),Le.set(e,setTimeout(()=>{Le.delete(e),ze(e)},500))};for(let e of se)b(()=>U[e],()=>{!H.value||!K(e)||Z(e)},{deep:!0}),b(()=>U[e].displayEndpointId,()=>{H.value&&(U[e].displayInputId=``)}),b(()=>U[e].audioEndpointId,()=>{H.value&&(U[e].audioInputId=``,U[e].audioVolumePreset=30)}),b(()=>U[e].sourceEndpointId,()=>{H.value&&(U[e].sourceInputId=``)});let Q=async e=>{le.value=e;try{await j(e),l.success(c(`spacesModule.media.activities.activateSuccess`))}catch{l.error(c(`spacesModule.media.activities.activateFailed`))}finally{le.value=null}},Ve=async()=>{try{await P(),l.success(c(`spacesModule.media.activities.deactivateSuccess`))}catch{x.value=null,l.error(c(`spacesModule.media.activities.deactivateFailed`))}},He=async()=>{H.value=!1;try{await R(),Se(),l.success(c(`spacesModule.media.activities.defaultsApplied`))}catch{l.error(c(`spacesModule.media.activities.defaultsFailed`))}await n(),H.value=!0},Ue=async()=>{H.value=!1,await Promise.all([ee(),T(),D()]),Se(),await n(),H.value=!0},$=async()=>{H.value=!1;let e=[],t=new Set;for(let[n,r]of Le)clearTimeout(r),t.add(n),e.push(ze(n));Le.clear();for(let n of se)!t.has(n)&&K(n)&&e.push(ze(n));await Promise.allSettled(e),s(`bindings-changed`),u.value=!1};return(t,n)=>(r(),O(S(Ne),{modelValue:u.value,"onUpdate:modelValue":n[2]||=e=>u.value=e,title:S(c)(`spacesModule.dialogs.mediaActivities.title`),class:`max-w-[800px]`,"destroy-on-close":``,onOpen:Ue,onClose:$},{footer:m(()=>[V(S(k),{type:`primary`,onClick:$},{default:m(()=>[w(M(S(c)(`spacesModule.buttons.done.title`)),1)]),_:1})]),default:m(()=>[e((r(),B(`div`,{"element-loading-text":S(c)(`spacesModule.media.activities.loading`),class:`flex flex-col gap-4`},[V(S(pe),{type:`info`,closable:!1,"show-icon":``,class:`mb-0!`},{default:m(()=>[w(M(S(c)(`spacesModule.media.activities.description`)),1)]),_:1}),V(S(Be),{modelValue:ce.value,"onUpdate:modelValue":n[0]||=e=>ce.value=e,accordion:``},{default:m(()=>[(r(),B(N,null,o(se,e=>V(S(Me),{key:e,name:e},{title:m(()=>[A(`div`,Mr,[V(S(L),{icon:S(ot)(e),class:`w[20px] h[20px] shrink-0`},null,8,[`icon`]),A(`span`,Nr,M(S(c)(`spacesModule.media.activityLabels.${e}`)),1),V(S(J),{type:Ie(e),size:`small`,round:``},{default:m(()=>[w(M(X(e)),1)]),_:2},1032,[`type`]),me[e]?(r(),O(S(L),{key:0,icon:`mdi:loading`,class:`animate-spin text-blue-500 w[14px] h[14px]`})):C(``,!0),n[3]||=A(`div`,{class:`flex-1`},null,-1),V(S(k),{size:`small`,type:`success`,circle:``,loading:S(_)&&le.value===e,disabled:S(_)||S(v)||S(f)?.state===`activating`,title:S(c)(`spacesModule.media.activities.run`),onClick:ie(t=>Q(e),[`stop`])},{icon:m(()=>[V(S(L),{icon:`mdi:play`})]),_:1},8,[`loading`,`disabled`,`title`,`onClick`])])]),default:m(()=>[V(S(be),{"label-position":`top`,class:`flex flex-col gap-2`},{default:m(()=>[A(`div`,{class:p(Ce(e,`displayEndpointId`)?`grid grid-cols-2 gap-x-4`:``)},[V(S(G),{label:S(c)(`spacesModule.media.activities.slots.display`)},{default:m(()=>[V(S(We),{modelValue:U[e].displayEndpointId,"onUpdate:modelValue":t=>U[e].displayEndpointId=t,placeholder:S(c)(`spacesModule.media.activities.selectEndpoint`),clearable:``,class:`w-full`},{default:m(()=>[(r(!0),B(N,null,o(S(W),e=>(r(),O(S(q),{key:e.endpointId,label:ke(e),value:e.endpointId},{default:m(()=>[A(`div`,Pr,[A(`span`,null,M(ke(e)),1),A(`div`,Fr,[e.capabilities.inputSelect?(r(),O(S(J),{key:0,size:`small`,type:`info`},{default:m(()=>[w(M(S(c)(`spacesModule.media.capabilities.input`)),1)]),_:1})):C(``,!0)])])]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`onUpdate:modelValue`,`placeholder`])]),_:2},1032,[`label`]),Ce(e,`displayEndpointId`)?(r(),O(S(G),{key:0,label:S(c)(`spacesModule.media.activities.overrides.displayInput`)},{default:m(()=>[Ee(U[e].displayEndpointId).type===`select`?(r(),O(S(We),{key:0,modelValue:U[e].displayInputId,"onUpdate:modelValue":t=>U[e].displayInputId=t,placeholder:S(c)(`spacesModule.media.activities.overrides.displayInputPlaceholder`),clearable:``,class:`w-full`},{default:m(()=>[(r(!0),B(N,null,o(De(U[e].displayEndpointId),e=>(r(),O(S(q),{key:String(e),label:Oe(e),value:String(e)},null,8,[`label`,`value`]))),128))]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`placeholder`])):(r(),O(S(we),{key:1,modelValue:U[e].displayInputId,"onUpdate:modelValue":t=>U[e].displayInputId=t,placeholder:S(c)(`spacesModule.media.activities.overrides.displayInputPlaceholder`),clearable:``},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]))]),_:2},1032,[`label`])):C(``,!0)],2),A(`div`,{class:p(Ce(e,`audioEndpointId`)?`grid grid-cols-2 gap-x-4`:``)},[V(S(G),{label:S(c)(`spacesModule.media.activities.slots.audio`)},{default:m(()=>[V(S(We),{modelValue:U[e].audioEndpointId,"onUpdate:modelValue":t=>U[e].audioEndpointId=t,placeholder:S(c)(`spacesModule.media.activities.selectEndpoint`),clearable:``,class:`w-full`},{default:m(()=>[(r(!0),B(N,null,o(S(_e),e=>(r(),O(S(q),{key:e.endpointId,label:ke(e),value:e.endpointId},{default:m(()=>[A(`div`,Ir,[A(`span`,null,M(ke(e)),1),A(`div`,Lr,[e.capabilities.volume?(r(),O(S(J),{key:0,size:`small`,type:`info`},{default:m(()=>[w(M(S(c)(`spacesModule.media.capabilities.volume`)),1)]),_:1})):C(``,!0),e.capabilities.inputSelect?(r(),O(S(J),{key:1,size:`small`,type:`info`},{default:m(()=>[w(M(S(c)(`spacesModule.media.capabilities.input`)),1)]),_:1})):C(``,!0)])])]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`onUpdate:modelValue`,`placeholder`])]),_:2},1032,[`label`]),Ce(e,`audioEndpointId`)?(r(),O(S(G),{key:0,label:S(c)(`spacesModule.media.activities.overrides.audioInput`)},{default:m(()=>[Ee(U[e].audioEndpointId).type===`select`?(r(),O(S(We),{key:0,modelValue:U[e].audioInputId,"onUpdate:modelValue":t=>U[e].audioInputId=t,placeholder:S(c)(`spacesModule.media.activities.overrides.audioInputPlaceholder`),clearable:``,class:`w-full`},{default:m(()=>[(r(!0),B(N,null,o(De(U[e].audioEndpointId),e=>(r(),O(S(q),{key:String(e),label:Oe(e),value:String(e)},null,8,[`label`,`value`]))),128))]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`placeholder`])):(r(),O(S(we),{key:1,modelValue:U[e].audioInputId,"onUpdate:modelValue":t=>U[e].audioInputId=t,placeholder:S(c)(`spacesModule.media.activities.overrides.audioInputPlaceholder`),clearable:``},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]))]),_:2},1032,[`label`])):C(``,!0)],2),Te(e)?(r(),O(S(G),{key:0,label:S(c)(`spacesModule.media.activities.overrides.audioVolume`)},{default:m(()=>[V(S(Xe),{modelValue:U[e].audioVolumePreset,"onUpdate:modelValue":t=>U[e].audioVolumePreset=t,min:0,max:100,"show-input":``},null,8,[`modelValue`,`onUpdate:modelValue`])]),_:2},1032,[`label`])):C(``,!0),A(`div`,{class:p(Ce(e,`sourceEndpointId`)?`grid grid-cols-2 gap-x-4`:``)},[V(S(G),{label:S(c)(`spacesModule.media.activities.slots.source`)},{default:m(()=>[V(S(We),{modelValue:U[e].sourceEndpointId,"onUpdate:modelValue":t=>U[e].sourceEndpointId=t,placeholder:S(c)(`spacesModule.media.activities.selectEndpoint`),clearable:``,class:`w-full`},{default:m(()=>[(r(!0),B(N,null,o(S(ve),e=>(r(),O(S(q),{key:e.endpointId,label:ke(e),value:e.endpointId},{default:m(()=>[A(`div`,Rr,[A(`span`,null,M(ke(e)),1),A(`div`,zr,[e.capabilities.inputSelect?(r(),O(S(J),{key:0,size:`small`,type:`info`},{default:m(()=>[w(M(S(c)(`spacesModule.media.capabilities.input`)),1)]),_:1})):C(``,!0)])])]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`onUpdate:modelValue`,`placeholder`])]),_:2},1032,[`label`]),Ce(e,`sourceEndpointId`)?(r(),O(S(G),{key:0,label:S(c)(`spacesModule.media.activities.overrides.sourceInput`)},{default:m(()=>[Ee(U[e].sourceEndpointId).type===`select`?(r(),O(S(We),{key:0,modelValue:U[e].sourceInputId,"onUpdate:modelValue":t=>U[e].sourceInputId=t,placeholder:S(c)(`spacesModule.media.activities.overrides.sourceInputPlaceholder`),clearable:``,class:`w-full`},{default:m(()=>[(r(!0),B(N,null,o(De(U[e].sourceEndpointId),e=>(r(),O(S(q),{key:String(e),label:Oe(e),value:String(e)},null,8,[`label`,`value`]))),128))]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`placeholder`])):(r(),O(S(we),{key:1,modelValue:U[e].sourceInputId,"onUpdate:modelValue":t=>U[e].sourceInputId=t,placeholder:S(c)(`spacesModule.media.activities.overrides.sourceInputPlaceholder`),clearable:``},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]))]),_:2},1032,[`label`])):C(``,!0)],2),V(S(G),{label:S(c)(`spacesModule.media.activities.slots.remote`)},{default:m(()=>[V(S(We),{modelValue:U[e].remoteEndpointId,"onUpdate:modelValue":t=>U[e].remoteEndpointId=t,placeholder:S(c)(`spacesModule.media.activities.selectEndpoint`),clearable:``,class:`w-full`},{default:m(()=>[(r(!0),B(N,null,o(S(ye),e=>(r(),O(S(q),{key:e.endpointId,label:ke(e),value:e.endpointId},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`onUpdate:modelValue`,`placeholder`])]),_:2},1032,[`label`]),he[e]?(r(),O(S(pe),{key:1,type:`error`,title:S(c)(`spacesModule.media.activities.saveError`),description:he[e],"show-icon":``,closable:``,onClose:t=>he[e]=null},null,8,[`title`,`description`,`onClose`])):C(``,!0)]),_:2},1024)]),_:2},1032,[`name`])),64))]),_:1},8,[`modelValue`]),A(`div`,Br,[A(`div`,Vr,[V(S(k),{size:`small`,loading:S(y),onClick:He},{default:m(()=>[w(M(S(c)(`spacesModule.media.activities.applyDefaults`)),1)]),_:1},8,[`loading`]),S(f)&&S(f).state!==`deactivated`?(r(),O(S(k),{key:0,size:`small`,type:`warning`,loading:S(v),disabled:S(_),onClick:Ve},{icon:m(()=>[V(S(L),{icon:`mdi:stop`})]),default:m(()=>[w(` `+M(S(c)(`spacesModule.media.activities.deactivate`)),1)]),_:1},8,[`loading`,`disabled`])):C(``,!0)]),A(`div`,Hr,M(S(c)(`spacesModule.media.activities.applyDefaultsHint`)),1)]),S(x)?(r(),O(S(pe),{key:0,type:`error`,title:S(c)(`spacesModule.media.activities.activateFailed`),description:S(x),"show-icon":``,closable:``,onClose:n[1]||=e=>x.value=null},null,8,[`title`,`description`])):C(``,!0)],8,jr)),[[S(ge),ue.value]])]),_:1},8,[`modelValue`,`title`]))}}),Wr={class:`b-b b-b-solid b-r b-r-solid py-3 px-2 flex items-center justify-end`,style:{background:`var(--el-fill-color-light)`}},Gr={class:`col-start-2 b-b b-b-solid m-0 p-2 flex items-center justify-between min-w-[8rem]`},Kr={key:0,class:`flex items-center gap-2 flex-wrap`},qr={class:`flex items-center gap-1`},Jr={key:1,class:`flex items-center gap-2 text-gray-400 text-sm`},Yr=[`element-loading-text`],Xr={key:0,class:`flex flex-col gap-4`},Zr={class:`flex items-center justify-between`},Qr={class:`flex items-center gap-3`},$r={class:`text-gray-500 text-sm`},ei={key:0},ti={class:`text-gray-500 text-sm`},ni={class:`ml-1 text-sm`},ri={class:`flex flex-col gap-2`},ii={class:`flex items-center justify-between`},ai={class:`text-sm font-medium`},oi={class:`flex gap-3 text-xs text-gray-500`},si={class:`text-green-600`},ci={class:`text-red-600`},li={class:`text-sm font-medium mb-2`},ui={class:`grid grid-cols-2 gap-2 text-sm`},di={key:0},fi={class:`text-gray-400`},pi={class:`ml-1`},mi={key:1},hi={class:`text-gray-400`},gi={class:`ml-1`},_i={key:2},vi={class:`text-gray-400`},yi={class:`ml-1`},bi={key:3},xi={class:`text-gray-400`},Si={class:`ml-1`},Ci={class:`text-sm font-medium mb-2`},wi={class:`flex items-center gap-2`},Ti={key:1,class:`text-sm text-gray-400`},Ei={key:2},Di={class:`text-sm font-medium mb-2`},Oi=_({name:`SpaceMediaActivitiesSummary`,__name:`space-media-activities-summary`,props:{space:{}},emits:[`edit`],setup(t,{expose:n,emit:i}){let a=t,s=i,{t:l}=E(),u=Ae(),{endpoints:d,activeState:f,fetchEndpoints:h,fetchBindings:g,fetchActiveState:_,deactivate:v,deactivating:y,findBindingByActivity:x,preview:ee}=ut(F(()=>a.space?.id)),te=z(!1),T=z(!1),D=z(!1),j=z(null),P=z(null),I=z(null),ne=[Y.watch,Y.listen,Y.gaming,Y.background],re=e=>[e.displayEndpointId,e.audioEndpointId,e.sourceEndpointId,e.remoteEndpointId].filter(Boolean).length,ie=F(()=>{let e=[];for(let t of ne){let n=x(t);n&&e.push({activityKey:t,icon:ot(t),tagType:tt(t),routeCount:re(n)})}return e}),R=F(()=>{if(!I.value)return l(`spacesModule.media.activities.previewDialog.title`);let e=l(`spacesModule.media.activityLabels.${I.value}`);return`${l(`spacesModule.media.activities.previewDialog.title`)} — ${e}`}),ae=F(()=>!f.value||!I.value?!1:f.value.activityKey===I.value&&f.value.state!==`deactivated`),oe=F(()=>f.value?.summary?.failures?f.value.summary.failures:[]),se=F(()=>{if(!f.value)return`border-gray-300`;switch(f.value.state){case`active`:return`border-green-500`;case`activating`:return`border-blue-500`;case`failed`:return`border-red-500`;default:return`border-gray-300`}}),ce=F(()=>{if(!f.value)return`info`;switch(f.value.state){case`active`:return`success`;case`activating`:return`primary`;case`failed`:return`danger`;default:return`info`}}),le=e=>{let t=new Date(e);return isNaN(t.getTime())?e:t.toLocaleString()},H=e=>d.value.find(t=>t.deviceId===e)?.name??e,ue=e=>{switch(e){case`setProperty`:return`mdi:tune`;case`sendCommand`:return`mdi:send`;default:return`mdi:help-circle`}},de=async()=>{try{await v(),u.success(l(`spacesModule.media.activities.deactivateSuccess`))}catch{u.error(l(`spacesModule.media.activities.deactivateFailed`))}},U=async e=>{I.value=e,j.value=null,P.value=null,D.value=!0,T.value=!0;try{let[t]=await Promise.all([ee(e),_()]);j.value=t}catch(e){P.value=e instanceof Error?e.message:`Unknown error`}finally{D.value=!1}},fe=async()=>{if(a.space?.id)try{await Promise.all([h(),g(),_()]),te.value=d.value.length>0}catch{}};return b(()=>a.space?.id,e=>{e&&fe()}),c(()=>{a.space?.id&&fe()}),n({reload:fe}),(t,n)=>(r(),B(N,null,[te.value?(r(),B(N,{key:0},[A(`dt`,Wr,M(S(l)(`spacesModule.detail.mediaActivities.title`)),1),A(`dd`,Gr,[ie.value.length>0?(r(),B(`div`,Kr,[(r(!0),B(N,null,o(ie.value,e=>(r(),O(S(J),{key:e.activityKey,type:e.tagType,size:`small`,class:`cursor-pointer`,onClick:t=>U(e.activityKey)},{default:m(()=>[A(`div`,qr,[V(S(L),{icon:e.icon},null,8,[`icon`]),w(` `+M(S(l)(`spacesModule.media.activityLabels.${e.activityKey}`))+` `,1),V(S(Ce),{value:e.routeCount,type:e.tagType,class:`ml-1`},null,8,[`value`,`type`])])]),_:2},1032,[`type`,`onClick`]))),128))])):(r(),B(`div`,Jr,[V(S(L),{icon:`mdi:play-box-multiple-outline`}),w(` `+M(S(l)(`spacesModule.detail.mediaActivities.noActivities`)),1)])),V(S(k),{text:``,size:`small`,class:`ml-2`,onClick:n[0]||=e=>s(`edit`)},{icon:m(()=>[V(S(L),{icon:`mdi:pencil`})]),default:m(()=>[w(` `+M(S(l)(`spacesModule.buttons.edit.title`)),1)]),_:1})])],64)):C(``,!0),V(S(Ne),{modelValue:T.value,"onUpdate:modelValue":n[2]||=e=>T.value=e,title:R.value,width:`680px`,"destroy-on-close":``},{footer:m(()=>[V(S(k),{onClick:n[1]||=e=>T.value=!1},{default:m(()=>[w(M(S(l)(`spacesModule.media.activities.previewDialog.close`)),1)]),_:1})]),default:m(()=>[e((r(),B(`div`,{"element-loading-text":S(l)(`spacesModule.media.activities.loading`)},[j.value?(r(),B(`div`,Xr,[ae.value?(r(),O(S(Ie),{key:0,shadow:`never`,class:p([`border-l-4`,se.value])},{default:m(()=>[A(`div`,Zr,[A(`div`,Qr,[A(`div`,null,[A(`span`,$r,M(S(l)(`spacesModule.media.activities.activePanel.state`))+`:`,1),V(S(J),{type:ce.value,size:`small`,class:`ml-2`},{default:m(()=>[w(M(S(l)(`spacesModule.media.activities.activationState.${S(f).state}`)),1)]),_:1},8,[`type`])]),S(f).activatedAt?(r(),B(`div`,ei,[A(`span`,ti,M(S(l)(`spacesModule.media.activities.activePanel.activatedAt`))+`:`,1),A(`span`,ni,M(le(S(f).activatedAt)),1)])):C(``,!0)]),S(f).state===`deactivated`?C(``,!0):(r(),O(S(k),{key:0,size:`small`,type:`warning`,loading:S(y),onClick:de},{icon:m(()=>[V(S(L),{icon:`mdi:stop`})]),default:m(()=>[w(` `+M(S(l)(`spacesModule.media.activities.deactivate`)),1)]),_:1},8,[`loading`]))])]),_:1},8,[`class`])):C(``,!0),ae.value&&oe.value.length>0?(r(),O(S(Ie),{key:1,shadow:`never`,class:`border-l-4 border-red-500`},{default:m(()=>[A(`div`,ri,[A(`div`,ii,[A(`span`,ai,M(S(l)(`spacesModule.media.activities.failures.title`)),1),A(`div`,oi,[A(`span`,null,M(S(l)(`spacesModule.media.activities.failures.total`))+`: `+M(S(f).summary?.stepsTotal??0),1),A(`span`,si,M(S(l)(`spacesModule.media.activities.failures.succeeded`))+`: `+M(S(f).summary?.stepsSucceeded??0),1),A(`span`,ci,M(S(l)(`spacesModule.media.activities.failures.failed`))+`: `+M(S(f).summary?.stepsFailed??0),1)])]),V(S(Ge),{data:oe.value,size:`small`,border:``},{default:m(()=>[V(S($),{label:S(l)(`spacesModule.media.activities.failures.stepIndex`),width:`70`},{default:m(({row:e})=>[w(M(e.stepIndex),1)]),_:1},8,[`label`]),V(S($),{label:S(l)(`spacesModule.media.activities.failures.device`),"min-width":`140`},{default:m(({row:e})=>[w(M(e.targetDeviceId?H(e.targetDeviceId):`—`),1)]),_:1},8,[`label`]),V(S($),{label:S(l)(`spacesModule.media.activities.failures.property`),"min-width":`100`},{default:m(({row:e})=>[w(M(e.propertyId??`—`),1)]),_:1},8,[`label`]),V(S($),{label:S(l)(`spacesModule.media.activities.failures.reason`),"min-width":`180`},{default:m(({row:e})=>[w(M(e.reason),1)]),_:1},8,[`label`])]),_:1},8,[`data`])])]),_:1})):C(``,!0),A(`div`,null,[A(`div`,li,M(S(l)(`spacesModule.media.activities.previewDialog.resolvedDevices`)),1),A(`div`,ui,[j.value.resolved.displayDeviceId?(r(),B(`div`,di,[A(`span`,fi,M(S(l)(`spacesModule.media.activities.activePanel.display`))+`:`,1),A(`span`,pi,M(H(j.value.resolved.displayDeviceId)),1)])):C(``,!0),j.value.resolved.audioDeviceId?(r(),B(`div`,mi,[A(`span`,hi,M(S(l)(`spacesModule.media.activities.activePanel.audio`))+`:`,1),A(`span`,gi,M(H(j.value.resolved.audioDeviceId)),1)])):C(``,!0),j.value.resolved.sourceDeviceId?(r(),B(`div`,_i,[A(`span`,vi,M(S(l)(`spacesModule.media.activities.activePanel.source`))+`:`,1),A(`span`,yi,M(H(j.value.resolved.sourceDeviceId)),1)])):C(``,!0),j.value.resolved.remoteDeviceId?(r(),B(`div`,bi,[A(`span`,xi,M(S(l)(`spacesModule.media.activities.activePanel.remote`))+`:`,1),A(`span`,Si,M(H(j.value.resolved.remoteDeviceId)),1)])):C(``,!0)])]),A(`div`,null,[A(`div`,Ci,M(S(l)(`spacesModule.media.activities.previewDialog.executionPlan`)),1),j.value.plan.length?(r(),O(S(Ge),{key:0,data:j.value.plan,size:`small`,border:``},{default:m(()=>[V(S($),{label:S(l)(`spacesModule.media.activities.previewDialog.step`),width:`60`},{default:m(({$index:e})=>[w(M(e+1),1)]),_:1},8,[`label`]),V(S($),{label:S(l)(`spacesModule.media.activities.previewDialog.action`),"min-width":`200`},{default:m(({row:e})=>[A(`div`,wi,[V(S(L),{icon:ue(e.action.kind),class:`w[16px] h[16px] shrink-0`},null,8,[`icon`]),A(`span`,null,M(e.label),1)])]),_:1},8,[`label`]),V(S($),{label:S(l)(`spacesModule.media.activities.previewDialog.device`),"min-width":`140`},{default:m(({row:e})=>[w(M(H(e.targetDeviceId)),1)]),_:1},8,[`label`]),V(S($),{label:S(l)(`spacesModule.media.activities.previewDialog.critical`),width:`100`},{default:m(({row:e})=>[V(S(J),{type:e.critical?`danger`:`info`,size:`small`},{default:m(()=>[w(M(e.critical?S(l)(`spacesModule.media.activities.previewDialog.criticalYes`):S(l)(`spacesModule.media.activities.previewDialog.criticalNo`)),1)]),_:2},1032,[`type`])]),_:1},8,[`label`])]),_:1},8,[`data`])):(r(),B(`div`,Ti,M(S(l)(`spacesModule.media.activities.previewDialog.noSteps`)),1))]),j.value.warnings.length?(r(),B(`div`,Ei,[A(`div`,Di,M(S(l)(`spacesModule.media.activities.previewDialog.warnings`)),1),(r(!0),B(N,null,o(j.value.warnings,(e,t)=>(r(),O(S(pe),{key:t,type:`warning`,title:e.label,"show-icon":``,closable:!1,class:`mb-1`},null,8,[`title`]))),128))])):C(``,!0)])):C(``,!0),P.value?(r(),O(S(pe),{key:1,type:`error`,title:S(l)(`spacesModule.media.activities.previewFailed`),description:P.value,"show-icon":``,closable:!1},null,8,[`title`,`description`])):C(``,!0)],8,Yr)),[[S(ge),D.value]])]),_:1},8,[`modelValue`,`title`])],64))}}),ki={class:`grid m-0`},Ai={class:`b-b b-b-solid b-r b-r-solid py-3 px-2 flex items-center justify-end`,style:{background:`var(--el-fill-color-light)`}},ji={class:`col-start-2 b-b b-b-solid m-0 p-2 flex items-center min-w-[8rem]`},Mi={class:`b-b b-b-solid b-r b-r-solid py-3 px-2 flex items-center justify-end`,style:{background:`var(--el-fill-color-light)`}},Ni={class:`col-start-2 b-b b-b-solid m-0 p-2 flex items-center min-w-[8rem]`},Pi={key:0,class:`b-b b-b-solid b-r b-r-solid py-3 px-2 flex items-center justify-end`,style:{background:`var(--el-fill-color-light)`}},Fi={key:1,class:`col-start-2 b-b b-b-solid m-0 p-2 flex items-center min-w-[8rem]`},Ii={key:2,class:`b-b b-b-solid b-r b-r-solid py-3 px-2 flex items-center justify-end`,style:{background:`var(--el-fill-color-light)`}},Li={key:3,class:`col-start-2 b-b b-b-solid m-0 p-2 flex items-center gap-2 min-w-[8rem]`},Ri={key:4,class:`b-r b-r-solid py-3 px-2 flex items-center justify-end`,style:{background:`var(--el-fill-color-light)`}},zi={key:5,class:`col-start-2 m-0 p-2 flex items-center gap-2 min-w-[8rem]`},Bi={class:`flex items-center gap-1`},Vi={key:1,class:`text-gray-400 text-sm`},Hi={class:`flex items-center gap-2`},Ui=_({name:`SpaceDetail`,__name:`space-detail`,props:{space:{}},setup(e){let t=e,{t:i}=E(),a=Ae(),{spaces:s,firstLoadFinished:l,fetchSpaces:u}=$e(),{editSpace:p}=it(F(()=>t.space?.id)),h=z(!1),g=z(!1),_=z(!1),v=z(!1),y=z(!1),x=z(null),ee=z(null),te=z(null),T=z(null),D=z(null);c(async()=>{l.value||await u().catch(()=>{})});let k=z(null),j=z(!1),P=z(!1),I=z(null),ne=z(null),re=z(!1),ie=F(()=>s.value.filter(e=>!(e.type!==W.ZONE||!ke(e.category)))),R=F(()=>t.space?.parentId?s.value.find(e=>e.id===t.space?.parentId)??null:null),ae=()=>{P.value=!0,ne.value=t.space?.parentId??null,k.value=t.space?.parentId??null,re.value=!1,n(()=>{I.value?.focus()})},oe=()=>{setTimeout(()=>{!re.value&&!j.value&&P.value&&(P.value=!1),re.value=!1},200)},se=e=>{P.value&&e.key===`Escape`&&(k.value=ne.value,P.value=!1,re.value=!1)},ce=async e=>{if(!t.space||e===t.space.parentId){P.value=!1,re.value=!1;return}re.value=!0,j.value=!0;try{await p({name:t.space.name,parentId:e}),a.success(i(`spacesModule.messages.edited`,{space:t.space.name})),P.value=!1,re.value=!1}catch{k.value=ne.value,a.error(i(`spacesModule.messages.saveError`)),P.value=!1,re.value=!1}finally{j.value=!1}};b(()=>t.space?.parentId??null,e=>{P.value||(k.value=e,ne.value=e)},{immediate:!0}),c(()=>{document.addEventListener(`keydown`,se)}),d(()=>{document.removeEventListener(`keydown`,se)});let le=()=>{x.value?.reload()},H=()=>{ee.value?.reload()},ue=()=>{te.value?.reload()},de=()=>{T.value?.reload()},U=()=>{D.value?.reload()};return(t,n)=>(r(),B(N,null,[V(S(Ie),{class:`mt-2`,"body-class":`p-0!`},{default:m(()=>[A(`dl`,ki,[A(`dt`,Ai,M(S(i)(`spacesModule.fields.spaces.name.title`)),1),A(`dd`,ji,[V(S(Te),null,{default:m(()=>[w(M(e.space.name),1)]),_:1})]),A(`dt`,Mi,M(S(i)(`spacesModule.fields.spaces.type.title`)),1),A(`dd`,Ni,[V(S(Te),null,{default:m(()=>[w(M(S(i)(`spacesModule.misc.types.${e.space.type}`)),1)]),_:1})]),e.space.description?(r(),B(`dt`,Pi,M(S(i)(`spacesModule.fields.spaces.description.title`)),1)):C(``,!0),e.space.description?(r(),B(`dd`,Fi,[V(S(Te),null,{default:m(()=>[w(M(e.space.description),1)]),_:1})])):C(``,!0),e.space.icon?(r(),B(`dt`,Ii,M(S(i)(`spacesModule.fields.spaces.icon.title`)),1)):C(``,!0),e.space.icon?(r(),B(`dd`,Li,[V(S(f),null,{default:m(()=>[V(S(L),{icon:e.space.icon},null,8,[`icon`])]),_:1}),V(S(Te),null,{default:m(()=>[w(M(e.space.icon),1)]),_:1})])):C(``,!0),V(An,{ref_key:`lightingRolesSummaryRef`,ref:x,space:e.space,onEdit:n[0]||=e=>h.value=!0},null,8,[`space`]),V(qn,{ref_key:`climateRolesSummaryRef`,ref:ee,space:e.space,onEdit:n[1]||=e=>g.value=!0},null,8,[`space`]),V(ur,{ref_key:`coversRolesSummaryRef`,ref:te,space:e.space,onEdit:n[2]||=e=>_.value=!0},null,8,[`space`]),V(Er,{ref_key:`sensorRolesSummaryRef`,ref:T,space:e.space,onEdit:n[3]||=e=>v.value=!0},null,8,[`space`]),V(Oi,{ref_key:`mediaActivitiesSummaryRef`,ref:D,space:e.space,onEdit:n[4]||=e=>y.value=!0},null,8,[`space`]),e.space.type===S(W).ROOM?(r(),B(`dt`,Ri,M(S(i)(`spacesModule.detail.parentZone.title`)),1)):C(``,!0),e.space.type===S(W).ROOM?(r(),B(`dd`,zi,[P.value?(r(),O(S(We),{key:1,ref_key:`floorSelectRef`,ref:I,modelValue:k.value,"onUpdate:modelValue":n[5]||=e=>k.value=e,placeholder:S(i)(`spacesModule.detail.parentZone.select`),clearable:``,size:`small`,class:`max-w-[250px]`,loading:j.value,onChange:ce,onBlur:oe},{default:m(()=>[(r(!0),B(N,null,o(ie.value,e=>(r(),O(S(q),{key:e.id,label:e.name,value:e.id},{default:m(()=>[A(`div`,Hi,[V(S(L),{icon:e.icon||`mdi:home-floor-1`},null,8,[`icon`]),A(`span`,null,M(e.name),1)])]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`loading`])):(r(),B(`div`,{key:0,class:`flex items-center gap-2 cursor-pointer hover:opacity-70`,onClick:ae},[R.value?(r(),O(S(J),{key:0,type:`success`,size:`small`},{default:m(()=>[A(`div`,Bi,[V(S(L),{icon:R.value.icon||`mdi:home-floor-1`},null,8,[`icon`]),w(` `+M(R.value.name),1)])]),_:1})):(r(),B(`span`,Vi,M(S(i)(`spacesModule.detail.parentZone.none`)),1))]))])):C(``,!0)])]),_:1}),V(Dr,{visible:h.value,"onUpdate:visible":n[6]||=e=>h.value=e,space:e.space,onRolesChanged:le},null,8,[`visible`,`space`]),V(Or,{visible:g.value,"onUpdate:visible":n[7]||=e=>g.value=e,space:e.space,onRolesChanged:H},null,8,[`visible`,`space`]),V(kr,{visible:_.value,"onUpdate:visible":n[8]||=e=>_.value=e,space:e.space,onRolesChanged:ue},null,8,[`visible`,`space`]),V(Ar,{visible:v.value,"onUpdate:visible":n[9]||=e=>v.value=e,space:e.space,onRolesChanged:de},null,8,[`visible`,`space`]),V(Ur,{visible:y.value,"onUpdate:visible":n[10]||=e=>y.value=e,space:e.space,onBindingsChanged:U},null,8,[`visible`,`space`])],64))}}),Wi={class:`flex items-center gap-2`},Gi={class:`font-medium`},Ki={key:0,class:`text-xs text-gray-500`},qi={class:`flex items-center gap-2 justify-end`},Ji={key:0,class:`h-full w-full leading-normal`},Yi={key:1,class:`h-full w-full leading-normal`},Xi={class:`mb-4`},Zi=_({name:`SpaceDevicesSection`,__name:`space-devices-section`,props:{spaceId:{},spaceType:{}},emits:[`open-add-dialog`],setup(t,{expose:n,emit:i}){let a=t,s=i,{t:l}=E(),u=Ae(),{roomSpaces:d}=$e(),{devices:f,loading:p,firstLoadFinished:h,fetchDevices:g,removeDevice:_,reassignDevice:v}=ct(ne(a,`spaceId`),ne(a,`spaceType`)),y=z(!1),b=z(null),x=z(null),ee=z(!1),te=e=>({generic:`mdi:devices`,lighting:`mdi:lightbulb`,switcher:`mdi:toggle-switch`,thermostat:`mdi:thermostat`,sensor:`mdi:gauge`,valve:`mdi:pipe-valve`,media:`mdi:cast`,camera:`mdi:camera`,door:`mdi:door`,lock:`mdi:lock`,window_covering:`mdi:blinds`})[e]||`mdi:devices`,T=()=>{s(`open-add-dialog`)},D=e=>{b.value=e,x.value=null,y.value=!0},j=async()=>{if(b.value){ee.value=!0;try{await v(b.value.id,x.value),y.value=!1,u.success(l(`spacesModule.messages.edited`,{space:b.value.name}))}catch{u.error(l(`spacesModule.messages.saveError`))}finally{ee.value=!1}}},F=e=>{Ee.confirm(l(`spacesModule.detail.devices.confirmRemove`,{name:e.name}),l(`spacesModule.detail.devices.removeHeading`),{confirmButtonText:l(`spacesModule.buttons.yes.title`),cancelButtonText:l(`spacesModule.buttons.no.title`),type:`warning`}).then(async()=>{try{await _(e.id),u.success(l(`spacesModule.detail.devices.removed`,{name:e.name}))}catch{u.error(l(`spacesModule.messages.saveError`))}}).catch(()=>{u.info(l(`spacesModule.detail.devices.removeCanceled`))})};return c(async()=>{h.value||await g()}),n({openAddDialog:T,fetchDevices:g}),(t,n)=>(r(),B(N,null,[e((r(),O(S(Ge),{"element-loading-text":S(l)(`spacesModule.detail.devices.loading`),data:S(f),"table-layout":`fixed`,"row-key":`id`},{empty:m(()=>[S(p)?(r(),B(`div`,Ji,[V(S(P),{class:`h-full w-full`},{icon:m(()=>[V(S(R),{size:80},{primary:m(()=>[V(S(L),{icon:`mdi:devices`})]),secondary:m(()=>[V(S(L),{icon:`mdi:database-refresh`})]),_:1})]),_:1})])):(r(),B(`div`,Yi,[V(S(P),{class:`h-full w-full`},{icon:m(()=>[V(S(R),{size:80},{primary:m(()=>[V(S(L),{icon:`mdi:devices`})]),secondary:m(()=>[V(S(L),{icon:`mdi:information`})]),_:1})]),title:m(()=>[w(M(S(l)(`spacesModule.detail.devices.empty`)),1)]),extra:m(()=>[V(S(k),{type:`primary`,plain:``,onClick:T},{icon:m(()=>[V(S(L),{icon:`mdi:plus`})]),default:m(()=>[w(` `+M(S(l)(`spacesModule.detail.devices.add`)),1)]),_:1})]),_:1})]))]),default:m(()=>[V(S($),{label:S(l)(`spacesModule.onboarding.deviceName`),"min-width":`200`},{default:m(({row:e})=>[A(`div`,Wi,[V(S(fe),{size:32},{default:m(()=>[V(S(L),{icon:te(e.category),class:`w[20px] h[20px]`},null,8,[`icon`])]),_:2},1024),A(`div`,null,[A(`div`,Gi,M(e.name),1),e.description?(r(),B(`div`,Ki,M(e.description),1)):C(``,!0)])])]),_:1},8,[`label`]),V(S($),{label:S(l)(`spacesModule.table.columns.category`),width:`150`},{default:m(({row:e})=>[V(S(J),{size:`small`,type:`info`},{default:m(()=>[w(M(S(l)(`devicesModule.categories.devices.${e.category}`)),1)]),_:2},1024)]),_:1},8,[`label`]),V(S($),{label:S(l)(`devicesModule.table.devices.columns.state.title`),width:`100`,align:`center`},{default:m(({row:e})=>[V(S(J),{type:e.status?.online?`success`:`danger`,size:`small`},{default:m(()=>[w(M(e.status?.online?`Online`:`Offline`),1)]),_:2},1032,[`type`])]),_:1},8,[`label`]),V(S($),{label:``,width:a.spaceType===S(W).ZONE?110:220,align:`right`},{default:m(({row:e})=>[A(`div`,qi,[a.spaceType===S(W).ROOM?(r(),O(S(k),{key:0,type:`warning`,plain:``,size:`small`,onClick:t=>D(e)},{icon:m(()=>[V(S(L),{icon:`mdi:swap-horizontal`})]),default:m(()=>[w(` `+M(S(l)(`spacesModule.detail.devices.reassign`)),1)]),_:1},8,[`onClick`])):C(``,!0),V(S(k),{type:`danger`,plain:``,size:`small`,onClick:t=>F(e)},{icon:m(()=>[V(S(L),{icon:`mdi:close`})]),default:m(()=>[w(` `+M(S(l)(`spacesModule.detail.devices.remove`)),1)]),_:1},8,[`onClick`])])]),_:1},8,[`width`])]),_:1},8,[`element-loading-text`,`data`])),[[S(ge),S(p)]]),V(S(Ne),{modelValue:y.value,"onUpdate:modelValue":n[2]||=e=>y.value=e,title:S(l)(`spacesModule.detail.devices.reassign`),width:`400px`},{footer:m(()=>[V(S(k),{onClick:n[1]||=e=>y.value=!1},{default:m(()=>[w(M(S(l)(`spacesModule.buttons.cancel.title`)),1)]),_:1}),V(S(k),{type:`primary`,loading:ee.value,onClick:j},{default:m(()=>[w(M(S(l)(`spacesModule.buttons.save.title`)),1)]),_:1},8,[`loading`])]),default:m(()=>[A(`p`,Xi,M(S(l)(`spacesModule.detail.devices.selectRoom`)),1),V(S(We),{modelValue:x.value,"onUpdate:modelValue":n[0]||=e=>x.value=e,placeholder:S(l)(`spacesModule.onboarding.selectSpace`),clearable:``,class:`w-full`},{default:m(()=>[(r(!0),B(N,null,o(S(d),e=>(r(),O(S(q),{key:e.id,label:e.name,value:e.id,disabled:e.id===a.spaceId},null,8,[`label`,`value`,`disabled`]))),128))]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`modelValue`,`title`])],64))}}),Qi={class:`flex items-center gap-2`},$i={class:`font-medium`},ea={key:0,class:`text-xs text-gray-500`},ta={class:`flex items-center gap-2 justify-end`},na={key:0,class:`h-full w-full leading-normal`},ra={key:1,class:`h-full w-full leading-normal`},ia={class:`mb-4`},aa=_({name:`SpaceScenesSection`,__name:`space-scenes-section`,props:{spaceId:{}},emits:[`open-add-dialog`],setup(t,{expose:n,emit:i}){let a=t,s=i,{t:l}=E(),u=Ae(),{spaces:d}=$e(),{scenes:f,loading:p,firstLoadFinished:h,fetchScenes:g,reassignScene:_,removeScene:v}=et(ne(a,`spaceId`)),y=z(!1),b=z(null),x=z(null),ee=z(!1),te=e=>ht[e]||ht[ft.GENERIC],T=()=>{s(`open-add-dialog`)},D=e=>{b.value=e,x.value=null,y.value=!0},j=async()=>{if(b.value){ee.value=!0;try{await _(b.value.id,x.value),y.value=!1,u.success(l(`spacesModule.detail.scenes.reassigned`,{name:b.value.name}))}catch{u.error(l(`spacesModule.messages.saveError`))}finally{ee.value=!1}}},F=e=>{Ee.confirm(l(`spacesModule.detail.scenes.confirmRemove`,{name:e.name}),l(`spacesModule.detail.scenes.removeHeading`),{confirmButtonText:l(`spacesModule.buttons.yes.title`),cancelButtonText:l(`spacesModule.buttons.no.title`),type:`warning`}).then(async()=>{try{await v(e.id),u.success(l(`spacesModule.detail.scenes.removed`,{name:e.name}))}catch{u.error(l(`spacesModule.messages.saveError`))}}).catch(()=>{u.info(l(`spacesModule.detail.scenes.removeCanceled`))})};return c(async()=>{h.value||await g()}),n({openAddDialog:T,fetchScenes:g}),(t,n)=>(r(),B(N,null,[e((r(),O(S(Ge),{"element-loading-text":S(l)(`spacesModule.detail.scenes.loading`),data:S(f),"table-layout":`fixed`,"row-key":`id`},{empty:m(()=>[S(p)?(r(),B(`div`,na,[V(S(P),{class:`h-full w-full`},{icon:m(()=>[V(S(R),{size:80},{primary:m(()=>[V(S(L),{icon:`mdi:play-box-multiple`})]),secondary:m(()=>[V(S(L),{icon:`mdi:database-refresh`})]),_:1})]),_:1})])):(r(),B(`div`,ra,[V(S(P),{class:`h-full w-full`},{icon:m(()=>[V(S(R),{size:80},{primary:m(()=>[V(S(L),{icon:`mdi:play-box-multiple`})]),secondary:m(()=>[V(S(L),{icon:`mdi:information`})]),_:1})]),title:m(()=>[w(M(S(l)(`spacesModule.detail.scenes.empty`)),1)]),extra:m(()=>[V(S(k),{type:`primary`,plain:``,onClick:T},{icon:m(()=>[V(S(L),{icon:`mdi:plus`})]),default:m(()=>[w(` `+M(S(l)(`spacesModule.detail.scenes.add`)),1)]),_:1})]),_:1})]))]),default:m(()=>[V(S($),{label:S(l)(`spacesModule.detail.scenes.name`),"min-width":`200`},{default:m(({row:e})=>[A(`div`,Qi,[V(S(fe),{size:32},{default:m(()=>[V(S(L),{icon:te(e.category),class:`w[20px] h[20px]`},null,8,[`icon`])]),_:2},1024),A(`div`,null,[A(`div`,$i,M(e.name),1),e.description?(r(),B(`div`,ea,M(e.description),1)):C(``,!0)])])]),_:1},8,[`label`]),V(S($),{label:S(l)(`spacesModule.detail.scenes.category`),width:`150`},{default:m(({row:e})=>[V(S(J),{size:`small`,type:`info`},{default:m(()=>[w(M(S(l)(`scenes.categories.${e.category}`)),1)]),_:2},1024)]),_:1},8,[`label`]),V(S($),{label:S(l)(`spacesModule.detail.scenes.status`),width:`100`,align:`center`},{default:m(({row:e})=>[V(S(J),{type:e.enabled?`success`:`info`,size:`small`},{default:m(()=>[w(M(e.enabled?S(l)(`spacesModule.detail.scenes.enabled`):S(l)(`spacesModule.detail.scenes.disabled`)),1)]),_:2},1032,[`type`])]),_:1},8,[`label`]),V(S($),{label:``,width:`220`,align:`right`},{default:m(({row:e})=>[A(`div`,ta,[V(S(k),{type:`warning`,plain:``,size:`small`,onClick:t=>D(e)},{icon:m(()=>[V(S(L),{icon:`mdi:swap-horizontal`})]),default:m(()=>[w(` `+M(S(l)(`spacesModule.detail.scenes.reassign`)),1)]),_:1},8,[`onClick`]),V(S(k),{type:`danger`,plain:``,size:`small`,onClick:t=>F(e)},{icon:m(()=>[V(S(L),{icon:`mdi:close`})]),default:m(()=>[w(` `+M(S(l)(`spacesModule.detail.scenes.remove`)),1)]),_:1},8,[`onClick`])])]),_:1})]),_:1},8,[`element-loading-text`,`data`])),[[S(ge),S(p)]]),V(S(Ne),{modelValue:y.value,"onUpdate:modelValue":n[2]||=e=>y.value=e,title:S(l)(`spacesModule.detail.scenes.reassign`),width:`400px`},{footer:m(()=>[V(S(k),{onClick:n[1]||=e=>y.value=!1},{default:m(()=>[w(M(S(l)(`spacesModule.buttons.cancel.title`)),1)]),_:1}),V(S(k),{type:`primary`,loading:ee.value,onClick:j},{default:m(()=>[w(M(S(l)(`spacesModule.buttons.save.title`)),1)]),_:1},8,[`loading`])]),default:m(()=>[A(`p`,ia,M(S(l)(`spacesModule.detail.scenes.selectSpace`)),1),V(S(We),{modelValue:x.value,"onUpdate:modelValue":n[0]||=e=>x.value=e,placeholder:S(l)(`spacesModule.onboarding.selectSpace`),clearable:``,class:`w-full`},{default:m(()=>[(r(!0),B(N,null,o(S(d),e=>(r(),O(S(q),{key:e.id,label:e.name,value:e.id,disabled:e.id===a.spaceId},null,8,[`label`,`value`,`disabled`]))),128))]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`modelValue`,`title`])],64))}}),oa={class:`flex items-center gap-2`},sa={class:`block`},ca={key:1,class:`font-medium`},la={class:`flex items-center gap-2 justify-end`},ua={key:0,class:`h-full w-full leading-normal`},da={key:1,class:`h-full w-full leading-normal`},fa={class:`mb-4`},pa=_({name:`SpaceDisplaysSection`,__name:`space-displays-section`,props:{spaceId:{}},emits:[`open-add-dialog`],setup(t,{expose:n,emit:i}){let a=t,s=i,{t:l}=E(),u=Ae(),{roomSpaces:d}=$e(),{displays:f,loading:p,fetchDisplays:h,removeDisplay:g,reassignDisplay:_}=rt(ne(a,`spaceId`)),v=z(!1),y=z(null),b=z(null),x=z(!1),C=()=>{s(`open-add-dialog`)},ee=e=>{y.value=e,b.value=null,v.value=!0},te=async()=>{if(y.value){x.value=!0;try{await _(y.value.id,b.value),v.value=!1,u.success(l(`spacesModule.messages.edited`,{space:y.value.name||y.value.macAddress}))}catch{u.error(l(`spacesModule.messages.saveError`))}finally{x.value=!1}}},T=e=>{let t=e.name||e.macAddress;Ee.confirm(l(`spacesModule.detail.displays.confirmRemove`,{name:t}),l(`spacesModule.detail.displays.removeHeading`),{confirmButtonText:l(`spacesModule.buttons.yes.title`),cancelButtonText:l(`spacesModule.buttons.no.title`),type:`warning`}).then(async()=>{try{await g(e.id),u.success(l(`spacesModule.detail.displays.removed`,{name:t}))}catch{u.error(l(`spacesModule.messages.saveError`))}}).catch(()=>{u.info(l(`spacesModule.detail.displays.removeCanceled`))})};return c(async()=>{await h()}),n({openAddDialog:C,fetchDisplays:h}),(t,n)=>(r(),B(N,null,[e((r(),O(S(Ge),{"element-loading-text":S(l)(`spacesModule.detail.displays.loading`),data:S(f),"table-layout":`fixed`,"row-key":`id`},{empty:m(()=>[S(p)?(r(),B(`div`,ua,[V(S(P),{class:`h-full w-full`},{icon:m(()=>[V(S(R),{size:80},{primary:m(()=>[V(S(L),{icon:`mdi:monitor`})]),secondary:m(()=>[V(S(L),{icon:`mdi:database-refresh`})]),_:1})]),_:1})])):(r(),B(`div`,da,[V(S(P),{class:`h-full w-full`},{icon:m(()=>[V(S(R),{size:80},{primary:m(()=>[V(S(L),{icon:`mdi:monitor`})]),secondary:m(()=>[V(S(L),{icon:`mdi:information`})]),_:1})]),title:m(()=>[w(M(S(l)(`spacesModule.detail.displays.empty`)),1)]),extra:m(()=>[V(S(k),{type:`primary`,plain:``,onClick:C},{icon:m(()=>[V(S(L),{icon:`mdi:plus`})]),default:m(()=>[w(` `+M(S(l)(`spacesModule.detail.displays.add`)),1)]),_:1})]),_:1})]))]),default:m(()=>[V(S($),{label:S(l)(`spacesModule.onboarding.displayName`),"min-width":`200`},{default:m(({row:e})=>[A(`div`,oa,[V(S(fe),{size:32},{default:m(()=>[V(S(L),{icon:`mdi:monitor`,class:`w[20px] h[20px]`})]),_:1}),A(`div`,null,[e.name?(r(),B(N,{key:0},[A(`strong`,sa,M(e.name),1),V(S(Te),{size:`small`,class:`block leading-4`,truncated:``},{default:m(()=>[w(M(e.macAddress),1)]),_:2},1024)],64)):(r(),B(`div`,ca,M(e.macAddress),1))])])]),_:1},8,[`label`]),V(S($),{label:S(l)(`displaysModule.table.columns.state.title`),width:`100`,align:`center`},{default:m(({row:e})=>[V(S(J),{type:e.online?`success`:`danger`,size:`small`},{default:m(()=>[w(M(e.online?`Online`:`Offline`),1)]),_:2},1032,[`type`])]),_:1},8,[`label`]),V(S($),{label:``,width:`220`,align:`right`},{default:m(({row:e})=>[A(`div`,la,[V(S(k),{type:`warning`,plain:``,size:`small`,onClick:t=>ee(e)},{icon:m(()=>[V(S(L),{icon:`mdi:swap-horizontal`})]),default:m(()=>[w(` `+M(S(l)(`spacesModule.detail.displays.reassign`)),1)]),_:1},8,[`onClick`]),V(S(k),{type:`danger`,plain:``,size:`small`,onClick:t=>T(e)},{icon:m(()=>[V(S(L),{icon:`mdi:close`})]),default:m(()=>[w(` `+M(S(l)(`spacesModule.detail.displays.remove`)),1)]),_:1},8,[`onClick`])])]),_:1})]),_:1},8,[`element-loading-text`,`data`])),[[S(ge),S(p)]]),V(S(Ne),{modelValue:v.value,"onUpdate:modelValue":n[2]||=e=>v.value=e,title:S(l)(`spacesModule.detail.displays.reassign`),width:`400px`},{footer:m(()=>[V(S(k),{onClick:n[1]||=e=>v.value=!1},{default:m(()=>[w(M(S(l)(`spacesModule.buttons.cancel.title`)),1)]),_:1}),V(S(k),{type:`primary`,loading:x.value,onClick:te},{default:m(()=>[w(M(S(l)(`spacesModule.buttons.save.title`)),1)]),_:1},8,[`loading`])]),default:m(()=>[A(`p`,fa,M(S(l)(`spacesModule.detail.displays.selectRoom`)),1),V(S(We),{modelValue:b.value,"onUpdate:modelValue":n[0]||=e=>b.value=e,placeholder:S(l)(`spacesModule.onboarding.selectSpace`),clearable:``,class:`w-full`},{default:m(()=>[(r(!0),B(N,null,o(S(d),e=>(r(),O(S(q),{key:e.id,label:e.name,value:e.id,disabled:e.id===a.spaceId},null,8,[`label`,`value`,`disabled`]))),128))]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`modelValue`,`title`])],64))}}),ma={key:0,class:`h-full w-full leading-normal`},ha={key:1,class:`h-full w-full leading-normal`},ga={class:`flex items-center gap-2`},_a={class:`block text-sm`},va={key:1,class:`font-medium`},ya={key:1,class:`text-gray-400 text-sm`},ba=_({name:`SpaceAddDeviceDialog`,__name:`space-add-device-dialog`,props:{visible:{type:Boolean},spaceId:{},spaceType:{}},emits:[`update:visible`,`device-added`],setup(e,{emit:t}){let n=e,i=t,{t:a}=E(),o=Ae(),{devices:s}=dt(),{findById:c}=$e(),l=z(``),u=z(null),{devices:d,addDevice:f}=ct(F(()=>n.spaceId),F(()=>n.spaceType)),p=F(()=>new Set(d.value.map(e=>e.id))),h=F(()=>s.value.filter(e=>n.spaceType===W.ZONE?!p.value.has(e.id):e.roomId!==n.spaceId).sort((e,t)=>e.name.localeCompare(t.name))),g=F(()=>(l.value.trim()?h.value.filter(e=>{let t=l.value.toLowerCase();return e.name.toLowerCase().includes(t)||e.description?.toLowerCase().includes(t)}):h.value).sort((e,t)=>e.name.localeCompare(t.name))),_=e=>({generic:`mdi:devices`,lighting:`mdi:lightbulb`,switcher:`mdi:toggle-switch`,thermostat:`mdi:thermostat`,sensor:`mdi:gauge`,valve:`mdi:pipe-valve`,media:`mdi:cast`,camera:`mdi:camera`,door:`mdi:door`,lock:`mdi:lock`,window_covering:`mdi:blinds`})[e.category]||`mdi:devices`,v=e=>c(e)?.name||`Unknown`,y=F({get:()=>n.visible,set:e=>i(`update:visible`,e)}),x=()=>{y.value=!1,l.value=``,u.value=null},ee=async e=>{u.value=e.id;try{await f(e.id),o.success(a(`spacesModule.messages.edited`,{space:e.name})),i(`device-added`)}catch{o.error(a(`spacesModule.messages.saveError`))}finally{u.value=null}};return b(()=>n.visible,e=>{e||(l.value=``,u.value=null)}),(e,t)=>(r(),O(S(Ne),{modelValue:y.value,"onUpdate:modelValue":t[1]||=e=>y.value=e,title:S(a)(`spacesModule.detail.devices.selectDevice`),class:`max-w-[700px]`,onClose:x},{footer:m(()=>[V(S(k),{onClick:x},{default:m(()=>[w(M(S(a)(`spacesModule.buttons.close.title`)),1)]),_:1})]),default:m(()=>[V(S(we),{modelValue:l.value,"onUpdate:modelValue":t[0]||=e=>l.value=e,placeholder:S(a)(`devicesModule.fields.devices.search.placeholder`),clearable:``,class:`mb-4`},{prefix:m(()=>[V(S(L),{icon:`mdi:magnify`})]),_:1},8,[`modelValue`,`placeholder`]),V(S(Ge),{data:g.value,"max-height":`400px`,"table-layout":`fixed`,"row-key":`id`},{empty:m(()=>[h.value.length===0?(r(),B(`div`,ma,[V(S(P),{class:`h-full w-full`},{icon:m(()=>[V(S(R),{size:80},{primary:m(()=>[V(S(L),{icon:`mdi:devices`})]),secondary:m(()=>[V(S(L),{icon:`mdi:information`})]),_:1})]),title:m(()=>[w(M(S(a)(`spacesModule.detail.devices.noAvailable`)),1)]),_:1})])):l.value.trim()&&g.value.length===0?(r(),B(`div`,ha,[V(S(P),{class:`h-full w-full`},{icon:m(()=>[V(S(R),{size:80},{primary:m(()=>[V(S(L),{icon:`mdi:devices`})]),secondary:m(()=>[V(S(L),{icon:`mdi:filter-multiple`})]),_:1})]),title:m(()=>[V(S(Te),{class:`block`},{default:m(()=>[w(M(S(a)(`devicesModule.texts.devices.noFilteredDevices`)),1)]),_:1})]),_:1})])):C(``,!0)]),default:m(()=>[V(S($),{label:S(a)(`spacesModule.onboarding.deviceName`),"min-width":`200`},{default:m(({row:e})=>[A(`div`,ga,[V(S(fe),{size:32},{default:m(()=>[V(S(L),{icon:_(e),class:`w[20px] h[20px]`},null,8,[`icon`])]),_:2},1024),A(`div`,null,[e.description?(r(),B(N,{key:0},[A(`strong`,_a,M(e.name),1),V(S(Te),{size:`small`,class:`block leading-4`,truncated:``},{default:m(()=>[w(M(e.description),1)]),_:2},1024)],64)):(r(),B(`div`,va,M(e.name),1))])])]),_:1},8,[`label`]),V(S($),{label:S(a)(`spacesModule.onboarding.assignedSpace`),width:`150`},{default:m(({row:e})=>[e.roomId?(r(),O(S(J),{key:0,size:`small`,type:`warning`},{default:m(()=>[w(M(v(e.roomId)),1)]),_:2},1024)):(r(),B(`span`,ya,`-`))]),_:1},8,[`label`]),V(S($),{label:``,width:`150`,align:`right`},{default:m(({row:e})=>[V(S(k),{type:n.spaceType===S(W).ROOM&&e.roomId?`warning`:`default`,plain:``,size:`small`,loading:u.value===e.id,onClick:t=>ee(e)},{icon:m(()=>[V(S(L),{icon:n.spaceType===S(W).ROOM&&e.roomId?`mdi:swap-horizontal`:`mdi:plus`},null,8,[`icon`])]),default:m(()=>[w(` `+M(n.spaceType===S(W).ROOM&&e.roomId?S(a)(`spacesModule.detail.devices.reassign`):S(a)(`spacesModule.detail.devices.assign`)),1)]),_:2},1032,[`type`,`loading`,`onClick`])]),_:1})]),_:1},8,[`data`])]),_:1},8,[`modelValue`,`title`]))}}),xa={key:0,class:`h-full w-full leading-normal`},Sa={key:1,class:`h-full w-full leading-normal`},Ca={class:`flex items-center gap-2`},wa={class:`block text-sm`},Ta={key:1,class:`font-medium`},Ea={key:1,class:`text-gray-400 text-sm`},Da=_({name:`SpaceAddSceneDialog`,__name:`space-add-scene-dialog`,props:{visible:{type:Boolean},spaceId:{}},emits:[`update:visible`,`scene-added`],setup(e,{emit:t}){let n=e,i=t,{t:a}=E(),o=Ae(),{scenes:s,loaded:l,fetchScenes:u}=mt(),{editScene:d}=pt(),{findById:f}=$e(),p=z(``),h=z(null),g=F(()=>s.value.filter(e=>e.draft?!1:e.primarySpaceId!==n.spaceId).sort((e,t)=>e.name.localeCompare(t.name))),_=F(()=>(p.value.trim()?g.value.filter(e=>{let t=p.value.toLowerCase();return e.name.toLowerCase().includes(t)||e.description?.toLowerCase().includes(t)}):g.value).sort((e,t)=>e.name.localeCompare(t.name))),v=e=>ht[e.category]||ht[ft.GENERIC],y=e=>f(e)?.name||`Unknown`,x=F({get:()=>n.visible,set:e=>i(`update:visible`,e)}),ee=()=>{x.value=!1,p.value=``,h.value=null},te=async e=>{h.value=e.id;try{await d({id:e.id,data:{primarySpaceId:n.spaceId}}),o.success(a(`spacesModule.detail.scenes.assigned`,{name:e.name})),i(`scene-added`)}catch{o.error(a(`spacesModule.messages.saveError`))}finally{h.value=null}};return c(async()=>{l.value||await u()}),b(()=>n.visible,e=>{e||(p.value=``,h.value=null)}),(e,t)=>(r(),O(S(Ne),{modelValue:x.value,"onUpdate:modelValue":t[1]||=e=>x.value=e,title:S(a)(`spacesModule.detail.scenes.selectScene`),class:`max-w-[700px]`,onClose:ee},{footer:m(()=>[V(S(k),{onClick:ee},{default:m(()=>[w(M(S(a)(`spacesModule.buttons.close.title`)),1)]),_:1})]),default:m(()=>[V(S(we),{modelValue:p.value,"onUpdate:modelValue":t[0]||=e=>p.value=e,placeholder:S(a)(`spacesModule.detail.scenes.searchPlaceholder`),clearable:``,class:`mb-4`},{prefix:m(()=>[V(S(L),{icon:`mdi:magnify`})]),_:1},8,[`modelValue`,`placeholder`]),V(S(Ge),{data:_.value,"max-height":`400px`,"table-layout":`fixed`,"row-key":`id`},{empty:m(()=>[g.value.length===0?(r(),B(`div`,xa,[V(S(P),{class:`h-full w-full`},{icon:m(()=>[V(S(R),{size:80},{primary:m(()=>[V(S(L),{icon:`mdi:play-box-multiple`})]),secondary:m(()=>[V(S(L),{icon:`mdi:information`})]),_:1})]),title:m(()=>[w(M(S(a)(`spacesModule.detail.scenes.noAvailable`)),1)]),_:1})])):p.value.trim()&&_.value.length===0?(r(),B(`div`,Sa,[V(S(P),{class:`h-full w-full`},{icon:m(()=>[V(S(R),{size:80},{primary:m(()=>[V(S(L),{icon:`mdi:play-box-multiple`})]),secondary:m(()=>[V(S(L),{icon:`mdi:filter-multiple`})]),_:1})]),title:m(()=>[V(S(Te),{class:`block`},{default:m(()=>[w(M(S(a)(`spacesModule.detail.scenes.noFilteredScenes`)),1)]),_:1})]),_:1})])):C(``,!0)]),default:m(()=>[V(S($),{label:S(a)(`spacesModule.detail.scenes.name`),"min-width":`200`},{default:m(({row:e})=>[A(`div`,Ca,[V(S(fe),{size:32},{default:m(()=>[V(S(L),{icon:v(e),class:`w[20px] h[20px]`},null,8,[`icon`])]),_:2},1024),A(`div`,null,[e.description?(r(),B(N,{key:0},[A(`strong`,wa,M(e.name),1),V(S(Te),{size:`small`,class:`block leading-4`,truncated:``},{default:m(()=>[w(M(e.description),1)]),_:2},1024)],64)):(r(),B(`div`,Ta,M(e.name),1))])])]),_:1},8,[`label`]),V(S($),{label:S(a)(`spacesModule.detail.scenes.assignedSpace`),width:`150`},{default:m(({row:e})=>[e.primarySpaceId?(r(),O(S(J),{key:0,size:`small`,type:`warning`},{default:m(()=>[w(M(y(e.primarySpaceId)),1)]),_:2},1024)):(r(),B(`span`,Ea,`-`))]),_:1},8,[`label`]),V(S($),{label:``,width:`150`,align:`right`},{default:m(({row:e})=>[V(S(k),{type:e.primarySpaceId?`warning`:`default`,plain:``,size:`small`,loading:h.value===e.id,onClick:t=>te(e)},{icon:m(()=>[V(S(L),{icon:e.primarySpaceId?`mdi:swap-horizontal`:`mdi:plus`},null,8,[`icon`])]),default:m(()=>[w(` `+M(e.primarySpaceId?S(a)(`spacesModule.detail.scenes.reassign`):S(a)(`spacesModule.detail.scenes.assign`)),1)]),_:2},1032,[`type`,`loading`,`onClick`])]),_:1})]),_:1},8,[`data`])]),_:1},8,[`modelValue`,`title`]))}}),Oa={key:0,class:`h-full w-full leading-normal`},ka={key:1,class:`h-full w-full leading-normal`},Aa={class:`flex items-center gap-2`},ja={class:`block`},Ma={key:1,class:`font-medium`},Na={key:1,class:`text-gray-400 text-sm`},Pa=_({name:`SpaceAddDisplayDialog`,__name:`space-add-display-dialog`,props:{visible:{type:Boolean},spaceId:{}},emits:[`update:visible`,`display-added`],setup(e,{emit:t}){let n=e,i=t,{t:a}=E(),o=Ae(),{displays:s}=Qe(),{findById:c}=$e(),l=z(``),u=z(null),{reassignDisplay:d}=rt(F(()=>n.spaceId)),f=F(()=>s.value.filter(e=>e.role===`room`?e.roomId!==n.spaceId:!1).sort((e,t)=>{let n=e.name||e.macAddress,r=t.name||t.macAddress;return n.localeCompare(r)})),p=F(()=>(l.value.trim()?f.value.filter(e=>{let t=l.value.toLowerCase();return(e.name||``).toLowerCase().includes(t)||e.macAddress.toLowerCase().includes(t)}):f.value).sort((e,t)=>{let n=e.name||e.macAddress,r=t.name||t.macAddress;return n.localeCompare(r)})),h=e=>c(e)?.name||`Unknown`,g=F({get:()=>n.visible,set:e=>i(`update:visible`,e)}),_=()=>{g.value=!1,l.value=``,u.value=null},v=async e=>{u.value=e.id;try{await d(e.id,n.spaceId),o.success(a(`spacesModule.messages.edited`,{space:e.name||e.macAddress})),i(`display-added`)}catch{o.error(a(`spacesModule.messages.saveError`))}finally{u.value=null}};return b(()=>n.visible,e=>{e||(l.value=``,u.value=null)}),(e,t)=>(r(),O(S(Ne),{modelValue:g.value,"onUpdate:modelValue":t[1]||=e=>g.value=e,title:S(a)(`spacesModule.detail.displays.selectDisplay`),class:`max-w-[700px]`,onClose:_},{footer:m(()=>[V(S(k),{onClick:_},{default:m(()=>[w(M(S(a)(`spacesModule.buttons.close.title`)),1)]),_:1})]),default:m(()=>[V(S(we),{modelValue:l.value,"onUpdate:modelValue":t[0]||=e=>l.value=e,placeholder:S(a)(`displaysModule.fields.search.placeholder`),clearable:``,class:`mb-4`},{prefix:m(()=>[V(S(L),{icon:`mdi:magnify`})]),_:1},8,[`modelValue`,`placeholder`]),V(S(Ge),{data:p.value,"max-height":`400px`,"table-layout":`fixed`,"row-key":`id`},{empty:m(()=>[f.value.length===0?(r(),B(`div`,Oa,[V(S(P),{class:`h-full w-full`},{icon:m(()=>[V(S(R),{size:80},{primary:m(()=>[V(S(L),{icon:`mdi:monitor`})]),secondary:m(()=>[V(S(L),{icon:`mdi:information`})]),_:1})]),title:m(()=>[w(M(S(a)(`spacesModule.detail.displays.noAvailable`)),1)]),_:1})])):l.value.trim()&&p.value.length===0?(r(),B(`div`,ka,[V(S(P),{class:`h-full w-full`},{icon:m(()=>[V(S(R),{size:80},{primary:m(()=>[V(S(L),{icon:`mdi:monitor`})]),secondary:m(()=>[V(S(L),{icon:`mdi:filter-multiple`})]),_:1})]),title:m(()=>[V(S(Te),{class:`block`},{default:m(()=>[w(M(S(a)(`displaysModule.texts.noFilteredDisplays`)),1)]),_:1})]),_:1})])):C(``,!0)]),default:m(()=>[V(S($),{label:S(a)(`spacesModule.onboarding.displayName`),"min-width":`200`},{default:m(({row:e})=>[A(`div`,Aa,[V(S(fe),{size:32},{default:m(()=>[V(S(L),{icon:`mdi:monitor`,class:`w[20px] h[20px]`})]),_:1}),A(`div`,null,[e.name?(r(),B(N,{key:0},[A(`strong`,ja,M(e.name),1),V(S(Te),{size:`small`,class:`block leading-4`,truncated:``},{default:m(()=>[w(M(e.macAddress),1)]),_:2},1024)],64)):(r(),B(`div`,Ma,M(e.macAddress),1))])])]),_:1},8,[`label`]),V(S($),{label:S(a)(`spacesModule.onboarding.assignedSpace`),width:`150`},{default:m(({row:e})=>[e.roomId?(r(),O(S(J),{key:0,size:`small`,type:`warning`},{default:m(()=>[w(M(h(e.roomId)),1)]),_:2},1024)):(r(),B(`span`,Na,`-`))]),_:1},8,[`label`]),V(S($),{label:``,width:`150`,align:`right`},{default:m(({row:e})=>[V(S(k),{type:e.roomId?`warning`:`default`,plain:``,size:`small`,loading:u.value===e.id,onClick:t=>v(e)},{icon:m(()=>[V(S(L),{icon:e.roomId?`mdi:swap-horizontal`:`mdi:plus`},null,8,[`icon`])]),default:m(()=>[w(` `+M(e.roomId?S(a)(`spacesModule.detail.displays.reassign`):S(a)(`spacesModule.detail.displays.assign`)),1)]),_:2},1032,[`type`,`loading`,`onClick`])]),_:1})]),_:1},8,[`data`])]),_:1},8,[`modelValue`,`title`]))}});export{aa as a,pn as c,kt as d,pa as i,Wt as l,Da as n,Zi as o,ba as r,Ui as s,Pa as t,Mt as u};
@@ -1 +0,0 @@
1
- import"./chunk-DECur_0Z.js";import{Nr as e,Xr as t,ci as n,d as r,fi as i,hi as a,mr as o,n as s,si as c,ui as l}from"./icon-with-child-DmQ_XhQy.js";import{$n as u,A as d,Fn as f,Jn as p,Mn as m,Nn as h,Pn as g,Qn as _,S as v,T as y,Un as b,Vn as x,Vr as S,Wn as C,_ as w,_r as T,an as E,er as D,f as O,lr as k,m as A,n as j,nr as M,pn as N,qn as P,tr as F,u as I,va as L,wn as R,wt as z,y as B}from"./common-DyDAwGBz.js";import{a as V,i as ee,n as H,o as U,r as W}from"./keys-Cm97UJHM.js";import{t as te}from"./useDevices-oOyjupML.js";import{n as ne}from"./logs-entries.transformers-B17JQgGx.js";var re=`devices`,G=`devices-module`,ie=`DevicesModule.`,ae=function(e){return e.DEVICE_CREATED=`DevicesModule.Device.Created`,e.DEVICE_UPDATED=`DevicesModule.Device.Updated`,e.DEVICE_DELETED=`DevicesModule.Device.Deleted`,e.DEVICE_CONTROL_CREATED=`DevicesModule.DeviceControl.Created`,e.DEVICE_CONTROL_DELETED=`DevicesModule.DeviceControl.Deleted`,e.CHANNEL_CREATED=`DevicesModule.Channel.Created`,e.CHANNEL_UPDATED=`DevicesModule.Channel.Updated`,e.CHANNEL_DELETED=`DevicesModule.Channel.Deleted`,e.CHANNEL_CONTROL_CREATED=`DevicesModule.ChannelControl.Created`,e.CHANNEL_CONTROL_DELETED=`DevicesModule.ChannelControl.Deleted`,e.CHANNEL_PROPERTY_CREATED=`DevicesModule.ChannelProperty.Created`,e.CHANNEL_PROPERTY_UPDATED=`DevicesModule.ChannelProperty.Updated`,e.CHANNEL_PROPERTY_DELETED=`DevicesModule.ChannelProperty.Deleted`,e.CHANNEL_PROPERTY_SET=`DevicesModule.ChannelProperty.Set`,e.CHANNEL_PROPERTY_VALUE_SET=`DevicesModule.ChannelProperty.ValueSet`,e}({}),K=function(e){return e.NONE=`none`,e.WORKING=`working`,e.ERROR=`error`,e.OK=`ok`,e}({}),oe={DEVICES:`devices_module-devices`,DEVICES_ADD:`devices_module-devices_add`,DEVICES_EDIT:`devices_module-devices_edit`,DEVICE:`devices_module-device`,DEVICE_EDIT:`devices_module-device_edit`,DEVICE_CONTROL:`devices_module-device_control`,DEVICE_ADD_CHANNEL:`devices_module-device_add_channel`,DEVICE_EDIT_CHANNEL:`devices_module-device_edit_channel`,DEVICE_CHANNEL_ADD_PROPERTY:`devices_module-device_channel_add_property`,DEVICE_CHANNEL_EDIT_PROPERTY:`devices_module-device_channel_edit_property`,CHANNELS:`devices_module-channels`,CHANNELS_ADD:`devices_module-channels_add`,CHANNELS_EDIT:`devices_module-channels_edit`,CHANNEL:`devices_module-channel`,CHANNEL_EDIT:`devices_module-channel_edit`,CHANNEL_ADD_PROPERTY:`devices_module-channel_add_property`,CHANNEL_EDIT_PROPERTY:`devices_module-channel_edit_property`},q=class extends Error{exception;constructor(e,t=null){super(e),this.name=`DevicesException`,this.exception=t}},J=class extends q{code;constructor(e,t=null,n=null){super(e,n),this.name=`DevicesApiException`,this.code=t}},Y=class extends q{constructor(e,t=null){super(e,t),this.name=`DevicesValidationException`}},se=()=>{let e=d(),{enabled:t}=E(),n=[`channelPropertyAddForm`,`channelPropertyEditForm`],r=[`channelPropertySchema`,`channelPropertyAddFormSchema`,`channelPropertyEditFormSchema`,`channelPropertyCreateReqSchema`,`channelPropertyUpdateReqSchema`],i=o(()=>e.getPlugins().filter(e=>e.modules===void 0||e.modules.includes(`devices-module`)?(e.elements??[]).some(e=>{if(!(e.modules===void 0||e.modules.includes(`devices-module`)))return!1;let t=n.length===0||!!e.components&&n.some(t=>e.components&&t in e.components),i=r.length===0||!!e.schemas&&r.some(t=>e.schemas&&t in e.schemas);return t||i}):!1));return{plugins:i,options:o(()=>N(i.value.flatMap(e=>(e.elements??[]).filter(e=>e.modules===void 0||e.modules.includes(`devices-module`)).map(n=>({value:n.type,label:n.name?.trim()?n.name:e.name,disabled:!t(e.type)}))),[e=>e.label],[`asc`])),getByName:e=>i.value.find(t=>t.type===e),getByType:e=>i.value.find(t=>(t.elements??[]).some(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`devices-module`)))),getElement:e=>{for(let t of i.value){let n=(t.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`devices-module`)));if(n)return n}}}},ce=()=>{let e=d(),{enabled:t}=E(),n=[`channelAddForm`,`channelEditForm`],r=[`channelSchema`,`channelAddFormSchema`,`channelEditFormSchema`,`channelCreateReqSchema`,`channelUpdateReqSchema`],i=o(()=>e.getPlugins().filter(e=>e.modules===void 0||e.modules.includes(`devices-module`)?(e.elements??[]).some(e=>{if(!(e.modules===void 0||e.modules.includes(`devices-module`)))return!1;let t=n.length===0||!!e.components&&n.some(t=>e.components&&t in e.components),i=r.length===0||!!e.schemas&&r.some(t=>e.schemas&&t in e.schemas);return t||i}):!1));return{plugins:i,options:o(()=>N(i.value.flatMap(e=>(e.elements??[]).filter(e=>e.modules===void 0||e.modules.includes(`devices-module`)).map(n=>({value:n.type,label:n.name?.trim()?n.name:e.name,disabled:!t(e.type)}))),[e=>e.label],[`asc`])),getByName:e=>i.value.find(t=>t.type===e),getByType:e=>i.value.find(t=>(t.elements??[]).some(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`devices-module`)))),getElement:e=>{for(let t of i.value){let n=(t.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`devices-module`)));if(n)return n}}}},le=({id:e})=>{let t=y().getStore(W),{data:n,semaphore:r}=L(t);return{channel:o(()=>e===null?null:n.value[e]??null),isLoading:o(()=>r.value.fetching.item.includes(e)?!0:(n.value[e]??null)===null?r.value.fetching.items.includes(`all`):!1),fetchChannel:async()=>{(n.value[e]??null)?.draft||await t.get({id:e})}}},ue=(e={})=>{let{deviceId:t}=e,n=y().getStore(W),{firstLoad:r,semaphore:i}=L(n),a=t===void 0?void 0:typeof t==`string`?o(()=>t):t;return{channels:o(()=>n.findAll().filter(e=>!a?.value||e.device===a.value)),areLoading:o(()=>i.value.fetching.items.includes(a?.value??`all`)?!0:r.value.includes(a?.value??`all`)?!1:i.value.fetching.items.includes(a?.value??`all`)),loaded:o(()=>r.value.includes(a?.value??`all`)),fetchChannels:async()=>{await n.fetch({deviceId:a?.value})}}},de=C({search:P().optional(),types:g(P()),state:m([`all`,`offline`,`online`]).default(`all`),states:g(x(k)),categories:g(x(_)),enabled:m([`all`,`enabled`,`disabled`]).default(`all`),validation:m([`all`,`valid`,`invalid`]).default(`all`)}),fe=C({search:P().optional(),devices:g(P()),categories:g(x(u))}),pe=C({search:P().optional(),channels:g(P()),categories:g(x(D)),permissions:g(x(M)),dataTypes:g(x(F))}),X=R(),Z={search:void 0,devices:[],categories:[]},me={by:`name`,dir:`asc`},he=(e={})=>{let{deviceId:n}=e,r=y().getStore(W),{firstLoad:i,semaphore:a}=L(r),{filters:s,sort:c,pagination:u,reset:d}=O({key:`${G}:channels:list`,filters:{schema:fe,defaults:Z},sort:{defaults:[me]},pagination:{defaults:{page:1,size:10}},syncQuery:!0,version:1}),f=o(()=>s.value.search!==Z.search||!(0,X.isEqual)(s.value.devices,Z.devices)||!(0,X.isEqual)(s.value.categories,Z.categories)),p=l(u.value.size||10),m=l(u.value.page||1),h=l(c.value.length>0?c.value[0]?.by:void 0),g=l(c.value.length>0?c.value[0]?.dir??null:null),_=o(()=>N(r.findAll().filter(e=>!n||e.device===n).filter(e=>!e.draft&&(!s.value.search||e.id.toLowerCase().includes(s.value.search.toLowerCase())||e.name.toLowerCase().includes(s.value.search.toLowerCase())||e.description?.toLowerCase().includes(s.value.search.toLowerCase())||e.identifier?.toLowerCase().includes(s.value.search.toLowerCase()))&&(s.value.categories.length===0||s.value.categories.includes(e.category))&&(s.value.devices.length===0||s.value.devices.includes(e.device))),[e=>e[h.value]??``],[g.value===`asc`?`asc`:`desc`])),v=o(()=>{let e=(m.value-1)*p.value,t=e+p.value;return _.value.slice(e,t)}),b=async()=>{await r.fetch({deviceId:n})},x=o(()=>a.value.fetching.items.includes(n??`all`)?!0:i.value.includes(n??`all`)?!1:a.value.fetching.items.includes(n??`all`)),S=o(()=>i.value.includes(n??`all`)),C=o(()=>r.findAll().filter(e=>!n||e.device===n).filter(e=>!e.draft).length);return t(()=>u.value,e=>{m.value=e.page??1,p.value=e.size??10},{deep:!0}),t(()=>m.value,e=>{u.value.page=e}),t(()=>p.value,e=>{u.value.size=e}),t(()=>g.value,e=>{h.value===void 0||e===null?c.value=[]:c.value=[{by:h.value,dir:e}]}),t(()=>h.value,e=>{e===void 0?c.value=[]:c.value=[{by:e,dir:g.value}]}),{channels:_,channelsPaginated:v,totalRows:C,areLoading:x,loaded:S,fetchChannels:b,filters:s,filtersActive:f,paginateSize:p,paginatePage:m,sortBy:h,sortDir:g,resetFilter:d}},ge=()=>{let{t:e}=r(),t=w(),n=y().getStore(W),i=e=>n.findById(e);return{remove:async r=>{let a=i(r);if(a===null)throw new q(`Something went wrong, channel can't be loaded`);S.confirm(e(`devicesModule.texts.channels.confirmRemove`,{channel:a.name}),e(`devicesModule.headings.channels.remove`),{confirmButtonText:e(`devicesModule.buttons.yes.title`),cancelButtonText:e(`devicesModule.buttons.no.title`),type:`warning`}).then(async()=>{try{await n.remove({id:a.id}),t.success(e(`devicesModule.messages.channels.removed`,{channel:a.name}))}catch(n){if(n instanceof J&&n.code===404){let n=e(`devicesModule.messages.channels.notFound`,{channel:a.name});t.error(n)}else if(n instanceof J&&n.code===422)t.error(n.message);else{let n=e(`devicesModule.messages.channels.notRemoved`,{channel:a.name});t.error(n)}}}).catch(()=>{t.info(e(`devicesModule.messages.channels.removeCanceled`,{channel:a.name}))})}}},_e=({id:e})=>{let t=y().getStore(W);return{icon:o(()=>{switch(t.findById(e)?.category){default:return`mdi:chip`}})}},ve={air_quality:{category:`air_quality`,constraints:{oneOrMoreOf:[[`aqi`,`level`]]},properties:{aqi:{category:`aqi`,required:!1,permissions:[`ro`],data_type:`ushort`,unit:null,format:[0,500]},level:{category:`level`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`excellent`,`good`,`fair`,`inferior`,`poor`,`unknown`]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},air_particulate:{category:`air_particulate`,constraints:{oneOrMoreOf:[[`detected`,`concentration`]]},properties:{detected:{category:`detected`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},concentration:{category:`concentration`,required:!1,permissions:[`ro`],data_type:`float`,unit:`µg/m³`,format:[0,1e3]},mode:{category:`mode`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`pm1`,`pm2_5`,`pm10`]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},carbon_dioxide:{category:`carbon_dioxide`,constraints:{oneOrMoreOf:[[`detected`,`concentration`]]},properties:{detected:{category:`detected`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},concentration:{category:`concentration`,required:!1,permissions:[`ro`],data_type:`float`,unit:`ppm`,format:[0,1e5]},peak_level:{category:`peak_level`,required:!1,permissions:[`ro`],data_type:`float`,unit:`ppm`,format:[0,1e5]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},carbon_monoxide:{category:`carbon_monoxide`,constraints:{oneOrMoreOf:[[`detected`,`concentration`]]},properties:{detected:{category:`detected`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},concentration:{category:`concentration`,required:!1,permissions:[`ro`],data_type:`float`,unit:`ppm`,format:[0,100]},peak_level:{category:`peak_level`,required:!1,permissions:[`ro`],data_type:`float`,unit:`ppm`,format:[0,100]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},flow:{category:`flow`,properties:{rate:{category:`rate`,required:!0,permissions:[`ro`],data_type:`float`,unit:`m³/h`,format:[0,65533]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},humidity:{category:`humidity`,properties:{humidity:{category:`humidity`,required:!0,permissions:[`ro`],data_type:`uchar`,unit:`%`,format:[0,100]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},illuminance:{category:`illuminance`,properties:{illuminance:{category:`illuminance`,required:!0,permissions:[`ro`],data_type:`float`,unit:`lx`,format:[0,1e5]},level:{category:`level`,required:!0,permissions:[`ro`],data_type:`enum`,unit:null,format:[`bright`,`moderate`,`dusky`,`dark`]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},nitrogen_dioxide:{category:`nitrogen_dioxide`,constraints:{oneOrMoreOf:[[`detected`,`concentration`]]},properties:{detected:{category:`detected`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},concentration:{category:`concentration`,required:!1,permissions:[`ro`],data_type:`float`,unit:`µg/m³`,format:[0,1e5]},mode:{category:`mode`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`annual`,`1_hour`]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},ozone:{category:`ozone`,constraints:{oneOrMoreOf:[[`detected`,`concentration`,`level`]],oneOf:[[`concentration`,`level`]]},properties:{detected:{category:`detected`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},concentration:{category:`concentration`,required:!1,permissions:[`ro`],data_type:`float`,unit:`µg/m³`,format:[0,1e5]},level:{category:`level`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`low`,`medium`,`high`]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},pressure:{category:`pressure`,properties:{pressure:{category:`pressure`,required:!0,permissions:[`ro`],data_type:`float`,unit:`kPa`,format:[0,32767]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},sulphur_dioxide:{category:`sulphur_dioxide`,properties:{detected:{category:`detected`,required:!0,permissions:[`ro`],data_type:`bool`,unit:null,format:null},concentration:{category:`concentration`,required:!0,permissions:[`ro`],data_type:`float`,unit:`µg/m³`,format:[0,1e5]},level:{category:`level`,required:!0,permissions:[`ro`],data_type:`enum`,unit:null,format:[`low`,`medium`,`high`]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},temperature:{category:`temperature`,properties:{temperature:{category:`temperature`,required:!0,permissions:[`ro`],data_type:`float`,unit:`°C`,format:[0,100]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},volatile_organic_compounds:{category:`volatile_organic_compounds`,constraints:{oneOrMoreOf:[[`detected`,`concentration`,`level`]],oneOf:[[`concentration`,`level`]]},properties:{detected:{category:`detected`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},concentration:{category:`concentration`,required:!1,permissions:[`ro`],data_type:`float`,unit:`µg/m³`,format:[0,1e3]},level:{category:`level`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`low`,`medium`,`high`]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},alarm:{category:`alarm`,properties:{state:{category:`state`,required:!0,permissions:[`rw`],data_type:`enum`,unit:null,format:[`disarmed`,`armed_home`,`armed_away`,`armed_night`]},alarm_state:{category:`alarm_state`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`idle`,`pending`,`triggered`,`silenced`]},triggered:{category:`triggered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},siren:{category:`siren`,required:!1,permissions:[`rw`],data_type:`bool`,unit:null,format:null},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},fault_description:{category:`fault_description`,required:!1,permissions:[`ro`],data_type:`string`,unit:null,format:null},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},last_event:{category:`last_event`,required:!1,permissions:[`ro`],data_type:`string`,unit:null,format:null}}},contact:{category:`contact`,properties:{detected:{category:`detected`,required:!0,permissions:[`ro`],data_type:`bool`,unit:null,format:null},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},gas:{category:`gas`,properties:{detected:{category:`detected`,required:!0,permissions:[`ro`],data_type:`bool`,unit:null,format:null},status:{category:`status`,required:!0,permissions:[`ro`],data_type:`enum`,unit:null,format:[`normal`,`warning`,`alarm`]},concentration:{category:`concentration`,required:!1,permissions:[`ro`],data_type:`uint`,unit:`ppm`,format:[0,65535]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},leak:{category:`leak`,properties:{detected:{category:`detected`,required:!0,permissions:[`ro`],data_type:`bool`,unit:null,format:null},level:{category:`level`,required:!0,permissions:[`ro`],data_type:`enum`,unit:null,format:[`low`,`medium`,`high`]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},lock:{category:`lock`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},status:{category:`status`,required:!0,permissions:[`rw`],data_type:`enum`,unit:null,format:[`locked`,`unlocked`]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},motion:{category:`motion`,properties:{detected:{category:`detected`,required:!0,permissions:[`ro`],data_type:`bool`,unit:null,format:null},distance:{category:`distance`,required:!1,permissions:[`ro`],data_type:`float`,unit:`m`,format:[0,100]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},occupancy:{category:`occupancy`,properties:{detected:{category:`detected`,required:!0,permissions:[`ro`],data_type:`bool`,unit:null,format:null},distance:{category:`distance`,required:!1,permissions:[`ro`],data_type:`float`,unit:`m`,format:[0,100]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},smoke:{category:`smoke`,properties:{detected:{category:`detected`,required:!0,permissions:[`ro`],data_type:`bool`,unit:null,format:null},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},cooler:{category:`cooler`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},temperature:{category:`temperature`,required:!0,permissions:[`rw`],data_type:`float`,unit:`°C`,format:[0,100]},status:{category:`status`,required:!0,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},dehumidifier:{category:`dehumidifier`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},humidity:{category:`humidity`,required:!0,permissions:[`rw`],data_type:`uchar`,unit:`%`,format:[0,100]},mode:{category:`mode`,required:!1,permissions:[`rw`],data_type:`enum`,unit:null,format:[`auto`,`manual`,`continuous`,`laundry`,`quiet`]},status:{category:`status`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`idle`,`dehumidifying`,`defrosting`]},water_tank_full:{category:`water_tank_full`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},water_tank_level:{category:`water_tank_level`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:`%`,format:[0,100]},defrost_active:{category:`defrost_active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},timer:{category:`timer`,required:!1,permissions:[`rw`],data_types:[{id:`duration`,data_type:`ushort`,unit:`s`,format:[0,86400],step:60,description:{en:`Timer duration in seconds (0-86400)`}},{id:`preset`,data_type:`enum`,format:[`off`,`30m`,`1h`,`2h`,`4h`,`8h`,`12h`],description:{en:`Preset timer intervals`}}]},locked:{category:`locked`,required:!1,permissions:[`rw`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},door:{category:`door`,properties:{obstruction:{category:`obstruction`,required:!0,permissions:[`ro`],data_type:`bool`,unit:null,format:null},status:{category:`status`,required:!0,permissions:[`ro`],data_type:`enum`,unit:null,format:[`opened`,`closed`,`opening`,`closing`,`stopped`]},position:{category:`position`,required:!0,permissions:[`rw`],data_type:`enum`,unit:null,format:[`open`,`close`,`stop`]},type:{category:`type`,required:!0,permissions:[`ro`],data_type:`enum`,unit:null,format:[`door`,`garage`]},percentage:{category:`percentage`,required:!1,permissions:[`rw`],data_type:`uchar`,unit:null,format:[0,100]},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},fan:{category:`fan`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},swing:{category:`swing`,required:!1,permissions:[`rw`],data_type:`bool`,unit:null,format:null},speed:{category:`speed`,required:!1,permissions:[`rw`],data_types:[{id:`percentage`,data_type:`uchar`,unit:`%`,format:[0,100],step:1,description:{en:`Speed as percentage (0-100%)`}},{id:`level`,data_type:`enum`,format:[`off`,`low`,`medium`,`high`,`turbo`,`auto`],description:{en:`Speed as discrete levels`}}]},mode:{category:`mode`,required:!1,permissions:[`rw`],data_type:`enum`,unit:null,format:[`auto`,`manual`,`eco`,`sleep`,`natural`,`turbo`]},direction:{category:`direction`,required:!1,permissions:[`rw`],data_type:`enum`,unit:null,format:[`clockwise`,`counter_clockwise`]},natural_breeze:{category:`natural_breeze`,required:!1,permissions:[`rw`],data_type:`bool`,unit:null,format:null},timer:{category:`timer`,required:!1,permissions:[`rw`],data_types:[{id:`duration`,data_type:`ushort`,unit:`s`,format:[0,86400],step:60,description:{en:`Timer duration in seconds (0-86400)`}},{id:`preset`,data_type:`enum`,format:[`off`,`30m`,`1h`,`2h`,`4h`,`8h`,`12h`],description:{en:`Preset timer intervals`}}]},locked:{category:`locked`,required:!1,permissions:[`rw`],data_type:`bool`,unit:null,format:null}}},heater:{category:`heater`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},temperature:{category:`temperature`,required:!0,permissions:[`rw`],data_type:`float`,unit:`°C`,format:[0,100]},status:{category:`status`,required:!0,permissions:[`ro`],data_type:`bool`,unit:null,format:null},position:{category:`position`,required:!1,permissions:[`rw`],data_types:[{id:`percentage`,data_type:`uchar`,unit:`%`,format:[0,100],step:1,description:{en:`Position as percentage (0-100%)`}},{id:`state`,data_type:`enum`,format:[`closed`,`quarter`,`half`,`three_quarter`,`open`],description:{en:`Position as discrete states`}}]}}},humidifier:{category:`humidifier`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},humidity:{category:`humidity`,required:!0,permissions:[`rw`],data_type:`uchar`,unit:`%`,format:[0,100]},mode:{category:`mode`,required:!1,permissions:[`rw`],data_type:`enum`,unit:null,format:[`auto`,`manual`,`sleep`,`baby`]},status:{category:`status`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`idle`,`humidifying`]},mist_level:{category:`mist_level`,required:!1,permissions:[`rw`],data_types:[{id:`percentage`,data_type:`uchar`,unit:`%`,format:[0,100],step:1,description:{en:`Mist level as percentage (0-100%)`}},{id:`level`,data_type:`enum`,format:[`off`,`low`,`medium`,`high`],description:{en:`Mist level as discrete levels`}}]},warm_mist:{category:`warm_mist`,required:!1,permissions:[`rw`],data_type:`bool`,unit:null,format:null},water_tank_empty:{category:`water_tank_empty`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},water_tank_level:{category:`water_tank_level`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:`%`,format:[0,100]},timer:{category:`timer`,required:!1,permissions:[`rw`],data_types:[{id:`duration`,data_type:`ushort`,unit:`s`,format:[0,86400],step:60,description:{en:`Timer duration in seconds (0-86400)`}},{id:`preset`,data_type:`enum`,format:[`off`,`30m`,`1h`,`2h`,`4h`,`8h`,`12h`],description:{en:`Preset timer intervals`}}]},locked:{category:`locked`,required:!1,permissions:[`rw`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},light:{category:`light`,constraints:{mutuallyExclusiveGroups:[[[`color_red`,`color_green`,`color_blue`],[`hue`,`saturation`]]]},properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},brightness:{category:`brightness`,required:!1,permissions:[`rw`],data_types:[{id:`percentage`,data_type:`uchar`,unit:`%`,format:[0,100],step:1,description:{en:`Brightness as percentage (0-100%)`}},{id:`level`,data_type:`enum`,format:[`off`,`low`,`medium`,`high`,`full`],description:{en:`Brightness as discrete levels`}}]},color_red:{category:`color_red`,required:!1,permissions:[`rw`],data_type:`uchar`,unit:null,format:[0,255]},color_green:{category:`color_green`,required:!1,permissions:[`rw`],data_type:`uchar`,unit:null,format:[0,255]},color_blue:{category:`color_blue`,required:!1,permissions:[`rw`],data_type:`uchar`,unit:null,format:[0,255]},color_white:{category:`color_white`,required:!1,permissions:[`rw`],data_type:`uchar`,unit:null,format:[0,255]},color_temperature:{category:`color_temperature`,required:!1,permissions:[`rw`],data_type:`ushort`,unit:`K`,format:[2e3,1e4]},hue:{category:`hue`,required:!1,permissions:[`rw`],data_type:`ushort`,unit:`deg`,format:[0,360]},saturation:{category:`saturation`,required:!1,permissions:[`rw`],data_type:`uchar`,unit:`%`,format:[0,100]}}},outlet:{category:`outlet`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},in_use:{category:`in_use`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},robot_vacuum:{category:`robot_vacuum`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},status:{category:`status`,required:!0,permissions:[`ro`],data_type:`enum`,unit:null,format:[`idle`,`cleaning`,`vacuuming`,`mopping`,`docking`,`charging`]},mode:{category:`mode`,required:!1,permissions:[`rw`],data_type:`enum`,unit:null,format:[`auto`,`spot`,`manual`]},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},switcher:{category:`switcher`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},child_lock:{category:`child_lock`,required:!1,permissions:[`rw`],data_type:`bool`,unit:null,format:null},timer:{category:`timer`,required:!1,permissions:[`rw`],data_types:[{id:`duration`,data_type:`ushort`,unit:`s`,format:[0,86400],step:60,description:{en:`Timer duration in seconds (0-86400)`}},{id:`preset`,data_type:`enum`,format:[`off`,`30m`,`1h`,`2h`,`4h`,`8h`,`12h`],description:{en:`Preset timer intervals`}}]}}},thermostat:{category:`thermostat`,properties:{locked:{category:`locked`,required:!1,permissions:[`rw`],data_type:`bool`,unit:null,format:null}}},valve:{category:`valve`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},type:{category:`type`,required:!0,permissions:[`rw`],data_type:`enum`,unit:null,format:[`generic`,`irrigation`,`shower_head`,`water_faucet`]},duration:{category:`duration`,required:!1,permissions:[`rw`],data_type:`ushort`,unit:`s`,format:[0,3600]},remaining:{category:`remaining`,required:!1,permissions:[`ro`],data_type:`ushort`,unit:`s`,format:[0,3600]},mode:{category:`mode`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`manual`,`scheduled`]},position:{category:`position`,required:!1,permissions:[`rw`],data_types:[{id:`percentage`,data_type:`uchar`,unit:`%`,format:[0,100],step:1,description:{en:`Position as percentage (0-100%)`}},{id:`state`,data_type:`enum`,format:[`closed`,`quarter`,`half`,`three_quarter`,`open`],description:{en:`Position as discrete states`}}]},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},window_covering:{category:`window_covering`,properties:{status:{category:`status`,required:!0,permissions:[`ro`],data_type:`enum`,unit:null,format:[`opened`,`closed`,`opening`,`closing`,`stopped`]},position:{category:`position`,required:!0,permissions:[`rw`],data_types:[{id:`percentage`,data_type:`uchar`,unit:`%`,format:[0,100],step:1,description:{en:`Position as percentage (0-100%)`}},{id:`state`,data_type:`enum`,format:[`closed`,`quarter`,`half`,`three_quarter`,`open`],description:{en:`Position as discrete states`}}]},type:{category:`type`,required:!0,permissions:[`ro`],data_type:`enum`,unit:null,format:[`curtain`,`roller`,`blind`,`venetian_blind`,`vertical_blind`,`shutter`,`outdoor_blind`,`awning`]},command:{category:`command`,required:!0,permissions:[`wo`],data_type:`enum`,unit:null,format:[`open`,`close`,`stop`]},obstruction:{category:`obstruction`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},tilt:{category:`tilt`,required:!1,permissions:[`rw`],data_type:`float`,unit:`°`,format:[-90,90]},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},battery:{category:`battery`,properties:{percentage:{category:`percentage`,required:!0,permissions:[`ro`],data_types:[{id:`percentage`,data_type:`uchar`,unit:`%`,format:[0,100],step:1,description:{en:`Battery as percentage (0-100%)`}},{id:`level`,data_type:`enum`,format:[`critical`,`low`,`medium`,`high`,`full`],description:{en:`Battery as discrete levels`}}]},status:{category:`status`,required:!0,permissions:[`ro`],data_type:`enum`,unit:null,format:[`ok`,`low`,`charging`]},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},electrical_energy:{category:`electrical_energy`,properties:{consumption:{category:`consumption`,required:!0,permissions:[`ro`],data_type:`float`,unit:`kWh`,format:[0,null],measurement_kind:`cumulative`,reset_behavior:`unknown`},average_power:{category:`average_power`,required:!1,permissions:[`ro`],data_type:`float`,unit:`W`,format:[0,1e5],measurement_kind:`interval_average`},grid_import:{category:`grid_import`,required:!1,permissions:[`ro`],data_type:`float`,unit:`kWh`,format:[0,null],measurement_kind:`cumulative`,reset_behavior:`unknown`},grid_export:{category:`grid_export`,required:!1,permissions:[`ro`],data_type:`float`,unit:`kWh`,format:[0,null],measurement_kind:`cumulative`,reset_behavior:`unknown`},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},electrical_generation:{category:`electrical_generation`,properties:{production:{category:`production`,required:!0,permissions:[`ro`],data_type:`float`,unit:`kWh`,format:[0,null],measurement_kind:`cumulative`,reset_behavior:`unknown`},power:{category:`power`,required:!1,permissions:[`ro`],data_type:`float`,unit:`W`,format:[0,1e5],measurement_kind:`instantaneous`},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},electrical_power:{category:`electrical_power`,properties:{power:{category:`power`,required:!0,permissions:[`ro`],data_type:`float`,unit:`W`,format:[0,1e4],measurement_kind:`instantaneous`},voltage:{category:`voltage`,required:!1,permissions:[`ro`],data_type:`float`,unit:`V`,format:[0,500],measurement_kind:`instantaneous`},current:{category:`current`,required:!1,permissions:[`ro`],data_type:`float`,unit:`A`,format:[0,100],measurement_kind:`instantaneous`},frequency:{category:`frequency`,required:!1,permissions:[`ro`],data_type:`float`,unit:`Hz`,format:[40,70],measurement_kind:`instantaneous`},over_current:{category:`over_current`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},over_voltage:{category:`over_voltage`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},over_power:{category:`over_power`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},camera:{category:`camera`,properties:{status:{category:`status`,required:!0,permissions:[`ro`],data_type:`enum`,unit:null,format:[`available`,`in_use`,`unavailable`,`offline`,`initializing`,`error`]},source:{category:`source`,required:!0,permissions:[`ro`],data_type:`string`,unit:null,format:null},zoom:{category:`zoom`,required:!1,permissions:[`rw`],data_type:`float`,unit:null,format:[1,10]},pan:{category:`pan`,required:!1,permissions:[`rw`],data_type:`float`,unit:`°`,format:[-180,180]},tilt:{category:`tilt`,required:!1,permissions:[`rw`],data_type:`float`,unit:`°`,format:[-90,90]},infrared:{category:`infrared`,required:!1,permissions:[`rw`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},doorbell:{category:`doorbell`,properties:{event:{category:`event`,required:!0,permissions:[`ro`],data_type:`enum`,unit:null,format:[`single_press`,`double_press`,`long_press`]},brightness:{category:`brightness`,required:!1,permissions:[`rw`],data_types:[{id:`percentage`,data_type:`uchar`,unit:`%`,format:[0,100],step:1,description:{en:`Brightness as percentage (0-100%)`}},{id:`level`,data_type:`enum`,format:[`off`,`low`,`medium`,`high`,`full`],description:{en:`Brightness as discrete levels`}}]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},media_input:{category:`media_input`,properties:{source:{category:`source`,required:!0,permissions:[`rw`],data_types:[{id:`standard`,data_type:`enum`,unit:null,format:`hdmi1.hdmi2.hdmi3.hdmi4.hdmi5.hdmi6.arc.earc.tv.cable.satellite.antenna.av1.av2.component.vga.dvi.usb.bluetooth.wifi.airplay.cast.dlna.miracast.app_netflix.app_youtube.app_spotify.app_prime_video.app_disney_plus.app_hbo_max.app_apple_tv.app_plex.app_kodi.other`.split(`.`),step:null,description:{en:`Standardized input/source identifier (recommended for UI).`}},{id:`custom`,data_type:`string`,unit:null,format:null,step:null,description:{en:`Integration-specific input/source value (fallback).`}}]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},source_label:{category:`source_label`,required:!1,permissions:[`ro`],data_type:`string`,unit:null,format:null}}},media_playback:{category:`media_playback`,properties:{status:{category:`status`,required:!0,permissions:[`rw`],data_type:`enum`,unit:null,format:[`playing`,`paused`,`stopped`]},track:{category:`track`,required:!1,permissions:[`ro`],data_type:`string`,unit:null,format:null},duration:{category:`duration`,required:!1,permissions:[`ro`],data_type:`uint`,unit:`s`,format:[0,86400]},position:{category:`position`,required:!1,permissions:[`rw`],data_type:`uint`,unit:`s`,format:[0,86400]},shuffle:{category:`shuffle`,required:!1,permissions:[`rw`],data_type:`bool`,unit:null,format:null},repeat:{category:`repeat`,required:!1,permissions:[`rw`],data_type:`enum`,unit:null,format:[`off`,`one`,`all`]},command:{category:`command`,required:!1,permissions:[`wo`],data_type:`enum`,unit:null,format:[`play`,`pause`,`stop`,`next`,`previous`,`rewind`,`fast_forward`]},artist:{category:`artist`,required:!1,permissions:[`ro`],data_type:`string`,unit:null,format:null},album:{category:`album`,required:!1,permissions:[`ro`],data_type:`string`,unit:null,format:null},artwork_url:{category:`artwork_url`,required:!1,permissions:[`ro`],data_type:`string`,unit:null,format:null},media_type:{category:`media_type`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`music`,`tvshow`,`movie`,`video`,`playlist`,`podcast`,`audiobook`,`radio`,`unknown`]}}},microphone:{category:`microphone`,properties:{active:{category:`active`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},volume:{category:`volume`,required:!1,permissions:[`ro`],data_types:[{id:`percentage`,data_type:`uchar`,unit:`%`,format:[0,100],step:1,description:{en:`Volume as percentage (0-100%)`}},{id:`level`,data_type:`enum`,format:[`mute`,`low`,`medium`,`high`,`max`],description:{en:`Volume as discrete levels`}}]}}},speaker:{category:`speaker`,properties:{active:{category:`active`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},volume:{category:`volume`,required:!1,permissions:[`rw`],data_types:[{id:`percentage`,data_type:`uchar`,unit:`%`,format:[0,100],step:1,description:{en:`Volume as percentage (0-100%)`}},{id:`level`,data_type:`enum`,format:[`mute`,`low`,`medium`,`high`,`max`],description:{en:`Volume as discrete levels`}}]},mode:{category:`mode`,required:!1,permissions:[`rw`],data_type:`enum`,unit:null,format:[`stereo`,`mono`,`surround`]},mute:{category:`mute`,required:!1,permissions:[`rw`],data_type:`bool`,unit:null,format:null},balance:{category:`balance`,required:!1,permissions:[`rw`],data_type:`float`,unit:null,format:[-1,1]},bass:{category:`bass`,required:!1,permissions:[`rw`],data_type:`float`,unit:null,format:[-10,10]},treble:{category:`treble`,required:!1,permissions:[`rw`],data_type:`float`,unit:null,format:[-10,10]}}},television:{category:`television`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},brightness:{category:`brightness`,required:!1,permissions:[`rw`],data_types:[{id:`percentage`,data_type:`uchar`,unit:`%`,format:[0,100],step:1,description:{en:`Brightness as percentage (0-100%)`}},{id:`level`,data_type:`enum`,format:[`off`,`low`,`medium`,`high`,`full`],description:{en:`Brightness as discrete levels`}}]},remote_key:{category:`remote_key`,required:!1,permissions:[`wo`],data_type:`enum`,unit:null,format:[`rewind`,`fast_forward`,`next`,`previous`,`arrow_up`,`arrow_down`,`arrow_left`,`arrow_right`,`select`,`back`,`exit`,`info`,`play`,`pause`]}}},projector:{category:`projector`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},brightness:{category:`brightness`,required:!1,permissions:[`rw`],data_types:[{id:`percentage`,data_type:`uchar`,unit:`%`,format:[0,100],step:1,description:{en:`Brightness as percentage (0-100%)`}},{id:`level`,data_type:`enum`,format:[`off`,`low`,`medium`,`high`,`full`],description:{en:`Brightness as discrete levels`}}]},remote_key:{category:`remote_key`,required:!1,permissions:[`wo`],data_type:`enum`,unit:null,format:[`rewind`,`fast_forward`,`next`,`previous`,`arrow_up`,`arrow_down`,`arrow_left`,`arrow_right`,`select`,`back`,`exit`,`info`,`play`,`pause`]}}},device_information:{category:`device_information`,properties:{manufacturer:{category:`manufacturer`,required:!0,permissions:[`ro`],data_type:`string`,unit:null,format:null},model:{category:`model`,required:!0,permissions:[`ro`],data_type:`string`,unit:null,format:null},serial_number:{category:`serial_number`,required:!0,permissions:[`ro`],data_type:`string`,unit:null,format:null},firmware_revision:{category:`firmware_revision`,required:!1,permissions:[`ro`],data_type:`string`,unit:null,format:null},hardware_revision:{category:`hardware_revision`,required:!1,permissions:[`ro`],data_type:`string`,unit:null,format:null},link_quality:{category:`link_quality`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:`%`,format:[0,100]},connection_type:{category:`connection_type`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`wired`,`wifi`,`zigbee`,`bluetooth`]},status:{category:`status`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`connected`,`disconnected`,`init`,`ready`,`running`,`sleeping`,`stopped`,`lost`,`alert`,`unknown`]},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},filter:{category:`filter`,properties:{life_remaining:{category:`life_remaining`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:`%`,format:[0,100]},status:{category:`status`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`good`,`replace_soon`,`replace_now`]},change_needed:{category:`change_needed`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},reset:{category:`reset`,required:!1,permissions:[`wo`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},button:{category:`button`,properties:{event:{category:`event`,required:!0,permissions:[`ev`],data_type:`enum`,unit:null,format:[`press`,`long_press`,`double_press`]},detected:{category:`detected`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},indicator:{category:`indicator`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},brightness:{category:`brightness`,required:!1,permissions:[`rw`],data_type:`uchar`,unit:null,format:[0,255]},color:{category:`color_red`,required:!1,permissions:[`rw`],data_type:`enum`,unit:null,format:[`red`,`green`,`blue`,`yellow`,`white`,`off`]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},buzzer:{category:`buzzer`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},frequency:{category:`frequency`,required:!1,permissions:[`rw`],data_type:`uint`,unit:`Hz`,format:[100,1e4]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},accelerometer:{category:`accelerometer`,properties:{acceleration_x:{category:`acceleration_x`,required:!0,permissions:[`ro`],data_type:`float`,unit:`g`,format:[-16,16],step:.001},acceleration_y:{category:`acceleration_y`,required:!0,permissions:[`ro`],data_type:`float`,unit:`g`,format:[-16,16],step:.001},acceleration_z:{category:`acceleration_z`,required:!0,permissions:[`ro`],data_type:`float`,unit:`g`,format:[-16,16],step:.001},orientation:{category:`orientation`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`landscape`,`portrait`,`landscape_inverted`,`portrait_inverted`,`face_up`,`face_down`]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},generic:{category:`generic`,properties:{generic:{category:`generic`,required:!1}}}},ye={generic:{category:`generic`,channels:{generic:{category:`generic`,required:!1,multiple:!0},device_information:{category:`device_information`,required:!0,multiple:!1}}},air_conditioner:{category:`air_conditioner`,channels:{cooler:{category:`cooler`,required:!0,multiple:!1},fan:{category:`fan`,required:!0,multiple:!1},temperature:{category:`temperature`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},heater:{category:`heater`,required:!1,multiple:!1},humidity:{category:`humidity`,required:!1,multiple:!1},contact:{category:`contact`,required:!1,multiple:!1},leak:{category:`leak`,required:!1,multiple:!1},filter:{category:`filter`,required:!1,multiple:!1}}},air_dehumidifier:{category:`air_dehumidifier`,channels:{dehumidifier:{category:`dehumidifier`,required:!0,multiple:!1},humidity:{category:`humidity`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},fan:{category:`fan`,required:!1,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},leak:{category:`leak`,required:!1,multiple:!1},temperature:{category:`temperature`,required:!1,multiple:!1}}},air_humidifier:{category:`air_humidifier`,channels:{humidifier:{category:`humidifier`,required:!0,multiple:!1},humidity:{category:`humidity`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},fan:{category:`fan`,required:!1,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},leak:{category:`leak`,required:!1,multiple:!1},temperature:{category:`temperature`,required:!1,multiple:!1}}},air_purifier:{category:`air_purifier`,channels:{fan:{category:`fan`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},air_quality:{category:`air_quality`,required:!1,multiple:!1},filter:{category:`filter`,required:!1,multiple:!1},air_particulate:{category:`air_particulate`,required:!1,multiple:!1},carbon_dioxide:{category:`carbon_dioxide`,required:!1,multiple:!1},carbon_monoxide:{category:`carbon_monoxide`,required:!1,multiple:!1},humidity:{category:`humidity`,required:!1,multiple:!1},leak:{category:`leak`,required:!1,multiple:!1},nitrogen_dioxide:{category:`nitrogen_dioxide`,required:!1,multiple:!1},ozone:{category:`ozone`,required:!1,multiple:!1},pressure:{category:`pressure`,required:!1,multiple:!1},sulphur_dioxide:{category:`sulphur_dioxide`,required:!1,multiple:!1},temperature:{category:`temperature`,required:!1,multiple:!1},volatile_organic_compounds:{category:`volatile_organic_compounds`,required:!1,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1}}},thermostat:{category:`thermostat`,channels:{temperature:{category:`temperature`,required:!0,multiple:!1},thermostat:{category:`thermostat`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},contact:{category:`contact`,required:!1,multiple:!1},cooler:{category:`cooler`,required:!1,multiple:!1},heater:{category:`heater`,required:!1,multiple:!1},humidity:{category:`humidity`,required:!1,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1}}},alarm:{category:`alarm`,channels:{alarm:{category:`alarm`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},battery:{category:`battery`,required:!1,multiple:!1}}},camera:{category:`camera`,channels:{camera:{category:`camera`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},battery:{category:`battery`,required:!1,multiple:!1},contact:{category:`contact`,required:!1,multiple:!1},humidity:{category:`humidity`,required:!1,multiple:!1},light:{category:`light`,required:!1,multiple:!1},microphone:{category:`microphone`,required:!1,multiple:!1},motion:{category:`motion`,required:!1,multiple:!1},speaker:{category:`speaker`,required:!1,multiple:!1},temperature:{category:`temperature`,required:!1,multiple:!1}}},doorbell:{category:`doorbell`,channels:{doorbell:{category:`doorbell`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},battery:{category:`battery`,required:!1,multiple:!1},camera:{category:`camera`,required:!1,multiple:!1},contact:{category:`contact`,required:!1,multiple:!1},light:{category:`light`,required:!1,multiple:!1},lock:{category:`lock`,required:!1,multiple:!1},microphone:{category:`microphone`,required:!1,multiple:!1},motion:{category:`motion`,required:!1,multiple:!1},speaker:{category:`speaker`,required:!1,multiple:!1}}},door:{category:`door`,channels:{door:{category:`door`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},battery:{category:`battery`,required:!1,multiple:!1},contact:{category:`contact`,required:!1,multiple:!1},lock:{category:`lock`,required:!1,multiple:!1},motion:{category:`motion`,required:!1,multiple:!1}}},lock:{category:`lock`,channels:{lock:{category:`lock`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},battery:{category:`battery`,required:!1,multiple:!1},contact:{category:`contact`,required:!1,multiple:!1},motion:{category:`motion`,required:!1,multiple:!1}}},fan:{category:`fan`,channels:{fan:{category:`fan`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1}}},heating_unit:{category:`heating_unit`,channels:{heater:{category:`heater`,required:!0,multiple:!1},temperature:{category:`temperature`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},humidity:{category:`humidity`,required:!1,multiple:!1},contact:{category:`contact`,required:!1,multiple:!1}}},water_heater:{category:`water_heater`,channels:{heater:{category:`heater`,required:!0,multiple:!1},temperature:{category:`temperature`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},leak:{category:`leak`,required:!1,multiple:!1}}},lighting:{category:`lighting`,channels:{light:{category:`light`,required:!0,multiple:!0},device_information:{category:`device_information`,required:!0,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},illuminance:{category:`illuminance`,required:!1,multiple:!1}}},outlet:{category:`outlet`,channels:{outlet:{category:`outlet`,required:!0,multiple:!0},device_information:{category:`device_information`,required:!0,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1}}},pump:{category:`pump`,channels:{flow:{category:`flow`,required:!1,multiple:!1},switcher:{category:`switcher`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},leak:{category:`leak`,required:!1,multiple:!1},pressure:{category:`pressure`,required:!1,multiple:!1}}},sprinkler:{category:`sprinkler`,channels:{valve:{category:`valve`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},flow:{category:`flow`,required:!1,multiple:!1},humidity:{category:`humidity`,required:!1,multiple:!1},leak:{category:`leak`,required:!1,multiple:!1},pressure:{category:`pressure`,required:!1,multiple:!1}}},switcher:{category:`switcher`,constraints:{oneOrMoreOf:[[`outlet`,`switcher`]],mutuallyExclusiveGroups:[[[`outlet`],[`switcher`]]]},channels:{outlet:{category:`outlet`,required:!1,multiple:!0},switcher:{category:`switcher`,required:!1,multiple:!0},device_information:{category:`device_information`,required:!0,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1}}},valve:{category:`valve`,channels:{valve:{category:`valve`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},battery:{category:`battery`,required:!1,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},flow:{category:`flow`,required:!1,multiple:!1},leak:{category:`leak`,required:!1,multiple:!1},pressure:{category:`pressure`,required:!1,multiple:!1}}},window_covering:{category:`window_covering`,channels:{window_covering:{category:`window_covering`,required:!0,multiple:!0},device_information:{category:`device_information`,required:!0,multiple:!1},battery:{category:`battery`,required:!1,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1}}},media:{category:`media`,channels:{switcher:{category:`switcher`,required:!1,multiple:!1},media_input:{category:`media_input`,required:!1,multiple:!1},media_playback:{category:`media_playback`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},microphone:{category:`microphone`,required:!1,multiple:!1},speaker:{category:`speaker`,required:!1,multiple:!1}}},speaker:{category:`speaker`,channels:{switcher:{category:`switcher`,required:!1,multiple:!1},speaker:{category:`speaker`,required:!0,multiple:!0},device_information:{category:`device_information`,required:!0,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},media_input:{category:`media_input`,required:!1,multiple:!1},media_playback:{category:`media_playback`,required:!1,multiple:!1}}},television:{category:`television`,channels:{speaker:{category:`speaker`,required:!0,multiple:!1},television:{category:`television`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},media_playback:{category:`media_playback`,required:!1,multiple:!1},media_input:{category:`media_input`,required:!1,multiple:!1}}},projector:{category:`projector`,channels:{projector:{category:`projector`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},speaker:{category:`speaker`,required:!1,multiple:!1},media_playback:{category:`media_playback`,required:!1,multiple:!1},media_input:{category:`media_input`,required:!1,multiple:!1}}},av_receiver:{category:`av_receiver`,channels:{switcher:{category:`switcher`,required:!1,multiple:!1},speaker:{category:`speaker`,required:!0,multiple:!0},media_input:{category:`media_input`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},media_playback:{category:`media_playback`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1}}},set_top_box:{category:`set_top_box`,channels:{switcher:{category:`switcher`,required:!1,multiple:!1},media_playback:{category:`media_playback`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},media_input:{category:`media_input`,required:!1,multiple:!1},speaker:{category:`speaker`,required:!1,multiple:!1}}},game_console:{category:`game_console`,channels:{switcher:{category:`switcher`,required:!1,multiple:!1},media_playback:{category:`media_playback`,required:!1,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1}}},streaming_service:{category:`streaming_service`,channels:{media_playback:{category:`media_playback`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1}}},robot_vacuum:{category:`robot_vacuum`,channels:{battery:{category:`battery`,required:!0,multiple:!1},robot_vacuum:{category:`robot_vacuum`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},leak:{category:`leak`,required:!1,multiple:!1},filter:{category:`filter`,required:!1,multiple:!1}}},sensor:{category:`sensor`,channels:{device_information:{category:`device_information`,required:!0,multiple:!1},air_particulate:{category:`air_particulate`,required:!1,multiple:!1},battery:{category:`battery`,required:!1,multiple:!1},carbon_dioxide:{category:`carbon_dioxide`,required:!1,multiple:!1},carbon_monoxide:{category:`carbon_monoxide`,required:!1,multiple:!1},gas:{category:`gas`,required:!1,multiple:!1},contact:{category:`contact`,required:!1,multiple:!1},humidity:{category:`humidity`,required:!1,multiple:!1},illuminance:{category:`illuminance`,required:!1,multiple:!1},leak:{category:`leak`,required:!1,multiple:!1},motion:{category:`motion`,required:!1,multiple:!1},nitrogen_dioxide:{category:`nitrogen_dioxide`,required:!1,multiple:!1},occupancy:{category:`occupancy`,required:!1,multiple:!1},ozone:{category:`ozone`,required:!1,multiple:!1},pressure:{category:`pressure`,required:!1,multiple:!1},smoke:{category:`smoke`,required:!1,multiple:!1},sulphur_dioxide:{category:`sulphur_dioxide`,required:!1,multiple:!1},temperature:{category:`temperature`,required:!1,multiple:!1},volatile_organic_compounds:{category:`volatile_organic_compounds`,required:!1,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1}}},terminal:{category:`terminal`,channels:{device_information:{category:`device_information`,required:!0,multiple:!1},button:{category:`button`,required:!1,multiple:!0},indicator:{category:`indicator`,required:!1,multiple:!0},buzzer:{category:`buzzer`,required:!1,multiple:!1},illuminance:{category:`illuminance`,required:!1,multiple:!1},accelerometer:{category:`accelerometer`,required:!1,multiple:!1},contact:{category:`contact`,required:!1,multiple:!0},switcher:{category:`switcher`,required:!1,multiple:!0},temperature:{category:`temperature`,required:!1,multiple:!1}}}},be={[_.generic]:[],[_.air_conditioner]:[u.cooler,u.heater,u.fan,u.temperature,u.humidity,u.electrical_energy,u.electrical_power,u.leak,u.device_information],[_.air_dehumidifier]:[u.cooler,u.fan,u.temperature,u.humidity,u.electrical_energy,u.electrical_power,u.leak,u.device_information],[_.air_humidifier]:[u.humidity,u.switcher,u.temperature,u.fan,u.electrical_energy,u.electrical_power,u.leak,u.device_information],[_.air_purifier]:[u.fan,u.air_particulate,u.carbon_dioxide,u.carbon_monoxide,u.humidity,u.leak,u.nitrogen_dioxide,u.ozone,u.pressure,u.sulphur_dioxide,u.temperature,u.volatile_organic_compounds,u.electrical_energy,u.electrical_power,u.device_information],[_.alarm]:[u.alarm,u.device_information],[_.camera]:[u.camera,u.motion,u.microphone,u.speaker,u.contact,u.light,u.temperature,u.humidity,u.battery,u.device_information],[_.door]:[u.door,u.lock,u.contact,u.motion,u.battery,u.device_information],[_.doorbell]:[u.doorbell,u.camera,u.lock,u.motion,u.microphone,u.speaker,u.contact,u.light,u.battery,u.device_information],[_.fan]:[u.fan,u.electrical_energy,u.electrical_power,u.device_information],[_.heating_unit]:[u.heater,u.temperature,u.humidity,u.electrical_energy,u.electrical_power,u.device_information],[_.lighting]:[u.light,u.illuminance,u.electrical_energy,u.electrical_power,u.device_information],[_.lock]:[u.lock,u.contact,u.motion,u.battery,u.device_information],[_.media]:[u.media_input,u.media_playback,u.microphone,u.speaker,u.device_information],[_.av_receiver]:[u.media_input,u.media_playback,u.speaker,u.device_information],[_.game_console]:[u.media_playback,u.media_input,u.device_information],[_.projector]:[u.projector,u.speaker,u.media_playback,u.media_input,u.device_information],[_.set_top_box]:[u.media_input,u.media_playback,u.device_information],[_.streaming_service]:[u.media_playback,u.device_information],[_.outlet]:[u.outlet,u.electrical_energy,u.electrical_power,u.device_information],[_.pump]:[u.flow,u.switcher,u.leak,u.pressure,u.electrical_energy,u.electrical_power,u.device_information],[_.robot_vacuum]:[u.robot_vacuum,u.electrical_energy,u.electrical_power,u.leak,u.battery,u.device_information],[_.sensor]:[u.air_particulate,u.battery,u.carbon_dioxide,u.carbon_monoxide,u.contact,u.humidity,u.illuminance,u.leak,u.motion,u.nitrogen_dioxide,u.occupancy,u.ozone,u.pressure,u.smoke,u.sulphur_dioxide,u.temperature,u.volatile_organic_compounds,u.device_information],[_.speaker]:[u.speaker,u.media_input,u.media_playback,u.electrical_energy,u.electrical_power,u.device_information],[_.sprinkler]:[u.valve,u.flow,u.pressure,u.leak,u.humidity,u.electrical_energy,u.electrical_power,u.device_information],[_.switcher]:[u.switcher,u.electrical_energy,u.electrical_power,u.device_information],[_.television]:[u.television,u.speaker,u.media_playback,u.media_input,u.device_information],[_.terminal]:[u.button,u.indicator,u.buzzer,u.illuminance,u.accelerometer,u.temperature,u.contact,u.switcher,u.device_information],[_.thermostat]:[u.thermostat,u.cooler,u.heater,u.temperature,u.humidity,u.contact,u.electrical_energy,u.electrical_power,u.device_information],[_.valve]:[u.valve,u.pressure,u.flow,u.leak,u.battery,u.electrical_energy,u.electrical_power,u.device_information],[_.water_heater]:[u.heater,u.temperature,u.leak,u.electrical_energy,u.electrical_power,u.device_information],[_.window_covering]:[u.window_covering,u.battery,u.electrical_energy,u.electrical_power,u.device_information]},xe=Object.fromEntries(Object.entries(ye).map(([e,t])=>{let n=Object.values(t.channels).map(e=>e.category),r=be[e];return[e,r?[...n].sort((e,t)=>{let n=r.indexOf(e),i=r.indexOf(t);return n===-1&&i===-1?0:n===-1?1:i===-1?-1:n-i}):n]})),Se=Object.fromEntries(Object.entries(ye).map(([e,t])=>[e,{required:Object.values(t.channels).filter(e=>e.required).map(e=>e.category),optional:Object.values(t.channels).filter(e=>!e.required).map(e=>e.category),multiple:Object.values(t.channels).filter(e=>e.multiple).map(e=>e.category)}])),Ce=Object.fromEntries(Object.entries(ve).map(([e,t])=>[e,{required:Object.values(t.properties).filter(e=>e.required).map(e=>e.category),optional:Object.values(t.properties).filter(e=>!e.required).map(e=>e.category)}])),we=(e,t)=>{let n=ve[e];if(!n)return;let r=Object.values(n.properties).find(e=>e.category===t);if(!r)return;let i=r.data_types?.[0];if(i)return{category:r.category,required:r.required,description:i.description??r.description??{en:``},permissions:r.permissions,data_type:i.data_type,unit:i.unit??null,format:i.format??null,invalid:r.invalid,step:i.step??null};if(r.data_type)return{category:r.category,required:r.required,description:r.description??{en:``},permissions:r.permissions,data_type:r.data_type,unit:r.unit??null,format:r.format??null,invalid:r.invalid,step:r.step??null}},Te=({id:e})=>{let t=y(),n=t.getStore(W),r=t.getStore(H),i=e=>n.findById(e),a=e=>Ce[e.category]??null;return{canAddAnotherProperty:o(()=>{let t=i(e);if(t===null)return!0;let{required:n,optional:o}=a(t)??{required:[],optional:[]},s=[...n,...o],c=r.findForChannel(t.id).map(e=>e.category);return s.filter(e=>!c.includes(e)).length>0}),missingRequiredProperties:o(()=>{let t=i(e);if(t===null)throw new q(`Something went wrong, channel can't be loaded`);let{required:n}=a(t)??{required:[]},o=r.findForChannel(t.id).map(e=>e.category);return n.filter(e=>!o.includes(e))})}},Ee=C({id:P().uuid().optional(),type:P().trim().nonempty(),device:P().uuid().optional(),category:x(u).default(u.generic),identifier:P().trim().nonempty().nullable().optional(),name:P().trim().nonempty(),description:P().trim().transform(e=>e===``?null:e).nullable().optional()}),De=C({id:P().uuid(),type:P().trim().nonempty(),device:P().uuid(),category:x(u).default(u.generic),identifier:P().trim().nonempty().nullable().optional(),name:P().trim().nonempty().optional(),description:P().trim().transform(e=>e===``?null:e).nullable().optional()}),Oe=({type:e})=>{let{getByType:t}=ce(),n=o(()=>t(e));return{plugin:n,element:o(()=>(n.value?.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`devices-module`))))}},ke=({id:e,type:a,deviceId:s})=>{let c=y(),{element:d}=Oe({type:a}),f=c.getStore(W),{devices:p,fetchDevices:m,areLoading:h}=te(),{t:g}=r(),_=w(),b=v(),x=l(K.NONE),S,C=o(()=>k.device?p.value.find(e=>e.id===k.device)??null:null),T=o(()=>C.value?f.findForDevice(C.value.id).map(e=>e.category):[]),E=o(()=>C.value?Se[C.value.category]??null:null),D=o(()=>E.value===null?[]:Object.values(u).filter(e=>E.value?.required.includes(e)||E.value?.optional.includes(e)).filter(e=>!T.value.includes(e)||E.value?.multiple?.includes(e)).map(e=>({value:e,label:g(`devicesModule.categories.channels.${e}`)}))),O=o(()=>p.value.filter(e=>e.type===a).map(e=>({value:e.id,label:e.name}))),k=n({...j(d.value?.schemas?.channelAddFormSchema||Ee),id:e,type:a,device:s,category:u.generic,name:``,description:``}),M=A(i(k)),N=l(void 0),P=l(!1),F=async()=>{if(N.value.clearValidate(),!await N.value.validate())throw new Y(`Form not valid`);let t=s??k.device;if(!t)throw new Y(`Missing device identifier`);if(!k.category)throw new Y(`Missing data type definition`);let n=(d.value?.schemas?.channelAddFormSchema||Ee).safeParse(k);if(!n.success)throw b.error(`Schema validation failed with:`,n.error),new Y(`Failed to validate create channel model.`);x.value=K.WORKING;let r=g(`devicesModule.messages.channels.notCreated`,{device:k.name});try{await f.add({id:e,deviceId:t,draft:!1,data:{...n.data,type:a}})}catch(e){throw x.value=K.ERROR,S=window.setTimeout(I,2e3),e instanceof J&&e.code===422?_.error(e.message):_.error(r),e}return x.value=K.OK,S=window.setTimeout(I,2e3),_.success(g(`devicesModule.messages.channels.created`,{device:k.name})),`added`},I=()=>{window.clearTimeout(S),x.value=K.NONE};return m().catch(()=>{}),t(k,()=>{P.value=!(0,X.isEqual)(i(k),M)}),t(()=>D.value,e=>{e.length&&e[0]&&(k.category=e[0].value,M.category=e[0].value)},{immediate:!0}),{categoriesOptions:D,devicesOptions:O,model:k,formEl:N,formChanged:P,submit:F,clear:I,formResult:x,loadingDevices:h}},Ae=({channel:e,messages:a})=>{let s=y(),{element:c}=Oe({type:e.type}),d=s.getStore(W),{devices:f,fetchDevices:p,areLoading:m}=te(),{t:h}=r(),g=w(),_=v(),b=l(K.NONE),x,S=o(()=>f.value.find(t=>t.id===e.device)??null),C=o(()=>S.value?d.findForDevice(S.value.id).filter(t=>t.id!==e.id).map(e=>e.category):[]),T=o(()=>S.value?Se[S.value.category]??null:null),E=o(()=>T.value===null?[]:Object.values(u).filter(e=>T.value?.required.includes(e)||T.value?.optional.includes(e)).filter(e=>!C.value.includes(e)||T.value?.multiple?.includes(e)).map(e=>({value:e,label:h(`devicesModule.categories.channels.${e}`)}))),D=o(()=>f.value.map(e=>({value:e.id,label:e.name}))),O=n(e),k=A(i(O)),j=l(void 0),M=l(!1),N=async()=>{let t=e.draft,n=a&&a.error?a.error:e.draft?h(`devicesModule.messages.channels.notCreated`,{channel:e.name}):h(`devicesModule.messages.channels.notEdited`,{channel:e.name});if(j.value.clearValidate(),!await j.value.validate())throw new Y(`Form not valid`);let r=(c.value?.schemas?.channelEditFormSchema||De).safeParse(O);if(!r.success)throw _.error(`Schema validation failed with:`,r.error),new Y(`Failed to validate edit channel model.`);b.value=K.WORKING;try{await d.edit({id:e.id,data:{...r.data,type:e.type}}),e.draft&&await d.save({id:e.id,deviceId:e.device})}catch(e){throw b.value=K.ERROR,x=window.setTimeout(P,2e3),e instanceof J&&e.code===422?g.error(e.message):g.error(n),e}return b.value=K.OK,x=window.setTimeout(P,2e3),t?(g.success(h(a&&a.success?a.success:`devicesModule.messages.channels.created`,{channel:e.name})),`added`):(g.success(h(a&&a.success?a.success:`devicesModule.messages.channels.edited`,{channel:e.name})),M.value=!1,k=A(i(O)),`saved`)},P=()=>{window.clearTimeout(x),b.value=K.NONE};return p().catch(()=>{}),t(O,()=>{M.value=!(0,X.isEqual)(i(O),k)}),{categoriesOptions:E,devicesOptions:D,model:O,formEl:j,formChanged:M,submit:N,clear:P,formResult:b,loadingDevices:m}},je=({channelId:e,id:t})=>{let n=y().getStore(H),{data:r,semaphore:i}=L(n);return{property:o(()=>t===null?null:r.value[t]??null),isLoading:o(()=>i.value.fetching.item.includes(t)?!0:(r.value[t]??null)===null?i.value.fetching.items.includes(e)||i.value.fetching.items.includes(`all`):!1),fetchProperty:async()=>{(r.value[t]??null)?.draft||await n.get({id:t,channelId:e})}}},Me=({channelId:e})=>{let t=y().getStore(H),{firstLoad:n,semaphore:r}=L(t),i=typeof e==`string`?o(()=>e):e;return{properties:o(()=>t.findAll().filter(e=>!i?.value||e.channel===i.value)),areLoading:o(()=>i.value?r.value.fetching.items.includes(i.value)?!0:n.value.includes(i.value)?!1:r.value.fetching.items.includes(i.value):!1),loaded:o(()=>i.value?n.value.includes(i.value):!1),fetchProperties:async()=>{i.value&&await t.fetch({channelId:i.value})}}},Q={search:void 0,channels:[],categories:[],permissions:[],dataTypes:[]},Ne={by:`category`,dir:`asc`},Pe=({channelId:e,key:n=`list`})=>{let r=y().getStore(H),{firstLoad:i,semaphore:a}=L(r),{filters:s,sort:c,pagination:u,reset:d}=O({key:`${G}:channels-properties:${n}`,filters:{schema:pe,defaults:Q},sort:{defaults:[Ne]},pagination:{defaults:{page:1,size:10}},syncQuery:!0,version:1}),f=o(()=>s.value.search!==Q.search||!(0,X.isEqual)(s.value.channels,Q.channels)||!(0,X.isEqual)(s.value.categories,Q.categories)||!(0,X.isEqual)(s.value.permissions,Q.permissions)||!(0,X.isEqual)(s.value.dataTypes,Q.dataTypes)),p=l(u.value.size||10),m=l(u.value.page||1),h=l(c.value.length>0?c.value[0]?.by:void 0),g=l(c.value.length>0?c.value[0]?.dir??null:null),_=o(()=>N(r.findAll().filter(t=>!e||t.channel===e).filter(e=>!e.draft&&(!s.value.search||e.id?.toLowerCase().includes(s.value.search.toLowerCase())||e.name?.toLowerCase().includes(s.value.search.toLowerCase())||e.identifier?.toLowerCase().includes(s.value.search.toLowerCase()))&&(s.value.categories.length===0||s.value.categories.includes(e.category))&&(s.value.dataTypes.length===0||s.value.dataTypes.includes(e.dataType))&&(s.value.permissions.length===0||e.permissions.some(e=>s.value.permissions.includes(e)))),[e=>e[h.value]??``],[g.value===`asc`?`asc`:`desc`])),v=o(()=>{let e=(m.value-1)*p.value,t=e+p.value;return _.value.slice(e,t)}),b=async()=>{await r.fetch({channelId:e})},x=o(()=>a.value.fetching.items.includes(e)?!0:i.value.includes(e)?!1:a.value.fetching.items.includes(e)),S=o(()=>i.value.includes(e)),C=o(()=>r.findAll().filter(t=>!e||t.channel===e).filter(e=>!e.draft).length);return t(()=>u.value,e=>{m.value=e.page??1,p.value=e.size??10},{deep:!0}),t(()=>m.value,e=>{u.value.page=e}),t(()=>p.value,e=>{u.value.size=e}),t(()=>g.value,e=>{h.value===void 0||e===null?c.value=[]:c.value=[{by:h.value,dir:e}]}),t(()=>h.value,e=>{e===void 0?c.value=[]:c.value=[{by:e,dir:g.value}]}),{properties:_,propertiesPaginated:v,totalRows:C,areLoading:x,loaded:S,fetchProperties:b,filters:s,filtersActive:f,paginateSize:p,paginatePage:m,sortBy:h,sortDir:g,resetFilter:d}},Fe=()=>{let{t:e}=r(),t=w(),n=y().getStore(H);return{remove:async r=>{let i=n.findById(r);if(i===null)throw new q(`Something went wrong, channel property can't be loaded`);S.confirm(e(`devicesModule.texts.channelsProperties.confirmRemove`,{property:i.name??e(`devicesModule.categories.channelsProperties.${i.category}`)}),e(`devicesModule.headings.channelsProperties.remove`),{confirmButtonText:e(`devicesModule.buttons.yes.title`),cancelButtonText:e(`devicesModule.buttons.no.title`),type:`warning`}).then(async()=>{try{await n.remove({id:i.id,channelId:i.channel}),t.success(e(`devicesModule.messages.channelsProperties.removed`,{property:i.name??e(`devicesModule.categories.channelsProperties.${i.category}`)}))}catch(n){if(n instanceof J&&n.code===404){let n=e(`devicesModule.messages.channelsProperties.notFound`,{property:i.name??e(`devicesModule.categories.channelsProperties.${i.category}`)});t.error(n)}else if(n instanceof J&&n.code===422)t.error(n.message);else{let n=e(`devicesModule.messages.channelsProperties.notRemoved`,{property:i.name??e(`devicesModule.categories.channelsProperties.${i.category}`)});t.error(n)}}}).catch(()=>{t.info(e(`devicesModule.messages.channelsProperties.removeCanceled`,{property:i.name??e(`devicesModule.categories.channelsProperties.${i.category}`)}))})}}},Ie=({id:e})=>{let t=y().getStore(H);return{icon:o(()=>{switch(t.findById(e)?.category){default:return`mdi:tune`}})}},Le=C({id:P().uuid().optional(),type:P().trim().nonempty(),channel:P().uuid().optional(),category:x(D).default(D.generic),identifier:P().trim().nonempty().nullable().optional(),name:P().trim().nonempty().nullable(),permissions:g(x(M)),dataType:x(F),format:g(p([P(),p([b(),h()])])).nullable(),invalid:p([P(),b(),f(),h()]),step:p([P(),b()]).transform(e=>e===``?null:Number(e)).nullable(),enterValue:f().default(!1),value:p([P(),b(),f(),h()]).optional(),enumValues:g(P()),minValue:p([P(),b()]).transform(e=>e===``?void 0:Number(e)).optional(),maxValue:p([P(),b()]).transform(e=>e===``?void 0:Number(e)).optional()}),Re=C({id:P().uuid(),type:P().trim().nonempty(),channel:P().uuid(),category:x(D).default(D.generic),identifier:P().trim().nonempty().nullable().optional(),name:P().trim().nonempty().nullable().optional(),permissions:g(x(M)),dataType:x(F),format:g(p([P(),p([b(),h()])])).nullable(),invalid:p([P(),b(),f(),h()]),step:p([P(),b()]).transform(e=>e===``?null:Number(e)).nullable(),enterValue:f().default(!1),value:p([P(),b(),f(),h()]).optional(),enumValues:g(P()),minValue:p([P(),b()]).transform(e=>e===``?void 0:Number(e)).optional(),maxValue:p([P(),b()]).transform(e=>e===``?void 0:Number(e)).optional()}),ze=({type:e})=>{let{getByType:t}=se(),n=o(()=>t(e));return{plugin:n,element:o(()=>(n.value?.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`devices-module`))))}},Be=({id:e,type:a,channelId:s})=>{let c=y(),{element:d}=ze({type:a}),f=c.getStore(H),{channels:p,fetchChannels:m,areLoading:h}=ue(),{t:g}=r(),_=w(),b=v(),x=l(K.NONE),S,C=o(()=>I.channel?p.value.find(e=>e.id===I.channel)??null:null),T=o(()=>C.value?f.findForChannel(C.value.id).map(e=>e.category):[]),E=o(()=>C.value?Ce[C.value.category]??null:null),O=o(()=>E.value===null?[]:Object.values(D).filter(e=>E.value?.required.includes(e)||E.value?.optional.includes(e)).filter(e=>!T.value.includes(e)).map(e=>({value:e,label:g(`devicesModule.categories.channelsProperties.${e}`)}))),k=o(()=>p.value.map(e=>({value:e.id,label:e.name}))),N=Object.values(M).map(e=>({value:e,label:g(`devicesModule.permissions.${e}`)})),P=Object.values(F).map(e=>({value:e,label:g(`devicesModule.dataTypes.${e}`)})),I=n({...j(d.value?.schemas?.channelPropertyAddFormSchema||Le),id:e,type:a,channel:s,category:D.generic,name:``,permissions:[],dataType:F.unknown,format:null,invalid:null,step:null,enumValues:[],minValue:void 0,maxValue:void 0,enterValue:!1,value:void 0}),L=A(i(I)),R=l(void 0),z=l(!1),B=async()=>{if(R.value.clearValidate(),!await R.value.validate())throw new Y(`Form not valid`);let t=s??I.channel;if(!t)throw new Y(`Missing channel identifier`);if(I.name===``&&(I.name=null),!I.category)throw new Y(`Missing data type definition`);I.dataType===F.enum?I.format=I.enumValues:[F.char,F.uchar,F.short,F.ushort,F.int,F.uint,F.float].includes(I.dataType)&&(I.format=[typeof I.minValue==`string`&&I.minValue!==``?Number(I.minValue):typeof I.minValue==`number`?I.minValue:null,typeof I.maxValue==`string`&&I.maxValue!==``?Number(I.maxValue):typeof I.maxValue==`number`?I.maxValue:null]),I.enterValue||delete I.value;let n=(d.value?.schemas?.channelPropertyAddFormSchema||Le).safeParse(I);if(!n.success)throw b.error(`Schema validation failed with:`,n.error),new Y(`Failed to validate create channel property model.`);x.value=K.WORKING;let r=g(`devicesModule.messages.channelsProperties.notCreated`,{device:I.name});try{await f.add({id:e,channelId:t,draft:!1,data:{...n.data,type:a}})}catch(e){throw x.value=K.ERROR,S=window.setTimeout(V,2e3),e instanceof J&&e.code===422?_.error(e.message):_.error(r),e}return x.value=K.OK,S=window.setTimeout(V,2e3),_.success(g(`devicesModule.messages.channelsProperties.created`,{device:I.name})),`added`},V=()=>{window.clearTimeout(S),x.value=K.NONE};return m().catch(()=>{}),t(I,()=>{z.value=!(0,X.isEqual)(i(I),L)}),t(()=>I.category,e=>{let t=we(C.value?.category??u.generic,e);t&&(L.permissions=t.permissions,L.dataType=t.data_type,I.permissions=t.permissions,I.dataType=t.data_type,t.invalid!==void 0&&(L.invalid=t.invalid,I.invalid=t.invalid),t.step!==void 0&&(L.step=t.step,I.step=t.step),L.dataType===F.enum?(L.enumValues=t.format??[],L.minValue=void 0,L.maxValue=void 0,I.enumValues=t.format??[],I.minValue=void 0,I.maxValue=void 0):[F.char,F.uchar,F.short,F.ushort,F.int,F.uint,F.float].includes(I.dataType)?(L.enumValues=[],L.minValue=t.format?.[0],L.maxValue=t.format?.[1],I.enumValues=[],I.minValue=t.format?.[0],I.maxValue=t.format?.[1]):(L.enumValues=[],L.minValue=void 0,L.maxValue=void 0,I.enumValues=[],I.minValue=void 0,I.maxValue=void 0),z.value=!(0,X.isEqual)(i(I),L))},{immediate:!0}),t(()=>O.value,e=>{e.length&&e[0]&&(I.category=e[0].value,L.category=e[0].value)},{immediate:!0}),{categoriesOptions:O,channelsOptions:k,permissionsOptions:N,dataTypesOptions:P,model:I,formEl:R,formChanged:z,submit:B,clear:V,formResult:x,loadingChannels:h}},Ve=({property:e,messages:a})=>{let s=y(),{element:c}=ze({type:e.type}),u=s.getStore(H),{channels:d,fetchChannels:f,areLoading:p}=ue(),{t:m}=r(),h=w(),g=v(),_=l(K.NONE),b,x=[],S,C;e.dataType===F.enum?x=e.format?e.format.map(e=>e?.toString()||``):[]:[F.char,F.uchar,F.short,F.ushort,F.int,F.uint,F.float].includes(e.dataType)&&Array.isArray(e.format)&&e.format.length===2&&(S=e.format[0],C=e.format[1]);let T=o(()=>d.value.find(t=>t.id===e.channel)??null),E=o(()=>T.value?u.findForChannel(T.value.id).filter(t=>t.id!==e.id).map(e=>e.category):[]),O=o(()=>T.value?Ce[T.value.category]??null:null),k=o(()=>O.value===null?[]:Object.values(D).filter(e=>O.value?.required.includes(e)||O.value?.optional.includes(e)).filter(e=>!E.value.includes(e)).map(e=>({value:e,label:m(`devicesModule.categories.channelsProperties.${e}`)}))),j=o(()=>d.value.map(e=>({value:e.id,label:e.name}))),N=Object.values(M).map(e=>({value:e,label:m(`devicesModule.permissions.${e}`)})),P=Object.values(F).map(e=>({value:e,label:m(`devicesModule.dataTypes.${e}`)})),I=n({...e,format:i(e.format),value:e.value?.value??null,enumValues:x,minValue:S,maxValue:C,enterValue:!1}),L=A(i(I)),R=l(void 0),z=l(!1),B=async()=>{let t=e.draft,n=a&&a.error?a.error:e.draft?m(`devicesModule.messages.channelsProperties.notCreated`,{property:e.name??m(`devicesModule.categories.channelsProperties.${e.category}`)}):m(`devicesModule.messages.channelsProperties.notEdited`,{property:e.name??m(`devicesModule.categories.channelsProperties.${e.category}`)});if(R.value.clearValidate(),!await R.value.validate())throw new Y(`Form not valid`);I.name===``&&(I.name=null),e.dataType===F.enum?I.format=I.enumValues:[F.char,F.uchar,F.short,F.ushort,F.int,F.uint,F.float].includes(e.dataType)&&(I.format=[I.minValue??null,I.maxValue??null]),I.enterValue||delete I.value;let r=(c.value?.schemas?.channelPropertyEditFormSchema||Re).safeParse(I);if(!r.success)throw g.error(`Schema validation failed with:`,r.error),new Y(`Failed to validate edit channel property model.`);_.value=K.WORKING;try{await u.edit({id:e.id,channelId:e.channel,data:{...r.data,type:e.type}}),e.draft&&await u.save({id:e.id,channelId:e.channel})}catch(e){throw _.value=K.ERROR,b=window.setTimeout(V,2e3),e instanceof J&&e.code===422?h.error(e.message):h.error(n),e}return _.value=K.OK,b=window.setTimeout(V,2e3),t?(h.success(m(a&&a.success?a.success:`devicesModule.messages.channelsProperties.created`,{property:e.name??m(`devicesModule.categories.channelsProperties.${e.category}`)})),`added`):(h.success(m(a&&a.success?a.success:`devicesModule.messages.channelsProperties.edited`,{property:e.name??m(`devicesModule.categories.channelsProperties.${e.category}`)})),z.value=!1,L=A(i(I)),`saved`)},V=()=>{window.clearTimeout(b),_.value=K.NONE};return f().catch(()=>{}),t(I,()=>{z.value=!(0,X.isEqual)(i(I),L)}),{categoriesOptions:k,channelsOptions:j,permissionsOptions:N,dataTypesOptions:P,model:I,formEl:R,formChanged:z,submit:B,clear:V,formResult:_,loadingChannels:p}},He=({id:e})=>{let t=y().getStore(V),{data:n,semaphore:r}=L(t);return{device:o(()=>e===null?null:n.value[e]??null),isLoading:o(()=>r.value.fetching.item.includes(e)?!0:(n.value[e]??null)===null?r.value.fetching.items:!1),fetchDevice:async()=>{(n.value[e]??null)?.draft||await t.get({id:e})}}},$={search:void 0,types:[],state:`all`,states:[],categories:[],enabled:`all`,validation:`all`},Ue={by:`name`,dir:`asc`},We=()=>{let e=y(),n=e.getStore(V),r=e.getStore(U),{firstLoad:i,semaphore:a}=L(n),{filters:s,sort:c,pagination:u,reset:d}=O({key:`${G}:devices:list`,filters:{schema:de,defaults:$},sort:{defaults:[Ue]},pagination:{defaults:{page:1,size:10}},syncQuery:!0,version:1}),f=o(()=>s.value.search!==$.search||!(0,X.isEqual)(s.value.types,$.types)||s.value.state!==$.state||!(0,X.isEqual)(s.value.states,$.states)||!(0,X.isEqual)(s.value.categories,$.categories)||!(0,X.isEqual)(s.value.enabled,$.enabled)||s.value.validation!==$.validation),p=l(u.value.size||10),m=l(u.value.page||1),h=l(c.value.length>0?c.value[0]?.by:void 0),g=l(c.value.length>0?c.value[0]?.dir??null:null),_=e=>r.findById(e)?.isValid??null,v=o(()=>N(n.findAll().filter(e=>!e.draft&&(!s.value.search||e.id.toLowerCase().includes(s.value.search.toLowerCase())||e.name.toLowerCase().includes(s.value.search.toLowerCase())||e.description?.toLowerCase().includes(s.value.search.toLowerCase())||e.identifier?.toLowerCase().includes(s.value.search.toLowerCase()))&&(s.value.types.length===0||s.value.types.includes(e.type))&&(s.value.categories.length===0||s.value.categories.includes(e.category))&&(s.value.enabled===`all`||s.value.enabled===`enabled`&&e.enabled||s.value.enabled===`disabled`&&!e.enabled)&&(s.value.states.length===0||s.value.states.includes(e.status?.status??k.unknown))&&(s.value.state===`all`||s.value.state===`online`&&[k.ready,k.connected,k.running].includes(e.status.status)||s.value.state===`offline`&&[k.disconnected,k.stopped,k.lost,k.unknown].includes(e.status.status))&&(s.value.validation===`all`||s.value.validation===`valid`&&_(e.id)===!0||s.value.validation===`invalid`&&_(e.id)===!1)),[e=>h.value===`state`?e.status?.status??k.unknown:e[h.value]??``],[g.value===`asc`?`asc`:`desc`])),b=o(()=>{let e=(m.value-1)*p.value,t=e+p.value;return v.value.slice(e,t)}),x=async()=>{await n.fetch()},S=o(()=>a.value.fetching.items||!i.value),C=o(()=>i.value),w=o(()=>n.findAll().filter(e=>!e.draft).length);return t(()=>u.value,e=>{m.value=e.page??1,p.value=e.size??10},{deep:!0}),t(()=>m.value,e=>{u.value.page=e}),t(()=>p.value,e=>{u.value.size=e}),t(()=>g.value,e=>{h.value===void 0||e===null?c.value=[]:c.value=[{by:h.value,dir:e}]}),t(()=>h.value,e=>{e===void 0?c.value=[]:c.value=[{by:e,dir:g.value}]}),{devices:v,devicesPaginated:b,totalRows:w,areLoading:S,loaded:C,fetchDevices:x,filters:s,filtersActive:f,paginateSize:p,paginatePage:m,sortBy:h,sortDir:g,resetFilter:d}},Ge=()=>{let{t:e}=r(),t=w(),n=y().getStore(V);return{remove:async r=>{let i=n.findById(r);if(i===null)throw new q(`Something went wrong, device can't be loaded`);S.confirm(e(`devicesModule.texts.devices.confirmRemove`,{device:i.name}),e(`devicesModule.headings.devices.remove`),{confirmButtonText:e(`devicesModule.buttons.yes.title`),cancelButtonText:e(`devicesModule.buttons.no.title`),type:`warning`}).then(async()=>{try{await n.remove({id:i.id}),t.success(e(`devicesModule.messages.devices.removed`,{device:i.name}))}catch(n){if(n instanceof J&&n.code===404){let n=e(`devicesModule.messages.devices.notFound`,{device:i.name});t.error(n)}else if(n instanceof J&&n.code===422)t.error(n.message);else{let n=e(`devicesModule.messages.devices.notRemoved`,{device:i.name});t.error(n)}}}).catch(()=>{t.info(e(`devicesModule.messages.devices.removeCanceled`,{device:i.name}))})},bulkRemove:async r=>{if(r.length!==0)try{await S.confirm(e(`devicesModule.texts.devices.confirmBulkRemove`,{count:r.length}),e(`devicesModule.headings.devices.bulkRemove`),{confirmButtonText:e(`devicesModule.buttons.yes.title`),cancelButtonText:e(`devicesModule.buttons.no.title`),type:`warning`});let i=0,a=0;for(let e of r)try{await n.remove({id:e.id}),i++}catch{a++}i>0&&t.success(e(`devicesModule.messages.devices.bulkRemoved`,{count:i})),a>0&&t.error(e(`devicesModule.messages.devices.bulkRemoveFailed`,{count:a}))}catch{}},bulkEnable:async r=>{if(r.length!==0)try{await S.confirm(e(`devicesModule.texts.devices.confirmBulkEnable`,{count:r.length}),e(`devicesModule.headings.devices.bulkEnable`),{confirmButtonText:e(`devicesModule.buttons.yes.title`),cancelButtonText:e(`devicesModule.buttons.no.title`),type:`info`});let i=0,a=0;for(let e of r)try{await n.edit({id:e.id,data:{type:e.type,enabled:!0}}),i++}catch{a++}i>0&&t.success(e(`devicesModule.messages.devices.bulkEnabled`,{count:i})),a>0&&t.error(e(`devicesModule.messages.devices.bulkEnableFailed`,{count:a}))}catch{t.info(e(`devicesModule.messages.devices.bulkEnableCanceled`))}},bulkDisable:async r=>{if(r.length!==0)try{await S.confirm(e(`devicesModule.texts.devices.confirmBulkDisable`,{count:r.length}),e(`devicesModule.headings.devices.bulkDisable`),{confirmButtonText:e(`devicesModule.buttons.yes.title`),cancelButtonText:e(`devicesModule.buttons.no.title`),type:`warning`});let i=0,a=0;for(let e of r)try{await n.edit({id:e.id,data:{type:e.type,enabled:!1}}),i++}catch{a++}i>0&&t.success(e(`devicesModule.messages.devices.bulkDisabled`,{count:i})),a>0&&t.error(e(`devicesModule.messages.devices.bulkDisableFailed`,{count:a}))}catch{t.info(e(`devicesModule.messages.devices.bulkDisableCanceled`))}}}},Ke=({id:e})=>{let t=y().getStore(V);return{icon:o(()=>{switch(t.findById(e)?.category){default:return`mdi:devices`}})}},qe=({id:e})=>{let t=y(),n=t.getStore(V),r=t.getStore(W),i=e=>n.findById(e),a=e=>Se[e.category]??null;return{canAddAnotherChannel:o(()=>{let t=i(e);if(t===null)return!0;let{required:n,optional:o,multiple:s}=a(t)??{required:[],optional:[]},c=[...n,...o],l=r.findForDevice(t.id).map(e=>e.category);return c.filter(e=>!l.includes(e)).length>0||s!==void 0&&s.length>0}),missingRequiredChannels:o(()=>{let t=i(e);if(t===null)throw new q(`Something went wrong, device can't be loaded`);let{required:n}=a(t)??{required:[]},o=r.findForDevice(t.id).map(e=>e.category);return n.filter(e=>!o.includes(e))})}},Je=C({id:P().uuid().optional(),type:P().trim().nonempty(),category:x(_).default(_.generic),identifier:P().trim().nonempty().nullable().optional(),name:P().trim().nonempty(),description:P().trim().transform(e=>e===``?null:e).nullable().optional(),enabled:f().default(!0).optional()}),Ye=C({id:P().uuid(),type:P().trim().nonempty(),category:x(_).default(_.generic),identifier:P().trim().nonempty().nullable().optional(),name:P().trim().nonempty().optional(),description:P().trim().transform(e=>e===``?null:e).nullable().optional(),enabled:f().optional(),roomId:P().uuid().nullable().optional()}),Xe=()=>{let e=d(),{enabled:t}=E(),n=[`deviceAddForm`,`deviceEditForm`],r=[`deviceSchema`,`deviceAddFormSchema`,`deviceEditFormSchema`,`deviceCreateReqSchema`,`deviceUpdateReqSchema`],i=o(()=>e.getPlugins().filter(e=>e.modules===void 0||e.modules.includes(`devices-module`)?(e.elements??[]).some(e=>{if(!(e.modules===void 0||e.modules.includes(`devices-module`)))return!1;let t=n.length===0||!!e.components&&n.some(t=>e.components&&t in e.components),i=r.length===0||!!e.schemas&&r.some(t=>e.schemas&&t in e.schemas);return t||i}):!1));return{plugins:i,options:o(()=>N(i.value.flatMap(e=>(e.elements??[]).filter(e=>e.modules===void 0||e.modules.includes(`devices-module`)).map(n=>({value:n.type,label:n.name?.trim()?n.name:e.name,disabled:!t(e.type)}))),[e=>e.label],[`asc`])),getByName:e=>i.value.find(t=>t.type===e),getByType:e=>i.value.find(t=>(t.elements??[]).some(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`devices-module`)))),getElement:e=>{for(let t of i.value){let n=(t.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`devices-module`)));if(n)return n}}}},Ze=({type:e})=>{let{getByType:t}=Xe(),n=o(()=>t(e));return{plugin:n,element:o(()=>(n.value?.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`devices-module`))))}},Qe=({id:e,type:a})=>{let o=y(),{element:s}=Ze({type:a}),c=o.getStore(V),{t:u}=r(),d=w(),f=v(),p=l(K.NONE),m,h=Object.values(_).map(e=>({value:e,label:u(`devicesModule.categories.devices.${e}`)})),g=n({...j(s.value?.schemas?.deviceAddFormSchema||Je),id:e,type:a,category:_.generic,name:``,description:``}),b=A(i(g)),x=l(void 0),S=l(!1),C=async()=>{if(x.value.clearValidate(),!await x.value.validate())throw new Y(`Form not valid`);let t=(s.value?.schemas?.deviceAddFormSchema||Je).safeParse(g);if(!t.success)throw f.error(`Schema validation failed with:`,t.error),new Y(`Failed to validate create device model.`);p.value=K.WORKING;let n=u(`devicesModule.messages.devices.notCreated`,{device:g.name});try{await c.add({id:e,draft:!1,data:{...t.data,type:a}})}catch(e){throw p.value=K.ERROR,m=window.setTimeout(T,2e3),e instanceof J&&e.code===422?d.error(e.message):d.error(n),e}return p.value=K.OK,m=window.setTimeout(T,2e3),d.success(u(`devicesModule.messages.devices.created`,{device:g.name})),`added`},T=()=>{window.clearTimeout(m),p.value=K.NONE};return t(g,()=>{S.value=!(0,X.isEqual)(i(g),b)}),{categoriesOptions:h,model:g,formEl:x,formChanged:S,submit:C,clear:T,formResult:p}},$e=({device:e,messages:a})=>{let o=y(),{element:s}=Ze({type:e.type}),c=o.getStore(V),{t:u}=r(),d=w(),f=v(),p=l(K.NONE),m,h=Object.values(_).map(e=>({value:e,label:u(`devicesModule.categories.devices.${e}`)})),g=n(e),b=A(i(g)),x=l(void 0),S=l(!1),C=async()=>{let t=e.draft,n=a&&a.error?a.error:e.draft?u(`devicesModule.messages.devices.notCreated`,{device:e.name}):u(`devicesModule.messages.devices.notEdited`,{device:e.name});if(x.value.clearValidate(),!await x.value.validate())throw new Y(`Form not valid`);let r=(s.value?.schemas?.deviceEditFormSchema||Ye).safeParse(g);if(!r.success)throw f.error(`Schema validation failed with:`,r.error),new Y(`Failed to validate edit device model.`);p.value=K.WORKING;try{await c.edit({id:e.id,data:{...r.data,type:e.type}}),e.draft&&await c.save({id:e.id})}catch(e){throw p.value=K.ERROR,m=window.setTimeout(T,2e3),e instanceof J&&e.code===422?d.error(e.message):d.error(n),e}return p.value=K.OK,m=window.setTimeout(T,2e3),t?(d.success(u(a&&a.success?a.success:`devicesModule.messages.devices.created`,{device:e.name})),`added`):(d.success(u(a&&a.success?a.success:`devicesModule.messages.devices.edited`,{device:e.name})),S.value=!1,b=A(i(g)),`saved`)},T=()=>{window.clearTimeout(m),p.value=K.NONE};return t(g,()=>{S.value=!(0,X.isEqual)(i(g),b)}),{categoriesOptions:h,model:g,formEl:x,formChanged:S,submit:C,clear:T,formResult:p}},et=()=>{let e=y().getStore(U),{data:t,semaphore:n,firstLoad:r}=L(e);return{validation:o(()=>t.value),summary:o(()=>t.value?.summary??null),invalidDevices:o(()=>t.value?t.value.devices.filter(e=>!e.isValid):[]),isLoading:o(()=>n.value.fetching.items),isLoaded:o(()=>r.value),fetchValidation:async()=>{await e.fetch()},findById:t=>e.findById(t),isDeviceValid:t=>{let n=e.findById(t);return n?n.isValid:null},getDeviceIssueCount:t=>{let n=e.findById(t);return n?n.issues.length:0}}},tt=({id:e})=>{let t=y().getStore(U),{semaphore:n}=L(t);return{validation:o(()=>t.findById(e)),isValid:o(()=>{let n=t.findById(e);return n?n.isValid:null}),issues:o(()=>{let n=t.findById(e);return n?n.issues:[]}),errorCount:o(()=>{let n=t.findById(e);return n?n.issues.filter(e=>e.severity===`error`).length:0}),warningCount:o(()=>{let n=t.findById(e);return n?n.issues.filter(e=>e.severity===`warning`).length:0}),isLoading:o(()=>n.value.fetching.item.includes(e)),fetchValidation:async()=>{await t.get({id:e})}}},nt=300,rt=1e4,it=({id:n})=>{let r=y(),i=r.getStore(V),a=r.getStore(W),s=r.getStore(H),{data:c,semaphore:d}=L(i),{data:f,semaphore:p,firstLoad:m}=L(a),{semaphore:h,firstLoad:g}=L(s),{sendCommand:_}=I(),v={},b={},x={},S=l({}),C=l({}),w=o(()=>n===null?null:c.value[n]??null),T=o(()=>Object.values(f.value).filter(e=>e.device===n&&e.category!==u.device_information)),E=o(()=>T.value.filter(e=>s.findForChannel(e.id).some(e=>e.permissions.includes(M.rw)||e.permissions.includes(M.wo)))),D=o(()=>E.value.length>0),O=e=>s.findForChannel(e),k=e=>e.permissions.includes(M.rw)||e.permissions.includes(M.wo),A=e=>{let t=S.value[e];return t===void 0?s.findById(e)?.value?.value??null:t},j=e=>C.value[e]??!1,N=(e,t)=>{if(t!==void 0){let n=S.value[e];if(n!==t&&String(n)!==String(t))return}delete S.value[e],x[e]&&(clearTimeout(x[e]),delete x[e])},P=(e,t)=>{x[e]&&clearTimeout(x[e]),x[e]=setTimeout(()=>{let n=S.value[e];(n===t||String(n)===String(t))&&delete S.value[e],delete x[e]},rt)},F=async(e,t,r)=>s.findById(t)?(v[t]&&(clearTimeout(v[t]),delete v[t],b[t]&&(b[t](!1),delete b[t])),S.value[t]=r,new Promise(i=>{b[t]=i;let a=setTimeout(async()=>{delete b[t],C.value[t]=!0;try{await _(ae.CHANNEL_PROPERTY_SET,{context:{origin:`admin`},properties:[{device:n,channel:e,property:t,value:r}]},`DevicesModule.Internal.SetPropertyValue`)===!0?(P(t,r),i(!0)):(N(t,r),i(!1))}catch{N(t,r),i(!1)}finally{C.value[t]=!1,v[t]===a&&delete v[t]}},nt);v[t]=a})):!1,R=async()=>{(n in c.value?c.value[n]:null)?.draft||await i.get({id:n})},z=async()=>{await a.fetch({deviceId:n})},B=async()=>{let e=Object.values(f.value).filter(e=>e.device===n);for(let t of e)await s.fetch({channelId:t.id})},ee=o(()=>{if(d.value.fetching.item.includes(n)||p.value.fetching.items.includes(n))return!0;for(let e of T.value)if(h.value.fetching.items.includes(e.id))return!0;return!1}),U=o(()=>m.value.includes(n)),te=o(()=>{if(!U.value)return!1;for(let e of T.value)if(!g.value.includes(e.id))return!1;return!0});return t(()=>{let e={};for(let t of Object.keys(S.value)){let n=s.findById(t);n&&(e[t]=n.value?.value??null)}return e},e=>{for(let[t,n]of Object.entries(S.value)){let r=e[t];(r===n||String(r)===String(n))&&N(t)}},{deep:!0}),e(()=>{for(let e of Object.keys(v))clearTimeout(v[e]),delete v[e],b[e]&&(b[e](!1),delete b[e]);for(let e of Object.keys(x))clearTimeout(x[e]),delete x[e]}),{device:w,channels:T,controllableChannels:E,hasControllableProperties:D,isLoading:ee,areChannelsLoaded:U,arePropertiesLoaded:te,fetchDevice:R,fetchChannels:z,fetchProperties:B,getPropertiesForChannel:O,isPropertyWritable:k,getPropertyValue:A,isPropertyLoading:j,setPropertyValue:F}},at=({deviceId:e})=>{let t=y().getStore(ee),{firstLoad:n,semaphore:r}=L(t);return{controls:o(()=>t.findForDevice(e)),areLoading:o(()=>r.value.fetching.items.includes(e)),loaded:o(()=>n.value.includes(e)),fetchControls:async()=>t.fetch({deviceId:e})}},ot=e=>{let n=B(),r=v(),i=l({}),u=l(!1),d=l(!1),f=l(!1),p=l(void 0),m=l(!1),h=null,g=0,_=o(()=>Object.values(i.value).sort((e,t)=>new Date(t.ts).getTime()-new Date(e.ts).getTime())),y=o(()=>{let e=[T.warn,T.error,T.fatal,T.fail];return _.value.filter(t=>e.includes(t.type))}),b=o(()=>y.value.length),x=o(()=>b.value>0),S=async()=>{let t=a(e.deviceId);h=t,g++;let o=g;d.value=!0;try{let{data:e,error:a}=await n.client.GET(`/${s}/${z}/logs`,{params:{query:{resource:t,limit:50}}});if(h!==t||g!==o)return;e===void 0?a&&r.error(`Failed to fetch device logs:`,a):(i.value=Object.fromEntries(e.data.map(e=>{let t=ne(e);return[t.id,t]})),f.value=!0,u.value=e.metadata.has_more,p.value=e.metadata.next_cursor)}catch(e){h===t&&g===o&&r.error(`Error fetching device logs:`,e)}finally{h===t&&g===o&&(d.value=!1)}},C=async()=>{if(d.value||!u.value||!p.value)return;let t=a(e.deviceId),o=p.value,c=g;d.value=!0;try{let{data:e,error:a}=await n.client.GET(`/${s}/${z}/logs`,{params:{query:{resource:t,after_id:o,limit:50}}});if(h!==t||g!==c)return;if(e!==void 0){let t=Object.fromEntries(e.data.map(e=>{let t=ne(e);return[t.id,t]}));i.value={...i.value,...t},u.value=e.metadata.has_more,p.value=e.metadata.next_cursor}else a&&r.error(`Failed to load more device logs:`,a)}catch(e){h===t&&g===c&&r.error(`Error loading more device logs:`,e)}finally{h===t&&g===c&&(d.value=!1)}},w=async()=>{i.value={},p.value=void 0,u.value=!1,f.value=!1,await S()},E=null;return t(()=>m.value,e=>{E&&=(clearInterval(E),null),e&&(E=setInterval(()=>{d.value||S()},3e3))}),c(()=>{E&&=(clearInterval(E),null)}),t(()=>a(e.deviceId),()=>{w()}),{logs:_,alertLogs:y,alertCount:b,hasAlerts:x,hasMore:u,isLoading:d,loaded:f,live:m,fetchLogs:S,loadMoreLogs:C,refreshLogs:w}};export{we as A,Y as B,Pe as C,ke as D,Ae as E,le as F,K as G,G as H,ce as I,oe as K,se as L,ge as M,he as N,Te as O,ue as P,J as R,Fe as S,je as T,re as U,ie as V,ae as W,Ve as _,et as a,Re as b,Ze as c,Ye as d,qe as f,He as g,We as h,tt as i,_e as j,xe as k,Xe as l,Ge as m,at as n,$e as o,Ke as p,it as r,Qe as s,ot as t,Je as u,Be as v,Me as w,Ie as x,Le as y,q as z};
@@ -1 +0,0 @@
1
- import"./chunk-DECur_0Z.js";import{Nr as e,Xr as t,ci as n,d as r,fi as i,mr as a,ui as o}from"./icon-with-child-DmQ_XhQy.js";import{A as s,Fn as c,Ht as l,Jn as u,Kn as d,Mn as f,Pn as p,S as m,T as h,Un as g,Vn as _,Vr as v,Wn as y,Yn as b,_ as x,an as S,f as C,m as w,pn as T,qn as E,qt as D,va as O,wn as k,zn as A}from"./common-DyDAwGBz.js";import{t as ee}from"./useSpaces-LfBlMH_H.js";import{o as j,s as M}from"./composables-UlKjXsBi.js";var N=`scenes`,P=`scenes-module`,F=`ScenesModule.`,I=function(e){return e.TRIGGER_SCENE=`ScenesModule.TriggerScene`,e}({}),L=function(e){return e.TRIGGER_SCENE=`ScenesModule.TriggerSceneHandler`,e}({}),R=function(e){return e.SCENE_CREATED=`ScenesModule.Scene.Created`,e.SCENE_UPDATED=`ScenesModule.Scene.Updated`,e.SCENE_DELETED=`ScenesModule.Scene.Deleted`,e.SCENE_TRIGGERED=`ScenesModule.Scene.Triggered`,e.SCENE_EXECUTION_STARTED=`ScenesModule.Scene.ExecutionStarted`,e.SCENE_EXECUTION_COMPLETED=`ScenesModule.Scene.ExecutionCompleted`,e.SCENE_EXECUTION_FAILED=`ScenesModule.Scene.ExecutionFailed`,e.SCENE_ACTION_CREATED=`ScenesModule.SceneAction.Created`,e.SCENE_ACTION_UPDATED=`ScenesModule.SceneAction.Updated`,e.SCENE_ACTION_DELETED=`ScenesModule.SceneAction.Deleted`,e}({}),z=function(e){return e.GENERIC=`generic`,e.LIGHTING=`lighting`,e.CLIMATE=`climate`,e.MEDIA=`media`,e.WORK=`work`,e.RELAX=`relax`,e.NIGHT=`night`,e.MORNING=`morning`,e.PARTY=`party`,e.MOVIE=`movie`,e.AWAY=`away`,e.HOME=`home`,e.SECURITY=`security`,e.ENERGY=`energy`,e.CUSTOM=`custom`,e}({}),B=function(e){return e.NONE=`none`,e.WORKING=`working`,e.ERROR=`error`,e.OK=`ok`,e}({}),V={SCENES:`scenes_module-scenes`,SCENES_ADD:`scenes_module-scenes_add`,SCENES_EDIT:`scenes_module-scenes_edit`,SCENE:`scenes_module-scene`,SCENE_EDIT:`scenes_module-scene_edit`,SCENE_ADD_ACTION:`scenes_module-scene_add_action`,SCENE_EDIT_ACTION:`scenes_module-scene_edit_action`},H={[z.GENERIC]:`mdi:playlist-play`,[z.LIGHTING]:`mdi:lightbulb-group`,[z.CLIMATE]:`mdi:thermostat`,[z.MEDIA]:`mdi:television-play`,[z.WORK]:`mdi:briefcase`,[z.RELAX]:`mdi:sofa`,[z.NIGHT]:`mdi:weather-night`,[z.MORNING]:`mdi:weather-sunset-up`,[z.PARTY]:`mdi:party-popper`,[z.MOVIE]:`mdi:movie-open`,[z.AWAY]:`mdi:home-export-outline`,[z.HOME]:`mdi:home-import-outline`,[z.SECURITY]:`mdi:shield-home`,[z.ENERGY]:`mdi:flash`,[z.CUSTOM]:`mdi:shape-outline`},U=y({search:E().optional(),categories:p(_(z)),primarySpaceId:u([E().uuid(),A(`whole_home`)]).optional(),enabled:f([`all`,`enabled`,`disabled`]).default(`all`)}),W=({id:e})=>{let t=h(),n=t.getStore(M),r=t.getStore(j),{data:i,semaphore:o}=O(n);return{scene:a(()=>e===null?null:i.value.get(e)??null),isLoading:a(()=>o.value.fetching.item.includes(e)?!0:i.value.get(e)===void 0?o.value.fetching.items:!1),fetchScene:async()=>{i.value.get(e)?.draft||(await n.get({id:e}),await r.fetch({sceneId:e}))}}},G=y({id:E().uuid().optional(),type:E().trim().nonempty(),configuration:d(E(),b()).default({}),order:g().int().min(0).optional(),enabled:c().default(!0)}).catchall(b());y({id:E().uuid(),type:E().trim().nonempty(),configuration:d(E(),b()).optional(),order:g().int().min(0).optional(),enabled:c().optional()}).catchall(b());var K=y({id:E().uuid().optional(),name:E().trim().nonempty(),description:E().trim().transform(e=>e===``?null:e).nullable().optional(),category:_(z).default(z.GENERIC),enabled:c().default(!0),order:g().optional(),primarySpaceId:E().uuid().nullable().optional().transform(e=>e===``?null:e),actions:p(G).default([])}),q=y({id:E().uuid(),name:E().trim().nonempty().optional(),description:E().trim().transform(e=>e===``?null:e).nullable().optional(),category:_(z).optional(),enabled:c().optional(),order:g().optional(),primarySpaceId:E().uuid().nullable().optional().transform(e=>e===``?null:e),actions:p(G).default([])}),J=class extends Error{exception;constructor(e,t=null){super(e),this.name=`ScenesException`,this.exception=t}},Y=class extends J{code;constructor(e,t=null,n=null){super(e,n),this.name=`ScenesApiException`,this.code=t}},X=class extends J{constructor(e,t=null){super(e,t),this.name=`ScenesValidationException`}},te=()=>{let e=s(),{enabled:t}=S(),n=[`sceneActionAddForm`,`sceneActionEditForm`,`sceneActionCard`],r=[`sceneActionSchema`,`sceneActionAddFormSchema`,`sceneActionEditFormSchema`,`sceneActionCreateReqSchema`,`sceneActionUpdateReqSchema`],i=a(()=>e.getPlugins().filter(e=>e.modules===void 0||e.modules.includes(`scenes-module`)?(e.elements??[]).some(e=>{if(!(e.modules===void 0||e.modules.includes(`scenes-module`)))return!1;let t=n.length===0||!!e.components&&n.some(t=>e.components&&t in e.components),i=r.length===0||!!e.schemas&&r.some(t=>e.schemas&&t in e.schemas);return t||i}):!1));return{plugins:i,options:a(()=>T(i.value.flatMap(e=>(e.elements??[]).filter(e=>{let t=e.modules===void 0||e.modules.includes(`scenes-module`),r=!!e.components&&n.some(t=>e.components&&t in e.components);return t&&r}).map(n=>({value:n.type,label:n.name?.trim()?n.name:e.name,disabled:!t(e.type)}))),[e=>e.label],[`asc`])),getByName:e=>i.value.find(t=>t.type===e),getByType:e=>i.value.find(t=>(t.elements??[]).some(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`scenes-module`)))),getElement:e=>{for(let t of i.value){let n=(t.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`scenes-module`)));if(n)return n}}}},Z=k(),ne=({id:e})=>{let s=h(),c=s.getStore(M),u=s.getStore(j),{t:d}=r(),f=x(),p=m(),{spaces:g,fetching:_,fetchSpaces:v}=ee(),y=o(B.NONE),b,S=a(()=>Object.values(z).map(e=>({value:e,label:d(`scenes.categories.${e}`),icon:H[e]}))),C=a(()=>{let e=g.value.filter(e=>e.type===l.ROOM).map(e=>({value:e.id,label:e.name,icon:D(e)})).sort((e,t)=>e.label.localeCompare(t.label)),t=g.value.filter(e=>e.type===l.ZONE).map(e=>({value:e.id,label:e.name,icon:D(e)})).sort((e,t)=>e.label.localeCompare(t.label)),n=[];return e.length>0&&n.push({type:l.ROOM,label:d(`scenes.form.spaceGroups.rooms`),icon:`mdi:door`,options:e}),t.length>0&&n.push({type:l.ZONE,label:d(`scenes.form.spaceGroups.zones`),icon:`mdi:map-marker-radius`,options:t}),n}),T=n({id:e,category:z.GENERIC,name:``,description:null,enabled:!0,primarySpaceId:null,actions:[]}),{options:E,getElement:O}=te(),k=e=>{let t=e.propertyId;return t&&T.actions.find(e=>e.propertyId===t)?(f.warning(d(`scenes.messages.duplicateAction`)),!1):(T.actions.push(e),!0)},A=e=>{T.actions.splice(e,1)},N=(e,t)=>{e>=0&&e<T.actions.length&&(T.actions[e]=t)},P=e=>O(e)?.components?.sceneActionCard??null,F=e=>O(e)?.components?.sceneActionAddForm??null,I=e=>O(e)?.components?.sceneActionEditForm??null,L=e=>E.value.find(t=>t.value===e)?.label??e,R=w(i(T)),V=o(void 0),U=o(!1),W=async(e,t)=>{try{for(let n=0;n<t.length;n++){let r=t[n];r&&await u.add({sceneId:e,data:{...r,order:n,enabled:r.enabled??!0}})}}catch(e){throw p.error(`Error syncing scene actions:`,e),e}},G=async()=>{if(V.value.clearValidate(),!await V.value.validate())throw new X(`Form not valid`);let t=K.safeParse(T);if(!t.success)throw p.error(`Schema validation failed with:`,t.error),new X(`Failed to validate create scene model.`);y.value=B.WORKING;let n=d(`scenes.messages.createFailed`);try{let n=await c.add({id:e,draft:!1,data:t.data});t.data.actions.length>0&&await W(n.id,t.data.actions)}catch(e){throw y.value=B.ERROR,b=window.setTimeout(q,2e3),e instanceof Y&&e.code===422?f.error(e.message):f.error(n),e}return y.value=B.OK,b=window.setTimeout(q,2e3),f.success(d(`scenes.messages.created`)),`added`},q=()=>{window.clearTimeout(b),y.value=B.NONE};return t(T,()=>{U.value=!(0,Z.isEqual)(i(T),R)}),{categoriesOptions:S,spacesOptionsGrouped:C,model:T,formEl:V,formChanged:U,submit:G,clear:q,formResult:y,loadingSpaces:_,fetchSpaces:v,actionPluginOptions:E,addAction:k,removeAction:A,updateAction:N,getActionCardComponent:P,getActionFormComponent:F,getActionEditFormComponent:I,getPluginLabel:L}},re=({scene:s,messages:c})=>{let u=h(),d=u.getStore(M),f=u.getStore(j),{t:p}=r(),g=x(),_=m(),{spaces:v,fetching:y,fetchSpaces:b}=ee(),S=o(B.NONE),C=a(()=>f.findForScene(s.id)),T=o(w(C.value)),E,O=a(()=>Object.values(z).map(e=>({value:e,label:p(`scenes.categories.${e}`),icon:H[e]}))),k=a(()=>{let e=v.value.filter(e=>e.type===l.ROOM).map(e=>({value:e.id,label:e.name,icon:D(e)})).sort((e,t)=>e.label.localeCompare(t.label)),t=v.value.filter(e=>e.type===l.ZONE).map(e=>({value:e.id,label:e.name,icon:D(e)})).sort((e,t)=>e.label.localeCompare(t.label)),n=[];return e.length>0&&n.push({type:l.ROOM,label:p(`scenes.form.spaceGroups.rooms`),icon:`mdi:door`,options:e}),t.length>0&&n.push({type:l.ZONE,label:p(`scenes.form.spaceGroups.zones`),icon:`mdi:map-marker-radius`,options:t}),n}),A=a(()=>C.value.map(e=>({...e}))),N=n({id:s.id,category:s.category,name:s.name,description:s.description,enabled:s.enabled,primarySpaceId:s.primarySpaceId,actions:A.value}),{options:P,getElement:F}=te(),I=e=>{let t=e.propertyId;return t&&N.actions.find(e=>e.propertyId===t)?(g.warning(p(`scenes.messages.duplicateAction`)),!1):(N.actions.push(e),!0)},L=e=>{N.actions.splice(e,1)},R=(e,t)=>{e>=0&&e<N.actions.length&&(N.actions[e]=t)},V=e=>F(e)?.components?.sceneActionCard??null,U=e=>F(e)?.components?.sceneActionAddForm??null,W=e=>F(e)?.components?.sceneActionEditForm??null,G=e=>P.value.find(t=>t.value===e)?.label??e,K=o(void 0),J=o(!1),ne=w(i(N)),re=async(e,t)=>{try{let n=new Set(T.value.map(e=>e.id)),r=new Set(t.filter(e=>e.id).map(e=>e.id));for(let t of T.value)r.has(t.id)||await f.remove({id:t.id,sceneId:e});let i=new Map;for(let r=0;r<t.length;r++){let a=t[r];if(!a)continue;let o=a.id;if(!o||!n.has(o)){let t=await f.add({sceneId:e,data:{...a,order:r,enabled:a.enabled??!0}});i.set(r,t.id)}else{let t=T.value.find(e=>e.id===o);if(t){let n=new Set([`id`,`draft`,`createdAt`,`updatedAt`,`scene`]),i=e=>Object.fromEntries(Object.entries(e).filter(([e])=>!n.has(e)));(0,Z.isEqual)(i(t),{...i(a),order:r})||await f.edit({id:o,sceneId:e,data:{...a,order:r}})}}}for(let[e,t]of i){let n=N.actions[e];n&&(n.id=t)}T.value=w(f.findForScene(e))}catch(e){throw _.error(`Error syncing scene actions:`,e),e}},ie=async()=>{let e=s.draft,t=c&&c.error?c.error:s.draft?p(`scenes.messages.createFailed`):p(`scenes.messages.editFailed`,{scene:s.name});if(K.value.clearValidate(),!await K.value.validate())throw new X(`Form not valid`);let n=q.safeParse(N);if(!n.success)throw _.error(`Schema validation failed with:`,n.error),new X(`Failed to validate edit scene model.`);S.value=B.WORKING;try{await d.edit({id:s.id,data:n.data});let t=s.id;if(e){let e=await d.save({id:s.id});N.id=e.id,N.category=e.category,N.name=e.name,N.description=e.description,N.enabled=e.enabled,N.primarySpaceId=e.primarySpaceId,t=e.id}await re(t,n.data.actions)}catch(e){throw S.value=B.ERROR,E=window.setTimeout(Q,2e3),e instanceof Y&&e.code===422?g.error(e.message):e instanceof X||(g.error(t),_.error(`Scene edit failed:`,e)),e}return S.value=B.OK,E=window.setTimeout(Q,2e3),e?(g.success(p(c&&c.success?c.success:`scenes.messages.created`)),`added`):(g.success(p(c&&c.success?c.success:`scenes.messages.edited`,{scene:s.name})),J.value=!1,ne=w(i(N)),`saved`)},Q=()=>{window.clearTimeout(E),S.value=B.NONE};return t(N,()=>{J.value=!(0,Z.isEqual)(i(N),ne)}),e(()=>{Q()}),{categoriesOptions:O,spacesOptionsGrouped:k,model:N,formEl:K,formChanged:J,submit:ie,clear:Q,formResult:S,loadingSpaces:y,fetchSpaces:b,actionPluginOptions:P,addAction:I,removeAction:L,updateAction:R,getActionCardComponent:V,getActionFormComponent:U,getActionEditFormComponent:W,getPluginLabel:G}},ie=({id:e})=>{let t=h().getStore(M);return{icon:a(()=>{let n=t.findById(e);return n?.category&&n.category in H?H[n.category]:H[z.GENERIC]})}},Q=()=>{let e=h().getStore(M),{data:t,semaphore:n,firstLoad:r}=O(e);return{scenes:a(()=>Array.from(t.value.values()).sort((e,t)=>e.name.localeCompare(t.name))),fetching:a(()=>n.value.fetching.items),loaded:a(()=>r.value),fetchScenes:async()=>e.fetch(),getScene:async t=>e.get({id:t}),findById:t=>e.findById(t),findBySpace:t=>e.findBySpace(t),triggerScene:async(t,n)=>{await e.trigger({id:t,source:n})},removeScene:async t=>{await e.remove({id:t})}}},ae=()=>{let{t:e}=r(),t=x(),n=h().getStore(M);return{addScene:async e=>n.add(e),editScene:async e=>n.edit(e),removeScene:async e=>{await n.remove({id:e})},bulkRemove:async r=>{if(r.length!==0)try{await v.confirm(e(`scenes.texts.confirmBulkRemove`,{count:r.length}),e(`scenes.headings.bulkRemove`),{confirmButtonText:e(`scenes.buttons.yes.title`),cancelButtonText:e(`scenes.buttons.no.title`),type:`warning`});let i=0,a=0;for(let e of r)try{await n.remove({id:e.id}),i++}catch{a++}i>0&&t.success(e(`scenes.messages.bulkRemoved`,{count:i})),a>0&&t.error(e(`scenes.messages.bulkRemoveFailed`,{count:a}))}catch{}},bulkEnable:async r=>{if(r.length!==0)try{await v.confirm(e(`scenes.texts.confirmBulkEnable`,{count:r.length}),e(`scenes.headings.bulkEnable`),{confirmButtonText:e(`scenes.buttons.yes.title`),cancelButtonText:e(`scenes.buttons.no.title`),type:`info`});let i=0,a=0;for(let e of r)try{await n.edit({id:e.id,data:{enabled:!0}}),i++}catch{a++}i>0&&t.success(e(`scenes.messages.bulkEnabled`,{count:i})),a>0&&t.error(e(`scenes.messages.bulkEnableFailed`,{count:a}))}catch{t.info(e(`scenes.messages.bulkEnableCanceled`))}},bulkDisable:async r=>{if(r.length!==0)try{await v.confirm(e(`scenes.texts.confirmBulkDisable`,{count:r.length}),e(`scenes.headings.bulkDisable`),{confirmButtonText:e(`scenes.buttons.yes.title`),cancelButtonText:e(`scenes.buttons.no.title`),type:`warning`});let i=0,a=0;for(let e of r)try{await n.edit({id:e.id,data:{enabled:!1}}),i++}catch{a++}i>0&&t.success(e(`scenes.messages.bulkDisabled`,{count:i})),a>0&&t.error(e(`scenes.messages.bulkDisableFailed`,{count:a}))}catch{t.info(e(`scenes.messages.bulkDisableCanceled`))}}}},$={search:void 0,categories:[],primarySpaceId:void 0,enabled:`all`},oe={by:`name`,dir:`asc`},se=()=>{let e=h().getStore(M),{firstLoad:n,semaphore:r}=O(e),{filters:i,sort:s,pagination:c,reset:l}=C({key:`${P}:scenes:list`,filters:{schema:U,defaults:$},sort:{defaults:[oe]},pagination:{defaults:{page:1,size:10}},syncQuery:!0,version:1}),u=a(()=>i.value.search!==$.search||!(0,Z.isEqual)(i.value.categories,$.categories)||i.value.primarySpaceId!==$.primarySpaceId||i.value.enabled!==$.enabled),d=o(c.value.size||10),f=o(c.value.page||1),p=o(s.value.length>0?s.value[0]?.by:void 0),m=o(s.value.length>0?s.value[0]?.dir??null:null),g=(e,t)=>t?t===`whole_home`?!e:e===t:!0,_=a(()=>{let t=e.findAll().filter(e=>!e.draft&&(!i.value.search||e.id.toLowerCase().includes(i.value.search.toLowerCase())||e.name.toLowerCase().includes(i.value.search.toLowerCase())||e.description?.toLowerCase().includes(i.value.search.toLowerCase()))&&(i.value.categories.length===0||i.value.categories.includes(e.category))&&g(e.primarySpaceId,i.value.primarySpaceId)&&(i.value.enabled===`all`||i.value.enabled===`enabled`&&e.enabled||i.value.enabled===`disabled`&&!e.enabled)),n=p.value??`order`;return T(t,[e=>e[n]??``],[m.value??`asc`])}),v=a(()=>{let e=(f.value-1)*d.value,t=e+d.value;return _.value.slice(e,t)}),y=async()=>{await e.fetch()},b=a(()=>r.value.fetching.items||!n.value),x=a(()=>n.value),S=a(()=>e.findAll().filter(e=>!e.draft).length);return t(()=>c.value,e=>{f.value=e.page??1,d.value=e.size??10},{deep:!0}),t(()=>f.value,e=>{c.value.page=e}),t(()=>d.value,e=>{c.value.size=e}),t(()=>m.value,e=>{p.value===void 0||e===null?s.value=[]:s.value=[{by:p.value,dir:e}]}),t(()=>p.value,e=>{e===void 0||m.value===null?s.value=[]:s.value=[{by:e,dir:m.value}]}),t(()=>i.value,()=>{f.value=1},{deep:!0}),{scenes:_,scenesPaginated:v,totalRows:S,areLoading:b,loaded:x,fetchScenes:y,filters:i,filtersActive:u,paginateSize:d,paginatePage:f,sortBy:p,sortDir:m,resetFilter:l}};export{P as _,re as a,z as b,J as c,L as d,I as f,F as g,V as h,ie as i,X as l,B as m,ae as n,ne as o,R as p,Q as r,Y as s,se as t,W as u,N as v,H as y};