@fastybird/smart-panel-admin 1.1.0-alpha.26 → 1.1.0-alpha.28

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 (30) hide show
  1. package/dist/assets/{components-BrlrYtBy.js → components-BBoFC7mM.js} +1 -1
  2. package/dist/assets/{components-CMXJBD3v.js → components-BZu1gUA1.js} +1 -1
  3. package/dist/assets/{components-DiP4m3qE.js → components-Cdp5xZOp.js} +1 -1
  4. package/dist/assets/{devices-CcCtv0br.js → devices-DEFm4Nmd.js} +2 -2
  5. package/dist/assets/{index-C2Ivg40h.js → index-B6-oovHH.js} +4 -4
  6. package/dist/assets/{system-B49yl9H3.js → system-DqL1ds2J.js} +2 -2
  7. package/dist/assets/{view-channel-CVIFHrJi.js → view-channel-BXgwVCxK.js} +1 -1
  8. package/dist/assets/{view-channel-add-CbL6ocGs.js → view-channel-add-Ds6nLFYj.js} +1 -1
  9. package/dist/assets/{view-channel-edit-CnPJdMbA.js → view-channel-edit-CH5-CYEl.js} +1 -1
  10. package/dist/assets/{view-channel-property-add-2J_4MUIT.js → view-channel-property-add-VEkKgtgw.js} +1 -1
  11. package/dist/assets/{view-channel-property-edit-DsXN-lR7.js → view-channel-property-edit-Bn1ZZmPN.js} +1 -1
  12. package/dist/assets/{view-channels-CemVi0gT.js → view-channels-Dt9VgYQy.js} +1 -1
  13. package/dist/assets/{view-device-Iu4lbh-P.js → view-device-B6Ivfq39.js} +1 -1
  14. package/dist/assets/{view-device-add-Bw4qVJWS.js → view-device-add-CFvK4hQl.js} +1 -1
  15. package/dist/assets/{view-device-control-CmKvQkan.js → view-device-control-BOmcgALy.js} +1 -1
  16. package/dist/assets/{view-device-edit-M3kFVQaw.js → view-device-edit-CBS3nvOx.js} +1 -1
  17. package/dist/assets/{view-devices-C452ZR6j.js → view-devices-D1ifIeVL.js} +1 -1
  18. package/dist/assets/{view-devices-wizard-1CT14GyG.js → view-devices-wizard-DR1vsQv6.js} +1 -1
  19. package/dist/assets/{view-extension-detail-Bk5PDnZd.js → view-extension-detail-DOKCsEkn.js} +1 -1
  20. package/dist/assets/{view-extensions-CVdfUPGi.js → view-extensions-CaRCQ459.js} +1 -1
  21. package/dist/assets/{view-simulator-device-wizard-Ccq5nlwv.js → view-simulator-device-wizard-9hU-LDnd.js} +1 -1
  22. package/dist/assets/{view-stats-Behz2o_l.js → view-stats-D1dOluoH.js} +1 -1
  23. package/dist/assets/{view-system-backups-CTnVXXFW.js → view-system-backups-C4DCcWIb.js} +1 -1
  24. package/dist/assets/{view-system-info-2MnHMJNV.js → view-system-info-BQMv8i-J.js} +1 -1
  25. package/dist/assets/{view-system-log-detail-BVtebozj.js → view-system-log-detail-DLoPiEa-.js} +1 -1
  26. package/dist/assets/{view-system-logs-CyuKsgEj.js → view-system-logs-CTNdc9CG.js} +1 -1
  27. package/dist/assets/{view-virtual-device-wizard-CIo90LZK.js → view-virtual-device-wizard-MMrHC65v.js} +1 -1
  28. package/dist/assets/{weather-Bdu5_MPI.js → weather-CHp4ENwQ.js} +1 -1
  29. package/dist/index.html +6 -6
  30. package/package.json +1 -1
