@fastybird/smart-panel-admin 1.0.0-beta.2 → 1.0.0-beta.3

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 (147) hide show
  1. package/dist/assets/{card-add-form-Gso7ULO3.js → card-add-form-CLhQRBaL.js} +1 -1
  2. package/dist/assets/{card-edit-form-CG5By4hN.js → card-edit-form-D0GHARW-.js} +1 -1
  3. package/dist/assets/{common-C6O7MWKy.js → common-CYlvhyJx.js} +4 -4
  4. package/dist/assets/{components-Cg1OPydQ.js → components-BZ1exlup.js} +1 -1
  5. package/dist/assets/{components-C5Wu_yx6.js → components-BkjSdnbB.js} +1 -1
  6. package/dist/assets/{components-CDzfp-v5.js → components-C2nsvuWt.js} +1 -1
  7. package/dist/assets/{components-BDuVLuIi.js → components-C9Hw685H.js} +2 -2
  8. package/dist/assets/{components-f7Acikyq.js → components-CgD2Wl4X.js} +1 -1
  9. package/dist/assets/{components-Bzwfh0_6.js → components-CzrtwZEB.js} +1 -1
  10. package/dist/assets/{components-CWCnDk-k.js → components-DE6eu41U.js} +1 -1
  11. package/dist/assets/{components-CBgIPDGp.js → components-jS3aYN4W.js} +1 -1
  12. package/dist/assets/{composables-CXnK_jZC.js → composables-BGwJJI84.js} +1 -1
  13. package/dist/assets/{composables-uEwOIGlv.js → composables-By-2bZ6o.js} +1 -1
  14. package/dist/assets/composables-D2XmoNFv.js +1 -0
  15. package/dist/assets/{composables-DRljO7YE.js → composables-D5ksCJy6.js} +1 -1
  16. package/dist/assets/{composables-B96WL0Wj.js → composables-DEE0h-ep.js} +1 -1
  17. package/dist/assets/composables-DINXeVLA.js +1 -0
  18. package/dist/assets/{composables-CFfboRzY.js → composables-DcfYrDwm.js} +1 -1
  19. package/dist/assets/{composables-DVL3jPH8.js → composables-DsKIR5Bm.js} +1 -1
  20. package/dist/assets/{composables-vJCRdU0M.js → composables-GMO5QlG5.js} +1 -1
  21. package/dist/assets/{composables-U-xxC_sT.js → composables-zt-P_Tr3.js} +1 -1
  22. package/dist/assets/{dashboard-DG93chjw.js → dashboard-VE2NrHdf.js} +2 -2
  23. package/dist/assets/{dashboard.types-CFfH-GLV.js → dashboard.types-By_wvrmJ.js} +1 -1
  24. package/dist/assets/{data-source-edit-form-BI_dwXcE.js → data-source-edit-form-BfeuqxfT.js} +1 -1
  25. package/dist/assets/{drawer-piSQQ92r.js → drawer-CBjyEUxR.js} +1 -1
  26. package/dist/assets/{index-qait6dZr.js → index-BGtjR8rl.js} +4 -4
  27. package/dist/assets/{input-number-aj4Bs1x0.js → input-number-0WfCl7sp.js} +1 -1
  28. package/dist/assets/{integration-config-dialog-4lXNA-cq.js → integration-config-dialog-D7ezGYtM.js} +1 -1
  29. package/dist/assets/{layout-config-wF4GEnoW.js → layout-config-B_k0YP5E.js} +1 -1
  30. package/dist/assets/{layout-default-fi64NP2-.js → layout-default-St-GEUIG.js} +1 -1
  31. package/dist/assets/{layout-lock-B1tHh9TR.js → layout-lock-CEWN7-5y.js} +1 -1
  32. package/dist/assets/layout-profile-CmZ_5TLY.js +1 -0
  33. package/dist/assets/{layout-profile-5CD6bicW.js → layout-profile-DjpSTQs2.js} +1 -1
  34. package/dist/assets/layout-sign-BAfTH8N1.js +1 -0
  35. package/dist/assets/{layout-sign-D_I0Ie9D.js → layout-sign-Cn1Z7dcG.js} +1 -1
  36. package/dist/assets/{list-data-sources-adjust-uB8b6Hjl.js → list-data-sources-adjust-uAboLtF5.js} +1 -1
  37. package/dist/assets/{list-locations-Ckoi0RHB.js → list-locations-NlC7DHeR.js} +1 -1
  38. package/dist/assets/{list-users-Dyap_TZY.js → list-users-B9rvfJpM.js} +1 -1
  39. package/dist/assets/{logs-entries.transformers-DY1KWqis.js → logs-entries.transformers-D-IYkG06.js} +1 -1
  40. package/dist/assets/{page-configure-Dr3kKTbt.js → page-configure-BxuItsp7.js} +1 -1
  41. package/dist/assets/{page-configure-BU4WzKF4.js → page-configure-DnRl2-Bw.js} +1 -1
  42. package/dist/assets/{pagination-BRH-PmO7.js → pagination-B-q-tN7k.js} +1 -1
  43. package/dist/assets/{popover-BAQvnaAQ.js → popover-CJnPPf6w.js} +1 -1
  44. package/dist/assets/{radio-DW3_4owj.js → radio-BCfRCNYC.js} +1 -1
  45. package/dist/assets/{scene-add-form-8nrzesj2.js → scene-add-form-Bc_O-pQF.js} +1 -1
  46. package/dist/assets/{scene-edit-form-AOK6QcMB.js → scene-edit-form-D6n4XMCu.js} +1 -1
  47. package/dist/assets/{schemas.utils-Luoz3tGx.js → schemas.utils-DfsvrMGr.js} +1 -1
  48. package/dist/assets/{select-data-source-plugin-CQqAjj8I.js → select-data-source-plugin-BUQn0xFA.js} +1 -1
  49. package/dist/assets/{slider-Bk-smens.js → slider-BGyYDnSl.js} +1 -1
  50. package/dist/assets/{spaces-D3E3Y4it.js → spaces-C4Tpph44.js} +2 -2
  51. package/dist/assets/{spaces-home-control.constants-Btr-C2aq.js → spaces-home-control.constants-F99XoJI8.js} +1 -1
  52. package/dist/assets/{steps-D9CW-O6K.js → steps-Dr32rxSM.js} +1 -1
  53. package/dist/assets/{system-CtMoh4fS.js → system-DU1DZ1-l.js} +2 -2
  54. package/dist/assets/{tile-detail-Cp1Wg2ln.js → tile-detail-m45OY5pq.js} +1 -1
  55. package/dist/assets/{tile-edit-form-BnXEsFRq.js → tile-edit-form-Buhzsx9J.js} +1 -1
  56. package/dist/assets/{types-BP1Y7Ct6.js → types-Bi7Jdlzc.js} +1 -1
  57. package/dist/assets/{useBuddyChat-CvDleaZJ.js → useBuddyChat-DicTnDX0.js} +1 -1
  58. package/dist/assets/{useDataSources-3VKnPYpt.js → useDataSources-BLr8PIxu.js} +1 -1
  59. package/dist/assets/useEventBus-4ZeHg9H7.js +1 -0
  60. package/dist/assets/{useGeolocation-BO7kIdUh.js → useGeolocation-D04GeyZh.js} +1 -1
  61. package/dist/assets/{useLocation-DC_SbRoS.js → useLocation-DIH9HVyg.js} +1 -1
  62. package/dist/assets/{usePage-BVfsjiLb.js → usePage-rn3j4WMQ.js} +1 -1
  63. package/dist/assets/{usePersonalTokens-BqXxMus4.js → usePersonalTokens-BAWWC0KL.js} +1 -1
  64. package/dist/assets/{useSpaces-XFygVec-.js → useSpaces-DCuyMUqe.js} +1 -1
  65. package/dist/assets/{useUuid-bBKVSq5e.js → useUuid-HrENmPhQ.js} +1 -1
  66. package/dist/assets/{view-buddy-chat-Cbz_tWQw.js → view-buddy-chat-WrOmxX6O.js} +1 -1
  67. package/dist/assets/{view-card-add-FpOWLKDD.js → view-card-add-DKtbBU7F.js} +1 -1
  68. package/dist/assets/{view-card-edit-CckfNDtI.js → view-card-edit-10HfRMki.js} +1 -1
  69. package/dist/assets/{view-channel-CwvntrqM.js → view-channel-D_zpx26S.js} +1 -1
  70. package/dist/assets/{view-channel-add-CbGsI0RI.js → view-channel-add-BWKCnvF7.js} +1 -1
  71. package/dist/assets/{view-channel-edit-BscFo-2O.js → view-channel-edit-Czo__VkB.js} +1 -1
  72. package/dist/assets/{view-channel-property-add-BlESkjUP.js → view-channel-property-add-Dnu4HYye.js} +1 -1
  73. package/dist/assets/{view-channel-property-edit-C7vrDHM0.js → view-channel-property-edit-CW2D-stk.js} +1 -1
  74. package/dist/assets/{view-channels-COV_YBpq.js → view-channels-7KUQ9wlx.js} +1 -1
  75. package/dist/assets/{view-config-module-edit-Ce1dHGD6.js → view-config-module-edit-CEiOBSu9.js} +1 -1
  76. package/dist/assets/{view-config-modules-09KPTYj-.js → view-config-modules-D-yQNn55.js} +1 -1
  77. package/dist/assets/{view-config-plugin-edit-DpODIuSr.js → view-config-plugin-edit-SlMNwz8Y.js} +1 -1
  78. package/dist/assets/{view-config-plugins-BUBXmHje.js → view-config-plugins-BYqEo20U.js} +1 -1
  79. package/dist/assets/{view-data-source-add-CUeeE9I9.js → view-data-source-add-DfGZogv_.js} +1 -1
  80. package/dist/assets/{view-data-source-add-Cszg1PXR.js → view-data-source-add-Dspug3fk.js} +1 -1
  81. package/dist/assets/{view-data-source-edit-D6ZdInPK.js → view-data-source-edit-B-IElLOM.js} +1 -1
  82. package/dist/assets/{view-data-source-edit-Cnvz59YN.js → view-data-source-edit-DhJRmRuN.js} +1 -1
  83. package/dist/assets/{view-device-BqPVFd5q.js → view-device-BaeCsXzk.js} +1 -1
  84. package/dist/assets/{view-device-add-raK2v6Sb.js → view-device-add-Cdg3B458.js} +1 -1
  85. package/dist/assets/{view-device-control-CQecqQV3.js → view-device-control-CL6gGt9v.js} +1 -1
  86. package/dist/assets/{view-device-edit-BR3JBqZz.js → view-device-edit-D6KrEzBk.js} +1 -1
  87. package/dist/assets/{view-devices-DZOlHmA1.js → view-devices-a5DXrim2.js} +1 -1
  88. package/dist/assets/{view-devices-wizard-j2-RYGln.js → view-devices-wizard-DgQX6xYr.js} +1 -1
  89. package/dist/assets/{view-display-BAJl9w_-.js → view-display-BK_WRuzd.js} +1 -1
  90. package/dist/assets/{view-display-edit-BxToHJGY.js → view-display-edit-CfO1sMGU.js} +1 -1
  91. package/dist/assets/{view-display-tokens-C9EUKg60.js → view-display-tokens-q05T3MXd.js} +1 -1
  92. package/dist/assets/{view-displays-DRh-jZuh.js → view-displays-BYdUjNkR.js} +1 -1
  93. package/dist/assets/{view-extension-detail-Dc5alcRB.js → view-extension-detail--zfY4Dz3.js} +1 -1
  94. package/dist/assets/{view-extensions-D78hp-GZ.js → view-extensions-Bum-2tum.js} +1 -1
  95. package/dist/assets/{view-location-CGxqI4LF.js → view-location-CBJDN5zS.js} +1 -1
  96. package/dist/assets/{view-location-add-Bw4od9E3.js → view-location-add-DFmw1sXk.js} +1 -1
  97. package/dist/assets/{view-location-edit-bfe9ZVCY.js → view-location-edit-CLS9Cqd2.js} +1 -1
  98. package/dist/assets/{view-locations-C9MVqtob.js → view-locations-j_5eCh-A.js} +1 -1
  99. package/dist/assets/{view-lock-screen-eecVFwp8.js → view-lock-screen-DA_TSXQa.js} +1 -1
  100. package/dist/assets/{view-onboarding-D-LQj8xQ.js → view-onboarding-Cy48X2AX.js} +1 -1
  101. package/dist/assets/{view-page-CdJYrNvm.js → view-page-D30T4blr.js} +1 -1
  102. package/dist/assets/{view-page-add-CWlY59Z8.js → view-page-add-C0anBkl6.js} +1 -1
  103. package/dist/assets/{view-page-configure-CM3xpsQ6.js → view-page-configure-C2_axqzK.js} +1 -1
  104. package/dist/assets/{view-page-configure-J7GvJ6kn.js → view-page-configure-C8rOXCD-.js} +1 -1
  105. package/dist/assets/{view-page-data-source-add-CJYMQNrY.js → view-page-data-source-add-CwcgqFSk.js} +1 -1
  106. package/dist/assets/{view-page-data-source-edit-YUQc1hkr.js → view-page-data-source-edit-BHPdu_4o.js} +1 -1
  107. package/dist/assets/{view-page-edit-CSiIqhHa.js → view-page-edit-BE2o_PWc.js} +1 -1
  108. package/dist/assets/{view-page-plugin-DA-QTSFI.js → view-page-plugin-B6Fw6v1N.js} +1 -1
  109. package/dist/assets/{view-pages-BJh5on5i.js → view-pages-C9-e4oK7.js} +1 -1
  110. package/dist/assets/{view-profile-general-BUgWnB8F.js → view-profile-general-CWkcBsOE.js} +1 -1
  111. package/dist/assets/{view-profile-security-f1qsSWz-.js → view-profile-security-B4bDUaQc.js} +1 -1
  112. package/dist/assets/{view-scene-add-XnMQkpIx.js → view-scene-add-DP-jBsux.js} +1 -1
  113. package/dist/assets/{view-scene-edit-CTbkCckV.js → view-scene-edit-Sarmco96.js} +1 -1
  114. package/dist/assets/{view-scenes-ChzoHwOO.js → view-scenes-BHGYWuRY.js} +1 -1
  115. package/dist/assets/{view-sign-in-Ceaac-fd.js → view-sign-in-tkWBqcvx.js} +1 -1
  116. package/dist/assets/{view-sign-up-BZ53tmTA.js → view-sign-up-Dh2ZINak.js} +1 -1
  117. package/dist/assets/{view-space-add-BQnXpas4.js → view-space-add-B5_9knXl.js} +1 -1
  118. package/dist/assets/{view-space-configure-DgonALs8.js → view-space-configure-vCS0YQ-H.js} +1 -1
  119. package/dist/assets/{view-space-edit-wj8T4WRV.js → view-space-edit-C5_ml_8W.js} +1 -1
  120. package/dist/assets/{view-space-plugin-BdOVEBgt.js → view-space-plugin-C3g2VSo3.js} +1 -1
  121. package/dist/assets/{view-spaces-CM93SjHm.js → view-spaces-culV68Lm.js} +1 -1
  122. package/dist/assets/{view-spaces-wizard-MAczhruN.js → view-spaces-wizard-HXpKypIL.js} +1 -1
  123. package/dist/assets/{view-stats-BWJU4kKt.js → view-stats-BCqyavVj.js} +1 -1
  124. package/dist/assets/{view-system-backups-BnQRabt_.js → view-system-backups--UcABhC4.js} +1 -1
  125. package/dist/assets/{view-system-info-BdUO_aZz.js → view-system-info-D9tPEGF8.js} +1 -1
  126. package/dist/assets/{view-system-log-detail-DnW1sR90.js → view-system-log-detail-YsXJEn7J.js} +1 -1
  127. package/dist/assets/{view-system-logs-rBB1JhNA.js → view-system-logs-NPsCix4z.js} +1 -1
  128. package/dist/assets/{view-tile-DEWaNAAC.js → view-tile-DUn9uIlJ.js} +1 -1
  129. package/dist/assets/{view-tile-add-BYCfwz0G.js → view-tile-add-CEaGRSsg.js} +1 -1
  130. package/dist/assets/{view-tile-add-DJEhRPql.js → view-tile-add-lgl0PPBy.js} +1 -1
  131. package/dist/assets/{view-tile-data-source-add-BQY3lYEx.js → view-tile-data-source-add-DDR948lU.js} +1 -1
  132. package/dist/assets/{view-tile-data-source-edit-DcmEisVl.js → view-tile-data-source-edit-b4BI6TNr.js} +1 -1
  133. package/dist/assets/{view-tile-edit-DB5-9c4k.js → view-tile-edit-DpVMRrwV.js} +1 -1
  134. package/dist/assets/{view-tile-edit-C9bdoUQS.js → view-tile-edit-Gcy4HufJ.js} +1 -1
  135. package/dist/assets/{view-tile-edit-CEk-TKvg.js → view-tile-edit-SYijBGBh.js} +1 -1
  136. package/dist/assets/{view-user-add-DvmHzen6.js → view-user-add-BeEBHsTw.js} +1 -1
  137. package/dist/assets/{view-user-edit-UBSgDOcU.js → view-user-edit-DZnkJQOL.js} +1 -1
  138. package/dist/assets/{view-users-CH0q5tjL.js → view-users-UBrKKeKw.js} +1 -1
  139. package/dist/assets/{weather-forecast.transformers-Dc2cpiG6.js → weather-forecast.transformers-C4Dcl8Cg.js} +1 -1
  140. package/dist/assets/{weather-CiVW2Zku.js → weather-gJGYyu0m.js} +2 -2
  141. package/dist/index.html +58 -58
  142. package/package.json +1 -1
  143. package/dist/assets/composables-D5DhD9vG.js +0 -1
  144. package/dist/assets/composables-DA8P1Agq.js +0 -1
  145. package/dist/assets/layout-profile-52nMnfeI.js +0 -1
  146. package/dist/assets/layout-sign-CsRJeI15.js +0 -1
  147. package/dist/assets/useEventBus-DVXQaGC-.js +0 -1