@@ -1 +1 @@
1
- import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,D as t,Dr as n,Er as r,Mr as i,Nr as a,Or as o,Pr as s,Qr as c,Si as l,T as u,Wr as d,bi as f,ei as p,ji as m,jr as ee,k as h,kr as g,qi as _,r as v,ui as y,x as te,xr as b}from"./icon-with-child-CgZMNB3F.js";import{t as ne}from"./vue-meta.esm-browser.min-C5z7o_np.js";import{Dr as re,Er as ie,Kn as x,Qr as ae,Tr as oe,_ as S,_r as se,ei as ce,h as le,m as C,qr as ue,r as w,vr as de,x as fe,yr as pe}from"./common-D4Z2wgrj.js";import{n as T,t as me}from"./descriptions-BHa0Pjk7.js";import{n as E,t as D}from"./table-CeNNpGH7.js";import{n as O,t as he}from"./form-Wa6uIXea.js";import{t as k}from"./alert-I-oSc4A8.js";import{t as ge}from"./input-number-Cqu-p2BC.js";import{r as A,t as j}from"./select-CTZp3DyT.js";import{t as _e}from"./card-C50YgvLJ.js";import{t as M}from"./checkbox-CtqO8Xm5.js";import{n as ve,t as N}from"./steps-DuddYjrb.js";import{t as ye}from"./dist-DJgPCOr0.js";import{g as be,n as xe}from"./keys-BMDz3FOI.js";import{o as P}from"./keys-DMEIfK2a.js";import{o as F}from"./devices.constants-DHQemX04.js";import"./devices-CcCtv0br.js";import{i as I,t as Se}from"./simulator.constants-CaAdgiGs.js";var L=20,R=3,z=(e,t)=>e instanceof Error?e.message:t,Ce=()=>{let e=C(),t=S(),n=fe().getStore(P),r=l([]),i=l(!1),a=l(null),o=l([]),s=l(!1),c=l(null),u=!1,d=null,f=async()=>{if(!u)return d===null?(i.value=!0,a.value=null,d=(async()=>{try{let{data:t,error:n}=await e.client.GET(`/${v}/${I}/simulator/categories`,{});if(t===void 0){let e=`Failed to load simulator device categories`;throw Error(n?w(n,e):e)}r.value=t.data.map(e=>({category:e.category,name:e.name,description:e.description})),u=!0}catch(e){throw a.value=z(e,`Failed to load simulator device categories`),e}finally{i.value=!1,d=null}})(),d):d},p=e=>{if(!Number.isInteger(e.count)||e.count<1||e.count>L)throw RangeError(`Device count must be an integer between 1 and ${L}`);let t=e.namePrefix.trim();if(t.length===0)throw Error(`Device name prefix is required`);if(e.autoSimulate&&(!Number.isInteger(e.simulateInterval)||e.simulateInterval<1e3||e.simulateInterval>6e4))throw RangeError(`Simulation interval must be an integer between 1000 and 60000 milliseconds`);return t};return{categories:r,loadingCategories:i,categoriesError:a,results:o,generating:s,generationError:c,fetchCategories:f,generate:async r=>{if(s.value)throw Error(`Simulator device generation is already in progress`);o.value=[],c.value=null;let i;try{i=p(r)}catch(e){throw c.value=z(e,`Invalid simulator generation options`),e}let a=Array.from({length:r.count},(e,t)=>r.count===1?i:`${i} ${t+1}`),l=Array(a.length),u=0;s.value=!0;let d=async()=>{for(;u<a.length;){let t=u++,n=a[t];try{let{data:i,error:a}=await e.client.POST(`/${v}/${I}/simulator/generate`,{body:{data:{category:r.category,name:n,description:r.description??null,room_id:r.roomId??null,required_channels_only:r.requiredChannelsOnly,required_properties_only:r.requiredPropertiesOnly,auto_simulate:r.autoSimulate,...r.autoSimulate?{simulate_interval:r.simulateInterval}:{},behavior_mode:r.behaviorMode}}});if(i===void 0){let e=`Failed to generate ${n}`;l[t]={name:n,success:!1,error:a?w(a,e):e};continue}l[t]={name:n,success:!0,deviceId:i.data.id}}catch(e){l[t]={name:n,success:!1,error:z(e,`Failed to generate ${n}`)}}}};try{if(await Promise.all(Array.from({length:Math.min(R,a.length)},()=>d())),o.value=l,l.some(e=>e.success))try{await n.fetch()}catch(e){t.warn(`Simulator devices were generated, but the device store could not be refreshed`,{message:z(e,`Unknown device store refresh error`)})}}finally{s.value=!1}},reset:()=>{o.value=[],c.value=null}}},we={class:`grow-1 flex flex-col gap-2 lt-sm:mx-1 sm:mx-2 lt-sm:mb-1 sm:mb-2 overflow-hidden mt-2`},Te={class:`p-4`},Ee={key:0,class:`space-y-4`,"data-test-id":`wizard-configure`},De={class:`grid grid-cols-1 md:grid-cols-2 gap-x-4`},Oe={class:`flex flex-col gap-2`},ke={key:0},Ae={key:1,class:`space-y-4`,"data-test-id":`wizard-review`},je={key:2,class:`space-y-4`,"data-test-id":`wizard-results`},Me={key:1},Ne={key:2,class:`mt-2 flex justify-end lt-sm:mx-1 sm:mx-2 lt-sm:mb-1 sm:mb-2`},B=s({name:`ViewSimulatorDeviceWizard`,__name:`view-simulator-device-wizard`,setup(s,{expose:v}){let{t:C}=u(),w=te(),P=S(),{isMDDevice:I,isLGDevice:L}=pe(),R=fe().getStore(xe);ne({title:C(`simulatorPlugin.wizard.title`)});let{categories:z,loadingCategories:B,categoriesError:V,results:H,generating:U,generationError:W,fetchCategories:G,generate:Pe,reset:Fe}=Ce(),K=l(0),q=l(!1),J=l(null),Y=f({category:null,count:1,namePrefix:``,roomId:null,requiredChannelsOnly:!1,requiredPropertiesOnly:!1,autoSimulate:!1,simulateInterval:5e3,behaviorMode:x.default}),Ie=r(()=>ye(R.findAll().filter(e=>e.type===be.ROOM),[e=>e.name],[`asc`]).map(e=>({value:e.id,label:e.name}))),Le=r(()=>z.value.find(e=>e.category===Y.category)),Re=r(()=>Ie.value.find(e=>e.value===Y.roomId)?.label??C(`simulatorPlugin.wizard.review.noRoom`)),ze=r(()=>Array.from({length:Y.count},(e,t)=>Y.count===1?Y.namePrefix.trim():`${Y.namePrefix.trim()} ${t+1}`)),X=r(()=>Y.category!==null&&Y.namePrefix.trim().length>0&&Number.isInteger(Y.count)&&Y.count>=1&&Y.count<=20&&(!Y.autoSimulate||Number.isInteger(Y.simulateInterval)&&Y.simulateInterval>=1e3&&Y.simulateInterval<=6e4)),Z=r(()=>H.value.filter(e=>e.success).length),Be=r(()=>H.value.length-Z.value),Ve=r(()=>[{label:C(`devicesModule.breadcrumbs.devices.list`),route:w.resolve({name:F.DEVICES})},{label:C(`simulatorPlugin.wizard.breadcrumb`),route:w.resolve({name:Se.WIZARD})}]);se(()=>!U.value);let Q=()=>{if(U.value)return;let e={name:F.DEVICES};L.value?w.replace(e):w.push(e)},He=async()=>{if(!(!X.value||U.value||Y.category===null))try{await Pe({category:Y.category,count:Y.count,namePrefix:Y.namePrefix.trim(),roomId:Y.roomId,requiredChannelsOnly:Y.requiredChannelsOnly,requiredPropertiesOnly:Y.requiredPropertiesOnly,autoSimulate:Y.autoSimulate,simulateInterval:Y.simulateInterval,behaviorMode:Y.behaviorMode}),K.value=2}catch{}},Ue=()=>{Fe(),K.value=0},We=()=>{G().catch(e=>P.error(`Failed to load simulator categories`,e))},Ge=async()=>{q.value=!0,J.value=null;try{await R.fetch()}catch(e){J.value=C(`simulatorPlugin.wizard.errors.roomsLoadFailed`),P.error(`Failed to load rooms`,e)}finally{q.value=!1}},Ke=()=>{Ge()},$=e=>{let t={name:F.DEVICE,params:{id:e}};L.value?w.replace(t):w.push(t)};return d(()=>{G().catch(e=>P.error(`Failed to load simulator categories`,e)),Ge()}),v({activeStep:K,form:Y,previewNames:ze,onRetryCategories:We,onRetryRooms:Ke,onViewDevice:$}),(r,s)=>(c(),e(b,null,[m(I)?g(``,!0):(c(),o(m(oe),{key:0,teleport:``},{icon:y(()=>[a(m(t),{icon:`mdi:test-tube`})]),title:y(()=>[i(_(m(C)(`simulatorPlugin.wizard.title`)),1)]),subtitle:y(()=>[i(_(m(C)(`simulatorPlugin.wizard.subtitle`)),1)]),_:1})),m(I)?g(``,!0):(c(),o(m(ie),{key:1,align:m(re).LEFT,teleport:``,small:``,onClick:Q},{icon:y(()=>[a(m(t),{icon:`mdi:chevron-left`})]),_:1},8,[`align`])),a(m(de),{items:Ve.value},null,8,[`items`]),a(m(le),{heading:m(C)(`simulatorPlugin.wizard.title`),"sub-heading":m(C)(`simulatorPlugin.wizard.subtitle`),icon:`mdi:test-tube`},ee({_:2},[m(I)?{name:`extra`,fn:y(()=>[a(m(h),{disabled:m(U),"data-test-id":`wizard-cancel`,onClick:Q},{default:y(()=>[i(_(m(C)(`devicesModule.buttons.cancel.title`)),1)]),_:1},8,[`disabled`]),K.value===1?(c(),o(m(h),{key:0,disabled:m(U),"data-test-id":`wizard-back`,onClick:s[0]||=e=>K.value=0},{default:y(()=>[i(_(m(C)(`devicesModule.wizard.actions.back`)),1)]),_:1},8,[`disabled`])):g(``,!0),K.value===0?(c(),o(m(h),{key:1,type:`primary`,disabled:!X.value,"data-test-id":`wizard-next`,onClick:s[1]||=e=>K.value=1},{default:y(()=>[i(_(m(C)(`devicesModule.wizard.actions.next`)),1)]),_:1},8,[`disabled`])):K.value===1?(c(),o(m(h),{key:2,type:`primary`,loading:m(U),"data-test-id":`wizard-generate`,onClick:He},{default:y(()=>[i(_(m(C)(`simulatorPlugin.wizard.actions.generate`)),1)]),_:1},8,[`loading`])):(c(),o(m(h),{key:3,type:`primary`,"data-test-id":`wizard-generate-more`,onClick:Ue},{default:y(()=>[i(_(m(C)(`simulatorPlugin.wizard.actions.generateMore`)),1)]),_:1}))]),key:`0`}:void 0]),1032,[`heading`,`sub-heading`]),n(`div`,we,[a(m(_e),{shadow:`never`,class:`max-h-full flex flex-col overflow-hidden box-border`,"body-class":`p-0! max-h-full overflow-hidden flex flex-col`},{header:y(()=>[a(m(ve),{active:K.value,"finish-status":`success`,"align-center":``},{default:y(()=>[a(m(N),{title:m(C)(`simulatorPlugin.wizard.steps.configure`)},null,8,[`title`]),a(m(N),{title:m(C)(`simulatorPlugin.wizard.steps.review`)},null,8,[`title`]),a(m(N),{title:m(C)(`simulatorPlugin.wizard.steps.results`)},null,8,[`title`])]),_:1},8,[`active`])]),default:y(()=>[a(m(ae),{class:`flex-1 overflow-hidden h-full`},{default:y(()=>[n(`div`,Te,[K.value===0?(c(),e(`div`,Ee,[m(V)?(c(),o(m(k),{key:0,type:`error`,title:m(V),closable:!1,"show-icon":``},{default:y(()=>[a(m(h),{size:`small`,loading:m(B),"data-test-id":`wizard-retry-categories`,onClick:We},{default:y(()=>[i(_(m(C)(`simulatorPlugin.wizard.actions.retryCategories`)),1)]),_:1},8,[`loading`])]),_:1},8,[`title`])):g(``,!0),J.value?(c(),o(m(k),{key:1,type:`error`,title:J.value,closable:!1,"show-icon":``,"data-test-id":`wizard-rooms-error`},{default:y(()=>[a(m(h),{size:`small`,loading:q.value,"data-test-id":`wizard-retry-rooms`,onClick:Ke},{default:y(()=>[i(_(m(C)(`simulatorPlugin.wizard.actions.retryRooms`)),1)]),_:1},8,[`loading`])]),_:1},8,[`title`])):g(``,!0),a(m(he),{"label-position":`top`},{default:y(()=>[a(m(O),{label:m(C)(`simulatorPlugin.wizard.fields.category`),required:``},{default:y(()=>[a(m(A),{modelValue:Y.category,"onUpdate:modelValue":s[2]||=e=>Y.category=e,loading:m(B),filterable:``,class:`w-full`,"data-test-id":`wizard-category`},{default:y(()=>[(c(!0),e(b,null,p(m(z),e=>(c(),o(m(j),{key:e.category,label:e.name,value:e.category},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`loading`])]),_:1},8,[`label`]),n(`div`,De,[a(m(O),{label:m(C)(`simulatorPlugin.wizard.fields.namePrefix`),required:``},{default:y(()=>[a(m(ce),{modelValue:Y.namePrefix,"onUpdate:modelValue":s[3]||=e=>Y.namePrefix=e,"data-test-id":`wizard-name-prefix`},null,8,[`modelValue`])]),_:1},8,[`label`]),a(m(O),{label:m(C)(`simulatorPlugin.wizard.fields.count`)},{default:y(()=>[a(m(ge),{modelValue:Y.count,"onUpdate:modelValue":s[4]||=e=>Y.count=e,min:1,max:20,step:1,"step-strictly":``,"controls-position":`right`,class:`w-full`,"data-test-id":`wizard-count`},null,8,[`modelValue`])]),_:1},8,[`label`])]),a(m(O),{label:m(C)(`devicesModule.fields.devices.room.title`)},{default:y(()=>[a(m(A),{modelValue:Y.roomId,"onUpdate:modelValue":s[5]||=e=>Y.roomId=e,loading:q.value,filterable:``,clearable:``,class:`w-full`,"data-test-id":`wizard-room`},{default:y(()=>[(c(!0),e(b,null,p(Ie.value,e=>(c(),o(m(j),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`loading`])]),_:1},8,[`label`]),a(m(O),{label:m(C)(`simulatorPlugin.wizard.fields.structure`)},{default:y(()=>[n(`div`,Oe,[a(m(M),{modelValue:Y.requiredChannelsOnly,"onUpdate:modelValue":s[6]||=e=>Y.requiredChannelsOnly=e},{default:y(()=>[i(_(m(C)(`simulatorPlugin.wizard.fields.requiredChannelsOnly`)),1)]),_:1},8,[`modelValue`]),a(m(M),{modelValue:Y.requiredPropertiesOnly,"onUpdate:modelValue":s[7]||=e=>Y.requiredPropertiesOnly=e},{default:y(()=>[i(_(m(C)(`simulatorPlugin.wizard.fields.requiredPropertiesOnly`)),1)]),_:1},8,[`modelValue`])])]),_:1},8,[`label`]),a(m(O),null,{default:y(()=>[a(m(M),{modelValue:Y.autoSimulate,"onUpdate:modelValue":s[8]||=e=>Y.autoSimulate=e},{default:y(()=>[i(_(m(C)(`simulatorPlugin.wizard.fields.autoSimulate`)),1)]),_:1},8,[`modelValue`])]),_:1}),Y.autoSimulate?(c(),e(`div`,ke,[a(m(O),{label:m(C)(`simulatorPlugin.wizard.fields.simulateInterval`)},{default:y(()=>[a(m(ge),{modelValue:Y.simulateInterval,"onUpdate:modelValue":s[9]||=e=>Y.simulateInterval=e,min:1e3,max:6e4,step:1e3,class:`w-full`},null,8,[`modelValue`])]),_:1},8,[`label`])])):g(``,!0),a(m(O),{label:m(C)(`simulatorPlugin.wizard.fields.behaviorMode`)},{default:y(()=>[a(m(A),{modelValue:Y.behaviorMode,"onUpdate:modelValue":s[10]||=e=>Y.behaviorMode=e,class:`w-full`,"data-test-id":`wizard-behavior-mode`},{default:y(()=>[a(m(j),{label:m(C)(`simulatorPlugin.wizard.behaviorModes.default`),value:m(x).default},null,8,[`label`,`value`]),a(m(j),{label:m(C)(`simulatorPlugin.wizard.behaviorModes.realistic`),value:m(x).realistic},null,8,[`label`,`value`])]),_:1},8,[`modelValue`])]),_:1},8,[`label`])]),_:1})])):K.value===1?(c(),e(`div`,Ae,[m(W)?(c(),o(m(k),{key:0,type:`error`,title:m(W),closable:!1,"show-icon":``},null,8,[`title`])):g(``,!0),a(m(k),{type:`info`,title:m(C)(`simulatorPlugin.wizard.review.title`,{count:Y.count}),description:m(C)(`simulatorPlugin.wizard.review.description`),closable:!1,"show-icon":``},null,8,[`title`,`description`]),a(m(me),{column:1,border:``},{default:y(()=>[a(m(T),{label:m(C)(`simulatorPlugin.wizard.fields.category`)},{default:y(()=>[i(_(Le.value?.name),1)]),_:1},8,[`label`]),a(m(T),{label:m(C)(`devicesModule.fields.devices.room.title`)},{default:y(()=>[i(_(Re.value),1)]),_:1},8,[`label`])]),_:1}),a(m(D),{data:ze.value,"max-height":`360`,"data-test-id":`wizard-preview-names`},{default:y(()=>[a(m(E),{type:`index`,width:`70`}),a(m(E),{label:m(C)(`simulatorPlugin.wizard.fields.deviceName`)},{default:y(({row:e})=>[i(_(e),1)]),_:1},8,[`label`])]),_:1},8,[`data`])])):(c(),e(`div`,je,[a(m(k),{type:Be.value===0?`success`:Z.value===0?`error`:`warning`,title:m(C)(`simulatorPlugin.wizard.results.summary`,{succeeded:Z.value,failed:Be.value}),closable:!1,"show-icon":``},null,8,[`type`,`title`]),a(m(D),{data:m(H)},{default:y(()=>[a(m(E),{prop:`name`,label:m(C)(`simulatorPlugin.wizard.fields.deviceName`)},null,8,[`label`]),a(m(E),{label:m(C)(`simulatorPlugin.wizard.results.status`)},{default:y(({row:e})=>[a(m(ue),{type:e.success?`success`:`danger`},{default:y(()=>[i(_(m(C)(e.success?`simulatorPlugin.wizard.results.created`:`simulatorPlugin.wizard.results.failed`)),1)]),_:2},1032,[`type`])]),_:1},8,[`label`]),a(m(E),{label:m(C)(`simulatorPlugin.wizard.results.details`)},{default:y(({row:t})=>[t.success&&t.deviceId?(c(),o(m(h),{key:0,link:``,type:`primary`,"data-test-id":`wizard-view-device-${t.deviceId}`,onClick:e=>$(t.deviceId)},{default:y(()=>[i(_(m(C)(`simulatorPlugin.wizard.actions.viewDevice`)),1)]),_:1},8,[`data-test-id`,`onClick`])):(c(),e(`span`,Me,_(t.error),1))]),_:1},8,[`label`])]),_:1},8,[`data`])]))])]),_:1})]),_:1})]),m(I)?g(``,!0):(c(),e(`div`,Ne,[K.value===1?(c(),o(m(h),{key:0,disabled:m(U),"data-test-id":`wizard-back`,onClick:s[11]||=e=>K.value=0},{default:y(()=>[i(_(m(C)(`devicesModule.wizard.actions.back`)),1)]),_:1},8,[`disabled`])):g(``,!0),a(m(h),{disabled:m(U),"data-test-id":`wizard-cancel`,onClick:Q},{default:y(()=>[i(_(m(C)(`devicesModule.buttons.cancel.title`)),1)]),_:1},8,[`disabled`]),K.value===0?(c(),o(m(h),{key:1,type:`primary`,disabled:!X.value,"data-test-id":`wizard-next`,onClick:s[12]||=e=>K.value=1},{default:y(()=>[i(_(m(C)(`devicesModule.wizard.actions.next`)),1)]),_:1},8,[`disabled`])):K.value===1?(c(),o(m(h),{key:2,type:`primary`,loading:m(U),"data-test-id":`wizard-generate`,onClick:He},{default:y(()=>[i(_(m(C)(`simulatorPlugin.wizard.actions.generate`)),1)]),_:1},8,[`loading`])):(c(),o(m(h),{key:3,type:`primary`,"data-test-id":`wizard-generate-more`,onClick:Ue},{default:y(()=>[i(_(m(C)(`simulatorPlugin.wizard.actions.generateMore`)),1)]),_:1}))]))],64))}});export{B as default};
1
+ import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,D as t,Dr as n,Er as r,Mr as i,Nr as a,Or as o,Pr as s,Qr as c,Si as l,T as u,Wr as d,bi as f,ei as p,ji as m,jr as ee,k as h,kr as g,qi as _,r as v,ui as y,x as te,xr as b}from"./icon-with-child-CgZMNB3F.js";import{t as ne}from"./vue-meta.esm-browser.min-C5z7o_np.js";import{Dr as re,Er as ie,Kn as x,Qr as ae,Tr as oe,_ as S,_r as se,ei as ce,h as le,m as C,qr as ue,r as w,vr as de,x as fe,yr as pe}from"./common-D4Z2wgrj.js";import{n as T,t as me}from"./descriptions-BHa0Pjk7.js";import{n as E,t as D}from"./table-CeNNpGH7.js";import{n as O,t as he}from"./form-Wa6uIXea.js";import{t as k}from"./alert-I-oSc4A8.js";import{t as ge}from"./input-number-Cqu-p2BC.js";import{r as A,t as j}from"./select-CTZp3DyT.js";import{t as _e}from"./card-C50YgvLJ.js";import{t as M}from"./checkbox-CtqO8Xm5.js";import{n as ve,t as N}from"./steps-DuddYjrb.js";import{t as ye}from"./dist-DJgPCOr0.js";import{g as be,n as xe}from"./keys-BMDz3FOI.js";import{o as P}from"./keys-DMEIfK2a.js";import{o as F}from"./devices.constants-DHQemX04.js";import"./devices-DEFm4Nmd.js";import{i as I,t as Se}from"./simulator.constants-CaAdgiGs.js";var L=20,R=3,z=(e,t)=>e instanceof Error?e.message:t,Ce=()=>{let e=C(),t=S(),n=fe().getStore(P),r=l([]),i=l(!1),a=l(null),o=l([]),s=l(!1),c=l(null),u=!1,d=null,f=async()=>{if(!u)return d===null?(i.value=!0,a.value=null,d=(async()=>{try{let{data:t,error:n}=await e.client.GET(`/${v}/${I}/simulator/categories`,{});if(t===void 0){let e=`Failed to load simulator device categories`;throw Error(n?w(n,e):e)}r.value=t.data.map(e=>({category:e.category,name:e.name,description:e.description})),u=!0}catch(e){throw a.value=z(e,`Failed to load simulator device categories`),e}finally{i.value=!1,d=null}})(),d):d},p=e=>{if(!Number.isInteger(e.count)||e.count<1||e.count>L)throw RangeError(`Device count must be an integer between 1 and ${L}`);let t=e.namePrefix.trim();if(t.length===0)throw Error(`Device name prefix is required`);if(e.autoSimulate&&(!Number.isInteger(e.simulateInterval)||e.simulateInterval<1e3||e.simulateInterval>6e4))throw RangeError(`Simulation interval must be an integer between 1000 and 60000 milliseconds`);return t};return{categories:r,loadingCategories:i,categoriesError:a,results:o,generating:s,generationError:c,fetchCategories:f,generate:async r=>{if(s.value)throw Error(`Simulator device generation is already in progress`);o.value=[],c.value=null;let i;try{i=p(r)}catch(e){throw c.value=z(e,`Invalid simulator generation options`),e}let a=Array.from({length:r.count},(e,t)=>r.count===1?i:`${i} ${t+1}`),l=Array(a.length),u=0;s.value=!0;let d=async()=>{for(;u<a.length;){let t=u++,n=a[t];try{let{data:i,error:a}=await e.client.POST(`/${v}/${I}/simulator/generate`,{body:{data:{category:r.category,name:n,description:r.description??null,room_id:r.roomId??null,required_channels_only:r.requiredChannelsOnly,required_properties_only:r.requiredPropertiesOnly,auto_simulate:r.autoSimulate,...r.autoSimulate?{simulate_interval:r.simulateInterval}:{},behavior_mode:r.behaviorMode}}});if(i===void 0){let e=`Failed to generate ${n}`;l[t]={name:n,success:!1,error:a?w(a,e):e};continue}l[t]={name:n,success:!0,deviceId:i.data.id}}catch(e){l[t]={name:n,success:!1,error:z(e,`Failed to generate ${n}`)}}}};try{if(await Promise.all(Array.from({length:Math.min(R,a.length)},()=>d())),o.value=l,l.some(e=>e.success))try{await n.fetch()}catch(e){t.warn(`Simulator devices were generated, but the device store could not be refreshed`,{message:z(e,`Unknown device store refresh error`)})}}finally{s.value=!1}},reset:()=>{o.value=[],c.value=null}}},we={class:`grow-1 flex flex-col gap-2 lt-sm:mx-1 sm:mx-2 lt-sm:mb-1 sm:mb-2 overflow-hidden mt-2`},Te={class:`p-4`},Ee={key:0,class:`space-y-4`,"data-test-id":`wizard-configure`},De={class:`grid grid-cols-1 md:grid-cols-2 gap-x-4`},Oe={class:`flex flex-col gap-2`},ke={key:0},Ae={key:1,class:`space-y-4`,"data-test-id":`wizard-review`},je={key:2,class:`space-y-4`,"data-test-id":`wizard-results`},Me={key:1},Ne={key:2,class:`mt-2 flex justify-end lt-sm:mx-1 sm:mx-2 lt-sm:mb-1 sm:mb-2`},B=s({name:`ViewSimulatorDeviceWizard`,__name:`view-simulator-device-wizard`,setup(s,{expose:v}){let{t:C}=u(),w=te(),P=S(),{isMDDevice:I,isLGDevice:L}=pe(),R=fe().getStore(xe);ne({title:C(`simulatorPlugin.wizard.title`)});let{categories:z,loadingCategories:B,categoriesError:V,results:H,generating:U,generationError:W,fetchCategories:G,generate:Pe,reset:Fe}=Ce(),K=l(0),q=l(!1),J=l(null),Y=f({category:null,count:1,namePrefix:``,roomId:null,requiredChannelsOnly:!1,requiredPropertiesOnly:!1,autoSimulate:!1,simulateInterval:5e3,behaviorMode:x.default}),Ie=r(()=>ye(R.findAll().filter(e=>e.type===be.ROOM),[e=>e.name],[`asc`]).map(e=>({value:e.id,label:e.name}))),Le=r(()=>z.value.find(e=>e.category===Y.category)),Re=r(()=>Ie.value.find(e=>e.value===Y.roomId)?.label??C(`simulatorPlugin.wizard.review.noRoom`)),ze=r(()=>Array.from({length:Y.count},(e,t)=>Y.count===1?Y.namePrefix.trim():`${Y.namePrefix.trim()} ${t+1}`)),X=r(()=>Y.category!==null&&Y.namePrefix.trim().length>0&&Number.isInteger(Y.count)&&Y.count>=1&&Y.count<=20&&(!Y.autoSimulate||Number.isInteger(Y.simulateInterval)&&Y.simulateInterval>=1e3&&Y.simulateInterval<=6e4)),Z=r(()=>H.value.filter(e=>e.success).length),Be=r(()=>H.value.length-Z.value),Ve=r(()=>[{label:C(`devicesModule.breadcrumbs.devices.list`),route:w.resolve({name:F.DEVICES})},{label:C(`simulatorPlugin.wizard.breadcrumb`),route:w.resolve({name:Se.WIZARD})}]);se(()=>!U.value);let Q=()=>{if(U.value)return;let e={name:F.DEVICES};L.value?w.replace(e):w.push(e)},He=async()=>{if(!(!X.value||U.value||Y.category===null))try{await Pe({category:Y.category,count:Y.count,namePrefix:Y.namePrefix.trim(),roomId:Y.roomId,requiredChannelsOnly:Y.requiredChannelsOnly,requiredPropertiesOnly:Y.requiredPropertiesOnly,autoSimulate:Y.autoSimulate,simulateInterval:Y.simulateInterval,behaviorMode:Y.behaviorMode}),K.value=2}catch{}},Ue=()=>{Fe(),K.value=0},We=()=>{G().catch(e=>P.error(`Failed to load simulator categories`,e))},Ge=async()=>{q.value=!0,J.value=null;try{await R.fetch()}catch(e){J.value=C(`simulatorPlugin.wizard.errors.roomsLoadFailed`),P.error(`Failed to load rooms`,e)}finally{q.value=!1}},Ke=()=>{Ge()},$=e=>{let t={name:F.DEVICE,params:{id:e}};L.value?w.replace(t):w.push(t)};return d(()=>{G().catch(e=>P.error(`Failed to load simulator categories`,e)),Ge()}),v({activeStep:K,form:Y,previewNames:ze,onRetryCategories:We,onRetryRooms:Ke,onViewDevice:$}),(r,s)=>(c(),e(b,null,[m(I)?g(``,!0):(c(),o(m(oe),{key:0,teleport:``},{icon:y(()=>[a(m(t),{icon:`mdi:test-tube`})]),title:y(()=>[i(_(m(C)(`simulatorPlugin.wizard.title`)),1)]),subtitle:y(()=>[i(_(m(C)(`simulatorPlugin.wizard.subtitle`)),1)]),_:1})),m(I)?g(``,!0):(c(),o(m(ie),{key:1,align:m(re).LEFT,teleport:``,small:``,onClick:Q},{icon:y(()=>[a(m(t),{icon:`mdi:chevron-left`})]),_:1},8,[`align`])),a(m(de),{items:Ve.value},null,8,[`items`]),a(m(le),{heading:m(C)(`simulatorPlugin.wizard.title`),"sub-heading":m(C)(`simulatorPlugin.wizard.subtitle`),icon:`mdi:test-tube`},ee({_:2},[m(I)?{name:`extra`,fn:y(()=>[a(m(h),{disabled:m(U),"data-test-id":`wizard-cancel`,onClick:Q},{default:y(()=>[i(_(m(C)(`devicesModule.buttons.cancel.title`)),1)]),_:1},8,[`disabled`]),K.value===1?(c(),o(m(h),{key:0,disabled:m(U),"data-test-id":`wizard-back`,onClick:s[0]||=e=>K.value=0},{default:y(()=>[i(_(m(C)(`devicesModule.wizard.actions.back`)),1)]),_:1},8,[`disabled`])):g(``,!0),K.value===0?(c(),o(m(h),{key:1,type:`primary`,disabled:!X.value,"data-test-id":`wizard-next`,onClick:s[1]||=e=>K.value=1},{default:y(()=>[i(_(m(C)(`devicesModule.wizard.actions.next`)),1)]),_:1},8,[`disabled`])):K.value===1?(c(),o(m(h),{key:2,type:`primary`,loading:m(U),"data-test-id":`wizard-generate`,onClick:He},{default:y(()=>[i(_(m(C)(`simulatorPlugin.wizard.actions.generate`)),1)]),_:1},8,[`loading`])):(c(),o(m(h),{key:3,type:`primary`,"data-test-id":`wizard-generate-more`,onClick:Ue},{default:y(()=>[i(_(m(C)(`simulatorPlugin.wizard.actions.generateMore`)),1)]),_:1}))]),key:`0`}:void 0]),1032,[`heading`,`sub-heading`]),n(`div`,we,[a(m(_e),{shadow:`never`,class:`max-h-full flex flex-col overflow-hidden box-border`,"body-class":`p-0! max-h-full overflow-hidden flex flex-col`},{header:y(()=>[a(m(ve),{active:K.value,"finish-status":`success`,"align-center":``},{default:y(()=>[a(m(N),{title:m(C)(`simulatorPlugin.wizard.steps.configure`)},null,8,[`title`]),a(m(N),{title:m(C)(`simulatorPlugin.wizard.steps.review`)},null,8,[`title`]),a(m(N),{title:m(C)(`simulatorPlugin.wizard.steps.results`)},null,8,[`title`])]),_:1},8,[`active`])]),default:y(()=>[a(m(ae),{class:`flex-1 overflow-hidden h-full`},{default:y(()=>[n(`div`,Te,[K.value===0?(c(),e(`div`,Ee,[m(V)?(c(),o(m(k),{key:0,type:`error`,title:m(V),closable:!1,"show-icon":``},{default:y(()=>[a(m(h),{size:`small`,loading:m(B),"data-test-id":`wizard-retry-categories`,onClick:We},{default:y(()=>[i(_(m(C)(`simulatorPlugin.wizard.actions.retryCategories`)),1)]),_:1},8,[`loading`])]),_:1},8,[`title`])):g(``,!0),J.value?(c(),o(m(k),{key:1,type:`error`,title:J.value,closable:!1,"show-icon":``,"data-test-id":`wizard-rooms-error`},{default:y(()=>[a(m(h),{size:`small`,loading:q.value,"data-test-id":`wizard-retry-rooms`,onClick:Ke},{default:y(()=>[i(_(m(C)(`simulatorPlugin.wizard.actions.retryRooms`)),1)]),_:1},8,[`loading`])]),_:1},8,[`title`])):g(``,!0),a(m(he),{"label-position":`top`},{default:y(()=>[a(m(O),{label:m(C)(`simulatorPlugin.wizard.fields.category`),required:``},{default:y(()=>[a(m(A),{modelValue:Y.category,"onUpdate:modelValue":s[2]||=e=>Y.category=e,loading:m(B),filterable:``,class:`w-full`,"data-test-id":`wizard-category`},{default:y(()=>[(c(!0),e(b,null,p(m(z),e=>(c(),o(m(j),{key:e.category,label:e.name,value:e.category},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`loading`])]),_:1},8,[`label`]),n(`div`,De,[a(m(O),{label:m(C)(`simulatorPlugin.wizard.fields.namePrefix`),required:``},{default:y(()=>[a(m(ce),{modelValue:Y.namePrefix,"onUpdate:modelValue":s[3]||=e=>Y.namePrefix=e,"data-test-id":`wizard-name-prefix`},null,8,[`modelValue`])]),_:1},8,[`label`]),a(m(O),{label:m(C)(`simulatorPlugin.wizard.fields.count`)},{default:y(()=>[a(m(ge),{modelValue:Y.count,"onUpdate:modelValue":s[4]||=e=>Y.count=e,min:1,max:20,step:1,"step-strictly":``,"controls-position":`right`,class:`w-full`,"data-test-id":`wizard-count`},null,8,[`modelValue`])]),_:1},8,[`label`])]),a(m(O),{label:m(C)(`devicesModule.fields.devices.room.title`)},{default:y(()=>[a(m(A),{modelValue:Y.roomId,"onUpdate:modelValue":s[5]||=e=>Y.roomId=e,loading:q.value,filterable:``,clearable:``,class:`w-full`,"data-test-id":`wizard-room`},{default:y(()=>[(c(!0),e(b,null,p(Ie.value,e=>(c(),o(m(j),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`loading`])]),_:1},8,[`label`]),a(m(O),{label:m(C)(`simulatorPlugin.wizard.fields.structure`)},{default:y(()=>[n(`div`,Oe,[a(m(M),{modelValue:Y.requiredChannelsOnly,"onUpdate:modelValue":s[6]||=e=>Y.requiredChannelsOnly=e},{default:y(()=>[i(_(m(C)(`simulatorPlugin.wizard.fields.requiredChannelsOnly`)),1)]),_:1},8,[`modelValue`]),a(m(M),{modelValue:Y.requiredPropertiesOnly,"onUpdate:modelValue":s[7]||=e=>Y.requiredPropertiesOnly=e},{default:y(()=>[i(_(m(C)(`simulatorPlugin.wizard.fields.requiredPropertiesOnly`)),1)]),_:1},8,[`modelValue`])])]),_:1},8,[`label`]),a(m(O),null,{default:y(()=>[a(m(M),{modelValue:Y.autoSimulate,"onUpdate:modelValue":s[8]||=e=>Y.autoSimulate=e},{default:y(()=>[i(_(m(C)(`simulatorPlugin.wizard.fields.autoSimulate`)),1)]),_:1},8,[`modelValue`])]),_:1}),Y.autoSimulate?(c(),e(`div`,ke,[a(m(O),{label:m(C)(`simulatorPlugin.wizard.fields.simulateInterval`)},{default:y(()=>[a(m(ge),{modelValue:Y.simulateInterval,"onUpdate:modelValue":s[9]||=e=>Y.simulateInterval=e,min:1e3,max:6e4,step:1e3,class:`w-full`},null,8,[`modelValue`])]),_:1},8,[`label`])])):g(``,!0),a(m(O),{label:m(C)(`simulatorPlugin.wizard.fields.behaviorMode`)},{default:y(()=>[a(m(A),{modelValue:Y.behaviorMode,"onUpdate:modelValue":s[10]||=e=>Y.behaviorMode=e,class:`w-full`,"data-test-id":`wizard-behavior-mode`},{default:y(()=>[a(m(j),{label:m(C)(`simulatorPlugin.wizard.behaviorModes.default`),value:m(x).default},null,8,[`label`,`value`]),a(m(j),{label:m(C)(`simulatorPlugin.wizard.behaviorModes.realistic`),value:m(x).realistic},null,8,[`label`,`value`])]),_:1},8,[`modelValue`])]),_:1},8,[`label`])]),_:1})])):K.value===1?(c(),e(`div`,Ae,[m(W)?(c(),o(m(k),{key:0,type:`error`,title:m(W),closable:!1,"show-icon":``},null,8,[`title`])):g(``,!0),a(m(k),{type:`info`,title:m(C)(`simulatorPlugin.wizard.review.title`,{count:Y.count}),description:m(C)(`simulatorPlugin.wizard.review.description`),closable:!1,"show-icon":``},null,8,[`title`,`description`]),a(m(me),{column:1,border:``},{default:y(()=>[a(m(T),{label:m(C)(`simulatorPlugin.wizard.fields.category`)},{default:y(()=>[i(_(Le.value?.name),1)]),_:1},8,[`label`]),a(m(T),{label:m(C)(`devicesModule.fields.devices.room.title`)},{default:y(()=>[i(_(Re.value),1)]),_:1},8,[`label`])]),_:1}),a(m(D),{data:ze.value,"max-height":`360`,"data-test-id":`wizard-preview-names`},{default:y(()=>[a(m(E),{type:`index`,width:`70`}),a(m(E),{label:m(C)(`simulatorPlugin.wizard.fields.deviceName`)},{default:y(({row:e})=>[i(_(e),1)]),_:1},8,[`label`])]),_:1},8,[`data`])])):(c(),e(`div`,je,[a(m(k),{type:Be.value===0?`success`:Z.value===0?`error`:`warning`,title:m(C)(`simulatorPlugin.wizard.results.summary`,{succeeded:Z.value,failed:Be.value}),closable:!1,"show-icon":``},null,8,[`type`,`title`]),a(m(D),{data:m(H)},{default:y(()=>[a(m(E),{prop:`name`,label:m(C)(`simulatorPlugin.wizard.fields.deviceName`)},null,8,[`label`]),a(m(E),{label:m(C)(`simulatorPlugin.wizard.results.status`)},{default:y(({row:e})=>[a(m(ue),{type:e.success?`success`:`danger`},{default:y(()=>[i(_(m(C)(e.success?`simulatorPlugin.wizard.results.created`:`simulatorPlugin.wizard.results.failed`)),1)]),_:2},1032,[`type`])]),_:1},8,[`label`]),a(m(E),{label:m(C)(`simulatorPlugin.wizard.results.details`)},{default:y(({row:t})=>[t.success&&t.deviceId?(c(),o(m(h),{key:0,link:``,type:`primary`,"data-test-id":`wizard-view-device-${t.deviceId}`,onClick:e=>$(t.deviceId)},{default:y(()=>[i(_(m(C)(`simulatorPlugin.wizard.actions.viewDevice`)),1)]),_:1},8,[`data-test-id`,`onClick`])):(c(),e(`span`,Me,_(t.error),1))]),_:1},8,[`label`])]),_:1},8,[`data`])]))])]),_:1})]),_:1})]),m(I)?g(``,!0):(c(),e(`div`,Ne,[K.value===1?(c(),o(m(h),{key:0,disabled:m(U),"data-test-id":`wizard-back`,onClick:s[11]||=e=>K.value=0},{default:y(()=>[i(_(m(C)(`devicesModule.wizard.actions.back`)),1)]),_:1},8,[`disabled`])):g(``,!0),a(m(h),{disabled:m(U),"data-test-id":`wizard-cancel`,onClick:Q},{default:y(()=>[i(_(m(C)(`devicesModule.buttons.cancel.title`)),1)]),_:1},8,[`disabled`]),K.value===0?(c(),o(m(h),{key:1,type:`primary`,disabled:!X.value,"data-test-id":`wizard-next`,onClick:s[12]||=e=>K.value=1},{default:y(()=>[i(_(m(C)(`devicesModule.wizard.actions.next`)),1)]),_:1},8,[`disabled`])):K.value===1?(c(),o(m(h),{key:2,type:`primary`,loading:m(U),"data-test-id":`wizard-generate`,onClick:He},{default:y(()=>[i(_(m(C)(`simulatorPlugin.wizard.actions.generate`)),1)]),_:1},8,[`loading`])):(c(),o(m(h),{key:3,type:`primary`,"data-test-id":`wizard-generate-more`,onClick:Ue},{default:y(()=>[i(_(m(C)(`simulatorPlugin.wizard.actions.generateMore`)),1)]),_:1}))]))],64))}});export{B as default};
@@ -1 +1 @@
1
- import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,Dr as t,Er as n,Nr as r,Pr as i,Qr as a,T as ee,Wr as te,_i as o,ji as s,ui as c,x as l,xr as u}from"./icon-with-child-CgZMNB3F.js";import{t as d}from"./vue-meta.esm-browser.min-C5z7o_np.js";import{h as f,vr as p}from"./common-D4Z2wgrj.js";import{t as ne}from"./card-C50YgvLJ.js";import{n as m,t as h}from"./col-CQn4VXnk.js";import{l as re,s as ie}from"./components-BrlrYtBy.js";import{o as g}from"./config-DAgVgX46.js";import{i as _}from"./system.constants-BvSIFqdm.js";import"./system-B49yl9H3.js";import{S as v,a as y,c as b,d as x,f as S,g as C,h as w,i as T,l as E,m as D,o as O,p as k,s as A,u as j,v as M}from"./weather-Bdu5_MPI.js";var N={class:`p-4`},P={class:`grid gap-2`},F=i({__name:`view-stats`,setup(i){let F=l(),{t:I}=ee(),{stats:L,fetchStats:R,isLoading:z}=y(),{systemInfo:B,fetchSystemInfo:V,isLoading:H}=re(),{configApp:U,fetchConfigApp:W,isLoading:G}=g(),{systemLogs:K,fetchSystemLogs:q,areLoading:J,refreshSystemLogs:Y,resetFilter:ae,filters:X,filtersActive:oe}=ie({syncQuery:!1}),se=n(()=>L.value?.[`api-module`]),Z=n(()=>L.value?.[`websocket-module`]),Q=n(()=>L.value?.[`system-module`]),ce=n(()=>L.value?.[`dashboard-module`]),$=n(()=>L.value?.[`devices-module`]),le=()=>{F.push({name:_.SYSTEM_LOGS})},ue=n(()=>[{label:I(`statsModule.breadcrumbs.stats`),route:F.resolve({name:v.STATS})}]);return te(async()=>{R().catch(e=>{throw new M(`Something went wrong`,e)}),V().catch(e=>{throw new M(`Something went wrong`,e)}),W().catch(e=>{throw new M(`Something went wrong`,e)}),q().catch(e=>{throw new M(`Something went wrong`,e)})}),d({title:I(`statsModule.meta.stats.title`)}),(n,i)=>(a(),e(u,null,[r(s(p),{items:ue.value},null,8,[`items`]),r(s(f),{heading:s(I)(`statsModule.headings.stats`),"sub-heading":s(I)(`statsModule.subHeadings.stats`),icon:`mdi:monitor-dashboard`},null,8,[`heading`,`sub-heading`]),t(`div`,N,[r(s(m),{gutter:20},{default:c(()=>[r(s(h),{span:9},{default:c(()=>[t(`div`,P,[r(s(k),{"system-info":s(B),"config-app":s(U),loading:s(H)||s(G)},null,8,[`system-info`,`config-app`,`loading`]),r(s(T)),r(s(D))])]),_:1}),r(s(h),{span:15},{default:c(()=>[r(s(w),{"api-module-section":se.value,"websocket-module-section":Z.value,loading:s(z)},null,8,[`api-module-section`,`websocket-module-section`,`loading`]),r(s(m),{class:`mt-2 mb-2`,gutter:10},{default:c(()=>[r(s(h),{span:8},{default:c(()=>[r(s(S),{"system-module-section":Q.value,"system-info":s(B),loading:s(z)||s(H),class:`h-full`},null,8,[`system-module-section`,`system-info`,`loading`])]),_:1}),r(s(h),{span:8},{default:c(()=>[r(s(b),{"system-module-section":Q.value,"system-info":s(B),loading:s(z)||s(H),class:`h-full`},null,8,[`system-module-section`,`system-info`,`loading`])]),_:1}),r(s(h),{span:8},{default:c(()=>[r(s(O),{"system-module-section":Q.value,loading:s(z),class:`h-full`},null,8,[`system-module-section`,`loading`])]),_:1})]),_:1}),r(s(ne),{shadow:`never`,class:`mb-2`},{default:c(()=>[r(s(m),{gutter:16},{default:c(()=>[r(s(h),{xs:24,sm:12,md:6},{default:c(()=>[r(s(A),{loading:s(z)},null,8,[`loading`])]),_:1}),r(s(h),{xs:24,sm:12,md:6},{default:c(()=>[r(s(x),{"dashboard-module-section":ce.value,loading:s(z)},null,8,[`dashboard-module-section`,`loading`])]),_:1}),r(s(h),{xs:24,sm:12,md:6},{default:c(()=>[r(s(j),{"devices-module-section":$.value,loading:s(z)},null,8,[`devices-module-section`,`loading`])]),_:1}),r(s(h),{xs:24,sm:12,md:6},{default:c(()=>[r(s(E),{"devices-module-section":$.value,loading:s(z)},null,8,[`devices-module-section`,`loading`])]),_:1})]),_:1})]),_:1}),r(s(C),{filters:s(X),"onUpdate:filters":i[0]||=e=>o(X)?X.value=e:null,"system-logs":s(K),"filters-active":s(oe),loading:s(J),onRefresh:s(Y),onReset:s(ae),onDetail:le},null,8,[`filters`,`system-logs`,`filters-active`,`loading`,`onRefresh`,`onReset`])]),_:1})]),_:1})])],64))}});export{F as default};
1
+ import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,Dr as t,Er as n,Nr as r,Pr as i,Qr as a,T as ee,Wr as te,_i as o,ji as s,ui as c,x as l,xr as u}from"./icon-with-child-CgZMNB3F.js";import{t as d}from"./vue-meta.esm-browser.min-C5z7o_np.js";import{h as f,vr as p}from"./common-D4Z2wgrj.js";import{t as ne}from"./card-C50YgvLJ.js";import{n as m,t as h}from"./col-CQn4VXnk.js";import{l as re,s as ie}from"./components-BBoFC7mM.js";import{o as g}from"./config-DAgVgX46.js";import{i as _}from"./system.constants-BvSIFqdm.js";import"./system-DqL1ds2J.js";import{S as v,a as y,c as b,d as x,f as S,g as C,h as w,i as T,l as E,m as D,o as O,p as k,s as A,u as j,v as M}from"./weather-CHp4ENwQ.js";var N={class:`p-4`},P={class:`grid gap-2`},F=i({__name:`view-stats`,setup(i){let F=l(),{t:I}=ee(),{stats:L,fetchStats:R,isLoading:z}=y(),{systemInfo:B,fetchSystemInfo:V,isLoading:H}=re(),{configApp:U,fetchConfigApp:W,isLoading:G}=g(),{systemLogs:K,fetchSystemLogs:q,areLoading:J,refreshSystemLogs:Y,resetFilter:ae,filters:X,filtersActive:oe}=ie({syncQuery:!1}),se=n(()=>L.value?.[`api-module`]),Z=n(()=>L.value?.[`websocket-module`]),Q=n(()=>L.value?.[`system-module`]),ce=n(()=>L.value?.[`dashboard-module`]),$=n(()=>L.value?.[`devices-module`]),le=()=>{F.push({name:_.SYSTEM_LOGS})},ue=n(()=>[{label:I(`statsModule.breadcrumbs.stats`),route:F.resolve({name:v.STATS})}]);return te(async()=>{R().catch(e=>{throw new M(`Something went wrong`,e)}),V().catch(e=>{throw new M(`Something went wrong`,e)}),W().catch(e=>{throw new M(`Something went wrong`,e)}),q().catch(e=>{throw new M(`Something went wrong`,e)})}),d({title:I(`statsModule.meta.stats.title`)}),(n,i)=>(a(),e(u,null,[r(s(p),{items:ue.value},null,8,[`items`]),r(s(f),{heading:s(I)(`statsModule.headings.stats`),"sub-heading":s(I)(`statsModule.subHeadings.stats`),icon:`mdi:monitor-dashboard`},null,8,[`heading`,`sub-heading`]),t(`div`,N,[r(s(m),{gutter:20},{default:c(()=>[r(s(h),{span:9},{default:c(()=>[t(`div`,P,[r(s(k),{"system-info":s(B),"config-app":s(U),loading:s(H)||s(G)},null,8,[`system-info`,`config-app`,`loading`]),r(s(T)),r(s(D))])]),_:1}),r(s(h),{span:15},{default:c(()=>[r(s(w),{"api-module-section":se.value,"websocket-module-section":Z.value,loading:s(z)},null,8,[`api-module-section`,`websocket-module-section`,`loading`]),r(s(m),{class:`mt-2 mb-2`,gutter:10},{default:c(()=>[r(s(h),{span:8},{default:c(()=>[r(s(S),{"system-module-section":Q.value,"system-info":s(B),loading:s(z)||s(H),class:`h-full`},null,8,[`system-module-section`,`system-info`,`loading`])]),_:1}),r(s(h),{span:8},{default:c(()=>[r(s(b),{"system-module-section":Q.value,"system-info":s(B),loading:s(z)||s(H),class:`h-full`},null,8,[`system-module-section`,`system-info`,`loading`])]),_:1}),r(s(h),{span:8},{default:c(()=>[r(s(O),{"system-module-section":Q.value,loading:s(z),class:`h-full`},null,8,[`system-module-section`,`loading`])]),_:1})]),_:1}),r(s(ne),{shadow:`never`,class:`mb-2`},{default:c(()=>[r(s(m),{gutter:16},{default:c(()=>[r(s(h),{xs:24,sm:12,md:6},{default:c(()=>[r(s(A),{loading:s(z)},null,8,[`loading`])]),_:1}),r(s(h),{xs:24,sm:12,md:6},{default:c(()=>[r(s(x),{"dashboard-module-section":ce.value,loading:s(z)},null,8,[`dashboard-module-section`,`loading`])]),_:1}),r(s(h),{xs:24,sm:12,md:6},{default:c(()=>[r(s(j),{"devices-module-section":$.value,loading:s(z)},null,8,[`devices-module-section`,`loading`])]),_:1}),r(s(h),{xs:24,sm:12,md:6},{default:c(()=>[r(s(E),{"devices-module-section":$.value,loading:s(z)},null,8,[`devices-module-section`,`loading`])]),_:1})]),_:1})]),_:1}),r(s(C),{filters:s(X),"onUpdate:filters":i[0]||=e=>o(X)?X.value=e:null,"system-logs":s(K),"filters-active":s(oe),loading:s(J),onRefresh:s(Y),onReset:s(ae),onDetail:le},null,8,[`filters`,`system-logs`,`filters-active`,`loading`,`onRefresh`,`onReset`])]),_:1})]),_:1})])],64))}});export{F as default};
@@ -1 +1 @@
1
- import"./rolldown-runtime-QTnfLwEv.js";import{$r as e,Ar as t,D as n,Di as r,Dr as i,Er as a,Gr as o,H as s,Hr as c,Ki as l,Li as u,Mi as d,Mr as f,Mt as p,Nr as m,Nt as h,Or as g,Pr as _,Qr as v,R as y,Si as b,T as x,Ti as S,Ui as C,Vi as w,Vr as T,Wi as E,an as D,bn as ee,bt as te,ci as O,cn as k,ct as ne,dr as re,ei as ie,et as ae,it as oe,ji as A,jr as j,k as M,kr as N,ln as P,on as F,qi as I,st as se,ti as L,tt as ce,ui as R,un as le,vr as z,x as ue,xn as de,xr as B,yr as V,yt as fe,zi as pe,zr as me}from"./icon-with-child-CgZMNB3F.js";import{t as he}from"./vue-meta.esm-browser.min-C5z7o_np.js";import{Tr as ge,Vi as _e,Zi as H,h as ve,ni as U,vr as ye,yr as be}from"./common-D4Z2wgrj.js";import{r as W}from"./form-Wa6uIXea.js";import{n as xe,x as Se}from"./components-BrlrYtBy.js";import{i as G}from"./system.constants-BvSIFqdm.js";var Ce=`ElUpload`,we=class extends Error{constructor(e,t,n,r){super(e),this.name=`UploadAjaxError`,this.status=t,this.method=n,this.url=r}};function K(e,t,n){let r;return r=n.response?`${n.response.error||n.response}`:n.responseText?`${n.responseText}`:`fail to ${t.method} ${e} ${n.status}`,new we(r,n.status,t.method,e)}function Te(e){let t=e.responseText||e.response;if(!t)return t;try{return JSON.parse(t)}catch{return t}}var q=e=>{typeof XMLHttpRequest>`u`&&F(Ce,`XMLHttpRequest is undefined`);let t=new XMLHttpRequest,n=e.action;t.upload&&t.upload.addEventListener(`progress`,t=>{let n=t;n.percent=t.total>0?t.loaded/t.total*100:0,e.onProgress(n)});let r=new FormData;if(e.data)for(let[t,n]of Object.entries(e.data))u(n)?n.length===2&&n[0]instanceof Blob&&C(n[1])?r.append(t,n[0],n[1]):n.forEach(e=>{r.append(t,e)}):r.append(t,n);r.append(e.filename,e.file,e.file.name),t.addEventListener(`error`,()=>{e.onError(K(n,e,t))}),t.addEventListener(`load`,()=>{if(t.status<200||t.status>=300)return e.onError(K(n,e,t));e.onSuccess(Te(t))}),t.open(e.method,n,!0),e.withCredentials&&`withCredentials`in t&&(t.withCredentials=!0);let i=e.headers||{};if(i instanceof Headers)i.forEach((e,n)=>t.setRequestHeader(n,e));else for(let[e,n]of Object.entries(i))ee(n)||t.setRequestHeader(e,String(n));return t.send(r),t},J=[`text`,`picture`,`picture-card`],Ee=1,Y=()=>Date.now()+Ee++,X=k({action:{type:String,default:`#`},headers:{type:P(Object)},method:{type:String,default:`post`},data:{type:P([Object,Function,Promise]),default:()=>U({})},multiple:Boolean,name:{type:String,default:`file`},drag:Boolean,withCredentials:Boolean,showFileList:{type:Boolean,default:!0},accept:{type:String,default:``},fileList:{type:P(Array),default:()=>U([])},autoUpload:{type:Boolean,default:!0},listType:{type:String,values:J,default:`text`},httpRequest:{type:P(Function),default:q},disabled:{type:Boolean,default:void 0},limit:Number,directory:Boolean}),De=k({...X,beforeUpload:{type:P(Function),default:d},beforeRemove:{type:P(Function)},onRemove:{type:P(Function),default:d},onChange:{type:P(Function),default:d},onPreview:{type:P(Function),default:d},onSuccess:{type:P(Function),default:d},onProgress:{type:P(Function),default:d},onError:{type:P(Function),default:d},onExceed:{type:P(Function),default:d},crossorigin:{type:P(String)}}),Z={action:`#`,method:`post`,data:()=>U({}),name:`file`,showFileList:!0,accept:``,fileList:()=>U([]),autoUpload:!0,listType:`text`,httpRequest:q,disabled:void 0};({...Z});var Q=Symbol(`uploadContextKey`),Oe=k({files:{type:P(Array),default:()=>U([])},disabled:{type:Boolean,default:void 0},handlePreview:{type:P(Function),default:d},listType:{type:String,values:J,default:`text`},crossorigin:{type:P(String)}}),ke={remove:e=>!!e},Ae=k({...X,beforeUpload:{type:P(Function),default:d},onRemove:{type:P(Function),default:d},onStart:{type:P(Function),default:d},onSuccess:{type:P(Function),default:d},onProgress:{type:P(Function),default:d},onError:{type:P(Function),default:d},onExceed:{type:P(Function),default:d}});({...Z});var je=k({disabled:{type:Boolean,default:void 0},directory:Boolean}),Me={file:e=>u(e)},Ne=[`tabindex`,`aria-disabled`,`onKeydown`],Pe=[`src`,`crossorigin`],Fe=[`onClick`],Ie=[`title`],Le=[`onClick`],Re=[`onClick`],$=_({name:`ElUploadList`,__name:`upload-list`,props:Oe,emits:ke,setup(e,{emit:n}){let r=e,o=n,{t:c}=h(),u=p(`upload`),d=p(`icon`),f=p(`list`),_=y(),x=b(!1),S=a(()=>[u.b(`list`),u.bm(`list`,r.listType),u.is(`disabled`,_.value)]),C=e=>{o(`remove`,e)};return(n,r)=>(v(),g(re,{tag:`ul`,class:E(S.value),name:A(f).b()},{default:R(()=>[(v(!0),t(B,null,ie(e.files,(a,o)=>(v(),t(`li`,{key:a.uid||a.name,class:E([A(u).be(`list`,`item`),A(u).is(a.status),{focusing:x.value}]),tabindex:A(_)?void 0:0,"aria-disabled":A(_),role:`button`,onKeydown:z(e=>!A(_)&&C(a),[`delete`]),onFocus:r[0]||=e=>x.value=!0,onBlur:r[1]||=e=>x.value=!1,onClick:r[2]||=e=>x.value=!1},[L(n.$slots,`default`,{file:a,index:o},()=>[e.listType===`picture`||a.status!==`uploading`&&e.listType===`picture-card`?(v(),t(`img`,{key:0,class:E(A(u).be(`list`,`item-thumbnail`)),src:a.url,crossorigin:e.crossorigin,alt:``},null,10,Pe)):N(`v-if`,!0),a.status===`uploading`||e.listType!==`picture-card`?(v(),t(`div`,{key:1,class:E(A(u).be(`list`,`item-info`))},[i(`a`,{class:E(A(u).be(`list`,`item-name`)),onClick:V(t=>e.handlePreview(a),[`prevent`])},[m(A(s),{class:E(A(d).m(`document`))},{default:R(()=>[m(A(ne))]),_:1},8,[`class`]),i(`span`,{class:E(A(u).be(`list`,`item-file-name`)),title:a.name},I(a.name),11,Ie)],10,Fe),a.status===`uploading`?(v(),g(A(Se),{key:0,type:e.listType===`picture-card`?`circle`:`line`,"stroke-width":e.listType===`picture-card`?6:2,percentage:Number(a.percentage),style:l(e.listType===`picture-card`?``:`margin-top: 0.5rem`)},null,8,[`type`,`stroke-width`,`percentage`,`style`])):N(`v-if`,!0)],2)):N(`v-if`,!0),i(`label`,{class:E(A(u).be(`list`,`item-status-label`))},[e.listType===`text`?(v(),g(A(s),{key:0,class:E([A(d).m(`upload-success`),A(d).m(`circle-check`)])},{default:R(()=>[m(A(ce))]),_:1},8,[`class`])):[`picture-card`,`picture`].includes(e.listType)?(v(),g(A(s),{key:1,class:E([A(d).m(`upload-success`),A(d).m(`check`)])},{default:R(()=>[m(A(ae))]),_:1},8,[`class`])):N(`v-if`,!0)],2),A(_)?N(`v-if`,!0):(v(),g(A(s),{key:2,class:E(A(d).m(`close`)),"aria-label":A(c)(`el.upload.delete`),role:`button`,tabindex:`0`,onClick:e=>C(a),onKeydown:z(V(e=>C(a),[`prevent`]),[`enter`,`space`])},{default:R(()=>[m(A(oe))]),_:1},8,[`class`,`aria-label`,`onClick`,`onKeydown`])),A(_)?N(`v-if`,!0):(v(),t(`i`,{key:3,class:E(A(d).m(`close-tip`))},I(A(c)(`el.upload.deleteTip`)),3)),e.listType===`picture-card`?(v(),t(`span`,{key:4,class:E(A(u).be(`list`,`item-actions`))},[i(`span`,{class:E(A(u).be(`list`,`item-preview`)),onClick:t=>e.handlePreview(a)},[m(A(s),{class:E(A(d).m(`zoom-in`))},{default:R(()=>[m(A(fe))]),_:1},8,[`class`])],10,Le),A(_)?N(`v-if`,!0):(v(),t(`span`,{key:0,class:E(A(u).be(`list`,`item-delete`)),onClick:e=>C(a)},[m(A(s),{class:E(A(d).m(`delete`))},{default:R(()=>[m(A(se))]),_:1},8,[`class`])],10,Re))],2)):N(`v-if`,!0)])],42,Ne))),128)),L(n.$slots,`append`)]),_:3},8,[`class`,`name`]))}}),ze=`ElUploadDrag`,Be=_({name:ze,__name:`upload-dragger`,props:je,emits:Me,setup(e,{emit:n}){let r=e,i=n;me(Q)||F(ze,`usage: <el-upload><el-upload-dragger /></el-upload>`);let a=p(`upload`),o=b(!1),s=y(),c=e=>new Promise((t,n)=>e.file(t,n)),l=async e=>{try{if(e.isFile){let t=await c(e);return t.isDirectory=!1,[t]}if(e.isDirectory){let t=e.createReader(),n=()=>new Promise((e,n)=>t.readEntries(e,n)),r=[],i=await n();for(;i.length>0;)r.push(...i),i=await n();let a=r.map(e=>l(e).catch(()=>[]));return H(await Promise.all(a))}}catch{return[]}return[]},u=async e=>{if(s.value)return;o.value=!1,e.stopPropagation();let t=Array.from(e.dataTransfer.files),n=e.dataTransfer.items||[];if(r.directory){let e=Array.from(n).map(e=>e?.webkitGetAsEntry?.()).filter(e=>e);i(`file`,H(await Promise.all(e.map(l))));return}t.forEach((e,t)=>{let r=n[t]?.webkitGetAsEntry?.();r&&(e.isDirectory=r.isDirectory)}),i(`file`,t)},d=()=>{s.value||(o.value=!0)},f=e=>{e.currentTarget.contains(e.relatedTarget)||(o.value=!1)};return(e,n)=>(v(),t(`div`,{class:E([A(a).b(`dragger`),A(a).is(`dragover`,o.value)]),onDrop:V(u,[`prevent`]),onDragover:V(d,[`prevent`]),onDragleave:V(f,[`prevent`])},[L(e.$slots,`default`)],34))}}),Ve=[`tabindex`,`aria-disabled`,`onKeydown`],He=[`name`,`disabled`,`multiple`,`accept`,`webkitdirectory`],Ue=_({name:`ElUploadContent`,inheritAttrs:!1,__name:`upload-content`,props:Ae,setup(e,{expose:n}){let r=e,a=p(`upload`),o=y(),s=S({}),c=S(),l=e=>{if(e.length===0)return;let{autoUpload:t,limit:n,fileList:i,multiple:a,onStart:o,onExceed:s}=r;if(n&&i.length+e.length>n){s(e,i);return}a||(e=e.slice(0,1));for(let n of e){let e=n;e.uid=Y(),o(e),t&&u(e)}},u=async e=>{if(c.value.value=``,!r.beforeUpload)return f(e);let t,n={};try{let i=r.data,a=r.beforeUpload(e);n=w(r.data)?W(r.data):r.data,t=await a,w(r.data)&&de(i,n)&&(n=W(r.data))}catch{t=!1}if(t===!1){r.onRemove(e);return}let i=e;t instanceof Blob&&(i=t instanceof File?t:new File([t],e.name,{type:e.type})),f(Object.assign(i,{uid:e.uid}),n)},d=async(e,t)=>pe(e)?e(t):e,f=async(e,t)=>{let{headers:n,data:i,method:a,withCredentials:o,name:c,action:l,onProgress:u,onSuccess:f,onError:p,httpRequest:m}=r;try{t=await d(t??i,e)}catch{r.onRemove(e);return}let{uid:h}=e,g={headers:n||{},withCredentials:o,file:e,data:t,method:a,filename:c,action:l,onProgress:t=>{u(t,e)},onSuccess:t=>{f(t,e),delete s.value[h]},onError:t=>{p(t,e),delete s.value[h]}},_=m(g);s.value[h]=_,_ instanceof Promise&&_.then(g.onSuccess,g.onError)},m=e=>{let t=e.target.files;t&&l(Array.from(t))},h=()=>{o.value||(c.value.value=``,c.value.click())},_=()=>{h()};return n({abort:e=>{le(s.value).filter(e?([t])=>String(e.uid)===t:()=>!0).forEach(([e,t])=>{t instanceof XMLHttpRequest&&t.abort(),delete s.value[e]})},upload:u}),(n,r)=>(v(),t(`div`,{class:E([A(a).b(),A(a).m(e.listType),A(a).is(`drag`,e.drag),A(a).is(`disabled`,A(o))]),tabindex:A(o)?void 0:0,"aria-disabled":A(o),role:`button`,onClick:h,onKeydown:z(V(_,[`self`]),[`enter`,`space`])},[e.drag?(v(),g(Be,{key:0,disabled:A(o),directory:e.directory,onFile:l},{default:R(()=>[L(n.$slots,`default`)]),_:3},8,[`disabled`,`directory`])):L(n.$slots,`default`,{key:1}),i(`input`,{ref_key:`inputRef`,ref:c,class:E(A(a).e(`input`)),name:e.name,disabled:A(o),multiple:e.multiple,accept:e.accept,webkitdirectory:e.directory||void 0,type:`file`,onChange:m,onClick:r[0]||=V(()=>{},[`stop`])},null,42,He)],42,Ve))}}),We=`ElUpload`,Ge=e=>{e.url?.startsWith(`blob:`)&&URL.revokeObjectURL(e.url)},Ke=(e,t)=>{let n=_e(e,`fileList`,void 0,{passive:!0}),r=e=>n.value.find(t=>t.uid===e.uid);function i(e){t.value?.abort(e)}function a(e=[`ready`,`uploading`,`success`,`fail`]){n.value=n.value.filter(t=>!e.includes(t.status))}function o(e){n.value=n.value.filter(t=>t.uid!==e.uid)}let s=t=>{c(()=>e.onChange(t,n.value))},l=(t,i)=>{let a=r(i);a&&(console.error(t),a.status=`fail`,o(a),e.onError(t,a,n.value),s(a))},u=(t,i)=>{let a=r(i);a&&(e.onProgress(t,a,n.value),a.status=`uploading`,a.percentage=Math.round(t.percent))},d=(t,i)=>{let a=r(i);a&&(a.status=`success`,a.response=t,e.onSuccess(t,a,n.value),s(a))},f=t=>{ee(t.uid)&&(t.uid=Y());let r={name:t.name,percentage:0,status:`ready`,size:t.size,raw:t,uid:t.uid};if(e.listType===`picture-card`||e.listType===`picture`)try{r.url=URL.createObjectURL(t)}catch(t){D(We,t.message),e.onError(t,r,n.value)}n.value=[...n.value,r],s(r)},p=async t=>{let a=t instanceof File?r(t):t;a||F(We,`file to be removed not found`);let s=t=>{i(t),o(t),e.onRemove(t,n.value),Ge(t)};e.beforeRemove?await e.beforeRemove(a,n.value)!==!1&&s(a):s(a)};function m(){n.value.filter(({status:e})=>e===`ready`).forEach(({raw:e})=>e&&t.value?.upload(e))}return O(()=>e.listType,t=>{t!==`picture-card`&&t!==`picture`||(n.value=n.value.map(t=>{let{raw:r,url:i}=t;if(!i&&r)try{t.url=URL.createObjectURL(r)}catch(r){e.onError(r,t,n.value)}return t}))}),O(n,e=>{for(let t of e)t.uid||=Y(),t.status||=`success`},{immediate:!0,deep:!0}),{uploadFiles:n,abort:i,clearFiles:a,handleError:l,handleProgress:u,handleStart:f,handleSuccess:d,handleRemove:p,submit:m,revokeFileObjectURL:Ge}},qe=te(_({name:`ElUpload`,__name:`upload`,props:De,setup(n,{expose:i}){let s=n,c=y(),l=S(),{abort:u,submit:d,clearFiles:f,uploadFiles:p,handleStart:h,handleError:_,handleRemove:b,handleSuccess:x,handleProgress:C,revokeFileObjectURL:w}=Ke(s,l),E=a(()=>s.listType===`picture-card`),D=a(()=>({...s,fileList:p.value,onStart:h,onProgress:C,onSuccess:x,onError:_,onRemove:b}));return o(()=>{p.value.forEach(w)}),e(Q,{accept:r(s,`accept`)}),i({abort:u,submit:d,clearFiles:f,handleStart:h,handleRemove:b}),(e,r)=>(v(),t(`div`,null,[E.value&&n.showFileList?(v(),g($,{key:0,disabled:A(c),"list-type":n.listType,files:A(p),crossorigin:n.crossorigin,"handle-preview":n.onPreview,onRemove:A(b)},j({append:R(()=>[m(Ue,T({ref_key:`uploadRef`,ref:l},D.value),{default:R(()=>[e.$slots.trigger?L(e.$slots,`trigger`,{key:0}):N(`v-if`,!0),!e.$slots.trigger&&e.$slots.default?L(e.$slots,`default`,{key:1}):N(`v-if`,!0)]),_:3},16)]),_:2},[e.$slots.file?{name:`default`,fn:R(({file:t,index:n})=>[L(e.$slots,`file`,{file:t,index:n})]),key:`0`}:void 0]),1032,[`disabled`,`list-type`,`files`,`crossorigin`,`handle-preview`,`onRemove`])):N(`v-if`,!0),!E.value||E.value&&!n.showFileList?(v(),g(Ue,T({key:1,ref_key:`uploadRef`,ref:l},D.value),{default:R(()=>[e.$slots.trigger?L(e.$slots,`trigger`,{key:0}):N(`v-if`,!0),!e.$slots.trigger&&e.$slots.default?L(e.$slots,`default`,{key:1}):N(`v-if`,!0)]),_:3},16)):N(`v-if`,!0),e.$slots.trigger?L(e.$slots,`default`,{key:2}):N(`v-if`,!0),L(e.$slots,`tip`),!E.value&&n.showFileList?(v(),g($,{key:3,disabled:A(c),"list-type":n.listType,files:A(p),crossorigin:n.crossorigin,"handle-preview":n.onPreview,onRemove:A(b)},j({_:2},[e.$slots.file?{name:`default`,fn:R(({file:t,index:n})=>[L(e.$slots,`file`,{file:t,index:n})]),key:`0`}:void 0]),1032,[`disabled`,`list-type`,`files`,`crossorigin`,`handle-preview`,`onRemove`])):N(`v-if`,!0)]))}})),Je={class:`flex items-center gap-2`},Ye={class:`grow-1 flex flex-col gap-2 lt-sm:mx-1 sm:mx-2 lt-sm:mb-1 sm:mb-2 overflow-hidden mt-2`},Xe=_({name:`ViewSystemBackups`,__name:`view-system-backups`,setup(e){let r=ue(),{t:o}=x(),{isMDDevice:s}=be(),c=b(null),l=e=>c.value?.onUploadBackup(e)??Promise.resolve(),u=a(()=>[{label:o(`systemModule.breadcrumbs.system.system`),route:r.resolve({name:G.SYSTEM})},{label:o(`systemModule.breadcrumbs.systemBackups.list`),route:r.resolve({name:G.SYSTEM_BACKUPS})}]);return he({title:o(`systemModule.meta.systemBackups.list.title`)}),(e,r)=>(v(),t(B,null,[m(A(ye),{items:u.value},null,8,[`items`]),A(s)?N(``,!0):(v(),g(A(ge),{key:0,teleport:``},{icon:R(()=>[m(A(n),{icon:`mdi:backup-restore`,class:`w[20px] h[20px]`})]),title:R(()=>[f(I(A(o)(`systemModule.headings.systemBackups.list`)),1)]),subtitle:R(()=>[f(I(A(o)(`systemModule.subHeadings.systemBackups.list`)),1)]),_:1})),m(A(ve),{heading:A(o)(`systemModule.headings.systemBackups.list`),"sub-heading":A(o)(`systemModule.subHeadings.systemBackups.list`),icon:`mdi:backup-restore`},{extra:R(()=>[i(`div`,Je,[m(A(qe),{"auto-upload":!0,"show-file-list":!1,accept:`.tar.gz,.gz`,"http-request":l},{default:R(()=>[m(A(M),{plain:``},{icon:R(()=>[m(A(n),{icon:`mdi:upload`})]),default:R(()=>[f(` `+I(A(o)(`systemModule.backups.buttons.upload`)),1)]),_:1})]),_:1}),m(A(M),{type:`primary`,plain:``,onClick:r[0]||=e=>c.value?.openCreateDialog()},{icon:R(()=>[m(A(n),{icon:`mdi:plus`})]),default:R(()=>[f(` `+I(A(o)(`systemModule.backups.buttons.create`)),1)]),_:1})])]),_:1},8,[`heading`,`sub-heading`]),i(`div`,Ye,[m(A(xe),{ref_key:`backupsList`,ref:c},null,512)])],64))}});export{Xe as default};
1
+ import"./rolldown-runtime-QTnfLwEv.js";import{$r as e,Ar as t,D as n,Di as r,Dr as i,Er as a,Gr as o,H as s,Hr as c,Ki as l,Li as u,Mi as d,Mr as f,Mt as p,Nr as m,Nt as h,Or as g,Pr as _,Qr as v,R as y,Si as b,T as x,Ti as S,Ui as C,Vi as w,Vr as T,Wi as E,an as D,bn as ee,bt as te,ci as O,cn as k,ct as ne,dr as re,ei as ie,et as ae,it as oe,ji as A,jr as j,k as M,kr as N,ln as P,on as F,qi as I,st as se,ti as L,tt as ce,ui as R,un as le,vr as z,x as ue,xn as de,xr as B,yr as V,yt as fe,zi as pe,zr as me}from"./icon-with-child-CgZMNB3F.js";import{t as he}from"./vue-meta.esm-browser.min-C5z7o_np.js";import{Tr as ge,Vi as _e,Zi as H,h as ve,ni as U,vr as ye,yr as be}from"./common-D4Z2wgrj.js";import{r as W}from"./form-Wa6uIXea.js";import{n as xe,x as Se}from"./components-BBoFC7mM.js";import{i as G}from"./system.constants-BvSIFqdm.js";var Ce=`ElUpload`,we=class extends Error{constructor(e,t,n,r){super(e),this.name=`UploadAjaxError`,this.status=t,this.method=n,this.url=r}};function K(e,t,n){let r;return r=n.response?`${n.response.error||n.response}`:n.responseText?`${n.responseText}`:`fail to ${t.method} ${e} ${n.status}`,new we(r,n.status,t.method,e)}function Te(e){let t=e.responseText||e.response;if(!t)return t;try{return JSON.parse(t)}catch{return t}}var q=e=>{typeof XMLHttpRequest>`u`&&F(Ce,`XMLHttpRequest is undefined`);let t=new XMLHttpRequest,n=e.action;t.upload&&t.upload.addEventListener(`progress`,t=>{let n=t;n.percent=t.total>0?t.loaded/t.total*100:0,e.onProgress(n)});let r=new FormData;if(e.data)for(let[t,n]of Object.entries(e.data))u(n)?n.length===2&&n[0]instanceof Blob&&C(n[1])?r.append(t,n[0],n[1]):n.forEach(e=>{r.append(t,e)}):r.append(t,n);r.append(e.filename,e.file,e.file.name),t.addEventListener(`error`,()=>{e.onError(K(n,e,t))}),t.addEventListener(`load`,()=>{if(t.status<200||t.status>=300)return e.onError(K(n,e,t));e.onSuccess(Te(t))}),t.open(e.method,n,!0),e.withCredentials&&`withCredentials`in t&&(t.withCredentials=!0);let i=e.headers||{};if(i instanceof Headers)i.forEach((e,n)=>t.setRequestHeader(n,e));else for(let[e,n]of Object.entries(i))ee(n)||t.setRequestHeader(e,String(n));return t.send(r),t},J=[`text`,`picture`,`picture-card`],Ee=1,Y=()=>Date.now()+Ee++,X=k({action:{type:String,default:`#`},headers:{type:P(Object)},method:{type:String,default:`post`},data:{type:P([Object,Function,Promise]),default:()=>U({})},multiple:Boolean,name:{type:String,default:`file`},drag:Boolean,withCredentials:Boolean,showFileList:{type:Boolean,default:!0},accept:{type:String,default:``},fileList:{type:P(Array),default:()=>U([])},autoUpload:{type:Boolean,default:!0},listType:{type:String,values:J,default:`text`},httpRequest:{type:P(Function),default:q},disabled:{type:Boolean,default:void 0},limit:Number,directory:Boolean}),De=k({...X,beforeUpload:{type:P(Function),default:d},beforeRemove:{type:P(Function)},onRemove:{type:P(Function),default:d},onChange:{type:P(Function),default:d},onPreview:{type:P(Function),default:d},onSuccess:{type:P(Function),default:d},onProgress:{type:P(Function),default:d},onError:{type:P(Function),default:d},onExceed:{type:P(Function),default:d},crossorigin:{type:P(String)}}),Z={action:`#`,method:`post`,data:()=>U({}),name:`file`,showFileList:!0,accept:``,fileList:()=>U([]),autoUpload:!0,listType:`text`,httpRequest:q,disabled:void 0};({...Z});var Q=Symbol(`uploadContextKey`),Oe=k({files:{type:P(Array),default:()=>U([])},disabled:{type:Boolean,default:void 0},handlePreview:{type:P(Function),default:d},listType:{type:String,values:J,default:`text`},crossorigin:{type:P(String)}}),ke={remove:e=>!!e},Ae=k({...X,beforeUpload:{type:P(Function),default:d},onRemove:{type:P(Function),default:d},onStart:{type:P(Function),default:d},onSuccess:{type:P(Function),default:d},onProgress:{type:P(Function),default:d},onError:{type:P(Function),default:d},onExceed:{type:P(Function),default:d}});({...Z});var je=k({disabled:{type:Boolean,default:void 0},directory:Boolean}),Me={file:e=>u(e)},Ne=[`tabindex`,`aria-disabled`,`onKeydown`],Pe=[`src`,`crossorigin`],Fe=[`onClick`],Ie=[`title`],Le=[`onClick`],Re=[`onClick`],$=_({name:`ElUploadList`,__name:`upload-list`,props:Oe,emits:ke,setup(e,{emit:n}){let r=e,o=n,{t:c}=h(),u=p(`upload`),d=p(`icon`),f=p(`list`),_=y(),x=b(!1),S=a(()=>[u.b(`list`),u.bm(`list`,r.listType),u.is(`disabled`,_.value)]),C=e=>{o(`remove`,e)};return(n,r)=>(v(),g(re,{tag:`ul`,class:E(S.value),name:A(f).b()},{default:R(()=>[(v(!0),t(B,null,ie(e.files,(a,o)=>(v(),t(`li`,{key:a.uid||a.name,class:E([A(u).be(`list`,`item`),A(u).is(a.status),{focusing:x.value}]),tabindex:A(_)?void 0:0,"aria-disabled":A(_),role:`button`,onKeydown:z(e=>!A(_)&&C(a),[`delete`]),onFocus:r[0]||=e=>x.value=!0,onBlur:r[1]||=e=>x.value=!1,onClick:r[2]||=e=>x.value=!1},[L(n.$slots,`default`,{file:a,index:o},()=>[e.listType===`picture`||a.status!==`uploading`&&e.listType===`picture-card`?(v(),t(`img`,{key:0,class:E(A(u).be(`list`,`item-thumbnail`)),src:a.url,crossorigin:e.crossorigin,alt:``},null,10,Pe)):N(`v-if`,!0),a.status===`uploading`||e.listType!==`picture-card`?(v(),t(`div`,{key:1,class:E(A(u).be(`list`,`item-info`))},[i(`a`,{class:E(A(u).be(`list`,`item-name`)),onClick:V(t=>e.handlePreview(a),[`prevent`])},[m(A(s),{class:E(A(d).m(`document`))},{default:R(()=>[m(A(ne))]),_:1},8,[`class`]),i(`span`,{class:E(A(u).be(`list`,`item-file-name`)),title:a.name},I(a.name),11,Ie)],10,Fe),a.status===`uploading`?(v(),g(A(Se),{key:0,type:e.listType===`picture-card`?`circle`:`line`,"stroke-width":e.listType===`picture-card`?6:2,percentage:Number(a.percentage),style:l(e.listType===`picture-card`?``:`margin-top: 0.5rem`)},null,8,[`type`,`stroke-width`,`percentage`,`style`])):N(`v-if`,!0)],2)):N(`v-if`,!0),i(`label`,{class:E(A(u).be(`list`,`item-status-label`))},[e.listType===`text`?(v(),g(A(s),{key:0,class:E([A(d).m(`upload-success`),A(d).m(`circle-check`)])},{default:R(()=>[m(A(ce))]),_:1},8,[`class`])):[`picture-card`,`picture`].includes(e.listType)?(v(),g(A(s),{key:1,class:E([A(d).m(`upload-success`),A(d).m(`check`)])},{default:R(()=>[m(A(ae))]),_:1},8,[`class`])):N(`v-if`,!0)],2),A(_)?N(`v-if`,!0):(v(),g(A(s),{key:2,class:E(A(d).m(`close`)),"aria-label":A(c)(`el.upload.delete`),role:`button`,tabindex:`0`,onClick:e=>C(a),onKeydown:z(V(e=>C(a),[`prevent`]),[`enter`,`space`])},{default:R(()=>[m(A(oe))]),_:1},8,[`class`,`aria-label`,`onClick`,`onKeydown`])),A(_)?N(`v-if`,!0):(v(),t(`i`,{key:3,class:E(A(d).m(`close-tip`))},I(A(c)(`el.upload.deleteTip`)),3)),e.listType===`picture-card`?(v(),t(`span`,{key:4,class:E(A(u).be(`list`,`item-actions`))},[i(`span`,{class:E(A(u).be(`list`,`item-preview`)),onClick:t=>e.handlePreview(a)},[m(A(s),{class:E(A(d).m(`zoom-in`))},{default:R(()=>[m(A(fe))]),_:1},8,[`class`])],10,Le),A(_)?N(`v-if`,!0):(v(),t(`span`,{key:0,class:E(A(u).be(`list`,`item-delete`)),onClick:e=>C(a)},[m(A(s),{class:E(A(d).m(`delete`))},{default:R(()=>[m(A(se))]),_:1},8,[`class`])],10,Re))],2)):N(`v-if`,!0)])],42,Ne))),128)),L(n.$slots,`append`)]),_:3},8,[`class`,`name`]))}}),ze=`ElUploadDrag`,Be=_({name:ze,__name:`upload-dragger`,props:je,emits:Me,setup(e,{emit:n}){let r=e,i=n;me(Q)||F(ze,`usage: <el-upload><el-upload-dragger /></el-upload>`);let a=p(`upload`),o=b(!1),s=y(),c=e=>new Promise((t,n)=>e.file(t,n)),l=async e=>{try{if(e.isFile){let t=await c(e);return t.isDirectory=!1,[t]}if(e.isDirectory){let t=e.createReader(),n=()=>new Promise((e,n)=>t.readEntries(e,n)),r=[],i=await n();for(;i.length>0;)r.push(...i),i=await n();let a=r.map(e=>l(e).catch(()=>[]));return H(await Promise.all(a))}}catch{return[]}return[]},u=async e=>{if(s.value)return;o.value=!1,e.stopPropagation();let t=Array.from(e.dataTransfer.files),n=e.dataTransfer.items||[];if(r.directory){let e=Array.from(n).map(e=>e?.webkitGetAsEntry?.()).filter(e=>e);i(`file`,H(await Promise.all(e.map(l))));return}t.forEach((e,t)=>{let r=n[t]?.webkitGetAsEntry?.();r&&(e.isDirectory=r.isDirectory)}),i(`file`,t)},d=()=>{s.value||(o.value=!0)},f=e=>{e.currentTarget.contains(e.relatedTarget)||(o.value=!1)};return(e,n)=>(v(),t(`div`,{class:E([A(a).b(`dragger`),A(a).is(`dragover`,o.value)]),onDrop:V(u,[`prevent`]),onDragover:V(d,[`prevent`]),onDragleave:V(f,[`prevent`])},[L(e.$slots,`default`)],34))}}),Ve=[`tabindex`,`aria-disabled`,`onKeydown`],He=[`name`,`disabled`,`multiple`,`accept`,`webkitdirectory`],Ue=_({name:`ElUploadContent`,inheritAttrs:!1,__name:`upload-content`,props:Ae,setup(e,{expose:n}){let r=e,a=p(`upload`),o=y(),s=S({}),c=S(),l=e=>{if(e.length===0)return;let{autoUpload:t,limit:n,fileList:i,multiple:a,onStart:o,onExceed:s}=r;if(n&&i.length+e.length>n){s(e,i);return}a||(e=e.slice(0,1));for(let n of e){let e=n;e.uid=Y(),o(e),t&&u(e)}},u=async e=>{if(c.value.value=``,!r.beforeUpload)return f(e);let t,n={};try{let i=r.data,a=r.beforeUpload(e);n=w(r.data)?W(r.data):r.data,t=await a,w(r.data)&&de(i,n)&&(n=W(r.data))}catch{t=!1}if(t===!1){r.onRemove(e);return}let i=e;t instanceof Blob&&(i=t instanceof File?t:new File([t],e.name,{type:e.type})),f(Object.assign(i,{uid:e.uid}),n)},d=async(e,t)=>pe(e)?e(t):e,f=async(e,t)=>{let{headers:n,data:i,method:a,withCredentials:o,name:c,action:l,onProgress:u,onSuccess:f,onError:p,httpRequest:m}=r;try{t=await d(t??i,e)}catch{r.onRemove(e);return}let{uid:h}=e,g={headers:n||{},withCredentials:o,file:e,data:t,method:a,filename:c,action:l,onProgress:t=>{u(t,e)},onSuccess:t=>{f(t,e),delete s.value[h]},onError:t=>{p(t,e),delete s.value[h]}},_=m(g);s.value[h]=_,_ instanceof Promise&&_.then(g.onSuccess,g.onError)},m=e=>{let t=e.target.files;t&&l(Array.from(t))},h=()=>{o.value||(c.value.value=``,c.value.click())},_=()=>{h()};return n({abort:e=>{le(s.value).filter(e?([t])=>String(e.uid)===t:()=>!0).forEach(([e,t])=>{t instanceof XMLHttpRequest&&t.abort(),delete s.value[e]})},upload:u}),(n,r)=>(v(),t(`div`,{class:E([A(a).b(),A(a).m(e.listType),A(a).is(`drag`,e.drag),A(a).is(`disabled`,A(o))]),tabindex:A(o)?void 0:0,"aria-disabled":A(o),role:`button`,onClick:h,onKeydown:z(V(_,[`self`]),[`enter`,`space`])},[e.drag?(v(),g(Be,{key:0,disabled:A(o),directory:e.directory,onFile:l},{default:R(()=>[L(n.$slots,`default`)]),_:3},8,[`disabled`,`directory`])):L(n.$slots,`default`,{key:1}),i(`input`,{ref_key:`inputRef`,ref:c,class:E(A(a).e(`input`)),name:e.name,disabled:A(o),multiple:e.multiple,accept:e.accept,webkitdirectory:e.directory||void 0,type:`file`,onChange:m,onClick:r[0]||=V(()=>{},[`stop`])},null,42,He)],42,Ve))}}),We=`ElUpload`,Ge=e=>{e.url?.startsWith(`blob:`)&&URL.revokeObjectURL(e.url)},Ke=(e,t)=>{let n=_e(e,`fileList`,void 0,{passive:!0}),r=e=>n.value.find(t=>t.uid===e.uid);function i(e){t.value?.abort(e)}function a(e=[`ready`,`uploading`,`success`,`fail`]){n.value=n.value.filter(t=>!e.includes(t.status))}function o(e){n.value=n.value.filter(t=>t.uid!==e.uid)}let s=t=>{c(()=>e.onChange(t,n.value))},l=(t,i)=>{let a=r(i);a&&(console.error(t),a.status=`fail`,o(a),e.onError(t,a,n.value),s(a))},u=(t,i)=>{let a=r(i);a&&(e.onProgress(t,a,n.value),a.status=`uploading`,a.percentage=Math.round(t.percent))},d=(t,i)=>{let a=r(i);a&&(a.status=`success`,a.response=t,e.onSuccess(t,a,n.value),s(a))},f=t=>{ee(t.uid)&&(t.uid=Y());let r={name:t.name,percentage:0,status:`ready`,size:t.size,raw:t,uid:t.uid};if(e.listType===`picture-card`||e.listType===`picture`)try{r.url=URL.createObjectURL(t)}catch(t){D(We,t.message),e.onError(t,r,n.value)}n.value=[...n.value,r],s(r)},p=async t=>{let a=t instanceof File?r(t):t;a||F(We,`file to be removed not found`);let s=t=>{i(t),o(t),e.onRemove(t,n.value),Ge(t)};e.beforeRemove?await e.beforeRemove(a,n.value)!==!1&&s(a):s(a)};function m(){n.value.filter(({status:e})=>e===`ready`).forEach(({raw:e})=>e&&t.value?.upload(e))}return O(()=>e.listType,t=>{t!==`picture-card`&&t!==`picture`||(n.value=n.value.map(t=>{let{raw:r,url:i}=t;if(!i&&r)try{t.url=URL.createObjectURL(r)}catch(r){e.onError(r,t,n.value)}return t}))}),O(n,e=>{for(let t of e)t.uid||=Y(),t.status||=`success`},{immediate:!0,deep:!0}),{uploadFiles:n,abort:i,clearFiles:a,handleError:l,handleProgress:u,handleStart:f,handleSuccess:d,handleRemove:p,submit:m,revokeFileObjectURL:Ge}},qe=te(_({name:`ElUpload`,__name:`upload`,props:De,setup(n,{expose:i}){let s=n,c=y(),l=S(),{abort:u,submit:d,clearFiles:f,uploadFiles:p,handleStart:h,handleError:_,handleRemove:b,handleSuccess:x,handleProgress:C,revokeFileObjectURL:w}=Ke(s,l),E=a(()=>s.listType===`picture-card`),D=a(()=>({...s,fileList:p.value,onStart:h,onProgress:C,onSuccess:x,onError:_,onRemove:b}));return o(()=>{p.value.forEach(w)}),e(Q,{accept:r(s,`accept`)}),i({abort:u,submit:d,clearFiles:f,handleStart:h,handleRemove:b}),(e,r)=>(v(),t(`div`,null,[E.value&&n.showFileList?(v(),g($,{key:0,disabled:A(c),"list-type":n.listType,files:A(p),crossorigin:n.crossorigin,"handle-preview":n.onPreview,onRemove:A(b)},j({append:R(()=>[m(Ue,T({ref_key:`uploadRef`,ref:l},D.value),{default:R(()=>[e.$slots.trigger?L(e.$slots,`trigger`,{key:0}):N(`v-if`,!0),!e.$slots.trigger&&e.$slots.default?L(e.$slots,`default`,{key:1}):N(`v-if`,!0)]),_:3},16)]),_:2},[e.$slots.file?{name:`default`,fn:R(({file:t,index:n})=>[L(e.$slots,`file`,{file:t,index:n})]),key:`0`}:void 0]),1032,[`disabled`,`list-type`,`files`,`crossorigin`,`handle-preview`,`onRemove`])):N(`v-if`,!0),!E.value||E.value&&!n.showFileList?(v(),g(Ue,T({key:1,ref_key:`uploadRef`,ref:l},D.value),{default:R(()=>[e.$slots.trigger?L(e.$slots,`trigger`,{key:0}):N(`v-if`,!0),!e.$slots.trigger&&e.$slots.default?L(e.$slots,`default`,{key:1}):N(`v-if`,!0)]),_:3},16)):N(`v-if`,!0),e.$slots.trigger?L(e.$slots,`default`,{key:2}):N(`v-if`,!0),L(e.$slots,`tip`),!E.value&&n.showFileList?(v(),g($,{key:3,disabled:A(c),"list-type":n.listType,files:A(p),crossorigin:n.crossorigin,"handle-preview":n.onPreview,onRemove:A(b)},j({_:2},[e.$slots.file?{name:`default`,fn:R(({file:t,index:n})=>[L(e.$slots,`file`,{file:t,index:n})]),key:`0`}:void 0]),1032,[`disabled`,`list-type`,`files`,`crossorigin`,`handle-preview`,`onRemove`])):N(`v-if`,!0)]))}})),Je={class:`flex items-center gap-2`},Ye={class:`grow-1 flex flex-col gap-2 lt-sm:mx-1 sm:mx-2 lt-sm:mb-1 sm:mb-2 overflow-hidden mt-2`},Xe=_({name:`ViewSystemBackups`,__name:`view-system-backups`,setup(e){let r=ue(),{t:o}=x(),{isMDDevice:s}=be(),c=b(null),l=e=>c.value?.onUploadBackup(e)??Promise.resolve(),u=a(()=>[{label:o(`systemModule.breadcrumbs.system.system`),route:r.resolve({name:G.SYSTEM})},{label:o(`systemModule.breadcrumbs.systemBackups.list`),route:r.resolve({name:G.SYSTEM_BACKUPS})}]);return he({title:o(`systemModule.meta.systemBackups.list.title`)}),(e,r)=>(v(),t(B,null,[m(A(ye),{items:u.value},null,8,[`items`]),A(s)?N(``,!0):(v(),g(A(ge),{key:0,teleport:``},{icon:R(()=>[m(A(n),{icon:`mdi:backup-restore`,class:`w[20px] h[20px]`})]),title:R(()=>[f(I(A(o)(`systemModule.headings.systemBackups.list`)),1)]),subtitle:R(()=>[f(I(A(o)(`systemModule.subHeadings.systemBackups.list`)),1)]),_:1})),m(A(ve),{heading:A(o)(`systemModule.headings.systemBackups.list`),"sub-heading":A(o)(`systemModule.subHeadings.systemBackups.list`),icon:`mdi:backup-restore`},{extra:R(()=>[i(`div`,Je,[m(A(qe),{"auto-upload":!0,"show-file-list":!1,accept:`.tar.gz,.gz`,"http-request":l},{default:R(()=>[m(A(M),{plain:``},{icon:R(()=>[m(A(n),{icon:`mdi:upload`})]),default:R(()=>[f(` `+I(A(o)(`systemModule.backups.buttons.upload`)),1)]),_:1})]),_:1}),m(A(M),{type:`primary`,plain:``,onClick:r[0]||=e=>c.value?.openCreateDialog()},{icon:R(()=>[m(A(n),{icon:`mdi:plus`})]),default:R(()=>[f(` `+I(A(o)(`systemModule.backups.buttons.create`)),1)]),_:1})])]),_:1},8,[`heading`,`sub-heading`]),i(`div`,Ye,[m(A(xe),{ref_key:`backupsList`,ref:c},null,512)])],64))}});export{Xe as default};
@@ -1 +1 @@
1
- import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,D as t,Dr as n,Er as r,Mr as i,Nr as a,Or as o,Pr as s,Qr as c,Si as l,T as u,Wr as d,ci as f,di as p,ji as m,k as h,kr as g,qi as _,ui as v,x as y,xr as b}from"./icon-with-child-CgZMNB3F.js";import{t as x}from"./vue-meta.esm-browser.min-C5z7o_np.js";import{Tr as S,h as C,vr as w,yr as T}from"./common-D4Z2wgrj.js";import{t as E}from"./dialog-4clb5GeY.js";import{h as D,i as O,l as k,o as A,r as j}from"./components-BrlrYtBy.js";import{t as M}from"./directive-D42ORGRu.js";import{i as N}from"./system.constants-BvSIFqdm.js";import{n as P}from"./system.exceptions-BOq4IhGI.js";var F={class:`flex items-center`},I=[`element-loading-text`],L=s({name:`ViewSystemInfo`,__name:`view-system-info`,setup(s){let L=y(),{t:R}=u(),{isMDDevice:z}=T(),{systemInfo:B,fetchSystemInfo:V,isLoading:H}=k(),{throttleStatus:U,fetchThrottleStatus:W,isLoading:G}=A(),K=l(!1),q=l(!1),J=r(()=>[{label:R(`systemModule.breadcrumbs.system.system`),route:L.resolve({name:N.SYSTEM})},{label:R(`systemModule.breadcrumbs.system.systemInfo`),route:L.resolve({name:N.SYSTEM_INFO})}]),Y=()=>{K.value=!0},X=()=>{q.value=!0};return d(async()=>{V().catch(e=>{throw new P(`Something went wrong`,e)}),W().catch(e=>{throw new P(`Something went wrong`,e)})}),f(()=>H.value,e=>{if(!e&&B.value===null)throw new P(`Something went wrong`)}),x({title:R(`systemModule.meta.system.systemInfo.title`)}),(r,s)=>(c(),e(b,null,[a(m(w),{items:J.value},null,8,[`items`]),m(z)?g(``,!0):(c(),o(m(S),{key:0,teleport:``},{icon:v(()=>[a(m(t),{icon:`mdi:hammer`,class:`w[20px] h[20px]`})]),title:v(()=>[i(_(m(R)(`systemModule.headings.system.system`)),1)]),subtitle:v(()=>[i(_(m(R)(`systemModule.subHeadings.system`)),1)]),_:1})),a(m(C),{heading:m(R)(`systemModule.headings.system.system`),"sub-heading":m(R)(`systemModule.subHeadings.system`),icon:`mdi:hammer`},{extra:v(()=>[n(`div`,F,[a(m(h),{plain:``,class:`px-4! ml-2!`,onClick:Y},{icon:v(()=>[a(m(t),{icon:`mdi:about`})]),default:v(()=>[i(` `+_(m(R)(`systemModule.buttons.about.title`)),1)]),_:1}),a(m(h),{type:`danger`,plain:``,class:`px-4! ml-2!`,onClick:X},{icon:v(()=>[a(m(t),{icon:`mdi:volume-control`})]),default:v(()=>[i(` `+_(m(R)(`systemModule.buttons.manage.title`)),1)]),_:1})])]),_:1},8,[`heading`,`sub-heading`]),p((c(),e(`div`,{"element-loading-text":m(R)(`systemModule.texts.system.loadingSystemInfo`)},[a(m(j),{"system-info":m(B),"throttle-status":m(U)},null,8,[`system-info`,`throttle-status`])],8,I)),[[m(M),m(H)||m(G)||m(B)===null]]),a(m(E),{modelValue:K.value,"onUpdate:modelValue":s[1]||=e=>K.value=e,title:m(R)(`systemModule.headings.system.about`)},{footer:v(()=>[a(m(h),{link:``,onClick:s[0]||=e=>K.value=!1},{default:v(()=>[i(_(m(R)(`usersModule.buttons.close.title`)),1)]),_:1})]),default:v(()=>[a(m(D))]),_:1},8,[`modelValue`,`title`]),a(m(E),{modelValue:q.value,"onUpdate:modelValue":s[4]||=e=>q.value=e,title:m(R)(`systemModule.headings.manage.manageSystem`)},{footer:v(()=>[a(m(h),{link:``,onClick:s[3]||=e=>q.value=!1},{default:v(()=>[i(_(m(R)(`usersModule.buttons.close.title`)),1)]),_:1})]),default:v(()=>[a(m(O),{onClose:s[2]||=e=>q.value=!1})]),_:1},8,[`modelValue`,`title`])],64))}});export{L as default};
1
+ import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,D as t,Dr as n,Er as r,Mr as i,Nr as a,Or as o,Pr as s,Qr as c,Si as l,T as u,Wr as d,ci as f,di as p,ji as m,k as h,kr as g,qi as _,ui as v,x as y,xr as b}from"./icon-with-child-CgZMNB3F.js";import{t as x}from"./vue-meta.esm-browser.min-C5z7o_np.js";import{Tr as S,h as C,vr as w,yr as T}from"./common-D4Z2wgrj.js";import{t as E}from"./dialog-4clb5GeY.js";import{h as D,i as O,l as k,o as A,r as j}from"./components-BBoFC7mM.js";import{t as M}from"./directive-D42ORGRu.js";import{i as N}from"./system.constants-BvSIFqdm.js";import{n as P}from"./system.exceptions-BOq4IhGI.js";var F={class:`flex items-center`},I=[`element-loading-text`],L=s({name:`ViewSystemInfo`,__name:`view-system-info`,setup(s){let L=y(),{t:R}=u(),{isMDDevice:z}=T(),{systemInfo:B,fetchSystemInfo:V,isLoading:H}=k(),{throttleStatus:U,fetchThrottleStatus:W,isLoading:G}=A(),K=l(!1),q=l(!1),J=r(()=>[{label:R(`systemModule.breadcrumbs.system.system`),route:L.resolve({name:N.SYSTEM})},{label:R(`systemModule.breadcrumbs.system.systemInfo`),route:L.resolve({name:N.SYSTEM_INFO})}]),Y=()=>{K.value=!0},X=()=>{q.value=!0};return d(async()=>{V().catch(e=>{throw new P(`Something went wrong`,e)}),W().catch(e=>{throw new P(`Something went wrong`,e)})}),f(()=>H.value,e=>{if(!e&&B.value===null)throw new P(`Something went wrong`)}),x({title:R(`systemModule.meta.system.systemInfo.title`)}),(r,s)=>(c(),e(b,null,[a(m(w),{items:J.value},null,8,[`items`]),m(z)?g(``,!0):(c(),o(m(S),{key:0,teleport:``},{icon:v(()=>[a(m(t),{icon:`mdi:hammer`,class:`w[20px] h[20px]`})]),title:v(()=>[i(_(m(R)(`systemModule.headings.system.system`)),1)]),subtitle:v(()=>[i(_(m(R)(`systemModule.subHeadings.system`)),1)]),_:1})),a(m(C),{heading:m(R)(`systemModule.headings.system.system`),"sub-heading":m(R)(`systemModule.subHeadings.system`),icon:`mdi:hammer`},{extra:v(()=>[n(`div`,F,[a(m(h),{plain:``,class:`px-4! ml-2!`,onClick:Y},{icon:v(()=>[a(m(t),{icon:`mdi:about`})]),default:v(()=>[i(` `+_(m(R)(`systemModule.buttons.about.title`)),1)]),_:1}),a(m(h),{type:`danger`,plain:``,class:`px-4! ml-2!`,onClick:X},{icon:v(()=>[a(m(t),{icon:`mdi:volume-control`})]),default:v(()=>[i(` `+_(m(R)(`systemModule.buttons.manage.title`)),1)]),_:1})])]),_:1},8,[`heading`,`sub-heading`]),p((c(),e(`div`,{"element-loading-text":m(R)(`systemModule.texts.system.loadingSystemInfo`)},[a(m(j),{"system-info":m(B),"throttle-status":m(U)},null,8,[`system-info`,`throttle-status`])],8,I)),[[m(M),m(H)||m(G)||m(B)===null]]),a(m(E),{modelValue:K.value,"onUpdate:modelValue":s[1]||=e=>K.value=e,title:m(R)(`systemModule.headings.system.about`)},{footer:v(()=>[a(m(h),{link:``,onClick:s[0]||=e=>K.value=!1},{default:v(()=>[i(_(m(R)(`usersModule.buttons.close.title`)),1)]),_:1})]),default:v(()=>[a(m(D))]),_:1},8,[`modelValue`,`title`]),a(m(E),{modelValue:q.value,"onUpdate:modelValue":s[4]||=e=>q.value=e,title:m(R)(`systemModule.headings.manage.manageSystem`)},{footer:v(()=>[a(m(h),{link:``,onClick:s[3]||=e=>q.value=!1},{default:v(()=>[i(_(m(R)(`usersModule.buttons.close.title`)),1)]),_:1})]),default:v(()=>[a(m(O),{onClose:s[2]||=e=>q.value=!1})]),_:1},8,[`modelValue`,`title`])],64))}});export{L as default};
@@ -1 +1 @@
1
- import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,D as t,Er as n,H as r,Mr as i,Nr as a,Or as o,Pr as s,Qr as c,Si as l,T as u,Yr as d,ci as f,di as p,ji as m,kr as h,qi as g,ui as _,x as v,xr as y}from"./icon-with-child-CgZMNB3F.js";import{t as b}from"./vue-meta.esm-browser.min-C5z7o_np.js";import{Dr as x,Er as S,Qr as C,Tr as w,vr as T,yr as E}from"./common-D4Z2wgrj.js";import{c as D,g as O}from"./components-BrlrYtBy.js";import{t as k}from"./directive-D42ORGRu.js";import{i as A}from"./system.constants-BvSIFqdm.js";import{n as j}from"./system.exceptions-BOq4IhGI.js";var M=[`element-loading-text`],N=s({name:`ViewSystemLogDetail`,__name:`view-system-log-detail`,props:{id:{}},setup(s){let N=s,P=v(),{t:F}=u(),{isMDDevice:I,isLGDevice:L}=E(),{systemLog:R,isLoading:z}=D({id:N.id}),B=l(!1),V=n(()=>[{label:F(`systemModule.breadcrumbs.system.system`),route:P.resolve({name:A.SYSTEM})},{label:F(`systemModule.breadcrumbs.systemLogs.list`),route:P.resolve({name:A.SYSTEM_LOGS})},{label:F(`systemModule.breadcrumbs.systemLogs.detail`),route:P.resolve({name:A.SYSTEM_LOG_DETAIL,params:{id:N.id}})}]),H=()=>{L.value?P.replace({name:A.SYSTEM_LOGS}):P.push({name:A.SYSTEM_LOGS})};return d(()=>{B.value=!0}),f(()=>z.value,e=>{if(!e&&R.value===null)throw new j(`System log not found`)}),f(()=>R.value,e=>{if(!z.value&&e===null)throw new j(`System log not found`)}),b({title:F(`systemModule.meta.systemLogs.detail.title`)}),(n,s)=>(c(),e(y,null,[a(m(w),{teleport:``},{icon:_(()=>[a(m(t),{icon:`mdi:note-text-outline`,class:`w[20px] h[20px]`})]),title:_(()=>[i(g(m(F)(`systemModule.headings.systemLogs.detail`)),1)]),subtitle:_(()=>[i(g(m(F)(`systemModule.subHeadings.systemLogs.detail`)),1)]),_:1}),m(I)?h(``,!0):(c(),o(m(S),{key:0,align:m(x).LEFT,teleport:``,small:``,onClick:H},{icon:_(()=>[a(m(r),{size:24},{default:_(()=>[a(m(t),{icon:`mdi:chevron-left`})]),_:1})]),_:1},8,[`align`])),a(m(T),{items:V.value},null,8,[`items`]),p((c(),e(`div`,{"element-loading-text":m(F)(`systemModule.texts.systemLogs.loadingLogs`),class:`flex flex-col overflow-hidden h-full`},[m(R)===null?h(``,!0):(c(),o(m(C),{key:0,class:`grow-1 p-2 md:px-4`},{default:_(()=>[a(m(O),{"system-log":m(R)},null,8,[`system-log`])]),_:1}))],8,M)),[[m(k),m(z)||m(R)===null]])],64))}});export{N as default};
1
+ import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,D as t,Er as n,H as r,Mr as i,Nr as a,Or as o,Pr as s,Qr as c,Si as l,T as u,Yr as d,ci as f,di as p,ji as m,kr as h,qi as g,ui as _,x as v,xr as y}from"./icon-with-child-CgZMNB3F.js";import{t as b}from"./vue-meta.esm-browser.min-C5z7o_np.js";import{Dr as x,Er as S,Qr as C,Tr as w,vr as T,yr as E}from"./common-D4Z2wgrj.js";import{c as D,g as O}from"./components-BBoFC7mM.js";import{t as k}from"./directive-D42ORGRu.js";import{i as A}from"./system.constants-BvSIFqdm.js";import{n as j}from"./system.exceptions-BOq4IhGI.js";var M=[`element-loading-text`],N=s({name:`ViewSystemLogDetail`,__name:`view-system-log-detail`,props:{id:{}},setup(s){let N=s,P=v(),{t:F}=u(),{isMDDevice:I,isLGDevice:L}=E(),{systemLog:R,isLoading:z}=D({id:N.id}),B=l(!1),V=n(()=>[{label:F(`systemModule.breadcrumbs.system.system`),route:P.resolve({name:A.SYSTEM})},{label:F(`systemModule.breadcrumbs.systemLogs.list`),route:P.resolve({name:A.SYSTEM_LOGS})},{label:F(`systemModule.breadcrumbs.systemLogs.detail`),route:P.resolve({name:A.SYSTEM_LOG_DETAIL,params:{id:N.id}})}]),H=()=>{L.value?P.replace({name:A.SYSTEM_LOGS}):P.push({name:A.SYSTEM_LOGS})};return d(()=>{B.value=!0}),f(()=>z.value,e=>{if(!e&&R.value===null)throw new j(`System log not found`)}),f(()=>R.value,e=>{if(!z.value&&e===null)throw new j(`System log not found`)}),b({title:F(`systemModule.meta.systemLogs.detail.title`)}),(n,s)=>(c(),e(y,null,[a(m(w),{teleport:``},{icon:_(()=>[a(m(t),{icon:`mdi:note-text-outline`,class:`w[20px] h[20px]`})]),title:_(()=>[i(g(m(F)(`systemModule.headings.systemLogs.detail`)),1)]),subtitle:_(()=>[i(g(m(F)(`systemModule.subHeadings.systemLogs.detail`)),1)]),_:1}),m(I)?h(``,!0):(c(),o(m(S),{key:0,align:m(x).LEFT,teleport:``,small:``,onClick:H},{icon:_(()=>[a(m(r),{size:24},{default:_(()=>[a(m(t),{icon:`mdi:chevron-left`})]),_:1})]),_:1},8,[`align`])),a(m(T),{items:V.value},null,8,[`items`]),p((c(),e(`div`,{"element-loading-text":m(F)(`systemModule.texts.systemLogs.loadingLogs`),class:`flex flex-col overflow-hidden h-full`},[m(R)===null?h(``,!0):(c(),o(m(C),{key:0,class:`grow-1 p-2 md:px-4`},{default:_(()=>[a(m(O),{"system-log":m(R)},null,8,[`system-log`])]),_:1}))],8,M)),[[m(k),m(z)||m(R)===null]])],64))}});export{N as default};
@@ -1 +1 @@
1
- import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,D as t,Dr as n,Er as r,H as i,Mr as a,Nr as o,Or as s,Pr as c,Qr as l,Si as u,Sr as ee,T as te,Wr as d,Yr as f,_i as p,b as m,ci as h,ii as g,ji as _,kr as v,ni as y,qi as b,ui as x,x as ne,xr as S}from"./icon-with-child-CgZMNB3F.js";import{t as C}from"./vue-meta.esm-browser.min-C5z7o_np.js";import{Dr as w,Er as T,Or as E,Tr as D,g as re,h as ie,vr as ae,yr as O}from"./common-D4Z2wgrj.js";import{t as k}from"./drawer-Dnlv6Zc7.js";import{_ as A,s as j,v as M}from"./components-BrlrYtBy.js";import{i as N}from"./system.constants-BvSIFqdm.js";import{n as P}from"./system.exceptions-BOq4IhGI.js";var F={key:1,class:`grow-1 flex flex-col lt-sm:mx-1 sm:mx-2 lt-sm:mb-1 sm:mb-2 overflow-hidden`},I={class:`flex flex-col h-full`},L=c({name:`ViewSystemLogs`,__name:`view-system-logs`,props:{id:{}},setup(c){let L=c,R=m(),z=ne(),{t:B}=te(),{isMDDevice:V,isLGDevice:H}=O(),{fetchSystemLogs:U,loadMoreSystemLogs:oe,systemLogs:W,hasMore:G,filters:K,live:q,filtersActive:J,areLoading:Y,resetFilter:se,refreshSystemLogs:ce}=j(),le=u(!1),X=u(!1),Z=u(!1),ue=r(()=>R.name===N.SYSTEM_LOGS),de=r(()=>[{label:B(`systemModule.breadcrumbs.system.system`),route:z.resolve({name:N.SYSTEM})},{label:B(`systemModule.breadcrumbs.systemLogs.list`),route:z.resolve({name:N.SYSTEM_LOGS})}]),Q=e=>{Z.value?(X.value=!1,Z.value=!1,e?.()):(H.value?z.replace({name:N.SYSTEM_LOGS}):z.push({name:N.SYSTEM_LOGS}),e?.())},fe=e=>{H.value?z.replace({name:N.SYSTEM_LOG_DETAIL,params:{id:e}}):z.push({name:N.SYSTEM_LOG_DETAIL,params:{id:e}})},$=()=>{se()},pe=()=>{oe().catch(e=>{throw new P(`Something went wrong`,e)})},me=()=>{ce().catch(e=>{throw new P(`Something went wrong`,e)})},he=()=>{},ge=()=>{X.value=!0,Z.value=!0};return d(()=>{U().catch(e=>{throw new P(`Something went wrong`,e)}),X.value=R.matched.find(e=>e.name===N.SYSTEM_LOG_DETAIL)!==void 0}),f(()=>{le.value=!0}),h(()=>Y.value,e=>{if(!e&&W.value===null)throw new P(`Something went wrong`)}),h(()=>R.path,()=>{X.value=R.matched.find(e=>e.name===N.SYSTEM_LOG_DETAIL)!==void 0}),C({title:B(`systemModule.meta.systemLogs.list.title`)}),(r,c)=>{let u=y(`router-view`);return l(),e(S,null,[o(_(ae),{items:de.value},null,8,[`items`]),_(V)?v(``,!0):(l(),s(_(D),{key:0,teleport:``},{icon:x(()=>[o(_(t),{icon:`mdi:hammer`,class:`w[20px] h[20px]`})]),title:x(()=>[a(b(_(B)(`systemModule.headings.systemLogs.list`)),1)]),subtitle:x(()=>[a(b(_(B)(`systemModule.subHeadings.systemLogs.list`)),1)]),_:1})),o(_(ie),{heading:_(B)(`systemModule.headings.systemLogs.list`),"sub-heading":_(B)(`systemModule.subHeadings.systemLogs.list`),icon:`mdi:console`},null,8,[`heading`,`sub-heading`]),ue.value||_(H)?(l(),e(`div`,F,[o(_(M),{filters:_(K),"onUpdate:filters":c[0]||=e=>p(K)?K.value=e:null,live:_(q),"onUpdate:live":c[1]||=e=>p(q)?q.value=e:null,items:_(W),loading:_(Y),"filters-active":_(J),"has-more":_(G),onDetail:fe,onAdjustList:ge,onResetFilters:$,onLoadMore:pe,onRefresh:me,onClear:he},null,8,[`filters`,`live`,`items`,`loading`,`filters-active`,`has-more`])])):(l(),s(u,{key:L.id},{default:x(({Component:e})=>[(l(),s(g(e)))]),_:1})),_(H)?(l(),s(_(k),{key:3,modelValue:X.value,"onUpdate:modelValue":c[4]||=e=>X.value=e,"show-close":!1,size:Z.value?`300px`:`40%`,"with-header":!1,"before-close":Q},{default:x(()=>[n(`div`,I,[o(_(E),{"menu-button-hidden":``},{"button-right":x(()=>[o(_(T),{align:_(w).RIGHT,class:`mr-2`,onClick:c[2]||=()=>Q()},{icon:x(()=>[o(_(i),null,{default:x(()=>[o(_(t),{icon:`mdi:close`})]),_:1})]),_:1},8,[`align`])]),_:1}),X.value?(l(),e(S,{key:0},[Z.value?(l(),s(_(A),{key:0,filters:_(K),"onUpdate:filters":c[3]||=e=>p(K)?K.value=e:null,"filters-active":_(J),onResetFilters:$},null,8,[`filters`,`filters-active`])):(l(),s(_(re),{key:1},{icon:x(()=>[o(_(t),{icon:`mdi:console`})]),message:x(()=>[a(b(_(B)(`systemModule.messages.misc.requestError`)),1)]),default:x(()=>[(l(),s(ee,null,{default:x(()=>[(l(),s(u,{key:L.id},{default:x(({Component:e})=>[(l(),s(g(e)))]),_:1}))]),_:1}))]),_:1}))],64)):v(``,!0)])]),_:1},8,[`modelValue`,`size`])):v(``,!0)],64)}}});export{L as default};
1
+ import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,D as t,Dr as n,Er as r,H as i,Mr as a,Nr as o,Or as s,Pr as c,Qr as l,Si as u,Sr as ee,T as te,Wr as d,Yr as f,_i as p,b as m,ci as h,ii as g,ji as _,kr as v,ni as y,qi as b,ui as x,x as ne,xr as S}from"./icon-with-child-CgZMNB3F.js";import{t as C}from"./vue-meta.esm-browser.min-C5z7o_np.js";import{Dr as w,Er as T,Or as E,Tr as D,g as re,h as ie,vr as ae,yr as O}from"./common-D4Z2wgrj.js";import{t as k}from"./drawer-Dnlv6Zc7.js";import{_ as A,s as j,v as M}from"./components-BBoFC7mM.js";import{i as N}from"./system.constants-BvSIFqdm.js";import{n as P}from"./system.exceptions-BOq4IhGI.js";var F={key:1,class:`grow-1 flex flex-col lt-sm:mx-1 sm:mx-2 lt-sm:mb-1 sm:mb-2 overflow-hidden`},I={class:`flex flex-col h-full`},L=c({name:`ViewSystemLogs`,__name:`view-system-logs`,props:{id:{}},setup(c){let L=c,R=m(),z=ne(),{t:B}=te(),{isMDDevice:V,isLGDevice:H}=O(),{fetchSystemLogs:U,loadMoreSystemLogs:oe,systemLogs:W,hasMore:G,filters:K,live:q,filtersActive:J,areLoading:Y,resetFilter:se,refreshSystemLogs:ce}=j(),le=u(!1),X=u(!1),Z=u(!1),ue=r(()=>R.name===N.SYSTEM_LOGS),de=r(()=>[{label:B(`systemModule.breadcrumbs.system.system`),route:z.resolve({name:N.SYSTEM})},{label:B(`systemModule.breadcrumbs.systemLogs.list`),route:z.resolve({name:N.SYSTEM_LOGS})}]),Q=e=>{Z.value?(X.value=!1,Z.value=!1,e?.()):(H.value?z.replace({name:N.SYSTEM_LOGS}):z.push({name:N.SYSTEM_LOGS}),e?.())},fe=e=>{H.value?z.replace({name:N.SYSTEM_LOG_DETAIL,params:{id:e}}):z.push({name:N.SYSTEM_LOG_DETAIL,params:{id:e}})},$=()=>{se()},pe=()=>{oe().catch(e=>{throw new P(`Something went wrong`,e)})},me=()=>{ce().catch(e=>{throw new P(`Something went wrong`,e)})},he=()=>{},ge=()=>{X.value=!0,Z.value=!0};return d(()=>{U().catch(e=>{throw new P(`Something went wrong`,e)}),X.value=R.matched.find(e=>e.name===N.SYSTEM_LOG_DETAIL)!==void 0}),f(()=>{le.value=!0}),h(()=>Y.value,e=>{if(!e&&W.value===null)throw new P(`Something went wrong`)}),h(()=>R.path,()=>{X.value=R.matched.find(e=>e.name===N.SYSTEM_LOG_DETAIL)!==void 0}),C({title:B(`systemModule.meta.systemLogs.list.title`)}),(r,c)=>{let u=y(`router-view`);return l(),e(S,null,[o(_(ae),{items:de.value},null,8,[`items`]),_(V)?v(``,!0):(l(),s(_(D),{key:0,teleport:``},{icon:x(()=>[o(_(t),{icon:`mdi:hammer`,class:`w[20px] h[20px]`})]),title:x(()=>[a(b(_(B)(`systemModule.headings.systemLogs.list`)),1)]),subtitle:x(()=>[a(b(_(B)(`systemModule.subHeadings.systemLogs.list`)),1)]),_:1})),o(_(ie),{heading:_(B)(`systemModule.headings.systemLogs.list`),"sub-heading":_(B)(`systemModule.subHeadings.systemLogs.list`),icon:`mdi:console`},null,8,[`heading`,`sub-heading`]),ue.value||_(H)?(l(),e(`div`,F,[o(_(M),{filters:_(K),"onUpdate:filters":c[0]||=e=>p(K)?K.value=e:null,live:_(q),"onUpdate:live":c[1]||=e=>p(q)?q.value=e:null,items:_(W),loading:_(Y),"filters-active":_(J),"has-more":_(G),onDetail:fe,onAdjustList:ge,onResetFilters:$,onLoadMore:pe,onRefresh:me,onClear:he},null,8,[`filters`,`live`,`items`,`loading`,`filters-active`,`has-more`])])):(l(),s(u,{key:L.id},{default:x(({Component:e})=>[(l(),s(g(e)))]),_:1})),_(H)?(l(),s(_(k),{key:3,modelValue:X.value,"onUpdate:modelValue":c[4]||=e=>X.value=e,"show-close":!1,size:Z.value?`300px`:`40%`,"with-header":!1,"before-close":Q},{default:x(()=>[n(`div`,I,[o(_(E),{"menu-button-hidden":``},{"button-right":x(()=>[o(_(T),{align:_(w).RIGHT,class:`mr-2`,onClick:c[2]||=()=>Q()},{icon:x(()=>[o(_(i),null,{default:x(()=>[o(_(t),{icon:`mdi:close`})]),_:1})]),_:1},8,[`align`])]),_:1}),X.value?(l(),e(S,{key:0},[Z.value?(l(),s(_(A),{key:0,filters:_(K),"onUpdate:filters":c[3]||=e=>p(K)?K.value=e:null,"filters-active":_(J),onResetFilters:$},null,8,[`filters`,`filters-active`])):(l(),s(_(re),{key:1},{icon:x(()=>[o(_(t),{icon:`mdi:console`})]),message:x(()=>[a(b(_(B)(`systemModule.messages.misc.requestError`)),1)]),default:x(()=>[(l(),s(ee,null,{default:x(()=>[(l(),s(u,{key:L.id},{default:x(({Component:e})=>[(l(),s(g(e)))]),_:1}))]),_:1}))]),_:1}))],64)):v(``,!0)])]),_:1},8,[`modelValue`,`size`])):v(``,!0)],64)}}});export{L as default};
@@ -1 +1 @@
1
- import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,D as t,Dr as n,Er as r,H as i,Mr as a,Nr as o,Or as s,Pr as c,Qr as l,Si as u,T as ee,Wr as d,bi as f,ci as p,ei as m,ji as h,jr as g,k as _,kr as v,n as y,qi as b,r as x,ui as S,x as C,xr as w}from"./icon-with-child-CgZMNB3F.js";import{t as T}from"./vue-meta.esm-browser.min-C5z7o_np.js";import{Dr as E,Er as D,Mr as O,Qr as k,Tr as A,_ as j,_r as M,dn as N,ei as P,h as F,kn as I,m as L,p as R,qr as z,r as te,rn as B,sn as ne,vr as V,x as re,yr as H}from"./common-D4Z2wgrj.js";import{n as U,t as ie}from"./descriptions-BHa0Pjk7.js";import{n as W,t as ae}from"./table-CeNNpGH7.js";import{n as G,t as K}from"./form-Wa6uIXea.js";import{t as q}from"./alert-I-oSc4A8.js";import{r as J,t as Y}from"./select-CTZp3DyT.js";import{t as X}from"./card-C50YgvLJ.js";import{t as oe}from"./checkbox-CtqO8Xm5.js";import{x as se}from"./components-BrlrYtBy.js";import{n as Z,t as Q}from"./steps-DuddYjrb.js";import{t as ce}from"./dist-DJgPCOr0.js";import{C as le,g as ue,n as de}from"./keys-BMDz3FOI.js";import{i as fe,o as pe,r as me}from"./keys-DMEIfK2a.js";import{o as $,r as he}from"./devices.constants-DHQemX04.js";import"./devices-CcCtv0br.js";import{A as ge,M as _e,N as ve,P as ye,j as be,k as xe}from"./composables-2NuyfNXO.js";import{a as Se,i as Ce,n as we,o as Te,r as Ee}from"./devices-virtual.constants-D0L6zhgQ.js";var De={class:`space-y-4`},Oe={key:0,"data-test-id":`blocked-categories`},ke={class:`text-sm text-gray-500 mb-2`},Ae={class:`flex flex-wrap gap-2`},je=c({name:`VirtualWizardCategoryStep`,__name:`virtual-wizard-category-step`,props:{modelValue:{}},emits:[`update:modelValue`],setup(t,{expose:i,emit:c}){let u=c,{t:d}=ee(),f=r(()=>Te.map(e=>({value:e,label:d(`devicesModule.categories.devices.${e}`)}))),p=r(()=>Se.map(e=>({value:e,label:d(`devicesModule.categories.devices.${e}`),reason:d(`devicesVirtualPlugin.wizard.category.blockedReason`)}))),g=e=>{u(`update:modelValue`,e)};return i({categories:f,blockedCategories:p}),(r,i)=>(l(),e(`div`,De,[o(h(q),{type:`info`,title:h(d)(`devicesVirtualPlugin.wizard.category.heading`),description:h(d)(`devicesVirtualPlugin.wizard.category.description`),closable:!1,"show-icon":``},null,8,[`title`,`description`]),o(h(K),{"label-position":`top`},{default:S(()=>[o(h(G),{label:h(d)(`devicesVirtualPlugin.fields.devices.category.title`)},{default:S(()=>[o(h(J),{"model-value":t.modelValue,placeholder:h(d)(`devicesVirtualPlugin.fields.devices.category.placeholder`),name:`category`,filterable:``,class:`w-full`,"onUpdate:modelValue":g},{default:S(()=>[(l(!0),e(w,null,m(f.value,e=>(l(),s(h(Y),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`model-value`,`placeholder`])]),_:1},8,[`label`])]),_:1}),p.value.length>0?(l(),e(`div`,Oe,[n(`p`,ke,b(h(d)(`devicesVirtualPlugin.wizard.category.blockedHeading`)),1),n(`div`,Ae,[(l(!0),e(w,null,m(p.value,e=>(l(),s(h(z),{key:e.value,type:`info`,title:e.reason,class:`opacity-60! cursor-not-allowed!`},{default:S(()=>[a(b(e.label),1)]),_:2},1032,[`title`]))),128))])])):v(``,!0)]))}}),Me={class:`space-y-4`},Ne={class:`text-xs text-gray-500 mt-1`},Pe={class:`text-xs text-gray-500 mt-1`},Fe=c({name:`VirtualWizardDetailsStep`,__name:`virtual-wizard-details-step`,props:{category:{},name:{},roomId:{},zoneIds:{}},emits:[`update:name`,`update:roomId`,`update:zoneIds`],setup(t,{expose:i,emit:a}){let c=t,f=a,{t:g}=ee(),_=j(),v=re().getStore(de),y=r(()=>c.name),x=r(()=>c.roomId),C=r(()=>c.zoneIds),T=r(()=>ce(v.findAll().filter(e=>e.type===ue.ROOM),[e=>e.name],[`asc`]).map(e=>({value:e.id,label:e.name}))),E=r(()=>ce(v.findAll().filter(e=>e.type===ue.ZONE&&!le(e.category)),[e=>e.name],[`asc`]).map(e=>({value:e.id,label:e.name}))),D=r(()=>{if(c.category===null)return``;let e=g(`devicesModule.categories.devices.${c.category}`);if(c.roomId===null)return e;let t=v.findById(c.roomId);return t?`${e} — ${t.name}`:e}),O=u(c.name===``||c.name===D.value?c.name:null);p(D,e=>{c.name===O.value&&e!==c.name&&(O.value=e,f(`update:name`,e))},{immediate:!0});let k=e=>{f(`update:name`,e)},A=e=>{f(`update:roomId`,e)},M=e=>{f(`update:zoneIds`,e)};return d(()=>{v.fetch().catch(e=>_.error(`Failed to load rooms and zones`,e))}),i({roomOptions:T,zoneOptions:E,generatedName:D}),(t,r)=>(l(),e(`div`,Me,[o(h(q),{type:`info`,title:h(g)(`devicesVirtualPlugin.wizard.details.heading`),description:h(g)(`devicesVirtualPlugin.wizard.details.description`),closable:!1,"show-icon":``},null,8,[`title`,`description`]),o(h(K),{"label-position":`top`},{default:S(()=>[o(h(G),{label:h(g)(`devicesVirtualPlugin.fields.devices.name.title`)},{default:S(()=>[o(h(P),{"model-value":y.value,placeholder:h(g)(`devicesVirtualPlugin.fields.devices.name.placeholder`),name:`name`,"onUpdate:modelValue":k},null,8,[`model-value`,`placeholder`])]),_:1},8,[`label`]),o(h(G),{label:h(g)(`devicesModule.fields.devices.room.title`)},{default:S(()=>[o(h(J),{"model-value":x.value,placeholder:h(g)(`devicesModule.fields.devices.room.placeholder`),name:`room`,filterable:``,clearable:``,class:`w-full`,"onUpdate:modelValue":A},{default:S(()=>[(l(!0),e(w,null,m(T.value,e=>(l(),s(h(Y),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`model-value`,`placeholder`]),n(`div`,Ne,b(h(g)(`devicesModule.fields.devices.room.hint`)),1)]),_:1},8,[`label`]),o(h(G),{label:h(g)(`devicesModule.fields.devices.zones.title`)},{default:S(()=>[o(h(J),{"model-value":C.value,placeholder:h(g)(`devicesModule.fields.devices.zones.placeholder`),name:`zones`,filterable:``,clearable:``,multiple:``,class:`w-full`,"onUpdate:modelValue":M},{default:S(()=>[(l(!0),e(w,null,m(E.value,e=>(l(),s(h(Y),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`model-value`,`placeholder`]),n(`div`,Pe,b(h(g)(`devicesModule.fields.devices.zones.hint`)),1)]),_:1},8,[`label`])]),_:1})]))}}),Ie={class:`space-y-4`},Le={class:`flex items-center gap-3`,"data-test-id":`mapping-progress`},Re=[`data-test-id`],ze={class:`flex items-center gap-2 flex-wrap`},Be={class:`flex flex-wrap items-center gap-2`},Ve=[`data-test-id`],He={class:`flex items-center gap-2 flex-wrap`},Ue={class:`text-sm font-medium`},We={class:`flex flex-wrap items-center gap-2`},Ge=c({name:`VirtualWizardMappingStep`,__name:`virtual-wizard-mapping-step`,props:{category:{},modelValue:{}},emits:[`update:modelValue`,`update:valid`],setup(t,{expose:i,emit:c}){let u=t,g=c,{t:y}=ee(),C=L(),T=j(),E=R(),D=re(),k=D.getStore(pe),A=D.getStore(fe),M=D.getStore(me),N=f({}),P=f({}),F=f({}),V=f({}),H=f({}),U=f({}),ie=0,W=new Map,ae=e=>ye[e]?.constraints??{},G=e=>ve[e]?.constraints??{},K=r(()=>{if(u.category===null)return[];let e=ge[u.category];if(!e)return[];let t=(be[u.category]??[...e.required,...e.optional]).filter(e=>e!==B.device_information);return[...t.filter(t=>e.required.includes(t)),...t.filter(t=>!e.required.includes(t))].map(t=>{let n=e.required.includes(t),r=xe[t]??{required:[],optional:[]};return{specChannel:t,required:n,slots:[...r.required,...r.optional].map(e=>{let i=_e(t,e),a=r.required.includes(e);return{key:`${t}.${e}`,specChannel:t,specProperty:e,required:n&&a,channelRequired:n,propertyRequired:a,permissions:i?.permissions??[],dataType:i?.data_type??null,unit:i?.unit??null}})}})}),X=r(()=>K.value.flatMap(e=>e.slots)),oe=r(()=>X.value.map(e=>({specChannel:e.specChannel,specProperty:e.specProperty,sourceProperty:N[e.key]??null}))),Z=r(()=>{let e=new Set(X.value.filter(e=>typeof N[e.key]==`string`).map(e=>e.specChannel)),t=X.value.filter(t=>t.required||t.propertyRequired&&e.has(t.specChannel)),n=t.filter(e=>typeof N[e.key]!=`string`);return{requiredTotal:t.length,requiredFilled:t.length-n.length,remaining:n}}),Q=r(()=>Object.keys(N).length>0),le=r(()=>Q.value&&Z.value.remaining.length===0),ue=r(()=>Z.value.requiredTotal===0?Q.value?100:0:Math.round(Z.value.requiredFilled/Z.value.requiredTotal*100)),de=r(()=>{let e=[],t=K.value.filter(e=>e.slots.some(e=>typeof N[e.key]==`string`)).map(e=>e.specChannel);if(u.category!==null&&t.length>0){let n=G(u.category);for(let r of n.oneOrMoreOf??[])r.some(e=>t.includes(e))||e.push({specChannel:r[0],message:y(`devicesVirtualPlugin.wizard.mapping.constraints.deviceOneOrMoreOf`,{channels:r.map(e=>y(`devicesModule.categories.channels.${e}`)).join(`, `)})});for(let r of n.oneOf??[])r.filter(e=>t.includes(e)).length>1&&e.push({specChannel:r[0],message:y(`devicesVirtualPlugin.wizard.mapping.constraints.deviceOneOf`,{channels:r.map(e=>y(`devicesModule.categories.channels.${e}`)).join(`, `)})});for(let r of n.mutuallyExclusiveGroups??[]){let n=r.filter(e=>e.some(e=>t.includes(e)));n.length>1&&e.push({specChannel:n[0][0],message:y(`devicesVirtualPlugin.wizard.mapping.constraints.deviceMutuallyExclusive`,{groups:n.map(e=>e.map(e=>y(`devicesModule.categories.channels.${e}`)).join(` + `)).join(` / `)})})}}for(let t of K.value){let n=t.slots.filter(e=>typeof N[e.key]==`string`).map(e=>e.specProperty);if(n.length===0)continue;let r=ae(t.specChannel);for(let i of r.oneOrMoreOf??[])i.some(e=>n.includes(e))||e.push({specChannel:t.specChannel,message:y(`devicesVirtualPlugin.wizard.mapping.constraints.oneOrMoreOf`,{properties:i.map(e=>y(`devicesModule.categories.channelsProperties.${e}`)).join(`, `)})});for(let i of r.oneOf??[])i.filter(e=>n.includes(e)).length>1&&e.push({specChannel:t.specChannel,message:y(`devicesVirtualPlugin.wizard.mapping.constraints.oneOf`,{properties:i.map(e=>y(`devicesModule.categories.channelsProperties.${e}`)).join(`, `)})});for(let i of r.mutuallyExclusiveGroups??[]){let r=i.filter(e=>e.some(e=>n.includes(e)));r.length>1&&e.push({specChannel:t.specChannel,message:y(`devicesVirtualPlugin.wizard.mapping.constraints.mutuallyExclusive`,{groups:r.map(e=>e.map(e=>y(`devicesModule.categories.channelsProperties.${e}`)).join(` + `)).join(` / `)})})}}return e}),$=r(()=>Object.values(F).some(e=>e)),he=r(()=>u.category!==null&&le.value&&Object.keys(P).length===0&&de.value.length===0&&!$.value),Se=r(()=>ce(k.findAll().filter(e=>!e.draft&&(!e.hidden||e.hiddenBy===ne.system)&&e.type!==`virtual`),[e=>e.name],[`asc`]).map(e=>({value:e.id,label:e.name}))),Ce=e=>e===null?[]:ce(A.findForDevice(e),[e=>e.name],[`asc`]).map(e=>({value:e.id,label:e.name})),Te=e=>e===null?[]:ce(M.findForChannel(e),[e=>e.name??e.category],[`asc`]).map(e=>({value:e.id,label:e.name??y(`devicesModule.categories.channelsProperties.${e.category}`)})),Ee=e=>[e.dataType,e.unit,e.permissions.join(`/`)].filter(e=>typeof e==`string`&&e.length>0).join(` · `),De=(e,t)=>t.required||U[e.specChannel]===!0||typeof N[t.key]==`string`||typeof P[t.key]==`string`,Oe=e=>e.slots.filter(t=>De(e,t)),ke=e=>e.slots.length-Oe(e).length,Ae=async e=>{try{return await A.fetch({deviceId:e})}catch(t){return T.error(`Failed to load source channels`,t),A.findForDevice(e)}},je=async e=>{try{await M.fetch({channelId:e})}catch(e){T.error(`Failed to load source properties`,e)}return M.findForChannel(e)},Me=(e,t,n)=>{let r=e=>e.spec_channel===t.slot.specChannel&&e.spec_property===t.slot.specProperty&&e.source_property===t.sourceProperty,i=e[n];return i&&r(i)?i:e.find(r)??null},Ne=async e=>{if(u.category===null||e.length===0)return;let t=++ie;for(let n of e)W.set(n.slot.key,t),F[n.slot.key]=!0,delete P[n.slot.key];let n=(e,n)=>{W.get(e)===t&&(delete F[e],n===null?delete P[e]:P[e]=n)};try{let{data:t,error:r}=await C.client.POST(`/${x}/${we}/devices/compatibility`,{body:{data:{category:u.category,candidates:e.map(e=>({spec_channel:e.slot.specChannel,spec_property:e.slot.specProperty,source_property:e.sourceProperty}))}}}),i=t?.data;if(!i){let t=r?te(r,y(`devicesVirtualPlugin.wizard.mapping.errors.checkFailed`)):y(`devicesVirtualPlugin.wizard.mapping.errors.checkFailed`);for(let r of e)n(r.slot.key,t);E.error(t);return}e.forEach((e,t)=>{let r=Me(i,e,t);if(!r){n(e.slot.key,y(`devicesVirtualPlugin.wizard.mapping.errors.checkFailed`));return}n(e.slot.key,r.compatible?null:r.reason??y(`devicesVirtualPlugin.wizard.mapping.errors.incompatible`))})}catch(t){T.error(`Virtual device compatibility check failed`,t);let r=y(`devicesVirtualPlugin.wizard.mapping.errors.checkFailed`);for(let t of e)n(t.slot.key,r);E.error(r)}},Pe=async(e,t)=>{let n=X.value.find(t=>t.key===e);if(n){if(W.set(e,++ie),delete P[e],delete F[e],t===null){delete N[e];return}N[e]=t,await Ne([{slot:n,sourceProperty:t}])}},Fe=async(e,t)=>{let n=K.value.find(t=>t.specChannel===e);if(!n||t===null)return;let r=++ie;for(let e of n.slots)W.set(e.key,r),delete F[e.key];let i=await je(t);if(n.slots.some(e=>W.get(e.key)!==r))return;let a=A.findById(t),o=[];for(let e of n.slots){let n=i.find(t=>t.category===e.specProperty);if(!n){let t=N[e.key];t&&o.push({slot:e,sourceProperty:t});continue}delete P[e.key],N[e.key]=n.id,V[e.key]={device:a?.device??null,channel:t},o.push({slot:e,sourceProperty:n.id})}if(o.length===0){E.info(y(`devicesVirtualPlugin.wizard.mapping.shortcut.nothingApplied`));return}U[e]=!0,E.info(y(`devicesVirtualPlugin.wizard.mapping.shortcut.applied`,{filled:o.length,total:n.slots.length})),await Ne(o)},Ge=(e,t)=>{V[e]={device:t,channel:null},Pe(e,null).catch(e=>T.error(`Failed to clear source property`,e)),t!==null&&Ae(t).catch(e=>T.error(`Failed to load source channels`,e))},Ke=(e,t)=>{V[e]={device:V[e]?.device??null,channel:t},Pe(e,null).catch(e=>T.error(`Failed to clear source property`,e)),t!==null&&je(t).catch(e=>T.error(`Failed to load source properties`,e))},qe=(e,t)=>{Pe(e,t).catch(e=>T.error(`Failed to select source property`,e))},Je=(e,t)=>{H[e]={device:t,channel:null},t!==null&&Ae(t).catch(e=>T.error(`Failed to load source channels`,e))},Ye=(e,t)=>{H[e]={device:H[e]?.device??null,channel:t},t!==null&&je(t).catch(e=>T.error(`Failed to load source properties`,e))},Xe=e=>{Fe(e,H[e]?.channel??null).catch(e=>T.error(`Failed to apply source channel`,e))},Ze=e=>e.filter(e=>e.sourceProperty!==null).map(e=>`${e.specChannel}.${e.specProperty}=${e.sourceProperty}`).sort().join(`|`),Qe=()=>{for(let[e,t]of Object.entries(N)){if(V[e]?.channel)continue;let n=M.findById(t),r=n?A.findById(n.channel):null;V[e]={device:r?.device??null,channel:r?.id??null}}};return p(()=>u.modelValue,e=>{if(Ze(e)!==Ze(oe.value)){for(let e of Object.keys(N))delete N[e];for(let e of Object.keys(P))delete P[e];for(let e of Object.keys(F))delete F[e];for(let e of Object.keys(V))delete V[e];W.clear();for(let t of e)t.sourceProperty!==null&&(N[`${t.specChannel}.${t.specProperty}`]=t.sourceProperty);Qe()}},{deep:!0,immediate:!0}),p(()=>u.category,(e,t)=>{if(!(t==null||t===e)){for(let e of Object.keys(N))delete N[e];for(let e of Object.keys(P))delete P[e];for(let e of Object.keys(F))delete F[e];for(let e of Object.keys(V))delete V[e];for(let e of Object.keys(H))delete H[e];W.clear(),ie++}}),p(oe,e=>g(`update:modelValue`,e),{deep:!0,immediate:!0}),p(he,e=>g(`update:valid`,e),{immediate:!0}),d(()=>{k.fetch({hidden:I.all}).catch(e=>T.error(`Failed to load source devices`,e))}),i({slots:X,groups:K,errors:P,checking:F,pickers:V,progress:Z,constraintViolations:de,isValid:he,sourceDevicesOptions:Se,selectSource:Pe,applyChannel:Fe}),(r,i)=>(l(),e(`div`,Ie,[o(h(q),{type:`info`,title:h(y)(`devicesVirtualPlugin.wizard.mapping.heading`),description:h(y)(`devicesVirtualPlugin.wizard.mapping.description`),closable:!1,"show-icon":``},null,8,[`title`,`description`]),t.category===null?(l(),s(h(q),{key:0,type:`warning`,title:h(y)(`devicesVirtualPlugin.wizard.mapping.noCategory`),closable:!1,"show-icon":``},null,8,[`title`])):(l(),e(w,{key:1},[n(`div`,Le,[o(h(se),{percentage:ue.value,status:le.value?`success`:void 0,class:`grow`},null,8,[`percentage`,`status`]),Z.value.requiredTotal>0?(l(),s(h(O),{key:0,size:`small`,class:`whitespace-nowrap`},{default:S(()=>[a(b(h(y)(`devicesVirtualPlugin.wizard.mapping.progress`,{filled:Z.value.requiredFilled,total:Z.value.requiredTotal})),1)]),_:1})):Q.value?v(``,!0):(l(),s(h(O),{key:1,size:`small`},{default:S(()=>[a(b(h(y)(`devicesVirtualPlugin.wizard.mapping.noRequired`)),1)]),_:1}))]),(l(!0),e(w,null,m(de.value,e=>(l(),s(h(q),{key:`${e.specChannel}-${e.message}`,type:`error`,closable:!1,"show-icon":``,class:`mt-2`,"data-test-id":`constraint-violation`},{default:S(()=>[n(`strong`,null,b(h(y)(`devicesModule.categories.channels.${e.specChannel}`)),1),a(` `+b(e.message),1)]),_:2},1024))),128)),(l(!0),e(w,null,m(K.value,t=>(l(),e(`div`,{key:t.specChannel,class:`b b-solid b-gray-200 dark:b-gray-700 rounded p-3 space-y-3`,"data-test-id":`slot-group-${t.specChannel}`},[n(`div`,ze,[n(`strong`,null,b(h(y)(`devicesModule.categories.channels.${t.specChannel}`)),1),o(h(z),{type:t.required?`danger`:`info`,size:`small`},{default:S(()=>[a(b(t.required?h(y)(`devicesVirtualPlugin.wizard.mapping.channelRequired`):h(y)(`devicesVirtualPlugin.wizard.mapping.channelOptional`)),1)]),_:2},1032,[`type`])]),n(`div`,Be,[o(h(O),{size:`small`,class:`basis-full`},{default:S(()=>[a(b(h(y)(`devicesVirtualPlugin.wizard.mapping.shortcut.description`)),1)]),_:1}),o(h(J),{"model-value":H[t.specChannel]?.device??null,placeholder:h(y)(`devicesVirtualPlugin.wizard.mapping.source.devicePlaceholder`),name:`shortcut-device-${t.specChannel}`,filterable:``,clearable:``,class:`w-60`,"onUpdate:modelValue":e=>Je(t.specChannel,e)},{default:S(()=>[(l(!0),e(w,null,m(Se.value,e=>(l(),s(h(Y),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`model-value`,`placeholder`,`name`,`onUpdate:modelValue`]),o(h(J),{"model-value":H[t.specChannel]?.channel??null,placeholder:h(y)(`devicesVirtualPlugin.wizard.mapping.source.channelPlaceholder`),name:`shortcut-channel-${t.specChannel}`,disabled:!H[t.specChannel]?.device,filterable:``,clearable:``,class:`w-60`,"onUpdate:modelValue":e=>Ye(t.specChannel,e)},{default:S(()=>[(l(!0),e(w,null,m(Ce(H[t.specChannel]?.device??null),e=>(l(),s(h(Y),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:2},1032,[`model-value`,`placeholder`,`name`,`disabled`,`onUpdate:modelValue`]),o(h(_),{disabled:!H[t.specChannel]?.channel,plain:``,onClick:e=>Xe(t.specChannel)},{default:S(()=>[a(b(h(y)(`devicesVirtualPlugin.wizard.mapping.shortcut.apply`)),1)]),_:1},8,[`disabled`,`onClick`])]),(l(!0),e(w,null,m(Oe(t),t=>(l(),e(`div`,{key:t.key,class:`space-y-1`,"data-test-id":`slot-${t.key}`},[n(`div`,He,[n(`span`,Ue,b(h(y)(`devicesModule.categories.channelsProperties.${t.specProperty}`)),1),t.required?(l(),s(h(z),{key:0,type:`danger`,size:`small`},{default:S(()=>[a(b(h(y)(`devicesVirtualPlugin.wizard.mapping.propertyRequired`)),1)]),_:1})):v(``,!0),o(h(O),{size:`small`,type:`info`},{default:S(()=>[a(b(Ee(t)),1)]),_:2},1024)]),n(`div`,We,[o(h(J),{"model-value":V[t.key]?.device??null,placeholder:h(y)(`devicesVirtualPlugin.wizard.mapping.source.devicePlaceholder`),name:`device-${t.key}`,filterable:``,clearable:``,class:`w-60`,"onUpdate:modelValue":e=>Ge(t.key,e)},{default:S(()=>[(l(!0),e(w,null,m(Se.value,e=>(l(),s(h(Y),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`model-value`,`placeholder`,`name`,`onUpdate:modelValue`]),o(h(J),{"model-value":V[t.key]?.channel??null,placeholder:h(y)(`devicesVirtualPlugin.wizard.mapping.source.channelPlaceholder`),name:`channel-${t.key}`,disabled:!V[t.key]?.device,filterable:``,clearable:``,class:`w-60`,"onUpdate:modelValue":e=>Ke(t.key,e)},{default:S(()=>[(l(!0),e(w,null,m(Ce(V[t.key]?.device??null),e=>(l(),s(h(Y),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:2},1032,[`model-value`,`placeholder`,`name`,`disabled`,`onUpdate:modelValue`]),o(h(J),{"model-value":N[t.key]??null,placeholder:h(y)(`devicesVirtualPlugin.wizard.mapping.source.propertyPlaceholder`),name:`property-${t.key}`,disabled:!V[t.key]?.channel,loading:F[t.key]===!0,filterable:``,clearable:``,class:`w-60`,"onUpdate:modelValue":e=>qe(t.key,e)},{default:S(()=>[(l(!0),e(w,null,m(Te(V[t.key]?.channel??null),e=>(l(),s(h(Y),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:2},1032,[`model-value`,`placeholder`,`name`,`disabled`,`loading`,`onUpdate:modelValue`])]),P[t.key]?(l(),s(h(O),{key:0,size:`small`,type:`danger`,class:`block`,"data-test-id":`slot-error-${t.key}`},{default:S(()=>[a(b(P[t.key]),1)]),_:2},1032,[`data-test-id`])):v(``,!0)],8,Ve))),128)),ke(t)>0?(l(),s(h(_),{key:0,link:``,type:`primary`,onClick:e=>U[t.specChannel]=!0},{default:S(()=>[a(b(h(y)(`devicesVirtualPlugin.wizard.mapping.showOptional`,{count:ke(t)})),1)]),_:2},1032,[`onClick`])):v(``,!0)],8,Re))),128))],64))]))}}),Ke={class:`space-y-4`},qe={class:`text-xs text-gray-500`},Je=c({name:`VirtualWizardReviewStep`,__name:`virtual-wizard-review-step`,props:{category:{},mappings:{},name:{},roomId:{},zoneIds:{},showCreateAction:{type:Boolean,default:!0}},emits:[`created`,`submitting`],setup(t,{expose:i,emit:c}){let d=t,f=c,{t:p}=ee(),m=L(),g=j(),x=R(),C=re(),T=C.getStore(pe),E=C.getStore(fe),D=C.getStore(me),O=C.getStore(de),k=u(`idle`),A=u(null),M=u(!1),P=u(`idle`),F=u(null),I=u(0),z=r(()=>d.mappings.filter(e=>e.sourceProperty!==null)),B=()=>p(`devicesVirtualPlugin.wizard.review.unknownSource`),V=e=>{let t=D.findById(e),n=t?E.findById(t.channel):null,r=n?T.findById(n.device):null;return{deviceId:n?.device??null,deviceName:r?.name??B(),channelName:n?.name??B(),propertyName:t?t.name??p(`devicesModule.categories.channelsProperties.${t.category}`):B()}},H=r(()=>z.value.map(e=>V(e.sourceProperty))),G=r(()=>z.value.map((e,t)=>{let n=H.value[t];return{key:`${e.specChannel}.${e.specProperty}`,specChannel:e.specChannel,specProperty:e.specProperty,sourceDevice:n.deviceName,sourceChannel:n.channelName,sourceProperty:n.propertyName}})),K=r(()=>{let e=H.value.map(e=>e.deviceId);return e.length===0||e.some(e=>e===null)?!1:new Set(e).size===1}),J=r(()=>{if(!K.value)return null;let e=H.value[0]?.deviceId??null;return e===null?null:T.findById(e)}),Y=r(()=>d.category===null?``:p(`devicesModule.categories.devices.${d.category}`)),X=r(()=>{if(d.roomId===null)return p(`devicesVirtualPlugin.wizard.review.noRoom`);let e=O.findById(d.roomId);return e?e.name:B()}),se=r(()=>d.zoneIds.length===0?p(`devicesVirtualPlugin.wizard.review.noZones`):d.zoneIds.map(e=>{let t=O.findById(e);return t?t.name:B()}).join(`, `)),Z=r(()=>k.value!==`submitting`&&k.value!==`created`&&d.category!==null&&d.name.trim().length>0&&G.value.length>0),Q=(e,t)=>{let n=D.findById(e.sourceProperty)?.dataType??null,r=ye[e.specChannel],i=Object.values(r?.properties??{}).find(t=>t.category===e.specProperty);return(n===null?void 0:i?.data_types?.find(e=>e.data_type===n))??t},ce=e=>{let t=_e(e.specChannel,e.specProperty);if(!t)return g.error(`No specification found for ${e.specChannel}.${e.specProperty}; leaving it out of the create payload`),null;let n=Q(e,{data_type:t.data_type,format:t.format??void 0,step:t.step??void 0});return{type:Ee,category:e.specProperty,identifier:e.specProperty,name:null,permissions:t.permissions,data_type:n.data_type,format:n.format??null,invalid:D.findById(e.sourceProperty)?.invalid??t.invalid??null,step:n.step??null,value:null,value_origin:N.source,source_property:e.sourceProperty}},le=r(()=>{let e=new Map;for(let t of z.value){let n=ce(t);if(!n)continue;let r=e.get(t.specChannel)??[];r.push(n),e.set(t.specChannel,r)}return Array.from(e.entries()).map(([e,t])=>({type:Ee,category:e,identifier:e,name:p(`devicesModule.categories.channels.${e}`),properties:t}))}),ue=async e=>{I.value=0;for(let t of d.zoneIds)try{await T.addZone({id:e,zoneId:t})}catch(n){g.error(`Failed to assign the created device id=${e} to zone id=${t}`,n),I.value+=1}I.value>0&&x.warning(p(`devicesVirtualPlugin.wizard.review.errors.zonesFailed`,{count:I.value}))},$=async()=>{let e=J.value;if(e){P.value=`hiding`,F.value=null;try{await T.edit({id:e.id,data:{type:e.type,hidden:!0,hiddenBy:ne.system}}),P.value=`hidden`}catch(t){g.error(`Failed to hide the source device id=${e.id}`,t),P.value=`failed`,F.value=t instanceof Error?t.message:p(`devicesVirtualPlugin.wizard.review.errors.hideFailed`),x.error(p(`devicesVirtualPlugin.wizard.review.errors.hideFailedFlash`,{device:e.name}))}}},ge=()=>{$().catch(e=>g.error(`Failed to retry hiding the source device`,e))},ve=async()=>{if(!Z.value)return;let e=d.category,t=d.name.trim(),n=d.roomId,r=d.zoneIds,i=le.value;if(e===null)return;k.value=`submitting`,f(`submitting`,!0),A.value=null;let a={type:Ee,category:e,name:t,room_id:n,channels:i};try{let{data:e,error:t}=await m.client.POST(`/${y}/${he}/devices`,{body:{data:a}});if(!e){A.value=t?te(t,p(`devicesVirtualPlugin.wizard.review.errors.createFailed`)):p(`devicesVirtualPlugin.wizard.review.errors.createFailed`),k.value=`error`,f(`submitting`,!1),x.error(A.value);return}let n=e.data;k.value=`created`;try{await T.get({id:n.id})}catch(e){g.error(`Failed to refresh the created device`,e)}r.length>0&&await ue(n.id),M.value&&K.value&&await $(),f(`submitting`,!1),f(`created`,{id:n.id,name:n.name})}catch(e){g.error(`Failed to create the virtual device`,e),A.value=p(`devicesVirtualPlugin.wizard.review.errors.createFailed`),k.value=`error`,f(`submitting`,!1),x.error(A.value)}};return i({rows:G,canHideSource:K,sourceDevice:J,submitState:k,hideState:P,hideError:F,createError:A,canCreate:Z,onCreate:ve,onRetryHide:ge}),(r,i)=>(l(),e(`div`,Ke,[o(h(q),{type:`info`,title:h(p)(`devicesVirtualPlugin.wizard.review.heading`),description:h(p)(`devicesVirtualPlugin.wizard.review.description`),closable:!1,"show-icon":``},null,8,[`title`,`description`]),o(h(ie),{column:1,border:``,"data-test-id":`review-summary`},{default:S(()=>[o(h(U),{label:h(p)(`devicesVirtualPlugin.fields.devices.category.title`)},{default:S(()=>[a(b(Y.value),1)]),_:1},8,[`label`]),o(h(U),{label:h(p)(`devicesVirtualPlugin.fields.devices.name.title`)},{default:S(()=>[a(b(t.name),1)]),_:1},8,[`label`]),o(h(U),{label:h(p)(`devicesModule.fields.devices.room.title`)},{default:S(()=>[a(b(X.value),1)]),_:1},8,[`label`]),o(h(U),{label:h(p)(`devicesModule.fields.devices.zones.title`)},{default:S(()=>[a(b(se.value),1)]),_:1},8,[`label`])]),_:1}),G.value.length===0?(l(),s(h(q),{key:0,type:`warning`,title:h(p)(`devicesVirtualPlugin.wizard.review.noMappings`),closable:!1,"show-icon":``,"data-test-id":`review-no-mappings`},null,8,[`title`])):(l(),s(h(ae),{key:1,data:G.value,"data-test-id":`review-rows`},{default:S(()=>[o(h(W),{label:h(p)(`devicesVirtualPlugin.wizard.review.columns.property`)},{default:S(({row:e})=>[n(`strong`,null,b(h(p)(`devicesModule.categories.channels.${e.specChannel}`)),1),a(` · `+b(h(p)(`devicesModule.categories.channelsProperties.${e.specProperty}`)),1)]),_:1},8,[`label`]),o(h(W),{label:h(p)(`devicesVirtualPlugin.wizard.review.columns.sourceDevice`),prop:`sourceDevice`},null,8,[`label`]),o(h(W),{label:h(p)(`devicesVirtualPlugin.wizard.review.columns.sourceChannel`),prop:`sourceChannel`},null,8,[`label`]),o(h(W),{label:h(p)(`devicesVirtualPlugin.wizard.review.columns.sourceProperty`),prop:`sourceProperty`},null,8,[`label`])]),_:1},8,[`data`])),K.value&&k.value!==`created`?(l(),e(w,{key:2},[o(h(oe),{modelValue:M.value,"onUpdate:modelValue":i[0]||=e=>M.value=e,"data-test-id":`hide-source-checkbox`},{default:S(()=>[a(b(h(p)(`devicesVirtualPlugin.wizard.review.hideSource.label`,{device:J.value?.name??``})),1)]),_:1},8,[`modelValue`]),n(`div`,qe,b(h(p)(`devicesVirtualPlugin.wizard.review.hideSource.hint`)),1)],64)):v(``,!0),k.value===`error`?(l(),s(h(q),{key:3,type:`error`,title:A.value??``,closable:!1,"show-icon":``,"data-test-id":`create-error`},null,8,[`title`])):v(``,!0),k.value===`created`?(l(),e(w,{key:4},[o(h(q),{type:`success`,title:h(p)(`devicesVirtualPlugin.wizard.review.created`,{name:t.name}),closable:!1,"show-icon":``,"data-test-id":`create-success`},null,8,[`title`]),P.value===`failed`?(l(),s(h(q),{key:0,type:`warning`,title:F.value??``,closable:!1,"show-icon":``,"data-test-id":`hide-error`},{default:S(()=>[o(h(_),{size:`small`,"data-test-id":`retry-hide`,onClick:ge},{default:S(()=>[a(b(h(p)(`devicesVirtualPlugin.wizard.review.hideSource.retry`)),1)]),_:1})]),_:1},8,[`title`])):P.value===`hidden`?(l(),s(h(q),{key:1,type:`success`,title:h(p)(`devicesVirtualPlugin.wizard.review.hideSource.success`,{device:J.value?.name??``}),closable:!1,"show-icon":``,"data-test-id":`hide-success`},null,8,[`title`])):v(``,!0)],64)):d.showCreateAction===!1?v(``,!0):(l(),s(h(_),{key:5,type:`primary`,disabled:!Z.value,loading:k.value===`submitting`,"data-test-id":`create-device`,onClick:ve},{default:S(()=>[a(b(h(p)(`devicesVirtualPlugin.wizard.review.create`)),1)]),_:1},8,[`disabled`,`loading`]))]))}}),Ye={class:`flex items-center`},Xe={class:`grow-1 flex flex-col gap-2 lt-sm:mx-1 sm:mx-2 lt-sm:mb-1 sm:mb-2 overflow-hidden mt-2`},Ze={class:`p-4`},Qe={key:2,class:`mt-2 flex justify-end lt-sm:mx-1 sm:mx-2 lt-sm:mb-1 sm:mb-2`},$e=4,et=c({name:`ViewVirtualDeviceWizard`,__name:`view-virtual-device-wizard`,setup(c,{expose:d}){let{t:m}=ee(),y=C(),{isMDDevice:x,isLGDevice:O}=H();T({title:m(`devicesVirtualPlugin.wizard.title`)});let j=f({category:null,mappings:[],name:``,roomId:null,zoneIds:[]}),N=u(0),P=u(!1),I=u(null),L=u(null),R=u(!1),z=r(()=>N.value===$e-1),te=r(()=>N.value===0?j.category!==null:N.value===1?P.value:N.value===2&&j.name.trim().length>0),B=r(()=>[{label:m(`devicesModule.breadcrumbs.devices.list`),route:y.resolve({name:$.DEVICES})},{label:m(`devicesVirtualPlugin.wizard.breadcrumb`),route:y.resolve({name:Ce.WIZARD})}]);M(()=>!R.value);let ne=()=>{R.value||(O.value?y.replace({name:$.DEVICES}):y.push({name:$.DEVICES}))},re=()=>{R.value||N.value!==0&&--N.value},U=()=>{!te.value||z.value||(N.value+=1)},ie=e=>{P.value=e},W=e=>{I.value=e},ae=()=>{if(I.value===null)return;let e={name:$.DEVICE,params:{id:I.value.id}};O.value?y.replace(e):y.push(e)};return p(()=>j.category,(e,t)=>{t==null||t===e||(j.mappings=[],P.value=!1)}),d({activeStep:N,canAdvance:te,createdDevice:I}),(r,c)=>(l(),e(w,null,[h(x)?v(``,!0):(l(),s(h(A),{key:0,teleport:``},{icon:S(()=>[o(h(t),{icon:`mdi:wizard-hat`,class:`w[20px] h[20px]`})]),title:S(()=>[a(b(h(m)(`devicesVirtualPlugin.wizard.title`)),1)]),subtitle:S(()=>[a(b(h(m)(`devicesVirtualPlugin.wizard.subtitle`)),1)]),_:1})),h(x)?v(``,!0):(l(),s(h(D),{key:1,align:h(E).LEFT,teleport:``,small:``,onClick:ne},{icon:S(()=>[o(h(i),{size:24},{default:S(()=>[o(h(t),{icon:`mdi:chevron-left`})]),_:1})]),_:1},8,[`align`])),o(h(V),{items:B.value},null,8,[`items`]),o(h(F),{heading:h(m)(`devicesVirtualPlugin.wizard.title`),"sub-heading":h(m)(`devicesVirtualPlugin.wizard.subtitle`),icon:`mdi:wizard-hat`},g({_:2},[h(x)?{name:`extra`,fn:S(()=>[n(`div`,Ye,[I.value===null&&N.value>0?(l(),s(h(_),{key:0,disabled:R.value,"data-test-id":`wizard-back`,onClick:re},{default:S(()=>[a(b(h(m)(`devicesModule.wizard.actions.back`)),1)]),_:1},8,[`disabled`])):v(``,!0),I.value===null?(l(),s(h(_),{key:1,link:``,class:`ml-2!`,disabled:R.value,"data-test-id":`wizard-cancel`,onClick:ne},{default:S(()=>[a(b(h(m)(`devicesModule.wizard.actions.cancel`)),1)]),_:1},8,[`disabled`])):v(``,!0),I.value===null?v(``,!0):(l(),s(h(_),{key:2,type:`primary`,"data-test-id":`wizard-view-device`,onClick:ae},{default:S(()=>[a(b(h(m)(`devicesVirtualPlugin.wizard.viewDevice`)),1)]),_:1})),I.value===null&&z.value?(l(),s(h(_),{key:3,type:`primary`,class:`ml-2!`,disabled:!L.value?.canCreate,loading:R.value,"data-test-id":`create-device`,onClick:L.value?.onCreate},{default:S(()=>[a(b(h(m)(`devicesVirtualPlugin.wizard.review.create`)),1)]),_:1},8,[`disabled`,`loading`,`onClick`])):v(``,!0),I.value===null&&!z.value?(l(),s(h(_),{key:4,type:`primary`,class:`ml-2!`,disabled:!te.value,"data-test-id":`wizard-next`,onClick:U},{default:S(()=>[a(b(h(m)(`devicesModule.wizard.actions.next`)),1)]),_:1},8,[`disabled`])):v(``,!0)])]),key:`0`}:void 0]),1032,[`heading`,`sub-heading`]),n(`div`,Xe,[o(h(X),{shadow:`never`,class:`max-h-full flex flex-col overflow-hidden box-border`,"body-class":`p-0! max-h-full overflow-hidden flex flex-col`},{header:S(()=>[o(h(Z),{active:N.value,"finish-status":`success`,"align-center":``},{default:S(()=>[o(h(Q),{title:h(m)(`devicesVirtualPlugin.wizard.steps.category`)},null,8,[`title`]),o(h(Q),{title:h(m)(`devicesVirtualPlugin.wizard.steps.mapping`)},null,8,[`title`]),o(h(Q),{title:h(m)(`devicesVirtualPlugin.wizard.steps.details`)},null,8,[`title`]),o(h(Q),{title:h(m)(`devicesVirtualPlugin.wizard.steps.review`)},null,8,[`title`])]),_:1},8,[`active`])]),default:S(()=>[o(h(k),{class:`flex-1 overflow-hidden h-full`},{default:S(()=>[n(`div`,Ze,[N.value===0?(l(),s(je,{key:0,modelValue:j.category,"onUpdate:modelValue":c[0]||=e=>j.category=e},null,8,[`modelValue`])):N.value===1?(l(),s(Ge,{key:1,modelValue:j.mappings,"onUpdate:modelValue":c[1]||=e=>j.mappings=e,category:j.category,"onUpdate:valid":ie},null,8,[`modelValue`,`category`])):N.value===2?(l(),s(Fe,{key:2,name:j.name,"onUpdate:name":c[2]||=e=>j.name=e,"room-id":j.roomId,"onUpdate:roomId":c[3]||=e=>j.roomId=e,"zone-ids":j.zoneIds,"onUpdate:zoneIds":c[4]||=e=>j.zoneIds=e,category:j.category},null,8,[`name`,`room-id`,`zone-ids`,`category`])):(l(),s(Je,{key:3,ref_key:`reviewStep`,ref:L,category:j.category,mappings:j.mappings,name:j.name,"room-id":j.roomId,"zone-ids":j.zoneIds,"show-create-action":!1,onCreated:W,onSubmitting:c[5]||=e=>R.value=e},null,8,[`category`,`mappings`,`name`,`room-id`,`zone-ids`]))])]),_:1})]),_:1})]),h(x)?v(``,!0):(l(),e(`div`,Qe,[I.value===null&&N.value>0?(l(),s(h(_),{key:0,disabled:R.value,"data-test-id":`wizard-back`,onClick:re},{default:S(()=>[a(b(h(m)(`devicesModule.wizard.actions.back`)),1)]),_:1},8,[`disabled`])):v(``,!0),I.value===null?(l(),s(h(_),{key:1,link:``,class:`ml-2!`,disabled:R.value,"data-test-id":`wizard-cancel`,onClick:ne},{default:S(()=>[a(b(h(m)(`devicesModule.wizard.actions.cancel`)),1)]),_:1},8,[`disabled`])):v(``,!0),I.value===null?v(``,!0):(l(),s(h(_),{key:2,type:`primary`,class:`ml-2!`,"data-test-id":`wizard-view-device`,onClick:ae},{default:S(()=>[a(b(h(m)(`devicesVirtualPlugin.wizard.viewDevice`)),1)]),_:1})),I.value===null&&z.value?(l(),s(h(_),{key:3,type:`primary`,class:`ml-2!`,disabled:!L.value?.canCreate,loading:R.value,"data-test-id":`create-device`,onClick:L.value?.onCreate},{default:S(()=>[a(b(h(m)(`devicesVirtualPlugin.wizard.review.create`)),1)]),_:1},8,[`disabled`,`loading`,`onClick`])):v(``,!0),I.value===null&&!z.value?(l(),s(h(_),{key:4,type:`primary`,class:`ml-2!`,disabled:!te.value,"data-test-id":`wizard-next`,onClick:U},{default:S(()=>[a(b(h(m)(`devicesModule.wizard.actions.next`)),1)]),_:1},8,[`disabled`])):v(``,!0)]))],64))}});export{et as default};
1
+ import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,D as t,Dr as n,Er as r,H as i,Mr as a,Nr as o,Or as s,Pr as c,Qr as l,Si as u,T as ee,Wr as d,bi as f,ci as p,ei as m,ji as h,jr as g,k as _,kr as v,n as y,qi as b,r as x,ui as S,x as C,xr as w}from"./icon-with-child-CgZMNB3F.js";import{t as T}from"./vue-meta.esm-browser.min-C5z7o_np.js";import{Dr as E,Er as D,Mr as O,Qr as k,Tr as A,_ as j,_r as M,dn as N,ei as P,h as F,kn as I,m as L,p as R,qr as z,r as te,rn as B,sn as ne,vr as V,x as re,yr as H}from"./common-D4Z2wgrj.js";import{n as U,t as ie}from"./descriptions-BHa0Pjk7.js";import{n as W,t as ae}from"./table-CeNNpGH7.js";import{n as G,t as K}from"./form-Wa6uIXea.js";import{t as q}from"./alert-I-oSc4A8.js";import{r as J,t as Y}from"./select-CTZp3DyT.js";import{t as X}from"./card-C50YgvLJ.js";import{t as oe}from"./checkbox-CtqO8Xm5.js";import{x as se}from"./components-BBoFC7mM.js";import{n as Z,t as Q}from"./steps-DuddYjrb.js";import{t as ce}from"./dist-DJgPCOr0.js";import{C as le,g as ue,n as de}from"./keys-BMDz3FOI.js";import{i as fe,o as pe,r as me}from"./keys-DMEIfK2a.js";import{o as $,r as he}from"./devices.constants-DHQemX04.js";import"./devices-DEFm4Nmd.js";import{A as ge,M as _e,N as ve,P as ye,j as be,k as xe}from"./composables-2NuyfNXO.js";import{a as Se,i as Ce,n as we,o as Te,r as Ee}from"./devices-virtual.constants-D0L6zhgQ.js";var De={class:`space-y-4`},Oe={key:0,"data-test-id":`blocked-categories`},ke={class:`text-sm text-gray-500 mb-2`},Ae={class:`flex flex-wrap gap-2`},je=c({name:`VirtualWizardCategoryStep`,__name:`virtual-wizard-category-step`,props:{modelValue:{}},emits:[`update:modelValue`],setup(t,{expose:i,emit:c}){let u=c,{t:d}=ee(),f=r(()=>Te.map(e=>({value:e,label:d(`devicesModule.categories.devices.${e}`)}))),p=r(()=>Se.map(e=>({value:e,label:d(`devicesModule.categories.devices.${e}`),reason:d(`devicesVirtualPlugin.wizard.category.blockedReason`)}))),g=e=>{u(`update:modelValue`,e)};return i({categories:f,blockedCategories:p}),(r,i)=>(l(),e(`div`,De,[o(h(q),{type:`info`,title:h(d)(`devicesVirtualPlugin.wizard.category.heading`),description:h(d)(`devicesVirtualPlugin.wizard.category.description`),closable:!1,"show-icon":``},null,8,[`title`,`description`]),o(h(K),{"label-position":`top`},{default:S(()=>[o(h(G),{label:h(d)(`devicesVirtualPlugin.fields.devices.category.title`)},{default:S(()=>[o(h(J),{"model-value":t.modelValue,placeholder:h(d)(`devicesVirtualPlugin.fields.devices.category.placeholder`),name:`category`,filterable:``,class:`w-full`,"onUpdate:modelValue":g},{default:S(()=>[(l(!0),e(w,null,m(f.value,e=>(l(),s(h(Y),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`model-value`,`placeholder`])]),_:1},8,[`label`])]),_:1}),p.value.length>0?(l(),e(`div`,Oe,[n(`p`,ke,b(h(d)(`devicesVirtualPlugin.wizard.category.blockedHeading`)),1),n(`div`,Ae,[(l(!0),e(w,null,m(p.value,e=>(l(),s(h(z),{key:e.value,type:`info`,title:e.reason,class:`opacity-60! cursor-not-allowed!`},{default:S(()=>[a(b(e.label),1)]),_:2},1032,[`title`]))),128))])])):v(``,!0)]))}}),Me={class:`space-y-4`},Ne={class:`text-xs text-gray-500 mt-1`},Pe={class:`text-xs text-gray-500 mt-1`},Fe=c({name:`VirtualWizardDetailsStep`,__name:`virtual-wizard-details-step`,props:{category:{},name:{},roomId:{},zoneIds:{}},emits:[`update:name`,`update:roomId`,`update:zoneIds`],setup(t,{expose:i,emit:a}){let c=t,f=a,{t:g}=ee(),_=j(),v=re().getStore(de),y=r(()=>c.name),x=r(()=>c.roomId),C=r(()=>c.zoneIds),T=r(()=>ce(v.findAll().filter(e=>e.type===ue.ROOM),[e=>e.name],[`asc`]).map(e=>({value:e.id,label:e.name}))),E=r(()=>ce(v.findAll().filter(e=>e.type===ue.ZONE&&!le(e.category)),[e=>e.name],[`asc`]).map(e=>({value:e.id,label:e.name}))),D=r(()=>{if(c.category===null)return``;let e=g(`devicesModule.categories.devices.${c.category}`);if(c.roomId===null)return e;let t=v.findById(c.roomId);return t?`${e} — ${t.name}`:e}),O=u(c.name===``||c.name===D.value?c.name:null);p(D,e=>{c.name===O.value&&e!==c.name&&(O.value=e,f(`update:name`,e))},{immediate:!0});let k=e=>{f(`update:name`,e)},A=e=>{f(`update:roomId`,e)},M=e=>{f(`update:zoneIds`,e)};return d(()=>{v.fetch().catch(e=>_.error(`Failed to load rooms and zones`,e))}),i({roomOptions:T,zoneOptions:E,generatedName:D}),(t,r)=>(l(),e(`div`,Me,[o(h(q),{type:`info`,title:h(g)(`devicesVirtualPlugin.wizard.details.heading`),description:h(g)(`devicesVirtualPlugin.wizard.details.description`),closable:!1,"show-icon":``},null,8,[`title`,`description`]),o(h(K),{"label-position":`top`},{default:S(()=>[o(h(G),{label:h(g)(`devicesVirtualPlugin.fields.devices.name.title`)},{default:S(()=>[o(h(P),{"model-value":y.value,placeholder:h(g)(`devicesVirtualPlugin.fields.devices.name.placeholder`),name:`name`,"onUpdate:modelValue":k},null,8,[`model-value`,`placeholder`])]),_:1},8,[`label`]),o(h(G),{label:h(g)(`devicesModule.fields.devices.room.title`)},{default:S(()=>[o(h(J),{"model-value":x.value,placeholder:h(g)(`devicesModule.fields.devices.room.placeholder`),name:`room`,filterable:``,clearable:``,class:`w-full`,"onUpdate:modelValue":A},{default:S(()=>[(l(!0),e(w,null,m(T.value,e=>(l(),s(h(Y),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`model-value`,`placeholder`]),n(`div`,Ne,b(h(g)(`devicesModule.fields.devices.room.hint`)),1)]),_:1},8,[`label`]),o(h(G),{label:h(g)(`devicesModule.fields.devices.zones.title`)},{default:S(()=>[o(h(J),{"model-value":C.value,placeholder:h(g)(`devicesModule.fields.devices.zones.placeholder`),name:`zones`,filterable:``,clearable:``,multiple:``,class:`w-full`,"onUpdate:modelValue":M},{default:S(()=>[(l(!0),e(w,null,m(E.value,e=>(l(),s(h(Y),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`model-value`,`placeholder`]),n(`div`,Pe,b(h(g)(`devicesModule.fields.devices.zones.hint`)),1)]),_:1},8,[`label`])]),_:1})]))}}),Ie={class:`space-y-4`},Le={class:`flex items-center gap-3`,"data-test-id":`mapping-progress`},Re=[`data-test-id`],ze={class:`flex items-center gap-2 flex-wrap`},Be={class:`flex flex-wrap items-center gap-2`},Ve=[`data-test-id`],He={class:`flex items-center gap-2 flex-wrap`},Ue={class:`text-sm font-medium`},We={class:`flex flex-wrap items-center gap-2`},Ge=c({name:`VirtualWizardMappingStep`,__name:`virtual-wizard-mapping-step`,props:{category:{},modelValue:{}},emits:[`update:modelValue`,`update:valid`],setup(t,{expose:i,emit:c}){let u=t,g=c,{t:y}=ee(),C=L(),T=j(),E=R(),D=re(),k=D.getStore(pe),A=D.getStore(fe),M=D.getStore(me),N=f({}),P=f({}),F=f({}),V=f({}),H=f({}),U=f({}),ie=0,W=new Map,ae=e=>ye[e]?.constraints??{},G=e=>ve[e]?.constraints??{},K=r(()=>{if(u.category===null)return[];let e=ge[u.category];if(!e)return[];let t=(be[u.category]??[...e.required,...e.optional]).filter(e=>e!==B.device_information);return[...t.filter(t=>e.required.includes(t)),...t.filter(t=>!e.required.includes(t))].map(t=>{let n=e.required.includes(t),r=xe[t]??{required:[],optional:[]};return{specChannel:t,required:n,slots:[...r.required,...r.optional].map(e=>{let i=_e(t,e),a=r.required.includes(e);return{key:`${t}.${e}`,specChannel:t,specProperty:e,required:n&&a,channelRequired:n,propertyRequired:a,permissions:i?.permissions??[],dataType:i?.data_type??null,unit:i?.unit??null}})}})}),X=r(()=>K.value.flatMap(e=>e.slots)),oe=r(()=>X.value.map(e=>({specChannel:e.specChannel,specProperty:e.specProperty,sourceProperty:N[e.key]??null}))),Z=r(()=>{let e=new Set(X.value.filter(e=>typeof N[e.key]==`string`).map(e=>e.specChannel)),t=X.value.filter(t=>t.required||t.propertyRequired&&e.has(t.specChannel)),n=t.filter(e=>typeof N[e.key]!=`string`);return{requiredTotal:t.length,requiredFilled:t.length-n.length,remaining:n}}),Q=r(()=>Object.keys(N).length>0),le=r(()=>Q.value&&Z.value.remaining.length===0),ue=r(()=>Z.value.requiredTotal===0?Q.value?100:0:Math.round(Z.value.requiredFilled/Z.value.requiredTotal*100)),de=r(()=>{let e=[],t=K.value.filter(e=>e.slots.some(e=>typeof N[e.key]==`string`)).map(e=>e.specChannel);if(u.category!==null&&t.length>0){let n=G(u.category);for(let r of n.oneOrMoreOf??[])r.some(e=>t.includes(e))||e.push({specChannel:r[0],message:y(`devicesVirtualPlugin.wizard.mapping.constraints.deviceOneOrMoreOf`,{channels:r.map(e=>y(`devicesModule.categories.channels.${e}`)).join(`, `)})});for(let r of n.oneOf??[])r.filter(e=>t.includes(e)).length>1&&e.push({specChannel:r[0],message:y(`devicesVirtualPlugin.wizard.mapping.constraints.deviceOneOf`,{channels:r.map(e=>y(`devicesModule.categories.channels.${e}`)).join(`, `)})});for(let r of n.mutuallyExclusiveGroups??[]){let n=r.filter(e=>e.some(e=>t.includes(e)));n.length>1&&e.push({specChannel:n[0][0],message:y(`devicesVirtualPlugin.wizard.mapping.constraints.deviceMutuallyExclusive`,{groups:n.map(e=>e.map(e=>y(`devicesModule.categories.channels.${e}`)).join(` + `)).join(` / `)})})}}for(let t of K.value){let n=t.slots.filter(e=>typeof N[e.key]==`string`).map(e=>e.specProperty);if(n.length===0)continue;let r=ae(t.specChannel);for(let i of r.oneOrMoreOf??[])i.some(e=>n.includes(e))||e.push({specChannel:t.specChannel,message:y(`devicesVirtualPlugin.wizard.mapping.constraints.oneOrMoreOf`,{properties:i.map(e=>y(`devicesModule.categories.channelsProperties.${e}`)).join(`, `)})});for(let i of r.oneOf??[])i.filter(e=>n.includes(e)).length>1&&e.push({specChannel:t.specChannel,message:y(`devicesVirtualPlugin.wizard.mapping.constraints.oneOf`,{properties:i.map(e=>y(`devicesModule.categories.channelsProperties.${e}`)).join(`, `)})});for(let i of r.mutuallyExclusiveGroups??[]){let r=i.filter(e=>e.some(e=>n.includes(e)));r.length>1&&e.push({specChannel:t.specChannel,message:y(`devicesVirtualPlugin.wizard.mapping.constraints.mutuallyExclusive`,{groups:r.map(e=>e.map(e=>y(`devicesModule.categories.channelsProperties.${e}`)).join(` + `)).join(` / `)})})}}return e}),$=r(()=>Object.values(F).some(e=>e)),he=r(()=>u.category!==null&&le.value&&Object.keys(P).length===0&&de.value.length===0&&!$.value),Se=r(()=>ce(k.findAll().filter(e=>!e.draft&&(!e.hidden||e.hiddenBy===ne.system)&&e.type!==`virtual`),[e=>e.name],[`asc`]).map(e=>({value:e.id,label:e.name}))),Ce=e=>e===null?[]:ce(A.findForDevice(e),[e=>e.name],[`asc`]).map(e=>({value:e.id,label:e.name})),Te=e=>e===null?[]:ce(M.findForChannel(e),[e=>e.name??e.category],[`asc`]).map(e=>({value:e.id,label:e.name??y(`devicesModule.categories.channelsProperties.${e.category}`)})),Ee=e=>[e.dataType,e.unit,e.permissions.join(`/`)].filter(e=>typeof e==`string`&&e.length>0).join(` · `),De=(e,t)=>t.required||U[e.specChannel]===!0||typeof N[t.key]==`string`||typeof P[t.key]==`string`,Oe=e=>e.slots.filter(t=>De(e,t)),ke=e=>e.slots.length-Oe(e).length,Ae=async e=>{try{return await A.fetch({deviceId:e})}catch(t){return T.error(`Failed to load source channels`,t),A.findForDevice(e)}},je=async e=>{try{await M.fetch({channelId:e})}catch(e){T.error(`Failed to load source properties`,e)}return M.findForChannel(e)},Me=(e,t,n)=>{let r=e=>e.spec_channel===t.slot.specChannel&&e.spec_property===t.slot.specProperty&&e.source_property===t.sourceProperty,i=e[n];return i&&r(i)?i:e.find(r)??null},Ne=async e=>{if(u.category===null||e.length===0)return;let t=++ie;for(let n of e)W.set(n.slot.key,t),F[n.slot.key]=!0,delete P[n.slot.key];let n=(e,n)=>{W.get(e)===t&&(delete F[e],n===null?delete P[e]:P[e]=n)};try{let{data:t,error:r}=await C.client.POST(`/${x}/${we}/devices/compatibility`,{body:{data:{category:u.category,candidates:e.map(e=>({spec_channel:e.slot.specChannel,spec_property:e.slot.specProperty,source_property:e.sourceProperty}))}}}),i=t?.data;if(!i){let t=r?te(r,y(`devicesVirtualPlugin.wizard.mapping.errors.checkFailed`)):y(`devicesVirtualPlugin.wizard.mapping.errors.checkFailed`);for(let r of e)n(r.slot.key,t);E.error(t);return}e.forEach((e,t)=>{let r=Me(i,e,t);if(!r){n(e.slot.key,y(`devicesVirtualPlugin.wizard.mapping.errors.checkFailed`));return}n(e.slot.key,r.compatible?null:r.reason??y(`devicesVirtualPlugin.wizard.mapping.errors.incompatible`))})}catch(t){T.error(`Virtual device compatibility check failed`,t);let r=y(`devicesVirtualPlugin.wizard.mapping.errors.checkFailed`);for(let t of e)n(t.slot.key,r);E.error(r)}},Pe=async(e,t)=>{let n=X.value.find(t=>t.key===e);if(n){if(W.set(e,++ie),delete P[e],delete F[e],t===null){delete N[e];return}N[e]=t,await Ne([{slot:n,sourceProperty:t}])}},Fe=async(e,t)=>{let n=K.value.find(t=>t.specChannel===e);if(!n||t===null)return;let r=++ie;for(let e of n.slots)W.set(e.key,r),delete F[e.key];let i=await je(t);if(n.slots.some(e=>W.get(e.key)!==r))return;let a=A.findById(t),o=[];for(let e of n.slots){let n=i.find(t=>t.category===e.specProperty);if(!n){let t=N[e.key];t&&o.push({slot:e,sourceProperty:t});continue}delete P[e.key],N[e.key]=n.id,V[e.key]={device:a?.device??null,channel:t},o.push({slot:e,sourceProperty:n.id})}if(o.length===0){E.info(y(`devicesVirtualPlugin.wizard.mapping.shortcut.nothingApplied`));return}U[e]=!0,E.info(y(`devicesVirtualPlugin.wizard.mapping.shortcut.applied`,{filled:o.length,total:n.slots.length})),await Ne(o)},Ge=(e,t)=>{V[e]={device:t,channel:null},Pe(e,null).catch(e=>T.error(`Failed to clear source property`,e)),t!==null&&Ae(t).catch(e=>T.error(`Failed to load source channels`,e))},Ke=(e,t)=>{V[e]={device:V[e]?.device??null,channel:t},Pe(e,null).catch(e=>T.error(`Failed to clear source property`,e)),t!==null&&je(t).catch(e=>T.error(`Failed to load source properties`,e))},qe=(e,t)=>{Pe(e,t).catch(e=>T.error(`Failed to select source property`,e))},Je=(e,t)=>{H[e]={device:t,channel:null},t!==null&&Ae(t).catch(e=>T.error(`Failed to load source channels`,e))},Ye=(e,t)=>{H[e]={device:H[e]?.device??null,channel:t},t!==null&&je(t).catch(e=>T.error(`Failed to load source properties`,e))},Xe=e=>{Fe(e,H[e]?.channel??null).catch(e=>T.error(`Failed to apply source channel`,e))},Ze=e=>e.filter(e=>e.sourceProperty!==null).map(e=>`${e.specChannel}.${e.specProperty}=${e.sourceProperty}`).sort().join(`|`),Qe=()=>{for(let[e,t]of Object.entries(N)){if(V[e]?.channel)continue;let n=M.findById(t),r=n?A.findById(n.channel):null;V[e]={device:r?.device??null,channel:r?.id??null}}};return p(()=>u.modelValue,e=>{if(Ze(e)!==Ze(oe.value)){for(let e of Object.keys(N))delete N[e];for(let e of Object.keys(P))delete P[e];for(let e of Object.keys(F))delete F[e];for(let e of Object.keys(V))delete V[e];W.clear();for(let t of e)t.sourceProperty!==null&&(N[`${t.specChannel}.${t.specProperty}`]=t.sourceProperty);Qe()}},{deep:!0,immediate:!0}),p(()=>u.category,(e,t)=>{if(!(t==null||t===e)){for(let e of Object.keys(N))delete N[e];for(let e of Object.keys(P))delete P[e];for(let e of Object.keys(F))delete F[e];for(let e of Object.keys(V))delete V[e];for(let e of Object.keys(H))delete H[e];W.clear(),ie++}}),p(oe,e=>g(`update:modelValue`,e),{deep:!0,immediate:!0}),p(he,e=>g(`update:valid`,e),{immediate:!0}),d(()=>{k.fetch({hidden:I.all}).catch(e=>T.error(`Failed to load source devices`,e))}),i({slots:X,groups:K,errors:P,checking:F,pickers:V,progress:Z,constraintViolations:de,isValid:he,sourceDevicesOptions:Se,selectSource:Pe,applyChannel:Fe}),(r,i)=>(l(),e(`div`,Ie,[o(h(q),{type:`info`,title:h(y)(`devicesVirtualPlugin.wizard.mapping.heading`),description:h(y)(`devicesVirtualPlugin.wizard.mapping.description`),closable:!1,"show-icon":``},null,8,[`title`,`description`]),t.category===null?(l(),s(h(q),{key:0,type:`warning`,title:h(y)(`devicesVirtualPlugin.wizard.mapping.noCategory`),closable:!1,"show-icon":``},null,8,[`title`])):(l(),e(w,{key:1},[n(`div`,Le,[o(h(se),{percentage:ue.value,status:le.value?`success`:void 0,class:`grow`},null,8,[`percentage`,`status`]),Z.value.requiredTotal>0?(l(),s(h(O),{key:0,size:`small`,class:`whitespace-nowrap`},{default:S(()=>[a(b(h(y)(`devicesVirtualPlugin.wizard.mapping.progress`,{filled:Z.value.requiredFilled,total:Z.value.requiredTotal})),1)]),_:1})):Q.value?v(``,!0):(l(),s(h(O),{key:1,size:`small`},{default:S(()=>[a(b(h(y)(`devicesVirtualPlugin.wizard.mapping.noRequired`)),1)]),_:1}))]),(l(!0),e(w,null,m(de.value,e=>(l(),s(h(q),{key:`${e.specChannel}-${e.message}`,type:`error`,closable:!1,"show-icon":``,class:`mt-2`,"data-test-id":`constraint-violation`},{default:S(()=>[n(`strong`,null,b(h(y)(`devicesModule.categories.channels.${e.specChannel}`)),1),a(` `+b(e.message),1)]),_:2},1024))),128)),(l(!0),e(w,null,m(K.value,t=>(l(),e(`div`,{key:t.specChannel,class:`b b-solid b-gray-200 dark:b-gray-700 rounded p-3 space-y-3`,"data-test-id":`slot-group-${t.specChannel}`},[n(`div`,ze,[n(`strong`,null,b(h(y)(`devicesModule.categories.channels.${t.specChannel}`)),1),o(h(z),{type:t.required?`danger`:`info`,size:`small`},{default:S(()=>[a(b(t.required?h(y)(`devicesVirtualPlugin.wizard.mapping.channelRequired`):h(y)(`devicesVirtualPlugin.wizard.mapping.channelOptional`)),1)]),_:2},1032,[`type`])]),n(`div`,Be,[o(h(O),{size:`small`,class:`basis-full`},{default:S(()=>[a(b(h(y)(`devicesVirtualPlugin.wizard.mapping.shortcut.description`)),1)]),_:1}),o(h(J),{"model-value":H[t.specChannel]?.device??null,placeholder:h(y)(`devicesVirtualPlugin.wizard.mapping.source.devicePlaceholder`),name:`shortcut-device-${t.specChannel}`,filterable:``,clearable:``,class:`w-60`,"onUpdate:modelValue":e=>Je(t.specChannel,e)},{default:S(()=>[(l(!0),e(w,null,m(Se.value,e=>(l(),s(h(Y),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`model-value`,`placeholder`,`name`,`onUpdate:modelValue`]),o(h(J),{"model-value":H[t.specChannel]?.channel??null,placeholder:h(y)(`devicesVirtualPlugin.wizard.mapping.source.channelPlaceholder`),name:`shortcut-channel-${t.specChannel}`,disabled:!H[t.specChannel]?.device,filterable:``,clearable:``,class:`w-60`,"onUpdate:modelValue":e=>Ye(t.specChannel,e)},{default:S(()=>[(l(!0),e(w,null,m(Ce(H[t.specChannel]?.device??null),e=>(l(),s(h(Y),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:2},1032,[`model-value`,`placeholder`,`name`,`disabled`,`onUpdate:modelValue`]),o(h(_),{disabled:!H[t.specChannel]?.channel,plain:``,onClick:e=>Xe(t.specChannel)},{default:S(()=>[a(b(h(y)(`devicesVirtualPlugin.wizard.mapping.shortcut.apply`)),1)]),_:1},8,[`disabled`,`onClick`])]),(l(!0),e(w,null,m(Oe(t),t=>(l(),e(`div`,{key:t.key,class:`space-y-1`,"data-test-id":`slot-${t.key}`},[n(`div`,He,[n(`span`,Ue,b(h(y)(`devicesModule.categories.channelsProperties.${t.specProperty}`)),1),t.required?(l(),s(h(z),{key:0,type:`danger`,size:`small`},{default:S(()=>[a(b(h(y)(`devicesVirtualPlugin.wizard.mapping.propertyRequired`)),1)]),_:1})):v(``,!0),o(h(O),{size:`small`,type:`info`},{default:S(()=>[a(b(Ee(t)),1)]),_:2},1024)]),n(`div`,We,[o(h(J),{"model-value":V[t.key]?.device??null,placeholder:h(y)(`devicesVirtualPlugin.wizard.mapping.source.devicePlaceholder`),name:`device-${t.key}`,filterable:``,clearable:``,class:`w-60`,"onUpdate:modelValue":e=>Ge(t.key,e)},{default:S(()=>[(l(!0),e(w,null,m(Se.value,e=>(l(),s(h(Y),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`model-value`,`placeholder`,`name`,`onUpdate:modelValue`]),o(h(J),{"model-value":V[t.key]?.channel??null,placeholder:h(y)(`devicesVirtualPlugin.wizard.mapping.source.channelPlaceholder`),name:`channel-${t.key}`,disabled:!V[t.key]?.device,filterable:``,clearable:``,class:`w-60`,"onUpdate:modelValue":e=>Ke(t.key,e)},{default:S(()=>[(l(!0),e(w,null,m(Ce(V[t.key]?.device??null),e=>(l(),s(h(Y),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:2},1032,[`model-value`,`placeholder`,`name`,`disabled`,`onUpdate:modelValue`]),o(h(J),{"model-value":N[t.key]??null,placeholder:h(y)(`devicesVirtualPlugin.wizard.mapping.source.propertyPlaceholder`),name:`property-${t.key}`,disabled:!V[t.key]?.channel,loading:F[t.key]===!0,filterable:``,clearable:``,class:`w-60`,"onUpdate:modelValue":e=>qe(t.key,e)},{default:S(()=>[(l(!0),e(w,null,m(Te(V[t.key]?.channel??null),e=>(l(),s(h(Y),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:2},1032,[`model-value`,`placeholder`,`name`,`disabled`,`loading`,`onUpdate:modelValue`])]),P[t.key]?(l(),s(h(O),{key:0,size:`small`,type:`danger`,class:`block`,"data-test-id":`slot-error-${t.key}`},{default:S(()=>[a(b(P[t.key]),1)]),_:2},1032,[`data-test-id`])):v(``,!0)],8,Ve))),128)),ke(t)>0?(l(),s(h(_),{key:0,link:``,type:`primary`,onClick:e=>U[t.specChannel]=!0},{default:S(()=>[a(b(h(y)(`devicesVirtualPlugin.wizard.mapping.showOptional`,{count:ke(t)})),1)]),_:2},1032,[`onClick`])):v(``,!0)],8,Re))),128))],64))]))}}),Ke={class:`space-y-4`},qe={class:`text-xs text-gray-500`},Je=c({name:`VirtualWizardReviewStep`,__name:`virtual-wizard-review-step`,props:{category:{},mappings:{},name:{},roomId:{},zoneIds:{},showCreateAction:{type:Boolean,default:!0}},emits:[`created`,`submitting`],setup(t,{expose:i,emit:c}){let d=t,f=c,{t:p}=ee(),m=L(),g=j(),x=R(),C=re(),T=C.getStore(pe),E=C.getStore(fe),D=C.getStore(me),O=C.getStore(de),k=u(`idle`),A=u(null),M=u(!1),P=u(`idle`),F=u(null),I=u(0),z=r(()=>d.mappings.filter(e=>e.sourceProperty!==null)),B=()=>p(`devicesVirtualPlugin.wizard.review.unknownSource`),V=e=>{let t=D.findById(e),n=t?E.findById(t.channel):null,r=n?T.findById(n.device):null;return{deviceId:n?.device??null,deviceName:r?.name??B(),channelName:n?.name??B(),propertyName:t?t.name??p(`devicesModule.categories.channelsProperties.${t.category}`):B()}},H=r(()=>z.value.map(e=>V(e.sourceProperty))),G=r(()=>z.value.map((e,t)=>{let n=H.value[t];return{key:`${e.specChannel}.${e.specProperty}`,specChannel:e.specChannel,specProperty:e.specProperty,sourceDevice:n.deviceName,sourceChannel:n.channelName,sourceProperty:n.propertyName}})),K=r(()=>{let e=H.value.map(e=>e.deviceId);return e.length===0||e.some(e=>e===null)?!1:new Set(e).size===1}),J=r(()=>{if(!K.value)return null;let e=H.value[0]?.deviceId??null;return e===null?null:T.findById(e)}),Y=r(()=>d.category===null?``:p(`devicesModule.categories.devices.${d.category}`)),X=r(()=>{if(d.roomId===null)return p(`devicesVirtualPlugin.wizard.review.noRoom`);let e=O.findById(d.roomId);return e?e.name:B()}),se=r(()=>d.zoneIds.length===0?p(`devicesVirtualPlugin.wizard.review.noZones`):d.zoneIds.map(e=>{let t=O.findById(e);return t?t.name:B()}).join(`, `)),Z=r(()=>k.value!==`submitting`&&k.value!==`created`&&d.category!==null&&d.name.trim().length>0&&G.value.length>0),Q=(e,t)=>{let n=D.findById(e.sourceProperty)?.dataType??null,r=ye[e.specChannel],i=Object.values(r?.properties??{}).find(t=>t.category===e.specProperty);return(n===null?void 0:i?.data_types?.find(e=>e.data_type===n))??t},ce=e=>{let t=_e(e.specChannel,e.specProperty);if(!t)return g.error(`No specification found for ${e.specChannel}.${e.specProperty}; leaving it out of the create payload`),null;let n=Q(e,{data_type:t.data_type,format:t.format??void 0,step:t.step??void 0});return{type:Ee,category:e.specProperty,identifier:e.specProperty,name:null,permissions:t.permissions,data_type:n.data_type,format:n.format??null,invalid:D.findById(e.sourceProperty)?.invalid??t.invalid??null,step:n.step??null,value:null,value_origin:N.source,source_property:e.sourceProperty}},le=r(()=>{let e=new Map;for(let t of z.value){let n=ce(t);if(!n)continue;let r=e.get(t.specChannel)??[];r.push(n),e.set(t.specChannel,r)}return Array.from(e.entries()).map(([e,t])=>({type:Ee,category:e,identifier:e,name:p(`devicesModule.categories.channels.${e}`),properties:t}))}),ue=async e=>{I.value=0;for(let t of d.zoneIds)try{await T.addZone({id:e,zoneId:t})}catch(n){g.error(`Failed to assign the created device id=${e} to zone id=${t}`,n),I.value+=1}I.value>0&&x.warning(p(`devicesVirtualPlugin.wizard.review.errors.zonesFailed`,{count:I.value}))},$=async()=>{let e=J.value;if(e){P.value=`hiding`,F.value=null;try{await T.edit({id:e.id,data:{type:e.type,hidden:!0,hiddenBy:ne.system}}),P.value=`hidden`}catch(t){g.error(`Failed to hide the source device id=${e.id}`,t),P.value=`failed`,F.value=t instanceof Error?t.message:p(`devicesVirtualPlugin.wizard.review.errors.hideFailed`),x.error(p(`devicesVirtualPlugin.wizard.review.errors.hideFailedFlash`,{device:e.name}))}}},ge=()=>{$().catch(e=>g.error(`Failed to retry hiding the source device`,e))},ve=async()=>{if(!Z.value)return;let e=d.category,t=d.name.trim(),n=d.roomId,r=d.zoneIds,i=le.value;if(e===null)return;k.value=`submitting`,f(`submitting`,!0),A.value=null;let a={type:Ee,category:e,name:t,room_id:n,channels:i};try{let{data:e,error:t}=await m.client.POST(`/${y}/${he}/devices`,{body:{data:a}});if(!e){A.value=t?te(t,p(`devicesVirtualPlugin.wizard.review.errors.createFailed`)):p(`devicesVirtualPlugin.wizard.review.errors.createFailed`),k.value=`error`,f(`submitting`,!1),x.error(A.value);return}let n=e.data;k.value=`created`;try{await T.get({id:n.id})}catch(e){g.error(`Failed to refresh the created device`,e)}r.length>0&&await ue(n.id),M.value&&K.value&&await $(),f(`submitting`,!1),f(`created`,{id:n.id,name:n.name})}catch(e){g.error(`Failed to create the virtual device`,e),A.value=p(`devicesVirtualPlugin.wizard.review.errors.createFailed`),k.value=`error`,f(`submitting`,!1),x.error(A.value)}};return i({rows:G,canHideSource:K,sourceDevice:J,submitState:k,hideState:P,hideError:F,createError:A,canCreate:Z,onCreate:ve,onRetryHide:ge}),(r,i)=>(l(),e(`div`,Ke,[o(h(q),{type:`info`,title:h(p)(`devicesVirtualPlugin.wizard.review.heading`),description:h(p)(`devicesVirtualPlugin.wizard.review.description`),closable:!1,"show-icon":``},null,8,[`title`,`description`]),o(h(ie),{column:1,border:``,"data-test-id":`review-summary`},{default:S(()=>[o(h(U),{label:h(p)(`devicesVirtualPlugin.fields.devices.category.title`)},{default:S(()=>[a(b(Y.value),1)]),_:1},8,[`label`]),o(h(U),{label:h(p)(`devicesVirtualPlugin.fields.devices.name.title`)},{default:S(()=>[a(b(t.name),1)]),_:1},8,[`label`]),o(h(U),{label:h(p)(`devicesModule.fields.devices.room.title`)},{default:S(()=>[a(b(X.value),1)]),_:1},8,[`label`]),o(h(U),{label:h(p)(`devicesModule.fields.devices.zones.title`)},{default:S(()=>[a(b(se.value),1)]),_:1},8,[`label`])]),_:1}),G.value.length===0?(l(),s(h(q),{key:0,type:`warning`,title:h(p)(`devicesVirtualPlugin.wizard.review.noMappings`),closable:!1,"show-icon":``,"data-test-id":`review-no-mappings`},null,8,[`title`])):(l(),s(h(ae),{key:1,data:G.value,"data-test-id":`review-rows`},{default:S(()=>[o(h(W),{label:h(p)(`devicesVirtualPlugin.wizard.review.columns.property`)},{default:S(({row:e})=>[n(`strong`,null,b(h(p)(`devicesModule.categories.channels.${e.specChannel}`)),1),a(` · `+b(h(p)(`devicesModule.categories.channelsProperties.${e.specProperty}`)),1)]),_:1},8,[`label`]),o(h(W),{label:h(p)(`devicesVirtualPlugin.wizard.review.columns.sourceDevice`),prop:`sourceDevice`},null,8,[`label`]),o(h(W),{label:h(p)(`devicesVirtualPlugin.wizard.review.columns.sourceChannel`),prop:`sourceChannel`},null,8,[`label`]),o(h(W),{label:h(p)(`devicesVirtualPlugin.wizard.review.columns.sourceProperty`),prop:`sourceProperty`},null,8,[`label`])]),_:1},8,[`data`])),K.value&&k.value!==`created`?(l(),e(w,{key:2},[o(h(oe),{modelValue:M.value,"onUpdate:modelValue":i[0]||=e=>M.value=e,"data-test-id":`hide-source-checkbox`},{default:S(()=>[a(b(h(p)(`devicesVirtualPlugin.wizard.review.hideSource.label`,{device:J.value?.name??``})),1)]),_:1},8,[`modelValue`]),n(`div`,qe,b(h(p)(`devicesVirtualPlugin.wizard.review.hideSource.hint`)),1)],64)):v(``,!0),k.value===`error`?(l(),s(h(q),{key:3,type:`error`,title:A.value??``,closable:!1,"show-icon":``,"data-test-id":`create-error`},null,8,[`title`])):v(``,!0),k.value===`created`?(l(),e(w,{key:4},[o(h(q),{type:`success`,title:h(p)(`devicesVirtualPlugin.wizard.review.created`,{name:t.name}),closable:!1,"show-icon":``,"data-test-id":`create-success`},null,8,[`title`]),P.value===`failed`?(l(),s(h(q),{key:0,type:`warning`,title:F.value??``,closable:!1,"show-icon":``,"data-test-id":`hide-error`},{default:S(()=>[o(h(_),{size:`small`,"data-test-id":`retry-hide`,onClick:ge},{default:S(()=>[a(b(h(p)(`devicesVirtualPlugin.wizard.review.hideSource.retry`)),1)]),_:1})]),_:1},8,[`title`])):P.value===`hidden`?(l(),s(h(q),{key:1,type:`success`,title:h(p)(`devicesVirtualPlugin.wizard.review.hideSource.success`,{device:J.value?.name??``}),closable:!1,"show-icon":``,"data-test-id":`hide-success`},null,8,[`title`])):v(``,!0)],64)):d.showCreateAction===!1?v(``,!0):(l(),s(h(_),{key:5,type:`primary`,disabled:!Z.value,loading:k.value===`submitting`,"data-test-id":`create-device`,onClick:ve},{default:S(()=>[a(b(h(p)(`devicesVirtualPlugin.wizard.review.create`)),1)]),_:1},8,[`disabled`,`loading`]))]))}}),Ye={class:`flex items-center`},Xe={class:`grow-1 flex flex-col gap-2 lt-sm:mx-1 sm:mx-2 lt-sm:mb-1 sm:mb-2 overflow-hidden mt-2`},Ze={class:`p-4`},Qe={key:2,class:`mt-2 flex justify-end lt-sm:mx-1 sm:mx-2 lt-sm:mb-1 sm:mb-2`},$e=4,et=c({name:`ViewVirtualDeviceWizard`,__name:`view-virtual-device-wizard`,setup(c,{expose:d}){let{t:m}=ee(),y=C(),{isMDDevice:x,isLGDevice:O}=H();T({title:m(`devicesVirtualPlugin.wizard.title`)});let j=f({category:null,mappings:[],name:``,roomId:null,zoneIds:[]}),N=u(0),P=u(!1),I=u(null),L=u(null),R=u(!1),z=r(()=>N.value===$e-1),te=r(()=>N.value===0?j.category!==null:N.value===1?P.value:N.value===2&&j.name.trim().length>0),B=r(()=>[{label:m(`devicesModule.breadcrumbs.devices.list`),route:y.resolve({name:$.DEVICES})},{label:m(`devicesVirtualPlugin.wizard.breadcrumb`),route:y.resolve({name:Ce.WIZARD})}]);M(()=>!R.value);let ne=()=>{R.value||(O.value?y.replace({name:$.DEVICES}):y.push({name:$.DEVICES}))},re=()=>{R.value||N.value!==0&&--N.value},U=()=>{!te.value||z.value||(N.value+=1)},ie=e=>{P.value=e},W=e=>{I.value=e},ae=()=>{if(I.value===null)return;let e={name:$.DEVICE,params:{id:I.value.id}};O.value?y.replace(e):y.push(e)};return p(()=>j.category,(e,t)=>{t==null||t===e||(j.mappings=[],P.value=!1)}),d({activeStep:N,canAdvance:te,createdDevice:I}),(r,c)=>(l(),e(w,null,[h(x)?v(``,!0):(l(),s(h(A),{key:0,teleport:``},{icon:S(()=>[o(h(t),{icon:`mdi:wizard-hat`,class:`w[20px] h[20px]`})]),title:S(()=>[a(b(h(m)(`devicesVirtualPlugin.wizard.title`)),1)]),subtitle:S(()=>[a(b(h(m)(`devicesVirtualPlugin.wizard.subtitle`)),1)]),_:1})),h(x)?v(``,!0):(l(),s(h(D),{key:1,align:h(E).LEFT,teleport:``,small:``,onClick:ne},{icon:S(()=>[o(h(i),{size:24},{default:S(()=>[o(h(t),{icon:`mdi:chevron-left`})]),_:1})]),_:1},8,[`align`])),o(h(V),{items:B.value},null,8,[`items`]),o(h(F),{heading:h(m)(`devicesVirtualPlugin.wizard.title`),"sub-heading":h(m)(`devicesVirtualPlugin.wizard.subtitle`),icon:`mdi:wizard-hat`},g({_:2},[h(x)?{name:`extra`,fn:S(()=>[n(`div`,Ye,[I.value===null&&N.value>0?(l(),s(h(_),{key:0,disabled:R.value,"data-test-id":`wizard-back`,onClick:re},{default:S(()=>[a(b(h(m)(`devicesModule.wizard.actions.back`)),1)]),_:1},8,[`disabled`])):v(``,!0),I.value===null?(l(),s(h(_),{key:1,link:``,class:`ml-2!`,disabled:R.value,"data-test-id":`wizard-cancel`,onClick:ne},{default:S(()=>[a(b(h(m)(`devicesModule.wizard.actions.cancel`)),1)]),_:1},8,[`disabled`])):v(``,!0),I.value===null?v(``,!0):(l(),s(h(_),{key:2,type:`primary`,"data-test-id":`wizard-view-device`,onClick:ae},{default:S(()=>[a(b(h(m)(`devicesVirtualPlugin.wizard.viewDevice`)),1)]),_:1})),I.value===null&&z.value?(l(),s(h(_),{key:3,type:`primary`,class:`ml-2!`,disabled:!L.value?.canCreate,loading:R.value,"data-test-id":`create-device`,onClick:L.value?.onCreate},{default:S(()=>[a(b(h(m)(`devicesVirtualPlugin.wizard.review.create`)),1)]),_:1},8,[`disabled`,`loading`,`onClick`])):v(``,!0),I.value===null&&!z.value?(l(),s(h(_),{key:4,type:`primary`,class:`ml-2!`,disabled:!te.value,"data-test-id":`wizard-next`,onClick:U},{default:S(()=>[a(b(h(m)(`devicesModule.wizard.actions.next`)),1)]),_:1},8,[`disabled`])):v(``,!0)])]),key:`0`}:void 0]),1032,[`heading`,`sub-heading`]),n(`div`,Xe,[o(h(X),{shadow:`never`,class:`max-h-full flex flex-col overflow-hidden box-border`,"body-class":`p-0! max-h-full overflow-hidden flex flex-col`},{header:S(()=>[o(h(Z),{active:N.value,"finish-status":`success`,"align-center":``},{default:S(()=>[o(h(Q),{title:h(m)(`devicesVirtualPlugin.wizard.steps.category`)},null,8,[`title`]),o(h(Q),{title:h(m)(`devicesVirtualPlugin.wizard.steps.mapping`)},null,8,[`title`]),o(h(Q),{title:h(m)(`devicesVirtualPlugin.wizard.steps.details`)},null,8,[`title`]),o(h(Q),{title:h(m)(`devicesVirtualPlugin.wizard.steps.review`)},null,8,[`title`])]),_:1},8,[`active`])]),default:S(()=>[o(h(k),{class:`flex-1 overflow-hidden h-full`},{default:S(()=>[n(`div`,Ze,[N.value===0?(l(),s(je,{key:0,modelValue:j.category,"onUpdate:modelValue":c[0]||=e=>j.category=e},null,8,[`modelValue`])):N.value===1?(l(),s(Ge,{key:1,modelValue:j.mappings,"onUpdate:modelValue":c[1]||=e=>j.mappings=e,category:j.category,"onUpdate:valid":ie},null,8,[`modelValue`,`category`])):N.value===2?(l(),s(Fe,{key:2,name:j.name,"onUpdate:name":c[2]||=e=>j.name=e,"room-id":j.roomId,"onUpdate:roomId":c[3]||=e=>j.roomId=e,"zone-ids":j.zoneIds,"onUpdate:zoneIds":c[4]||=e=>j.zoneIds=e,category:j.category},null,8,[`name`,`room-id`,`zone-ids`,`category`])):(l(),s(Je,{key:3,ref_key:`reviewStep`,ref:L,category:j.category,mappings:j.mappings,name:j.name,"room-id":j.roomId,"zone-ids":j.zoneIds,"show-create-action":!1,onCreated:W,onSubmitting:c[5]||=e=>R.value=e},null,8,[`category`,`mappings`,`name`,`room-id`,`zone-ids`]))])]),_:1})]),_:1})]),h(x)?v(``,!0):(l(),e(`div`,Qe,[I.value===null&&N.value>0?(l(),s(h(_),{key:0,disabled:R.value,"data-test-id":`wizard-back`,onClick:re},{default:S(()=>[a(b(h(m)(`devicesModule.wizard.actions.back`)),1)]),_:1},8,[`disabled`])):v(``,!0),I.value===null?(l(),s(h(_),{key:1,link:``,class:`ml-2!`,disabled:R.value,"data-test-id":`wizard-cancel`,onClick:ne},{default:S(()=>[a(b(h(m)(`devicesModule.wizard.actions.cancel`)),1)]),_:1},8,[`disabled`])):v(``,!0),I.value===null?v(``,!0):(l(),s(h(_),{key:2,type:`primary`,class:`ml-2!`,"data-test-id":`wizard-view-device`,onClick:ae},{default:S(()=>[a(b(h(m)(`devicesVirtualPlugin.wizard.viewDevice`)),1)]),_:1})),I.value===null&&z.value?(l(),s(h(_),{key:3,type:`primary`,class:`ml-2!`,disabled:!L.value?.canCreate,loading:R.value,"data-test-id":`create-device`,onClick:L.value?.onCreate},{default:S(()=>[a(b(h(m)(`devicesVirtualPlugin.wizard.review.create`)),1)]),_:1},8,[`disabled`,`loading`,`onClick`])):v(``,!0),I.value===null&&!z.value?(l(),s(h(_),{key:4,type:`primary`,class:`ml-2!`,disabled:!te.value,"data-test-id":`wizard-next`,onClick:U},{default:S(()=>[a(b(h(m)(`devicesModule.wizard.actions.next`)),1)]),_:1},8,[`disabled`])):v(``,!0)]))],64))}});export{et as default};