@@ -1 +1 @@
1
- import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,D as t,Dr as n,Mr as r,Nr as i,O as a,Or as o,Pr as s,Qr as c,Si as l,T as u,Yr as d,bi as f,ci as p,di as m,ei as h,ji as g,k as _,kr as v,qi as y,t as b,ui as x,vr as S,x as C,xr as w,yr as T}from"./icon-with-child-CgZMNB3F.js";import{Ea as E,G as D,Li as O,Mi as k,Ni as ee,Pi as A,Ri as j,Ta as M,_n as N,at as P,b as F,fa as I,it as L,ka as R,mi as z,on as B,p as V,qi as H,ua as U,va as W,xn as G,yn as K}from"./common-C6O7MWKy.js";import{t as te}from"./usePersonalTokens-BqXxMus4.js";var ne={class:`p-4`},re={class:`min-h-[100px]`},ie={key:0,class:`h-full w-full leading-normal`},ae={key:1,class:`h-full w-full leading-normal`},oe={class:`block`},q=s({name:`PersonalTokensList`,__name:`personal-tokens-list`,setup(s,{expose:p}){let{t:h}=u(),S=V(),{tokens:C,loading:D,fetchTokens:N,createToken:P,revokeToken:F}=te(),L=l(!1),z=l(!1),B=l(!1),G=l(null),K=l(``),q=l(!1),J=l(void 0),Y=f({name:``,description:``,expiresInDays:90}),X=f({name:[{required:!0,message:h(`authModule.tokens.createDialog.nameRequired`),trigger:`change`}]}),Z=e=>new Intl.DateTimeFormat(void 0,{dateStyle:`medium`,timeStyle:`short`}).format(new Date(e)),Q=e=>new Date(e)<new Date,$=()=>{Y.name=``,Y.description=``,Y.expiresInDays=90,J.value?.resetFields()},se=()=>{$()},ce=async()=>{J.value&&J.value.validate(async e=>{if(e){B.value=!0;try{let e=await P({name:Y.name,description:Y.description||null,expires_in_days:Y.expiresInDays||null});e?(K.value=e.token,q.value=!1,L.value=!1,z.value=!0,$(),S.success(h(`authModule.tokens.messages.created`))):S.error(h(`authModule.tokens.messages.createError`))}catch{S.error(h(`authModule.tokens.messages.createError`))}finally{B.value=!1}}})},le=async()=>{try{await navigator.clipboard.writeText(K.value),q.value=!0}catch{S.error(h(`authModule.tokens.messages.copyError`))}},ue=()=>{z.value=!1,K.value=``,q.value=!1},de=e=>{k.confirm(h(`authModule.tokens.revokeDialog.message`),h(`authModule.tokens.revokeDialog.title`),{confirmButtonText:h(`authModule.tokens.revokeDialog.confirm`),cancelButtonText:h(`authModule.tokens.revokeDialog.cancel`),type:`warning`,confirmButtonClass:`el-button--danger`}).then(async()=>{G.value=e.id;try{await F(e.id)?S.success(h(`authModule.tokens.messages.revoked`)):S.error(h(`authModule.tokens.messages.revokeError`))}catch{S.error(h(`authModule.tokens.messages.revokeError`))}finally{G.value=null}}).catch(()=>{})};return p({openCreateDialog:()=>{L.value=!0}}),d(async()=>{await N()}),(s,l)=>(c(),e(`div`,null,[n(`div`,ne,[i(g(R),{title:g(h)(`authModule.tokens.description`),type:`info`,closable:!1},null,8,[`title`])]),m((c(),e(`div`,re,[i(g(O),{data:g(C),class:`w-full`,"table-layout":`fixed`},{empty:x(()=>[g(D)?(c(),e(`div`,ie,[i(g(a),{class:`h-full w-full`},{icon:x(()=>[i(g(b),{size:80},{primary:x(()=>[i(g(t),{icon:`mdi:key`})]),secondary:x(()=>[i(g(t),{icon:`mdi:database-refresh`})]),_:1})]),_:1})])):(c(),e(`div`,ae,[i(g(a),{class:`h-full w-full`},{icon:x(()=>[i(g(b),{size:80},{primary:x(()=>[i(g(t),{icon:`mdi:key`})]),secondary:x(()=>[i(g(t),{icon:`mdi:information`})]),_:1})]),title:x(()=>[r(y(g(h)(`authModule.tokens.noTokens`)),1)]),_:1})]))]),default:x(()=>[i(g(j),{label:g(h)(`authModule.tokens.columns.name`),prop:`name`,"min-width":`150`},{default:x(({row:e})=>[n(`div`,null,[n(`strong`,oe,y(e.name),1),e.description?(c(),o(g(A),{key:0,size:`small`,type:`info`,class:`block leading-4`,truncated:``},{default:x(()=>[r(y(e.description),1)]),_:2},1024)):v(``,!0)])]),_:1},8,[`label`]),i(g(j),{label:g(h)(`authModule.tokens.columns.created`),prop:`created_at`,width:`180`},{default:x(({row:e})=>[r(y(Z(e.created_at)),1)]),_:1},8,[`label`]),i(g(j),{label:g(h)(`authModule.tokens.columns.lastUsed`),prop:`last_used_at`,width:`180`},{default:x(({row:e})=>[r(y(e.last_used_at?Z(e.last_used_at):g(h)(`authModule.tokens.never`)),1)]),_:1},8,[`label`]),i(g(j),{label:g(h)(`authModule.tokens.columns.expires`),prop:`expires_at`,width:`180`},{default:x(({row:t})=>[t.expires_at?(c(),o(g(A),{key:0,type:Q(t.expires_at)?`danger`:void 0},{default:x(()=>[r(y(Z(t.expires_at)),1)]),_:2},1032,[`type`])):(c(),e(w,{key:1},[r(y(g(h)(`authModule.tokens.never`)),1)],64))]),_:1},8,[`label`]),i(g(j),{label:g(h)(`authModule.tokens.columns.actions`),width:`120`,align:`right`},{default:x(({row:e})=>[n(`div`,{onClick:l[0]||=T(()=>{},[`stop`])},[i(g(_),{size:`small`,type:`danger`,plain:``,loading:G.value===e.id,onClick:t=>de(e)},{icon:x(()=>[i(g(t),{icon:`mdi:key-remove`})]),default:x(()=>[r(` `+y(g(h)(`authModule.tokens.revoke`)),1)]),_:1},8,[`loading`,`onClick`])])]),_:1},8,[`label`])]),_:1},8,[`data`])])),[[g(ee),g(D)]]),i(g(H),{modelValue:L.value,"onUpdate:modelValue":l[5]||=e=>L.value=e,title:g(h)(`authModule.tokens.createDialog.title`),class:`max-w-[500px]`,onClose:se},{footer:x(()=>[i(g(_),{onClick:l[4]||=e=>L.value=!1},{default:x(()=>[r(y(g(h)(`authModule.tokens.createDialog.cancel`)),1)]),_:1}),i(g(_),{type:`primary`,loading:B.value,onClick:ce},{default:x(()=>[r(y(g(h)(`authModule.tokens.createDialog.submit`)),1)]),_:1},8,[`loading`])]),default:x(()=>[i(g(M),{ref_key:`createFormEl`,ref:J,model:Y,rules:X,"label-position":`top`},{default:x(()=>[i(g(E),{label:g(h)(`authModule.tokens.createDialog.name`),prop:`name`},{default:x(()=>[i(g(W),{modelValue:Y.name,"onUpdate:modelValue":l[1]||=e=>Y.name=e,placeholder:g(h)(`authModule.tokens.createDialog.namePlaceholder`)},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),i(g(E),{label:g(h)(`authModule.tokens.createDialog.description`),prop:`description`},{default:x(()=>[i(g(W),{modelValue:Y.description,"onUpdate:modelValue":l[2]||=e=>Y.description=e,type:`textarea`,rows:2,placeholder:g(h)(`authModule.tokens.createDialog.descriptionPlaceholder`)},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),i(g(E),{label:g(h)(`authModule.tokens.createDialog.expiry`),prop:`expiresInDays`},{default:x(()=>[i(g(I),{modelValue:Y.expiresInDays,"onUpdate:modelValue":l[3]||=e=>Y.expiresInDays=e,class:`w-full`},{default:x(()=>[i(g(U),{label:g(h)(`authModule.tokens.createDialog.expiry30`),value:30},null,8,[`label`]),i(g(U),{label:g(h)(`authModule.tokens.createDialog.expiry90`),value:90},null,8,[`label`]),i(g(U),{label:g(h)(`authModule.tokens.createDialog.expiry365`),value:365},null,8,[`label`]),i(g(U),{label:g(h)(`authModule.tokens.createDialog.expiryNever`),value:0},null,8,[`label`])]),_:1},8,[`modelValue`])]),_:1},8,[`label`])]),_:1},8,[`model`,`rules`])]),_:1},8,[`modelValue`,`title`]),i(g(H),{modelValue:z.value,"onUpdate:modelValue":l[6]||=e=>z.value=e,title:g(h)(`authModule.tokens.createdDialog.title`),class:`max-w-[600px]`,"close-on-click-modal":!1,"close-on-press-escape":!1},{footer:x(()=>[i(g(_),{type:q.value?`success`:`primary`,onClick:le},{icon:x(()=>[i(g(t),{icon:q.value?`mdi:check`:`mdi:content-copy`},null,8,[`icon`])]),default:x(()=>[r(` `+y(q.value?g(h)(`authModule.tokens.createdDialog.copied`):g(h)(`authModule.tokens.createdDialog.copy`)),1)]),_:1},8,[`type`]),i(g(_),{onClick:ue},{default:x(()=>[r(y(g(h)(`authModule.tokens.createdDialog.done`)),1)]),_:1})]),default:x(()=>[i(g(R),{title:g(h)(`authModule.tokens.createdDialog.warning`),type:`warning`,closable:!1,"show-icon":``},null,8,[`title`]),i(g(W),{"model-value":K.value,readonly:``,class:`font-mono mt-4`},null,8,[`model-value`])]),_:1},8,[`modelValue`,`title`])]))}}),J=s({name:`SettingsProfileForm`,__name:`settings-profile-form`,props:{profile:{},remoteFormSubmit:{type:Boolean,default:!1},remoteFormResult:{default:N.NONE},remoteFormReset:{type:Boolean,default:!1},layout:{default:K.DEFAULT}},emits:[`update:remoteFormSubmit`,`update:remoteFormResult`,`update:remoteFormReset`],setup(t,{emit:n}){let r=t,a=n,{t:s,locale:d}=u(),m=V(),_=F().getStore(B),v=l(void 0),y=f({email:[{required:!1,message:s(`authModule.fields.email.validation.required`),trigger:`change`},{type:`email`,message:s(`authModule.fields.email.validation.email`),trigger:`change`}],firstName:[{required:!1,message:s(`authModule.fields.firstName.validation.required`),trigger:`change`}],lastName:[{required:!1,message:s(`authModule.fields.lastName.validation.required`),trigger:`change`}]}),b=P,S=e=>e?L[e]??null:null,C=e=>e?e.split(`-`)[0]:null,T=f({email:r.profile.email??`@`,firstName:r.profile.firstName,lastName:r.profile.lastName,language:S(r.profile.language??null)}),O,k=()=>{window.clearTimeout(O),a(`update:remoteFormResult`,N.NONE)};return p(()=>r.remoteFormSubmit,async e=>{e&&(a(`update:remoteFormSubmit`,!1),v.value.clearValidate(),v.value.validate(async e=>{if(!e)return;a(`update:remoteFormResult`,N.WORKING);let t=s(`authModule.messages.profileNotEdited`);try{await _.edit({id:r.profile.id,data:{firstName:T.firstName,lastName:T.lastName,email:T.email,language:C(T.language)}}),T.language&&(d.value=T.language,D(T.language)),a(`update:remoteFormResult`,N.OK),m.success(s(`authModule.messages.profileEdited`)),O=window.setTimeout(k,2e3)}catch(e){e instanceof Error&&`exception`in e&&e.exception instanceof Error?m.exception(t):m.error(t),a(`update:remoteFormResult`,N.ERROR),O=window.setTimeout(k,2e3)}}))}),p(()=>r.remoteFormReset,e=>{a(`update:remoteFormReset`,!1),e&&(T.email=r.profile.email??`@`,T.firstName=r.profile.firstName,T.lastName=r.profile.lastName,T.language=S(r.profile.language??null))}),(t,n)=>(c(),o(g(M),{ref_key:`profileFormEl`,ref:v,model:T,rules:y,"label-position":r.layout===g(K).PHONE?`top`:`right`,"label-width":180,"status-icon":``},{default:x(()=>[i(g(E),{label:g(s)(`authModule.fields.email.title`),prop:`email`},{default:x(()=>[i(g(W),{modelValue:T.email,"onUpdate:modelValue":n[0]||=e=>T.email=e,name:`email`},null,8,[`modelValue`])]),_:1},8,[`label`]),i(g(E),{label:g(s)(`authModule.fields.firstName.title`),prop:`firstName`},{default:x(()=>[i(g(W),{modelValue:T.firstName,"onUpdate:modelValue":n[1]||=e=>T.firstName=e,name:`firstName`},null,8,[`modelValue`])]),_:1},8,[`label`]),i(g(E),{label:g(s)(`authModule.fields.lastName.title`),prop:`lastName`},{default:x(()=>[i(g(W),{modelValue:T.lastName,"onUpdate:modelValue":n[2]||=e=>T.lastName=e,name:`lastName`},null,8,[`modelValue`])]),_:1},8,[`label`]),i(g(E),{label:g(s)(`authModule.fields.language.title`),prop:`language`},{default:x(()=>[i(g(I),{modelValue:T.language,"onUpdate:modelValue":n[3]||=e=>T.language=e,placeholder:g(s)(`authModule.fields.language.placeholder`),clearable:``},{default:x(()=>[(c(!0),e(w,null,h(g(b),e=>(c(),o(g(U),{key:e.value,label:`${e.flag} ${e.label}`,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`label`])]),_:1},8,[`model`,`rules`,`label-position`]))}}),Y=s({name:`SettingsPasswordForm`,__name:`settings-password-form`,props:{profile:{},remoteFormSubmit:{type:Boolean,default:!1},remoteFormResult:{default:N.NONE},remoteFormReset:{type:Boolean,default:!1},layout:{default:K.DEFAULT}},emits:[`update:remoteFormSubmit`,`update:remoteFormResult`,`update:remoteFormReset`],setup(e,{emit:t}){let n=e,r=t,{t:a}=u(),s=V(),d=F().getStore(B),m=l(void 0),h=f({currentPassword:[{required:!0,message:a(`authModule.fields.currentPassword.validation.required`),trigger:`change`}],newPassword:[{required:!0,message:a(`authModule.fields.newPassword.validation.required`),trigger:`change`}],repeatPassword:[{validator:(e,t,n)=>{t===``?n(Error(a(`authModule.fields.repeatPassword.validation.required`))):t===_.newPassword?n():n(Error(a(`authModule.fields.repeatPassword.validation.different`)))},trigger:`change`}]}),_=f({currentPassword:``,newPassword:``,repeatPassword:``}),v,y=()=>{window.clearTimeout(v),r(`update:remoteFormResult`,N.NONE)};return p(()=>n.remoteFormSubmit,async e=>{e&&(r(`update:remoteFormSubmit`,!1),m.value.clearValidate(),m.value.validate(async e=>{if(!e)return;r(`update:remoteFormResult`,N.WORKING);let t=a(`authModule.messages.passwordNotEdited`);try{await d.edit({id:n.profile.id,data:{password:{current:_.currentPassword,new:_.newPassword}}}),r(`update:remoteFormResult`,N.OK),s.success(a(`authModule.messages.passwordEdited`)),v=window.setTimeout(y,2e3)}catch(e){e instanceof Error&&`exception`in e&&e.exception instanceof Error?s.exception(t):s.error(t),r(`update:remoteFormResult`,N.ERROR),v=window.setTimeout(y,2e3)}}))}),p(()=>n.remoteFormReset,e=>{r(`update:remoteFormReset`,!1),e&&(m.value?.resetFields(),_.currentPassword=``,_.newPassword=``,_.repeatPassword=``)}),(e,t)=>(c(),o(g(M),{ref_key:`passwordFormEl`,ref:m,model:_,rules:h,"label-position":n.layout===g(K).PHONE?`top`:`right`,"label-width":180,"status-icon":``},{default:x(()=>[i(g(E),{label:g(a)(`authModule.fields.currentPassword.title`),prop:`currentPassword`},{default:x(()=>[i(g(W),{modelValue:_.currentPassword,"onUpdate:modelValue":t[0]||=e=>_.currentPassword=e,name:`currentPassword`,type:`password`,"show-password":``},null,8,[`modelValue`])]),_:1},8,[`label`]),i(g(E),{label:g(a)(`authModule.fields.newPassword.title`),prop:`newPassword`},{default:x(()=>[i(g(W),{modelValue:_.newPassword,"onUpdate:modelValue":t[1]||=e=>_.newPassword=e,name:`newPassword`,type:`password`,"show-password":``},null,8,[`modelValue`])]),_:1},8,[`label`]),i(g(E),{label:g(a)(`authModule.fields.repeatPassword.title`),prop:`repeatPassword`},{default:x(()=>[i(g(W),{modelValue:_.repeatPassword,"onUpdate:modelValue":t[2]||=e=>_.repeatPassword=e,name:`repeatPassword`,type:`password`,"show-password":``},null,8,[`modelValue`])]),_:1},8,[`label`])]),_:1},8,[`model`,`rules`,`label-position`]))}}),X=s({name:`SignInForm`,__name:`sign-in-form`,props:{remoteFormSubmit:{type:Boolean},remoteFormResult:{default:N.NONE},remoteFormReset:{type:Boolean,default:!1}},emits:[`update:remoteFormResult`,`update:remoteFormReset`],setup(e,{emit:t}){let n=e,a=t,{t:s}=u(),d=V(),m=F().getStore(B),h=l(void 0),v=l(void 0),b=f({username:[{required:!0,message:s(`authModule.fields.username.validation.required`),trigger:`change`}],password:[{required:!0,message:s(`authModule.fields.password.validation.required`),trigger:`change`}]}),C=f({username:``,password:``}),w=async e=>{e&&await e.validate(async e=>{if(e){a(`update:remoteFormResult`,N.WORKING);try{await m.create({data:{username:C.username,password:C.password}}),a(`update:remoteFormResult`,N.OK)}catch(e){a(`update:remoteFormResult`,N.ERROR);let t=s(`authModule.messages.requestError`);e instanceof Error&&`exception`in e&&e.exception instanceof Error?d.exception(t):d.error(t)}}})},D=()=>{v.value?.focus()},O=()=>{w(h.value)};return p(()=>n.remoteFormReset,e=>{if(a(`update:remoteFormReset`,!1),e){if(!h.value)return;h.value.resetFields()}}),(e,t)=>(c(),o(g(M),{ref_key:`signFormEl`,ref:h,model:C,rules:b,"label-position":`top`,"status-icon":``,class:`px-5`,onSubmit:T(w,[`prevent`])},{default:x(()=>[i(g(E),{label:g(s)(`authModule.fields.username.title`),prop:`username`,class:`mb-5`},{default:x(()=>[i(g(W),{modelValue:C.username,"onUpdate:modelValue":t[0]||=e=>C.username=e,name:`username`,onKeyup:S(D,[`enter`])},null,8,[`modelValue`])]),_:1},8,[`label`]),i(g(E),{label:g(s)(`authModule.fields.password.title`),prop:`password`,class:`mb-5`},{default:x(()=>[i(g(W),{ref_key:`passwordInputEl`,ref:v,modelValue:C.password,"onUpdate:modelValue":t[1]||=e=>C.password=e,type:`password`,name:`password`,"show-password":``,onKeyup:S(O,[`enter`])},null,8,[`modelValue`])]),_:1},8,[`label`]),i(g(_),{type:`primary`,size:`large`,class:`block w-full`,onClick:t[2]||=e=>w(h.value)},{default:x(()=>[r(y(g(s)(`authModule.buttons.signIn.title`)),1)]),_:1})]),_:1},8,[`model`,`rules`]))}}),Z={class:`flex flex-row flex-nowrap gap-5`},Q={class:`mb-5`},$={class:`mb-5`},se={class:`mb-10`},ce={class:`mt-5 px-5`},le=s({name:`SignUpForm`,__name:`sign-up-form`,props:{remoteFormSubmit:{type:Boolean,default:!1},remoteFormResult:{default:N.NONE},remoteFormReset:{type:Boolean,default:!1}},emits:[`update:remoteFormResult`,`update:remoteFormReset`],setup(t,{emit:a}){let o=t,s=a,{t:d}=u(),m=V(),h=C(),v=F().getStore(B),b=l(void 0),S=f({email:[{required:!0,message:d(`authModule.fields.email.validation.required`),trigger:`change`},{type:`email`,message:d(`authModule.fields.email.validation.email`),trigger:`change`}],firstName:[{required:!0,message:d(`authModule.fields.firstName.validation.required`),trigger:`change`}],lastName:[{required:!0,message:d(`authModule.fields.lastName.validation.required`),trigger:`change`}],username:[{required:!0,message:d(`authModule.fields.username.validation.required`),trigger:`change`}],password:[{required:!0,message:d(`authModule.fields.password.validation.required`),trigger:`change`}]}),D=f({username:``,password:``,email:``,firstName:``,lastName:``}),O=async e=>{e&&await e.validate(async e=>{if(e){s(`update:remoteFormResult`,N.WORKING);try{await v.register({data:{username:D.username,password:D.password,firstName:D.firstName,lastName:D.lastName,email:D.email}}),s(`update:remoteFormResult`,N.OK)}catch(e){s(`update:remoteFormResult`,N.ERROR);let t=d(`authModule.messages.requestError`);e instanceof Error&&`exception`in e&&e.exception instanceof Error?m.exception(t):m.error(t)}}})},k=()=>{h.push({name:G.SIGN_IN})};return p(()=>o.remoteFormReset,e=>{if(s(`update:remoteFormReset`,!1),e){if(!b.value)return;b.value.resetFields()}}),(t,a)=>(c(),e(w,null,[i(g(M),{ref_key:`signFormEl`,ref:b,model:D,rules:S,"label-position":`top`,"status-icon":``,class:`px-5`,onSubmit:T(O,[`prevent`])},{default:x(()=>[n(`div`,Z,[i(g(E),{label:g(d)(`authModule.fields.firstName.title`),prop:`firstName`},{default:x(()=>[i(g(W),{modelValue:D.firstName,"onUpdate:modelValue":a[0]||=e=>D.firstName=e,placeholder:g(d)(`authModule.fields.firstName.placeholder`),name:`firstName`},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),i(g(E),{label:g(d)(`authModule.fields.lastName.title`),prop:`lastName`},{default:x(()=>[i(g(W),{modelValue:D.lastName,"onUpdate:modelValue":a[1]||=e=>D.lastName=e,palceholder:g(d)(`authModule.fields.lastName.placeholder`),name:`lastName`},null,8,[`modelValue`,`palceholder`])]),_:1},8,[`label`])]),n(`div`,Q,[i(g(E),{label:g(d)(`authModule.fields.email.title`),prop:`email`},{default:x(()=>[i(g(W),{modelValue:D.email,"onUpdate:modelValue":a[2]||=e=>D.email=e,palceholder:g(d)(`authModule.fields.email.placeholder`),name:`email`},null,8,[`modelValue`,`palceholder`])]),_:1},8,[`label`])]),n(`div`,$,[i(g(E),{label:g(d)(`authModule.fields.username.title`),prop:`username`},{default:x(()=>[i(g(W),{modelValue:D.username,"onUpdate:modelValue":a[3]||=e=>D.username=e,"show-password":``,name:`username`,type:`text`},null,8,[`modelValue`])]),_:1},8,[`label`])]),n(`div`,se,[i(g(E),{label:g(d)(`authModule.fields.password.title`),prop:`password`},{default:x(()=>[i(g(W),{modelValue:D.password,"onUpdate:modelValue":a[4]||=e=>D.password=e,"show-password":``,name:`password`,type:`password`},null,8,[`modelValue`])]),_:1},8,[`label`])]),i(g(_),{type:`primary`,size:`large`,class:`block w-full`,onClick:a[5]||=e=>O(b.value)},{default:x(()=>[r(y(g(d)(`authModule.buttons.signUp.title`)),1)]),_:1})]),_:1},8,[`model`,`rules`]),n(`div`,ce,[i(g(_),{class:`block w-full`,onClick:a[6]||=e=>k()},{default:x(()=>[r(y(g(d)(`authModule.buttons.backToSignIn.title`)),1)]),_:1})])],64))}}),ue={class:`flex flex-row justify-center items-center mt-4`},de=s({name:`UnlockForm`,__name:`unlock-form`,props:{remoteFormSubmit:{type:Boolean},remoteFormResult:{default:N.NONE},remoteFormReset:{type:Boolean,default:!1}},emits:[`update:remoteFormResult`,`update:remoteFormReset`,`signOut`],setup(e,{emit:t}){let a=e,s=t,{t:m}=u(),h=V(),v=z(),b=l(void 0),C=l(void 0),w=f({password:[{required:!0,message:m(`authModule.fields.password.validation.required`),trigger:`change`}]}),D=f({password:``}),O=async e=>{e&&await e.validate(async e=>{if(e){let e=v?.details.value?.username;if(!e){s(`update:remoteFormResult`,N.ERROR),h.error(m(`authModule.messages.requestError`));return}s(`update:remoteFormResult`,N.WORKING);try{await v.signIn({username:e,password:D.password})?s(`update:remoteFormResult`,N.OK):(s(`update:remoteFormResult`,N.ERROR),h.error(m(`authModule.messages.invalidPassword`)))}catch{s(`update:remoteFormResult`,N.ERROR),h.error(m(`authModule.messages.invalidPassword`))}}})},k=()=>{s(`signOut`)};return d(()=>{C.value?.focus()}),p(()=>a.remoteFormReset,e=>{if(s(`update:remoteFormReset`,!1),e){if(!b.value)return;b.value.resetFields()}}),(e,t)=>(c(),o(g(M),{ref_key:`unlockFormEl`,ref:b,model:D,rules:w,"label-position":`top`,"status-icon":``,class:`px-5`,onSubmit:T(O,[`prevent`])},{default:x(()=>[i(g(E),{label:g(m)(`authModule.fields.password.title`),prop:`password`,class:`mb-5`},{default:x(()=>[i(g(W),{ref_key:`passwordInputEl`,ref:C,modelValue:D.password,"onUpdate:modelValue":t[0]||=e=>D.password=e,type:`password`,name:`password`,"show-password":``,onKeyup:t[1]||=S(e=>O(b.value),[`enter`])},null,8,[`modelValue`])]),_:1},8,[`label`]),i(g(_),{type:`primary`,size:`large`,class:`block w-full mb-3`,onClick:t[2]||=e=>O(b.value)},{default:x(()=>[r(y(g(m)(`authModule.buttons.unlock.title`)),1)]),_:1}),n(`div`,ue,[i(g(_),{type:`danger`,link:``,onClick:k},{default:x(()=>[r(y(g(m)(`authModule.buttons.signOut.title`)),1)]),_:1})])]),_:1},8,[`model`,`rules`]))}});export{J as a,Y as i,le as n,q as o,X as r,de as t};
1
+ import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,D as t,Dr as n,Mr as r,Nr as i,O as a,Or as o,Pr as s,Qr as c,Si as l,T as u,Yr as d,bi as f,ci as p,di as m,ei as h,ji as g,k as _,kr as v,qi as y,t as b,ui as x,vr as S,x as C,xr as w,yr as T}from"./icon-with-child-CgZMNB3F.js";import{Ea as E,G as D,Li as O,Mi as k,Ni as ee,Pi as A,Ri as j,Ta as M,_n as N,at as P,b as F,fa as I,it as L,ka as R,mi as z,on as B,p as V,qi as H,ua as U,va as W,xn as G,yn as K}from"./common-CYlvhyJx.js";import{t as te}from"./usePersonalTokens-BAWWC0KL.js";var ne={class:`p-4`},re={class:`min-h-[100px]`},ie={key:0,class:`h-full w-full leading-normal`},ae={key:1,class:`h-full w-full leading-normal`},oe={class:`block`},q=s({name:`PersonalTokensList`,__name:`personal-tokens-list`,setup(s,{expose:p}){let{t:h}=u(),S=V(),{tokens:C,loading:D,fetchTokens:N,createToken:P,revokeToken:F}=te(),L=l(!1),z=l(!1),B=l(!1),G=l(null),K=l(``),q=l(!1),J=l(void 0),Y=f({name:``,description:``,expiresInDays:90}),X=f({name:[{required:!0,message:h(`authModule.tokens.createDialog.nameRequired`),trigger:`change`}]}),Z=e=>new Intl.DateTimeFormat(void 0,{dateStyle:`medium`,timeStyle:`short`}).format(new Date(e)),Q=e=>new Date(e)<new Date,$=()=>{Y.name=``,Y.description=``,Y.expiresInDays=90,J.value?.resetFields()},se=()=>{$()},ce=async()=>{J.value&&J.value.validate(async e=>{if(e){B.value=!0;try{let e=await P({name:Y.name,description:Y.description||null,expires_in_days:Y.expiresInDays||null});e?(K.value=e.token,q.value=!1,L.value=!1,z.value=!0,$(),S.success(h(`authModule.tokens.messages.created`))):S.error(h(`authModule.tokens.messages.createError`))}catch{S.error(h(`authModule.tokens.messages.createError`))}finally{B.value=!1}}})},le=async()=>{try{await navigator.clipboard.writeText(K.value),q.value=!0}catch{S.error(h(`authModule.tokens.messages.copyError`))}},ue=()=>{z.value=!1,K.value=``,q.value=!1},de=e=>{k.confirm(h(`authModule.tokens.revokeDialog.message`),h(`authModule.tokens.revokeDialog.title`),{confirmButtonText:h(`authModule.tokens.revokeDialog.confirm`),cancelButtonText:h(`authModule.tokens.revokeDialog.cancel`),type:`warning`,confirmButtonClass:`el-button--danger`}).then(async()=>{G.value=e.id;try{await F(e.id)?S.success(h(`authModule.tokens.messages.revoked`)):S.error(h(`authModule.tokens.messages.revokeError`))}catch{S.error(h(`authModule.tokens.messages.revokeError`))}finally{G.value=null}}).catch(()=>{})};return p({openCreateDialog:()=>{L.value=!0}}),d(async()=>{await N()}),(s,l)=>(c(),e(`div`,null,[n(`div`,ne,[i(g(R),{title:g(h)(`authModule.tokens.description`),type:`info`,closable:!1},null,8,[`title`])]),m((c(),e(`div`,re,[i(g(O),{data:g(C),class:`w-full`,"table-layout":`fixed`},{empty:x(()=>[g(D)?(c(),e(`div`,ie,[i(g(a),{class:`h-full w-full`},{icon:x(()=>[i(g(b),{size:80},{primary:x(()=>[i(g(t),{icon:`mdi:key`})]),secondary:x(()=>[i(g(t),{icon:`mdi:database-refresh`})]),_:1})]),_:1})])):(c(),e(`div`,ae,[i(g(a),{class:`h-full w-full`},{icon:x(()=>[i(g(b),{size:80},{primary:x(()=>[i(g(t),{icon:`mdi:key`})]),secondary:x(()=>[i(g(t),{icon:`mdi:information`})]),_:1})]),title:x(()=>[r(y(g(h)(`authModule.tokens.noTokens`)),1)]),_:1})]))]),default:x(()=>[i(g(j),{label:g(h)(`authModule.tokens.columns.name`),prop:`name`,"min-width":`150`},{default:x(({row:e})=>[n(`div`,null,[n(`strong`,oe,y(e.name),1),e.description?(c(),o(g(A),{key:0,size:`small`,type:`info`,class:`block leading-4`,truncated:``},{default:x(()=>[r(y(e.description),1)]),_:2},1024)):v(``,!0)])]),_:1},8,[`label`]),i(g(j),{label:g(h)(`authModule.tokens.columns.created`),prop:`created_at`,width:`180`},{default:x(({row:e})=>[r(y(Z(e.created_at)),1)]),_:1},8,[`label`]),i(g(j),{label:g(h)(`authModule.tokens.columns.lastUsed`),prop:`last_used_at`,width:`180`},{default:x(({row:e})=>[r(y(e.last_used_at?Z(e.last_used_at):g(h)(`authModule.tokens.never`)),1)]),_:1},8,[`label`]),i(g(j),{label:g(h)(`authModule.tokens.columns.expires`),prop:`expires_at`,width:`180`},{default:x(({row:t})=>[t.expires_at?(c(),o(g(A),{key:0,type:Q(t.expires_at)?`danger`:void 0},{default:x(()=>[r(y(Z(t.expires_at)),1)]),_:2},1032,[`type`])):(c(),e(w,{key:1},[r(y(g(h)(`authModule.tokens.never`)),1)],64))]),_:1},8,[`label`]),i(g(j),{label:g(h)(`authModule.tokens.columns.actions`),width:`120`,align:`right`},{default:x(({row:e})=>[n(`div`,{onClick:l[0]||=T(()=>{},[`stop`])},[i(g(_),{size:`small`,type:`danger`,plain:``,loading:G.value===e.id,onClick:t=>de(e)},{icon:x(()=>[i(g(t),{icon:`mdi:key-remove`})]),default:x(()=>[r(` `+y(g(h)(`authModule.tokens.revoke`)),1)]),_:1},8,[`loading`,`onClick`])])]),_:1},8,[`label`])]),_:1},8,[`data`])])),[[g(ee),g(D)]]),i(g(H),{modelValue:L.value,"onUpdate:modelValue":l[5]||=e=>L.value=e,title:g(h)(`authModule.tokens.createDialog.title`),class:`max-w-[500px]`,onClose:se},{footer:x(()=>[i(g(_),{onClick:l[4]||=e=>L.value=!1},{default:x(()=>[r(y(g(h)(`authModule.tokens.createDialog.cancel`)),1)]),_:1}),i(g(_),{type:`primary`,loading:B.value,onClick:ce},{default:x(()=>[r(y(g(h)(`authModule.tokens.createDialog.submit`)),1)]),_:1},8,[`loading`])]),default:x(()=>[i(g(M),{ref_key:`createFormEl`,ref:J,model:Y,rules:X,"label-position":`top`},{default:x(()=>[i(g(E),{label:g(h)(`authModule.tokens.createDialog.name`),prop:`name`},{default:x(()=>[i(g(W),{modelValue:Y.name,"onUpdate:modelValue":l[1]||=e=>Y.name=e,placeholder:g(h)(`authModule.tokens.createDialog.namePlaceholder`)},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),i(g(E),{label:g(h)(`authModule.tokens.createDialog.description`),prop:`description`},{default:x(()=>[i(g(W),{modelValue:Y.description,"onUpdate:modelValue":l[2]||=e=>Y.description=e,type:`textarea`,rows:2,placeholder:g(h)(`authModule.tokens.createDialog.descriptionPlaceholder`)},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),i(g(E),{label:g(h)(`authModule.tokens.createDialog.expiry`),prop:`expiresInDays`},{default:x(()=>[i(g(I),{modelValue:Y.expiresInDays,"onUpdate:modelValue":l[3]||=e=>Y.expiresInDays=e,class:`w-full`},{default:x(()=>[i(g(U),{label:g(h)(`authModule.tokens.createDialog.expiry30`),value:30},null,8,[`label`]),i(g(U),{label:g(h)(`authModule.tokens.createDialog.expiry90`),value:90},null,8,[`label`]),i(g(U),{label:g(h)(`authModule.tokens.createDialog.expiry365`),value:365},null,8,[`label`]),i(g(U),{label:g(h)(`authModule.tokens.createDialog.expiryNever`),value:0},null,8,[`label`])]),_:1},8,[`modelValue`])]),_:1},8,[`label`])]),_:1},8,[`model`,`rules`])]),_:1},8,[`modelValue`,`title`]),i(g(H),{modelValue:z.value,"onUpdate:modelValue":l[6]||=e=>z.value=e,title:g(h)(`authModule.tokens.createdDialog.title`),class:`max-w-[600px]`,"close-on-click-modal":!1,"close-on-press-escape":!1},{footer:x(()=>[i(g(_),{type:q.value?`success`:`primary`,onClick:le},{icon:x(()=>[i(g(t),{icon:q.value?`mdi:check`:`mdi:content-copy`},null,8,[`icon`])]),default:x(()=>[r(` `+y(q.value?g(h)(`authModule.tokens.createdDialog.copied`):g(h)(`authModule.tokens.createdDialog.copy`)),1)]),_:1},8,[`type`]),i(g(_),{onClick:ue},{default:x(()=>[r(y(g(h)(`authModule.tokens.createdDialog.done`)),1)]),_:1})]),default:x(()=>[i(g(R),{title:g(h)(`authModule.tokens.createdDialog.warning`),type:`warning`,closable:!1,"show-icon":``},null,8,[`title`]),i(g(W),{"model-value":K.value,readonly:``,class:`font-mono mt-4`},null,8,[`model-value`])]),_:1},8,[`modelValue`,`title`])]))}}),J=s({name:`SettingsProfileForm`,__name:`settings-profile-form`,props:{profile:{},remoteFormSubmit:{type:Boolean,default:!1},remoteFormResult:{default:N.NONE},remoteFormReset:{type:Boolean,default:!1},layout:{default:K.DEFAULT}},emits:[`update:remoteFormSubmit`,`update:remoteFormResult`,`update:remoteFormReset`],setup(t,{emit:n}){let r=t,a=n,{t:s,locale:d}=u(),m=V(),_=F().getStore(B),v=l(void 0),y=f({email:[{required:!1,message:s(`authModule.fields.email.validation.required`),trigger:`change`},{type:`email`,message:s(`authModule.fields.email.validation.email`),trigger:`change`}],firstName:[{required:!1,message:s(`authModule.fields.firstName.validation.required`),trigger:`change`}],lastName:[{required:!1,message:s(`authModule.fields.lastName.validation.required`),trigger:`change`}]}),b=P,S=e=>e?L[e]??null:null,C=e=>e?e.split(`-`)[0]:null,T=f({email:r.profile.email??`@`,firstName:r.profile.firstName,lastName:r.profile.lastName,language:S(r.profile.language??null)}),O,k=()=>{window.clearTimeout(O),a(`update:remoteFormResult`,N.NONE)};return p(()=>r.remoteFormSubmit,async e=>{e&&(a(`update:remoteFormSubmit`,!1),v.value.clearValidate(),v.value.validate(async e=>{if(!e)return;a(`update:remoteFormResult`,N.WORKING);let t=s(`authModule.messages.profileNotEdited`);try{await _.edit({id:r.profile.id,data:{firstName:T.firstName,lastName:T.lastName,email:T.email,language:C(T.language)}}),T.language&&(d.value=T.language,D(T.language)),a(`update:remoteFormResult`,N.OK),m.success(s(`authModule.messages.profileEdited`)),O=window.setTimeout(k,2e3)}catch(e){e instanceof Error&&`exception`in e&&e.exception instanceof Error?m.exception(t):m.error(t),a(`update:remoteFormResult`,N.ERROR),O=window.setTimeout(k,2e3)}}))}),p(()=>r.remoteFormReset,e=>{a(`update:remoteFormReset`,!1),e&&(T.email=r.profile.email??`@`,T.firstName=r.profile.firstName,T.lastName=r.profile.lastName,T.language=S(r.profile.language??null))}),(t,n)=>(c(),o(g(M),{ref_key:`profileFormEl`,ref:v,model:T,rules:y,"label-position":r.layout===g(K).PHONE?`top`:`right`,"label-width":180,"status-icon":``},{default:x(()=>[i(g(E),{label:g(s)(`authModule.fields.email.title`),prop:`email`},{default:x(()=>[i(g(W),{modelValue:T.email,"onUpdate:modelValue":n[0]||=e=>T.email=e,name:`email`},null,8,[`modelValue`])]),_:1},8,[`label`]),i(g(E),{label:g(s)(`authModule.fields.firstName.title`),prop:`firstName`},{default:x(()=>[i(g(W),{modelValue:T.firstName,"onUpdate:modelValue":n[1]||=e=>T.firstName=e,name:`firstName`},null,8,[`modelValue`])]),_:1},8,[`label`]),i(g(E),{label:g(s)(`authModule.fields.lastName.title`),prop:`lastName`},{default:x(()=>[i(g(W),{modelValue:T.lastName,"onUpdate:modelValue":n[2]||=e=>T.lastName=e,name:`lastName`},null,8,[`modelValue`])]),_:1},8,[`label`]),i(g(E),{label:g(s)(`authModule.fields.language.title`),prop:`language`},{default:x(()=>[i(g(I),{modelValue:T.language,"onUpdate:modelValue":n[3]||=e=>T.language=e,placeholder:g(s)(`authModule.fields.language.placeholder`),clearable:``},{default:x(()=>[(c(!0),e(w,null,h(g(b),e=>(c(),o(g(U),{key:e.value,label:`${e.flag} ${e.label}`,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`label`])]),_:1},8,[`model`,`rules`,`label-position`]))}}),Y=s({name:`SettingsPasswordForm`,__name:`settings-password-form`,props:{profile:{},remoteFormSubmit:{type:Boolean,default:!1},remoteFormResult:{default:N.NONE},remoteFormReset:{type:Boolean,default:!1},layout:{default:K.DEFAULT}},emits:[`update:remoteFormSubmit`,`update:remoteFormResult`,`update:remoteFormReset`],setup(e,{emit:t}){let n=e,r=t,{t:a}=u(),s=V(),d=F().getStore(B),m=l(void 0),h=f({currentPassword:[{required:!0,message:a(`authModule.fields.currentPassword.validation.required`),trigger:`change`}],newPassword:[{required:!0,message:a(`authModule.fields.newPassword.validation.required`),trigger:`change`}],repeatPassword:[{validator:(e,t,n)=>{t===``?n(Error(a(`authModule.fields.repeatPassword.validation.required`))):t===_.newPassword?n():n(Error(a(`authModule.fields.repeatPassword.validation.different`)))},trigger:`change`}]}),_=f({currentPassword:``,newPassword:``,repeatPassword:``}),v,y=()=>{window.clearTimeout(v),r(`update:remoteFormResult`,N.NONE)};return p(()=>n.remoteFormSubmit,async e=>{e&&(r(`update:remoteFormSubmit`,!1),m.value.clearValidate(),m.value.validate(async e=>{if(!e)return;r(`update:remoteFormResult`,N.WORKING);let t=a(`authModule.messages.passwordNotEdited`);try{await d.edit({id:n.profile.id,data:{password:{current:_.currentPassword,new:_.newPassword}}}),r(`update:remoteFormResult`,N.OK),s.success(a(`authModule.messages.passwordEdited`)),v=window.setTimeout(y,2e3)}catch(e){e instanceof Error&&`exception`in e&&e.exception instanceof Error?s.exception(t):s.error(t),r(`update:remoteFormResult`,N.ERROR),v=window.setTimeout(y,2e3)}}))}),p(()=>n.remoteFormReset,e=>{r(`update:remoteFormReset`,!1),e&&(m.value?.resetFields(),_.currentPassword=``,_.newPassword=``,_.repeatPassword=``)}),(e,t)=>(c(),o(g(M),{ref_key:`passwordFormEl`,ref:m,model:_,rules:h,"label-position":n.layout===g(K).PHONE?`top`:`right`,"label-width":180,"status-icon":``},{default:x(()=>[i(g(E),{label:g(a)(`authModule.fields.currentPassword.title`),prop:`currentPassword`},{default:x(()=>[i(g(W),{modelValue:_.currentPassword,"onUpdate:modelValue":t[0]||=e=>_.currentPassword=e,name:`currentPassword`,type:`password`,"show-password":``},null,8,[`modelValue`])]),_:1},8,[`label`]),i(g(E),{label:g(a)(`authModule.fields.newPassword.title`),prop:`newPassword`},{default:x(()=>[i(g(W),{modelValue:_.newPassword,"onUpdate:modelValue":t[1]||=e=>_.newPassword=e,name:`newPassword`,type:`password`,"show-password":``},null,8,[`modelValue`])]),_:1},8,[`label`]),i(g(E),{label:g(a)(`authModule.fields.repeatPassword.title`),prop:`repeatPassword`},{default:x(()=>[i(g(W),{modelValue:_.repeatPassword,"onUpdate:modelValue":t[2]||=e=>_.repeatPassword=e,name:`repeatPassword`,type:`password`,"show-password":``},null,8,[`modelValue`])]),_:1},8,[`label`])]),_:1},8,[`model`,`rules`,`label-position`]))}}),X=s({name:`SignInForm`,__name:`sign-in-form`,props:{remoteFormSubmit:{type:Boolean},remoteFormResult:{default:N.NONE},remoteFormReset:{type:Boolean,default:!1}},emits:[`update:remoteFormResult`,`update:remoteFormReset`],setup(e,{emit:t}){let n=e,a=t,{t:s}=u(),d=V(),m=F().getStore(B),h=l(void 0),v=l(void 0),b=f({username:[{required:!0,message:s(`authModule.fields.username.validation.required`),trigger:`change`}],password:[{required:!0,message:s(`authModule.fields.password.validation.required`),trigger:`change`}]}),C=f({username:``,password:``}),w=async e=>{e&&await e.validate(async e=>{if(e){a(`update:remoteFormResult`,N.WORKING);try{await m.create({data:{username:C.username,password:C.password}}),a(`update:remoteFormResult`,N.OK)}catch(e){a(`update:remoteFormResult`,N.ERROR);let t=s(`authModule.messages.requestError`);e instanceof Error&&`exception`in e&&e.exception instanceof Error?d.exception(t):d.error(t)}}})},D=()=>{v.value?.focus()},O=()=>{w(h.value)};return p(()=>n.remoteFormReset,e=>{if(a(`update:remoteFormReset`,!1),e){if(!h.value)return;h.value.resetFields()}}),(e,t)=>(c(),o(g(M),{ref_key:`signFormEl`,ref:h,model:C,rules:b,"label-position":`top`,"status-icon":``,class:`px-5`,onSubmit:T(w,[`prevent`])},{default:x(()=>[i(g(E),{label:g(s)(`authModule.fields.username.title`),prop:`username`,class:`mb-5`},{default:x(()=>[i(g(W),{modelValue:C.username,"onUpdate:modelValue":t[0]||=e=>C.username=e,name:`username`,onKeyup:S(D,[`enter`])},null,8,[`modelValue`])]),_:1},8,[`label`]),i(g(E),{label:g(s)(`authModule.fields.password.title`),prop:`password`,class:`mb-5`},{default:x(()=>[i(g(W),{ref_key:`passwordInputEl`,ref:v,modelValue:C.password,"onUpdate:modelValue":t[1]||=e=>C.password=e,type:`password`,name:`password`,"show-password":``,onKeyup:S(O,[`enter`])},null,8,[`modelValue`])]),_:1},8,[`label`]),i(g(_),{type:`primary`,size:`large`,class:`block w-full`,onClick:t[2]||=e=>w(h.value)},{default:x(()=>[r(y(g(s)(`authModule.buttons.signIn.title`)),1)]),_:1})]),_:1},8,[`model`,`rules`]))}}),Z={class:`flex flex-row flex-nowrap gap-5`},Q={class:`mb-5`},$={class:`mb-5`},se={class:`mb-10`},ce={class:`mt-5 px-5`},le=s({name:`SignUpForm`,__name:`sign-up-form`,props:{remoteFormSubmit:{type:Boolean,default:!1},remoteFormResult:{default:N.NONE},remoteFormReset:{type:Boolean,default:!1}},emits:[`update:remoteFormResult`,`update:remoteFormReset`],setup(t,{emit:a}){let o=t,s=a,{t:d}=u(),m=V(),h=C(),v=F().getStore(B),b=l(void 0),S=f({email:[{required:!0,message:d(`authModule.fields.email.validation.required`),trigger:`change`},{type:`email`,message:d(`authModule.fields.email.validation.email`),trigger:`change`}],firstName:[{required:!0,message:d(`authModule.fields.firstName.validation.required`),trigger:`change`}],lastName:[{required:!0,message:d(`authModule.fields.lastName.validation.required`),trigger:`change`}],username:[{required:!0,message:d(`authModule.fields.username.validation.required`),trigger:`change`}],password:[{required:!0,message:d(`authModule.fields.password.validation.required`),trigger:`change`}]}),D=f({username:``,password:``,email:``,firstName:``,lastName:``}),O=async e=>{e&&await e.validate(async e=>{if(e){s(`update:remoteFormResult`,N.WORKING);try{await v.register({data:{username:D.username,password:D.password,firstName:D.firstName,lastName:D.lastName,email:D.email}}),s(`update:remoteFormResult`,N.OK)}catch(e){s(`update:remoteFormResult`,N.ERROR);let t=d(`authModule.messages.requestError`);e instanceof Error&&`exception`in e&&e.exception instanceof Error?m.exception(t):m.error(t)}}})},k=()=>{h.push({name:G.SIGN_IN})};return p(()=>o.remoteFormReset,e=>{if(s(`update:remoteFormReset`,!1),e){if(!b.value)return;b.value.resetFields()}}),(t,a)=>(c(),e(w,null,[i(g(M),{ref_key:`signFormEl`,ref:b,model:D,rules:S,"label-position":`top`,"status-icon":``,class:`px-5`,onSubmit:T(O,[`prevent`])},{default:x(()=>[n(`div`,Z,[i(g(E),{label:g(d)(`authModule.fields.firstName.title`),prop:`firstName`},{default:x(()=>[i(g(W),{modelValue:D.firstName,"onUpdate:modelValue":a[0]||=e=>D.firstName=e,placeholder:g(d)(`authModule.fields.firstName.placeholder`),name:`firstName`},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),i(g(E),{label:g(d)(`authModule.fields.lastName.title`),prop:`lastName`},{default:x(()=>[i(g(W),{modelValue:D.lastName,"onUpdate:modelValue":a[1]||=e=>D.lastName=e,palceholder:g(d)(`authModule.fields.lastName.placeholder`),name:`lastName`},null,8,[`modelValue`,`palceholder`])]),_:1},8,[`label`])]),n(`div`,Q,[i(g(E),{label:g(d)(`authModule.fields.email.title`),prop:`email`},{default:x(()=>[i(g(W),{modelValue:D.email,"onUpdate:modelValue":a[2]||=e=>D.email=e,palceholder:g(d)(`authModule.fields.email.placeholder`),name:`email`},null,8,[`modelValue`,`palceholder`])]),_:1},8,[`label`])]),n(`div`,$,[i(g(E),{label:g(d)(`authModule.fields.username.title`),prop:`username`},{default:x(()=>[i(g(W),{modelValue:D.username,"onUpdate:modelValue":a[3]||=e=>D.username=e,"show-password":``,name:`username`,type:`text`},null,8,[`modelValue`])]),_:1},8,[`label`])]),n(`div`,se,[i(g(E),{label:g(d)(`authModule.fields.password.title`),prop:`password`},{default:x(()=>[i(g(W),{modelValue:D.password,"onUpdate:modelValue":a[4]||=e=>D.password=e,"show-password":``,name:`password`,type:`password`},null,8,[`modelValue`])]),_:1},8,[`label`])]),i(g(_),{type:`primary`,size:`large`,class:`block w-full`,onClick:a[5]||=e=>O(b.value)},{default:x(()=>[r(y(g(d)(`authModule.buttons.signUp.title`)),1)]),_:1})]),_:1},8,[`model`,`rules`]),n(`div`,ce,[i(g(_),{class:`block w-full`,onClick:a[6]||=e=>k()},{default:x(()=>[r(y(g(d)(`authModule.buttons.backToSignIn.title`)),1)]),_:1})])],64))}}),ue={class:`flex flex-row justify-center items-center mt-4`},de=s({name:`UnlockForm`,__name:`unlock-form`,props:{remoteFormSubmit:{type:Boolean},remoteFormResult:{default:N.NONE},remoteFormReset:{type:Boolean,default:!1}},emits:[`update:remoteFormResult`,`update:remoteFormReset`,`signOut`],setup(e,{emit:t}){let a=e,s=t,{t:m}=u(),h=V(),v=z(),b=l(void 0),C=l(void 0),w=f({password:[{required:!0,message:m(`authModule.fields.password.validation.required`),trigger:`change`}]}),D=f({password:``}),O=async e=>{e&&await e.validate(async e=>{if(e){let e=v?.details.value?.username;if(!e){s(`update:remoteFormResult`,N.ERROR),h.error(m(`authModule.messages.requestError`));return}s(`update:remoteFormResult`,N.WORKING);try{await v.signIn({username:e,password:D.password})?s(`update:remoteFormResult`,N.OK):(s(`update:remoteFormResult`,N.ERROR),h.error(m(`authModule.messages.invalidPassword`)))}catch{s(`update:remoteFormResult`,N.ERROR),h.error(m(`authModule.messages.invalidPassword`))}}})},k=()=>{s(`signOut`)};return d(()=>{C.value?.focus()}),p(()=>a.remoteFormReset,e=>{if(s(`update:remoteFormReset`,!1),e){if(!b.value)return;b.value.resetFields()}}),(e,t)=>(c(),o(g(M),{ref_key:`unlockFormEl`,ref:b,model:D,rules:w,"label-position":`top`,"status-icon":``,class:`px-5`,onSubmit:T(O,[`prevent`])},{default:x(()=>[i(g(E),{label:g(m)(`authModule.fields.password.title`),prop:`password`,class:`mb-5`},{default:x(()=>[i(g(W),{ref_key:`passwordInputEl`,ref:C,modelValue:D.password,"onUpdate:modelValue":t[0]||=e=>D.password=e,type:`password`,name:`password`,"show-password":``,onKeyup:t[1]||=S(e=>O(b.value),[`enter`])},null,8,[`modelValue`])]),_:1},8,[`label`]),i(g(_),{type:`primary`,size:`large`,class:`block w-full mb-3`,onClick:t[2]||=e=>O(b.value)},{default:x(()=>[r(y(g(m)(`authModule.buttons.unlock.title`)),1)]),_:1}),n(`div`,ue,[i(g(_),{type:`danger`,link:``,onClick:k},{default:x(()=>[r(y(g(m)(`authModule.buttons.signOut.title`)),1)]),_:1})])]),_:1},8,[`model`,`rules`]))}});export{J as a,Y as i,le as n,q as o,X as r,de as t};
@@ -1 +1 @@
1
- import"./rolldown-runtime-QTnfLwEv.js";import{Ei as e,Er as t,Gr as n,Si as r,T as i,bi as a,ci as o}from"./icon-with-child-CgZMNB3F.js";import{Cr as s,Dn as c,Fn as l,Jt as u,Kn as d,Mi as f,Sr as p,T as m,Tr as h,Ut as g,_,_r as v,b as y,br as b,c as x,cr as S,do as C,dr as w,hr as T,p as E,qr as D,u as O,ur as k,wr as A,yr as j}from"./common-C6O7MWKy.js";import{t as ee}from"./useSpaces-XFygVec-.js";import"./composables-CFfboRzY.js";var M=`scenes`,N=`scenes-module`,P=`ScenesModule.`,F=function(e){return e.TRIGGER_SCENE=`ScenesModule.TriggerScene`,e}({}),I=function(e){return e.TRIGGER_SCENE=`ScenesModule.TriggerSceneHandler`,e}({}),L=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}({}),R=function(e){return e.NONE=`none`,e.WORKING=`working`,e.ERROR=`error`,e.OK=`ok`,e}({}),z={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`},B={[D.generic]:`mdi:playlist-play`,[D.lighting]:`mdi:lightbulb-group`,[D.climate]:`mdi:thermostat`,[D.media]:`mdi:television-play`,[D.work]:`mdi:briefcase`,[D.relax]:`mdi:sofa`,[D.night]:`mdi:weather-night`,[D.morning]:`mdi:weather-sunset-up`,[D.party]:`mdi:party-popper`,[D.movie]:`mdi:movie-open`,[D.away]:`mdi:home-export-outline`,[D.home]:`mdi:home-import-outline`,[D.security]:`mdi:shield-home`,[D.energy]:`mdi:flash`,[D.custom]:`mdi:shape-outline`},V=b({search:s().optional(),categories:k(v(D)),primarySpaceId:A([s().uuid(),T(`whole_home`)]).optional(),enabled:S([`all`,`enabled`,`disabled`]).default(`all`)}),H=Symbol(`FB-Module-Scenes-ScenesStore`),U=Symbol(`FB-Module-Scenes-ScenesActionsStore`),W=({id:e})=>{let n=y(),r=n.getStore(H),i=n.getStore(U),{data:a,semaphore:o}=C(r);return{scene:t(()=>e===null?null:a.value.get(e)??null),isLoading:t(()=>o.value.fetching.item.includes(e)?!0:a.value.get(e)===void 0&&o.value.fetching.items),fetchScene:async()=>{a.value.get(e)?.draft||(await r.get({id:e}),await i.fetch({sceneId:e}))}}},G=d(),K=b({id:s().uuid().optional(),type:s().trim().nonempty(),configuration:p(s(),h()).default({}),order:j().int().min(0).optional(),enabled:w().default(!0)}).catchall(h());b({id:s().uuid(),type:s().trim().nonempty(),configuration:p(s(),h()).optional(),order:j().int().min(0).optional(),enabled:w().optional()}).catchall(h());var q=b({id:s().uuid().optional(),name:s().trim().nonempty(),description:s().trim().transform(e=>e===``?null:e).nullable().optional(),category:v(D).default(D.generic),icon:s().nullable().optional(),enabled:w().default(!0),order:j().optional(),primarySpaceId:s().uuid().nullable().optional().transform(e=>e===``?null:e),actions:k(K).default([])}),J=b({id:s().uuid(),name:s().trim().nonempty().optional(),description:s().trim().transform(e=>e===``?null:e).nullable().optional(),category:v(D).optional(),icon:s().nullable().optional(),enabled:w().optional(),order:j().optional(),primarySpaceId:s().uuid().nullable().optional().transform(e=>e===``?null:e),actions:k(K).default([])}),Y=class extends Error{exception;constructor(e,t=null){super(e),this.name=`ScenesException`,this.exception=t}},X=class extends Y{code;constructor(e,t=null,n=null){super(e,n),this.name=`ScenesApiException`,this.code=t}},Z=class extends Y{constructor(e,t=null){super(e,t),this.name=`ScenesValidationException`}},te=()=>{let e=m(),{enabled:n}=c(),r=[`sceneActionAddForm`,`sceneActionEditForm`,`sceneActionCard`],i=[`sceneActionSchema`,`sceneActionAddFormSchema`,`sceneActionEditFormSchema`,`sceneActionCreateReqSchema`,`sceneActionUpdateReqSchema`],a=t(()=>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=r.length===0||!!e.components&&r.some(t=>e.components&&t in e.components),n=i.length===0||!!e.schemas&&i.some(t=>e.schemas&&t in e.schemas);return t||n}):!1));return{plugins:a,options:t(()=>l(a.value.flatMap(e=>(e.elements??[]).filter(e=>{let t=e.modules===void 0||e.modules.includes(`scenes-module`),n=!!e.components&&r.some(t=>e.components&&t in e.components);return t&&n}).map(t=>({value:t.type,label:t.name?.trim()?t.name:e.name,disabled:!n(e.type)}))),[e=>e.label],[`asc`])),getByName:e=>a.value.find(t=>t.type===e),getByType:e=>a.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 a.value){let n=(t.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`scenes-module`)));if(n)return n}}}},ne=({id:n})=>{let s=y(),c=s.getStore(H),l=s.getStore(U),{t:d}=i(),f=E(),p=_(),{spaces:m,fetching:h,fetchSpaces:v}=ee(),b=r(R.NONE),x,S=t(()=>Object.values(D).map(e=>({value:e,label:d(`scenes.categories.${e}`),icon:B[e]}))),C=t(()=>{let e=m.value.filter(e=>e.type===g.ROOM).map(e=>({value:e.id,label:e.name,icon:u(e)})).sort((e,t)=>e.label.localeCompare(t.label)),t=m.value.filter(e=>e.type===g.ZONE).map(e=>({value:e.id,label:e.name,icon:u(e)})).sort((e,t)=>e.label.localeCompare(t.label)),n=[];return e.length>0&&n.push({type:g.ROOM,label:d(`scenes.form.spaceGroups.rooms`),icon:`mdi:door`,options:e}),t.length>0&&n.push({type:g.ZONE,label:d(`scenes.form.spaceGroups.zones`),icon:`mdi:map-marker-radius`,options:t}),n}),w=a({id:n,category:D.generic,name:``,description:null,icon:null,enabled:!0,primarySpaceId:null,actions:[]}),{options:T,getElement:k}=te(),A=e=>{let t=e.propertyId;return t&&w.actions.find(e=>e.propertyId===t)?(f.warning(d(`scenes.messages.duplicateAction`)),!1):(w.actions.push(e),!0)},j=e=>{w.actions.splice(e,1)},M=(e,t)=>{e>=0&&e<w.actions.length&&(w.actions[e]=t)},N=e=>k(e)?.components?.sceneActionCard??null,P=e=>k(e)?.components?.sceneActionAddForm??null,F=e=>k(e)?.components?.sceneActionEditForm??null,I=e=>T.value.find(t=>t.value===e)?.label??e,L=O(e(w)),z=r(void 0),V=r(!1),W=async(e,t)=>{try{for(let n=0;n<t.length;n++){let r=t[n];r&&await l.add({sceneId:e,data:{...r,order:n,enabled:r.enabled??!0}})}}catch(e){throw p.error(`Error syncing scene actions:`,e),e}},K=async()=>{if(z.value.clearValidate(),!await z.value.validate())throw new Z(`Form not valid`);let e=q.safeParse(w);if(!e.success)throw p.error(`Schema validation failed with:`,e.error),new Z(`Failed to validate create scene model.`);b.value=R.WORKING;let t=d(`scenes.messages.createFailed`);try{let t=await c.add({id:n,draft:!1,data:e.data});e.data.actions.length>0&&await W(t.id,e.data.actions)}catch(e){throw b.value=R.ERROR,x=window.setTimeout(J,2e3),e instanceof X&&e.code===422?f.error(e.message):f.error(t),e}return b.value=R.OK,x=window.setTimeout(J,2e3),f.success(d(`scenes.messages.created`)),`added`},J=()=>{window.clearTimeout(x),b.value=R.NONE};return o(w,()=>{V.value=!(0,G.isEqual)(e(w),L)}),{categoriesOptions:S,spacesOptionsGrouped:C,model:w,formEl:z,formChanged:V,submit:K,clear:J,formResult:b,loadingSpaces:h,fetchSpaces:v,actionPluginOptions:T,addAction:A,removeAction:j,updateAction:M,getActionCardComponent:N,getActionFormComponent:P,getActionEditFormComponent:F,getPluginLabel:I}},re=({scene:s,messages:c})=>{let l=y(),d=l.getStore(H),f=l.getStore(U),{t:p}=i(),m=E(),h=_(),{spaces:v,fetching:b,fetchSpaces:x}=ee(),S=r(R.NONE),C=t(()=>f.findForScene(s.id)),w=r(O(C.value)),T,k=t(()=>Object.values(D).map(e=>({value:e,label:p(`scenes.categories.${e}`),icon:B[e]}))),A=t(()=>{let e=v.value.filter(e=>e.type===g.ROOM).map(e=>({value:e.id,label:e.name,icon:u(e)})).sort((e,t)=>e.label.localeCompare(t.label)),t=v.value.filter(e=>e.type===g.ZONE).map(e=>({value:e.id,label:e.name,icon:u(e)})).sort((e,t)=>e.label.localeCompare(t.label)),n=[];return e.length>0&&n.push({type:g.ROOM,label:p(`scenes.form.spaceGroups.rooms`),icon:`mdi:door`,options:e}),t.length>0&&n.push({type:g.ZONE,label:p(`scenes.form.spaceGroups.zones`),icon:`mdi:map-marker-radius`,options:t}),n}),j=t(()=>C.value.map(e=>({...e}))),M=a({id:s.id,category:s.category,name:s.name,description:s.description,icon:s.icon,enabled:s.enabled,primarySpaceId:s.primarySpaceId,actions:j.value}),{options:N,getElement:P}=te(),F=e=>{let t=e.propertyId;return t&&M.actions.find(e=>e.propertyId===t)?(m.warning(p(`scenes.messages.duplicateAction`)),!1):(M.actions.push(e),!0)},I=e=>{M.actions.splice(e,1)},L=(e,t)=>{e>=0&&e<M.actions.length&&(M.actions[e]=t)},z=e=>P(e)?.components?.sceneActionCard??null,V=e=>P(e)?.components?.sceneActionAddForm??null,W=e=>P(e)?.components?.sceneActionEditForm??null,K=e=>N.value.find(t=>t.value===e)?.label??e,q=r(void 0),Y=r(!1),ne=O(e(M)),re=async(e,t)=>{try{let n=new Set(w.value.map(e=>e.id)),r=new Set(t.filter(e=>e.id).map(e=>e.id));for(let t of w.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=w.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,G.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=M.actions[e];n&&(n.id=t)}w.value=O(f.findForScene(e))}catch(e){throw h.error(`Error syncing scene actions:`,e),e}},ie=async()=>{let t=s.draft,n=c&&c.error?c.error:s.draft?p(`scenes.messages.createFailed`):p(`scenes.messages.editFailed`,{scene:s.name});if(q.value.clearValidate(),!await q.value.validate())throw new Z(`Form not valid`);let r=J.safeParse(M);if(!r.success)throw h.error(`Schema validation failed with:`,r.error),new Z(`Failed to validate edit scene model.`);S.value=R.WORKING;try{await d.edit({id:s.id,data:r.data});let e=s.id;if(t){let t=await d.save({id:s.id});M.id=t.id,M.category=t.category,M.name=t.name,M.description=t.description,M.icon=t.icon,M.enabled=t.enabled,M.primarySpaceId=t.primarySpaceId,e=t.id}await re(e,r.data.actions)}catch(e){throw S.value=R.ERROR,T=window.setTimeout(Q,2e3),e instanceof X&&e.code===422?m.error(e.message):e instanceof Z||(m.error(n),h.error(`Scene edit failed:`,e)),e}return S.value=R.OK,T=window.setTimeout(Q,2e3),t?(m.success(p(c&&c.success?c.success:`scenes.messages.created`)),`added`):(m.success(p(c&&c.success?c.success:`scenes.messages.edited`,{scene:s.name})),Y.value=!1,ne=O(e(M)),`saved`)},Q=()=>{window.clearTimeout(T),S.value=R.NONE};return o(M,()=>{Y.value=!(0,G.isEqual)(e(M),ne)}),n(()=>{Q()}),{categoriesOptions:k,spacesOptionsGrouped:A,model:M,formEl:q,formChanged:Y,submit:ie,clear:Q,formResult:S,loadingSpaces:b,fetchSpaces:x,actionPluginOptions:N,addAction:F,removeAction:I,updateAction:L,getActionCardComponent:z,getActionFormComponent:V,getActionEditFormComponent:W,getPluginLabel:K}},ie=({id:e})=>{let n=y().getStore(H);return{icon:t(()=>{let t=n.findById(e);return t?.icon?t.icon:t?.category&&t.category in B?B[t.category]:B[D.generic]})}},Q=()=>{let e=y().getStore(H),{data:n,semaphore:r,firstLoad:i}=C(e);return{scenes:t(()=>Array.from(n.value.values()).sort((e,t)=>e.name.localeCompare(t.name))),fetching:t(()=>r.value.fetching.items),loaded:t(()=>i.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}=i(),t=E(),n=y().getStore(H);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 f.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 f.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 f.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=y().getStore(H),{firstLoad:n,semaphore:i}=C(e),{filters:a,sort:s,pagination:c,reset:u}=x({key:`${N}:scenes:list`,filters:{schema:V,defaults:$},sort:{defaults:[oe]},pagination:{defaults:{page:1,size:10}},syncQuery:!0,version:1}),d=t(()=>a.value.search!==$.search||!(0,G.isEqual)(a.value.categories,$.categories)||a.value.primarySpaceId!==$.primarySpaceId||a.value.enabled!==$.enabled),f=r(c.value.size||10),p=r(c.value.page||1),m=r(s.value.length>0?s.value[0]?.by:void 0),h=r(s.value.length>0?s.value[0]?.dir??null:null),g=(e,t)=>t?t===`whole_home`?!e:e===t:!0,_=t(()=>{let t=e.findAll().filter(e=>!e.draft&&(!a.value.search||e.id.toLowerCase().includes(a.value.search.toLowerCase())||e.name.toLowerCase().includes(a.value.search.toLowerCase())||e.description?.toLowerCase().includes(a.value.search.toLowerCase()))&&(a.value.categories.length===0||a.value.categories.includes(e.category))&&g(e.primarySpaceId,a.value.primarySpaceId)&&(a.value.enabled===`all`||a.value.enabled===`enabled`&&e.enabled||a.value.enabled===`disabled`&&!e.enabled)),n=m.value??`order`;return l(t,[e=>e[n]??``],[h.value??`asc`])}),v=t(()=>{let e=(p.value-1)*f.value,t=e+f.value;return _.value.slice(e,t)}),b=async()=>{await e.fetch()},S=t(()=>i.value.fetching.items||!n.value),w=t(()=>n.value),T=t(()=>e.findAll().filter(e=>!e.draft).length);return o(()=>c.value,e=>{p.value=e.page??1,f.value=e.size??10},{deep:!0}),o(()=>p.value,e=>{c.value.page=e}),o(()=>f.value,e=>{c.value.size=e}),o(()=>h.value,e=>{m.value===void 0||e===null?s.value=[]:s.value=[{by:m.value,dir:e}]}),o(()=>m.value,e=>{e===void 0||h.value===null?s.value=[]:s.value=[{by:e,dir:h.value}]}),o(()=>a.value,()=>{p.value=1},{deep:!0}),{scenes:_,scenesPaginated:v,totalRows:T,areLoading:S,loaded:w,fetchScenes:b,filters:a,filtersActive:d,paginateSize:f,paginatePage:p,sortBy:m,sortDir:h,resetFilter:u}};export{z as _,re as a,M as b,Y as c,U as d,H as f,R as g,L as h,ie as i,Z as l,F as m,ae as n,ne as o,I as p,Q as r,X as s,se as t,W as u,P as v,B as x,N as y};
1
+ import"./rolldown-runtime-QTnfLwEv.js";import{Ei as e,Er as t,Gr as n,Si as r,T as i,bi as a,ci as o}from"./icon-with-child-CgZMNB3F.js";import{Cr as s,Dn as c,Fn as l,Jt as u,Kn as d,Mi as f,Sr as p,T as m,Tr as h,Ut as g,_,_r as v,b as y,br as b,c as x,cr as S,do as C,dr as w,hr as T,p as E,qr as D,u as O,ur as k,wr as A,yr as j}from"./common-CYlvhyJx.js";import{t as ee}from"./useSpaces-DCuyMUqe.js";import"./composables-DcfYrDwm.js";var M=`scenes`,N=`scenes-module`,P=`ScenesModule.`,F=function(e){return e.TRIGGER_SCENE=`ScenesModule.TriggerScene`,e}({}),I=function(e){return e.TRIGGER_SCENE=`ScenesModule.TriggerSceneHandler`,e}({}),L=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}({}),R=function(e){return e.NONE=`none`,e.WORKING=`working`,e.ERROR=`error`,e.OK=`ok`,e}({}),z={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`},B={[D.generic]:`mdi:playlist-play`,[D.lighting]:`mdi:lightbulb-group`,[D.climate]:`mdi:thermostat`,[D.media]:`mdi:television-play`,[D.work]:`mdi:briefcase`,[D.relax]:`mdi:sofa`,[D.night]:`mdi:weather-night`,[D.morning]:`mdi:weather-sunset-up`,[D.party]:`mdi:party-popper`,[D.movie]:`mdi:movie-open`,[D.away]:`mdi:home-export-outline`,[D.home]:`mdi:home-import-outline`,[D.security]:`mdi:shield-home`,[D.energy]:`mdi:flash`,[D.custom]:`mdi:shape-outline`},V=b({search:s().optional(),categories:k(v(D)),primarySpaceId:A([s().uuid(),T(`whole_home`)]).optional(),enabled:S([`all`,`enabled`,`disabled`]).default(`all`)}),H=Symbol(`FB-Module-Scenes-ScenesStore`),U=Symbol(`FB-Module-Scenes-ScenesActionsStore`),W=({id:e})=>{let n=y(),r=n.getStore(H),i=n.getStore(U),{data:a,semaphore:o}=C(r);return{scene:t(()=>e===null?null:a.value.get(e)??null),isLoading:t(()=>o.value.fetching.item.includes(e)?!0:a.value.get(e)===void 0&&o.value.fetching.items),fetchScene:async()=>{a.value.get(e)?.draft||(await r.get({id:e}),await i.fetch({sceneId:e}))}}},G=d(),K=b({id:s().uuid().optional(),type:s().trim().nonempty(),configuration:p(s(),h()).default({}),order:j().int().min(0).optional(),enabled:w().default(!0)}).catchall(h());b({id:s().uuid(),type:s().trim().nonempty(),configuration:p(s(),h()).optional(),order:j().int().min(0).optional(),enabled:w().optional()}).catchall(h());var q=b({id:s().uuid().optional(),name:s().trim().nonempty(),description:s().trim().transform(e=>e===``?null:e).nullable().optional(),category:v(D).default(D.generic),icon:s().nullable().optional(),enabled:w().default(!0),order:j().optional(),primarySpaceId:s().uuid().nullable().optional().transform(e=>e===``?null:e),actions:k(K).default([])}),J=b({id:s().uuid(),name:s().trim().nonempty().optional(),description:s().trim().transform(e=>e===``?null:e).nullable().optional(),category:v(D).optional(),icon:s().nullable().optional(),enabled:w().optional(),order:j().optional(),primarySpaceId:s().uuid().nullable().optional().transform(e=>e===``?null:e),actions:k(K).default([])}),Y=class extends Error{exception;constructor(e,t=null){super(e),this.name=`ScenesException`,this.exception=t}},X=class extends Y{code;constructor(e,t=null,n=null){super(e,n),this.name=`ScenesApiException`,this.code=t}},Z=class extends Y{constructor(e,t=null){super(e,t),this.name=`ScenesValidationException`}},te=()=>{let e=m(),{enabled:n}=c(),r=[`sceneActionAddForm`,`sceneActionEditForm`,`sceneActionCard`],i=[`sceneActionSchema`,`sceneActionAddFormSchema`,`sceneActionEditFormSchema`,`sceneActionCreateReqSchema`,`sceneActionUpdateReqSchema`],a=t(()=>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=r.length===0||!!e.components&&r.some(t=>e.components&&t in e.components),n=i.length===0||!!e.schemas&&i.some(t=>e.schemas&&t in e.schemas);return t||n}):!1));return{plugins:a,options:t(()=>l(a.value.flatMap(e=>(e.elements??[]).filter(e=>{let t=e.modules===void 0||e.modules.includes(`scenes-module`),n=!!e.components&&r.some(t=>e.components&&t in e.components);return t&&n}).map(t=>({value:t.type,label:t.name?.trim()?t.name:e.name,disabled:!n(e.type)}))),[e=>e.label],[`asc`])),getByName:e=>a.value.find(t=>t.type===e),getByType:e=>a.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 a.value){let n=(t.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`scenes-module`)));if(n)return n}}}},ne=({id:n})=>{let s=y(),c=s.getStore(H),l=s.getStore(U),{t:d}=i(),f=E(),p=_(),{spaces:m,fetching:h,fetchSpaces:v}=ee(),b=r(R.NONE),x,S=t(()=>Object.values(D).map(e=>({value:e,label:d(`scenes.categories.${e}`),icon:B[e]}))),C=t(()=>{let e=m.value.filter(e=>e.type===g.ROOM).map(e=>({value:e.id,label:e.name,icon:u(e)})).sort((e,t)=>e.label.localeCompare(t.label)),t=m.value.filter(e=>e.type===g.ZONE).map(e=>({value:e.id,label:e.name,icon:u(e)})).sort((e,t)=>e.label.localeCompare(t.label)),n=[];return e.length>0&&n.push({type:g.ROOM,label:d(`scenes.form.spaceGroups.rooms`),icon:`mdi:door`,options:e}),t.length>0&&n.push({type:g.ZONE,label:d(`scenes.form.spaceGroups.zones`),icon:`mdi:map-marker-radius`,options:t}),n}),w=a({id:n,category:D.generic,name:``,description:null,icon:null,enabled:!0,primarySpaceId:null,actions:[]}),{options:T,getElement:k}=te(),A=e=>{let t=e.propertyId;return t&&w.actions.find(e=>e.propertyId===t)?(f.warning(d(`scenes.messages.duplicateAction`)),!1):(w.actions.push(e),!0)},j=e=>{w.actions.splice(e,1)},M=(e,t)=>{e>=0&&e<w.actions.length&&(w.actions[e]=t)},N=e=>k(e)?.components?.sceneActionCard??null,P=e=>k(e)?.components?.sceneActionAddForm??null,F=e=>k(e)?.components?.sceneActionEditForm??null,I=e=>T.value.find(t=>t.value===e)?.label??e,L=O(e(w)),z=r(void 0),V=r(!1),W=async(e,t)=>{try{for(let n=0;n<t.length;n++){let r=t[n];r&&await l.add({sceneId:e,data:{...r,order:n,enabled:r.enabled??!0}})}}catch(e){throw p.error(`Error syncing scene actions:`,e),e}},K=async()=>{if(z.value.clearValidate(),!await z.value.validate())throw new Z(`Form not valid`);let e=q.safeParse(w);if(!e.success)throw p.error(`Schema validation failed with:`,e.error),new Z(`Failed to validate create scene model.`);b.value=R.WORKING;let t=d(`scenes.messages.createFailed`);try{let t=await c.add({id:n,draft:!1,data:e.data});e.data.actions.length>0&&await W(t.id,e.data.actions)}catch(e){throw b.value=R.ERROR,x=window.setTimeout(J,2e3),e instanceof X&&e.code===422?f.error(e.message):f.error(t),e}return b.value=R.OK,x=window.setTimeout(J,2e3),f.success(d(`scenes.messages.created`)),`added`},J=()=>{window.clearTimeout(x),b.value=R.NONE};return o(w,()=>{V.value=!(0,G.isEqual)(e(w),L)}),{categoriesOptions:S,spacesOptionsGrouped:C,model:w,formEl:z,formChanged:V,submit:K,clear:J,formResult:b,loadingSpaces:h,fetchSpaces:v,actionPluginOptions:T,addAction:A,removeAction:j,updateAction:M,getActionCardComponent:N,getActionFormComponent:P,getActionEditFormComponent:F,getPluginLabel:I}},re=({scene:s,messages:c})=>{let l=y(),d=l.getStore(H),f=l.getStore(U),{t:p}=i(),m=E(),h=_(),{spaces:v,fetching:b,fetchSpaces:x}=ee(),S=r(R.NONE),C=t(()=>f.findForScene(s.id)),w=r(O(C.value)),T,k=t(()=>Object.values(D).map(e=>({value:e,label:p(`scenes.categories.${e}`),icon:B[e]}))),A=t(()=>{let e=v.value.filter(e=>e.type===g.ROOM).map(e=>({value:e.id,label:e.name,icon:u(e)})).sort((e,t)=>e.label.localeCompare(t.label)),t=v.value.filter(e=>e.type===g.ZONE).map(e=>({value:e.id,label:e.name,icon:u(e)})).sort((e,t)=>e.label.localeCompare(t.label)),n=[];return e.length>0&&n.push({type:g.ROOM,label:p(`scenes.form.spaceGroups.rooms`),icon:`mdi:door`,options:e}),t.length>0&&n.push({type:g.ZONE,label:p(`scenes.form.spaceGroups.zones`),icon:`mdi:map-marker-radius`,options:t}),n}),j=t(()=>C.value.map(e=>({...e}))),M=a({id:s.id,category:s.category,name:s.name,description:s.description,icon:s.icon,enabled:s.enabled,primarySpaceId:s.primarySpaceId,actions:j.value}),{options:N,getElement:P}=te(),F=e=>{let t=e.propertyId;return t&&M.actions.find(e=>e.propertyId===t)?(m.warning(p(`scenes.messages.duplicateAction`)),!1):(M.actions.push(e),!0)},I=e=>{M.actions.splice(e,1)},L=(e,t)=>{e>=0&&e<M.actions.length&&(M.actions[e]=t)},z=e=>P(e)?.components?.sceneActionCard??null,V=e=>P(e)?.components?.sceneActionAddForm??null,W=e=>P(e)?.components?.sceneActionEditForm??null,K=e=>N.value.find(t=>t.value===e)?.label??e,q=r(void 0),Y=r(!1),ne=O(e(M)),re=async(e,t)=>{try{let n=new Set(w.value.map(e=>e.id)),r=new Set(t.filter(e=>e.id).map(e=>e.id));for(let t of w.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=w.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,G.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=M.actions[e];n&&(n.id=t)}w.value=O(f.findForScene(e))}catch(e){throw h.error(`Error syncing scene actions:`,e),e}},ie=async()=>{let t=s.draft,n=c&&c.error?c.error:s.draft?p(`scenes.messages.createFailed`):p(`scenes.messages.editFailed`,{scene:s.name});if(q.value.clearValidate(),!await q.value.validate())throw new Z(`Form not valid`);let r=J.safeParse(M);if(!r.success)throw h.error(`Schema validation failed with:`,r.error),new Z(`Failed to validate edit scene model.`);S.value=R.WORKING;try{await d.edit({id:s.id,data:r.data});let e=s.id;if(t){let t=await d.save({id:s.id});M.id=t.id,M.category=t.category,M.name=t.name,M.description=t.description,M.icon=t.icon,M.enabled=t.enabled,M.primarySpaceId=t.primarySpaceId,e=t.id}await re(e,r.data.actions)}catch(e){throw S.value=R.ERROR,T=window.setTimeout(Q,2e3),e instanceof X&&e.code===422?m.error(e.message):e instanceof Z||(m.error(n),h.error(`Scene edit failed:`,e)),e}return S.value=R.OK,T=window.setTimeout(Q,2e3),t?(m.success(p(c&&c.success?c.success:`scenes.messages.created`)),`added`):(m.success(p(c&&c.success?c.success:`scenes.messages.edited`,{scene:s.name})),Y.value=!1,ne=O(e(M)),`saved`)},Q=()=>{window.clearTimeout(T),S.value=R.NONE};return o(M,()=>{Y.value=!(0,G.isEqual)(e(M),ne)}),n(()=>{Q()}),{categoriesOptions:k,spacesOptionsGrouped:A,model:M,formEl:q,formChanged:Y,submit:ie,clear:Q,formResult:S,loadingSpaces:b,fetchSpaces:x,actionPluginOptions:N,addAction:F,removeAction:I,updateAction:L,getActionCardComponent:z,getActionFormComponent:V,getActionEditFormComponent:W,getPluginLabel:K}},ie=({id:e})=>{let n=y().getStore(H);return{icon:t(()=>{let t=n.findById(e);return t?.icon?t.icon:t?.category&&t.category in B?B[t.category]:B[D.generic]})}},Q=()=>{let e=y().getStore(H),{data:n,semaphore:r,firstLoad:i}=C(e);return{scenes:t(()=>Array.from(n.value.values()).sort((e,t)=>e.name.localeCompare(t.name))),fetching:t(()=>r.value.fetching.items),loaded:t(()=>i.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}=i(),t=E(),n=y().getStore(H);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 f.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 f.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 f.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=y().getStore(H),{firstLoad:n,semaphore:i}=C(e),{filters:a,sort:s,pagination:c,reset:u}=x({key:`${N}:scenes:list`,filters:{schema:V,defaults:$},sort:{defaults:[oe]},pagination:{defaults:{page:1,size:10}},syncQuery:!0,version:1}),d=t(()=>a.value.search!==$.search||!(0,G.isEqual)(a.value.categories,$.categories)||a.value.primarySpaceId!==$.primarySpaceId||a.value.enabled!==$.enabled),f=r(c.value.size||10),p=r(c.value.page||1),m=r(s.value.length>0?s.value[0]?.by:void 0),h=r(s.value.length>0?s.value[0]?.dir??null:null),g=(e,t)=>t?t===`whole_home`?!e:e===t:!0,_=t(()=>{let t=e.findAll().filter(e=>!e.draft&&(!a.value.search||e.id.toLowerCase().includes(a.value.search.toLowerCase())||e.name.toLowerCase().includes(a.value.search.toLowerCase())||e.description?.toLowerCase().includes(a.value.search.toLowerCase()))&&(a.value.categories.length===0||a.value.categories.includes(e.category))&&g(e.primarySpaceId,a.value.primarySpaceId)&&(a.value.enabled===`all`||a.value.enabled===`enabled`&&e.enabled||a.value.enabled===`disabled`&&!e.enabled)),n=m.value??`order`;return l(t,[e=>e[n]??``],[h.value??`asc`])}),v=t(()=>{let e=(p.value-1)*f.value,t=e+f.value;return _.value.slice(e,t)}),b=async()=>{await e.fetch()},S=t(()=>i.value.fetching.items||!n.value),w=t(()=>n.value),T=t(()=>e.findAll().filter(e=>!e.draft).length);return o(()=>c.value,e=>{p.value=e.page??1,f.value=e.size??10},{deep:!0}),o(()=>p.value,e=>{c.value.page=e}),o(()=>f.value,e=>{c.value.size=e}),o(()=>h.value,e=>{m.value===void 0||e===null?s.value=[]:s.value=[{by:m.value,dir:e}]}),o(()=>m.value,e=>{e===void 0||h.value===null?s.value=[]:s.value=[{by:e,dir:h.value}]}),o(()=>a.value,()=>{p.value=1},{deep:!0}),{scenes:_,scenesPaginated:v,totalRows:T,areLoading:S,loaded:w,fetchScenes:b,filters:a,filtersActive:d,paginateSize:f,paginatePage:p,sortBy:m,sortDir:h,resetFilter:u}};export{z as _,re as a,M as b,Y as c,U as d,H as f,R as g,L as h,ie as i,Z as l,F as m,ae as n,ne as o,I as p,Q as r,X as s,se as t,W as u,P as v,B as x,N as y};
@@ -1 +1 @@
1
- import"./rolldown-runtime-QTnfLwEv.js";import{Ei as e,Er as t,Gr as n,Si as r,T as i,bi as a,ci as o,n as s}from"./icon-with-child-CgZMNB3F.js";import{Cr as c,Ei as l,Fn as u,Kn as d,Mi as f,_ as p,b as m,br as h,c as g,cr as _,do as v,m as y,p as b,u as x,ur as S}from"./common-C6O7MWKy.js";import{t as C}from"./keys-DExX7OfU.js";var w=e=>{let n=m().getStore(C),{tokenRefreshTriggers:i}=v(n),a=p(),s=r([]),c=t(()=>e.value===null?null:n?.findById(e.value)??null),u=t(()=>e.value===null?!1:n?.getting(e.value)??!1),d=async()=>{if(e.value!==null)try{await n?.get({id:e.value})}catch(e){a.error(`Failed to fetch display:`,e)}},f=async()=>{if(e.value!==null)try{let t=await n?.getTokens({id:e.value});s.value=t??[]}catch(e){a.error(`Failed to fetch display tokens:`,e),s.value=[]}};return l(t(()=>{if(e.value===null||!n)return 0;let t=i.value;return!t||typeof t!=`object`?0:t[e.value]??0}),async()=>{if(e.value!==null)try{await f()}catch(e){a.error(`Failed to refresh tokens:`,e)}},{debounce:300}),o(()=>e.value,async e=>{if(e!==null&&n?.findById(e)===null)try{await d()}catch(e){a.error(`Failed to fetch display on id change:`,e)}},{immediate:!0}),{display:c,tokens:s,isLoading:u,fetchDisplay:d,fetchTokens:f,revokeToken:async()=>{if(e.value===null)return!1;let t=await n?.revokeToken({id:e.value});return t&&(s.value=[]),t??!1}}},T=d(),E=`displays`,D=`displays-module`,O=`DisplaysModule.`,k=function(e){return e.DISPLAY_CREATED=`DisplaysModule.Display.Created`,e.DISPLAY_UPDATED=`DisplaysModule.Display.Updated`,e.DISPLAY_DELETED=`DisplaysModule.Display.Deleted`,e.DISPLAY_TOKEN_REVOKED=`DisplaysModule.Display.TokenRevoked`,e}({}),A=function(e){return e.NONE=`none`,e.WORKING=`working`,e.ERROR=`error`,e.OK=`ok`,e}({}),j={DISPLAYS:`displays_module-displays`,DISPLAYS_EDIT:`displays_module-displays_edit`,DISPLAY:`displays_module-display`,DISPLAY_EDIT:`displays_module-display_edit`,DISPLAY_TOKENS:`displays_module-display_tokens`},M=[{value:15,labelKey:`15s`},{value:30,labelKey:`30s`},{value:60,labelKey:`1min`},{value:120,labelKey:`2min`},{value:300,labelKey:`5min`},{value:600,labelKey:`10min`},{value:1800,labelKey:`30min`},{value:0,labelKey:`never`}],N=class extends Error{exception;constructor(e,t=null){super(e),this.name=`DisplaysException`,this.exception=t}},P=class extends N{constructor(e,t=null){super(e,t),this.name=`DisplaysValidationException`}},F=class extends N{code;constructor(e,t=null,n=null){super(e,n),this.name=`DisplaysApiException`,this.code=t}},I=({display:t,messages:s})=>{let c=m().getStore(C),{t:l}=i(),u=b(),d=r(A.NONE),f,p=a({id:t.id,name:t.name,spaceId:t.spaceId,unitSize:t.unitSize,rows:t.rows,cols:t.cols,brightness:t.brightness,screenLockDuration:t.screenLockDuration,darkMode:t.darkMode,screenSaver:t.screenSaver,screenPowerOff:t.screenPowerOff,speaker:t.speaker,speakerVolume:t.speakerVolume,microphone:t.microphone,microphoneVolume:t.microphoneVolume,homeMode:t.homeMode,homePageId:t.homePageId,numberFormat:t.numberFormat??``,temperatureUnit:t.temperatureUnit??``,windSpeedUnit:t.windSpeedUnit??``,pressureUnit:t.pressureUnit??``,precipitationUnit:t.precipitationUnit??``,distanceUnit:t.distanceUnit??``,weatherLocationId:t.weatherLocationId??null}),h=x(e(p)),g=r(void 0),_=r(!1),v=async()=>{let n=s&&s.error?s.error:l(`displaysModule.messages.notEdited`,{display:t.name||t.macAddress});if(!g.value)throw new P(`Form element is not available`);if(g.value.clearValidate(),!await g.value.validate())throw new P(`Form not valid`);d.value=A.WORKING;try{let e={name:p.name||null,spaceId:p.spaceId,unitSize:p.unitSize,rows:p.rows,cols:p.cols,brightness:p.brightness,screenLockDuration:p.screenLockDuration,darkMode:p.darkMode,screenSaver:p.screenSaver,screenPowerOff:p.screenPowerOff,homeMode:p.homeMode,homePageId:p.homeMode===`explicit`?p.homePageId:null,numberFormat:p.numberFormat||null,temperatureUnit:p.temperatureUnit||null,windSpeedUnit:p.windSpeedUnit||null,pressureUnit:p.pressureUnit||null,precipitationUnit:p.precipitationUnit||null,distanceUnit:p.distanceUnit||null,weatherLocationId:p.weatherLocationId||null};t.audioOutputSupported&&(e.speaker=p.speaker,e.speakerVolume=p.speakerVolume),t.audioInputSupported&&(e.microphone=p.microphone,e.microphoneVolume=p.microphoneVolume),await c.edit({id:t.id,data:e})}catch(e){throw d.value=A.ERROR,f=window.setTimeout(y,2e3),e instanceof F&&e.code===422?u.error(e.message):u.error(n),e}return d.value=A.OK,f=window.setTimeout(y,2e3),u.success(l(s&&s.success?s.success:`displaysModule.messages.edited`,{display:t.name||t.macAddress})),_.value=!1,h=x(e(p)),`saved`},y=()=>{f!==void 0&&(window.clearTimeout(f),f=void 0),d.value=A.NONE};return o(p,()=>{_.value=!(0,T.isEqual)(e(p),h)}),n(()=>{y()}),{model:p,formEl:g,formChanged:_,submit:v,clear:y,formResult:d}},L=()=>{let e=m().getStore(C),{firstLoad:n}=v(e),r=t(()=>e?.findAll()??[]);return{displays:r,isLoading:t(()=>e?.fetching()??!1),isLoaded:t(()=>n.value),fetchDisplays:async()=>{await e?.fetch()},options:t(()=>r.value.map(e=>({value:e.id,label:e.name||e.macAddress})))}},R=h({search:c().optional(),darkMode:_([`all`,`enabled`,`disabled`]).default(`all`),screenSaver:_([`all`,`enabled`,`disabled`]).default(`all`),state:_([`all`,`offline`,`online`]).default(`all`),states:S(_([`connected`,`disconnected`,`lost`,`unknown`]))}),z={search:void 0,darkMode:`all`,screenSaver:`all`,state:`all`,states:[]},B={by:`name`,dir:`asc`},V=()=>{let e=m().getStore(C),{firstLoad:n,semaphore:i}=v(e),{filters:a,sort:s,pagination:c,reset:l}=g({key:`${D}:displays:list`,filters:{schema:R,defaults:z},sort:{defaults:[B]},pagination:{defaults:{page:1,size:10}},syncQuery:!0,version:1}),d=t(()=>a.value.search!==z.search||!(0,T.isEqual)(a.value.darkMode,z.darkMode)||!(0,T.isEqual)(a.value.screenSaver,z.screenSaver)||!(0,T.isEqual)(a.value.state,z.state)||!(0,T.isEqual)(a.value.states,z.states)),f=r(c.value.size||10),p=r(c.value.page||1),h=r(s.value.length>0?s.value[0]?.by:void 0),_=r(s.value.length>0?s.value[0]?.dir??null:null),y=t(()=>u(e.findAll().filter(e=>!e.draft&&(!a.value.search||e.id.toLowerCase().includes(a.value.search.toLowerCase())||e.name?.toLowerCase().includes(a.value.search.toLowerCase())||e.macAddress.toLowerCase().includes(a.value.search.toLowerCase())||e.version.toLowerCase().includes(a.value.search.toLowerCase()))&&(a.value.darkMode===`all`||a.value.darkMode===`enabled`&&e.darkMode||a.value.darkMode===`disabled`&&!e.darkMode)&&(a.value.screenSaver===`all`||a.value.screenSaver===`enabled`&&e.screenSaver||a.value.screenSaver===`disabled`&&!e.screenSaver)&&(!a.value.states||a.value.states.length===0||a.value.states.includes(e.status??`unknown`))&&(a.value.state===`all`||a.value.state===`online`&&e.status===`connected`||a.value.state===`offline`&&[`disconnected`,`lost`,`unknown`].includes(e.status??`unknown`))),[e=>{switch(h.value){case`name`:return e.name||e.macAddress;case`version`:return e.version;case`screenWidth`:return e.screenWidth??0;case`status`:return e.status??`unknown`;default:return e.name||e.macAddress}}],[_.value===`asc`?`asc`:`desc`])),b=t(()=>{let e=(p.value-1)*f.value,t=e+f.value;return y.value.slice(e,t)}),x=async()=>{await e.fetch()},S=t(()=>i.value.fetching.items||!n.value),w=t(()=>n.value),E=t(()=>e.findAll().filter(e=>!e.draft).length);return o(()=>c.value,e=>{p.value=e.page??1,f.value=e.size??10},{deep:!0}),o(()=>p.value,e=>{c.value.page=e}),o(()=>f.value,e=>{c.value.size=e}),o(()=>_.value,e=>{h.value===void 0||e===null?s.value=[]:s.value=[{by:h.value,dir:e}]}),o(()=>h.value,e=>{e===void 0?s.value=[]:s.value=[{by:e,dir:_.value}]}),{displays:y,displaysPaginated:b,totalRows:E,areLoading:S,loaded:w,fetchDisplays:x,filters:a,filtersActive:d,paginateSize:f,paginatePage:p,sortBy:h,sortDir:_,resetFilter:l}},H=()=>{let e=m().getStore(C),{t}=i(),n=b();return{remove:async r=>{let i=e?.findById(r);if(!i){n.error(t(`displaysModule.messages.notFound`));return}try{await f.confirm(t(`displaysModule.messages.confirmRemove`,{name:i.name||i.macAddress}),t(`displaysModule.headings.removeDisplay`),{confirmButtonText:t(`displaysModule.buttons.yes.title`),cancelButtonText:t(`displaysModule.buttons.no.title`),type:`warning`}),await e.remove({id:r}),n.success(t(`displaysModule.messages.removed`))}catch{}},bulkRemove:async r=>{if(r.length!==0)try{await f.confirm(t(`displaysModule.messages.confirmBulkRemove`,{count:r.length}),t(`displaysModule.headings.removeBulkDisplays`),{confirmButtonText:t(`displaysModule.buttons.yes.title`),cancelButtonText:t(`displaysModule.buttons.no.title`),type:`warning`});let i=0,a=0;for(let t of r)try{await e.remove({id:t.id}),i++}catch{a++}i>0&&n.success(t(`displaysModule.messages.bulkRemoved`,{count:i})),a>0&&n.error(t(`displaysModule.messages.bulkRemoveFailed`,{count:a}))}catch{}}}},U=()=>{let e=y(),n=p(),i=r(null),a=r(!1),o=r(!1),c=t(()=>i.value?.available??!1),l=t(()=>i.value?.active??!1),u=t(()=>i.value?.deploymentMode??`combined`),d=t(()=>i.value?.remainingTime??null),f=t(()=>{let e=d.value;return e===null?0:Math.ceil(e/1e3)}),m=t(()=>{let e=f.value;return e<=0?`0:00`:`${Math.floor(e/60)}:${(e%60).toString().padStart(2,`0`)}`}),h=async()=>{try{a.value=!0;let{data:t}=await e.client.GET(`/${s}/${E}/displays/permit-join/status`);if(t?.data){let e=t.data;i.value={active:e.active??!1,expiresAt:e.expires_at?new Date(e.expires_at):null,remainingTime:e.remaining_time??null,deploymentMode:e.deployment_mode??`combined`,available:e.available??!1}}}catch(e){throw n.error(`Failed to fetch permit join status`,e),new N(`Failed to fetch permit join status`)}finally{a.value=!1}};return{status:i,loading:a,activating:o,isAvailable:c,isActive:l,deploymentMode:u,remainingTime:d,remainingTimeSeconds:f,remainingTimeFormatted:m,fetchStatus:h,activate:async()=>{try{o.value=!0,await e.client.POST(`/${s}/${E}/displays/permit-join`),await h()}catch(e){throw n.error(`Failed to activate permit join`,e),new N(`Failed to activate permit join`)}finally{o.value=!1}},deactivate:async()=>{try{o.value=!0,await e.client.DELETE(`/${s}/${E}/displays/permit-join`,{}),await h()}catch(e){throw n.error(`Failed to deactivate permit join`,e),new N(`Failed to deactivate permit join`)}finally{o.value=!1}}}};export{I as a,P as c,E as d,k as f,w as g,M as h,L as i,O as l,j as m,H as n,F as o,A as p,V as r,N as s,U as t,D as u};
1
+ import"./rolldown-runtime-QTnfLwEv.js";import{Ei as e,Er as t,Gr as n,Si as r,T as i,bi as a,ci as o,n as s}from"./icon-with-child-CgZMNB3F.js";import{Cr as c,Ei as l,Fn as u,Kn as d,Mi as f,_ as p,b as m,br as h,c as g,cr as _,do as v,m as y,p as b,u as x,ur as S}from"./common-CYlvhyJx.js";import{t as C}from"./keys-DExX7OfU.js";var w=e=>{let n=m().getStore(C),{tokenRefreshTriggers:i}=v(n),a=p(),s=r([]),c=t(()=>e.value===null?null:n?.findById(e.value)??null),u=t(()=>e.value===null?!1:n?.getting(e.value)??!1),d=async()=>{if(e.value!==null)try{await n?.get({id:e.value})}catch(e){a.error(`Failed to fetch display:`,e)}},f=async()=>{if(e.value!==null)try{let t=await n?.getTokens({id:e.value});s.value=t??[]}catch(e){a.error(`Failed to fetch display tokens:`,e),s.value=[]}};return l(t(()=>{if(e.value===null||!n)return 0;let t=i.value;return!t||typeof t!=`object`?0:t[e.value]??0}),async()=>{if(e.value!==null)try{await f()}catch(e){a.error(`Failed to refresh tokens:`,e)}},{debounce:300}),o(()=>e.value,async e=>{if(e!==null&&n?.findById(e)===null)try{await d()}catch(e){a.error(`Failed to fetch display on id change:`,e)}},{immediate:!0}),{display:c,tokens:s,isLoading:u,fetchDisplay:d,fetchTokens:f,revokeToken:async()=>{if(e.value===null)return!1;let t=await n?.revokeToken({id:e.value});return t&&(s.value=[]),t??!1}}},T=d(),E=`displays`,D=`displays-module`,O=`DisplaysModule.`,k=function(e){return e.DISPLAY_CREATED=`DisplaysModule.Display.Created`,e.DISPLAY_UPDATED=`DisplaysModule.Display.Updated`,e.DISPLAY_DELETED=`DisplaysModule.Display.Deleted`,e.DISPLAY_TOKEN_REVOKED=`DisplaysModule.Display.TokenRevoked`,e}({}),A=function(e){return e.NONE=`none`,e.WORKING=`working`,e.ERROR=`error`,e.OK=`ok`,e}({}),j={DISPLAYS:`displays_module-displays`,DISPLAYS_EDIT:`displays_module-displays_edit`,DISPLAY:`displays_module-display`,DISPLAY_EDIT:`displays_module-display_edit`,DISPLAY_TOKENS:`displays_module-display_tokens`},M=[{value:15,labelKey:`15s`},{value:30,labelKey:`30s`},{value:60,labelKey:`1min`},{value:120,labelKey:`2min`},{value:300,labelKey:`5min`},{value:600,labelKey:`10min`},{value:1800,labelKey:`30min`},{value:0,labelKey:`never`}],N=class extends Error{exception;constructor(e,t=null){super(e),this.name=`DisplaysException`,this.exception=t}},P=class extends N{constructor(e,t=null){super(e,t),this.name=`DisplaysValidationException`}},F=class extends N{code;constructor(e,t=null,n=null){super(e,n),this.name=`DisplaysApiException`,this.code=t}},I=({display:t,messages:s})=>{let c=m().getStore(C),{t:l}=i(),u=b(),d=r(A.NONE),f,p=a({id:t.id,name:t.name,spaceId:t.spaceId,unitSize:t.unitSize,rows:t.rows,cols:t.cols,brightness:t.brightness,screenLockDuration:t.screenLockDuration,darkMode:t.darkMode,screenSaver:t.screenSaver,screenPowerOff:t.screenPowerOff,speaker:t.speaker,speakerVolume:t.speakerVolume,microphone:t.microphone,microphoneVolume:t.microphoneVolume,homeMode:t.homeMode,homePageId:t.homePageId,numberFormat:t.numberFormat??``,temperatureUnit:t.temperatureUnit??``,windSpeedUnit:t.windSpeedUnit??``,pressureUnit:t.pressureUnit??``,precipitationUnit:t.precipitationUnit??``,distanceUnit:t.distanceUnit??``,weatherLocationId:t.weatherLocationId??null}),h=x(e(p)),g=r(void 0),_=r(!1),v=async()=>{let n=s&&s.error?s.error:l(`displaysModule.messages.notEdited`,{display:t.name||t.macAddress});if(!g.value)throw new P(`Form element is not available`);if(g.value.clearValidate(),!await g.value.validate())throw new P(`Form not valid`);d.value=A.WORKING;try{let e={name:p.name||null,spaceId:p.spaceId,unitSize:p.unitSize,rows:p.rows,cols:p.cols,brightness:p.brightness,screenLockDuration:p.screenLockDuration,darkMode:p.darkMode,screenSaver:p.screenSaver,screenPowerOff:p.screenPowerOff,homeMode:p.homeMode,homePageId:p.homeMode===`explicit`?p.homePageId:null,numberFormat:p.numberFormat||null,temperatureUnit:p.temperatureUnit||null,windSpeedUnit:p.windSpeedUnit||null,pressureUnit:p.pressureUnit||null,precipitationUnit:p.precipitationUnit||null,distanceUnit:p.distanceUnit||null,weatherLocationId:p.weatherLocationId||null};t.audioOutputSupported&&(e.speaker=p.speaker,e.speakerVolume=p.speakerVolume),t.audioInputSupported&&(e.microphone=p.microphone,e.microphoneVolume=p.microphoneVolume),await c.edit({id:t.id,data:e})}catch(e){throw d.value=A.ERROR,f=window.setTimeout(y,2e3),e instanceof F&&e.code===422?u.error(e.message):u.error(n),e}return d.value=A.OK,f=window.setTimeout(y,2e3),u.success(l(s&&s.success?s.success:`displaysModule.messages.edited`,{display:t.name||t.macAddress})),_.value=!1,h=x(e(p)),`saved`},y=()=>{f!==void 0&&(window.clearTimeout(f),f=void 0),d.value=A.NONE};return o(p,()=>{_.value=!(0,T.isEqual)(e(p),h)}),n(()=>{y()}),{model:p,formEl:g,formChanged:_,submit:v,clear:y,formResult:d}},L=()=>{let e=m().getStore(C),{firstLoad:n}=v(e),r=t(()=>e?.findAll()??[]);return{displays:r,isLoading:t(()=>e?.fetching()??!1),isLoaded:t(()=>n.value),fetchDisplays:async()=>{await e?.fetch()},options:t(()=>r.value.map(e=>({value:e.id,label:e.name||e.macAddress})))}},R=h({search:c().optional(),darkMode:_([`all`,`enabled`,`disabled`]).default(`all`),screenSaver:_([`all`,`enabled`,`disabled`]).default(`all`),state:_([`all`,`offline`,`online`]).default(`all`),states:S(_([`connected`,`disconnected`,`lost`,`unknown`]))}),z={search:void 0,darkMode:`all`,screenSaver:`all`,state:`all`,states:[]},B={by:`name`,dir:`asc`},V=()=>{let e=m().getStore(C),{firstLoad:n,semaphore:i}=v(e),{filters:a,sort:s,pagination:c,reset:l}=g({key:`${D}:displays:list`,filters:{schema:R,defaults:z},sort:{defaults:[B]},pagination:{defaults:{page:1,size:10}},syncQuery:!0,version:1}),d=t(()=>a.value.search!==z.search||!(0,T.isEqual)(a.value.darkMode,z.darkMode)||!(0,T.isEqual)(a.value.screenSaver,z.screenSaver)||!(0,T.isEqual)(a.value.state,z.state)||!(0,T.isEqual)(a.value.states,z.states)),f=r(c.value.size||10),p=r(c.value.page||1),h=r(s.value.length>0?s.value[0]?.by:void 0),_=r(s.value.length>0?s.value[0]?.dir??null:null),y=t(()=>u(e.findAll().filter(e=>!e.draft&&(!a.value.search||e.id.toLowerCase().includes(a.value.search.toLowerCase())||e.name?.toLowerCase().includes(a.value.search.toLowerCase())||e.macAddress.toLowerCase().includes(a.value.search.toLowerCase())||e.version.toLowerCase().includes(a.value.search.toLowerCase()))&&(a.value.darkMode===`all`||a.value.darkMode===`enabled`&&e.darkMode||a.value.darkMode===`disabled`&&!e.darkMode)&&(a.value.screenSaver===`all`||a.value.screenSaver===`enabled`&&e.screenSaver||a.value.screenSaver===`disabled`&&!e.screenSaver)&&(!a.value.states||a.value.states.length===0||a.value.states.includes(e.status??`unknown`))&&(a.value.state===`all`||a.value.state===`online`&&e.status===`connected`||a.value.state===`offline`&&[`disconnected`,`lost`,`unknown`].includes(e.status??`unknown`))),[e=>{switch(h.value){case`name`:return e.name||e.macAddress;case`version`:return e.version;case`screenWidth`:return e.screenWidth??0;case`status`:return e.status??`unknown`;default:return e.name||e.macAddress}}],[_.value===`asc`?`asc`:`desc`])),b=t(()=>{let e=(p.value-1)*f.value,t=e+f.value;return y.value.slice(e,t)}),x=async()=>{await e.fetch()},S=t(()=>i.value.fetching.items||!n.value),w=t(()=>n.value),E=t(()=>e.findAll().filter(e=>!e.draft).length);return o(()=>c.value,e=>{p.value=e.page??1,f.value=e.size??10},{deep:!0}),o(()=>p.value,e=>{c.value.page=e}),o(()=>f.value,e=>{c.value.size=e}),o(()=>_.value,e=>{h.value===void 0||e===null?s.value=[]:s.value=[{by:h.value,dir:e}]}),o(()=>h.value,e=>{e===void 0?s.value=[]:s.value=[{by:e,dir:_.value}]}),{displays:y,displaysPaginated:b,totalRows:E,areLoading:S,loaded:w,fetchDisplays:x,filters:a,filtersActive:d,paginateSize:f,paginatePage:p,sortBy:h,sortDir:_,resetFilter:l}},H=()=>{let e=m().getStore(C),{t}=i(),n=b();return{remove:async r=>{let i=e?.findById(r);if(!i){n.error(t(`displaysModule.messages.notFound`));return}try{await f.confirm(t(`displaysModule.messages.confirmRemove`,{name:i.name||i.macAddress}),t(`displaysModule.headings.removeDisplay`),{confirmButtonText:t(`displaysModule.buttons.yes.title`),cancelButtonText:t(`displaysModule.buttons.no.title`),type:`warning`}),await e.remove({id:r}),n.success(t(`displaysModule.messages.removed`))}catch{}},bulkRemove:async r=>{if(r.length!==0)try{await f.confirm(t(`displaysModule.messages.confirmBulkRemove`,{count:r.length}),t(`displaysModule.headings.removeBulkDisplays`),{confirmButtonText:t(`displaysModule.buttons.yes.title`),cancelButtonText:t(`displaysModule.buttons.no.title`),type:`warning`});let i=0,a=0;for(let t of r)try{await e.remove({id:t.id}),i++}catch{a++}i>0&&n.success(t(`displaysModule.messages.bulkRemoved`,{count:i})),a>0&&n.error(t(`displaysModule.messages.bulkRemoveFailed`,{count:a}))}catch{}}}},U=()=>{let e=y(),n=p(),i=r(null),a=r(!1),o=r(!1),c=t(()=>i.value?.available??!1),l=t(()=>i.value?.active??!1),u=t(()=>i.value?.deploymentMode??`combined`),d=t(()=>i.value?.remainingTime??null),f=t(()=>{let e=d.value;return e===null?0:Math.ceil(e/1e3)}),m=t(()=>{let e=f.value;return e<=0?`0:00`:`${Math.floor(e/60)}:${(e%60).toString().padStart(2,`0`)}`}),h=async()=>{try{a.value=!0;let{data:t}=await e.client.GET(`/${s}/${E}/displays/permit-join/status`);if(t?.data){let e=t.data;i.value={active:e.active??!1,expiresAt:e.expires_at?new Date(e.expires_at):null,remainingTime:e.remaining_time??null,deploymentMode:e.deployment_mode??`combined`,available:e.available??!1}}}catch(e){throw n.error(`Failed to fetch permit join status`,e),new N(`Failed to fetch permit join status`)}finally{a.value=!1}};return{status:i,loading:a,activating:o,isAvailable:c,isActive:l,deploymentMode:u,remainingTime:d,remainingTimeSeconds:f,remainingTimeFormatted:m,fetchStatus:h,activate:async()=>{try{o.value=!0,await e.client.POST(`/${s}/${E}/displays/permit-join`),await h()}catch(e){throw n.error(`Failed to activate permit join`,e),new N(`Failed to activate permit join`)}finally{o.value=!1}},deactivate:async()=>{try{o.value=!0,await e.client.DELETE(`/${s}/${E}/displays/permit-join`,{}),await h()}catch(e){throw n.error(`Failed to deactivate permit join`,e),new N(`Failed to deactivate permit join`)}finally{o.value=!1}}}};export{I as a,P as c,E as d,k as f,w as g,M as h,L as i,O as l,j as m,H as n,F as o,A as p,V as r,N as s,U as t,D as u};
@@ -0,0 +1 @@
1
+ import"./composables-D5ksCJy6.js";
@@ -1 +1 @@
1
- import"./rolldown-runtime-QTnfLwEv.js";import{Ei as e,Er as t,Si as n,T as r,bi as i,ci as a,n as o}from"./icon-with-child-CgZMNB3F.js";import{Cr as s,Dn as c,Fn as l,Kn as u,Mi as d,Ot as f,T as p,Tr as m,Tt as h,_ as g,a as _,b as v,br as y,do as b,dr as x,fr as S,gr as C,kt as w,m as T,p as E,qn as D,u as O,ur as k,wr as A,yr as j}from"./common-C6O7MWKy.js";import{i as M,l as N,n as P,o as F,s as I}from"./useLocation-DC_SbRoS.js";var L=()=>{let e=v().getStore(I),{data:n,semaphore:r}=b(e);return{weatherDay:t(()=>n.value),isLoading:t(()=>n.value===null&&r.value.getting),fetchWeatherDay:async()=>{await e.get()}}},R=()=>{let e=v().getStore(N),{firstLoad:n,semaphore:r}=b(e);return{locations:t(()=>e.findAll().filter(e=>!e.draft)),areLoading:t(()=>r.value.fetching.items),loaded:t(()=>n.value),fetchLocations:async()=>{await e.fetch()}}},z={search:void 0,types:[],primary:`all`},B=()=>{let e=v().getStore(N),{firstLoad:r,semaphore:i}=b(e),{configModule:o}=D({type:f}),s=t(()=>o.value?.primaryLocationId??null),c=n(10),u=n(1),d=n({...z}),p=t(()=>d.value.search!==z.search||d.value.types.length>0||d.value.primary!==z.primary),m=n(`name`),h=n(`ascending`),g=t(()=>{let t=e.findAll().filter(e=>!(e.draft||d.value.search&&!e.name.toLowerCase().includes(d.value.search.toLowerCase())||d.value.types.length>0&&!d.value.types.includes(e.type)||d.value.primary===`primary`&&e.id!==s.value||d.value.primary===`secondary`&&e.id===s.value));return h.value===null?t:l(t,[e=>e[m.value]??``],[h.value===`ascending`?`asc`:`desc`])}),_=t(()=>{let e=(u.value-1)*c.value,t=e+c.value;return g.value.slice(e,t)}),y=async()=>{await e.fetch()},x=t(()=>i.value.fetching.items||!r.value),S=t(()=>r.value),C=t(()=>e.findAll().filter(e=>!e.draft).length);return a(()=>d.value,()=>{u.value=1},{deep:!0}),{locations:g,locationsPaginated:_,totalRows:C,areLoading:x,loaded:S,fetchLocations:y,filters:d,filtersActive:p,paginateSize:c,paginatePage:u,sortBy:m,sortDir:h,resetFilter:()=>{d.value={...z}},primaryLocationId:s}},V=()=>{let e=T(),r=g(),i=n({}),a=n(!1),s=n(!1),c=n(!1);return{weatherByLocation:t(()=>i.value),isLoading:a,hasError:s,fetchCompleted:c,fetchLocationsWeather:async()=>{if(!a.value){a.value=!0,s.value=!1;try{let{data:t,error:n,response:a}=await e.client.GET(`/${o}/${w}/weather`,{});if(t!==void 0&&Array.isArray(t.data)){let e={};for(let n of t.data)if(n.location_id)try{let t=P(n.current),r=n.location;e[n.location_id]={current:t,locationName:r?.name??``,country:r?.country??null}}catch(e){r.error(`[WEATHER] Failed to transform weather data for location ${n.location_id}`,e)}i.value=e,Object.keys(e).length===0&&(s.value=!0);return}let c=`Failed to fetch locations weather.`;throw n&&(c=n.message??c),new M(c,a?.status??500)}catch(e){if(s.value=!0,e instanceof M)throw e;r.error(`[WEATHER] Failed to fetch locations weather`,e)}finally{a.value=!1,c.value=!0}}}}},H=()=>{let{t:e}=r(),t=E(),n=v().getStore(N);return{add:async e=>n.add(e),edit:async e=>n.edit(e),remove:async r=>{let i=n.findById(r);if(i)try{await d.confirm(e(`weatherModule.messages.locations.confirmDeleteLocation`,{name:i.name}),e(`weatherModule.headings.deleteLocation`),{confirmButtonText:e(`weatherModule.buttons.yes.title`),cancelButtonText:e(`weatherModule.buttons.no.title`),type:`warning`});try{await n.remove({id:r}),t.success(e(`weatherModule.messages.locations.deleted`))}catch{t.error(e(`weatherModule.messages.locations.notDeleted`))}}catch{t.info(e(`weatherModule.messages.locations.deleteCanceled`,{location:i.name}))}},bulkRemove:async r=>{if(r.length!==0)try{await d.confirm(e(`weatherModule.messages.locations.confirmBulkDelete`,{count:r.length}),e(`weatherModule.headings.bulkDeleteLocations`),{confirmButtonText:e(`weatherModule.buttons.yes.title`),cancelButtonText:e(`weatherModule.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(`weatherModule.messages.locations.bulkDeleted`,{count:i})),a>0&&t.error(e(`weatherModule.messages.locations.bulkDeleteFailed`,{count:a}))}catch{t.info(e(`weatherModule.messages.locations.bulkDeleteCanceled`))}}}},U=u(),W=s().uuid(),G=y({id:W,draft:x().default(!1),type:s().trim().nonempty(),name:s().trim().nonempty(),order:j().int().nonnegative().default(0),createdAt:A([s().datetime({offset:!0}),S()]).transform(e=>e instanceof Date?e:new Date(e)),updatedAt:A([s().datetime({offset:!0}),S()]).transform(e=>e instanceof Date?e:new Date(e)).optional().nullable().default(null)}).catchall(m());y({fetching:y({items:x().default(!1),item:k(W)}),creating:k(W),updating:k(W),deleting:k(W)}),y({id:W,type:s().trim().nonempty(),data:C({})}),y({id:W,data:y({type:s().trim().nonempty(),name:s().trim().nonempty()}).catchall(m())}),y({id:W}),y({id:W});var K=y({id:W.optional().default(_()),draft:x().optional().default(!1),data:y({type:s().trim().nonempty(),name:s().trim().nonempty()}).catchall(m())}),q=y({id:W,data:y({type:s().trim().nonempty(),name:s().trim().optional()}).catchall(m())});y({id:W}),y({id:W});var J=y({id:s().uuid().optional(),type:s().trim().nonempty(),name:s().trim().nonempty()}).passthrough(),Y=y({type:s().trim().nonempty(),name:s().trim().nonempty().optional()}).passthrough();y({id:s().uuid(),type:s(),name:s().trim().nonempty(),created_at:s(),updated_at:s().nullable().optional()}),y({id:W,type:s().trim().nonempty(),name:s().trim().min(1,`Name is required`)});var X=y({name:s().trim().min(1,`Name is required`)}),Z=G,Q=J,ee=Y,te=({id:t})=>{let o=v().getStore(N),{t:s}=r(),c=E(),l=g(),u=n(h.NONE),d,f=i({name:o.findById(t.value)?.name??``}),p=O(e(f)),m=n(void 0),_=n(!1),y=async()=>{if(m.value.clearValidate(),!await m.value.validate())throw new F(`Form not valid`);let n=X.safeParse(f);if(!n.success)throw l.error(`[WEATHER_MODULE] Schema validation failed:`,n.error),new F(`Failed to validate update location model.`);u.value=h.WORKING;let r=o.findById(t.value);if(!r)throw new F(`Location not found.`);let i=s(`weatherModule.messages.locations.notUpdated`,{location:f.name});try{await o.edit({id:t.value,data:{type:r.type,...n.data}}),u.value=h.OK,c.success(s(`weatherModule.messages.locations.updated`,{location:f.name})),Object.assign(p,O(e(f))),_.value=!1}catch(e){throw u.value=h.ERROR,d=window.setTimeout(b,2e3),e instanceof M&&e.code===422?c.error(e.message):c.error(i),e}},b=()=>{window.clearTimeout(d),u.value=h.NONE};return a(()=>f,()=>{_.value=!(0,U.isEqual)(e(f),p)},{deep:!0}),a(()=>o.findById(t.value),t=>{t&&!_.value&&(f.name=t.name,Object.assign(p,O(e(f))))}),{model:f,formEl:m,formChanged:_,submit:y}},$=()=>{let e=p(),{enabled:n}=c(),r=[`locationAddForm`,`locationEditForm`],i=[`locationSchema`,`locationAddFormSchema`,`locationEditFormSchema`,`locationCreateReqSchema`,`locationUpdateReqSchema`],a=t(()=>e.getPlugins().filter(e=>e.modules===void 0||e.modules.includes(`weather-module`)?(e.elements??[]).some(e=>{if(!(e.modules===void 0||e.modules.includes(`weather-module`)))return!1;let t=r.length===0||!!e.components&&r.some(t=>e.components&&t in e.components),n=i.length===0||!!e.schemas&&i.some(t=>e.schemas&&t in e.schemas);return t||n}):!1));return{plugins:a,options:t(()=>l(a.value.flatMap(e=>(e.elements??[]).filter(e=>e.modules===void 0||e.modules.includes(`weather-module`)).map(t=>({value:t.type,label:t.name?.trim()?t.name:e.name,disabled:!n(e.type)}))),[e=>e.label],[`asc`])),getByName:e=>a.value.find(t=>t.type===e),getByType:e=>a.value.find(t=>(t.elements??[]).some(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`weather-module`)))),getElement:e=>{for(let t of a.value){let n=(t.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`weather-module`)));if(n)return n}}}},ne=({type:e})=>{let{getByType:n}=$(),r=t(()=>n(e));return{plugin:r,element:t(()=>(r.value?.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`weather-module`))))}};export{L as _,Z as a,G as c,q as d,W as f,R as g,B as h,Q as i,Y as l,V as m,$ as n,ee as o,H as p,te as r,J as s,ne as t,K as u};
1
+ import"./rolldown-runtime-QTnfLwEv.js";import{Ei as e,Er as t,Si as n,T as r,bi as i,ci as a,n as o}from"./icon-with-child-CgZMNB3F.js";import{Cr as s,Dn as c,Fn as l,Kn as u,Mi as d,Ot as f,T as p,Tr as m,Tt as h,_ as g,a as _,b as v,br as y,do as b,dr as x,fr as S,gr as C,kt as w,m as T,p as E,qn as D,u as O,ur as k,wr as A,yr as j}from"./common-CYlvhyJx.js";import{i as M,l as N,n as P,o as F,s as I}from"./useLocation-DIH9HVyg.js";var L=()=>{let e=v().getStore(I),{data:n,semaphore:r}=b(e);return{weatherDay:t(()=>n.value),isLoading:t(()=>n.value===null&&r.value.getting),fetchWeatherDay:async()=>{await e.get()}}},R=()=>{let e=v().getStore(N),{firstLoad:n,semaphore:r}=b(e);return{locations:t(()=>e.findAll().filter(e=>!e.draft)),areLoading:t(()=>r.value.fetching.items),loaded:t(()=>n.value),fetchLocations:async()=>{await e.fetch()}}},z={search:void 0,types:[],primary:`all`},B=()=>{let e=v().getStore(N),{firstLoad:r,semaphore:i}=b(e),{configModule:o}=D({type:f}),s=t(()=>o.value?.primaryLocationId??null),c=n(10),u=n(1),d=n({...z}),p=t(()=>d.value.search!==z.search||d.value.types.length>0||d.value.primary!==z.primary),m=n(`name`),h=n(`ascending`),g=t(()=>{let t=e.findAll().filter(e=>!(e.draft||d.value.search&&!e.name.toLowerCase().includes(d.value.search.toLowerCase())||d.value.types.length>0&&!d.value.types.includes(e.type)||d.value.primary===`primary`&&e.id!==s.value||d.value.primary===`secondary`&&e.id===s.value));return h.value===null?t:l(t,[e=>e[m.value]??``],[h.value===`ascending`?`asc`:`desc`])}),_=t(()=>{let e=(u.value-1)*c.value,t=e+c.value;return g.value.slice(e,t)}),y=async()=>{await e.fetch()},x=t(()=>i.value.fetching.items||!r.value),S=t(()=>r.value),C=t(()=>e.findAll().filter(e=>!e.draft).length);return a(()=>d.value,()=>{u.value=1},{deep:!0}),{locations:g,locationsPaginated:_,totalRows:C,areLoading:x,loaded:S,fetchLocations:y,filters:d,filtersActive:p,paginateSize:c,paginatePage:u,sortBy:m,sortDir:h,resetFilter:()=>{d.value={...z}},primaryLocationId:s}},V=()=>{let e=T(),r=g(),i=n({}),a=n(!1),s=n(!1),c=n(!1);return{weatherByLocation:t(()=>i.value),isLoading:a,hasError:s,fetchCompleted:c,fetchLocationsWeather:async()=>{if(!a.value){a.value=!0,s.value=!1;try{let{data:t,error:n,response:a}=await e.client.GET(`/${o}/${w}/weather`,{});if(t!==void 0&&Array.isArray(t.data)){let e={};for(let n of t.data)if(n.location_id)try{let t=P(n.current),r=n.location;e[n.location_id]={current:t,locationName:r?.name??``,country:r?.country??null}}catch(e){r.error(`[WEATHER] Failed to transform weather data for location ${n.location_id}`,e)}i.value=e,Object.keys(e).length===0&&(s.value=!0);return}let c=`Failed to fetch locations weather.`;throw n&&(c=n.message??c),new M(c,a?.status??500)}catch(e){if(s.value=!0,e instanceof M)throw e;r.error(`[WEATHER] Failed to fetch locations weather`,e)}finally{a.value=!1,c.value=!0}}}}},H=()=>{let{t:e}=r(),t=E(),n=v().getStore(N);return{add:async e=>n.add(e),edit:async e=>n.edit(e),remove:async r=>{let i=n.findById(r);if(i)try{await d.confirm(e(`weatherModule.messages.locations.confirmDeleteLocation`,{name:i.name}),e(`weatherModule.headings.deleteLocation`),{confirmButtonText:e(`weatherModule.buttons.yes.title`),cancelButtonText:e(`weatherModule.buttons.no.title`),type:`warning`});try{await n.remove({id:r}),t.success(e(`weatherModule.messages.locations.deleted`))}catch{t.error(e(`weatherModule.messages.locations.notDeleted`))}}catch{t.info(e(`weatherModule.messages.locations.deleteCanceled`,{location:i.name}))}},bulkRemove:async r=>{if(r.length!==0)try{await d.confirm(e(`weatherModule.messages.locations.confirmBulkDelete`,{count:r.length}),e(`weatherModule.headings.bulkDeleteLocations`),{confirmButtonText:e(`weatherModule.buttons.yes.title`),cancelButtonText:e(`weatherModule.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(`weatherModule.messages.locations.bulkDeleted`,{count:i})),a>0&&t.error(e(`weatherModule.messages.locations.bulkDeleteFailed`,{count:a}))}catch{t.info(e(`weatherModule.messages.locations.bulkDeleteCanceled`))}}}},U=u(),W=s().uuid(),G=y({id:W,draft:x().default(!1),type:s().trim().nonempty(),name:s().trim().nonempty(),order:j().int().nonnegative().default(0),createdAt:A([s().datetime({offset:!0}),S()]).transform(e=>e instanceof Date?e:new Date(e)),updatedAt:A([s().datetime({offset:!0}),S()]).transform(e=>e instanceof Date?e:new Date(e)).optional().nullable().default(null)}).catchall(m());y({fetching:y({items:x().default(!1),item:k(W)}),creating:k(W),updating:k(W),deleting:k(W)}),y({id:W,type:s().trim().nonempty(),data:C({})}),y({id:W,data:y({type:s().trim().nonempty(),name:s().trim().nonempty()}).catchall(m())}),y({id:W}),y({id:W});var K=y({id:W.optional().default(_()),draft:x().optional().default(!1),data:y({type:s().trim().nonempty(),name:s().trim().nonempty()}).catchall(m())}),q=y({id:W,data:y({type:s().trim().nonempty(),name:s().trim().optional()}).catchall(m())});y({id:W}),y({id:W});var J=y({id:s().uuid().optional(),type:s().trim().nonempty(),name:s().trim().nonempty()}).passthrough(),Y=y({type:s().trim().nonempty(),name:s().trim().nonempty().optional()}).passthrough();y({id:s().uuid(),type:s(),name:s().trim().nonempty(),created_at:s(),updated_at:s().nullable().optional()}),y({id:W,type:s().trim().nonempty(),name:s().trim().min(1,`Name is required`)});var X=y({name:s().trim().min(1,`Name is required`)}),Z=G,Q=J,ee=Y,te=({id:t})=>{let o=v().getStore(N),{t:s}=r(),c=E(),l=g(),u=n(h.NONE),d,f=i({name:o.findById(t.value)?.name??``}),p=O(e(f)),m=n(void 0),_=n(!1),y=async()=>{if(m.value.clearValidate(),!await m.value.validate())throw new F(`Form not valid`);let n=X.safeParse(f);if(!n.success)throw l.error(`[WEATHER_MODULE] Schema validation failed:`,n.error),new F(`Failed to validate update location model.`);u.value=h.WORKING;let r=o.findById(t.value);if(!r)throw new F(`Location not found.`);let i=s(`weatherModule.messages.locations.notUpdated`,{location:f.name});try{await o.edit({id:t.value,data:{type:r.type,...n.data}}),u.value=h.OK,c.success(s(`weatherModule.messages.locations.updated`,{location:f.name})),Object.assign(p,O(e(f))),_.value=!1}catch(e){throw u.value=h.ERROR,d=window.setTimeout(b,2e3),e instanceof M&&e.code===422?c.error(e.message):c.error(i),e}},b=()=>{window.clearTimeout(d),u.value=h.NONE};return a(()=>f,()=>{_.value=!(0,U.isEqual)(e(f),p)},{deep:!0}),a(()=>o.findById(t.value),t=>{t&&!_.value&&(f.name=t.name,Object.assign(p,O(e(f))))}),{model:f,formEl:m,formChanged:_,submit:y}},$=()=>{let e=p(),{enabled:n}=c(),r=[`locationAddForm`,`locationEditForm`],i=[`locationSchema`,`locationAddFormSchema`,`locationEditFormSchema`,`locationCreateReqSchema`,`locationUpdateReqSchema`],a=t(()=>e.getPlugins().filter(e=>e.modules===void 0||e.modules.includes(`weather-module`)?(e.elements??[]).some(e=>{if(!(e.modules===void 0||e.modules.includes(`weather-module`)))return!1;let t=r.length===0||!!e.components&&r.some(t=>e.components&&t in e.components),n=i.length===0||!!e.schemas&&i.some(t=>e.schemas&&t in e.schemas);return t||n}):!1));return{plugins:a,options:t(()=>l(a.value.flatMap(e=>(e.elements??[]).filter(e=>e.modules===void 0||e.modules.includes(`weather-module`)).map(t=>({value:t.type,label:t.name?.trim()?t.name:e.name,disabled:!n(e.type)}))),[e=>e.label],[`asc`])),getByName:e=>a.value.find(t=>t.type===e),getByType:e=>a.value.find(t=>(t.elements??[]).some(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`weather-module`)))),getElement:e=>{for(let t of a.value){let n=(t.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`weather-module`)));if(n)return n}}}},ne=({type:e})=>{let{getByType:n}=$(),r=t(()=>n(e));return{plugin:r,element:t(()=>(r.value?.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`weather-module`))))}};export{L as _,Z as a,G as c,q as d,W as f,R as g,B as h,Q as i,Y as l,V as m,$ as n,ee as o,H as p,te as r,J as s,ne as t,K as u};